pax_global_header 0000666 0000000 0000000 00000000064 14721714455 0014524 g ustar 00root root 0000000 0000000 52 comment=73c3d102eb81fe0d2b87f905df4f740f8878d8da
tomli-2.2.1/ 0000775 0000000 0000000 00000000000 14721714455 0012652 5 ustar 00root root 0000000 0000000 tomli-2.2.1/.bumpversion.cfg 0000664 0000000 0000000 00000000707 14721714455 0015766 0 ustar 00root root 0000000 0000000 [bumpversion]
commit = True
tag = True
tag_name = {new_version}
current_version = 2.2.1
[bumpversion:file:pyproject.toml]
search = version = "{current_version}" # DO NOT EDIT THIS LINE MANUALLY. LET bump2version UTILITY DO IT
replace = version = "{new_version}" # DO NOT EDIT THIS LINE MANUALLY. LET bump2version UTILITY DO IT
[bumpversion:file:src/tomli/__init__.py]
search = __version__ = "{current_version}"
replace = __version__ = "{new_version}"
tomli-2.2.1/.flake8 0000664 0000000 0000000 00000000233 14721714455 0014023 0 ustar 00root root 0000000 0000000 [flake8]
max-line-length = 88
max-complexity = 10
# These checks violate PEP8 so let's ignore them
extend-ignore = E203
extend-exclude = */site-packages/*
tomli-2.2.1/.github/ 0000775 0000000 0000000 00000000000 14721714455 0014212 5 ustar 00root root 0000000 0000000 tomli-2.2.1/.github/workflows/ 0000775 0000000 0000000 00000000000 14721714455 0016247 5 ustar 00root root 0000000 0000000 tomli-2.2.1/.github/workflows/tests.yaml 0000664 0000000 0000000 00000012023 14721714455 0020273 0 ustar 00root root 0000000 0000000 name: Tests
on:
push:
branches: [ master ]
tags: [ '[0-9]+.[0-9]+.[0-9]+*' ]
pull_request:
branches: [ master ]
env:
CIBW_TEST_COMMAND: python -m unittest discover --start-directory {project}
CIBW_SKIP: pp* cp38-* cp39-* cp310-*
CIBW_ENVIRONMENT_PASS_LINUX: TOMLI_USE_MYPYC
jobs:
linters:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install pre-commit
run: |
pip install pre-commit
- name: run linters
# pre-commit also runs in pre-commit.ci, but let's have it here too
# to block `pypi-publish` job from triggering if pre-commit fails
run: |
pre-commit run --all-files
tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ['pypy3.10', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14-dev']
os: [ubuntu-latest, macos-latest, windows-latest]
continue-on-error: ${{ matrix.python-version == '3.14-dev' }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
pip install .
- name: Test with unittest
run: |
python -m unittest
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install package and coverage deps
run: |
pip install . coverage
- name: Measure coverage
run: |
# Coverage should be 100% without external tests
rm -rf tests/data/valid/_external/
rm -rf tests/data/invalid/_external/
coverage run -m unittest
coverage report --fail-under=100
- name: Report coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
binary-wheels-standard:
name: Binary wheels for ${{ startsWith(matrix.os, 'macos-') && 'macOS' || startsWith(matrix.os, 'windows-') && 'Windows' || 'Linux' }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Switch build backend to setuptools
run: |
pip install -r scripts/requirements.txt
python scripts/use_setuptools.py
- name: Build wheels
uses: pypa/cibuildwheel@v2.22.0
env:
CIBW_ARCHS_MACOS: x86_64 arm64
TOMLI_USE_MYPYC: '1'
- uses: actions/upload-artifact@v4
with:
name: artifact-standard-${{ matrix.os }}
path: wheelhouse/*.whl
if-no-files-found: error
pure-python-wheel-and-sdist:
name: Build a pure Python wheel and source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
run: pip install build
- name: Build
run: python -m build
- uses: actions/upload-artifact@v4
with:
name: artifact-pure-python
path: dist/*
if-no-files-found: error
binary-wheels-arm:
name: Build Linux wheels for ARM
runs-on: ubuntu-latest
# Very slow (~ 1 hour), no need to run on PRs
if: >
github.event_name == 'push'
&&
(github.ref == 'refs/heads/master' || startsWith(github.event.ref, 'refs/tags'))
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Switch build backend to setuptools
run: |
pip install -r scripts/requirements.txt
python scripts/use_setuptools.py
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Build wheels
uses: pypa/cibuildwheel@v2.22.0
env:
CIBW_ARCHS_LINUX: aarch64
TOMLI_USE_MYPYC: '1'
- uses: actions/upload-artifact@v4
with:
name: artifact-arm-linux
path: wheelhouse/*.whl
if-no-files-found: error
allgood:
runs-on: ubuntu-latest
needs:
- tests
- coverage
- linters
- binary-wheels-standard
- pure-python-wheel-and-sdist
- binary-wheels-arm
steps:
- run: echo "Great success!"
pypi-publish:
# Only publish if all other jobs succeed
needs: [ allgood ]
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: dist
pattern: artifact-*
merge-multiple: true
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install twine
run: |
pip install twine
- name: Check and publish
run: |
twine check --strict dist/*
twine upload dist/*
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
tomli-2.2.1/.gitignore 0000664 0000000 0000000 00000003456 14721714455 0014652 0 ustar 00root root 0000000 0000000 # Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# IntelliJ
.idea/
# VS Code
.vscode/
tomli-2.2.1/.pre-commit-config.yaml 0000664 0000000 0000000 00000003720 14721714455 0017135 0 ustar 00root root 0000000 0000000 repos:
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: a30f0d816e5062a67d87c8de753cfe499672b959 # frozen: v1.5.5
hooks:
- id: insert-license
files: '^src/.+\.py$|^tests/.+\.py$'
args: ['--license-filepath', 'LICENSE-HEADER']
- repo: https://github.com/executablebooks/mdformat
rev: 00812cd1850e41aae5c0916645b4b7404f538e8c # frozen: 0.7.19
hooks:
- id: mdformat
additional_dependencies:
- mdformat-toc
- mdformat-gfm
- mdformat-black
- repo: https://github.com/asottile/yesqa
rev: f2ae90cf9e1661ade79d0881186ce4fd7ba6ee79 # frozen: v1.5.0
hooks:
- id: yesqa
additional_dependencies:
- flake8-bugbear
- flake8-builtins
- flake8-comprehensions
- repo: https://github.com/MarcoGorelli/absolufy-imports
rev: 1683a63d850e065495c05b771e4a20db010a58e7 # frozen: v0.3.1
hooks:
- id: absolufy-imports
files: '^src/.+\.py$'
args: ['--never', '--application-directories', 'src']
- repo: https://github.com/PyCQA/isort
rev: c235f5e450b4b84e58d114ed4c589cbf454175a3 # frozen: 5.13.2
hooks:
- id: isort
- repo: https://github.com/psf/black
rev: 1b2427a2b785cc4aac97c19bb4b9a0de063f9547 # frozen: 24.10.0
hooks:
- id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: cef0300fd0fc4d2a87a85fa2093c6b283ea36f4b # frozen: v5.0.0
hooks:
- id: check-yaml
- repo: https://github.com/pre-commit/pygrep-hooks
rev: 3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316 # frozen: v1.10.0
hooks:
- id: python-use-type-annotations
- id: python-check-blanket-noqa
- id: python-check-blanket-type-ignore
- repo: https://github.com/PyCQA/flake8
rev: e43806be3607110919eff72939fda031776e885a # frozen: 7.1.1
hooks:
- id: flake8
additional_dependencies:
- flake8-bugbear
- flake8-builtins
- flake8-comprehensions
- repo: https://github.com/pre-commit/mirrors-mypy
rev: f56614daa94d5cd733d3b7004c5df9caad267b4a # frozen: v1.13.0
hooks:
- id: mypy
args: ["--scripts-are-modules"]
tomli-2.2.1/CHANGELOG.md 0000664 0000000 0000000 00000012002 14721714455 0014456 0 ustar 00root root 0000000 0000000 # Changelog
## 2.2.0
- Added
- mypyc generated binary wheels for common platforms
## 2.1.0
- Deprecated
- Instantiating `TOMLDecodeError` with free-form arguments.
`msg`, `doc` and `pos` arguments should be given.
- Added
- `msg`, `doc`, `pos`, `lineno` and `colno` attributes to `TOMLDecodeError`
## 2.0.2
- Removed
- Python 3.7 support
- Improved
- Make `loads` raise `TypeError` not `AttributeError` on bad input types that do not have the `replace` attribute.
Improve error message when `bytes` is received.
- Type annotations
- Type annotate `load` input as `typing.IO[bytes]` (previously `typing.BinaryIO`).
## 2.0.1
- Improved
- Make bundling easier by using relative imports internally and adding license and copyright notice to source files.
- Make error messages more uniform
- Raise a friendly `TypeError` for wrong file mode
- Allow `parse_float` to return objects having the `append` attr
- Eagerly raise an error if `parse_float` returns an illegal type
- Packaging
- Move from `pytest` testing framework to `unittest` and remove `python-dateutil` test dependency.
Tests now only require Python interpreter.
## 1.2.3
- Fixed
- Backport: Allow lower case "t" and "z" in datetimes
## 2.0.0
- Removed
- Python 3.6 support
- Support for text file objects as `load` input. Use binary file objects instead.
- First argument of `load` and `loads` can no longer be passed by keyword.
- Fixed
- Allow lower case "t" and "z" in datetimes
- Improved
- Raise an error when dotted keys define values outside the "current table".
Technically speaking TOML v1.0.0 does allow such assignments
but that isn't intended by specification writers,
and will change in a future specification version (see the [pull request](https://github.com/toml-lang/toml/pull/848)).
## 1.2.2
- Fixed
- Illegal characters in error messages were surrounded by two pairs of quotation marks
- Improved
- `TOMLDecodeError.__module__` is now the public import path (`tomli`) instead of private import path (`tomli._parser`)
- Eliminated an import cycle when `typing.TYPE_CHECKING` is `True`.
This allows `sphinx-autodoc-typehints` to resolve type annotations.
## 1.2.1
- Fixed
- Raise an error if a carriage return (without a following line feed) is found in a multi-line basic string
- Type annotations
- Type annotate `load` input as `typing.BinaryIO` only to discourage use of deprecated text file objects.
- Packaging
- Remove legacy `setup.py` from PyPI source distribution.
If you're a packager and absolutely need this file, please create an issue.
## 1.2.0
- Deprecated
- Text file objects as input to `load`.
Binary file objects should be used instead to avoid opening a TOML file with universal newlines or with an encoding other than UTF-8.
## 1.1.0
- Added
- `load` can now take a binary file object
## 1.0.4
- Performance
- Minor boost (~4%)
## 1.0.3
- Fixed
- Raise `TOMLDecodeError` instead of `ValueError` when parsing dates and datetimes that pass the regex check but don't correspond to a valid date or datetime.
- Performance
- Improved multiline literal string parsing performance
## 1.0.2
- Performance
- Minor boost (~4%)
## 1.0.1
- Performance
- A significant boost
## 1.0.0
- Fixed
- Raise `TOMLDecodeError` instead of `KeyError` when overwriting implicitly in an inline table
## 0.2.10
- Fixed
- Raise `TOMLDecodeError` if overwriting nested inline tables from the parent inline
- Raise `TOMLDecodeError` if escaped Unicode character is not a Unicode scalar value
- Performance
- Increased parsing speed of single line basic strings, and multi-line literal and basic strings
## 0.2.9
- Fixed
- `TOMLDecodeError` now raised when opening a table implicitly created by a key/value pair
- Don't error when two array-of-tables items open a subtable with the same name
- Don't error when opening parent table of an already defined array-of-tables item
## 0.2.8
- Performance
- Significant boost to comment parsing speed
## 0.2.7
- Added
- Improved `TOMLDecodeError` error messages.
Line and column are included when applicable.
## 0.2.6
- Performance
- Over 5% boost
## 0.2.5
- Fixed
- Made exception type `TOMLDecodeError` when overwriting a value with a deeply nested table
## 0.2.4
- Fixed
- `TOMLDecodeError` is now raised when attempting to overwrite a value in an inline table's or array's namespace with a table definition
## 0.2.3
- Fixed
- Error type was not TOMLDecodeError in some obscure cases
## 0.2.2
- Added
- `tomli.load` for parsing IO streams returned by `open()`
- `parse_float` keyword argument to `tomli.loads`.
Allows parsing TOML floats to a non-float type in Python.
## 0.2.1
- Fixed
- `TOMLDecodeError` is now raised for duplicate keys in inline tables,
as opposed to silently overriding the previous value
## 0.2.0
- Changed
- Project name to Tomli
- Performance
- A performance boost
## 0.1.0
- Added
- `tomli.loads` for parsing TOML strings
- `tomli.TOMLDecodeError` that is raised for parse errors
tomli-2.2.1/LICENSE 0000664 0000000 0000000 00000002060 14721714455 0013655 0 ustar 00root root 0000000 0000000 MIT License
Copyright (c) 2021 Taneli Hukkinen
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, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
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.
tomli-2.2.1/LICENSE-HEADER 0000664 0000000 0000000 00000000171 14721714455 0014604 0 ustar 00root root 0000000 0000000 SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: 2021 Taneli Hukkinen
Licensed to PSF under a Contributor Agreement.
tomli-2.2.1/MANIFEST.in 0000664 0000000 0000000 00000000015 14721714455 0014404 0 ustar 00root root 0000000 0000000 prune tests/
tomli-2.2.1/README.md 0000664 0000000 0000000 00000022652 14721714455 0014140 0 ustar 00root root 0000000 0000000 [](https://github.com/hukkin/tomli/actions?query=workflow%3ATests+branch%3Amaster+event%3Apush)
[](https://codecov.io/gh/hukkin/tomli)
[](https://pypi.org/project/tomli)
# Tomli
> A lil' TOML parser
**Table of Contents** *generated with [mdformat-toc](https://github.com/hukkin/mdformat-toc)*
- [Intro](#intro)
- [Installation](#installation)
- [Usage](#usage)
- [Parse a TOML string](#parse-a-toml-string)
- [Parse a TOML file](#parse-a-toml-file)
- [Handle invalid TOML](#handle-invalid-toml)
- [Construct `decimal.Decimal`s from TOML floats](#construct-decimaldecimals-from-toml-floats)
- [Building a `tomli`/`tomllib` compatibility layer](#building-a-tomlitomllib-compatibility-layer)
- [FAQ](#faq)
- [Why this parser?](#why-this-parser)
- [Is comment preserving round-trip parsing supported?](#is-comment-preserving-round-trip-parsing-supported)
- [Is there a `dumps`, `write` or `encode` function?](#is-there-a-dumps-write-or-encode-function)
- [How do TOML types map into Python types?](#how-do-toml-types-map-into-python-types)
- [Performance](#performance)
- [Pure Python](#pure-python)
- [Mypyc generated wheel](#mypyc-generated-wheel)
## Intro
Tomli is a Python library for parsing [TOML](https://toml.io).
It is fully compatible with [TOML v1.0.0](https://toml.io/en/v1.0.0).
A version of Tomli, the `tomllib` module,
was added to the standard library in Python 3.11
via [PEP 680](https://www.python.org/dev/peps/pep-0680/).
Tomli continues to provide a backport on PyPI for Python versions
where the standard library module is not available
and that have not yet reached their end-of-life.
Tomli uses [mypyc](https://github.com/mypyc/mypyc)
to generate binary wheels for most of the widely used platforms,
so Python 3.11+ users may prefer it over `tomllib` for improved performance.
Pure Python wheels are available on any platform and should perform the same as `tomllib`.
## Installation
```bash
pip install tomli
```
## Usage
### Parse a TOML string
```python
import tomli
toml_str = """
[[players]]
name = "Lehtinen"
number = 26
[[players]]
name = "Numminen"
number = 27
"""
toml_dict = tomli.loads(toml_str)
assert toml_dict == {
"players": [{"name": "Lehtinen", "number": 26}, {"name": "Numminen", "number": 27}]
}
```
### Parse a TOML file
```python
import tomli
with open("path_to_file/conf.toml", "rb") as f:
toml_dict = tomli.load(f)
```
The file must be opened in binary mode (with the `"rb"` flag).
Binary mode will enforce decoding the file as UTF-8 with universal newlines disabled,
both of which are required to correctly parse TOML.
### Handle invalid TOML
```python
import tomli
try:
toml_dict = tomli.loads("]] this is invalid TOML [[")
except tomli.TOMLDecodeError:
print("Yep, definitely not valid.")
```
Note that error messages are considered informational only.
They should not be assumed to stay constant across Tomli versions.
### Construct `decimal.Decimal`s from TOML floats
```python
from decimal import Decimal
import tomli
toml_dict = tomli.loads("precision-matters = 0.982492", parse_float=Decimal)
assert isinstance(toml_dict["precision-matters"], Decimal)
assert toml_dict["precision-matters"] == Decimal("0.982492")
```
Note that `decimal.Decimal` can be replaced with another callable that converts a TOML float from string to a Python type.
The `decimal.Decimal` is, however, a practical choice for use cases where float inaccuracies can not be tolerated.
Illegal types are `dict` and `list`, and their subtypes.
A `ValueError` will be raised if `parse_float` produces illegal types.
### Building a `tomli`/`tomllib` compatibility layer
Python versions 3.11+ ship with a version of Tomli:
the `tomllib` standard library module.
To build code that uses the standard library if available,
but still works seamlessly with Python 3.6+,
do the following.
Instead of a hard Tomli dependency, use the following
[dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/)
to only require Tomli when the standard library module is not available:
```
tomli >= 1.1.0 ; python_version < "3.11"
```
Then, in your code, import a TOML parser using the following fallback mechanism:
```python
import sys
if sys.version_info >= (3, 11):
import tomllib
else:
import tomli as tomllib
tomllib.loads("['This parses fine with Python 3.6+']")
```
## FAQ
### Why this parser?
- it's lil'
- pure Python with zero dependencies
- the fastest pure Python parser [\*](#pure-python):
18x as fast as [tomlkit](https://pypi.org/project/tomlkit/),
2.1x as fast as [toml](https://pypi.org/project/toml/)
- outputs [basic data types](#how-do-toml-types-map-into-python-types) only
- 100% spec compliant: passes all tests in
[BurntSushi/toml-test](https://github.com/BurntSushi/toml-test)
test suite
- thoroughly tested: 100% branch coverage
### Is comment preserving round-trip parsing supported?
No.
The `tomli.loads` function returns a plain `dict` that is populated with builtin types and types from the standard library only.
Preserving comments requires a custom type to be returned so will not be supported,
at least not by the `tomli.loads` and `tomli.load` functions.
Look into [TOML Kit](https://github.com/sdispater/tomlkit) if preservation of style is what you need.
### Is there a `dumps`, `write` or `encode` function?
[Tomli-W](https://github.com/hukkin/tomli-w) is the write-only counterpart of Tomli, providing `dump` and `dumps` functions.
The core library does not include write capability, as most TOML use cases are read-only, and Tomli intends to be minimal.
### How do TOML types map into Python types?
| TOML type | Python type | Details |
| ---------------- | ------------------- | ------------------------------------------------------------ |
| Document Root | `dict` | |
| Key | `str` | |
| String | `str` | |
| Integer | `int` | |
| Float | `float` | |
| Boolean | `bool` | |
| Offset Date-Time | `datetime.datetime` | `tzinfo` attribute set to an instance of `datetime.timezone` |
| Local Date-Time | `datetime.datetime` | `tzinfo` attribute set to `None` |
| Local Date | `datetime.date` | |
| Local Time | `datetime.time` | |
| Array | `list` | |
| Table | `dict` | |
| Inline Table | `dict` | |
## Performance
The `benchmark/` folder in this repository contains a performance benchmark for comparing the various Python TOML parsers.
Below are the results for commit [0724e2a](https://github.com/hukkin/tomli/tree/0724e2ab1858da7f5e05a9bffdb24c33589d951c).
### Pure Python
```console
foo@bar:~/dev/tomli$ python --version
Python 3.12.7
foo@bar:~/dev/tomli$ pip freeze
attrs==21.4.0
click==8.1.7
pytomlpp==1.0.13
qtoml==0.3.1
rtoml==0.11.0
toml==0.10.2
tomli @ file:///home/foo/dev/tomli
tomlkit==0.13.2
foo@bar:~/dev/tomli$ python benchmark/run.py
Parsing data.toml 5000 times:
------------------------------------------------------
parser | exec time | performance (more is better)
-----------+------------+-----------------------------
rtoml | 0.647 s | baseline (100%)
pytomlpp | 0.891 s | 72.62%
tomli | 3.14 s | 20.56%
toml | 6.69 s | 9.67%
qtoml | 8.27 s | 7.82%
tomlkit | 56.1 s | 1.15%
```
### Mypyc generated wheel
```console
foo@bar:~/dev/tomli$ python benchmark/run.py
Parsing data.toml 5000 times:
------------------------------------------------------
parser | exec time | performance (more is better)
-----------+------------+-----------------------------
rtoml | 0.668 s | baseline (100%)
pytomlpp | 0.893 s | 74.81%
tomli | 1.96 s | 34.18%
toml | 6.64 s | 10.07%
qtoml | 8.26 s | 8.09%
tomlkit | 52.9 s | 1.26%
```
tomli-2.2.1/benchmark/ 0000775 0000000 0000000 00000000000 14721714455 0014604 5 ustar 00root root 0000000 0000000 tomli-2.2.1/benchmark/LICENSE 0000664 0000000 0000000 00000002150 14721714455 0015607 0 ustar 00root root 0000000 0000000 MIT License
Copyright (c) 2020 Bob Fang (bob.fang.london@gmail.com)
Copyright (c) 2021 Taneli Hukkinen
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, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
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.
tomli-2.2.1/benchmark/README.md 0000664 0000000 0000000 00000000626 14721714455 0016067 0 ustar 00root root 0000000 0000000 # Benchmark
## Acknowledgments
This benchmark was shamelessly copied from
[pytomlpp](https://github.com/bobfang1992/pytomlpp/tree/e6b03726f8347c6a6757f520ad1b5fab68ed8534/benchmark)
repository and edited.
Credit goes to the authors of that project.
## Running
### Against the local Tomli state
```bash
tox -e benchmark
```
### Against the latest Tomli PyPI release
```bash
tox -e benchmark-pypi
```
tomli-2.2.1/benchmark/data.toml 0000664 0000000 0000000 00000007665 14721714455 0016430 0 ustar 00root root 0000000 0000000 addition-used = false
afraid-boiling-draconian = 1916-12-15T11:26:42+11:26
boiling-whip = 12:23:17.000129
charming = 16771
close-unbecoming = 14:49:02
contain-terrible-neck = 1928-11-07T06:30:56
creature = 0.4857
crowded-profuse-capable = 1932-05-28
deserted-cross-creature = 1931-12-26T04:31:04
deserted-heavy = [ 2014-02-08, 1984-03-16, 1910-08-05 ]
fabulous = 0.3388
ghost-birds-legal = 1989-09-02
grandfather-weary = 10216
haircut-dreary-broken = 'unadvised rejoice lewd crime grandfather rice imperfect'
harm-snow = 0.6724
leather-aromatic-rabbit = false
license-harm = 1987-08-15T15:30:51+03:24
naughty-self-close = 1916-09-21T01:53:27-02:59
neck = 29653
neck-crime-wistful = 1998-12-07
rest-afraid = [
1912-06-23T07:00:07-07:46, # this is a datetime
1910-11-17T13:10:34, # pretty sure this is also a datetime
2014-08-03T04:37:12-06:36, # and this
1966-11-22T18:08:23+06:10, # and this
1985-03-01T08:11:38, # what about this?
1976-09-04T20:46:46+00:29, # yes that also
1964-05-18T20:13:27-01:25, # ...
1961-10-14T11:03:51.011555+06:23,
2005-07-13T02:57:15-01:46, # wonder how many comments there are typically in
2007-02-01T17:09:54-08:45, # a TOML file of this size
1952-03-06T09:15:04+01:44,
1962-12-25T23:00:11+04:28
]
rotten-best = 0.0325
run-curious = true
run-meaty = 04:40:20.003312
scintillating-cream = 0.2604
sisters-playground = 'week spiritual pause insidious uptight'
spiritual-borrow-messy = 16:49:32
surprise-jail-babies = 2008-01-01
title-unbiased = 1958-10-08
unbecoming-scene-lewd = true
worried-spicy = 23:03:54
[contain]
ghost = 0.2471
tank-lackadaisical = 1945-02-18T22:22:27+01:41
[contain.righteous-imperfect-remarkable]
ticket = 0.2412
voyage = 'prefer silky night draconian three dreary decisive'
wilderness-draconian = 04:58:17
[contain.righteous-imperfect-remarkable.deeply-night-gold]
legal = 1981-07-04
righteous = [ false, true, false, false, true ]
wilderness = 1900-12-24
[crime]
boiling-excuse-incandescent = 31173
flat-rejoice = 0.8682
furtive = 6866
heavy-memory = 5545
lackadaisical-terrible-overjoyed = [ 'harm acceptable naughty pause', 'page anxious threatening lewd' ]
reject-aromatic = [ false, true, true, true, false, true ]
reject-naughty = 11229
scintillating-bake-harm = 0.8258
[license-bat]
adorable-blind-string = 1961-08-14
bat = 1939-10-28
blind-wilderness = 2004-07-14
[rapid]
borrow = true
jail-weary-furtive = 'room'
protective-sulky = 4737
room-decisive-unbiased = 1998-11-01T12:23:58
soap = 1985-05-06
sprout-rich = 0.6026
[rapid.clean-leather]
blood-snow-mark = true
equable = 0.2923
fabulous = 1979-07-24T00:53:39+06:22
glorious-threatening = true
lewd-dull = 02:40:53.027288
[run-overjoyed]
creature-cheerful = 11071
respect-history-anxious = 0.4637
vessel = 'curious'
[inline-tables]
table1 ={ the-text-in-this = 'file is weeiiird' , autogenerated-perhaps= 1199999 , subtableee = {blii=false}}
table2 = { arr = [ { id = 0 }, { id = 1}, { id = 2} ] }
[[dynamic-arrays.products]]
name = "juusto"
[[dynamic-arrays.products]]
name = "tee \t\t kannu"
[[dynamic-arrays.products]]
name = "\n\nkahvi"
[[dynamic-arrays.products]]
name = "\"riisi\""
[[dynamic-arrays.products]]
name = "puuro \\ riisipuuro"
# Fusce sit amet risus vel sapien vestibulum interdum. Aliquam finibus
# finibus nibh, sed mattis nulla lacinia in. Nunc ac volutpat massa,
# at fringilla dui. In dignissim pellentesque luctus. Cras ac ex metus.
# Duis ut molestie augue. Donec vitae nulla massa. Sed blandit diam sit
# amet mauris posuere consectetur.
[multiline-strings]
literal-str = '''
Liirum laarum liirum laarum.
Liirum laarum liirum laarum.
Liirum laarum liirum laarum.
'''
basic-str = """\
Escape whitespace. \
Liirum laarum liirum laarum.\ueeee\U000eeeee\u1234
"""
tomli-2.2.1/benchmark/requirements.txt 0000664 0000000 0000000 00000000277 14721714455 0020076 0 ustar 00root root 0000000 0000000 # NOTE
# Tomli itself is not included here because tox is used to read
# this file and install the deps, and it handles the Tomli
# installation separately.
pytomlpp
toml
tomlkit
qtoml
rtoml
tomli-2.2.1/benchmark/run.py 0000664 0000000 0000000 00000004444 14721714455 0015770 0 ustar 00root root 0000000 0000000 from __future__ import annotations
from collections.abc import Callable
from pathlib import Path
import timeit
import pytomlpp
import qtoml
import rtoml
import toml
import tomlkit
import tomli
def benchmark(
name: str,
run_count: int,
func: Callable,
col_width: tuple,
compare_to: float | None = None,
) -> float:
placeholder = "Running..."
print(f"{name:>{col_width[0]}} | {placeholder}", end="", flush=True)
time_taken = timeit.timeit(func, number=run_count)
print("\b" * len(placeholder), end="")
time_suffix = " s"
print(f"{time_taken:{col_width[1]-len(time_suffix)}.3g}{time_suffix}", end="")
if compare_to is None:
print(" | baseline (100%)", end="")
else:
delta = compare_to / time_taken
print(f" | {delta:.2%}", end="")
print()
return time_taken
def run(run_count: int) -> None:
data_path = Path(__file__).parent / "data.toml"
test_data = data_path.read_bytes().decode()
# qtoml has a bug making it crash without this newline normalization
test_data = test_data.replace("\r\n", "\n")
col_width = (10, 10, 28)
col_head = ("parser", "exec time", "performance (more is better)")
print(f"Parsing data.toml {run_count} times:")
print("-" * col_width[0] + "---" + "-" * col_width[1] + "---" + col_width[2] * "-")
print(
f"{col_head[0]:>{col_width[0]}} | {col_head[1]:>{col_width[1]}} | {col_head[2]}"
)
print("-" * col_width[0] + "-+-" + "-" * col_width[1] + "-+-" + col_width[2] * "-")
# fmt: off
baseline = benchmark("rtoml", run_count, lambda: rtoml.loads(test_data), col_width) # noqa: E501
benchmark("pytomlpp", run_count, lambda: pytomlpp.loads(test_data), col_width, compare_to=baseline) # noqa: E501
benchmark("tomli", run_count, lambda: tomli.loads(test_data), col_width, compare_to=baseline) # noqa: E501
benchmark("toml", run_count, lambda: toml.loads(test_data), col_width, compare_to=baseline) # noqa: E501
benchmark("qtoml", run_count, lambda: qtoml.loads(test_data), col_width, compare_to=baseline) # noqa: E501
benchmark("tomlkit", run_count, lambda: tomlkit.parse(test_data), col_width, compare_to=baseline) # noqa: E501
# fmt: on
if __name__ == "__main__":
run(5000)
tomli-2.2.1/fuzzer/ 0000775 0000000 0000000 00000000000 14721714455 0014177 5 ustar 00root root 0000000 0000000 tomli-2.2.1/fuzzer/fuzz.py 0000664 0000000 0000000 00000004124 14721714455 0015550 0 ustar 00root root 0000000 0000000 import atheris
with atheris.instrument_imports():
from math import isnan
import sys
import warnings
import tomli_w
import tomli
# Disable any caching used so that the same lines of code run
# on a given input consistently.
tomli._re.cached_tz = tomli._re.cached_tz.__wrapped__
# Suppress all warnings.
warnings.simplefilter("ignore")
def test_one_input(input_bytes: bytes) -> None:
# We need a Unicode string, not bytes
fdp = atheris.FuzzedDataProvider(input_bytes)
data = fdp.ConsumeUnicode(sys.maxsize)
try:
toml_obj = tomli.loads(data)
except (tomli.TOMLDecodeError, RecursionError):
return
except BaseException:
print_err(data)
raise
try:
recovered_data = tomli_w.dumps(toml_obj)
except RecursionError:
return
except BaseException:
print_err(data)
raise
roundtripped_obj = tomli.loads(recovered_data)
normalize_toml_obj(roundtripped_obj)
normalize_toml_obj(toml_obj)
if roundtripped_obj != toml_obj:
sys.stderr.write(
f"Original dict:\n{toml_obj}\nRoundtripped dict:\n{roundtripped_obj}\n"
)
sys.stderr.flush()
print_err(data)
raise Exception("Dicts not equal after roundtrip")
def print_err(data):
codepoints = [hex(ord(x)) for x in data]
sys.stderr.write(f"Input was {type(data)}:\n{data}\nCodepoints:\n{codepoints}\n")
sys.stderr.flush()
def normalize_toml_obj(toml_obj: dict) -> None:
"""Make NaNs equal when compared (without using recursion)."""
to_process = [toml_obj]
while to_process:
cont = to_process.pop()
for k, v in cont.items() if isinstance(cont, dict) else enumerate(cont):
if isinstance(v, float) and isnan(v):
cont[k] = "nan"
elif isinstance(v, (dict, list)):
to_process.append(v)
def main():
# For possible options, see https://llvm.org/docs/LibFuzzer.html#options
fuzzer_options = sys.argv
atheris.Setup(fuzzer_options, test_one_input)
atheris.Fuzz()
if __name__ == "__main__":
main()
tomli-2.2.1/fuzzer/requirements.txt 0000664 0000000 0000000 00000000101 14721714455 0017453 0 ustar 00root root 0000000 0000000 # sudo apt-get install clang
wheel
atheris==2.0.7
tomli_w>=0.2.2
tomli-2.2.1/profiler/ 0000775 0000000 0000000 00000000000 14721714455 0014474 5 ustar 00root root 0000000 0000000 tomli-2.2.1/profiler/profiler_script.py 0000664 0000000 0000000 00000000613 14721714455 0020254 0 ustar 00root root 0000000 0000000 """A script for profiling.
To generate and read results:
- `tox -e profile`
- `firefox .tox/prof/output.svg`
"""
from pathlib import Path
import tomli
benchmark_toml = (
(Path(__file__).parent.parent / "benchmark" / "data.toml").read_bytes().decode()
)
# Run this a few times to emphasize over imports and other overhead above.
for _ in range(1000):
tomli.loads(benchmark_toml)
tomli-2.2.1/profiler/requirements.txt 0000664 0000000 0000000 00000000012 14721714455 0017751 0 ustar 00root root 0000000 0000000 gprof2dot
tomli-2.2.1/pyproject.toml 0000664 0000000 0000000 00000011503 14721714455 0015566 0 ustar 00root root 0000000 0000000 [build-system]
requires = ["flit_core>=3.2.0,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "tomli"
version = "2.2.1" # DO NOT EDIT THIS LINE MANUALLY. LET bump2version UTILITY DO IT
description = "A lil' TOML parser"
authors = [
{ name = "Taneli Hukkinen", email = "hukkin@users.noreply.github.com" },
]
license = { file = "LICENSE" }
requires-python = ">=3.8"
readme = "README.md"
classifiers = [
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Libraries :: Python Modules",
"Typing :: Typed",
]
keywords = ["toml"]
[project.urls]
"Homepage" = "https://github.com/hukkin/tomli"
"Changelog" = "https://github.com/hukkin/tomli/blob/master/CHANGELOG.md"
[tool.isort]
# Force imports to be sorted by module, independent of import type
force_sort_within_sections = true
# Group first party and local folder imports together
no_lines_before = ["LOCALFOLDER"]
# Configure isort to work without access to site-packages
known_first_party = ["tomli", "tests"]
# Settings for Black compatibility
profile = "black"
[tool.tox]
requires = ["tox>=4.21.1"]
# Only run unittest envs when no args given to tox
env_list = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
[tool.tox.env_run_base]
description = "run tests against a built package under {base_python}"
pass_env = ["TOMLI_USE_MYPYC"]
commands = [
["python", "-m", "unittest", { replace = "posargs", extend = true }],
]
[tool.tox.env."profile"]
description = "run profiler (use e.g. `firefox .tox/prof/output.svg` to open)"
deps = [
"-r profiler/requirements.txt",
]
allowlist_externals = [
"mkdir",
"dot",
]
commands = [
["mkdir", "-p", "{toxworkdir}/prof"],
["python", "-m", "cProfile", "-o", "{toxworkdir}/prof/output.pstats", "profiler/profiler_script.py"],
["gprof2dot", "-f", "pstats", "-o", "{toxworkdir}/prof/output.dot", "{toxworkdir}/prof/output.pstats"],
["dot", "-Tsvg", "-o", "{toxworkdir}/prof/output.svg", "{toxworkdir}/prof/output.dot"],
["python", "-c", 'import pathlib; print("profiler svg output under file://\{0\}".format(pathlib.Path(r"{toxworkdir}") / "prof" / "output.svg"))'],
]
[tool.tox.env."pre-commit"]
description = "run linters"
skip_install = true
deps = ["pre-commit"]
commands = [
["pre-commit", "run", { replace = "posargs", default = ["--all"], extend = true }],
]
[tool.tox.env."benchmark"]
description = "run the benchmark script against a local Tomli version"
deps = ["-r benchmark/requirements.txt"]
commands = [
["python", "-c", "import datetime; print(datetime.date.today())"],
["python", "--version"],
["python", "benchmark/run.py"],
]
[tool.tox.env."benchmark-pypi"]
description = "run the benchmark script against the latest Tomli in PyPI"
skip_install = true
deps = [
"tomli",
"-r benchmark/requirements.txt",
]
commands = [
["python", "-c", "import datetime; print(datetime.date.today())"],
["python", "--version"],
["python", "benchmark/run.py"],
]
[tool.tox.env."fuzz"]
description = 'run the fuzzer against a local Tomli version (needs "apt install clang")'
deps = [
"-r fuzzer/requirements.txt",
]
allowlist_externals = [
"mkdir",
"cp",
]
commands = [
# Create a folder for persistent corpus and use benchmark data as initial seed
["mkdir", "-p", "{toxworkdir}/fuzzer-corpus"],
["cp", "-n", "benchmark/data.toml", "{toxworkdir}/fuzzer-corpus/data.toml"],
# Run fuzzer
["python", "fuzzer/fuzz.py", "{toxworkdir}/fuzzer-corpus", { replace = "posargs", default = ["-len_control=10000"], extend = true }],
]
[tool.coverage.run]
branch = true
source = ['tomli']
[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_lines = [
# Re-enable the standard pragma (with extra strictness)
'# pragma: no cover\b',
# Code for static type checkers
'if TYPE_CHECKING:',
# Scripts
'if __name__ == .__main__.:',
]
[tool.mypy]
show_error_codes = true
warn_unreachable = true
warn_unused_ignores = true
warn_redundant_casts = true
warn_unused_configs = true
# Disabling incremental mode is required for `warn_unused_configs = true` to work
incremental = false
disallow_untyped_defs = true
check_untyped_defs = true
strict_equality = true
implicit_reexport = false
no_implicit_optional = true
[[tool.mypy.overrides]]
module = "tests.*"
disallow_untyped_defs = false
[[tool.mypy.overrides]]
# This matches `benchmark/run.py`. Since benchmark/ is
# not a package, we use the module name here.
module = "run"
ignore_errors = true
[[tool.mypy.overrides]]
# This matches `fuzzer/fuzz.py`.
module = "fuzz"
ignore_errors = true
tomli-2.2.1/scripts/ 0000775 0000000 0000000 00000000000 14721714455 0014341 5 ustar 00root root 0000000 0000000 tomli-2.2.1/scripts/requirements.txt 0000664 0000000 0000000 00000000010 14721714455 0017614 0 ustar 00root root 0000000 0000000 tomli-w
tomli-2.2.1/scripts/use_setuptools.py 0000664 0000000 0000000 00000000622 14721714455 0020010 0 ustar 00root root 0000000 0000000 from pathlib import Path
import tomllib
import tomli_w # type: ignore[import-not-found]
pyproject_path = Path(__file__).parent.parent / "pyproject.toml"
data = tomllib.loads(pyproject_path.read_bytes().decode())
data["build-system"] = {
"requires": ["setuptools>=69", "mypy[mypyc]>=1.13"],
"build-backend": "setuptools.build_meta",
}
pyproject_path.write_bytes(tomli_w.dumps(data).encode())
tomli-2.2.1/setup.py 0000664 0000000 0000000 00000000537 14721714455 0014371 0 ustar 00root root 0000000 0000000 import os
from setuptools import setup # type: ignore[import-untyped]
if os.environ.get("TOMLI_USE_MYPYC") == "1":
import glob
from mypyc.build import mypycify # type: ignore[import-untyped]
files = glob.glob("src/**/*.py", recursive=True)
ext_modules = mypycify(files)
else:
ext_modules = []
setup(ext_modules=ext_modules)
tomli-2.2.1/src/ 0000775 0000000 0000000 00000000000 14721714455 0013441 5 ustar 00root root 0000000 0000000 tomli-2.2.1/src/tomli/ 0000775 0000000 0000000 00000000000 14721714455 0014565 5 ustar 00root root 0000000 0000000 tomli-2.2.1/src/tomli/__init__.py 0000664 0000000 0000000 00000000472 14721714455 0016701 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
__all__ = ("loads", "load", "TOMLDecodeError")
__version__ = "2.2.1" # DO NOT EDIT THIS LINE MANUALLY. LET bump2version UTILITY DO IT
from ._parser import TOMLDecodeError, load, loads
tomli-2.2.1/src/tomli/_parser.py 0000664 0000000 0000000 00000061767 14721714455 0016613 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
from __future__ import annotations
from collections.abc import Iterable
import string
import sys
from types import MappingProxyType
from typing import IO, Any, Final, NamedTuple
import warnings
from ._re import (
RE_DATETIME,
RE_LOCALTIME,
RE_NUMBER,
match_to_datetime,
match_to_localtime,
match_to_number,
)
from ._types import Key, ParseFloat, Pos
# Inline tables/arrays are implemented using recursion. Pathologically
# nested documents cause pure Python to raise RecursionError (which is OK),
# but mypyc binary wheels will crash unrecoverably (not OK). According to
# mypyc docs this will be fixed in the future:
# https://mypyc.readthedocs.io/en/latest/differences_from_python.html#stack-overflows
# Before mypyc's fix is in, recursion needs to be limited by this library.
# Choosing `sys.getrecursionlimit()` as maximum inline table/array nesting
# level, as it allows more nesting than pure Python, but still seems a far
# lower number than where mypyc binaries crash.
MAX_INLINE_NESTING: Final = sys.getrecursionlimit()
ASCII_CTRL: Final = frozenset(chr(i) for i in range(32)) | frozenset(chr(127))
# Neither of these sets include quotation mark or backslash. They are
# currently handled as separate cases in the parser functions.
ILLEGAL_BASIC_STR_CHARS: Final = ASCII_CTRL - frozenset("\t")
ILLEGAL_MULTILINE_BASIC_STR_CHARS: Final = ASCII_CTRL - frozenset("\t\n")
ILLEGAL_LITERAL_STR_CHARS: Final = ILLEGAL_BASIC_STR_CHARS
ILLEGAL_MULTILINE_LITERAL_STR_CHARS: Final = ILLEGAL_MULTILINE_BASIC_STR_CHARS
ILLEGAL_COMMENT_CHARS: Final = ILLEGAL_BASIC_STR_CHARS
TOML_WS: Final = frozenset(" \t")
TOML_WS_AND_NEWLINE: Final = TOML_WS | frozenset("\n")
BARE_KEY_CHARS: Final = frozenset(string.ascii_letters + string.digits + "-_")
KEY_INITIAL_CHARS: Final = BARE_KEY_CHARS | frozenset("\"'")
HEXDIGIT_CHARS: Final = frozenset(string.hexdigits)
BASIC_STR_ESCAPE_REPLACEMENTS: Final = MappingProxyType(
{
"\\b": "\u0008", # backspace
"\\t": "\u0009", # tab
"\\n": "\u000A", # linefeed
"\\f": "\u000C", # form feed
"\\r": "\u000D", # carriage return
'\\"': "\u0022", # quote
"\\\\": "\u005C", # backslash
}
)
class DEPRECATED_DEFAULT:
"""Sentinel to be used as default arg during deprecation
period of TOMLDecodeError's free-form arguments."""
class TOMLDecodeError(ValueError):
"""An error raised if a document is not valid TOML.
Adds the following attributes to ValueError:
msg: The unformatted error message
doc: The TOML document being parsed
pos: The index of doc where parsing failed
lineno: The line corresponding to pos
colno: The column corresponding to pos
"""
def __init__(
self,
msg: str | type[DEPRECATED_DEFAULT] = DEPRECATED_DEFAULT,
doc: str | type[DEPRECATED_DEFAULT] = DEPRECATED_DEFAULT,
pos: Pos | type[DEPRECATED_DEFAULT] = DEPRECATED_DEFAULT,
*args: Any,
):
if (
args
or not isinstance(msg, str)
or not isinstance(doc, str)
or not isinstance(pos, int)
):
warnings.warn(
"Free-form arguments for TOMLDecodeError are deprecated. "
"Please set 'msg' (str), 'doc' (str) and 'pos' (int) arguments only.",
DeprecationWarning,
stacklevel=2,
)
if pos is not DEPRECATED_DEFAULT:
args = pos, *args
if doc is not DEPRECATED_DEFAULT:
args = doc, *args
if msg is not DEPRECATED_DEFAULT:
args = msg, *args
ValueError.__init__(self, *args)
return
lineno = doc.count("\n", 0, pos) + 1
if lineno == 1:
colno = pos + 1
else:
colno = pos - doc.rindex("\n", 0, pos)
if pos >= len(doc):
coord_repr = "end of document"
else:
coord_repr = f"line {lineno}, column {colno}"
errmsg = f"{msg} (at {coord_repr})"
ValueError.__init__(self, errmsg)
self.msg = msg
self.doc = doc
self.pos = pos
self.lineno = lineno
self.colno = colno
def load(__fp: IO[bytes], *, parse_float: ParseFloat = float) -> dict[str, Any]:
"""Parse TOML from a binary file object."""
b = __fp.read()
try:
s = b.decode()
except AttributeError:
raise TypeError(
"File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`"
) from None
return loads(s, parse_float=parse_float)
def loads(__s: str, *, parse_float: ParseFloat = float) -> dict[str, Any]: # noqa: C901
"""Parse TOML from a string."""
# The spec allows converting "\r\n" to "\n", even in string
# literals. Let's do so to simplify parsing.
try:
src = __s.replace("\r\n", "\n")
except (AttributeError, TypeError):
raise TypeError(
f"Expected str object, not '{type(__s).__qualname__}'"
) from None
pos = 0
out = Output(NestedDict(), Flags())
header: Key = ()
parse_float = make_safe_parse_float(parse_float)
# Parse one statement at a time
# (typically means one line in TOML source)
while True:
# 1. Skip line leading whitespace
pos = skip_chars(src, pos, TOML_WS)
# 2. Parse rules. Expect one of the following:
# - end of file
# - end of line
# - comment
# - key/value pair
# - append dict to list (and move to its namespace)
# - create dict (and move to its namespace)
# Skip trailing whitespace when applicable.
try:
char = src[pos]
except IndexError:
break
if char == "\n":
pos += 1
continue
if char in KEY_INITIAL_CHARS:
pos = key_value_rule(src, pos, out, header, parse_float)
pos = skip_chars(src, pos, TOML_WS)
elif char == "[":
try:
second_char: str | None = src[pos + 1]
except IndexError:
second_char = None
out.flags.finalize_pending()
if second_char == "[":
pos, header = create_list_rule(src, pos, out)
else:
pos, header = create_dict_rule(src, pos, out)
pos = skip_chars(src, pos, TOML_WS)
elif char != "#":
raise TOMLDecodeError("Invalid statement", src, pos)
# 3. Skip comment
pos = skip_comment(src, pos)
# 4. Expect end of line or end of file
try:
char = src[pos]
except IndexError:
break
if char != "\n":
raise TOMLDecodeError(
"Expected newline or end of document after a statement", src, pos
)
pos += 1
return out.data.dict
class Flags:
"""Flags that map to parsed keys/namespaces."""
# Marks an immutable namespace (inline array or inline table).
FROZEN: Final = 0
# Marks a nest that has been explicitly created and can no longer
# be opened using the "[table]" syntax.
EXPLICIT_NEST: Final = 1
def __init__(self) -> None:
self._flags: dict[str, dict] = {}
self._pending_flags: set[tuple[Key, int]] = set()
def add_pending(self, key: Key, flag: int) -> None:
self._pending_flags.add((key, flag))
def finalize_pending(self) -> None:
for key, flag in self._pending_flags:
self.set(key, flag, recursive=False)
self._pending_flags.clear()
def unset_all(self, key: Key) -> None:
cont = self._flags
for k in key[:-1]:
if k not in cont:
return
cont = cont[k]["nested"]
cont.pop(key[-1], None)
def set(self, key: Key, flag: int, *, recursive: bool) -> None: # noqa: A003
cont = self._flags
key_parent, key_stem = key[:-1], key[-1]
for k in key_parent:
if k not in cont:
cont[k] = {"flags": set(), "recursive_flags": set(), "nested": {}}
cont = cont[k]["nested"]
if key_stem not in cont:
cont[key_stem] = {"flags": set(), "recursive_flags": set(), "nested": {}}
cont[key_stem]["recursive_flags" if recursive else "flags"].add(flag)
def is_(self, key: Key, flag: int) -> bool:
if not key:
return False # document root has no flags
cont = self._flags
for k in key[:-1]:
if k not in cont:
return False
inner_cont = cont[k]
if flag in inner_cont["recursive_flags"]:
return True
cont = inner_cont["nested"]
key_stem = key[-1]
if key_stem in cont:
inner_cont = cont[key_stem]
return flag in inner_cont["flags"] or flag in inner_cont["recursive_flags"]
return False
class NestedDict:
def __init__(self) -> None:
# The parsed content of the TOML document
self.dict: dict[str, Any] = {}
def get_or_create_nest(
self,
key: Key,
*,
access_lists: bool = True,
) -> dict:
cont: Any = self.dict
for k in key:
if k not in cont:
cont[k] = {}
cont = cont[k]
if access_lists and isinstance(cont, list):
cont = cont[-1]
if not isinstance(cont, dict):
raise KeyError("There is no nest behind this key")
return cont
def append_nest_to_list(self, key: Key) -> None:
cont = self.get_or_create_nest(key[:-1])
last_key = key[-1]
if last_key in cont:
list_ = cont[last_key]
if not isinstance(list_, list):
raise KeyError("An object other than list found behind this key")
list_.append({})
else:
cont[last_key] = [{}]
class Output(NamedTuple):
data: NestedDict
flags: Flags
def skip_chars(src: str, pos: Pos, chars: Iterable[str]) -> Pos:
try:
while src[pos] in chars:
pos += 1
except IndexError:
pass
return pos
def skip_until(
src: str,
pos: Pos,
expect: str,
*,
error_on: frozenset[str],
error_on_eof: bool,
) -> Pos:
try:
new_pos = src.index(expect, pos)
except ValueError:
new_pos = len(src)
if error_on_eof:
raise TOMLDecodeError(f"Expected {expect!r}", src, new_pos) from None
if not error_on.isdisjoint(src[pos:new_pos]):
while src[pos] not in error_on:
pos += 1
raise TOMLDecodeError(f"Found invalid character {src[pos]!r}", src, pos)
return new_pos
def skip_comment(src: str, pos: Pos) -> Pos:
try:
char: str | None = src[pos]
except IndexError:
char = None
if char == "#":
return skip_until(
src, pos + 1, "\n", error_on=ILLEGAL_COMMENT_CHARS, error_on_eof=False
)
return pos
def skip_comments_and_array_ws(src: str, pos: Pos) -> Pos:
while True:
pos_before_skip = pos
pos = skip_chars(src, pos, TOML_WS_AND_NEWLINE)
pos = skip_comment(src, pos)
if pos == pos_before_skip:
return pos
def create_dict_rule(src: str, pos: Pos, out: Output) -> tuple[Pos, Key]:
pos += 1 # Skip "["
pos = skip_chars(src, pos, TOML_WS)
pos, key = parse_key(src, pos)
if out.flags.is_(key, Flags.EXPLICIT_NEST) or out.flags.is_(key, Flags.FROZEN):
raise TOMLDecodeError(f"Cannot declare {key} twice", src, pos)
out.flags.set(key, Flags.EXPLICIT_NEST, recursive=False)
try:
out.data.get_or_create_nest(key)
except KeyError:
raise TOMLDecodeError("Cannot overwrite a value", src, pos) from None
if not src.startswith("]", pos):
raise TOMLDecodeError(
"Expected ']' at the end of a table declaration", src, pos
)
return pos + 1, key
def create_list_rule(src: str, pos: Pos, out: Output) -> tuple[Pos, Key]:
pos += 2 # Skip "[["
pos = skip_chars(src, pos, TOML_WS)
pos, key = parse_key(src, pos)
if out.flags.is_(key, Flags.FROZEN):
raise TOMLDecodeError(f"Cannot mutate immutable namespace {key}", src, pos)
# Free the namespace now that it points to another empty list item...
out.flags.unset_all(key)
# ...but this key precisely is still prohibited from table declaration
out.flags.set(key, Flags.EXPLICIT_NEST, recursive=False)
try:
out.data.append_nest_to_list(key)
except KeyError:
raise TOMLDecodeError("Cannot overwrite a value", src, pos) from None
if not src.startswith("]]", pos):
raise TOMLDecodeError(
"Expected ']]' at the end of an array declaration", src, pos
)
return pos + 2, key
def key_value_rule(
src: str, pos: Pos, out: Output, header: Key, parse_float: ParseFloat
) -> Pos:
pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0)
key_parent, key_stem = key[:-1], key[-1]
abs_key_parent = header + key_parent
relative_path_cont_keys = (header + key[:i] for i in range(1, len(key)))
for cont_key in relative_path_cont_keys:
# Check that dotted key syntax does not redefine an existing table
if out.flags.is_(cont_key, Flags.EXPLICIT_NEST):
raise TOMLDecodeError(f"Cannot redefine namespace {cont_key}", src, pos)
# Containers in the relative path can't be opened with the table syntax or
# dotted key/value syntax in following table sections.
out.flags.add_pending(cont_key, Flags.EXPLICIT_NEST)
if out.flags.is_(abs_key_parent, Flags.FROZEN):
raise TOMLDecodeError(
f"Cannot mutate immutable namespace {abs_key_parent}", src, pos
)
try:
nest = out.data.get_or_create_nest(abs_key_parent)
except KeyError:
raise TOMLDecodeError("Cannot overwrite a value", src, pos) from None
if key_stem in nest:
raise TOMLDecodeError("Cannot overwrite a value", src, pos)
# Mark inline table and array namespaces recursively immutable
if isinstance(value, (dict, list)):
out.flags.set(header + key, Flags.FROZEN, recursive=True)
nest[key_stem] = value
return pos
def parse_key_value_pair(
src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int
) -> tuple[Pos, Key, Any]:
pos, key = parse_key(src, pos)
try:
char: str | None = src[pos]
except IndexError:
char = None
if char != "=":
raise TOMLDecodeError("Expected '=' after a key in a key/value pair", src, pos)
pos += 1
pos = skip_chars(src, pos, TOML_WS)
pos, value = parse_value(src, pos, parse_float, nest_lvl)
return pos, key, value
def parse_key(src: str, pos: Pos) -> tuple[Pos, Key]:
pos, key_part = parse_key_part(src, pos)
key: Key = (key_part,)
pos = skip_chars(src, pos, TOML_WS)
while True:
try:
char: str | None = src[pos]
except IndexError:
char = None
if char != ".":
return pos, key
pos += 1
pos = skip_chars(src, pos, TOML_WS)
pos, key_part = parse_key_part(src, pos)
key += (key_part,)
pos = skip_chars(src, pos, TOML_WS)
def parse_key_part(src: str, pos: Pos) -> tuple[Pos, str]:
try:
char: str | None = src[pos]
except IndexError:
char = None
if char in BARE_KEY_CHARS:
start_pos = pos
pos = skip_chars(src, pos, BARE_KEY_CHARS)
return pos, src[start_pos:pos]
if char == "'":
return parse_literal_str(src, pos)
if char == '"':
return parse_one_line_basic_str(src, pos)
raise TOMLDecodeError("Invalid initial character for a key part", src, pos)
def parse_one_line_basic_str(src: str, pos: Pos) -> tuple[Pos, str]:
pos += 1
return parse_basic_str(src, pos, multiline=False)
def parse_array(
src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int
) -> tuple[Pos, list]:
pos += 1
array: list = []
pos = skip_comments_and_array_ws(src, pos)
if src.startswith("]", pos):
return pos + 1, array
while True:
pos, val = parse_value(src, pos, parse_float, nest_lvl)
array.append(val)
pos = skip_comments_and_array_ws(src, pos)
c = src[pos : pos + 1]
if c == "]":
return pos + 1, array
if c != ",":
raise TOMLDecodeError("Unclosed array", src, pos)
pos += 1
pos = skip_comments_and_array_ws(src, pos)
if src.startswith("]", pos):
return pos + 1, array
def parse_inline_table(
src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int
) -> tuple[Pos, dict]:
pos += 1
nested_dict = NestedDict()
flags = Flags()
pos = skip_chars(src, pos, TOML_WS)
if src.startswith("}", pos):
return pos + 1, nested_dict.dict
while True:
pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl)
key_parent, key_stem = key[:-1], key[-1]
if flags.is_(key, Flags.FROZEN):
raise TOMLDecodeError(f"Cannot mutate immutable namespace {key}", src, pos)
try:
nest = nested_dict.get_or_create_nest(key_parent, access_lists=False)
except KeyError:
raise TOMLDecodeError("Cannot overwrite a value", src, pos) from None
if key_stem in nest:
raise TOMLDecodeError(f"Duplicate inline table key {key_stem!r}", src, pos)
nest[key_stem] = value
pos = skip_chars(src, pos, TOML_WS)
c = src[pos : pos + 1]
if c == "}":
return pos + 1, nested_dict.dict
if c != ",":
raise TOMLDecodeError("Unclosed inline table", src, pos)
if isinstance(value, (dict, list)):
flags.set(key, Flags.FROZEN, recursive=True)
pos += 1
pos = skip_chars(src, pos, TOML_WS)
def parse_basic_str_escape(
src: str, pos: Pos, *, multiline: bool = False
) -> tuple[Pos, str]:
escape_id = src[pos : pos + 2]
pos += 2
if multiline and escape_id in {"\\ ", "\\\t", "\\\n"}:
# Skip whitespace until next non-whitespace character or end of
# the doc. Error if non-whitespace is found before newline.
if escape_id != "\\\n":
pos = skip_chars(src, pos, TOML_WS)
try:
char = src[pos]
except IndexError:
return pos, ""
if char != "\n":
raise TOMLDecodeError("Unescaped '\\' in a string", src, pos)
pos += 1
pos = skip_chars(src, pos, TOML_WS_AND_NEWLINE)
return pos, ""
if escape_id == "\\u":
return parse_hex_char(src, pos, 4)
if escape_id == "\\U":
return parse_hex_char(src, pos, 8)
try:
return pos, BASIC_STR_ESCAPE_REPLACEMENTS[escape_id]
except KeyError:
raise TOMLDecodeError("Unescaped '\\' in a string", src, pos) from None
def parse_basic_str_escape_multiline(src: str, pos: Pos) -> tuple[Pos, str]:
return parse_basic_str_escape(src, pos, multiline=True)
def parse_hex_char(src: str, pos: Pos, hex_len: int) -> tuple[Pos, str]:
hex_str = src[pos : pos + hex_len]
if len(hex_str) != hex_len or not HEXDIGIT_CHARS.issuperset(hex_str):
raise TOMLDecodeError("Invalid hex value", src, pos)
pos += hex_len
hex_int = int(hex_str, 16)
if not is_unicode_scalar_value(hex_int):
raise TOMLDecodeError(
"Escaped character is not a Unicode scalar value", src, pos
)
return pos, chr(hex_int)
def parse_literal_str(src: str, pos: Pos) -> tuple[Pos, str]:
pos += 1 # Skip starting apostrophe
start_pos = pos
pos = skip_until(
src, pos, "'", error_on=ILLEGAL_LITERAL_STR_CHARS, error_on_eof=True
)
return pos + 1, src[start_pos:pos] # Skip ending apostrophe
def parse_multiline_str(src: str, pos: Pos, *, literal: bool) -> tuple[Pos, str]:
pos += 3
if src.startswith("\n", pos):
pos += 1
if literal:
delim = "'"
end_pos = skip_until(
src,
pos,
"'''",
error_on=ILLEGAL_MULTILINE_LITERAL_STR_CHARS,
error_on_eof=True,
)
result = src[pos:end_pos]
pos = end_pos + 3
else:
delim = '"'
pos, result = parse_basic_str(src, pos, multiline=True)
# Add at maximum two extra apostrophes/quotes if the end sequence
# is 4 or 5 chars long instead of just 3.
if not src.startswith(delim, pos):
return pos, result
pos += 1
if not src.startswith(delim, pos):
return pos, result + delim
pos += 1
return pos, result + (delim * 2)
def parse_basic_str(src: str, pos: Pos, *, multiline: bool) -> tuple[Pos, str]:
if multiline:
error_on = ILLEGAL_MULTILINE_BASIC_STR_CHARS
parse_escapes = parse_basic_str_escape_multiline
else:
error_on = ILLEGAL_BASIC_STR_CHARS
parse_escapes = parse_basic_str_escape
result = ""
start_pos = pos
while True:
try:
char = src[pos]
except IndexError:
raise TOMLDecodeError("Unterminated string", src, pos) from None
if char == '"':
if not multiline:
return pos + 1, result + src[start_pos:pos]
if src.startswith('"""', pos):
return pos + 3, result + src[start_pos:pos]
pos += 1
continue
if char == "\\":
result += src[start_pos:pos]
pos, parsed_escape = parse_escapes(src, pos)
result += parsed_escape
start_pos = pos
continue
if char in error_on:
raise TOMLDecodeError(f"Illegal character {char!r}", src, pos)
pos += 1
def parse_value( # noqa: C901
src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int
) -> tuple[Pos, Any]:
if nest_lvl > MAX_INLINE_NESTING:
# Pure Python should have raised RecursionError already.
# This ensures mypyc binaries eventually do the same.
raise RecursionError( # pragma: no cover
"TOML inline arrays/tables are nested more than the allowed"
f" {MAX_INLINE_NESTING} levels"
)
try:
char: str | None = src[pos]
except IndexError:
char = None
# IMPORTANT: order conditions based on speed of checking and likelihood
# Basic strings
if char == '"':
if src.startswith('"""', pos):
return parse_multiline_str(src, pos, literal=False)
return parse_one_line_basic_str(src, pos)
# Literal strings
if char == "'":
if src.startswith("'''", pos):
return parse_multiline_str(src, pos, literal=True)
return parse_literal_str(src, pos)
# Booleans
if char == "t":
if src.startswith("true", pos):
return pos + 4, True
if char == "f":
if src.startswith("false", pos):
return pos + 5, False
# Arrays
if char == "[":
return parse_array(src, pos, parse_float, nest_lvl + 1)
# Inline tables
if char == "{":
return parse_inline_table(src, pos, parse_float, nest_lvl + 1)
# Dates and times
datetime_match = RE_DATETIME.match(src, pos)
if datetime_match:
try:
datetime_obj = match_to_datetime(datetime_match)
except ValueError as e:
raise TOMLDecodeError("Invalid date or datetime", src, pos) from e
return datetime_match.end(), datetime_obj
localtime_match = RE_LOCALTIME.match(src, pos)
if localtime_match:
return localtime_match.end(), match_to_localtime(localtime_match)
# Integers and "normal" floats.
# The regex will greedily match any type starting with a decimal
# char, so needs to be located after handling of dates and times.
number_match = RE_NUMBER.match(src, pos)
if number_match:
return number_match.end(), match_to_number(number_match, parse_float)
# Special floats
first_three = src[pos : pos + 3]
if first_three in {"inf", "nan"}:
return pos + 3, parse_float(first_three)
first_four = src[pos : pos + 4]
if first_four in {"-inf", "+inf", "-nan", "+nan"}:
return pos + 4, parse_float(first_four)
raise TOMLDecodeError("Invalid value", src, pos)
def is_unicode_scalar_value(codepoint: int) -> bool:
return (0 <= codepoint <= 55295) or (57344 <= codepoint <= 1114111)
def make_safe_parse_float(parse_float: ParseFloat) -> ParseFloat:
"""A decorator to make `parse_float` safe.
`parse_float` must not return dicts or lists, because these types
would be mixed with parsed TOML tables and arrays, thus confusing
the parser. The returned decorated callable raises `ValueError`
instead of returning illegal types.
"""
# The default `float` callable never returns illegal types. Optimize it.
if parse_float is float:
return float
def safe_parse_float(float_str: str) -> Any:
float_value = parse_float(float_str)
if isinstance(float_value, (dict, list)):
raise ValueError("parse_float must not return dicts or lists")
return float_value
return safe_parse_float
tomli-2.2.1/src/tomli/_re.py 0000664 0000000 0000000 00000006143 14721714455 0015710 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
from __future__ import annotations
from datetime import date, datetime, time, timedelta, timezone, tzinfo
from functools import lru_cache
import re
from typing import Any, Final
from ._types import ParseFloat
# E.g.
# - 00:32:00.999999
# - 00:32:00
_TIME_RE_STR: Final = (
r"([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(?:\.([0-9]{1,6})[0-9]*)?"
)
RE_NUMBER: Final = re.compile(
r"""
0
(?:
x[0-9A-Fa-f](?:_?[0-9A-Fa-f])* # hex
|
b[01](?:_?[01])* # bin
|
o[0-7](?:_?[0-7])* # oct
)
|
[+-]?(?:0|[1-9](?:_?[0-9])*) # dec, integer part
(?P
(?:\.[0-9](?:_?[0-9])*)? # optional fractional part
(?:[eE][+-]?[0-9](?:_?[0-9])*)? # optional exponent part
)
""",
flags=re.VERBOSE,
)
RE_LOCALTIME: Final = re.compile(_TIME_RE_STR)
RE_DATETIME: Final = re.compile(
rf"""
([0-9]{{4}})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]) # date, e.g. 1988-10-27
(?:
[Tt ]
{_TIME_RE_STR}
(?:([Zz])|([+-])([01][0-9]|2[0-3]):([0-5][0-9]))? # optional time offset
)?
""",
flags=re.VERBOSE,
)
def match_to_datetime(match: re.Match) -> datetime | date:
"""Convert a `RE_DATETIME` match to `datetime.datetime` or `datetime.date`.
Raises ValueError if the match does not correspond to a valid date
or datetime.
"""
(
year_str,
month_str,
day_str,
hour_str,
minute_str,
sec_str,
micros_str,
zulu_time,
offset_sign_str,
offset_hour_str,
offset_minute_str,
) = match.groups()
year, month, day = int(year_str), int(month_str), int(day_str)
if hour_str is None:
return date(year, month, day)
hour, minute, sec = int(hour_str), int(minute_str), int(sec_str)
micros = int(micros_str.ljust(6, "0")) if micros_str else 0
if offset_sign_str:
tz: tzinfo | None = cached_tz(
offset_hour_str, offset_minute_str, offset_sign_str
)
elif zulu_time:
tz = timezone.utc
else: # local date-time
tz = None
return datetime(year, month, day, hour, minute, sec, micros, tzinfo=tz)
# No need to limit cache size. This is only ever called on input
# that matched RE_DATETIME, so there is an implicit bound of
# 24 (hours) * 60 (minutes) * 2 (offset direction) = 2880.
@lru_cache(maxsize=None)
def cached_tz(hour_str: str, minute_str: str, sign_str: str) -> timezone:
sign = 1 if sign_str == "+" else -1
return timezone(
timedelta(
hours=sign * int(hour_str),
minutes=sign * int(minute_str),
)
)
def match_to_localtime(match: re.Match) -> time:
hour_str, minute_str, sec_str, micros_str = match.groups()
micros = int(micros_str.ljust(6, "0")) if micros_str else 0
return time(int(hour_str), int(minute_str), int(sec_str), micros)
def match_to_number(match: re.Match, parse_float: ParseFloat) -> Any:
if match.group("floatpart"):
return parse_float(match.group())
return int(match.group(), 0)
tomli-2.2.1/src/tomli/_types.py 0000664 0000000 0000000 00000000376 14721714455 0016450 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
from typing import Any, Callable, Tuple
# Type annotations
ParseFloat = Callable[[str], Any]
Key = Tuple[str, ...]
Pos = int
tomli-2.2.1/src/tomli/py.typed 0000664 0000000 0000000 00000000032 14721714455 0016257 0 ustar 00root root 0000000 0000000 # Marker file for PEP 561
tomli-2.2.1/tests/ 0000775 0000000 0000000 00000000000 14721714455 0014014 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/__init__.py 0000664 0000000 0000000 00000000405 14721714455 0016124 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
__all__ = ("tomllib",)
# By changing this one line, we can run the tests against
# a different module name.
import tomli as tomllib
tomli-2.2.1/tests/burntsushi.py 0000664 0000000 0000000 00000007670 14721714455 0016606 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
"""Utilities for tests that are in the "burntsushi" format."""
import datetime
from typing import Any
# Aliases for converting TOML compliance format [1] to BurntSushi format [2]
# [1] https://github.com/toml-lang/compliance/blob/db7c3211fda30ff9ddb10292f4aeda7e2e10abc4/docs/json-encoding.md # noqa: E501
# [2] https://github.com/BurntSushi/toml-test/blob/4634fdf3a6ecd6aaea5f4cdcd98b2733c2694993/README.md # noqa: E501
_aliases = {
"boolean": "bool",
"offset datetime": "datetime",
"local datetime": "datetime-local",
"local date": "date-local",
"local time": "time-local",
}
def convert(obj): # noqa: C901
if isinstance(obj, str):
return {"type": "string", "value": obj}
elif isinstance(obj, bool):
return {"type": "bool", "value": str(obj).lower()}
elif isinstance(obj, int):
return {"type": "integer", "value": str(obj)}
elif isinstance(obj, float):
return {"type": "float", "value": _normalize_float_str(str(obj))}
elif isinstance(obj, datetime.datetime):
val = _normalize_datetime_str(obj.isoformat())
if obj.tzinfo:
return {"type": "datetime", "value": val}
return {"type": "datetime-local", "value": val}
elif isinstance(obj, datetime.time):
return {
"type": "time-local",
"value": _normalize_localtime_str(str(obj)),
}
elif isinstance(obj, datetime.date):
return {
"type": "date-local",
"value": str(obj),
}
elif isinstance(obj, list):
return [convert(i) for i in obj]
elif isinstance(obj, dict):
return {k: convert(v) for k, v in obj.items()}
raise Exception("unsupported type")
def normalize(obj: Any) -> Any:
"""Normalize test objects.
This normalizes primitive values (e.g. floats), and also converts from
TOML compliance format [1] to BurntSushi format [2].
[1] https://github.com/toml-lang/compliance/blob/db7c3211fda30ff9ddb10292f4aeda7e2e10abc4/docs/json-encoding.md # noqa: E501
[2] https://github.com/BurntSushi/toml-test/blob/4634fdf3a6ecd6aaea5f4cdcd98b2733c2694993/README.md # noqa: E501
"""
if isinstance(obj, list):
return [normalize(item) for item in obj]
if isinstance(obj, dict):
if "type" in obj and "value" in obj:
type_ = obj["type"]
norm_type = _aliases.get(type_, type_)
value = obj["value"]
if norm_type == "float":
norm_value = _normalize_float_str(value)
elif norm_type in {"datetime", "datetime-local"}:
norm_value = _normalize_datetime_str(value)
elif norm_type == "time-local":
norm_value = _normalize_localtime_str(value)
else:
norm_value = value
if norm_type == "array":
return [normalize(item) for item in value]
return {"type": norm_type, "value": norm_value}
return {k: normalize(v) for k, v in obj.items()}
raise AssertionError("Burntsushi fixtures should be dicts/lists only")
def _normalize_datetime_str(dt_str: str) -> str:
if dt_str[-1].lower() == "z":
dt_str = dt_str[:-1] + "+00:00"
date = dt_str[:10]
rest = dt_str[11:]
if "+" in rest:
sign = "+"
elif "-" in rest:
sign = "-"
else:
sign = ""
if sign:
time, _, offset = rest.partition(sign)
else:
time = rest
offset = ""
time = time.rstrip("0") if "." in time else time
return date + "T" + time + sign + offset
def _normalize_localtime_str(lt_str: str) -> str:
return lt_str.rstrip("0") if "." in lt_str else lt_str
def _normalize_float_str(float_str: str) -> str:
as_float = float(float_str)
# Normalize "-0.0" and "+0.0"
if as_float == 0:
return "0"
return str(as_float)
tomli-2.2.1/tests/data/ 0000775 0000000 0000000 00000000000 14721714455 0014725 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/ 0000775 0000000 0000000 00000000000 14721714455 0016353 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/ 0000775 0000000 0000000 00000000000 14721714455 0020334 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/ 0000775 0000000 0000000 00000000000 14721714455 0022542 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/COPYING 0000664 0000000 0000000 00000002067 14721714455 0023602 0 ustar 00root root 0000000 0000000 The MIT License (MIT)
Copyright (c) 2018 TOML authors
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, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
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.
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/ 0000775 0000000 0000000 00000000000 14721714455 0024170 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/ 0000775 0000000 0000000 00000000000 14721714455 0025306 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/missing-separator.toml 0000664 0000000 0000000 00000000022 14721714455 0031644 0 ustar 00root root 0000000 0000000 wrong = [ 1 2 3 ]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/no-close-2.toml 0000664 0000000 0000000 00000000012 14721714455 0030052 0 ustar 00root root 0000000 0000000 x = [42 #
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/no-close-table-2.toml 0000664 0000000 0000000 00000000022 14721714455 0031140 0 ustar 00root root 0000000 0000000 x = [{ key = 42 #
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/no-close-table.toml 0000664 0000000 0000000 00000000020 14721714455 0030777 0 ustar 00root root 0000000 0000000 x = [{ key = 42
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/no-close.toml 0000664 0000000 0000000 00000000027 14721714455 0027721 0 ustar 00root root 0000000 0000000 long_array = [ 1, 2, 3
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/tables-1.toml 0000664 0000000 0000000 00000000067 14721714455 0027616 0 ustar 00root root 0000000 0000000 # INVALID TOML DOC
fruit = []
[[fruit]] # Not allowed
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/tables-2.toml 0000664 0000000 0000000 00000000274 14721714455 0027617 0 ustar 00root root 0000000 0000000 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
# This table conflicts with the previous table
[fruit.variety]
name = "granny smith"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/text-after-array-entries.toml 0000664 0000000 0000000 00000000106 14721714455 0033046 0 ustar 00root root 0000000 0000000 array = [
"Is there life after an array separator?", No
"Entry"
]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/text-before-array-separator.toml 0000664 0000000 0000000 00000000107 14721714455 0033537 0 ustar 00root root 0000000 0000000 array = [
"Is there life before an array separator?" No,
"Entry"
]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/array/text-in-array.toml 0000664 0000000 0000000 00000000070 14721714455 0030704 0 ustar 00root root 0000000 0000000 array = [
"Entry 1",
I don't belong,
"Entry 2",
]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/bool/ 0000775 0000000 0000000 00000000000 14721714455 0025123 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/bool/mixed-case.toml 0000664 0000000 0000000 00000000016 14721714455 0030034 0 ustar 00root root 0000000 0000000 valid = False
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/bool/wrong-case-false.toml 0000664 0000000 0000000 00000000012 14721714455 0031146 0 ustar 00root root 0000000 0000000 b = FALSE
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/bool/wrong-case-true.toml 0000664 0000000 0000000 00000000011 14721714455 0031032 0 ustar 00root root 0000000 0000000 a = TRUE
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/ 0000775 0000000 0000000 00000000000 14721714455 0025650 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/bare-null.toml 0000664 0000000 0000000 00000000033 14721714455 0030422 0 ustar 00root root 0000000 0000000 bare-null = "some value"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/comment-cr.toml 0000664 0000000 0000000 00000000061 14721714455 0030606 0 ustar 00root root 0000000 0000000 comment-cr = "Carriage return in comment" #
a=1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/comment-del.toml 0000664 0000000 0000000 00000000031 14721714455 0030743 0 ustar 00root root 0000000 0000000 comment-del = "0x7f" #
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/comment-lf.toml 0000664 0000000 0000000 00000000032 14721714455 0030601 0 ustar 00root root 0000000 0000000 comment-lf = "ctrl-P" #
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/comment-null.toml 0000664 0000000 0000000 00000000032 14721714455 0031152 0 ustar 00root root 0000000 0000000 comment-null = "null" #
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/comment-us.toml 0000664 0000000 0000000 00000000032 14721714455 0030627 0 ustar 00root root 0000000 0000000 comment-us = "ctrl-_" #
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/control.multi 0000664 0000000 0000000 00000001205 14721714455 0030402 0 ustar 00root root 0000000 0000000 # NOTE: this file contains literal control characters.
comment-null = "null" #
comment-lf = "ctrl-P" #
comment-us = "ctrl-_" #
comment-del = "0x7f" #
comment-cr = "Carriage return in comment" #
a=1
string-null = "null "
string-lf = "null"
string-us = "null"
string-del = "null"
rawstring-null = 'null '
rawstring-lf = 'null'
rawstring-us = 'null'
rawstring-del = 'null'
multi-null = """null """
multi-lf = """null"""
multi-us = """null"""
multi-del = """null"""
rawmulti-null = '''null '''
rawmulti-lf = '''null'''
rawmulti-us = '''null'''
rawmulti-del = '''null'''
string-bs = "backspace"
bare-null = "some value"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/multi-del.toml 0000664 0000000 0000000 00000000030 14721714455 0030432 0 ustar 00root root 0000000 0000000 multi-del = """null"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/multi-lf.toml 0000664 0000000 0000000 00000000027 14721714455 0030275 0 ustar 00root root 0000000 0000000 multi-lf = """null"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/multi-null.toml 0000664 0000000 0000000 00000000031 14721714455 0030641 0 ustar 00root root 0000000 0000000 multi-null = """null """
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/multi-us.toml 0000664 0000000 0000000 00000000027 14721714455 0030323 0 ustar 00root root 0000000 0000000 multi-us = """null"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawmulti-del.toml 0000664 0000000 0000000 00000000033 14721714455 0031147 0 ustar 00root root 0000000 0000000 rawmulti-del = '''null'''
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawmulti-lf.toml 0000664 0000000 0000000 00000000032 14721714455 0031003 0 ustar 00root root 0000000 0000000 rawmulti-lf = '''null'''
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawmulti-null.toml 0000664 0000000 0000000 00000000034 14721714455 0031356 0 ustar 00root root 0000000 0000000 rawmulti-null = '''null '''
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawmulti-us.toml 0000664 0000000 0000000 00000000032 14721714455 0031031 0 ustar 00root root 0000000 0000000 rawmulti-us = '''null'''
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawstring-del.toml 0000664 0000000 0000000 00000000030 14721714455 0031320 0 ustar 00root root 0000000 0000000 rawstring-del = 'null'
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawstring-lf.toml 0000664 0000000 0000000 00000000027 14721714455 0031163 0 ustar 00root root 0000000 0000000 rawstring-lf = 'null'
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawstring-null.toml 0000664 0000000 0000000 00000000031 14721714455 0031527 0 ustar 00root root 0000000 0000000 rawstring-null = 'null '
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/rawstring-us.toml 0000664 0000000 0000000 00000000027 14721714455 0031211 0 ustar 00root root 0000000 0000000 rawstring-us = 'null'
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/string-bs.toml 0000664 0000000 0000000 00000000031 14721714455 0030447 0 ustar 00root root 0000000 0000000 string-bs = "backspace"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/string-del.toml 0000664 0000000 0000000 00000000025 14721714455 0030612 0 ustar 00root root 0000000 0000000 string-del = "null"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/string-lf.toml 0000664 0000000 0000000 00000000024 14721714455 0030446 0 ustar 00root root 0000000 0000000 string-lf = "null"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/string-null.toml 0000664 0000000 0000000 00000000026 14721714455 0031021 0 ustar 00root root 0000000 0000000 string-null = "null "
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/control/string-us.toml 0000664 0000000 0000000 00000000024 14721714455 0030474 0 ustar 00root root 0000000 0000000 string-us = "null"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/ 0000775 0000000 0000000 00000000000 14721714455 0025764 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/hour-over.toml 0000664 0000000 0000000 00000000102 14721714455 0030600 0 ustar 00root root 0000000 0000000 # time-hour = 2DIGIT ; 00-23
d = 2006-01-01T24:00:00-00:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/mday-over.toml 0000664 0000000 0000000 00000000211 14721714455 0030556 0 ustar 00root root 0000000 0000000 # date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
# ; month/year
d = 2006-01-32T00:00:00-00:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/mday-under.toml 0000664 0000000 0000000 00000000211 14721714455 0030720 0 ustar 00root root 0000000 0000000 # date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
# ; month/year
d = 2006-01-00T00:00:00-00:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/minute-over.toml 0000664 0000000 0000000 00000000102 14721714455 0031124 0 ustar 00root root 0000000 0000000 # time-minute = 2DIGIT ; 00-59
d = 2006-01-01T00:60:00-00:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/month-over.toml 0000664 0000000 0000000 00000000102 14721714455 0030750 0 ustar 00root root 0000000 0000000 # date-month = 2DIGIT ; 01-12
d = 2006-13-01T00:00:00-00:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/month-under.toml 0000664 0000000 0000000 00000000102 14721714455 0031112 0 ustar 00root root 0000000 0000000 # date-month = 2DIGIT ; 01-12
d = 2007-00-01T00:00:00-00:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/no-leads-with-milli.toml 0000664 0000000 0000000 00000000135 14721714455 0032437 0 ustar 00root root 0000000 0000000 # Day "5" instead of "05"; the leading zero is required.
with-milli = 1987-07-5T17:45:00.12Z
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/no-leads.toml 0000664 0000000 0000000 00000000132 14721714455 0030357 0 ustar 00root root 0000000 0000000 # Month "7" instead of "07"; the leading zero is required.
no-leads = 1987-7-05T17:45:00Z
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/no-secs.toml 0000664 0000000 0000000 00000000062 14721714455 0030226 0 ustar 00root root 0000000 0000000 # No seconds in time.
no-secs = 1987-07-05T17:45Z
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/no-t.toml 0000664 0000000 0000000 00000000106 14721714455 0027533 0 ustar 00root root 0000000 0000000 # No "t" or "T" between the date and time.
no-t = 1987-07-0517:45:00Z
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/second-over.toml 0000664 0000000 0000000 00000000211 14721714455 0031077 0 ustar 00root root 0000000 0000000 # time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second
# ; rules
d = 2006-01-01T00:00:61-00:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/time-no-leads-2.toml 0000664 0000000 0000000 00000000054 14721714455 0031455 0 ustar 00root root 0000000 0000000 # Leading 0 is always required.
d = 01:32:0
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/time-no-leads.toml 0000664 0000000 0000000 00000000054 14721714455 0031316 0 ustar 00root root 0000000 0000000 # Leading 0 is always required.
d = 1:32:00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/datetime/trailing-t.toml 0000664 0000000 0000000 00000000062 14721714455 0030731 0 ustar 00root root 0000000 0000000 # Date cannot end with trailing T
d = 2006-01-30T
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/ 0000775 0000000 0000000 00000000000 14721714455 0025756 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/bad-utf8-at-end.toml 0000664 0000000 0000000 00000000362 14721714455 0031434 0 ustar 00root root 0000000 0000000 # There is a 0xda at after the quotes, and no EOL at the end of the file.
#
# This is a bit of an edge case: This indicates there should be two bytes
# (0b1101_1010) but there is no byte to follow because it's the end of the file.
x = """""" tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/bad-utf8-in-comment.toml 0000664 0000000 0000000 00000000004 14721714455 0032323 0 ustar 00root root 0000000 0000000 #
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/bad-utf8-in-string.toml 0000664 0000000 0000000 00000000103 14721714455 0032167 0 ustar 00root root 0000000 0000000 # The following line contains an invalid UTF-8 sequence.
bad = ""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/bom-not-at-start-1.toml 0000664 0000000 0000000 00000000024 14721714455 0032115 0 ustar 00root root 0000000 0000000 bom-not-at-start
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/bom-not-at-start-2.toml 0000664 0000000 0000000 00000000025 14721714455 0032117 0 ustar 00root root 0000000 0000000 bom-not-at-start=
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/utf16-bom.toml 0000664 0000000 0000000 00000000046 14721714455 0030373 0 ustar 00root root 0000000 0000000 # U T F - 1 6 w i t h B O M
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/encoding/utf16.toml 0000664 0000000 0000000 00000000052 14721714455 0027615 0 ustar 00root root 0000000 0000000 # U T F - 1 6 w i t h o u t B O M
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/ 0000775 0000000 0000000 00000000000 14721714455 0025275 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/double-point-1.toml 0000664 0000000 0000000 00000000026 14721714455 0030727 0 ustar 00root root 0000000 0000000 double-point-1 = 0..1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/double-point-2.toml 0000664 0000000 0000000 00000000027 14721714455 0030731 0 ustar 00root root 0000000 0000000 double-point-2 = 0.1.2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/exp-double-e-1.toml 0000664 0000000 0000000 00000000026 14721714455 0030614 0 ustar 00root root 0000000 0000000 exp-double-e-1 = 1ee2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/exp-double-e-2.toml 0000664 0000000 0000000 00000000027 14721714455 0030616 0 ustar 00root root 0000000 0000000 exp-double-e-2 = 1e2e3
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/exp-double-us.toml 0000664 0000000 0000000 00000000027 14721714455 0030662 0 ustar 00root root 0000000 0000000 exp-double-us = 1e__23
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/exp-leading-us.toml 0000664 0000000 0000000 00000000027 14721714455 0031013 0 ustar 00root root 0000000 0000000 exp-leading-us = 1e_23
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/exp-point-1.toml 0000664 0000000 0000000 00000000024 14721714455 0030247 0 ustar 00root root 0000000 0000000 exp-point-1 = 1e2.3
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/exp-point-2.toml 0000664 0000000 0000000 00000000023 14721714455 0030247 0 ustar 00root root 0000000 0000000 exp-point-2 = 1.e2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/exp-trailing-us.toml 0000664 0000000 0000000 00000000031 14721714455 0031214 0 ustar 00root root 0000000 0000000 exp-trailing-us = 1e_23_
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/float.multi 0000664 0000000 0000000 00000001271 14721714455 0027457 0 ustar 00root root 0000000 0000000 leading-zero = 03.14
leading-zero-neg = -03.14
leading-zero-plus = +03.14
leading-point = .12345
leading-point-neg = -.12345
leading-point-plus = +.12345
trailing-point = 1.
trailing-point-min = -1.
trailing-point-plus = +1.
trailing-us = 1.2_
leading-us = _1.2
us-before-point = 1_.2
us-after-point = 1._2
double-point-1 = 0..1
double-point-2 = 0.1.2
exp-point-1 = 1e2.3
exp-point-2 = 1.e2
exp-double-e-1 = 1ee2
exp-double-e-2 = 1e2e3
exp-leading-us = 1e_23
exp-trailing-us = 1e_23_
exp-double-us = 1e__23
inf-incomplete-1 = in
inf-incomplete-2 = +in
inf-incomplete-3 = -in
nan-incomplete-1 = na
nan-incomplete-2 = +na
nan-incomplete-3 = -na
nan_underscore = na_n
inf_underscore = in_f
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/inf-incomplete-1.toml 0000664 0000000 0000000 00000000026 14721714455 0031237 0 ustar 00root root 0000000 0000000 inf-incomplete-1 = in
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/inf-incomplete-2.toml 0000664 0000000 0000000 00000000027 14721714455 0031241 0 ustar 00root root 0000000 0000000 inf-incomplete-2 = +in
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/inf-incomplete-3.toml 0000664 0000000 0000000 00000000027 14721714455 0031242 0 ustar 00root root 0000000 0000000 inf-incomplete-3 = -in
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/inf_underscore.toml 0000664 0000000 0000000 00000000026 14721714455 0031175 0 ustar 00root root 0000000 0000000 inf_underscore = in_f
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/leading-point-neg.toml 0000664 0000000 0000000 00000000034 14721714455 0031470 0 ustar 00root root 0000000 0000000 leading-point-neg = -.12345
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/leading-point-plus.toml 0000664 0000000 0000000 00000000035 14721714455 0031703 0 ustar 00root root 0000000 0000000 leading-point-plus = +.12345
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/leading-point.toml 0000664 0000000 0000000 00000000027 14721714455 0030723 0 ustar 00root root 0000000 0000000 leading-point = .12345
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/leading-us.toml 0000664 0000000 0000000 00000000022 14721714455 0030214 0 ustar 00root root 0000000 0000000 leading-us = _1.2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/leading-zero-neg.toml 0000664 0000000 0000000 00000000032 14721714455 0031314 0 ustar 00root root 0000000 0000000 leading-zero-neg = -03.14
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/leading-zero-plus.toml 0000664 0000000 0000000 00000000033 14721714455 0031527 0 ustar 00root root 0000000 0000000 leading-zero-plus = +03.14
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/leading-zero.toml 0000664 0000000 0000000 00000000025 14721714455 0030547 0 ustar 00root root 0000000 0000000 leading-zero = 03.14
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/nan-incomplete-1.toml 0000664 0000000 0000000 00000000026 14721714455 0031237 0 ustar 00root root 0000000 0000000 nan-incomplete-1 = na
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/nan-incomplete-2.toml 0000664 0000000 0000000 00000000027 14721714455 0031241 0 ustar 00root root 0000000 0000000 nan-incomplete-2 = +na
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/nan-incomplete-3.toml 0000664 0000000 0000000 00000000027 14721714455 0031242 0 ustar 00root root 0000000 0000000 nan-incomplete-3 = -na
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/nan_underscore.toml 0000664 0000000 0000000 00000000026 14721714455 0031175 0 ustar 00root root 0000000 0000000 nan_underscore = na_n
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/trailing-point-min.toml 0000664 0000000 0000000 00000000031 14721714455 0031705 0 ustar 00root root 0000000 0000000 trailing-point-min = -1.
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/trailing-point-plus.toml 0000664 0000000 0000000 00000000032 14721714455 0032106 0 ustar 00root root 0000000 0000000 trailing-point-plus = +1.
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/trailing-point.toml 0000664 0000000 0000000 00000000024 14721714455 0031126 0 ustar 00root root 0000000 0000000 trailing-point = 1.
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/trailing-us-exp.toml 0000664 0000000 0000000 00000000231 14721714455 0031216 0 ustar 00root root 0000000 0000000 # trailing underscore in integer part is not allowed
trailing-us-exp = 1_e2
# trailing underscore in float part is not allowed
trailing-us-exp2 = 1.2_e2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/trailing-us.toml 0000664 0000000 0000000 00000000023 14721714455 0030423 0 ustar 00root root 0000000 0000000 trailing-us = 1.2_
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/us-after-point.toml 0000664 0000000 0000000 00000000026 14721714455 0031045 0 ustar 00root root 0000000 0000000 us-after-point = 1._2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/float/us-before-point.toml 0000664 0000000 0000000 00000000027 14721714455 0031207 0 ustar 00root root 0000000 0000000 us-before-point = 1_.2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/ 0000775 0000000 0000000 00000000000 14721714455 0026533 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/double-comma.toml 0000664 0000000 0000000 00000000017 14721714455 0031772 0 ustar 00root root 0000000 0000000 t = {x=3,,y=4}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/duplicate-key.toml 0000664 0000000 0000000 00000000101 14721714455 0032160 0 ustar 00root root 0000000 0000000 # Duplicate keys within an inline table are invalid
a={b=1, b=2}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/empty.toml 0000664 0000000 0000000 00000000010 14721714455 0030555 0 ustar 00root root 0000000 0000000 t = {,}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/linebreak-1.toml 0000664 0000000 0000000 00000000157 14721714455 0031525 0 ustar 00root root 0000000 0000000 # No newlines are allowed between the curly braces unless they are valid within
# a value.
simple = { a = 1
}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/linebreak-2.toml 0000664 0000000 0000000 00000000017 14721714455 0031521 0 ustar 00root root 0000000 0000000 t = {a=1,
b=2}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/linebreak-3.toml 0000664 0000000 0000000 00000000017 14721714455 0031522 0 ustar 00root root 0000000 0000000 t = {a=1
,b=2}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/linebreak-4.toml 0000664 0000000 0000000 00000000113 14721714455 0031520 0 ustar 00root root 0000000 0000000 json_like = {
first = "Tom",
last = "Preston-Werner"
}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/no-comma.toml 0000664 0000000 0000000 00000000022 14721714455 0031130 0 ustar 00root root 0000000 0000000 t = {x = 3 y = 4}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/overwrite.toml 0000664 0000000 0000000 00000000132 14721714455 0031452 0 ustar 00root root 0000000 0000000 a.b=0
# Since table "a" is already defined, it can't be replaced by an inline table.
a={}
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/inline-table/trailing-comma.toml 0000664 0000000 0000000 00000000214 14721714455 0032330 0 ustar 00root root 0000000 0000000 # A terminating comma (also called trailing comma) is not permitted after the
# last key/value pair in an inline table
abc = { abc = 123, }
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/ 0000775 0000000 0000000 00000000000 14721714455 0025625 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/capital-bin.toml 0000664 0000000 0000000 00000000022 14721714455 0030677 0 ustar 00root root 0000000 0000000 capital-bin = 0B0
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/capital-hex.toml 0000664 0000000 0000000 00000000022 14721714455 0030713 0 ustar 00root root 0000000 0000000 capital-hex = 0X1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/capital-oct.toml 0000664 0000000 0000000 00000000022 14721714455 0030714 0 ustar 00root root 0000000 0000000 capital-oct = 0O0
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/double-sign-nex.toml 0000664 0000000 0000000 00000000027 14721714455 0031521 0 ustar 00root root 0000000 0000000 double-sign-nex = --99
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/double-sign-plus.toml 0000664 0000000 0000000 00000000030 14721714455 0031704 0 ustar 00root root 0000000 0000000 double-sign-plus = ++99
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/double-us.toml 0000664 0000000 0000000 00000000022 14721714455 0030413 0 ustar 00root root 0000000 0000000 double-us = 1__23
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/integer.multi 0000664 0000000 0000000 00000001274 14721714455 0030342 0 ustar 00root root 0000000 0000000 leading-zero-1 = 01
leading-zero-2 = 00
leading-zero-3 = 0_0
leading-zero-sign-1 = -01
leading-zero-sign-2 = +01
leading-zero-sign-3 = +0_1
double-sign-plus = ++99
double-sign-nex = --99
negative-hex = -0xff
negative-bin = -0b11010110
negative-oct = -0o99
positive-hex = +0xff
positive-bin = +0b11010110
positive-oct = +0o99
trailing-us = 123_
leading-us = _123
double-us = 1__23
us-after-hex = 0x_1
us-after-oct = 0o_1
us-after-bin = 0b_1
trailing-us-hex = 0x1_
trailing-us-oct = 0o1_
trailing-us-bin = 0b1_
leading-us-hex = _0o1
leading-us-oct = _0o1
leading-us-bin = _0o1
invalid-hex = 0xaafz
invalid-oct = 0o778
invalid-bin = 0b0012
capital-hex = 0X1
capital-oct = 0O0
capital-bin = 0B0
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/invalid-bin.toml 0000664 0000000 0000000 00000000025 14721714455 0030713 0 ustar 00root root 0000000 0000000 invalid-bin = 0b0012
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/invalid-hex.toml 0000664 0000000 0000000 00000000025 14721714455 0030727 0 ustar 00root root 0000000 0000000 invalid-hex = 0xaafz
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/invalid-oct.toml 0000664 0000000 0000000 00000000024 14721714455 0030727 0 ustar 00root root 0000000 0000000 invalid-oct = 0o778
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-us-bin.toml 0000664 0000000 0000000 00000000026 14721714455 0031316 0 ustar 00root root 0000000 0000000 leading-us-bin = _0o1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-us-hex.toml 0000664 0000000 0000000 00000000026 14721714455 0031332 0 ustar 00root root 0000000 0000000 leading-us-hex = _0o1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-us-oct.toml 0000664 0000000 0000000 00000000026 14721714455 0031333 0 ustar 00root root 0000000 0000000 leading-us-oct = _0o1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-us.toml 0000664 0000000 0000000 00000000022 14721714455 0030544 0 ustar 00root root 0000000 0000000 leading-us = _123
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-zero-1.toml 0000664 0000000 0000000 00000000024 14721714455 0031234 0 ustar 00root root 0000000 0000000 leading-zero-1 = 01
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-zero-2.toml 0000664 0000000 0000000 00000000024 14721714455 0031235 0 ustar 00root root 0000000 0000000 leading-zero-2 = 00
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-zero-3.toml 0000664 0000000 0000000 00000000025 14721714455 0031237 0 ustar 00root root 0000000 0000000 leading-zero-3 = 0_0
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-zero-sign-1.toml 0000664 0000000 0000000 00000000032 14721714455 0032171 0 ustar 00root root 0000000 0000000 leading-zero-sign-1 = -01
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-zero-sign-2.toml 0000664 0000000 0000000 00000000032 14721714455 0032172 0 ustar 00root root 0000000 0000000 leading-zero-sign-2 = +01
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/leading-zero-sign-3.toml 0000664 0000000 0000000 00000000033 14721714455 0032174 0 ustar 00root root 0000000 0000000 leading-zero-sign-3 = +0_1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/negative-bin.toml 0000664 0000000 0000000 00000000033 14721714455 0031066 0 ustar 00root root 0000000 0000000 negative-bin = -0b11010110
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/negative-hex.toml 0000664 0000000 0000000 00000000025 14721714455 0031103 0 ustar 00root root 0000000 0000000 negative-hex = -0xff
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/negative-oct.toml 0000664 0000000 0000000 00000000025 14721714455 0031104 0 ustar 00root root 0000000 0000000 negative-oct = -0o99
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/positive-bin.toml 0000664 0000000 0000000 00000000033 14721714455 0031126 0 ustar 00root root 0000000 0000000 positive-bin = +0b11010110
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/positive-hex.toml 0000664 0000000 0000000 00000000025 14721714455 0031143 0 ustar 00root root 0000000 0000000 positive-hex = +0xff
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/positive-oct.toml 0000664 0000000 0000000 00000000025 14721714455 0031144 0 ustar 00root root 0000000 0000000 positive-oct = +0o99
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/text-after-integer.toml 0000664 0000000 0000000 00000000041 14721714455 0032233 0 ustar 00root root 0000000 0000000 answer = 42 the ultimate answer?
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/trailing-us-bin.toml 0000664 0000000 0000000 00000000027 14721714455 0031525 0 ustar 00root root 0000000 0000000 trailing-us-bin = 0b1_
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/trailing-us-hex.toml 0000664 0000000 0000000 00000000027 14721714455 0031541 0 ustar 00root root 0000000 0000000 trailing-us-hex = 0x1_
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/trailing-us-oct.toml 0000664 0000000 0000000 00000000027 14721714455 0031542 0 ustar 00root root 0000000 0000000 trailing-us-oct = 0o1_
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/trailing-us.toml 0000664 0000000 0000000 00000000023 14721714455 0030753 0 ustar 00root root 0000000 0000000 trailing-us = 123_
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/us-after-bin.toml 0000664 0000000 0000000 00000000024 14721714455 0031012 0 ustar 00root root 0000000 0000000 us-after-bin = 0b_1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/us-after-hex.toml 0000664 0000000 0000000 00000000024 14721714455 0031026 0 ustar 00root root 0000000 0000000 us-after-hex = 0x_1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/integer/us-after-oct.toml 0000664 0000000 0000000 00000000024 14721714455 0031027 0 ustar 00root root 0000000 0000000 us-after-oct = 0o_1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/ 0000775 0000000 0000000 00000000000 14721714455 0024760 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/after-array.toml 0000664 0000000 0000000 00000000040 14721714455 0030064 0 ustar 00root root 0000000 0000000 [[agencies]] owner = "S Cjelli"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/after-table.toml 0000664 0000000 0000000 00000000044 14721714455 0030041 0 ustar 00root root 0000000 0000000 [error] this = "should not be here"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/after-value.toml 0000664 0000000 0000000 00000000060 14721714455 0030064 0 ustar 00root root 0000000 0000000 first = "Tom" last = "Preston-Werner" # INVALID
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/bare-invalid-character.toml 0000664 0000000 0000000 00000000017 14721714455 0032142 0 ustar 00root root 0000000 0000000 bare!key = 123
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/dotted-redefine-table.toml 0000664 0000000 0000000 00000000114 14721714455 0032000 0 ustar 00root root 0000000 0000000 # Defined a.b as int
a.b = 1
# Tries to access it as table: error
a.b.c = 2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/duplicate-keys.toml 0000664 0000000 0000000 00000000031 14721714455 0030572 0 ustar 00root root 0000000 0000000 dupe = false
dupe = true
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/duplicate.toml 0000664 0000000 0000000 00000000057 14721714455 0027631 0 ustar 00root root 0000000 0000000 # DO NOT DO THIS
name = "Tom"
name = "Pradyun"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/empty.toml 0000664 0000000 0000000 00000000005 14721714455 0027006 0 ustar 00root root 0000000 0000000 = 1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/escape.toml 0000664 0000000 0000000 00000000055 14721714455 0027115 0 ustar 00root root 0000000 0000000 \u00c0 = "latin capital letter A with grave"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/hash.toml 0000664 0000000 0000000 00000000007 14721714455 0026575 0 ustar 00root root 0000000 0000000 a# = 1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/multiline.toml 0000664 0000000 0000000 00000000023 14721714455 0027652 0 ustar 00root root 0000000 0000000 """long
key""" = 1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/newline.toml 0000664 0000000 0000000 00000000021 14721714455 0027307 0 ustar 00root root 0000000 0000000 barekey
= 123
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/no-eol.toml 0000664 0000000 0000000 00000000014 14721714455 0027041 0 ustar 00root root 0000000 0000000 a = 1 b = 2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/open-bracket.toml 0000664 0000000 0000000 00000000011 14721714455 0030217 0 ustar 00root root 0000000 0000000 [abc = 1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/partial-quoted.toml 0000664 0000000 0000000 00000000024 14721714455 0030604 0 ustar 00root root 0000000 0000000 partial"quoted" = 5
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/single-open-bracket.toml 0000664 0000000 0000000 00000000002 14721714455 0031476 0 ustar 00root root 0000000 0000000 [
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/space.toml 0000664 0000000 0000000 00000000010 14721714455 0026737 0 ustar 00root root 0000000 0000000 a b = 1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/special-character.toml 0000664 0000000 0000000 00000000035 14721714455 0031225 0 ustar 00root root 0000000 0000000 μ = "greek small letter mu"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/start-bracket.toml 0000664 0000000 0000000 00000000021 14721714455 0030414 0 ustar 00root root 0000000 0000000 [a]
[xyz = 5
[b]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/two-equals.toml 0000664 0000000 0000000 00000000011 14721714455 0027746 0 ustar 00root root 0000000 0000000 key= = 1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/two-equals2.toml 0000664 0000000 0000000 00000000005 14721714455 0030033 0 ustar 00root root 0000000 0000000 a==1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/two-equals3.toml 0000664 0000000 0000000 00000000006 14721714455 0030035 0 ustar 00root root 0000000 0000000 a=b=1
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/without-value-1.toml 0000664 0000000 0000000 00000000004 14721714455 0030622 0 ustar 00root root 0000000 0000000 key
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/key/without-value-2.toml 0000664 0000000 0000000 00000000007 14721714455 0030626 0 ustar 00root root 0000000 0000000 key =
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/ 0000775 0000000 0000000 00000000000 14721714455 0025476 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-byte-escape.toml 0000664 0000000 0000000 00000000021 14721714455 0031311 0 ustar 00root root 0000000 0000000 naughty = "\xAg"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-codepoint.toml 0000664 0000000 0000000 00000000121 14721714455 0031075 0 ustar 00root root 0000000 0000000 invalid-codepoint = "This string contains a non scalar unicode codepoint \uD801"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-concat.toml 0000664 0000000 0000000 00000000035 14721714455 0030364 0 ustar 00root root 0000000 0000000 no_concat = "first" "second"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-escape-1.toml 0000664 0000000 0000000 00000000076 14721714455 0030520 0 ustar 00root root 0000000 0000000 invalid-escape = "This string has a bad \a escape character."
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-escape-2.toml 0000664 0000000 0000000 00000000077 14721714455 0030522 0 ustar 00root root 0000000 0000000 invalid-escape = "This string has a bad \ escape character."
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-multiline.toml 0000664 0000000 0000000 00000000041 14721714455 0031114 0 ustar 00root root 0000000 0000000 multi = "first line
second line"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-slash-escape.toml 0000664 0000000 0000000 00000000076 14721714455 0031472 0 ustar 00root root 0000000 0000000 invalid-escape = "This string has a bad \/ escape character."
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/bad-uni-esc.toml 0000664 0000000 0000000 00000000017 14721714455 0030460 0 ustar 00root root 0000000 0000000 str = "val\ue"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/basic-byte-escapes.toml 0000664 0000000 0000000 00000000020 14721714455 0032026 0 ustar 00root root 0000000 0000000 answer = "\x33"
basic-multiline-out-of-range-unicode-escape-1.toml 0000664 0000000 0000000 00000000025 14721714455 0036713 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string a = """\UFFFFFFFF"""
basic-multiline-out-of-range-unicode-escape-2.toml 0000664 0000000 0000000 00000000025 14721714455 0036714 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string a = """\U00D80000"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/basic-multiline-quotes.toml 0000664 0000000 0000000 00000000062 14721714455 0032770 0 ustar 00root root 0000000 0000000 str5 = """Here are three quotation marks: """."""
basic-multiline-unknown-escape.toml 0000664 0000000 0000000 00000000015 14721714455 0034324 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string a = """\@"""
basic-out-of-range-unicode-escape-1.toml 0000664 0000000 0000000 00000000021 14721714455 0034707 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string a = "\UFFFFFFFF"
basic-out-of-range-unicode-escape-2.toml 0000664 0000000 0000000 00000000021 14721714455 0034710 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string a = "\U00D80000"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/basic-unknown-escape.toml 0000664 0000000 0000000 00000000011 14721714455 0032377 0 ustar 00root root 0000000 0000000 a = "\@"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/literal-multiline-quotes-1.toml 0000664 0000000 0000000 00000000036 14721714455 0033502 0 ustar 00root root 0000000 0000000 a = '''6 apostrophes: ''''''
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/literal-multiline-quotes-2.toml 0000664 0000000 0000000 00000000052 14721714455 0033501 0 ustar 00root root 0000000 0000000 a = '''15 apostrophes: ''''''''''''''''''
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/missing-quotes.toml 0000664 0000000 0000000 00000000015 14721714455 0031356 0 ustar 00root root 0000000 0000000 name = value
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-bad-escape-1.toml 0000664 0000000 0000000 00000000017 14721714455 0032513 0 ustar 00root root 0000000 0000000 k = """t\a"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-bad-escape-2.toml 0000664 0000000 0000000 00000000061 14721714455 0032513 0 ustar 00root root 0000000 0000000 # \ is not a valid escape.
k = """t\ t"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-bad-escape-3.toml 0000664 0000000 0000000 00000000061 14721714455 0032514 0 ustar 00root root 0000000 0000000 # \ is not a valid escape.
k = """t\ """
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-escape-space.toml 0000664 0000000 0000000 00000000034 14721714455 0032721 0 ustar 00root root 0000000 0000000 a = """
foo \ \n
bar"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-no-close-2.toml 0000664 0000000 0000000 00000000006 14721714455 0032245 0 ustar 00root root 0000000 0000000 x="""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-no-close.toml 0000664 0000000 0000000 00000000041 14721714455 0032105 0 ustar 00root root 0000000 0000000 invalid = """
this will fail
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-quotes-1.toml 0000664 0000000 0000000 00000000030 14721714455 0032042 0 ustar 00root root 0000000 0000000 a = """6 quotes: """"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/multiline-quotes-2.toml 0000664 0000000 0000000 00000000030 14721714455 0032043 0 ustar 00root root 0000000 0000000 a = """6 quotes: """"""
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/no-close.toml 0000664 0000000 0000000 00000000052 14721714455 0030107 0 ustar 00root root 0000000 0000000 no-ending-quote = "One time, at band camp
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/text-after-string.toml 0000664 0000000 0000000 00000000054 14721714455 0031761 0 ustar 00root root 0000000 0000000 string = "Is there life after strings?" No.
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/string/wrong-close.toml 0000664 0000000 0000000 00000000047 14721714455 0030633 0 ustar 00root root 0000000 0000000 bad-ending-quote = "double and single'
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/ 0000775 0000000 0000000 00000000000 14721714455 0025257 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/append-with-dotted-keys-1.toml 0000664 0000000 0000000 00000000753 14721714455 0032771 0 ustar 00root root 0000000 0000000 # First a.b.c defines a table: a.b.c = {z=9}
#
# Then we define a.b.c.t = "str" to add a str to the above table, making it:
#
# a.b.c = {z=9, t="..."}
#
# While this makes sense, logically, it was decided this is not valid TOML as
# it's too confusing/convoluted.
#
# See: https://github.com/toml-lang/toml/issues/846
# https://github.com/toml-lang/toml/pull/859
[a.b.c]
z = 9
[a]
b.c.t = "Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/append-with-dotted-keys-2.toml 0000664 0000000 0000000 00000000406 14721714455 0032765 0 ustar 00root root 0000000 0000000 # This is the same issue as in injection-1.toml, except that nests one level
# deeper. See that file for a more complete description.
[a.b.c.d]
z = 9
[a]
b.c.d.k.t = "Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/array-empty.toml 0000664 0000000 0000000 00000000032 14721714455 0030421 0 ustar 00root root 0000000 0000000 [[]]
name = "Born to Run"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/array-implicit.toml 0000664 0000000 0000000 00000001156 14721714455 0031105 0 ustar 00root root 0000000 0000000 # This test is a bit tricky. It should fail because the first use of
# `[[albums.songs]]` without first declaring `albums` implies that `albums`
# must be a table. The alternative would be quite weird. Namely, it wouldn't
# comply with the TOML spec: "Each double-bracketed sub-table will belong to
# the most *recently* defined table element *above* it."
#
# This is in contrast to the *valid* test, table-array-implicit where
# `[[albums.songs]]` works by itself, so long as `[[albums]]` isn't declared
# later. (Although, `[albums]` could be.)
[[albums.songs]]
name = "Glory Days"
[[albums]]
name = "Born in the USA"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/array-missing-bracket.toml 0000664 0000000 0000000 00000000037 14721714455 0032352 0 ustar 00root root 0000000 0000000 [[albums]
name = "Born to Run"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/duplicate-key-dotted-table.toml 0000664 0000000 0000000 00000000065 14721714455 0033263 0 ustar 00root root 0000000 0000000 [fruit]
apple.color = "red"
[fruit.apple] # INVALID
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/duplicate-key-dotted-table2.toml 0000664 0000000 0000000 00000000100 14721714455 0033333 0 ustar 00root root 0000000 0000000 [fruit]
apple.taste.sweet = true
[fruit.apple.taste] # INVALID
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/duplicate-key-table.toml 0000664 0000000 0000000 00000000063 14721714455 0032000 0 ustar 00root root 0000000 0000000 [fruit]
type = "apple"
[fruit.type]
apple = "yes"
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/duplicate-table-array.toml 0000664 0000000 0000000 00000000016 14721714455 0032324 0 ustar 00root root 0000000 0000000 [tbl]
[[tbl]]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/duplicate-table-array2.toml 0000664 0000000 0000000 00000000016 14721714455 0032406 0 ustar 00root root 0000000 0000000 [[tbl]]
[tbl]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/duplicate.toml 0000664 0000000 0000000 00000000025 14721714455 0030123 0 ustar 00root root 0000000 0000000 [a]
b = 1
[a]
c = 2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/empty-implicit-table.toml 0000664 0000000 0000000 00000000023 14721714455 0032202 0 ustar 00root root 0000000 0000000 [naughty..naughty]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/empty.toml 0000664 0000000 0000000 00000000003 14721714455 0027303 0 ustar 00root root 0000000 0000000 []
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/equals-sign.toml 0000664 0000000 0000000 00000000013 14721714455 0030376 0 ustar 00root root 0000000 0000000 [name=bad]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/llbrace.toml 0000664 0000000 0000000 00000000013 14721714455 0027552 0 ustar 00root root 0000000 0000000 [ [table]]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/nested-brackets-close.toml 0000664 0000000 0000000 00000000017 14721714455 0032333 0 ustar 00root root 0000000 0000000 [a]b]
zyx = 42
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/nested-brackets-open.toml 0000664 0000000 0000000 00000000017 14721714455 0032167 0 ustar 00root root 0000000 0000000 [a[b]
zyx = 42
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/quoted-no-close.toml 0000664 0000000 0000000 00000000042 14721714455 0031166 0 ustar 00root root 0000000 0000000 ["where will it end]
name = value
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/redefine.toml 0000664 0000000 0000000 00000000116 14721714455 0027733 0 ustar 00root root 0000000 0000000 # Define b as int, and try to use it as a table: error
[a]
b = 1
[a.b]
c = 2
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/rrbrace.toml 0000664 0000000 0000000 00000000013 14721714455 0027566 0 ustar 00root root 0000000 0000000 [[table] ]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/text-after-table.toml 0000664 0000000 0000000 00000000037 14721714455 0031324 0 ustar 00root root 0000000 0000000 [error] this shouldn't be here
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/whitespace.toml 0000664 0000000 0000000 00000000016 14721714455 0030305 0 ustar 00root root 0000000 0000000 [invalid key]
tomli-2.2.1/tests/data/invalid/_external/burntsushi/invalid/table/with-pound.toml 0000664 0000000 0000000 00000000030 14721714455 0030243 0 ustar 00root root 0000000 0000000 [key#group]
answer = 42
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/ 0000775 0000000 0000000 00000000000 14721714455 0024336 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/LICENSE 0000664 0000000 0000000 00000002210 14721714455 0025336 0 ustar 00root root 0000000 0000000 The MIT License
Copyright (c) 2021 Pradyun Gedam and Contributors
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, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
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.
Portions of the Software include code copyright (c) Rebecca Turner.
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/README.md 0000664 0000000 0000000 00000000466 14721714455 0025623 0 ustar 00root root 0000000 0000000 These test cases are copied from
https://github.com/pyrmont/toml-specs/tree/989fdfb02f6ca0a9e3b0a09b5e5f5283e02f1fa7
There is an open PR (https://github.com/toml-lang/compliance/pull/8) to merge the tests into
https://github.com/toml-lang/compliance
after which we should sync the tests with that repository.
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/ 0000775 0000000 0000000 00000000000 14721714455 0025764 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/array/ 0000775 0000000 0000000 00000000000 14721714455 0027102 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/array/array-of-tables-1.toml 0000664 0000000 0000000 00000000067 14721714455 0033130 0 ustar 00root root 0000000 0000000 # INVALID TOML DOC
fruit = []
[[fruit]] # Not allowed
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/array/array-of-tables-2.toml 0000664 0000000 0000000 00000000274 14721714455 0033131 0 ustar 00root root 0000000 0000000 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
# This table conflicts with the previous table
[fruit.variety]
name = "granny smith"
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/comment/ 0000775 0000000 0000000 00000000000 14721714455 0027426 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/comment/comment-control-1.toml0000664 0000000 0000000 00000000017 14721714455 0033577 0 ustar 00root root 0000000 0000000 a = "null" #
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/comment/comment-control-2.toml0000664 0000000 0000000 00000000021 14721714455 0033573 0 ustar 00root root 0000000 0000000 a = "ctrl-P" #
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/comment/comment-control-3.toml0000664 0000000 0000000 00000000021 14721714455 0033574 0 ustar 00root root 0000000 0000000 a = "ctrl-_" #
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/comment/comment-control-4.toml0000664 0000000 0000000 00000000017 14721714455 0033602 0 ustar 00root root 0000000 0000000 a = "0x7f" #
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/integer/ 0000775 0000000 0000000 00000000000 14721714455 0027421 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/integer/int-0-padded.toml 0000664 0000000 0000000 00000000013 14721714455 0032456 0 ustar 00root root 0000000 0000000 int = 0123
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/integer/int-signed-bin.toml 0000664 0000000 0000000 00000000014 14721714455 0033120 0 ustar 00root root 0000000 0000000 bin = +0b10
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/integer/int-signed-hex.toml 0000664 0000000 0000000 00000000014 14721714455 0033134 0 ustar 00root root 0000000 0000000 hex = +0xab
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/integer/int-signed-oct.toml 0000664 0000000 0000000 00000000014 14721714455 0033135 0 ustar 00root root 0000000 0000000 oct = +0o23
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value/ 0000775 0000000 0000000 00000000000 14721714455 0027666 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value/bare-key-1.toml 0000664 0000000 0000000 00000000017 14721714455 0032416 0 ustar 00root root 0000000 0000000 bare!key = 123
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value/bare-key-2.toml 0000664 0000000 0000000 00000000021 14721714455 0032412 0 ustar 00root root 0000000 0000000 barekey
= 123
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value/bare-key-3.toml 0000664 0000000 0000000 00000000012 14721714455 0032413 0 ustar 00root root 0000000 0000000 barekey =
key-value-pair-1.toml 0000664 0000000 0000000 00000000020 14721714455 0033465 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value key = # INVALID
key-value-pair-2.toml 0000664 0000000 0000000 00000000060 14721714455 0033472 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value first = "Tom" last = "Preston-Werner" # INVALID
multiple-dot-key.toml 0000664 0000000 0000000 00000000341 14721714455 0033707 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value # THE FOLLOWING IS INVALID
# This defines the value of fruit.apple to be an integer.
fruit.apple = 1
# But then this treats fruit.apple like it's a table.
# You can't turn an integer into a table.
fruit.apple.smooth = true
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value/multiple-key.toml 0000664 0000000 0000000 00000000057 14721714455 0033206 0 ustar 00root root 0000000 0000000 # DO NOT DO THIS
name = "Tom"
name = "Pradyun"
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/key-value/no-key-name.toml 0000664 0000000 0000000 00000000033 14721714455 0032677 0 ustar 00root root 0000000 0000000 = "no key name" # INVALID
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string/ 0000775 0000000 0000000 00000000000 14721714455 0027272 5 ustar 00root root 0000000 0000000 string-basic-control-1.toml 0000664 0000000 0000000 00000000014 14721714455 0034304 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = "null "
string-basic-control-2.toml 0000664 0000000 0000000 00000000016 14721714455 0034307 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = "ctrl-P"
string-basic-control-3.toml 0000664 0000000 0000000 00000000016 14721714455 0034310 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = "ctrl-_"
string-basic-control-4.toml 0000664 0000000 0000000 00000000014 14721714455 0034307 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = "0x7f"
string-basic-multiline-control-1.toml 0000664 0000000 0000000 00000000020 14721714455 0036301 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """null """
string-basic-multiline-control-2.toml 0000664 0000000 0000000 00000000020 14721714455 0036302 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """null"""
string-basic-multiline-control-3.toml 0000664 0000000 0000000 00000000020 14721714455 0036303 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """null"""
string-basic-multiline-control-4.toml 0000664 0000000 0000000 00000000020 14721714455 0036304 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """null"""
string-basic-multiline-invalid-backslash.toml 0000664 0000000 0000000 00000000034 14721714455 0040047 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """
foo \ \n
bar"""
string-basic-multiline-out-of-range-unicode-escape-1.toml 0000664 0000000 0000000 00000000025 14721714455 0042013 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """\UFFFFFFFF"""
string-basic-multiline-out-of-range-unicode-escape-2.toml 0000664 0000000 0000000 00000000025 14721714455 0042014 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """\U00D80000"""
string-basic-multiline-quotes.toml 0000664 0000000 0000000 00000000062 14721714455 0036011 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string str5 = """Here are three quotation marks: """."""
string-basic-multiline-unknown-escape.toml 0000664 0000000 0000000 00000000015 14721714455 0037424 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = """\@"""
string-basic-out-of-range-unicode-escape-1.toml 0000664 0000000 0000000 00000000021 14721714455 0040007 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = "\UFFFFFFFF"
string-basic-out-of-range-unicode-escape-2.toml 0000664 0000000 0000000 00000000021 14721714455 0040010 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = "\U00D80000"
string-basic-unknown-escape.toml 0000664 0000000 0000000 00000000011 14721714455 0035420 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = "\@"
string-literal-control-1.toml 0000664 0000000 0000000 00000000014 14721714455 0034657 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = 'null '
string-literal-control-2.toml 0000664 0000000 0000000 00000000014 14721714455 0034660 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = 'null'
string-literal-control-3.toml 0000664 0000000 0000000 00000000014 14721714455 0034661 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = 'null'
string-literal-control-4.toml 0000664 0000000 0000000 00000000014 14721714455 0034662 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = 'null'
string-literal-multiline-control-1.toml 0000664 0000000 0000000 00000000020 14721714455 0036654 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = '''null '''
string-literal-multiline-control-2.toml 0000664 0000000 0000000 00000000020 14721714455 0036655 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = '''null'''
string-literal-multiline-control-4.toml 0000664 0000000 0000000 00000000020 14721714455 0036657 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string a = '''null'''
string-literal-multiline-quotes.toml 0000664 0000000 0000000 00000000110 14721714455 0036356 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/string apos15 = '''Here are fifteen apostrophes: '''''''''''''''''' # INVALID
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/ 0000775 0000000 0000000 00000000000 14721714455 0027053 5 ustar 00root root 0000000 0000000 inline-table-immutable-1.toml 0000664 0000000 0000000 00000000102 14721714455 0034340 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table [product]
type = { name = "Nail" }
type.edible = false # INVALID
inline-table-immutable-2.toml 0000664 0000000 0000000 00000000102 14721714455 0034341 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table [product]
type.name = "Nail"
type = { edible = false } # INVALID
inline-table-trailing-comma.toml 0000664 0000000 0000000 00000000025 14721714455 0035132 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table abc = { abc = 123, }
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-1.toml 0000664 0000000 0000000 00000000103 14721714455 0031167 0 ustar 00root root 0000000 0000000 # DO NOT DO THIS
[fruit]
apple = "red"
[fruit]
orange = "orange"
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-2.toml 0000664 0000000 0000000 00000000121 14721714455 0031170 0 ustar 00root root 0000000 0000000 # DO NOT DO THIS EITHER
[fruit]
apple = "red"
[fruit.apple]
texture = "smooth"
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-3.toml 0000664 0000000 0000000 00000000117 14721714455 0031176 0 ustar 00root root 0000000 0000000 [fruit]
apple.color = "red"
apple.taste.sweet = true
[fruit.apple] # INVALID
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-4.toml 0000664 0000000 0000000 00000000125 14721714455 0031176 0 ustar 00root root 0000000 0000000 [fruit]
apple.color = "red"
apple.taste.sweet = true
[fruit.apple.taste] # INVALID
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-invalid-1.toml 0000664 0000000 0000000 00000000363 14721714455 0032623 0 ustar 00root root 0000000 0000000 [fruit.physical] # subtable, but to which parent element should it belong?
color = "red"
shape = "round"
[[fruit]] # parser must throw an error upon discovering that "fruit" is
# an array rather than a table
name = "apple"
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-invalid-2.toml 0000664 0000000 0000000 00000000067 14721714455 0032625 0 ustar 00root root 0000000 0000000 # INVALID TOML DOC
fruit = []
[[fruit]] # Not allowed
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-invalid-3.toml 0000664 0000000 0000000 00000000411 14721714455 0032617 0 ustar 00root root 0000000 0000000 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
# INVALID: This table conflicts with the previous array of tables
[fruit.variety]
name = "granny smith"
[fruit.physical]
color = "red"
shape = "round"
tomli-2.2.1/tests/data/invalid/_external/toml-lang-compliance/invalid/table/table-invalid-4.toml 0000664 0000000 0000000 00000000406 14721714455 0032624 0 ustar 00root root 0000000 0000000 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
[fruit.physical]
color = "red"
shape = "round"
# INVALID: This array of tables conflicts with the previous table
[[fruit.physical]]
color = "green"
tomli-2.2.1/tests/data/invalid/array-missing-comma.toml 0000664 0000000 0000000 00000000024 14721714455 0023123 0 ustar 00root root 0000000 0000000 arrr = [true false]
tomli-2.2.1/tests/data/invalid/array-of-tables/ 0000775 0000000 0000000 00000000000 14721714455 0021343 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/array-of-tables/overwrite-array-in-parent.toml 0000664 0000000 0000000 00000000070 14721714455 0027272 0 ustar 00root root 0000000 0000000 [[parent-table.arr]]
[parent-table]
not-arr = 1
arr = 2
tomli-2.2.1/tests/data/invalid/array-of-tables/overwrite-bool-with-aot.toml 0000664 0000000 0000000 00000000014 14721714455 0026744 0 ustar 00root root 0000000 0000000 a=true
[[a]] tomli-2.2.1/tests/data/invalid/array/ 0000775 0000000 0000000 00000000000 14721714455 0017471 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/array/file-end-after-val.toml 0000664 0000000 0000000 00000000004 14721714455 0023722 0 ustar 00root root 0000000 0000000 a=[1 tomli-2.2.1/tests/data/invalid/array/unclosed-after-item.toml 0000664 0000000 0000000 00000000005 14721714455 0024230 0 ustar 00root root 0000000 0000000 v=[1, tomli-2.2.1/tests/data/invalid/array/unclosed-empty.toml 0000664 0000000 0000000 00000000003 14721714455 0023327 0 ustar 00root root 0000000 0000000 v=[ tomli-2.2.1/tests/data/invalid/basic-str-ends-in-escape.toml 0000664 0000000 0000000 00000000034 14721714455 0023725 0 ustar 00root root 0000000 0000000 "backslash is the last char\ tomli-2.2.1/tests/data/invalid/boolean/ 0000775 0000000 0000000 00000000000 14721714455 0017772 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/boolean/invalid-false-casing.toml 0000664 0000000 0000000 00000000011 14721714455 0024637 0 ustar 00root root 0000000 0000000 val=falsE tomli-2.2.1/tests/data/invalid/boolean/invalid-true-casing.toml 0000664 0000000 0000000 00000000010 14721714455 0024523 0 ustar 00root root 0000000 0000000 val=trUe tomli-2.2.1/tests/data/invalid/dates-and-times/ 0000775 0000000 0000000 00000000000 14721714455 0021332 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/dates-and-times/invalid-day.toml 0000664 0000000 0000000 00000000056 14721714455 0024431 0 ustar 00root root 0000000 0000000 "only 28 or 29 days in february" = 1988-02-30
tomli-2.2.1/tests/data/invalid/dotted-keys/ 0000775 0000000 0000000 00000000000 14721714455 0020607 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/dotted-keys/access-non-table.toml 0000664 0000000 0000000 00000000024 14721714455 0024616 0 ustar 00root root 0000000 0000000 a = false
a.b = true tomli-2.2.1/tests/data/invalid/dotted-keys/extend-defined-aot.toml 0000664 0000000 0000000 00000000035 14721714455 0025146 0 ustar 00root root 0000000 0000000 [[tab.arr]]
[tab]
arr.val1=1
tomli-2.2.1/tests/data/invalid/dotted-keys/extend-defined-table-with-subtable.toml 0000664 0000000 0000000 00000000046 14721714455 0030224 0 ustar 00root root 0000000 0000000 [a.b.c.d]
z = 9
[a]
b.c.d.k.t = 8
tomli-2.2.1/tests/data/invalid/dotted-keys/extend-defined-table.toml 0000664 0000000 0000000 00000000040 14721714455 0025446 0 ustar 00root root 0000000 0000000 [a.b.c]
z = 9
[a]
b.c.t = 9
tomli-2.2.1/tests/data/invalid/inline-table-missing-comma.toml 0000664 0000000 0000000 00000000063 14721714455 0024353 0 ustar 00root root 0000000 0000000 arrr = { comma-missing = true valid-toml = false }
tomli-2.2.1/tests/data/invalid/inline-table/ 0000775 0000000 0000000 00000000000 14721714455 0020716 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/inline-table/define-twice-in-subtable.toml 0000664 0000000 0000000 00000000055 14721714455 0026361 0 ustar 00root root 0000000 0000000 table1 = { table2.dupe = 1, table2.dupe = 2 } tomli-2.2.1/tests/data/invalid/inline-table/define-twice.toml 0000664 0000000 0000000 00000000036 14721714455 0024155 0 ustar 00root root 0000000 0000000 table = { dupe = 1, dupe = 2 } tomli-2.2.1/tests/data/invalid/inline-table/file-end-after-key-val.toml 0000664 0000000 0000000 00000000006 14721714455 0025737 0 ustar 00root root 0000000 0000000 a={b=1 tomli-2.2.1/tests/data/invalid/inline-table/mutate.toml 0000664 0000000 0000000 00000000025 14721714455 0023107 0 ustar 00root root 0000000 0000000 a = { b = 1 }
a.b = 2 tomli-2.2.1/tests/data/invalid/inline-table/override-val-in-table.toml 0000664 0000000 0000000 00000000106 14721714455 0025700 0 ustar 00root root 0000000 0000000 [tab.nested]
inline-t = { nest = {} }
[tab]
nested.inline-t.nest = 2
tomli-2.2.1/tests/data/invalid/inline-table/override-val-with-array.toml 0000664 0000000 0000000 00000000054 14721714455 0026276 0 ustar 00root root 0000000 0000000 inline-t = { nest = {} }
[[inline-t.nest]]
tomli-2.2.1/tests/data/invalid/inline-table/override-val-with-table.toml 0000664 0000000 0000000 00000000052 14721714455 0026245 0 ustar 00root root 0000000 0000000 inline-t = { nest = {} }
[inline-t.nest]
tomli-2.2.1/tests/data/invalid/inline-table/overwrite-implicitly.toml 0000664 0000000 0000000 00000000027 14721714455 0026015 0 ustar 00root root 0000000 0000000 a = { b = 1, b.c = 2 }
tomli-2.2.1/tests/data/invalid/inline-table/overwrite-value-in-inner-array.toml 0000664 0000000 0000000 00000000065 14721714455 0027605 0 ustar 00root root 0000000 0000000 tab = { inner.table = [{}], inner.table.val = "bad" } tomli-2.2.1/tests/data/invalid/inline-table/overwrite-value-in-inner-table.toml 0000664 0000000 0000000 00000000067 14721714455 0027560 0 ustar 00root root 0000000 0000000 tab = { inner = { dog = "best" }, inner.cat = "worst" } tomli-2.2.1/tests/data/invalid/inline-table/unclosed-empty.toml 0000664 0000000 0000000 00000000003 14721714455 0024554 0 ustar 00root root 0000000 0000000 a={ tomli-2.2.1/tests/data/invalid/invalid-comment-char.toml 0000664 0000000 0000000 00000000047 14721714455 0023252 0 ustar 00root root 0000000 0000000 # form feed () not allowed in comments tomli-2.2.1/tests/data/invalid/invalid-escaped-unicode.toml 0000664 0000000 0000000 00000000033 14721714455 0023720 0 ustar 00root root 0000000 0000000 escaped-unicode = "\uabag"
tomli-2.2.1/tests/data/invalid/invalid-hex.toml 0000664 0000000 0000000 00000000022 14721714455 0021452 0 ustar 00root root 0000000 0000000 hex = 0xgabba00f1
tomli-2.2.1/tests/data/invalid/keys-and-vals/ 0000775 0000000 0000000 00000000000 14721714455 0021031 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/keys-and-vals/ends-early-table-def.toml 0000664 0000000 0000000 00000000012 14721714455 0025603 0 ustar 00root root 0000000 0000000 [fwfw.wafw tomli-2.2.1/tests/data/invalid/keys-and-vals/ends-early.toml 0000664 0000000 0000000 00000000005 14721714455 0023764 0 ustar 00root root 0000000 0000000 fs.fw tomli-2.2.1/tests/data/invalid/keys-and-vals/no-value.toml 0000664 0000000 0000000 00000000015 14721714455 0023450 0 ustar 00root root 0000000 0000000 why-no-value= tomli-2.2.1/tests/data/invalid/keys-and-vals/only-ws-after-dot.toml 0000664 0000000 0000000 00000000003 14721714455 0025212 0 ustar 00root root 0000000 0000000 fs. tomli-2.2.1/tests/data/invalid/keys-and-vals/overwrite-with-deep-table.toml 0000664 0000000 0000000 00000000016 14721714455 0026722 0 ustar 00root root 0000000 0000000 a=1
[a.b.c.d]
tomli-2.2.1/tests/data/invalid/literal-str/ 0000775 0000000 0000000 00000000000 14721714455 0020615 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/literal-str/unclosed.toml 0000664 0000000 0000000 00000000016 14721714455 0023323 0 ustar 00root root 0000000 0000000 unclosed='dwdd tomli-2.2.1/tests/data/invalid/missing-closing-double-square-bracket.toml 0000664 0000000 0000000 00000000042 14721714455 0026530 0 ustar 00root root 0000000 0000000 [[closing-bracket.missing]
blaa=2
tomli-2.2.1/tests/data/invalid/missing-closing-square-bracket.toml 0000664 0000000 0000000 00000000042 14721714455 0025260 0 ustar 00root root 0000000 0000000 [closing-bracket.missingö
blaa=2
tomli-2.2.1/tests/data/invalid/multiline-basic-str/ 0000775 0000000 0000000 00000000000 14721714455 0022242 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/multiline-basic-str/carriage-return.toml 0000664 0000000 0000000 00000000105 14721714455 0026225 0 ustar 00root root 0000000 0000000 s="""cr is not an allowed line ending
but we just tried to use it
""" tomli-2.2.1/tests/data/invalid/multiline-basic-str/escape-only.toml 0000664 0000000 0000000 00000000016 14721714455 0025353 0 ustar 00root root 0000000 0000000 bee = """\"""
tomli-2.2.1/tests/data/invalid/multiline-basic-str/file-ends-after-opening.toml 0000664 0000000 0000000 00000000005 14721714455 0027534 0 ustar 00root root 0000000 0000000 a=""" tomli-2.2.1/tests/data/invalid/multiline-basic-str/last-line-escape.toml 0000664 0000000 0000000 00000000035 14721714455 0026263 0 ustar 00root root 0000000 0000000 bee = """
hee \
gee \ """
tomli-2.2.1/tests/data/invalid/multiline-basic-str/unclosed-ends-in-whitespace-escape.toml 0000664 0000000 0000000 00000000024 14721714455 0031672 0 ustar 00root root 0000000 0000000 bee = """
hee
gee\ tomli-2.2.1/tests/data/invalid/multiline-literal-str/ 0000775 0000000 0000000 00000000000 14721714455 0022615 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/multiline-literal-str/file-ends-after-opening.toml 0000664 0000000 0000000 00000000005 14721714455 0030107 0 ustar 00root root 0000000 0000000 a=''' tomli-2.2.1/tests/data/invalid/multiline-literal-str/unclosed.toml 0000664 0000000 0000000 00000000024 14721714455 0025322 0 ustar 00root root 0000000 0000000 bee = '''
hee
gee '' tomli-2.2.1/tests/data/invalid/non-scalar-escaped.toml 0000664 0000000 0000000 00000000012 14721714455 0022700 0 ustar 00root root 0000000 0000000 a="\ud800" tomli-2.2.1/tests/data/invalid/table/ 0000775 0000000 0000000 00000000000 14721714455 0017442 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/invalid/table/eof-after-opening.toml 0000664 0000000 0000000 00000000001 14721714455 0023633 0 ustar 00root root 0000000 0000000 [ tomli-2.2.1/tests/data/invalid/table/redefine-1.toml 0000664 0000000 0000000 00000000031 14721714455 0022250 0 ustar 00root root 0000000 0000000 [t1]
t2.t3.v = 0
[t1.t2]
tomli-2.2.1/tests/data/invalid/table/redefine-2.toml 0000664 0000000 0000000 00000000034 14721714455 0022254 0 ustar 00root root 0000000 0000000 [t1]
t2.t3.v = 0
[t1.t2.t3]
tomli-2.2.1/tests/data/invalid/unclosed-multiline-string.toml 0000664 0000000 0000000 00000000050 14721714455 0024363 0 ustar 00root root 0000000 0000000 not-closed= """
diibaa
blibae ete
eteta
tomli-2.2.1/tests/data/invalid/unclosed-string.toml 0000664 0000000 0000000 00000000034 14721714455 0022365 0 ustar 00root root 0000000 0000000 "a-string".must-be = "closed tomli-2.2.1/tests/data/valid/ 0000775 0000000 0000000 00000000000 14721714455 0016024 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/ 0000775 0000000 0000000 00000000000 14721714455 0020005 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/ 0000775 0000000 0000000 00000000000 14721714455 0022213 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/COPYING 0000664 0000000 0000000 00000002067 14721714455 0023253 0 ustar 00root root 0000000 0000000 The MIT License (MIT)
Copyright (c) 2018 TOML authors
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, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
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.
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/ 0000775 0000000 0000000 00000000000 14721714455 0023312 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/ 0000775 0000000 0000000 00000000000 14721714455 0024430 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/array.json 0000664 0000000 0000000 00000001664 14721714455 0026450 0 ustar 00root root 0000000 0000000 {
"comments": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
],
"dates": [
{
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
},
{
"type": "datetime",
"value": "1979-05-27T07:32:00Z"
},
{
"type": "datetime",
"value": "2006-06-01T11:00:00Z"
}
],
"floats": [
{
"type": "float",
"value": "1.1"
},
{
"type": "float",
"value": "2.1"
},
{
"type": "float",
"value": "3.1"
}
],
"ints": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
{
"type": "integer",
"value": "3"
}
],
"strings": [
{
"type": "string",
"value": "a"
},
{
"type": "string",
"value": "b"
},
{
"type": "string",
"value": "c"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/array.toml 0000664 0000000 0000000 00000000315 14721714455 0026442 0 ustar 00root root 0000000 0000000 ints = [1, 2, 3, ]
floats = [1.1, 2.1, 3.1]
strings = ["a", "b", "c"]
dates = [
1987-07-05T17:45:00Z,
1979-05-27T07:32:00Z,
2006-06-01T11:00:00Z,
]
comments = [
1,
2, #this is ok
]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/bool.json 0000664 0000000 0000000 00000000203 14721714455 0026251 0 ustar 00root root 0000000 0000000 {
"a": [
{
"type": "bool",
"value": "true"
},
{
"type": "bool",
"value": "false"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/bool.toml 0000664 0000000 0000000 00000000022 14721714455 0026252 0 ustar 00root root 0000000 0000000 a = [true, false]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/empty.json 0000664 0000000 0000000 00000000124 14721714455 0026456 0 ustar 00root root 0000000 0000000 {
"thevoid": [
[
[
[
[]
]
]
]
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/empty.toml 0000664 0000000 0000000 00000000025 14721714455 0026460 0 ustar 00root root 0000000 0000000 thevoid = [[[[[]]]]]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/hetergeneous.json 0000664 0000000 0000000 00000000674 14721714455 0030027 0 ustar 00root root 0000000 0000000 {
"mixed": [
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
],
[
{
"type": "string",
"value": "a"
},
{
"type": "string",
"value": "b"
}
],
[
{
"type": "float",
"value": "1.1"
},
{
"type": "float",
"value": "2.1"
}
]
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/hetergeneous.toml 0000664 0000000 0000000 00000000051 14721714455 0030016 0 ustar 00root root 0000000 0000000 mixed = [[1, 2], ["a", "b"], [1.1, 2.1]]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-int-array.json 0000664 0000000 0000000 00000000272 14721714455 0030336 0 ustar 00root root 0000000 0000000 {
"arrays-and-ints": [
{
"type": "integer",
"value": "1"
},
[
{
"type": "string",
"value": "Arrays are not integers."
}
]
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-int-array.toml 0000664 0000000 0000000 00000000065 14721714455 0030340 0 ustar 00root root 0000000 0000000 arrays-and-ints = [1, ["Arrays are not integers."]]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-int-float.json 0000664 0000000 0000000 00000000220 14721714455 0030316 0 ustar 00root root 0000000 0000000 {
"ints-and-floats": [
{
"type": "integer",
"value": "1"
},
{
"type": "float",
"value": "1.1"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-int-float.toml 0000664 0000000 0000000 00000000033 14721714455 0030322 0 ustar 00root root 0000000 0000000 ints-and-floats = [1, 1.1]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-int-string.json 0000664 0000000 0000000 00000000222 14721714455 0030521 0 ustar 00root root 0000000 0000000 {
"strings-and-ints": [
{
"type": "string",
"value": "hi"
},
{
"type": "integer",
"value": "42"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-int-string.toml 0000664 0000000 0000000 00000000036 14721714455 0030526 0 ustar 00root root 0000000 0000000 strings-and-ints = ["hi", 42]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-string-table.json 0000664 0000000 0000000 00000000611 14721714455 0031020 0 ustar 00root root 0000000 0000000 {
"contributors": [
{
"type": "string",
"value": "Foo Bar \u003cfoo@example.com\u003e"
},
{
"email": {
"type": "string",
"value": "bazqux@example.com"
},
"name": {
"type": "string",
"value": "Baz Qux"
},
"url": {
"type": "string",
"value": "https://example.com/bazqux"
}
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/mixed-string-table.toml 0000664 0000000 0000000 00000000213 14721714455 0031020 0 ustar 00root root 0000000 0000000 contributors = [
"Foo Bar ",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nested-double.json 0000664 0000000 0000000 00000000576 14721714455 0030065 0 ustar 00root root 0000000 0000000 {
"nest": [
[
[
{
"type": "string",
"value": "a"
}
],
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
[
{
"type": "integer",
"value": "3"
}
]
]
]
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nested-double.toml 0000664 0000000 0000000 00000000050 14721714455 0030052 0 ustar 00root root 0000000 0000000 nest = [
[
["a"],
[1, 2, [3]]
]
]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nested-inline-table.json 0000664 0000000 0000000 00000000053 14721714455 0031144 0 ustar 00root root 0000000 0000000 {
"a": [
{
"b": {}
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nested-inline-table.toml 0000664 0000000 0000000 00000000023 14721714455 0031143 0 ustar 00root root 0000000 0000000 a = [ { b = {} } ]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nested.json 0000664 0000000 0000000 00000000253 14721714455 0026605 0 ustar 00root root 0000000 0000000 {
"nest": [
[
{
"type": "string",
"value": "a"
}
],
[
{
"type": "string",
"value": "b"
}
]
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nested.toml 0000664 0000000 0000000 00000000026 14721714455 0026605 0 ustar 00root root 0000000 0000000 nest = [["a"], ["b"]]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nospaces.json 0000664 0000000 0000000 00000000276 14721714455 0027143 0 ustar 00root root 0000000 0000000 {
"ints": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
{
"type": "integer",
"value": "3"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/nospaces.toml 0000664 0000000 0000000 00000000017 14721714455 0027136 0 ustar 00root root 0000000 0000000 ints = [1,2,3]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/string-quote-comma-2.json 0000664 0000000 0000000 00000000120 14721714455 0031206 0 ustar 00root root 0000000 0000000 {
"title": [
{
"type": "string",
"value": " \", "
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/string-quote-comma-2.toml 0000664 0000000 0000000 00000000024 14721714455 0031213 0 ustar 00root root 0000000 0000000 title = [ " \", ",]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/string-quote-comma.json 0000664 0000000 0000000 00000000247 14721714455 0031061 0 ustar 00root root 0000000 0000000 {
"title": [
{
"type": "string",
"value": "Client: \"XXXX\", Job: XXXX"
},
{
"type": "string",
"value": "Code: XXXX"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/string-quote-comma.toml 0000664 0000000 0000000 00000000070 14721714455 0031055 0 ustar 00root root 0000000 0000000 title = [
"Client: \"XXXX\", Job: XXXX",
"Code: XXXX"
]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/string-with-comma.json 0000664 0000000 0000000 00000000243 14721714455 0030673 0 ustar 00root root 0000000 0000000 {
"title": [
{
"type": "string",
"value": "Client: XXXX, Job: XXXX"
},
{
"type": "string",
"value": "Code: XXXX"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/string-with-comma.toml 0000664 0000000 0000000 00000000064 14721714455 0030676 0 ustar 00root root 0000000 0000000 title = [
"Client: XXXX, Job: XXXX",
"Code: XXXX"
]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/strings.json 0000664 0000000 0000000 00000000421 14721714455 0027011 0 ustar 00root root 0000000 0000000 {
"string_array": [
{
"type": "string",
"value": "all"
},
{
"type": "string",
"value": "strings"
},
{
"type": "string",
"value": "are the same"
},
{
"type": "string",
"value": "type"
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/strings.toml 0000664 0000000 0000000 00000000103 14721714455 0027010 0 ustar 00root root 0000000 0000000 string_array = [ "all", 'strings', """are the same""", '''type''']
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/table-array-string-backslash.json 0000664 0000000 0000000 00000000157 14721714455 0032766 0 ustar 00root root 0000000 0000000 {
"foo": [
{
"bar": {
"type": "string",
"value": "\"{{baz}}\""
}
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/array/table-array-string-backslash.toml 0000664 0000000 0000000 00000000037 14721714455 0032765 0 ustar 00root root 0000000 0000000 foo = [ { bar="\"{{baz}}\""} ]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/bool/ 0000775 0000000 0000000 00000000000 14721714455 0024245 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/bool/bool.json 0000664 0000000 0000000 00000000160 14721714455 0026070 0 ustar 00root root 0000000 0000000 {
"f": {
"type": "bool",
"value": "false"
},
"t": {
"type": "bool",
"value": "true"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/bool/bool.toml 0000664 0000000 0000000 00000000023 14721714455 0026070 0 ustar 00root root 0000000 0000000 t = true
f = false
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/ 0000775 0000000 0000000 00000000000 14721714455 0024754 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/at-eof.json 0000664 0000000 0000000 00000000076 14721714455 0027025 0 ustar 00root root 0000000 0000000 {
"key": {
"type": "string",
"value": "value"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/at-eof.toml 0000664 0000000 0000000 00000000125 14721714455 0027022 0 ustar 00root root 0000000 0000000 # This is a full-line comment
key = "value" # This is a comment at the end of a line
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/at-eof2.json 0000664 0000000 0000000 00000000076 14721714455 0027107 0 ustar 00root root 0000000 0000000 {
"key": {
"type": "string",
"value": "value"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/at-eof2.toml 0000664 0000000 0000000 00000000125 14721714455 0027104 0 ustar 00root root 0000000 0000000 # This is a full-line comment
key = "value" # This is a comment at the end of a line
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/everywhere.json 0000664 0000000 0000000 00000000622 14721714455 0030034 0 ustar 00root root 0000000 0000000 {
"group": {
"answer": {
"type": "integer",
"value": "42"
},
"dt": {
"type": "datetime",
"value": "1979-05-27T07:32:12-07:00"
},
"d": {
"type": "date-local",
"value": "1979-05-27"
},
"more": [
{
"type": "integer",
"value": "42"
},
{
"type": "integer",
"value": "42"
}
]
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/everywhere.toml 0000664 0000000 0000000 00000001106 14721714455 0030034 0 ustar 00root root 0000000 0000000 # Top comment.
# Top comment.
# Top comment.
# [no-extraneous-groups-please]
[group] # Comment
answer = 42 # Comment
# no-extraneous-keys-please = 999
# Inbetween comment.
more = [ # Comment
# What about multiple # comments?
# Can you handle it?
#
# Evil.
# Evil.
42, 42, # Comments within arrays are fun.
# What about multiple # comments?
# Can you handle it?
#
# Evil.
# Evil.
# ] Did I fool you?
] # Hopefully not.
# Make sure the space between the datetime and "#" isn't lexed.
dt = 1979-05-27T07:32:12-07:00 # c
d = 1979-05-27 # Comment
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/noeol.json 0000664 0000000 0000000 00000000003 14721714455 0026754 0 ustar 00root root 0000000 0000000 {}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/noeol.toml 0000664 0000000 0000000 00000000053 14721714455 0026763 0 ustar 00root root 0000000 0000000 # single comment without any eol characters tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/tricky.json 0000664 0000000 0000000 00000002771 14721714455 0027163 0 ustar 00root root 0000000 0000000 {
"hash#tag": {
"#!": {
"type": "string",
"value": "hash bang"
},
"arr3": [
{
"type": "string",
"value": "#"
},
{
"type": "string",
"value": "#"
},
{
"type": "string",
"value": "###"
}
],
"arr4": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
{
"type": "integer",
"value": "3"
},
{
"type": "integer",
"value": "4"
}
],
"arr5": [
[
[
[
[
{
"type": "string",
"value": "#"
}
]
]
]
]
],
"tbl1": {
"#": {
"type": "string",
"value": "}#"
}
}
},
"section": {
"8": {
"type": "string",
"value": "eight"
},
"eleven": {
"type": "float",
"value": "11.1"
},
"five": {
"type": "float",
"value": "5.5"
},
"four": {
"type": "string",
"value": "# no comment\n# nor this\n#also not comment"
},
"one": {
"type": "string",
"value": "11"
},
"six": {
"type": "integer",
"value": "6"
},
"ten": {
"type": "float",
"value": "1000.0"
},
"three": {
"type": "string",
"value": "#"
},
"two": {
"type": "string",
"value": "22#"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/comment/tricky.toml 0000664 0000000 0000000 00000000601 14721714455 0027153 0 ustar 00root root 0000000 0000000 [section]#attached comment
#[notsection]
one = "11"#cmt
two = "22#"
three = '#'
four = """# no comment
# nor this
#also not comment"""#is_comment
five = 5.5#66
six = 6#7
8 = "eight"
#nine = 99
ten = 10e2#1
eleven = 1.11e1#23
["hash#tag"]
"#!" = "hash bang"
arr3 = [ "#", '#', """###""" ]
arr4 = [ 1,# 9, 9,
2#,9
,#9
3#]
,4]
arr5 = [[[[#["#"],
["#"]]]]#]
]
tbl1 = { "#" = '}#'}#}}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/ 0000775 0000000 0000000 00000000000 14721714455 0025106 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/datetime.json 0000664 0000000 0000000 00000000237 14721714455 0027577 0 ustar 00root root 0000000 0000000 {
"lower": {
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
},
"space": {
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/datetime.toml 0000664 0000000 0000000 00000000072 14721714455 0027576 0 ustar 00root root 0000000 0000000 space = 1987-07-05 17:45:00Z
lower = 1987-07-05t17:45:00z
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/local-date.json 0000664 0000000 0000000 00000000117 14721714455 0030005 0 ustar 00root root 0000000 0000000 {
"bestdayever": {
"type": "date-local",
"value": "1987-07-05"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/local-date.toml 0000664 0000000 0000000 00000000031 14721714455 0030002 0 ustar 00root root 0000000 0000000 bestdayever = 1987-07-05
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/local-time.json 0000664 0000000 0000000 00000000235 14721714455 0030027 0 ustar 00root root 0000000 0000000 {
"besttimeever": {
"type": "time-local",
"value": "17:45:00"
},
"milliseconds": {
"type": "time-local",
"value": "10:32:00.555"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/local-time.toml 0000664 0000000 0000000 00000000064 14721714455 0030031 0 ustar 00root root 0000000 0000000 besttimeever = 17:45:00
milliseconds = 10:32:00.555
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/local.json 0000664 0000000 0000000 00000000400 14721714455 0027065 0 ustar 00root root 0000000 0000000 {
"local": {
"type": "datetime-local",
"value": "1987-07-05T17:45:00"
},
"milli": {
"type": "datetime-local",
"value": "1977-12-21T10:32:00.555"
},
"space": {
"type": "datetime-local",
"value": "1987-07-05T17:45:00"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/local.toml 0000664 0000000 0000000 00000000130 14721714455 0027067 0 ustar 00root root 0000000 0000000 local = 1987-07-05T17:45:00
milli = 1977-12-21T10:32:00.555
space = 1987-07-05 17:45:00
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/milliseconds.json 0000664 0000000 0000000 00000000527 14721714455 0030472 0 ustar 00root root 0000000 0000000 {
"utc1": {
"type": "datetime",
"value": "1987-07-05T17:45:56.1234Z"
},
"utc2": {
"type": "datetime",
"value": "1987-07-05T17:45:56.6000Z"
},
"wita1": {
"type": "datetime",
"value": "1987-07-05T17:45:56.1234+08:00"
},
"wita2": {
"type": "datetime",
"value": "1987-07-05T17:45:56.6000+08:00"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/milliseconds.toml 0000664 0000000 0000000 00000000214 14721714455 0030465 0 ustar 00root root 0000000 0000000 utc1 = 1987-07-05T17:45:56.1234Z
utc2 = 1987-07-05T17:45:56.6Z
wita1 = 1987-07-05T17:45:56.1234+08:00
wita2 = 1987-07-05T17:45:56.6+08:00
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/timezone.json 0000664 0000000 0000000 00000000504 14721714455 0027632 0 ustar 00root root 0000000 0000000 {
"nzdt": {
"type": "datetime",
"value": "1987-07-05T17:45:56+13:00"
},
"nzst": {
"type": "datetime",
"value": "1987-07-05T17:45:56+12:00"
},
"pdt": {
"type": "datetime",
"value": "1987-07-05T17:45:56-05:00"
},
"utc": {
"type": "datetime",
"value": "1987-07-05T17:45:56Z"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/datetime/timezone.toml 0000664 0000000 0000000 00000000206 14721714455 0027633 0 ustar 00root root 0000000 0000000 utc = 1987-07-05T17:45:56Z
pdt = 1987-07-05T17:45:56-05:00
nzst = 1987-07-05T17:45:56+12:00
nzdt = 1987-07-05T17:45:56+13:00 # DST
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/empty-file.json 0000664 0000000 0000000 00000000003 14721714455 0026251 0 ustar 00root root 0000000 0000000 {}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/empty-file.toml 0000664 0000000 0000000 00000000000 14721714455 0026250 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/example.json 0000664 0000000 0000000 00000000622 14721714455 0025640 0 ustar 00root root 0000000 0000000 {
"best-day-ever": {
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
},
"numtheory": {
"boring": {
"type": "bool",
"value": "false"
},
"perfection": [
{
"type": "integer",
"value": "6"
},
{
"type": "integer",
"value": "28"
},
{
"type": "integer",
"value": "496"
}
]
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/example.toml 0000664 0000000 0000000 00000000133 14721714455 0025637 0 ustar 00root root 0000000 0000000 best-day-ever = 1987-07-05T17:45:00Z
[numtheory]
boring = false
perfection = [6, 28, 496]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/ 0000775 0000000 0000000 00000000000 14721714455 0024417 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/exponent.json 0000664 0000000 0000000 00000000751 14721714455 0027155 0 ustar 00root root 0000000 0000000 {
"lower": {
"type": "float",
"value": "300.0"
},
"minustenth": {
"type": "float",
"value": "-0.1"
},
"neg": {
"type": "float",
"value": "0.03"
},
"pointlower": {
"type": "float",
"value": "310.0"
},
"pointupper": {
"type": "float",
"value": "310.0"
},
"pos": {
"type": "float",
"value": "300.0"
},
"upper": {
"type": "float",
"value": "300.0"
},
"zero": {
"type": "float",
"value": "3.0"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/exponent.toml 0000664 0000000 0000000 00000000162 14721714455 0027153 0 ustar 00root root 0000000 0000000 lower = 3e2
upper = 3E2
neg = 3e-2
pos = 3E+2
zero = 3e0
pointlower = 3.1e2
pointupper = 3.1E2
minustenth = -1E-1
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/float.json 0000664 0000000 0000000 00000000365 14721714455 0026423 0 ustar 00root root 0000000 0000000 {
"negpi": {
"type": "float",
"value": "-3.14"
},
"pi": {
"type": "float",
"value": "3.14"
},
"pospi": {
"type": "float",
"value": "3.14"
},
"zero-intpart": {
"type": "float",
"value": "0.123"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/float.toml 0000664 0000000 0000000 00000000073 14721714455 0026421 0 ustar 00root root 0000000 0000000 pi = 3.14
pospi = +3.14
negpi = -3.14
zero-intpart = 0.123
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/inf-and-nan.json 0000664 0000000 0000000 00000000566 14721714455 0027407 0 ustar 00root root 0000000 0000000 {
"infinity": {
"type": "float",
"value": "inf"
},
"infinity_neg": {
"type": "float",
"value": "-inf"
},
"infinity_plus": {
"type": "float",
"value": "+inf"
},
"nan": {
"type": "float",
"value": "nan"
},
"nan_neg": {
"type": "float",
"value": "nan"
},
"nan_plus": {
"type": "float",
"value": "nan"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/inf-and-nan.toml 0000664 0000000 0000000 00000000350 14721714455 0027400 0 ustar 00root root 0000000 0000000 # We don't encode +nan and -nan back with the signs; many languages don't
# support a sign on NaN (it doesn't really make much sense).
nan = nan
nan_neg = -nan
nan_plus = +nan
infinity = inf
infinity_neg = -inf
infinity_plus = +inf
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/long.json 0000664 0000000 0000000 00000000231 14721714455 0026245 0 ustar 00root root 0000000 0000000 {
"longpi": {
"type": "float",
"value": "3.141592653589793"
},
"neglongpi": {
"type": "float",
"value": "-3.141592653589793"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/long.toml 0000664 0000000 0000000 00000000072 14721714455 0026252 0 ustar 00root root 0000000 0000000 longpi = 3.141592653589793
neglongpi = -3.141592653589793
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/underscore.json 0000664 0000000 0000000 00000000304 14721714455 0027460 0 ustar 00root root 0000000 0000000 {
"after": {
"type": "float",
"value": "3141.5927"
},
"before": {
"type": "float",
"value": "3141.5927"
},
"exponent": {
"type": "float",
"value": "3.0e14"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/underscore.toml 0000664 0000000 0000000 00000000070 14721714455 0027462 0 ustar 00root root 0000000 0000000 before = 3_141.5927
after = 3141.592_7
exponent = 3e1_4
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/zero.json 0000664 0000000 0000000 00000000674 14721714455 0026300 0 ustar 00root root 0000000 0000000 {
"zero": {
"type": "float",
"value": "0"
},
"signed-pos": {
"type": "float",
"value": "0"
},
"signed-neg": {
"type": "float",
"value": "0"
},
"exponent": {
"type": "float",
"value": "0"
},
"exponent-two-0": {
"type": "float",
"value": "0"
},
"exponent-signed-pos": {
"type": "float",
"value": "0"
},
"exponent-signed-neg": {
"type": "float",
"value": "0"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/float/zero.toml 0000664 0000000 0000000 00000000212 14721714455 0026266 0 ustar 00root root 0000000 0000000 zero = 0.0
signed-pos = +0.0
signed-neg = -0.0
exponent = 0e0
exponent-two-0 = 0e00
exponent-signed-pos = +0e0
exponent-signed-neg = -0e0
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/implicit-and-explicit-after.json 0000664 0000000 0000000 00000000316 14721714455 0031475 0 ustar 00root root 0000000 0000000 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
},
"better": {
"type": "integer",
"value": "43"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/implicit-and-explicit-after.toml 0000664 0000000 0000000 00000000045 14721714455 0031476 0 ustar 00root root 0000000 0000000 [a.b.c]
answer = 42
[a]
better = 43
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/implicit-and-explicit-before.json 0000664 0000000 0000000 00000000316 14721714455 0031636 0 ustar 00root root 0000000 0000000 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
},
"better": {
"type": "integer",
"value": "43"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/implicit-and-explicit-before.toml 0000664 0000000 0000000 00000000045 14721714455 0031637 0 ustar 00root root 0000000 0000000 [a]
better = 43
[a.b.c]
answer = 42
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/implicit-groups.json 0000664 0000000 0000000 00000000212 14721714455 0027327 0 ustar 00root root 0000000 0000000 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/implicit-groups.toml 0000664 0000000 0000000 00000000024 14721714455 0027332 0 ustar 00root root 0000000 0000000 [a.b.c]
answer = 42
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/ 0000775 0000000 0000000 00000000000 14721714455 0025655 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/array.json 0000664 0000000 0000000 00000001047 14721714455 0027670 0 ustar 00root root 0000000 0000000 {
"people": [
{
"first_name": {
"type": "string",
"value": "Bruce"
},
"last_name": {
"type": "string",
"value": "Springsteen"
}
},
{
"first_name": {
"type": "string",
"value": "Eric"
},
"last_name": {
"type": "string",
"value": "Clapton"
}
},
{
"first_name": {
"type": "string",
"value": "Bob"
},
"last_name": {
"type": "string",
"value": "Seger"
}
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/array.toml 0000664 0000000 0000000 00000000252 14721714455 0027667 0 ustar 00root root 0000000 0000000 people = [{first_name = "Bruce", last_name = "Springsteen"},
{first_name = "Eric", last_name = "Clapton"},
{first_name = "Bob", last_name = "Seger"}]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/bool.json 0000664 0000000 0000000 00000000215 14721714455 0027501 0 ustar 00root root 0000000 0000000 {
"a": {
"a": {
"type": "bool",
"value": "true"
},
"b": {
"type": "bool",
"value": "false"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/bool.toml 0000664 0000000 0000000 00000000032 14721714455 0027500 0 ustar 00root root 0000000 0000000 a = {a = true, b = false}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/empty.json 0000664 0000000 0000000 00000000563 14721714455 0027712 0 ustar 00root root 0000000 0000000 {
"empty1": {},
"empty2": {},
"empty_in_array": [
{
"not_empty": {
"type": "integer",
"value": "1"
}
},
{}
],
"empty_in_array2": [
{},
{
"not_empty": {
"type": "integer",
"value": "1"
}
}
],
"many_empty": [
{},
{},
{}
],
"nested_empty": {
"empty": {}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/empty.toml 0000664 0000000 0000000 00000000235 14721714455 0027710 0 ustar 00root root 0000000 0000000 empty1 = {}
empty2 = { }
empty_in_array = [ { not_empty = 1 }, {} ]
empty_in_array2 = [{},{not_empty=1}]
many_empty = [{},{},{}]
nested_empty = {"empty"={}}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/end-in-bool.json 0000664 0000000 0000000 00000000373 14721714455 0030656 0 ustar 00root root 0000000 0000000 {
"black": {
"allow_prereleases": {
"type": "bool",
"value": "true"
},
"python": {
"type": "string",
"value": "\u003e3.6"
},
"version": {
"type": "string",
"value": "\u003e=18.9b0"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/end-in-bool.toml 0000664 0000000 0000000 00000000106 14721714455 0030652 0 ustar 00root root 0000000 0000000 black = { python=">3.6", version=">=18.9b0", allow_prereleases=true }
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/inline-table.json 0000664 0000000 0000000 00000001214 14721714455 0031111 0 ustar 00root root 0000000 0000000 {
"name": {
"first": {
"type": "string",
"value": "Tom"
},
"last": {
"type": "string",
"value": "Preston-Werner"
}
},
"point": {
"x": {
"type": "integer",
"value": "1"
},
"y": {
"type": "integer",
"value": "2"
}
},
"simple": {
"a": {
"type": "integer",
"value": "1"
}
},
"str-key": {
"a": {
"type": "integer",
"value": "1"
}
},
"table-array": [
{
"a": {
"type": "integer",
"value": "1"
}
},
{
"b": {
"type": "integer",
"value": "2"
}
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/inline-table.toml 0000664 0000000 0000000 00000000235 14721714455 0031115 0 ustar 00root root 0000000 0000000 name = { first = "Tom", last = "Preston-Werner" }
point = { x = 1, y = 2 }
simple = { a = 1 }
str-key = { "a" = 1 }
table-array = [{ "a" = 1 }, { "b" = 2 }]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/key-dotted.json 0000664 0000000 0000000 00000004027 14721714455 0030624 0 ustar 00root root 0000000 0000000 {
"a": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"arr": [
{
"T": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"t": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
}
},
{
"T": {
"a": {
"b": {
"type": "integer",
"value": "2"
}
}
},
"t": {
"a": {
"b": {
"type": "integer",
"value": "2"
}
}
}
}
],
"b": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"c": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"d": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"e": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"inline": {
"a": {
"b": {
"type": "integer",
"value": "42"
}
}
},
"many": {
"dots": {
"here": {
"dot": {
"dot": {
"dot": {
"a": {
"b": {
"c": {
"type": "integer",
"value": "1"
},
"d": {
"type": "integer",
"value": "2"
}
}
}
}
}
}
}
}
},
"tbl": {
"a": {
"b": {
"c": {
"d": {
"e": {
"type": "integer",
"value": "1"
}
}
}
}
},
"x": {
"a": {
"b": {
"c": {
"d": {
"e": {
"type": "integer",
"value": "1"
}
}
}
}
}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/key-dotted.toml 0000664 0000000 0000000 00000000464 14721714455 0030627 0 ustar 00root root 0000000 0000000 inline = {a.b = 42}
many.dots.here.dot.dot.dot = {a.b.c = 1, a.b.d = 2}
a = { a.b = 1 }
b = { "a"."b" = 1 }
c = { a . b = 1 }
d = { 'a' . "b" = 1 }
e = {a.b=1}
[tbl]
a.b.c = {d.e=1}
[tbl.x]
a.b.c = {d.e=1}
[[arr]]
t = {a.b=1}
T = {a.b=1}
[[arr]]
t = {a.b=2}
T = {a.b=2}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/multiline.json 0000664 0000000 0000000 00000000460 14721714455 0030552 0 ustar 00root root 0000000 0000000 {
"tbl_multiline": {
"a": {
"type": "integer",
"value": "1"
},
"b": {
"type": "string",
"value": "multiline\n"
},
"c": {
"type": "string",
"value": "and yet\nanother line"
},
"d": {
"type": "integer",
"value": "4"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/multiline.toml 0000664 0000000 0000000 00000000130 14721714455 0030546 0 ustar 00root root 0000000 0000000 tbl_multiline = { a = 1, b = """
multiline
""", c = """and yet
another line""", d = 4 }
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/nest.json 0000664 0000000 0000000 00000001527 14721714455 0027526 0 ustar 00root root 0000000 0000000 {
"arr_arr_tbl_empty": [
[
{}
]
],
"arr_arr_tbl_val": [
[
{
"one": {
"type": "integer",
"value": "1"
}
}
]
],
"arr_arr_tbls": [
[
{
"one": {
"type": "integer",
"value": "1"
}
},
{
"two": {
"type": "integer",
"value": "2"
}
}
]
],
"arr_tbl_tbl": [
{
"tbl": {
"one": {
"type": "integer",
"value": "1"
}
}
}
],
"tbl_arr_tbl": {
"arr_tbl": [
{
"one": {
"type": "integer",
"value": "1"
}
}
]
},
"tbl_tbl_empty": {
"tbl_0": {}
},
"tbl_tbl_val": {
"tbl_1": {
"one": {
"type": "integer",
"value": "1"
}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/inline-table/nest.toml 0000664 0000000 0000000 00000000564 14721714455 0027530 0 ustar 00root root 0000000 0000000 tbl_tbl_empty = { tbl_0 = {} }
tbl_tbl_val = { tbl_1 = { one = 1 } }
tbl_arr_tbl = { arr_tbl = [ { one = 1 } ] }
arr_tbl_tbl = [ { tbl = { one = 1 } } ]
# Array-of-array-of-table is interesting because it can only
# be represented in inline form.
arr_arr_tbl_empty = [ [ {} ] ]
arr_arr_tbl_val = [ [ { one = 1 } ] ]
arr_arr_tbls = [ [ { one = 1 }, { two = 2 } ] ]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/ 0000775 0000000 0000000 00000000000 14721714455 0024747 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/integer.json 0000664 0000000 0000000 00000000367 14721714455 0027305 0 ustar 00root root 0000000 0000000 {
"answer": {
"type": "integer",
"value": "42"
},
"neganswer": {
"type": "integer",
"value": "-42"
},
"posanswer": {
"type": "integer",
"value": "42"
},
"zero": {
"type": "integer",
"value": "0"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/integer.toml 0000664 0000000 0000000 00000000065 14721714455 0027302 0 ustar 00root root 0000000 0000000 answer = 42
posanswer = +42
neganswer = -42
zero = 0
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/literals.json 0000664 0000000 0000000 00000001055 14721714455 0027462 0 ustar 00root root 0000000 0000000 {
"bin1": {
"type": "integer",
"value": "214"
},
"bin2": {
"type": "integer",
"value": "5"
},
"hex1": {
"type": "integer",
"value": "3735928559"
},
"hex2": {
"type": "integer",
"value": "3735928559"
},
"hex3": {
"type": "integer",
"value": "3735928559"
},
"hex4": {
"type": "integer",
"value": "2439"
},
"oct1": {
"type": "integer",
"value": "342391"
},
"oct2": {
"type": "integer",
"value": "493"
},
"oct3": {
"type": "integer",
"value": "501"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/literals.toml 0000664 0000000 0000000 00000000227 14721714455 0027464 0 ustar 00root root 0000000 0000000 bin1 = 0b11010110
bin2 = 0b1_0_1
oct1 = 0o01234567
oct2 = 0o755
oct3 = 0o7_6_5
hex1 = 0xDEADBEEF
hex2 = 0xdeadbeef
hex3 = 0xdead_beef
hex4 = 0x00987
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/long.json 0000664 0000000 0000000 00000000250 14721714455 0026576 0 ustar 00root root 0000000 0000000 {
"int64-max": {
"type": "integer",
"value": "9223372036854775807"
},
"int64-max-neg": {
"type": "integer",
"value": "-9223372036854775808"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/long.toml 0000664 0000000 0000000 00000000105 14721714455 0026577 0 ustar 00root root 0000000 0000000 int64-max = 9223372036854775807
int64-max-neg = -9223372036854775808
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/underscore.json 0000664 0000000 0000000 00000000170 14721714455 0030011 0 ustar 00root root 0000000 0000000 {
"kilo": {
"type": "integer",
"value": "1000"
},
"x": {
"type": "integer",
"value": "1111"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/underscore.toml 0000664 0000000 0000000 00000000031 14721714455 0030007 0 ustar 00root root 0000000 0000000 kilo = 1_000
x = 1_1_1_1
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/zero.json 0000664 0000000 0000000 00000001227 14721714455 0026623 0 ustar 00root root 0000000 0000000 {
"a2": {
"type": "integer",
"value": "0"
},
"a3": {
"type": "integer",
"value": "0"
},
"b1": {
"type": "integer",
"value": "0"
},
"b2": {
"type": "integer",
"value": "0"
},
"b3": {
"type": "integer",
"value": "0"
},
"d1": {
"type": "integer",
"value": "0"
},
"d2": {
"type": "integer",
"value": "0"
},
"d3": {
"type": "integer",
"value": "0"
},
"h1": {
"type": "integer",
"value": "0"
},
"h2": {
"type": "integer",
"value": "0"
},
"h3": {
"type": "integer",
"value": "0"
},
"o1": {
"type": "integer",
"value": "0"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/integer/zero.toml 0000664 0000000 0000000 00000000172 14721714455 0026623 0 ustar 00root root 0000000 0000000 d1 = 0
d2 = +0
d3 = -0
h1 = 0x0
h2 = 0x00
h3 = 0x00000
o1 = 0o0
a2 = 0o00
a3 = 0o00000
b1 = 0b0
b2 = 0b00
b3 = 0b00000
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/ 0000775 0000000 0000000 00000000000 14721714455 0024102 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/alphanum.json 0000664 0000000 0000000 00000001230 14721714455 0026576 0 ustar 00root root 0000000 0000000 {
"000111": {
"type": "string",
"value": "leading"
},
"10e3": {
"type": "string",
"value": "false float"
},
"123": {
"type": "string",
"value": "num"
},
"2018_10": {
"001": {
"type": "integer",
"value": "1"
}
},
"34-11": {
"type": "integer",
"value": "23"
},
"a-a-a": {
"_": {
"type": "bool",
"value": "false"
}
},
"alpha": {
"type": "string",
"value": "a"
},
"one1two2": {
"type": "string",
"value": "mixed"
},
"under_score": {
"type": "string",
"value": "___"
},
"with-dash": {
"type": "string",
"value": "dashed"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/alphanum.toml 0000664 0000000 0000000 00000000255 14721714455 0026606 0 ustar 00root root 0000000 0000000 alpha = "a"
123 = "num"
000111 = "leading"
10e3 = "false float"
one1two2 = "mixed"
with-dash = "dashed"
under_score = "___"
34-11 = 23
[2018_10]
001 = 1
[a-a-a]
_ = false
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/case-sensitive.json 0000664 0000000 0000000 00000001171 14721714455 0027717 0 ustar 00root root 0000000 0000000 {
"Section": {
"M": {
"type": "string",
"value": "latin letter M"
},
"name": {
"type": "string",
"value": "different section!!"
},
"Μ": {
"type": "string",
"value": "greek capital letter MU"
},
"μ": {
"type": "string",
"value": "greek small letter mu"
}
},
"sectioN": {
"type": "string",
"value": "NN"
},
"section": {
"NAME": {
"type": "string",
"value": "upper"
},
"Name": {
"type": "string",
"value": "capitalized"
},
"name": {
"type": "string",
"value": "lower"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/case-sensitive.toml 0000664 0000000 0000000 00000000313 14721714455 0027716 0 ustar 00root root 0000000 0000000 sectioN = "NN"
[section]
name = "lower"
NAME = "upper"
Name = "capitalized"
[Section]
name = "different section!!"
"μ" = "greek small letter mu"
"Μ" = "greek capital letter MU"
M = "latin letter M"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/dotted.json 0000664 0000000 0000000 00000003741 14721714455 0026265 0 ustar 00root root 0000000 0000000 {
"a": {
"few": {
"dots": {
"polka": {
"dance-with": {
"type": "string",
"value": "Dot"
},
"dot": {
"type": "string",
"value": "again?"
}
}
}
}
},
"arr": [
{
"a": {
"b": {
"c": {
"type": "integer",
"value": "1"
},
"d": {
"type": "integer",
"value": "2"
}
}
}
},
{
"a": {
"b": {
"c": {
"type": "integer",
"value": "3"
},
"d": {
"type": "integer",
"value": "4"
}
}
}
}
],
"count": {
"a": {
"type": "integer",
"value": "1"
},
"b": {
"type": "integer",
"value": "2"
},
"c": {
"type": "integer",
"value": "3"
},
"d": {
"type": "integer",
"value": "4"
},
"e": {
"type": "integer",
"value": "5"
},
"f": {
"type": "integer",
"value": "6"
},
"g": {
"type": "integer",
"value": "7"
},
"h": {
"type": "integer",
"value": "8"
},
"i": {
"type": "integer",
"value": "9"
},
"j": {
"type": "integer",
"value": "10"
},
"k": {
"type": "integer",
"value": "11"
},
"l": {
"type": "integer",
"value": "12"
}
},
"many": {
"dots": {
"here": {
"dot": {
"dot": {
"dot": {
"type": "integer",
"value": "42"
}
}
}
}
}
},
"name": {
"first": {
"type": "string",
"value": "Arthur"
},
"last": {
"type": "string",
"value": "Dent"
}
},
"tbl": {
"a": {
"b": {
"c": {
"type": "float",
"value": "42.666"
}
}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/dotted.toml 0000664 0000000 0000000 00000001027 14721714455 0026262 0 ustar 00root root 0000000 0000000 # Note: this file contains literal tab characters.
name.first = "Arthur"
"name".'last' = "Dent"
many.dots.here.dot.dot.dot = 42
# Space are ignored, and key parts can be quoted.
count.a = 1
count . b = 2
"count"."c" = 3
"count" . "d" = 4
'count'.'e' = 5
'count' . 'f' = 6
"count".'g' = 7
"count" . 'h' = 8
count.'i' = 9
count . 'j' = 10
"count".k = 11
"count" . l = 12
[tbl]
a.b.c = 42.666
[a.few.dots]
polka.dot = "again?"
polka.dance-with = "Dot"
[[arr]]
a.b.c=1
a.b.d=2
[[arr]]
a.b.c=3
a.b.d=4
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/empty.json 0000664 0000000 0000000 00000000073 14721714455 0026133 0 ustar 00root root 0000000 0000000 {
"": {
"type": "string",
"value": "blank"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/empty.toml 0000664 0000000 0000000 00000000015 14721714455 0026131 0 ustar 00root root 0000000 0000000 "" = "blank"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/equals-nospace.json 0000664 0000000 0000000 00000000077 14721714455 0027721 0 ustar 00root root 0000000 0000000 {
"answer": {
"type": "integer",
"value": "42"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/equals-nospace.toml 0000664 0000000 0000000 00000000012 14721714455 0027710 0 ustar 00root root 0000000 0000000 answer=42
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/escapes.json 0000664 0000000 0000000 00000000547 14721714455 0026426 0 ustar 00root root 0000000 0000000 {
"\n": {
"type": "string",
"value": "newline"
},
"\"": {
"type": "string",
"value": "just a quote"
},
"\"quoted\"": {
"quote": {
"type": "bool",
"value": "true"
}
},
"a.b": {
"À": {}
},
"backsp\u0008\u0008": {},
"À": {
"type": "string",
"value": "latin capital letter A with grave"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/escapes.toml 0000664 0000000 0000000 00000000225 14721714455 0026421 0 ustar 00root root 0000000 0000000 "\n" = "newline"
"\u00c0" = "latin capital letter A with grave"
"\"" = "just a quote"
["backsp\b\b"]
["\"quoted\""]
quote = true
["a.b"."\u00c0"]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/numeric-dotted.json 0000664 0000000 0000000 00000000116 14721714455 0027716 0 ustar 00root root 0000000 0000000 {
"1": {
"2": {
"type": "integer",
"value": "3"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/numeric-dotted.toml 0000664 0000000 0000000 00000000010 14721714455 0027711 0 ustar 00root root 0000000 0000000 1.2 = 3
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/numeric.json 0000664 0000000 0000000 00000000071 14721714455 0026435 0 ustar 00root root 0000000 0000000 {
"1": {
"type": "integer",
"value": "1"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/numeric.toml 0000664 0000000 0000000 00000000006 14721714455 0026435 0 ustar 00root root 0000000 0000000 1 = 1
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/quoted-dots.json 0000664 0000000 0000000 00000000734 14721714455 0027251 0 ustar 00root root 0000000 0000000 {
"plain": {
"type": "integer",
"value": "1"
},
"plain_table": {
"plain": {
"type": "integer",
"value": "3"
},
"with.dot": {
"type": "integer",
"value": "4"
}
},
"table": {
"withdot": {
"key.with.dots": {
"type": "integer",
"value": "6"
},
"plain": {
"type": "integer",
"value": "5"
}
}
},
"with.dot": {
"type": "integer",
"value": "2"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/quoted-dots.toml 0000664 0000000 0000000 00000000160 14721714455 0027244 0 ustar 00root root 0000000 0000000 plain = 1
"with.dot" = 2
[plain_table]
plain = 3
"with.dot" = 4
[table.withdot]
plain = 5
"key.with.dots" = 6
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/space.json 0000664 0000000 0000000 00000000073 14721714455 0026070 0 ustar 00root root 0000000 0000000 {
"a b": {
"type": "integer",
"value": "1"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/space.toml 0000664 0000000 0000000 00000000012 14721714455 0026063 0 ustar 00root root 0000000 0000000 "a b" = 1
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/special-chars.json 0000664 0000000 0000000 00000000152 14721714455 0027511 0 ustar 00root root 0000000 0000000 {
"~!@$^\u0026*()_+-`1234567890[]|/?\u003e\u003c.,;:'": {
"type": "integer",
"value": "1"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/special-chars.toml 0000664 0000000 0000000 00000000052 14721714455 0027512 0 ustar 00root root 0000000 0000000 "~!@$^&*()_+-`1234567890[]|/?><.,;:'" = 1
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/special-word.json 0000664 0000000 0000000 00000000405 14721714455 0027365 0 ustar 00root root 0000000 0000000 {
"false": {
"type": "bool",
"value": "false"
},
"inf": {
"type": "integer",
"value": "100000000"
},
"nan": {
"type": "string",
"value": "ceci n'est pas un nombre"
},
"true": {
"type": "integer",
"value": "1"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/key/special-word.toml 0000664 0000000 0000000 00000000111 14721714455 0027361 0 ustar 00root root 0000000 0000000 false = false
true = 1
inf = 100000000
nan = "ceci n'est pas un nombre"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/newline-crlf.json 0000664 0000000 0000000 00000000171 14721714455 0026571 0 ustar 00root root 0000000 0000000 {
"newline": {
"type": "string",
"value": "crlf"
},
"os": {
"type": "string",
"value": "DOS"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/newline-crlf.toml 0000664 0000000 0000000 00000000036 14721714455 0026573 0 ustar 00root root 0000000 0000000 os = "DOS"
newline = "crlf"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/newline-lf.json 0000664 0000000 0000000 00000000170 14721714455 0026243 0 ustar 00root root 0000000 0000000 {
"newline": {
"type": "string",
"value": "lf"
},
"os": {
"type": "string",
"value": "unix"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/newline-lf.toml 0000664 0000000 0000000 00000000033 14721714455 0026243 0 ustar 00root root 0000000 0000000 os = "unix"
newline = "lf"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/spec-example-1-compact.json 0000664 0000000 0000000 00000003113 14721714455 0030350 0 ustar 00root root 0000000 0000000 {
"clients": {
"data": [
[
{
"type": "string",
"value": "gamma"
},
{
"type": "string",
"value": "delta"
}
],
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
]
],
"hosts": [
{
"type": "string",
"value": "alpha"
},
{
"type": "string",
"value": "omega"
}
]
},
"database": {
"connection_max": {
"type": "integer",
"value": "5000"
},
"enabled": {
"type": "bool",
"value": "true"
},
"ports": [
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8002"
}
],
"server": {
"type": "string",
"value": "192.168.1.1"
}
},
"owner": {
"dob": {
"type": "datetime",
"value": "1979-05-27T07:32:00-08:00"
},
"name": {
"type": "string",
"value": "Lance Uppercut"
}
},
"servers": {
"alpha": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.1"
}
},
"beta": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.2"
}
}
},
"title": {
"type": "string",
"value": "TOML Example"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/spec-example-1-compact.toml 0000664 0000000 0000000 00000000570 14721714455 0030356 0 ustar 00root root 0000000 0000000 #Useless spaces eliminated.
title="TOML Example"
[owner]
name="Lance Uppercut"
dob=1979-05-27T07:32:00-08:00#First class dates
[database]
server="192.168.1.1"
ports=[8001,8001,8002]
connection_max=5000
enabled=true
[servers]
[servers.alpha]
ip="10.0.0.1"
dc="eqdc10"
[servers.beta]
ip="10.0.0.2"
dc="eqdc10"
[clients]
data=[["gamma","delta"],[1,2]]
hosts=[
"alpha",
"omega"
]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/spec-example-1.json 0000664 0000000 0000000 00000003113 14721714455 0026724 0 ustar 00root root 0000000 0000000 {
"clients": {
"data": [
[
{
"type": "string",
"value": "gamma"
},
{
"type": "string",
"value": "delta"
}
],
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
]
],
"hosts": [
{
"type": "string",
"value": "alpha"
},
{
"type": "string",
"value": "omega"
}
]
},
"database": {
"connection_max": {
"type": "integer",
"value": "5000"
},
"enabled": {
"type": "bool",
"value": "true"
},
"ports": [
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8002"
}
],
"server": {
"type": "string",
"value": "192.168.1.1"
}
},
"owner": {
"dob": {
"type": "datetime",
"value": "1979-05-27T07:32:00-08:00"
},
"name": {
"type": "string",
"value": "Lance Uppercut"
}
},
"servers": {
"alpha": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.1"
}
},
"beta": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.2"
}
}
},
"title": {
"type": "string",
"value": "TOML Example"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/spec-example-1.toml 0000664 0000000 0000000 00000001057 14721714455 0026733 0 ustar 00root root 0000000 0000000 # This is a TOML document. Boom.
title = "TOML Example"
[owner]
name = "Lance Uppercut"
dob = 1979-05-27T07:32:00-08:00 # First class dates? Why not?
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
# You can indent as you please. Tabs or spaces. TOML don't care.
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
[clients]
data = [ ["gamma", "delta"], [1, 2] ]
# Line breaks are OK when inside arrays
hosts = [
"alpha",
"omega"
]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/ 0000775 0000000 0000000 00000000000 14721714455 0024620 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/double-quote-escape.json 0000664 0000000 0000000 00000000101 14721714455 0031346 0 ustar 00root root 0000000 0000000 {
"test": {
"type": "string",
"value": "\"one\""
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/double-quote-escape.toml 0000664 0000000 0000000 00000000021 14721714455 0031351 0 ustar 00root root 0000000 0000000 test = "\"one\""
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/empty.json 0000664 0000000 0000000 00000000074 14721714455 0026652 0 ustar 00root root 0000000 0000000 {
"answer": {
"type": "string",
"value": ""
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/empty.toml 0000664 0000000 0000000 00000000014 14721714455 0026646 0 ustar 00root root 0000000 0000000 answer = ""
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/escape-tricky.json 0000664 0000000 0000000 00000001155 14721714455 0030260 0 ustar 00root root 0000000 0000000 {
"end_esc": {
"type": "string",
"value": "String does not end here\" but ends here\\"
},
"lit_end_esc": {
"type": "string",
"value": "String ends here\\"
},
"lit_multiline_end": {
"type": "string",
"value": "There is no escape\\"
},
"lit_multiline_not_unicode": {
"type": "string",
"value": "\\u007f"
},
"multiline_end_esc": {
"type": "string",
"value": "When will it end? \"\"\"...\"\"\" should be here\""
},
"multiline_not_unicode": {
"type": "string",
"value": "\\u0041"
},
"multiline_unicode": {
"type": "string",
"value": " "
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/escape-tricky.toml 0000664 0000000 0000000 00000000510 14721714455 0030254 0 ustar 00root root 0000000 0000000 end_esc = "String does not end here\" but ends here\\"
lit_end_esc = 'String ends here\'
multiline_unicode = """
\u00a0"""
multiline_not_unicode = """
\\u0041"""
multiline_end_esc = """When will it end? \"""...""\" should be here\""""
lit_multiline_not_unicode = '''
\u007f'''
lit_multiline_end = '''There is no escape\'''
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/escaped-escape.json 0000664 0000000 0000000 00000000101 14721714455 0030345 0 ustar 00root root 0000000 0000000 {
"answer": {
"type": "string",
"value": "\\x64"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/escaped-escape.toml 0000664 0000000 0000000 00000000021 14721714455 0030350 0 ustar 00root root 0000000 0000000 answer = "\\x64"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/escapes.json 0000664 0000000 0000000 00000002511 14721714455 0027135 0 ustar 00root root 0000000 0000000 {
"backslash": {
"type": "string",
"value": "This string has a \\ backslash character."
},
"backspace": {
"type": "string",
"value": "This string has a \u0008 backspace character."
},
"carriage": {
"type": "string",
"value": "This string has a \r carriage return character."
},
"delete": {
"type": "string",
"value": "This string has a delete control code."
},
"formfeed": {
"type": "string",
"value": "This string has a \u000c form feed character."
},
"newline": {
"type": "string",
"value": "This string has a \n new line character."
},
"notunicode1": {
"type": "string",
"value": "This string does not have a unicode \\u escape."
},
"notunicode2": {
"type": "string",
"value": "This string does not have a unicode \\u escape."
},
"notunicode3": {
"type": "string",
"value": "This string does not have a unicode \\u0075 escape."
},
"notunicode4": {
"type": "string",
"value": "This string does not have a unicode \\u escape."
},
"quote": {
"type": "string",
"value": "This string has a \" quote character."
},
"tab": {
"type": "string",
"value": "This string has a \t tab character."
},
"unitseparator": {
"type": "string",
"value": "This string has a \u001f unit separator control code."
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/escapes.toml 0000664 0000000 0000000 00000001403 14721714455 0027136 0 ustar 00root root 0000000 0000000 backspace = "This string has a \b backspace character."
tab = "This string has a \t tab character."
newline = "This string has a \n new line character."
formfeed = "This string has a \f form feed character."
carriage = "This string has a \r carriage return character."
quote = "This string has a \" quote character."
backslash = "This string has a \\ backslash character."
notunicode1 = "This string does not have a unicode \\u escape."
notunicode2 = "This string does not have a unicode \u005Cu escape."
notunicode3 = "This string does not have a unicode \\u0075 escape."
notunicode4 = "This string does not have a unicode \\\u0075 escape."
delete = "This string has a \u007F delete control code."
unitseparator = "This string has a \u001F unit separator control code."
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/multiline-quotes.json 0000664 0000000 0000000 00000001340 14721714455 0031031 0 ustar 00root root 0000000 0000000 {
"lit_one": {
"type": "string",
"value": "'one quote'"
},
"lit_one_space": {
"type": "string",
"value": " 'one quote' "
},
"lit_two": {
"type": "string",
"value": "''two quotes''"
},
"lit_two_space": {
"type": "string",
"value": " ''two quotes'' "
},
"mismatch1": {
"type": "string",
"value": "aaa'''bbb"
},
"mismatch2": {
"type": "string",
"value": "aaa\"\"\"bbb"
},
"one": {
"type": "string",
"value": "\"one quote\""
},
"one_space": {
"type": "string",
"value": " \"one quote\" "
},
"two": {
"type": "string",
"value": "\"\"two quotes\"\""
},
"two_space": {
"type": "string",
"value": " \"\"two quotes\"\" "
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/multiline-quotes.toml 0000664 0000000 0000000 00000000700 14721714455 0031032 0 ustar 00root root 0000000 0000000 # Make sure that quotes inside multiline strings are allowed, including right
# after the opening '''/""" and before the closing '''/"""
lit_one = ''''one quote''''
lit_two = '''''two quotes'''''
lit_one_space = ''' 'one quote' '''
lit_two_space = ''' ''two quotes'' '''
one = """"one quote""""
two = """""two quotes"""""
one_space = """ "one quote" """
two_space = """ ""two quotes"" """
mismatch1 = """aaa'''bbb"""
mismatch2 = '''aaa"""bbb'''
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/multiline.json 0000664 0000000 0000000 00000002057 14721714455 0027521 0 ustar 00root root 0000000 0000000 {
"equivalent_one": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
},
"equivalent_three": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
},
"equivalent_two": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
},
"escape-bs-1": {
"type": "string",
"value": "a \\\nb"
},
"escape-bs-2": {
"type": "string",
"value": "a \\b"
},
"escape-bs-3": {
"type": "string",
"value": "a \\\\\n b"
},
"keep-ws-before": {
"type": "string",
"value": "a \tb"
},
"multiline_empty_four": {
"type": "string",
"value": ""
},
"multiline_empty_one": {
"type": "string",
"value": ""
},
"multiline_empty_three": {
"type": "string",
"value": ""
},
"multiline_empty_two": {
"type": "string",
"value": ""
},
"no-space": {
"type": "string",
"value": "ab"
},
"whitespace-after-bs": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/multiline.toml 0000664 0000000 0000000 00000001637 14721714455 0027526 0 ustar 00root root 0000000 0000000 # NOTE: this file includes some literal tab characters.
multiline_empty_one = """"""
# A newline immediately following the opening delimiter will be trimmed.
multiline_empty_two = """
"""
# \ at the end of line trims newlines as well; note that last \ is followed by
# two spaces, which are ignored.
multiline_empty_three = """\
"""
multiline_empty_four = """\
\
\
"""
equivalent_one = "The quick brown fox jumps over the lazy dog."
equivalent_two = """
The quick brown \
fox jumps over \
the lazy dog."""
equivalent_three = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""
whitespace-after-bs = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""
no-space = """a\
b"""
# Has tab character.
keep-ws-before = """a \
b"""
escape-bs-1 = """a \\
b"""
escape-bs-2 = """a \\\
b"""
escape-bs-3 = """a \\\\
b"""
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/nl.json 0000664 0000000 0000000 00000000521 14721714455 0026122 0 ustar 00root root 0000000 0000000 {
"lit_nl_end": {
"type": "string",
"value": "value\\n"
},
"lit_nl_mid": {
"type": "string",
"value": "val\\nue"
},
"lit_nl_uni": {
"type": "string",
"value": "val\\ue"
},
"nl_end": {
"type": "string",
"value": "value\n"
},
"nl_mid": {
"type": "string",
"value": "val\nue"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/nl.toml 0000664 0000000 0000000 00000000163 14721714455 0026126 0 ustar 00root root 0000000 0000000 nl_mid = "val\nue"
nl_end = """value\n"""
lit_nl_end = '''value\n'''
lit_nl_mid = 'val\nue'
lit_nl_uni = 'val\ue'
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/raw-multiline.json 0000664 0000000 0000000 00000000503 14721714455 0030302 0 ustar 00root root 0000000 0000000 {
"firstnl": {
"type": "string",
"value": "This string has a ' quote character."
},
"multiline": {
"type": "string",
"value": "This string\nhas ' a quote character\nand more than\none newline\nin it."
},
"oneline": {
"type": "string",
"value": "This string has a ' quote character."
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/raw-multiline.toml 0000664 0000000 0000000 00000000551 14721714455 0030307 0 ustar 00root root 0000000 0000000 # Single ' should be allowed.
oneline = '''This string has a ' quote character.'''
# A newline immediately following the opening delimiter will be trimmed.
firstnl = '''
This string has a ' quote character.'''
# All other whitespace and newline characters remain intact.
multiline = '''
This string
has ' a quote character
and more than
one newline
in it.'''
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/raw.json 0000664 0000000 0000000 00000001273 14721714455 0026307 0 ustar 00root root 0000000 0000000 {
"backslash": {
"type": "string",
"value": "This string has a \\\\ backslash character."
},
"backspace": {
"type": "string",
"value": "This string has a \\b backspace character."
},
"carriage": {
"type": "string",
"value": "This string has a \\r carriage return character."
},
"formfeed": {
"type": "string",
"value": "This string has a \\f form feed character."
},
"newline": {
"type": "string",
"value": "This string has a \\n new line character."
},
"slash": {
"type": "string",
"value": "This string has a \\/ slash character."
},
"tab": {
"type": "string",
"value": "This string has a \\t tab character."
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/raw.toml 0000664 0000000 0000000 00000000565 14721714455 0026314 0 ustar 00root root 0000000 0000000 backspace = 'This string has a \b backspace character.'
tab = 'This string has a \t tab character.'
newline = 'This string has a \n new line character.'
formfeed = 'This string has a \f form feed character.'
carriage = 'This string has a \r carriage return character.'
slash = 'This string has a \/ slash character.'
backslash = 'This string has a \\ backslash character.'
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/simple.json 0000664 0000000 0000000 00000000137 14721714455 0027005 0 ustar 00root root 0000000 0000000 {
"answer": {
"type": "string",
"value": "You are not drinking enough whisky."
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/simple.toml 0000664 0000000 0000000 00000000057 14721714455 0027010 0 ustar 00root root 0000000 0000000 answer = "You are not drinking enough whisky."
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/unicode-escape.json 0000664 0000000 0000000 00000000173 14721714455 0030400 0 ustar 00root root 0000000 0000000 {
"answer4": {
"type": "string",
"value": "δ"
},
"answer8": {
"type": "string",
"value": "δ"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/unicode-escape.toml 0000664 0000000 0000000 00000000052 14721714455 0030376 0 ustar 00root root 0000000 0000000 answer4 = "\u03B4"
answer8 = "\U000003B4"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/unicode-literal.json 0000664 0000000 0000000 00000000076 14721714455 0030576 0 ustar 00root root 0000000 0000000 {
"answer": {
"type": "string",
"value": "δ"
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/unicode-literal.toml 0000664 0000000 0000000 00000000016 14721714455 0030572 0 ustar 00root root 0000000 0000000 answer = "δ"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/with-pound.json 0000664 0000000 0000000 00000000267 14721714455 0027616 0 ustar 00root root 0000000 0000000 {
"pound": {
"type": "string",
"value": "We see no # comments here."
},
"poundcomment": {
"type": "string",
"value": "But there are # some comments here."
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/string/with-pound.toml 0000664 0000000 0000000 00000000161 14721714455 0027611 0 ustar 00root root 0000000 0000000 pound = "We see no # comments here."
poundcomment = "But there are # some comments here." # Did I # mess you up?
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/ 0000775 0000000 0000000 00000000000 14721714455 0024401 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-implicit.json 0000664 0000000 0000000 00000000223 14721714455 0030217 0 ustar 00root root 0000000 0000000 {
"albums": {
"songs": [
{
"name": {
"type": "string",
"value": "Glory Days"
}
}
]
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-implicit.toml 0000664 0000000 0000000 00000000045 14721714455 0030223 0 ustar 00root root 0000000 0000000 [[albums.songs]]
name = "Glory Days"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-many.json 0000664 0000000 0000000 00000001047 14721714455 0027356 0 ustar 00root root 0000000 0000000 {
"people": [
{
"first_name": {
"type": "string",
"value": "Bruce"
},
"last_name": {
"type": "string",
"value": "Springsteen"
}
},
{
"first_name": {
"type": "string",
"value": "Eric"
},
"last_name": {
"type": "string",
"value": "Clapton"
}
},
{
"first_name": {
"type": "string",
"value": "Bob"
},
"last_name": {
"type": "string",
"value": "Seger"
}
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-many.toml 0000664 0000000 0000000 00000000243 14721714455 0027355 0 ustar 00root root 0000000 0000000 [[people]]
first_name = "Bruce"
last_name = "Springsteen"
[[people]]
first_name = "Eric"
last_name = "Clapton"
[[people]]
first_name = "Bob"
last_name = "Seger"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-nest.json 0000664 0000000 0000000 00000001362 14721714455 0027363 0 ustar 00root root 0000000 0000000 {
"albums": [
{
"name": {
"type": "string",
"value": "Born to Run"
},
"songs": [
{
"name": {
"type": "string",
"value": "Jungleland"
}
},
{
"name": {
"type": "string",
"value": "Meeting Across the River"
}
}
]
},
{
"name": {
"type": "string",
"value": "Born in the USA"
},
"songs": [
{
"name": {
"type": "string",
"value": "Glory Days"
}
},
{
"name": {
"type": "string",
"value": "Dancing in the Dark"
}
}
]
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-nest.toml 0000664 0000000 0000000 00000000406 14721714455 0027363 0 ustar 00root root 0000000 0000000 [[albums]]
name = "Born to Run"
[[albums.songs]]
name = "Jungleland"
[[albums.songs]]
name = "Meeting Across the River"
[[albums]]
name = "Born in the USA"
[[albums.songs]]
name = "Glory Days"
[[albums.songs]]
name = "Dancing in the Dark"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-one.json 0000664 0000000 0000000 00000000312 14721714455 0027165 0 ustar 00root root 0000000 0000000 {
"people": [
{
"first_name": {
"type": "string",
"value": "Bruce"
},
"last_name": {
"type": "string",
"value": "Springsteen"
}
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-one.toml 0000664 0000000 0000000 00000000072 14721714455 0027172 0 ustar 00root root 0000000 0000000 [[people]]
first_name = "Bruce"
last_name = "Springsteen"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-table-array.json 0000664 0000000 0000000 00000000523 14721714455 0030613 0 ustar 00root root 0000000 0000000 {
"a": [
{
"b": [
{
"c": {
"d": {
"type": "string",
"value": "val0"
}
}
},
{
"c": {
"d": {
"type": "string",
"value": "val1"
}
}
}
]
}
]
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/array-table-array.toml 0000664 0000000 0000000 00000000154 14721714455 0030615 0 ustar 00root root 0000000 0000000 [[a]]
[[a.b]]
[a.b.c]
d = "val0"
[[a.b]]
[a.b.c]
d = "val1"
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/empty.json 0000664 0000000 0000000 00000000016 14721714455 0026427 0 ustar 00root root 0000000 0000000 {
"a": {}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/empty.toml 0000664 0000000 0000000 00000000004 14721714455 0026426 0 ustar 00root root 0000000 0000000 [a]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/keyword.json 0000664 0000000 0000000 00000000072 14721714455 0026757 0 ustar 00root root 0000000 0000000 {
"true": {},
"false": {},
"inf": {},
"nan": {}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/keyword.toml 0000664 0000000 0000000 00000000040 14721714455 0026754 0 ustar 00root root 0000000 0000000 [true]
[false]
[inf]
[nan]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/names.json 0000664 0000000 0000000 00000000422 14721714455 0026375 0 ustar 00root root 0000000 0000000 {
"a": {
" x ": {},
"b": {
"c": {}
},
"b.c": {},
"d.e": {}
},
"d": {
"e": {
"f": {}
}
},
"g": {
"h": {
"i": {}
}
},
"j": {
"ʞ": {
"l": {}
}
},
"x": {
"1": {
"2": {}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/names.toml 0000664 0000000 0000000 00000000132 14721714455 0026375 0 ustar 00root root 0000000 0000000 [a.b.c]
[a."b.c"]
[a.'d.e']
[a.' x ']
[ d.e.f ]
[ g . h . i ]
[ j . "ʞ" . 'l' ]
[x.1.2]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/no-eol.json 0000664 0000000 0000000 00000000022 14721714455 0026457 0 ustar 00root root 0000000 0000000 {
"table": {}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/no-eol.toml 0000664 0000000 0000000 00000000010 14721714455 0026456 0 ustar 00root root 0000000 0000000 [table]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/sub-empty.json 0000664 0000000 0000000 00000000035 14721714455 0027217 0 ustar 00root root 0000000 0000000 {
"a": {
"b": {}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/sub-empty.toml 0000664 0000000 0000000 00000000012 14721714455 0027214 0 ustar 00root root 0000000 0000000 [a]
[a.b]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/whitespace.json 0000664 0000000 0000000 00000000026 14721714455 0027426 0 ustar 00root root 0000000 0000000 {
"valid key": {}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/whitespace.toml 0000664 0000000 0000000 00000000016 14721714455 0027427 0 ustar 00root root 0000000 0000000 ["valid key"]
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/with-literal-string.json 0000664 0000000 0000000 00000000216 14721714455 0031204 0 ustar 00root root 0000000 0000000 {
"a": {
"\"b\"": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/with-literal-string.toml 0000664 0000000 0000000 00000000051 14721714455 0031203 0 ustar 00root root 0000000 0000000 ['a']
[a.'"b"']
[a.'"b"'.c]
answer = 42
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/with-pound.json 0000664 0000000 0000000 00000000134 14721714455 0027370 0 ustar 00root root 0000000 0000000 {
"key#group": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/with-pound.toml 0000664 0000000 0000000 00000000032 14721714455 0027367 0 ustar 00root root 0000000 0000000 ["key#group"]
answer = 42
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/with-single-quotes.json 0000664 0000000 0000000 00000000212 14721714455 0031037 0 ustar 00root root 0000000 0000000 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/with-single-quotes.toml 0000664 0000000 0000000 00000000045 14721714455 0031045 0 ustar 00root root 0000000 0000000 ['a']
[a.'b']
[a.'b'.c]
answer = 42
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/without-super.json 0000664 0000000 0000000 00000000107 14721714455 0030131 0 ustar 00root root 0000000 0000000 {
"x": {
"y": {
"z": {
"w": {}
}
}
}
}
tomli-2.2.1/tests/data/valid/_external/burntsushi/valid/table/without-super.toml 0000664 0000000 0000000 00000000170 14721714455 0030133 0 ustar 00root root 0000000 0000000 # [x] you
# [x.y] don't
# [x.y.z] need these
[x.y.z.w] # for this to work
[x] # defining a super-table afterwards is ok
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/ 0000775 0000000 0000000 00000000000 14721714455 0024007 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/LICENSE 0000664 0000000 0000000 00000002210 14721714455 0025007 0 ustar 00root root 0000000 0000000 The MIT License
Copyright (c) 2021 Pradyun Gedam and Contributors
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, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
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.
Portions of the Software include code copyright (c) Rebecca Turner.
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/README.md 0000664 0000000 0000000 00000000466 14721714455 0025274 0 ustar 00root root 0000000 0000000 These test cases are copied from
https://github.com/pyrmont/toml-specs/tree/989fdfb02f6ca0a9e3b0a09b5e5f5283e02f1fa7
There is an open PR (https://github.com/toml-lang/compliance/pull/8) to merge the tests into
https://github.com/toml-lang/compliance
after which we should sync the tests with that repository.
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/ 0000775 0000000 0000000 00000000000 14721714455 0025106 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/ 0000775 0000000 0000000 00000000000 14721714455 0026224 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-1.json 0000664 0000000 0000000 00000000227 14721714455 0031324 0 ustar 00root root 0000000 0000000 {"integers":
{"type":"array","value":[
{"type":"integer","value":"1"},
{"type":"integer","value":"2"},
{"type":"integer","value":"3"}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-1.toml 0000664 0000000 0000000 00000000027 14721714455 0031324 0 ustar 00root root 0000000 0000000 integers = [ 1, 2, 3 ]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-2.json 0000664 0000000 0000000 00000000235 14721714455 0031324 0 ustar 00root root 0000000 0000000 {"colors":
{"type":"array","value":[
{"type":"string","value":"red"},
{"type":"string","value":"yellow"},
{"type":"string","value":"green"}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-2.toml 0000664 0000000 0000000 00000000046 14721714455 0031326 0 ustar 00root root 0000000 0000000 colors = [ "red", "yellow", "green" ]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-3.json 0000664 0000000 0000000 00000000464 14721714455 0031331 0 ustar 00root root 0000000 0000000 {"nested_array_of_int":
{"type":"array","value":[
{"type":"array","value":[
{"type":"integer","value":"1"},
{"type":"integer","value":"2"}]},
{"type":"array","value":[
{"type":"integer","value":"3"},
{"type":"integer","value":"4"},
{"type":"integer","value":"5"}]}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-3.toml 0000664 0000000 0000000 00000000056 14721714455 0031330 0 ustar 00root root 0000000 0000000 nested_array_of_int = [ [ 1, 2 ], [3, 4, 5] ]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-4.json 0000664 0000000 0000000 00000000321 14721714455 0031322 0 ustar 00root root 0000000 0000000 {"string_array":
{"type":"array","value":[
{"type":"string","value":"all"},
{"type":"string","value":"strings"},
{"type":"string","value":"are the same"},
{"type":"string","value":"type"}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-4.toml 0000664 0000000 0000000 00000000103 14721714455 0031322 0 ustar 00root root 0000000 0000000 string_array = [ "all", 'strings', """are the same""", '''type''']
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-5.json 0000664 0000000 0000000 00000000460 14721714455 0031327 0 ustar 00root root 0000000 0000000 {"nested_mixed_array":
{"type":"array","value":[
{"type":"array","value":[
{"type":"integer","value":"1"},
{"type":"integer","value":"2"}]},
{"type":"array","value":[
{"type":"string","value":"a"},
{"type":"string","value":"b"},
{"type":"string","value":"c"}]}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-5.toml 0000664 0000000 0000000 00000000063 14721714455 0031330 0 ustar 00root root 0000000 0000000 nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-7.json 0000664 0000000 0000000 00000000230 14721714455 0031324 0 ustar 00root root 0000000 0000000 {"integers2":
{"type":"array","value":[
{"type":"integer","value":"1"},
{"type":"integer","value":"2"},
{"type":"integer","value":"3"}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-7.toml 0000664 0000000 0000000 00000000032 14721714455 0031326 0 ustar 00root root 0000000 0000000 integers2 = [
1, 2, 3
]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-8.json 0000664 0000000 0000000 00000000164 14721714455 0031333 0 ustar 00root root 0000000 0000000 {"integers3":
{"type":"array","value":[
{"type":"integer","value":"1"},
{"type":"integer","value":"2"}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-8.toml 0000664 0000000 0000000 00000000047 14721714455 0031335 0 ustar 00root root 0000000 0000000 integers3 = [
1,
2, # this is ok
]
spec-array-mixed-number-types.json 0000664 0000000 0000000 00000000402 14721714455 0034636 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array {"numbers":
{"type":"array","value":[
{"type":"float","value":"0.1"},
{"type":"float","value":"0.2"},
{"type":"float","value":"0.5"},
{"type":"integer","value":"1"},
{"type":"integer","value":"2"},
{"type":"integer","value":"5"}]}}
spec-array-mixed-number-types.toml 0000664 0000000 0000000 00000000045 14721714455 0034643 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]
spec-array-more-mixed-types.json 0000664 0000000 0000000 00000000462 14721714455 0034316 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array {"contributors":
{"type":"array","value":[
{"type":"string","value":"Foo Bar "},
{"name":
{"type":"string","value":"Baz Qux"},
"email":
{"type":"string","value":"bazqux@example.com"},
"url":
{"type":"string", "value":"https://example.com/bazqux"}}]}}
spec-array-more-mixed-types.toml 0000664 0000000 0000000 00000000213 14721714455 0034312 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array contributors = [
"Foo Bar ",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-of-tables-1.json 0000664 0000000 0000000 00000000513 14721714455 0033174 0 ustar 00root root 0000000 0000000 {"products":
{"type":"array","value":[
{"name":
{"type":"string","value":"Hammer"},
"sku":
{"type":"integer","value":"738594937"}},
{},
{"name":
{"type":"string","value":"Nail"},
"sku":
{"type":"integer","value":"284758393"},
"color":
{"type":"string","value":"gray"}}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-of-tables-1.toml 0000664 0000000 0000000 00000000166 14721714455 0033202 0 ustar 00root root 0000000 0000000 [[products]]
name = "Hammer"
sku = 738594937
[[products]]
[[products]]
name = "Nail"
sku = 284758393
color = "gray"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-of-tables-2.json 0000664 0000000 0000000 00000001125 14721714455 0033175 0 ustar 00root root 0000000 0000000 {"fruit":
{"type":"array","value":[
{"name":
{"type":"string","value":"apple"},
"physical":
{"color":
{"type":"string","value":"red"},
"shape":
{"type":"string","value":"round"}},
"variety":
{"type":"array","value":[
{"name":
{"type":"string","value":"red delicious"}},
{"name":
{"type":"string","value":"granny smith"}}]}},
{"name":
{"type":"string","value":"banana"},
"variety":
{"type":"array","value":[
{"name":
{"type":"string","value":"plantain"}}]}}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-of-tables-2.toml 0000664 0000000 0000000 00000000374 14721714455 0033204 0 ustar 00root root 0000000 0000000 [[fruit]]
name = "apple"
[fruit.physical]
color = "red"
shape = "round"
[[fruit.variety]]
name = "red delicious"
[[fruit.variety]]
name = "granny smith"
[[fruit]]
name = "banana"
[[fruit.variety]]
name = "plantain"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-of-tables-3.json 0000664 0000000 0000000 00000000734 14721714455 0033203 0 ustar 00root root 0000000 0000000 {"points":
{"type":"array","value":[
{"x":
{"type":"integer","value":"1"},
"y":
{"type":"integer","value":"2"},
"z":
{"type":"integer","value":"3"}},
{"x":
{"type":"integer","value":"7"},
"y":
{"type":"integer","value":"8"},
"z":
{"type":"integer","value":"9"}},
{"x":
{"type":"integer","value":"2"},
"y":
{"type":"integer","value":"4"},
"z":
{"type":"integer","value":"8"}}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/array/spec-array-of-tables-3.toml 0000664 0000000 0000000 00000000155 14721714455 0033202 0 ustar 00root root 0000000 0000000 points = [ { x = 1, y = 2, z = 3 },
{ x = 7, y = 8, z = 9 },
{ x = 2, y = 4, z = 8 } ]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/boolean/ 0000775 0000000 0000000 00000000000 14721714455 0026525 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/boolean/spec-boolean-1.json 0000664 0000000 0000000 00000000057 14721714455 0032127 0 ustar 00root root 0000000 0000000 {"bool1":
{"type":"boolean","value":"true"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/boolean/spec-boolean-1.toml 0000664 0000000 0000000 00000000015 14721714455 0032123 0 ustar 00root root 0000000 0000000 bool1 = true
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/boolean/spec-boolean-2.json 0000664 0000000 0000000 00000000060 14721714455 0032122 0 ustar 00root root 0000000 0000000 {"bool1":
{"type":"boolean","value":"false"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/boolean/spec-boolean-2.toml 0000664 0000000 0000000 00000000016 14721714455 0032125 0 ustar 00root root 0000000 0000000 bool1 = false
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment/ 0000775 0000000 0000000 00000000000 14721714455 0026550 5 ustar 00root root 0000000 0000000 spec-comment-mid-array.json 0000664 0000000 0000000 00000000162 14721714455 0033640 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment {"abc":
{"type":"array","value":[
{"type":"integer","value":"123"},
{"type":"integer","value":"456"}]}}
spec-comment-mid-array.toml 0000664 0000000 0000000 00000000170 14721714455 0033641 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment # eol commetns can go anywhere
abc = [ # this is valid
123,#as is this
456 #so is this
]# and this
# here too
spec-comment-mid-string.json 0000664 0000000 0000000 00000000103 14721714455 0034023 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment {"another":
{"type":"string","value":"# This is not a comment"}}
spec-comment-mid-string.toml 0000664 0000000 0000000 00000000044 14721714455 0034031 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment another = "# This is not a comment"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment/spec-comment-tab.json 0000664 0000000 0000000 00000000055 14721714455 0032601 0 ustar 00root root 0000000 0000000 {"key":
{"type":"string","value":"value"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment/spec-comment-tab.toml 0000664 0000000 0000000 00000000206 14721714455 0032601 0 ustar 00root root 0000000 0000000 # This is a full-line comment with a tab in the middle
key = "value" # This is a commen with a tab in the middle at the end of a line
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment/spec-comment.json 0000664 0000000 0000000 00000000055 14721714455 0032035 0 ustar 00root root 0000000 0000000 {"key":
{"type":"string","value":"value"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/comment/spec-comment.toml 0000664 0000000 0000000 00000000125 14721714455 0032035 0 ustar 00root root 0000000 0000000 # This is a full-line comment
key = "value" # This is a comment at the end of a line
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/ 0000775 0000000 0000000 00000000000 14721714455 0026757 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-local-1.json 0000664 0000000 0000000 00000000066 14721714455 0032747 0 ustar 00root root 0000000 0000000 {"ld1":
{"type":"local date","value":"1979-05-27"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-local-1.toml 0000664 0000000 0000000 00000000021 14721714455 0032740 0 ustar 00root root 0000000 0000000 ld1 = 1979-05-27
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-1.json 0000664 0000000 0000000 00000000106 14721714455 0032606 0 ustar 00root root 0000000 0000000 {"odt1":
{"type":"offset datetime","value":"1979-05-27T07:32:00Z"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-1.toml 0000664 0000000 0000000 00000000034 14721714455 0032610 0 ustar 00root root 0000000 0000000 odt1 = 1979-05-27T07:32:00Z
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-2.json 0000664 0000000 0000000 00000000113 14721714455 0032605 0 ustar 00root root 0000000 0000000 {"odt2":
{"type":"offset datetime","value":"1979-05-27T00:32:00-07:00"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-2.toml 0000664 0000000 0000000 00000000041 14721714455 0032607 0 ustar 00root root 0000000 0000000 odt2 = 1979-05-27T00:32:00-07:00
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-3.json 0000664 0000000 0000000 00000000122 14721714455 0032606 0 ustar 00root root 0000000 0000000 {"odt3":
{"type":"offset datetime","value":"1979-05-27T00:32:00.999999-07:00"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-3.toml 0000664 0000000 0000000 00000000050 14721714455 0032610 0 ustar 00root root 0000000 0000000 odt3 = 1979-05-27T00:32:00.999999-07:00
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-4.json 0000664 0000000 0000000 00000000106 14721714455 0032611 0 ustar 00root root 0000000 0000000 {"odt4":
{"type":"offset datetime","value":"1979-05-27T07:32:00Z"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-4.toml 0000664 0000000 0000000 00000000034 14721714455 0032613 0 ustar 00root root 0000000 0000000 odt4 = 1979-05-27 07:32:00Z
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-5.json 0000664 0000000 0000000 00000000112 14721714455 0032607 0 ustar 00root root 0000000 0000000 {"odt5":
{"type":"offset datetime","value":"1979-05-27T07:32:00.123Z"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-5.toml 0000664 0000000 0000000 00000000040 14721714455 0032611 0 ustar 00root root 0000000 0000000 odt5 = 1979-05-27T07:32:00.123Z
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-6.json 0000664 0000000 0000000 00000000113 14721714455 0032611 0 ustar 00root root 0000000 0000000 {"odt6":
{"type":"offset datetime","value":"1979-05-27T07:32:00.1239Z"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-date-time-6.toml 0000664 0000000 0000000 00000000041 14721714455 0032613 0 ustar 00root root 0000000 0000000 odt6 = 1979-05-27T07:32:00.1239Z
spec-date-time-local-1.json 0000664 0000000 0000000 00000000104 14721714455 0033615 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time {"ldt1":
{"type":"local datetime","value":"1979-05-27T07:32:00"}}
spec-date-time-local-1.toml 0000664 0000000 0000000 00000000033 14721714455 0033620 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time ldt1 = 1979-05-27T07:32:00
spec-date-time-local-2.json 0000664 0000000 0000000 00000000113 14721714455 0033616 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time {"ldt2":
{"type":"local datetime","value":"1979-05-27T00:32:00.999999"}}
spec-date-time-local-2.toml 0000664 0000000 0000000 00000000042 14721714455 0033621 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time ldt2 = 1979-05-27T00:32:00.999999
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-time-1.json 0000664 0000000 0000000 00000000064 14721714455 0031676 0 ustar 00root root 0000000 0000000 {"lt1":
{"type":"local time","value":"07:32:00"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-time-1.toml 0000664 0000000 0000000 00000000017 14721714455 0031676 0 ustar 00root root 0000000 0000000 lt1 = 07:32:00
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-time-2.json 0000664 0000000 0000000 00000000073 14721714455 0031677 0 ustar 00root root 0000000 0000000 {"lt2":
{"type":"local time","value":"00:32:00.999999"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/date-time/spec-time-2.toml 0000664 0000000 0000000 00000000026 14721714455 0031677 0 ustar 00root root 0000000 0000000 lt2 = 00:32:00.999999
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/ 0000775 0000000 0000000 00000000000 14721714455 0026213 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-1.json 0000664 0000000 0000000 00000000051 14721714455 0031275 0 ustar 00root root 0000000 0000000 {"flt1":
{"type":"float","value":"1"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-1.toml 0000664 0000000 0000000 00000000014 14721714455 0031276 0 ustar 00root root 0000000 0000000 flt1 = +1.0
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-10.json 0000664 0000000 0000000 00000000052 14721714455 0031356 0 ustar 00root root 0000000 0000000 {"sf1":
{"type":"float","value":"inf"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-10.toml 0000664 0000000 0000000 00000000037 14721714455 0031363 0 ustar 00root root 0000000 0000000 sf1 = inf # positive infinity
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-11.json 0000664 0000000 0000000 00000000052 14721714455 0031357 0 ustar 00root root 0000000 0000000 {"sf2":
{"type":"float","value":"inf"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-11.toml 0000664 0000000 0000000 00000000037 14721714455 0031364 0 ustar 00root root 0000000 0000000 sf2 = +inf # positive infinity
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-12.json 0000664 0000000 0000000 00000000053 14721714455 0031361 0 ustar 00root root 0000000 0000000 {"sf3":
{"type":"float","value":"-inf"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-12.toml 0000664 0000000 0000000 00000000037 14721714455 0031365 0 ustar 00root root 0000000 0000000 sf3 = -inf # negative infinity
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-13.json 0000664 0000000 0000000 00000000052 14721714455 0031361 0 ustar 00root root 0000000 0000000 {"sf4":
{"type":"float","value":"nan"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-13.toml 0000664 0000000 0000000 00000000102 14721714455 0031357 0 ustar 00root root 0000000 0000000 sf4 = nan # actual sNaN/qNaN encoding is implementation specific
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-14.json 0000664 0000000 0000000 00000000052 14721714455 0031362 0 ustar 00root root 0000000 0000000 {"sf5":
{"type":"float","value":"nan"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-14.toml 0000664 0000000 0000000 00000000033 14721714455 0031363 0 ustar 00root root 0000000 0000000 sf5 = +nan # same as `nan`
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-15.json 0000664 0000000 0000000 00000000052 14721714455 0031363 0 ustar 00root root 0000000 0000000 {"sf6":
{"type":"float","value":"nan"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-15.toml 0000664 0000000 0000000 00000000077 14721714455 0031374 0 ustar 00root root 0000000 0000000 sf6 = -nan # valid, actual encoding is implementation specific
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-2.json 0000664 0000000 0000000 00000000056 14721714455 0031303 0 ustar 00root root 0000000 0000000 {"flt2":
{"type":"float","value":"3.1415"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-2.toml 0000664 0000000 0000000 00000000016 14721714455 0031301 0 ustar 00root root 0000000 0000000 flt2 = 3.1415
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-3.json 0000664 0000000 0000000 00000000055 14721714455 0031303 0 ustar 00root root 0000000 0000000 {"flt3":
{"type":"float","value":"-0.01"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-3.toml 0000664 0000000 0000000 00000000015 14721714455 0031301 0 ustar 00root root 0000000 0000000 flt3 = -0.01
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-4.json 0000664 0000000 0000000 00000000055 14721714455 0031304 0 ustar 00root root 0000000 0000000 {"flt4":
{"type":"float","value":"5e+22"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-4.toml 0000664 0000000 0000000 00000000015 14721714455 0031302 0 ustar 00root root 0000000 0000000 flt4 = 5e+22
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-5.json 0000664 0000000 0000000 00000000057 14721714455 0031307 0 ustar 00root root 0000000 0000000 {"flt5":
{"type":"float","value":"1000000"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-5.toml 0000664 0000000 0000000 00000000014 14721714455 0031302 0 ustar 00root root 0000000 0000000 flt5 = 1e06
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-6.json 0000664 0000000 0000000 00000000055 14721714455 0031306 0 ustar 00root root 0000000 0000000 {"flt6":
{"type":"float","value":"-0.02"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-6.toml 0000664 0000000 0000000 00000000015 14721714455 0031304 0 ustar 00root root 0000000 0000000 flt6 = -2E-2
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-7.json 0000664 0000000 0000000 00000000061 14721714455 0031304 0 ustar 00root root 0000000 0000000 {"flt7":
{"type":"float","value":"6.626e-34"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-7.toml 0000664 0000000 0000000 00000000021 14721714455 0031302 0 ustar 00root root 0000000 0000000 flt7 = 6.626e-34
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-8.json 0000664 0000000 0000000 00000000070 14721714455 0031305 0 ustar 00root root 0000000 0000000 {"flt8":
{"type":"float","value":"224617.445991228"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-8.toml 0000664 0000000 0000000 00000000033 14721714455 0031306 0 ustar 00root root 0000000 0000000 flt8 = 224_617.445_991_228
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-9.json 0000664 0000000 0000000 00000000052 14721714455 0031306 0 ustar 00root root 0000000 0000000 {"flt9":
{"type":"float","value":"-0"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/float/spec-float-9.toml 0000664 0000000 0000000 00000000014 14721714455 0031306 0 ustar 00root root 0000000 0000000 flt9 = -0e0
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/ 0000775 0000000 0000000 00000000000 14721714455 0026543 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-1.json 0000664 0000000 0000000 00000000054 14721714455 0031315 0 ustar 00root root 0000000 0000000 {"int1":
{"type":"integer","value":"99"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-1.toml 0000664 0000000 0000000 00000000013 14721714455 0031312 0 ustar 00root root 0000000 0000000 int1 = +99
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-2.json 0000664 0000000 0000000 00000000054 14721714455 0031316 0 ustar 00root root 0000000 0000000 {"int2":
{"type":"integer","value":"42"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-2.toml 0000664 0000000 0000000 00000000012 14721714455 0031312 0 ustar 00root root 0000000 0000000 int2 = 42
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-3.json 0000664 0000000 0000000 00000000053 14721714455 0031316 0 ustar 00root root 0000000 0000000 {"int3":
{"type":"integer","value":"0"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-3.toml 0000664 0000000 0000000 00000000011 14721714455 0031312 0 ustar 00root root 0000000 0000000 int3 = 0
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-3a.json 0000664 0000000 0000000 00000000054 14721714455 0031460 0 ustar 00root root 0000000 0000000 {"int3a":
{"type":"integer","value":"0"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-3a.toml 0000664 0000000 0000000 00000000013 14721714455 0031455 0 ustar 00root root 0000000 0000000 int3a = +0
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-3b.json 0000664 0000000 0000000 00000000054 14721714455 0031461 0 ustar 00root root 0000000 0000000 {"int3b":
{"type":"integer","value":"0"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-3b.toml 0000664 0000000 0000000 00000000013 14721714455 0031456 0 ustar 00root root 0000000 0000000 int3b = -0
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-4.json 0000664 0000000 0000000 00000000055 14721714455 0031321 0 ustar 00root root 0000000 0000000 {"int4":
{"type":"integer","value":"-17"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-4.toml 0000664 0000000 0000000 00000000013 14721714455 0031315 0 ustar 00root root 0000000 0000000 int4 = -17
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-5.json 0000664 0000000 0000000 00000000056 14721714455 0031323 0 ustar 00root root 0000000 0000000 {"int5":
{"type":"integer","value":"1000"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-5.toml 0000664 0000000 0000000 00000000015 14721714455 0031320 0 ustar 00root root 0000000 0000000 int5 = 1_000
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-6.json 0000664 0000000 0000000 00000000061 14721714455 0031320 0 ustar 00root root 0000000 0000000 {"int6":
{"type":"integer","value":"5349221"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-6.toml 0000664 0000000 0000000 00000000021 14721714455 0031316 0 ustar 00root root 0000000 0000000 int6 = 5_349_221
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-7.json 0000664 0000000 0000000 00000000057 14721714455 0031326 0 ustar 00root root 0000000 0000000 {"int7":
{"type":"integer","value":"12345"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-7.toml 0000664 0000000 0000000 00000000055 14721714455 0031326 0 ustar 00root root 0000000 0000000 int7 = 1_2_3_4_5 # VALID but discouraged
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-bin1.json 0000664 0000000 0000000 00000000055 14721714455 0032007 0 ustar 00root root 0000000 0000000 {"bin1":
{"type":"integer","value":"214"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-bin1.toml 0000664 0000000 0000000 00000000022 14721714455 0032003 0 ustar 00root root 0000000 0000000 bin1 = 0b11010110
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-hex1.json 0000664 0000000 0000000 00000000064 14721714455 0032023 0 ustar 00root root 0000000 0000000 {"hex1":
{"type":"integer","value":"3735928559"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-hex1.toml 0000664 0000000 0000000 00000000022 14721714455 0032017 0 ustar 00root root 0000000 0000000 hex1 = 0xDEADBEEF
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-hex2.json 0000664 0000000 0000000 00000000064 14721714455 0032024 0 ustar 00root root 0000000 0000000 {"hex2":
{"type":"integer","value":"3735928559"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-hex2.toml 0000664 0000000 0000000 00000000022 14721714455 0032020 0 ustar 00root root 0000000 0000000 hex2 = 0xdeadbeef
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-hex3.json 0000664 0000000 0000000 00000000064 14721714455 0032025 0 ustar 00root root 0000000 0000000 {"hex3":
{"type":"integer","value":"3735928559"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-hex3.toml 0000664 0000000 0000000 00000000023 14721714455 0032022 0 ustar 00root root 0000000 0000000 hex3 = 0xdead_beef
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-max.json 0000664 0000000 0000000 00000000074 14721714455 0031744 0 ustar 00root root 0000000 0000000 {"max":
{"type":"integer","value":"9223372036854775807"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-max.toml 0000664 0000000 0000000 00000000036 14721714455 0031744 0 ustar 00root root 0000000 0000000 max=9_223_372_036_854_775_807
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-min.json 0000664 0000000 0000000 00000000075 14721714455 0031743 0 ustar 00root root 0000000 0000000 {"min":
{"type":"integer","value":"-9223372036854775808"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-min.toml 0000664 0000000 0000000 00000000037 14721714455 0031743 0 ustar 00root root 0000000 0000000 min=-9_223_372_036_854_775_808
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-oct1.json 0000664 0000000 0000000 00000000060 14721714455 0032020 0 ustar 00root root 0000000 0000000 {"oct1":
{"type":"integer","value":"342391"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-oct1.toml 0000664 0000000 0000000 00000000022 14721714455 0032020 0 ustar 00root root 0000000 0000000 oct1 = 0o01234567
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-oct2.json 0000664 0000000 0000000 00000000055 14721714455 0032025 0 ustar 00root root 0000000 0000000 {"oct2":
{"type":"integer","value":"493"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/integer/spec-int-oct2.toml 0000664 0000000 0000000 00000000060 14721714455 0032023 0 ustar 00root root 0000000 0000000 oct2 = 0o755 # useful for Unix file permissions
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/ 0000775 0000000 0000000 00000000000 14721714455 0027010 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-case-sensitive.json0000664 0000000 0000000 00000000130 14721714455 0033547 0 ustar 00root root 0000000 0000000 {"abc":
{"type":"integer","value":"123"},
"ABC":
{"type":"integer","value":"456"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-case-sensitive.toml0000664 0000000 0000000 00000000056 14721714455 0033560 0 ustar 00root root 0000000 0000000 # TOML is case sensitive.
abc = 123
ABC = 456
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-dotted-keys-1.json 0000664 0000000 0000000 00000000346 14721714455 0033230 0 ustar 00root root 0000000 0000000 {"name":
{"type":"string","value":"Orange"},
"physical":
{"color":
{"type":"string","value":"orange"},
"shape":
{"type":"string","value":"round"}},
"site":
{"google.com":
{"type":"boolean","value":"true"}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-dotted-keys-1.toml 0000664 0000000 0000000 00000000134 14721714455 0033225 0 ustar 00root root 0000000 0000000 name = "Orange"
physical.color = "orange"
physical.shape = "round"
site."google.com" = true
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-dotted-keys-2.json 0000664 0000000 0000000 00000000064 14721714455 0033226 0 ustar 00root root 0000000 0000000 {"a":
{"b":
{"type":"integer","value":"23"}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-dotted-keys-2.toml 0000664 0000000 0000000 00000000015 14721714455 0033224 0 ustar 00root root 0000000 0000000 a . b = 23
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-dotted-keys-3.json 0000664 0000000 0000000 00000000064 14721714455 0033227 0 ustar 00root root 0000000 0000000 {"a":
{"b":
{"type":"integer","value":"23"}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-dotted-keys-3.toml 0000664 0000000 0000000 00000000016 14721714455 0033226 0 ustar 00root root 0000000 0000000 a . b = 23
spec-empty-key-name-1.json 0000664 0000000 0000000 00000000052 14721714455 0033551 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"":
{"type":"string","value":"blank"}}
spec-empty-key-name-1.toml 0000664 0000000 0000000 00000000051 14721714455 0033552 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value "" = "blank" # VALID but discouraged
spec-empty-key-name-2.json 0000664 0000000 0000000 00000000052 14721714455 0033552 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"":
{"type":"string","value":"blank"}}
spec-empty-key-name-2.toml 0000664 0000000 0000000 00000000051 14721714455 0033553 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value '' = "blank" # VALID but discouraged
spec-key-value-pair-1.json 0000664 0000000 0000000 00000000055 14721714455 0033545 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"key":
{"type":"string","value":"value"}}
spec-key-value-pair-1.toml 0000664 0000000 0000000 00000000016 14721714455 0033544 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value key = "value"
spec-key-value-pair-2.json 0000664 0000000 0000000 00000000062 14721714455 0033544 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"bare_key":
{"type":"string","value":"value"}}
spec-key-value-pair-2.toml 0000664 0000000 0000000 00000000023 14721714455 0033543 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value bare_key = "value"
spec-key-value-pair-3.json 0000664 0000000 0000000 00000000062 14721714455 0033545 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"bare-key":
{"type":"string","value":"value"}}
spec-key-value-pair-3.toml 0000664 0000000 0000000 00000000023 14721714455 0033544 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value bare-key = "value"
spec-key-value-pair-4.json 0000664 0000000 0000000 00000000056 14721714455 0033551 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"1234":
{"type":"string","value":"value"}}
spec-key-value-pair-4.toml 0000664 0000000 0000000 00000000017 14721714455 0033550 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value 1234 = "value"
spec-key-value-pair-5.json 0000664 0000000 0000000 00000000056 14721714455 0033552 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"1234":
{"type":"string","value":"value"}}
spec-key-value-pair-5.toml 0000664 0000000 0000000 00000000015 14721714455 0033547 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value 1234="value"
spec-key-value-pair-6.json 0000664 0000000 0000000 00000000050 14721714455 0033545 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"-":
{"type":"integer","value":"1"}}
spec-key-value-pair-6.toml 0000664 0000000 0000000 00000000004 14721714455 0033546 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value -=1
spec-key-value-pair-7.json 0000664 0000000 0000000 00000000050 14721714455 0033546 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"_":
{"type":"integer","value":"1"}}
spec-key-value-pair-7.toml 0000664 0000000 0000000 00000000004 14721714455 0033547 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value _=1
spec-key-value-pair-8.json 0000664 0000000 0000000 00000000060 14721714455 0033550 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"-_-_-_-_-":
{"type":"integer","value":"1"}}
spec-key-value-pair-8.toml 0000664 0000000 0000000 00000000014 14721714455 0033551 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value -_-_-_-_-=1
spec-key-value-pair-9.json 0000664 0000000 0000000 00000000067 14721714455 0033560 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"3":
{"14159":
{"type":"string","value":"pi"}}}
spec-key-value-pair-9.toml 0000664 0000000 0000000 00000000017 14721714455 0033555 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value 3.14159 = "pi"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-newline-1.json 0000664 0000000 0000000 00000000130 14721714455 0032424 0 ustar 00root root 0000000 0000000 {"abc":
{"type":"integer","value":"123"},
"def":
{"type":"integer","value":"456"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-newline-1.toml 0000664 0000000 0000000 00000000024 14721714455 0032430 0 ustar 00root root 0000000 0000000 abc = 123
def = 456
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-newline-2.json 0000664 0000000 0000000 00000000130 14721714455 0032425 0 ustar 00root root 0000000 0000000 {"abc":
{"type":"integer","value":"123"},
"def":
{"type":"integer","value":"456"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-newline-2.toml 0000664 0000000 0000000 00000000024 14721714455 0032431 0 ustar 00root root 0000000 0000000 abc = 123
def = 456
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-newline-3.json 0000664 0000000 0000000 00000000204 14721714455 0032430 0 ustar 00root root 0000000 0000000 {"abc":
{"type":"integer","value":"123"},
"def":
{"type":"integer","value":"456"},
"ghi":
{"type":"integer","value":"789"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value/spec-newline-3.toml 0000664 0000000 0000000 00000000036 14721714455 0032435 0 ustar 00root root 0000000 0000000 abc = 123
def = 456
ghi = 789
spec-quoted-basic-keys-1.json 0000664 0000000 0000000 00000000060 14721714455 0034237 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"ʎǝʞ":
{"type":"string","value":"value"}}
spec-quoted-basic-keys-1.toml 0000664 0000000 0000000 00000000023 14721714455 0034240 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value "ʎǝʞ" = "value"
spec-quoted-literal-keys-1.json 0000664 0000000 0000000 00000000072 14721714455 0034615 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value {"quoted \"value\"":
{"type":"string","value":"value"}}
spec-quoted-literal-keys-1.toml 0000664 0000000 0000000 00000000033 14721714455 0034614 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/key-value 'quoted "value"' = "value"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/ 0000775 0000000 0000000 00000000000 14721714455 0025507 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-array-inline-1000.json 0000664 0000000 0000000 00000120163 14721714455 0031754 0 ustar 00root root 0000000 0000000 {"key":
{"type":"array","value":[
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"abcdefg"},
{"type":"string","value":"end"}]}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-array-inline-1000.toml 0000664 0000000 0000000 00000031332 14721714455 0031755 0 ustar 00root root 0000000 0000000 key = [
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"end"]
qa-array-inline-nested-1000.toml 0000664 0000000 0000000 00000003732 14721714455 0033161 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa key = [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-key-literal-40kb.json 0000664 0000000 0000000 00000116154 14721714455 0031771 0 ustar 00root root 0000000 0000000 {"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.":
{"type":"string","value":"long"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-key-literal-40kb.toml 0000664 0000000 0000000 00000116117 14721714455 0031772 0 ustar 00root root 0000000 0000000 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.' = 'long'
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-key-string-40kb.json 0000664 0000000 0000000 00000116154 14721714455 0031643 0 ustar 00root root 0000000 0000000 {"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.":
{"type":"string","value":"long"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-key-string-40kb.toml 0000664 0000000 0000000 00000116117 14721714455 0031644 0 ustar 00root root 0000000 0000000 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in." = "long"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-scalar-literal-40kb.json 0000664 0000000 0000000 00000116154 14721714455 0032446 0 ustar 00root root 0000000 0000000 {"long":
{"type":"string","value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-scalar-literal-40kb.toml 0000664 0000000 0000000 00000116115 14721714455 0032445 0 ustar 00root root 0000000 0000000 long = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.'
qa-scalar-literal-multiline-40kb.json 0000664 0000000 0000000 00000116316 14721714455 0034367 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa {"long":
{"type":"string","value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra.\n\nEros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.\n\nBlandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim.\n\nNisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor.\n\nCras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed.\n\nTellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna.\n\nVarius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed.\n\nIn fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.\n\nAt urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed.\n\nPlacerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel.\n\nPharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc.\n\nEt malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.\n\nCongue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet.\n\nIn metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.\n\nTincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id.\n\nSollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.\n\nAugue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet.\n\nMi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet.\n\nAdipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.\n\nMassa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit.\n\nEst ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id.\n\nRisus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris.\n\nEnim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum.\n\nNullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel.\n\nAliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam.\n\nGravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus.\n\nViverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia.\n\nFeugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis.\n\nLaoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.\n\nEnim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis.\n\nFaucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras.\n\nNulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa.\n\nEgestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.\n\nTempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in.\n\nMorbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa.\n\nLacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.\n\nAmet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.\n\nEu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi.\n\nLacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci.\n\nEt tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.\n\nFaucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.\n\nTincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor.\n\nIn vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.\n\nMaecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit.\n\nSit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.\n\nScelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet.\n\nMi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at.\n\nLectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus.\n\nSemper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi.\n\nNascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."}}
qa-scalar-literal-multiline-40kb.toml 0000664 0000000 0000000 00000116121 14721714455 0034363 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa long = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra.
Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim.
Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor.
Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed.
Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed.
In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.
At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed.
Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc.
Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet.
In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.
Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id.
Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.
Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet.
Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet.
Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.
Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit.
Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id.
Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris.
Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum.
Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel.
Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam.
Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus.
Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia.
Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis.
Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.
Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis.
Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras.
Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa.
Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.
Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in.
Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa.
Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.
Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.
Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi.
Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci.
Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.
Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor.
In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.
Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit.
Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.
Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet.
Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at.
Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus.
Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi.
Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."""
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-scalar-string-40kb.json 0000664 0000000 0000000 00000116154 14721714455 0032320 0 ustar 00root root 0000000 0000000 {"long":
{"type":"string","value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-scalar-string-40kb.toml 0000664 0000000 0000000 00000116115 14721714455 0032317 0 ustar 00root root 0000000 0000000 long = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."
qa-scalar-string-multiline-40kb.json 0000664 0000000 0000000 00000116316 14721714455 0034241 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa {"long":
{"type":"string","value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra.\n\nEros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.\n\nBlandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim.\n\nNisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor.\n\nCras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed.\n\nTellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna.\n\nVarius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed.\n\nIn fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.\n\nAt urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed.\n\nPlacerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel.\n\nPharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc.\n\nEt malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.\n\nCongue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet.\n\nIn metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.\n\nTincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id.\n\nSollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.\n\nAugue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet.\n\nMi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet.\n\nAdipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.\n\nMassa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit.\n\nEst ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id.\n\nRisus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris.\n\nEnim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum.\n\nNullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel.\n\nAliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam.\n\nGravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus.\n\nViverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia.\n\nFeugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis.\n\nLaoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.\n\nEnim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis.\n\nFaucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras.\n\nNulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa.\n\nEgestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.\n\nTempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in.\n\nMorbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa.\n\nLacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.\n\nAmet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.\n\nEu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi.\n\nLacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci.\n\nEt tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.\n\nFaucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.\n\nTincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor.\n\nIn vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.\n\nMaecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit.\n\nSit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.\n\nScelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet.\n\nMi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at.\n\nLectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus.\n\nSemper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi.\n\nNascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."}}
qa-scalar-string-multiline-40kb.toml 0000664 0000000 0000000 00000116121 14721714455 0034235 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa long = '''Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra.
Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim.
Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor.
Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed.
Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed.
In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.
At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed.
Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc.
Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet.
In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.
Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id.
Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.
Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet.
Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet.
Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.
Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit.
Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id.
Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris.
Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum.
Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel.
Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam.
Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus.
Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia.
Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis.
Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.
Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis.
Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras.
Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa.
Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.
Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in.
Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa.
Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.
Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.
Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi.
Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci.
Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.
Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor.
In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.
Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit.
Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.
Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet.
Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at.
Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus.
Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi.
Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.'''
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-table-inline-1000.json 0000664 0000000 0000000 00000131572 14721714455 0031733 0 ustar 00root root 0000000 0000000 {"key":{
"key1":{"type":"string","value":"abcdefg"}, "key2":{"type":"string","value":"abcdefg"}, "key3":{"type":"string","value":"abcdefg"}, "key4":{"type":"string","value":"abcdefg"}, "key5":{"type":"string","value":"abcdefg"}, "key6":{"type":"string","value":"abcdefg"}, "key7":{"type":"string","value":"abcdefg"}, "key8":{"type":"string","value":"abcdefg"}, "key9":{"type":"string","value":"abcdefg"}, "key10":{"type":"string","value":"abcdefg"}, "key11":{"type":"string","value":"abcdefg"}, "key12":{"type":"string","value":"abcdefg"}, "key13":{"type":"string","value":"abcdefg"}, "key14":{"type":"string","value":"abcdefg"}, "key15":{"type":"string","value":"abcdefg"}, "key16":{"type":"string","value":"abcdefg"}, "key17":{"type":"string","value":"abcdefg"}, "key18":{"type":"string","value":"abcdefg"}, "key19":{"type":"string","value":"abcdefg"}, "key20":{"type":"string","value":"abcdefg"}, "key21":{"type":"string","value":"abcdefg"}, "key22":{"type":"string","value":"abcdefg"}, "key23":{"type":"string","value":"abcdefg"}, "key24":{"type":"string","value":"abcdefg"}, "key25":{"type":"string","value":"abcdefg"}, "key26":{"type":"string","value":"abcdefg"}, "key27":{"type":"string","value":"abcdefg"}, "key28":{"type":"string","value":"abcdefg"}, "key29":{"type":"string","value":"abcdefg"}, "key30":{"type":"string","value":"abcdefg"}, "key31":{"type":"string","value":"abcdefg"}, "key32":{"type":"string","value":"abcdefg"}, "key33":{"type":"string","value":"abcdefg"}, "key34":{"type":"string","value":"abcdefg"}, "key35":{"type":"string","value":"abcdefg"}, "key36":{"type":"string","value":"abcdefg"}, "key37":{"type":"string","value":"abcdefg"}, "key38":{"type":"string","value":"abcdefg"}, "key39":{"type":"string","value":"abcdefg"}, "key40":{"type":"string","value":"abcdefg"}, "key41":{"type":"string","value":"abcdefg"}, "key42":{"type":"string","value":"abcdefg"}, "key43":{"type":"string","value":"abcdefg"}, "key44":{"type":"string","value":"abcdefg"}, "key45":{"type":"string","value":"abcdefg"}, "key46":{"type":"string","value":"abcdefg"}, "key47":{"type":"string","value":"abcdefg"}, "key48":{"type":"string","value":"abcdefg"}, "key49":{"type":"string","value":"abcdefg"}, "key50":{"type":"string","value":"abcdefg"}, "key51":{"type":"string","value":"abcdefg"}, "key52":{"type":"string","value":"abcdefg"}, "key53":{"type":"string","value":"abcdefg"}, "key54":{"type":"string","value":"abcdefg"}, "key55":{"type":"string","value":"abcdefg"}, "key56":{"type":"string","value":"abcdefg"}, "key57":{"type":"string","value":"abcdefg"}, "key58":{"type":"string","value":"abcdefg"}, "key59":{"type":"string","value":"abcdefg"}, "key60":{"type":"string","value":"abcdefg"}, "key61":{"type":"string","value":"abcdefg"}, "key62":{"type":"string","value":"abcdefg"}, "key63":{"type":"string","value":"abcdefg"}, "key64":{"type":"string","value":"abcdefg"}, "key65":{"type":"string","value":"abcdefg"}, "key66":{"type":"string","value":"abcdefg"}, "key67":{"type":"string","value":"abcdefg"}, "key68":{"type":"string","value":"abcdefg"}, "key69":{"type":"string","value":"abcdefg"}, "key70":{"type":"string","value":"abcdefg"}, "key71":{"type":"string","value":"abcdefg"}, "key72":{"type":"string","value":"abcdefg"}, "key73":{"type":"string","value":"abcdefg"}, "key74":{"type":"string","value":"abcdefg"}, "key75":{"type":"string","value":"abcdefg"}, "key76":{"type":"string","value":"abcdefg"}, "key77":{"type":"string","value":"abcdefg"}, "key78":{"type":"string","value":"abcdefg"}, "key79":{"type":"string","value":"abcdefg"}, "key80":{"type":"string","value":"abcdefg"}, "key81":{"type":"string","value":"abcdefg"}, "key82":{"type":"string","value":"abcdefg"}, "key83":{"type":"string","value":"abcdefg"}, "key84":{"type":"string","value":"abcdefg"}, "key85":{"type":"string","value":"abcdefg"}, "key86":{"type":"string","value":"abcdefg"}, "key87":{"type":"string","value":"abcdefg"}, "key88":{"type":"string","value":"abcdefg"}, "key89":{"type":"string","value":"abcdefg"}, "key90":{"type":"string","value":"abcdefg"}, "key91":{"type":"string","value":"abcdefg"}, "key92":{"type":"string","value":"abcdefg"}, "key93":{"type":"string","value":"abcdefg"}, "key94":{"type":"string","value":"abcdefg"}, "key95":{"type":"string","value":"abcdefg"}, "key96":{"type":"string","value":"abcdefg"}, "key97":{"type":"string","value":"abcdefg"}, "key98":{"type":"string","value":"abcdefg"}, "key99":{"type":"string","value":"abcdefg"}, "key100":{"type":"string","value":"abcdefg"}, "key101":{"type":"string","value":"abcdefg"}, "key102":{"type":"string","value":"abcdefg"}, "key103":{"type":"string","value":"abcdefg"}, "key104":{"type":"string","value":"abcdefg"}, "key105":{"type":"string","value":"abcdefg"}, "key106":{"type":"string","value":"abcdefg"}, "key107":{"type":"string","value":"abcdefg"}, "key108":{"type":"string","value":"abcdefg"}, "key109":{"type":"string","value":"abcdefg"}, "key110":{"type":"string","value":"abcdefg"}, "key111":{"type":"string","value":"abcdefg"}, "key112":{"type":"string","value":"abcdefg"}, "key113":{"type":"string","value":"abcdefg"}, "key114":{"type":"string","value":"abcdefg"}, "key115":{"type":"string","value":"abcdefg"}, "key116":{"type":"string","value":"abcdefg"}, "key117":{"type":"string","value":"abcdefg"}, "key118":{"type":"string","value":"abcdefg"}, "key119":{"type":"string","value":"abcdefg"}, "key120":{"type":"string","value":"abcdefg"}, "key121":{"type":"string","value":"abcdefg"}, "key122":{"type":"string","value":"abcdefg"}, "key123":{"type":"string","value":"abcdefg"}, "key124":{"type":"string","value":"abcdefg"}, "key125":{"type":"string","value":"abcdefg"}, "key126":{"type":"string","value":"abcdefg"}, "key127":{"type":"string","value":"abcdefg"}, "key128":{"type":"string","value":"abcdefg"}, "key129":{"type":"string","value":"abcdefg"}, "key130":{"type":"string","value":"abcdefg"}, "key131":{"type":"string","value":"abcdefg"}, "key132":{"type":"string","value":"abcdefg"}, "key133":{"type":"string","value":"abcdefg"}, "key134":{"type":"string","value":"abcdefg"}, "key135":{"type":"string","value":"abcdefg"}, "key136":{"type":"string","value":"abcdefg"}, "key137":{"type":"string","value":"abcdefg"}, "key138":{"type":"string","value":"abcdefg"}, "key139":{"type":"string","value":"abcdefg"}, "key140":{"type":"string","value":"abcdefg"}, "key141":{"type":"string","value":"abcdefg"}, "key142":{"type":"string","value":"abcdefg"}, "key143":{"type":"string","value":"abcdefg"}, "key144":{"type":"string","value":"abcdefg"}, "key145":{"type":"string","value":"abcdefg"}, "key146":{"type":"string","value":"abcdefg"}, "key147":{"type":"string","value":"abcdefg"}, "key148":{"type":"string","value":"abcdefg"}, "key149":{"type":"string","value":"abcdefg"}, "key150":{"type":"string","value":"abcdefg"}, "key151":{"type":"string","value":"abcdefg"}, "key152":{"type":"string","value":"abcdefg"}, "key153":{"type":"string","value":"abcdefg"}, "key154":{"type":"string","value":"abcdefg"}, "key155":{"type":"string","value":"abcdefg"}, "key156":{"type":"string","value":"abcdefg"}, "key157":{"type":"string","value":"abcdefg"}, "key158":{"type":"string","value":"abcdefg"}, "key159":{"type":"string","value":"abcdefg"}, "key160":{"type":"string","value":"abcdefg"}, "key161":{"type":"string","value":"abcdefg"}, "key162":{"type":"string","value":"abcdefg"}, "key163":{"type":"string","value":"abcdefg"}, "key164":{"type":"string","value":"abcdefg"}, "key165":{"type":"string","value":"abcdefg"}, "key166":{"type":"string","value":"abcdefg"}, "key167":{"type":"string","value":"abcdefg"}, "key168":{"type":"string","value":"abcdefg"}, "key169":{"type":"string","value":"abcdefg"}, "key170":{"type":"string","value":"abcdefg"}, "key171":{"type":"string","value":"abcdefg"}, "key172":{"type":"string","value":"abcdefg"}, "key173":{"type":"string","value":"abcdefg"}, "key174":{"type":"string","value":"abcdefg"}, "key175":{"type":"string","value":"abcdefg"}, "key176":{"type":"string","value":"abcdefg"}, "key177":{"type":"string","value":"abcdefg"}, "key178":{"type":"string","value":"abcdefg"}, "key179":{"type":"string","value":"abcdefg"}, "key180":{"type":"string","value":"abcdefg"}, "key181":{"type":"string","value":"abcdefg"}, "key182":{"type":"string","value":"abcdefg"}, "key183":{"type":"string","value":"abcdefg"}, "key184":{"type":"string","value":"abcdefg"}, "key185":{"type":"string","value":"abcdefg"}, "key186":{"type":"string","value":"abcdefg"}, "key187":{"type":"string","value":"abcdefg"}, "key188":{"type":"string","value":"abcdefg"}, "key189":{"type":"string","value":"abcdefg"}, "key190":{"type":"string","value":"abcdefg"}, "key191":{"type":"string","value":"abcdefg"}, "key192":{"type":"string","value":"abcdefg"}, "key193":{"type":"string","value":"abcdefg"}, "key194":{"type":"string","value":"abcdefg"}, "key195":{"type":"string","value":"abcdefg"}, "key196":{"type":"string","value":"abcdefg"}, "key197":{"type":"string","value":"abcdefg"}, "key198":{"type":"string","value":"abcdefg"}, "key199":{"type":"string","value":"abcdefg"}, "key200":{"type":"string","value":"abcdefg"}, "key201":{"type":"string","value":"abcdefg"}, "key202":{"type":"string","value":"abcdefg"}, "key203":{"type":"string","value":"abcdefg"}, "key204":{"type":"string","value":"abcdefg"}, "key205":{"type":"string","value":"abcdefg"}, "key206":{"type":"string","value":"abcdefg"}, "key207":{"type":"string","value":"abcdefg"}, "key208":{"type":"string","value":"abcdefg"}, "key209":{"type":"string","value":"abcdefg"}, "key210":{"type":"string","value":"abcdefg"}, "key211":{"type":"string","value":"abcdefg"}, "key212":{"type":"string","value":"abcdefg"}, "key213":{"type":"string","value":"abcdefg"}, "key214":{"type":"string","value":"abcdefg"}, "key215":{"type":"string","value":"abcdefg"}, "key216":{"type":"string","value":"abcdefg"}, "key217":{"type":"string","value":"abcdefg"}, "key218":{"type":"string","value":"abcdefg"}, "key219":{"type":"string","value":"abcdefg"}, "key220":{"type":"string","value":"abcdefg"}, "key221":{"type":"string","value":"abcdefg"}, "key222":{"type":"string","value":"abcdefg"}, "key223":{"type":"string","value":"abcdefg"}, "key224":{"type":"string","value":"abcdefg"}, "key225":{"type":"string","value":"abcdefg"}, "key226":{"type":"string","value":"abcdefg"}, "key227":{"type":"string","value":"abcdefg"}, "key228":{"type":"string","value":"abcdefg"}, "key229":{"type":"string","value":"abcdefg"}, "key230":{"type":"string","value":"abcdefg"}, "key231":{"type":"string","value":"abcdefg"}, "key232":{"type":"string","value":"abcdefg"}, "key233":{"type":"string","value":"abcdefg"}, "key234":{"type":"string","value":"abcdefg"}, "key235":{"type":"string","value":"abcdefg"}, "key236":{"type":"string","value":"abcdefg"}, "key237":{"type":"string","value":"abcdefg"}, "key238":{"type":"string","value":"abcdefg"}, "key239":{"type":"string","value":"abcdefg"}, "key240":{"type":"string","value":"abcdefg"}, "key241":{"type":"string","value":"abcdefg"}, "key242":{"type":"string","value":"abcdefg"}, "key243":{"type":"string","value":"abcdefg"}, "key244":{"type":"string","value":"abcdefg"}, "key245":{"type":"string","value":"abcdefg"}, "key246":{"type":"string","value":"abcdefg"}, "key247":{"type":"string","value":"abcdefg"}, "key248":{"type":"string","value":"abcdefg"}, "key249":{"type":"string","value":"abcdefg"}, "key250":{"type":"string","value":"abcdefg"}, "key251":{"type":"string","value":"abcdefg"}, "key252":{"type":"string","value":"abcdefg"}, "key253":{"type":"string","value":"abcdefg"}, "key254":{"type":"string","value":"abcdefg"}, "key255":{"type":"string","value":"abcdefg"}, "key256":{"type":"string","value":"abcdefg"}, "key257":{"type":"string","value":"abcdefg"}, "key258":{"type":"string","value":"abcdefg"}, "key259":{"type":"string","value":"abcdefg"}, "key260":{"type":"string","value":"abcdefg"}, "key261":{"type":"string","value":"abcdefg"}, "key262":{"type":"string","value":"abcdefg"}, "key263":{"type":"string","value":"abcdefg"}, "key264":{"type":"string","value":"abcdefg"}, "key265":{"type":"string","value":"abcdefg"}, "key266":{"type":"string","value":"abcdefg"}, "key267":{"type":"string","value":"abcdefg"}, "key268":{"type":"string","value":"abcdefg"}, "key269":{"type":"string","value":"abcdefg"}, "key270":{"type":"string","value":"abcdefg"}, "key271":{"type":"string","value":"abcdefg"}, "key272":{"type":"string","value":"abcdefg"}, "key273":{"type":"string","value":"abcdefg"}, "key274":{"type":"string","value":"abcdefg"}, "key275":{"type":"string","value":"abcdefg"}, "key276":{"type":"string","value":"abcdefg"}, "key277":{"type":"string","value":"abcdefg"}, "key278":{"type":"string","value":"abcdefg"}, "key279":{"type":"string","value":"abcdefg"}, "key280":{"type":"string","value":"abcdefg"}, "key281":{"type":"string","value":"abcdefg"}, "key282":{"type":"string","value":"abcdefg"}, "key283":{"type":"string","value":"abcdefg"}, "key284":{"type":"string","value":"abcdefg"}, "key285":{"type":"string","value":"abcdefg"}, "key286":{"type":"string","value":"abcdefg"}, "key287":{"type":"string","value":"abcdefg"}, "key288":{"type":"string","value":"abcdefg"}, "key289":{"type":"string","value":"abcdefg"}, "key290":{"type":"string","value":"abcdefg"}, "key291":{"type":"string","value":"abcdefg"}, "key292":{"type":"string","value":"abcdefg"}, "key293":{"type":"string","value":"abcdefg"}, "key294":{"type":"string","value":"abcdefg"}, "key295":{"type":"string","value":"abcdefg"}, "key296":{"type":"string","value":"abcdefg"}, "key297":{"type":"string","value":"abcdefg"}, "key298":{"type":"string","value":"abcdefg"}, "key299":{"type":"string","value":"abcdefg"}, "key300":{"type":"string","value":"abcdefg"}, "key301":{"type":"string","value":"abcdefg"}, "key302":{"type":"string","value":"abcdefg"}, "key303":{"type":"string","value":"abcdefg"}, "key304":{"type":"string","value":"abcdefg"}, "key305":{"type":"string","value":"abcdefg"}, "key306":{"type":"string","value":"abcdefg"}, "key307":{"type":"string","value":"abcdefg"}, "key308":{"type":"string","value":"abcdefg"}, "key309":{"type":"string","value":"abcdefg"}, "key310":{"type":"string","value":"abcdefg"}, "key311":{"type":"string","value":"abcdefg"}, "key312":{"type":"string","value":"abcdefg"}, "key313":{"type":"string","value":"abcdefg"}, "key314":{"type":"string","value":"abcdefg"}, "key315":{"type":"string","value":"abcdefg"}, "key316":{"type":"string","value":"abcdefg"}, "key317":{"type":"string","value":"abcdefg"}, "key318":{"type":"string","value":"abcdefg"}, "key319":{"type":"string","value":"abcdefg"}, "key320":{"type":"string","value":"abcdefg"}, "key321":{"type":"string","value":"abcdefg"}, "key322":{"type":"string","value":"abcdefg"}, "key323":{"type":"string","value":"abcdefg"}, "key324":{"type":"string","value":"abcdefg"}, "key325":{"type":"string","value":"abcdefg"}, "key326":{"type":"string","value":"abcdefg"}, "key327":{"type":"string","value":"abcdefg"}, "key328":{"type":"string","value":"abcdefg"}, "key329":{"type":"string","value":"abcdefg"}, "key330":{"type":"string","value":"abcdefg"}, "key331":{"type":"string","value":"abcdefg"}, "key332":{"type":"string","value":"abcdefg"}, "key333":{"type":"string","value":"abcdefg"}, "key334":{"type":"string","value":"abcdefg"}, "key335":{"type":"string","value":"abcdefg"}, "key336":{"type":"string","value":"abcdefg"}, "key337":{"type":"string","value":"abcdefg"}, "key338":{"type":"string","value":"abcdefg"}, "key339":{"type":"string","value":"abcdefg"}, "key340":{"type":"string","value":"abcdefg"}, "key341":{"type":"string","value":"abcdefg"}, "key342":{"type":"string","value":"abcdefg"}, "key343":{"type":"string","value":"abcdefg"}, "key344":{"type":"string","value":"abcdefg"}, "key345":{"type":"string","value":"abcdefg"}, "key346":{"type":"string","value":"abcdefg"}, "key347":{"type":"string","value":"abcdefg"}, "key348":{"type":"string","value":"abcdefg"}, "key349":{"type":"string","value":"abcdefg"}, "key350":{"type":"string","value":"abcdefg"}, "key351":{"type":"string","value":"abcdefg"}, "key352":{"type":"string","value":"abcdefg"}, "key353":{"type":"string","value":"abcdefg"}, "key354":{"type":"string","value":"abcdefg"}, "key355":{"type":"string","value":"abcdefg"}, "key356":{"type":"string","value":"abcdefg"}, "key357":{"type":"string","value":"abcdefg"}, "key358":{"type":"string","value":"abcdefg"}, "key359":{"type":"string","value":"abcdefg"}, "key360":{"type":"string","value":"abcdefg"}, "key361":{"type":"string","value":"abcdefg"}, "key362":{"type":"string","value":"abcdefg"}, "key363":{"type":"string","value":"abcdefg"}, "key364":{"type":"string","value":"abcdefg"}, "key365":{"type":"string","value":"abcdefg"}, "key366":{"type":"string","value":"abcdefg"}, "key367":{"type":"string","value":"abcdefg"}, "key368":{"type":"string","value":"abcdefg"}, "key369":{"type":"string","value":"abcdefg"}, "key370":{"type":"string","value":"abcdefg"}, "key371":{"type":"string","value":"abcdefg"}, "key372":{"type":"string","value":"abcdefg"}, "key373":{"type":"string","value":"abcdefg"}, "key374":{"type":"string","value":"abcdefg"}, "key375":{"type":"string","value":"abcdefg"}, "key376":{"type":"string","value":"abcdefg"}, "key377":{"type":"string","value":"abcdefg"}, "key378":{"type":"string","value":"abcdefg"}, "key379":{"type":"string","value":"abcdefg"}, "key380":{"type":"string","value":"abcdefg"}, "key381":{"type":"string","value":"abcdefg"}, "key382":{"type":"string","value":"abcdefg"}, "key383":{"type":"string","value":"abcdefg"}, "key384":{"type":"string","value":"abcdefg"}, "key385":{"type":"string","value":"abcdefg"}, "key386":{"type":"string","value":"abcdefg"}, "key387":{"type":"string","value":"abcdefg"}, "key388":{"type":"string","value":"abcdefg"}, "key389":{"type":"string","value":"abcdefg"}, "key390":{"type":"string","value":"abcdefg"}, "key391":{"type":"string","value":"abcdefg"}, "key392":{"type":"string","value":"abcdefg"}, "key393":{"type":"string","value":"abcdefg"}, "key394":{"type":"string","value":"abcdefg"}, "key395":{"type":"string","value":"abcdefg"}, "key396":{"type":"string","value":"abcdefg"}, "key397":{"type":"string","value":"abcdefg"}, "key398":{"type":"string","value":"abcdefg"}, "key399":{"type":"string","value":"abcdefg"}, "key400":{"type":"string","value":"abcdefg"}, "key401":{"type":"string","value":"abcdefg"}, "key402":{"type":"string","value":"abcdefg"}, "key403":{"type":"string","value":"abcdefg"}, "key404":{"type":"string","value":"abcdefg"}, "key405":{"type":"string","value":"abcdefg"}, "key406":{"type":"string","value":"abcdefg"}, "key407":{"type":"string","value":"abcdefg"}, "key408":{"type":"string","value":"abcdefg"}, "key409":{"type":"string","value":"abcdefg"}, "key410":{"type":"string","value":"abcdefg"}, "key411":{"type":"string","value":"abcdefg"}, "key412":{"type":"string","value":"abcdefg"}, "key413":{"type":"string","value":"abcdefg"}, "key414":{"type":"string","value":"abcdefg"}, "key415":{"type":"string","value":"abcdefg"}, "key416":{"type":"string","value":"abcdefg"}, "key417":{"type":"string","value":"abcdefg"}, "key418":{"type":"string","value":"abcdefg"}, "key419":{"type":"string","value":"abcdefg"}, "key420":{"type":"string","value":"abcdefg"}, "key421":{"type":"string","value":"abcdefg"}, "key422":{"type":"string","value":"abcdefg"}, "key423":{"type":"string","value":"abcdefg"}, "key424":{"type":"string","value":"abcdefg"}, "key425":{"type":"string","value":"abcdefg"}, "key426":{"type":"string","value":"abcdefg"}, "key427":{"type":"string","value":"abcdefg"}, "key428":{"type":"string","value":"abcdefg"}, "key429":{"type":"string","value":"abcdefg"}, "key430":{"type":"string","value":"abcdefg"}, "key431":{"type":"string","value":"abcdefg"}, "key432":{"type":"string","value":"abcdefg"}, "key433":{"type":"string","value":"abcdefg"}, "key434":{"type":"string","value":"abcdefg"}, "key435":{"type":"string","value":"abcdefg"}, "key436":{"type":"string","value":"abcdefg"}, "key437":{"type":"string","value":"abcdefg"}, "key438":{"type":"string","value":"abcdefg"}, "key439":{"type":"string","value":"abcdefg"}, "key440":{"type":"string","value":"abcdefg"}, "key441":{"type":"string","value":"abcdefg"}, "key442":{"type":"string","value":"abcdefg"}, "key443":{"type":"string","value":"abcdefg"}, "key444":{"type":"string","value":"abcdefg"}, "key445":{"type":"string","value":"abcdefg"}, "key446":{"type":"string","value":"abcdefg"}, "key447":{"type":"string","value":"abcdefg"}, "key448":{"type":"string","value":"abcdefg"}, "key449":{"type":"string","value":"abcdefg"}, "key450":{"type":"string","value":"abcdefg"}, "key451":{"type":"string","value":"abcdefg"}, "key452":{"type":"string","value":"abcdefg"}, "key453":{"type":"string","value":"abcdefg"}, "key454":{"type":"string","value":"abcdefg"}, "key455":{"type":"string","value":"abcdefg"}, "key456":{"type":"string","value":"abcdefg"}, "key457":{"type":"string","value":"abcdefg"}, "key458":{"type":"string","value":"abcdefg"}, "key459":{"type":"string","value":"abcdefg"}, "key460":{"type":"string","value":"abcdefg"}, "key461":{"type":"string","value":"abcdefg"}, "key462":{"type":"string","value":"abcdefg"}, "key463":{"type":"string","value":"abcdefg"}, "key464":{"type":"string","value":"abcdefg"}, "key465":{"type":"string","value":"abcdefg"}, "key466":{"type":"string","value":"abcdefg"}, "key467":{"type":"string","value":"abcdefg"}, "key468":{"type":"string","value":"abcdefg"}, "key469":{"type":"string","value":"abcdefg"}, "key470":{"type":"string","value":"abcdefg"}, "key471":{"type":"string","value":"abcdefg"}, "key472":{"type":"string","value":"abcdefg"}, "key473":{"type":"string","value":"abcdefg"}, "key474":{"type":"string","value":"abcdefg"}, "key475":{"type":"string","value":"abcdefg"}, "key476":{"type":"string","value":"abcdefg"}, "key477":{"type":"string","value":"abcdefg"}, "key478":{"type":"string","value":"abcdefg"}, "key479":{"type":"string","value":"abcdefg"}, "key480":{"type":"string","value":"abcdefg"}, "key481":{"type":"string","value":"abcdefg"}, "key482":{"type":"string","value":"abcdefg"}, "key483":{"type":"string","value":"abcdefg"}, "key484":{"type":"string","value":"abcdefg"}, "key485":{"type":"string","value":"abcdefg"}, "key486":{"type":"string","value":"abcdefg"}, "key487":{"type":"string","value":"abcdefg"}, "key488":{"type":"string","value":"abcdefg"}, "key489":{"type":"string","value":"abcdefg"}, "key490":{"type":"string","value":"abcdefg"}, "key491":{"type":"string","value":"abcdefg"}, "key492":{"type":"string","value":"abcdefg"}, "key493":{"type":"string","value":"abcdefg"}, "key494":{"type":"string","value":"abcdefg"}, "key495":{"type":"string","value":"abcdefg"}, "key496":{"type":"string","value":"abcdefg"}, "key497":{"type":"string","value":"abcdefg"}, "key498":{"type":"string","value":"abcdefg"}, "key499":{"type":"string","value":"abcdefg"}, "key500":{"type":"string","value":"abcdefg"}, "key501":{"type":"string","value":"abcdefg"}, "key502":{"type":"string","value":"abcdefg"}, "key503":{"type":"string","value":"abcdefg"}, "key504":{"type":"string","value":"abcdefg"}, "key505":{"type":"string","value":"abcdefg"}, "key506":{"type":"string","value":"abcdefg"}, "key507":{"type":"string","value":"abcdefg"}, "key508":{"type":"string","value":"abcdefg"}, "key509":{"type":"string","value":"abcdefg"}, "key510":{"type":"string","value":"abcdefg"}, "key511":{"type":"string","value":"abcdefg"}, "key512":{"type":"string","value":"abcdefg"}, "key513":{"type":"string","value":"abcdefg"}, "key514":{"type":"string","value":"abcdefg"}, "key515":{"type":"string","value":"abcdefg"}, "key516":{"type":"string","value":"abcdefg"}, "key517":{"type":"string","value":"abcdefg"}, "key518":{"type":"string","value":"abcdefg"}, "key519":{"type":"string","value":"abcdefg"}, "key520":{"type":"string","value":"abcdefg"}, "key521":{"type":"string","value":"abcdefg"}, "key522":{"type":"string","value":"abcdefg"}, "key523":{"type":"string","value":"abcdefg"}, "key524":{"type":"string","value":"abcdefg"}, "key525":{"type":"string","value":"abcdefg"}, "key526":{"type":"string","value":"abcdefg"}, "key527":{"type":"string","value":"abcdefg"}, "key528":{"type":"string","value":"abcdefg"}, "key529":{"type":"string","value":"abcdefg"}, "key530":{"type":"string","value":"abcdefg"}, "key531":{"type":"string","value":"abcdefg"}, "key532":{"type":"string","value":"abcdefg"}, "key533":{"type":"string","value":"abcdefg"}, "key534":{"type":"string","value":"abcdefg"}, "key535":{"type":"string","value":"abcdefg"}, "key536":{"type":"string","value":"abcdefg"}, "key537":{"type":"string","value":"abcdefg"}, "key538":{"type":"string","value":"abcdefg"}, "key539":{"type":"string","value":"abcdefg"}, "key540":{"type":"string","value":"abcdefg"}, "key541":{"type":"string","value":"abcdefg"}, "key542":{"type":"string","value":"abcdefg"}, "key543":{"type":"string","value":"abcdefg"}, "key544":{"type":"string","value":"abcdefg"}, "key545":{"type":"string","value":"abcdefg"}, "key546":{"type":"string","value":"abcdefg"}, "key547":{"type":"string","value":"abcdefg"}, "key548":{"type":"string","value":"abcdefg"}, "key549":{"type":"string","value":"abcdefg"}, "key550":{"type":"string","value":"abcdefg"}, "key551":{"type":"string","value":"abcdefg"}, "key552":{"type":"string","value":"abcdefg"}, "key553":{"type":"string","value":"abcdefg"}, "key554":{"type":"string","value":"abcdefg"}, "key555":{"type":"string","value":"abcdefg"}, "key556":{"type":"string","value":"abcdefg"}, "key557":{"type":"string","value":"abcdefg"}, "key558":{"type":"string","value":"abcdefg"}, "key559":{"type":"string","value":"abcdefg"}, "key560":{"type":"string","value":"abcdefg"}, "key561":{"type":"string","value":"abcdefg"}, "key562":{"type":"string","value":"abcdefg"}, "key563":{"type":"string","value":"abcdefg"}, "key564":{"type":"string","value":"abcdefg"}, "key565":{"type":"string","value":"abcdefg"}, "key566":{"type":"string","value":"abcdefg"}, "key567":{"type":"string","value":"abcdefg"}, "key568":{"type":"string","value":"abcdefg"}, "key569":{"type":"string","value":"abcdefg"}, "key570":{"type":"string","value":"abcdefg"}, "key571":{"type":"string","value":"abcdefg"}, "key572":{"type":"string","value":"abcdefg"}, "key573":{"type":"string","value":"abcdefg"}, "key574":{"type":"string","value":"abcdefg"}, "key575":{"type":"string","value":"abcdefg"}, "key576":{"type":"string","value":"abcdefg"}, "key577":{"type":"string","value":"abcdefg"}, "key578":{"type":"string","value":"abcdefg"}, "key579":{"type":"string","value":"abcdefg"}, "key580":{"type":"string","value":"abcdefg"}, "key581":{"type":"string","value":"abcdefg"}, "key582":{"type":"string","value":"abcdefg"}, "key583":{"type":"string","value":"abcdefg"}, "key584":{"type":"string","value":"abcdefg"}, "key585":{"type":"string","value":"abcdefg"}, "key586":{"type":"string","value":"abcdefg"}, "key587":{"type":"string","value":"abcdefg"}, "key588":{"type":"string","value":"abcdefg"}, "key589":{"type":"string","value":"abcdefg"}, "key590":{"type":"string","value":"abcdefg"}, "key591":{"type":"string","value":"abcdefg"}, "key592":{"type":"string","value":"abcdefg"}, "key593":{"type":"string","value":"abcdefg"}, "key594":{"type":"string","value":"abcdefg"}, "key595":{"type":"string","value":"abcdefg"}, "key596":{"type":"string","value":"abcdefg"}, "key597":{"type":"string","value":"abcdefg"}, "key598":{"type":"string","value":"abcdefg"}, "key599":{"type":"string","value":"abcdefg"}, "key600":{"type":"string","value":"abcdefg"}, "key601":{"type":"string","value":"abcdefg"}, "key602":{"type":"string","value":"abcdefg"}, "key603":{"type":"string","value":"abcdefg"}, "key604":{"type":"string","value":"abcdefg"}, "key605":{"type":"string","value":"abcdefg"}, "key606":{"type":"string","value":"abcdefg"}, "key607":{"type":"string","value":"abcdefg"}, "key608":{"type":"string","value":"abcdefg"}, "key609":{"type":"string","value":"abcdefg"}, "key610":{"type":"string","value":"abcdefg"}, "key611":{"type":"string","value":"abcdefg"}, "key612":{"type":"string","value":"abcdefg"}, "key613":{"type":"string","value":"abcdefg"}, "key614":{"type":"string","value":"abcdefg"}, "key615":{"type":"string","value":"abcdefg"}, "key616":{"type":"string","value":"abcdefg"}, "key617":{"type":"string","value":"abcdefg"}, "key618":{"type":"string","value":"abcdefg"}, "key619":{"type":"string","value":"abcdefg"}, "key620":{"type":"string","value":"abcdefg"}, "key621":{"type":"string","value":"abcdefg"}, "key622":{"type":"string","value":"abcdefg"}, "key623":{"type":"string","value":"abcdefg"}, "key624":{"type":"string","value":"abcdefg"}, "key625":{"type":"string","value":"abcdefg"}, "key626":{"type":"string","value":"abcdefg"}, "key627":{"type":"string","value":"abcdefg"}, "key628":{"type":"string","value":"abcdefg"}, "key629":{"type":"string","value":"abcdefg"}, "key630":{"type":"string","value":"abcdefg"}, "key631":{"type":"string","value":"abcdefg"}, "key632":{"type":"string","value":"abcdefg"}, "key633":{"type":"string","value":"abcdefg"}, "key634":{"type":"string","value":"abcdefg"}, "key635":{"type":"string","value":"abcdefg"}, "key636":{"type":"string","value":"abcdefg"}, "key637":{"type":"string","value":"abcdefg"}, "key638":{"type":"string","value":"abcdefg"}, "key639":{"type":"string","value":"abcdefg"}, "key640":{"type":"string","value":"abcdefg"}, "key641":{"type":"string","value":"abcdefg"}, "key642":{"type":"string","value":"abcdefg"}, "key643":{"type":"string","value":"abcdefg"}, "key644":{"type":"string","value":"abcdefg"}, "key645":{"type":"string","value":"abcdefg"}, "key646":{"type":"string","value":"abcdefg"}, "key647":{"type":"string","value":"abcdefg"}, "key648":{"type":"string","value":"abcdefg"}, "key649":{"type":"string","value":"abcdefg"}, "key650":{"type":"string","value":"abcdefg"}, "key651":{"type":"string","value":"abcdefg"}, "key652":{"type":"string","value":"abcdefg"}, "key653":{"type":"string","value":"abcdefg"}, "key654":{"type":"string","value":"abcdefg"}, "key655":{"type":"string","value":"abcdefg"}, "key656":{"type":"string","value":"abcdefg"}, "key657":{"type":"string","value":"abcdefg"}, "key658":{"type":"string","value":"abcdefg"}, "key659":{"type":"string","value":"abcdefg"}, "key660":{"type":"string","value":"abcdefg"}, "key661":{"type":"string","value":"abcdefg"}, "key662":{"type":"string","value":"abcdefg"}, "key663":{"type":"string","value":"abcdefg"}, "key664":{"type":"string","value":"abcdefg"}, "key665":{"type":"string","value":"abcdefg"}, "key666":{"type":"string","value":"abcdefg"}, "key667":{"type":"string","value":"abcdefg"}, "key668":{"type":"string","value":"abcdefg"}, "key669":{"type":"string","value":"abcdefg"}, "key670":{"type":"string","value":"abcdefg"}, "key671":{"type":"string","value":"abcdefg"}, "key672":{"type":"string","value":"abcdefg"}, "key673":{"type":"string","value":"abcdefg"}, "key674":{"type":"string","value":"abcdefg"}, "key675":{"type":"string","value":"abcdefg"}, "key676":{"type":"string","value":"abcdefg"}, "key677":{"type":"string","value":"abcdefg"}, "key678":{"type":"string","value":"abcdefg"}, "key679":{"type":"string","value":"abcdefg"}, "key680":{"type":"string","value":"abcdefg"}, "key681":{"type":"string","value":"abcdefg"}, "key682":{"type":"string","value":"abcdefg"}, "key683":{"type":"string","value":"abcdefg"}, "key684":{"type":"string","value":"abcdefg"}, "key685":{"type":"string","value":"abcdefg"}, "key686":{"type":"string","value":"abcdefg"}, "key687":{"type":"string","value":"abcdefg"}, "key688":{"type":"string","value":"abcdefg"}, "key689":{"type":"string","value":"abcdefg"}, "key690":{"type":"string","value":"abcdefg"}, "key691":{"type":"string","value":"abcdefg"}, "key692":{"type":"string","value":"abcdefg"}, "key693":{"type":"string","value":"abcdefg"}, "key694":{"type":"string","value":"abcdefg"}, "key695":{"type":"string","value":"abcdefg"}, "key696":{"type":"string","value":"abcdefg"}, "key697":{"type":"string","value":"abcdefg"}, "key698":{"type":"string","value":"abcdefg"}, "key699":{"type":"string","value":"abcdefg"}, "key700":{"type":"string","value":"abcdefg"}, "key701":{"type":"string","value":"abcdefg"}, "key702":{"type":"string","value":"abcdefg"}, "key703":{"type":"string","value":"abcdefg"}, "key704":{"type":"string","value":"abcdefg"}, "key705":{"type":"string","value":"abcdefg"}, "key706":{"type":"string","value":"abcdefg"}, "key707":{"type":"string","value":"abcdefg"}, "key708":{"type":"string","value":"abcdefg"}, "key709":{"type":"string","value":"abcdefg"}, "key710":{"type":"string","value":"abcdefg"}, "key711":{"type":"string","value":"abcdefg"}, "key712":{"type":"string","value":"abcdefg"}, "key713":{"type":"string","value":"abcdefg"}, "key714":{"type":"string","value":"abcdefg"}, "key715":{"type":"string","value":"abcdefg"}, "key716":{"type":"string","value":"abcdefg"}, "key717":{"type":"string","value":"abcdefg"}, "key718":{"type":"string","value":"abcdefg"}, "key719":{"type":"string","value":"abcdefg"}, "key720":{"type":"string","value":"abcdefg"}, "key721":{"type":"string","value":"abcdefg"}, "key722":{"type":"string","value":"abcdefg"}, "key723":{"type":"string","value":"abcdefg"}, "key724":{"type":"string","value":"abcdefg"}, "key725":{"type":"string","value":"abcdefg"}, "key726":{"type":"string","value":"abcdefg"}, "key727":{"type":"string","value":"abcdefg"}, "key728":{"type":"string","value":"abcdefg"}, "key729":{"type":"string","value":"abcdefg"}, "key730":{"type":"string","value":"abcdefg"}, "key731":{"type":"string","value":"abcdefg"}, "key732":{"type":"string","value":"abcdefg"}, "key733":{"type":"string","value":"abcdefg"}, "key734":{"type":"string","value":"abcdefg"}, "key735":{"type":"string","value":"abcdefg"}, "key736":{"type":"string","value":"abcdefg"}, "key737":{"type":"string","value":"abcdefg"}, "key738":{"type":"string","value":"abcdefg"}, "key739":{"type":"string","value":"abcdefg"}, "key740":{"type":"string","value":"abcdefg"}, "key741":{"type":"string","value":"abcdefg"}, "key742":{"type":"string","value":"abcdefg"}, "key743":{"type":"string","value":"abcdefg"}, "key744":{"type":"string","value":"abcdefg"}, "key745":{"type":"string","value":"abcdefg"}, "key746":{"type":"string","value":"abcdefg"}, "key747":{"type":"string","value":"abcdefg"}, "key748":{"type":"string","value":"abcdefg"}, "key749":{"type":"string","value":"abcdefg"}, "key750":{"type":"string","value":"abcdefg"}, "key751":{"type":"string","value":"abcdefg"}, "key752":{"type":"string","value":"abcdefg"}, "key753":{"type":"string","value":"abcdefg"}, "key754":{"type":"string","value":"abcdefg"}, "key755":{"type":"string","value":"abcdefg"}, "key756":{"type":"string","value":"abcdefg"}, "key757":{"type":"string","value":"abcdefg"}, "key758":{"type":"string","value":"abcdefg"}, "key759":{"type":"string","value":"abcdefg"}, "key760":{"type":"string","value":"abcdefg"}, "key761":{"type":"string","value":"abcdefg"}, "key762":{"type":"string","value":"abcdefg"}, "key763":{"type":"string","value":"abcdefg"}, "key764":{"type":"string","value":"abcdefg"}, "key765":{"type":"string","value":"abcdefg"}, "key766":{"type":"string","value":"abcdefg"}, "key767":{"type":"string","value":"abcdefg"}, "key768":{"type":"string","value":"abcdefg"}, "key769":{"type":"string","value":"abcdefg"}, "key770":{"type":"string","value":"abcdefg"}, "key771":{"type":"string","value":"abcdefg"}, "key772":{"type":"string","value":"abcdefg"}, "key773":{"type":"string","value":"abcdefg"}, "key774":{"type":"string","value":"abcdefg"}, "key775":{"type":"string","value":"abcdefg"}, "key776":{"type":"string","value":"abcdefg"}, "key777":{"type":"string","value":"abcdefg"}, "key778":{"type":"string","value":"abcdefg"}, "key779":{"type":"string","value":"abcdefg"}, "key780":{"type":"string","value":"abcdefg"}, "key781":{"type":"string","value":"abcdefg"}, "key782":{"type":"string","value":"abcdefg"}, "key783":{"type":"string","value":"abcdefg"}, "key784":{"type":"string","value":"abcdefg"}, "key785":{"type":"string","value":"abcdefg"}, "key786":{"type":"string","value":"abcdefg"}, "key787":{"type":"string","value":"abcdefg"}, "key788":{"type":"string","value":"abcdefg"}, "key789":{"type":"string","value":"abcdefg"}, "key790":{"type":"string","value":"abcdefg"}, "key791":{"type":"string","value":"abcdefg"}, "key792":{"type":"string","value":"abcdefg"}, "key793":{"type":"string","value":"abcdefg"}, "key794":{"type":"string","value":"abcdefg"}, "key795":{"type":"string","value":"abcdefg"}, "key796":{"type":"string","value":"abcdefg"}, "key797":{"type":"string","value":"abcdefg"}, "key798":{"type":"string","value":"abcdefg"}, "key799":{"type":"string","value":"abcdefg"}, "key800":{"type":"string","value":"abcdefg"}, "key801":{"type":"string","value":"abcdefg"}, "key802":{"type":"string","value":"abcdefg"}, "key803":{"type":"string","value":"abcdefg"}, "key804":{"type":"string","value":"abcdefg"}, "key805":{"type":"string","value":"abcdefg"}, "key806":{"type":"string","value":"abcdefg"}, "key807":{"type":"string","value":"abcdefg"}, "key808":{"type":"string","value":"abcdefg"}, "key809":{"type":"string","value":"abcdefg"}, "key810":{"type":"string","value":"abcdefg"}, "key811":{"type":"string","value":"abcdefg"}, "key812":{"type":"string","value":"abcdefg"}, "key813":{"type":"string","value":"abcdefg"}, "key814":{"type":"string","value":"abcdefg"}, "key815":{"type":"string","value":"abcdefg"}, "key816":{"type":"string","value":"abcdefg"}, "key817":{"type":"string","value":"abcdefg"}, "key818":{"type":"string","value":"abcdefg"}, "key819":{"type":"string","value":"abcdefg"}, "key820":{"type":"string","value":"abcdefg"}, "key821":{"type":"string","value":"abcdefg"}, "key822":{"type":"string","value":"abcdefg"}, "key823":{"type":"string","value":"abcdefg"}, "key824":{"type":"string","value":"abcdefg"}, "key825":{"type":"string","value":"abcdefg"}, "key826":{"type":"string","value":"abcdefg"}, "key827":{"type":"string","value":"abcdefg"}, "key828":{"type":"string","value":"abcdefg"}, "key829":{"type":"string","value":"abcdefg"}, "key830":{"type":"string","value":"abcdefg"}, "key831":{"type":"string","value":"abcdefg"}, "key832":{"type":"string","value":"abcdefg"}, "key833":{"type":"string","value":"abcdefg"}, "key834":{"type":"string","value":"abcdefg"}, "key835":{"type":"string","value":"abcdefg"}, "key836":{"type":"string","value":"abcdefg"}, "key837":{"type":"string","value":"abcdefg"}, "key838":{"type":"string","value":"abcdefg"}, "key839":{"type":"string","value":"abcdefg"}, "key840":{"type":"string","value":"abcdefg"}, "key841":{"type":"string","value":"abcdefg"}, "key842":{"type":"string","value":"abcdefg"}, "key843":{"type":"string","value":"abcdefg"}, "key844":{"type":"string","value":"abcdefg"}, "key845":{"type":"string","value":"abcdefg"}, "key846":{"type":"string","value":"abcdefg"}, "key847":{"type":"string","value":"abcdefg"}, "key848":{"type":"string","value":"abcdefg"}, "key849":{"type":"string","value":"abcdefg"}, "key850":{"type":"string","value":"abcdefg"}, "key851":{"type":"string","value":"abcdefg"}, "key852":{"type":"string","value":"abcdefg"}, "key853":{"type":"string","value":"abcdefg"}, "key854":{"type":"string","value":"abcdefg"}, "key855":{"type":"string","value":"abcdefg"}, "key856":{"type":"string","value":"abcdefg"}, "key857":{"type":"string","value":"abcdefg"}, "key858":{"type":"string","value":"abcdefg"}, "key859":{"type":"string","value":"abcdefg"}, "key860":{"type":"string","value":"abcdefg"}, "key861":{"type":"string","value":"abcdefg"}, "key862":{"type":"string","value":"abcdefg"}, "key863":{"type":"string","value":"abcdefg"}, "key864":{"type":"string","value":"abcdefg"}, "key865":{"type":"string","value":"abcdefg"}, "key866":{"type":"string","value":"abcdefg"}, "key867":{"type":"string","value":"abcdefg"}, "key868":{"type":"string","value":"abcdefg"}, "key869":{"type":"string","value":"abcdefg"}, "key870":{"type":"string","value":"abcdefg"}, "key871":{"type":"string","value":"abcdefg"}, "key872":{"type":"string","value":"abcdefg"}, "key873":{"type":"string","value":"abcdefg"}, "key874":{"type":"string","value":"abcdefg"}, "key875":{"type":"string","value":"abcdefg"}, "key876":{"type":"string","value":"abcdefg"}, "key877":{"type":"string","value":"abcdefg"}, "key878":{"type":"string","value":"abcdefg"}, "key879":{"type":"string","value":"abcdefg"}, "key880":{"type":"string","value":"abcdefg"}, "key881":{"type":"string","value":"abcdefg"}, "key882":{"type":"string","value":"abcdefg"}, "key883":{"type":"string","value":"abcdefg"}, "key884":{"type":"string","value":"abcdefg"}, "key885":{"type":"string","value":"abcdefg"}, "key886":{"type":"string","value":"abcdefg"}, "key887":{"type":"string","value":"abcdefg"}, "key888":{"type":"string","value":"abcdefg"}, "key889":{"type":"string","value":"abcdefg"}, "key890":{"type":"string","value":"abcdefg"}, "key891":{"type":"string","value":"abcdefg"}, "key892":{"type":"string","value":"abcdefg"}, "key893":{"type":"string","value":"abcdefg"}, "key894":{"type":"string","value":"abcdefg"}, "key895":{"type":"string","value":"abcdefg"}, "key896":{"type":"string","value":"abcdefg"}, "key897":{"type":"string","value":"abcdefg"}, "key898":{"type":"string","value":"abcdefg"}, "key899":{"type":"string","value":"abcdefg"}, "key900":{"type":"string","value":"abcdefg"}, "key901":{"type":"string","value":"abcdefg"}, "key902":{"type":"string","value":"abcdefg"}, "key903":{"type":"string","value":"abcdefg"}, "key904":{"type":"string","value":"abcdefg"}, "key905":{"type":"string","value":"abcdefg"}, "key906":{"type":"string","value":"abcdefg"}, "key907":{"type":"string","value":"abcdefg"}, "key908":{"type":"string","value":"abcdefg"}, "key909":{"type":"string","value":"abcdefg"}, "key910":{"type":"string","value":"abcdefg"}, "key911":{"type":"string","value":"abcdefg"}, "key912":{"type":"string","value":"abcdefg"}, "key913":{"type":"string","value":"abcdefg"}, "key914":{"type":"string","value":"abcdefg"}, "key915":{"type":"string","value":"abcdefg"}, "key916":{"type":"string","value":"abcdefg"}, "key917":{"type":"string","value":"abcdefg"}, "key918":{"type":"string","value":"abcdefg"}, "key919":{"type":"string","value":"abcdefg"}, "key920":{"type":"string","value":"abcdefg"}, "key921":{"type":"string","value":"abcdefg"}, "key922":{"type":"string","value":"abcdefg"}, "key923":{"type":"string","value":"abcdefg"}, "key924":{"type":"string","value":"abcdefg"}, "key925":{"type":"string","value":"abcdefg"}, "key926":{"type":"string","value":"abcdefg"}, "key927":{"type":"string","value":"abcdefg"}, "key928":{"type":"string","value":"abcdefg"}, "key929":{"type":"string","value":"abcdefg"}, "key930":{"type":"string","value":"abcdefg"}, "key931":{"type":"string","value":"abcdefg"}, "key932":{"type":"string","value":"abcdefg"}, "key933":{"type":"string","value":"abcdefg"}, "key934":{"type":"string","value":"abcdefg"}, "key935":{"type":"string","value":"abcdefg"}, "key936":{"type":"string","value":"abcdefg"}, "key937":{"type":"string","value":"abcdefg"}, "key938":{"type":"string","value":"abcdefg"}, "key939":{"type":"string","value":"abcdefg"}, "key940":{"type":"string","value":"abcdefg"}, "key941":{"type":"string","value":"abcdefg"}, "key942":{"type":"string","value":"abcdefg"}, "key943":{"type":"string","value":"abcdefg"}, "key944":{"type":"string","value":"abcdefg"}, "key945":{"type":"string","value":"abcdefg"}, "key946":{"type":"string","value":"abcdefg"}, "key947":{"type":"string","value":"abcdefg"}, "key948":{"type":"string","value":"abcdefg"}, "key949":{"type":"string","value":"abcdefg"}, "key950":{"type":"string","value":"abcdefg"}, "key951":{"type":"string","value":"abcdefg"}, "key952":{"type":"string","value":"abcdefg"}, "key953":{"type":"string","value":"abcdefg"}, "key954":{"type":"string","value":"abcdefg"}, "key955":{"type":"string","value":"abcdefg"}, "key956":{"type":"string","value":"abcdefg"}, "key957":{"type":"string","value":"abcdefg"}, "key958":{"type":"string","value":"abcdefg"}, "key959":{"type":"string","value":"abcdefg"}, "key960":{"type":"string","value":"abcdefg"}, "key961":{"type":"string","value":"abcdefg"}, "key962":{"type":"string","value":"abcdefg"}, "key963":{"type":"string","value":"abcdefg"}, "key964":{"type":"string","value":"abcdefg"}, "key965":{"type":"string","value":"abcdefg"}, "key966":{"type":"string","value":"abcdefg"}, "key967":{"type":"string","value":"abcdefg"}, "key968":{"type":"string","value":"abcdefg"}, "key969":{"type":"string","value":"abcdefg"}, "key970":{"type":"string","value":"abcdefg"}, "key971":{"type":"string","value":"abcdefg"}, "key972":{"type":"string","value":"abcdefg"}, "key973":{"type":"string","value":"abcdefg"}, "key974":{"type":"string","value":"abcdefg"}, "key975":{"type":"string","value":"abcdefg"}, "key976":{"type":"string","value":"abcdefg"}, "key977":{"type":"string","value":"abcdefg"}, "key978":{"type":"string","value":"abcdefg"}, "key979":{"type":"string","value":"abcdefg"}, "key980":{"type":"string","value":"abcdefg"}, "key981":{"type":"string","value":"abcdefg"}, "key982":{"type":"string","value":"abcdefg"}, "key983":{"type":"string","value":"abcdefg"}, "key984":{"type":"string","value":"abcdefg"}, "key985":{"type":"string","value":"abcdefg"}, "key986":{"type":"string","value":"abcdefg"}, "key987":{"type":"string","value":"abcdefg"}, "key988":{"type":"string","value":"abcdefg"}, "key989":{"type":"string","value":"abcdefg"}, "key990":{"type":"string","value":"abcdefg"}, "key991":{"type":"string","value":"abcdefg"}, "key992":{"type":"string","value":"abcdefg"}, "key993":{"type":"string","value":"abcdefg"}, "key994":{"type":"string","value":"abcdefg"}, "key995":{"type":"string","value":"abcdefg"}, "key996":{"type":"string","value":"abcdefg"}, "key997":{"type":"string","value":"abcdefg"}, "key998":{"type":"string","value":"abcdefg"}, "key999":{"type":"string","value":"abcdefg"}, "key1000":{"type":"string","value":"abcdefg"}, "end":{"type":"boolean","value":"true"}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa/qa-table-inline-1000.toml 0000664 0000000 0000000 00000046711 14721714455 0031735 0 ustar 00root root 0000000 0000000 key = { key1 = "abcdefg", key2 = "abcdefg", key3 = "abcdefg", key4 = "abcdefg", key5 = "abcdefg", key6 = "abcdefg", key7 = "abcdefg", key8 = "abcdefg", key9 = "abcdefg", key10 = "abcdefg", key11 = "abcdefg", key12 = "abcdefg", key13 = "abcdefg", key14 = "abcdefg", key15 = "abcdefg", key16 = "abcdefg", key17 = "abcdefg", key18 = "abcdefg", key19 = "abcdefg", key20 = "abcdefg", key21 = "abcdefg", key22 = "abcdefg", key23 = "abcdefg", key24 = "abcdefg", key25 = "abcdefg", key26 = "abcdefg", key27 = "abcdefg", key28 = "abcdefg", key29 = "abcdefg", key30 = "abcdefg", key31 = "abcdefg", key32 = "abcdefg", key33 = "abcdefg", key34 = "abcdefg", key35 = "abcdefg", key36 = "abcdefg", key37 = "abcdefg", key38 = "abcdefg", key39 = "abcdefg", key40 = "abcdefg", key41 = "abcdefg", key42 = "abcdefg", key43 = "abcdefg", key44 = "abcdefg", key45 = "abcdefg", key46 = "abcdefg", key47 = "abcdefg", key48 = "abcdefg", key49 = "abcdefg", key50 = "abcdefg", key51 = "abcdefg", key52 = "abcdefg", key53 = "abcdefg", key54 = "abcdefg", key55 = "abcdefg", key56 = "abcdefg", key57 = "abcdefg", key58 = "abcdefg", key59 = "abcdefg", key60 = "abcdefg", key61 = "abcdefg", key62 = "abcdefg", key63 = "abcdefg", key64 = "abcdefg", key65 = "abcdefg", key66 = "abcdefg", key67 = "abcdefg", key68 = "abcdefg", key69 = "abcdefg", key70 = "abcdefg", key71 = "abcdefg", key72 = "abcdefg", key73 = "abcdefg", key74 = "abcdefg", key75 = "abcdefg", key76 = "abcdefg", key77 = "abcdefg", key78 = "abcdefg", key79 = "abcdefg", key80 = "abcdefg", key81 = "abcdefg", key82 = "abcdefg", key83 = "abcdefg", key84 = "abcdefg", key85 = "abcdefg", key86 = "abcdefg", key87 = "abcdefg", key88 = "abcdefg", key89 = "abcdefg", key90 = "abcdefg", key91 = "abcdefg", key92 = "abcdefg", key93 = "abcdefg", key94 = "abcdefg", key95 = "abcdefg", key96 = "abcdefg", key97 = "abcdefg", key98 = "abcdefg", key99 = "abcdefg", key100 = "abcdefg", key101 = "abcdefg", key102 = "abcdefg", key103 = "abcdefg", key104 = "abcdefg", key105 = "abcdefg", key106 = "abcdefg", key107 = "abcdefg", key108 = "abcdefg", key109 = "abcdefg", key110 = "abcdefg", key111 = "abcdefg", key112 = "abcdefg", key113 = "abcdefg", key114 = "abcdefg", key115 = "abcdefg", key116 = "abcdefg", key117 = "abcdefg", key118 = "abcdefg", key119 = "abcdefg", key120 = "abcdefg", key121 = "abcdefg", key122 = "abcdefg", key123 = "abcdefg", key124 = "abcdefg", key125 = "abcdefg", key126 = "abcdefg", key127 = "abcdefg", key128 = "abcdefg", key129 = "abcdefg", key130 = "abcdefg", key131 = "abcdefg", key132 = "abcdefg", key133 = "abcdefg", key134 = "abcdefg", key135 = "abcdefg", key136 = "abcdefg", key137 = "abcdefg", key138 = "abcdefg", key139 = "abcdefg", key140 = "abcdefg", key141 = "abcdefg", key142 = "abcdefg", key143 = "abcdefg", key144 = "abcdefg", key145 = "abcdefg", key146 = "abcdefg", key147 = "abcdefg", key148 = "abcdefg", key149 = "abcdefg", key150 = "abcdefg", key151 = "abcdefg", key152 = "abcdefg", key153 = "abcdefg", key154 = "abcdefg", key155 = "abcdefg", key156 = "abcdefg", key157 = "abcdefg", key158 = "abcdefg", key159 = "abcdefg", key160 = "abcdefg", key161 = "abcdefg", key162 = "abcdefg", key163 = "abcdefg", key164 = "abcdefg", key165 = "abcdefg", key166 = "abcdefg", key167 = "abcdefg", key168 = "abcdefg", key169 = "abcdefg", key170 = "abcdefg", key171 = "abcdefg", key172 = "abcdefg", key173 = "abcdefg", key174 = "abcdefg", key175 = "abcdefg", key176 = "abcdefg", key177 = "abcdefg", key178 = "abcdefg", key179 = "abcdefg", key180 = "abcdefg", key181 = "abcdefg", key182 = "abcdefg", key183 = "abcdefg", key184 = "abcdefg", key185 = "abcdefg", key186 = "abcdefg", key187 = "abcdefg", key188 = "abcdefg", key189 = "abcdefg", key190 = "abcdefg", key191 = "abcdefg", key192 = "abcdefg", key193 = "abcdefg", key194 = "abcdefg", key195 = "abcdefg", key196 = "abcdefg", key197 = "abcdefg", key198 = "abcdefg", key199 = "abcdefg", key200 = "abcdefg", key201 = "abcdefg", key202 = "abcdefg", key203 = "abcdefg", key204 = "abcdefg", key205 = "abcdefg", key206 = "abcdefg", key207 = "abcdefg", key208 = "abcdefg", key209 = "abcdefg", key210 = "abcdefg", key211 = "abcdefg", key212 = "abcdefg", key213 = "abcdefg", key214 = "abcdefg", key215 = "abcdefg", key216 = "abcdefg", key217 = "abcdefg", key218 = "abcdefg", key219 = "abcdefg", key220 = "abcdefg", key221 = "abcdefg", key222 = "abcdefg", key223 = "abcdefg", key224 = "abcdefg", key225 = "abcdefg", key226 = "abcdefg", key227 = "abcdefg", key228 = "abcdefg", key229 = "abcdefg", key230 = "abcdefg", key231 = "abcdefg", key232 = "abcdefg", key233 = "abcdefg", key234 = "abcdefg", key235 = "abcdefg", key236 = "abcdefg", key237 = "abcdefg", key238 = "abcdefg", key239 = "abcdefg", key240 = "abcdefg", key241 = "abcdefg", key242 = "abcdefg", key243 = "abcdefg", key244 = "abcdefg", key245 = "abcdefg", key246 = "abcdefg", key247 = "abcdefg", key248 = "abcdefg", key249 = "abcdefg", key250 = "abcdefg", key251 = "abcdefg", key252 = "abcdefg", key253 = "abcdefg", key254 = "abcdefg", key255 = "abcdefg", key256 = "abcdefg", key257 = "abcdefg", key258 = "abcdefg", key259 = "abcdefg", key260 = "abcdefg", key261 = "abcdefg", key262 = "abcdefg", key263 = "abcdefg", key264 = "abcdefg", key265 = "abcdefg", key266 = "abcdefg", key267 = "abcdefg", key268 = "abcdefg", key269 = "abcdefg", key270 = "abcdefg", key271 = "abcdefg", key272 = "abcdefg", key273 = "abcdefg", key274 = "abcdefg", key275 = "abcdefg", key276 = "abcdefg", key277 = "abcdefg", key278 = "abcdefg", key279 = "abcdefg", key280 = "abcdefg", key281 = "abcdefg", key282 = "abcdefg", key283 = "abcdefg", key284 = "abcdefg", key285 = "abcdefg", key286 = "abcdefg", key287 = "abcdefg", key288 = "abcdefg", key289 = "abcdefg", key290 = "abcdefg", key291 = "abcdefg", key292 = "abcdefg", key293 = "abcdefg", key294 = "abcdefg", key295 = "abcdefg", key296 = "abcdefg", key297 = "abcdefg", key298 = "abcdefg", key299 = "abcdefg", key300 = "abcdefg", key301 = "abcdefg", key302 = "abcdefg", key303 = "abcdefg", key304 = "abcdefg", key305 = "abcdefg", key306 = "abcdefg", key307 = "abcdefg", key308 = "abcdefg", key309 = "abcdefg", key310 = "abcdefg", key311 = "abcdefg", key312 = "abcdefg", key313 = "abcdefg", key314 = "abcdefg", key315 = "abcdefg", key316 = "abcdefg", key317 = "abcdefg", key318 = "abcdefg", key319 = "abcdefg", key320 = "abcdefg", key321 = "abcdefg", key322 = "abcdefg", key323 = "abcdefg", key324 = "abcdefg", key325 = "abcdefg", key326 = "abcdefg", key327 = "abcdefg", key328 = "abcdefg", key329 = "abcdefg", key330 = "abcdefg", key331 = "abcdefg", key332 = "abcdefg", key333 = "abcdefg", key334 = "abcdefg", key335 = "abcdefg", key336 = "abcdefg", key337 = "abcdefg", key338 = "abcdefg", key339 = "abcdefg", key340 = "abcdefg", key341 = "abcdefg", key342 = "abcdefg", key343 = "abcdefg", key344 = "abcdefg", key345 = "abcdefg", key346 = "abcdefg", key347 = "abcdefg", key348 = "abcdefg", key349 = "abcdefg", key350 = "abcdefg", key351 = "abcdefg", key352 = "abcdefg", key353 = "abcdefg", key354 = "abcdefg", key355 = "abcdefg", key356 = "abcdefg", key357 = "abcdefg", key358 = "abcdefg", key359 = "abcdefg", key360 = "abcdefg", key361 = "abcdefg", key362 = "abcdefg", key363 = "abcdefg", key364 = "abcdefg", key365 = "abcdefg", key366 = "abcdefg", key367 = "abcdefg", key368 = "abcdefg", key369 = "abcdefg", key370 = "abcdefg", key371 = "abcdefg", key372 = "abcdefg", key373 = "abcdefg", key374 = "abcdefg", key375 = "abcdefg", key376 = "abcdefg", key377 = "abcdefg", key378 = "abcdefg", key379 = "abcdefg", key380 = "abcdefg", key381 = "abcdefg", key382 = "abcdefg", key383 = "abcdefg", key384 = "abcdefg", key385 = "abcdefg", key386 = "abcdefg", key387 = "abcdefg", key388 = "abcdefg", key389 = "abcdefg", key390 = "abcdefg", key391 = "abcdefg", key392 = "abcdefg", key393 = "abcdefg", key394 = "abcdefg", key395 = "abcdefg", key396 = "abcdefg", key397 = "abcdefg", key398 = "abcdefg", key399 = "abcdefg", key400 = "abcdefg", key401 = "abcdefg", key402 = "abcdefg", key403 = "abcdefg", key404 = "abcdefg", key405 = "abcdefg", key406 = "abcdefg", key407 = "abcdefg", key408 = "abcdefg", key409 = "abcdefg", key410 = "abcdefg", key411 = "abcdefg", key412 = "abcdefg", key413 = "abcdefg", key414 = "abcdefg", key415 = "abcdefg", key416 = "abcdefg", key417 = "abcdefg", key418 = "abcdefg", key419 = "abcdefg", key420 = "abcdefg", key421 = "abcdefg", key422 = "abcdefg", key423 = "abcdefg", key424 = "abcdefg", key425 = "abcdefg", key426 = "abcdefg", key427 = "abcdefg", key428 = "abcdefg", key429 = "abcdefg", key430 = "abcdefg", key431 = "abcdefg", key432 = "abcdefg", key433 = "abcdefg", key434 = "abcdefg", key435 = "abcdefg", key436 = "abcdefg", key437 = "abcdefg", key438 = "abcdefg", key439 = "abcdefg", key440 = "abcdefg", key441 = "abcdefg", key442 = "abcdefg", key443 = "abcdefg", key444 = "abcdefg", key445 = "abcdefg", key446 = "abcdefg", key447 = "abcdefg", key448 = "abcdefg", key449 = "abcdefg", key450 = "abcdefg", key451 = "abcdefg", key452 = "abcdefg", key453 = "abcdefg", key454 = "abcdefg", key455 = "abcdefg", key456 = "abcdefg", key457 = "abcdefg", key458 = "abcdefg", key459 = "abcdefg", key460 = "abcdefg", key461 = "abcdefg", key462 = "abcdefg", key463 = "abcdefg", key464 = "abcdefg", key465 = "abcdefg", key466 = "abcdefg", key467 = "abcdefg", key468 = "abcdefg", key469 = "abcdefg", key470 = "abcdefg", key471 = "abcdefg", key472 = "abcdefg", key473 = "abcdefg", key474 = "abcdefg", key475 = "abcdefg", key476 = "abcdefg", key477 = "abcdefg", key478 = "abcdefg", key479 = "abcdefg", key480 = "abcdefg", key481 = "abcdefg", key482 = "abcdefg", key483 = "abcdefg", key484 = "abcdefg", key485 = "abcdefg", key486 = "abcdefg", key487 = "abcdefg", key488 = "abcdefg", key489 = "abcdefg", key490 = "abcdefg", key491 = "abcdefg", key492 = "abcdefg", key493 = "abcdefg", key494 = "abcdefg", key495 = "abcdefg", key496 = "abcdefg", key497 = "abcdefg", key498 = "abcdefg", key499 = "abcdefg", key500 = "abcdefg", key501 = "abcdefg", key502 = "abcdefg", key503 = "abcdefg", key504 = "abcdefg", key505 = "abcdefg", key506 = "abcdefg", key507 = "abcdefg", key508 = "abcdefg", key509 = "abcdefg", key510 = "abcdefg", key511 = "abcdefg", key512 = "abcdefg", key513 = "abcdefg", key514 = "abcdefg", key515 = "abcdefg", key516 = "abcdefg", key517 = "abcdefg", key518 = "abcdefg", key519 = "abcdefg", key520 = "abcdefg", key521 = "abcdefg", key522 = "abcdefg", key523 = "abcdefg", key524 = "abcdefg", key525 = "abcdefg", key526 = "abcdefg", key527 = "abcdefg", key528 = "abcdefg", key529 = "abcdefg", key530 = "abcdefg", key531 = "abcdefg", key532 = "abcdefg", key533 = "abcdefg", key534 = "abcdefg", key535 = "abcdefg", key536 = "abcdefg", key537 = "abcdefg", key538 = "abcdefg", key539 = "abcdefg", key540 = "abcdefg", key541 = "abcdefg", key542 = "abcdefg", key543 = "abcdefg", key544 = "abcdefg", key545 = "abcdefg", key546 = "abcdefg", key547 = "abcdefg", key548 = "abcdefg", key549 = "abcdefg", key550 = "abcdefg", key551 = "abcdefg", key552 = "abcdefg", key553 = "abcdefg", key554 = "abcdefg", key555 = "abcdefg", key556 = "abcdefg", key557 = "abcdefg", key558 = "abcdefg", key559 = "abcdefg", key560 = "abcdefg", key561 = "abcdefg", key562 = "abcdefg", key563 = "abcdefg", key564 = "abcdefg", key565 = "abcdefg", key566 = "abcdefg", key567 = "abcdefg", key568 = "abcdefg", key569 = "abcdefg", key570 = "abcdefg", key571 = "abcdefg", key572 = "abcdefg", key573 = "abcdefg", key574 = "abcdefg", key575 = "abcdefg", key576 = "abcdefg", key577 = "abcdefg", key578 = "abcdefg", key579 = "abcdefg", key580 = "abcdefg", key581 = "abcdefg", key582 = "abcdefg", key583 = "abcdefg", key584 = "abcdefg", key585 = "abcdefg", key586 = "abcdefg", key587 = "abcdefg", key588 = "abcdefg", key589 = "abcdefg", key590 = "abcdefg", key591 = "abcdefg", key592 = "abcdefg", key593 = "abcdefg", key594 = "abcdefg", key595 = "abcdefg", key596 = "abcdefg", key597 = "abcdefg", key598 = "abcdefg", key599 = "abcdefg", key600 = "abcdefg", key601 = "abcdefg", key602 = "abcdefg", key603 = "abcdefg", key604 = "abcdefg", key605 = "abcdefg", key606 = "abcdefg", key607 = "abcdefg", key608 = "abcdefg", key609 = "abcdefg", key610 = "abcdefg", key611 = "abcdefg", key612 = "abcdefg", key613 = "abcdefg", key614 = "abcdefg", key615 = "abcdefg", key616 = "abcdefg", key617 = "abcdefg", key618 = "abcdefg", key619 = "abcdefg", key620 = "abcdefg", key621 = "abcdefg", key622 = "abcdefg", key623 = "abcdefg", key624 = "abcdefg", key625 = "abcdefg", key626 = "abcdefg", key627 = "abcdefg", key628 = "abcdefg", key629 = "abcdefg", key630 = "abcdefg", key631 = "abcdefg", key632 = "abcdefg", key633 = "abcdefg", key634 = "abcdefg", key635 = "abcdefg", key636 = "abcdefg", key637 = "abcdefg", key638 = "abcdefg", key639 = "abcdefg", key640 = "abcdefg", key641 = "abcdefg", key642 = "abcdefg", key643 = "abcdefg", key644 = "abcdefg", key645 = "abcdefg", key646 = "abcdefg", key647 = "abcdefg", key648 = "abcdefg", key649 = "abcdefg", key650 = "abcdefg", key651 = "abcdefg", key652 = "abcdefg", key653 = "abcdefg", key654 = "abcdefg", key655 = "abcdefg", key656 = "abcdefg", key657 = "abcdefg", key658 = "abcdefg", key659 = "abcdefg", key660 = "abcdefg", key661 = "abcdefg", key662 = "abcdefg", key663 = "abcdefg", key664 = "abcdefg", key665 = "abcdefg", key666 = "abcdefg", key667 = "abcdefg", key668 = "abcdefg", key669 = "abcdefg", key670 = "abcdefg", key671 = "abcdefg", key672 = "abcdefg", key673 = "abcdefg", key674 = "abcdefg", key675 = "abcdefg", key676 = "abcdefg", key677 = "abcdefg", key678 = "abcdefg", key679 = "abcdefg", key680 = "abcdefg", key681 = "abcdefg", key682 = "abcdefg", key683 = "abcdefg", key684 = "abcdefg", key685 = "abcdefg", key686 = "abcdefg", key687 = "abcdefg", key688 = "abcdefg", key689 = "abcdefg", key690 = "abcdefg", key691 = "abcdefg", key692 = "abcdefg", key693 = "abcdefg", key694 = "abcdefg", key695 = "abcdefg", key696 = "abcdefg", key697 = "abcdefg", key698 = "abcdefg", key699 = "abcdefg", key700 = "abcdefg", key701 = "abcdefg", key702 = "abcdefg", key703 = "abcdefg", key704 = "abcdefg", key705 = "abcdefg", key706 = "abcdefg", key707 = "abcdefg", key708 = "abcdefg", key709 = "abcdefg", key710 = "abcdefg", key711 = "abcdefg", key712 = "abcdefg", key713 = "abcdefg", key714 = "abcdefg", key715 = "abcdefg", key716 = "abcdefg", key717 = "abcdefg", key718 = "abcdefg", key719 = "abcdefg", key720 = "abcdefg", key721 = "abcdefg", key722 = "abcdefg", key723 = "abcdefg", key724 = "abcdefg", key725 = "abcdefg", key726 = "abcdefg", key727 = "abcdefg", key728 = "abcdefg", key729 = "abcdefg", key730 = "abcdefg", key731 = "abcdefg", key732 = "abcdefg", key733 = "abcdefg", key734 = "abcdefg", key735 = "abcdefg", key736 = "abcdefg", key737 = "abcdefg", key738 = "abcdefg", key739 = "abcdefg", key740 = "abcdefg", key741 = "abcdefg", key742 = "abcdefg", key743 = "abcdefg", key744 = "abcdefg", key745 = "abcdefg", key746 = "abcdefg", key747 = "abcdefg", key748 = "abcdefg", key749 = "abcdefg", key750 = "abcdefg", key751 = "abcdefg", key752 = "abcdefg", key753 = "abcdefg", key754 = "abcdefg", key755 = "abcdefg", key756 = "abcdefg", key757 = "abcdefg", key758 = "abcdefg", key759 = "abcdefg", key760 = "abcdefg", key761 = "abcdefg", key762 = "abcdefg", key763 = "abcdefg", key764 = "abcdefg", key765 = "abcdefg", key766 = "abcdefg", key767 = "abcdefg", key768 = "abcdefg", key769 = "abcdefg", key770 = "abcdefg", key771 = "abcdefg", key772 = "abcdefg", key773 = "abcdefg", key774 = "abcdefg", key775 = "abcdefg", key776 = "abcdefg", key777 = "abcdefg", key778 = "abcdefg", key779 = "abcdefg", key780 = "abcdefg", key781 = "abcdefg", key782 = "abcdefg", key783 = "abcdefg", key784 = "abcdefg", key785 = "abcdefg", key786 = "abcdefg", key787 = "abcdefg", key788 = "abcdefg", key789 = "abcdefg", key790 = "abcdefg", key791 = "abcdefg", key792 = "abcdefg", key793 = "abcdefg", key794 = "abcdefg", key795 = "abcdefg", key796 = "abcdefg", key797 = "abcdefg", key798 = "abcdefg", key799 = "abcdefg", key800 = "abcdefg", key801 = "abcdefg", key802 = "abcdefg", key803 = "abcdefg", key804 = "abcdefg", key805 = "abcdefg", key806 = "abcdefg", key807 = "abcdefg", key808 = "abcdefg", key809 = "abcdefg", key810 = "abcdefg", key811 = "abcdefg", key812 = "abcdefg", key813 = "abcdefg", key814 = "abcdefg", key815 = "abcdefg", key816 = "abcdefg", key817 = "abcdefg", key818 = "abcdefg", key819 = "abcdefg", key820 = "abcdefg", key821 = "abcdefg", key822 = "abcdefg", key823 = "abcdefg", key824 = "abcdefg", key825 = "abcdefg", key826 = "abcdefg", key827 = "abcdefg", key828 = "abcdefg", key829 = "abcdefg", key830 = "abcdefg", key831 = "abcdefg", key832 = "abcdefg", key833 = "abcdefg", key834 = "abcdefg", key835 = "abcdefg", key836 = "abcdefg", key837 = "abcdefg", key838 = "abcdefg", key839 = "abcdefg", key840 = "abcdefg", key841 = "abcdefg", key842 = "abcdefg", key843 = "abcdefg", key844 = "abcdefg", key845 = "abcdefg", key846 = "abcdefg", key847 = "abcdefg", key848 = "abcdefg", key849 = "abcdefg", key850 = "abcdefg", key851 = "abcdefg", key852 = "abcdefg", key853 = "abcdefg", key854 = "abcdefg", key855 = "abcdefg", key856 = "abcdefg", key857 = "abcdefg", key858 = "abcdefg", key859 = "abcdefg", key860 = "abcdefg", key861 = "abcdefg", key862 = "abcdefg", key863 = "abcdefg", key864 = "abcdefg", key865 = "abcdefg", key866 = "abcdefg", key867 = "abcdefg", key868 = "abcdefg", key869 = "abcdefg", key870 = "abcdefg", key871 = "abcdefg", key872 = "abcdefg", key873 = "abcdefg", key874 = "abcdefg", key875 = "abcdefg", key876 = "abcdefg", key877 = "abcdefg", key878 = "abcdefg", key879 = "abcdefg", key880 = "abcdefg", key881 = "abcdefg", key882 = "abcdefg", key883 = "abcdefg", key884 = "abcdefg", key885 = "abcdefg", key886 = "abcdefg", key887 = "abcdefg", key888 = "abcdefg", key889 = "abcdefg", key890 = "abcdefg", key891 = "abcdefg", key892 = "abcdefg", key893 = "abcdefg", key894 = "abcdefg", key895 = "abcdefg", key896 = "abcdefg", key897 = "abcdefg", key898 = "abcdefg", key899 = "abcdefg", key900 = "abcdefg", key901 = "abcdefg", key902 = "abcdefg", key903 = "abcdefg", key904 = "abcdefg", key905 = "abcdefg", key906 = "abcdefg", key907 = "abcdefg", key908 = "abcdefg", key909 = "abcdefg", key910 = "abcdefg", key911 = "abcdefg", key912 = "abcdefg", key913 = "abcdefg", key914 = "abcdefg", key915 = "abcdefg", key916 = "abcdefg", key917 = "abcdefg", key918 = "abcdefg", key919 = "abcdefg", key920 = "abcdefg", key921 = "abcdefg", key922 = "abcdefg", key923 = "abcdefg", key924 = "abcdefg", key925 = "abcdefg", key926 = "abcdefg", key927 = "abcdefg", key928 = "abcdefg", key929 = "abcdefg", key930 = "abcdefg", key931 = "abcdefg", key932 = "abcdefg", key933 = "abcdefg", key934 = "abcdefg", key935 = "abcdefg", key936 = "abcdefg", key937 = "abcdefg", key938 = "abcdefg", key939 = "abcdefg", key940 = "abcdefg", key941 = "abcdefg", key942 = "abcdefg", key943 = "abcdefg", key944 = "abcdefg", key945 = "abcdefg", key946 = "abcdefg", key947 = "abcdefg", key948 = "abcdefg", key949 = "abcdefg", key950 = "abcdefg", key951 = "abcdefg", key952 = "abcdefg", key953 = "abcdefg", key954 = "abcdefg", key955 = "abcdefg", key956 = "abcdefg", key957 = "abcdefg", key958 = "abcdefg", key959 = "abcdefg", key960 = "abcdefg", key961 = "abcdefg", key962 = "abcdefg", key963 = "abcdefg", key964 = "abcdefg", key965 = "abcdefg", key966 = "abcdefg", key967 = "abcdefg", key968 = "abcdefg", key969 = "abcdefg", key970 = "abcdefg", key971 = "abcdefg", key972 = "abcdefg", key973 = "abcdefg", key974 = "abcdefg", key975 = "abcdefg", key976 = "abcdefg", key977 = "abcdefg", key978 = "abcdefg", key979 = "abcdefg", key980 = "abcdefg", key981 = "abcdefg", key982 = "abcdefg", key983 = "abcdefg", key984 = "abcdefg", key985 = "abcdefg", key986 = "abcdefg", key987 = "abcdefg", key988 = "abcdefg", key989 = "abcdefg", key990 = "abcdefg", key991 = "abcdefg", key992 = "abcdefg", key993 = "abcdefg", key994 = "abcdefg", key995 = "abcdefg", key996 = "abcdefg", key997 = "abcdefg", key998 = "abcdefg", key999 = "abcdefg", key1000 = "abcdefg", end = true}
qa-table-inline-nested-1000.toml 0000664 0000000 0000000 00000017512 14721714455 0033133 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/qa key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/spec-readme-example.json 0000664 0000000 0000000 00000002363 14721714455 0031623 0 ustar 00root root 0000000 0000000 {"title":
{"type":"string","value":"TOML Example"},
"owner":
{"name":
{"type":"string","value":"Tom Preston-Werner"},
"dob":
{"type":"offset datetime","value":"1979-05-27T07:32:00-08:00"}},
"database":
{"server":
{"type":"string","value":"192.168.1.1"},
"ports":
{"type":"array","value":[
{"type":"integer","value":"8001"},
{"type":"integer","value":"8001"},
{"type":"integer","value":"8002"}]},
"connection_max":
{"type":"integer","value":"5000"},
"enabled":
{"type":"boolean","value":"true"}},
"servers":
{"alpha":
{"ip":
{"type":"string","value":"10.0.0.1"},
"dc":
{"type":"string","value":"eqdc10"}},
"beta":
{"ip":
{"type":"string","value":"10.0.0.2"},
"dc":
{"type":"string","value":"eqdc10"}}},
"clients":
{"data":
{"type":"array","value":[
{"type":"array","value":[
{"type":"string","value":"gamma"},
{"type":"string","value":"delta"}]},
{"type":"array","value":[
{"type":"integer","value":"1"},
{"type":"integer","value":"2"}]}]},
"hosts":
{"type":"array","value":[
{"type":"string","value":"alpha"},
{"type":"string","value":"omega"}]}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/spec-readme-example.toml 0000664 0000000 0000000 00000001041 14721714455 0031615 0 ustar 00root root 0000000 0000000 # This is a TOML document.
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # First class dates
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
# Indentation (tabs and/or spaces) is allowed but not required
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
[clients]
data = [ ["gamma", "delta"], [1, 2] ]
# Line breaks are OK when inside arrays
hosts = [
"alpha",
"omega"
]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/ 0000775 0000000 0000000 00000000000 14721714455 0026414 5 ustar 00root root 0000000 0000000 spec-string-basic-multiline-1.json 0000664 0000000 0000000 00000000110 14721714455 0034673 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str1":
{"type":"string","value":"Roses are red\nViolets are blue"}}
spec-string-basic-multiline-1.toml 0000664 0000000 0000000 00000000055 14721714455 0034705 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str1 = """
Roses are red
Violets are blue"""
spec-string-basic-multiline-2.json 0000664 0000000 0000000 00000000124 14721714455 0034701 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str":
{"type":"string","value":"The quick brown fox jumps over the lazy dog."}}
spec-string-basic-multiline-2.toml 0000664 0000000 0000000 00000000106 14721714455 0034703 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str = """
The quick brown \
fox jumps over \
the lazy dog."""
spec-string-basic-multiline-3.json 0000664 0000000 0000000 00000000124 14721714455 0034702 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str":
{"type":"string","value":"The quick brown fox jumps over the lazy dog."}}
spec-string-basic-multiline-3.toml 0000664 0000000 0000000 00000000131 14721714455 0034702 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""
spec-string-basic-multiline-4.json 0000664 0000000 0000000 00000000054 14721714455 0034705 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"a":
{"type":"string","value":"abcdef"}}
spec-string-basic-multiline-4.toml 0000664 0000000 0000000 00000000026 14721714455 0034706 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string a = """abc\
def"""
spec-string-basic-multiline-5.json 0000664 0000000 0000000 00000000114 14721714455 0034703 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"ml-escaped-nl":
{"type":"string","value":" foo bar \\\n baz \\quux"}}
spec-string-basic-multiline-5.toml 0000664 0000000 0000000 00000000071 14721714455 0034707 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string ml-escaped-nl = """
foo \
bar \\
baz \\\
quux"""
spec-string-basic-multiline-6.json 0000664 0000000 0000000 00000000133 14721714455 0034705 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str4":
{"type":"string","value":"Here are two quotation marks: \"\". Simple enough."}}
spec-string-basic-multiline-6.toml 0000664 0000000 0000000 00000000076 14721714455 0034715 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str4 = """Here are two quotation marks: "". Simple enough."""
spec-string-basic-multiline-7.json 0000664 0000000 0000000 00000000120 14721714455 0034702 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str5":
{"type":"string","value":"Here are three quotation marks: \"\"\"."}}
spec-string-basic-multiline-7.toml 0000664 0000000 0000000 00000000063 14721714455 0034712 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str5 = """Here are three quotation marks: ""\"."""
spec-string-basic-multiline-8.json 0000664 0000000 0000000 00000000152 14721714455 0034710 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str6":
{"type":"string","value":"Here are fifteen quotation marks: \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"."}}
spec-string-basic-multiline-8.toml 0000664 0000000 0000000 00000000105 14721714455 0034710 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str6 = """Here are fifteen quotation marks: ""\"""\"""\"""\"""\"."""
spec-string-basic-multiline-9.json 0000664 0000000 0000000 00000000137 14721714455 0034714 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str7":
{"type":"string","value":"\"This,\" she said, \"is just a pointless statement.\""}}
spec-string-basic-multiline-9.toml 0000664 0000000 0000000 00000000100 14721714455 0034704 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str7 = """"This," she said, "is just a pointless statement.""""
spec-string-basic-tab-multiline.json 0000664 0000000 0000000 00000000066 14721714455 0035313 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str":
{"type":"string","value":"This is a\ttab"}}
spec-string-basic-tab-multiline.toml 0000664 0000000 0000000 00000000032 14721714455 0035306 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str = """This is a tab"""
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-basic-tab.json 0000664 0000000 0000000 00000000066 14721714455 0033372 0 ustar 00root root 0000000 0000000 {"str":
{"type":"string","value":"This is a\ttab"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-basic-tab.toml 0000664 0000000 0000000 00000000026 14721714455 0033370 0 ustar 00root root 0000000 0000000 str = "This is a tab"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-basic.json 0000664 0000000 0000000 00000000152 14721714455 0032622 0 ustar 00root root 0000000 0000000 {"str":
{"type":"string","value":"I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-basic.toml 0000664 0000000 0000000 00000000113 14721714455 0032621 0 ustar 00root root 0000000 0000000 str = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-1.json 0000664 0000000 0000000 00000000050 14721714455 0033134 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\b"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-1.toml 0000664 0000000 0000000 00000000011 14721714455 0033133 0 ustar 00root root 0000000 0000000 a = "\b"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-2.json 0000664 0000000 0000000 00000000050 14721714455 0033135 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\t"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-2.toml 0000664 0000000 0000000 00000000011 14721714455 0033134 0 ustar 00root root 0000000 0000000 a = "\t"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-3.json 0000664 0000000 0000000 00000000050 14721714455 0033136 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\n"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-3.toml 0000664 0000000 0000000 00000000011 14721714455 0033135 0 ustar 00root root 0000000 0000000 a = "\n"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-4.json 0000664 0000000 0000000 00000000050 14721714455 0033137 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\f"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-4.toml 0000664 0000000 0000000 00000000011 14721714455 0033136 0 ustar 00root root 0000000 0000000 a = "\f"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-5.json 0000664 0000000 0000000 00000000050 14721714455 0033140 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\r"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-5.toml 0000664 0000000 0000000 00000000011 14721714455 0033137 0 ustar 00root root 0000000 0000000 a = "\r"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-6.json 0000664 0000000 0000000 00000000050 14721714455 0033141 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\""}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-6.toml 0000664 0000000 0000000 00000000011 14721714455 0033140 0 ustar 00root root 0000000 0000000 a = "\""
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-7.json 0000664 0000000 0000000 00000000050 14721714455 0033142 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\\"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-7.toml 0000664 0000000 0000000 00000000011 14721714455 0033141 0 ustar 00root root 0000000 0000000 a = "\\"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-8.json 0000664 0000000 0000000 00000000054 14721714455 0033147 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\u0000"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-8.toml 0000664 0000000 0000000 00000000015 14721714455 0033146 0 ustar 00root root 0000000 0000000 a = "\u0000"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-9.json 0000664 0000000 0000000 00000000054 14721714455 0033150 0 ustar 00root root 0000000 0000000 {"a":
{"type":"string","value":"\u0000"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-escape-9.toml 0000664 0000000 0000000 00000000021 14721714455 0033144 0 ustar 00root root 0000000 0000000 a = "\U00000000"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-1.json 0000664 0000000 0000000 00000000110 14721714455 0033325 0 ustar 00root root 0000000 0000000 {"winpath":
{"type":"string","value":"C:\\Users\\nodejs\\templates"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-1.toml 0000664 0000000 0000000 00000000047 14721714455 0033340 0 ustar 00root root 0000000 0000000 winpath = 'C:\Users\nodejs\templates'
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-2.json 0000664 0000000 0000000 00000000114 14721714455 0033332 0 ustar 00root root 0000000 0000000 {"winpath2":
{"type":"string","value":"\\\\ServerX\\admin$\\system32\\"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-2.toml 0000664 0000000 0000000 00000000050 14721714455 0033333 0 ustar 00root root 0000000 0000000 winpath2 = '\\ServerX\admin$\system32\'
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-3.json 0000664 0000000 0000000 00000000106 14721714455 0033334 0 ustar 00root root 0000000 0000000 {"quoted":
{"type":"string","value":"Tom \"Dubs\" Preston-Werner"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-3.toml 0000664 0000000 0000000 00000000047 14721714455 0033342 0 ustar 00root root 0000000 0000000 quoted = 'Tom "Dubs" Preston-Werner'
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-4.json 0000664 0000000 0000000 00000000067 14721714455 0033343 0 ustar 00root root 0000000 0000000 {"regex":
{"type":"string","value":"<\\i\\c*\\s*>"}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string/spec-string-literal-4.toml 0000664 0000000 0000000 00000000030 14721714455 0033333 0 ustar 00root root 0000000 0000000 regex = '<\i\c*\s*>'
spec-string-literal-multiline-1.json 0000664 0000000 0000000 00000000110 14721714455 0035246 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"regex2":
{"type":"string","value":"I [dw]on't need \\d{2} apples"}}
spec-string-literal-multiline-1.toml 0000664 0000000 0000000 00000000054 14721714455 0035257 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string regex2 = '''I [dw]on't need \d{2} apples'''
spec-string-literal-multiline-2.json 0000664 0000000 0000000 00000000204 14721714455 0035253 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"lines":
{"type":"string","value":"The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n"}}
spec-string-literal-multiline-2.toml 0000664 0000000 0000000 00000000147 14721714455 0035263 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string lines = '''
The first newline is
trimmed in raw strings.
All other whitespace
is preserved.
'''
spec-string-literal-multiline-3.json 0000664 0000000 0000000 00000000153 14721714455 0035257 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"quot15":
{"type":"string","value":"Here are fifteen quotation marks: \"\"\"\"\"\"\"\"\"\"\"\"\"\"\""}}
spec-string-literal-multiline-3.toml 0000664 0000000 0000000 00000000101 14721714455 0035252 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string quot15 = '''Here are fifteen quotation marks: """""""""""""""'''
spec-string-literal-multiline-4.json 0000664 0000000 0000000 00000000117 14721714455 0035260 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string {"str":
{"type":"string","value":"'That,' she said, 'is still pointless.'"}}
spec-string-literal-multiline-4.toml 0000664 0000000 0000000 00000000064 14721714455 0035263 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/string str = ''''That,' she said, 'is still pointless.''''
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/ 0000775 0000000 0000000 00000000000 14721714455 0026175 5 ustar 00root root 0000000 0000000 spec-extend-dotted-object-1.json 0000664 0000000 0000000 00000000201 14721714455 0034104 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table {"fruit":
{"apple":
{"smooth":
{"type":"boolean","value":"true"}},
"orange":
{"type":"integer","value":"2"}}}
spec-extend-dotted-object-1.toml 0000664 0000000 0000000 00000000213 14721714455 0034111 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table # This makes the key "fruit" into a table.
fruit.apple.smooth = true
# So then you can add to the table "fruit" like so:
fruit.orange = 2
spec-extend-dotted-object-2.json 0000664 0000000 0000000 00000000503 14721714455 0034112 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table {"apple":
{"type":
{"type":"string","value":"fruit"},
"skin":
{"type":"string","value":"thin"},
"color":
{"type":"string","value":"red"}},
"orange":
{"type":
{"type":"string","value":"fruit"},
"skin":
{"type":"string","value":"thick"},
"color":
{"type":"string","value":"orange"}}}
spec-extend-dotted-object-2.toml 0000664 0000000 0000000 00000000234 14721714455 0034115 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table # VALID BUT DISCOURAGED
apple.type = "fruit"
orange.type = "fruit"
apple.skin = "thin"
orange.skin = "thick"
apple.color = "red"
orange.color = "orange"
spec-extend-dotted-object-3.json 0000664 0000000 0000000 00000000503 14721714455 0034113 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table {"apple":
{"type":
{"type":"string","value":"fruit"},
"skin":
{"type":"string","value":"thin"},
"color":
{"type":"string","value":"red"}},
"orange":
{"type":
{"type":"string","value":"fruit"},
"skin":
{"type":"string","value":"thick"},
"color":
{"type":"string","value":"orange"}}}
spec-extend-dotted-object-3.toml 0000664 0000000 0000000 00000000221 14721714455 0034112 0 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table # RECOMMENDED
apple.type = "fruit"
apple.skin = "thin"
apple.color = "red"
orange.type = "fruit"
orange.skin = "thick"
orange.color = "orange"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-1.json 0000664 0000000 0000000 00000000357 14721714455 0031252 0 ustar 00root root 0000000 0000000 {"table-1":
{"key1":
{"type":"string","value":"some string"},
"key2":
{"type":"integer","value":"123"}},
"table-2":
{"key1":
{"type":"string","value":"another string"},
"key2":
{"type":"integer","value":"456"}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-1.toml 0000664 0000000 0000000 00000000130 14721714455 0031241 0 ustar 00root root 0000000 0000000 [table-1]
key1 = "some string"
key2 = 123
[table-2]
key1 = "another string"
key2 = 456
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-2.json 0000664 0000000 0000000 00000000140 14721714455 0031241 0 ustar 00root root 0000000 0000000 {"dog":
{"tater.man":
{"type":
{"name":
{"type":"string","value":"pug"}}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-2.toml 0000664 0000000 0000000 00000000044 14721714455 0031246 0 ustar 00root root 0000000 0000000 [dog."tater.man"]
type.name = "pug"
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-3.json 0000664 0000000 0000000 00000000044 14721714455 0031245 0 ustar 00root root 0000000 0000000 {"a":
{"b":
{"c":
{}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-3.toml 0000664 0000000 0000000 00000000010 14721714455 0031240 0 ustar 00root root 0000000 0000000 [a.b.c]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-4.json 0000664 0000000 0000000 00000000044 14721714455 0031246 0 ustar 00root root 0000000 0000000 {"d":
{"e":
{"f":
{}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-4.toml 0000664 0000000 0000000 00000000045 14721714455 0031251 0 ustar 00root root 0000000 0000000 [ d.e.f ] # same as [d.e.f]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-5.json 0000664 0000000 0000000 00000000044 14721714455 0031247 0 ustar 00root root 0000000 0000000 {"g":
{"h":
{"i":
{}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-5.toml 0000664 0000000 0000000 00000000045 14721714455 0031252 0 ustar 00root root 0000000 0000000 [ g . h . i ] # same as [g.h.i]
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-6.json 0000664 0000000 0000000 00000000045 14721714455 0031251 0 ustar 00root root 0000000 0000000 {"j":
{"ʞ":
{"l":
{}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-6.toml 0000664 0000000 0000000 00000000053 14721714455 0031252 0 ustar 00root root 0000000 0000000 [ j . "ʞ" . 'l' ] # same as [j."ʞ".'l']
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-7.json 0000664 0000000 0000000 00000000063 14721714455 0031252 0 ustar 00root root 0000000 0000000 {"x":
{"y":
{"z":
{"w":
{}}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-7.toml 0000664 0000000 0000000 00000000170 14721714455 0031253 0 ustar 00root root 0000000 0000000 # [x] you
# [x.y] don't
# [x.y.z] need these
[x.y.z.w] # for this to work
[x] # defining a super-table afterwards is ok
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-8.json 0000664 0000000 0000000 00000000344 14721714455 0031255 0 ustar 00root root 0000000 0000000 {"fruit":
{"apple":
{"color":
{"type":"string","value":"red"},
"taste":
{"sweet":
{"type":"boolean","value":"true"}},
"texture":
{"smooth":
{"type":"boolean","value":"true"}}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-8.toml 0000664 0000000 0000000 00000000164 14721714455 0031257 0 ustar 00root root 0000000 0000000 [fruit]
apple.color = "red"
apple.taste.sweet = true
[fruit.apple.texture] # you can add sub-tables
smooth = true
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-inline-1.json 0000664 0000000 0000000 00000000166 14721714455 0032524 0 ustar 00root root 0000000 0000000 {"name":
{"first":
{"type":"string","value":"Tom"},
"last":
{"type":"string","value":"Preston-Werner"}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-inline-1.toml 0000664 0000000 0000000 00000000062 14721714455 0032521 0 ustar 00root root 0000000 0000000 name = { first = "Tom", last = "Preston-Werner" }
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-inline-2.json 0000664 0000000 0000000 00000000143 14721714455 0032520 0 ustar 00root root 0000000 0000000 {"point":
{"x":
{"type":"integer","value":"1"},
"y":
{"type":"integer","value":"2"}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-inline-2.toml 0000664 0000000 0000000 00000000031 14721714455 0032516 0 ustar 00root root 0000000 0000000 point = { x = 1, y = 2 }
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-inline-3.json 0000664 0000000 0000000 00000000114 14721714455 0032517 0 ustar 00root root 0000000 0000000 {"animal":
{"type":
{"name":
{"type":"string","value":"pug"}}}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table-inline-3.toml 0000664 0000000 0000000 00000000040 14721714455 0032517 0 ustar 00root root 0000000 0000000 animal = { type.name = "pug" }
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table.json 0000664 0000000 0000000 00000000020 14721714455 0031077 0 ustar 00root root 0000000 0000000 {"table":
{}}
tomli-2.2.1/tests/data/valid/_external/toml-lang-compliance/valid/table/spec-table.toml 0000664 0000000 0000000 00000000010 14721714455 0031100 0 ustar 00root root 0000000 0000000 [table]
tomli-2.2.1/tests/data/valid/apostrophes-in-literal-string.json 0000664 0000000 0000000 00000000144 14721714455 0024627 0 ustar 00root root 0000000 0000000 {"this-str-has-apostrophes": {"type": "string", "value": "' there's one already\n'' two more\n''"}}
tomli-2.2.1/tests/data/valid/apostrophes-in-literal-string.toml 0000664 0000000 0000000 00000000104 14721714455 0024625 0 ustar 00root root 0000000 0000000 this-str-has-apostrophes='''' there's one already
'' two more
'''''
tomli-2.2.1/tests/data/valid/array/ 0000775 0000000 0000000 00000000000 14721714455 0017142 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/array/array-subtables.json 0000664 0000000 0000000 00000000302 14721714455 0023130 0 ustar 00root root 0000000 0000000 {"arr":
{"type":"array","value":
[
{"subtab":
{"val": {"type":"integer","value":"1"}
}
},
{"subtab": {"val": {"type":"integer","value":"2"}}}
]
}
}
tomli-2.2.1/tests/data/valid/array/array-subtables.toml 0000664 0000000 0000000 00000000067 14721714455 0023142 0 ustar 00root root 0000000 0000000 [[arr]]
[arr.subtab]
val=1
[[arr]]
[arr.subtab]
val=2
tomli-2.2.1/tests/data/valid/array/open-parent-table.json 0000664 0000000 0000000 00000000167 14721714455 0023356 0 ustar 00root root 0000000 0000000 {
"parent-table": {
"arr": {"type":"array","value":[{},{}]},
"not-arr": {"type":"integer","value":"1"}
}
}
tomli-2.2.1/tests/data/valid/array/open-parent-table.toml 0000664 0000000 0000000 00000000105 14721714455 0023350 0 ustar 00root root 0000000 0000000 [[parent-table.arr]]
[[parent-table.arr]]
[parent-table]
not-arr = 1
tomli-2.2.1/tests/data/valid/boolean.json 0000664 0000000 0000000 00000000122 14721714455 0020331 0 ustar 00root root 0000000 0000000 {
"a": {"type":"bool","value":"true"},
"b": {"type":"bool","value":"false"}
}
tomli-2.2.1/tests/data/valid/boolean.toml 0000664 0000000 0000000 00000000022 14721714455 0020332 0 ustar 00root root 0000000 0000000 'a'=true
"b"=false tomli-2.2.1/tests/data/valid/dates-and-times/ 0000775 0000000 0000000 00000000000 14721714455 0021003 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/dates-and-times/datetimes.json 0000664 0000000 0000000 00000000213 14721714455 0023651 0 ustar 00root root 0000000 0000000 {
"local-dt": {"type":"datetime-local","value":"1988-10-27t01:01:01"},
"zulu-dt": {"type":"datetime","value":"1988-10-27t01:01:01z"}
}
tomli-2.2.1/tests/data/valid/dates-and-times/datetimes.toml 0000664 0000000 0000000 00000000072 14721714455 0023656 0 ustar 00root root 0000000 0000000 local-dt=1988-10-27t01:01:01
zulu-dt=1988-10-27t01:01:01z
tomli-2.2.1/tests/data/valid/dates-and-times/localtime.json 0000664 0000000 0000000 00000000071 14721714455 0023645 0 ustar 00root root 0000000 0000000 {"t":
{"type":"time-local","value":"00:00:00.999999"}}
tomli-2.2.1/tests/data/valid/dates-and-times/localtime.toml 0000664 0000000 0000000 00000000031 14721714455 0023643 0 ustar 00root root 0000000 0000000 t=00:00:00.99999999999999 tomli-2.2.1/tests/data/valid/empty-inline-table.json 0000664 0000000 0000000 00000000016 14721714455 0022413 0 ustar 00root root 0000000 0000000 {"empty": {}} tomli-2.2.1/tests/data/valid/empty-inline-table.toml 0000664 0000000 0000000 00000000043 14721714455 0022415 0 ustar 00root root 0000000 0000000 empty ={ }#nothing here
tomli-2.2.1/tests/data/valid/five-quotes.json 0000664 0000000 0000000 00000000233 14721714455 0021164 0 ustar 00root root 0000000 0000000 {
"five-quotes": {"type":"string","value":"Closing with five quotes\n\"\""},
"four-quotes": {"type":"string","value":"Closing with four quotes\n\""}
}
tomli-2.2.1/tests/data/valid/five-quotes.toml 0000664 0000000 0000000 00000000141 14721714455 0021164 0 ustar 00root root 0000000 0000000 five-quotes = """
Closing with five quotes
"""""
four-quotes = """
Closing with four quotes
""""
tomli-2.2.1/tests/data/valid/hex-char.json 0000664 0000000 0000000 00000000165 14721714455 0020420 0 ustar 00root root 0000000 0000000 {
"a": {"type":"string","value":"a"},
"b": {"type":"string","value":"b"},
"c": {"type":"string","value":"c"}
}
tomli-2.2.1/tests/data/valid/hex-char.toml 0000664 0000000 0000000 00000000044 14721714455 0020416 0 ustar 00root root 0000000 0000000 a="\u0061"
b="\u0062"
c="\U00000063" tomli-2.2.1/tests/data/valid/multiline-basic-str/ 0000775 0000000 0000000 00000000000 14721714455 0021713 5 ustar 00root root 0000000 0000000 tomli-2.2.1/tests/data/valid/multiline-basic-str/ends-in-whitespace-escape.json 0000664 0000000 0000000 00000000066 14721714455 0027535 0 ustar 00root root 0000000 0000000 {"beee": {"type": "string", "value": "heeee\ngeeee"}}
tomli-2.2.1/tests/data/valid/multiline-basic-str/ends-in-whitespace-escape.toml 0000664 0000000 0000000 00000000046 14721714455 0027535 0 ustar 00root root 0000000 0000000 beee = """
heeee
geeee\
"""
tomli-2.2.1/tests/data/valid/no-newlines.json 0000664 0000000 0000000 00000000003 14721714455 0021146 0 ustar 00root root 0000000 0000000 {}
tomli-2.2.1/tests/data/valid/no-newlines.toml 0000664 0000000 0000000 00000000030 14721714455 0021150 0 ustar 00root root 0000000 0000000 #no newlines at all here tomli-2.2.1/tests/data/valid/trailing-comma.json 0000664 0000000 0000000 00000000132 14721714455 0021616 0 ustar 00root root 0000000 0000000 {"arr":
{"type":"array","value":
[
{"type":"integer","value":"1"}
]
}
}
tomli-2.2.1/tests/data/valid/trailing-comma.toml 0000664 0000000 0000000 00000000010 14721714455 0021613 0 ustar 00root root 0000000 0000000 arr=[1,] tomli-2.2.1/tests/test_data.py 0000664 0000000 0000000 00000004270 14721714455 0016341 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
import json
from pathlib import Path
import unittest
from . import burntsushi, tomllib
class MissingFile:
def __init__(self, path: Path):
self.path = path
DATA_DIR = Path(__file__).parent / "data"
VALID_FILES = tuple((DATA_DIR / "valid").glob("**/*.toml"))
assert VALID_FILES, "Valid TOML test files not found"
_expected_files = []
for p in VALID_FILES:
json_path = p.with_suffix(".json")
try:
text = json.loads(json_path.read_bytes().decode())
except FileNotFoundError:
text = MissingFile(json_path)
_expected_files.append(text)
VALID_FILES_EXPECTED = tuple(_expected_files)
INVALID_FILES = tuple((DATA_DIR / "invalid").glob("**/*.toml"))
assert INVALID_FILES, "Invalid TOML test files not found"
class TestData(unittest.TestCase):
def test_invalid(self):
for invalid in INVALID_FILES:
with self.subTest(msg=invalid.stem):
toml_bytes = invalid.read_bytes()
try:
toml_str = toml_bytes.decode()
except UnicodeDecodeError:
# Some BurntSushi tests are not valid UTF-8. Skip those.
continue
with self.assertRaises(tomllib.TOMLDecodeError):
tomllib.loads(toml_str)
def test_valid(self):
for valid, expected in zip(VALID_FILES, VALID_FILES_EXPECTED):
with self.subTest(msg=valid.stem):
if isinstance(expected, MissingFile):
# For a poor man's xfail, assert that this is one of the
# test cases where expected data is known to be missing.
assert valid.stem in {
"qa-array-inline-nested-1000",
"qa-table-inline-nested-1000",
}
continue
toml_str = valid.read_bytes().decode()
actual = tomllib.loads(toml_str)
actual = burntsushi.convert(actual)
expected = burntsushi.normalize(expected)
self.assertEqual(actual, expected)
tomli-2.2.1/tests/test_error.py 0000664 0000000 0000000 00000007302 14721714455 0016560 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
import unittest
from . import tomllib
class TestError(unittest.TestCase):
def test_line_and_col(self):
with self.assertRaises(tomllib.TOMLDecodeError) as exc_info:
tomllib.loads("val=.")
self.assertEqual(str(exc_info.exception), "Invalid value (at line 1, column 5)")
with self.assertRaises(tomllib.TOMLDecodeError) as exc_info:
tomllib.loads(".")
self.assertEqual(
str(exc_info.exception), "Invalid statement (at line 1, column 1)"
)
with self.assertRaises(tomllib.TOMLDecodeError) as exc_info:
tomllib.loads("\n\nval=.")
self.assertEqual(str(exc_info.exception), "Invalid value (at line 3, column 5)")
with self.assertRaises(tomllib.TOMLDecodeError) as exc_info:
tomllib.loads("\n\n.")
self.assertEqual(
str(exc_info.exception), "Invalid statement (at line 3, column 1)"
)
def test_missing_value(self):
with self.assertRaises(tomllib.TOMLDecodeError) as exc_info:
tomllib.loads("\n\nfwfw=")
self.assertEqual(str(exc_info.exception), "Invalid value (at end of document)")
def test_invalid_char_quotes(self):
with self.assertRaises(tomllib.TOMLDecodeError) as exc_info:
tomllib.loads("v = '\n'")
self.assertTrue(" '\\n' " in str(exc_info.exception))
def test_type_error(self):
with self.assertRaises(TypeError) as exc_info:
tomllib.loads(b"v = 1") # type: ignore[arg-type]
# Mypyc extension leads to different message than pure Python
self.assertIn(
str(exc_info.exception),
("Expected str object, not 'bytes'", "str object expected; got bytes"),
)
with self.assertRaises(TypeError) as exc_info:
tomllib.loads(False) # type: ignore[arg-type]
# Mypyc extension leads to different message than pure Python
self.assertIn(
str(exc_info.exception),
("Expected str object, not 'bool'", "str object expected; got bool"),
)
def test_invalid_parse_float(self):
def dict_returner(s: str) -> dict:
return {}
def list_returner(s: str) -> list:
return []
for invalid_parse_float in (dict_returner, list_returner):
with self.assertRaises(ValueError) as exc_info:
tomllib.loads("f=0.1", parse_float=invalid_parse_float)
self.assertEqual(
str(exc_info.exception), "parse_float must not return dicts or lists"
)
def test_deprecated_tomldecodeerror(self):
for args in [
(),
("err msg",),
(None,),
(None, "doc"),
("err msg", None),
(None, "doc", None),
("err msg", "doc", None),
("one", "two", "three", "four"),
("one", "two", 3, "four", "five"),
]:
with self.assertWarns(DeprecationWarning):
e = tomllib.TOMLDecodeError(*args) # type: ignore[arg-type]
self.assertEqual(e.args, args)
def test_tomldecodeerror(self):
msg = "error parsing"
doc = "v=1\n[table]\nv='val'"
pos = 13
formatted_msg = "error parsing (at line 3, column 2)"
e = tomllib.TOMLDecodeError(msg, doc, pos)
self.assertEqual(e.args, (formatted_msg,))
self.assertEqual(str(e), formatted_msg)
self.assertEqual(e.msg, msg)
self.assertEqual(e.doc, doc)
self.assertEqual(e.pos, pos)
self.assertEqual(e.lineno, 3)
self.assertEqual(e.colno, 2)
tomli-2.2.1/tests/test_misc.py 0000664 0000000 0000000 00000010527 14721714455 0016365 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2021 Taneli Hukkinen
# Licensed to PSF under a Contributor Agreement.
import copy
import datetime
from decimal import Decimal as D
from pathlib import Path
import sys
import tempfile
import unittest
from . import tomllib
class TestMiscellaneous(unittest.TestCase):
def test_load(self):
content = "one=1 \n two='two' \n arr=[]"
expected = {"one": 1, "two": "two", "arr": []}
with tempfile.TemporaryDirectory() as tmp_dir_path:
file_path = Path(tmp_dir_path) / "test.toml"
file_path.write_text(content)
with open(file_path, "rb") as bin_f:
actual = tomllib.load(bin_f)
self.assertEqual(actual, expected)
def test_incorrect_load(self):
content = "one=1"
with tempfile.TemporaryDirectory() as tmp_dir_path:
file_path = Path(tmp_dir_path) / "test.toml"
file_path.write_text(content)
with open(file_path, "r") as txt_f:
with self.assertRaises(TypeError) as exc_info:
tomllib.load(txt_f) # type: ignore[arg-type]
# Mypyc extension leads to different message than pure Python
self.assertIn(
str(exc_info.exception),
(
"File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`", # noqa: E501
"bytes object expected; got str",
),
)
def test_parse_float(self):
doc = """
val=0.1
biggest1=inf
biggest2=+inf
smallest=-inf
notnum1=nan
notnum2=-nan
notnum3=+nan
"""
obj = tomllib.loads(doc, parse_float=D)
expected = {
"val": D("0.1"),
"biggest1": D("inf"),
"biggest2": D("inf"),
"smallest": D("-inf"),
"notnum1": D("nan"),
"notnum2": D("-nan"),
"notnum3": D("nan"),
}
for k, expected_val in expected.items():
actual_val = obj[k]
self.assertIsInstance(actual_val, D)
if actual_val.is_nan():
self.assertTrue(expected_val.is_nan())
else:
self.assertEqual(actual_val, expected_val)
def test_deepcopy(self):
doc = """
[bliibaa.diibaa]
offsettime=[1979-05-27T00:32:00.999999-07:00]
"""
obj = tomllib.loads(doc)
obj_copy = copy.deepcopy(obj)
self.assertEqual(obj_copy, obj)
expected_obj = {
"bliibaa": {
"diibaa": {
"offsettime": [
datetime.datetime(
1979,
5,
27,
0,
32,
0,
999999,
tzinfo=datetime.timezone(datetime.timedelta(hours=-7)),
)
]
}
}
}
self.assertEqual(obj_copy, expected_obj)
def test_inline_array_recursion_limit(self):
nest_count = 470
recursive_array_toml = "arr = " + nest_count * "[" + nest_count * "]"
tomllib.loads(recursive_array_toml)
nest_count = sys.getrecursionlimit() + 2
recursive_array_toml = "arr = " + nest_count * "[" + nest_count * "]"
with self.assertRaisesRegex(
RecursionError,
r"maximum recursion depth exceeded"
r"|"
r"TOML inline arrays/tables are nested more than the allowed [0-9]+ levels",
):
tomllib.loads(recursive_array_toml)
def test_inline_table_recursion_limit(self):
nest_count = 310
recursive_table_toml = nest_count * "key = {" + nest_count * "}"
tomllib.loads(recursive_table_toml)
nest_count = sys.getrecursionlimit() + 2
recursive_table_toml = nest_count * "key = {" + nest_count * "}"
with self.assertRaisesRegex(
RecursionError,
r"maximum recursion depth exceeded"
r"|"
r"TOML inline arrays/tables are nested more than the allowed [0-9]+ levels",
):
tomllib.loads(recursive_table_toml)
tomli-2.2.1/tomllib.md 0000664 0000000 0000000 00000003360 14721714455 0014640 0 ustar 00root root 0000000 0000000 # `tomllib` – Tomli in the standard library
Tomli was added to the Python standard library in Python 3.11.
Relevant links:
- Python Issue Tracker: https://bugs.python.org/issue40059
- Tomli issue tracker: https://github.com/hukkin/tomli/issues/141
- Discussion on PyPA "blessing" a TOML parser and/or including one in the standard library: https://discuss.python.org/t/adopting-recommending-a-toml-parser/4068
- Python Enhancement Proposal: https://peps.python.org/pep-0680
- CPython pull request: https://github.com/python/cpython/pull/31498
## Converting Tomli to tomllib
### Sync status
`tomllib` in CPython commit https://github.com/python/cpython/commit/deaf509e8fc6e0363bd6f26d52ad42f976ec42f2
matches Tomli commit https://github.com/hukkin/tomli/commit/7e563eed5286b5d46b8290a9f56a86d955b23a9a
### Steps to convert
- Move everything in `tomli:src/tomli` to `cpython:Lib/tomllib`. Exclude `py.typed`.
- Remove `__version__ = ...` line from `cpython:Lib/tomllib/__init__.py`
- Move everything in `tomli:tests` to `cpython:Lib/test/test_tomllib`. Exclude the following test data dirs recursively:
- `tomli:tests/data/invalid/_external/`
- `tomli:tests/data/valid/_external/`
- Create `cpython:Lib/test/test_tomllib/__main__.py`:
```python
import unittest
from . import load_tests
unittest.main()
```
- Add the following to `cpython:Lib/test/test_tomllib/__init__.py`:
```python
import os
from test.support import load_package_tests
def load_tests(*args):
return load_package_tests(os.path.dirname(__file__), *args)
```
Also change `import tomli as tomllib` to `import tomllib`.
- In `cpython:Lib/tomllib/_parser.py` replace `__fp` with `fp` and `__s` with `s`. Add the `/` to `load` and `loads` function signatures.