Showing preview only (5,460K chars total). Download the full file or copy to clipboard to get everything.
Repository: petercorke/bdsim
Branch: master
Commit: 9603af34d51d
Files: 191
Total size: 5.2 MB
Directory structure:
gitextract_lbrlybs_/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── 0bdsim-bug-report.md
│ │ └── 1bdedit-bug-report.md
│ └── workflows/
│ ├── master.yml
│ └── publish.yml
├── .gitignore
├── CONTRIBUTING.md
├── Icons.qrc
├── LICENSE
├── Makefile
├── README.md
├── bdsim/
│ ├── __init__.py
│ ├── bdedit/
│ │ ├── Icons.py
│ │ ├── Icons.qrc
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── TechReport.md
│ │ ├── __init__.py
│ │ ├── bdedit.py
│ │ ├── block.py
│ │ ├── block_connector_block.py
│ │ ├── block_graphics_block.py
│ │ ├── block_graphics_socket.py
│ │ ├── block_graphics_wire.py
│ │ ├── block_importer.py
│ │ ├── block_main_block.py
│ │ ├── block_param_window.py
│ │ ├── block_socket.py
│ │ ├── block_wire.py
│ │ ├── docs/
│ │ │ ├── .buildinfo
│ │ │ ├── _sources/
│ │ │ │ ├── bdedit.rst.txt
│ │ │ │ ├── index.rst.txt
│ │ │ │ └── modules.rst.txt
│ │ │ ├── _static/
│ │ │ │ ├── alabaster.css
│ │ │ │ ├── basic.css
│ │ │ │ ├── css/
│ │ │ │ │ ├── badge_only.css
│ │ │ │ │ └── theme.css
│ │ │ │ ├── custom.css
│ │ │ │ ├── doctools.js
│ │ │ │ ├── documentation_options.js
│ │ │ │ ├── jquery-3.5.1.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── js/
│ │ │ │ │ ├── badge_only.js
│ │ │ │ │ └── theme.js
│ │ │ │ ├── language_data.js
│ │ │ │ ├── pygments.css
│ │ │ │ ├── searchtools.js
│ │ │ │ ├── underscore-1.13.1.js
│ │ │ │ └── underscore.js
│ │ │ ├── bdedit.html
│ │ │ ├── genindex.html
│ │ │ ├── index.html
│ │ │ ├── modules.html
│ │ │ ├── objects.inv
│ │ │ ├── py-modindex.html
│ │ │ ├── search.html
│ │ │ └── searchindex.js
│ │ ├── docstring.md
│ │ ├── floating_label.py
│ │ ├── floating_label_graphics.py
│ │ ├── grouping_box.py
│ │ ├── grouping_box_graphics.py
│ │ ├── interface.py
│ │ ├── interface_graphics_scene.py
│ │ ├── interface_graphics_view.py
│ │ ├── interface_manager.py
│ │ ├── interface_scene.py
│ │ ├── interface_scene_history.py
│ │ └── interface_serialize.py
│ ├── bdrun.py
│ ├── bin/
│ │ └── stubgen.py
│ ├── blockdiagram.py
│ ├── blockdiagram.pyi
│ ├── blocks/
│ │ ├── IO/
│ │ │ ├── Firmata.py
│ │ │ └── README.md
│ │ ├── Icons/
│ │ │ ├── README.md
│ │ │ └── icons.sh
│ │ ├── README.md
│ │ ├── __init__.py
│ │ ├── connections.py
│ │ ├── discrete.py
│ │ ├── displays.py
│ │ ├── functions.py
│ │ ├── linalg.py
│ │ ├── sinks.py
│ │ ├── sources.py
│ │ ├── spatial.py
│ │ ├── transfers.py
│ │ └── vision.py
│ ├── components.py
│ ├── graphics.py
│ ├── run_realtime.py
│ ├── run_sim.py
│ └── tk_editor/
│ ├── bdeditor.py
│ ├── edit.py
│ ├── editor.py
│ └── editor2.py
├── docs/
│ ├── Makefile
│ ├── make.bat
│ └── source/
│ ├── bdsim.blocks.rst
│ ├── bdsim.rst
│ ├── conf.py
│ ├── exts/
│ │ └── blockname.py
│ ├── index.rst
│ ├── internals.rst
│ └── modules.rst
├── docs-aside/
│ ├── .buildinfo
│ ├── .nojekyll
│ ├── _modules/
│ │ ├── bdsim/
│ │ │ ├── bdsim.html
│ │ │ ├── blockdiagram.html
│ │ │ ├── blocks/
│ │ │ │ ├── connections.html
│ │ │ │ ├── discrete.html
│ │ │ │ ├── functions.html
│ │ │ │ ├── linalg.html
│ │ │ │ ├── robots.html
│ │ │ │ ├── sinks.html
│ │ │ │ ├── sources.html
│ │ │ │ └── transfers.html
│ │ │ ├── components.html
│ │ │ └── graphics.html
│ │ ├── index.html
│ │ └── roboticstoolbox/
│ │ └── blocks/
│ │ ├── arm.html
│ │ ├── mobile.html
│ │ └── uav.html
│ ├── _sources/
│ │ ├── bdsim.blocks.rst.txt
│ │ ├── bdsim.rst.txt
│ │ ├── index.rst.txt
│ │ ├── internals.rst.txt
│ │ └── modules.rst.txt
│ ├── _static/
│ │ ├── alabaster.css
│ │ ├── basic.css
│ │ ├── css/
│ │ │ ├── badge_only.css
│ │ │ └── theme.css
│ │ ├── custom.css
│ │ ├── doctools.js
│ │ ├── documentation_options.js
│ │ ├── fonts/
│ │ │ └── FontAwesome.otf
│ │ ├── graphviz.css
│ │ ├── jquery-3.4.1.js
│ │ ├── jquery-3.5.1.js
│ │ ├── jquery.js
│ │ ├── js/
│ │ │ ├── badge_only.js
│ │ │ └── theme.js
│ │ ├── language_data.js
│ │ ├── pygments.css
│ │ ├── searchtools.js
│ │ ├── underscore-1.3.1.js
│ │ └── underscore.js
│ ├── bdsim.blocks.html
│ ├── bdsim.html
│ ├── genindex.html
│ ├── index.html
│ ├── internals.html
│ ├── modules.html
│ ├── objects.inv
│ ├── py-modindex.html
│ ├── search.html
│ └── searchindex.js
├── examples/
│ ├── README.md
│ ├── RVC2/
│ │ ├── README.md
│ │ ├── rvc4_11.py
│ │ ├── rvc4_2.py
│ │ ├── rvc4_4.py
│ │ ├── rvc4_6.py
│ │ └── rvc4_8.py
│ ├── deriv.py
│ ├── eg1.bd
│ ├── eg1.py
│ ├── eg1_zoh.py
│ ├── pid.py
│ ├── rt_step.py
│ ├── sine+sampler.py
│ ├── sine+sampler2.py
│ ├── subsys.py
│ ├── vanderpol.py
│ ├── viewsim.py
│ └── waveform.py
├── figs/
│ ├── data_structures.ezdraw
│ └── plugs_and_wires.ezdraw
├── pyproject.toml
└── tests/
├── __init__.py
├── test_bdsim.py
├── test_blockdiagram.py
├── test_components.py
├── test_connections.py
├── test_discrete.py
├── test_functions.py
├── test_linalg.py
├── test_sinks.py
├── test_sources.py
├── test_spatial.py
└── test_transfers.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE/0bdsim-bug-report.md
================================================
---
name: bdsim bug report
about: Create a report to help us improve bdsim, the Python based block diagram simulator
title: "[bdsim BUG]"
labels: ''
assignees: ''
---
For bugs with the graphical tool `bdedit` please use the `bdedit` bug report template.
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Please provide a complete minimal stand-alone Python example.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, for instance a problem with a SCOPE block, please add screenshots to help explain your problem.
**Operating environment (please complete the following information):**
- OS: [e.g. MacOS]
- Version [e.g. Ventura]
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/1bdedit-bug-report.md
================================================
---
name: bdedit bug report
about: Create a report to help us improve bdedit, the graphical editor for block diagrams.
title: "[bdedit BUG]"
labels: ''
assignees: petercorke
---
**`bdedit` is an experimental editor for block diagrams that can be used in conjunction with `bdsim`. It is not a drop-in replacement for Simulink, if you want something reliable and supported buy it from The MathWorks.**
**Before you post a bug please check that PyQt5 is properly installed on your computer, see the notes on the [wiki](https://github.com/petercorke/bdsim/wiki/Getting-going-with-PyQt5). If you cannot run the PyQt5 test example then you need to resolve that yourself, please don't post it here.**
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Operating environment (please complete the following information):**
- OS: [e.g. MacOS]
- Version [e.g. Ventura]
**Your version of PyQT
- please include the output of running `pip list | grep -I qt`
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/workflows/master.yml
================================================
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: build
on:
push:
branches: [ master, future ]
# pull_request:
# branches: [ master ]
jobs:
# Run tests on different versions of python
unittest:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-13]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
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 dependencies
run: |
python -m pip install --upgrade pip
pip install .[dev]
- name: Test with pytest
env:
MPLBACKEND: TkAgg
run: |
pytest --capture=no --ignore=W605 --timeout=50 --timeout_method=thread
codecov:
# If all tests pass:
# Run coverage and upload to codecov
needs: unittest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
- name: Run coverage
run: |
pip install .[dev]
coverage run --omit='tests/*.py' -m pytest
coverage report
coverage xml
- name: upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
sphinx:
# If the above worked:
# Build docs and upload to GH Pages
needs: unittest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install .[dev,docs]
pip install git+https://github.com/petercorke/sphinx-autorun.git
pip install sympy
sudo apt-get install graphviz
- name: Build docs
run: |
cd docs
make html
# Tell GitHub not to use jekyll to compile the docs
touch build/html/.nojekyll
cd ../
- name: Commit documentation changes
run: |
git clone https://github.com/petercorke/bdsim.git --branch gh-pages --single-branch gh-pages
cp -r docs/build/html/* gh-pages/
cd gh-pages
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add .
git commit -m "Update documentation" -a || true
# The above command will fail if no changes were present, so we ignore
# that.
- name: Push changes
uses: ad-m/github-push-action@master
with:
branch: gh-pages
directory: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .github/workflows/publish.yml
================================================
# This workflows will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
# name: Upload Python Package
on:
release:
types: [created]
workflow_dispatch:
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 2
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD_BDSIM }}
run: |
python setup.py sdist bdist_wheel
ls ./dist/*.whl
twine upload dist/*.gz
twine upload dist/*.whl
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
untitled*.py
# docs
*.pdf
*.dot
# MATLAB
*.m
# 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
*.json
# 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/
.idea/
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
This is a small-scale private project with a team size of about 0.01. I'd be delighted if you'd like to use and apply the tool, or even to contribute.
## Communicating
GitHub Issues is a convenient means to discuss bugs or possible contributions.
## Bug notifications
If you're using bdsim and encounter errors with the latest version from GitHub then please report it through GitHib Issues. Be sure to include:
* a description of what the issue is, and the stack trace you get
* the version of Python and numpy that you are using
* a runnable code example that demonstrates the issue
## Specific contributions needed
* The numerical integrator from SciPy has some limitations. It cannot handle:
* hybrid continuous-discrete systems,
* events associated with strong non-linearities or discontinuous inputs,
* allow the state vector to be updated (ie. as would be required to renormalize a unit-quaternion state).
* Extend to support bond graphs, or a hybrid of bond graphs and block diagrams.
* There are many more blocks that could be created but of immediate interest are:
* real-time blocks that interface to ADCs, DACs and PWM channels for use on a RaspberryPi
* vision blocks that interface to cameras, displays and OpenCV operators
## Other contributions
These are welcome but it'd be great to discuss through GitHub Issues before you start. You will be acknowledged as the author, but by contributing you are agreeing to your work being shared under the MIT Licence. Contributions should have unit tests and good quality documentation.
## Feature requests
These are unlikely to be implemented by me, it's a time thing...
## Any contributions you make will be under the MIT Software License
In short, when you submit code changes, your submissions are understood to be under the same [MIT License](http://choosealicense.com/licenses/mit/) that covers the project.
## Code of conduct
So far there isn't one, but if there were it would embed principles from the [Contributor Covenant Code Of Conduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct).
================================================
FILE: Icons.qrc
================================================
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2020 Peter Corke
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.
================================================
FILE: Makefile
================================================
.FORCE:
BLUE=\033[0;34m
BLACK=\033[0;30m
help:
@echo "$(BLUE) make test - run all unit tests"
@echo " make coverage - run unit tests and coverage report"
@echo " make docs - build Sphinx documentation"
@echo " make docupdate - upload Sphinx documentation to GitHub pages"
@echo " make dist - build dist files"
@echo " make upload - upload to PyPI"
@echo " make clean - remove dist and docs build files"
@echo " make help - this message$(BLACK)"
test:
pytest
coverage:
coverage run --source='bdsim' -m pytest
coverage report
coverage html
open htmlcov/index.html
docs: .FORCE
(cd docs; make html)
view:
open docs/build/html/index.html
dist: .FORCE
#$(MAKE) test
python -m build
upload: .FORCE
twine upload dist/*
install:
pip install -e .
clean: .FORCE
# (cd docsrc; make clean)
-rm -r *.egg-info
-rm -r dist build
================================================
FILE: README.md
================================================
[](https://github.com/petercorke/robotics-toolbox-python)
[](https://qcr.github.io)
[](https://badge.fury.io/py/bdsim)

[](https://opensource.org/licenses/MIT)
[](https://github.com/petercorke/bdsim/actions?query=workflow%3Abuild)
[](https://codecov.io/gh/petercorke/bdsim)
[](https://pypistats.org/packages/bdsim)
[](https://GitHub.com/petercorke/bdsim/stargazers/)
<table style="border:0px">
<tr style="border:0px">
<td style="border:0px">
<img src="https://github.com/petercorke/bdsim/raw/master/figs/BDSimLogo_NoBackgnd@2x.png" width="300"></td>
<td style="border:0px">
A Python block diagram simulation package</a>
<ul>
<li><a href="https://github.com/petercorke/bdsim">GitHub repository </a></li>
<li><a href="https://petercorke.github.io/bdsim">Documentation</a></li>
<li><a href="https://github.com/petercorke/bdsim/wiki">Wiki (examples and details)</a></li>
<li><a href="installation#">Installation</a></li>
<li>Dependencies: numpy, scipy, matplotlib, <a href="https://github.com/petercorke/ansitable">ansitable</a>, ffmpeg (if rendering animations as a movie)</li>
</ul>
</td>
</tr>
</table>
`bdsim` is Python 3 package that enables modelling and simulation of continuous-time, discrete-time or hybrid dynamic systems. Systems are conceptualized in block diagram form, but represented in terms of Python objects.
<table>
<tr>
<td>
<img width=450 src="https://github.com/petercorke/bdsim/raw/master/figs/bd1-sketch.png">
</td>
<td style="padding-left: 20px;">
<pre style="font-size:10px;">
# define the blocks
demand = bd.STEP(T=1, name='demand')
sum = bd.SUM('+-')
gain = bd.GAIN(10)
plant = bd.LTI_SISO(0.5, [2, 1])
scope = bd.SCOPE(styles=['k', 'r--'])
# connect the blocks
bd.connect(demand, sum[0], scope[1])
bd.connect(plant, sum[1])
bd.connect(sum, gain)
bd.connect(gain, plant)
bd.connect(plant, scope[0])
</pre>
</td>
</tr>
</table>
Key features include:
* The block diagram can be created easily using Python code, rather than drawing boxes and wires. This enables use of your favourite IDE, standard version control tools and development workflows.
* Wires can communicate *any* Python type such as scalars, lists, dicts, NumPy arrays, objects, and functions. For robotics and vision applications using the [Spatial Maths Toolbox for Python](https://github.com/petercorke/spatialmath-python) wires could send values such as `SE3`, `UnitQuaternion` or `Twist3` objects.
* Over 70 blocks for linear, nonlinear functions, display blocks, as well as continuous- and discrete-time dynamics
* Easy to add your own block, it's simply a class
* Subsystems are supported, and a subsystem can be independently instantiated multiple times in a system. Subsystems can also be nested.
* Blocks from other toolboxes are automatically discovered and included. There are blocks for some functions in the [Robotics Toolbox for Python](https://github.com/petercorke/robotics-toolbox-python) (such as arm, ground and aerial robots) and [Machine Vision Toolbox for Python](https://github.com/petercorke/machinevision-toolbox-python) (such as cameras). These are defined in the `blocks` folder of those toolboxes.
* The diagram can be executed in a headless configuration, particularly useful on an embedded computer like a RaspberryPi.
* A [python-based graphical editor](bdedit-the-graphical-editing-tool)
* allows graphical creation of block diagrams
* the diagram is stored in a human readable/editable JSON file with extension `.bd`
* creates good-quality graphics for inclusion in publications
* can launch `bdsim` to import and execute the model
* automatically discovers all bsdim and toolbbox blocks and adds them to the block library menu
* icons can be easily created using any image creation tool or a LaTeX expression
# Getting started
We first sketch the dynamic system we want to simulate as a block diagram, for example this simple first-order system

which we can express concisely with `bdsim` as (see [`bdsim/examples/eg1.py`](https://github.com/petercorke/bdsim/blob/master/examples/eg1.py))
```python
1 #!/usr/bin/env python3
2 import bdsim
4 sim = bdsim.BDSim() # create simulator
5 bd = sim.blockdiagram() # create an empty block diagram
6
7 # define the blocks
8 demand = bd.STEP(T=1, name='demand')
9 sum = bd.SUM('+-')
10 gain = bd.GAIN(10)
11 plant = bd.LTI_SISO(0.5, [2, 1], name='plant')
12 scope = bd.SCOPE(styles=['k', 'r--'])
13
14 # connect the blocks
15 bd.connect(demand, sum[0], scope[1])
17 bd.connect(sum, gain)
18 bd.connect(gain, plant)
19 bd.connect(plant, sum[1], scope[0])
20
21 bd.compile() # check the diagram
22
23 sim.report(bd) # list the system
24 out = sim.run(bd, 5) # simulate for 5s
```
which is just 15 lines of executable code.
The red block annotations on the hand-drawn diagram are used as the names of the variables holding references to the block instance. The blocks can also have user-assigned names, see lines 8 and 11, which are used in diagnostics and as labels in plots.
After the blocks are created their input and output ports need to be connected. In `bdsim` all wires are point to point, a *one-to-many* connection is implemented by *many* wires,
for example
```
bd.connect(source, dest1, dest2, ...)
```
creates individual wires from `source` -> `dest1`, `source` -> `dest2` and so on.
Ports are designated using Python indexing notation, for example `block[2]` is port 2 (the third port) of `block`. Whether it is an input or output port depends on context.
In the example above an index on the first argument refers to an output port, while on the second (or subsequent) arguments it refers to an input port. If a block has only a single input or output port then no index is required, 0 is assumed.
A group of ports can be denoted using slice notation, for example
```
bd.connect(source[2:5], dest[3:6)
```
will connect `source[2]` -> `dest[3]`, `source[3]` -> `dest[4]`, `source[4]` -> `dest[5]`.
The number of wires in each slice must be consistent. You could even do a cross over by connecting `source[2:5]` to `dest[6:3:-1]`.
Line 21 assembles all the blocks and wires, instantiates subsystems, checks connectivity to create a flat wire list, and then builds the dataflow execution plan.
Line 23 generates a report, in tabular form, showing a summary of the block diagram:
```
┌────────┬──────────┬────────┬────────┬─────────────┐
│ block │ type │ inport │ source │ source type │
├────────┼──────────┼────────┼────────┼─────────────┤
│demand@ │ step │ │ │ │
├────────┼──────────┼────────┼────────┼─────────────┤
│gain.0 │ gain │ 0 │ sum.0 │ float64 │
├────────┼──────────┼────────┼────────┼─────────────┤
│plant │ lti_siso │ 0 │ gain.0 │ float64 │
├────────┼──────────┼────────┼────────┼─────────────┤
│scope.0 │ scope │ 0 │ plant │ float64 │
│ │ │ 1 │ demand │ int │
├────────┼──────────┼────────┼────────┼─────────────┤
│sum.0 │ sum │ 0 │ demand │ int │
│ │ │ 1 │ plant │ float64 │
└────────┴──────────┴────────┴────────┴─────────────┘
```
Line 24 runs the simulation for 5 seconds
using the default variable-step RK45 solver and saves output values at least every 0.05s. It
causes the following output
```
>>> Start simulation: T = 5.00, dt = 0.050
Continuous state variables: 1
x0 = [0.]
Discrete state variables: 0
no graphics backend specified: Qt5Agg found, using instead of MacOSX
bdsim ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ 100.0% - 0s
<<< Simulation complete
block diagram evaluations: 784
block diagram exec time: 0.075 ms
time steps: 123
integration intervals: 2
```
This provides a summary of the number of states for the complete system: the number of continuous states, the number
of discrete states, and the initial value of the state vectors.
During execution a progress bar is updated and scope blocks pops up a graphical window

The simulation results are in a container object (`BDStruct`)
```
>>> out
t = ndarray:float64 (123,)
x = ndarray:float64 (123, 1)
xnames = ['plantx0'] (list)
ynames = [] (list)
```
which contains an array of time values, an array of state values, and a list of the
names of the state variables.
By default the `.run()` method at line 24 blocks blocks the script until all figure
windows are closed (by pressing the operating system close button or typing "q"), or the
script is killed with SIGINT. If you want to continue the script with the figures still
active then the `hold=False` option should be set.
If we wished to also record additional outputs, we can add them as _watched_ signals
```
out = sim.run(bd, watch=[demand, sum]) # simulate for 5s
```
and now the output is
```
>>> out
t = ndarray:float64 (123,)
x = ndarray:float64 (123, 1)
xnames = ['plantx0'] (list)
y0 = ndarray:float64 (123,)
y1 = ndarray:int64 (123,)
ynames = ['plant[0]', 'demand[0]'] (list)
```
where
- `t` the time vector: ndarray, shape=(M,)
- `x` is the state vector: ndarray, shape=(M,N), one row per timestep
- `xnames` is a list of the names of the states corresponding to columns of `x`, eg. "plant.x0"
The `watch` argument is a list of outputs to log, in this case `plant` defaults
to output port 0. This information is saved in additional variables `y0`, `y1`
etc. `ynames` is a list of the names of the watched variables.
An alternative system report, created by `sim.report(bd, type="lists")` is more detailed
```
Blocks::
┌───┬─────────┬─────┬──────┬────────┬─────────┬───────┐
│id │ name │ nin │ nout │ nstate │ ndstate │ type │
├───┼─────────┼─────┼──────┼────────┼─────────┼───────┤
│ 0 │ demand │ 0 │ 1 │ 0 │ 0 │ step │
│ 1 │ sum.0 │ 2 │ 1 │ 0 │ 0 │ sum │
│ 2 │ gain.0 │ 1 │ 1 │ 0 │ 0 │ gain │
│ 3 │ plant │ 1 │ 1 │ 1 │ 0 │ LTI │
│ 4 │ scope.0 │ 2 │ 0 │ 0 │ 0 │ scope │
└───┴─────────┴─────┴──────┴────────┴─────────┴───────┘
Wires::
┌───┬──────┬──────┬──────────────────────────┬─────────┐
│id │ from │ to │ description │ type │
├───┼──────┼──────┼──────────────────────────┼─────────┤
│ 0 │ 0[0] │ 1[0] │ demand[0] --> sum.0[0] │ int │
│ 1 │ 0[0] │ 4[1] │ demand[0] --> scope.0[1] │ int │
│ 2 │ 3[0] │ 1[1] │ plant[0] --> sum.0[1] │ float64 │
│ 3 │ 1[0] │ 2[0] │ sum.0[0] --> gain.0[0] │ float64 │
│ 4 │ 2[0] │ 3[0] │ gain.0[0] --> plant[0] │ float64 │
│ 5 │ 3[0] │ 4[0] │ plant[0] --> scope.0[0] │ float64 │
└───┴──────┴──────┴──────────────────────────┴─────────┘
```
In the first table we can see key information about each block, its `id` (used internally), name, the number of input and output ports, the number of
continuous- and discrete-time states, and the type which is the block class. Note that the name is auto-generated based on the type, except if it has
been set explicitly as for the blocks `demand` and `plant`.
The second table shows all wires in point-to-point form, showing the start and end block and port (the block is represented here by its `id`) and the type of the object sent along the wire.
To save figures we need to make two modifications, changing line 4 to
```
4 sim = bdsim.BDSim(hold=False) # create simulator
```
which prevents `.run()` from blocking and then deleting all the figures.
Then, after the `.run()` we add
```
25 scope.savefig() # save scope figure
```
If the filename is not given it defaults to the block name, in this case `scope.0.pdf`.
The output can be pickled and written to a file
```[shell]
examples/eg1.py -o
python -mpickle bd.out
t = ndarray:float64 (123,)
x = ndarray:float64 (123, 1)
xnames = ['plantx0'] (list)
y0 = ndarray:float64 (123,)
y1 = ndarray:int64 (123,)
ynames = ['plant[0]', 'demand[0]'] (list)
```
by default the results are written to `bd.out`, use the option `--out FILE` to set it
to a specific value.
The block parameters can also be overridden from the command line without having to
edit the code. To increase the loop gain we could write:
```[shell]
examples/eg1.py --set gain.0:K=20
```
More details on this Wiki about:
- [Adding blocks](https://github.com/petercorke/bdsim/wiki/Adding-blocks)
- [Connecting blocks](https://github.com/petercorke/bdsim/wiki/Connecting-blocks)
- [Running the simulation](https://github.com/petercorke/bdsim/wiki/Running)
- [Command line options](https://github.com/petercorke/bdsim/wiki/Runtime-options)
## Other examples
In the folder `bdsim/examples` you can find a few other runnable examples:
- [`eg1.py`](https://github.com/petercorke/bdsim/blob/master/examples/eg1.py) the example given above
- [`waveform.py`](https://github.com/petercorke/bdsim/blob/master/examples/waveform.py) two signal generators connected to two scopes
Examples from Chapter four of _Robotics, Vision & Control 2e (2017)_:
- [`rvc4_2.py`](https://github.com/petercorke/bdsim/blob/master/examples/rvc4_2.py) Fig 4.2 - a car-like vehicle with bicycle kinematics driven by a rectangular pulse steering signal
- [`rvc4_4.py`](https://github.com/petercorke/bdsim/blob/master/examples/rvc4_4.py) Fig 4.4 - a car-like vehicle driving to a point

- [`rvc4_6.py`](https://github.com/petercorke/bdsim/blob/master/examples/rvc4_6.py) Fig 4.6 - a car-like vehicle driving to/along a line

- [`rvc4_8.py`](https://github.com/petercorke/bdsim/blob/master/examples/rvc4_8.py) Fig 4.8 - a car-like vehicle using pure-pursuit trajectory following

- [`rvc4_11.py`](https://github.com/petercorke/bdsim/blob/master/examples/rvc4_11.py) Fig 4.11 a car-like vehicle driving to a pose

Figs 4.8 (pure pursuit) and Fig 4.21 (quadrotor control) are yet to be done.
# A more concise way
Wiring, and some simple arithmetic blocks like `GAIN`, `SUM` and `PROD` can be implicitly generated by overloaded Python operators. This strikes a nice balance between block diagram coding and Pythonic programming.
```
1 #!/usr/bin/env python3
2
3 import bdsim
4
5 sim = bdsim.BDSim() # create simulator
6 bd = sim.blockdiagram() # create an empty block diagram
7
8 # define the blocks
9 demand = bd.STEP(T=1, name='demand')
10 plant = bd.LTI_SISO(0.5, [2, 1], name='plant')
11 scope = bd.SCOPE(styles=['k', 'r--'], movie='eg1.mp4')
12
13 # connect the blocks using Python syntax
14 scope[0] = plant
15 scope[1] = demand
16 plant[0] = 10 * (demand - plant)
17
18 bd.compile() # check the diagram
19 bd.report() # list all blocks and wires
20
22 out = sim.run(bd, 5, watch=[plant,]) # simulate for 5s
```
This requires fewer lines of code and the code is more readable. Importantly, it results in in *exactly the same* block diagram in terms of blocks and wires
```
Wires::
┌───┬──────┬──────┬──────────────────────────────┬─────────┐
│id │ from │ to │ description │ type │
├───┼──────┼──────┼──────────────────────────────┼─────────┤
│ 0 │ 1[0] │ 2[0] │ plant[0] --> scope.0[0] │ float64 │
│ 1 │ 0[0] │ 2[1] │ demand[0] --> scope.0[1] │ int │
│ 2 │ 0[0] │ 3[0] │ demand[0] --> _sum.0[0] │ int │
│ 3 │ 1[0] │ 3[1] │ plant[0] --> _sum.0[1] │ float64 │
│ 4 │ 3[0] │ 4[0] │ _sum.0[0] --> _gain.0(10)[0] │ float64 │
│ 5 │ 4[0] │ 1[0] │ _gain.0(10)[0] --> plant[0] │ float64 │
└───┴──────┴──────┴──────────────────────────────┴─────────┘
```
The implicitly created blocks have names prefixed with an underscore.
# bdedit: the graphical editing tool

`bdedit` is a multi-platform PyQt5-based graphical tool to create, edit, render and execute block diagram models.
From the examples folder
```
% bdedit eg1.bd
```
will create a display like that shown above. Pushing the run button, top left (triangle in circle) will spawn `bdrun` as a subprocess which will:
* parse the JSON file
* instantiate all blocks and wires
* compile and run the diagram
<a href="https://www.youtube.com/watch?v=1qM5D0jekjc"><img width=100 style="vertical-align:middle" src="https://cdn.mos.cms.futurecdn.net/8gzcr6RpGStvZFA2qRt4v6-1920-80.jpg.webp"> <span style="">Screencast showing bdedit usage.</span></a>
# Article
I published [this article on LinkedIn](https://www.linkedin.com/pulse/journey-toward-open-source-block-diagram-simulation-peter-corke/?trackingId=wrJYinHUgAHDq63Nv65PnA%3D%3D), which describes the thought process behind bdsim.
# Limitations
There are lots! The biggest is that `bdsim` is based on a very standard variable-step integrator from the scipy library. For discontinuous inputs (step, square wave, triangle wave, piecewise constant) the transitions get missed. This also makes it inaccurate to simulate hybrid discrete-continuous time systems. We really need a better integrator, perhaps [`odedc`](https://help.scilab.org/docs/6.1.0/en_US/odedc.html) from SciLab could be integrated.
================================================
FILE: bdsim/__init__.py
================================================
# from bdsim.bdsim import *
# from bdsim.blockdiagram import *
# from bdsim.components import *
# from bdsim.graphics import GraphicsBlock
# from bdsim.bdrun import bdrun, bdload
from .run_sim import *
from .run_realtime import *
from .blockdiagram import *
from .components import *
from .graphics import GraphicsBlock
from .bdrun import bdrun, bdload
try:
import importlib.metadata
__version__ = importlib.metadata.version("bdsim")
except:
pass
================================================
FILE: bdsim/bdedit/Icons.py
================================================
# -*- coding: utf-8 -*-
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2)
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore
qt_resource_data = b"\
\x00\x00\x0e\xc4\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
\xa8\x64\x00\x00\x0e\x59\x49\x44\x41\x54\x78\x5e\xed\xdd\x05\x8c\
\x34\x49\x19\x06\xe0\x1f\x77\x77\x77\x77\x77\x38\xdc\xdd\xed\x70\
\x08\x12\x24\x40\xb0\x40\xd0\x10\x0e\x77\x77\x87\x10\x3c\x38\x07\
\x1c\x76\x38\x1c\xee\xee\xee\x0e\xef\xc3\x6d\x91\x61\xd2\x5d\xd3\
\x3d\xdb\xdd\xd3\xcb\xcd\x9b\xbc\xd9\xbd\xbd\xdd\x7f\xaa\xeb\xab\
\xfa\xbc\xaa\xf7\x6d\xb1\xc5\x16\x5b\x6c\xb1\xc5\x16\x5b\x6c\x31\
\x02\x0e\xb7\xf3\x75\x2f\xe0\x24\xe1\xe9\x76\x78\xa2\xf0\x98\x0b\
\x3c\x52\xf8\xb7\xf0\xf7\xe1\xef\x76\xbe\xfe\x2c\xfc\xd6\x0e\x7f\
\x1a\xee\x09\xcc\x51\x20\x87\x0f\x8f\x1b\x9e\x3f\xbc\x50\x78\xc1\
\xf0\x0c\xe1\xb1\xc3\x23\x87\x26\xff\x08\xa1\xdf\x43\xcf\x80\xff\
\xda\xe1\x3f\x77\xf8\x8f\x90\x90\xfe\x12\xfe\x26\xfc\x5a\xf8\x89\
\xf0\xe3\xe1\xa7\xc3\xdf\x86\x7e\x7f\x56\x98\x8b\x40\x8e\x18\x9e\
\x2a\xbc\x5c\x78\xd9\xf0\xec\x21\x01\x94\x1d\x70\xd4\xb0\x4c\x7e\
\x5f\x14\x21\xfd\x29\xfc\x43\x68\xf7\xfc\x3a\xfc\x7c\xf8\x9e\xf0\
\xc0\xf0\x47\x21\x01\x6e\x1c\x9b\x16\xc8\x89\xc3\x8b\x87\x97\x0f\
\xed\x88\x93\x85\x27\x08\x09\x81\x00\xc6\x02\x01\x51\x6d\x3f\x0f\
\x09\xe3\x93\xe1\xbb\xc2\x8f\x86\xbf\x08\x37\x86\x4d\x09\xe4\xa4\
\xa1\x9d\x70\xd5\xf0\xbc\xe1\xc9\xc3\xe3\x85\x63\x0a\xa1\x0d\x76\
\xc6\xaf\xc2\xef\x87\x87\x84\x04\xf3\xbe\xf0\x7b\xe1\xe4\x98\x5a\
\x20\xa7\x08\xaf\x1c\xee\x17\x9e\x27\x64\xa0\x8f\x15\xce\x05\x76\
\xcd\x77\xc2\xcf\x84\xef\x08\xdf\x1d\xfe\x38\x9c\x0c\x53\x09\x84\
\x0d\xb8\x54\x78\xed\x90\x30\x4e\x1f\x1e\x2d\x9c\x2b\xd8\x9a\xaf\
\x87\xef\x0f\xdf\x1a\x1e\x14\xb2\x41\xa3\x83\xb7\x32\x36\xce\x11\
\xde\x32\xbc\x55\x78\x95\xf0\x94\x21\x4f\x69\xce\xe0\xcd\x71\xb3\
\xcf\x1a\x5a\x3c\xd4\xe9\x2f\xc3\xd1\xed\xcb\x98\x3b\xc4\xa4\xb3\
\x13\x37\x0e\xaf\x16\x8a\x1d\x86\x58\x00\xc5\x20\xff\x39\xe4\xd2\
\xfe\x75\xe7\x67\xec\x8f\x89\xb4\x1b\xed\xbe\x63\xec\xfc\x6c\xb7\
\x60\x63\x18\xfe\xb7\x84\xaf\x09\xed\x96\xbf\x87\xa3\x60\x0c\x81\
\xf8\x37\xad\xa8\xab\x87\xb7\x0d\x2f\x1a\x9a\xa4\xbe\x28\xee\x2a\
\x4f\xe8\x87\xe1\x4f\x42\xc6\x97\xcb\x6a\xa5\x52\x2b\xd4\x08\xa1\
\x98\x34\xc2\xf6\x39\xc8\x4b\xe3\xad\x89\x67\x8c\xc5\x6a\xe7\x38\
\x9c\x30\x34\xbe\x75\x9e\xdb\xe7\x7d\x28\x7c\x61\xf8\xf6\xd0\x38\
\x06\xc7\xd0\x02\xb1\x22\x19\x6e\xbb\xe2\x6e\x21\xf5\xd4\x67\x57\
\x10\x82\x15\xcf\x90\x7e\x3b\xe4\xe9\xd0\xe5\x5f\x09\xbf\x11\x5a\
\xa9\x22\x70\x42\x58\x05\x82\xb1\x2b\x09\x42\x60\x79\x96\xf0\x8c\
\xa1\x78\xe7\xb4\x21\x4f\x4f\xfc\xd3\x67\x0e\xec\x8c\x6f\x86\x4f\
\x0f\x5f\x1d\xca\x00\x0c\x1a\x5c\x0e\x29\x10\x0f\xe7\x41\x6f\x11\
\xde\x27\x3c\x7a\xd8\xf5\xdf\xb7\x13\x44\xce\x84\x20\xa2\x16\x4d\
\x7f\x30\xe4\xed\x0c\x69\x4c\x8d\xe9\x02\xe1\x25\x43\x59\x00\x82\
\x32\xe6\x3e\x71\x0f\x01\x88\xfc\x0f\x08\x5f\x11\x72\x97\x67\x11\
\x54\x2e\x82\xbd\x38\x5b\xf8\xd8\xd0\xea\x35\xe8\x2e\xf4\x20\x8c\
\xe5\xa7\xc2\xe7\x84\xd7\x0c\x8f\x13\x4e\x01\xaa\xec\x7a\xe1\x8b\
\x42\x82\xa7\x0e\x8d\xa7\x69\x9c\xcb\xb4\x80\x3c\xe7\x23\x43\xbb\
\xce\x62\x9c\x0d\x0c\x86\x37\x62\x1b\xdb\xd2\x4d\x0f\xd0\x44\x3a\
\x99\x2a\x7a\x76\xc8\xf8\xaf\x63\x67\x86\x00\x07\xe0\x4a\x21\xdb\
\x60\x77\x1a\x97\x09\x6f\x1a\xf3\x32\x3d\xef\x13\x42\x3b\x6d\x0a\
\x8f\x75\x25\x0c\xc2\x60\x1e\x1d\x76\x15\x86\xdf\x63\x94\x19\xc6\
\x1b\x86\xbc\xa1\x39\x80\xda\x62\xfb\x8c\xcb\xae\xed\xf3\x3c\x8f\
\x08\x4f\x1d\x6e\x22\xd3\xf0\x5f\xb0\x0f\x8c\xf6\x43\xc2\xae\x6a\
\x8a\xc1\x96\x0e\xbf\x7f\xc8\xf8\xcf\x11\xa7\x09\x1f\x16\x8a\xd8\
\x65\x8b\x9b\x9e\x63\x99\x5c\x70\x76\x93\xa3\x30\xb4\xa3\xd4\x19\
\xc7\x0f\xef\x19\xca\x9e\x36\x0d\x72\x99\x56\xd2\x87\x43\xee\xf0\
\x51\xc2\x39\x83\x1a\xbb\x41\xc8\xb9\xe8\xba\x53\xc4\x46\x77\x08\
\xa7\xb2\x81\xff\x03\x76\xe3\x26\xa1\x55\xd4\x55\xdf\xbe\x24\x94\
\x56\xdf\xd8\x0a\xea\x09\xea\x47\x06\x5a\x30\xd8\xf4\x3c\xcb\x34\
\x0f\x5c\xe2\x6b\x84\x93\xdb\x13\x46\x58\x2d\xa1\x8b\x57\x62\xa0\
\x0c\xfe\x99\xc2\x8d\xea\xd8\x35\x60\x62\x79\x8f\xcf\x08\xbb\x3c\
\xab\xdd\x24\xf7\x75\xb1\x70\x32\xf0\xa8\x78\x46\xe2\x83\xa6\x41\
\x2d\xd2\x43\x30\x78\xb2\xba\xb3\xf0\x42\x76\x01\x71\x47\x17\xa1\
\xfc\x31\x7c\x62\xc8\xd9\x19\x1d\x5c\xd3\x7b\x84\x3f\x08\x9b\x06\
\xb3\xcc\xa7\x86\xff\x0f\xc2\x80\x33\x87\x4f\x0b\x9b\x9e\x73\x99\
\x82\xc5\x3b\x85\xa3\xbb\xf2\x57\x0c\x15\x70\x56\x19\x3a\x2b\x89\
\xcd\xf0\x10\x5d\x85\x21\xc5\x71\xa3\x9d\xaf\x73\x85\xcc\xb5\x94\
\x49\xd3\x33\x2f\xd2\xfc\x48\x46\x2a\x39\x8c\x06\xe5\x55\x5b\x51\
\x52\xad\x69\x10\x85\x5c\xc5\x83\xc3\x73\x86\x7d\x76\x06\x61\xf8\
\x7b\xb5\x6e\x0e\xc3\x1c\x05\x23\x23\x21\xe5\xf2\xb1\x70\x95\x33\
\x23\x96\x11\xc9\x2b\x53\x8f\x02\x39\xaa\xcf\x86\xb5\x81\x58\x19\
\xdf\x0d\xb9\xb6\x7d\x0d\x78\x11\x48\xe1\x2b\xc3\x39\x0a\x45\x8a\
\xff\x3a\xa1\xc4\x62\xcd\xa6\x98\x27\x82\x93\x9e\x19\x1c\x02\xc0\
\xe7\x87\xd2\x0a\x4d\x1f\x8e\x06\x20\x1f\xf4\xc0\x70\x9d\x38\x63\
\x59\x20\xc8\x71\xb8\x57\x38\x37\xc1\x88\xea\x05\x8f\x0c\x78\x6d\
\x81\x8a\x4d\x9e\x12\x0a\x18\x07\xc5\xcd\x42\x09\xb8\xa6\x0f\x2d\
\x34\xb8\xb7\x85\xeb\x46\xe0\x4d\x02\x29\x94\x72\xbf\x75\x38\x17\
\xc1\x88\xa5\xa4\x4a\x94\x78\x45\xe9\x4d\x63\x2e\xa4\xbe\xaf\x1b\
\x0e\x06\x35\x05\xbb\xa3\x34\x96\x35\xd1\xd6\x55\xaf\xb8\x7e\xb8\
\x2e\x6a\x02\x29\xd4\xe8\xe6\xf7\xe6\x22\x18\x0b\x95\xc7\x59\x53\
\x5d\x6c\xee\x93\x43\x05\xb3\x41\x20\xf2\x94\x42\x68\xfa\xb0\x42\
\xaa\xea\x05\xe1\x6e\x12\x85\x5d\x04\x52\x28\x65\x3e\x07\xa1\xe8\
\x98\x79\x55\x48\x35\x35\x8d\xb3\x50\xd9\xf7\x0a\xe1\x4a\xac\x32\
\xbc\x52\x24\xba\x44\x24\xdc\xda\x40\x87\xf2\xbb\x5f\x1e\xb2\x31\
\xab\x30\x44\x4c\xa2\x61\x42\xea\x5e\x55\x72\x93\x82\x21\x08\x8b\
\x43\x79\xd9\x3c\xb4\x41\x90\xa8\x28\xb6\xeb\x67\x27\x88\x55\x71\
\x87\xea\xd9\x8b\xc3\xae\x6d\x3d\x6d\x6e\x60\x9f\x1d\xb2\x48\x55\
\x46\x1e\xe0\xa6\x04\x23\xf8\x7b\x6d\x58\xdb\x25\xe6\xef\x0d\xe1\
\x4a\xfb\xba\x6a\x87\x08\x6c\xd4\xa0\xdb\x24\xeb\xc3\xd4\xbd\x5f\
\x1f\x76\x2d\xb5\x6a\x3c\x18\x12\x16\xcd\x4b\x43\x8b\x62\x13\xf6\
\x85\x51\x27\x10\xbb\xc4\x7c\x34\xc1\xfc\x29\x15\x6b\x9b\x5d\x1b\
\x3c\x09\x65\x55\xf6\x61\x51\xda\x8b\x54\x07\x79\x63\x38\xc4\x24\
\xaf\xbb\x43\x96\x29\xcf\x36\xb5\x50\x94\x22\x24\x5b\xd5\x7b\x9a\
\xc6\x84\xba\x67\x04\xd6\xd5\x6c\x77\x6d\x87\xe8\x3e\x97\x48\xf4\
\xb5\x0d\x82\x23\xc1\xcf\x28\x2d\x31\x6b\xe2\x8e\xe1\x17\x42\xb9\
\xa4\xa9\x04\x23\x2a\xe7\xde\xd6\x1a\xe9\xd4\xf0\x57\xcd\x67\x55\
\x20\xe7\x0b\x49\xbe\xed\x77\x48\x9d\xba\xe2\x8b\x8f\x0d\xab\x8b\
\xa7\xd7\x15\x76\xec\xb3\x42\xf6\xef\xa6\xe1\x14\x82\xb1\x43\xb4\
\x2f\x99\x97\x26\x98\x47\x7d\x61\x6a\x42\xad\x58\x25\x90\x5a\xf5\
\xcb\x07\xf3\xc1\x75\x8c\x8c\x0d\x3b\x51\xba\x82\x77\xa5\x28\xd6\
\x15\x1e\x5e\xab\xce\x73\xc3\xb1\xed\x8b\x1d\x52\x13\x08\x58\xe0\
\xba\xfd\x5b\x51\x13\x88\x6a\x59\x4d\x20\xb6\xa7\x2e\x0d\x11\xfa\
\x14\xd0\xbd\x28\x83\xcc\x30\xea\xf4\xe8\x03\xad\xac\xb2\xb4\xf7\
\x0b\xc7\x12\x8a\x52\xb6\xf9\xa8\xa9\x6f\x6a\xeb\xdc\x87\x7e\xdb\
\x8c\x9a\x40\x78\x05\x35\x57\xd6\x6a\xf8\xd2\xa1\xdf\x4e\x0a\x82\
\x79\x7c\xa8\x43\x84\x2b\xd9\x07\x77\x0f\xa5\x80\x6e\x13\x8e\x21\
\x18\x99\x6a\xea\xb5\x0d\x72\x60\xe6\xb5\x15\x6d\x02\x11\x2b\xd0\
\xc3\xb5\x40\x46\x7e\xc9\x8a\xd8\x04\x08\x45\xad\xfb\xae\x21\x1b\
\xe1\x04\x54\x57\x48\x05\xc9\x2a\xbc\x33\x1c\x3a\xcd\xff\xe5\xb0\
\x66\xd8\x05\xda\xe6\xb5\x35\x8d\xd2\x26\x10\xbe\xbd\x80\xa7\xe6\
\xa2\x09\x08\x4d\xcc\x26\xe1\xf3\xa5\x2e\xae\x15\xde\x3e\xac\xad\
\xce\x65\x28\x36\x49\xf1\xab\x97\x0f\x25\x14\x19\x0b\x01\x62\x1b\
\xcc\x27\xad\x23\xb6\x6b\x44\x4d\x20\xf2\xfe\x6d\x90\x26\x20\x90\
\xb9\x1c\x37\x26\x18\x09\x50\xa7\xb2\x4c\x70\x1f\x38\x44\xa4\x5b\
\x44\x5f\xd5\x6e\x05\xa3\x19\x9c\x40\x6a\x69\x14\x02\x91\x29\x6e\
\x44\x9b\x40\xb8\x67\xb5\x43\x35\x72\x56\x56\xa3\x28\x75\x4e\x20\
\x98\x47\x85\xa5\x03\xb1\x2b\xd4\x6f\xf4\x25\x8b\xa9\x78\x72\xeb\
\x0a\xc6\x7c\x98\x97\x5a\xd6\xc2\xbc\xf2\xb6\x1a\xd1\x26\x90\x55\
\xdd\xe0\x3e\xb0\xb6\x35\x37\x89\x62\x5f\x6e\x17\x4a\x8f\x0b\x12\
\xbb\x42\xae\x49\xb2\xf0\x4d\xe1\x3a\x6e\x32\x97\xd7\xbc\xd4\x8e\
\x4b\xb0\x23\xe6\xb7\x11\x6d\x93\x2e\x8d\x5e\x33\xe8\x52\x04\x73\
\xdb\x1d\xcb\x20\x18\x36\x42\x23\xb5\xa8\xbd\x8f\x7d\x71\x64\x81\
\x9b\xfc\xb8\xb0\xaf\x50\x2c\x56\x7d\x05\x6d\x30\xaf\x8e\x45\x34\
\xa2\x4d\x20\xfe\xa0\xb6\x43\xca\x0d\x09\x7b\x01\x04\x23\x27\xc7\
\xbe\xe8\x70\xef\x03\x1e\xdc\x47\xc2\xd6\x15\xdd\x80\x55\x02\x31\
\xaf\xbd\x05\x42\xcf\xd5\x3c\x2c\x46\x4b\x95\x6c\xaf\xc0\x2a\xbf\
\x74\x78\xe1\xff\xfc\x57\x3f\x94\x23\x0a\x5d\x21\xd5\x5e\x9b\x1b\
\x73\xde\x6a\x9f\xdb\x04\x52\xba\xbe\xdb\xe0\xef\x6a\x2a\x6d\x2e\
\x20\x08\xb6\x40\xc3\x1e\xf5\xc5\xd5\xed\x0a\x2a\xce\x19\xc9\xfd\
\xc3\xda\x5c\x2c\x83\x8d\xa8\xcd\x8d\xc5\xdc\xba\x83\xda\x04\x52\
\xba\x29\xda\x40\xc2\x73\xef\x60\x27\x8c\xfb\x86\x6c\x41\xdf\x56\
\x1c\xae\x73\x51\x71\x54\x5e\x1f\x70\x6b\x6b\x1e\xaa\x79\x6d\x4d\
\x37\xb5\x09\xc4\x16\xad\x6d\x3b\x31\x4a\xd7\x0a\xe1\xd4\x20\x08\
\xa9\x11\x29\x12\xc7\x25\xfa\x40\x6d\x87\xcb\xcc\x75\xee\x2b\x88\
\x82\x55\x02\x31\xaf\xbd\x05\x22\x51\xb6\x2a\xb8\x99\xd3\x95\x18\
\x50\xd4\x13\x97\x57\x6a\x44\x8a\xa4\x2b\xd8\x09\x2e\xf2\x5d\x42\
\x7f\xbf\xae\x30\xd8\x5d\xf5\x8e\x9a\xf6\x60\x63\x5a\x6d\x52\x9b\
\x40\xe8\xcf\x9a\xa7\xc0\x2d\x96\x8f\xd9\xd4\xb9\xc0\x65\x10\x86\
\x6a\x1c\xf5\x74\x09\x3f\xe8\x08\x0b\x8f\x10\x34\x72\xb0\x31\xeb\
\x0a\xa2\xc0\x7c\x98\x97\x9a\xf6\x30\xaf\xad\xf9\xae\x36\x81\x68\
\x1c\xa8\xb9\xb5\xfe\x4e\x6a\x7e\xb4\xbe\xd5\x8e\x20\x08\x29\x0f\
\xa9\x0f\xbb\xa3\x0f\x14\xb0\x9c\x5d\x7f\x66\xb8\x5b\x41\x14\xe8\
\x7f\xa6\x39\xda\xe6\x15\xb8\xc5\xad\x35\x9d\xb6\x3f\xf4\x07\xe5\
\xdc\x60\x1b\x08\x64\x53\xe7\x04\x09\x82\xf7\xe3\x88\x9c\x94\x47\
\x1f\x07\xe3\x03\x21\x3b\xe1\xdc\xca\x50\x82\x28\xd0\x72\x5b\x53\
\xe5\xe6\x93\x40\x24\x21\x1b\xd1\x26\x10\xa9\x75\xc9\xc3\x9a\x61\
\xa7\xa3\x9d\xd1\x9e\x12\x8b\x76\x42\x97\x49\xad\x5f\x6c\x19\x6e\
\x84\xb8\x79\x28\xd8\xdb\x8d\x9d\xa8\x41\xcd\xbc\xd6\xa1\xc8\x7e\
\x28\x60\xf5\x56\x59\x40\x0d\xd4\xaa\x81\x1a\x88\xab\xf5\xe1\x81\
\x41\x18\xda\xfb\xfb\xda\x09\x29\x1e\x0d\xdb\x97\x09\x95\x73\xc7\
\x10\x44\x81\x23\x18\x35\x67\x82\xcd\x62\x0e\x5a\x51\x13\x48\xb9\
\x28\xb2\x0d\x32\x96\xce\x0d\xb6\xa6\x01\x06\x84\x74\xb5\x4e\x45\
\xee\x6c\x1f\xd8\x45\xba\x06\x9f\x14\x8e\x29\x08\xa0\xaa\x1c\x50\
\xaa\x95\xbd\x75\xa7\x38\xd2\xd1\x8a\x9a\x40\x34\x2f\x50\x5b\x6d\
\xf0\xb7\x56\xad\x44\xdc\xd8\x90\x4b\xea\x93\x4f\x72\x4f\x0a\x3b\
\xe1\x68\xc4\xd8\x82\x28\xb8\x48\xe8\xd6\xa1\x5a\xca\x49\x8f\xdb\
\xda\x02\xf1\x87\x74\x5d\x5b\x3c\xe2\x83\x55\xbe\xe4\x88\xe6\x02\
\xee\xba\x5d\x44\x18\x63\xd9\x89\x36\xb8\xc8\x93\x97\xd5\x26\x10\
\xf6\x98\x6d\xae\x96\x03\x6a\x02\xb1\x3b\xd4\x88\x6b\x6a\x8b\xdb\
\x6b\x65\xe8\xa6\xd8\x24\xd8\x89\x7b\x87\xd2\x1d\xea\x19\x53\x0a\
\x02\xa8\x6f\xf3\xd0\x5a\x78\x0a\xec\x0e\xf3\x59\xad\x23\xd5\x04\
\xc2\x45\x3b\x28\xd4\xb3\xda\x06\x29\x02\x57\xe0\x09\xac\xba\x82\
\x9e\x1d\x12\x6a\xea\xec\x84\xd6\xa0\xa9\x05\x51\xa0\xe6\xc2\xce\
\x49\x2c\xb6\x41\x0f\x1b\x37\xbd\x9a\xa8\xac\x09\x04\x74\x25\x3a\
\x33\xd8\xe6\xfe\x16\xb5\xe5\x84\x50\xd7\xdc\x56\xcd\x2e\xf5\x81\
\x4e\x13\xaa\xc9\xce\xd8\x94\x20\x40\x74\xee\xa0\x52\xcd\x7e\x98\
\x3f\x77\xbc\xa8\xad\x54\xb1\x4a\x20\x1e\x94\x2d\xe1\x1d\xb4\x81\
\xb1\xd5\xe5\xd8\xd5\x15\xed\x53\xb9\x6b\x82\x1d\x2b\x2d\xae\xd3\
\x64\x6a\x3b\xd1\x04\xb7\x5a\x78\xfe\x9a\xb7\xa9\x19\xc4\x3c\x0e\
\x72\xe5\xac\x13\xb5\xab\x4e\x50\x09\x76\xa4\xaa\xfb\x78\x42\xcb\
\x10\xf0\x35\xfd\xdb\x8b\x74\x45\x07\xcf\x6e\x2e\xe0\xea\x8a\x8b\
\x56\x5d\xc0\x23\x3b\xd0\xe9\x04\x55\x17\x08\x74\x9e\x17\x76\x39\
\x63\xe8\x06\x9d\x75\x51\x13\x88\x43\xf8\xfe\xff\x9c\x84\x01\x32\
\xc4\x76\xa8\xe7\x6f\x1a\x37\x0e\x7e\xc6\x10\xba\x9e\xc2\xd5\x7a\
\x23\x9f\xb3\x0e\x9a\x04\x32\xd7\x4b\x04\xd8\x0a\x46\x9c\xd3\x53\
\x72\x7e\x6d\x74\x9f\xfc\xa0\xa7\x70\x41\x12\xb1\xeb\x39\xf5\x07\
\x85\xeb\xa4\xe5\x17\x05\xc2\x35\xbc\x73\x38\x37\x41\x14\x50\xcd\
\x0f\x0f\x2d\xc2\xc5\x39\x58\xa6\xe7\x18\xe5\x9c\x3a\x48\xcc\xd9\
\x25\x26\xbe\xe9\xc3\x51\xf2\xac\xdc\xe4\xd0\xb7\xe6\x6e\xf2\x79\
\x4e\x0f\xdd\xf9\x7e\xae\x90\x59\x56\x12\x16\xe4\xd5\x54\x95\x79\
\x72\x44\x61\x94\x9b\x1c\x40\x14\xca\xd7\xa7\x13\x9b\x06\x50\xa8\
\x00\x63\x20\xe7\x0a\xf7\x42\x23\x44\x57\x58\x24\xe2\x2e\x9d\x2b\
\xd2\x4a\xb5\x85\x89\xb2\x1c\x52\xfc\xa3\xd6\x8c\x78\x0a\x5d\x6f\
\x03\x7a\x59\xd8\xe7\x36\xa0\xb9\x43\xd0\xa7\x6b\x85\xab\xdd\xf4\
\xcc\x8b\x34\x3f\x6f\x0e\x47\xbd\x0d\x08\xd8\x86\xc3\xe2\x7d\x59\
\xc6\x6f\x71\x71\xbb\x9b\x9e\x73\x99\x8e\xfa\x39\xeb\x38\x49\x89\
\x5b\x11\x46\xf9\x53\xe5\xab\x69\x30\x8b\xb4\x53\xf6\xfa\x8d\x72\
\xc6\xad\xcc\xd0\xe7\x46\xb9\x72\x97\xef\x64\xf0\xae\x28\x2f\x3b\
\x59\xa5\xba\x90\xae\xd5\xe7\x74\x58\xba\x73\xd1\x0b\x08\x26\x05\
\x7d\x2a\x8f\xa4\xfa\xb5\xca\xb8\x15\x3a\xdc\xbf\x97\x6e\x25\x35\
\x4e\xb5\x1e\x97\x02\x34\x3d\xcf\x32\xcd\x83\xe0\x78\x1d\x0f\x73\
\x10\x48\x35\x3b\xb3\xc7\xd7\x6e\x1a\xe0\x32\x79\x5f\x92\x6b\x2e\
\xb3\x99\x44\xb7\xee\x02\x12\xa5\xb2\x0e\x6e\x1f\xea\xa2\x05\x50\
\x26\xc3\x29\xae\x5a\xc5\x70\x54\x58\x41\x02\xc6\x07\x87\xab\xa2\
\xd5\xc2\x72\xb3\xf5\x03\xc2\x75\x23\xfa\xb1\xe1\x50\xa6\xa0\x4f\
\xe7\x4d\xed\x66\x86\x45\x96\x7a\xcc\xaa\x8a\xe1\xe8\x60\x13\xd4\
\x43\xd6\xb9\xfb\x9d\xfb\x2c\xd8\xac\xde\x6c\x30\x21\x24\x0a\xa9\
\xe1\x3d\x7b\xf7\x7b\x01\x7b\xc2\xf3\x72\x85\x6a\xd7\x87\x40\xde\
\xc8\x57\x43\x67\x37\x38\x09\x9b\x52\x63\xd4\x93\x37\xc7\xa9\x34\
\x96\xa3\x07\x5d\xed\xa2\xe7\x9d\xd5\xdb\x11\x0a\x44\xb0\x43\xbd\
\x3f\x64\xe8\xdb\x82\xda\xb0\xf8\xfe\x10\xb5\x0a\x19\x88\x2e\x9e\
\x14\x12\x18\x35\x35\xf8\xfb\x43\x86\xd4\x77\x06\x45\xff\x0e\xf1\
\x86\x1d\xc6\xd4\xfb\x9e\xe4\xce\xfa\x1c\x96\x59\x05\x3d\xc9\xe5\
\x0d\x3b\xbe\x9a\x4c\x63\x96\x2c\xec\xaa\x6e\xca\x58\x1f\x13\xea\
\x07\x1e\xf4\x0d\x3b\x43\x1b\x20\x0f\x25\xe7\x43\x17\xbb\xed\xad\
\x76\xd7\x56\x13\xac\x3e\xde\x98\xe3\xc5\x84\x23\xe2\xe5\x4a\x2e\
\xbf\x83\x6a\xd5\xf9\x46\xcf\x45\x05\xca\x23\xc9\xc1\x51\x29\xfa\
\x78\x7d\x35\x26\x42\x58\xf7\x1d\x54\xc6\x21\x2e\x51\x98\x52\x09\
\x34\xe6\xc1\x30\xb4\x40\xc0\xbf\x49\x1d\xf0\xc7\xdd\x24\xea\x62\
\xfa\xae\xf5\xf6\x45\x14\xd5\xc0\x01\x90\xaa\x59\x7c\x4b\x1b\x35\
\xa7\x4a\x27\x5b\x40\x45\x5a\xa1\x04\x2f\x13\xeb\xb3\x18\x68\x6e\
\x39\xf5\x67\x2c\x26\xdf\x42\x71\xdc\x1b\xd6\x79\x6e\x3b\x55\xfd\
\x83\x8a\xf3\x16\x50\xe3\x18\x1c\x63\x08\xa4\xc0\xea\x5b\x7c\x8f\
\xa1\xd5\x3a\x84\xe1\x23\x24\x93\x43\x18\x76\x0a\xd7\xd4\xcf\xec\
\x4e\x02\x41\xea\x12\x87\xf0\x7a\x08\x5b\x55\x50\x04\x2e\xb1\xa8\
\x1c\x3b\x98\x8a\x5a\xc6\x98\x02\x29\x10\x9d\xdb\x2d\xee\x8d\xf7\
\x6e\x74\xab\x76\x8a\xcf\xdd\x2d\xec\x50\x1d\x32\x1c\x0e\xc2\x50\
\x46\xe6\x15\x8e\x8a\x29\x5c\x35\x3a\xdf\x43\x95\x40\x8b\x61\x65\
\x44\x6b\xc7\xbe\x36\x0d\x3b\xf0\x8b\xa1\x0b\x04\x34\x6f\xbc\x2e\
\xac\xf5\xa7\x0d\x86\xa9\x7c\x67\xc6\x50\x84\xce\xbd\x64\x08\x8b\
\x51\xa6\xef\xe7\x94\x46\x61\x97\x78\x79\xef\x0d\xdd\xcd\x85\x9f\
\x0b\x8d\x7f\x12\x6c\x4a\x75\x30\xb2\x7a\x82\xbd\x4f\x9d\xfb\xc9\
\xe0\xae\xba\x0e\x6a\x2c\xb0\x07\x9c\x05\x8e\x83\xc9\x97\xc5\x3e\
\x30\xe4\xe1\x4d\x8e\x4d\xeb\x72\x2d\x46\xbc\x30\xf6\x45\xb3\x19\
\x17\x95\x27\xd4\x27\x2e\x58\x07\x9c\x00\x49\x51\x4d\x7b\x5c\x69\
\x71\x8f\x54\xce\xaa\x8b\x2c\x47\xc7\x5c\x8c\xab\x9d\x21\x3e\xd0\
\x23\x2c\x8d\xa2\x54\x6a\xc7\x14\x7b\x43\xad\x11\xd0\x3a\xe3\x65\
\x9c\xed\x02\x6a\x92\x6d\xa0\x96\xb8\xac\x87\x84\x2e\xae\xb4\x1b\
\x74\x14\x8e\xe6\x39\xf5\xc1\x1c\xbd\x1d\x63\x22\x0c\x3b\xc6\xcb\
\x53\xca\x3b\x6b\xfd\x8c\x23\x80\x04\x48\x40\x85\x05\x56\x7e\xa1\
\x09\x16\x64\x72\x24\xa8\xa4\x92\x01\x70\x05\x93\xc3\x48\xa5\xdb\
\x70\x56\x98\xa3\x40\xda\x20\x8e\x51\x0a\x96\x5d\x2e\x6a\x4d\x00\
\x58\x3c\x36\x13\x6f\x92\xa9\x22\xe4\xdd\x71\x24\x44\xfc\xbe\xdf\
\x62\x8b\x2d\xb6\xd8\x62\x8b\x2d\xb6\x98\x0a\xfb\xf6\xfd\x1b\x7a\
\x3c\x86\x67\xee\xbb\xee\x69\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
\x42\x60\x82\
\x00\x00\x25\x17\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\xb2\x00\x00\x00\xb2\x08\x02\x00\x00\x00\x69\xe8\x02\x3f\
\x00\x00\x01\x35\x69\x43\x43\x50\x49\x43\x43\x20\x50\x72\x6f\x66\
\x69\x6c\x65\x00\x00\x78\x9c\x63\x60\x60\x32\x61\x80\x82\xdc\xbc\
\x92\xa2\x20\x77\x27\x85\x88\xc8\x28\x05\xf6\x7b\x0c\x6c\x0c\x2c\
\x0c\x82\x0c\xda\x0c\x16\x89\xc9\xc5\x05\x0c\x98\x80\x11\xc1\xfc\
\x76\x0d\xc2\xbb\xac\x8b\x45\x1d\x21\xc0\x95\x92\x5a\x9c\x0c\xa4\
\xff\x00\x71\x65\x52\x76\x41\x09\xd0\xe8\x0a\x20\x5b\xa4\xbc\x04\
\xcc\xee\x01\xb1\x93\x0b\x8a\x40\xec\x05\x40\xb6\x68\x11\xd0\x81\
\x40\xf6\x0e\x90\x78\x3a\x84\x7d\x06\xc4\x4e\x82\xb0\x1f\x80\xd8\
\x45\x21\x41\xce\x40\xf6\x17\x20\xdb\x21\x1d\x89\x9d\x84\xc4\x86\
\xda\x0b\x02\xf2\xc5\x20\x8f\x7b\xba\x3a\x9b\x19\x5a\x9a\x99\xe9\
\x1a\xe9\x1a\x2a\x24\xe5\x24\x26\x67\x2b\x14\x27\x27\xe6\xa4\xa6\
\x90\xe1\x2b\x02\x00\x14\xc6\x10\x16\xb3\x18\x10\x1b\x33\x30\x30\
\x2d\x41\x88\x21\xc2\xb3\x24\xb5\xa2\x04\xc4\x72\x29\xca\x2f\x48\
\xca\xaf\xd0\x51\xf0\xcc\x4b\xd6\x43\xd1\x9f\xbf\x88\x81\xc1\xe2\
\x2b\xd0\x8c\x09\x08\xb1\xa4\x99\x0c\x0c\xdb\x5b\x19\x18\x24\x6e\
\x21\xc4\x54\x80\x61\xc7\xdf\xc2\xc0\xb0\xed\x7c\x72\x69\x51\x19\
\xd4\x19\x52\x40\x7c\x94\xf1\x0c\x73\x12\xeb\x64\x8e\x6c\xee\x6f\
\x02\x0e\xa2\x81\xd2\x26\x8a\x1f\x35\x27\x18\x49\x58\x4f\x72\x63\
\x0d\x2c\x8b\x7d\x9b\x5d\x50\xc5\xda\xb9\x69\x56\xcd\x9a\xcc\xfd\
\x75\x97\x0f\xbe\x34\xff\xff\x1f\x00\x81\x49\x5c\xa9\xc6\xc2\x24\
\x8e\x00\x00\x23\x9d\x49\x44\x41\x54\x78\x9c\xed\x7d\x79\x74\x14\
\x55\xfe\xef\xf7\xde\xaa\x5e\x92\x74\x56\x02\x21\x40\x82\x09\x09\
\x24\x20\x61\x40\xa2\x6c\x13\xe1\x08\x8e\x22\x22\xb8\xa0\x1c\x1d\
\x67\x64\x66\xde\x19\xfc\xe9\x1c\x70\x3c\x8a\x8c\x0a\xe8\x30\xa8\
\x38\xa3\x8e\x07\x75\x5c\xdf\x3c\xdc\x1f\x8c\x4f\x07\x65\x11\xd1\
\x04\x09\x61\x58\x4d\x24\x0c\x10\xc8\x4a\x42\xf6\x90\xa4\xf7\xaa\
\xfa\xbe\x3f\xbe\xe9\xb2\x49\x3a\x49\x27\xe9\x2d\xa1\x3e\x27\xc7\
\x23\xdd\xd5\x55\x75\xef\xfd\xd4\xe7\xbb\xd4\xf7\xde\xcb\x10\x11\
\x86\x0a\x14\x45\x41\x44\x44\x64\x8c\x09\x82\xd0\xf5\xdb\xf6\xf6\
\xf6\xe6\xe6\xe6\xba\xba\xba\xc6\xc6\xc6\x96\x96\x96\xd6\xd6\xd6\
\x4b\x97\x2e\x59\xad\x56\x87\xc3\x61\xb7\xdb\x19\x63\x00\x60\x34\
\x1a\x0d\x06\x83\xc9\x64\x8a\x8c\x8c\x8c\x89\x89\x89\x8d\x8d\x1d\
\x36\x6c\xd8\xf0\xe1\xc3\xa3\xa3\xa3\xc3\xc3\xc3\xbb\x5e\x54\x92\
\x24\x00\x60\x8c\x71\xce\xe9\x0c\x43\x00\x6c\xb0\xd3\x02\x11\x15\
\x45\x01\x80\x4e\x3c\xb0\xd9\x6c\x17\x2e\x5c\x38\x7d\xfa\x74\x69\
\x69\x69\x71\x71\x71\x59\x59\xd9\xc5\x8b\x17\x6b\x6b\x6b\x5b\x5b\
\x5b\xad\x56\x2b\x8d\xa5\x97\x30\x18\x0c\x61\x61\x61\xc3\x86\x0d\
\x4b\x4c\x4c\x4c\x4c\x4c\x4c\x4f\x4f\x4f\x4f\x4f\x4f\x4b\x4b\x4b\
\x4b\x4b\x1b\x39\x72\xa4\xfb\x91\x8a\xa2\x28\x8a\x42\xfc\x18\xd4\
\x14\x19\xac\xb4\x40\x44\x59\x96\x3b\xa9\xc2\x85\x0b\x17\x8e\x1f\
\x3f\x7e\xf8\xf0\xe1\xa3\x47\x8f\x16\x17\x17\x57\x55\x55\x39\x9d\
\x4e\x8f\x3f\x67\x2e\xf4\x7a\x15\xe2\x9c\x47\x98\x4c\xa6\xf1\xe3\
\xc7\x4f\x9c\x38\xf1\xda\x6b\xaf\x9d\x3e\x7d\xfa\xa4\x49\x93\xa2\
\xa2\xa2\xd4\x6f\x65\x59\x06\x80\x41\x2a\x21\x83\x8c\x16\xc4\x06\
\xce\x39\xe7\x9c\x3e\x69\x6e\x6e\x2e\x28\x28\xf8\xf6\xdb\x6f\xf3\
\xf2\xf2\x4e\x9e\x3c\xd9\xde\xde\xee\x7e\xbc\x7a\x24\xba\xa0\x9e\
\xc7\xfb\x8b\xd2\xb8\xaa\x34\xa2\xff\xca\xb2\xdc\xe9\x24\xa3\x46\
\x8d\xba\xe6\x9a\x6b\xe6\xce\x9d\x3b\x77\xee\xdc\xc9\x93\x27\xeb\
\x74\x3a\xfa\x7c\x30\xf2\x63\xd0\xd0\x82\x3a\x57\xd5\x86\x0b\x17\
\x2e\xec\xdd\xbb\xf7\x8b\x2f\xbe\xc8\xcf\xcf\xbf\x78\xf1\xa2\x7a\
\x18\xf1\x00\xdd\xe0\xbf\x5b\x22\xa2\x10\xed\x3a\x59\xa5\x89\x13\
\x27\xce\x9b\x37\x6f\xf1\xe2\xc5\xb3\x67\xcf\x8e\x88\x88\x50\x9b\
\xa0\x1e\x1f\xe2\x08\x75\x5a\x90\x8c\xab\x6c\x68\x68\x68\xd8\xb9\
\x73\xe7\xf6\xed\xdb\x73\x73\x73\x5b\x5a\x5a\xe8\x43\x95\x0a\xe4\
\x72\x06\xeb\x56\x55\xaf\xd3\x9d\x22\x29\x29\x29\x37\xdf\x7c\xf3\
\xd2\xa5\x4b\xe7\xce\x9d\x2b\x8a\x22\x74\xe1\x77\x88\x02\x43\x15\
\x8a\xa2\x48\x92\xa4\xfe\x73\xef\xde\xbd\x2b\x56\xac\x48\x48\x48\
\x50\xef\x5c\x10\x04\x41\x10\x42\x50\x99\x89\x1f\xa2\x28\xba\x0b\
\xc3\xa4\x49\x93\x9e\x7d\xf6\xd9\x92\x92\x12\xb5\x45\x92\x24\xa9\
\xa1\x53\xa8\x21\x14\x69\x21\xcb\xb2\x4a\x88\x96\x96\x96\x2d\x5b\
\xb6\x64\x67\x67\xab\xfd\x1b\xb2\x6c\xf0\x88\x4e\xfc\x30\x99\x4c\
\xcb\x97\x2f\xdf\xb3\x67\x8f\xda\xd8\xd0\x24\x47\x68\xd1\xc2\x5d\
\x21\x2a\x2a\x2a\x1e\x7f\xfc\xf1\x31\x63\xc6\x50\x87\x32\xc6\x44\
\x51\x1c\x2c\x6c\xe8\x0a\xce\xb9\xbb\xe1\x98\x39\x73\xe6\x07\x1f\
\x7c\x60\xb1\x58\xa8\xb1\xa1\x46\x8e\x50\xa1\x85\x3b\x21\xce\x9e\
\x3d\xfb\xf0\xc3\x0f\xc7\xc6\xc6\x52\x0f\x0a\x82\x30\x28\xdc\x34\
\x6f\x40\x11\xb5\xda\x9c\x8c\x8c\x8c\xd7\x5e\x7b\xad\xbd\xbd\x9d\
\x1a\xee\x6e\x34\x83\x8b\x90\xa0\x85\xbb\x42\xac\x5e\xbd\xda\x64\
\x32\x51\xaf\x0d\x22\x63\xd1\x57\xb8\x8b\xc7\xf8\xf1\xe3\xdf\x7c\
\xf3\x4d\xea\x04\x59\x96\x29\xf4\x0d\x2e\x82\x4c\x0b\x59\x96\x49\
\x3c\x9b\x9b\x9b\xd7\xaf\x5f\xef\xae\x10\x43\x95\x10\xee\x70\x27\
\x47\x76\x76\xf6\xe7\x9f\x7f\x4e\xdd\x12\x74\x9b\x12\x34\x5a\xb8\
\x5b\x8d\xad\x5b\xb7\x8e\x1b\x37\x8e\x7a\xe7\x0a\x21\x84\x3b\xdc\
\xc9\x71\xcb\x2d\xb7\x1c\x3b\x76\x8c\xba\x25\x88\x36\x25\x38\xb4\
\x50\x1b\x7c\xf4\xe8\xd1\x05\x0b\x16\x50\x8f\x5c\x81\x84\x70\x87\
\x9a\x90\xd5\xeb\xf5\x8f\x3d\xf6\xd8\xa5\x4b\x97\x30\x78\xb2\x11\
\x68\x5a\xa8\x22\x61\xb5\x5a\xd7\xae\x5d\xab\xd7\xeb\x61\x68\x39\
\x95\x03\x84\x2a\x1b\x13\x26\x4c\xf8\xf2\xcb\x2f\xa9\xd3\x02\x2f\
\x1b\x01\xa5\x85\xea\x49\xec\xdf\xbf\x7f\xea\xd4\xa9\x9d\x3a\x42\
\x03\x81\x42\x71\xfa\xff\x95\x2b\x57\x36\x37\x37\x63\xc0\x65\x23\
\x70\xb4\x70\x3a\x9d\x88\x28\x49\xd2\x53\x4f\x3d\x45\x54\x18\xd4\
\x79\x08\x7f\x43\xb5\x29\x69\x69\x69\x3b\x77\xee\x44\x44\x45\x51\
\x02\x16\xa4\x04\x82\x16\x8a\xa2\x10\x27\xce\x9e\x3d\x3b\x6f\xde\
\x3c\x70\xa5\x87\x83\xdd\xf3\x83\x00\xaa\x6c\x3c\xf9\xe4\x93\xea\
\x73\x15\x80\x21\xf3\x3b\x2d\x54\x8e\x6f\xdf\xbe\x3d\x3e\x3e\x1e\
\x34\x91\xe8\x23\x54\xd9\x98\x3f\x7f\x7e\x59\x59\x19\xba\x74\xd7\
\xaf\xf0\x2f\x2d\x54\xd1\x5b\xbb\x76\x2d\x35\x52\xf3\x24\xfa\x07\
\x92\x8d\xc4\xc4\xc4\xaf\xbf\xfe\x1a\xfd\xef\x6a\xf8\x91\x16\x24\
\x77\xcd\xcd\xcd\xb7\xde\x7a\x2b\x68\xe1\xc6\x80\x41\x4f\x94\x20\
\x08\xaf\xbc\xf2\x0a\x22\x52\x81\xa0\x9f\xc6\xce\x5f\xb4\x20\xa1\
\x3b\x73\xe6\x4c\x56\x56\x16\xb8\xd9\x48\x0d\x03\x81\x5a\xe2\xf5\
\x87\x3f\xfc\x81\xfa\xd9\x4f\x4e\xa8\x5f\x68\x41\x9c\xc8\xcd\xcd\
\xa5\x0a\x58\x8d\x13\x3e\x84\x1a\xbe\xde\x76\xdb\x6d\x6a\xca\xcb\
\xe7\x23\xe8\x7b\x5a\x10\x27\x3e\xfb\xec\x33\x2a\x9f\xd7\x9c\x09\
\x7f\x80\x0a\x45\x67\xcd\x9a\x55\x57\x57\x87\x7e\x60\x86\x8f\x69\
\x41\x9c\xf8\xe7\x3f\xff\x49\x5a\xa7\x39\x13\xfe\x03\x69\x46\x66\
\x66\xe6\xf9\xf3\xe7\xd1\xd7\xcc\xf0\x25\x2d\x88\x13\x6f\xbf\xfd\
\x36\xb8\x85\x55\x1a\xfc\x07\x62\x46\x6a\x6a\xea\xb9\x73\xe7\xd0\
\xa7\x81\xab\xcf\x68\x41\xf7\xf4\xc6\x1b\x6f\xc0\x60\x2b\x7e\x1f\
\xd4\x20\x1b\xad\x32\xc3\x57\x9a\xe1\x1b\x5a\x10\x27\xde\x7b\xef\
\x3d\xd0\x38\x11\x70\xf8\x83\x19\x3e\xa0\x85\xea\x4f\xc0\x15\xff\
\x72\x3c\x58\x20\x6b\x32\x6e\xdc\xb8\xea\xea\x6a\xf4\x45\xd4\x3a\
\x50\x5a\x10\x27\xf6\xec\xd9\xc3\x5d\x08\x76\x17\x5d\xa1\x20\x66\
\x64\x67\x67\x37\x37\x37\x0f\x3c\xd3\x35\x20\x5a\x90\x5e\x15\x14\
\x14\x98\x4c\x26\xed\xed\x57\xd0\x41\xcc\x98\x3f\x7f\xbe\xd3\xe9\
\x54\x6b\x18\x02\x4d\x0b\x52\xaa\xb2\xb2\xb2\xd1\xa3\x47\x83\x16\
\x8b\x86\x06\x88\x19\xf7\xdf\x7f\x3f\x0e\x2c\x30\xe9\x27\x2d\xe8\
\xbd\x68\x5b\x5b\xdb\xf4\xe9\xd3\x41\xcb\x59\x85\x12\x88\x19\xcf\
\x3c\xf3\xcc\x40\x98\xd1\x4f\x5a\xd0\xf5\xee\xb9\xe7\x1e\xd0\x72\
\xdb\x21\x06\x35\x3b\xbe\x7d\xfb\xf6\x7e\x33\xa3\x3f\xb4\xa0\x2b\
\x3d\xf7\xdc\x73\xe0\xca\xc2\x6a\x08\x29\x50\x8e\x20\x32\x32\xb2\
\xb8\xb8\x18\xfb\x15\x98\xf4\x99\x16\xe4\x66\x7e\xfd\xf5\xd7\x34\
\x41\x4a\x0b\x47\x43\x13\x64\xd6\xb3\xb2\xb2\x2c\x16\x4b\x3f\x8a\
\x33\xfa\x46\x0b\xf2\x6f\x6b\x6a\x6a\x46\x8f\x1e\xad\x85\x1e\x21\
\x0e\x32\x25\xbf\xfd\xed\x6f\xb1\xef\xa6\xa4\x6f\xb4\x20\xa9\x58\
\xb4\x68\x11\x68\x6e\xe6\x60\x00\x31\xe3\xa3\x8f\x3e\xc2\x3e\x66\
\x3f\xfb\x40\x0b\x3a\xef\x96\x2d\x5b\x40\x73\x33\x07\x09\x48\xd1\
\xe3\xe2\xe2\xca\xcb\xcb\xb1\x2f\x4e\x86\xb7\xb4\x20\x4e\x9c\x3c\
\x79\x32\x3c\x3c\x5c\x73\x29\x06\x11\x48\xd4\x6f\xbc\xf1\xc6\x4e\
\xcb\xc8\xf8\x80\x16\x74\x46\x45\x51\xe6\xcc\x99\x03\x9a\xf9\x18\
\x6c\x20\x69\x7f\xfd\xf5\xd7\xd1\x6b\x27\xc3\x2b\x5a\x10\xcb\x5e\
\x7b\xed\x35\xd0\x38\x31\x08\x41\xef\xaa\xe2\xe2\xe2\x2a\x2a\x2a\
\xbc\x9c\x83\xd4\x3b\x2d\x28\xfa\xa8\xac\xac\x8c\x8e\x8e\xd6\x5e\
\x9a\x0f\x52\xd0\xc3\x7c\xe7\x9d\x77\xa2\x77\xbe\x67\xef\xb4\xa0\
\xb3\x2c\x5b\xb6\x0c\x34\xa9\x18\xcc\xa0\xb1\xa3\xe9\xce\xbd\x32\
\xa3\x17\x5a\xd0\xef\xf7\xed\xdb\x07\xda\xcb\xb0\x41\x0e\x1a\xbe\
\xcc\xcc\x4c\xab\xd5\xda\xeb\xfb\xd5\x5e\x68\x21\xcb\xb2\xc3\xe1\
\x98\x36\x6d\x1a\x68\xb4\x18\xfc\x20\xc1\x78\xf1\xc5\x17\xb1\x37\
\xdf\xb3\x27\x5a\x90\x54\x50\x29\x9e\x66\x3e\x86\x00\xc8\x35\x1c\
\x3e\x7c\x78\x5d\x5d\x5d\xcf\xa5\x3a\xdd\xd2\x82\x7e\xd6\xd6\xd6\
\x36\x76\xec\x58\x2d\xcf\x3d\x64\x40\x8f\xf7\x23\x8f\x3c\x82\x3d\
\x7a\x18\xdd\xd2\x82\x44\xe6\xa5\x97\x5e\x02\x4d\x2a\x86\x10\x68\
\x9d\xf2\xc8\xc8\xc8\xca\xca\xca\x1e\x82\x55\xcf\xb4\x50\xa5\x22\
\x29\x29\x49\x93\x8a\x21\x06\xca\x6e\xad\x5a\xb5\xaa\x07\xc1\xf0\
\x4c\x0b\x92\x8a\xbf\xfd\xed\x6f\xa0\x49\xc5\x90\x03\x79\x18\x26\
\x93\xa9\xbc\xbc\xbc\x3b\xc1\xf0\x40\x0b\x92\x0a\xb3\xd9\x9c\x9c\
\x9c\xac\x49\xc5\x90\x04\x09\xc6\xea\xd5\xab\xbb\x13\x0c\x0f\xb4\
\xa0\xe3\xd4\x79\x1f\xc1\x6e\x82\x06\xdf\x83\x3c\x8c\xf8\xf8\xf8\
\x86\x86\x06\x8f\x21\x89\x67\xb5\x90\x24\x89\x72\x15\x1a\x2d\x86\
\x2a\x68\x64\xff\xfa\xd7\xbf\xa2\xa7\x1c\x46\x67\x5a\x68\x69\xcd\
\x2b\x04\x6a\xd2\xd3\x6e\xb7\xf7\xae\x16\x44\x8b\xbb\xee\xba\x0b\
\xb4\x5a\x9b\xa1\x0e\x62\xc6\x8e\x1d\x3b\xba\x96\x62\x5c\x46\x0b\
\x72\x4a\xcb\xcb\xcb\x69\x7b\x2d\xed\x65\xe9\xd0\x06\xd9\x91\x25\
\x4b\x96\x60\x97\xc2\xad\xcb\x68\x41\x36\xe6\x85\x17\x5e\x00\x4d\
\x2a\xae\x00\xd0\x63\x1f\x11\x11\x41\xeb\x3a\xba\x33\xe3\x27\x5a\
\x90\x47\x2a\x49\x12\x2d\xbb\xac\x39\x9b\x57\x02\xe8\xe1\xef\xfa\
\xf2\xec\x27\x5a\x10\x59\x8e\x1c\x39\xa2\xd5\xda\x5c\x39\xa0\x87\
\x7f\xda\xb4\x69\x9d\x5e\xb5\xff\x14\x6b\xd0\xf6\xc0\xff\xfa\xd7\
\xbf\xdc\x37\x98\xd4\x30\xb4\xa1\x28\x0a\x63\xec\xc4\x89\x13\x45\
\x45\x45\x8c\x31\x75\x8b\xe8\x0e\x5a\x20\xa2\x20\x08\xb2\x2c\x7f\
\xf1\xc5\x17\xe0\xa2\x88\x86\x21\x0f\x1a\x77\x45\x51\x3e\xff\xfc\
\x73\x70\x1f\xf7\x4e\x16\xc4\xcb\xcd\xc7\x35\x0c\x19\x90\x65\xc8\
\xce\xce\x76\x4f\x77\x76\x84\x1b\x8a\xa2\x70\xce\x69\x83\x02\x51\
\x14\x3b\x6d\x0d\x1d\x9a\x08\xf1\xf7\x35\xc1\xdd\xc2\xd9\x7b\x90\
\x1d\xf9\xe1\x87\x1f\xce\x9e\x3d\x3b\x7e\xfc\x78\x62\x02\xa8\x61\
\x08\x22\x6a\xd3\x40\xae\x4c\x50\x3c\xb2\x65\xcb\x16\x35\x1e\x61\
\xc4\x09\xce\xf9\x85\x0b\x17\x26\x4c\x98\x60\x36\x9b\x19\x0b\xf5\
\x8d\xd7\xe9\x0e\x23\x23\x23\xe7\xcc\x99\x43\xdb\x5a\x85\x8e\xd5\
\x53\x1f\xb3\xa3\x47\x8f\xd6\xd4\xd4\x84\x7e\x67\x02\x00\xb9\x95\
\x4b\x97\x2e\xa5\x80\x83\x73\x2e\x82\xcb\x82\xe4\xe7\xe7\x9b\xcd\
\x66\x3a\x22\xd8\xf7\xd9\x0b\x38\xe7\xb2\x2c\x67\x67\x67\xaf\x5e\
\xbd\x7a\xe7\xce\x9d\xa2\x28\x86\x8e\x8f\xcc\x39\x77\x3a\x9d\x33\
\x67\xce\x4c\x49\x49\x79\xf5\xd5\x57\x05\x41\x08\x7d\x8b\x4c\xc4\
\x2d\x28\x28\x68\x6f\x6f\x37\x99\x4c\x3f\xf9\x16\x00\x90\x9b\x9b\
\x0b\xa1\xf4\xd8\xf5\x0a\x83\xc1\xf0\xd5\x57\x5f\xbd\xfc\xf2\xcb\
\xc1\xbe\x11\x0f\x38\x7d\xfa\x74\x7a\x7a\x3a\xb8\x7a\x3c\xc4\x41\
\xee\x45\x4d\x4d\x4d\x61\x61\xe1\xac\x59\xb3\x14\x45\x11\x01\x40\
\x10\x04\x44\x2c\x28\x28\x00\xff\x84\xa6\x9c\xf3\x8e\xdc\x99\x4f\
\x81\x88\x26\x93\x49\x10\x04\x0a\xb1\x7c\x7b\xf2\x7e\x83\x94\x2c\
\x3a\x3a\x7a\xe0\xa7\x52\x95\x3b\x00\x12\x4e\xaa\x76\xf0\xe0\xc1\
\x59\xb3\x66\x21\xa2\x48\x16\xa4\xaa\xaa\xaa\xb8\xb8\x18\xfc\xc3\
\x6e\x1a\x33\x7f\x58\x59\xaa\x39\x03\x80\xd0\x31\x7c\x34\x84\x3e\
\xa1\xa9\x2c\xcb\x46\xa3\x51\xa7\xd3\xb5\xb5\xb5\x0d\xfc\x6c\xde\
\xe0\xe0\xc1\x83\x40\xab\x6f\xd1\x50\xfd\xf8\xe3\x8f\x56\xab\x95\
\x73\xee\xdb\xc7\x8e\x96\xf7\x5a\xb8\x70\xe1\xb2\x65\xcb\xf6\xef\
\xdf\xff\xc6\x1b\x6f\x0c\x0a\xdf\x25\xe8\xa0\x81\x58\xbe\x7c\x79\
\x66\x66\x66\x6c\x6c\x6c\x43\x43\xc3\xb3\xcf\x3e\x0b\xfe\x4c\x33\
\xd2\x99\x7f\xf8\xe1\x07\x87\xc3\xa1\xd7\xeb\x39\xd1\xe2\xf8\xf1\
\xe3\xe0\x87\xba\x1b\x44\xe4\x9c\x9f\x3c\x79\xb2\xb6\xb6\x36\x25\
\x25\x05\x06\x95\xef\x12\x44\x50\xbf\x2d\x5b\xb6\xec\xbd\xf7\xde\
\x7b\xf8\xe1\x87\xef\xbf\xff\xfe\x29\x53\xa6\x74\x64\x14\xfc\x76\
\x45\x00\x28\x2d\x2d\x2d\x2f\x2f\x07\x35\xf9\x4d\xb4\xf0\x07\x24\
\x49\x2a\x29\x29\xa9\xae\xae\x0e\x80\x43\xee\x3d\xe7\xbc\xcc\xe4\
\x06\x6b\x7f\x35\x0a\x71\xef\xbc\xf3\xce\x8b\x17\x2f\x4e\x9e\x3c\
\x39\x37\x37\xb7\xba\xba\xda\xaf\xb1\x2e\x11\x51\x96\xe5\xff\xfe\
\xf7\xbf\x00\xc0\x29\xba\xa3\x7f\xf8\x43\xa3\x68\x00\xf4\x7a\x7d\
\x00\x74\xc2\xfb\x5e\xf3\xd2\x05\xf6\x95\x97\xd0\x0f\x10\x1d\xaf\
\xbb\xee\xba\xe7\x9e\x7b\xae\xaa\xaa\xaa\xae\xae\x0e\xfc\x1c\xd7\
\xd0\x15\x4f\x9e\x3c\x09\xa4\x16\x4d\x4d\x4d\x24\x1d\xfe\xbb\x2a\
\x65\x51\xbd\x65\x06\xf3\xf4\xd7\x3d\x28\x2d\xfb\xc0\x03\x0f\xe4\
\xe6\xe6\xd2\x3a\xa1\xbd\x5e\xe8\x93\x4f\x3e\x79\xe6\x99\x67\xa0\
\x7b\xbb\x49\x67\xb8\xee\xba\xeb\xae\xbe\xfa\x6a\x6f\x4e\xe8\x73\
\x90\x37\x9d\x9b\x9b\x7b\xcb\x2d\xb7\x64\x64\x64\xfc\xe6\x37\xbf\
\xa1\xf7\x12\xfe\xbe\xee\xa9\x53\xa7\x80\x68\x51\x56\x56\xd6\xda\
\xda\x0a\x3d\xd2\x82\x31\x60\x9c\xf5\xf9\x8f\x01\xe3\x0c\x11\x75\
\x7a\x9d\x4e\x27\x22\xa2\xfa\x61\x37\xc7\x33\xc6\x19\x20\x74\xfd\
\x63\x9c\x75\x47\x0e\x1a\xb3\xd4\xd4\xd4\x9c\x9c\x1c\x8a\x57\x45\
\x51\xec\x9a\xc2\xe7\x9c\x8b\xa2\x48\x9b\xf3\xce\x9e\x3d\x7b\xca\
\x94\x29\xea\x6f\xc9\x35\xa6\x5f\xa9\xf6\x45\x10\x84\xbd\x7b\xf7\
\xbe\xf5\xd6\x5b\xe0\x5a\x50\x86\xbe\x55\x8f\xa4\x1f\x76\x77\x39\
\x2f\xd1\xd1\x64\x76\xd9\x27\x00\x10\x19\x19\xf9\xfc\xf3\xcf\x13\
\xcb\x23\x22\x22\x6c\x36\x5b\xcf\x03\x04\x00\xc0\x80\x09\xac\xf3\
\x1f\xf7\x96\xd0\x74\x72\xda\xe2\x4a\x04\x00\x92\x8a\x9e\x62\x04\
\x06\x88\x00\xfd\xd2\x12\xa7\xc3\x79\xfd\x9c\xb9\x29\x63\x52\x19\
\x67\xf3\xe7\x2e\xd8\xfb\xdd\xd7\x74\x0b\xdd\xdf\x1d\x30\xce\x0c\
\x91\x3a\x44\x84\x8e\xee\x62\xb2\x43\x71\x5a\x7b\x71\x4d\x6c\x36\
\x9b\xc3\xe1\x90\x5d\x80\xcb\x43\x62\xf2\xed\x55\x8b\x60\x36\x9b\
\x2d\x16\x4b\x47\xe3\x18\x43\x44\x77\xd7\x87\x3e\x91\x65\x79\xc6\
\x8c\x19\x74\x98\xfb\x7b\x2f\xf5\x48\xea\x31\xb5\xd3\x3c\xda\x7e\
\xc6\x19\x07\xd6\x6d\x6b\x15\x40\x44\x40\x00\x00\x26\x74\x8c\x1f\
\x3d\x35\x4e\xd9\x69\x8a\x32\xad\x5b\xff\xb4\x53\x92\x0e\x1c\x3c\
\xf0\xe1\xc7\x1f\x72\x91\x23\x2a\xea\x61\x1e\x7a\x4e\x46\x94\xfb\
\xaf\xf7\xd4\x39\xe5\xe5\xe5\x66\xb3\x59\x04\x80\xb2\xb2\x32\xe8\
\x59\x27\x11\x22\x13\xc3\xb8\x9e\x43\x5f\x2f\xca\x00\x10\xce\x34\
\x9e\x7c\xe2\xc5\x47\x11\x50\x14\xc5\xa8\xe4\x70\xc6\x98\xe7\xf3\
\x70\x40\x19\x13\x26\xc7\x4e\xf9\x55\x9a\x31\x46\x87\x0a\x00\x03\
\x05\x99\xc0\x50\x91\xf1\xdc\xee\xea\x23\x6f\x9c\x56\x9c\x08\x88\
\x02\x78\x38\x01\x25\xb5\x8c\x46\xe3\xbd\xf7\xde\x3b\x72\xe4\xc8\
\xbc\xbc\xbc\xfc\xfc\x7c\x1a\x2a\x2a\x30\x49\x4b\x4b\x5b\xb4\x68\
\x11\x22\x7e\xf2\xc9\x27\x4e\xa7\x93\x04\x99\x0e\x88\x8e\x8e\x5e\
\xba\x74\x69\x52\x52\x52\x71\x71\xf1\x17\x5f\x7c\xe1\x74\x3a\xe9\
\x73\xbd\x5e\x6f\xb7\xdb\x01\x00\x11\xb3\xb2\xb2\x8c\x46\xe3\xe9\
\xd3\xa7\xef\xbe\xfb\xee\x98\x98\x98\x03\x07\x0e\x1c\x38\x70\x20\
\x22\x22\x62\xf9\xf2\xe5\xf1\xf1\xf1\x87\x0e\x1d\xfa\xf6\xdb\x6f\
\x3b\x79\xb2\x8c\x81\xe4\xec\x85\xcd\x91\xa3\xc2\x74\xe1\xba\x96\
\xd2\x36\xc5\x35\xa2\x44\x13\x59\xb2\xfd\xcf\xca\xff\x89\x32\xc4\
\xc8\xb2\x6c\x96\xbc\xca\x5b\xe8\x22\xc4\xd1\xd9\xf1\x86\x28\x1d\
\x43\x04\x06\x0a\x02\x63\xac\xad\xda\x52\x7d\xa4\x91\xc6\x82\x61\
\xef\x03\xd8\xd4\xd4\x54\x57\x57\x27\x02\x40\x45\x45\x45\xb7\x47\
\x31\x10\x74\xfc\xfa\x0d\x53\x52\xe7\x8f\x54\x24\xec\x9f\x85\x95\
\x29\x9d\x05\x80\x80\x02\xef\x5e\x6c\x19\x28\x12\x88\x06\x81\x31\
\xa6\x38\x15\x04\xc6\x00\x0d\x82\x62\x91\x04\x81\xe1\xb5\x0f\x67\
\xc8\x76\xf9\xd8\x3f\xce\x80\xc0\x1c\x1d\x87\x5f\x06\xca\xe0\xe6\
\xe6\xe6\x1a\x8d\x46\x51\x14\x37\x6d\xda\xb4\x71\xe3\xc6\x27\x9f\
\x7c\x92\xea\x04\x96\x2c\x59\xb2\x6d\xdb\xb6\xa6\xa6\xa6\xda\xda\
\xda\x07\x1f\x7c\x70\xe4\xc8\x91\xc7\x8e\x1d\xa3\x5f\xa5\xa7\xa7\
\xef\xda\xb5\x2b\x26\x26\xe6\xf4\xe9\xd3\xeb\xd7\xaf\x3f\x72\xe4\
\xc8\xa2\x45\x8b\x1a\x1a\x1a\x00\xe0\xcb\x2f\xbf\xcc\xcf\xcf\xbf\
\xf3\xce\x3b\x01\x60\xd5\xaa\x55\xcb\x97\x2f\x2f\x2e\x2e\xd6\xeb\
\xf5\xb1\xb1\xb1\xcf\x3f\xff\xfc\xfa\xf5\xeb\x17\x2e\x5c\x18\x15\
\x15\x05\x00\x9b\x36\x6d\xda\xb4\x69\xd3\xda\xb5\x6b\x55\x67\x85\
\x31\x40\x84\x31\xd7\x8e\x88\xba\x2a\x0c\x65\xec\x7c\xbb\x0c\x50\
\x86\x51\x53\x87\x25\xe7\x24\x08\x3a\xde\x54\xd2\x5a\xb2\xfb\x82\
\xd3\x26\xbb\xf7\xb0\xc0\x05\x9b\xcd\xc6\x18\x33\x18\xe3\x7b\x4d\
\xf6\x70\x91\x67\x2c\x4e\x1a\x31\x39\x16\x14\xb4\x2b\x82\x02\xcc\
\xc8\x25\x62\x41\xe9\x37\x35\xfb\x9e\x3c\x8e\x36\xb9\x67\x86\x92\
\xd4\x59\x2c\x96\xca\xca\x4a\x11\x00\xaa\xaa\xaa\x3c\x0f\x13\x67\
\xa8\xe0\xe8\x19\xf1\x93\x96\x8d\xb5\x36\xd9\x05\x7d\x3f\x43\x35\
\x0e\xde\xfd\x90\x01\x20\x4a\x16\x19\x18\x70\x0e\x16\x59\x5c\x31\
\xa6\x64\xce\xf0\x9a\x0d\xff\x9d\x56\x69\x09\xe7\xcd\xf6\xe4\x1b\
\x12\x8f\xbc\x53\x02\x92\x72\x8f\x00\x46\x80\x52\xb8\xec\xbc\x4e\
\xa7\xd3\x60\x30\xbc\xfe\xfa\xeb\xe4\x0d\x3c\xfd\xf4\xd3\x1b\x36\
\x6c\xf8\xf4\xd3\x4f\x0b\x0b\x0b\xa3\xa3\xa3\xdf\x7d\xf7\xdd\xdd\
\xbb\x77\xdf\x7e\xfb\xed\x76\xbb\x3d\x27\x27\x67\xef\xde\xbd\xa4\
\x99\x8a\xa2\xac\x5b\xb7\xce\x64\x32\x0d\x1f\x3e\x5c\x51\x94\xc9\
\x93\x27\x17\x16\x16\xae\x5c\xb9\x92\x1c\xd2\xd6\xd6\x56\xb3\xd9\
\x4c\xe7\x6f\x6b\x6b\x13\x45\x71\xed\xda\xb5\xbb\x77\xef\x16\x04\
\x61\xdb\xb6\x6d\xeb\xd7\xaf\x5f\xb3\x66\xcd\xf3\xcf\x3f\x0f\x00\
\xaf\xbe\xfa\xea\x9a\x35\x6b\x36\x6f\xde\xdc\xd2\xd2\x42\x5d\xe7\
\x30\xcb\x23\xe6\x44\xde\xfe\xcf\x39\x8a\x2c\x63\x17\x12\x23\x80\
\xe2\x44\xc5\x81\x92\x4d\x46\x05\x87\x4f\x8c\x19\x39\x35\x8e\x77\
\x0d\xd7\x18\x73\xc9\x47\x4f\x40\x00\x74\xa2\xd3\x22\xdb\x5a\x1c\
\x92\xc2\xd2\x23\x9a\x22\x44\xa9\xb0\x25\x0e\x38\x0a\x51\x7a\x8b\
\x55\x76\x02\x00\xb0\x11\x80\x97\x00\xec\xdd\x9f\x87\x4c\xed\xc5\
\x8b\x17\x45\x00\xa0\x27\xa3\x3b\x77\xc6\xd1\x26\x29\x4e\x45\x17\
\x2e\x42\xd7\xc6\xf9\x02\x1c\x40\x01\xe0\x00\xc8\x40\x16\xd0\x29\
\xcb\x28\x23\x20\x30\x84\x36\x49\x57\x6f\x0b\x73\x28\x82\x80\xe8\
\x60\x7c\xac\xa4\xfc\x19\x31\x1b\xc0\x0e\xf0\x2b\x80\x6b\x2f\x37\
\x25\x7a\xbd\x5e\x92\x24\xe2\x04\x00\xbc\xf0\xc2\x0b\x4f\x3c\xf1\
\xc4\xed\xb7\xdf\x5e\x58\x58\x98\x93\x93\x13\x1b\x1b\xfb\xc4\x13\
\x4f\xd8\xed\x76\x51\x14\xf3\xf2\xf2\x4a\x4b\x4b\x69\xf7\x5e\x70\
\xe5\x98\xc7\x8d\x1b\x77\xf6\xec\xd9\xa2\xa2\xa2\xb1\x63\xc7\x92\
\x5b\x4a\xa1\xbc\xfa\xf4\x47\x44\x44\xd4\xd5\xd5\xed\xde\xbd\x5b\
\xa7\xd3\x39\x9d\xce\xbc\xbc\xbc\x85\x0b\x17\xbe\xf2\xca\x2b\xf4\
\xed\xae\x5d\xbb\x1e\x7a\xe8\xa1\x84\x84\x84\xe6\xe6\xe6\x8e\x1b\
\x42\x1c\xb7\x68\x24\x2a\x68\xae\xb5\x31\xb1\x4b\xc7\x21\x28\x4e\
\x72\xc0\x19\x30\x70\x5a\x25\x87\x19\x98\x00\x4c\xf4\x64\x20\xbd\
\x80\x6c\x47\x2e\x30\xce\x19\x03\xfe\xbf\x52\x4a\x12\xc2\xdb\xfe\
\x50\x38\xcb\x29\x1b\xce\xff\xf5\xc7\x1f\xff\xcf\xf9\x04\x80\x45\
\x0c\xb2\x01\xfe\x04\xe0\xe8\xb8\xbe\x07\x10\x2b\x6b\x6a\x6a\x44\
\x49\x92\x9a\x9a\x9a\xc0\x13\x2d\x50\x41\x60\x70\xf1\x78\x53\xde\
\x33\x85\xe3\x17\x27\xc9\x4e\xc5\x1f\x61\x5a\x3b\x40\x24\x80\x15\
\x80\x33\xd0\x29\x10\x93\x64\x32\xc6\x19\x64\xbb\x1c\x01\xf8\xef\
\x96\x94\xaf\x2e\x5d\xa5\x30\x08\x33\x21\x37\xe9\x0e\xfd\xbb\xca\
\x22\xe3\x51\xce\x16\x03\xcc\x03\x68\xf4\xc4\xd2\xb0\xb0\x30\xab\
\xd5\xca\x18\xb3\xdb\xed\xf5\xf5\xf5\xe3\xc6\x8d\x03\x80\xd4\xd4\
\x54\x45\x51\x6a\x6b\x6b\xc9\xc9\xa0\xd2\x76\x6a\x2f\xe7\xfc\xa9\
\xa7\x9e\x4a\x49\x49\x39\x75\xea\xd4\x99\x33\x67\xf2\xf2\xf2\x36\
\x6f\xde\x7c\xee\xdc\x39\x7a\xbd\x77\x59\x6f\x20\x52\x3d\x18\xfd\
\x8f\x5e\xaf\xe7\x9c\x1b\x8d\x46\x8a\x11\xa8\xec\xe3\xa7\x9f\x30\
\x00\x80\xca\xbc\xfa\x19\xf7\x0a\xe1\x23\x0c\x1e\xc2\x01\x04\x7b\
\x8b\x24\xd9\xe5\x0e\xa7\x9a\x33\xc6\xc0\x38\x4c\xc7\x75\xdd\x38\
\x5e\xbd\x41\x76\xa0\xb3\x4d\x92\x1d\xb2\x82\xec\xe3\xca\xb1\xc3\
\x04\x7b\x2b\x37\x4c\xfa\x73\x61\xc6\xbf\x2b\x6f\x15\x58\x9c\x8c\
\x3f\x47\xb8\xcd\xd5\x69\x3d\x5f\xa1\xa6\xa6\x46\xb4\xd9\x6c\x14\
\x9d\x7a\x06\x02\x00\x14\x7d\x58\x56\xf4\x61\x59\x7f\x6e\xd6\x0b\
\xcc\x02\xf8\x1a\x20\x03\xc0\x02\x50\x01\x90\x90\x15\x3b\x75\x45\
\xba\x29\x31\x0c\x5c\x0d\x60\x0c\x1c\x66\xe9\xec\x8e\xaa\xe2\xed\
\xe5\xc0\xe0\x84\x82\x7b\x05\x48\x02\x18\xed\xa9\x79\xf4\x88\xd3\
\xf0\xab\xd5\x87\x4e\xa7\x13\xdc\xc6\xd5\x3d\xac\xe0\x9c\x57\x54\
\x54\xe4\xe4\xe4\xcc\x98\x31\xe3\x86\x1b\x6e\xb8\xfb\xee\xbb\x8b\
\x8b\x8b\x6f\xbd\xf5\xd6\x3d\x7b\xf6\x78\xbc\x5b\x62\x95\x9a\x0d\
\x53\xcf\xd3\x99\x43\x32\xea\x22\xc4\xaa\xaf\x5a\xbe\x5a\x79\x28\
\x26\x2d\x42\x76\x5e\xee\x96\x31\x00\x05\x92\x66\x8d\x18\x9e\x19\
\xe3\x30\x3b\x29\x38\x57\x24\xe5\xd8\x5b\x25\xb2\x43\xea\x9f\x26\
\x73\x81\xa5\xfd\x62\x74\x74\xb2\xc9\xa8\xe0\x0f\xca\x68\xd9\x09\
\xa6\x30\xe5\xe4\x43\x19\xdf\xb5\x39\x2b\x72\x6b\x19\x67\x33\x15\
\x7c\x10\xe0\x29\x80\xda\xde\x98\x51\x5f\x5f\x2f\x5a\xad\xd6\xf6\
\xf6\xf6\xae\x0d\x73\x07\x39\x19\xfd\xb8\xd7\x9e\x21\x00\xc8\x00\
\xb7\x00\x4c\x07\x98\x0a\xf0\x67\x00\x00\xa8\x2d\x6c\xde\xb5\xea\
\x3f\x6e\xd1\x1a\x00\x80\xea\xa5\x73\x04\x06\xd0\x0e\x50\x0c\x30\
\xf6\xf2\xb6\x91\xaf\x40\xcf\x2e\x00\x24\x24\x24\x24\x26\x26\x16\
\x16\x16\x02\x40\x61\x61\x21\xe7\xfc\xea\xab\xaf\xde\xb7\x6f\x1f\
\x1d\x46\xb5\x04\x00\xc0\x18\x7b\xee\xb9\xe7\xf6\xec\xd9\xb3\x6f\
\xdf\xbe\x82\x82\x82\x8d\x1b\x37\x96\x97\x97\xaf\x5a\xb5\x8a\x68\
\xe1\x9e\x0c\xed\x94\x18\xed\x9a\x27\xf5\xd0\x81\x0c\x4e\xef\xa8\
\xec\xae\xf9\xa7\x3f\xaf\xbc\xf5\xcd\x99\x61\xb1\x06\xd9\xa9\x88\
\x46\xe1\xf0\x96\xff\x16\xbe\x7f\xde\xeb\xce\xf3\x80\x93\x9f\x94\
\xa7\xde\x30\x52\x17\xa1\x63\xa8\x30\x60\x92\x02\x7a\x93\x4e\xd4\
\x73\x04\x44\x84\x03\x00\x07\x00\x3c\x06\x71\x9d\xd0\xd4\xd4\x24\
\xb6\xb7\xb7\x3b\x1c\x8e\x9e\x8f\xf3\x07\x27\x00\x40\x61\xc0\x39\
\x7b\x16\xe0\x04\xc0\x5f\x11\xce\x29\x28\x00\x28\x9c\x01\x00\xfe\
\x14\xad\x75\x80\x09\x0c\x65\xa4\xb4\x83\x08\x20\x77\x69\x9e\x2c\
\xcb\xa2\x28\xbe\xff\xfe\xfb\xeb\xd6\xad\x03\x80\x37\xde\x78\xc3\
\x6c\x36\x7f\xfa\xe9\xa7\x8c\xb1\x83\x07\x0f\x16\x16\x16\xbe\xf7\
\xde\x7b\xb7\xdd\x76\x5b\x7d\x7d\xfd\x8a\x15\x2b\xc6\x8d\x1b\xf7\
\xfd\xf7\xdf\x03\x80\x24\x49\xf3\xe6\xcd\x7b\xf0\xc1\x07\x17\x2c\
\x58\x50\x56\x56\x96\x99\x99\x39\x6a\xd4\xa8\x0f\x3f\xfc\x90\xce\
\xa9\xd3\xe9\xd4\xc4\xa2\x28\x8a\xee\x5b\x2d\x09\x82\xe0\xfe\x4f\
\xcf\x15\xf3\x08\xa2\x5e\x54\xba\x04\x11\x24\x81\xad\x55\x96\x96\
\x8a\xf6\xa8\xe4\x70\x6c\x47\x45\x51\xca\xbf\xaf\x65\x02\xe3\xfd\
\x7d\x02\x11\xa0\xfd\xa2\xb5\xf0\x83\xd2\xee\x0e\xa0\x87\xb0\xe7\
\x78\x86\x98\xdd\xd6\xd6\x26\x5a\xad\xd6\x60\x55\x95\x21\x00\xca\
\x68\x03\xd8\x01\x90\xef\x8a\xe8\x3c\x74\x0a\x39\xe3\x6e\x89\x1a\
\xf4\x44\x79\x7a\xb3\x83\x88\x87\x0e\x1d\x8a\x89\x89\x69\x6e\x6e\
\x5e\xbe\x7c\xf9\x85\x0b\x17\xc8\x94\xdc\x75\xd7\x5d\xdb\xb6\x6d\
\x3b\x7e\xfc\x78\x5b\x5b\xdb\xf7\xdf\x7f\x9f\x9f\x9f\x4f\x96\x85\
\x31\xb6\x70\xe1\xc2\xf7\xdf\x7f\x7f\xdf\xbe\x7d\x56\xab\x35\x22\
\x22\xe2\xb3\xcf\x3e\xdb\xb4\x69\x13\xd9\x9a\x86\x86\x86\x4b\x97\
\x2e\xd1\xf9\x2f\x5d\xba\x54\x5f\x5f\xaf\x5e\xce\x6c\x36\xd7\xd5\
\xd5\xa9\x0a\x61\xb7\xdb\x9b\x9a\x9a\xba\xf6\x24\xca\xa8\x78\x4a\
\x31\x21\x03\xc6\x80\xeb\x18\xe3\xc0\x04\x60\x1c\x74\x61\x22\xca\
\xa8\x78\xec\x01\xef\x40\xe9\xe3\xce\x17\x72\x9d\xd0\xfb\x6a\x06\
\xab\xd5\x2a\xda\xed\xf6\xe0\x14\x40\x30\x00\x84\xa4\xeb\xe2\x47\
\xcf\x1d\xd9\x6c\x97\xd9\x8e\x2a\x2c\x69\xf3\x6c\xf4\x7a\xeb\x25\
\x1a\x8c\x2d\x5b\xb6\xbc\xf5\xd6\x5b\xcd\xcd\xcd\x29\x29\x29\xc3\
\x87\x0f\x2f\x2e\x2e\x6e\x6f\x6f\x67\x8c\x49\x92\xc4\x18\x3b\x73\
\xe6\x4c\x56\x56\xd6\xcf\x7e\xf6\x33\x59\x96\x8b\x8a\x8a\xc2\xc3\
\xc3\x55\x27\xb1\xb1\xb1\xf1\xe6\x9b\x6f\x4e\x4d\x4d\x4d\x48\x48\
\xa8\xae\xae\xa6\x9c\x2f\x3d\xf7\x37\xdf\x7c\x33\xb1\x07\x00\x9e\
\x7e\xfa\xe9\x8d\x1b\x37\xaa\x97\x7b\xe7\x9d\x77\x3e\xf9\xe4\x13\
\xb2\xbf\x00\xf0\xcd\x37\xdf\x64\x66\x66\x36\x36\x36\x7a\x5f\xb3\
\x82\x97\xb3\x7b\xe0\x92\x8c\x97\x3f\x3c\xfd\xc6\x65\xb4\x08\x64\
\xd5\x21\x39\x2b\x13\x16\x27\xcd\x7b\x76\x2a\x63\x78\x81\xb1\x69\
\x77\x5e\x55\xff\x50\x41\xed\x89\xe6\x7e\xfb\x31\x66\xb3\xd9\x6c\
\x36\x73\xce\x4b\x4b\x4b\x4b\x4b\x4b\xc1\x15\x85\x83\xcb\x0f\x55\
\x14\xe5\xc4\x89\x13\x00\xc0\x18\xb3\x58\x2c\x94\xd5\x56\x5f\xe0\
\x9d\x3f\x7f\xfe\xfc\xf9\xf3\x70\x79\x89\x61\x63\x63\xa3\x7a\xfe\
\xb6\xb6\x36\xf7\x2a\x29\xf5\x0c\x04\xbb\xdd\x4e\x2f\x39\x87\xc0\
\x74\x0a\x59\x96\x83\x31\xfd\x86\x01\x2a\x28\x1a\x85\xa9\xbf\x4d\
\x57\x1c\x72\x7b\x93\x04\xf5\x76\x53\x94\xee\x67\xbf\x4a\x1b\xd0\
\x59\x19\x53\xe3\x4f\x7a\xa7\xe5\xfe\xd4\x52\x0e\x94\xf2\x10\x44\
\x05\xd5\x0f\xe8\x98\x8c\xcb\x39\x55\x57\xb8\xc7\x29\xee\x87\x75\
\x49\x6c\x77\xf6\x24\x86\x52\x85\x91\x18\xf8\xd2\x64\x32\x14\xc6\
\x18\xbd\x3e\x42\x74\x38\x20\xda\x20\x39\x14\x66\xb7\x2b\x61\xc3\
\xf4\x30\x00\x2d\x55\x1b\xd2\x9d\x86\x77\x0a\x2b\x3a\x7d\xeb\xf1\
\x57\x9d\x42\x8f\xee\xbe\xea\xee\x93\xc1\x0b\x4e\x19\x3d\x08\x38\
\xd9\x19\x03\x19\x59\xa4\xce\xf9\x5c\xe6\xd1\x55\x29\xc5\xc8\x18\
\xf8\xc2\x2e\x6a\xf0\x09\xb8\xc1\x60\x08\x8a\x39\x44\x04\x0e\xe0\
\x50\xf8\x79\x8b\xe9\x82\x2d\x1c\x29\x68\xd3\x10\x02\x30\x18\x0c\
\xa2\x5e\xaf\x0f\x96\x97\xc4\x18\x3a\x40\x7c\xb1\x22\x0b\x15\x34\
\x1a\xfa\xa9\xc1\xa1\x36\xc5\xde\xcb\x9b\x21\x4b\x2a\xdb\x15\x60\
\x0c\x10\x98\xc0\x04\x7d\xa8\xf8\xaa\x46\xa3\x51\x8c\x88\x88\xd0\
\xe9\x74\x56\xab\x35\xc0\xd7\xa6\x57\x44\x3a\x3d\xe8\x50\x41\x40\
\xa1\xef\xe5\x68\xe8\x5a\x7f\x21\xa4\x66\xf3\xd1\xcd\xd0\x8d\xf5\
\x7a\xb0\xfb\x21\xa1\x40\x6c\x22\x74\x78\x78\xb8\x18\x11\x11\x61\
\x30\x18\x02\x79\x6d\xea\x0a\x7b\x9b\x53\x71\x2a\x4c\x64\x8a\x03\
\x11\x81\xeb\x99\x6c\xa3\x92\x2a\x6f\xab\xc0\x04\x41\x88\x8e\x8e\
\xa6\x89\x65\xa1\x33\xf7\x84\xa6\x67\xc5\xc4\xc4\x50\x5e\xa4\x67\
\xb8\x53\x27\x14\x68\x41\x88\x8e\x8e\x16\x8d\x46\x63\x64\x64\x64\
\x7d\x7d\x7d\xe0\xe6\x56\x23\x30\xce\x1c\xed\xce\xd3\x5f\x54\x66\
\x3f\x34\x41\xb6\xc9\x8c\x33\xc9\x26\x9f\xfc\xbf\x65\x00\x5e\xf1\
\x82\xee\xb3\xaa\xaa\x6a\xd2\xa4\x49\x2f\xbe\xf8\xa2\xfa\x82\x23\
\x14\x40\x09\xb4\x84\x84\x84\xad\x5b\xb7\xf6\x7c\x1c\x20\xca\x0e\
\x85\x71\x40\x04\x2e\x30\xde\xdf\x72\x16\x9f\x23\x2e\x2e\x4e\x34\
\x1a\x8d\xb1\xb1\xb1\x41\xb9\xfc\xd9\x1d\x55\x53\x7e\x9d\x0a\x9c\
\x89\x61\x42\xcd\xd1\xa6\xd2\x7d\x17\xc1\xbb\x00\x95\x82\xc9\xc2\
\xc2\xc2\xdb\x6e\xbb\xcd\xfd\xc5\x44\xe8\x40\x9d\x49\x10\x3a\x32\
\xe6\x3d\x12\x12\x12\x44\xda\x21\x13\x82\x91\x8d\x61\x22\x53\x4b\
\x7b\xa8\xa0\xb7\x1f\xa5\x06\x6a\x72\x7a\x30\x42\xb6\xcb\x24\x1b\
\x4c\x60\x22\xb9\x9c\x21\x60\x4a\x12\x13\x13\x39\x00\x24\x24\x24\
\x40\x50\x92\x74\xd8\xe3\x3f\xaf\x04\xb8\x37\x39\x04\x6c\x08\x29\
\xdc\xe8\xd1\xa3\x39\x00\x8c\x19\x33\x26\xd8\xf7\x13\x64\xb8\x17\
\xe7\x05\x08\x0c\x00\x80\x0a\xde\x10\x81\x73\xd6\xef\x52\x59\x1f\
\x02\x11\x05\x41\x48\x48\x48\xe0\x00\x40\x93\x86\xaf\x4c\x90\x46\
\xd2\x14\x92\xc0\x4f\x37\xf5\x53\x21\x4b\xff\xa0\x4e\x5b\x4a\x4a\
\x4a\xe2\x00\x90\x94\x94\x04\x57\xea\x5a\x9c\x14\xc2\x64\x67\x67\
\x67\x64\x64\x5c\x99\x3d\xa0\x82\x68\x91\x98\x98\x38\x6c\xd8\x30\
\x0e\x00\xa9\xa9\xa9\xf4\xe6\x30\x70\xee\x05\x02\x00\xc8\x12\xa2\
\x8c\xa4\xa2\x82\x8e\x07\xd8\xb7\xa1\x74\x64\x62\x62\xe2\x47\x1f\
\x7d\x34\x75\xea\xd4\x0d\x1b\x36\x3c\xfe\xf8\xe3\x70\x05\xef\xa2\
\x42\xa3\x9f\x9c\x9c\xac\xd7\xeb\x39\x00\x8c\x1e\x3d\x7a\xc4\x88\
\x11\x81\xbf\x0f\x45\x42\xc5\xa5\xa2\x5c\xc7\x03\xec\x84\x53\x9e\
\x26\x21\x21\xa1\xbd\xbd\xfd\xcd\x37\xdf\x7c\xf4\xd1\x47\x7f\xff\
\xfb\xdf\x87\x85\x85\x05\xf2\xf1\xe0\xae\x92\x55\x04\xc0\x60\x4b\
\x15\xb5\x9a\x6a\xe5\x39\xad\x40\x95\x96\x96\x06\x01\x7d\x50\x10\
\x00\x24\xab\xa4\x48\xc8\x38\x43\x19\x75\xe1\x22\x17\x03\x1a\xa1\
\x91\xc9\x38\x71\xe2\xc4\xef\x7e\xf7\x3b\x92\x8d\x92\x92\x12\x87\
\xc3\x11\xa0\xb4\x1e\x02\x00\x08\x7a\x01\x69\xf6\x9c\x8c\xb2\x3d\
\x24\x32\x1c\x34\x43\x9f\x53\xbe\x25\x33\x33\x13\x02\x18\xa3\x52\
\xaf\x3b\x2d\x92\xd3\x22\x51\x39\x96\xde\x24\xea\x22\x04\x08\x78\
\xdc\x4e\xaf\x09\xc3\xc2\xc2\x1e\x7f\xfc\xf1\xf5\xeb\xd7\xcb\xb2\
\x1c\xa0\x4e\x40\x04\x00\x7d\x94\x0e\x65\x04\xce\x14\xa7\xe2\xb4\
\xca\x00\xc1\x8c\xd2\x89\x09\x93\x26\x4d\x02\x35\x58\xbe\xe6\x9a\
\x6b\x02\x7a\x0b\xe4\x5b\xd8\x15\x4b\xbd\x8d\xeb\x98\x22\x29\x86\
\x28\x5d\x64\x62\x18\x63\x01\x7d\x37\xc0\x18\x93\x65\x39\x3c\x3c\
\xfc\x4f\x7f\xfa\xd3\xe6\xcd\x9b\x0f\x1c\x38\x40\x46\x24\x00\x97\
\x46\x04\xc6\x98\x29\xc1\x88\x32\x72\xce\x64\x87\x62\x6d\xec\x61\
\x16\xa0\xdf\xc1\x5c\x2b\xe0\x66\x64\x64\x00\x40\xc7\xd6\x21\xb4\
\xd8\x43\x20\x33\xb5\x34\x13\xa4\xa5\xdc\xcc\x45\xae\x48\xa8\x37\
\x89\x23\xb2\x62\x10\x81\x8b\x7d\x5f\x45\xa3\x5f\x7f\x5c\xe0\x8c\
\xb3\x09\x19\x13\x76\x7c\xb9\xc3\x66\xb7\x01\x83\xbf\xff\xfd\x95\
\xe9\xd9\xd3\x19\x67\x82\x28\xf8\xf7\xd2\x22\x63\x9c\x45\x8c\x34\
\x46\x8d\x09\x97\xec\x32\xd7\x31\x6b\xb3\xdd\xd2\xe0\xc5\x0a\x16\
\xfe\x1b\x0e\xc6\x00\x60\xfc\xf8\xf1\xc3\x87\x0f\xef\x98\x65\x09\
\x00\x13\x27\x4e\x4c\x48\x48\xa0\x7f\x07\xf2\x6e\x6a\x0e\x37\x02\
\x4d\xf8\xb7\xc9\x93\xef\x4b\x0d\x8f\x37\xc8\x0e\x05\x15\x0c\xc0\
\x9f\x22\x2b\x8a\xac\x24\xc4\x8d\x3c\x53\x7c\x36\x32\x2c\xea\xd7\
\xf7\x3d\xa0\x63\x86\x92\x53\xe7\x50\x41\x59\x92\xfd\x7b\x69\x09\
\x51\xc1\x89\x77\x8d\x35\xc6\xea\x65\xa7\x22\x18\x84\xc6\x33\x6d\
\x4e\x8b\xcc\x78\xd0\x8c\x08\x8d\xfb\xb4\x69\xd3\x48\x41\x45\x2a\
\x85\x8d\x8a\x8a\x9a\x32\x65\xca\x9e\x3d\x7b\x02\xe7\x5e\x28\x08\
\x00\x15\xdf\xd7\x99\x2f\x5a\xf5\x51\x3a\xa7\x55\x8e\xb9\xca\xb4\
\x64\xeb\xec\xd3\xff\xaf\xb2\xb6\xa8\xc5\x5a\x6f\x93\x1c\x8a\x5f\
\xfb\x88\x0a\x7d\xff\x73\xee\x40\xde\x9a\xdc\x8e\xf9\xd1\x00\xa6\
\x28\x43\x74\x72\x84\x1f\xaf\x0a\x20\x86\x09\x51\xa3\xc3\x93\xaf\
\x4f\x98\xb0\x78\x8c\xa3\x5d\x62\x0c\xb8\xc0\x4a\xbf\xb9\x08\xe0\
\x9a\x9f\x1e\x0c\x90\x4a\xcd\x9e\x3d\xbb\xe3\x26\xc1\x35\xaf\x72\
\xf6\xec\xd9\x81\xa4\x05\x95\x24\x59\x9b\x1c\x27\xde\x3b\x97\xb3\
\x2e\xcb\x5c\x6b\x73\x5a\xa4\xc8\xd1\xe1\x33\x1f\x9d\x28\x3b\x14\
\xfa\x0b\x40\x1f\x51\x35\xb8\xfa\x4f\x45\x96\xbd\x58\x1a\x64\x40\
\x17\x14\x0d\x5c\x30\x08\x8c\x83\xa3\x5d\x52\x9c\x8a\x21\x4a\x5f\
\x7f\xb2\xe5\xdc\xae\x6a\x2a\x88\xf7\xe7\xa5\xbb\xbf\x27\x52\x08\
\x51\x9c\x31\x63\x06\xd0\x6a\x52\xe0\xb2\x2b\x39\x39\x39\x10\xd8\
\x5c\x27\x2a\xc8\x38\x3b\xf1\xbf\xcf\x45\x8f\x8d\x98\x72\x7f\xaa\
\xbd\xcd\x29\x59\x65\xa7\x59\x62\x1c\x18\x63\x5c\xe8\x6d\x29\x35\
\x5f\xdd\x06\xfc\xd4\x64\x26\xb0\x6e\x97\xe8\xf2\x11\x64\x87\x22\
\xd9\x64\xf2\xa2\x8c\x31\x7a\x5b\x8b\xe3\xbb\xa7\x7e\x90\x6c\x32\
\xe3\x41\x4b\x5d\x90\xbf\x39\x61\xc2\x84\x8e\xa4\x05\xd1\x82\x1e\
\x97\x6b\xae\xb9\x66\xc4\x88\x11\x75\x75\x75\x3e\x5f\xcb\xb7\x5b\
\x60\x87\x76\xe5\xae\x2f\x6c\x3e\xd7\x96\xf5\xab\x71\x51\x63\xc2\
\xb9\xc0\x50\x46\xcf\xb3\x0e\x87\x04\x18\x67\x8c\x03\xe3\x4c\xb6\
\xcb\x95\x07\xeb\xbf\xdf\xf8\x63\x53\x49\x9b\x9f\x26\x7f\x7b\x09\
\x9a\x3b\xf3\xf3\x9f\xff\x5c\x14\x45\x59\x96\x05\x41\xe8\x50\x0b\
\x59\x96\x23\x23\x23\x73\x72\x72\xb6\x6f\xdf\x1e\x38\x5a\xa8\x60\
\x50\xb8\xb5\xf4\xd4\xbf\x2a\xc7\xcc\x88\x1f\x31\x39\x26\x7a\xac\
\xc9\x18\xad\x13\xf4\x81\xce\x7b\x06\x02\x08\xb2\x5d\xb1\x34\xda\
\x9b\xcf\xb5\x55\x1f\x69\xac\x39\xda\x04\x7e\x5b\x10\xc0\x7b\xd0\
\x8c\xa9\x5f\xfc\xe2\x17\x3f\x7d\x44\x93\x6a\x68\xcf\x99\x77\xde\
\x79\x07\x82\x34\x5d\xce\xfb\x75\x02\x87\x18\x82\xde\x70\x72\x21\
\xe2\xe2\xe2\xea\xeb\xeb\xd1\xb5\x0f\xd5\x65\x9b\x52\x55\x54\x54\
\xd0\xd2\x41\xc1\xa9\xaf\x57\x97\x95\x1c\xd2\xfb\xb0\xd2\x42\x9c\
\xbc\x2f\x2b\x66\xfa\x15\x34\x31\x73\xf1\xe2\xc5\xe8\xb6\x71\xb2\
\xba\x2c\x1c\x53\x14\x25\x29\x29\x69\xd6\xac\x59\x2c\x58\x5b\xc3\
\x61\xc7\xca\x92\x38\x38\xf6\x7e\xeb\x27\x10\x29\x6b\x82\xa1\xe3\
\x3c\x21\xe2\x92\x25\x4b\xa0\xeb\x86\x97\xaa\x1d\xf9\xc7\x3f\xfe\
\x01\x43\x62\xda\xb5\x06\x6f\xa0\x96\xde\x54\x57\x57\xab\x46\xe3\
\x27\x23\xa2\x0a\x48\x55\x55\x55\x44\x44\x04\x04\xcb\x8e\x68\x08\
\x2c\x68\xad\x9f\x3b\xee\xb8\x83\x66\x61\xa9\x64\xf8\x89\x16\x2a\
\x33\x96\x2c\x59\xc2\x18\xd3\x04\xe3\x4a\x00\x8d\xf2\xb6\x6d\xdb\
\x54\x73\xe1\x81\x16\xf4\xc5\xf6\xed\xdb\xe1\x0a\x2e\x52\xba\x72\
\x40\x43\x3c\x66\xcc\x98\xf6\xf6\x76\x77\x0b\xd2\x99\x16\x54\xe9\
\x6a\x36\x9b\xc7\x8e\x1d\x0b\x1a\x33\x86\x3a\xc8\x82\xac\x5a\xb5\
\xaa\x93\x54\x74\xa6\x85\xfa\xf5\xda\xb5\x6b\xd5\x9f\x69\x18\xaa\
\x60\x8c\xe9\x74\xba\xa2\xa2\x22\xf7\xd0\xd4\x33\x2d\xe8\xeb\x92\
\x92\x12\xa3\xd1\x18\x52\x0b\x04\x68\xf0\x2d\xc8\xab\xb8\xf1\xc6\
\x1b\xbb\x72\xc2\x03\x2d\xd0\xe5\x91\xde\x7d\xf7\xdd\xa0\x45\xaa\
\x43\x17\xe4\x21\xec\xd8\xb1\x03\x2f\x8f\x41\x7a\xa1\x05\xad\x66\
\xaa\xb9\x17\x43\x12\x94\xd9\x9c\x3c\x79\xb2\xd3\xe9\x74\xf7\x34\
\x7b\xa2\x05\xa9\x8a\xa2\x28\xf3\xe7\xcf\x07\xcd\xc3\x18\x8a\x20\
\x23\xf0\xfe\xfb\xef\x7b\x94\x8a\x6e\x69\x41\x87\x7e\xf7\xdd\x77\
\xa0\x09\xc6\x90\x03\x49\x45\x7a\x7a\xba\xcd\x66\xa3\xd8\xd3\x5b\
\x5a\xa0\xcb\x0d\x21\xc1\xd0\x3c\x8c\xa1\x04\x1a\xcd\x37\xdf\x7c\
\xb3\x3b\xa9\xe8\x89\x16\xf4\x83\xdc\xdc\x5c\xd0\x04\x63\x08\x81\
\xa4\x22\x33\x33\xd3\x62\xb1\x90\xab\xd0\x37\x5a\xa8\x82\xb1\x60\
\xc1\x02\xd0\x04\x63\xa8\x80\xc6\xf1\xc3\x0f\x3f\xec\x41\x2a\x7a\
\xa1\x05\xfd\xec\xe8\xd1\xa3\xa2\x28\xd2\xde\x2d\xc1\x6e\x94\x86\
\x01\x81\x38\x91\x9d\x9d\x4d\x3b\x83\xf6\x30\xf4\x3d\xd1\x42\x65\
\xc6\x03\x0f\x3c\x00\x9a\x60\x0c\x7e\x90\x33\xb0\x6f\xdf\xbe\x9e\
\xa5\xa2\x77\x5a\x90\xf9\xa9\xac\xac\x8c\x89\x89\xd1\x04\x63\x50\
\x83\x9e\xea\xbb\xee\xba\xab\x57\x4e\xf4\x4e\x0b\xf5\x14\x2f\xbd\
\xf4\x12\x68\x82\x31\x68\x41\x15\x77\x91\x91\x91\x65\x65\x65\xb4\
\x7b\xfb\x40\x69\xa1\x28\x8a\x24\x49\x0e\x87\x63\xfa\xf4\xe9\xa0\
\x31\x63\x70\x82\x46\x6d\xf3\xe6\xcd\xde\x48\x85\x57\xb4\x50\x4f\
\x74\xe8\xd0\x21\xda\x74\x23\xd8\x6d\xd4\xd0\x37\xa8\x9e\xa6\x24\
\x49\x92\x24\x75\x17\x94\xf6\x99\x16\x2a\x33\x1e\x7d\xf4\x51\xd0\
\xd2\xe1\x83\x0a\x54\x68\x27\x8a\xe2\xe1\xc3\x87\xd1\x3b\xa9\xe8\
\x03\x2d\xc8\x20\x59\x2c\x96\x8e\x65\x31\xb4\x04\xd7\x20\x01\x3d\
\xc3\xeb\xd6\xad\xf3\x9e\x13\x7d\xa0\x05\xba\xb2\x5b\x47\x8e\x1c\
\xd1\xe9\x74\x94\x2c\x0b\x76\x93\x35\xf4\x02\x32\x1f\xb3\x67\xcf\
\xf6\xde\x7c\xf4\x99\x16\xe8\xaa\xdd\x7a\xe1\x85\x17\x40\x33\x25\
\x21\x0f\x5a\x83\x36\x32\x32\xf2\xf4\xe9\xd3\xe8\xa9\xd6\xc6\x67\
\xb4\x40\x97\x10\xdd\x72\xcb\x2d\xa0\x45\x25\x21\x0c\xc6\x18\x3d\
\xb7\x5b\xb7\x6e\xc5\xbe\x98\x8f\x7e\xd2\x82\x5e\xc5\xd6\xd7\xd7\
\x6b\x65\xc0\xa1\x0c\xe2\xc4\xca\x95\x2b\xb1\x4b\xf9\xae\x5f\x68\
\x81\x2e\xea\x1d\x38\x70\x80\x36\xb4\xd2\x9c\x8c\x50\x03\xa9\xf8\
\xcc\x99\x33\x1d\x0e\x47\x9f\x5c\x8a\x01\xd1\x02\x5d\x04\x7c\xeb\
\xad\xb7\x40\x73\x32\x42\x0c\xa4\xdf\xa3\x46\x8d\xaa\xa8\xa8\xc0\
\x3e\xba\x14\x03\xa5\x85\xca\x8c\x3f\xfe\xf1\x8f\xa0\x31\x23\x64\
\x40\x49\xee\xb0\xb0\xb0\xfd\xfb\xf7\x63\xdf\x5d\x0a\x1f\xd0\x82\
\x92\xe2\x88\xb8\x74\xe9\x52\xd0\x98\x11\x02\x50\xa7\x88\x7e\xf0\
\xc1\x07\xd8\x2f\x97\xc2\x07\xb4\x40\x57\x8e\xcb\x6c\x36\xd3\x0a\
\x6d\x5a\x60\x12\x5c\xd0\xfe\x5c\x9b\x36\x6d\x1a\x20\x27\x06\x4a\
\x0b\x74\x99\xae\x86\x86\x86\x89\x13\x27\x82\xa6\x19\xc1\x03\xf5\
\xfc\x9a\x35\x6b\x10\xd1\xe1\x70\x0c\x70\x58\x07\x4a\x0b\x74\x19\
\xb0\xf3\xe7\xcf\x5f\x75\xd5\x55\xa0\x69\x46\x30\x40\x3a\xb1\x62\
\xc5\x0a\x1a\x8e\x7e\x84\x1e\xbe\xa7\x05\xba\x98\x71\xe6\xcc\x19\
\x8d\x19\x81\x07\xe9\xc4\xbd\xf7\xde\x8b\x3e\xe2\x04\xfa\x8a\x16\
\xe8\x32\x66\x2a\x33\x34\x6b\x12\x18\x50\x3f\xdf\x77\xdf\x7d\xe8\
\x2a\xa5\xf3\xc9\x68\xfa\x8c\x16\xe8\xa6\x19\xb4\xf9\x99\xc6\x0c\
\x7f\x83\x7a\xf8\xd7\xbf\xfe\x35\xf9\xfe\xfd\x4b\x51\x78\x84\x2f\
\x69\x81\x6e\x7e\x46\x56\x56\x16\x68\xcc\xf0\x1b\xd4\x58\xf4\x91\
\x47\x1e\x41\x9f\xea\x04\xc1\xc7\xb4\x40\x17\x33\x9a\x9a\x9a\xe6\
\xcc\x99\x03\x1a\x33\xfc\x00\x75\x7b\xce\x0d\x1b\x36\xa0\xef\xfc\
\x09\x77\xf8\x9e\x16\xe8\x62\x46\x7b\x7b\xfb\x3d\xf7\xdc\x03\xae\
\x99\x4c\xc1\xee\xcc\x21\x02\x12\x09\x41\x10\xde\x7e\xfb\x6d\x44\
\xec\x6e\xca\xf9\x00\xe1\x17\x5a\xa0\x5b\x2a\x7e\xcd\x9a\x35\xd4\
\x1e\xed\x5d\xeb\xc0\x41\xd2\x1b\x1f\x1f\xbf\x7b\xf7\x6e\x1c\x70\
\xce\xaa\x07\xf8\x8b\x16\xe8\xca\x81\x22\xe2\x3b\xef\xbc\x13\x16\
\x16\x06\x9a\x41\x19\x00\x54\x67\x62\xda\xb4\x69\xa7\x4e\x9d\x42\
\x7f\x72\x02\xfd\x4a\x0b\x74\x7b\x6f\x92\x9f\x9f\x9f\x9e\x9e\x0e\
\x9a\x41\xe9\x17\x54\xa1\xfd\xe5\x2f\x7f\xd9\xda\xda\x8a\x7e\xe6\
\x04\xfa\x9b\x16\x04\x6a\x43\x43\x43\xc3\x1d\x77\xdc\x41\xcd\xd3\
\xf2\x5d\xde\x83\x24\xd6\x68\x34\xfe\xfd\xef\x7f\xa7\xfe\xf4\x61\
\x20\xda\x1d\x02\x41\x0b\x74\x7b\xc3\xfb\xf2\xcb\x2f\xd3\x6a\xf3\
\xa2\x28\x6a\xb2\xd1\x33\xd4\x88\x23\x2b\x2b\xab\xa0\xa0\x00\xfd\
\x13\x74\x78\x44\x80\x68\x81\x6e\xae\xc6\xe1\xc3\x87\xaf\xbd\xf6\
\x5a\x6a\xb9\x26\x1b\xdd\x41\xf5\xc3\x1e\x7a\xe8\xa1\xb6\xb6\x36\
\x1c\x40\xf1\x44\x3f\x10\x38\x5a\x10\xc8\xa0\xd8\xed\xf6\x75\xeb\
\xd6\xd1\x0b\x1e\x4d\x36\x3a\x41\x7d\x54\x32\x32\x32\x28\xe2\xc0\
\xc0\x72\x02\x03\x4f\x0b\x74\x33\x8d\x05\x05\x05\xd7\x5f\x7f\x3d\
\x75\x81\x46\x0e\x00\x50\xe7\x72\x0a\x82\xb0\x7a\xf5\xea\x4b\x97\
\x2e\x61\x00\x0d\x87\x3b\x82\x40\x0b\x44\x54\x14\x85\x64\x43\x51\
\x94\x2d\x5b\xb6\x8c\x1c\x39\x92\xfa\xe5\x8a\xb5\x29\xee\x6b\xef\
\x5f\x7f\xfd\xf5\xf9\xf9\xf9\xd4\x51\x01\x16\x09\x15\xc1\xa1\x05\
\x41\xcd\xe4\xd7\xd4\xd4\x3c\xfc\xf0\xc3\x06\x83\xa1\x53\x07\x5d\
\x09\x70\x6f\xef\xb8\x71\xe3\xde\x7d\xf7\x5d\xea\x9c\xa0\x88\x84\
\x8a\x60\xd2\x82\xa0\x3e\x10\xc7\x8e\x1d\x5b\xb6\x6c\x99\x7b\x67\
\x0d\x6d\xb3\xe2\x4e\x88\xb8\xb8\xb8\x8d\x1b\x37\x36\x37\x37\xa3\
\x9b\x6f\x1e\x44\x04\x9f\x16\xe8\x96\xf5\x42\xc4\xdc\xdc\x5c\x5a\
\xc4\x8d\x30\x24\x7d\x0e\xf7\xf5\x20\x62\x63\x63\x1f\x7b\xec\x31\
\x2a\xde\xc7\xe0\x59\x8d\x4e\x08\x09\x5a\x10\x64\x59\x56\x3b\x65\
\xef\xde\xbd\x4b\x97\x2e\x55\xb3\x7b\x82\x20\x0c\x81\x57\x2a\x24\
\x0f\x2a\x21\x12\x12\x12\x3a\x11\x22\x88\x56\xa3\x13\x42\x88\x16\
\x04\xf7\xde\xf9\xcf\x7f\xfe\xb3\x62\xc5\x8a\x98\x98\x18\xea\x47\
\x7a\xc8\x06\xa3\x78\x70\xce\xdd\xdf\x07\x65\x64\x64\x6c\xde\xbc\
\x99\x36\x98\xc4\x10\x23\x04\x21\xe4\x68\x41\x90\x24\x49\xb5\xaf\
\x15\x15\x15\x7f\xf9\xcb\x5f\xa8\xb2\x9c\x40\xcf\x5c\xe8\xf3\x83\
\xd8\xa0\xde\xa7\xc1\x60\x58\xb4\x68\xd1\xf6\xed\xdb\x6d\x36\x9b\
\xda\xcc\x50\x23\x04\x81\x61\x08\xef\x2d\x49\x5d\x46\xaa\xeb\x70\
\x38\xbe\xf9\xe6\x9b\x8f\x3f\xfe\x78\xe7\xce\x9d\xf5\xf5\xf5\x74\
\x00\x7d\x85\x88\x81\xde\xe6\xb9\x7b\xd0\xbc\x2e\xda\x88\x5a\xed\
\xdb\xcc\xcc\xcc\x3b\xee\xb8\xe3\x9e\x7b\xee\xa1\x45\x63\x00\x40\
\x96\xe5\x50\x5e\xb9\x30\xa4\x69\x41\x70\x27\x07\x00\xd4\xd7\xd7\
\xef\xdc\xb9\xf3\xb3\xcf\x3e\xcb\xcd\xcd\x6d\x6e\x6e\x56\x0f\x13\
\x45\xd1\x9d\xef\x81\xbc\x43\xda\x8f\x87\x76\x2a\x97\x65\x59\xfd\
\x3c\x2d\x2d\xed\xa6\x9b\x6e\x5a\xb2\x64\x49\x4e\x4e\x0e\xa5\x74\
\xa9\x2d\xa1\x4c\x08\xc2\x20\xa0\x05\x41\x95\x04\x95\x1f\xb5\xb5\
\xb5\x79\x79\x79\xbb\x76\xed\xca\xcb\xcb\x2b\x29\x29\x71\x3f\x98\
\x4c\x8c\x9f\x58\x42\x23\xca\x5c\xa0\x95\x1d\xd4\x6f\x0d\x06\x43\
\x56\x56\xd6\x82\x05\x0b\x6e\xba\xe9\xa6\xe9\xd3\xa7\x53\xa1\x09\
\x00\xc8\xb2\x1c\xb4\x7d\x87\xfb\x8e\x41\x43\x0b\x15\xf4\x44\xaa\
\x6f\x17\x01\xc0\x6a\xb5\x16\x15\x15\xed\xdf\xbf\xff\xc0\x81\x03\
\x27\x4e\x9c\x28\x2b\x2b\xeb\xd4\x28\xf7\x0c\x01\x7d\xe5\x25\x57\
\xdc\x19\xe0\x7e\xf5\x4e\x87\x85\x85\x85\x65\x64\x64\x64\x67\x67\
\xcf\x9d\x3b\x77\xc6\x8c\x19\x54\xf8\x4e\xa0\x83\x43\x5f\x1e\x3a\
\x61\xf0\xd1\x42\x45\x57\xfd\x00\x00\x8b\xc5\x72\xee\xdc\xb9\x13\
\x27\x4e\x1c\x3f\x7e\xbc\xa8\xa8\xa8\xa4\xa4\xa4\xba\xba\xda\xe1\
\x70\xf8\xf6\xd2\xd1\xd1\xd1\x29\x29\x29\x69\x69\x69\xd3\xa6\x4d\
\xcb\xca\xca\x9a\x3c\x79\x72\x72\x72\xb2\xfb\x01\x92\x24\xa9\x4e\
\x86\x6f\x2f\x1d\x18\x0c\x62\x5a\xa8\xa0\x47\x5f\x51\x94\xae\x89\
\x73\xab\xd5\x5a\x57\x57\x57\x5a\x5a\x5a\x55\x55\x55\x56\x56\x56\
\x5e\x5e\x5e\x5b\x5b\xdb\xd8\xd8\xd8\xd2\xd2\xd2\xda\xda\x6a\x36\
\x9b\x69\xad\x31\x77\x01\xa0\xe5\x85\x04\x41\xd0\xeb\xf5\x51\x51\
\x51\x51\x51\x51\x71\x71\x71\xf1\xf1\xf1\xa3\x46\x8d\xba\xea\xaa\
\xab\x92\x93\x93\xc7\x8e\x1d\x9b\x9c\x9c\x1c\x1f\x1f\xdf\xe9\x36\
\xc8\xc7\x74\x97\xb1\xc1\x8b\xa1\x40\x0b\x77\xa8\x14\x01\xb7\x32\
\x96\xae\x70\x38\x1c\x36\x9b\xcd\xe1\x70\x98\xcd\x66\x9b\xcd\x46\
\x11\x23\xb9\x23\xa2\x28\x1a\x8d\xc6\xb0\xb0\xb0\xb0\xb0\x30\xa3\
\xd1\x68\x30\x18\xba\x7b\x47\x43\x3c\x60\x6e\xf0\x63\xc3\x02\x8b\
\xff\x0f\x81\x99\x66\x42\x17\xac\xab\x60\x00\x00\x00\x00\x49\x45\
\x4e\x44\xae\x42\x60\x82\
\x00\x00\x06\x3d\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc1\x00\x00\x0e\xc1\x01\xb8\x91\
\x6b\xed\x00\x00\x05\xd2\x49\x44\x41\x54\x78\x5e\xed\x9c\xd7\xaa\
\x2c\x45\x14\x86\xb7\x39\x1c\x0c\x18\x41\x0c\x88\x01\x44\x14\x11\
\x11\xc1\x7c\x21\xde\x0b\x5e\x8b\x5e\xf9\x04\x3e\x84\x4f\xe1\x03\
\x28\x82\x07\x3c\xc7\x9c\x15\x45\xcc\x01\x73\x02\x73\xce\xf9\xf8\
\x7f\x38\x05\x65\x33\xf6\xee\xde\xd3\x55\xf3\x77\xcd\xfa\xe1\x63\
\xce\xde\x67\x76\xf7\xaa\xfa\x6b\xad\xaa\xee\xa9\x9e\xad\x01\xda\
\x37\x13\xfe\x10\x37\x88\xe6\xb5\xac\xf1\xae\xfc\x2d\x6e\x16\x4d\
\x6b\x59\xc3\x9d\x69\xde\x94\x65\x8d\x76\xa7\x69\x53\xba\x8d\x75\
\x53\x37\xbe\x44\xb3\xa6\x74\x1b\xea\xa6\x6e\x7c\x39\x4d\x9a\xd2\
\x6d\xa4\x9b\xba\xf1\xfd\xb5\xe4\xe7\x9b\x44\x33\xca\x1b\x07\x6e\
\xea\xc6\x77\xa3\xe8\x9a\xd2\x54\xa6\xe4\x0d\x03\x37\x2d\x8b\xaf\
\x69\x53\xf2\x46\x81\x9b\xfe\x2f\xbe\x66\x4d\xc9\x1b\x04\x6e\xea\
\x8b\xaf\x49\x53\xf2\xc6\x80\x9b\xb6\x8b\xaf\x39\x53\xf2\x86\x80\
\x9b\x86\xc4\xd7\x94\x29\x79\x23\xc0\x4d\x43\xe3\x6b\xc6\x94\xbc\
\x01\xe0\xa6\x31\xf1\x35\x61\x4a\x1e\x3c\xb8\x69\x6c\x7c\xb3\x37\
\x25\x0f\x1c\xdc\xb4\x93\xf8\x66\x6d\x4a\x1e\x34\xb8\x69\xa7\xf1\
\xcd\xd6\x94\x3c\x60\x70\xd3\x2a\xf1\xcd\xd2\x94\x3c\x58\x70\xd3\
\xaa\xf1\xcd\xce\x94\x3c\x50\x70\xd3\x14\xf1\xcd\xca\x94\x3c\x48\
\x70\xd3\x54\xf1\xcd\xc6\x94\x3c\x40\x70\xd3\x94\xf1\xcd\xc2\x94\
\x3c\x38\x70\xd3\xd4\xf1\xd9\x9b\x92\x07\x06\x6e\x2a\x11\x9f\xb5\
\x29\x79\x50\xe0\xa6\x52\xf1\xd9\x9a\x92\x07\x04\x6e\x2a\x19\x9f\
\xa5\x29\x79\x30\xe0\xa6\xd2\xf1\xd9\x99\x92\x07\x02\x6e\xea\xc6\
\x57\x0b\x4c\x9a\x7c\x2f\xf1\x7e\x8b\xd7\x3e\x71\xf2\x5c\x43\xfe\
\xa6\xa6\xba\xf1\xd5\xd4\x9f\xe2\xa0\x7f\xff\x39\x8d\xc2\x90\xd5\
\x35\x69\x7f\xec\xbf\x78\x0d\x99\xa8\x85\x0c\xa9\xad\xa2\xfd\x11\
\x19\x62\xa6\x30\xc4\x4c\x8e\x25\x8b\xe3\x1f\x2a\x76\x2d\x5e\xfb\
\xc4\x63\x6c\x3f\x8a\x5f\x04\xd7\x06\x35\x54\xb4\x3f\x1c\x0d\x61\
\x19\x79\xa2\x38\x4d\x9c\xc0\x2f\x7a\xf4\xbd\x78\x47\x7c\x22\x7e\
\x17\xdd\x58\x4b\x68\xe3\x0c\x21\x33\xce\x13\x97\x2d\x5e\xfb\xf4\
\x91\xb8\x5f\x3c\x2f\x7e\x12\x5c\x17\x94\xd6\xc6\x19\x72\xb4\xb8\
\x52\x5c\x2f\xae\xe0\x17\x3d\x7a\x43\xdc\x26\xee\x15\xdf\x09\xb2\
\xa4\xb4\x8a\xf6\x87\xe3\xa4\x4e\x4c\x87\x8b\xe3\xc4\x29\xdb\x40\
\x69\x23\xa3\x0e\x10\xa5\x07\x4a\x15\xc5\x2a\xcb\x4c\x61\x88\x99\
\xc2\x10\x33\x85\x21\x66\x0a\x43\xcc\x14\x86\x98\x29\x0c\x31\x53\
\x18\x62\xa6\x30\xc4\x4c\x61\x88\x99\xc2\x10\x33\x85\x21\x66\x0a\
\x43\xcc\x14\x86\x98\x29\x0c\x31\x53\x18\x62\xa6\x30\xc4\x4c\x61\
\x88\x99\xc2\x10\x33\x85\x21\x66\x0a\x43\xcc\x14\x86\x98\x29\x0c\
\x31\x53\x89\x8d\x72\xec\x91\x3a\x4c\x9c\x2a\xd8\x79\x78\xac\x18\
\x63\x3c\xfb\xac\xce\x11\x17\x2f\x5e\xfb\xf4\xb1\x78\x54\xbc\x22\
\xc6\xec\x5c\x64\x1f\x30\x8f\xa4\xb1\xe3\xf1\x7d\xf1\x8d\x60\x9f\
\xf0\x10\xcd\x6e\xe7\x22\x86\xd0\xa9\x67\x89\xcb\xc5\xb9\x82\x0d\
\x6d\x07\x8b\x21\xe2\x7d\x98\x78\x92\x60\xb3\x5c\x9f\x7e\x10\x6c\
\x27\xfd\x42\xd0\xa1\x74\xf2\x76\xe2\x7d\xec\x72\xfc\x40\x3c\x28\
\x5e\x17\xe9\xef\x87\x68\x76\x86\xf0\xff\x74\xea\xc9\xe2\x12\x71\
\x95\xb8\x48\xd0\xb9\xe9\x79\xbc\xbe\x63\xa4\xbf\x67\xe7\xfb\x21\
\xfc\xa2\x47\x64\x04\x3b\xdf\x7f\x13\x7d\xbb\xdf\x53\x1b\x78\xff\
\xb7\xe2\x2d\xc1\x9e\xe0\xa7\xc4\x7b\x02\x83\x86\xee\x9e\x9f\x9d\
\x21\x49\x47\x88\x33\x05\x86\x5c\x2b\xce\x17\x98\x42\x06\xd5\x9c\
\xbb\x52\xfc\xbc\x7e\x2d\x30\xe3\x09\x71\xbb\xc0\x8c\x31\xe5\x0a\
\x15\x35\xa4\x64\xc7\x50\xd3\xdf\x16\x0f\x88\xbb\xc4\x6b\x82\x12\
\x93\x3f\xf3\x5d\x5a\xb9\x19\xbf\x8a\x14\xcf\x6e\xc1\xbc\x83\x41\
\x63\xcc\x28\xae\x92\x86\x50\x02\x7e\x16\xd4\xf8\x67\xc4\xdd\x82\
\x91\xf9\xa9\xa8\xf5\x70\x0d\xe2\x5c\x94\xb4\xe7\x04\x66\x3c\x2e\
\xde\x14\x94\xba\x1a\x8f\x2f\x8c\x52\xe9\xd2\x41\x36\xf0\x50\xcd\
\xbb\x82\xd5\x10\x93\xe8\xcb\xe2\x33\xc1\xc8\xa4\xb3\x4a\x65\x0a\
\xc7\xe5\x1c\xcc\x19\x18\xc0\xf9\x1f\x13\x64\xea\x57\xa2\xe6\xa0\
\x18\xac\x1a\xb5\x1c\x53\x98\x34\xe9\x14\x46\xe7\x7d\x82\xd1\x4a\
\x09\x29\x59\xb6\x38\x36\x59\xc0\x13\x56\x94\x28\x06\x03\x65\xea\
\x73\x61\x55\xa6\x72\xd5\x9a\x5c\x53\xa6\x24\x53\x1e\x16\x2f\x89\
\x2f\x05\x9d\x33\x95\x31\x1c\x07\x18\xfd\x9c\x8f\x09\xfc\x49\xb1\
\x57\x90\x99\x98\x41\xf9\xb2\x55\x2d\x43\x92\x98\x53\xb8\x10\xc3\
\x94\x3b\x04\xa6\x50\x3e\xd2\xf3\x81\xab\x18\x93\xfe\x16\x33\x38\
\x0f\xe6\x33\x67\xf0\x74\x15\x4f\x5a\x51\xba\xec\xe6\x8c\xae\x6a\
\x1b\x42\x87\xb0\xcc\xa4\xb3\x1e\x11\x0f\x89\x94\x29\x53\xd4\x74\
\x8e\xc1\xea\x8e\x8b\x3d\x4c\x67\xce\x78\x41\xb0\x9a\xaa\xf5\x50\
\xe8\x4a\xaa\x6d\x08\x4a\xe5\x8b\x25\x28\xf3\x09\x17\x68\x4c\xb4\
\xe9\xe2\x6c\x27\x99\xc2\xfb\x39\x6e\x5a\xd5\x31\x5f\xdc\x23\x5e\
\x14\x5c\x85\x4f\x61\x76\x15\xad\xc3\x10\x44\xe7\x31\x92\x99\x70\
\xa9\xf1\x98\xc2\xd2\x38\xad\xbc\xc6\x0a\x43\x98\xc0\x29\x4d\x7b\
\x04\x99\x87\xc9\x64\x9e\x7d\x99\xca\xb5\x2e\x43\x10\x1d\x9f\x32\
\x05\x53\xe8\x44\xca\x0b\x23\x9a\x89\x77\x48\x96\xf0\x9e\x74\x1c\
\xcc\xe0\x3a\x87\x79\xe3\x55\x91\x8e\x33\x2b\x95\xbc\x75\x32\x54\
\xdc\xb7\x3a\x46\x9c\x21\x2e\x15\xd7\x08\xee\xf2\x72\x9b\x25\xbf\
\x21\x99\x9f\x37\xc5\x44\xa6\x91\x19\xac\xa6\x30\x94\x6b\x0d\xee\
\xe0\x8e\x31\x75\xac\x8a\xf6\xc7\x3a\x33\x24\x89\xc9\x96\xd2\x42\
\x89\xa1\xdc\x30\x11\x33\xda\x99\xfc\xfb\xca\x17\x1d\x43\xd9\xe3\
\xa2\xf3\x69\xc1\x52\xfa\x59\xc1\xb7\x3a\x94\xbe\xc6\x59\xab\x68\
\x58\x4e\x29\x31\xd2\x0e\x14\x17\x88\x5b\x04\xc6\x30\xca\x31\x05\
\xf2\x18\xf8\x99\xf9\x06\xe3\x6e\x15\xdc\xc0\xe4\x6b\x38\x6a\x0c\
\xb0\x3c\x0e\x98\x54\x0e\x19\x92\x44\xe3\x98\x80\x3f\x14\x8c\x78\
\x2e\xe6\x30\x85\x2f\x97\xa1\x34\xa5\x0e\xc0\x0c\xca\x14\x2b\x28\
\x32\x8a\xe5\x33\xcb\xe8\x31\xb7\xd0\x6d\xe5\x64\x48\x12\x77\x84\
\xd3\x2d\xf2\x74\xef\x2b\xcd\x09\x69\xc9\x9c\x5f\xf1\x33\x81\x73\
\x71\x69\x7b\x3b\x64\x8c\x1c\x26\xf5\x65\x4a\x9f\x1a\xf2\xa9\x23\
\xdf\x7b\x72\xb5\x38\x5b\xf0\xd1\x30\xd7\x19\x64\x05\x66\xb0\x2a\
\x4b\x73\x46\x2d\x15\xed\x0f\x57\x43\x10\x1f\x64\x1d\x25\x4e\x17\
\xd7\x89\x0b\x05\x1f\x0d\x93\x1d\x77\x0a\x4a\x16\xf7\xa6\x6a\x7c\
\xe1\x4c\xae\x8d\x35\x04\x51\x52\xc9\x0a\x3e\x6d\xe4\xcb\x66\xc8\
\x1c\x6e\xdd\x53\xc6\xd2\x87\x4b\xdd\xf8\x4a\x6b\xa3\x0d\x41\x98\
\x72\xbc\x38\x52\x90\x35\x2c\x75\x53\x66\xd4\x36\x03\x6d\xbc\x21\
\x88\xcc\xc0\x0c\xce\xcd\xc4\xbe\xce\x1b\x85\x61\x88\x99\x8a\xf6\
\x87\xe3\xb2\x77\xa3\x15\x86\x98\x29\x0c\x31\x53\x18\x62\xa6\x9d\
\x4c\xea\xa1\xff\x2a\x26\xf5\x96\x15\x86\x98\x29\x0c\x09\x85\x42\
\xa1\x50\xa8\x09\x6d\x6d\xfd\x03\x55\x05\x7f\xb7\x68\xfd\x50\x93\
\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x10\x3b\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
\xa8\x64\x00\x00\x0f\xd0\x49\x44\x41\x54\x78\x5e\xed\xdd\x05\xac\
\x2c\x49\x19\x05\xe0\xc5\xdd\xdd\xdd\xdd\x25\xb8\x6b\xf0\xe0\x41\
\x82\xbb\x26\x10\x02\xc1\x02\x81\xc5\xdd\x5d\x17\x97\x45\x82\x2c\
\xb0\xb8\x5b\x70\x77\x77\xf7\xf3\x91\x5b\x64\x18\xba\x7b\xaa\x7b\
\xba\x7b\xe6\xb2\x73\x92\x93\xf7\xee\xbd\x33\xdd\x55\xf5\xd7\xaf\
\x55\xd5\x7d\xc0\x0e\x3b\xec\xb0\xc3\x0e\x3b\xec\xb0\xc3\x0e\x13\
\xe0\x70\x7b\xff\xee\x07\x9c\x24\x3c\xdd\x1e\x4f\x14\x1e\x73\x81\
\x47\x0a\xff\x1a\xfe\x2e\xfc\xed\xde\xbf\x3f\x0d\xbf\xb9\xc7\x9f\
\x84\xfb\x02\xdb\x28\x90\xc3\x87\xc7\x0d\xcf\x1f\x5e\x28\xbc\x60\
\x78\x86\xf0\xd8\xe1\x91\x43\x83\x7f\x84\xd0\xe7\x50\x1f\xf0\x9f\
\x7b\xfc\xc7\x1e\xff\x1e\x12\xd2\x9f\xc3\x5f\x87\x5f\x0d\x3f\x1e\
\x7e\x2c\xfc\x54\xf8\x9b\xd0\xe7\xb7\x0a\xdb\x22\x90\x23\x86\xa7\
\x0a\x2f\x17\x5e\x36\x3c\x7b\x48\x00\x45\x03\x8e\x1a\x96\xc1\xef\
\x8b\x22\xa4\x3f\x86\xbf\x0f\x69\xcf\xaf\xc2\xcf\x87\xef\x0a\x0f\
\x09\x7f\x18\x12\xe0\xc6\xb1\x69\x81\x9c\x38\xbc\x78\x78\xf9\x90\
\x46\x9c\x2c\x3c\x41\x48\x08\x04\x30\x15\x08\x88\x69\xfb\x59\x48\
\x18\x9f\x08\xdf\x11\x7e\x38\xfc\x79\xb8\x31\x6c\x4a\x20\x27\x0d\
\x69\xc2\x55\xc3\xf3\x86\x27\x0f\x8f\x17\x4e\x29\x84\x36\xd0\x8c\
\x5f\x86\xdf\x0b\x3f\x17\x12\xcc\x7b\xc2\xef\x86\xb3\x63\x6e\x81\
\x9c\x22\xbc\x72\x78\x99\xf0\x3c\x21\x07\x7d\xac\x70\x5b\x40\x6b\
\xbe\x1d\x7e\x3a\x7c\x7b\xf8\xce\xf0\x47\xe1\x6c\x98\x4b\x20\x7c\
\xc0\x25\xc3\x6b\x85\x84\x71\xfa\xf0\x68\xe1\xb6\x82\xaf\xf9\x5a\
\xf8\xde\xf0\xe0\xf0\xd0\x90\x0f\x9a\x1c\xa2\x95\xa9\x71\x8e\xf0\
\xe6\xe1\x2d\xc2\xab\x84\xa7\x0c\x45\x4a\xdb\x0c\xd1\x9c\x30\xfb\
\xac\xa1\xc9\xc3\x9c\xfe\x22\x9c\xdc\xbf\x4c\xa9\x21\x06\x9d\x9f\
\xb8\x61\x78\xb5\x50\xee\x30\xc6\x04\x28\x0e\xf9\x4f\xa1\x90\xf6\
\x2f\x7b\xbf\xe3\x7f\x0c\x24\x6d\xa4\x7d\xc7\xd8\xfb\xdd\xba\xe0\
\x63\x38\xfe\x37\x87\x07\x85\xb4\xe5\x6f\xe1\x24\x98\x42\x20\xae\
\x69\x46\x5d\x3d\xbc\x75\x78\xd1\xd0\x20\xf5\x45\x09\x57\x45\x42\
\x3f\x08\x7f\x1c\x72\xbe\x42\x56\x33\x95\x59\x61\x46\x08\xc5\xa0\
\x11\xb6\xfb\xa0\x28\x4d\xb4\x26\x9f\xd1\x16\xb3\x5d\xe0\x70\xc2\
\x50\xfb\x86\xf4\xdb\xfd\x3e\x10\x3e\x3f\x7c\x5b\xa8\x1d\xa3\x63\
\x6c\x81\x98\x91\x1c\x37\xad\xb8\x4b\xc8\x3c\xf5\xd1\x0a\x42\x30\
\xe3\x39\xd2\x6f\x85\x22\x1d\xb6\xfc\xcb\xe1\xd7\x43\x33\x55\x06\
\x4e\x08\xab\x40\x30\xb4\x92\x20\x24\x96\x67\x09\xcf\x18\xca\x77\
\x4e\x1b\x8a\xf4\xe4\x3f\x7d\xc6\x80\x66\x7c\x23\x7c\x6a\xf8\xca\
\x50\x05\x60\xd4\xe4\x72\x4c\x81\xe8\x9c\x8e\xde\x2c\xbc\x4f\x78\
\xf4\xb0\xf6\xfa\x34\x41\xe6\x4c\x08\x32\x6a\xd9\xf4\xfb\x43\xd1\
\xce\x98\xce\x54\x9b\x2e\x10\x5e\x22\x54\x05\x20\x28\x6d\xee\x93\
\xf7\x10\x80\xcc\xff\xd1\xe1\xcb\x42\xe1\xf2\x56\x24\x95\x8b\xe0\
\x2f\xce\x16\x1e\x18\x9a\xbd\x1a\x5d\x43\x1d\xe1\x2c\x3f\x19\x3e\
\x2b\xbc\x66\x78\x9c\x70\x0e\x30\x65\xd7\x0d\x5f\x10\x12\x3c\x73\
\xa8\x3d\x4d\xed\x5c\xa6\x09\xa4\x9f\x0f\x0f\x69\x9d\xc9\xb8\x35\
\xd0\x18\xd1\x08\x35\xa6\xd2\x4d\x1d\x68\x22\x9b\xcc\x14\x3d\x33\
\xe4\xfc\x87\xf8\x99\x31\x20\x00\xb8\x52\xc8\x37\xd0\x4e\xed\x32\
\xe0\x4d\x6d\x5e\xa6\xfe\x3e\x2e\xa4\x69\x73\x44\xac\x2b\xa1\x11\
\x1a\xf3\xc8\xb0\x56\x18\x3e\xc7\x29\x73\x8c\x37\x08\x45\x43\xdb\
\x00\x66\x8b\xef\xd3\x2e\x5a\xdb\xa7\x3f\x0f\x0b\x4f\x1d\x6e\xa2\
\xd2\xf0\x1f\xf0\x0f\x9c\xf6\x83\xc2\x5a\x33\xc5\x61\x2b\x87\xdf\
\x2f\xe4\xfc\xb7\x11\xa7\x09\x1f\x12\xca\xd8\x55\x8b\x9b\xfa\xb1\
\x4c\x21\x38\xbf\x29\x50\x18\x3b\x50\xaa\xc6\xf1\xc3\x7b\x84\xaa\
\xa7\x4d\x8d\x5c\xa6\x99\xf4\xc1\x50\x38\x7c\x94\x70\x9b\xc1\x8c\
\x5d\x3f\x14\x5c\xd4\x6a\x8a\xdc\xe8\xb6\xe1\x5c\x3e\xf0\xbf\xc0\
\x6f\xdc\x28\x34\x8b\x6a\xed\xed\x8b\x42\x65\xf5\x8d\xcd\xa0\x9e\
\x60\x7e\x54\xa0\x25\x83\x4d\xfd\x59\xa6\x71\x10\x12\x5f\x23\x9c\
\xdd\x9f\x70\xc2\xd6\x12\x6a\xa2\x12\x0d\xe5\xf0\xcf\x14\x6e\xd4\
\xc6\x0e\x80\x81\x15\x3d\x3e\x2d\xac\xe9\x2b\x6d\x52\xfb\xba\x58\
\x38\x1b\x44\x54\x22\x23\xf9\x41\x53\xa3\x16\xa9\x13\x1c\x9e\xaa\
\xee\x56\x44\x21\x03\xa0\xdd\x26\x93\xbc\xa3\x46\x28\x7f\x08\x1f\
\x1f\x0a\x76\x26\x87\xd0\xf4\xee\xe1\xf7\xc3\xa6\xc6\x2c\xf3\xc9\
\xe1\x7e\x16\x46\x81\xf6\x9f\x39\x7c\x4a\xd8\xd4\xcf\x65\x4a\x16\
\x6f\x1f\x4e\x1e\xca\x5f\x31\xb4\x80\xb3\xca\xd1\x99\x49\x7c\x86\
\x4e\xec\x77\x61\x14\xf0\x9b\x2a\xd7\x4a\x26\x4d\x7d\x5e\xa4\xf1\
\x51\x8c\xb4\xe4\x30\x19\x2c\xaf\x52\x45\x45\xb5\xa6\x46\x14\x0a\
\x15\x3f\x12\x9e\x33\xfc\x7f\x11\x46\x81\x8a\x84\x92\xcb\x47\xc3\
\x55\xc1\x8c\x5c\x46\x26\x6f\x99\x7a\x12\xa8\x51\x7d\x26\xec\x6a\
\x88\x99\xf1\x9d\x50\x68\xdb\xc7\x81\x13\x9c\x8a\x2c\x8d\x9a\x13\
\x1c\xb6\x02\x64\x9f\xb6\x2a\xf1\x5f\x3b\x54\x58\xec\xf2\x29\xc6\
\x89\xe0\x94\x67\xaa\x51\x3b\x83\x25\x80\xb7\x0a\x2f\x15\x6a\x50\
\x13\x34\x42\x81\xf0\x49\xe1\x4b\x43\xc2\xa9\x81\x36\x58\x57\xbf\
\x73\xa8\xe8\xc7\xfe\x2a\xb5\x4f\x0d\x21\xad\x3c\x4a\xb1\x51\x15\
\x59\x99\x5f\x1f\x56\x81\x10\xb4\xd1\x38\x5c\x24\x64\xca\x9a\x42\
\x79\xbf\x93\x93\xb0\x28\xb6\x1d\xc9\xd7\x46\xc3\x4d\x42\x05\xb8\
\xc5\x19\xb0\x4c\xd1\xc5\x5b\xc3\x3e\x19\x38\x61\x30\x01\xcf\x0d\
\x95\x53\x94\xd6\xfd\x9f\x80\xa6\x84\xf5\x7c\x3e\x4e\x41\x91\x20\
\x44\x8d\xe7\x0b\x6b\x8b\x84\x06\x5b\xa9\xc4\x12\xaf\x2c\xbd\x69\
\x3c\x0a\x99\xef\xeb\x84\xa3\x81\x4a\x1b\xa4\xb2\xb1\xac\x89\x66\
\x8d\xf5\x8a\xeb\x85\xb5\x28\xc2\x78\x4e\x48\x18\xae\x43\xcd\xd9\
\x5e\xf7\xe3\x83\xa6\xc0\xb9\x43\x15\x5e\x33\xb7\x98\x5f\xf7\x7f\
\x46\x48\x28\xb5\x56\x03\x4c\x54\x11\x67\x97\xe9\x72\x9f\x27\x86\
\x16\xcc\x46\x81\xcc\x53\x09\xa1\xe9\x66\x85\x66\xda\xf3\xc2\xda\
\x42\xe1\xa2\x30\x8a\xa9\x28\x34\x48\x3a\xa1\x1c\xcf\xc6\x8f\x05\
\xb3\x5a\x94\x44\x18\xcc\xc7\xb2\x2f\xa4\x9d\x12\x58\xda\x59\x2b\
\x14\x3b\x66\x5e\x11\x2a\x9b\x2c\x5e\x6b\x99\x96\x7d\xaf\x10\xae\
\x0d\x2a\xfc\x98\xb0\xac\x8c\x35\xd1\xec\xb0\x9f\xc9\x66\xb7\x1a\
\xe8\x2c\xbb\x4d\x0b\x96\x85\x51\x68\xb0\x0c\x9a\x59\x2b\x11\x5d\
\xb7\xdc\xe2\x9e\xca\x36\x26\x0d\x13\xb3\x2c\x8c\x42\x42\x79\x7a\
\xd8\x47\x53\x6c\xdc\xb0\xaa\xd9\xa5\x25\x96\xa0\x1f\x1c\xd6\x5e\
\xb3\x15\x2a\x9f\xab\xf2\x0e\xab\x67\x2f\x0c\x6b\xb7\xf5\x08\x03\
\xad\x21\x14\x33\xd5\x46\x83\xa6\x8a\xcc\xbe\xcb\x94\x87\x76\xa6\
\xe4\x0f\xae\x63\xd0\xda\x84\x51\x68\x92\x58\x4e\xa8\x0d\x57\x25\
\x7f\xaf\x0a\xbb\xb4\xc4\xf8\xbd\x3e\x5c\xe9\x5f\x57\x85\x7b\x12\
\x1b\x6b\xd0\x6d\x83\xe1\x66\xd6\xbd\x5f\x17\xd6\x2e\xb5\xda\x78\
\xa0\x13\x65\x60\xda\x40\x2b\xc4\xfd\x2a\xa8\x77\x0d\x6d\xc7\xe9\
\x2b\x14\xdf\xb7\x96\xee\xfb\xae\xe3\x9a\x5d\xda\xa6\x3d\x84\xa6\
\x7d\xb5\x1b\xf8\x68\x1c\x81\x88\x0c\xdb\xfa\xa3\xdd\x96\x8a\x6d\
\x9b\x1d\x0c\x0d\x67\xc7\xf9\x07\x37\x6a\xa2\x19\xfc\x86\xd0\x20\
\xf7\x81\x28\xe7\xd9\x21\x2d\x59\x35\x63\xd1\x67\x9e\x10\x1a\xdc\
\xda\x48\x88\x30\x68\x86\xc2\x60\xed\x3d\x68\x07\x3f\xc2\xbc\xf5\
\x81\xa5\x08\xc5\x56\xeb\x3d\x4d\xd7\x46\xd7\x96\x58\x0f\x36\xbf\
\x62\xe8\xf7\x85\x5d\xb6\x91\x76\x3c\x20\x1c\x02\x51\x14\x33\xb2\
\x18\xed\x74\xd1\x67\xd4\xc6\x6a\x84\xe2\xef\x06\xd5\xe0\x76\xb5\
\xbf\xd0\xb5\xb5\x83\xff\x20\xc4\x21\x78\x44\x28\x9f\x69\xba\x3e\
\x6a\x87\xb4\x60\xf0\x7a\x89\x2d\x9f\xb6\xec\x37\x5d\x1c\x75\xc2\
\x82\x93\x64\x6e\x28\x0c\x1a\xc7\xdd\x14\xf5\x34\xd1\x67\x14\xf8\
\xba\x6a\x64\x7e\xef\xba\xb5\x25\x73\xd7\x74\x7f\xc2\x5b\x27\xaa\
\x13\xd4\x48\x00\xbb\xfa\x21\x5a\x1d\x5c\x9a\xbf\x67\x48\x03\x9a\
\x2e\x8c\x3a\xcb\x76\xda\x5a\xb3\x0e\x0c\x02\x4d\x61\xfe\x6a\x85\
\x22\xae\xb7\xdb\x63\x59\xfd\xfd\x5c\xae\x57\x7b\x2d\xf7\x55\x5d\
\x70\xbd\x75\x60\x4d\x9e\x06\x74\x4d\x02\xb9\xda\x1d\xc3\x41\x78\
\x71\xd8\x95\x0c\x0a\x85\xa9\xe9\x18\x30\xe3\xfb\xd8\x7a\x9d\xa6\
\x29\xcb\x83\x48\x33\xe4\x36\xfe\x5e\x7b\x2d\x76\xdd\x12\xc1\x18\
\x20\xd8\xae\xe8\x51\xd2\xcb\x2c\x0e\x82\x64\xa6\x6b\x91\xff\xb3\
\xa1\x4d\xd4\x63\x40\xb4\x47\x28\x3a\x54\x6b\x66\x44\x37\x34\xa1\
\x38\x60\x3e\x89\x30\x44\x7b\xb5\xc2\xa0\x69\x16\x92\x06\x3b\xda\
\x25\xdc\x2e\xb4\xb5\xa9\xe9\x7e\xc8\xe9\xd3\xa2\xde\x10\x83\x4b\
\xf6\xba\x3a\x26\xaa\xb0\x6f\x77\x2c\xb0\xfd\x1c\x36\xc7\x5d\x3b\
\xa0\x62\x7f\x33\xee\xc6\xa1\xa4\xcf\xcf\xb5\xdf\x95\xf0\x8e\xbd\
\x9f\x4a\xf1\x95\x5f\x6d\xba\x27\xba\xef\x87\xc2\xde\x65\x14\x65\
\x0d\x9b\xc6\x9a\x2e\x5a\xf8\xda\x50\x81\x6d\x4c\x88\x8e\x64\xe6\
\x7d\x84\x22\x2c\x57\x7d\xed\x13\xad\x3d\x36\x9c\x62\x73\x9b\x5c\
\xc9\x41\x9f\xa6\xfb\x16\x2a\xd2\xb6\x16\x4f\xdb\x12\x43\x19\x7a\
\x5b\x99\x1d\x74\x4a\x86\x3e\xf6\x71\x63\x19\xad\x32\x84\x88\x87\
\x4f\xd1\x81\x2e\x30\x35\xc2\x48\x1b\xaa\x1d\x12\xed\x32\x3d\x65\
\x40\xf8\x0c\xd7\xb6\x8f\x98\x79\x1c\x13\xc2\xde\xa2\xa5\x6d\x50\
\xd1\x68\x9d\xc8\x6d\x02\xb1\x6d\x5f\x62\xd5\x06\xdb\x2d\x25\x3a\
\xec\xf8\xd8\x28\x42\xe1\xb4\x99\xa3\x32\x90\x6d\x20\x84\xc2\x36\
\xf8\x3e\x7f\xc8\x47\x11\xf6\x14\xc2\x00\xe3\x61\x5c\xba\xaa\x16\
\xc6\x55\x22\xd9\x88\x36\x81\xac\xda\x0d\xee\x86\x66\xc2\x54\x20\
\x14\x26\xd3\x00\xca\x53\x4a\x06\x3c\x04\xbe\x67\xad\x46\x31\xd3\
\xf5\xec\x9c\x9c\x42\x18\xe0\x5e\xc6\x45\x28\xdd\x06\x66\xd9\xf8\
\x36\xa2\x6d\xd0\x95\xd1\xbb\xec\xab\x01\x9a\x42\x3b\x16\x61\xd0\
\xbe\x12\x2a\x99\x28\x99\x1b\xd4\xbe\x42\xf1\x79\xa1\xfb\x4b\x42\
\x11\x95\x8d\x6c\x43\x05\x5b\x0b\x93\x95\x36\xb6\xc1\xb8\xb6\xe6\
\x6e\x6d\x02\xf1\x85\x2e\x0d\x71\xc3\xae\x59\x30\x16\x0c\x1e\xa1\
\x18\x4c\x67\x31\x4a\x5e\x54\x03\x9f\xe3\xf0\xed\x12\xa1\x19\xc2\
\xd1\x39\xb0\x4a\x20\xc6\xb5\xb7\x40\xd8\xb9\x2e\x9b\xcc\x69\x4d\
\xa5\xf6\x4d\xf8\x62\xf8\xee\x90\xef\xea\x03\x02\xb4\xcc\xfa\x85\
\x7f\xff\x34\x0f\x98\xdb\xae\xb1\x31\xe6\xad\xfe\xb9\x4d\x20\x25\
\x21\x6c\x83\xef\x8d\x1d\x32\x76\x41\x39\xc4\x63\x37\xfa\x1e\x5d\
\x10\x79\xc9\x0d\x4a\xf2\x38\x07\xf8\x88\xae\xb1\x31\x99\x5b\x35\
\xa8\x4d\x20\xec\x75\x57\xe8\x46\xc2\x73\xec\x60\xa7\xa5\x32\x78\
\xbb\x25\xad\x5f\xaf\x0a\x6d\x17\xe1\x73\x4e\x49\xd9\x14\x6e\x3d\
\x44\xd2\x39\x07\x84\xb5\x5d\x11\xaa\x71\x35\xbe\x8d\x68\x13\x08\
\xd3\xd0\xa5\x76\x72\x94\xda\x15\xc2\xa1\x30\xcb\x08\xc3\x56\x9d\
\x5b\x86\xec\x6e\xad\x30\x0a\x7c\x9e\x10\x95\x78\xee\x16\xaa\x59\
\xf5\xbd\x46\x5f\xac\x12\x88\x71\xed\x2d\x90\x52\x0e\x6f\x83\x9b\
\x4e\xf9\x48\x0c\x6a\x6f\xd9\xd6\x20\xde\x21\x34\x01\x86\x0e\xa4\
\xef\x11\xe6\x6d\xc2\x22\x94\xa9\xcc\x6d\x99\x00\x5d\xd6\x83\x8f\
\x69\xf5\x85\x6d\x02\x91\xdc\x74\x45\x0a\x6c\xb9\x7a\xcc\x14\x9b\
\x89\x09\x43\x15\xd7\xc6\x39\xa5\x6a\x9d\xec\x12\x06\x5f\x57\xd8\
\x06\xdf\x37\x6b\x99\x3e\xd7\x55\x89\x98\x42\x28\xc6\xc3\xb8\x74\
\x59\x0f\xe3\xaa\x22\xdc\x88\x36\x81\xc8\x64\xbb\xc2\x5a\xdf\x53\
\xb2\x18\x7b\xdf\x6a\x11\xc6\x9d\x42\x03\xd7\x25\x08\x20\x04\x25\
\x1c\xbb\x3a\x24\x64\xab\x84\x82\xd6\x79\x5c\x7f\x0a\xa1\xd8\xff\
\xcc\x72\xb4\x8d\x2b\x08\x8b\x1d\x74\x6a\x44\xdb\x17\x7d\x81\x40\
\xba\x3a\x48\x20\x63\x9e\x13\x34\x38\x0a\x7e\x06\xcb\x43\x07\x6a\
\x84\x41\xf5\xe5\x19\xf7\x0d\x15\x3b\x6b\x92\x47\xd7\xbd\x57\x58\
\x84\xd2\x35\x78\x7d\x61\xcb\x6d\x97\x29\xd7\x36\x02\x51\x0c\xed\
\x0d\x07\xf7\x4b\xf8\xdb\xc4\x31\xd7\x43\x0c\xd2\xba\xeb\x21\xd6\
\xc2\xad\x87\xf8\xbd\xbf\x37\x7d\x6f\x91\x3e\xa3\x0a\xb0\x2f\xd6\
\x43\xc0\xde\x57\xe6\xa0\xe9\xc2\xa8\xd2\x6b\xff\xd2\x18\xe0\xc0\
\x6b\x57\x0c\xd1\xe7\x14\x09\xdb\x56\x0c\xfb\x5c\xc7\x1e\xb1\x31\
\x57\x0c\xad\x0a\x36\xdd\x0b\xd7\x5a\x31\x5c\xb5\xa6\x2e\x5a\x78\
\x75\xd8\x5a\x06\xa8\x84\xa4\x4f\x01\x91\x89\xac\x19\x48\x9f\xd1\
\x71\x42\x5c\x9e\xd9\x7e\x26\x94\x3e\x6b\xea\x34\xaa\xac\xd1\xaf\
\x03\xa6\xca\x19\xf7\x2e\x0d\x57\xc5\x16\x35\x0e\xc2\xa5\xc3\x9a\
\x5d\x27\xeb\x9c\x12\x32\x78\x7d\x77\x9d\xd0\x0c\x49\x5e\x9b\x43\
\xf6\x7b\xd7\xf5\xb9\x5a\xf3\x27\x20\xf0\xf9\x75\x76\x9d\xd8\xbb\
\x3b\xe9\xae\x13\x9b\xdf\xd4\x81\xba\x3a\x35\xc6\xbe\x2c\x05\xc0\
\x5a\x61\x58\x23\xb1\xa2\x28\x1a\xeb\x82\xbf\xf7\x15\x8a\x76\x30\
\x9b\x43\xf7\x65\x31\xdf\x9e\x62\xd4\x74\x7d\x64\x51\xde\x12\xca\
\x53\x06\x81\xfa\x97\x01\x6b\xba\x01\x32\x33\x6f\x0c\x95\x28\xfa\
\xc0\x91\x80\xbe\x3b\x17\x99\x95\x21\x3b\x17\xd9\xec\xda\x7b\xc8\
\xbf\x08\x9d\x30\xfb\xc0\x82\x93\xe2\x67\xd7\xce\x45\x1b\xb9\xf9\
\xab\xb5\x02\x08\xc7\xd8\xbe\x14\x36\xdd\x00\x75\x82\x59\xeb\x73\
\x20\xa5\x6c\xf9\xd1\xc0\x55\x03\xe5\xef\x68\x8d\xdd\xf7\xfa\xe6\
\x0d\x84\x42\x13\x99\xc5\x72\xad\xa6\xfb\x14\xfa\xbb\x3d\xba\xe5\
\x81\x32\xb5\x50\x2f\xe3\x1f\xba\xae\x6f\x2d\xdd\xd3\x21\x3a\xb1\
\x2a\x06\x67\xb2\x9c\x19\xa4\xf6\x4d\x20\x6d\x9b\xb1\x09\xa4\xb6\
\xb6\x25\x72\xe3\x48\xdd\xbb\x6b\xb6\xe8\x84\xb0\x9b\x26\x11\x88\
\x4d\x66\x6d\xed\x68\x83\xef\x9b\x50\xbe\xef\x3a\x65\x70\xda\xa0\
\x3d\x84\x6e\xa6\xd7\xae\x88\xca\xce\x1d\x54\x72\x46\xb2\xad\x3f\
\xda\x6d\xa5\xd2\x8e\x93\xb5\xa0\x71\x9e\x81\x55\x73\x3e\xa4\xf6\
\x40\x8a\x6b\xd6\x9e\x0f\x61\x32\xb7\xfd\x7c\x88\x67\x0f\xcf\x76\
\x3e\x04\x9c\xa8\x5d\x75\x82\xca\x16\x1c\xcf\x9b\x6a\x5d\x2b\x5e\
\x82\x86\x6d\xe2\x04\x15\xf3\xe5\x2c\x4b\x53\x54\x47\x18\x4c\x69\
\x1f\x61\x08\x75\x55\x0a\x5c\x6f\xf1\x5a\xcb\xb4\x69\x7d\x94\x13\
\x54\xe0\x8c\xa1\x81\xab\x39\x63\xb8\xd2\x46\x2e\x40\xa7\x2f\x1c\
\xd2\x94\xb2\xfd\xd2\x20\x49\x9e\xcc\x64\x83\x37\x05\xca\x19\x43\
\xa6\xb3\x08\xc5\xfd\x69\xe3\x90\x33\x86\x66\x7f\x97\x76\x98\x5c\
\x02\x92\xd1\xce\x18\x42\xed\x29\x5c\x89\x91\x7a\x4e\x2d\x8a\x50\
\x08\xc0\xa0\x98\xa5\x04\x34\xf7\x29\x5c\xda\xe8\x98\x74\x6d\x04\
\x47\xdb\xec\xad\x3a\x34\x2c\x35\xbf\x36\x7a\x9e\x7c\x75\xd0\x53\
\x3b\x1b\xcc\x5a\xb6\x5c\xd8\xd9\xb6\xf8\xa2\x33\xf6\x73\x11\x4c\
\x79\xce\xd4\x2a\x68\xb0\xd8\xbd\x14\xdb\x6c\x68\x90\x3b\x78\x40\
\xc1\x94\x10\x49\x29\xa0\xca\x09\x0c\x18\x87\xcf\x0f\x9a\xe9\x35\
\x60\x9a\xad\x42\xb2\x08\x5d\x4b\x10\x4c\xd9\xc1\xe1\xcb\xf7\xfe\
\x3f\x2a\x6e\x1a\xd2\x92\x36\x87\x88\x84\x50\x9e\xe4\xd0\x47\xf5\
\x7d\x76\x93\x4f\x72\xe8\xd3\x56\x8b\x4f\x9e\xce\x40\x9b\xbb\x4c\
\x95\x71\x72\x46\xbd\xd7\x93\x1c\xfa\x40\xad\x5f\x7c\xce\x26\x36\
\x35\xa0\x50\xa8\xa9\x21\xe7\x0a\xfb\x74\x74\x3f\x80\x75\x60\x62\
\x3d\x45\xb5\x6b\x62\x22\x13\xec\xd1\x54\x93\x3d\xeb\x04\x44\x0a\
\xb5\x4f\x03\xb2\x39\x6d\x48\x32\xb7\xad\x60\x92\x65\xfe\x07\x85\
\x4d\x7d\x5e\xa4\xf1\x79\x53\x38\xe9\xd3\x80\x80\xbd\x3c\x2c\x3f\
\x2f\x8b\x7f\x6b\xea\xe7\x32\xd5\xf8\xac\x8d\x4c\xb1\xc4\xfd\x3f\
\xe0\xdc\x95\x22\xac\x7c\x35\x35\x66\x91\x34\xe5\xb0\xf8\x44\xb9\
\xbe\xa5\x97\xb5\x61\xd3\x9a\x97\x9d\xac\x32\x5d\xc8\xd6\x4a\xb8\
\x74\x6a\xcc\xe5\xd2\x39\x40\x18\x1c\xbf\xf6\xd7\x08\xc3\x78\x88\
\xaa\xc6\x3c\xc8\x54\x05\xf6\xd4\x43\x87\x6d\x86\x58\xe5\xdc\x0a\
\x9d\x59\x54\xbe\x58\xb7\x0c\x32\x17\xb4\x53\x89\xc7\xc1\xd6\xa6\
\xfe\x2c\xd3\x38\x48\x8e\xfb\x46\x98\xa3\x41\xc9\xd9\x3e\xa7\xb2\
\xdb\x63\x15\x45\x5f\x8a\x6b\x1e\x66\x33\x8b\x6d\x5d\x03\x0a\xa5\
\x72\x0c\xaf\xd9\xab\xb1\x02\xa8\x92\x61\xef\xd7\xe0\x73\xe8\xeb\
\xc2\x0c\xb2\xeb\xe4\x81\xe1\xaa\x6c\xb5\x50\x15\x55\xd5\xf3\xfe\
\x61\x9f\x8c\x7e\x4e\x78\x04\xc6\x43\x43\x89\x63\xd7\xfa\xc6\x22\
\x15\x2c\xef\x1d\x76\x55\x7c\x67\x01\x9f\xe0\x5c\xdd\x90\x67\xbf\
\x0b\x9f\x25\x9b\x83\x57\xd0\x46\x86\x42\xe1\xbe\x7e\xf6\x7b\x01\
\x7f\x22\xf2\xb2\xd2\x56\xdb\x09\x14\x8d\x28\x95\xa8\x23\x09\x12\
\x36\x65\xc6\x98\x27\x6f\x8e\x53\x70\xdc\xf7\x6f\x47\x28\x90\xc1\
\x8a\x46\xc6\x78\x7f\x48\xdf\x07\xd9\x0c\xc5\xe2\xfb\x43\xd4\xce\
\x54\x20\x6a\x22\x29\x24\x30\x66\x6a\xf4\xf7\x87\x8c\x69\xef\x34\
\x6a\xac\x37\xec\x70\xa6\xde\xf7\xa4\x76\xd6\xf7\x90\x4e\x17\xec\
\x49\x2e\x6f\xd8\xf1\xaf\xc1\xec\xfb\x86\x9d\xd2\xd6\x47\x85\x8a\
\x86\x0a\xa3\x04\x39\x0a\xc6\x76\x40\x3a\xe5\x88\x72\x79\x07\x55\
\xd7\xb3\xb6\x9a\x60\xf6\x89\xc6\x1c\x2f\x26\x1c\x19\xaf\x50\x72\
\xf9\x1d\x54\x66\x67\x17\xf4\x8b\x09\x54\x47\x52\x83\x63\x52\x54\
\xaa\xfd\xbb\xee\x3b\xa8\xb4\x43\x5e\xb2\xf5\xef\xa0\x2a\x70\x4d\
\xe6\x40\x3c\xee\x5c\x87\x7d\x48\xb5\xeb\xed\x8b\x28\xa6\x41\x00\
\xa0\x54\xb3\xf8\x96\x36\x66\x4e\x39\x5b\xb5\x80\x89\x34\x43\x09\
\x5e\x25\xd6\xbd\x38\x68\x61\x79\x79\x4b\x9b\xc1\x37\x51\x2c\x0f\
\xc0\x90\x7e\xd3\x54\xeb\x1f\x4c\x9c\x87\x03\x68\xc7\xe8\x98\x42\
\x20\x05\x66\xdf\xe2\x7b\x0c\xcd\xd6\x31\x1c\x1f\x21\x19\x1c\xc2\
\xa0\x29\x42\x53\xbf\xa3\x9d\x04\x82\xcc\x25\x8e\x11\xf5\x10\xb6\
\x55\x41\x19\xb8\xc2\x62\x79\x86\xd8\x24\x98\x52\x20\x05\xb2\x73\
\xda\xe2\xb9\xf1\xde\x8d\x6e\xd6\xce\x71\xdf\x75\x41\x43\x2d\xf3\
\x0a\x38\x08\xc3\xb3\xdc\x45\x85\x93\x62\x8e\x50\x8d\xcd\xd7\xa9\
\x92\x68\x71\xac\x9c\x68\xdb\xca\xe3\x36\x80\x06\x3a\xb9\x6b\x13\
\xa0\xcd\x1b\xaf\x09\xe7\x78\xda\xf6\x6c\xb1\x33\x67\x28\x43\x17\
\x5e\x72\x84\xc5\x29\xb3\xf7\xdb\x54\x46\xe1\x97\x44\x79\x76\x21\
\x5a\x73\x47\xc7\x2e\xb4\x7f\x16\x6c\xca\x74\x70\xb2\x8e\x2b\xdb\
\xd3\x24\xfc\xe4\x70\x99\xb2\xb9\x26\xc8\x22\xf8\x03\xc1\x82\xc0\
\xc1\xe0\xab\x62\x1f\x12\x8a\xf0\x66\xc7\xa6\x6d\xb9\xf5\x6c\x51\
\x18\xff\x62\x0b\x8e\x10\x55\x24\xd4\x27\x2f\x18\x02\x41\x80\xa2\
\xa8\x1d\x27\x42\x69\x79\x8f\x52\x8e\xa5\x67\x51\xdd\xc6\xb0\x2d\
\xce\x95\x66\xc8\x0f\x3c\x78\x53\x19\xc5\x52\x29\x8d\x29\xfe\x86\
\x59\x23\xa0\x21\xed\xe5\x9c\x69\x01\x33\xc9\x37\x30\x4b\x42\x56\
\xbb\x4c\x3c\x84\x8d\x36\xd8\xf9\x32\x59\xe4\xd4\x07\xdb\x18\xed\
\x68\x13\x61\xd0\x18\xbb\x1b\x51\x42\xe7\x77\x02\x01\x24\x40\x02\
\x2a\x2c\x30\xf3\x0b\x0d\xb0\x24\x53\x20\xc1\x24\x95\x0a\x80\x77\
\x7a\x94\xd7\x47\x8c\x9a\xd4\x8d\x81\x6d\x14\x48\x1b\xe4\x31\x96\
\x82\x55\x97\x8b\x59\x93\x00\x96\x88\xcd\xc0\x1b\x64\xa6\x08\x45\
\x77\x02\x09\x19\xbf\xff\xef\xb0\xc3\x0e\x3b\xec\xb0\xc3\x0e\x3b\
\xcc\x85\x03\x0e\xf8\x17\x13\x38\xc8\x5d\x25\x6a\x17\x2b\x00\x00\
\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x03\x0d\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\
\x6f\x22\x3f\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\
\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\
\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x32\x30\x30\x31\x30\
\x39\x30\x34\x2f\x2f\x45\x4e\x22\x0a\x20\x22\x68\x74\x74\x70\x3a\
\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x54\x52\x2f\
\x32\x30\x30\x31\x2f\x52\x45\x43\x2d\x53\x56\x47\x2d\x32\x30\x30\
\x31\x30\x39\x30\x34\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x30\x2e\
\x64\x74\x64\x22\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
\x6f\x6e\x3d\x22\x31\x2e\x30\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x77\x69\x64\
\x74\x68\x3d\x22\x32\x35\x30\x2e\x30\x30\x30\x30\x30\x30\x70\x74\
\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x35\x30\x2e\x30\x30\
\x30\x30\x30\x30\x70\x74\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\
\x22\x30\x20\x30\x20\x32\x35\x30\x2e\x30\x30\x30\x30\x30\x30\x20\
\x32\x35\x30\x2e\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x70\x72\x65\
\x73\x65\x72\x76\x65\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\
\x3d\x22\x78\x4d\x69\x64\x59\x4d\x69\x64\x20\x6d\x65\x65\x74\x22\
\x3e\x0a\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2e\x30\x30\x30\
\x30\x30\x30\x2c\x32\x35\x30\x2e\x30\x30\x30\x30\x30\x30\x29\x20\
\x73\x63\x61\x6c\x65\x28\x30\x2e\x31\x30\x30\x30\x30\x30\x2c\x2d\
\x30\x2e\x31\x30\x30\x30\x30\x30\x29\x22\x0a\x66\x69\x6c\x6c\x3d\
\x22\x23\x30\x30\x30\x30\x30\x30\x22\x20\x73\x74\x72\x6f\x6b\x65\
\x3d\x22\x6e\x6f\x6e\x65\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\
\x3d\x22\x4d\x36\x38\x32\x20\x32\x32\x35\x33\x20\x6c\x33\x20\x2d\
\x32\x34\x37\x20\x36\x30\x20\x2d\x32\x31\x20\x63\x32\x34\x38\x20\
\x2d\x38\x36\x20\x34\x32\x34\x20\x2d\x32\x36\x30\x20\x35\x30\x37\
\x20\x2d\x35\x30\x31\x20\x33\x36\x20\x2d\x31\x30\x35\x20\x34\x38\
\x0a\x2d\x32\x35\x30\x20\x32\x39\x20\x2d\x33\x35\x39\x20\x2d\x33\
\x37\x20\x2d\x32\x30\x39\x20\x2d\x31\x37\x31\x20\x2d\x34\x31\x31\
\x20\x2d\x33\x34\x36\x20\x2d\x35\x32\x30\x20\x2d\x36\x30\x20\x2d\
\x33\x38\x20\x2d\x39\x37\x20\x2d\x35\x34\x20\x2d\x32\x33\x32\x20\
\x2d\x31\x30\x36\x20\x2d\x32\x33\x20\x2d\x39\x0a\x2d\x32\x33\x20\
\x2d\x39\x20\x2d\x32\x33\x20\x2d\x32\x35\x34\x20\x6c\x30\x20\x2d\
\x32\x34\x35\x20\x33\x37\x39\x20\x30\x20\x33\x38\x30\x20\x30\x20\
\x35\x38\x20\x34\x38\x20\x63\x31\x30\x32\x20\x38\x36\x20\x32\x34\
\x39\x20\x32\x34\x37\x20\x33\x31\x37\x20\x33\x34\x39\x20\x31\x30\
\x33\x20\x31\x35\x36\x0a\x31\x37\x37\x20\x33\x33\x30\x20\x32\x32\
\x32\x20\x35\x32\x34\x20\x32\x32\x20\x31\x30\x30\x20\x33\x31\x20\
\x34\x35\x31\x20\x31\x34\x20\x35\x36\x39\x20\x2d\x33\x30\x20\x32\
\x30\x36\x20\x2d\x31\x31\x38\x20\x34\x33\x36\x20\x2d\x32\x33\x34\
\x20\x36\x30\x39\x20\x2d\x37\x30\x20\x31\x30\x36\x20\x2d\x32\x33\
\x39\x0a\x32\x39\x30\x20\x2d\x33\x32\x39\x20\x33\x36\x30\x20\x6c\
\x2d\x35\x34\x20\x34\x31\x20\x2d\x33\x37\x37\x20\x30\x20\x2d\x33\
\x37\x36\x20\x30\x20\x32\x20\x2d\x32\x34\x37\x7a\x22\x2f\x3e\x0a\
\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
\x00\x00\x00\xc9\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x7e\x49\x44\x41\x54\x38\x8d\xcd\xd1\x31\x0e\
\x82\x50\x10\x84\xe1\x4f\x0b\x12\x0e\x03\xa1\x90\x8a\xd6\x86\x44\
\xce\x44\x38\x8a\x67\xe0\x0c\x9e\xc0\x52\x7b\x3c\x84\x09\x16\x58\
\x18\x83\x8f\xe4\x51\xe0\x24\x5b\xec\x6e\xe6\xcf\x66\x96\x7f\x54\
\x85\x73\xac\xb9\xc0\x03\x75\x8c\x39\xc3\x80\x26\xc6\xbc\xc3\x15\
\xe3\x4c\x3d\x71\x47\x87\x34\x04\xc9\xdf\x17\x9c\xbe\xe6\x09\x4a\
\xf4\xb8\x2c\x41\x0e\xa6\x0c\x8e\x3f\xf6\x3d\xda\x10\x80\xf0\x17\
\x4a\xdc\x96\x00\x21\x25\xa6\x4c\x56\x69\xfc\x6c\xf6\x6b\x69\xdb\
\x03\xb6\xd7\x0b\x26\xa7\x15\x72\xfb\xba\xe1\x95\x00\x00\x00\x00\
\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x01\xf4\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
\xa8\x64\x00\x00\x01\x89\x49\x44\x41\x54\x58\x47\xe5\x95\xbd\x4a\
\xc5\x40\x10\x85\x57\x5b\x41\xc1\x42\x51\x41\xb1\x12\x5b\x3b\x5f\
\xc0\x4e\x9f\x42\xf0\x31\xc4\x77\xf0\x07\xdf\xe1\x22\xd6\x3e\x80\
\x8d\xad\x95\x88\xa0\xa0\x9d\x88\x62\x61\xa7\xe7\x64\x66\x2f\x43\
\x88\x9b\x9d\xbd\x89\x08\xf9\xe0\x30\x93\x6c\x7e\x76\xe7\x64\x36\
\x61\xf0\x4c\x69\xf4\xb2\x0a\xed\x48\x3a\xe6\x0a\x7a\x92\xb4\x7f\
\xf6\xa1\xef\x9a\x78\xee\x4f\xe0\xea\x2f\xa1\xfa\x04\x58\x01\x8e\
\xf5\x4e\xd3\xea\xa3\xdc\x55\x98\xd6\x58\xca\x1d\x74\x2b\x69\x19\
\x25\x13\xd8\xd4\x48\xce\xa0\x73\x49\x2b\x76\x21\x97\x0d\xde\x09\
\xf0\xe1\x07\x92\x56\x7c\x42\x5f\x92\x56\xec\x41\xf5\xee\x48\xe2\
\x9d\x00\x1f\x3e\x23\x69\x78\x84\xf8\xe1\x51\xf7\x3c\x51\x82\x77\
\x02\x6b\x1a\xc9\x31\xc4\xbe\xa7\x4e\x78\x42\xd9\xd0\xd8\x39\x2c\
\xff\x1b\xd4\xf4\xc5\xdb\xce\xf8\x80\x7a\x69\x47\xfb\x92\x67\xc8\
\xbe\x84\x39\x2b\x11\xc7\xb3\xdb\xd1\x63\xc1\x92\x46\x72\x0a\xd9\
\x6d\x97\x39\x2d\x89\x58\xab\x92\xe4\xfe\x0b\xb8\xc2\x1b\x68\xa1\
\x3a\x0a\xe1\x10\x7a\x91\x74\xcc\x32\x74\x24\x69\x78\x85\xb6\x20\
\x3b\xc9\x89\xb0\xe5\xcf\x55\x96\x0d\xb9\x16\xcc\x6b\xf4\xb0\xa8\
\x31\x49\x8e\x05\x2c\xff\x35\xb4\x52\x1d\x35\x97\x3f\x62\x6d\xe0\
\x35\xdb\xd0\xc4\x36\xd8\xf2\xbf\x43\xa9\x16\xe3\x18\xaf\xc9\xb6\
\x21\xc7\x82\x59\x8d\x84\xfb\x7e\x6a\x45\x1c\x63\x87\x44\xe6\x34\
\x16\xc3\x15\x3d\x40\xd9\x2b\x02\xb6\x62\xbc\x37\x55\xb1\xd6\x0a\
\x70\xef\x5f\x97\xb4\x08\xde\x9b\xfc\x39\x79\x36\xa2\x0b\x88\x3f\
\x9e\x36\x78\xcd\x48\xd2\x76\xda\xba\x80\xe5\x8b\x2b\xe0\x83\x73\
\xbf\xe8\xd2\xfb\x06\xc8\x6f\x16\xd8\x12\x76\x85\xcb\x0a\xdb\x4a\
\x5d\xa9\xb1\x85\x3d\x5d\xd0\x0b\xff\xd6\x82\xa1\x10\xc2\x0f\x6f\
\x35\x79\x22\x70\x77\xe8\xe3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
\x42\x60\x82\
\x00\x00\x00\xaf\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x64\x49\x44\x41\x54\x38\x8d\xed\x92\x31\x0a\
\x80\x30\x0c\x45\x1f\x1e\xa1\xe7\x71\x10\xaf\xa6\x78\x57\x77\x97\
\x74\x89\x83\x16\x44\xd3\x92\x16\x04\x07\x1f\x64\x09\xc9\x23\x81\
\x0f\x5f\x63\x01\x04\xd0\x5b\x6d\xc0\xe0\x11\x08\x10\x8c\xbe\x02\
\xab\x47\xa2\x85\x7e\x7f\x4a\xc6\x56\xc1\xf5\x9d\x6a\x41\x76\xa6\
\x73\x2c\x14\xf9\x05\x4f\x41\xc4\x0e\x52\x22\x70\x84\x2d\xcb\x8c\
\x1d\xe5\x54\x02\x4c\x8d\xc7\xbe\xc4\x0e\x62\x40\x1f\x4c\x3d\x90\
\xe3\x21\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x1c\x03\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x01\xd5\x00\x00\x00\x9a\x08\x06\x00\x00\x00\xff\xc0\xd2\xfa\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
\xa8\x64\x00\x00\x1b\x98\x49\x44\x41\x54\x78\x5e\xed\xdd\x6d\x6c\
\x1c\x67\x81\x07\xf0\xe7\x99\xb1\x9d\x36\x29\xd4\xb9\x96\x70\xa0\
\x56\x75\x10\x25\x95\x40\xba\xa4\xe9\x11\xb5\xa1\x57\x9b\xa3\x92\
\x1d\x54\x70\x3e\x51\xa9\x1f\xba\x4e\x48\xae\xa7\x4a\x4d\x2d\x71\
\x2f\x48\x85\x24\x27\xa4\x7e\x38\x74\x49\xf8\x84\x92\x4b\xbc\xfd\
\x80\xc4\xdd\xe9\x52\x97\x4a\x89\x05\x3d\xec\xa3\x6f\x0a\xd0\xd8\
\x48\x45\x70\x07\x22\xae\x82\xca\xd1\x2b\xad\x8b\x2e\x6f\xb6\x77\
\x9e\x7b\xfe\xeb\x79\x9c\xf1\x74\x76\x77\x9e\xdd\xd9\xd9\x99\xd9\
\xff\x4f\x79\xb2\x6f\xde\x9d\xdd\x9d\xdd\xf9\xef\xf3\x32\xcf\x08\
\x22\x22\x22\x22\x22\x22\x22\x22\x22\x22\x2a\x22\xe9\x9f\x12\xa5\
\x66\x74\x74\x74\xc0\x3f\x4b\x94\xba\xc9\xc9\xc9\x79\xff\x2c\x51\
\xe2\x18\xaa\x94\x2a\x04\xaa\x52\xea\x82\x7f\x91\x28\x75\xae\xeb\
\x0e\x9c\x3e\x7d\xfa\x0d\xff\x22\x51\xa2\x18\xaa\x94\xaa\x60\xa8\
\x6e\xda\xb4\xa9\x7a\x1d\x51\x1a\xde\x7a\xeb\xad\xea\x29\x43\x95\
\xda\x89\xa1\x4a\xa9\x32\xa1\x8a\x40\x3d\x7e\xfc\xb8\x7f\x2d\x51\
\xfb\xed\xdf\xbf\xbf\x1a\xac\x0c\x55\x6a\x27\xc7\x3f\x25\x22\x22\
\xa2\x16\x31\x54\x89\x88\x88\x12\xc2\x50\x25\x22\x22\x4a\x08\x43\
\x95\x88\x88\x28\x21\x0c\x55\x22\x22\xa2\x84\x30\x54\x89\x88\x88\
\x12\xc2\x50\x25\x22\x22\x4a\x08\x43\x95\x88\x88\x28\x21\x0c\x55\
\x22\x22\xa2\x84\x30\x54\x89\x88\x88\x12\xc2\x50\xad\x6d\x50\x97\
\x23\xba\x60\x9e\xda\x09\x5c\x41\x44\x54\x40\xfd\xba\x1c\xd4\x65\
\x5a\x17\x6c\xef\x94\x7f\x8a\xcb\x25\x5d\xc8\x02\x43\xf5\x3a\x7c\
\xb0\xf0\x01\x42\x80\xbe\xab\x0b\x3e\x50\x4f\xea\xc2\xc3\x94\x11\
\x51\x51\x1d\xd0\x05\x01\x7a\xa8\x7a\x49\x88\x19\x5d\x26\x57\xce\
\x56\x2b\x16\xd8\x1e\xe2\x76\x6e\x07\x63\x62\xa8\x5e\x77\x54\x17\
\x7c\x80\xf0\x41\xc2\x07\xeb\x98\x2e\x44\x44\x45\x85\x4a\x04\xb6\
\x7b\xa8\x50\x0c\xf9\x65\x4c\x97\xdd\xba\x6c\xd6\xe5\xb0\x2e\x80\
\x40\x65\x6b\x5d\x4c\x0c\xd5\xeb\xf0\x4b\x6d\xa3\x2e\xf8\x30\xe1\
\x43\x85\x5a\x2a\x11\x51\x51\x3d\xea\x9f\x02\x2a\x12\x61\xd8\x26\
\x9a\xeb\x51\xd9\xd8\xba\x72\x96\xea\x61\xa8\x5e\x37\xaf\xcb\xc2\
\xca\x59\x22\x22\xd2\x9e\xf3\x4f\x81\xa1\x1a\x03\x43\x95\x88\xa8\
\x3b\xa1\xa9\x17\xdd\x5c\xa6\x99\x37\x0a\x2a\x1b\x64\x81\xa1\x4a\
\x44\xd4\x9d\x10\x98\xe8\xe6\x32\x83\x94\xa2\x04\x07\x28\xcd\xf9\
\xa7\x54\x07\x43\x95\x88\x88\x6a\xc1\xe8\x60\x28\xeb\xc2\x50\x8d\
\x81\xa1\x4a\x44\x44\x61\x18\x11\xfc\xac\x2e\xa8\xa9\x62\xb0\xd2\
\xb8\x2e\x14\x03\x43\x95\x88\x88\xc0\xec\xa7\x3f\xab\x0b\xf6\xd5\
\x47\xb0\xa2\xdf\x15\xbb\xda\x70\x10\x67\x4c\x0c\x55\x22\x22\x02\
\xec\x36\x83\x60\x35\xa3\x7c\x71\x19\xcd\xbf\x9c\x55\xc9\x02\x43\
\x95\x88\x88\x00\xe1\x29\xfd\x82\xfd\xf5\xd1\xe4\x6b\x26\x7e\xc0\
\xac\x4a\xa8\xb9\x52\x03\x0c\x55\xca\x8d\x73\xe7\xce\x89\x1f\xfe\
\xf0\x87\xab\xe5\xf5\xd7\x5f\xf7\x6f\xc9\xa6\x4b\x97\x2e\xad\x79\
\xbe\x28\xb8\x8e\x28\x07\x30\x32\x18\xb3\x2d\x61\x22\x1c\xe0\xac\
\x4a\x31\x31\x54\x29\x37\x9e\x7f\xfe\x79\xf1\xad\x6f\x7d\x6b\xb5\
\x20\xa4\xb2\x0c\x01\x1a\x7c\xbe\x28\x17\x2e\xe0\x07\x3f\x51\x6e\
\x60\x90\x92\x99\x55\x69\x54\x17\xd6\x56\x1b\x60\xa8\x12\x75\xa9\
\xb7\xde\x7a\x4b\x3c\xf5\xd4\x53\xe2\x91\x47\x1e\x11\xe3\xe3\xe3\
\xd5\x96\x00\xa2\x08\x6f\xf8\xa7\x10\xdc\x6f\x95\x22\x30\x54\x89\
\xba\xd4\x77\xbf\xfb\xdd\x6a\x13\x3a\x6a\xd4\xa8\x41\xa3\x26\xcd\
\xe6\x69\x8a\x70\xb3\x7f\x4a\x31\x30\x54\x89\xba\x54\xb8\x4f\xda\
\x84\x2b\x75\x05\x34\xe3\xe2\xf0\x96\xd8\x75\x06\xcd\xba\xf5\x98\
\xd1\xc0\xe8\x67\xe5\x04\x10\x0d\x30\x54\x89\xba\xd4\xa6\x4d\x9b\
\xfc\x73\xd7\x45\x5d\x47\x85\x84\xdd\x65\x50\x10\xae\x66\xd6\xa4\
\x28\xb8\xcd\x34\xf9\x3e\xe3\x9f\x52\x1d\x0c\xd5\xda\x82\x7d\x07\
\xec\x9c\xa7\xc2\x79\xe2\x89\x27\xc4\xe6\xcd\xd8\x73\x42\x88\x0d\
\x1b\x36\x88\xbd\x7b\xf7\x32\x54\xbb\x07\x06\x1f\x99\x09\x1d\x10\
\xae\x51\x7d\xa5\x08\x54\x8c\x00\x06\xfc\x7d\xbd\x39\x82\xc9\xc7\
\x50\x5d\xeb\x88\x2e\x98\x4d\x04\x6d\x60\x38\x35\xd0\x3c\x82\xeb\
\xd0\x5c\x82\xc2\x43\x20\x51\xee\x21\x40\x8f\x1c\x39\x22\x26\x27\
\x27\xc5\x77\xbe\xf3\x1d\xf1\xd0\x43\x0f\xf9\xb7\x50\x17\x40\xa0\
\x62\xa6\x24\x73\x14\x1a\x6c\xdf\x30\x2d\x21\x82\xd3\xec\x97\x6a\
\x02\x15\x47\xb2\xc1\xdf\x52\x0c\x0c\xd5\xb5\x7e\xa6\x0b\x8e\x1f\
\x88\x66\x0e\x73\x48\x24\x53\x70\xdd\x7f\xfa\x85\x53\x76\x11\x51\
\xde\xa1\x7f\x14\x4d\x15\x98\x8a\x70\x52\x17\xd4\x56\x71\xe0\x72\
\xd4\x5c\x71\x1b\xb6\x7b\x1b\x75\xc1\x91\x6c\x28\x26\xcc\x9c\x41\
\x05\x53\x7a\xf9\xc1\xad\xa2\xd2\xa3\xbf\x20\xaa\xc9\x66\x6b\xb9\
\x20\xa4\x5a\x28\xdf\x3f\x65\xf6\x4f\x4b\xcc\xe8\xe8\xe8\x80\x52\
\xea\x02\x6a\x49\xc7\x8f\x1f\xf7\xaf\x8d\x07\xbb\x7f\x04\x07\xd7\
\x7c\xf6\xb3\x9f\xad\x36\x61\x66\x15\x76\x59\xd9\xbf\x7f\xbf\x7f\
\x69\xc5\x37\xbe\xf1\x0d\xf1\xa9\x4f\x7d\xca\xbf\x44\x69\xc2\xba\
\xc0\x3a\x71\x5d\x77\xe0\xf4\xe9\xd3\xc1\xdd\x44\x88\x12\xc3\x9a\
\x6a\x41\x94\xa6\x87\x07\xf6\xbc\x32\x72\x64\xcf\x4b\x23\xef\x3a\
\xa2\x67\xd6\x71\xc5\xb3\x8e\x2b\x27\x9a\x2b\xfa\xbe\x8e\x9c\xc6\
\x63\xed\x79\x79\xd7\x04\x1e\xdb\x5f\x4c\x2e\x60\xc3\x69\x4a\x3b\
\x77\x11\x49\x6b\x39\x41\x9d\x58\x66\x33\xf0\xdc\x82\xcf\xd5\x46\
\xf8\xbe\x59\x7e\x9d\x44\x61\xac\xa9\x16\xc0\xde\x57\x76\x1d\x50\
\x9e\x3a\xa4\xd7\x66\xfb\x06\x54\x39\xf2\xd0\xa9\x7b\xcf\xa0\x39\
\xa8\x25\xed\xaa\xa9\xe2\x7a\xcc\xb0\x84\x09\x0c\xc2\x1b\x61\x0c\
\xc6\x41\xed\x10\x7d\x86\xad\x0e\xc4\xc1\x46\x1e\x33\x3b\x45\x4d\
\x39\x88\xc7\xc6\x72\x1e\x7e\xf8\xe1\xea\x79\xfc\x6d\xab\x35\x55\
\x2c\xc3\xbc\x2e\xec\xee\x12\x5e\x26\x06\x18\xe1\xf5\xe1\xbd\x40\
\xb1\x81\xc7\x0d\xce\x4a\x85\xc7\xfa\xea\x57\xbf\xea\x5f\x8a\x16\
\xbe\xcf\x8e\x1d\x3b\x56\xfb\x62\xcd\x7b\x83\xe7\x8a\xf3\x41\x78\
\x6c\xb3\x0e\xa2\x5e\x7f\xf0\x75\x86\x77\xf5\x01\xbc\x46\x2c\x0b\
\xaf\xb1\xd9\x75\x98\x87\x9a\x6a\x69\x7a\xb0\x5f\xf4\xf5\x0e\x88\
\x8a\xbb\x32\x6e\x43\x8a\x79\xb1\x7c\x75\xae\x3c\x34\xc3\x2e\xa7\
\x06\xde\xf7\xde\x35\x45\x2e\x08\x77\x79\xbe\xbc\xf3\x07\x4d\xef\
\x3a\x14\x19\xaa\x5f\xfe\xc9\xf0\xa0\xbe\x49\x3f\x31\xc9\x51\xaf\
\x19\xe7\x2d\x8b\x3b\x84\xa7\xd2\x39\x8a\x44\x02\xc1\x9a\x74\xa8\
\x62\xc4\x2a\x26\x2d\x88\x33\x1b\x10\x96\x89\xc0\xb3\x0d\x1f\x03\
\x81\x71\xf2\xe4\x49\xff\x52\x7d\x66\x39\xad\x84\x2a\x5e\x93\xcd\
\x84\x0c\x78\x7d\xf8\x91\x11\xf7\xf1\x31\xf9\x03\x8a\x11\x67\x9d\
\x84\xef\x83\xd7\x88\x65\xe2\x7d\xc1\xfb\x13\x07\x82\x15\xeb\xcd\
\xc0\x3a\xc5\xeb\x0c\x07\x71\x14\x3c\x47\xdc\x17\x01\x6b\x2b\xcb\
\xa1\x5a\x7a\x71\x78\xd0\x75\xe5\x41\xa5\xaa\xfd\x99\xef\x23\xa5\
\x98\xa9\x2c\x8b\x63\xe5\xbf\x38\x8b\xbe\x4f\x0a\x68\xf4\xde\x35\
\x69\x5e\xbf\xeb\x33\xde\xa2\x77\xb8\x3c\x34\x65\x06\x73\xc5\xb2\
\x26\x54\x11\xa6\xd2\x75\x8e\x08\xc5\xd1\xad\x79\xa0\x2a\x4a\x78\
\x4b\xfe\x85\xb4\x48\x31\x7e\xea\xbe\xb3\x66\x54\xa0\xb5\x24\x43\
\x15\x1b\x56\x6c\x24\x6d\x27\x2c\x40\xe0\xa1\xd8\x08\x87\x49\x1c\
\x08\x9c\x60\xad\x0e\xe2\x86\x6a\x33\xcb\x33\x10\x72\x58\x76\x23\
\xe1\x65\x34\x1b\xaa\x58\x07\x51\xb5\xcb\x7a\x4c\xb0\xda\xfc\x50\
\x09\x6a\xa6\x6f\x3a\x8b\xa1\x8a\xae\x15\x77\x9d\x9c\x88\x1f\x08\
\xb2\xdc\xcc\x86\xbe\x88\x50\x33\x75\xd6\xdd\x78\x50\xe7\x55\x3b\
\x07\x52\xcd\x7b\x15\x31\x6e\xf3\x63\x66\x35\x54\xf7\xff\x74\x64\
\x54\x49\x89\x21\xd5\x94\x13\x95\x6b\x4a\x27\xab\x7f\x21\x3d\x0b\
\xde\xe2\x95\xcd\xcd\x36\x47\x25\x19\xaa\x61\x78\x4c\x6c\x68\x71\
\x0a\x08\xdb\x5a\x35\x58\x9b\x8d\x72\x38\x48\x0c\x34\x69\x22\xd8\
\x83\xcb\x43\xa9\x57\xe3\x8a\xb3\x5c\x04\x31\x6a\x6e\x61\xb8\x9f\
\x79\x7d\xa8\xbd\x62\x59\x78\x3f\xa2\x96\x17\x67\x39\xe1\xd7\x15\
\x67\x9d\x84\xef\x83\xf7\x20\x58\x93\xc6\x32\xd1\x54\x8b\xeb\xa1\
\xde\x3a\x40\xb0\x86\x6b\xb7\xc1\xfb\x07\x5f\x63\x58\x9c\xe7\x1a\
\x16\x27\x54\xf7\xfd\xf8\xc1\xad\x15\xb7\x95\xe6\x43\x0b\x8b\xba\
\x78\xf2\xa0\xfe\xdf\x76\xcc\xc2\xbc\xe8\x55\x87\x85\xeb\x5f\xea\
\x52\xf2\xaa\x3c\xa0\x37\x7f\xe9\xac\x2b\x8b\xca\x44\x35\x54\x4b\
\xb3\xc3\x03\xbd\x9e\x83\xfd\x2f\x73\x35\x20\xa5\x9b\xb5\x5a\x4b\
\x5d\xef\x2e\x8b\x4f\xdc\xf4\x47\x71\xb9\xd2\x23\xfe\xfb\xff\x3e\
\xe8\x5f\x1b\x93\xd2\x1f\xb0\xcf\x34\x57\x5b\x6d\x47\xa8\xe2\xb1\
\x6a\x35\x7b\x62\x23\x8a\x10\x08\xd7\x18\xe3\x2e\x1f\xf7\x0f\x37\
\xe1\x02\x6a\xba\x08\x05\x13\x1e\x41\x08\x0a\x2c\x33\xaa\xd9\x36\
\x4e\xd8\x99\x8d\xbf\x51\xef\xf5\x41\x38\xe8\x00\xc1\x84\x7d\x50\
\xeb\x09\xdf\x2f\xce\x7b\x12\xb5\x2c\xc0\xf2\xd0\x1f\x8b\xc7\x08\
\xc3\x6b\x41\x6d\xb4\x5e\x13\x3d\x5e\x1b\x5e\x63\xad\xfb\x63\xdd\
\x07\xdf\x13\xb0\xad\xad\xd6\x0b\xd5\x7d\xb3\x18\x97\x20\x0f\xc9\
\xa6\x47\xcc\x5b\xd2\x69\x50\x59\x6c\xe1\x47\xb1\xde\x72\xbb\x7d\
\xfa\xbf\x35\x6d\x8d\xdd\x43\x2d\xeb\xed\xdf\xb2\x7f\x21\x25\x9e\
\xa3\x36\x97\xef\x6d\xdc\x42\x50\x1d\xfd\xdb\xb3\x2c\x31\xb9\x01\
\x03\x35\x47\x54\xc5\x3f\xd3\x84\x2d\x1b\xde\x13\x4f\xdf\x75\x5e\
\x3c\x7e\xc7\x2f\xc5\xdf\x7c\xec\x75\xf1\xf5\x3b\xe7\xaa\x21\x1b\
\x97\x72\xc4\x17\xfd\xb3\x0d\xe9\x6d\x46\x5b\xfb\x7b\xb1\x11\xae\
\xb7\x71\x35\x81\x84\x00\x0c\xc2\xc6\x35\x4e\x1f\x60\x54\x80\xa0\
\xd9\x12\xa1\x1a\x15\xa8\x80\x65\xe1\x39\xd5\xba\xbd\x9e\xa8\x9a\
\x67\xbd\x40\x05\x13\xf0\x41\xb5\x6a\x78\xed\x60\x02\x3c\x2a\x10\
\x01\xd7\x23\x70\xf1\x77\x51\x50\xdb\xc7\xfb\x55\xef\xfe\x51\xef\
\x67\xf8\x87\x52\xb3\xf6\xcf\x7e\xfe\x88\xf0\xc4\xd1\xd4\x02\x55\
\xf3\x74\x28\xb4\xd4\xca\xa4\xef\xeb\xe9\x1f\xd6\x5d\x09\xaf\x3d\
\xcd\x40\x55\x98\x97\x40\x8d\xc5\x09\x54\xa8\x86\xaa\x74\xe3\x6f\
\x24\x29\x1b\x54\x0b\xdf\xa7\xd2\xed\xbf\x5e\x13\xa2\xb7\xdf\x78\
\x59\xfc\xe5\xad\xbf\xf3\x2f\x35\x26\x63\xf4\xb9\xeb\xa7\x37\xa8\
\x0b\x5a\x3f\x26\xf4\x69\xdb\xa6\x37\xab\xb7\x31\x0e\x42\xf0\x84\
\xff\xae\xd1\xe0\x26\x84\x5b\x78\xc3\x8d\x3e\xc4\x70\x80\x45\x41\
\x80\xd8\xf6\xdb\x02\xc2\x30\x08\x41\x12\xa7\x36\x16\x15\xf2\xe1\
\xc7\x6a\x97\x46\x23\x86\x8d\x5a\xef\x5b\x70\xd0\x52\x2d\x58\x77\
\xe1\xc1\x49\x49\xfc\x68\xd8\xf7\xda\xae\x92\xf2\x54\xba\x93\x1b\
\xe8\x2f\x44\x2b\x3f\x8a\x0d\x85\xaf\x70\x0b\xdb\x81\xbc\xaa\xfe\
\x20\xb1\x64\x5a\xe6\xb6\xde\xfc\x8e\x55\x05\x42\x9b\xf7\xa4\x1c\
\x3a\xb5\x73\xaa\xec\x5f\x6e\x68\x65\x3f\x55\x25\x59\x4b\xcd\x9b\
\x26\xbf\x4c\xb7\xf4\x5d\x13\xb7\xea\x12\xb6\x65\xc3\x1f\xfd\x73\
\xb1\xd4\xfc\x45\xaf\x9f\x56\xbf\x2e\x68\x77\x44\xa0\x62\xf0\x05\
\xfa\x5e\xdb\x32\xa8\x22\xd8\x9f\xd9\x08\x02\x27\x3c\x78\x07\x1b\
\xe5\x7a\x23\x6b\xa3\x36\xda\x36\x41\x19\x0e\x81\x38\xc2\xcf\x27\
\x6e\x6d\x17\x7f\x87\xe5\x21\x80\x4d\x89\x7b\xdf\x56\x60\x39\x71\
\xd7\x41\xd4\xfb\x61\xb3\x0e\xc3\x35\xdd\x7a\xeb\xce\x02\xfa\x34\
\x53\x95\x64\x0d\xb3\x1b\x6b\xab\xca\xf3\xcf\xc4\x84\x6d\xde\xd7\
\xee\xfc\x59\xb5\x55\x0e\xad\x73\x5f\xd7\xe7\x6f\xbf\xa1\xf1\x67\
\x47\x57\x1e\x66\xbc\xf5\x57\xb6\x95\x77\x9e\x69\xb8\x7b\x8d\xbf\
\xdd\xab\xb6\xca\xad\x84\xaa\x54\x5d\x3f\x92\x2c\x77\x9a\xec\x4b\
\xb9\x52\x89\x1e\xdd\x70\xd9\x6b\x7d\xd4\x83\xfe\x50\x61\x02\x6e\
\x54\x8f\xcc\x2f\x7f\xec\x7e\xb3\x59\x3f\xd5\xd8\xbf\xf2\x6c\xd8\
\x86\x46\x54\x4d\xa9\x5e\x6d\x35\x5c\x4b\xb5\x09\x90\x66\x85\x1f\
\x1f\xb5\xe5\xb8\x35\x32\x34\x13\xa3\xe6\x6e\x4a\xf8\x47\x44\xa7\
\x45\xad\x2f\xbc\xa7\x71\x85\xef\xdf\x6a\xa8\xae\xec\x3a\xd8\x81\
\x6e\x2f\xcb\x50\xa8\x2b\xc9\xc7\xca\x03\xfc\x86\xb0\xfc\x1d\xf1\
\x85\x4d\x17\xd7\x54\x24\x10\xb2\x5f\xfa\x68\xfd\x56\x1c\xbd\x88\
\x63\x27\x3f\x73\x76\xa8\xbc\xad\xf1\x80\x4c\xfd\xb7\xe8\x3e\xc5\
\x5c\xf1\x68\x95\x1b\xac\x86\xaa\xaa\x48\xcc\x67\x4b\x79\xd2\x64\
\xa8\x62\x60\xd2\xf3\xbf\xbf\xdd\xbf\xb4\x02\xd7\xfd\xeb\x9b\xf1\
\xb7\x2d\xb7\xbe\x79\x79\x41\x7f\x78\xa6\x43\x05\xc7\x65\xc4\xe0\
\x25\xd4\x62\x31\xbd\x21\xc2\xf4\x90\x2e\x99\xd9\x69\x1d\x1b\xe5\
\x70\x68\xd5\x6b\x22\x0d\xdf\x56\xab\x4f\x30\x49\x51\xb5\x39\x8c\
\x04\x4e\xaa\xff\x30\x6b\xd2\xa8\x4d\x67\x4d\x2b\x5d\x37\x61\x49\
\x3e\x56\x1e\x34\xf3\x7a\x3f\x71\xd3\x7b\xfe\xb9\xeb\xb6\xdc\x54\
\xa3\x65\xce\xef\x3f\x9d\xd8\x79\xb6\x61\x97\x80\x7e\x2a\x5b\x75\
\x41\x8b\x1c\xf6\x9a\xc1\x06\xb4\x7a\xe4\x9f\x6a\xa8\x2e\xf7\xf4\
\xe9\x8d\xa1\xcc\xcc\xc6\x8f\x1a\x93\x2b\x6d\x0c\x4d\xf9\x9e\x0e\
\xd5\x89\x8b\x1f\x17\xaf\xbc\xb3\x49\xbc\xf0\xf6\x47\xc4\x37\x7f\
\xf3\x49\xf1\xf6\xe2\x0d\xfe\xad\x8d\x6d\x99\x7b\x07\xc1\x89\x5f\
\xf9\xc1\x62\x9a\x84\xf1\x39\x1a\xd3\x61\x9a\xc9\xd6\x0f\x9b\x26\
\xc4\xf0\x6d\x69\x84\x2a\x42\x26\x5c\xa3\x46\x6d\x15\xc1\x8a\xd1\
\xab\x18\x45\x9b\xd6\x00\xa4\xa2\x93\xca\xe9\xcc\x36\x2f\xc9\x20\
\xec\xb2\x50\x95\x4d\x54\x26\xfe\xb0\xb8\xce\x3f\x77\x5d\xd4\x75\
\x5a\xac\xfe\x53\xfd\x96\x9b\x2e\x2e\xd4\x4e\xb1\xed\xc3\xe7\x68\
\x5c\x3f\xb5\x21\x5d\xe6\xaa\x9b\xe6\xf2\xb6\x49\x7d\x65\x65\x1c\
\xe7\x29\x1f\x1c\xb7\x89\x4f\x57\xc0\x2b\xef\x6e\x12\x13\xbf\xfd\
\xb8\xf8\x97\x37\x37\x8b\x8b\x57\xec\x6a\x0b\x1f\xfb\xf9\xc2\x6e\
\x7d\x82\x43\x41\x05\x0b\x8e\x74\x81\x20\x45\xb8\x5e\xd0\x1f\x3a\
\x34\x85\x64\xae\xaf\x3e\x5c\x33\x0a\x8f\xb4\x35\xa2\xae\x6f\x77\
\xd3\xaf\x81\x81\x3b\x51\x4d\xd5\x78\x4e\x18\xb1\x8c\xdd\x4b\x46\
\x47\x47\xab\xa7\x08\xd9\xb4\x06\x24\x15\xcd\x52\x6f\x9f\xfe\xbc\
\xe6\xbc\x32\xd1\xda\x66\x20\x7f\xf0\x7a\x2d\x5f\x73\xb8\x65\x0e\
\x5e\x78\xfb\xa3\xfe\xb9\x15\x5b\xce\xbf\x23\x8e\x7d\xfe\x85\x85\
\x89\x9d\x67\x8e\xe8\xed\x56\xb8\x15\x6e\x4d\xd1\x7f\x1e\xec\xe2\
\xc2\xd1\xcc\xd0\x2a\xb7\xba\x8b\xe1\x6a\x7d\xe7\xc4\xf6\xa9\xb2\
\xa7\xd4\x6e\x29\xd8\xbf\x9a\x0b\x7a\x2d\xca\x1e\xff\x7c\xaa\x54\
\x79\x68\xf2\xe2\xa4\x5e\xfc\x4c\xa8\xe0\xd7\xdd\x36\x5d\xcc\x34\
\x86\xe8\xb4\xc7\x87\x30\xf5\x81\x20\x45\x80\x60\xad\xb5\xdf\xa6\
\x81\x1a\x2b\x42\x76\x7c\x7c\xbc\x5a\x8b\x2d\x6a\x13\x71\xbb\xa0\
\x32\xa1\x3c\x85\x8d\x62\xba\xf4\x97\x25\x31\x49\x3e\x56\x4e\xd8\
\xd6\x56\xff\xeb\xd2\xcd\xe2\xef\x7f\xb9\xbd\xda\x2a\x87\xd6\x39\
\xb4\xcc\xe1\x7c\xd0\x8e\x17\xde\x5c\xb8\x69\x61\x09\x7b\x35\x84\
\x5b\xe0\xa2\x8a\x69\x95\xc3\x2c\x4b\x47\xf5\xd3\x59\xf3\xc3\x2c\
\xf2\xe9\xed\xfd\xe9\xc8\xa8\x54\x98\xfb\x97\xb2\xae\xb2\xa8\xbe\
\xa8\x57\x62\x5a\xeb\x6a\xbe\x3a\x1a\xae\x41\xe7\xbd\x0e\x52\xd4\
\x50\xb1\x1b\x0d\x8e\xcd\x08\xcf\xe9\xe7\x88\xce\xfc\xc4\xe7\xfe\
\x45\xf0\xd8\x08\xf7\x4f\x62\xa0\x0c\x06\xf5\x84\xa1\x56\x18\x9e\
\xf4\x01\x7f\x67\x33\xb0\x26\x89\xc7\x00\x3c\x5f\x94\x38\xcd\xbe\
\x78\x5f\xeb\xed\x13\x1a\x94\xc4\xe4\x0f\xb5\xde\xbf\x5a\x50\xc3\
\x0e\xc2\xfa\x8b\x3b\xa0\x0a\xef\x41\x78\xa6\x29\x1c\x60\x3d\xae\
\xa8\xc9\x1f\x4a\xb3\xa3\xfd\x7d\xde\xb5\x59\x25\xd2\xdb\x03\x02\
\xbb\x84\x54\x77\x87\x49\x80\x74\x75\xcd\xa8\xd7\x32\x65\x72\x0e\
\xa3\x7f\x3d\x4c\x9c\x91\xb0\x7b\xa6\xff\x67\xe6\xaf\x9f\x9a\x8d\
\x33\xb7\x39\xb6\xb7\x18\x94\x69\x3e\x33\xd8\xd6\x3d\xa3\xd7\x42\
\xb5\x42\xda\x5d\x6b\xa3\x80\x4a\xaf\x0e\x0f\x48\x4f\x3e\xdb\xee\
\x60\xd5\x8f\x3f\x57\x71\xd4\xee\xb8\x3b\x40\x83\xfe\xd8\x63\x0b\
\x8a\xbe\x07\xf4\x35\x54\xef\xc7\x50\xb5\x0f\x55\x03\x7d\xbc\x68\
\xea\xc5\x7b\x60\x4a\x2d\x08\xd6\x46\xbb\xf4\x30\x54\x57\x3c\x36\
\x3b\x3c\x50\xf1\x1c\x7c\x4e\xd7\x3e\xb9\x36\x49\x32\x14\xaa\xb3\
\x2a\xb5\x30\xbe\x22\xaf\xf0\xfe\xd9\xee\x5a\x13\x8b\x14\x93\xde\
\x35\x35\xde\x68\x6e\xe5\x88\x8a\x03\xfe\xfe\xb0\x5e\x1b\x65\x5d\
\x28\x0b\xf4\x4a\xea\xd7\x2b\x23\xb2\x06\x88\x15\x68\x42\xa9\x96\
\x3d\x2f\x0e\x1f\x12\x8e\xc4\x0a\x4e\xf6\x17\x37\x46\xc3\x29\x75\
\xec\xd4\xfd\x53\x89\x4c\xe0\xd0\xe9\x50\xb5\x79\x8c\x56\x02\x00\
\x92\x0e\xd5\x30\x84\x2c\x76\x09\x42\xc8\x61\x59\x41\xe8\x3b\xc6\
\xfb\x5b\x6f\x74\x2d\x43\x75\xad\x95\x5d\x6c\x9c\x41\xe9\x88\x3b\
\xfc\xab\xda\xa6\x72\x4d\x0d\xea\xef\x56\x4b\xdf\x55\x29\xc5\x9c\
\xb3\x4e\x36\x7d\x88\xb2\x5c\xab\xe8\x7f\x4b\xfa\x3d\x4c\x7a\x7b\
\xb7\x62\x5e\x87\xf6\x50\x9c\x83\x16\xf8\xe1\x8a\xd1\xbf\xa6\x52\
\x83\x01\x4b\xd4\x69\x7a\xc5\xa0\x29\x01\xa1\xb5\x5b\xaf\x10\x0c\
\xcb\x5e\xa5\x6f\x43\x9f\x24\xfa\x27\xb1\xb2\x1a\x6e\x41\x4a\x3f\
\x1a\x19\x95\x2e\xf6\x95\x92\x37\xfb\x57\x35\xc5\x13\xea\x3d\x55\
\xd1\xcf\xe5\x03\x57\x66\xe2\xec\xab\x15\x57\xa7\x43\xf5\x91\x47\
\x1e\x59\x33\xaa\x17\x93\x39\xd4\x9a\xd0\xc1\x6c\x84\x0d\x0c\x1e\
\x8a\x33\xfb\x8f\xd1\xee\x50\x0d\x0a\x87\x1d\xd4\x7b\x6d\x10\xbe\
\x4f\xb7\x87\x6a\x9a\xd0\xc2\xe4\x78\x12\xa3\x47\x4d\xff\x9c\x1d\
\xfd\x63\xd7\x73\xd5\x36\x9b\x96\xa3\xa2\xf1\xdf\xc3\x76\xcd\x59\
\xbf\xe0\x55\xc4\x58\xdc\xa3\xd3\xe8\xed\x34\xb6\xd1\xa8\xd4\xec\
\xee\xc2\x86\x83\x4c\xda\xa8\x0b\xbe\x5c\x6b\x66\x40\xf7\x7f\x05\
\x21\x6c\x71\x1a\xeb\x17\x29\x3e\x04\xd8\xc7\xea\xe4\xce\x33\x63\
\xad\x14\x3c\x06\x1e\x2b\xc9\x40\xed\x34\x6c\x50\x6d\x76\x93\x09\
\x87\x5f\xbb\x47\xd9\xe2\xb9\xe1\x39\x06\x4b\x5c\x08\xcf\xb4\x9f\
\x2f\x35\x0f\x61\xa8\x7f\xb8\x36\xbd\xc7\x85\xae\x4d\xc7\x9e\x8b\
\xb6\xa8\xaa\xef\xe1\xe2\xba\x6d\xca\xab\x8e\xc0\x4d\x5a\xbf\xe3\
\x8a\x23\x38\x34\x9f\x7f\xb9\x2e\x5d\xe1\x41\xb3\x2f\xba\xb9\x56\
\xf6\x53\xa5\x8e\xc3\x70\x6c\x7c\x41\xb0\x33\x71\x70\xa7\x63\x33\
\x72\x16\x2b\xac\xab\xbf\x40\x51\xc2\x01\xd9\x48\xb0\x2f\xd5\xa8\
\x17\xaa\xe1\xdb\x50\x4b\xb6\x09\x3a\x5b\x68\xca\x45\x6d\x2a\x58\
\x6c\x5e\x63\xf8\xf9\xda\xbe\x3f\x94\xae\xf2\xce\xa9\xb2\xe7\xa9\
\x21\xab\x91\x2d\xfa\x6f\x3d\x21\xb7\x9d\xbc\x8f\x07\x2b\x87\xf2\
\xd0\xe4\xc2\xc4\xfd\x67\x9f\xf4\xd6\x5f\xd9\xa8\x6b\x96\xbb\xf5\
\xf6\xf3\x98\x14\x52\x6f\x2f\x9b\x2f\xba\x36\x33\x8e\xf5\x72\x6a\
\xe7\xd9\xcd\xcd\x1c\xb7\x96\xa1\x9a\x01\xf8\x75\xa3\x4f\xb0\x9f\
\x27\x1c\xd4\x1f\x0c\xec\x5c\x8c\x76\x32\x34\x29\xe0\xb6\x38\x23\
\xd2\xba\x0e\x42\xa8\xde\x60\x9d\x20\x84\x61\x38\x54\x51\xb3\x43\
\x93\x67\x2d\x68\x96\x0c\xf7\x49\xda\x1c\x50\x3b\x2a\xc4\xeb\x89\
\x0a\x78\x9b\xda\x26\x43\x34\x7f\xca\xf7\x4f\xcd\x60\xb0\x11\x46\
\xf1\xd6\xa5\x37\x12\xb2\x47\x56\x07\x26\xc5\x99\x8b\xb6\xdb\xa0\
\x45\x2d\xa9\x56\x3a\x1c\xd6\x12\xeb\xc5\x7f\x68\x6b\x0c\xd5\x8c\
\xd0\xdf\x19\xac\x44\x14\x34\x03\xa3\x86\x6a\x9a\x82\xf5\x2f\x2f\
\xd6\x52\x6b\x41\x1f\x5b\x9c\xda\x23\xc2\x30\xfc\x77\x8d\xfa\xf2\
\x10\xa8\xe1\x11\xb4\x66\x60\x50\x23\x08\xd4\x38\x7f\x17\x84\x50\
\x0d\x07\x2b\x5e\x5f\x9c\xb0\xc4\x6b\x0b\xff\xc0\x88\x0a\x69\xca\
\x20\xfd\x05\xc7\x6e\x31\xee\x3a\x29\x1c\x04\x2c\xf6\x3f\x47\xc8\
\xea\x52\xdd\x65\x46\x5f\x87\x30\x75\x70\xbd\xfe\x5b\xca\x36\x86\
\x6a\xb6\x98\xda\x2a\x9a\x80\xd1\x96\x3f\xaf\xbf\x43\x89\x8c\xba\
\x2d\x2a\x84\x09\x06\x30\xd5\xaa\x15\x9a\xdb\xc3\x13\xe7\xa3\x86\
\x1a\x67\x80\x0c\xfa\x2a\xc3\xb5\x55\x33\x58\x27\x2a\xcc\x11\x80\
\xb8\x2d\x3c\xa0\x26\xae\xa8\x29\x0a\x31\xb9\x43\xd4\xb2\x0c\xdc\
\xf6\xf4\xd3\x4f\xbf\xef\x6f\xa2\x66\x65\xa2\x0c\xd3\x5f\x76\x4c\
\x3f\xea\xa0\x46\x8a\x90\xd5\x05\x61\x5b\x9d\x92\x94\x61\x9a\x1b\
\x0c\xd5\x0c\xd1\xdf\x1b\xd4\x48\x83\x9d\xee\x6c\xf6\x8d\x01\x61\
\x82\x10\x43\x1f\x24\xc2\x05\xe7\x51\x10\xa6\xb8\x2e\xaa\x89\x38\
\xee\x88\x55\x84\x6f\xd4\x08\x5a\x04\x27\xc2\x2e\x6a\x79\xb6\x35\
\xd4\x20\x04\x7d\xb8\x76\x8c\xd7\x87\xc7\xc5\xe3\xa3\xc6\x8d\x59\
\x94\x50\x70\xde\x2c\x33\xdc\x4c\x8c\x40\xad\xd7\xb4\x4d\x44\xed\
\xc1\x50\xcd\x1e\x33\x87\x24\x6a\xa9\x6d\x39\x64\x5a\x51\x20\xec\
\x82\x4d\x9c\x08\x1f\xd4\x48\x51\x6b\x45\xa9\xd5\xdf\x8a\xdd\x38\
\x6c\x02\x07\x01\x15\x15\xac\xa8\x95\x86\x97\x17\x6c\xaa\xc5\x7d\
\x9a\x09\x36\x3c\xbf\xa8\x89\x1b\xf0\xf8\x26\x4c\x4d\xb8\x46\xbd\
\x46\xf4\x15\xdb\xec\xfa\x43\x44\xc9\x61\xa8\x52\x6e\x21\xb0\x50\
\xe3\x8c\xdb\xcc\x69\xfe\x1e\xb5\x41\x5b\x08\x48\x04\x55\x9c\x90\
\x44\x73\x31\xfe\x16\xf7\xa9\x37\xf9\x42\x2d\xb8\x0f\x66\x44\x8a\
\xbb\x3c\xc3\x2c\xd7\x66\xbf\x51\x22\x4a\x56\xa3\x31\x67\x94\xb2\
\x43\x2b\x03\x95\xd0\xa7\xba\x70\x78\x6d\x53\x70\x21\xdc\x75\xd7\
\x5d\xd5\xd7\x87\x00\xb0\xed\xf3\x43\x2d\x70\xe3\xc6\x8d\xab\x03\
\x7a\x50\x9b\x43\xe8\xdc\x7d\xf7\xdd\xd5\xa0\x34\xb5\xc4\x85\x85\
\xb5\xbb\xd6\xa2\xe6\x86\xdb\x51\x03\xbc\xed\xb6\xdb\xfc\x6b\xed\
\x6d\xd9\xb2\x65\xb5\x06\xb9\xb4\xb4\xf4\xbe\xe5\xe0\x39\x0d\x0f\
\x0f\x8b\xaf\x7c\xe5\x2b\xab\xfb\x8c\xe2\xef\x82\xcf\x19\xd7\xe3\
\x72\x1c\x58\x1e\x9e\xb7\x79\xce\x58\x1e\x1e\x2f\x08\xef\x23\xfe\
\x0e\xef\x25\x5e\x9f\x59\x6e\x1c\x78\xbf\xfa\xfa\xfa\x56\x9f\x1b\
\x0a\xde\xcb\x7a\xa2\xee\x63\xb3\x4c\xb4\x26\x84\xef\x1b\xf7\x87\
\x83\x59\xbf\xc1\xfb\x47\xd5\xe8\x6b\x41\xcd\x1e\x8f\xe1\x38\xce\
\xd1\x5f\xfc\xe2\x17\xef\x3f\xc8\x66\x87\x6c\xff\xab\x3b\xad\xc6\
\x4d\x9c\x3f\xfe\x2b\x76\x0b\x65\x18\xbb\xbf\x33\xc6\x9f\xf0\x01\
\x1d\x64\x68\xfe\x2d\xdc\xf0\xcd\x56\x66\x54\xb2\x61\x06\xed\xd8\
\xd4\xf4\x9a\x91\xd6\x72\x82\xcc\x32\x11\xa8\x28\x14\x0f\xfa\x9e\
\xf1\xde\x65\x61\x46\xa5\xa0\x7d\xaf\xed\xd2\x5f\xfb\xf8\x4e\x6c\
\x3f\xc3\xed\x76\x86\xb1\xf9\x37\x03\x4a\x2f\x3f\xb8\xb5\xf4\xa3\
\xe1\x12\xca\x3f\xfd\xe3\x3d\xa3\x7f\xf8\xd3\x1b\xfd\x5b\xa8\x59\
\x08\xb9\x34\x82\x2e\xad\xe5\x04\x99\x65\x32\x50\x89\xb2\x87\xa1\
\xda\x21\xa5\xe9\xc1\xfe\x3d\xaf\xee\x3a\xb8\xe7\xa5\x91\x77\x1d\
\xd1\x33\xeb\xb8\x72\x02\xe5\xe7\xf7\x7d\xe8\xc8\xdf\xfe\xfb\xa0\
\xf8\xbb\x7f\x7b\xa0\x7f\xcf\xcb\xc3\x98\xfc\x81\x88\x88\x72\x82\
\xa1\xda\x01\x7b\x5f\x19\x19\x75\x7a\x6f\xbc\x20\x3c\x75\x48\xc8\
\xe8\x09\xb5\xdf\xfe\xe8\x7a\x7d\xbd\x9c\x18\x7b\x65\x64\x3a\xee\
\xfc\x93\x44\x44\xd4\x59\x0c\xd5\x94\xed\x7d\xf5\xf3\x8f\x2a\x25\
\x9e\xad\x15\xa6\x61\x52\x89\x41\xa7\x4f\xea\x60\x1d\x8c\xf5\xf7\
\x44\x44\xd4\x39\x0c\xd5\x14\xa1\xc6\xa9\x2a\x9e\xd9\x0f\xd5\xc6\
\x80\x5c\x77\x23\x8e\xd9\x47\x44\x44\x19\xc6\x50\x4d\x91\xd3\xe7\
\x1c\x8c\x5b\x43\x0d\x43\x8d\xb5\xf4\x22\x0e\xa2\x4c\x44\x44\x59\
\xc5\x50\x4d\xc9\x4a\xbf\xa8\x6a\x69\xe0\x91\x74\xa5\x39\x14\x1c\
\x11\x11\x65\x10\x43\x35\x25\x4e\xaf\xc4\xa1\xdc\x5a\x52\xad\xad\
\xb2\x6f\x95\x88\x28\xb3\x18\xaa\x29\x51\x42\x6d\xf5\xcf\xb6\xa6\
\xaf\x97\x23\x81\x89\x88\x32\x8a\xa1\x9a\x12\x47\xc8\x3b\xfc\xb3\
\xad\xf1\x5c\xd6\x54\x89\x88\x32\x8a\xa1\x4a\x44\x44\x94\x10\x86\
\x6a\x06\xac\x77\x97\xc5\x43\x1f\xbe\x28\xc6\x6e\xfb\x95\xb8\x6f\
\x63\xed\x83\x51\x13\x11\x51\xb6\x31\x54\x3b\xec\x96\xbe\x6b\xe2\
\x6b\x77\xfe\x4c\x7c\x41\x87\xea\x7d\x7f\xf2\xbf\x62\xec\xf6\x5f\
\x8b\x2f\x7d\x64\xed\x01\xa7\x89\x88\x28\x1f\x18\xaa\x1d\xf6\xb9\
\x5b\xdf\x14\xb7\xea\x60\x0d\xfa\xdc\x87\x7e\xa7\xaf\xbb\xea\x5f\
\x22\x22\xa2\xbc\x60\xa8\x76\xd8\x2d\xbd\x6b\x03\xd5\x40\x0d\x96\
\x88\x88\xf2\x85\xa1\xda\x61\x17\xaf\x46\x1f\xbe\xeb\x0f\x8b\xeb\
\xfc\x73\x44\x54\x70\xf3\xfe\x69\x2c\x8f\x9f\xdf\x95\xcc\x9e\x04\
\xd4\x16\x0c\xd5\x0e\xfb\x8f\xb7\x3f\x22\x2e\x5e\x59\xef\x5f\x5a\
\xf1\xfc\xef\x6f\x17\x6f\x2f\xde\xe0\x5f\x22\x22\xa2\xbc\x60\xa8\
\x76\xd8\xe5\x4a\x8f\xf8\x87\x5f\x6d\x15\xdf\xfc\xcd\x27\xc5\xc4\
\x6f\x3f\x2e\x0e\xfc\xfc\xd3\xe2\x7b\x3a\x54\x89\x88\x28\x7f\x18\
\xaa\x1d\x26\x5d\x29\x9c\x3e\x29\x7e\xbd\xdc\x2f\xce\x5d\xfe\xb0\
\xb8\xd6\xd3\x8b\x29\x0d\xf5\x0d\xfe\x1f\x10\x11\x51\x6e\x30\x54\
\x3b\x45\x87\x26\xc2\xd4\xe9\xd5\x67\x83\x6b\x01\x79\xea\x0a\xe1\
\xea\xdb\xd6\x5c\x4f\x44\x44\x99\xc7\xcd\x76\x87\x38\x3d\x0d\x42\
\xd3\x0f\x5d\xd6\x58\x89\x88\xf2\x83\xa1\xda\x01\x08\x53\xd4\x46\
\xe3\xa8\x36\x05\x13\x11\x51\x2e\x30\x54\x3b\x00\xfd\xa8\x71\x55\
\x6b\xb3\xcc\x55\x22\xa2\x5c\x60\xa8\x76\x02\x43\x92\x88\xa8\x90\
\x18\xaa\x29\xf1\x84\x7a\xc3\x3f\x6b\x4d\x32\x84\x89\x8a\x4b\xc9\
\x05\xff\x5c\x2c\x8b\xcb\x4b\x1b\xfd\xb3\x94\x41\x0c\xd5\x94\x48\
\x65\x37\x6b\x4a\x4d\xcb\x57\xe7\xfc\x73\x44\x54\x04\x8e\x67\x15\
\xaa\x4a\xf2\x98\xca\x59\xc6\x3a\x50\x4a\x4a\x2f\x0e\x0f\x3a\x8e\
\x9c\xc6\x79\x8c\xea\xb5\xd9\x5d\xc6\x5b\x54\x42\x79\xd5\x95\x35\
\x77\x72\xe7\xd9\x6d\xfe\xd5\xb9\x34\x3a\x3a\x3a\xa0\x94\xba\xb0\
\x61\xc3\x06\xb1\x63\xc7\x0e\xff\x5a\xa2\xf6\x3b\x77\xee\x9c\xb8\
\x74\xe9\x92\x70\x5d\x77\xe0\xf4\xe9\xd3\x4d\xb7\x1c\x25\x6d\xdf\
\xf9\x91\x69\x9d\x94\x83\xfe\xc5\x86\x94\xe7\x0d\xfd\xf3\x9f\x4f\
\xcd\xf8\x17\x29\x63\x18\xaa\x29\x1a\x7b\x69\x64\x5a\x4a\x31\xe8\
\xae\xd3\x6f\xbb\xc5\x3b\x5f\xb9\xa6\xf4\x37\x09\xe7\xd4\xd8\xa9\
\x9d\x53\xe5\xea\x95\x39\x65\x42\xd5\xbf\x48\x94\x3a\x86\x2a\xb5\
\x13\x43\x35\x45\xa6\xb6\xda\x64\xa8\xce\x9f\xda\x79\x76\xb3\x7f\
\x55\x6e\xe9\x50\xed\xaf\x54\x2a\xa3\xfe\x45\xa2\xd4\xe9\x50\x9d\
\xd4\xac\x9a\x5c\xdb\x89\xa1\x5a\x2c\x0c\xd5\x94\xed\x79\x71\xf8\
\x90\x7b\xa3\x73\xd0\x32\x54\xe7\x3d\xa9\x86\xca\xf7\x4e\x25\xd3\
\x2f\x4b\x44\x99\xc1\x50\x2d\x16\x0e\x54\x4a\xd9\xa9\xfb\xa7\x0e\
\xe9\x40\xb5\x0a\x47\xb7\x67\x79\x37\x03\x95\x88\x28\xfb\x18\xaa\
\x39\xd0\xd7\xd3\xfb\xae\x7f\x96\x88\x0a\x46\x79\xc2\xaa\x7f\xd7\
\x53\xce\x80\x7f\x96\x32\x88\xa1\x4a\x44\x44\x94\x10\x86\x2a\x11\
\x11\x51\x42\x18\xaa\x44\x44\x44\x09\x61\xa8\x12\x11\x11\x25\x84\
\xa1\x4a\x44\x44\x94\x10\x86\x2a\x11\x51\x07\x29\x61\x37\xa1\xbe\
\x23\x15\xe7\xfe\xcd\x30\x86\x2a\x11\x51\x07\x49\x25\x2c\x67\x77\
\x92\x0c\xd5\x0c\x63\xa8\x12\x11\x11\x25\x84\xa1\x4a\x44\x44\x94\
\x10\x86\x2a\x11\x11\x51\x42\x18\xaa\x44\x44\x44\x09\x61\xa8\x12\
\x11\x11\x25\x84\xa1\x4a\x44\x44\x94\x10\x86\x2a\x11\x11\x51\x42\
\x18\xaa\x44\x44\x44\x09\x61\xa8\x76\x82\xb2\x9b\x41\x65\x71\x79\
\x69\xa3\x7f\x96\xba\xc3\xa0\x2e\x13\xba\x5c\xd0\x45\xf9\x05\xc7\
\xd4\x9d\xd6\xa5\xa4\x0b\x11\x65\x14\x43\xb5\x13\x1c\xcf\x2a\x54\
\x95\x74\x39\x83\x4a\xf7\x38\xa2\x0b\xc2\x73\x54\x97\x19\x5d\x0e\
\xeb\x72\x4c\x17\x7c\x66\x4c\xd8\xe2\x76\x7e\x26\x88\x32\x88\xa1\
\x4a\x94\x1d\x07\x75\x79\x52\x17\x04\xe8\x66\x5d\xc6\x74\x39\xe4\
\x5f\x87\xcb\xcf\xe8\x02\x08\x57\xfc\x2d\x11\x65\x0c\x43\x95\x28\
\x1b\x50\xf3\x44\x80\x02\x42\x35\xaa\x35\xc3\x04\x2e\xe0\xfc\x1d\
\x2b\x67\x89\x28\x2b\x18\xaa\x9d\x60\xd9\xa7\xaa\xa4\xc7\xa6\x3e\
\x02\x7c\x6e\x4c\x6d\x15\x86\xfc\x53\x22\xca\x08\x86\x6a\x07\x28\
\xa5\xde\xf3\xcf\xc6\xa2\xbc\x1e\x86\x6a\xf1\x21\x30\xd1\x7f\x3a\
\xe7\x97\x5a\xe6\xfd\x53\x18\xf0\x4f\x89\x28\x23\x18\xaa\x44\xd9\
\x81\xe6\xdf\x6d\xba\xec\xae\x5e\x6a\xcc\xaa\xc5\x83\x32\x4a\x2a\
\xcb\x1f\x47\x8a\xeb\x3d\xc3\x18\xaa\x1d\x60\x7f\x50\x62\xd6\x48\
\x68\xd5\x9f\xf9\xa7\x80\xd1\xc1\xd4\x65\x3c\xcb\xee\x23\x4a\x17\
\x43\xb5\x03\x6c\x0f\x4a\x2c\x79\xa4\x7f\xba\x0e\x23\x7f\x01\x81\
\x5a\xaf\x99\x98\x72\x42\x4a\x79\xb3\x7f\x96\x0a\x80\xa1\xda\x01\
\x9e\xb3\xa6\x5f\xac\x31\x7e\xe9\x68\xc5\x01\x5d\x4c\xab\x05\x76\
\xb7\xa1\x22\xb0\xfc\xd1\xec\x48\xcf\x6e\xfb\x41\xa9\x62\xa8\xe6\
\x81\xf2\x38\xa3\x12\x21\x4c\xcd\x2e\x37\x18\xd0\xc4\x0d\x6b\x51\
\x78\x0e\x5b\xa2\x0a\x84\xa1\xda\x01\x6e\xc5\xb2\xd9\x4e\x3a\xc1\
\x7e\x34\xea\x3e\x08\x54\x33\x8b\x12\x66\x57\x32\xe1\x4a\x45\x60\
\x39\x66\x62\x9d\xeb\x60\xfa\x4a\xca\x28\x86\x6a\x07\xb8\xbd\x76\
\xd3\x14\x6a\xfc\x25\xdb\xbd\xb0\xee\x9f\xd5\x05\x1b\x5e\xec\xa3\
\x8a\x49\x1f\xa8\x50\xec\x9a\x7f\x2f\xc9\xcb\x56\xbb\xe4\x51\xba\
\x18\xaa\x1d\xf0\xed\x6d\x53\xb6\x4d\x77\xfd\x8f\x9f\xdf\xc5\xd9\
\x73\xba\x8f\xa9\xa1\x6e\xd5\x05\x35\x54\x4e\xa6\x5f\x30\xfb\x7e\
\xbc\x0b\xeb\xd6\xc6\x42\x79\xdb\x0c\x47\xff\x66\x18\x43\xb5\x73\
\xac\x82\xf5\xca\x32\x67\xcf\xe9\x32\xc1\x40\x45\x1f\x2a\x6b\xa8\
\x05\xe4\x39\x96\xfb\xa8\x4a\xc5\xbe\xf4\x8c\x63\xa8\x76\x8e\x55\
\xbf\xaa\xeb\x28\xdb\x5f\xb4\x94\x5f\x58\xd7\x08\x54\x6c\x70\xc7\
\x75\x89\xea\x43\xc5\x6d\xb8\x9e\x5d\x03\x39\x26\x95\xb4\xfb\x5e\
\x7b\xea\x0d\xff\x1c\x65\x14\x43\xb5\x43\x3c\x25\xec\xbe\x1c\x8e\
\x78\xc0\x3f\x47\xc5\x86\x43\xbe\x99\x41\x49\x68\x9d\x38\xaa\x4b\
\x14\x73\xa4\x1a\xee\x6e\x95\x63\xd2\x55\x56\xdf\x6b\xa5\x1c\xee\
\x9b\x9c\x71\x0c\xd5\x8e\x51\x76\xb3\xe1\xe8\x5f\xb4\xfb\x7e\xfc\
\x20\x6b\xab\xc5\x86\x90\xc4\xa0\x24\xf4\x99\x61\xba\xc2\x7a\x9f\
\x11\xfe\xc8\xca\xb9\xd2\xec\x68\xbf\xfe\x5e\x9b\xc9\x3c\x62\x51\
\x72\x99\xa1\x9a\x71\x0c\xd5\x0e\xa9\xb8\xeb\xac\xa7\x98\x93\xb2\
\x17\xb5\x18\x2a\x26\x04\xaa\x69\xe6\x45\x2d\x15\xb5\x55\xec\x3a\
\x51\xab\xf0\xb3\x90\x73\xbd\xde\xa2\xf5\x3a\xec\x5d\x62\x4d\x35\
\xeb\x18\xaa\x1d\x52\xde\x36\xb9\x20\xa4\x5d\x6d\x55\x39\xe2\x40\
\xe9\xd5\x61\xbb\x81\x0d\x94\x17\xc1\x1a\x0b\x42\x15\xeb\xb9\x5e\
\x61\x5f\x6a\xde\x49\xf5\xa8\x7f\x2e\x16\x29\xd4\xfc\xb7\xef\xb5\
\xde\x73\x80\x52\x26\xfd\x53\xea\x80\x2f\xff\x64\xd7\x21\xe9\x54\
\x6b\x28\xf1\xe9\x20\x3e\x71\xf7\x59\x8e\x04\x2e\x1e\xec\x2e\x83\
\xb0\xb4\x85\x3e\x57\xee\x62\x91\x33\xfb\x5e\xdb\x85\xf5\x3d\xb1\
\x72\x29\xb6\xf2\x89\xed\x67\x38\x3d\x65\xc6\x31\x54\x3b\xa8\xba\
\x8f\x9a\x2b\x66\xfd\x8b\xb1\xe9\x5f\xac\x93\x8b\xce\x95\x31\xee\
\xaf\x46\x94\x3f\x25\xfd\xbd\xef\x71\xe5\xb4\xfe\x1e\x5b\xb5\x36\
\x78\x6a\x79\xf7\xc9\x7b\xbe\x3f\xe9\x5f\xa4\x8c\x62\xa8\x76\xd8\
\xbe\xf3\x23\xd3\xb6\x83\x15\x7c\x68\x06\x3a\xac\x7f\xb9\x96\x57\
\x2e\x12\x51\x96\x95\x66\x07\xfb\xfb\xc4\xfa\x03\x9e\x27\x9f\xb4\
\x0d\x54\x34\xfd\x1e\xdf\x7e\x76\xb3\x7f\x91\x32\x8c\xa1\xda\x61\
\xfb\x5e\x1b\x2e\x09\xe1\xd8\x36\x03\xad\xc2\xb1\x59\x1d\xe1\xcd\
\xe8\xd3\xe7\x44\x65\x69\xee\xc4\xa7\x7f\xc0\x81\x0c\x44\x19\xf1\
\xd8\xab\xc3\x03\x4b\xbd\x72\xab\xeb\x8a\x07\x3c\xcf\x29\xd9\x86\
\x69\x00\x9b\x7e\x73\x82\xa1\x9a\x01\xfb\x5f\x1b\xb9\xa0\x43\xb1\
\x99\xfe\xb4\x1a\xd4\xbc\x5e\xb3\xd5\x01\x0d\x8e\x92\xab\x03\x1b\
\x2a\x9e\xe5\xbe\xb1\x44\x14\x8b\xeb\x88\xd5\x69\x44\x95\x0e\x4e\
\x25\xe5\x80\x52\x72\xa0\x85\x10\x5d\xc3\x5d\xf4\x36\x73\x90\x52\
\x3e\x30\x54\x33\x60\xef\x4f\x47\x46\x1d\x29\xb1\x7f\x22\x11\x51\
\x18\x6b\xa9\x39\xc2\x5d\x6a\x32\xe0\xe4\x3d\x67\x27\x6d\x77\xaf\
\x21\xa2\xae\xb0\xa0\x6b\xa9\x98\xfb\x99\x72\x82\xa1\x9a\x11\xae\
\x54\x63\x18\x8c\xe0\x5f\x24\x22\x12\xca\x53\x87\xd9\xec\x9b\x2f\
\x6c\xfe\xcd\x90\x66\x77\xb1\x21\xa2\x42\x62\xb3\x6f\x0e\xb1\xa6\
\x9a\x21\x27\x3e\x7d\x66\x4e\x08\x8f\x5f\x22\xa2\x2e\x27\xa5\x98\
\xdb\xe0\x5c\xc6\x11\x8a\x28\x67\x18\xaa\x19\x73\x62\xfb\x54\xd9\
\x53\x6a\xb7\xfe\x5a\x71\x62\x07\xa2\x2e\x84\x40\x5d\x2f\x2f\x0f\
\x1d\xe5\xe4\x2e\xb9\xc4\xe6\xdf\x8c\x7a\x6c\x76\x78\xc0\xf3\xe4\
\x74\xb2\xbb\xda\x10\x51\xa6\x29\x75\xec\xc4\x3d\x67\x79\x40\xfa\
\x1c\x63\xa8\x66\x1c\xe6\x07\x76\x1c\xf5\x28\xc3\x95\xa8\xb8\xaa\
\x83\x14\x95\x18\x3f\x8e\x3d\x01\x28\xd7\x18\xaa\x39\x80\x5a\xeb\
\xf2\xb2\x53\x62\xb8\x12\x15\xce\x82\xf2\xc4\xb1\x9b\x7a\x2e\x1f\
\x65\x73\x6f\x31\x30\x54\x73\xa6\x3a\xad\xa1\x72\xbe\xa8\xd7\x1c\
\xe6\x0b\xe6\xe1\xbf\x88\x72\x48\x29\x35\xe3\x49\xf5\xcc\x07\x9d\
\xab\x93\x0c\xd3\x62\x61\xa8\xe6\xd8\x97\x7f\x32\xac\x83\x55\x6e\
\x95\x52\x3e\xa0\x84\x18\x90\x92\xc7\xd9\x24\xca\x1e\x34\xed\xca\
\x39\x21\xd5\x1b\x9e\x12\x33\x1f\x70\xaf\xcc\x30\x48\x8b\x8b\xa1\
\x5a\x30\x4f\xce\x0e\xf6\x5f\x5a\x5a\x3f\xa0\xa4\x87\xf9\x47\x75\
\xb9\x3e\xf7\xa8\xe3\x39\x6c\x3a\x26\x6a\x0b\xb5\xe0\x39\x6a\x35\
\x28\x1d\x4f\xcc\xf7\x2c\x8b\xf9\x1b\x6e\xb8\xba\xc0\x00\x25\x22\
\x22\x22\x22\x22\x22\x22\x22\x22\x22\xca\x39\x21\xfe\x1f\xf5\x3f\
\xad\x40\x47\xc3\xfd\x1e\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
\x60\x82\
\x00\x00\x00\xd1\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x86\x49\x44\x41\x54\x38\x8d\xd5\xd1\x3d\x0a\
\xc2\x50\x10\x04\xe0\xcf\x84\x74\x5e\x44\x09\x08\x82\x57\xb0\xb0\
\x92\x1c\xca\xc2\x83\xa4\x91\x5c\x44\x3c\x83\x95\x7f\x67\x10\x82\
\x29\xb4\x90\xe0\x7b\x42\x52\x84\x0c\x2c\x2c\xcc\xec\xec\xb0\xcb\
\x98\x50\x62\xd5\xc7\x60\x8d\x07\x96\x7d\x4c\xb6\xb8\x61\x1e\x13\
\x4d\xb1\xc3\x19\x35\x5e\x3f\xea\x88\x49\x68\xf8\x84\xea\x13\x35\
\x6b\xf1\x05\xae\x98\x85\xb6\xef\x71\x08\x70\x1b\xdc\xb1\x88\xc5\
\xbf\x20\x0f\x70\x7f\xbf\x90\xe1\x89\x34\x26\x6a\x23\xf9\xea\x53\
\xef\xa3\xd5\x5d\x0d\x3a\x61\x78\x83\xe1\xd1\x00\x11\x26\x16\x72\
\x44\x98\x03\xe0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\
\x00\x00\x01\x1a\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\xcf\x49\x44\x41\x54\x58\x85\xed\x96\x41\x0a\
\xc2\x30\x10\x45\x9f\x42\x77\xc5\x73\x68\xdd\xa8\x3b\xcf\xa2\x47\
\x52\x51\xd0\xc3\xe8\x35\xbc\x41\xd1\x0b\xd8\x8d\x52\x21\x2e\x66\
\x0a\x6e\xda\x26\x25\x45\x90\xf9\x10\x7e\x20\x93\xfc\x97\xb4\x25\
\x05\x93\xa9\x5d\x4e\x5b\x2f\xf3\x86\x1d\x16\x8e\x2a\x03\x30\x00\
\x03\x30\x00\x03\xf0\x01\x28\xd4\xd3\x80\x75\x47\xea\x8f\x18\x00\
\xb9\xfa\x34\x00\xa0\xaa\xcd\x1b\xab\x3c\x01\x2e\xea\xab\x00\x80\
\xb5\xfa\x39\x60\x4e\xad\x32\xe0\x0d\x3c\x81\x99\x47\xfd\x02\x78\
\x01\x25\x30\x8e\x01\x00\x70\x40\xee\xf6\x1b\x30\x6f\x09\xbf\x6b\
\xed\x2e\x56\x38\x40\x82\x3c\x0a\x87\xec\xee\x08\x2c\x91\x17\x33\
\xd5\xfe\x49\xc7\x1c\x72\xf4\x49\x4c\x80\x0a\x62\x8f\x1c\xad\xab\
\x69\x25\xb2\xf3\xe8\xe1\xdf\xca\x80\x2d\x70\x45\x3e\xd1\x42\xfb\
\x1b\x60\xd2\x67\xf0\x7f\x6a\xd0\x30\xd6\xe5\x4f\x38\x38\xeb\xe7\
\x77\x81\xc9\xf4\x01\x03\x59\x2a\x74\x94\x02\x88\x2a\x00\x00\x00\
\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x00\x85\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x3a\x49\x44\x41\x54\x58\x85\xed\xd4\x21\x0e\
\x00\x20\x0c\x03\xc0\xc1\xff\xff\x0c\x9e\x2c\x20\x08\x20\xb8\x93\
\x35\x35\x4d\x23\xe0\x77\x25\xc9\xda\xcd\xce\x7a\xb8\x8c\xa5\x6c\
\x03\xa3\xdd\x4d\x4c\x3b\x6c\xe0\x39\x3f\x80\x1f\xc0\x0f\x00\x74\
\x6a\x27\x05\x10\x5a\x70\x8c\x42\x00\x00\x00\x00\x49\x45\x4e\x44\
\xae\x42\x60\x82\
\x00\x00\x0d\x3b\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
\xa8\x64\x00\x00\x0c\xd0\x49\x44\x41\x54\x78\x5e\xed\xdd\x65\x8c\
\x34\x49\x1d\x06\xf0\xc3\xdd\xdd\xdd\xdd\xdd\xdd\x3d\x10\x24\x10\
\x82\x7c\x21\x40\x80\x0f\x90\x00\xc1\x12\x2c\x81\x0f\x38\x81\xe0\
\x10\x20\x84\x04\x09\x10\x9c\xc3\x1d\x0e\x77\x77\x77\x87\xe7\xf7\
\xee\xf6\xbd\xc3\xa4\xab\xba\x67\xae\xbb\x67\x76\xa7\x9f\xe4\xc9\
\xde\xee\xed\xbb\x53\x5d\xff\xaa\xbf\x57\xf5\x31\x33\x66\xcc\x98\
\x31\x63\xc6\x8c\x19\x33\x46\xc0\x89\xf6\xbf\x1e\x04\x9c\x23\xbc\
\xd0\x3e\xcf\x16\x9e\x76\x81\x27\x0b\xff\x19\xfe\x29\xfc\xe3\xfe\
\xd7\x5f\x86\xdf\xdd\xe7\x2f\xc2\x03\x81\x6d\x14\xc8\x89\xc3\x33\
\x86\x57\x0e\xaf\x16\x5e\x35\xbc\x48\x78\xfa\xf0\xe4\xa1\xc9\x3f\
\x49\xe8\xf7\xd0\x33\xe0\x7f\xf7\xf9\x9f\x7d\xfe\x3b\x24\xa4\xbf\
\x87\xbf\x0f\xbf\x19\x7e\x3a\xfc\x54\xf8\xb9\xf0\x0f\xa1\xdf\xdf\
\x2a\x6c\x8b\x40\x4e\x1a\x9e\x2f\xbc\x71\x78\xa3\xf0\xd2\x21\x01\
\x34\x3b\xe0\x94\x61\x33\xf9\xab\xa2\x11\xd2\x5f\xc3\x3f\x87\x76\
\xcf\xef\xc2\x2f\x85\xef\x0d\xdf\x1f\xfe\x34\x24\xc0\x8d\x63\xd3\
\x02\x39\x7b\x78\xed\xf0\x26\xa1\x1d\x71\xae\xf0\x2c\x21\x21\x10\
\xc0\x58\x20\x20\xaa\xed\x57\x21\x61\x7c\x26\x7c\x77\xf8\xf1\xf0\
\xd7\xe1\xc6\xb0\x29\x81\x9c\x33\xb4\x13\x6e\x15\x5e\x31\x3c\x77\
\x78\xa6\x70\x4c\x21\x94\x60\x67\xfc\x36\xfc\x51\x78\x5c\x48\x30\
\x1f\x08\x7f\x18\x4e\x8e\xa9\x05\x72\x9e\xf0\x16\xe1\x0d\xc3\x2b\
\x84\x0c\xf4\xe9\xc2\x6d\x81\x5d\xf3\xfd\xf0\xf3\xe1\xbb\xc2\xf7\
\x84\x3f\x0b\x27\xc3\x54\x02\x61\x03\xae\x17\xde\x21\x24\x8c\x0b\
\x87\xa7\x0a\xb7\x15\x6c\xcd\xb7\xc2\x0f\x86\x6f\x0f\x8f\x0d\xd9\
\xa0\xd1\xc1\x5b\x19\x1b\x97\x09\xef\x13\xde\x37\xbc\x65\x78\xde\
\x90\xa7\xb4\xcd\xe0\xcd\x71\xb3\x2f\x19\x5a\x3c\xd4\xe9\x6f\xc2\
\xd1\xed\xcb\x98\x3b\xc4\xa4\xb3\x13\x77\x0f\x6f\x1d\x8a\x1d\x86\
\x58\x00\x8d\x41\xfe\x5b\xc8\xa5\xfd\xc7\xfe\xcf\xd8\x1f\x13\x69\
\x37\xda\x7d\xa7\xd9\xff\xd9\x09\x05\x1b\xc3\xf0\xbf\x2d\x7c\x43\
\x68\xb7\xfc\x2b\x1c\x05\x63\x08\xc4\xdf\xb4\xa2\x6e\x13\xde\x3f\
\xbc\x66\x68\x92\x56\x45\xe3\xae\xf2\x84\x7e\x12\xfe\x3c\x64\x7c\
\xb9\xac\x56\x2a\xb5\x42\x8d\x10\x8a\x49\x23\x6c\x9f\x83\xbc\x34\
\xde\x9a\x78\xc6\x58\xac\x76\x8e\xc3\x59\x43\xe3\x5b\xe7\xb9\x7d\
\xde\x47\xc2\x97\x85\xef\x0c\x8d\x63\x70\x0c\x2d\x10\x2b\x92\xe1\
\xb6\x2b\x1e\x12\x52\x4f\xab\xec\x0a\x42\xb0\xe2\x19\xd2\xef\x85\
\x3c\x1d\xba\xfc\xeb\xe1\xb7\x43\x2b\x55\x04\x4e\x08\x5d\x20\x18\
\xbb\x92\x20\x04\x96\x97\x08\x2f\x1a\x8a\x77\x2e\x18\xf2\xf4\xc4\
\x3f\xab\xcc\x81\x9d\xf1\x9d\xf0\x79\xe1\xeb\x43\x19\x80\x41\x83\
\xcb\x21\x05\xe2\xe1\x3c\xe8\xbd\xc3\x47\x85\xa7\x0e\xfb\xfe\x7d\
\x3b\x41\xe4\x4c\x08\x22\x6a\xd1\xf4\x87\x43\xde\xce\x90\xc6\xd4\
\x98\xae\x12\x5e\x37\x94\x05\x20\x28\x63\x5e\x25\xee\x21\x00\x91\
\xff\x33\xc2\xd7\x86\xdc\xe5\xad\x08\x2a\x17\xc1\x5e\x5c\x2a\x7c\
\x66\x68\xf5\x1a\x74\x1f\x7a\x10\xc6\xf2\xb3\xe1\x8b\xc3\xdb\x85\
\x67\x08\xa7\x00\x55\x76\xe7\xf0\xe5\x21\xc1\x53\x87\xc6\xd3\x36\
\xce\x65\x5a\x40\x9e\xf3\x29\xa1\x5d\x67\x31\x6e\x0d\x0c\x86\x37\
\x62\x1b\xdb\xd2\x6d\x0f\xd0\x46\x3a\x99\x2a\x7a\x51\xc8\xf8\xaf\
\x63\x67\x86\x00\x07\xe0\xe6\x21\xdb\x60\x77\x1a\x97\x09\x6f\x1b\
\xf3\x32\x3d\xef\xb3\x42\x3b\x6d\x0a\x8f\xb5\x13\x06\x61\x30\x4f\
\x0d\xfb\x0a\xc3\xef\x31\xca\x0c\xe3\xdd\x42\xde\xd0\x36\x80\xda\
\x62\xfb\x8c\xcb\xae\x5d\xe5\x79\x9e\x1c\x9e\x3f\xdc\x44\xa6\xe1\
\x78\xb0\x0f\x8c\xf6\xe3\xc3\xbe\x6a\x8a\xc1\x96\x0e\x7f\x74\xc8\
\xf8\x6f\x23\x2e\x10\x3e\x31\x14\xb1\xcb\x16\xb7\x3d\xc7\x32\xb9\
\xe0\xec\x26\x47\x61\x68\x47\xa9\x37\xce\x1c\x3e\x3c\x94\x3d\x6d\
\x1b\xe4\x32\xad\xa4\x8f\x86\xdc\xe1\x53\x84\xdb\x0c\x6a\xec\xae\
\x21\xe7\xa2\xef\x4e\x11\x1b\x3d\x30\x9c\xca\x06\xfe\x1f\xd8\x8d\
\x7b\x84\x56\x51\x5f\x7d\xfb\xca\x50\x5a\x7d\xe8\x15\xc4\x8d\xc5\
\xa1\x41\xfd\xc8\x40\x0b\x06\xdb\x9e\x67\x99\xe6\x81\x4b\x7c\xdb\
\x70\x72\x7b\xc2\x08\xab\x25\xf4\xf1\x4a\x0c\x94\xc1\xbf\x58\x38\
\xa4\x8e\xbd\x63\x28\x36\x69\x3e\x47\xbc\x72\xfb\x70\x48\x98\x58\
\xde\xe3\xf3\xc3\x3e\xcf\x6a\x37\xc9\x7d\x5d\x2b\x9c\x0c\x3c\x2a\
\x9e\x91\xf8\xa0\x6d\x50\x8b\xf4\x10\x0c\x9e\xac\xee\x90\xab\x86\
\x30\xda\x76\xa6\xcf\x1b\x5a\x28\x0d\xc4\x1d\x7d\x84\xf2\x97\xf0\
\xd9\x21\x67\x67\x74\x70\x4d\x1f\x16\xfe\x38\x6c\x1b\xcc\x32\x9f\
\x13\x0e\x2d\x0c\x2a\x6f\x71\x67\x2c\x93\xeb\x3a\x06\x2e\x1e\x3e\
\x37\x6c\xfb\xcc\x65\x0a\x16\x1f\x1c\x8e\xee\xca\xdf\x2c\x54\xc0\
\xe9\x32\x74\x56\x12\x9b\xe1\x21\x86\xd6\xa7\xdc\xcb\xb6\xcf\x5c\
\xe4\x18\x36\x05\x64\xae\xa5\x4c\xda\x3e\x73\x91\xe6\x47\x32\x52\
\xc9\x61\x34\x28\xaf\xda\x8a\x92\x6a\x6d\x83\x68\xc8\x55\xfc\x44\
\x78\xd9\x70\x0c\xe3\x66\x52\xda\x3e\x77\x91\x7e\x67\x0c\xc8\x48\
\x48\xb9\x7c\x32\xec\x72\x66\xc4\x32\x22\x79\x65\xea\x51\x20\x47\
\xf5\x85\xb0\x36\x10\x2b\xe3\x07\x21\xd7\x76\xac\x20\x69\x93\x02\
\x01\x29\x7e\x36\x4c\x62\xb1\x66\x53\xcc\x13\xc1\x49\xcf\xf4\x46\
\xdf\x49\x13\x00\xf2\xac\xe4\x6d\x4a\x6e\xab\x41\xf0\xc5\x5f\x18\
\x2a\x7d\x1a\xd0\x61\x84\xe0\xd6\xf3\xbd\x20\x6c\x02\xe2\x36\x98\
\x27\x1e\x9a\x0a\xa9\x80\xb1\x17\xfa\x0a\xe4\xfa\xa1\x2c\xa9\x6c\
\x69\x09\xa2\x55\x5d\x1b\xaf\x08\xfb\xa4\xc7\x0f\x32\xe4\xbb\x5e\
\x1a\x0a\x1c\x09\xa8\x04\xe9\x98\x6b\x84\xbd\xdd\xe0\x3e\x02\x51\
\x53\xd0\xa6\xa3\x94\x59\x82\xdd\xa0\x56\xf1\x92\x90\x07\x76\xd8\
\x61\x57\x50\xcd\xdc\x7f\x79\xb9\x9a\x36\x50\x87\xb1\x4b\x14\xcc\
\x3a\xd1\x47\x20\x24\x7c\xf9\xb0\xd6\x1d\xa2\x96\xa1\x21\x40\x62\
\x6e\x97\xf0\xd6\x50\x49\x57\xec\x51\x82\x54\x8a\x88\xff\x4a\x47\
\xbe\xeb\x40\x97\x40\xa4\x48\x48\x57\xc2\xad\x04\xab\x83\xdf\xfd\
\x9a\xd0\x56\xde\x25\xb0\x99\xea\x29\xca\xcb\xb5\x5d\x22\x48\x54\
\x14\xeb\xf4\x3a\xbb\x04\x22\x23\xab\x7f\x4a\x22\xb1\x04\xc9\x45\
\x05\x26\x89\xc3\x5d\x84\xa6\x3a\xbd\xc2\xb5\x5d\xc2\xf5\xd5\x10\
\xd8\x69\xdc\xbb\x04\x22\xb0\x11\x64\x95\x24\x4b\x97\xaa\x7b\xbf\
\x39\x9c\xa4\x6f\x69\x0b\xc1\x99\x79\x63\x68\x97\x94\x3c\x2e\xf3\
\xa7\x54\xac\x6d\xb6\x8a\x9a\x40\xb8\x6d\xbc\x2b\x1d\x1b\x25\x08\
\x02\xa5\x31\xac\x92\x5d\x06\x37\x58\xe6\x5b\x1c\x56\x82\xd0\x81\
\x40\xaa\xd9\xee\x9a\x40\x74\x9f\x4b\x24\xfa\x5a\x82\xe0\x48\xf0\
\x33\x4a\x4b\xcc\x01\x82\xa8\x5c\x76\xa2\xd6\x48\xa7\x86\xdf\x35\
\x9f\x55\x81\xf0\x0a\xd8\x8e\xd2\xef\x34\xea\x8a\x77\x35\x63\xaf\
\x1c\xa1\x7d\xa9\xa4\xb6\xcc\xa3\xbe\x30\x35\xa1\x22\xba\x04\x52\
\xab\x7e\xf9\x60\x31\x07\x83\x3e\x63\x6f\x87\xd4\x04\x02\x16\x38\
\xe3\x5e\x44\x4d\x20\x7c\xe7\x9a\x40\x6c\x4f\xa9\xee\x9a\x77\xb1\
\x4b\xe0\x6d\x9a\x8f\x9a\xfa\xa6\xb6\xc4\x74\x45\xd4\x04\xc2\x2b\
\xa8\x75\xa8\x5b\x0d\x5f\xdd\xfb\xcf\x19\xfb\x70\x2a\x4b\xeb\x6b\
\x09\x52\x29\xe6\xb5\x88\x92\x40\xf8\xcd\xfa\x62\x6b\x81\x8c\x96\
\xce\xb1\x8a\x41\x07\x15\x5f\x0b\x6b\x86\x5d\xa0\x6d\x5e\x8b\x69\
\x94\x92\x40\x44\xe6\xaa\x5d\x35\x17\x4d\x3b\xa5\x26\xe8\x19\x47\
\x21\x63\x21\x7a\x2f\xc1\x7c\xd2\x3a\xc5\x02\x5a\x4d\x20\xf2\xfe\
\x25\x48\x13\x10\xc8\x81\x39\x6e\x3c\x11\x24\x58\x09\xa4\x96\x46\
\x21\x10\x55\xcf\x56\x94\x04\xc2\x3d\xab\x1d\xaa\x91\xb3\xa2\x2b\
\x45\xa9\x33\x8e\xc2\x7c\x98\x97\x5a\xd6\xc2\xbc\x16\x53\x51\x25\
\x81\x74\x75\x83\xfb\xc0\xda\xd6\xdc\x55\x70\x79\xcd\x4b\xad\x1e\
\xc4\x8e\x98\xdf\x56\x94\x26\x5d\xbf\x6d\xcd\xa0\x2b\xca\x6c\xf3\
\xee\x10\x7c\x29\xa8\xad\x4b\xb1\x42\x2d\x65\x54\x83\xc5\x2a\xa5\
\x54\x82\x79\xad\x15\xfa\x5a\xf1\xf4\x90\xb7\x40\xe2\x6d\xd4\xa1\
\xa7\x1d\x68\x13\xe8\x53\x53\x1f\x8a\xd2\x42\x9a\x1a\x56\xc1\x63\
\x42\x19\x8c\xb6\xbf\x87\xec\xcc\x13\xc2\x56\x94\x76\x08\x3d\x57\
\xf3\xb0\x18\x2d\x05\xfe\xc3\x0e\xc2\x70\xd3\xc3\xe5\x8e\x7c\xd7\
\x0f\x12\x8c\xb5\xb9\x31\xe7\x45\xfb\x5c\x12\x48\xd3\xf5\x5d\x82\
\x7f\x57\x53\x69\x87\x09\xd4\xb7\xee\xcb\xbe\x60\x23\x6a\x73\x63\
\x31\x17\x55\x5a\x49\x20\xd2\x21\x35\xd7\x8d\x84\xb7\xbd\x83\x7d\
\x48\xe8\xb8\xe9\x0b\x6e\x6d\xcd\x43\x35\xaf\xc5\x74\x53\x49\x20\
\xdc\xda\xda\xb6\x13\xa3\xd4\xd2\x2a\x63\x62\xdb\xbd\xbb\x2e\x81\
\x98\xd7\x95\x05\x22\x51\xd6\x15\xdc\x6c\xea\x4a\x0c\xdd\x1e\x8a\
\x62\x53\xe2\x7d\xfb\x5f\xbb\xc0\xee\xaa\x77\xd4\xb4\x07\x1b\x53\
\xec\x3d\x28\x09\x44\x70\x53\x73\xdd\xe8\x55\xf9\x98\x4d\x9d\x0b\
\x7c\x44\x58\x5b\x30\x43\xc2\xe4\x3d\x76\xef\x3f\x3b\x61\x3e\xcc\
\x4b\x4d\x7b\x98\xd7\x62\xbe\xab\x24\x10\xc7\x93\x6b\xc1\x8d\x7f\
\x27\x35\x3f\x5a\xdf\x6a\x07\xde\x12\xde\x29\x74\x26\x64\x4c\xa8\
\x71\xdc\x20\xfc\xf2\x91\xef\xba\xa1\xff\x99\xe6\x28\xcd\x2b\x88\
\x53\x94\x7b\x5b\x51\x72\x6d\x35\xc7\xd9\xa6\x7c\xfe\xd2\xef\xf8\
\xff\x56\xce\xc7\x8e\x7c\xb7\x39\xa8\x55\xaf\x1b\xc4\x95\x40\xcf\
\x4b\x9c\xae\x9a\xab\xd3\x83\xf0\xb4\xb0\xd4\xa9\xc8\x73\x25\x64\
\xa7\xac\x6a\x59\xe1\x56\x38\xb8\xdf\xb8\xbf\x6d\xfc\x62\xe8\x52\
\x99\x19\x47\xf1\xa0\xd0\x51\xef\xb6\xf9\x42\x19\x8e\x77\x84\x45\
\xd4\xb6\x96\x68\xbc\x56\x0d\xd4\x63\x54\xad\x0f\xef\x20\x1c\xc1\
\xa0\x5d\x4a\xe0\x2c\x31\x07\x45\xd4\x04\xd2\x5c\x14\x59\x82\x8c\
\xa5\x73\x83\x2b\xe7\x65\x0e\x29\xd8\x0e\x07\x94\x6a\x65\x6f\xdd\
\x29\x8e\x74\x14\x51\x13\x88\xe6\x05\x35\x8f\x12\xfc\x5b\x17\xbb\
\x48\xc6\xcd\xd8\xeb\x81\x66\xcb\x6a\x29\x27\xd7\x77\xac\x2d\x10\
\xff\x90\xe1\x29\xb9\x97\x3e\x58\xe5\x8b\x21\x9b\xb1\x77\x42\x80\
\x97\x55\x12\x08\x47\x41\xd9\xbb\xea\xb1\xd5\x04\x62\x77\xa8\x11\
\xd7\xd4\x16\xb7\xd7\xca\xd0\x4d\xb1\xcb\xa0\xbe\xcd\x43\xb1\xf0\
\x14\xd8\x1d\xe6\xb3\x9a\x69\xa8\x09\x84\x57\x70\x6c\xa8\x67\xb5\
\x04\x29\x02\xe7\x46\x74\xc8\xef\x32\x5c\x5e\xa3\x2c\x2b\xb1\x58\
\x82\x1e\x36\x0d\xe9\xe6\xb5\x88\x9a\x40\x40\x57\xa2\x54\x45\x29\
\xaf\xd5\xa8\x2d\x41\xda\xa6\x72\x5b\x9b\x86\xe8\xfc\x2e\x61\xcd\
\x7e\x98\x3f\x77\xbc\x74\xc6\x6c\x5d\x02\x11\x1c\xb1\x25\xbc\x83\
\x12\x94\x23\x75\x39\x5e\xe7\xc8\x77\xbb\x07\x99\x60\xcf\x5f\xf3\
\x36\x05\x98\xe6\xb1\xf3\xca\xd9\x2e\x81\x90\xac\xce\xf6\x62\xa8\
\x1f\xf8\x1b\x76\xc9\xbd\xc2\x62\xad\xf8\x90\x82\xab\x7b\xbf\x50\
\x4c\x56\x9b\x4b\x29\x1e\x81\x76\x49\xd3\x1c\x8f\x2e\x81\x80\x32\
\x26\xe9\xd6\x8c\x91\x81\xf1\xb6\x5c\x03\xbb\x4b\x70\x03\x9e\x33\
\x34\x35\x75\xcd\x39\x12\xd3\xe1\x60\xb8\x67\xe8\x1a\xbc\xc5\x34\
\xc0\x32\x45\xf5\xce\x18\xca\x2d\x1d\x76\xb0\x15\x8c\x38\xa7\xa7\
\xeb\xae\x30\x27\x93\xd9\xd8\x5e\xe8\xb3\x43\x80\x71\x77\x61\x7d\
\x2d\x95\xc2\xb8\x71\xfd\x5c\x98\xbc\xa9\xb4\xfc\x54\x50\x7e\x78\
\x40\x28\x28\xae\x35\x14\x4a\x95\xd0\x30\xa3\x24\x60\xd9\x08\xbb\
\x44\xa0\xd8\xb6\x12\x70\xf1\x26\x87\xc3\x5a\x73\x57\x7c\x72\x3b\
\x83\x20\x8f\x4d\x68\x9b\x07\x34\x4f\x32\xbb\x2b\xdd\xe4\xb0\x0a\
\x44\xa1\x2e\x7c\xec\x7b\xd7\x89\x4e\x8d\xc3\x24\x14\x69\x22\x71\
\xd7\xd5\x43\x69\xa5\xda\xc2\x44\x59\x0e\xcd\x11\xa3\xd6\x8c\x6e\
\x1a\xf6\xbd\x0d\xe8\xd5\xe1\x18\xb7\x01\x6d\x0a\x82\x3e\xf5\xa1\
\x3e\x37\xcc\x99\x1f\x67\xd8\x47\xbd\x0d\x08\xd8\x86\x4d\xdf\x97\
\xb5\x09\x18\xbf\xc5\xe5\x66\xbc\xb6\xe7\x5c\xa6\x46\x39\xb5\x91\
\x49\x6c\xa9\x83\x8b\x2e\x98\x51\x8a\x6c\x1b\xcc\x22\xed\x94\x31\
\x6e\x94\x9b\x12\xc6\xad\xcc\xb0\xca\x8d\x72\xcd\x5d\xbe\x93\xc1\
\xbb\xa2\x1c\x05\xee\x52\x5d\x48\xd7\xba\xb3\x70\xe8\x3b\x17\xa7\
\x00\x61\xac\x73\xe7\xa2\x17\x10\x4c\x0a\xfa\xd4\xa5\xc3\xaa\x5f\
\x5d\xc6\xad\xe1\xab\xc2\x31\x6e\x25\x1d\x0b\xc6\xc9\xad\x75\x29\
\x40\xdb\xf3\x2c\xd3\x3c\x68\x4f\xda\x98\x87\x29\xd5\xfc\xd0\x50\
\x04\xdf\x36\xc0\x65\xf2\xbe\xf8\xe3\x0a\xfc\xdb\x1e\xa7\x88\xbc\
\xdd\xdb\xeb\x35\x7b\x7d\xb4\x00\x2a\x53\x88\x4d\x6a\x15\xc3\x51\
\x61\x05\xb9\x0b\xe5\x71\x61\x57\xb4\xda\xb0\xb9\xd9\x5a\x87\xf8\
\xb6\x46\xf4\x0e\x65\x3e\x29\x94\xbf\x33\xde\xb6\xe7\x58\xa6\xa3\
\x19\x8f\x0c\xbb\x2a\x86\xa3\x83\x4d\x50\x0f\x59\xe7\xee\x77\xee\
\xb3\x60\xb3\x7a\xb3\xc1\x84\x90\x8f\x3b\xd0\x77\xbf\x37\x60\x4f\
\x78\x5e\xae\x50\xed\xfb\x10\xc8\x1b\xf9\x46\xe8\x35\x15\x9c\x84\
\x4d\xa9\x31\xea\xc9\x9b\xe3\x5c\xb3\x74\xe0\xdf\x8e\xd0\x40\x04\
\x3b\xd4\xfb\x43\x1c\x1b\x9e\x02\x8b\xef\x0f\x91\xcd\x96\x81\xe8\
\xe3\x49\x21\x81\x51\x53\x83\xbf\x3f\x64\x48\x7d\x67\x50\xf4\xef\
\x10\x6f\xd8\x61\x4c\xbd\xef\x49\xee\xac\xd8\x98\xbc\x06\x24\x05\
\x79\x4e\x2e\x13\xf3\xd5\x64\x1a\x73\xd7\x99\xca\x45\x34\x63\x75\
\xca\xec\x75\xe1\xa0\x6f\xd8\x19\xda\x00\x79\x28\x39\x9f\xe6\x1d\
\x54\xb5\xbb\xb6\xda\x60\xf5\xf1\xc6\x1c\xfb\x22\x1c\x11\x2f\x57\
\x72\xf9\x1d\x54\x5d\xe7\x1b\x3d\x17\x15\x28\x8f\x24\x07\x47\xa5\
\xb8\xfb\xd0\x57\x63\x22\x04\x45\x25\x8b\x68\x95\x39\xa0\xa2\x8c\
\x43\x5c\xb2\xf5\xef\xa0\x6a\xe0\x6f\x52\x07\xfc\x71\xd5\x34\x7d\
\xae\xeb\xd4\xdb\x1b\xd5\xc0\x01\x90\xaa\x59\x7c\x4b\x1b\x35\x27\
\xb5\x2d\x5b\x40\x45\x5a\xa1\x04\x2f\x13\xeb\xb3\x18\x68\x6e\x79\
\xf3\x96\x36\x93\x6f\xa1\x38\xee\x0d\xeb\x3c\xb7\x9d\xaa\xfe\x41\
\xc5\x79\x0b\xe8\x28\x57\x52\x8d\x21\x90\x06\x56\x9f\x7a\xb3\xdd\
\xe2\x3d\x86\x56\xeb\x10\x86\x8f\x90\x4c\x0e\x61\xd8\x29\x5c\x53\
\x3f\xb3\x3b\x09\x04\xa9\x4b\x1c\xc2\xeb\x21\x6c\xbd\x05\x22\x70\
\x89\xc5\x0f\xed\xff\x6c\x14\x8c\x29\x90\x06\xa2\x73\xbb\xc5\xbd\
\xf1\xde\x8d\x6e\xd5\x4e\xf1\xb9\x27\x14\x76\xa8\xf2\x2b\x87\x83\
\x30\xdc\xe5\xce\x2b\x1c\x15\x53\xb8\x6a\x74\xbe\x87\x6a\x02\x2d\
\x86\x95\x11\xad\x1d\xfb\xda\x34\xec\xc0\xaf\x84\xce\xa1\x78\x59\
\xd8\x9b\xc2\x5a\x7f\xda\x60\x98\xca\x77\x66\x0c\x45\xe8\xdc\x4b\
\x86\xb0\x31\xca\xf4\xfd\x36\xa5\x51\x9a\x3b\xaf\x9c\x7d\xf1\x76\
\x07\x74\xec\xc2\xf8\x27\xc1\xa6\x54\x07\x23\xab\x4b\xc5\xfb\xd4\
\xb9\x9f\x0c\x6e\xd7\x75\x50\x63\x81\x3d\xe0\x2c\x70\x1c\x4c\xbe\
\x2c\xb6\xb3\xe9\x3c\xbc\xc9\xb1\x69\x5d\xee\x2c\x05\x2f\x8c\x7d\
\xd1\x6c\xc6\x45\xe5\x09\xad\x12\x17\xac\x03\x4e\x80\xa4\xa8\xb3\
\x94\x5c\x69\x71\x8f\x54\x8e\xd2\xf3\xca\x27\x9b\x86\xc4\xb6\x18\
\x57\x3b\x43\x7c\xa0\x47\x58\x1a\x45\xa9\xd4\x8e\x69\xec\x0d\xb5\
\x46\x40\xeb\x8c\x97\x71\xb6\x0b\xa8\x49\xb6\x81\x5a\xe2\xb2\x1e\
\x17\xba\xb8\xd2\x6e\xd0\x51\x38\x9a\xe7\xb4\x0a\xb6\xd1\xdb\x31\
\x26\xc2\xb0\x63\x5c\x6d\xd1\xbc\xb3\xd6\xcf\x38\x02\x48\x80\x04\
\xd4\xb0\x81\x95\xdf\xd0\x04\x0b\x32\x39\x12\x54\x52\x93\x01\xd0\
\x96\xa3\x69\x8d\x60\x06\x0d\xea\x86\xc0\x36\x0a\xa4\x04\x71\x8c\
\x52\xb0\xec\x72\xa3\xd6\x04\x80\x8d\xc7\x66\xe2\x4d\x32\x55\x84\
\xbc\x3b\x8e\x84\x88\xdf\x7f\xcf\x98\x31\x63\xc6\x8c\x19\x33\x66\
\x4c\x85\x63\x8e\xf9\x1f\x14\xbe\xad\xda\x96\xb0\xa6\xcd\x00\x00\
\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x00\x84\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x39\x49\x44\x41\x54\x58\x85\xed\xd4\x31\x0a\
\x00\x20\x0c\x03\xc0\xea\xff\xff\xac\x1f\x28\x74\x28\x8a\xe0\xdd\
\x98\x25\x4b\x48\x04\xfc\x6e\x24\xd9\xba\xd9\x39\x0f\x97\x51\xca\
\x36\x50\xe9\x6e\xc4\x06\xde\xe2\x07\xf0\x03\xf8\x01\x80\x0d\x4a\
\x27\x05\x10\x7b\xf4\xd9\x97\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
\x42\x60\x82\
\x00\x00\x0e\xae\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\xfa\x00\x00\x00\xfa\x08\x06\x00\x00\x00\x88\xec\x5a\x3d\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
\xa8\x64\x00\x00\x0e\x43\x49\x44\x41\x54\x78\x5e\xed\xdd\x05\x90\
\x23\x69\x19\x87\xf1\xc3\xdd\xdd\xdd\x39\xdc\xdd\x5d\x0e\x77\x77\
\x28\x5c\x0e\x87\x82\xc3\xe5\x28\xdc\xdd\x0b\x28\xdc\xfd\x70\x77\
\x2d\xec\x90\xc2\xdd\xfd\x7d\x36\xe9\xb9\x9e\xec\xdb\x92\xb4\xce\
\xec\xf3\xab\xfa\xd7\x64\x67\x93\x74\xa6\xd3\x5f\xcb\x67\xbd\x9f\
\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\
\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\
\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\
\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\
\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\
\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\
\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\
\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\
\x92\x24\x49\x92\x24\x0d\xe3\x28\xcb\x9f\x43\x39\xfe\xf2\xe7\x46\
\x0e\xb7\xfc\xa9\xf9\x3b\x68\xf9\xb3\xca\xdf\x22\x8f\x59\x3c\xd4\
\x48\x4e\x18\x61\x9d\xdf\x3c\x72\xf4\xc8\x37\x22\x77\x8b\x7c\x38\
\xd2\x97\x87\x46\xee\x1d\xa1\xa0\xff\x28\xf2\xa4\xc8\xb3\x22\xda\
\x85\x8e\x11\xf9\x5f\x43\xfa\xdc\xb8\xd4\x8c\x82\xfd\xa5\x48\xf6\
\x5d\x5c\x3a\xd2\x87\xa7\x45\xb2\xf7\xbf\x6f\x44\xbb\x90\x05\x7d\
\x7e\x9e\x13\xc9\xbe\x07\xf2\x9e\x48\x57\xa7\x8b\x64\xef\x5d\xe4\
\x22\x11\xed\x32\x16\xf4\x79\x39\x20\x92\x7d\x07\x45\x0e\x8d\x74\
\x75\xb5\x48\xf6\xde\x45\x3e\x12\xd1\x2e\x63\x41\x9f\x97\x6f\x45\
\xb2\xef\xa0\xc8\x9b\x23\x5d\x9d\x22\x92\xbd\x77\x39\xf7\x88\x68\
\x17\xb1\xa0\xcf\xc7\x81\x91\x6c\xfd\x97\x73\xcd\x48\x1f\x5e\x1f\
\xc9\xde\xbf\xc8\x5f\x22\xa7\x8a\x68\x97\xb0\xa0\xcf\xc3\xb1\x23\
\x7f\x88\x64\xeb\xbf\xc8\x07\x23\x7d\xb9\x58\x24\x5b\x46\x39\xaf\
\x88\x68\x97\xb0\xa0\xcf\xc3\xa3\x22\xd9\xba\x2f\xe7\xb2\x91\x3e\
\xbd\x2c\x92\x2d\xa7\x9c\xfd\x23\xb5\x6c\x47\xdf\x39\x68\x4b\xad\
\xf3\x9f\xc8\xd3\x17\x0f\x35\x80\x13\x44\x7e\x1c\x39\xda\x9e\x7f\
\xe5\x5e\x19\xb9\xc5\xe2\x61\x6f\xce\x1a\xf9\xe6\xe2\x61\xa5\x97\
\x44\x6e\xbb\x78\x28\xa9\x8b\xc7\x45\xb2\xa3\x69\x39\x67\x8e\x0c\
\xe1\xe0\x48\xb6\xbc\x72\xd8\x21\x48\xea\xe0\xa4\x91\x7f\x45\xb2\
\x02\x56\xe4\xf1\x91\xa1\x9c\x38\xf2\xd7\x48\xb6\xdc\x22\xcf\x8b\
\x48\xea\xe0\xc9\x91\xac\x70\x15\xf9\x65\x84\x7a\x94\x21\x3d\x2c\
\x92\x2d\xbb\x9c\x33\x46\x24\x6d\x88\x82\x9c\x15\xac\x22\x0f\x89\
\x0c\x8d\xba\x01\x9a\xd3\xb2\xe5\x17\x61\x87\x94\xea\xa3\x32\xee\
\x88\x91\x73\x2f\xc3\x29\xce\xb7\x23\x87\x44\x58\x39\x75\x8e\x1a\
\xb9\x5c\xe4\xd4\x11\x5e\xc7\x80\x80\x22\xff\x8d\x0c\x8d\xbf\x9d\
\xe5\x16\x39\xd9\xf2\xe7\x6f\x23\xbf\x59\xe6\x7b\x11\x06\x12\xa8\
\x3b\xd6\xf7\xc5\x23\x27\x59\x86\x23\xe0\xaf\x23\xac\xe7\x5f\x44\
\x3e\x1d\x99\xa3\x9b\x44\x5e\xbd\x78\x58\x89\xee\xaa\x3f\x5c\x3c\
\x1c\x14\x83\x59\xee\xba\x78\x98\xfa\x55\x84\xd3\xfc\xbd\xac\x16\
\xf4\x6b\x44\x4e\xb9\x0c\x9d\xf6\x8f\x1c\x39\xd2\xf2\xe7\xe1\x23\
\xa0\x20\x50\x03\xcc\x97\x45\x05\xc5\x6d\x22\x19\x7a\x07\xd1\x73\
\x87\x9a\xca\x32\x3a\xfc\xdf\x2b\x42\xa7\x82\x23\xf0\x8b\xc4\xeb\
\x22\x8f\x8d\x7c\x65\xcf\xbf\xba\xe3\xf3\x9f\x6f\x25\xe7\x8d\xb4\
\x41\xbb\xe9\xd7\x22\xaf\x8a\xd0\xd4\xc1\xb5\xd2\x50\x58\xd7\x74\
\x7d\x3c\x79\x84\x1d\x0f\xeb\xa7\x08\xeb\x7f\xf5\xdf\xab\x28\x38\
\x8c\x76\x1a\xca\x15\x23\x6c\x1b\x74\xd2\x60\x58\x66\x79\xfb\x28\
\xb0\xc1\x3f\x71\xf1\x70\x8f\x3b\x47\x6e\x18\xb9\x44\x84\xe7\x56\
\xe1\xb3\x7f\x20\xc2\x7a\x7e\x1b\xbf\x98\x89\x77\x46\xae\xba\x78\
\x98\x7a\x7b\xa4\xaf\x0e\x32\x4d\x2e\x14\x69\xda\x21\xde\x2c\x52\
\xb9\x63\x3a\x5b\x84\x86\xfe\xec\x74\x60\x35\x5f\x88\xf0\x85\xf3\
\xc5\x64\xff\x5f\xce\xef\x22\xd7\x8d\xe0\xb4\x11\x0a\x7f\xf6\xbc\
\xaa\x3c\x3b\x52\xb7\x71\x34\xb9\x63\xe4\xfd\x91\xec\xbd\x37\x49\
\x31\x14\x94\x82\xd6\x37\x86\x37\x72\x74\xcb\x96\xdb\x36\x7d\x0c\
\xa6\xc8\xf0\x7d\x7f\x35\x92\x2d\x73\x35\x6f\x89\xe0\xd6\x91\xef\
\x44\xb2\xe7\x34\x85\xf7\x60\xa3\x9e\xda\x99\x22\xd9\xe7\x2b\xe7\
\xc6\x91\x31\x1d\x12\xc9\x3e\x47\x91\x77\x47\x2a\x7d\x2a\x92\xbd\
\x28\xcb\xef\x93\xdf\x35\xe5\x35\xc9\xef\xda\xe6\xad\x91\x75\x5d\
\x30\xf2\xd3\x48\xf6\x7e\x7d\x84\xa3\xd6\xb5\x22\x7d\x39\x7b\x84\
\xcb\x95\x6c\x59\xeb\x64\xa8\x82\xce\xe5\x58\xb6\xbc\x2c\x1f\x8f\
\xbc\x77\xe5\x77\x9b\xe6\x76\x91\x29\x35\x75\x90\xe1\x54\x79\x6c\
\xac\x93\xec\xb3\x94\x93\x36\xb5\x71\x8d\x9c\x3d\x79\x4e\x59\xb7\
\xe9\xa0\x69\xd0\x41\x5f\xe1\x34\xa9\x0f\xb7\x8c\x64\xef\xbf\x6e\
\x86\x28\xe8\x5c\xe2\x64\xcb\x1a\x2b\x5c\xc2\x4d\x85\x11\x62\xd9\
\x67\x2a\xc2\x78\xf1\xb1\x71\x36\xd9\xd4\x0d\x77\xaf\xeb\x78\xae\
\xf3\x86\x6e\x16\xe8\x03\xa7\xe0\x17\x5d\x3c\x6c\x74\xbc\xc8\x59\
\x16\x0f\x07\x47\x4f\xa8\xc6\xee\x87\x2d\x1c\x73\xf9\x73\x8e\xe8\
\xdf\x3d\xa5\x07\x45\xaa\xea\x81\x86\x44\x1d\xc4\xa5\x16\x0f\x2b\
\xbd\x6b\xf9\x73\x4c\xf4\x80\xe4\x8c\xa9\x0e\x7d\xe4\xb7\xa1\xa0\
\xd3\xbd\x8e\x6a\xfb\xb9\xbb\xcb\xf2\x67\x13\x3a\x36\x8c\x89\xf6\
\xcd\xae\x68\x69\x98\xab\x39\x7c\xb6\x17\x47\x98\xb6\x69\x4c\x4d\
\x85\x1c\x5c\xa6\x4c\xa1\x69\xb9\xb4\x6e\xa4\x6e\x15\xc9\x4e\x01\
\xda\x86\x1d\xc5\xcf\x56\x7e\xb7\x4e\xbe\x9e\xfc\x6e\x35\x54\x84\
\x95\x6b\x77\xeb\x7c\x22\x92\xbd\x47\x5d\xfe\x19\xa1\x29\xed\xe7\
\xcb\xc7\xd9\x73\xaa\x72\x8e\x48\x57\x5c\x9e\x64\xef\xbd\x4e\x86\
\xba\x46\xa7\xe6\x3c\x5b\xde\x26\xa1\x2e\xe2\x27\x11\x5a\x6f\xb2\
\xff\xaf\xca\xfd\x23\x63\x7a\x74\x24\xfb\x1c\x45\xa6\x6c\x0e\xbc\
\x40\x24\xfb\x4c\xe5\xd0\xe4\x97\x62\x63\x65\x50\x04\xa7\x05\x6d\
\x6a\xd4\xc9\x47\x23\x57\x8f\x14\x6e\x10\x59\xa7\xc0\x3f\x32\x42\
\xfb\x3b\xd8\x0b\xd1\x6e\x9d\x3d\xaf\xc8\x85\x23\x6d\x30\x82\xe8\
\x4f\x91\xec\x3d\xf8\x3d\x23\xbd\xe8\x5c\x40\x1b\x29\xcb\x3f\x51\
\x64\xd5\xb1\x22\xbc\xcf\x6b\x23\xd9\xfb\x94\xc3\xdf\xd1\x87\x6b\
\x47\x5e\x1a\xe1\x3b\xa0\x69\x91\x50\x11\x56\xec\x80\x68\xc5\xa8\
\xeb\x0a\x39\x54\x41\xc7\x79\x22\x1c\x59\xa9\xb8\x5d\x77\x47\xf8\
\xd9\xc8\x03\x22\xab\x1b\xdf\x71\x22\x5c\xfa\x3c\x21\x92\xbd\xae\
\x1c\x0e\x06\x63\x6a\xba\x3e\x7f\x4a\x64\x4a\x4d\xd7\xe9\xad\xea\
\x8f\xf8\x62\xb2\x17\x97\x43\x13\x48\xd6\xf4\xc5\x75\x6b\xf6\xfc\
\x72\x38\x03\xc8\x6a\xad\xe9\x40\x93\x3d\xbf\xc8\x95\x22\x6d\xd1\
\xde\x4b\x93\xd5\x53\x23\xf7\x8b\x5c\x27\x72\xce\xc8\x26\x18\x91\
\x94\x7d\x9e\x22\x1f\x8a\x8c\xa5\xee\xec\x67\xc8\x82\x5e\x46\xdf\
\x88\x6c\xf9\x59\x38\x32\xb6\x41\xa5\x30\x3b\xb6\xec\x3d\x8a\x9c\
\x21\x32\x06\xae\xcf\xb3\xe5\x97\x53\x34\x1b\x4f\x85\xf6\xfd\xec\
\x73\x15\xa1\x69\xba\x51\x53\x41\xaf\x1b\xfb\x7c\xfd\x48\xf6\x9a\
\x72\xaa\x9a\xa6\x38\x8a\x66\xcf\x2f\x42\x61\x9d\x4a\x5d\x13\x21\
\xb5\xfc\x63\xd9\x29\x05\x9d\x33\x8f\xba\x8e\x26\x99\xa6\x89\x16\
\xee\x14\x19\x03\xfd\x4a\xb2\xe5\x97\x93\xf6\x40\x1b\x51\x53\x13\
\xe6\xb6\x83\x4f\xd6\xbb\xaa\x09\xa7\xd7\xf4\x74\xaa\xf2\xf7\xe5\
\xcf\x2a\x7c\x59\x55\x6d\xe3\x4d\xaf\xdd\xe4\xf3\xf6\xa5\xae\x02\
\x84\x5e\x6c\x3a\xcc\x1f\x23\x57\x89\xac\x5b\x2b\x4d\xdd\x0a\x97\
\x56\x55\x38\xd5\x1f\x43\x53\xc5\x1f\x35\xdf\x4d\x5d\xbc\x87\xc6\
\x34\x53\x75\xb6\xfd\x0d\x9b\x14\x1c\x7a\xc6\x75\xf9\x23\xe9\xe2\
\xb8\xa9\x3e\x0b\x3a\x5d\x7c\xe9\xa8\xc2\x51\x84\x6e\xa7\x37\x8d\
\x30\x11\xff\xf5\x96\xff\xe6\xfa\xfc\xf4\x91\x42\x5d\xd7\xd7\x21\
\x7a\xca\xed\x54\xf4\xee\xbb\x42\x84\xfa\x9b\x4d\xd4\xf5\x19\x1f\
\xab\x19\xb2\xa9\xa0\x4f\x5d\xc8\xd1\xf4\x19\xb6\xd5\x3b\x6d\x52\
\x70\xa6\x9c\x95\xa6\x4b\x41\xa7\x60\xd3\x44\xf7\xa2\xc8\x97\x23\
\xd4\x13\x70\x1a\xcc\x91\xfa\x1d\x11\x76\x40\xcc\xbf\xf5\x86\xe5\
\xbf\xe9\x12\x5c\x54\x0e\x52\x39\x49\x2f\xa9\x2a\x16\xf4\xc3\x30\
\x4e\x81\x4b\xbf\x4d\xfd\x63\xf9\x33\xc3\x40\xa8\x31\xec\x86\x82\
\xde\xf9\x88\xde\xe7\x51\x75\x5d\x9b\x2c\x9b\x9e\x5d\xcf\x8c\x50\
\x58\xa9\xa0\x60\xca\x9d\x73\x45\xd6\xc1\x34\x42\x4c\xbf\x5b\x65\
\xca\x75\x32\x37\x43\xae\x8b\xb1\xd6\xf3\x6e\x28\xe8\x1c\x7c\xb6\
\xee\xd7\xb6\xc9\x8a\xdb\x49\x47\xf4\x47\x44\xb8\xd4\xa0\xf6\xbd\
\x6e\xae\xaf\xae\x2c\xe8\x87\xb1\xa0\x8f\xa3\xcd\x67\xd8\x3a\x7d\
\xdf\x64\xc5\x4d\xb9\x51\xb7\xdd\xc9\xd0\x05\x96\x8a\x9d\xbe\xda\
\xb7\x9b\xec\x6b\xa7\xee\x75\xdf\x43\xd7\xed\xa3\x6e\x5d\x8e\xb5\
\xed\x35\x8d\x98\xa4\x1f\xc1\xd4\xda\x7c\x86\xad\xbf\x63\xa7\x15\
\xf4\x36\x28\xe4\x5c\x63\xb7\xed\x1b\xdf\x87\x29\xcf\x72\xe6\xa6\
\xeb\xf6\x51\xf7\xfa\xb1\x76\xa8\x4d\xa3\xd2\xa6\x6e\x5a\x43\x9b\
\xcf\x40\xc5\xe8\x1e\x9b\x7c\x29\x73\xde\xa8\x19\xf3\x4e\x21\x1f\
\xab\x63\x85\xf6\xd6\x75\xfb\x98\xc3\x11\x9d\xfa\x9c\x3a\x59\x4f\
\xca\xb1\xb5\xf9\x0c\x5b\x7f\xc7\x26\x2b\x6e\xac\x95\xbd\x89\x67\
\x44\x2c\xe4\xd3\xea\xba\x7d\xd4\xbd\x7e\x2e\x05\x7d\x27\x1c\xd1\
\xe9\x22\xbb\x35\xc0\x6b\x93\x15\x37\xd7\x23\x3a\x7d\xa9\x99\x0a\
\xab\x0d\x06\x55\xd0\xbf\xfa\x0e\x11\xda\xcb\x99\x1a\x89\xbf\x8b\
\x6b\x1a\xf6\x94\xcc\xcf\x4d\xfb\x3a\xe3\xc4\xe9\xc2\xc9\xd4\x46\
\xab\x53\x62\x29\xd7\xb5\x30\xd6\x1d\xd1\xe7\x72\xea\xbe\x13\x8e\
\xe8\xdb\x76\x56\x9b\x7c\x29\x63\xed\x55\xd7\x75\x9f\xe5\xcf\x3a\
\x4c\x87\x44\xcf\x3c\x0a\xf6\x03\x23\x2f\x8c\xd0\x9d\x97\x82\x8f\
\x7f\x47\x58\x41\xdf\x8d\x7c\x32\x42\xbb\xfa\xc3\x23\x74\xd9\xa5\
\xcf\xbc\x16\xea\x76\xf6\x5d\xb7\x8f\xba\xd7\x8f\xb5\xed\x35\x1d\
\xd1\x99\xc3\x61\xea\x39\x04\x9a\x8e\xe8\x5b\xd7\xe7\xd8\x2d\x05\
\x9d\x89\x29\x98\xac\xb2\x0e\xe3\xc6\x69\x3f\x7f\xfe\x9e\x7f\xad\
\x8f\x8e\x33\x6a\x36\xe4\x35\xfa\x58\x8a\x1d\x7f\x1d\x46\xf3\x4d\
\xa9\xa9\x2f\xc8\xb6\xe6\xb7\x21\x0a\xed\x14\x05\xa2\x72\xa0\xfd\
\xd2\x3d\x23\x07\x2d\x1e\x6e\x8c\xa3\xbd\x86\x37\x87\x03\x09\xf3\
\x22\x7e\x71\xf1\xb0\x12\xb3\xda\x4e\xa9\x69\x9b\x67\x98\xed\x96\
\x39\x1e\x9d\x37\xc1\xf4\xc8\x55\x18\xc3\xdd\xf5\xe6\x83\x77\x8f\
\x4c\x39\x77\xd9\xbe\x64\x0e\x47\x74\x6c\x3c\x8b\xcb\x08\x18\xd2\
\xdb\x74\x57\x16\x66\x8b\xdd\xb2\x5b\x0a\x7a\x5d\xaf\xb7\x2e\x53\
\x4b\x31\xe6\x98\x99\x44\xd8\x51\x4c\x3d\x77\xda\xbe\x62\x2e\xdb\
\x24\x1d\xae\xea\x4c\x59\xd0\x9b\x96\x4d\x8d\xfb\xb6\x19\x70\x56\
\xf7\x9e\xd4\x36\xd3\xd1\xe4\x32\x91\xaa\xa3\xe4\xf7\x23\xcc\x22\
\xc3\x1d\x5a\x98\x0e\x68\x15\xef\xc1\x48\xb0\x2a\xdc\x0c\x81\xda\
\x6d\x66\x4c\x59\xc5\xe7\xa9\x9b\x83\x8d\x4a\x12\x2a\x19\x28\xbc\
\xe5\x79\xee\xf8\xbc\xc5\x4c\x35\xab\xa8\x38\x61\x78\x23\x5f\x5c\
\x9b\xde\x44\x5c\xfb\x70\x83\x0a\x66\x7a\xb9\x7d\xa4\xae\x8f\x7b\
\x19\x7f\x17\x33\xa8\xb0\x3c\x86\x31\xae\x73\xa3\x07\x26\xc9\x60\
\x86\x1f\xd6\x3d\x7f\x07\xfd\xf3\xcf\xbf\xcc\xea\x8d\x27\x78\x4e\
\x55\x8d\x2b\xc3\x7c\xff\x1c\xe1\xbd\x98\xf2\x97\x9f\xab\x61\xac\
\x35\xeb\x83\x6b\x69\x86\x93\xb6\xc5\x7a\x60\x86\x1f\x3e\x13\x43\
\x50\x99\x3b\x20\xc3\xf7\x42\x0b\x05\x95\x45\x6c\x70\x6d\x7b\x91\
\xb1\xee\x98\xa6\x9b\xd1\x83\x55\x15\x5d\xfc\x6d\xcc\x71\xc8\x74\
\x54\x3c\x1e\x12\xeb\xa6\xee\x56\xd5\x1c\x5c\x18\x6e\x9d\x6d\xc7\
\x43\x63\x70\x16\xeb\xaa\xca\xfb\x22\xcc\x9f\xb0\x17\xbe\xb4\x17\
\x44\x8a\x41\xeb\x6d\x43\xc5\xd6\x6a\xe5\x0b\x4d\x5c\xd9\x73\x57\
\xc3\x6c\x22\x57\x8e\x94\xb1\x03\xc8\x9e\xbb\x1a\x36\x68\xee\x02\
\x53\xe0\x66\x01\xd9\xf3\xca\x61\x83\x7b\x6e\x84\x41\x2d\x34\xa9\
\x9d\x26\x42\xa1\x66\x48\x25\x33\xc8\x50\xb0\x0f\x8d\x64\xaf\xdd\
\x24\xb4\xe9\x37\xe1\xae\x35\x74\xf0\xc9\x5e\x3f\x46\x98\x25\xa8\
\xcd\x00\x1f\x36\xe8\xec\xf5\x6d\xd2\x34\xe5\x12\x3b\x36\x3e\x47\
\xf6\xda\xba\xbc\x3c\x72\xdc\xc8\x90\x9a\xa6\x36\x2b\x6f\x83\x63\
\x62\xf4\x65\xf6\x79\x8a\x54\xce\xaf\xc7\xd0\xcc\xec\x05\x6d\x42\
\x01\x29\xa3\x29\x2a\x7b\x5e\x16\xf6\x9a\xe5\x7b\x4a\xb7\x2d\xe8\
\x45\x98\xd4\xb2\xd0\x65\x72\xca\xa1\x52\x79\xd3\xbb\xc0\x29\x2a\
\x33\xac\x66\xaf\x1b\x33\x4d\xe3\xc6\xb9\xc9\x7e\xf6\xba\x75\x52\
\xb7\x1e\x3e\x16\xc9\x5e\xd3\x26\x8c\x4a\x1c\x12\xdb\x76\xb6\xdc\
\x22\x53\x4c\x10\xc9\xd9\x6b\xf6\x59\xca\x49\xef\x72\x43\xb3\x54\
\xf6\xe4\x75\x52\x1e\x27\x7c\x40\x24\x7b\x4e\x55\xa8\xe8\x2a\xac\
\x5b\xd0\xb9\xef\x55\xa1\xeb\x4c\xb6\x43\xa4\xae\xe3\x05\xb7\x39\
\xca\x5e\x33\x45\xea\xe6\xd2\xe3\x72\x29\x7b\xcd\x3a\xa9\x9a\xd8\
\x91\x26\xaa\xec\xf9\x6d\x33\xe4\x7d\xf0\xc0\xd9\x5e\xb6\xdc\x72\
\xc6\xbe\x75\x54\xd3\xce\x27\x9d\x9e\x9b\xa3\x4a\x5d\x8d\x75\x5b\
\xe5\xf7\x58\xb7\x32\xa5\xed\x35\x70\xa6\xbc\x5c\x6e\x80\xc8\xc4\
\x94\x73\xc2\x70\xc7\xaa\x1b\x64\x70\x5d\x3e\x17\x74\x20\xca\x30\
\xc3\x0e\x63\xf1\xbb\x62\x26\x9f\xac\xc2\xb4\xeb\x3a\xe0\x3d\x87\
\xbc\x59\x07\xf7\xed\xa3\x4e\xa0\x4e\x5f\x77\xeb\x69\x83\xef\xa2\
\x7c\x16\x9b\xa1\x93\x57\x8a\xb9\xd2\xb3\x3d\x43\xdb\x30\xdf\x7a\
\x59\x9b\xc9\x21\xcb\xa1\x9b\x69\x61\xdd\x23\x7a\x56\xb0\xf9\x43\
\xb3\xe7\x4e\x11\x2a\x2e\xab\x50\xb1\x95\xbd\x66\x8a\xd0\x5c\x53\
\xa5\x6e\x7a\xe9\xb6\x39\x24\x92\x61\x47\x92\x3d\xbf\x6d\xa8\x53\
\x19\x1a\xf7\x3e\xcf\x96\x5d\xa4\xa9\x17\x5d\x9f\xe8\xfd\x99\x7d\
\x86\x72\x6a\x77\x9e\x0f\x8e\x64\x2f\x6a\x93\xd5\x0a\x09\x26\x8e\
\xcc\x9e\x97\x65\x75\x03\x58\xa7\xa0\x53\xb3\x4d\x0d\x72\x86\x6e\
\xab\xd9\x6b\x36\x0d\xa7\x43\x4d\xd3\xeb\x66\x29\xef\xc4\x32\x4c\
\x5f\x95\xbd\x6e\xcc\x34\xf5\x31\xa0\xe6\x39\x7b\xdd\x3a\xe1\x14\
\xb8\x0a\xf7\xfc\xce\x5e\xd3\x26\x4d\xeb\xb7\x0f\x54\xda\x66\xcb\
\x2e\x87\xfb\x03\x8c\xa1\x69\x3a\xec\x37\x46\x1a\x51\x89\xc6\x74\
\xc1\x9c\xaa\x30\x13\x27\x35\xdb\x59\x68\x32\x61\x7a\x63\xe6\x54\
\xcb\xee\x0b\xcd\x6d\x64\xb3\x0f\x41\x98\x0f\x8c\xbd\x30\x37\x01\
\x60\x4f\xb9\x3a\x07\x58\x5d\x41\xa7\xd6\x9c\x1b\xe6\xd3\x63\x89\
\x16\x82\xf4\x8e\x91\x25\x97\x8c\x74\xa9\x64\xe4\x68\x4c\x21\xe0\
\xae\x18\x38\x30\x92\x3d\xaf\x1c\xd6\x0f\xaf\xe3\x3e\xdf\x6d\xa7\
\x3a\xa6\xa9\x84\xf5\x41\xb7\xcb\xec\x3d\xfb\x0e\x3b\x48\x9a\xbf\
\xa8\x48\x62\x50\x4f\x1b\xd4\xbb\x30\xbd\xf0\x0f\x22\x34\x6d\x66\
\xef\x5b\x0e\x4d\x6c\x8c\x17\x78\x53\xa4\x4d\x7b\x33\x2d\x21\x8c\
\x2d\x68\x9a\x46\xba\x58\xbf\x9c\x52\xaf\x3b\x95\x74\x17\xcc\xb8\
\x9a\x7d\x9e\x22\x34\x67\x0d\xad\x4d\xdd\x17\xcf\xd9\x67\x31\x6c\
\x95\x42\x4a\x13\x51\x55\xc5\x12\x6d\xb2\x9f\x8f\x70\x03\x79\xa6\
\x9f\xaa\x6a\xa3\xa4\xfe\xa1\x2e\x5d\xd1\x54\x39\x74\xfa\x90\xfd\
\xed\xe5\x74\x91\xbd\x5f\x91\xa9\xd0\x77\x21\xdb\x6e\xca\xa9\xeb\
\x3b\xd2\x07\x76\xcc\xd9\x72\x8b\x74\x99\x90\x73\x57\xa2\xb3\x08\
\x37\xb8\xe7\x48\x43\xd3\xde\x58\x73\x85\x6b\x67\xe3\xec\x24\x2b\
\x60\x45\x86\xbc\x19\x25\x67\x3c\xd9\x32\xcb\xb9\x51\x44\x52\x47\
\xdc\x5d\x35\x2b\x60\xe5\x70\xeb\xaf\x21\x70\x19\x94\x2d\xaf\x48\
\x53\x77\x5d\x49\x6b\x60\x02\x92\xac\xa0\x15\xa1\xfe\xaa\x8f\xe6\
\xc8\x32\x76\x1e\xd9\xb2\xca\x99\xfa\x3e\x70\xd2\xae\x72\xf9\x48\
\x56\xd0\xca\x39\x38\xd2\x17\xba\xa6\x33\xb6\x23\x5b\x4e\x91\x6d\
\xc3\x51\x25\xf5\xa3\xe9\x5a\x9d\x94\xbb\x75\x77\xd1\x74\x8f\x76\
\xd2\x76\xfa\x34\x49\x6b\x60\x64\x61\x56\xe0\xca\xe9\xe3\xa8\xce\
\xe8\xd0\xa6\xa3\x79\xab\x76\x73\x49\x9b\xe1\x3e\x7c\x59\xc1\x2b\
\xc2\x90\xe5\xae\xda\x54\xfe\x55\x0d\xcd\x96\xd4\x13\x46\xfd\x65\
\x85\x8f\xf4\x31\xaa\xad\x69\xc0\x0f\xb3\x1e\x4b\x1a\x58\x5d\x41\
\xa4\x4b\x79\x1f\x3e\x17\xc9\xde\x9f\x9e\x97\x92\x46\x42\x1f\x77\
\x26\x92\x2c\x17\xc2\x3e\xa7\x05\xdf\x3f\xf2\x99\x48\xf9\xfd\x99\
\xa8\x64\xed\x1b\x48\xf4\xd5\x25\x52\xda\x57\x31\xcb\x0d\x33\x25\
\x31\xa7\x20\xbd\xe3\x9a\x26\x95\xdc\x04\xe3\x50\x18\xe9\xc7\xa0\
\x16\xc6\x98\x48\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\
\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\
\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\
\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\
\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\
\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\
\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\
\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\
\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\x49\x92\x24\
\x49\x92\x24\xf5\x67\xbf\xfd\xfe\x0f\x9b\xbc\x15\xda\x67\xbe\x80\
\x39\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x00\xe7\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x9c\x49\x44\x41\x54\x38\x8d\xcd\xd2\x3d\x0a\
\xc2\x40\x10\x86\xe1\x87\xa0\x76\x2a\xa4\xf5\x50\x76\x36\x7a\x1b\
\x83\x07\xf1\x08\x82\xad\x78\x24\x2d\x04\xb7\xf0\xa7\x48\xfc\x4b\
\xd4\x6c\xd4\xc2\x0f\x3e\xd8\x19\x76\x5f\x66\x76\x86\x7f\xd1\x0c\
\x01\x27\x1c\xb1\x46\xb7\x09\x20\x20\x2d\xce\x09\xe6\x05\x34\x5a\
\xa7\x52\x3c\xc0\xae\xc8\x3f\x73\x40\xf6\x0e\x50\xa7\x14\xfb\x6f\
\x00\xd7\x37\x49\x29\xd9\xc1\x12\x07\xaf\xcb\xbf\x18\xb4\x4a\x80\
\x51\x01\x6d\xcb\xa7\x51\x5b\x41\x39\x58\x60\x1c\xd7\x41\x15\xd0\
\xc3\x06\xfd\x26\x80\xfb\x3f\x18\xca\x17\x68\x1b\x09\x78\x50\xc0\
\x0a\x93\xc8\xfb\x95\x31\x66\x6e\xab\x1c\xe3\x80\xe9\x27\x95\xfe\
\x5e\x67\xca\x4f\x38\x40\x1e\xdb\x25\xdb\x00\x00\x00\x00\x49\x45\
\x4e\x44\xae\x42\x60\x82\
\x00\x00\x03\x0e\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x19\x00\x00\x00\x19\x08\x06\x00\x00\x00\xc4\xe9\x85\x63\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc2\x00\x00\x0e\xc2\x01\x15\x28\
\x4a\x80\x00\x00\x02\xa3\x49\x44\x41\x54\x48\x4b\xad\x96\x4d\x4f\
\x13\x51\x14\x86\xcf\x4c\xb1\x45\x34\x8d\x48\x5b\xc4\x44\xe2\x17\
\xea\xc6\x85\x74\x67\x4c\x8c\x0b\xd1\x0a\x3f\x80\x98\xd4\x85\xd1\
\xea\xca\x98\x74\x83\x0b\x83\x1f\x0b\xdd\x90\xb8\xe9\xa6\x76\x25\
\xd1\xf8\x03\xd4\xfa\xf1\x1b\x8a\x1a\x0d\x12\x15\xdd\x89\xa0\xc4\
\x68\x43\xcc\x14\xe8\xf8\x9e\x7b\xef\x4c\xa7\xcc\x6d\xe9\x50\x1f\
\x52\x72\xce\x99\xce\xbc\x3d\xf7\x9e\x7b\xce\x18\xd4\x84\x4c\xe9\
\x54\x9f\x4d\xe6\x59\x98\x23\xf8\x0c\x12\x19\x51\x71\x41\x60\xff\
\xc1\xbf\x29\x7c\x9e\x18\x54\x7d\x94\x4f\xbe\x98\x13\x61\x0d\x5a\
\x91\x4c\xe9\x74\x8f\x4d\xc6\x4d\x5c\xbe\x00\x37\x22\xa3\x4d\xb1\
\x20\x5a\x30\xc8\x1e\xcf\x27\x9f\x2f\xaa\x98\x8b\x4f\x24\x53\x4a\
\x9d\x84\xc0\x03\x98\x3b\x64\x24\x10\xdf\x21\x74\x2e\x9f\x2c\xbe\
\x52\xbe\xa0\x4e\xe4\x62\x29\x35\x8a\xd0\x24\xcc\x0e\x19\xd9\x10\
\x2b\xc8\x2a\x7d\x3f\x59\x7c\xac\xfc\x9a\x88\xca\xe0\x19\xcc\x76\
\x04\x1c\x56\x90\xd1\x19\x27\x23\x21\x22\xf7\xc0\x7c\x0f\x73\x23\
\x4b\xd4\x88\x79\x83\x56\x0f\xa3\x20\x7e\x98\xec\xc9\x4d\x6e\x4f\
\xe0\x78\x2c\x45\x7b\xb7\x1c\x52\x9e\xa0\x17\x3f\x7c\x9c\x0d\x43\
\x96\x69\xe8\x2b\xec\x56\xaa\x48\xcb\x89\xf8\x08\x8d\xee\xba\x4c\
\xd6\xea\x5f\xba\xf7\xf9\x3a\x7d\x59\x9a\x51\x57\xc8\x42\x36\x7b\
\x4c\x75\x0e\xda\x16\x30\xf0\xd7\x19\xea\xa2\xab\xfb\x6f\x7b\x33\
\xc2\x73\xcd\x34\x2f\x17\x1f\x34\x1f\x5b\x3b\xa2\xe2\xc6\x66\x78\
\x05\x1c\x4c\x23\x44\x11\xb3\x53\x79\xbc\x15\x94\x62\x11\x9c\xe4\
\x7a\xba\x37\xc5\x68\xec\xe0\x04\xa5\xfb\xaf\x34\x14\xd2\x09\x54\
\xaa\x16\xe5\x66\x6f\xd1\x87\xf2\x1b\x15\x11\x0c\x42\xc4\xdb\x2a\
\xa4\x40\xf6\xc0\x1d\x4a\x44\x76\xd2\xb1\xd8\x90\x56\x28\x80\x00\
\x30\xa2\xa2\xba\xbc\x9c\xdf\x9d\x15\x02\x0e\x6b\x85\x82\x09\x48\
\x42\xc9\x4b\x03\x37\x94\x2d\x98\x5d\x9a\xa6\x23\xdb\x8e\xd2\x66\
\x6c\xa2\x43\x7f\xd7\x3e\x91\x61\x4f\x38\x11\x58\x80\x31\xd0\x4a\
\x7e\xaf\x5d\xb2\x44\xa4\x8f\xb2\x03\x77\xa9\x3b\x1c\x53\x11\x3d\
\xad\x08\x70\xb7\xe6\xe5\xe2\x76\x5d\xc7\x82\x35\x47\x13\x9f\xc6\
\xe8\x57\xe5\xa7\x8a\xf8\x69\x4d\x40\x30\xc5\x22\x4f\xa5\x5d\x8f\
\x2b\xb4\xec\x17\x5a\xae\x56\x5a\x15\xe0\x85\x2d\x9a\x18\x38\x0f\
\x61\x63\x1e\xf8\x11\x42\x1f\xaf\x41\xa8\x36\x22\x82\x08\x00\x3c\
\xb7\x3a\x69\xca\x89\x66\x17\x54\xd0\xc7\x82\xf5\x0d\x42\x9c\xd1\
\xa2\x2b\x30\x5d\x7e\xad\xae\xae\x87\x5d\xe0\xe7\x8b\x32\x41\xff\
\x8a\xa3\x7f\xbd\x83\xd9\xcb\xbe\x0e\x2e\xeb\xed\xe1\x38\xcd\x94\
\xdf\xaa\xc8\xba\xb8\x5d\xd8\xad\x45\x54\xd9\x10\x56\x90\xf7\xe7\
\xbf\xcc\x13\x64\x31\x8c\xc1\xf5\x92\x1d\xf7\x30\xca\x80\x9d\x86\
\x89\x2f\xb4\x85\x33\x19\x85\x00\x53\x77\xe2\xe5\xc8\xb4\x87\x61\
\xce\xcb\x48\x60\x70\x9f\xc8\xc0\x1d\xbd\x8c\xaf\xad\xf0\x2f\xe0\
\xb5\xc4\x97\x73\x70\xb5\x55\xa7\x81\xdf\x56\x72\x7c\x9f\x37\x03\
\x87\x5a\x7f\xd0\xc0\x03\x8d\xe7\x01\xb7\x6b\xb8\xda\xf7\x2e\x3e\
\x07\x5c\xa6\x8d\xdf\xbb\x88\xfe\x01\x2d\xca\x14\x85\x20\xa6\xbe\
\xe2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x09\x1b\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc2\x00\x00\x0e\xc2\x01\x15\x28\
\x4a\x80\x00\x00\x08\xb0\x49\x44\x41\x54\x78\x5e\xed\x9c\x57\xc8\
\x24\x45\x14\x85\xd7\x9c\xc5\x9c\xd7\x2c\x98\x33\x6b\x0e\xb8\x66\
\x45\x14\x0c\x0f\x0a\xa2\xbe\x88\x22\x98\x31\xe7\x9c\xb3\x20\x62\
\x06\xc5\x27\x31\xa0\xb8\x2a\x06\x54\x74\x4d\x88\x98\xf3\x9a\xb3\
\xae\x39\x9f\xef\x9f\xe9\xb5\xf6\xda\xdd\xd3\xa9\x7a\x6a\x7a\xeb\
\xc0\xc7\xf4\x1f\xa6\xfa\x76\x9f\xae\x74\xab\x66\xc6\x15\xd0\x3f\
\x23\xc2\x1f\x62\x7f\xd1\x79\xa5\x5d\x7c\xa8\xfc\x2d\x0e\x16\x9d\
\x56\xda\x85\x87\x4c\xe7\x4d\x49\xbb\xe8\xd0\xe9\xb4\x29\xf6\x62\
\x43\x93\x8d\x2f\xa1\xb3\xa6\xd8\x0b\x0d\x4d\x36\x3e\x97\x4e\x9a\
\x62\x2f\x32\x34\xd9\xf8\xfe\x4a\xf9\xf9\x40\xd1\x19\xb9\x17\x07\
\xa1\xc9\xc6\x77\x80\xb0\xa6\x74\xaa\xa6\xb8\x17\x06\xa1\x29\x2d\
\xbe\x4e\x9b\xe2\x5e\x14\x84\xa6\xac\xf8\x3a\x6b\x8a\x7b\x41\x10\
\x9a\xf2\xe2\xeb\xa4\x29\xee\xc5\x40\x68\x1a\x14\x5f\xe7\x4c\x71\
\x2f\x04\x42\x53\x91\xf8\x3a\x65\x8a\x7b\x11\x10\x9a\x8a\xc6\xd7\
\x19\x53\xdc\x0b\x80\xd0\x54\x26\xbe\x4e\x98\xe2\x06\x0f\xa1\xa9\
\x6c\x7c\x23\x6f\x8a\x1b\x38\x84\xa6\x2a\xf1\x8d\xb4\x29\x6e\xd0\
\x10\x9a\xaa\xc6\x37\xb2\xa6\xb8\x01\x43\x68\xaa\x13\xdf\x48\x9a\
\xe2\x06\x0b\xa1\xa9\x6e\x7c\x23\x67\x8a\x1b\x28\x84\xa6\x26\xe2\
\x1b\x29\x53\xdc\x20\x21\x34\x35\x15\xdf\xc8\x98\xe2\x06\x08\xa1\
\xa9\xc9\xf8\x46\xc2\x14\x37\x38\x08\x4d\x4d\xc7\x17\xbc\x29\x6e\
\x60\x10\x9a\x7c\xc4\x17\xb4\x29\x6e\x50\x10\x9a\x7c\xc5\x17\xac\
\x29\x6e\x40\x10\x9a\x7c\xc6\x17\xa4\x29\x6e\x30\x10\x9a\x7c\xc7\
\x17\x9c\x29\x6e\x20\x10\x9a\x6c\x7c\x6d\x81\x49\x8d\xef\x25\x9e\
\xa9\xff\x9a\x27\x4e\xee\xaa\xc8\x7b\xda\x94\x8d\xaf\x4d\xfd\x29\
\x66\xeb\x1d\x36\xa3\x68\x48\x7d\x35\x7a\x3f\x66\xee\xbf\x46\x05\
\xa2\x2e\xd4\x90\xb6\xe5\xf5\x7e\xc4\x1a\x12\x98\xa2\x21\x81\x29\
\xc4\x26\x8b\xf2\xe7\x14\xf3\xf4\x5f\xf3\xc4\xc7\xd8\x7e\x14\xbf\
\x08\xe6\x06\x6d\xc8\xeb\xfd\x08\xd1\x10\x86\x91\x8b\x8b\xe5\xc4\
\x62\xfc\x22\x47\x3f\x88\x77\xc4\xa7\xe2\x77\x61\x63\xf5\xa1\x19\
\xce\x10\x6a\xc6\x5a\x62\xf3\xfe\x6b\x9e\xa6\x88\x87\xc4\x8b\xe2\
\x27\xc1\xbc\xc0\xb7\x66\x38\x43\x16\x10\x5b\x89\xbd\xc4\x96\xfc\
\x22\x47\x6f\x88\x9b\xc4\x83\xe2\x7b\x41\x2d\xf1\x2d\xaf\xf7\x23\
\xc4\x4e\x9d\x98\xe6\x16\x8b\x88\xf1\x03\xa0\x69\xa3\x46\xcd\x22\
\x7c\x3f\x28\xad\x28\x8e\xb2\x02\x53\x34\x24\x30\x45\x43\x02\x53\
\x34\x24\x30\x45\x43\x02\x53\x34\x24\x30\x45\x43\x02\x53\x34\x24\
\x30\x45\x43\x02\x53\x34\xa4\x3d\x2d\x28\x56\x13\x24\x4d\xe7\xe0\
\x17\x69\x8a\x86\xf8\xd5\x7c\xe2\x44\xf1\x8a\xf8\x46\xbc\x2a\xde\
\x17\xdf\x89\xfb\xc5\x2e\x62\x3a\x45\x43\xfc\x89\xc4\xe8\x5b\xe2\
\x2c\xb1\x06\xbf\x70\xc4\x3a\xcf\x8e\xe2\x5e\x71\x9f\x20\xa1\x3a\
\xa6\x68\x88\x1f\xed\x2e\x58\x16\x20\xf9\x39\x48\x3b\x8b\xc7\x05\
\xb5\x29\x1a\xe2\x41\x5b\x88\x3b\x44\x99\xfd\x5a\xac\xfb\x5c\xc7\
\x41\x34\xa4\xbc\xde\xeb\xbf\x22\xf7\x18\xad\x2f\xee\x12\x99\x9d\
\x76\x8e\xf6\x11\x13\xa2\x21\xe5\x75\xa8\xf8\xb8\x0f\xc7\x89\x30\
\x63\x92\x58\x68\xec\xa7\xf2\x62\x3d\xe7\xa0\x68\x48\x79\x31\x3a\
\x5a\xa6\x0f\xc7\x28\xcb\x8c\xc7\xfa\xaf\x45\x35\x31\x1a\x52\x5f\
\x59\x66\x9c\x2e\xb6\xee\xbf\x16\xd5\xf8\x68\x48\x3d\xe5\x99\x71\
\x5a\xef\x70\xec\xb5\xb0\x29\xd1\x90\xea\xca\x32\xe3\x0c\x91\x98\
\x91\xa8\xa8\x29\x53\xa2\x21\xd5\xb4\xae\x60\xa7\x8b\x35\xe3\x7c\
\x71\x6a\xef\xf0\x7f\xc2\x94\xe3\x7a\x87\x99\x9a\x14\x0d\x29\x2f\
\x6a\xc6\xc3\x62\xe1\xb1\x9f\xfe\xd3\x99\x62\xd0\x0d\xc7\xb0\xac\
\x9a\xc2\xf6\xa2\x1b\xa2\x21\xe5\x94\xd5\x4c\x61\xc6\x29\xbd\xc3\
\x81\xa2\xa6\x3c\xda\x3b\x9c\x4e\xb7\x8b\xc9\x3e\x36\xca\xb1\x47\
\x6a\x2e\xb1\xac\x60\x06\xca\x93\x54\xc6\x78\xf6\x59\x91\x15\x9d\
\xd0\x7f\xcd\xd3\x27\x82\xb4\x03\xc9\xbb\x32\x3b\x17\xd9\x07\xcc\
\x47\xd2\xd8\xf1\x48\xb2\xef\x5b\xc1\x3e\xe1\x3c\x65\x99\x41\xae\
\xea\xe4\xde\x61\x21\x51\x43\xac\x79\x2f\x0b\x76\x6a\x4e\xf5\x65\
\x08\x37\x75\x15\x41\x1a\x81\xc4\x1a\x39\x9d\xd9\x45\x11\xf1\x7f\
\x98\xb8\x94\x60\xb3\x5c\x9e\xa6\x0a\xb6\x93\x7e\x29\xb8\xa1\xdc\
\xe4\x41\xe2\xff\xd8\xe5\xf8\x81\x78\x44\xbc\x26\x92\xf7\x67\xa9\
\x29\x33\xa8\x49\x27\xf5\x0e\xa7\xe9\x2b\xb1\x8e\xe0\xe1\x2a\xb4\
\xdb\xaf\xac\x21\xfc\x9d\x9b\xca\xc4\x69\x63\xc1\x58\x7c\x43\xc1\
\xcd\x4d\xf2\x3b\x79\x65\x24\xef\x27\x23\x3a\x28\x05\x41\x8d\x60\
\xe7\xfb\x6f\x22\x6f\xf7\x7b\x72\x0d\xfc\x3f\xa9\x6f\xb2\xb0\x24\
\xff\x9e\x16\xa4\x3f\x30\x28\xeb\xfd\x74\xe0\xfc\xaf\xed\x33\x2e\
\x14\xc7\xf6\x0e\x0b\x89\xd1\x97\x35\x8f\x58\xb6\x17\x93\xc7\x7e\
\x2a\x28\x2e\xc6\xa5\xa8\xc8\x5e\xae\x27\x8e\x10\x0f\x08\x9e\x00\
\xf6\xde\xda\x8f\x18\xfb\x86\x1b\x9d\x34\x51\xd4\x84\xa7\x04\x37\
\x73\x23\xc1\xee\xfa\xbc\x24\x20\x66\xf0\x04\xdb\x32\x2f\x10\x65\
\x44\xcd\xb0\x65\xb0\x3e\xc2\x83\x5a\x5a\xb6\xa0\xa2\xa2\xdf\xc0\
\x94\xb5\xc5\x21\x82\xa7\xec\x6b\x81\x29\xc9\x4d\xb2\x65\x37\x8d\
\x6b\x06\x7d\x0c\x35\x82\x9b\xc3\x5a\x05\xcd\xea\xac\x22\x4b\xbe\
\xcd\xd8\x40\x54\x92\x2d\xac\x8c\xe8\x4f\x58\xba\xe4\x49\x38\x52\
\xdc\x2d\x3e\x14\x34\x1d\x6d\x19\xc2\xb9\x7e\x16\x4f\x08\xda\xfc\
\x1d\xc4\x12\x22\x6f\xa0\x91\x65\x06\x35\xab\x8c\x38\x9f\x2d\xe3\
\x0b\x31\xe8\x63\x16\xb9\xb2\x05\x96\x15\xa6\xd0\x19\x62\xca\xe1\
\x82\x15\x32\x32\xa5\xb4\xfb\x3c\xb9\xbe\x8c\xa1\x5c\xce\xc1\x8d\
\x7d\x49\x9c\x2d\x30\x83\x5d\xf3\x55\x9a\xa9\xb2\x66\x70\x3e\x5b\
\xc6\xe7\xa2\x96\x19\xc8\x16\x5a\x45\x98\x32\xbf\x48\x4c\xb9\x47\
\xd0\x91\xfa\xac\x29\x98\x4d\xa7\xf9\x8c\xa0\xd9\x98\x28\x96\x16\
\x79\x03\x85\xa6\xcc\x38\x47\xd8\x32\x30\x63\x4d\x51\x5b\xb6\xe0\
\x3a\x4a\x4c\x39\x4a\xd0\x84\x7c\x26\x92\x11\x92\x3d\x4f\x15\x28\
\x07\x30\x83\xb9\x05\xa3\x97\x4b\xc5\x66\xa2\x6a\x07\x1e\x94\x19\
\xc8\x16\x5e\x47\x74\xa2\x0c\x7f\x19\xe1\x50\x53\xc8\x07\x31\xfa\
\xfa\x55\x24\x37\xd3\x9e\xaf\x28\xc9\xfb\xa9\x75\xcc\x4f\xa8\x19\
\xe7\x89\x9d\x04\xe7\x64\x28\x9d\x35\xdc\xce\x32\xe3\x22\x51\x46\
\xe7\x0a\x5b\x06\x0f\x9d\xdd\xe4\x50\x4b\xf6\x04\x75\x95\x74\xf4\
\x0c\x89\x8f\x17\x0c\x89\x3f\x12\x75\x9b\xaf\xc4\x0c\x9a\xc2\x67\
\xc5\xc5\x82\x6d\x36\x4b\x8a\x2a\x1d\x78\x19\x33\x30\xfa\x32\x61\
\xcb\xc0\x8c\xd5\x45\xa3\xb2\x27\x69\x42\x98\xc2\x90\x98\xe6\xeb\
\x68\x41\x4d\x61\x48\x9c\x98\x52\xd6\x18\xfe\x9f\x99\x36\x9f\xca\
\x25\x8d\x42\xcd\x60\xc2\xc5\xe4\xb4\xca\xd0\xb6\xac\x19\x97\x0b\
\x5b\x06\x9f\x0c\x6e\xdc\x0c\x64\x4f\xd4\x94\x78\x6a\xa9\x29\x9b\
\x0a\x66\xbc\x2c\x87\x32\xeb\xae\x52\x53\xe8\x33\x30\x83\x3e\x83\
\x36\x9f\xd1\x14\x66\xe4\x7d\xce\xbd\x29\x33\xae\x10\xb6\x0c\xcc\
\x18\x94\x87\xab\x2c\x7b\xb2\x26\x45\x4d\xa1\xb3\x25\xb1\x86\x29\
\x4c\xdc\xb8\x98\xe4\x8b\x00\xec\xb9\x2d\xfc\x8f\xdb\x81\xd3\x6c\
\xb0\x01\x0d\x33\x18\x4d\x95\xed\x33\x68\xe6\x8a\x2a\xcb\x0c\x72\
\x6b\x2b\x0b\x6f\xb2\x27\x6c\x5a\x74\xb6\x4c\xd4\x18\x09\x61\x0a\
\x49\x3c\xfa\x14\xb7\xa3\xb7\xe6\x24\xbf\x4b\x9a\xa9\xe7\x05\x4f\
\xf6\x6e\x82\x79\x06\x35\xc3\xb7\x19\x57\x0a\x5b\x06\x93\x5e\xaf\
\x66\x20\x7b\x52\x1f\xa2\x9d\xa7\xf9\x62\xd2\x44\x6a\x9a\x05\x20\
\x6a\x4a\x56\x9f\xc2\xcf\xc9\x3c\x83\x49\xdf\x35\x62\x57\x41\x86\
\xb8\x4a\x9f\x51\xd6\x8c\xab\x84\x2d\x03\x33\x56\x12\xde\x65\x4f\
\xec\x4b\x5c\x28\x37\x93\x9b\x46\x4d\x61\x9e\x92\xcc\x51\xd2\x0c\
\xa1\x76\xf0\xc5\x01\xe4\x96\xc8\x28\xd3\xf4\x55\x19\x4d\x95\x35\
\xe3\x6a\x61\xcb\x20\x95\xdf\x8a\x19\xc8\x9e\xdc\xb7\x48\xb3\xf0\
\x4d\x0e\xec\x1a\x27\x21\x49\x93\xc4\xcd\x4f\x8c\xa1\x66\x90\x28\
\x7c\x4e\xd0\x67\x30\xb4\xa5\x66\x0c\x4a\xd5\xa7\x99\x71\x89\x28\
\xaa\x3c\x33\x56\x14\xad\xc9\x06\xe0\x5b\xcc\xa6\xb9\xc1\x3c\xf5\
\x27\x88\x27\x05\x93\x47\x3a\x7a\x8c\xa1\x03\x67\xa5\x0f\x33\xd8\
\xd4\xbc\xbc\xc0\x8c\xac\xda\x91\x55\x33\xca\x9a\x41\xb3\x68\xcb\
\x60\xb5\x71\x05\xd1\xaa\x6c\x10\x6d\x88\x8e\x9e\x09\x1d\x69\x72\
\x16\x75\x58\xd9\xa3\xa3\x67\xae\x42\x9f\xc1\xb8\x7f\x0f\xc1\xcd\
\xa8\x32\xb4\x2d\x6b\xc6\xb5\xc2\x96\x31\x14\x33\x90\x0d\xa4\x2d\
\x25\x59\x62\xd6\x0d\xc8\x9c\x32\x4f\x61\xfd\xfc\x7a\x41\x33\xc5\
\xd0\x16\xe3\xb2\xe4\xd3\x0c\x56\x19\xa9\x99\x43\x91\x0d\xa6\x4d\
\xd1\x0c\xb1\x90\xb4\x89\xd8\x5b\xec\x27\xb6\x13\x0c\x93\xf3\x72\
\x53\x4c\xca\xa8\x4d\x36\xf6\x32\x66\x70\x6e\xbe\x69\xc8\x96\xc1\
\xf2\x2f\x0f\xc3\xd0\x64\x03\x6a\x5b\xdc\x18\x36\x49\xb0\x69\x62\
\x55\xc1\x3c\x23\x6f\xd2\x87\x98\xcb\xd8\xb8\xcb\x98\x41\xed\xbc\
\x59\xd8\x32\xde\x14\xa4\xf0\x87\x2a\x1b\xd4\x30\x44\x6d\x60\x6b\
\x11\x5f\xdb\x34\xc8\x0c\x3e\x1e\x46\xe7\xef\xc6\x4c\x0a\xbe\xa8\
\xb2\xcc\x60\x88\x3d\x74\x33\x90\x0d\x2c\x74\xed\x29\xdc\x78\x19\
\x26\x93\xc4\x2c\x22\xcc\xb8\x4d\xb8\xef\x07\xb6\x0a\x31\xc8\x08\
\x42\x36\xb8\xd0\x45\xa7\x6f\x63\x66\x46\x4f\x12\x33\x4f\x98\x71\
\x8b\xb0\xef\x7d\x5d\x30\x0c\x0f\x46\x36\xc0\xd0\x45\x0a\xc3\xc6\
\x0c\x7c\x7b\x29\xcb\xb8\x69\xc2\x8c\x5b\x85\x7d\x4f\x70\x66\x20\
\x1b\x64\xc8\x22\x17\x66\xe3\x75\x61\x86\xcf\x3a\x89\xab\x2c\x33\
\x82\x6a\xa6\x5c\xd9\x40\x43\xd6\x31\xc2\xc6\x6b\x21\x3f\xc6\x0c\
\x1f\x8d\x44\x9f\x61\x65\x83\x1d\x16\xef\x0a\xd6\xc7\xf3\x44\xee\
\x2b\xed\xbd\x16\x4c\x61\x5e\x73\xa7\xf3\xbb\x04\x36\x3e\x2f\x2a\
\x82\x95\x0d\x78\x98\x90\x3e\xc9\x12\x13\x48\xd6\x50\xd2\xde\x57\
\x14\xd2\x32\x83\x36\x78\x7b\x55\x5e\xba\x7a\xd4\xb4\x8d\x18\x94\
\xf1\xcd\x13\x66\x6c\x2b\x48\xb7\x04\xad\xb4\x27\x69\x18\x0c\x6a\
\xb2\xd2\x16\x8d\x8a\xf2\x82\xb0\xbb\xdb\xa3\x6a\xea\x6d\x91\x76\
\xb3\xf3\x60\xad\x85\x79\xcb\xb4\x2f\x7f\x89\x6a\x46\xcc\x15\xd2\
\x6e\xb8\x85\x9d\xf7\xac\x44\xf2\xc1\x4c\xd6\xf0\xf3\x96\x7b\xa3\
\x6a\x88\xe4\xa3\xcd\x5f\x01\x2b\x8c\x8c\x9a\xc8\x65\x91\xb2\x9f\
\x57\x44\xb5\xa4\xc3\x04\x7b\x68\x59\xab\xb8\x51\xec\x2b\x48\xd3\
\x8f\x90\xc6\x8d\xfb\x17\xa6\x87\x61\x1e\x5b\xff\x9d\x6e\x00\x00\
\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x00\x83\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x38\x49\x44\x41\x54\x58\x85\xed\xd4\xb1\x11\
\x00\x20\x08\x03\x40\x74\xff\x9d\x75\x01\x3c\x2a\xb4\xf0\xbf\xa4\
\x20\x4d\x2e\x11\xf0\xbb\x91\xdc\xd6\xcd\xcc\xd9\x1c\x46\xa9\xa3\
\x03\xd9\xcf\x23\x1d\x78\xce\x0e\x60\x07\xb0\x03\x00\x1b\x8a\x27\
\x05\x10\xf6\xe3\x4e\x43\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
\x60\x82\
\x00\x00\x1a\xb9\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\xb2\x00\x00\x00\xb2\x08\x02\x00\x00\x00\x69\xe8\x02\x3f\
\x00\x00\x01\x35\x69\x43\x43\x50\x49\x43\x43\x20\x50\x72\x6f\x66\
\x69\x6c\x65\x00\x00\x78\x9c\x63\x60\x60\x32\x61\x80\x82\xdc\xbc\
\x92\xa2\x20\x77\x27\x85\x88\xc8\x28\x05\xf6\x7b\x0c\x6c\x0c\x2c\
\x0c\x82\x0c\xda\x0c\x16\x89\xc9\xc5\x05\x0c\x98\x80\x11\xc1\xfc\
\x76\x0d\xc2\xbb\xac\x8b\x45\x1d\x21\xc0\x95\x92\x5a\x9c\x0c\xa4\
\xff\x00\x71\x65\x52\x76\x41\x09\xd0\xe8\x0a\x20\x5b\xa4\xbc\x04\
\xcc\xee\x01\xb1\x93\x0b\x8a\x40\xec\x05\x40\xb6\x68\x11\xd0\x81\
\x40\xf6\x0e\x90\x78\x3a\x84\x7d\x06\xc4\x4e\x82\xb0\x1f\x80\xd8\
\x45\x21\x41\xce\x40\xf6\x17\x20\xdb\x21\x1d\x89\x9d\x84\xc4\x86\
\xda\x0b\x02\xf2\xc5\x20\x8f\x7b\xba\x3a\x9b\x19\x5a\x9a\x99\xe9\
\x1a\xe9\x1a\x2a\x24\xe5\x24\x26\x67\x2b\x14\x27\x27\xe6\xa4\xa6\
\x90\xe1\x2b\x02\x00\x14\xc6\x10\x16\xb3\x18\x10\x1b\x33\x30\x30\
\x2d\x41\x88\x21\xc2\xb3\x24\xb5\xa2\x04\xc4\x72\x29\xca\x2f\x48\
\xca\xaf\xd0\x51\xf0\xcc\x4b\xd6\x43\xd1\x9f\xbf\x88\x81\xc1\xe2\
\x2b\xd0\x8c\x09\x08\xb1\xa4\x99\x0c\x0c\xdb\x5b\x19\x18\x24\x6e\
\x21\xc4\x54\x80\x61\xc7\xdf\xc2\xc0\xb0\xed\x7c\x72\x69\x51\x19\
\xd4\x19\x52\x40\x7c\x94\xf1\x0c\x73\x12\xeb\x64\x8e\x6c\xee\x6f\
\x02\x0e\xa2\x81\xd2\x26\x8a\x1f\x35\x27\x18\x49\x58\x4f\x72\x63\
\x0d\x2c\x8b\x7d\x9b\x5d\x50\xc5\xda\xb9\x69\x56\xcd\x9a\xcc\xfd\
\x75\x97\x0f\xbe\x34\xff\xff\x1f\x00\x81\x49\x5c\xa9\xc6\xc2\x24\
\x8e\x00\x00\x19\x3f\x49\x44\x41\x54\x78\x9c\xed\x9d\x7b\x74\x94\
\xc5\xdd\xc7\x7f\xf3\x3c\xcf\xee\x3e\x7b\xcb\x6d\xb3\xe6\x46\x08\
\x9b\x40\x48\xc8\x05\xc1\x80\x16\x4d\x41\x0e\x58\x24\x3d\xa5\xa0\
\x20\xc7\xa2\xb6\x88\x58\x7b\xb4\xbe\x5a\xad\x9e\xf2\x9e\x1e\xa8\
\x6f\x5b\x34\x54\x4f\x2d\xb6\xc8\x91\x42\x78\x9b\x16\xb1\x05\x4f\
\xad\x1c\x0d\xbc\x90\x22\xe5\x7e\x4f\x20\xb7\x4d\x08\x21\x09\x24\
\x61\x73\x21\xc9\xee\xe6\xb9\xcd\xfb\xc7\x98\x75\x4d\x26\xc9\x86\
\x5c\x71\xe7\x73\xf2\x47\xb2\x99\x9d\x99\xe7\x99\xef\x33\xf3\x9b\
\xdf\xfc\xe6\x19\x84\x31\x06\x06\xe3\xeb\x70\x63\x5d\x01\xc6\x78\
\x84\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\
\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\
\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\
\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\
\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\x81\xc9\x82\x41\
\x81\xc9\x82\x41\x41\x18\x7a\x16\x6c\x4b\xc1\x9d\x02\x42\x28\xd0\
\x94\xac\x51\x19\xbd\x19\x6a\x6f\xa1\x28\xca\x17\x5f\x7c\x21\x49\
\x12\xcf\xf3\x30\x18\x3d\x32\x46\x07\x8c\x31\x42\x48\x96\x65\xa3\
\xd1\x38\x77\xee\x5c\xf2\xe7\x80\xdf\x1a\xaa\x2c\xdc\x6e\xf7\xdb\
\x6f\xbf\xed\x72\xb9\x38\x8e\x63\x1d\xcf\xf8\x04\x21\x84\x31\x8e\
\x89\x89\x19\x3d\x59\x70\x1c\x17\x1a\x1a\x3a\x61\xc2\x84\xc7\x1f\
\x7f\x5c\xd3\x34\xd6\x5b\x8c\x37\x30\xc6\x1c\xc7\xfd\xe9\x4f\x7f\
\x12\x45\x31\xf0\x6f\x0d\x83\xc9\x29\x49\x52\x58\x58\x58\x76\x76\
\xf6\xd0\xb3\x62\x8c\x10\x5b\xb7\x6e\x95\x24\x29\xf0\xf4\xc3\x20\
\x0b\x00\x90\x65\x59\x55\x55\x4d\xd3\x38\x8e\xcd\x78\xc7\x17\xa4\
\x51\x06\x3b\xbe\x0f\x8f\x2c\x10\x42\x3c\xcf\x23\x84\x98\x2c\xc6\
\x1b\xb7\xd7\x28\xac\x15\x19\x14\x98\x2c\x18\x14\x98\x2c\x18\x14\
\x98\x2c\x18\x14\x98\x2c\x18\x14\x98\x2c\x18\x14\x98\x2c\x18\x14\
\x98\x2c\x18\x14\x98\x2c\x18\x14\x98\x2c\x18\x14\x98\x2c\x18\x14\
\x98\x2c\x18\x14\x98\x2c\x18\x14\x98\x2c\x18\x14\x98\x2c\x18\x14\
\x98\x2c\x18\x14\x86\x27\x0c\x67\x40\x34\x4d\xf3\x05\x08\x71\x1c\
\x37\x6a\x21\x9f\xfe\xe5\x92\xd8\xf4\x11\x02\x63\xac\x69\x1a\xdc\
\x6e\xd8\xcb\x78\x63\xc4\x65\x41\x82\xc6\x9c\x4e\xe7\xe1\xc3\x87\
\x31\xc6\x18\xe3\x59\xb3\x66\xcd\x98\x31\x63\xa4\xcb\x25\x21\xce\
\xfb\xf7\xef\x77\x3a\x9d\x7a\xbd\x5e\xa7\xd3\x2d\x5d\xba\x34\x34\
\x34\x74\x84\x8a\x23\xf1\x69\x23\x94\xf9\xe8\x33\xe2\xb2\x20\x0f\
\x6b\x5d\x5d\xdd\x9e\x3d\x7b\x54\x55\x55\x55\xd5\x6c\x36\x8f\xb4\
\x2c\x88\xfe\x10\x42\xc7\x8e\x1d\x2b\x28\x28\xb0\x5a\xad\x06\x83\
\x21\x3b\x3b\x3b\x34\x34\x34\xc0\x88\xf8\xc1\x22\xcb\xf2\xd9\xb3\
\x67\xdd\x6e\x77\x62\x62\x62\x42\x42\xc2\xb0\xe7\x3f\xca\x8c\xd2\
\x20\x22\x08\x82\xc5\x62\x21\x61\xc0\x7a\xbd\x7e\x74\x0a\x05\x00\
\x51\x14\xad\x56\xab\xc5\x62\x31\x18\x0c\x23\xf7\x34\xab\xaa\xba\
\x6b\xd7\xae\x0f\x3f\xfc\x50\x92\xa4\x84\x84\x84\x57\x5e\x79\x65\
\xea\xd4\xa9\x77\x74\xc0\xf3\x28\xd5\x1b\x63\xac\x76\x33\x9a\xbb\
\x8c\x34\x4d\x1b\x85\x72\x65\x59\xfe\xfc\xf3\xcf\x05\x41\x88\x88\
\x88\x28\x2f\x2f\xbf\x70\xe1\x02\xdc\xe1\x1b\xec\xee\x54\x39\x8f\
\x2b\x10\x42\x56\xab\x55\x51\x14\xd2\x1d\x0e\x6a\xa3\xce\xf8\x84\
\xc9\x62\x18\xd0\xeb\xf5\xcf\x3e\xfb\xac\xcd\x66\xf3\x7a\xbd\x0b\
\x16\x2c\xb8\xff\xfe\xfb\xc7\xba\x46\x43\xe5\x4b\xdb\x02\xc3\x97\
\x36\x1a\x82\x3b\xb8\xeb\x1b\x2b\x10\x42\x77\xdf\x7d\xf7\xb6\x6d\
\xdb\x30\xc6\x82\x20\x90\xe1\xe3\x8e\x1e\x44\x04\x15\xab\x3c\xe2\
\x11\x20\x72\x19\x1a\xd6\x38\x34\x4a\x5d\x08\x71\x2a\x20\x84\xc8\
\xde\x59\x32\xf6\x0f\xd6\xab\xe1\x73\x18\x90\xbd\x53\x3e\x03\xe2\
\x36\x5a\xc5\xdf\xf7\xe0\x
gitextract_lbrlybs_/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── 0bdsim-bug-report.md
│ │ └── 1bdedit-bug-report.md
│ └── workflows/
│ ├── master.yml
│ └── publish.yml
├── .gitignore
├── CONTRIBUTING.md
├── Icons.qrc
├── LICENSE
├── Makefile
├── README.md
├── bdsim/
│ ├── __init__.py
│ ├── bdedit/
│ │ ├── Icons.py
│ │ ├── Icons.qrc
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── TechReport.md
│ │ ├── __init__.py
│ │ ├── bdedit.py
│ │ ├── block.py
│ │ ├── block_connector_block.py
│ │ ├── block_graphics_block.py
│ │ ├── block_graphics_socket.py
│ │ ├── block_graphics_wire.py
│ │ ├── block_importer.py
│ │ ├── block_main_block.py
│ │ ├── block_param_window.py
│ │ ├── block_socket.py
│ │ ├── block_wire.py
│ │ ├── docs/
│ │ │ ├── .buildinfo
│ │ │ ├── _sources/
│ │ │ │ ├── bdedit.rst.txt
│ │ │ │ ├── index.rst.txt
│ │ │ │ └── modules.rst.txt
│ │ │ ├── _static/
│ │ │ │ ├── alabaster.css
│ │ │ │ ├── basic.css
│ │ │ │ ├── css/
│ │ │ │ │ ├── badge_only.css
│ │ │ │ │ └── theme.css
│ │ │ │ ├── custom.css
│ │ │ │ ├── doctools.js
│ │ │ │ ├── documentation_options.js
│ │ │ │ ├── jquery-3.5.1.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── js/
│ │ │ │ │ ├── badge_only.js
│ │ │ │ │ └── theme.js
│ │ │ │ ├── language_data.js
│ │ │ │ ├── pygments.css
│ │ │ │ ├── searchtools.js
│ │ │ │ ├── underscore-1.13.1.js
│ │ │ │ └── underscore.js
│ │ │ ├── bdedit.html
│ │ │ ├── genindex.html
│ │ │ ├── index.html
│ │ │ ├── modules.html
│ │ │ ├── objects.inv
│ │ │ ├── py-modindex.html
│ │ │ ├── search.html
│ │ │ └── searchindex.js
│ │ ├── docstring.md
│ │ ├── floating_label.py
│ │ ├── floating_label_graphics.py
│ │ ├── grouping_box.py
│ │ ├── grouping_box_graphics.py
│ │ ├── interface.py
│ │ ├── interface_graphics_scene.py
│ │ ├── interface_graphics_view.py
│ │ ├── interface_manager.py
│ │ ├── interface_scene.py
│ │ ├── interface_scene_history.py
│ │ └── interface_serialize.py
│ ├── bdrun.py
│ ├── bin/
│ │ └── stubgen.py
│ ├── blockdiagram.py
│ ├── blockdiagram.pyi
│ ├── blocks/
│ │ ├── IO/
│ │ │ ├── Firmata.py
│ │ │ └── README.md
│ │ ├── Icons/
│ │ │ ├── README.md
│ │ │ └── icons.sh
│ │ ├── README.md
│ │ ├── __init__.py
│ │ ├── connections.py
│ │ ├── discrete.py
│ │ ├── displays.py
│ │ ├── functions.py
│ │ ├── linalg.py
│ │ ├── sinks.py
│ │ ├── sources.py
│ │ ├── spatial.py
│ │ ├── transfers.py
│ │ └── vision.py
│ ├── components.py
│ ├── graphics.py
│ ├── run_realtime.py
│ ├── run_sim.py
│ └── tk_editor/
│ ├── bdeditor.py
│ ├── edit.py
│ ├── editor.py
│ └── editor2.py
├── docs/
│ ├── Makefile
│ ├── make.bat
│ └── source/
│ ├── bdsim.blocks.rst
│ ├── bdsim.rst
│ ├── conf.py
│ ├── exts/
│ │ └── blockname.py
│ ├── index.rst
│ ├── internals.rst
│ └── modules.rst
├── docs-aside/
│ ├── .buildinfo
│ ├── .nojekyll
│ ├── _modules/
│ │ ├── bdsim/
│ │ │ ├── bdsim.html
│ │ │ ├── blockdiagram.html
│ │ │ ├── blocks/
│ │ │ │ ├── connections.html
│ │ │ │ ├── discrete.html
│ │ │ │ ├── functions.html
│ │ │ │ ├── linalg.html
│ │ │ │ ├── robots.html
│ │ │ │ ├── sinks.html
│ │ │ │ ├── sources.html
│ │ │ │ └── transfers.html
│ │ │ ├── components.html
│ │ │ └── graphics.html
│ │ ├── index.html
│ │ └── roboticstoolbox/
│ │ └── blocks/
│ │ ├── arm.html
│ │ ├── mobile.html
│ │ └── uav.html
│ ├── _sources/
│ │ ├── bdsim.blocks.rst.txt
│ │ ├── bdsim.rst.txt
│ │ ├── index.rst.txt
│ │ ├── internals.rst.txt
│ │ └── modules.rst.txt
│ ├── _static/
│ │ ├── alabaster.css
│ │ ├── basic.css
│ │ ├── css/
│ │ │ ├── badge_only.css
│ │ │ └── theme.css
│ │ ├── custom.css
│ │ ├── doctools.js
│ │ ├── documentation_options.js
│ │ ├── fonts/
│ │ │ └── FontAwesome.otf
│ │ ├── graphviz.css
│ │ ├── jquery-3.4.1.js
│ │ ├── jquery-3.5.1.js
│ │ ├── jquery.js
│ │ ├── js/
│ │ │ ├── badge_only.js
│ │ │ └── theme.js
│ │ ├── language_data.js
│ │ ├── pygments.css
│ │ ├── searchtools.js
│ │ ├── underscore-1.3.1.js
│ │ └── underscore.js
│ ├── bdsim.blocks.html
│ ├── bdsim.html
│ ├── genindex.html
│ ├── index.html
│ ├── internals.html
│ ├── modules.html
│ ├── objects.inv
│ ├── py-modindex.html
│ ├── search.html
│ └── searchindex.js
├── examples/
│ ├── README.md
│ ├── RVC2/
│ │ ├── README.md
│ │ ├── rvc4_11.py
│ │ ├── rvc4_2.py
│ │ ├── rvc4_4.py
│ │ ├── rvc4_6.py
│ │ └── rvc4_8.py
│ ├── deriv.py
│ ├── eg1.bd
│ ├── eg1.py
│ ├── eg1_zoh.py
│ ├── pid.py
│ ├── rt_step.py
│ ├── sine+sampler.py
│ ├── sine+sampler2.py
│ ├── subsys.py
│ ├── vanderpol.py
│ ├── viewsim.py
│ └── waveform.py
├── figs/
│ ├── data_structures.ezdraw
│ └── plugs_and_wires.ezdraw
├── pyproject.toml
└── tests/
├── __init__.py
├── test_bdsim.py
├── test_blockdiagram.py
├── test_components.py
├── test_connections.py
├── test_discrete.py
├── test_functions.py
├── test_linalg.py
├── test_sinks.py
├── test_sources.py
├── test_spatial.py
└── test_transfers.py
SYMBOL INDEX (1600 symbols across 79 files)
FILE: bdsim/bdedit/Icons.py
function qInitResources (line 3411) | def qInitResources():
function qCleanupResources (line 3417) | def qCleanupResources():
FILE: bdsim/bdedit/bdedit.py
function main (line 24) | def main():
FILE: bdsim/bdedit/block.py
class Block (line 38) | class Block(Serializable):
method __init__ (line 55) | def __init__(self, scene, window, pos=(0, 0)):
method _createBlock (line 171) | def _createBlock(self, inputs, outputs):
method _createParamWindow (line 207) | def _createParamWindow(self):
method makeInputSockets (line 226) | def makeInputSockets(self, inputs, position, socketType=INPUT):
method makeOutputSockets (line 279) | def makeOutputSockets(self, outputs, position, socketType=OUTPUT):
method toggleParamWindow (line 328) | def toggleParamWindow(self):
method closeParamWindow (line 341) | def closeParamWindow(self):
method updateSocketSigns (line 352) | def updateSocketSigns(self):
method setFocusOfBlocks (line 394) | def setFocusOfBlocks(self):
method pos (line 411) | def pos(self):
method setPos (line 422) | def setPos(self, x, y):
method setTitle (line 435) | def setTitle(self, name=None):
method setDefaultTitle (line 480) | def setDefaultTitle(self, name, increment=None):
method getSocketPosition (line 529) | def getSocketPosition(self, index, position):
method updateSocketPositions (line 573) | def updateSocketPositions(self):
method updateConnectedEdges (line 609) | def updateConnectedEdges(self):
method updateWireRoutingLogic (line 622) | def updateWireRoutingLogic(self):
method removeSockets (line 657) | def removeSockets(self, type):
method remove (line 674) | def remove(self):
method serialize (line 720) | def serialize(self):
method deserialize (line 788) | def deserialize(self, data, hashmap={}):
function block (line 967) | def block(cls):
function blockname (line 987) | def blockname(cls):
FILE: bdsim/bdedit/block_connector_block.py
class Connector (line 13) | class Connector(Block):
method __init__ (line 33) | def __init__(self, scene, window, title="Unnamed Connector Block"):
FILE: bdsim/bdedit/block_graphics_block.py
class GraphicsBlock (line 30) | class GraphicsBlock(QGraphicsItem):
method __init__ (line 38) | def __init__(self, block, parent=None):
method initUI (line 107) | def initUI(self):
method initTitle (line 116) | def initTitle(self):
method titleLength (line 126) | def titleLength(self):
method getTitle (line 146) | def getTitle(self):
method setTitle (line 157) | def setTitle(self):
method checkMode (line 179) | def checkMode(self):
method updateMode (line 201) | def updateMode(self, value):
method checkBlockHeight (line 215) | def checkBlockHeight(self):
method hoverEnterEvent (line 262) | def hoverEnterEvent(self, event):
method boundingRect (line 275) | def boundingRect(self):
method paint (line 290) | def paint(self, painter, style, widget=None):
method mousePressEvent (line 385) | def mousePressEvent(self, event):
method mouseReleaseEvent (line 415) | def mouseReleaseEvent(self, event):
class GraphicsConnectorBlock (line 427) | class GraphicsConnectorBlock(QGraphicsItem):
method __init__ (line 435) | def __init__(self, block, parent=None):
method initUI (line 487) | def initUI(self):
method boundingRect (line 499) | def boundingRect(self):
method paint (line 529) | def paint(self, painter, style, widget=None):
method mousePressEvent (line 597) | def mousePressEvent(self, event):
method mouseReleaseEvent (line 620) | def mouseReleaseEvent(self, event):
FILE: bdsim/bdedit/block_graphics_socket.py
class GraphicsSocket (line 39) | class GraphicsSocket(QGraphicsItem):
method __init__ (line 49) | def __init__(self, socket):
method setBrush (line 96) | def setBrush(self):
method paint (line 105) | def paint(self, painter, style, widget=None):
method paintPlus (line 220) | def paintPlus(self, multi):
method paintMinus (line 238) | def paintMinus(self, multi):
method paintMultiply (line 254) | def paintMultiply(self, multi):
method paintDivide (line 272) | def paintDivide(self, multi):
method charDimensions (line 293) | def charDimensions(self):
method getSignPath (line 322) | def getSignPath(self, sign, multi):
method shouldSocketsBeHidden (line 346) | def shouldSocketsBeHidden(self):
method boundingRect (line 362) | def boundingRect(self):
FILE: bdsim/bdedit/block_graphics_wire.py
class GraphicsWire (line 34) | class GraphicsWire(QGraphicsPathItem):
method __init__ (line 67) | def __init__(self, wire):
method initUI (line 117) | def initUI(self):
method setSource (line 131) | def setSource(self, x, y):
method setDestination (line 145) | def setDestination(self, x, y):
method setSourceOrientation (line 159) | def setSourceOrientation(self, orientation):
method setDestinationOrientation (line 172) | def setDestinationOrientation(self, orientation):
method shape (line 187) | def shape(self):
method paint (line 191) | def paint(self, painter, style, widget=None):
method polyPath (line 241) | def polyPath(self):
method updatePath (line 271) | def updatePath(self):
method updateCursorSegments (line 281) | def updateCursorSegments(self, segments):
method updateLineSegments (line 312) | def updateLineSegments(self):
method updateWireCoordinates (line 384) | def updateWireCoordinates(self, new_coordinates):
method handleAt (line 423) | def handleAt(self, point):
method hoverMoveEvent (line 438) | def hoverMoveEvent(self, moveEvent):
method hoverLeaveEvent (line 450) | def hoverLeaveEvent(self, moveEvent):
method mousePressEvent (line 458) | def mousePressEvent(self, mouseEvent):
method mouseMoveEvent (line 472) | def mouseMoveEvent(self, mouseEvent):
method mouseReleaseEvent (line 488) | def mouseReleaseEvent(self, mouseEvent):
method interactiveResize (line 506) | def interactiveResize(self, mousePos):
method adjustCustomRoutingWireCoordinates (line 583) | def adjustCustomRoutingWireCoordinates(self):
class GraphicsWireDirect (line 637) | class GraphicsWireDirect(GraphicsWire):
method updatePath (line 647) | def updatePath(self):
class GraphicsWireBezier (line 659) | class GraphicsWireBezier(GraphicsWire):
method updatePath (line 670) | def updatePath(self):
class GraphicsWireStep (line 699) | class GraphicsWireStep(GraphicsWire):
method updatePath (line 714) | def updatePath(self):
method wireRoutingLogic (line 734) | def wireRoutingLogic(self):
FILE: bdsim/bdedit/block_importer.py
function import_blocks (line 19) | def import_blocks(scene, window):
FILE: bdsim/bdedit/block_main_block.py
class Main (line 14) | class Main(Block):
method __init__ (line 18) | def __init__(self, scene, window, file_name=None, name="Main Block", p...
FILE: bdsim/bdedit/block_param_window.py
class ParamWindow (line 42) | class ParamWindow(QWidget):
method __init__ (line 55) | def __init__(self, block, parent=None):
method initUI (line 97) | def initUI(self):
method displayDocumentationURL (line 116) | def displayDocumentationURL(self):
method closeQMessageBox (line 124) | def closeQMessageBox(self):
method displayPopUpMessage (line 146) | def displayPopUpMessage(self, title, text, messageType):
method buildParamWindow (line 210) | def buildParamWindow(self):
method updateBlockParameters (line 320) | def updateBlockParameters(self):
method getSafeValue (line 758) | def getSafeValue(inputValue, requiredType, requiredOptions):
FILE: bdsim/bdedit/block_socket.py
class Socket (line 35) | class Socket(Serializable):
method __init__ (line 54) | def __init__(
method getSocketPosition (line 92) | def getSocketPosition(self):
method setConnectedEdge (line 105) | def setConnectedEdge(self, wire):
method hasEdge (line 117) | def hasEdge(self):
method removeWire (line 130) | def removeWire(self, wire):
method removeAllWires (line 145) | def removeAllWires(self):
method isInputSocket (line 156) | def isInputSocket(self):
method isOutputSocket (line 176) | def isOutputSocket(self):
method updateSocketSign (line 195) | def updateSocketSign(self, value):
method removeSockets (line 211) | def removeSockets(self, type):
method serialize (line 255) | def serialize(self):
method deserialize (line 277) | def deserialize(self, data, hashmap={}):
FILE: bdsim/bdedit/block_wire.py
class Wire (line 33) | class Wire(Serializable):
method __init__ (line 57) | def __init__(self, scene, start_socket=None, end_socket=None, wire_typ...
method start_socket (line 94) | def start_socket(self):
method start_socket (line 106) | def start_socket(self, value):
method end_socket (line 128) | def end_socket(self):
method end_socket (line 140) | def end_socket(self, value):
method wire_type (line 162) | def wire_type(self):
method wire_type (line 174) | def wire_type(self, value):
method setFocusOfWire (line 209) | def setFocusOfWire(self):
method updatePositions (line 225) | def updatePositions(self):
method remove_from_sockets (line 264) | def remove_from_sockets(self):
method remove (line 273) | def remove(self):
method serialize (line 314) | def serialize(self):
method deserialize (line 342) | def deserialize(self, data, hashmap={}):
method checkIntersections (line 388) | def checkIntersections(self):
FILE: bdsim/bdedit/docs/_static/doctools.js
function highlight (line 74) | function highlight(node, addItems) {
FILE: bdsim/bdedit/docs/_static/jquery-3.5.1.js
function DOMEval (line 103) | function DOMEval( code, node, doc ) {
function toType (line 133) | function toType( obj ) {
function isArrayLike (line 503) | function isArrayLike( obj ) {
function Sizzle (line 755) | function Sizzle( selector, context, results, seed ) {
function createCache (line 903) | function createCache() {
function markFunction (line 923) | function markFunction( fn ) {
function assert (line 932) | function assert( fn ) {
function addHandle (line 956) | function addHandle( attrs, handler ) {
function siblingCheck (line 971) | function siblingCheck( a, b ) {
function createInputPseudo (line 997) | function createInputPseudo( type ) {
function createButtonPseudo (line 1008) | function createButtonPseudo( type ) {
function createDisabledPseudo (line 1019) | function createDisabledPseudo( disabled ) {
function createPositionalPseudo (line 1075) | function createPositionalPseudo( fn ) {
function testContext (line 1098) | function testContext( context ) {
function setFilters (line 2309) | function setFilters() {}
function toSelector (line 2383) | function toSelector( tokens ) {
function addCombinator (line 2393) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2460) | function elementMatcher( matchers ) {
function multipleContexts (line 2474) | function multipleContexts( selector, contexts, results ) {
function condense (line 2483) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2504) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2604) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2667) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function nodeName (line 3025) | function nodeName( elem, name ) {
function winnow (line 3035) | function winnow( elements, qualifier, not ) {
function sibling (line 3330) | function sibling( cur, dir ) {
function createOptions (line 3423) | function createOptions( options ) {
function Identity (line 3648) | function Identity( v ) {
function Thrower (line 3651) | function Thrower( ex ) {
function adoptValue (line 3655) | function adoptValue( value, resolve, reject, noValue ) {
function resolve (line 3748) | function resolve( depth, deferred, handler, special ) {
function completed (line 4113) | function completed() {
function fcamelCase (line 4208) | function fcamelCase( _all, letter ) {
function camelCase (line 4215) | function camelCase( string ) {
function Data (line 4232) | function Data() {
function getData (line 4401) | function getData( data ) {
function dataAttr (line 4426) | function dataAttr( elem, key, data ) {
function adjustCSS (line 4738) | function adjustCSS( elem, prop, valueParts, tween ) {
function getDefaultDisplay (line 4806) | function getDefaultDisplay( elem ) {
function showHide (line 4829) | function showHide( elements, show ) {
function getAll (line 4961) | function getAll( context, tag ) {
function setGlobalEval (line 4986) | function setGlobalEval( elems, refElements ) {
function buildFragment (line 5002) | function buildFragment( elems, context, scripts, selection, ignored ) {
function returnTrue (line 5097) | function returnTrue() {
function returnFalse (line 5101) | function returnFalse() {
function expectSync (line 5111) | function expectSync( elem, type ) {
function safeActiveElement (line 5118) | function safeActiveElement() {
function on (line 5124) | function on( elem, types, selector, data, fn, one ) {
function leverageNative (line 5612) | function leverageNative( el, type, expectSync ) {
function manipulationTarget (line 5976) | function manipulationTarget( elem, content ) {
function disableScript (line 5987) | function disableScript( elem ) {
function restoreScript (line 5991) | function restoreScript( elem ) {
function cloneCopyEvent (line 6001) | function cloneCopyEvent( src, dest ) {
function fixInput (line 6034) | function fixInput( src, dest ) {
function domManip (line 6047) | function domManip( collection, args, callback, ignored ) {
function remove (line 6139) | function remove( elem, selector, keepData ) {
function computeStyleTests (line 6453) | function computeStyleTests() {
function roundPixelMeasures (line 6497) | function roundPixelMeasures( measure ) {
function curCSS (line 6571) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 6624) | function addGetHookIf( conditionFn, hookFn ) {
function vendorPropName (line 6649) | function vendorPropName( name ) {
function finalPropName (line 6664) | function finalPropName( name ) {
function setPositiveNumber (line 6690) | function setPositiveNumber( _elem, value, subtract ) {
function boxModelAdjustment (line 6702) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
function getWidthOrHeight (line 6770) | function getWidthOrHeight( elem, dimension, extra ) {
function Tween (line 7146) | function Tween( elem, options, prop, end, easing ) {
function schedule (line 7269) | function schedule() {
function createFxNow (line 7282) | function createFxNow() {
function genFx (line 7290) | function genFx( type, includeWidth ) {
function createTween (line 7310) | function createTween( value, prop, animation ) {
function defaultPrefilter (line 7324) | function defaultPrefilter( elem, props, opts ) {
function propFilter (line 7496) | function propFilter( props, specialEasing ) {
function Animation (line 7533) | function Animation( elem, properties, options ) {
function stripAndCollapse (line 8248) | function stripAndCollapse( value ) {
function getClass (line 8254) | function getClass( elem ) {
function classesToArray (line 8258) | function classesToArray( value ) {
function buildParams (line 8885) | function buildParams( prefix, obj, traditional, add ) {
function addToPrefiltersOrTransports (line 9039) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 9073) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 9102) | function ajaxExtend( target, src ) {
function ajaxHandleResponses (line 9122) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 9180) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function done (line 9696) | function done( status, nativeStatusText, responses, headers ) {
FILE: bdsim/bdedit/docs/_static/jquery.js
function b (line 2) | function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e...
function w (line 2) | function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof...
function p (line 2) | function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e...
function se (line 2) | function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeTy...
function ue (line 2) | function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cac...
function le (line 2) | function le(e){return e[S]=!0,e}
function ce (line 2) | function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(...
function fe (line 2) | function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[...
function pe (line 2) | function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourc...
function de (line 2) | function de(t){return function(e){return"input"===e.nodeName.toLowerCase...
function he (line 2) | function he(n){return function(e){var t=e.nodeName.toLowerCase();return(...
function ge (line 2) | function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e....
function ve (line 2) | function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,...
function ye (line 2) | function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
function me (line 2) | function me(){}
function xe (line 2) | function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
function be (line 2) | function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r...
function we (line 2) | function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r-...
function Te (line 2) | function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(...
function Ce (line 2) | function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)...
function Ee (line 2) | function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.r...
function A (line 2) | function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerC...
function D (line 2) | function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,...
function O (line 2) | function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}
function R (line 2) | function R(e){return e}
function M (line 2) | function M(e){throw e}
function I (line 2) | function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n...
function l (line 2) | function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(...
function B (line 2) | function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventLi...
function U (line 2) | function U(e,t){return t.toUpperCase()}
function X (line 2) | function X(e){return e.replace(_,"ms-").replace(z,U)}
function G (line 2) | function G(){this.expando=S.expando+G.uid++}
function Z (line 2) | function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.r...
function se (line 2) | function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:functio...
function le (line 2) | function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[...
function ve (line 2) | function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagNa...
function ye (line 2) | function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",...
function xe (line 2) | function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),...
function Ce (line 2) | function Ce(){return!0}
function Ee (line 2) | function Ee(){return!1}
function Se (line 2) | function Se(e,t){return e===function(){try{return E.activeElement}catch(...
function ke (line 2) | function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"...
function Ae (line 2) | function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handle...
function qe (line 2) | function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"...
function Le (line 2) | function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}
function He (line 2) | function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.sli...
function Oe (line 2) | function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=...
function Pe (line 2) | function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],...
function Re (line 2) | function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
function Be (line 2) | function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n....
function $e (line 2) | function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(...
function e (line 2) | function e(){if(l){u.style.cssText="position:absolute;left:-11111px;widt...
function t (line 2) | function t(e){return Math.round(parseFloat(e))}
function Xe (line 2) | function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=fun...
function Je (line 2) | function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[...
function Ke (line 2) | function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border...
function Ze (line 2) | function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-bo...
function et (line 2) | function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}
function st (line 2) | function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnima...
function ut (line 2) | function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}
function lt (line 2) | function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin...
function ct (line 2) | function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["...
function ft (line 2) | function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().alw...
function vt (line 2) | function vt(e){return(e.match(P)||[]).join(" ")}
function yt (line 2) | function yt(e){return e.getAttribute&&e.getAttribute("class")||""}
function mt (line 2) | function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)|...
function Dt (line 2) | function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r|...
function Ft (line 2) | function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var ...
function Bt (line 2) | function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!...
function $t (line 2) | function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)voi...
function l (line 2) | function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=vo...
FILE: bdsim/bdedit/docs/_static/js/badge_only.js
function r (line 1) | function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{...
FILE: bdsim/bdedit/docs/_static/js/theme.js
function t (line 1) | function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{...
FILE: bdsim/bdedit/docs/_static/language_data.js
function splitQuery (line 278) | function splitQuery(query) {
FILE: bdsim/bdedit/docs/_static/searchtools.js
function splitQuery (line 47) | function splitQuery(query) {
function pulse (line 117) | function pulse() {
function displayNextItem (line 247) | function displayNextItem() {
FILE: bdsim/bdedit/docs/_static/underscore-1.13.1.js
function restArguments (line 64) | function restArguments(func, startIndex) {
function isObject (line 88) | function isObject(obj) {
function isNull (line 94) | function isNull(obj) {
function isUndefined (line 99) | function isUndefined(obj) {
function isBoolean (line 104) | function isBoolean(obj) {
function isElement (line 109) | function isElement(obj) {
function tagTester (line 114) | function tagTester(name) {
function ie10IsDataView (line 162) | function ie10IsDataView(obj) {
function has$1 (line 173) | function has$1(obj, key) {
function isFinite$1 (line 192) | function isFinite$1(obj) {
function isNaN$1 (line 197) | function isNaN$1(obj) {
function constant (line 202) | function constant(value) {
function createSizePropertyCheck (line 209) | function createSizePropertyCheck(getSizeProperty) {
function shallowProperty (line 217) | function shallowProperty(key) {
function isTypedArray (line 232) | function isTypedArray(obj) {
function emulatedSet (line 248) | function emulatedSet(keys) {
function collectNonEnumProps (line 263) | function collectNonEnumProps(obj, keys) {
function keys (line 283) | function keys(obj) {
function isEmpty (line 295) | function isEmpty(obj) {
function isMatch (line 307) | function isMatch(object, attrs) {
function _$1 (line 321) | function _$1(obj) {
function toBufferView (line 344) | function toBufferView(bufferSource) {
function eq (line 356) | function eq(a, b, aStack, bStack) {
function deepEq (line 371) | function deepEq(a, b, aStack, bStack) {
function isEqual (line 476) | function isEqual(a, b) {
function allKeys (line 481) | function allKeys(obj) {
function ie11fingerprint (line 494) | function ie11fingerprint(methods) {
function values (line 533) | function values(obj) {
function pairs (line 545) | function pairs(obj) {
function invert (line 556) | function invert(obj) {
function functions (line 566) | function functions(obj) {
function createAssigner (line 575) | function createAssigner(keysFunc, defaults) {
function ctor (line 605) | function ctor() {
function baseCreate (line 610) | function baseCreate(prototype) {
function create (line 623) | function create(prototype, props) {
function clone (line 630) | function clone(obj) {
function tap (line 638) | function tap(obj, interceptor) {
function toPath$1 (line 645) | function toPath$1(path) {
function toPath (line 652) | function toPath(path) {
function deepGet (line 657) | function deepGet(obj, path) {
function get (line 670) | function get(object, path, defaultValue) {
function has (line 678) | function has(obj, path) {
function identity (line 690) | function identity(value) {
function matcher (line 696) | function matcher(attrs) {
function property (line 705) | function property(path) {
function optimizeCb (line 715) | function optimizeCb(func, context, argCount) {
function baseIteratee (line 737) | function baseIteratee(value, context, argCount) {
function iteratee (line 747) | function iteratee(value, context) {
function cb (line 754) | function cb(value, context, argCount) {
function mapObject (line 761) | function mapObject(obj, iteratee, context) {
function noop (line 774) | function noop(){}
function propertyOf (line 777) | function propertyOf(obj) {
function times (line 785) | function times(n, iteratee, context) {
function random (line 793) | function random(min, max) {
function createEscaper (line 808) | function createEscaper(map) {
function escapeChar (line 867) | function escapeChar(match) {
function template (line 882) | function template(text, settings, oldSettings) {
function result (line 950) | function result(obj, path, fallback) {
function uniqueId (line 970) | function uniqueId(prefix) {
function chain (line 976) | function chain(obj) {
function executeBound (line 985) | function executeBound(sourceFunc, boundFunc, context, callingContext, ar...
function flatten$1 (line 1030) | function flatten$1(input, depth, strict, output) {
function memoize (line 1071) | function memoize(func, hasher) {
function throttle (line 1099) | function throttle(func, wait, options) {
function debounce (line 1144) | function debounce(func, wait, immediate) {
function wrap (line 1181) | function wrap(func, wrapper) {
function negate (line 1186) | function negate(predicate) {
function compose (line 1194) | function compose() {
function after (line 1206) | function after(times, func) {
function before (line 1216) | function before(times, func) {
function findKey (line 1232) | function findKey(obj, predicate, context) {
function createPredicateIndexFinder (line 1242) | function createPredicateIndexFinder(dir) {
function sortedIndex (line 1262) | function sortedIndex(array, obj, iteratee, context) {
function createIndexFinder (line 1274) | function createIndexFinder(dir, predicateFind, sortedIndex) {
function find (line 1309) | function find(obj, predicate, context) {
function findWhere (line 1317) | function findWhere(obj, attrs) {
function each (line 1325) | function each(obj, iteratee, context) {
function map (line 1342) | function map(obj, iteratee, context) {
function createReduce (line 1355) | function createReduce(dir) {
function filter (line 1387) | function filter(obj, predicate, context) {
function reject (line 1397) | function reject(obj, predicate, context) {
function every (line 1402) | function every(obj, predicate, context) {
function some (line 1414) | function some(obj, predicate, context) {
function contains (line 1426) | function contains(obj, item, fromIndex, guard) {
function pluck (line 1456) | function pluck(obj, key) {
function where (line 1462) | function where(obj, attrs) {
function max (line 1467) | function max(obj, iteratee, context) {
function min (line 1492) | function min(obj, iteratee, context) {
function sample (line 1520) | function sample(obj, n, guard) {
function shuffle (line 1539) | function shuffle(obj) {
function sortBy (line 1544) | function sortBy(obj, iteratee, context) {
function group (line 1565) | function group(behavior, partition) {
function toArray (line 1604) | function toArray(obj) {
function size (line 1616) | function size(obj) {
function keyInObj (line 1623) | function keyInObj(value, key, obj) {
function initial (line 1665) | function initial(array, n, guard) {
function first (line 1671) | function first(array, n, guard) {
function rest (line 1680) | function rest(array, n, guard) {
function last (line 1686) | function last(array, n, guard) {
function compact (line 1693) | function compact(array) {
function flatten (line 1699) | function flatten(array, depth) {
function uniq (line 1722) | function uniq(array, isSorted, iteratee, context) {
function intersection (line 1757) | function intersection(array) {
function unzip (line 1774) | function unzip(array) {
function object (line 1791) | function object(list, values) {
function range (line 1806) | function range(start, stop, step) {
function chunk (line 1827) | function chunk(array, count) {
function chainResult (line 1838) | function chainResult(instance, obj) {
function mixin (line 1843) | function mixin(obj) {
FILE: bdsim/bdedit/docs/_static/underscore.js
function j (line 6) | function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math...
function _ (line 6) | function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}
function w (line 6) | function w(n){return void 0===n}
function A (line 6) | function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}
function x (line 6) | function x(n){var r="[object "+n+"]";return function(n){return a.call(n)...
function W (line 6) | function W(n,r){return null!=n&&f.call(n,r)}
function $ (line 6) | function $(n){return O(n)&&y(n)}
function C (line 6) | function C(n){return function(){return n}}
function K (line 6) | function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>...
function J (line 6) | function J(n){return function(r){return null==r?void 0:r[n]}}
function Z (line 6) | function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]...
function nn (line 6) | function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in ...
function rn (line 6) | function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Ob...
function tn (line 6) | function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wr...
function en (line 6) | function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}
function on (line 6) | function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r...
function an (line 6) | function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);retur...
function fn (line 6) | function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=a...
function jn (line 6) | function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[...
function _n (line 6) | function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[...
function wn (line 6) | function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}
function An (line 6) | function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Obje...
function Mn (line 6) | function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.p...
function En (line 6) | function En(n){return _(n)?U(n)?n.slice():xn({},n):n}
function Bn (line 6) | function Bn(n){return U(n)?n:[n]}
function Nn (line 6) | function Nn(n){return tn.toPath(n)}
function In (line 6) | function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r...
function Tn (line 6) | function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}
function kn (line 6) | function kn(n){return n}
function Dn (line 6) | function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}
function Rn (line 6) | function Rn(n){return n=Nn(n),function(r){return In(r,n)}}
function Fn (line 6) | function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:ret...
function Vn (line 6) | function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn...
function Pn (line 6) | function Pn(n,r){return Vn(n,r,1/0)}
function qn (line 6) | function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}
function Un (line 6) | function Un(){}
function Wn (line 6) | function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r...
function Ln (line 6) | function Ln(n){var r=function(r){return n[r]},t="(?:"+nn(n).join("|")+")...
function Xn (line 6) | function Xn(n){return"\\"+Hn[n]}
function nr (line 6) | function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn...
function ur (line 6) | function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}els...
function fr (line 6) | function fr(n){return function(){return!n.apply(this,arguments)}}
function cr (line 6) | function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,ar...
function sr (line 6) | function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if...
function pr (line 6) | function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u...
function yr (line 6) | function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=M...
function dr (line 6) | function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if("number"==ty...
function mr (line 6) | function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)retu...
function jr (line 6) | function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++...
function _r (line 6) | function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=A...
function wr (line 6) | function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).leng...
function Sr (line 6) | function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t...
function Or (line 6) | function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0...
function Mr (line 6) | function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0...
function Er (line 6) | function Er(n,r,t,e){return er(n)||(n=jn(n)),("number"!=typeof t||e)&&(t...
function Nr (line 6) | function Nr(n,r){return _r(n,Rn(r))}
function Ir (line 6) | function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&...
function Tr (line 6) | function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1...
function kr (line 6) | function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e...
function qr (line 6) | function qr(n,r,t){return r in t}
function zr (line 6) | function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r...
function Lr (line 6) | function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null=...
function $r (line 6) | function $r(n,r,t){return i.call(n,null==r||t?1:r)}
function Jr (line 6) | function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u...
function Hr (line 6) | function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e...
function Xr (line 6) | function Xr(n,r){return n._chain?tn(r).chain():r}
function Yr (line 6) | function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototyp...
FILE: bdsim/bdedit/floating_label.py
class Floating_Label (line 19) | class Floating_Label(Serializable):
method __init__ (line 20) | def __init__(self, scene, window, mainwindow, label_text="text", pos=(...
method setPos (line 39) | def setPos(self, x, y):
method setFocusOfFloatingText (line 42) | def setFocusOfFloatingText(self):
method remove (line 58) | def remove(self):
method serialize (line 81) | def serialize(self):
method deserialize (line 99) | def deserialize(self, data, hashmap={}):
class ContentWidget (line 148) | class ContentWidget(QWidget):
method __init__ (line 149) | def __init__(self, label):
method setup (line 177) | def setup(self):
method initUI (line 189) | def initUI(self):
method setTextHighlighting (line 196) | def setTextHighlighting(self, highlight):
method updateText (line 201) | def updateText(self):
method updateShape (line 210) | def updateShape(self):
method setDefaultFormatting (line 231) | def setDefaultFormatting(self):
FILE: bdsim/bdedit/floating_label_graphics.py
class GraphicsLabel (line 9) | class GraphicsLabel(QGraphicsItem):
method __init__ (line 10) | def __init__(self, label, parent=None):
method initUI (line 29) | def initUI(self):
method boundingRect (line 41) | def boundingRect(self):
method paint (line 49) | def paint(self, painter, style, widget=None):
method setLabelUnfocus (line 59) | def setLabelUnfocus(self):
method setLabelFocus (line 75) | def setLabelFocus(self):
method setLabelSizeBox (line 81) | def setLabelSizeBox(self):
method hoverEnterEvent (line 84) | def hoverEnterEvent(self, event):
method mousePressEvent (line 94) | def mousePressEvent(self, event):
method mouseDoubleClickEvent (line 148) | def mouseDoubleClickEvent(self, event):
method mouseReleaseEvent (line 152) | def mouseReleaseEvent(self, event):
FILE: bdsim/bdedit/grouping_box.py
class Grouping_Box (line 19) | class Grouping_Box(Serializable):
method __init__ (line 20) | def __init__(
method setPos (line 47) | def setPos(self, x, y):
method setFocusOfGroupingBox (line 50) | def setFocusOfGroupingBox(self):
method remove (line 67) | def remove(self):
method serialize (line 87) | def serialize(self):
method deserialize (line 101) | def deserialize(self, data, hashmap={}):
FILE: bdsim/bdedit/grouping_box_graphics.py
class GraphicsGBox (line 12) | class GraphicsGBox(QGraphicsRectItem):
method __init__ (line 38) | def __init__(self, gbox, *args):
method initUI (line 74) | def initUI(self):
method handleAt (line 86) | def handleAt(self, point):
method hoverMoveEvent (line 98) | def hoverMoveEvent(self, moveEvent):
method hoverLeaveEvent (line 108) | def hoverLeaveEvent(self, moveEvent):
method mousePressEvent (line 115) | def mousePressEvent(self, mouseEvent):
method mouseMoveEvent (line 161) | def mouseMoveEvent(self, mouseEvent):
method mouseReleaseEvent (line 171) | def mouseReleaseEvent(self, mouseEvent):
method boundingRect (line 190) | def boundingRect(self):
method updateHandlesPos (line 197) | def updateHandlesPos(self):
method interactiveResize (line 222) | def interactiveResize(self, mousePos):
method hoverEnterEvent (line 348) | def hoverEnterEvent(self, event):
method shape (line 358) | def shape(self):
method paint (line 369) | def paint(self, painter, option, widget=None):
FILE: bdsim/bdedit/interface.py
class Interface (line 36) | class Interface(QWidget):
method __init__ (line 55) | def __init__(self, resolution, debug=False, parent=None):
method initUI (line 81) | def initUI(self, resolution, debug, main_window):
method on_click (line 342) | def on_click(self, scene):
method sortBlockLibrary (line 366) | def sortBlockLibrary(self):
method clickBox (line 375) | def clickBox(self, state):
method toggleCanvasItems (line 393) | def toggleCanvasItems(self):
method toggle_sub_buttons (line 421) | def toggle_sub_buttons(self):
method grab_screenshot_dimensions (line 454) | def grab_screenshot_dimensions(self):
method save_image (line 543) | def save_image(self, picture_path, picture_name=None, picture_format=N...
method getScreenshotName (line 613) | def getScreenshotName(self, picture_path, picture_name, picture_format...
method updateSceneDimensions (line 710) | def updateSceneDimensions(self):
method resizeEvent (line 734) | def resizeEvent(self, event):
FILE: bdsim/bdedit/interface_graphics_scene.py
class GraphicsScene (line 20) | class GraphicsScene(QGraphicsScene):
method __init__ (line 28) | def __init__(self, scene, parent=None):
method setGrScene (line 67) | def setGrScene(self, width, height):
method updateBackgroundMode (line 82) | def updateBackgroundMode(self, bgcolor, grid):
method checkMode (line 97) | def checkMode(self):
method mousePressEvent (line 132) | def mousePressEvent(self, event):
method mouseReleaseEvent (line 137) | def mouseReleaseEvent(self, event):
method mouseMoveEvent (line 143) | def mouseMoveEvent(self, event):
method drawForeground (line 301) | def drawForeground(self, painter, rect):
method drawBackground (line 371) | def drawBackground(self, painter, rect):
method findIntersectingAreaPoints (line 431) | def findIntersectingAreaPoints(self, rectA, rectB):
FILE: bdsim/bdedit/interface_graphics_view.py
class GraphicsView (line 41) | class GraphicsView(QGraphicsView):
method __init__ (line 54) | def __init__(self, grScene, mainwindow, parent=None):
method initUI (line 91) | def initUI(self):
method closeParamWindows (line 107) | def closeParamWindows(self):
method deleteSelected (line 123) | def deleteSelected(self):
method flipBlockSockets (line 161) | def flipBlockSockets(self):
method dist_click_release (line 181) | def dist_click_release(self, event):
method getItemAtClick (line 206) | def getItemAtClick(self, event):
method intersectionTest (line 223) | def intersectionTest(self):
method edgeDragStart (line 243) | def edgeDragStart(self, item):
method edgeDragEnd (line 272) | def edgeDragEnd(self, item):
method keyPressEvent (line 422) | def keyPressEvent(self, event):
method mousePressEvent (line 483) | def mousePressEvent(self, event):
method mouseReleaseEvent (line 509) | def mouseReleaseEvent(self, event):
method leftMouseButtonPress (line 529) | def leftMouseButtonPress(self, event):
method leftMouseButtonRelease (line 616) | def leftMouseButtonRelease(self, event):
method rightMouseButtonPress (line 677) | def rightMouseButtonPress(self, event):
method rightMouseButtonRelease (line 691) | def rightMouseButtonRelease(self, event):
method middleMouseButtonPress (line 705) | def middleMouseButtonPress(self, event):
method middleMouseButtonRelease (line 737) | def middleMouseButtonRelease(self, event):
method wheelEvent (line 759) | def wheelEvent(self, event):
method mouseMoveEvent (line 799) | def mouseMoveEvent(self, event):
FILE: bdsim/bdedit/interface_manager.py
class InterfaceWindow (line 26) | class InterfaceWindow(QMainWindow):
method __init__ (line 27) | def __init__(self, resolution, debug=False):
method initUI (line 37) | def initUI(self, resolution, debug):
method createActions (line 67) | def createActions(self):
method createToolbar (line 336) | def createToolbar(self):
method createFileMenu (line 344) | def createFileMenu(self):
method createEditMenu (line 388) | def createEditMenu(self):
method createToolsMenu (line 407) | def createToolsMenu(self):
method createRunButtonParameters (line 433) | def createRunButtonParameters(self):
method createHelpItem (line 458) | def createHelpItem(self):
method createToolbarItems (line 470) | def createToolbarItems(self):
method updateApplicationName (line 492) | def updateApplicationName(self):
method closeEvent (line 504) | def closeEvent(self, event):
method isModified (line 510) | def isModified(self):
method exitingWithoutSave (line 513) | def exitingWithoutSave(self):
method setRunBtnOptions (line 532) | def setRunBtnOptions(self, value):
method displayHelpURL (line 579) | def displayHelpURL(self):
method runButton (line 587) | def runButton(self):
method abortButton (line 655) | def abortButton(self):
method updateSimTime (line 663) | def updateSimTime(self):
method newFile (line 689) | def newFile(self):
method loadFromFilePath (line 713) | def loadFromFilePath(self, filepath):
method loadFromFile (line 729) | def loadFromFile(self):
method saveToFile (line 752) | def saveToFile(self):
method saveAsToFile (line 767) | def saveAsToFile(self):
method exportAsToFile (line 791) | def exportAsToFile(self, fileType):
method editUndo (line 795) | def editUndo(self):
method editRedo (line 798) | def editRedo(self):
method editDelete (line 801) | def editDelete(self):
method miscFlip (line 807) | def miscFlip(self):
method miscEnableOverlaps (line 812) | def miscEnableOverlaps(self):
method miscScreenshot (line 818) | def miscScreenshot(self, fileType):
method miscHideConnectors (line 830) | def miscHideConnectors(self):
method miscToggleBackground (line 839) | def miscToggleBackground(self):
method textAlignment (line 858) | def textAlignment(self, alignment):
method textBold (line 879) | def textBold(self):
method textUnderline (line 895) | def textUnderline(self):
method textItalicize (line 911) | def textItalicize(self):
method textFontStyle (line 927) | def textFontStyle(self):
method textFontSize (line 946) | def textFontSize(self):
method textColor (line 960) | def textColor(self):
method removeFormat (line 977) | def removeFormat(self):
method checkSelection (line 991) | def checkSelection(self, label):
method updateToolbarValues (line 998) | def updateToolbarValues(self):
method unselectAlignmentIcons (line 1053) | def unselectAlignmentIcons(self):
FILE: bdsim/bdedit/interface_scene.py
class Scene (line 32) | class Scene(Serializable):
method __init__ (line 48) | def __init__(self, resolution, window, main_window):
method has_been_modified (line 95) | def has_been_modified(self):
method has_been_modified (line 101) | def has_been_modified(self, value):
method initUI (line 112) | def initUI(self):
method determineFont (line 133) | def determineFont(self):
method addHasBeenModifiedListener (line 148) | def addHasBeenModifiedListener(self, callback: "function"):
method addBlock (line 152) | def addBlock(self, block):
method addWire (line 159) | def addWire(self, wire):
method addLabel (line 166) | def addLabel(self, label):
method addGBox (line 173) | def addGBox(self, GBox):
method removeBlock (line 180) | def removeBlock(self, block):
method removeWire (line 187) | def removeWire(self, wire):
method removeLabel (line 194) | def removeLabel(self, label):
method removeGBox (line 201) | def removeGBox(self, GBox):
method getSceneWidth (line 208) | def getSceneWidth(self):
method getSceneHeight (line 215) | def getSceneHeight(self):
method setSceneWidth (line 222) | def setSceneWidth(self, width):
method setSceneHeight (line 229) | def setSceneHeight(self, height):
method updateSceneDimensions (line 236) | def updateSceneDimensions(self):
method getView (line 244) | def getView(self):
method clear (line 253) | def clear(self):
method checkForDuplicates (line 276) | def checkForDuplicates(self, name):
method saveToFile (line 303) | def saveToFile(self, filename):
method loadFromFile (line 321) | def loadFromFile(self, filename):
method serialize (line 342) | def serialize(self):
method deserialize (line 388) | def deserialize(self, data, hashmap={}):
FILE: bdsim/bdedit/interface_scene_history.py
class SceneHistory (line 13) | class SceneHistory:
method __init__ (line 14) | def __init__(self, scene):
method clear (line 28) | def clear(self):
method storeInitialHistoryStamp (line 32) | def storeInitialHistoryStamp(self):
method addHistoryModifiedListener (line 36) | def addHistoryModifiedListener(self, callback: "function"):
method addHistoryStoredListener (line 39) | def addHistoryStoredListener(self, callback: "function"):
method addHistoryRestoredListener (line 42) | def addHistoryRestoredListener(self, callback: "function"):
method undo (line 45) | def undo(self):
method redo (line 55) | def redo(self):
method restroreHistory (line 65) | def restroreHistory(self):
method storeHistory (line 78) | def storeHistory(self, desc, setModified: bool = False):
method captureCurrentSelection (line 114) | def captureCurrentSelection(self):
method createHistoryStamp (line 133) | def createHistoryStamp(self, desc):
method restoreHistoryStamp (line 142) | def restoreHistoryStamp(self, history_stamp):
FILE: bdsim/bdedit/interface_serialize.py
class Serializable (line 1) | class Serializable:
method __init__ (line 8) | def __init__(self):
method serialize (line 15) | def serialize(self):
method deserialize (line 24) | def deserialize(self, data, hashmap={}):
FILE: bdsim/bdrun.py
function bdload (line 19) | def bdload(bd, filename, globalvars={}, verbose=False, **kwargs):
function bdrun (line 222) | def bdrun(filename=None, globals={}, **kwargs):
FILE: bdsim/blockdiagram.py
class BlockDiagram (line 31) | class BlockDiagram:
method __init__ (line 59) | def __init__(self, name="main", **kwargs):
method __getitem__ (line 77) | def __getitem__(self, id):
method __len__ (line 87) | def __len__(self):
method __deepcopy__ (line 90) | def __deepcopy__(self, memo):
method issubsystem (line 109) | def issubsystem(self):
method clock (line 112) | def clock(self, *args, **kwargs):
method add_block (line 118) | def add_block(self, block):
method add_wire (line 132) | def add_wire(self, wire, name=None):
method __str__ (line 139) | def __str__(self):
method __repr__ (line 142) | def __repr__(self):
method ls (line 153) | def ls(self):
method connect (line 157) | def connect(self, start, *ends, name=None):
method compile (line 276) | def compile(
method _subsystem_import (line 492) | def _subsystem_import(self, bd, sspath, verbose=False):
method schedule_evaluate (line 541) | def schedule_evaluate(self, x, t, checkfinite=True, sinks=True, simsta...
method schedule_generate (line 666) | def schedule_generate(self):
method schedule_dotfile (line 724) | def schedule_dotfile(self, filename):
method _debugger (line 773) | def _debugger(self, simstate=None, integrator=None):
method report_summary (line 864) | def report_summary(self, sortby="name", **kwargs):
method report (line 936) | def report(self, **kwargs):
method report_lists (line 940) | def report_lists(self, **kwargs):
method report_schedule (line 1013) | def report_schedule(self, **kwargs):
method _error_handler (line 1034) | def _error_handler(self, where, block):
method getstate0 (line 1071) | def getstate0(self):
method reset (line 1083) | def reset(self):
method step (line 1097) | def step(self, t):
method deriv (line 1125) | def deriv(self, t):
method start (line 1151) | def start(self, simstate=None):
method initialstate (line 1180) | def initialstate(self):
method done (line 1185) | def done(self, block=False):
method dotfile (line 1206) | def dotfile(self, filename, shapes=None):
method showgraph (line 1292) | def showgraph(self):
method blockvalues (line 1319) | def blockvalues(self, t=None, simstate=None):
FILE: bdsim/blockdiagram.pyi
class BlockDiagram (line 5) | class BlockDiagram:
method SUM (line 9) | def SUM(self, signs: str = '++', mode: str = None, **blockargs):
method PROD (line 41) | def PROD(self, ops: str = '**', matrix: bool = False, **blockargs):
method GAIN (line 58) | def GAIN(self, K: Union[int, float, numpy.ndarray] = 1, premul: bool =...
method POW (line 73) | def POW(self, p: Union[int, float] = 1, matrix: bool = False, **blocka...
method CLIP (line 88) | def CLIP(self, min: Union[numpy.ndarray, int, float, list, tuple] = -i...
method FUNCTION (line 102) | def FUNCTION(self, func: Callable = None, nin: int = 1, nout: int = 1,...
method INTERPOLATE (line 124) | def INTERPOLATE(self, x: Union[list, tuple, numpy.ndarray] = None, y: ...
method CONSTANT (line 144) | def CONSTANT(self, value=0, **blockargs):
method TIME (line 156) | def TIME(self, value=None, **blockargs):
method WAVEFORM (line 166) | def WAVEFORM(self, wave='square', freq=1, unit='Hz', phase=0, amplitud...
method PIECEWISE (line 195) | def PIECEWISE(self, *args, seq=None, **blockargs):
method STEP (line 208) | def STEP(self, T=1, off=0, on=1, **blockargs):
method RAMP (line 224) | def RAMP(self, T=1, off=0, slope=1, **blockargs):
method PRINT (line 240) | def PRINT(self, fmt=None, file=None, **blockargs):
method STOP (line 256) | def STOP(self, func=None, **blockargs):
method NULL (line 268) | def NULL(self, nin=1, **blockargs):
method WATCH (line 280) | def WATCH(self, **blockargs):
method INTEGRATOR (line 292) | def INTEGRATOR(self, x0=0, gain=1.0, min=None, max=None, enable=None, ...
method POSEINTEGRATOR (line 312) | def POSEINTEGRATOR(self, x0=None, **blockargs):
method LTI_SS (line 324) | def LTI_SS(self, A=None, B=None, C=None, x0=None, **blockargs):
method LTI_SISO (line 340) | def LTI_SISO(self, N=1, D=[1, 1], x0=None, **blockargs):
method SUBSYSTEM (line 358) | def SUBSYSTEM(self, subsys, nin=1, nout=1, **blockargs):
method DERIV (line 376) | def DERIV(self, alpha, x0=0, y0=None, **blockargs):
method PID (line 392) | def PID(self, type: str = 'PID', P: float = 0.0, D: float = 0.0, I: fl...
method ZOH (line 416) | def ZOH(self, clock, x0=0, **blockargs):
method DINTEGRATOR (line 430) | def DINTEGRATOR(self, clock, x0=0, gain=1.0, min=None, max=None, **blo...
method DPOSEINTEGRATOR (line 450) | def DPOSEINTEGRATOR(self, clock, x0=None, **blockargs):
method INVERSE (line 464) | def INVERSE(self, pinv=False, **blockargs):
method TRANSPOSE (line 476) | def TRANSPOSE(self, **blockargs):
method NORM (line 486) | def NORM(self, ord=None, axis=None, **blockargs):
method FLATTEN (line 500) | def FLATTEN(self, order='C', **blockargs):
method SLICE2 (line 512) | def SLICE2(self, rows=None, cols=None, **blockargs):
method SLICE1 (line 526) | def SLICE1(self, index, **blockargs):
method DET (line 538) | def DET(self, **blockargs):
method COND (line 548) | def COND(self, **blockargs):
method SCOPE (line 558) | def SCOPE(self, nin=1, vector=None, styles=None, stairs=False, scale='...
method SCOPEXY (line 590) | def SCOPEXY(self, style=None, scale='auto', aspect='equal', labels=['X...
method SCOPEXY1 (line 608) | def SCOPEXY1(self, indices=[0, 1], **blockargs):
method ITEM (line 628) | def ITEM(self, item, **blockargs):
method DICT (line 640) | def DICT(self, keys, **blockargs):
method MUX (line 652) | def MUX(self, nin=1, **blockargs):
method DEMUX (line 664) | def DEMUX(self, nout=1, **blockargs):
method INDEX (line 676) | def INDEX(self, index=[], **blockargs):
method INPORT (line 690) | def INPORT(self, nout=1, **blockargs):
method OUTPORT (line 702) | def OUTPORT(self, nin=1, **blockargs):
method POSE_POSTMUL (line 714) | def POSE_POSTMUL(self, pose=None, **blockargs):
method POSE_PREMUL (line 726) | def POSE_PREMUL(self, pose=None, **blockargs):
method TRANSFORM_VECTOR (line 738) | def TRANSFORM_VECTOR(self, **blockargs):
method POSE_INVERSE (line 748) | def POSE_INVERSE(self, **blockargs):
method DOUT (line 758) | def DOUT(self, pin=0, **blockargs):
method FKINE (line 777) | def FKINE(self, robot=None, args={}, **blockargs):
method IKINE (line 793) | def IKINE(self, robot=None, q0=None, useprevious=True, ik=None, args={...
method JACOBIAN (line 815) | def JACOBIAN(self, robot, frame='0', representation=None, inverse=Fals...
method ARMPLOT (line 850) | def ARMPLOT(self, robot=None, q0=None, backend=None, **blockargs):
method JTRAJ (line 866) | def JTRAJ(self, q0, qf, qd0=None, qdf=None, T=None, **blockargs):
method CTRAJ (line 887) | def CTRAJ(self, T1, T2, T, trapezoidal=True, **blockargs):
method CIRCLEPATH (line 905) | def CIRCLEPATH(self, radius=1, centre=(0, 0, 0), pose=None, frequency=...
method TRAPEZOIDAL (line 927) | def TRAPEZOIDAL(self, q0, qf, V=None, T=None, **blockargs):
method TRAJ (line 948) | def TRAJ(self, y0=0, yf=1, T=None, time=False, traj='trapezoidal', **b...
method IDYN (line 968) | def IDYN(self, robot, gravity=None, **blockargs):
method GRAVLOAD (line 982) | def GRAVLOAD(self, robot, gravity=None, **blockargs):
method GRAVLOAD_X (line 996) | def GRAVLOAD_X(self, robot, representation='rpy/xyz', gravity=None, **...
method INERTIA (line 1012) | def INERTIA(self, robot, **blockargs):
method INERTIA_X (line 1024) | def INERTIA_X(self, robot, representation='rpy/xyz', pinv=False, **blo...
method FDYN (line 1038) | def FDYN(self, robot, q0=None, **blockargs):
method FDYN_X (line 1052) | def FDYN_X(self, robot, q0=None, gravcomp=False, velcomp=False, repres...
method BICYCLE (line 1073) | def BICYCLE(self, L=1, speed_max=inf, accel_max=inf, steer_max=1.41371...
method UNICYCLE (line 1093) | def UNICYCLE(self, w=1, speed_max=inf, accel_max=inf, steer_max=inf, x...
method DIFFSTEER (line 1114) | def DIFFSTEER(self, w=1, R=1, speed_max=inf, accel_max=inf, steer_max=...
method VEHICLEPLOT (line 1136) | def VEHICLEPLOT(self, animation=None, path=None, labels=['X', 'Y'], sq...
method MULTIROTOR (line 1168) | def MULTIROTOR(self, model, groundcheck=True, speedcheck=True, x0=None...
method MULTIROTORMIXER (line 1188) | def MULTIROTORMIXER(self, model=None, wmax=1000, wmin=5, **blockargs):
method MULTIROTORPLOT (line 1204) | def MULTIROTORPLOT(self, model, scale=[-2, 2, -2, 2, 10], flapscale=1,...
method TR2DELTA (line 1222) | def TR2DELTA(self, **blockargs):
method DELTA2TR (line 1232) | def DELTA2TR(self, **blockargs):
method POINT2TR (line 1242) | def POINT2TR(self, T=None, **blockargs):
method TR2T (line 1256) | def TR2T(self, **blockargs):
method CAMERA (line 1266) | def CAMERA(self, camera=None, args={}, **blockargs):
method VISJAC_P (line 1289) | def VISJAC_P(self, camera, depth=1, depthest=False, **blockargs):
method ESTPOSE_P (line 1311) | def ESTPOSE_P(self, camera, P, frame='world', method='iterative', **bl...
method IMAGEPLANE (line 1332) | def IMAGEPLANE(self, camera, style=None, labels=None, grid=True, retai...
FILE: bdsim/blocks/IO/Firmata.py
class FirmataIO (line 16) | class FirmataIO:
method __init__ (line 20) | def __init__(self):
method pin (line 34) | def pin(self, name):
class AnalogIn (line 38) | class AnalogIn(SourceBlock):
method __init__ (line 42) | def __init__(self, pin=None, scale=1.0, offset=0.0, **blockargs):
method output (line 53) | def output(self, t, inports, x):
class AnalogOut (line 57) | class AnalogOut(SinkBlock):
method __init__ (line 61) | def __init__(self, pin=None, scale=1.0, offset=0.0, **blockargs):
method step (line 68) | def step(self, t, inports):
class DigitalIn (line 72) | class DigitalIn(FirmataIO, SourceBlock):
method __init__ (line 76) | def __init__(self, pin=None, bool=False, **blockargs):
method output (line 80) | def output(self, t, inports, x):
class DigitalOut (line 87) | class DigitalOut(FirmataIO, SinkBlock):
method __init__ (line 91) | def __init__(self, pin=None, **blockargs):
method step (line 95) | def step(self, t, inports):
FILE: bdsim/blocks/connections.py
class Item (line 25) | class Item(FunctionBlock):
method __init__ (line 69) | def __init__(self, item, **blockargs):
method output (line 80) | def output(self, t, inports, x):
class Dict (line 88) | class Dict(FunctionBlock):
method __init__ (line 134) | def __init__(self, keys, **blockargs):
method output (line 145) | def output(self, t, inports, x):
class Mux (line 150) | class Mux(FunctionBlock):
method __init__ (line 189) | def __init__(self, nin=1, **blockargs):
method output (line 198) | def output(self, t, inports, x):
class DeMux (line 210) | class DeMux(FunctionBlock):
method __init__ (line 247) | def __init__(self, nout=1, **blockargs):
method output (line 256) | def output(self, t, inports, x):
class Index (line 268) | class Index(FunctionBlock):
method __init__ (line 302) | def __init__(self, index=[], **blockargs):
method output (line 318) | def output(self, t, inports, x):
class SubSystem (line 331) | class SubSystem(SubsystemBlock):
method __init__ (line 387) | def __init__(self, subsys, nin=1, nout=1, **blockargs):
class InPort (line 468) | class InPort(SubsystemBlock):
method __init__ (line 501) | def __init__(self, nout=1, **blockargs):
method output (line 510) | def output(self, t, inports, x):
class OutPort (line 519) | class OutPort(SubsystemBlock):
method __init__ (line 553) | def __init__(self, nin=1, **blockargs):
method output (line 562) | def output(self, t, inports, x):
FILE: bdsim/blocks/discrete.py
class ZOH (line 25) | class ZOH(ClockedBlock):
method __init__ (line 61) | def __init__(self, clock, x0=0, **blockargs):
method output (line 78) | def output(self, t, inports, x):
method next (line 82) | def next(self, t, inports, x):
class DIntegrator (line 90) | class DIntegrator(ClockedBlock):
method __init__ (line 132) | def __init__(self, clock, x0=0, gain=1.0, min=None, max=None, **blocka...
method output (line 170) | def output(self, t, u, x):
method next (line 173) | def next(self, t, u, x):
class DPoseIntegrator (line 180) | class DPoseIntegrator(ClockedBlock):
method __init__ (line 219) | def __init__(self, clock, x0=None, **blockargs):
method output (line 245) | def output(self, t, u, x):
method next (line 248) | def next(self, t, u, x):
FILE: bdsim/blocks/displays.py
class Scope (line 25) | class Scope(GraphicsBlock):
method __init__ (line 112) | def __init__(
method start (line 227) | def start(self, simstate):
method step (line 323) | def step(self, t, inports):
class ScopeXY (line 362) | class ScopeXY(GraphicsBlock):
method __init__ (line 408) | def __init__(
method start (line 445) | def start(self, simstate):
method step (line 480) | def step(self, t, inports):
method _step (line 485) | def _step(self, x, y, t):
class ScopeXY1 (line 506) | class ScopeXY1(ScopeXY):
method __init__ (line 549) | def __init__(self, indices=[0, 1], **blockargs):
method step (line 570) | def step(self, t, inports):
FILE: bdsim/blocks/functions.py
class Sum (line 28) | class Sum(FunctionBlock):
method __init__ (line 78) | def __init__(self, signs: str = "++", mode: str = None, **blockargs):
method output (line 112) | def output(self, t, inports, x):
class Prod (line 159) | class Prod(FunctionBlock):
method __init__ (line 205) | def __init__(self, ops: str = "**", matrix: bool = False, **blockargs):
method output (line 223) | def output(self, t, inports, x):
class Gain (line 250) | class Gain(FunctionBlock):
method __init__ (line 291) | def __init__(
method output (line 309) | def output(self, t, inports, x):
class Pow (line 327) | class Pow(FunctionBlock):
method __init__ (line 372) | def __init__(self, p: Union[int, float] = 1, matrix: bool = False, **b...
method output (line 388) | def output(self, t, inports, x):
class Clip (line 411) | class Clip(FunctionBlock):
method __init__ (line 455) | def __init__(
method output (line 470) | def output(self, t, inports, x):
class Function (line 483) | class Function(FunctionBlock):
method __init__ (line 556) | def __init__(
method start (line 632) | def start(self, simstate):
method output (line 638) | def output(self, t, inports, x):
class Interpolate (line 677) | class Interpolate(FunctionBlock):
method __init__ (line 737) | def __init__(
method start (line 787) | def start(self, simstate, **blockargs):
method output (line 797) | def output(self, t, inports, x):
FILE: bdsim/blocks/linalg.py
class Inverse (line 18) | class Inverse(FunctionBlock):
method __init__ (line 63) | def __init__(self, pinv=False, **blockargs):
method output (line 75) | def output(self, t, inports, x):
class Transpose (line 100) | class Transpose(FunctionBlock):
method __init__ (line 140) | def __init__(self, **blockargs):
method output (line 148) | def output(self, t, inports, x):
class Norm (line 162) | class Norm(FunctionBlock):
method __init__ (line 196) | def __init__(self, ord=None, axis=None, **blockargs):
method output (line 209) | def output(self, t, inports, x):
class Flatten (line 218) | class Flatten(FunctionBlock):
method __init__ (line 252) | def __init__(self, order="C", **blockargs):
method output (line 263) | def output(self, t, inports, x):
class Slice2 (line 272) | class Slice2(FunctionBlock):
method __init__ (line 337) | def __init__(self, rows=None, cols=None, **blockargs):
method output (line 367) | def output(self, t, inports, x):
class Slice1 (line 377) | class Slice1(FunctionBlock):
method __init__ (line 436) | def __init__(self, index, **blockargs):
method output (line 455) | def output(self, t, inports, x):
class Det (line 463) | class Det(FunctionBlock):
method __init__ (line 497) | def __init__(self, **blockargs):
method output (line 505) | def output(self, t, inports, x):
class Cond (line 512) | class Cond(FunctionBlock):
method __init__ (line 544) | def __init__(self, **blockargs):
method output (line 552) | def output(self, t, inports, x):
FILE: bdsim/blocks/sinks.py
class Print (line 23) | class Print(SinkBlock):
method __init__ (line 75) | def __init__(self, fmt=None, file=None, **blockargs):
method step (line 92) | def step(self, t, inports):
class Stop (line 118) | class Stop(SinkBlock):
method __init__ (line 152) | def __init__(self, func=None, **blockargs):
method start (line 165) | def start(self, simstate):
method step (line 168) | def step(self, t, inports):
class Null (line 192) | class Null(SinkBlock):
method __init__ (line 223) | def __init__(self, nin=1, **blockargs):
class Watch (line 236) | class Watch(SinkBlock):
method __init__ (line 276) | def __init__(self, **blockargs):
method start (line 285) | def start(self, simstate):
FILE: bdsim/blocks/sources.py
class Constant (line 15) | class Constant(SourceBlock):
method __init__ (line 44) | def __init__(self, value=0, **blockargs):
method output (line 59) | def output(self, t, inports, x):
class Time (line 66) | class Time(SourceBlock):
method __init__ (line 98) | def __init__(self, value=None, **blockargs):
method output (line 105) | def output(self, t, inports, x):
class WaveForm (line 112) | class WaveForm(SourceBlock, EventSource):
method __init__ (line 166) | def __init__(
method start (line 232) | def start(self, simstate):
method output (line 253) | def output(self, t, inports, x):
class Piecewise (line 284) | class Piecewise(SourceBlock, EventSource):
method __init__ (line 342) | def __init__(self, *args, seq=None, **blockargs):
method start (line 358) | def start(self, simstate):
method output (line 365) | def output(self, t, inports, x):
class Step (line 375) | class Step(SourceBlock, EventSource):
method __init__ (line 418) | def __init__(self, T=1, off=0, on=1, **blockargs):
method start (line 435) | def start(self, simstate):
method output (line 438) | def output(self, t, inports, x):
class Ramp (line 451) | class Ramp(SourceBlock, EventSource):
method __init__ (line 494) | def __init__(self, T=1, off=0, slope=1, **blockargs):
method start (line 512) | def start(self, simstate):
method output (line 515) | def output(self, t, inports, x):
FILE: bdsim/blocks/spatial.py
class Pose_postmul (line 12) | class Pose_postmul(FunctionBlock):
method __init__ (line 48) | def __init__(self, pose=None, **blockargs):
method output (line 61) | def output(self, t, inports, x):
class Pose_premul (line 67) | class Pose_premul(FunctionBlock):
method __init__ (line 103) | def __init__(self, pose=None, **blockargs):
method output (line 116) | def output(self, t, inports, x):
class Transform_vector (line 122) | class Transform_vector(FunctionBlock):
method __init__ (line 158) | def __init__(self, **blockargs):
method output (line 165) | def output(self, t, inports, x):
class Pose_inverse (line 173) | class Pose_inverse(FunctionBlock):
method __init__ (line 206) | def __init__(self, **blockargs):
method output (line 213) | def output(self, t, inports, x):
FILE: bdsim/blocks/transfers.py
class Integrator (line 20) | class Integrator(TransferBlock):
method __init__ (line 78) | def __init__(self, x0=0, gain=1.0, min=None, max=None, enable=None, **...
method output (line 124) | def output(self, t, u, x):
method deriv (line 127) | def deriv(self, t, u, x):
class PoseIntegrator (line 141) | class PoseIntegrator(TransferBlock):
method __init__ (line 177) | def __init__(self, x0=None, **blockargs):
method output (line 193) | def output(self, t, u, x):
method deriv (line 196) | def deriv(self, t, u, x):
class LTI_SS (line 203) | class LTI_SS(TransferBlock):
method __init__ (line 252) | def __init__(self, A=None, B=None, C=None, x0=None, **blockargs):
method output (line 294) | def output(self, t, u, x):
method deriv (line 297) | def deriv(self, t, u, x):
class LTI_SISO (line 309) | class LTI_SISO(LTI_SS):
method __init__ (line 362) | def __init__(self, N=1, D=[1, 1], x0=None, **blockargs):
class Deriv (line 445) | class Deriv(SubsystemBlock):
method __init__ (line 488) | def __init__(self, alpha, x0=0, y0=None, **blockargs):
class PID (line 525) | class PID(SubsystemBlock):
method __init__ (line 601) | def __init__(
FILE: bdsim/components.py
function oodebug (line 15) | def oodebug(func):
class BDStruct (line 24) | class BDStruct:
method __init__ (line 44) | def __init__(self, name="BDStruct2", **kwargs):
method add (line 50) | def add(self, name, value):
method __repr__ (line 54) | def __repr__(self):
method __len__ (line 57) | def __len__(self):
method __getitem__ (line 60) | def __getitem__(self, key):
method __setitem__ (line 63) | def __setitem__(self, key, value):
method __str__ (line 66) | def __str__(self):
method dump (line 114) | def dump(self, outfile):
class OptionsBase (line 121) | class OptionsBase:
method __init__ (line 131) | def __init__(self, readonly={}, args={}):
method items (line 135) | def items(self):
method __getattr__ (line 138) | def __getattr__(self, name):
method __setattr__ (line 147) | def __setattr__(self, name, value):
method set (line 156) | def set(self, **changes):
method sanity (line 170) | def sanity(self, options):
method __str__ (line 173) | def __str__(self):
method __repr__ (line 181) | def __repr__(self):
class Wire (line 185) | class Wire:
method __init__ (line 209) | def __init__(self, start=None, end=None, name=None):
method info (line 220) | def info(self):
method __repr__ (line 231) | def __repr__(self):
method fullname (line 246) | def fullname(self):
method __str__ (line 262) | def __str__(self):
class Plug (line 287) | class Plug:
method __init__ (line 314) | def __init__(self, block, port=0, type=None):
method __str__ (line 320) | def __str__(self):
method __repr__ (line 334) | def __repr__(self):
method isslice (line 349) | def isslice(self):
method portlist (line 362) | def portlist(self):
method __getitem__ (line 395) | def __getitem__(self, i):
method width (line 399) | def width(self):
method __rshift__ (line 413) | def __rshift__(left, right):
method __add__ (line 456) | def __add__(self, other):
method __radd__ (line 488) | def __radd__(self, other):
method __sub__ (line 522) | def __sub__(self, other):
method __rsub__ (line 557) | def __rsub__(self, other):
method __neg__ (line 592) | def __neg__(self):
method __pow__ (line 615) | def __pow__(self, p):
method __mul__ (line 638) | def __mul__(self, other):
method __rmul__ (line 680) | def __rmul__(self, other):
method __truediv__ (line 716) | def __truediv__(self, other):
method __rtruediv__ (line 752) | def __rtruediv__(self, other):
class StartPlug (line 787) | class StartPlug(Plug):
method __init__ (line 788) | def __init__(self, *args, **kwargs):
class EndPlug (line 792) | class EndPlug(Plug):
method __init__ (line 793) | def __init__(self, *args, **kwargs):
class Clock (line 802) | class Clock:
method __init__ (line 803) | def __init__(self, arg, unit="s", offset=0, name=None):
method add_block (line 832) | def add_block(self, block):
method __repr__ (line 835) | def __repr__(self):
method __str__ (line 838) | def __str__(self):
method getstate0 (line 845) | def getstate0(self):
method getstate (line 853) | def getstate(self, t):
method setstate (line 863) | def setstate(self):
method start (line 868) | def start(self, simstate=None):
method next_event (line 873) | def next_event(self, simstate=None):
method time (line 877) | def time(self, i):
method savestate (line 882) | def savestate(self, t):
class Block (line 891) | class Block:
method __new__ (line 898) | def __new__(cls, *args, bd=None, **kwargs):
method __init__ (line 927) | def __init__(
method add_param (line 1033) | def add_param(self, param, handler=None):
method set_param (line 1041) | def set_param(self, name, newvalue):
method info (line 1046) | def info(self):
method isclocked (line 1059) | def isclocked(self):
method isgraphics (line 1071) | def isgraphics(self):
method T_output (line 1085) | def T_output(self, *inputs, t=0.0, x=None):
method T_deriv (line 1118) | def T_deriv(self, *inputs, t=0.0, x=None):
method T_next (line 1155) | def T_next(self, *inputs, t=0.0, x=None):
method T_step (line 1189) | def T_step(self, *inputs, t=0.0):
method T_start (line 1211) | def T_start(self, simstate=None):
method _output (line 1235) | def _output(self, *inputs, t=0.0, x=None):
method _step (line 1238) | def _step(self, *inputs, t=0.0):
method inputs (line 1269) | def inputs(self):
method __getitem__ (line 1292) | def __getitem__(self, port):
method __setitem__ (line 1314) | def __setitem__(self, port, src):
method __setattr__ (line 1338) | def __setattr__(self, name, value):
method __rshift__ (line 1376) | def __rshift__(left, right):
method _autoconstant (line 1422) | def _autoconstant(self, value):
method _autogain (line 1430) | def _autogain(self, value, **kwargs):
method _autopow (line 1438) | def _autopow(self, value, **kwargs):
method __add__ (line 1444) | def __add__(self, other):
method __radd__ (line 1484) | def __radd__(self, other):
method __sub__ (line 1524) | def __sub__(self, other):
method __rsub__ (line 1559) | def __rsub__(self, other):
method __neg__ (line 1598) | def __neg__(self):
method __pow__ (line 1621) | def __pow__(self, p):
method __mul__ (line 1644) | def __mul__(self, other):
method __rmul__ (line 1686) | def __rmul__(self, other):
method __truediv__ (line 1723) | def __truediv__(self, other):
method __rtruediv__ (line 1764) | def __rtruediv__(self, other):
method __str__ (line 1805) | def __str__(self):
method __repr__ (line 1811) | def __repr__(self):
method _fixname (line 1814) | def _fixname(self, s):
method inport_names (line 1817) | def inport_names(self, names):
method outport_names (line 1838) | def outport_names(self, names):
method state_names (line 1859) | def state_names(self, names):
method sourcename (line 1862) | def sourcename(self, port):
method reset (line 1896) | def reset(self):
method add_output_wire (line 1901) | def add_output_wire(self, w):
method add_input_wire (line 1906) | def add_input_wire(self, w):
method start (line 1934) | def start(self, simstate): # begin a simulation
method check (line 1937) | def check(self): # check validity of block parameters at start
method done (line 1948) | def done(self, **kwargs): # end of simulation
method savefig (line 1951) | def savefig(self, *pos, **kwargs):
class SinkBlock (line 1955) | class SinkBlock(Block):
method __init__ (line 1964) | def __init__(self, **blockargs):
method step (line 1980) | def step(self, t, inports): # valid
class SourceBlock (line 1984) | class SourceBlock(Block):
method __init__ (line 1992) | def __init__(self, **blockargs):
class TransferBlock (line 2009) | class TransferBlock(Block):
method __init__ (line 2018) | def __init__(self, nstates=1, **blockargs):
method reset (line 2033) | def reset(self):
method setstate (line 2038) | def setstate(self, x):
method getstate0 (line 2043) | def getstate0(self):
method check (line 2046) | def check(self):
class FunctionBlock (line 2051) | class FunctionBlock(Block):
method __init__ (line 2060) | def __init__(self, **blockargs):
class SubsystemBlock (line 2076) | class SubsystemBlock(Block):
method __init__ (line 2085) | def __init__(self, **blockargs):
class ClockedBlock (line 2101) | class ClockedBlock(Block):
method __init__ (line 2110) | def __init__(self, clock=None, **blockargs):
method reset (line 2128) | def reset(self):
method setstate (line 2133) | def setstate(self, x):
method getstate0 (line 2138) | def getstate0(self):
method check (line 2141) | def check(self):
class EventSource (line 2148) | class EventSource:
FILE: bdsim/graphics.py
class GraphicsBlock (line 8) | class GraphicsBlock(SinkBlock):
method __init__ (line 16) | def __init__(self, movie=None, **blockargs):
method start (line 35) | def start(self, simstate):
method step (line 58) | def step(self, t, inports):
method done (line 79) | def done(self, block=False):
method savefig (line 87) | def savefig(self, filename=None, format="pdf", **kwargs):
method create_figure (line 109) | def create_figure(self, state):
FILE: bdsim/run_realtime.py
class BDRealTimeState (line 105) | class BDRealTimeState:
method __init__ (line 124) | def __init__(self):
method declare_event (line 136) | def declare_event(self, block, t):
class SimpleStats (line 140) | class SimpleStats:
method __init__ (line 141) | def __init__(self):
method update (line 147) | def update(self, x):
method n (line 154) | def n(self):
method mean (line 158) | def mean(self):
method sdev (line 162) | def sdev(self):
method max (line 166) | def max(self):
class BDRealTime (line 170) | class BDRealTime(BDSim):
method run (line 171) | def run(
FILE: bdsim/run_sim.py
class Progress (line 35) | class Progress:
method printProgressBar (line 39) | def printProgressBar(
method __init__ (line 47) | def __init__(self, enable=True):
method start (line 53) | def start(self, T):
method end (line 68) | def end(self):
method update (line 80) | def update(self, t):
class TimeQ (line 103) | class TimeQ:
method __init__ (line 113) | def __init__(self):
method __len__ (line 117) | def __len__(self):
method __str__ (line 126) | def __str__(self):
method __repr__ (line 138) | def __repr__(self):
method push (line 144) | def push(self, value):
method pop (line 156) | def pop(self, dt=0):
method pop_until (line 182) | def pop_until(self, t):
function blockname (line 211) | def blockname(name):
class BDSimState (line 215) | class BDSimState:
method __init__ (line 233) | def __init__(self):
method declare_event (line 245) | def declare_event(self, block, t):
class BDSim (line 249) | class BDSim:
method __init__ (line 252) | def __init__(self, banner=True, packages=None, load=True, toolboxes=Tr...
method blockinfo (line 340) | def blockinfo(self, block=None):
method __str__ (line 373) | def __str__(self):
method __repr__ (line 383) | def __repr__(self):
method run (line 393) | def run(
method update_parameters (line 690) | def update_parameters(self, bd):
method run_interval (line 753) | def run_interval(self, bd, t0, T, x0, simstate=None):
method blockdiagram (line 944) | def blockdiagram(self, name="main") -> BlockDiagram:
method DEBUG (line 999) | def DEBUG(self, debug, fmt, *args):
method done (line 1003) | def done(self, bd, block=False):
method closefigs (line 1018) | def closefigs(self):
method savefig (line 1025) | def savefig(self, block, filename=None, format="pdf", **kwargs):
method savefigs (line 1028) | def savefigs(self, bd, format="pdf", **kwargs):
method showgraph (line 1035) | def showgraph(self, bd, **kwargs):
method fatal (line 1049) | def fatal(self, message, retval=1):
method load_blocks (line 1065) | def load_blocks(self, verbose=True, toolboxes=True):
method blocks (line 1311) | def blocks(self):
method set_options (line 1360) | def set_options(self, **options):
method set_globals (line 1364) | def set_globals(self, globs):
method report (line 1390) | def report(self, bd, type="summary", **kwargs):
class Options (line 1416) | class Options(OptionsBase):
method __init__ (line 1417) | def __init__(self, sysargs=True, **options):
method sanity (line 1651) | def sanity(self, options):
FILE: bdsim/tk_editor/bdeditor.py
function center_on_monitor (line 23) | def center_on_monitor(window, monitor_index, width, height):
function init_diagram (line 67) | def init_diagram(editor):
function create_ui (line 80) | def create_ui(root, blockmenu):
function get_blocks (line 266) | def get_blocks():
FILE: bdsim/tk_editor/edit.py
class Block (line 15) | class Block:
method __init__ (line 24) | def __init__(self, pos, nin, nout):
method port_y (line 36) | def port_y(self, i, n):
class Wire (line 43) | class Wire:
method __init__ (line 46) | def __init__(self, start: tuple[Block, int], end: tuple[Block, int]):
method start_coord (line 52) | def start_coord(self):
method end_coord (line 56) | def end_coord(self):
class Editor (line 61) | class Editor(tk.Canvas):
method event_print (line 105) | def event_print(self, event_name, event):
method gridlines (line 109) | def gridlines(canvas, line_distance):
method get_active_block (line 121) | def get_active_block(self):
method ortho_line (line 124) | def ortho_line(
method draw_ortho_line (line 156) | def draw_ortho_line(
method parse_io (line 179) | def parse_io(self, s):
method redraw_wires (line 188) | def redraw_wires(self, obj_id):
method add_block (line 213) | def add_block(
method flip (line 317) | def flip(self):
method add_wire (line 337) | def add_wire(self, from_name, to_name):
method inpos (line 372) | def inpos(self, i):
method outpos (line 377) | def outpos(self, i):
method current_item_id (line 384) | def current_item_id(self) -> int:
method current_item_tag (line 389) | def current_item_tag(self) -> str:
method block_down (line 398) | def block_down(self, event):
method block_motion (line 414) | def block_motion(self, event):
method block_up (line 431) | def block_up(self, event):
method block_enter (line 457) | def block_enter(self, event):
method block_leave (line 472) | def block_leave(self, event):
method outport_down (line 478) | def outport_down(self, event):
method outport_up (line 497) | def outport_up(self, event):
method outport_enter (line 501) | def outport_enter(self, event):
method outport_leave (line 507) | def outport_leave(self, event):
method inport_down (line 514) | def inport_down(self, event):
method inport_up (line 526) | def inport_up(self, event):
method inport_enter (line 530) | def inport_enter(self, event):
method inport_leave (line 533) | def inport_leave(self, event):
method wire_motion (line 537) | def wire_motion(self, event):
method wire_down (line 570) | def wire_down(self, event):
method wire_up (line 611) | def wire_up(self, event):
method wire_enter (line 617) | def wire_enter(self, event):
method wire_leave (line 621) | def wire_leave(self, event):
method wire_delete (line 625) | def wire_delete(self, event):
method new_block (line 630) | def new_block(event):
method list_items (line 640) | def list_items(self, event):
method quit (line 658) | def quit(self, event):
method flip (line 662) | def flip(self, event):
method __init__ (line 666) | def __init__(self, parent, **kwargs):
function is_close_numpy (line 715) | def is_close_numpy(point, start, end, tolerance):
FILE: bdsim/tk_editor/editor.py
function grid (line 17) | def grid(canvas, line_distance):
function draw_block (line 33) | def draw_block(nin, nout, pos):
FILE: bdsim/tk_editor/editor2.py
function pairwise (line 10) | def pairwise(iterable):
function ortho_line (line 25) | def ortho_line(start, end, width=2, **kwargs):
function redraw_wires (line 61) | def redraw_wires():
class CanvasDnD (line 66) | class CanvasDnD(tk.Frame):
method __init__ (line 67) | def __init__(self, master, canvas):
method down (line 79) | def down(self, event):
method motion (line 88) | def motion(self, event):
method leave (line 100) | def leave(self, event):
method enter (line 105) | def enter(self, event):
method chkup (line 114) | def chkup(self, event):
method up (line 125) | def up(self, event):
method flip (line 139) | def flip(self, event):
function grid (line 160) | def grid(canvas, line_distance):
class GBlock (line 176) | class GBlock:
method __init__ (line 182) | def __init__(self, nin, nout, pos, fill="red", **kwargs):
method flip (line 242) | def flip(self):
method inpos (line 252) | def inpos(self, i):
method outpos (line 256) | def outpos(self, i):
FILE: docs-aside/_static/doctools.js
function highlight (line 69) | function highlight(node, addItems) {
FILE: docs-aside/_static/jquery-3.4.1.js
function DOMEval (line 98) | function DOMEval( code, node, doc ) {
function toType (line 128) | function toType( obj ) {
function isArrayLike (line 496) | function isArrayLike( obj ) {
function Sizzle (line 729) | function Sizzle( selector, context, results, seed ) {
function createCache (line 871) | function createCache() {
function markFunction (line 889) | function markFunction( fn ) {
function assert (line 898) | function assert( fn ) {
function addHandle (line 920) | function addHandle( attrs, handler ) {
function siblingCheck (line 935) | function siblingCheck( a, b ) {
function createInputPseudo (line 961) | function createInputPseudo( type ) {
function createButtonPseudo (line 972) | function createButtonPseudo( type ) {
function createDisabledPseudo (line 983) | function createDisabledPseudo( disabled ) {
function createPositionalPseudo (line 1039) | function createPositionalPseudo( fn ) {
function testContext (line 1062) | function testContext( context ) {
function setFilters (line 2150) | function setFilters() {}
function toSelector (line 2221) | function toSelector( tokens ) {
function addCombinator (line 2231) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2295) | function elementMatcher( matchers ) {
function multipleContexts (line 2309) | function multipleContexts( selector, contexts, results ) {
function condense (line 2318) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2339) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2432) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2490) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function nodeName (line 2826) | function nodeName( elem, name ) {
function winnow (line 2836) | function winnow( elements, qualifier, not ) {
function sibling (line 3131) | function sibling( cur, dir ) {
function createOptions (line 3218) | function createOptions( options ) {
function Identity (line 3443) | function Identity( v ) {
function Thrower (line 3446) | function Thrower( ex ) {
function adoptValue (line 3450) | function adoptValue( value, resolve, reject, noValue ) {
function resolve (line 3543) | function resolve( depth, deferred, handler, special ) {
function completed (line 3908) | function completed() {
function fcamelCase (line 4003) | function fcamelCase( all, letter ) {
function camelCase (line 4010) | function camelCase( string ) {
function Data (line 4027) | function Data() {
function getData (line 4196) | function getData( data ) {
function dataAttr (line 4221) | function dataAttr( elem, key, data ) {
function adjustCSS (line 4554) | function adjustCSS( elem, prop, valueParts, tween ) {
function getDefaultDisplay (line 4622) | function getDefaultDisplay( elem ) {
function showHide (line 4645) | function showHide( elements, show ) {
function getAll (line 4746) | function getAll( context, tag ) {
function setGlobalEval (line 4771) | function setGlobalEval( elems, refElements ) {
function buildFragment (line 4787) | function buildFragment( elems, context, scripts, selection, ignored ) {
function returnTrue (line 4908) | function returnTrue() {
function returnFalse (line 4912) | function returnFalse() {
function expectSync (line 4922) | function expectSync( elem, type ) {
function safeActiveElement (line 4929) | function safeActiveElement() {
function on (line 4935) | function on( elem, types, selector, data, fn, one ) {
function leverageNative (line 5420) | function leverageNative( el, type, expectSync ) {
function manipulationTarget (line 5791) | function manipulationTarget( elem, content ) {
function disableScript (line 5802) | function disableScript( elem ) {
function restoreScript (line 5806) | function restoreScript( elem ) {
function cloneCopyEvent (line 5816) | function cloneCopyEvent( src, dest ) {
function fixInput (line 5851) | function fixInput( src, dest ) {
function domManip (line 5864) | function domManip( collection, args, callback, ignored ) {
function remove (line 5956) | function remove( elem, selector, keepData ) {
function computeStyleTests (line 6249) | function computeStyleTests() {
function roundPixelMeasures (line 6293) | function roundPixelMeasures( measure ) {
function curCSS (line 6338) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 6391) | function addGetHookIf( conditionFn, hookFn ) {
function vendorPropName (line 6416) | function vendorPropName( name ) {
function finalPropName (line 6431) | function finalPropName( name ) {
function setPositiveNumber (line 6457) | function setPositiveNumber( elem, value, subtract ) {
function boxModelAdjustment (line 6469) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
function getWidthOrHeight (line 6537) | function getWidthOrHeight( elem, dimension, extra ) {
function Tween (line 6904) | function Tween( elem, options, prop, end, easing ) {
function schedule (line 7027) | function schedule() {
function createFxNow (line 7040) | function createFxNow() {
function genFx (line 7048) | function genFx( type, includeWidth ) {
function createTween (line 7068) | function createTween( value, prop, animation ) {
function defaultPrefilter (line 7082) | function defaultPrefilter( elem, props, opts ) {
function propFilter (line 7254) | function propFilter( props, specialEasing ) {
function Animation (line 7291) | function Animation( elem, properties, options ) {
function stripAndCollapse (line 8006) | function stripAndCollapse( value ) {
function getClass (line 8012) | function getClass( elem ) {
function classesToArray (line 8016) | function classesToArray( value ) {
function buildParams (line 8638) | function buildParams( prefix, obj, traditional, add ) {
function addToPrefiltersOrTransports (line 8792) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 8826) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 8855) | function ajaxExtend( target, src ) {
function ajaxHandleResponses (line 8875) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 8933) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function done (line 9448) | function done( status, nativeStatusText, responses, headers ) {
FILE: docs-aside/_static/jquery-3.5.1.js
function DOMEval (line 103) | function DOMEval( code, node, doc ) {
function toType (line 133) | function toType( obj ) {
function isArrayLike (line 503) | function isArrayLike( obj ) {
function Sizzle (line 755) | function Sizzle( selector, context, results, seed ) {
function createCache (line 903) | function createCache() {
function markFunction (line 923) | function markFunction( fn ) {
function assert (line 932) | function assert( fn ) {
function addHandle (line 956) | function addHandle( attrs, handler ) {
function siblingCheck (line 971) | function siblingCheck( a, b ) {
function createInputPseudo (line 997) | function createInputPseudo( type ) {
function createButtonPseudo (line 1008) | function createButtonPseudo( type ) {
function createDisabledPseudo (line 1019) | function createDisabledPseudo( disabled ) {
function createPositionalPseudo (line 1075) | function createPositionalPseudo( fn ) {
function testContext (line 1098) | function testContext( context ) {
function setFilters (line 2309) | function setFilters() {}
function toSelector (line 2383) | function toSelector( tokens ) {
function addCombinator (line 2393) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2460) | function elementMatcher( matchers ) {
function multipleContexts (line 2474) | function multipleContexts( selector, contexts, results ) {
function condense (line 2483) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2504) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2604) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2667) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function nodeName (line 3025) | function nodeName( elem, name ) {
function winnow (line 3035) | function winnow( elements, qualifier, not ) {
function sibling (line 3330) | function sibling( cur, dir ) {
function createOptions (line 3423) | function createOptions( options ) {
function Identity (line 3648) | function Identity( v ) {
function Thrower (line 3651) | function Thrower( ex ) {
function adoptValue (line 3655) | function adoptValue( value, resolve, reject, noValue ) {
function resolve (line 3748) | function resolve( depth, deferred, handler, special ) {
function completed (line 4113) | function completed() {
function fcamelCase (line 4208) | function fcamelCase( _all, letter ) {
function camelCase (line 4215) | function camelCase( string ) {
function Data (line 4232) | function Data() {
function getData (line 4401) | function getData( data ) {
function dataAttr (line 4426) | function dataAttr( elem, key, data ) {
function adjustCSS (line 4738) | function adjustCSS( elem, prop, valueParts, tween ) {
function getDefaultDisplay (line 4806) | function getDefaultDisplay( elem ) {
function showHide (line 4829) | function showHide( elements, show ) {
function getAll (line 4961) | function getAll( context, tag ) {
function setGlobalEval (line 4986) | function setGlobalEval( elems, refElements ) {
function buildFragment (line 5002) | function buildFragment( elems, context, scripts, selection, ignored ) {
function returnTrue (line 5097) | function returnTrue() {
function returnFalse (line 5101) | function returnFalse() {
function expectSync (line 5111) | function expectSync( elem, type ) {
function safeActiveElement (line 5118) | function safeActiveElement() {
function on (line 5124) | function on( elem, types, selector, data, fn, one ) {
function leverageNative (line 5612) | function leverageNative( el, type, expectSync ) {
function manipulationTarget (line 5976) | function manipulationTarget( elem, content ) {
function disableScript (line 5987) | function disableScript( elem ) {
function restoreScript (line 5991) | function restoreScript( elem ) {
function cloneCopyEvent (line 6001) | function cloneCopyEvent( src, dest ) {
function fixInput (line 6034) | function fixInput( src, dest ) {
function domManip (line 6047) | function domManip( collection, args, callback, ignored ) {
function remove (line 6139) | function remove( elem, selector, keepData ) {
function computeStyleTests (line 6453) | function computeStyleTests() {
function roundPixelMeasures (line 6497) | function roundPixelMeasures( measure ) {
function curCSS (line 6571) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 6624) | function addGetHookIf( conditionFn, hookFn ) {
function vendorPropName (line 6649) | function vendorPropName( name ) {
function finalPropName (line 6664) | function finalPropName( name ) {
function setPositiveNumber (line 6690) | function setPositiveNumber( _elem, value, subtract ) {
function boxModelAdjustment (line 6702) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
function getWidthOrHeight (line 6770) | function getWidthOrHeight( elem, dimension, extra ) {
function Tween (line 7146) | function Tween( elem, options, prop, end, easing ) {
function schedule (line 7269) | function schedule() {
function createFxNow (line 7282) | function createFxNow() {
function genFx (line 7290) | function genFx( type, includeWidth ) {
function createTween (line 7310) | function createTween( value, prop, animation ) {
function defaultPrefilter (line 7324) | function defaultPrefilter( elem, props, opts ) {
function propFilter (line 7496) | function propFilter( props, specialEasing ) {
function Animation (line 7533) | function Animation( elem, properties, options ) {
function stripAndCollapse (line 8248) | function stripAndCollapse( value ) {
function getClass (line 8254) | function getClass( elem ) {
function classesToArray (line 8258) | function classesToArray( value ) {
function buildParams (line 8885) | function buildParams( prefix, obj, traditional, add ) {
function addToPrefiltersOrTransports (line 9039) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 9073) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 9102) | function ajaxExtend( target, src ) {
function ajaxHandleResponses (line 9122) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 9180) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function done (line 9696) | function done( status, nativeStatusText, responses, headers ) {
FILE: docs-aside/_static/jquery.js
function b (line 2) | function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e...
function w (line 2) | function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof...
function p (line 2) | function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e...
function se (line 2) | function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeTy...
function ue (line 2) | function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cac...
function le (line 2) | function le(e){return e[S]=!0,e}
function ce (line 2) | function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(...
function fe (line 2) | function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[...
function pe (line 2) | function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourc...
function de (line 2) | function de(t){return function(e){return"input"===e.nodeName.toLowerCase...
function he (line 2) | function he(n){return function(e){var t=e.nodeName.toLowerCase();return(...
function ge (line 2) | function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e....
function ve (line 2) | function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,...
function ye (line 2) | function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
function me (line 2) | function me(){}
function xe (line 2) | function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
function be (line 2) | function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r...
function we (line 2) | function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r-...
function Te (line 2) | function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(...
function Ce (line 2) | function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)...
function Ee (line 2) | function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.r...
function A (line 2) | function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerC...
function D (line 2) | function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,...
function O (line 2) | function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}
function R (line 2) | function R(e){return e}
function M (line 2) | function M(e){throw e}
function I (line 2) | function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n...
function l (line 2) | function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(...
function B (line 2) | function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventLi...
function U (line 2) | function U(e,t){return t.toUpperCase()}
function X (line 2) | function X(e){return e.replace(_,"ms-").replace(z,U)}
function G (line 2) | function G(){this.expando=S.expando+G.uid++}
function Z (line 2) | function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.r...
function se (line 2) | function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:functio...
function le (line 2) | function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[...
function ve (line 2) | function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagNa...
function ye (line 2) | function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",...
function xe (line 2) | function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),...
function Ce (line 2) | function Ce(){return!0}
function Ee (line 2) | function Ee(){return!1}
function Se (line 2) | function Se(e,t){return e===function(){try{return E.activeElement}catch(...
function ke (line 2) | function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"...
function Ae (line 2) | function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handle...
function qe (line 2) | function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"...
function Le (line 2) | function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}
function He (line 2) | function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.sli...
function Oe (line 2) | function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=...
function Pe (line 2) | function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],...
function Re (line 2) | function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
function Be (line 2) | function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n....
function $e (line 2) | function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(...
function e (line 2) | function e(){if(l){u.style.cssText="position:absolute;left:-11111px;widt...
function t (line 2) | function t(e){return Math.round(parseFloat(e))}
function Xe (line 2) | function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=fun...
function Je (line 2) | function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[...
function Ke (line 2) | function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border...
function Ze (line 2) | function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-bo...
function et (line 2) | function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}
function st (line 2) | function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnima...
function ut (line 2) | function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}
function lt (line 2) | function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin...
function ct (line 2) | function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["...
function ft (line 2) | function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().alw...
function vt (line 2) | function vt(e){return(e.match(P)||[]).join(" ")}
function yt (line 2) | function yt(e){return e.getAttribute&&e.getAttribute("class")||""}
function mt (line 2) | function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)|...
function Dt (line 2) | function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r|...
function Ft (line 2) | function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var ...
function Bt (line 2) | function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!...
function $t (line 2) | function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)voi...
function l (line 2) | function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=vo...
FILE: docs-aside/_static/js/badge_only.js
function r (line 1) | function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{...
FILE: docs-aside/_static/js/theme.js
function t (line 1) | function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{...
FILE: docs-aside/_static/language_data.js
function splitQuery (line 278) | function splitQuery(query) {
FILE: docs-aside/_static/searchtools.js
function splitQuery (line 47) | function splitQuery(query) {
function pulse (line 117) | function pulse() {
function displayNextItem (line 247) | function displayNextItem() {
FILE: docs-aside/_static/underscore-1.3.1.js
function eq (line 669) | function eq(a, b, stack) {
FILE: docs-aside/_static/underscore.js
function q (line 8) | function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)re...
FILE: docs/source/exts/blockname.py
function block_name (line 6) | def block_name(name, rawtext, text, lineno, inliner, options={}, content...
function setup (line 45) | def setup(app):
FILE: examples/RVC2/rvc4_11.py
function background_graphics (line 24) | def background_graphics(ax):
function polar (line 30) | def polar(x, dict):
FILE: examples/RVC2/rvc4_4.py
function background_graphics (line 12) | def background_graphics(ax):
FILE: examples/RVC2/rvc4_6.py
function plot_homline (line 17) | def plot_homline(ax, line, *args, xlim, ylim, **kwargs):
function background_graphics (line 26) | def background_graphics(ax):
FILE: examples/RVC2/rvc4_8.py
function background_graphics (line 27) | def background_graphics(ax):
function pure_pursuit (line 31) | def pure_pursuit(cp, R=None, traj=None):
FILE: tests/test_bdsim.py
class BDSimTest (line 12) | class BDSimTest(unittest.TestCase):
method test_options (line 13) | def test_options(self):
method test_bdrun (line 46) | def test_bdrun(self):
method test_sim (line 59) | def test_sim(self):
method test_sim_implicit (line 94) | def test_sim_implicit(self):
FILE: tests/test_blockdiagram.py
class BlockTest (line 12) | class BlockTest(unittest.TestCase):
class BlockDiagramTest (line 16) | class BlockDiagramTest(unittest.TestCase):
class WiringTest (line 20) | class WiringTest(unittest.TestCase):
method setUpClass (line 22) | def setUpClass(cls):
method test_bd (line 25) | def test_bd(self):
method test_connect_1 (line 40) | def test_connect_1(self):
method test_connect_2 (line 50) | def test_connect_2(self):
method test_multi_connect (line 63) | def test_multi_connect(self):
method test_ports1 (line 75) | def test_ports1(self):
method test_ports2 (line 88) | def test_ports2(self):
method test_ports3 (line 105) | def test_ports3(self):
method test_slice1 (line 122) | def test_slice1(self):
method test_slice2 (line 134) | def test_slice2(self):
method test_slice3 (line 148) | def test_slice3(self):
method test_slice4 (line 162) | def test_slice4(self):
method test_slice5 (line 176) | def test_slice5(self):
method test_slice5a (line 191) | def test_slice5a(self):
method test_slice6 (line 206) | def test_slice6(self):
method test_assignment11 (line 220) | def test_assignment11(self):
method test_assignment2 (line 233) | def test_assignment2(self):
method test_assignment3 (line 249) | def test_assignment3(self):
method test_chain1 (line 264) | def test_chain1(self):
method test_chain2 (line 275) | def test_chain2(self):
method test_chain3 (line 286) | def test_chain3(self):
method test_inline1 (line 302) | def test_inline1(self):
method test_inline2 (line 315) | def test_inline2(self):
method test_autosum1 (line 328) | def test_autosum1(self):
method test_autosum2a (line 343) | def test_autosum2a(self):
method test_autosum2b (line 358) | def test_autosum2b(self):
method test_autosum2c (line 373) | def test_autosum2c(self):
method test_autosum3a (line 388) | def test_autosum3a(self):
method test_autosum3b (line 402) | def test_autosum3b(self):
method test_autosub1 (line 417) | def test_autosub1(self):
method test_autosub2a (line 432) | def test_autosub2a(self):
method test_autosub2b (line 447) | def test_autosub2b(self):
method test_autosub2c (line 462) | def test_autosub2c(self):
method test_autosub3a (line 477) | def test_autosub3a(self):
method test_autosub3b (line 491) | def test_autosub3b(self):
method test_autoneg1 (line 507) | def test_autoneg1(self):
method test_autoneg2 (line 521) | def test_autoneg2(self):
method test_autoprod1 (line 537) | def test_autoprod1(self):
method test_autoprod2a (line 552) | def test_autoprod2a(self):
method test_autoprod2b (line 567) | def test_autoprod2b(self):
method test_autoprod2c (line 582) | def test_autoprod2c(self):
method test_autoprod3a (line 597) | def test_autoprod3a(self):
method test_autoprod3b (line 612) | def test_autoprod3b(self):
method test_autodiv1 (line 629) | def test_autodiv1(self):
method test_autodiv2a (line 644) | def test_autodiv2a(self):
method test_autodiv2b (line 659) | def test_autodiv2b(self):
method test_autodiv2c (line 674) | def test_autodiv2c(self):
method test_autodiv3a (line 689) | def test_autodiv3a(self):
method test_autodiv3b (line 707) | def test_autodiv3b(self):
class ImportTest (line 723) | class ImportTest(unittest.TestCase):
method setUpClass (line 725) | def setUpClass(cls):
method test_import1 (line 728) | def test_import1(self):
FILE: tests/test_components.py
class WireTest (line 8) | class WireTest(unittest.TestCase):
method test_init (line 9) | def test_init(self):
method test_bd (line 19) | def test_bd(self):
class PlugTest (line 39) | class PlugTest(unittest.TestCase):
method test_portlist (line 40) | def test_portlist(self):
class BlockTest (line 65) | class BlockTest(unittest.TestCase):
method test_init (line 66) | def test_init(self):
method test_predicates (line 71) | def test_predicates(self):
class PriorityQTest (line 84) | class PriorityQTest(unittest.TestCase):
method test_pushpop (line 85) | def test_pushpop(self):
method test_threshold (line 111) | def test_threshold(self):
method test_until (line 125) | def test_until(self):
class ClockTest (line 143) | class ClockTest(unittest.TestCase):
method test_init (line 144) | def test_init(self):
method test_block (line 160) | def test_block(self):
method test_str (line 166) | def test_str(self):
method test_state (line 186) | def test_state(self):
method test_time (line 211) | def test_time(self):
class StructTest (line 226) | class StructTest(unittest.TestCase):
method test_struct (line 227) | def test_struct(self):
method test_struct_struct (line 242) | def test_struct_struct(self):
method test_item (line 253) | def test_item(self):
method test_init (line 263) | def test_init(self):
method test_len (line 285) | def test_len(self):
class OptionTest (line 290) | class OptionTest(unittest.TestCase):
method test_init (line 291) | def test_init(self):
method test_init1 (line 294) | def test_init1(self):
method test_init2 (line 300) | def test_init2(self):
method test_init1 (line 306) | def test_init1(self):
method test_set (line 313) | def test_set(self):
method test_set2 (line 320) | def test_set2(self):
method test_set3 (line 327) | def test_set3(self):
FILE: tests/test_connections.py
class ConnectionsTest (line 12) | class ConnectionsTest(unittest.TestCase):
method test_mux (line 14) | def test_mux(self):
method test_demux (line 26) | def test_demux(self):
method test_item (line 31) | def test_item(self):
FILE: tests/test_discrete.py
class DiscreteTest (line 14) | class DiscreteTest(unittest.TestCase):
method test_ZOH (line 16) | def test_ZOH(self):
method test_dintegrator (line 35) | def test_dintegrator(self):
method test_dintegrator_vec (line 58) | def test_dintegrator_vec(self):
method test_pose_dintegrator (line 82) | def test_pose_dintegrator(self):
FILE: tests/test_functions.py
class FunctionBlockTest (line 12) | class FunctionBlockTest(unittest.TestCase):
method test_gain (line 14) | def test_gain(self):
method test_sum (line 44) | def test_sum(self):
method test_prod (line 77) | def test_prod(self):
method test_clip (line 90) | def test_clip(self):
method test_function (line 117) | def test_function(self):
method test_interpolate (line 134) | def test_interpolate(self):
FILE: tests/test_linalg.py
class LinalgBlockTest (line 12) | class LinalgBlockTest(unittest.TestCase):
method test_inverse (line 14) | def test_inverse(self):
method test_transpose (line 33) | def test_transpose(self):
method test_det (line 38) | def test_det(self):
method test_cond (line 43) | def test_cond(self):
method test_norm (line 48) | def test_norm(self):
method test_slice1 (line 53) | def test_slice1(self):
method test_slice2 (line 77) | def test_slice2(self):
method test_flatten (line 122) | def test_flatten(self):
FILE: tests/test_sinks.py
class SinkBlockTest (line 45) | class SinkBlockTest(unittest.TestCase):
method test_print (line 46) | def test_print(self):
method test_stop (line 95) | def test_stop(self):
method test_watch (line 134) | def test_watch(self):
FILE: tests/test_sources.py
class SourceBlockTest (line 43) | class SourceBlockTest(unittest.TestCase):
method test_constant (line 44) | def test_constant(self):
method test_waveform_sine (line 58) | def test_waveform_sine(self):
method test_waveform_triangle (line 96) | def test_waveform_triangle(self):
method test_waveform_square (line 135) | def test_waveform_square(self):
method test_step (line 172) | def test_step(self):
method test_piecewise (line 188) | def test_piecewise(self):
method test_ramp (line 204) | def test_ramp(self):
FILE: tests/test_spatial.py
class SpatialMathBlockTest (line 11) | class SpatialMathBlockTest(unittest.TestCase):
method test_pose_postmul (line 13) | def test_pose_postmul(self):
method test_pose_premul (line 20) | def test_pose_premul(self):
method test_pose_inverse (line 27) | def test_pose_inverse(self):
method test_vector_transform (line 34) | def test_vector_transform(self):
FILE: tests/test_transfers.py
class TransferTest (line 45) | class TransferTest(unittest.TestCase):
method test_LTI_SS (line 47) | def test_LTI_SS(self):
method test_LTI_SISO (line 69) | def test_LTI_SISO(self):
method test_integrator (line 76) | def test_integrator(self):
method test_dintegrator_vec (line 94) | def test_dintegrator_vec(self):
Condensed preview — 191 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,845K chars).
[
{
"path": ".github/ISSUE_TEMPLATE/0bdsim-bug-report.md",
"chars": 813,
"preview": "---\nname: bdsim bug report\nabout: Create a report to help us improve bdsim, the Python based block diagram simulator\ntit"
},
{
"path": ".github/ISSUE_TEMPLATE/1bdedit-bug-report.md",
"chars": 1337,
"preview": "---\nname: bdedit bug report\nabout: Create a report to help us improve bdedit, the graphical editor for block diagrams.\nt"
},
{
"path": ".github/workflows/master.yml",
"chars": 3092,
"preview": "\n# This workflow will install Python dependencies, run tests and lint with a variety of Python versions\n# For more infor"
},
{
"path": ".github/workflows/publish.yml",
"chars": 1074,
"preview": "# This workflows will upload a Python Package using Twine when a release is created\n# For more information see: https://"
},
{
"path": ".gitignore",
"chars": 1863,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\nuntitled*.py\n\n# docs\n*.pdf\n*.dot\n\n\n# MATLAB\n*"
},
{
"path": "CONTRIBUTING.md",
"chars": 2119,
"preview": "# Contributing\n\nThis is a small-scale private project with a team size of about 0.01. I'd be delighted if you'd like to "
},
{
"path": "Icons.qrc",
"chars": 0,
"preview": ""
},
{
"path": "LICENSE",
"chars": 1068,
"preview": "MIT License\n\nCopyright (c) 2020 Peter Corke\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
},
{
"path": "Makefile",
"chars": 846,
"preview": ".FORCE:\n\nBLUE=\\033[0;34m\nBLACK=\\033[0;30m\n\nhelp:\n\t@echo \"$(BLUE) make test - run all unit tests\"\n\t@echo \" make coverage "
},
{
"path": "README.md",
"chars": 18428,
"preview": "[\n#\n# WARNING"
},
{
"path": "bdsim/bdedit/Icons.qrc",
"chars": 1005,
"preview": "<!DOCTYPE RCC><RCC version=\"1.0\">\n<qresource prefix=\"Icons_Reference\">\n\t<file>Icons/bdsim_icon.png</file>\n\t<file>Icons/b"
},
{
"path": "bdsim/bdedit/LICENSE",
"chars": 35122,
"preview": "GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation,"
},
{
"path": "bdsim/bdedit/README.md",
"chars": 5029,
"preview": "\n\n\n`bdedit` is a multi-platform PyQt"
},
{
"path": "bdsim/bdedit/TechReport.md",
"chars": 49148,
"preview": "bdedit was developed by a QUT computer science student project team. The following is the final report of that student "
},
{
"path": "bdsim/bdedit/__init__.py",
"chars": 550,
"preview": "# print(\"bdedit package __init__ start\")\nfrom .block import *\nfrom .block_wire import *\nfrom .block_socket import *\n\nfro"
},
{
"path": "bdsim/bdedit/bdedit.py",
"chars": 6767,
"preview": "#!/usr/bin/env python3\n\n# Library imports\nimport os\nimport sys\nimport ctypes\nimport argparse\nfrom pathlib import Path\n\nf"
},
{
"path": "bdsim/bdedit/block.py",
"chars": 46296,
"preview": "# Library imports\nimport os\nimport json\nfrom collections import OrderedDict\n\n# BdEdit imports\nfrom bdsim.bdedit.block_so"
},
{
"path": "bdsim/bdedit/block_connector_block.py",
"chars": 3493,
"preview": "# BdEdit imports\nfrom bdsim.bdedit.block import *\nfrom bdsim.bdedit.block_socket import *\nfrom bdsim.bdedit.block_graphi"
},
{
"path": "bdsim/bdedit/block_graphics_block.py",
"chars": 27281,
"preview": "# Library imports\nimport sys\nimport traceback\n\n# PyQt5 imports\nfrom PyQt5.QtGui import *\nfrom PyQt5.QtCore import *\nfrom"
},
{
"path": "bdsim/bdedit/block_graphics_socket.py",
"chars": 16144,
"preview": "# Library imports\nimport sys\nimport traceback\nfrom PIL import ImageFont\n\n# PyQt5 imports\nfrom PyQt5.QtGui import *\nfrom "
},
{
"path": "bdsim/bdedit/block_graphics_wire.py",
"chars": 65171,
"preview": "# Library imports\nimport sys\nimport traceback\nfrom math import dist\n\n# PyQt5 imports\nfrom PyQt5.QtGui import *\nfrom PyQt"
},
{
"path": "bdsim/bdedit/block_importer.py",
"chars": 26025,
"preview": "# !/usr/bin/env python\n# -*- coding: utf-8 -*-\n\nimport re\nimport inspect\nimport copy\nimport numpy as np\nimport importlib"
},
{
"path": "bdsim/bdedit/block_main_block.py",
"chars": 1681,
"preview": "# BdEdit imports\nfrom bdsim.bdedit.block import *\nfrom bdsim.bdedit.block_socket import *\nfrom bdsim.bdedit.block_graphi"
},
{
"path": "bdsim/bdedit/block_param_window.py",
"chars": 56804,
"preview": "# Library imports\nimport ast\nimport math\n\n# PyQt5 Imports\nfrom PyQt5.QtWidgets import *\nfrom PyQt5.QtGui import QPixmap,"
},
{
"path": "bdsim/bdedit/block_socket.py",
"chars": 10984,
"preview": "# Library imports\nfrom collections import OrderedDict\n\n# BdEdit imports\nfrom bdsim.bdedit.interface_serialize import Ser"
},
{
"path": "bdsim/bdedit/block_wire.py",
"chars": 22093,
"preview": "# Library imports\nimport time\nimport copy\nfrom collections import OrderedDict\n\n# BdEdit imports\nfrom bdsim.bdedit.block_"
},
{
"path": "bdsim/bdedit/docs/.buildinfo",
"chars": 230,
"preview": "# Sphinx build info version 1\n# This file hashes the configuration used when building these files. When it is not found,"
},
{
"path": "bdsim/bdedit/docs/_sources/bdedit.rst.txt",
"chars": 2814,
"preview": "bdedit package\n==============\n\nSubmodules\n----------\n\nbdedit.Icons module\n-------------------\n\n.. automodule:: bdedit.Ic"
},
{
"path": "bdsim/bdedit/docs/_sources/index.rst.txt",
"chars": 444,
"preview": ".. BdEdit documentation master file, created by\n sphinx-quickstart on Wed Jun 9 03:42:11 2021.\n You can adapt this "
},
{
"path": "bdsim/bdedit/docs/_sources/modules.rst.txt",
"chars": 55,
"preview": "bdedit\n======\n\n.. toctree::\n :maxdepth: 4\n\n bdedit\n"
},
{
"path": "bdsim/bdedit/docs/_static/alabaster.css",
"chars": 11185,
"preview": "@import url(\"basic.css\");\n\n/* -- page layout ----------------------------------------------------------- */\n\nbody {\n "
},
{
"path": "bdsim/bdedit/docs/_static/basic.css",
"chars": 14652,
"preview": "/*\n * basic.css\n * ~~~~~~~~~\n *\n * Sphinx stylesheet -- basic theme.\n *\n * :copyright: Copyright 2007-2021 by the Sphinx"
},
{
"path": "bdsim/bdedit/docs/_static/css/badge_only.css",
"chars": 3275,
"preview": ".fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:\""
},
{
"path": "bdsim/bdedit/docs/_static/css/theme.css",
"chars": 122337,
"preview": "html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgr"
},
{
"path": "bdsim/bdedit/docs/_static/custom.css",
"chars": 42,
"preview": "/* This file intentionally left blank. */\n"
},
{
"path": "bdsim/bdedit/docs/_static/doctools.js",
"chars": 9592,
"preview": "/*\n * doctools.js\n * ~~~~~~~~~~~\n *\n * Sphinx JavaScript utilities for all documentation.\n *\n * :copyright: Copyright 20"
},
{
"path": "bdsim/bdedit/docs/_static/documentation_options.js",
"chars": 350,
"preview": "var DOCUMENTATION_OPTIONS = {\n URL_ROOT: document.getElementById(\"documentation_options\").getAttribute('data-url_root"
},
{
"path": "bdsim/bdedit/docs/_static/jquery-3.5.1.js",
"chars": 287630,
"preview": "/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * C"
},
{
"path": "bdsim/bdedit/docs/_static/jquery.js",
"chars": 89476,
"preview": "/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object"
},
{
"path": "bdsim/bdedit/docs/_static/js/badge_only.js",
"chars": 934,
"preview": "!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.expo"
},
{
"path": "bdsim/bdedit/docs/_static/js/theme.js",
"chars": 4916,
"preview": "!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.expo"
},
{
"path": "bdsim/bdedit/docs/_static/language_data.js",
"chars": 10854,
"preview": "/*\n * language_data.js\n * ~~~~~~~~~~~~~~~~\n *\n * This script contains the language-specific data used by searchtools.js,"
},
{
"path": "bdsim/bdedit/docs/_static/pygments.css",
"chars": 4819,
"preview": "pre { line-height: 125%; }\ntd.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; paddin"
},
{
"path": "bdsim/bdedit/docs/_static/searchtools.js",
"chars": 16578,
"preview": "/*\n * searchtools.js\n * ~~~~~~~~~~~~~~~~\n *\n * Sphinx JavaScript utilities for the full-text search.\n *\n * :copyright: C"
},
{
"path": "bdsim/bdedit/docs/_static/underscore-1.13.1.js",
"chars": 68408,
"preview": "(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory("
},
{
"path": "bdsim/bdedit/docs/_static/underscore.js",
"chars": 19530,
"preview": "!function(n,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define"
},
{
"path": "bdsim/bdedit/docs/bdedit.html",
"chars": 261515,
"preview": "\n\n<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n \n <meta name=\"viewport\" co"
},
{
"path": "bdsim/bdedit/docs/genindex.html",
"chars": 42612,
"preview": "\n\n<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n \n <meta name=\"viewport\" co"
},
{
"path": "bdsim/bdedit/docs/index.html",
"chars": 5481,
"preview": "\n\n<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n \n <meta name=\"viewport\" co"
},
{
"path": "bdsim/bdedit/docs/modules.html",
"chars": 7317,
"preview": "\n\n<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n \n <meta name=\"viewport\" co"
},
{
"path": "bdsim/bdedit/docs/py-modindex.html",
"chars": 7610,
"preview": "\n\n<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n \n <meta name=\"viewport\" co"
},
{
"path": "bdsim/bdedit/docs/search.html",
"chars": 4468,
"preview": "\n\n<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n \n <meta name=\"viewport\" co"
},
{
"path": "bdsim/bdedit/docs/searchindex.js",
"chars": 17126,
"preview": "Search.setIndex({docnames:[\"bdedit\",\"block_docs/block_discrete_blocks\",\"block_docs/block_function_blocks\",\"block_docs/bl"
},
{
"path": "bdsim/bdedit/docstring.md",
"chars": 5415,
"preview": "\n# Parameter types and defaults\n\nThe docstrings of bdsim blocks are parsed to determine the types and default values of "
},
{
"path": "bdsim/bdedit/floating_label.py",
"chars": 8773,
"preview": "# Library imports\nimport json\nimport copy\nfrom collections import OrderedDict\n\n# PyQt5 imports\nfrom PyQt5.QtGui import *"
},
{
"path": "bdsim/bdedit/floating_label_graphics.py",
"chars": 6662,
"preview": "import copy\n\n# PyQt5 imports\nfrom PyQt5.QtWidgets import *\nfrom PyQt5.QtCore import *\nfrom PyQt5.QtGui import *\n\n\nclass "
},
{
"path": "bdsim/bdedit/grouping_box.py",
"chars": 3482,
"preview": "# Library imports\nimport json\nimport copy\nfrom collections import OrderedDict\n\n# PyQt5 imports\nfrom PyQt5.QtGui import *"
},
{
"path": "bdsim/bdedit/grouping_box_graphics.py",
"chars": 13971,
"preview": "# PyQt5 imports\nimport copy\n\nfrom PyQt5.QtGui import *\nfrom PyQt5.QtCore import *\nfrom PyQt5.QtWidgets import *\n\n\n# Majo"
},
{
"path": "bdsim/bdedit/interface.py",
"chars": 35012,
"preview": "# Library imports\nimport os\nimport fnmatch\n\n# PyQt5 imports\nfrom PyQt5.QtGui import *\nfrom PyQt5.QtCore import *\nfrom Py"
},
{
"path": "bdsim/bdedit/interface_graphics_scene.py",
"chars": 20471,
"preview": "# Library imports\nimport math\n\n# PyQt5 imports\nfrom PyQt5.QtGui import *\nfrom PyQt5.QtCore import *\nfrom PyQt5.QtWidgets"
},
{
"path": "bdsim/bdedit/interface_graphics_view.py",
"chars": 36974,
"preview": "# PyQt5 imports\nfrom PyQt5.QtGui import *\nfrom PyQt5.QtCore import *\nfrom PyQt5.QtWidgets import QGraphicsView\n\n# BdEdit"
},
{
"path": "bdsim/bdedit/interface_manager.py",
"chars": 41772,
"preview": "# Library imports\nimport os\nimport json\nimport subprocess\nimport datetime\nfrom sys import platform\nfrom pathlib import P"
},
{
"path": "bdsim/bdedit/interface_scene.py",
"chars": 21050,
"preview": "# Library imports\nimport json\nimport time\nimport getpass\nfrom PIL import ImageFont\nfrom collections import OrderedDict\n\n"
},
{
"path": "bdsim/bdedit/interface_scene_history.py",
"chars": 7608,
"preview": "# Library imports\nimport sys\nimport traceback\n\n# BdEdit imports\nfrom bdsim.bdedit.block_graphics_wire import GraphicsWir"
},
{
"path": "bdsim/bdedit/interface_serialize.py",
"chars": 1645,
"preview": "class Serializable:\n \"\"\"\n The ``Serializable`` class provides three essential methods for: ensuring uniqueness\n "
},
{
"path": "bdsim/bdrun.py",
"chars": 8230,
"preview": "import json\nimport sys\nimport traceback\n\nfrom bdsim import BDSim\nfrom colored import fg, attr\n\n# available for use in bd"
},
{
"path": "bdsim/bin/stubgen.py",
"chars": 720,
"preview": "#!/usr/bin/env python3\n\nimport bdsim\nimport inspect\n\nsim = bdsim.BDSim()\nfilename = \"blockdiagram.pyi\"\n\nwith open(filena"
},
{
"path": "bdsim/blockdiagram.py",
"chars": 47447,
"preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Mon May 18 21:43:18 2020\n\n@author: corkep\n\"\"\"\nimport os\nfr"
},
{
"path": "bdsim/blockdiagram.pyi",
"chars": 43929,
"preview": "from spatialmath.base.types import *\nimport numpy as np\nimport math\n\nclass BlockDiagram:\n\n\n # bdsim.blocks.functions."
},
{
"path": "bdsim/blocks/IO/Firmata.py",
"chars": 2632,
"preview": "\"\"\"\nDefine real-time i/o blocks for use in block diagrams. These are blocks that:\n\n- have inputs or outputs\n- have no s"
},
{
"path": "bdsim/blocks/IO/README.md",
"chars": 1028,
"preview": "This folder contains \"drivers\" for particular i/o hardware configurations.\n\nEach file contains a set of class definition"
},
{
"path": "bdsim/blocks/Icons/README.md",
"chars": 1853,
"preview": "# Icon files\n\nIcons are 250x250 greyscale PNG images with black paint and a transparent background, and\nused only by `bd"
},
{
"path": "bdsim/blocks/Icons/icons.sh",
"chars": 2455,
"preview": "#! /bin/bash\n\nbdtex2icon -r 300 -o sum.png -t '\\sum'\nbdtex2icon -r 450 -o prod.png -t '\\Pi'\nbdtex2icon -r 200 -o norm.pn"
},
{
"path": "bdsim/blocks/README.md",
"chars": 612,
"preview": "This folder holds the core bdsim block definitions.\nEach block is a class with a CamelCase name.\nThe class definitions a"
},
{
"path": "bdsim/blocks/__init__.py",
"chars": 273,
"preview": "from .functions import *\nfrom .sources import *\nfrom .sinks import *\nfrom .transfers import *\nfrom .discrete import *\nfr"
},
{
"path": "bdsim/blocks/connections.py",
"chars": 15328,
"preview": "\"\"\"\nConnection blocks are in two categories:\n\n1. Signal manipulation:\n - have inputs and outputs\n - have no state "
},
{
"path": "bdsim/blocks/discrete.py",
"chars": 12583,
"preview": "\"\"\"\nTransfer blocks:\n\n- have inputs and outputs\n- have discrete-time state variables that are sampled/updated at the tim"
},
{
"path": "bdsim/blocks/displays.py",
"chars": 17748,
"preview": "\"\"\"\nSink blocks:\n\n- have inputs but no outputs\n- have no state variables\n- are a subclass of ``SinkBlock`` |rarr| ``Bloc"
},
{
"path": "bdsim/blocks/functions.py",
"chars": 23965,
"preview": "\"\"\"\nFunction blocks:\n\n- have inputs and outputs\n- have no state variables\n- are a subclass of ``FunctionBlock`` |rarr| `"
},
{
"path": "bdsim/blocks/linalg.py",
"chars": 14257,
"preview": "\"\"\"\nLinear algebra blocks:\n\n- have inputs and outputs\n- have no state variables\n- are a subclass of ``FunctionBlock`` |r"
},
{
"path": "bdsim/blocks/sinks.py",
"chars": 7432,
"preview": "\"\"\"\nSink blocks:\n\n- have inputs but no outputs\n- have no state variables\n- are a subclass of ``SinkBlock`` |rarr| ``Bloc"
},
{
"path": "bdsim/blocks/sources.py",
"chars": 13423,
"preview": "\"\"\"\nSource blocks:\n\n- have outputs but no inputs\n- have no state variables\n- are a subclass of ``SourceBlock`` |rarr| ``"
},
{
"path": "bdsim/blocks/spatial.py",
"chars": 5439,
"preview": "try:\n from spatialmath import SE2, SE3, SO2, SO3\n\n sm = True\nexcept:\n sm = False\n\nfrom bdsim.components import "
},
{
"path": "bdsim/blocks/transfers.py",
"chars": 19963,
"preview": "\"\"\"\nTransfer blocks:\n\n- have inputs and outputs\n- have state variables\n- are a subclass of ``TransferBlock`` |rarr| ``Bl"
},
{
"path": "bdsim/blocks/vision.py",
"chars": 442,
"preview": "\"\"\"\nDefine vision processing blocks for use in block diagrams. These are blocks that:\n\n- have inputs or outputs\n- have "
},
{
"path": "bdsim/components.py",
"chars": 67747,
"preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n\"\"\"\nComponents of the simulation system, namely blocks, wires and plugs.\n"
},
{
"path": "bdsim/graphics.py",
"chars": 10214,
"preview": "import sys\nimport matplotlib\nimport matplotlib.pyplot as plt\nfrom matplotlib import animation\nfrom bdsim.components impo"
},
{
"path": "bdsim/run_realtime.py",
"chars": 17320,
"preview": "import os\nfrom pathlib import Path\nimport sys\nimport importlib\nimport inspect\nfrom collections import Counter, namedtupl"
},
{
"path": "bdsim/run_sim.py",
"chars": 59363,
"preview": "import os\nfrom pathlib import Path\nimport sys\nimport importlib\nimport traceback as tb\nimport inspect\nfrom collections im"
},
{
"path": "bdsim/tk_editor/bdeditor.py",
"chars": 9378,
"preview": "#!/usr/bin/env python3\nimport sys\nimport os\nimport string\nimport time\nimport tkinter as tk\nfrom screeninfo import get_mo"
},
{
"path": "bdsim/tk_editor/edit.py",
"chars": 24442,
"preview": "import tkinter as tk\nimport numpy as np\nimport re\nfrom itertools import tee, pairwise\nfrom PIL import Image, ImageTk\n\n# "
},
{
"path": "bdsim/tk_editor/editor.py",
"chars": 2028,
"preview": "import tkinter as tk\n\n# init tk\nroot = tk.Tk()\nroot.title(\"bdsim\")\n\n# create widget\ncanvas = tk.Canvas(root, bg=\"white\""
},
{
"path": "bdsim/tk_editor/editor2.py",
"chars": 7760,
"preview": "import sys\nimport os\nimport string\nimport time\nimport tkinter as tk\n\nfrom itertools import tee\n\n\ndef pairwise(iterable):"
},
{
"path": "docs/Makefile",
"chars": 673,
"preview": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line, and also\n# from the "
},
{
"path": "docs/make.bat",
"chars": 799,
"preview": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sp"
},
{
"path": "docs/source/bdsim.blocks.rst",
"chars": 4151,
"preview": ".. _Block library:\n\n*************\nBlock library\n*************\n\n.. include:: <isonum.txt>\n\nThe block diagrams comprise bl"
},
{
"path": "docs/source/bdsim.rst",
"chars": 9009,
"preview": "Overview\n========\n\n\nGetting started\n---------------\n\nWe first sketch the dynamic system we want to simulate as a block d"
},
{
"path": "docs/source/conf.py",
"chars": 6310,
"preview": "# bdsim\n# Configuration file for the Sphinx documentation builder.\n#\n# This file only contains a selection of the most c"
},
{
"path": "docs/source/exts/blockname.py",
"chars": 2015,
"preview": "from docutils import nodes\n\n# from docutils.parsers.rst import Directive\n\n\ndef block_name(name, rawtext, text, lineno, i"
},
{
"path": "docs/source/index.rst",
"chars": 1400,
"preview": ".. Spatial Maths package documentation master file, created by\n sphinx-quickstart on Sun Apr 12 15:50:23 2020.\n You "
},
{
"path": "docs/source/internals.rst",
"chars": 2571,
"preview": "Supporting classes\n******************\n\n\n.. inheritance-diagram:: bdsim.components\n\n\nBDSim class\n===========\n\nThis class "
},
{
"path": "docs/source/modules.rst",
"chars": 52,
"preview": "bdsim\n=====\n\n.. toctree::\n :maxdepth: 4\n\n bdsim\n"
},
{
"path": "docs-aside/.buildinfo",
"chars": 230,
"preview": "# Sphinx build info version 1\n# This file hashes the configuration used when building these files. When it is not found,"
},
{
"path": "docs-aside/.nojekyll",
"chars": 0,
"preview": ""
},
{
"path": "docs-aside/_modules/bdsim/bdsim.html",
"chars": 127102,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/blockdiagram.html",
"chars": 152303,
"preview": "\n\n<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\">\n \n <meta name=\"viewport\" cont"
},
{
"path": "docs-aside/_modules/bdsim/blocks/connections.html",
"chars": 51930,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/blocks/discrete.html",
"chars": 39837,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/blocks/functions.html",
"chars": 67301,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/blocks/linalg.html",
"chars": 48566,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/blocks/robots.html",
"chars": 82569,
"preview": "\n<!DOCTYPE html>\n\n<html>\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, in"
},
{
"path": "docs-aside/_modules/bdsim/blocks/sinks.html",
"chars": 27294,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/blocks/sources.html",
"chars": 48532,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/blocks/transfers.html",
"chars": 46457,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/components.html",
"chars": 197957,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/bdsim/graphics.html",
"chars": 34708,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/index.html",
"chars": 5220,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/roboticstoolbox/blocks/arm.html",
"chars": 160773,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/roboticstoolbox/blocks/mobile.html",
"chars": 52387,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_modules/roboticstoolbox/blocks/uav.html",
"chars": 106179,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/_sources/bdsim.blocks.rst.txt",
"chars": 3640,
"preview": ".. _Block library:\n\n*************\nBlock library\n*************\n\n.. include:: <isonum.txt>\n\nThe block diagrams comprise bl"
},
{
"path": "docs-aside/_sources/bdsim.rst.txt",
"chars": 9030,
"preview": "Overview\n========\n\n\nGetting started\n---------------\n\nWe first sketch the dynamic system we want to simulate as a block d"
},
{
"path": "docs-aside/_sources/index.rst.txt",
"chars": 1400,
"preview": ".. Spatial Maths package documentation master file, created by\n sphinx-quickstart on Sun Apr 12 15:50:23 2020.\n You "
},
{
"path": "docs-aside/_sources/internals.rst.txt",
"chars": 2571,
"preview": "Supporting classes\n******************\n\n\n.. inheritance-diagram:: bdsim.components\n\n\nBDSim class\n===========\n\nThis class "
},
{
"path": "docs-aside/_sources/modules.rst.txt",
"chars": 52,
"preview": "bdsim\n=====\n\n.. toctree::\n :maxdepth: 4\n\n bdsim\n"
},
{
"path": "docs-aside/_static/alabaster.css",
"chars": 11305,
"preview": "@import url(\"basic.css\");\n\n/* -- page layout ----------------------------------------------------------- */\n\nbody {\n "
},
{
"path": "docs-aside/_static/basic.css",
"chars": 13633,
"preview": "/*\n * basic.css\n * ~~~~~~~~~\n *\n * Sphinx stylesheet -- basic theme.\n *\n * :copyright: Copyright 2007-2020 by the Sphinx"
},
{
"path": "docs-aside/_static/css/badge_only.css",
"chars": 3275,
"preview": ".fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:\""
},
{
"path": "docs-aside/_static/css/theme.css",
"chars": 128324,
"preview": "html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgr"
},
{
"path": "docs-aside/_static/custom.css",
"chars": 42,
"preview": "/* This file intentionally left blank. */\n"
},
{
"path": "docs-aside/_static/doctools.js",
"chars": 9354,
"preview": "/*\n * doctools.js\n * ~~~~~~~~~~~\n *\n * Sphinx JavaScript utilities for all documentation.\n *\n * :copyright: Copyright 20"
},
{
"path": "docs-aside/_static/documentation_options.js",
"chars": 353,
"preview": "var DOCUMENTATION_OPTIONS = {\n URL_ROOT: document.getElementById(\"documentation_options\").getAttribute('data-url_root"
},
{
"path": "docs-aside/_static/graphviz.css",
"chars": 299,
"preview": "/*\n * graphviz.css\n * ~~~~~~~~~~~~\n *\n * Sphinx stylesheet -- graphviz extension.\n *\n * :copyright: Copyright 2007-2020 "
},
{
"path": "docs-aside/_static/jquery-3.4.1.js",
"chars": 280364,
"preview": "/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * C"
},
{
"path": "docs-aside/_static/jquery-3.5.1.js",
"chars": 287630,
"preview": "/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * C"
},
{
"path": "docs-aside/_static/jquery.js",
"chars": 89476,
"preview": "/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object"
},
{
"path": "docs-aside/_static/js/badge_only.js",
"chars": 934,
"preview": "!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.expo"
},
{
"path": "docs-aside/_static/js/theme.js",
"chars": 5023,
"preview": "!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.expo"
},
{
"path": "docs-aside/_static/language_data.js",
"chars": 10847,
"preview": "/*\n * language_data.js\n * ~~~~~~~~~~~~~~~~\n *\n * This script contains the language-specific data used by searchtools.js,"
},
{
"path": "docs-aside/_static/pygments.css",
"chars": 4810,
"preview": "pre { line-height: 125%; }\ntd.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right:"
},
{
"path": "docs-aside/_static/searchtools.js",
"chars": 16288,
"preview": "/*\n * searchtools.js\n * ~~~~~~~~~~~~~~~~\n *\n * Sphinx JavaScript utilities for the full-text search.\n *\n * :copyright: C"
},
{
"path": "docs-aside/_static/underscore-1.3.1.js",
"chars": 35168,
"preview": "// Underscore.js 1.3.1\n// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.\n// Underscore is freely distribu"
},
{
"path": "docs-aside/_static/underscore.js",
"chars": 12140,
"preview": "// Underscore.js 1.3.1\n// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.\n// Underscore is freely distributable under "
},
{
"path": "docs-aside/bdsim.blocks.html",
"chars": 315697,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/bdsim.html",
"chars": 26802,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/genindex.html",
"chars": 44031,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/index.html",
"chars": 8073,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/internals.html",
"chars": 189298,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/modules.html",
"chars": 4761,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/py-modindex.html",
"chars": 8068,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/search.html",
"chars": 4596,
"preview": "<!DOCTYPE html>\n<html class=\"writer-html5\" lang=\"en\" >\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content"
},
{
"path": "docs-aside/searchindex.js",
"chars": 21465,
"preview": "Search.setIndex({docnames:[\"bdsim\",\"bdsim.blocks\",\"index\",\"internals\",\"modules\"],envversion:{\"sphinx.domains.c\":2,\"sphin"
},
{
"path": "examples/README.md",
"chars": 1318,
"preview": "# Running the examples\n\nFrom the command line:\n\n```\n% pip install bdsim\n```\n\nThen you can run the examples from the comm"
},
{
"path": "examples/RVC2/README.md",
"chars": 512,
"preview": "# Running the examples\n\nExamples from Chapter four of [_Robotics, Vision & Control (2017)_](https://petercorke.com/rvc/h"
},
{
"path": "examples/RVC2/rvc4_11.py",
"chars": 2821,
"preview": "#!/usr/bin/env python3\n\n# run with command line -a switch to show animation\n\nimport bdsim\nfrom math import pi, sqrt, ata"
},
{
"path": "examples/RVC2/rvc4_2.py",
"chars": 631,
"preview": "#!/usr/bin/env python3\n\n# run with command line -a switch to show animation\n\nimport bdsim\n\nsim = bdsim.BDSim(animation=T"
},
{
"path": "examples/RVC2/rvc4_4.py",
"chars": 1125,
"preview": "#!/usr/bin/env python3\n\n# run with command line -a switch to show animation\n\nimport bdsim\nimport math\n\nsim = bdsim.BDSim"
},
{
"path": "examples/RVC2/rvc4_6.py",
"chars": 1564,
"preview": "#!/usr/bin/env python3\n\n# run with command line -a switch to show animation\n\nimport bdsim\nimport math\nimport numpy as np"
},
{
"path": "examples/RVC2/rvc4_8.py",
"chars": 2436,
"preview": "#!/usr/bin/env python3\n\n# run with command line -a switch to show animation\n\nimport bdsim\nimport numpy as np\nimport math"
},
{
"path": "examples/deriv.py",
"chars": 342,
"preview": "#!/usr/bin/env python\n'''\nDemonstrate derivative block\n'''\nimport bdsim\n\nsim = bdsim.BDSim()\nbd = sim.blockdiagram()\n\nu "
},
{
"path": "examples/eg1.bd",
"chars": 9118,
"preview": "{\n \"id\": 140192902056064,\n \"created_by\": \"corkep\",\n \"creation_time\": 1632824708,\n \"scene_width\": 7207.200000"
},
{
"path": "examples/eg1.py",
"chars": 949,
"preview": "#!/usr/bin/env python3\n\n\"\"\"\nExample of continuous-time system\nCopyright (c) 2021- Peter Corke\n\"\"\"\nimport bdsim\n\nsim = bd"
},
{
"path": "examples/eg1_zoh.py",
"chars": 908,
"preview": "#!/usr/bin/env python3\n\nimport bdsim\n\nsim = bdsim.BDSim(animation=True) # create simulator\nbd = sim.blockdiagram() # c"
},
{
"path": "examples/pid.py",
"chars": 621,
"preview": "#!/usr/bin/env python\n'''\nExample of PID control system\nCopyright (c) 2021- Peter Corke\n'''\nimport bdsim\n\nsim = bdsim.BD"
},
{
"path": "examples/rt_step.py",
"chars": 766,
"preview": "#!/usr/bin/env python3\n\n\"\"\"\nExample of real-time system using Arduino+Firmata\nCopyright (c) 2023- Peter Corke\n\"\"\"\n\nimpor"
},
{
"path": "examples/sine+sampler.py",
"chars": 611,
"preview": "#!/usr/bin/env python3\n\n\"\"\"\nExample with one ZOH sampling a sine wave\nCopyright (c) 2021- Peter Corke\n\"\"\"\n\nimport bdsim\n"
},
{
"path": "examples/sine+sampler2.py",
"chars": 767,
"preview": "#!/usr/bin/env python3\n\n\"\"\"\nExample with two ZOHs sampling a sine wave\nCopyright (c) 2021- Peter Corke\n\"\"\"\n\nimport bdsim"
},
{
"path": "examples/subsys.py",
"chars": 706,
"preview": "#!/usr/bin/env python3\n\nimport bdsim\n\nsim = bdsim.BDSim()\n\n# create simple subsystem as a blockdiagram\nss = sim.blockdia"
},
{
"path": "examples/vanderpol.py",
"chars": 971,
"preview": "#!/usr/bin/env python3\n\n\"\"\"\nExample of van der Pol oscillator\nCopyright (c) 2021- Peter Corke\n\"\"\"\n\nimport bdsim\n\nsim = b"
},
{
"path": "examples/viewsim.py",
"chars": 153,
"preview": "import pickle\nfrom bdsim import BDStruct\nimport sys\n\nsys.setrecursionlimit(20_000)\n\nwith open(\"bd.out\", \"rb\") as f:\n "
},
{
"path": "examples/waveform.py",
"chars": 477,
"preview": "#!/usr/bin/env python3\n\n\"\"\"\nExample with two waveform generators driving a scope\nCopyright (c) 2021- Peter Corke\n\"\"\"\n\nim"
},
{
"path": "figs/data_structures.ezdraw",
"chars": 101825,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "figs/plugs_and_wires.ezdraw",
"chars": 120919,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "pyproject.toml",
"chars": 1745,
"preview": "[project]\nname = \"bdsim\"\nversion = \"1.1.2\"\nauthors = [{ name = \"Peter Corke\", email = \"rvc@petercorke.com\" }]\n\ndependenc"
},
{
"path": "tests/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "tests/test_bdsim.py",
"chars": 3818,
"preview": "#!/usr/bin/env python3\n\nimport numpy as np\nimport math\n\nimport bdsim\nimport unittest\nimport numpy.testing as nt\nfrom pat"
},
{
"path": "tests/test_blockdiagram.py",
"chars": 19421,
"preview": "#!/usr/bin/env python3\n\nimport numpy as np\nimport scipy.interpolate\nimport math\n\nimport bdsim\nimport unittest\nimport num"
},
{
"path": "tests/test_components.py",
"chars": 8576,
"preview": "import unittest\nimport numpy.testing as nt\nfrom bdsim.components import *\nfrom bdsim.blocks import *\nfrom bdsim import B"
},
{
"path": "tests/test_connections.py",
"chars": 1085,
"preview": "#!/usr/bin/env python3\n\nimport numpy as np\nimport scipy.interpolate\nimport math\n\nfrom bdsim.blocks.connections import *\n"
},
{
"path": "tests/test_discrete.py",
"chars": 2796,
"preview": "#!/usr/bin/env python3\n\nimport numpy as np\nimport math\n\nimport matplotlib.pyplot as plt\n\nfrom bdsim.blocks.discrete impo"
},
{
"path": "tests/test_functions.py",
"chars": 7673,
"preview": "#!/usr/bin/env python3\n\nimport numpy as np\nimport scipy.interpolate\nimport math\n\nfrom bdsim.blocks.functions import *\n\ni"
},
{
"path": "tests/test_linalg.py",
"chars": 4312,
"preview": "#!/usr/bin/env python3\n\nimport numpy as np\nimport scipy.interpolate\nimport math\n\nfrom bdsim.blocks.linalg import *\n\nimpo"
},
{
"path": "tests/test_sinks.py",
"chars": 3850,
"preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n\"\"\"\nDefine fundamental blocks available for use in block diagrams.\n\nEach "
},
{
"path": "tests/test_sources.py",
"chars": 8519,
"preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n\"\"\"\nDefine fundamental blocks available for use in block diagrams.\n\nEach "
},
{
"path": "tests/test_spatial.py",
"chars": 1145,
"preview": "#!/usr/bin/env python3\n\nimport numpy as np\nfrom spatialmath import *\n\nfrom bdsim.blocks.spatial import *\n\nimport unittes"
},
{
"path": "tests/test_transfers.py",
"chars": 3659,
"preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n\"\"\"\nDefine fundamental blocks available for use in block diagrams.\n\nEach "
}
]
// ... and 3 more files (download for full content)
About this extraction
This page contains the full source code of the petercorke/bdsim GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 191 files (5.2 MB), approximately 1.4M tokens, and a symbol index with 1600 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.