Last active
March 3, 2018 19:05
-
-
Save asford/0c681808143af0d324f965e6b9660383 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
README.md |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Layout configuration for conda environments. | |
# Specify environment name with `layout conda <envname>` | |
# or | |
# Detect name from environment.yml with `layout conda` | |
layout_conda() { | |
if [ -n "$1" ]; then | |
source activate $1; | |
elif (grep -q name: environment.yml); then | |
source activate `grep name: environment.yml | sed -e 's/name: //'` | |
else | |
(>&2 echo No environment specified); | |
exit 1; | |
fi; | |
} | |
layout conda |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Created by https://www.gitignore.io/api/python,jupyternotebook | |
### JupyterNotebook ### | |
.ipynb_checkpoints | |
*/.ipynb_checkpoints/* | |
# Remove previous ipynb_checkpoints | |
# git rm -r .ipynb_checkpoints/ | |
# | |
### Python ### | |
# Byte-compiled / optimized / DLL files | |
__pycache__/ | |
*.py[cod] | |
*$py.class | |
# C extensions | |
*.so | |
# Distribution / packaging | |
.Python | |
build/ | |
develop-eggs/ | |
dist/ | |
downloads/ | |
eggs/ | |
.eggs/ | |
lib/ | |
lib64/ | |
parts/ | |
sdist/ | |
var/ | |
wheels/ | |
*.egg-info/ | |
.installed.cfg | |
*.egg | |
# 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/ | |
.coverage | |
.coverage.* | |
.cache | |
.pytest_cache/ | |
nosetests.xml | |
coverage.xml | |
*.cover | |
.hypothesis/ | |
# Translations | |
*.mo | |
*.pot | |
# Flask stuff: | |
instance/ | |
.webassets-cache | |
# Scrapy stuff: | |
.scrapy | |
# Sphinx documentation | |
docs/_build/ | |
# PyBuilder | |
target/ | |
# Jupyter Notebook | |
# pyenv | |
.python-version | |
# celery beat schedule file | |
celerybeat-schedule.* | |
# 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/ | |
# End of https://www.gitignore.io/api/python,jupyternotebook |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: sparse_mult | |
dependencies: | |
- python=3.5 | |
- ipython | |
- ipykernel | |
- numpy | |
- scipy |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import numpy\n", | |
"import scipy.sparse" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def graph_path_expansion(adjacency_graph, depth):\n", | |
" \"\"\"Expand unweighted Adjacency matrix to find inter-vertex paths to a given depth.\n", | |
" \n", | |
" Performs stacked, sparse multiplications of a [0/1] adjacency matrix to identify inter-node paths. \n", | |
" Stacks paths by length and return sparse adjacency-matrix where inter-vertex weight is the shortest\n", | |
" path between two verticies.\n", | |
" \n", | |
" Returns a sparse coo_matrix of the identified paths with integer-valued path lengths.\n", | |
" \"\"\"\n", | |
" \n", | |
" assert adjacency_graph.ndim == 2 and adjacency_graph.shape[0] == adjacency_graph.shape[1]\n", | |
" \n", | |
" adjacency_graph = scipy.sparse.coo_matrix(adjacency_graph.astype(bool))\n", | |
" \n", | |
" dist_stack = [\n", | |
" adjacency_graph,\n", | |
" ]\n", | |
" \n", | |
" for _ in range(2, depth):\n", | |
" dist_stack.append(dist_stack[-1] @ adjacency_graph)\n", | |
" \n", | |
" dist_matrix = scipy.sparse.coo_matrix(adjacency_graph.shape)\n", | |
" \n", | |
" # Oh my, let's get weird.\n", | |
" #\n", | |
" # The implied value of the sparse entries of a matrix is 0,\n", | |
" # Which is reflected the the `.minimum` and `.maximum` operations.\n", | |
" # Need to offset all our path lengths to a negative number so that\n", | |
" # we can still rank via minimum, but have a sparse entry considered\n", | |
" # \"greater\" than any existing path length. Just substract the maximum\n", | |
" # path length, we'll then rest back into the true path length domain\n", | |
" # for the return value.\n", | |
" for i, dist_graph in enumerate(dist_stack):\n", | |
" dist_matrix = dist_matrix.minimum( dist_graph.astype(int) * (i - depth))\n", | |
" \n", | |
" dist_matrix = dist_matrix.tocoo()\n", | |
" return scipy.sparse.coo_matrix((dist_matrix.data + depth + 1, (dist_matrix.row, dist_matrix.col)))\n", | |
"\n", | |
"def sparse_path_len_to_dense(path_length_graph):\n", | |
" \n", | |
" path_length_graph = path_length_graph.tocoo()\n", | |
" result = numpy.full(path_length_graph.shape, numpy.inf)\n", | |
" result[path_length_graph.row, path_length_graph.col] = path_length_graph.data\n", | |
" \n", | |
" return result" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"CPU times: user 20 ms, sys: 2 ms, total: 22 ms\n", | |
"Wall time: 22.5 ms\n" | |
] | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"system_size = int(10e3)\n", | |
"max_depth = 4\n", | |
"\n", | |
"bond_matrix = scipy.sparse.diags([[True], [True], [True]], [-1, 0, 1], shape=(system_size, system_size), dtype=bool)\n", | |
"dist_matrix = graph_path_expansion(bond_matrix, max_depth)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
"require.config({\n", | |
" paths: {\n", | |
" 'svg-pan-zoom': '//cdn.jsdelivr.net/npm/[email protected]/dist/svg-pan-zoom.min',\n", | |
" 'hammer': '//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min',\n", | |
" 'viz': '//cdnjs.cloudflare.com/ajax/libs/viz.js/1.8.0/viz'\n", | |
" }\n", | |
"});\n", | |
"\n", | |
"\n", | |
"require([\"svg-pan-zoom\", \"hammer\", \"viz\"], function(svgPanZoom, Hammer, viz) {\n", | |
" console.log(Viz);\n", | |
" var source = atob('ZGlncmFwaCB7CglncmFwaCBbZm9udG5hbWU9QXJpYWwsIG5vZGVzZXA9MC4xMjUsIHJhbmtzZXA9\\nMC4yNV07Cglub2RlIFtmb250Y29sb3I9d2hpdGUsIGZvbnRuYW1lPUFyaWFsLCBoZWlnaHQ9MCwg\\nc2hhcGU9Ym94LCBzdHlsZT1maWxsZWQsIHdpZHRoPTBdOwoJZWRnZSBbZm9udG5hbWU9QXJpYWxd\\nOwoJMCBbY29sb3I9IiMwZDIwNzkiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iYmFzZToyMTM6bm56XG40LjUzJVxuKDIuMDElKVxuMTIyw5ciLCB0b29sdGlw\\nPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRl\\nLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9iYXNlLnB5Il07CgkwIC0+IDQ2IFthcnJvd3NpemU9IjAu\\nMzUiLCBjb2xvcj0iIzBkMTM3NSIsIGZvbnRjb2xvcj0iIzBkMTM3NSIsIGZvbnRzaXplPSIxMC4w\\nMCIsIGxhYmVsPSIxLjQxJVxuMjDDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0i\\nMC41MCJdOwoJMCAtPiAxMjMgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMTc0IiwgZm9u\\ndGNvbG9yPSIjMGQxMTc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuMTElXG4xMDLDlyIs\\nIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMSBbY29sb3I9IiMwZDQz\\nODIiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29vOjIx\\nOTpfY2hlY2tcbjExLjY4JVxuKDIuNDklKVxuN8OXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5j\\nb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9z\\ncGFyc2UvY29vLnB5Il07CgkxIC0+IDAgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTcz\\nIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjYlXG43\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTEgLT4gMTMgW2Fy\\ncm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMzUlXG4xNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07CgkxIC0+IDE0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBk\\nMTI3NCIsIGZvbnRjb2xvcj0iIzBkMTI3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjE3\\nJVxuN8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxIC0+IDE1\\nIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjUxJVxuN8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41\\nMCIsIHBlbndpZHRoPSIwLjUwIl07CgkxIC0+IDI3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0i\\nIzBkMTM3NSIsIGZvbnRjb2xvcj0iIzBkMTM3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIx\\nLjQ1JVxuMTLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMSAt\\nPiA5NCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEzNzUiLCBmb250Y29sb3I9IiMwZDEz\\nNzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS42MCVcbjE5w5ciLCBsYWJlbGRpc3RhbmNl\\nPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTEgLT4gMTE5IFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGQ3MyIsIGZvbnRjb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjE0JVxuMTnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJd\\nOwoJMiBbY29sb3I9IiMwYzVjODgiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iY29vOjMxMDp0b2NzclxuMTYuMjIlXG4oMS41NSUpXG41w5ciLCB0b29sdGlw\\nPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRl\\nLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9jb28ucHkiXTsKCTIgLT4gMCBbYXJyb3dzaXplPSIwLjM1\\nIiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAi\\nLCBsYWJlbD0iMC40OCVcbjEzw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAu\\nNTAiXTsKCTIgLT4gMTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZDczIiwgZm9udGNv\\nbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMTMlXG40w5ciLCBsYWJl\\nbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTIgLT4gMTQgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQxMDc0IiwgZm9udGNvbG9yPSIjMGQxMDc0IiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuNjclXG40w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTIgLT4gMTcgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQzMTdkIiwgZm9u\\ndGNvbG9yPSIjMGQzMTdkIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjguMTUlXG41w5ciLCBs\\nYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTIgLT4gMzkgW2Fycm93c2l6\\nZT0iMC4zNSIsIGNvbG9yPSIjMGQxZTc4IiwgZm9udGNvbG9yPSIjMGQxZTc4IiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9IjQuMTQlXG40w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTIgLT4gOTQgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwg\\nZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMzQlXG40w5ci\\nLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTIgLT4gMTE2IFthcnJv\\nd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSIwLjQ3JVxuOMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBl\\nbndpZHRoPSIwLjUwIl07CgkyIC0+IDEyMSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE0\\nNzUiLCBmb250Y29sb3I9IiMwZDE0NzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS43NSVc\\nbjTDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMyBbY29sb3I9\\nIiMwZDI5N2IiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nY29tcHJlc3NlZDoxMDU4OnBydW5lXG42LjQwJVxuKDIuNjAlKVxuMjTDlyIsIHRvb2x0aXA9Ii9o\\nb21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFj\\na2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHkiXTsKCTMgLT4gMCBbYXJyb3dzaXplPSIw\\nLjM1IiwgY29sb3I9IiMwZDFjNzciLCBmb250Y29sb3I9IiMwZDFjNzciLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iMy41NiVcbjk2w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTMgLT4gODIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjczIiwgZm9u\\ndGNvbG9yPSIjMGQwZjczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNTAlXG40OMOXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzIC0+IDg1IFthcnJvd3Np\\nemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXpl\\nPSIxMC4wMCIsIGxhYmVsPSIwLjU3JVxuNzLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMyAtPiAxMTkgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZDcz\\nIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMTglXG4y\\nNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0IFtjb2xvcj0i\\nIzBjNWM4OCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJj\\nb21wcmVzc2VkOjEwOTA6X2Jpbm9wdFxuMTYuMTIlXG4oMC44NSUpXG4zw5ciLCB0b29sdGlwPSIv\\naG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBh\\nY2thZ2VzL3NjaXB5L3NwYXJzZS9jb21wcmVzc2VkLnB5Il07Cgk0IC0+IDAgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuMjIlXG42w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTQgLT4gMyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEwNzQiLCBmb250\\nY29sb3I9IiMwZDEwNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC44MCVcbjPDlyIsIGxh\\nYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNCAtPiAxMSBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iMC4zMCVcbjnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJNCAtPiAxMyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBm\\nb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4zMCVcbjEyw5ci\\nLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTQgLT4gMTQgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjczIiwgZm9udGNvbG9yPSIjMGQwZjczIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjAuNTAlXG4zw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVu\\nd2lkdGg9IjAuNTAiXTsKCTQgLT4gMTcgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQzOTdm\\nIiwgZm9udGNvbG9yPSIjMGQzOTdmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjkuNzclXG42\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTQgLT4gMTE4IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTk3NyIsIGZvbnRjb2xvcj0iIzBkMTk3NyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIyLjk1JVxuM8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07Cgk1IFtjb2xvcj0iIzBjOTY4YyIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb286MTI1Ol9faW5pdF9fXG4yNi43OSVcbigy\\nLjExJSlcbjfDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJNSAt\\nPiAxIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkNDM4MiIsIGZvbnRjb2xvcj0iIzBkNDM4\\nMiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxMS42OCVcbjfDlyIsIGxhYmVsZGlzdGFuY2U9\\nIjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNSAtPiAxNCBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDExNzQiLCBmb250Y29sb3I9IiMwZDExNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMS4wMSVcbjbDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJ\\nNSAtPiAzNiBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDNjODAiLCBmb250Y29sb3I9IiMw\\nZDNjODAiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMTAuMjAlXG4xw5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTUgLT4gNTAgW2Fycm93c2l6ZT0iMC4zNSIs\\nIGNvbG9yPSIjMGQwZDczIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwg\\nbGFiZWw9IjAuMTQlXG43w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAi\\nXTsKCTUgLT4gNTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9y\\nPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjYlXG4xOMOXIiwgbGFiZWxk\\naXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1IC0+IDc5IFthcnJvd3NpemU9IjAu\\nMzUiLCBjb2xvcj0iIzBkMTA3NCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4w\\nMCIsIGxhYmVsPSIwLjkxJVxuNsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIw\\nLjUwIl07Cgk1IC0+IDg3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRj\\nb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjI3JVxuN8OXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1IC0+IDkzIFthcnJvd3NpemU9\\nIjAuMzUiLCBjb2xvcj0iIzBkMTA3NCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSIwLjc4JVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRo\\nPSIwLjUwIl07Cgk1IC0+IDk0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZv\\nbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjUxJVxuNsOXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1IC0+IDExMCBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC4yNSVcbjfDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJNSAtPiAxMTYgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTcz\\nIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjQlXG40\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTggW2NvbG9yPSIj\\nMGQwZjc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNo\\nYXBlX2Jhc2U6ODQ0OnRpbGVcbjAuNjMlXG4oMC4zMSUpXG4xw5ciLCB0b29sdGlwPSIvaG9tZS9m\\nb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2Vz\\nL251bXB5L2xpYi9zaGFwZV9iYXNlLnB5Il07Cgk5IFtjb2xvcj0iIzBkMWM3NyIsIGZvbnRjb2xv\\ncj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDpjc3JfbWF0bWF0X3Bhc3My\\nXG4zLjU1JVxuKDMuNTUlKVxuMsOXIiwgdG9vbHRpcD0iIl07CgkxMCBbY29sb3I9IiMwYzcwOGMi\\nLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29tcHJlc3Nl\\nZDo0Nzc6X211bF9zcGFyc2VfbWF0cml4XG4xOS40NCVcbigwLjc4JSlcbjLDlyIsIHRvb2x0aXA9\\nIi9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUt\\ncGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHkiXTsKCTEwIC0+IDkgW2Fycm93c2l6\\nZT0iMC4zNSIsIGNvbG9yPSIjMGQxYzc3IiwgZm9udGNvbG9yPSIjMGQxYzc3IiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9IjMuNTUlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTEwIC0+IDExIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIs\\nIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjIwJVxuNsOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxMCAtPiAxMyBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC40NSVcbjE4w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTEwIC0+IDE0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBk\\nMTA3NCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjY3\\nJVxuNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxMCAtPiAx\\nNyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDI5N2IiLCBmb250Y29sb3I9IiMwZDI5N2Ii\\nLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNi41MiVcbjTDlyIsIGxhYmVsZGlzdGFuY2U9IjAu\\nNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTAgLT4gNzEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9y\\nPSIjMGQxMjc1IiwgZm9udGNvbG9yPSIjMGQxMjc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nIjEuMzglXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTEx\\nIFtjb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSI6MDplbXB0eVxuMC42NiVcbigwLjY2JSlcbjIww5ciLCB0b29sdGlwPSIiXTsKCTEy\\nIFtjb2xvcj0iIzBkMjE3OSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSJjb21wcmVzc2VkOjkyNzp0b2Nvb1xuNC42NCVcbigwLjMyJSlcbjHDlyIsIHRvb2x0\\naXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3Np\\ndGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHkiXTsKCTEyIC0+IDUgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxZDc4IiwgZm9udGNvbG9yPSIjMGQxZDc4IiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjMuODMlXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVu\\nd2lkdGg9IjAuNTAiXTsKCTEzIFtjb2xvcj0iIzBkMjQ3YSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJudW1lcmljOjQyNDphc2FycmF5XG41LjQzJVxuKDMu\\nMzYlKVxuMjE3w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211\\nbHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL251bXB5L2NvcmUvbnVtZXJpYy5weSJdOwoJ\\nMTMgLT4gNTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYTc3IiwgZm9udGNvbG9yPSIj\\nMGQxYTc3IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuMTQlXG4yMTfDlyIsIGxhYmVsZGlz\\ndGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTQgW2NvbG9yPSIjMGQzYTdmIiwgZm9u\\ndGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNwdXRpbHM6MTE5Omdl\\ndF9pbmRleF9kdHlwZVxuOS44OCVcbig0LjYxJSlcbjU5w5ciLCB0b29sdGlwPSIvaG9tZS9mb3Jk\\nYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3Nj\\naXB5L3NwYXJzZS9zcHV0aWxzLnB5Il07CgkxNCAtPiAxMyBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiMwZDE3NzYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMi41MCVcbjEwMMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07\\nCgkxNCAtPiA1MCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEyNzQiLCBmb250Y29sb3I9\\nIiMwZDEyNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS4yMSVcbjU5w5ciLCBsYWJlbGRp\\nc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTE0IC0+IDU4IFthcnJvd3NpemU9IjAu\\nMzUiLCBjb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iIzBkMGY3NCIsIGZvbnRzaXplPSIxMC4w\\nMCIsIGxhYmVsPSIwLjYyJVxuNTnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0i\\nMC41MCJdOwoJMTQgLT4gMTE0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTQ3NSIsIGZv\\nbnRjb2xvcj0iIzBkMTQ3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjgxJVxuNTnDlyIs\\nIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTUgW2NvbG9yPSIjMGQx\\nNTc1IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNwdXRp\\nbHM6OTE6dG9fbmF0aXZlXG4xLjg5JVxuKDAuNzYlKVxuMjbDlyIsIHRvb2x0aXA9Ii9ob21lL2Zv\\ncmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMv\\nc2NpcHkvc3BhcnNlL3NwdXRpbHMucHkiXTsKCTE1IC0+IDEzIFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iIzBkMGY3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjY1JVxuMjbDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJd\\nOwoJMTYgW2NvbG9yPSIjMGM1ODg3IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9ImNvbXByZXNzZWQ6MTI4OmNoZWNrX2Zvcm1hdFxuMTUuMzYlXG4oNC4xNSUp\\nXG4xOcOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xp\\nYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvY29tcHJlc3NlZC5weSJdOwoJ\\nMTYgLT4gMyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDIzNzkiLCBmb250Y29sb3I9IiMw\\nZDIzNzkiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNS4wNyVcbjE5w5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTE2IC0+IDEzIFthcnJvd3NpemU9IjAuMzUi\\nLCBjb2xvcj0iIzBkMTE3NCIsIGZvbnRjb2xvcj0iIzBkMTE3NCIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSIwLjk1JVxuMzjDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41\\nMCJdOwoJMTYgLT4gMTQgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYTc3IiwgZm9udGNv\\nbG9yPSIjMGQxYTc3IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuMTglXG4xOcOXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNiAtPiAxNSBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDEyNzUiLCBmb250Y29sb3I9IiMwZDEyNzUiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iMS4zOCVcbjE5w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTE2IC0+IDg1IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3NCIs\\nIGZvbnRjb2xvcj0iIzBkMGY3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjYwJVxuNzbD\\nlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTYgLT4gMTE5IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIsIGZvbnRjb2xvcj0iIzBkMGQ3MyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjE0JVxuMTnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgW2NvbG9yPSIjMGM5Yjc5IiwgZm9udGNvbG9yPSIjZmZm\\nZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbXByZXNzZWQ6MjU6X19pbml0X19cbjMw\\nLjk1JVxuKDMuNTMlKVxuMTnDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9z\\ncGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXBy\\nZXNzZWQucHkiXTsKCTE3IC0+IDEzIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIs\\nIGZvbnRjb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjEzJVxuNcOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNyAtPiAxNCBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiMwZDE3NzYiLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iMi4zNSVcbjE0w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTE3IC0+IDE2IFthcnJvd3NpemU9IjAuMzkiLCBjb2xvcj0iIzBj\\nNTg4NyIsIGZvbnRjb2xvcj0iIzBjNTg4NyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxNS4z\\nNiVcbjE5w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjYxIiwgcGVud2lkdGg9IjAuNjEiXTsKCTE3IC0+\\nIDMyIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMzM3ZSIsIGZvbnRjb2xvcj0iIzBkMzM3\\nZSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI4LjQ1JVxuNcOXIiwgbGFiZWxkaXN0YW5jZT0i\\nMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNyAtPiA1MCBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMC4yOSVcbjE0w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsK\\nCTE3IC0+IDUxIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0i\\nIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjU2JVxuMznDlyIsIGxhYmVsZGlz\\ndGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgLT4gNjYgW2Fycm93c2l6ZT0iMC4z\\nNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAw\\nIiwgbGFiZWw9IjAuMzklXG4xOcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIw\\nLjUwIl07CgkxNyAtPiA3OCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250\\nY29sb3I9IiMwZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC40NCVcbjPDlyIsIGxh\\nYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgLT4gNzkgW2Fycm93c2l6\\nZT0iMC4zNSIsIGNvbG9yPSIjMGQxNjc1IiwgZm9udGNvbG9yPSIjMGQxNjc1IiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9IjIuMTElXG4xNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndp\\nZHRoPSIwLjUwIl07CgkxNyAtPiA4NSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMi\\nLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4yMCVcbjI2\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTE3IC0+IDg3IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjU1JVxuMTTDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgLT4gOTQgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIj\\nMGQxMjc0IiwgZm9udGNvbG9yPSIjMGQxMjc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEu\\nMTglXG4xNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNyAt\\nPiAxMTAgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMDc0IiwgZm9udGNvbG9yPSIjMGQx\\nMDc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNjglXG4xOcOXIiwgbGFiZWxkaXN0YW5j\\nZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxOSBbY29sb3I9IiNmZTA1MDAiLCBmb250Y29s\\nb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6ZXhlY1xuOTkuNTYlXG4o\\nMC42MCUpXG4xw5ciLCB0b29sdGlwPSIiXTsKCTE5IC0+IDM3IFthcnJvd3NpemU9IjAuOTkiLCBj\\nb2xvcj0iI2ZkMGIwMCIsIGZvbnRjb2xvcj0iI2ZkMGIwMCIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSI5OC45NyVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjMuOTYiLCBwZW53aWR0aD0iMy45NiJd\\nOwoJMjAgW2NvbG9yPSIjZmYwMDAwIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9InByb2ZpbGU6MDpzeXN0ZW1fc2l6ZSA9IGludCg1ZTMpXG5tYXhfZGVwdGgg\\nPSA0XG5cbmJvbmRfbWF0cml4ID0gc2NpcHkuc3BhcnNlLmRpYWdzKFtbVHJ1ZV0sIFtUcnVlXSwg\\nW1RydWVdXSwgWy0xLCAwLCAxXSwgc2hhcGU9KHN5c3RlbV9zaXplLCBzeXN0ZW1fc2l6ZSksIGR0\\neXBlPWJvb2wpXG5kaXN0X21hdHJpeCA9IGdyYXBoX3BhdGhfZXhwYW5zaW9uKGJvbmRfbWF0cml4\\nLCBtYXhfZGVwdGgpXG4xMDAuMDAlXG4oMC4xNyUpXG4xw5ciLCB0b29sdGlwPXByb2ZpbGVdOwoJ\\nMjAgLT4gMTkgW2Fycm93c2l6ZT0iMS4wMCIsIGNvbG9yPSIjZmUwNTAwIiwgZm9udGNvbG9yPSIj\\nZmUwNTAwIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9Ijk5LjU2JVxuMcOXIiwgbGFiZWxkaXN0\\nYW5jZT0iMy45OCIsIHBlbndpZHRoPSIzLjk4Il07CgkyMSBbY29sb3I9IiMwZDEwNzQiLCBmb250\\nY29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6Y29uY2F0ZW5hdGVc\\nbjAuNzklXG4oMC43OSUpXG4zw5ciLCB0b29sdGlwPSIiXTsKCTIzIFtjb2xvcj0iIzBkMTI3NCIs\\nIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJhcnJheXNldG9w\\nczoyNTY6X3VuaXF1ZTFkXG4xLjM3JVxuKDAuMzQlKVxuMsOXIiwgdG9vbHRpcD0iL2hvbWUvZm9y\\nZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9u\\ndW1weS9saWIvYXJyYXlzZXRvcHMucHkiXTsKCTIzIC0+IDIxIFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjUzJVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07\\nCgkyNiBbY29sb3I9IiMwZDE1NzUiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iX21ldGhvZHM6Mjg6X2FtaW5cbjEuOTclXG4oMC4yMCUpXG4xMsOXIiwgdG9v\\nbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUv\\nc2l0ZS1wYWNrYWdlcy9udW1weS9jb3JlL19tZXRob2RzLnB5Il07CgkyNiAtPiAxMjAgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxODc2IiwgZm9udGNvbG9yPSIjMGQxODc2IiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjIuNTclXG4xMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBl\\nbndpZHRoPSIwLjUwIl07CgkyNyBbY29sb3I9IiMwZDE2NzYiLCBmb250Y29sb3I9IiNmZmZmZmYi\\nLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6bWluXG4yLjMwJVxuKDAuMzQlKVxuMTnDlyIs\\nIHRvb2x0aXA9IiJdOwoJMjcgLT4gMjYgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxNTc1\\nIiwgZm9udGNvbG9yPSIjMGQxNTc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuOTclXG4x\\nMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzMCBbY29sb3I9\\nIiMwZDEzNzUiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nY29tcHJlc3NlZDo5NzM6X19nZXRfaGFzX2Nhbm9uaWNhbF9mb3JtYXRcbjEuNTUlXG4oMC4zNCUp\\nXG42w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGli\\nL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9jb21wcmVzc2VkLnB5Il07Cgkz\\nMCAtPiAxMDUgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZDczIiwgZm9udGNvbG9yPSIj\\nMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMTclXG42w5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTMyIFtjb2xvcj0iIzBkM2I4MCIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJiYXNlOjI2OTphc2Zvcm1h\\ndFxuMTAuMTQlXG4oMC4xNCUpXG42w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2Vu\\ndnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9i\\nYXNlLnB5Il07CgkzMiAtPiAyIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMzk3ZiIsIGZv\\nbnRjb2xvcj0iIzBkMzk3ZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI5LjczJVxuM8OXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzMyBbY29sb3I9IiMwZDFm\\nNzgiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29uc3Ry\\ndWN0OjY0OmRpYWdzXG40LjMxJVxuKDAuNjMlKVxuMcOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFz\\nLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lw\\neS9zcGFyc2UvY29uc3RydWN0LnB5Il07CgkzMyAtPiAyNyBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMC40OCVcbjTDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJ\\nMzMgLT4gMzIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxNDc1IiwgZm9udGNvbG9yPSIj\\nMGQxNDc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuNjklXG4xw5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTMzIC0+IDQyIFthcnJvd3NpemU9IjAuMzUi\\nLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSIwLjQxJVxuNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUw\\nIl07CgkzMyAtPiA1MiBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE1NzUiLCBmb250Y29s\\nb3I9IiMwZDE1NzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS44OCVcbjHDlyIsIGxhYmVs\\nZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMzMgLT4gNTcgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQwZDczIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuMTglXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTMzIC0+IDc4IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIsIGZv\\nbnRjb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjE1JVxuMcOXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzMyAtPiA5NCBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC40MiVcbjXDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMzQgW2NvbG9yPSIjMGQyNzdiIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwg\\nZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbzo0NTI6X3dpdGhfZGF0YVxuNi4wOCVcbigwLjE5\\nJSlcbjLDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9s\\naWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJMzQgLT4g\\nNSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDJmN2QiLCBmb250Y29sb3I9IiMwZDJmN2Qi\\nLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNy42NSVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAu\\nNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMzQgLT4gOTggW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9y\\nPSIjMGQwZDczIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nIjAuMTglXG40w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTM1\\nIFtjb2xvcj0iI2Y2M2IwMSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSI8aXB5dGhvbi1pbnB1dC02LTc2NTAyZWMwOTU0ND46MTpncmFwaF9wYXRoX2V4cGFu\\nc2lvblxuOTQuMTIlXG4oMS41NiUpXG4xw5ciLCB0b29sdGlwPSI8aXB5dGhvbi1pbnB1dC02LTc2\\nNTAyZWMwOTU0ND4iXTsKCTM1IC0+IDUgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQ0Mjgy\\nIiwgZm9udGNvbG9yPSIjMGQ0MjgyIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjExLjQ4JVxu\\nM8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzNSAtPiAxMiBb\\nYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDIxNzkiLCBmb250Y29sb3I9IiMwZDIxNzkiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNC42NCVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJMzUgLT4gNDggW2Fycm93c2l6ZT0iMC40NCIsIGNvbG9yPSIj\\nMGM2ZjhjIiwgZm9udGNvbG9yPSIjMGM2ZjhjIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjE5\\nLjM5JVxuNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC43OCIsIHBlbndpZHRoPSIwLjc4Il07CgkzNSAt\\nPiA2MCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDNjODAiLCBmb250Y29sb3I9IiMwZDNj\\nODAiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMTAuMjMlXG4xw5ciLCBsYWJlbGRpc3RhbmNl\\nPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTM1IC0+IDY0IFthcnJvd3NpemU9IjAuNDkiLCBj\\nb2xvcj0iIzBjOGU5MiIsIGZvbnRjb2xvcj0iIzBjOGU5MiIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIyNC4yMiVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuOTciLCBwZW53aWR0aD0iMC45NyJd\\nOwoJMzUgLT4gNjcgW2Fycm93c2l6ZT0iMC40MyIsIGNvbG9yPSIjMGM2YThiIiwgZm9udGNvbG9y\\nPSIjMGM2YThiIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjE4LjQ4JVxuM8OXIiwgbGFiZWxk\\naXN0YW5jZT0iMC43NCIsIHBlbndpZHRoPSIwLjc0Il07CgkzNSAtPiA4MSBbYXJyb3dzaXplPSIw\\nLjM1IiwgY29sb3I9IiMwZDQyODIiLCBmb250Y29sb3I9IiMwZDQyODIiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iMTEuNDQlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTM2IFtjb2xvcj0iIzBkM2M4MCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSJkaWE6MzQ4OnRvY29vXG4xMC4yMCVcbigyLjUxJSlcbjHDlyIs\\nIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9u\\nMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RpYS5weSJdOwoJMzYgLT4gNSBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDFkNzgiLCBmb250Y29sb3I9IiMwZDFkNzgiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMy44MyVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMzYgLT4gOCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzQi\\nLCBmb250Y29sb3I9IiMwZDBmNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC42MyVcbjHD\\nlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMzYgLT4gNzUgW2Fy\\ncm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYzc3IiwgZm9udGNvbG9yPSIjMGQxYzc3IiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuNTElXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTM3IFtjb2xvcj0iI2ZkMGIwMCIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI8c3RyaW5nPjoxOjxtb2R1bGU+XG45OC45NyVc\\nbigwLjU0JSlcbjHDlyIsIHRvb2x0aXA9IjxzdHJpbmc+Il07CgkzNyAtPiAzMyBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDFmNzgiLCBmb250Y29sb3I9IiMwZDFmNzgiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iNC4zMSVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJMzcgLT4gMzUgW2Fycm93c2l6ZT0iMC45NyIsIGNvbG9yPSIjZjYzYjAxIiwg\\nZm9udGNvbG9yPSIjZjYzYjAxIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9Ijk0LjEyJVxuMcOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMy43NiIsIHBlbndpZHRoPSIzLjc2Il07CgkzOSBbY29sb3I9IiMw\\nZDI4N2IiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29t\\ncHJlc3NlZDoxMDAyOnN1bV9kdXBsaWNhdGVzXG42LjIxJVxuKDAuMjMlKVxuNsOXIiwgdG9vbHRp\\ncD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0\\nZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvY29tcHJlc3NlZC5weSJdOwoJMzkgLT4gMyBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC41MyVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMzkgLT4gMzAgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMzc1\\nIiwgZm9udGNvbG9yPSIjMGQxMzc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuNTUlXG42\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTM5IC0+IDU0IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWI3NyIsIGZvbnRjb2xvcj0iIzBkMWI3NyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjM2JVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07Cgk0MCBbY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0ibnVtZXJpYzo0OTU6YXNhbnlhcnJheVxuMC41\\nMCVcbigwLjI0JSlcbjE0w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3Bh\\ncnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL251bXB5L2NvcmUvbnVtZXJpYy5w\\neSJdOwoJNDAgLT4gNTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNv\\nbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjAlXG4xNMOXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0MiBbY29sb3I9IiMwZDBmNzQi\\nLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0ic2hhcGVfYmFz\\nZToxMTphdGxlYXN0XzFkXG4wLjYyJVxuKDAuMjQlKVxuNsOXIiwgdG9vbHRpcD0iL2hvbWUvZm9y\\nZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9u\\ndW1weS9jb3JlL3NoYXBlX2Jhc2UucHkiXTsKCTQyIC0+IDQwIFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjIxJVxuNsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07\\nCgk0MyBbY29sb3I9IiMwZDEzNzUiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iYXJyYXlzZXRvcHM6MTEzOnVuaXF1ZVxuMS41NCVcbigwLjEzJSlcbjLDlyIs\\nIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9u\\nMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvbGliL2FycmF5c2V0b3BzLnB5Il07Cgk0MyAtPiAyMyBb\\nYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEyNzQiLCBmb250Y29sb3I9IiMwZDEyNzQiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS4zNyVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJNDYgW2NvbG9yPSIjMGQxMzc1IiwgZm9udGNvbG9yPSIjZmZm\\nZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbzoxOTM6Z2V0bm56XG4xLjQxJVxuKDAu\\nODglKVxuMjDDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJNDYg\\nLT4gODUgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjczIiwgZm9udGNvbG9yPSIjMGQw\\nZjczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNDclXG42MMOXIiwgbGFiZWxkaXN0YW5j\\nZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0NyBbY29sb3I9IiMwZDQwODEiLCBmb250Y29s\\nb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iZGF0YTozMjpfZGVkdXBlZF9k\\nYXRhXG4xMS4wMiVcbigwLjA4JSlcbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEv\\nZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNl\\nL2RhdGEucHkiXTsKCTQ3IC0+IDM5IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIs\\nIGZvbnRjb2xvcj0iIzBkMTU3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIyLjA3JVxuMsOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0NyAtPiA2OSBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDI3N2EiLCBmb250Y29sb3I9IiMwZDI3N2EiLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iNS45OSVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBw\\nZW53aWR0aD0iMC41MCJdOwoJNDggW2NvbG9yPSIjMGM2ZjhjIiwgZm9udGNvbG9yPSIjZmZmZmZm\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRhdGE6Njc6YXN0eXBlXG4xOS4zOSVcbigwLjIz\\nJSlcbjTDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9s\\naWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RhdGEucHkiXTsKCTQ4IC0+\\nIDM0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWE3NyIsIGZvbnRjb2xvcj0iIzBkMWE3\\nNyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjA0JVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0i\\nMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0OCAtPiA0NyBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDQwODEiLCBmb250Y29sb3I9IiMwZDQwODEiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMTEuMDIlXG4zw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsK\\nCTQ4IC0+IDY1IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIsIGZvbnRjb2xvcj0i\\nIzBkMTU3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjk1JVxuMcOXIiwgbGFiZWxkaXN0\\nYW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0OCAtPiA5OSBbYXJyb3dzaXplPSIwLjM1\\nIiwgY29sb3I9IiMwZDE5NzYiLCBmb250Y29sb3I9IiMwZDE5NzYiLCBmb250c2l6ZT0iMTAuMDAi\\nLCBsYWJlbD0iMi45MCVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41\\nMCJdOwoJNDggLT4gMTE2IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIsIGZvbnRj\\nb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjE4JVxuM8OXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0OSBbY29sb3I9IiMwZDEzNzUi\\nLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iYWJjOjE3ODpf\\nX2luc3RhbmNlY2hlY2tfX1xuMS40MiVcbigwLjkxJSlcbjE1w5ciLCB0b29sdGlwPSIvaG9tZS9m\\nb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9hYmMucHkiXTsKCTQ5\\nIC0+IDExNyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMw\\nZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC41MSVcbjMww5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTUwIFtjb2xvcj0iIzBkMWI3NyIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDppc2luc3RhbmNlXG4z\\nLjQ2JVxuKDIuMDQlKVxuMTY4w5ciLCB0b29sdGlwPSIiXTsKCTUwIC0+IDQ5IFthcnJvd3NpemU9\\nIjAuMzUiLCBjb2xvcj0iIzBkMTM3NSIsIGZvbnRjb2xvcj0iIzBkMTM3NSIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSIxLjQyJVxuMTXDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJNTEgW2NvbG9yPSIjMGQxZjc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmFycmF5XG40LjIzJVxuKDQuMjMlKVxuMjkzw5ciLCB0\\nb29sdGlwPSIiXTsKCTUyIFtjb2xvcj0iIzBkMWQ3OCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJkaWE6Nzg6X19pbml0X19cbjMuNzclXG4oMC42MSUpXG4y\\nw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5\\ndGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9kaWEucHkiXTsKCTUyIC0+IDE0IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjM0JVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07Cgk1MiAtPiA0MiBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMw\\nZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4y\\nMSVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNTIgLT4g\\nNDMgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMzc1IiwgZm9udGNvbG9yPSIjMGQxMzc1\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuNTQlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIw\\nLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTUyIC0+IDc5IFthcnJvd3NpemU9IjAuMzUiLCBjb2xv\\ncj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVs\\nPSIwLjMwJVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1\\nMiAtPiA5NCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBkNzMiLCBmb250Y29sb3I9IiMw\\nZDBkNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4xNyVcbjLDlyIsIGxhYmVsZGlzdGFu\\nY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNTMgW2NvbG9yPSIjMGQxYTc3IiwgZm9udGNv\\nbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmNzcl9zb3J0X2luZGlj\\nZXNcbjMuMTElXG4oMy4xMSUpXG4yw5ciLCB0b29sdGlwPSIiXTsKCTU0IFtjb2xvcj0iIzBkMWI3\\nNyIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVz\\nc2VkOjEwNDk6c29ydF9pbmRpY2VzXG4zLjM2JVxuKDAuMDklKVxuMsOXIiwgdG9vbHRpcD0iL2hv\\nbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNr\\nYWdlcy9zY2lweS9zcGFyc2UvY29tcHJlc3NlZC5weSJdOwoJNTQgLT4gNTMgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQxYTc3IiwgZm9udGNvbG9yPSIjMGQxYTc3IiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjMuMTElXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTU2IFtjb2xvcj0iIzBjNjE4OSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVzc2VkOjUzMzpfbWF4aW11bV9taW5pbXVtXG4xNy4w\\nMyVcbigwLjIwJSlcbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFy\\nc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNz\\nZWQucHkiXTsKCTU2IC0+IDQgW2Fycm93c2l6ZT0iMC40MCIsIGNvbG9yPSIjMGM1Yzg4IiwgZm9u\\ndGNvbG9yPSIjMGM1Yzg4IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjE2LjEyJVxuM8OXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC42NCIsIHBlbndpZHRoPSIwLjY0Il07Cgk1NiAtPiA1NyBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC41NCVcbjPDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJNTcgW2NvbG9yPSIjMGQxZTc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwg\\nZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNwdXRpbHM6MTgzOmlzc2NhbGFybGlrZVxuMy45NyVc\\nbigwLjY3JSlcbjIyw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNl\\nX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9zcHV0aWxzLnB5\\nIl07Cgk1NyAtPiA4OCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE5NzciLCBmb250Y29s\\nb3I9IiMwZDE5NzciLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMi45NCVcbjIyw5ciLCBsYWJl\\nbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTU4IFtjb2xvcj0iIzBkMGY3NCIs\\nIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJnZXRsaW1pdHM6\\nNTMyOm1heFxuMC42MiVcbigwLjYyJSlcbjU5w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNv\\nbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL251bXB5L2Nv\\ncmUvZ2V0bGltaXRzLnB5Il07Cgk1OSBbY29sb3I9IiMwZDQ5ODMiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iYmFzZTo0OTg6X211bF9zcGFyc2VfbWF0cml4\\nXG4xMi43OCVcbigwLjA5JSlcbjHDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52\\ncy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Jh\\nc2UucHkiXTsKCTU5IC0+IDIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYjc3IiwgZm9u\\ndGNvbG9yPSIjMGQxYjc3IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuMjQlXG4xw5ciLCBs\\nYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTU5IC0+IDEwIFthcnJvd3Np\\nemU9IjAuMzUiLCBjb2xvcj0iIzBkMzk3ZiIsIGZvbnRjb2xvcj0iIzBkMzk3ZiIsIGZvbnRzaXpl\\nPSIxMC4wMCIsIGxhYmVsPSI5LjcyJVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndp\\nZHRoPSIwLjUwIl07Cgk2MCBbY29sb3I9IiMwZDNjODAiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iYmFzZTozMDU6bWluaW11bVxuMTAuMjMlXG4oMC4wNiUp\\nXG4xw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGli\\nL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9iYXNlLnB5Il07Cgk2MCAtPiAy\\nIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWI3NyIsIGZvbnRjb2xvcj0iIzBkMWI3NyIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjI0JVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41\\nMCIsIHBlbndpZHRoPSIwLjUwIl07Cgk2MCAtPiA4MSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9\\nIiMwZDI2N2EiLCBmb250Y29sb3I9IiMwZDI2N2EiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nNS43MiVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNjQg\\nW2NvbG9yPSIjMGM4ZTkyIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwg\\nbGFiZWw9ImJhc2U6NTE2Ol9fbWF0bXVsX19cbjI0LjIyJVxuKDAuMDglKVxuMsOXIiwgdG9vbHRp\\ncD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0\\nZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvYmFzZS5weSJdOwoJNjQgLT4gNTcgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuMzYlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTY0IC0+IDY3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkNDc4MyIsIGZv\\nbnRjb2xvcj0iIzBkNDc4MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxMi4zMiVcbjLDlyIs\\nIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNjUgW2NvbG9yPSIjMGQx\\nNTc1IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRhdGE6\\nODU6Y29weVxuMS45NSVcbigwLjAzJSlcbjHDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29u\\nZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3Bh\\ncnNlL2RhdGEucHkiXTsKCTY1IC0+IDEwMCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE0\\nNzUiLCBmb250Y29sb3I9IiMwZDE0NzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS44NCVc\\nbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNjYgW2NvbG9y\\nPSIjMGQwZjczIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nImJhc2U6MTIwMjppc3NwbWF0cml4XG4wLjU1JVxuKDAuMzclKVxuMjfDlyIsIHRvb2x0aXA9Ii9o\\nb21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFj\\na2FnZXMvc2NpcHkvc3BhcnNlL2Jhc2UucHkiXTsKCTY2IC0+IDUwIFthcnJvd3NpemU9IjAuMzUi\\nLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSIwLjU2JVxuMjfDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41\\nMCJdOwoJNjcgW2NvbG9yPSIjMGM5YjdhIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9ImJhc2U6NDEzOl9fbXVsX19cbjMwLjgwJVxuKDAuMzElKVxuNcOXIiwg\\ndG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24z\\nLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvYmFzZS5weSJdOwoJNjcgLT4gMTAgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQzOTdmIiwgZm9udGNvbG9yPSIjMGQzOTdmIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjkuNzIlXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVu\\nd2lkdGg9IjAuNTAiXTsKCTY3IC0+IDU3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTA3\\nNCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjkwJVxu\\nNcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk2NyAtPiA1OSBb\\nYXJyb3dzaXplPSIwLjM2IiwgY29sb3I9IiMwZDQ5ODMiLCBmb250Y29sb3I9IiMwZDQ5ODMiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMTIuNzglXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUx\\nIiwgcGVud2lkdGg9IjAuNTEiXTsKCTY3IC0+IDc3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0i\\nIzBkMmI3YyIsIGZvbnRjb2xvcj0iIzBkMmI3YyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI2\\nLjg0JVxuM8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk2OSBb\\nY29sb3I9IiMwZDI3N2EiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBs\\nYWJlbD0iY29vOjQ2NDpzdW1fZHVwbGljYXRlc1xuNS45OSVcbigwLjA0JSlcbjHDlyIsIHRvb2x0\\naXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3Np\\ndGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJNjkgLT4gNzQgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQyNzdhIiwgZm9udGNvbG9yPSIjMGQyNzdhIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjUuOTQlXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTcxIFtjb2xvcj0iIzBkMTI3NSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSI6MDpjc3JfbWF0bWF0X3Bhc3MxXG4xLjM4JVxuKDEuMzglKVxu\\nMsOXIiwgdG9vbHRpcD0iIl07Cgk3NCBbY29sb3I9IiMwZDI3N2EiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29vOjQ3NTpfc3VtX2R1cGxpY2F0ZXNcbjUu\\nOTQlXG4oMC45MSUpXG4xw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3Bh\\ncnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9jb28ucHki\\nXTsKCTc0IC0+IDc2IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWQ3OCIsIGZvbnRjb2xv\\ncj0iIzBkMWQ3OCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjg5JVxuMcOXIiwgbGFiZWxk\\naXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk3NCAtPiA4OSBbYXJyb3dzaXplPSIw\\nLjM1IiwgY29sb3I9IiMwZDEwNzQiLCBmb250Y29sb3I9IiMwZDEwNzQiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iMC42OCVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0i\\nMC41MCJdOwoJNzUgW2NvbG9yPSIjMGQxYzc3IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjowOmFyYW5nZVxuMy41MSVcbigzLjUxJSlcbjHDlyIsIHRvb2x0\\naXA9IiJdOwoJNzYgW2NvbG9yPSIjMGQxZDc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjowOmxleHNvcnRcbjMuODklXG4oMy44OSUpXG4xw5ciLCB0b29s\\ndGlwPSIiXTsKCTc3IFtjb2xvcj0iIzBkMmI3YyIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSJkYXRhOjExNzpfbXVsX3NjYWxhclxuNi44NCVcbigwLjU2JSlc\\nbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIv\\ncHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RhdGEucHkiXTsKCTc3IC0+IDM0\\nIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWE3NyIsIGZvbnRjb2xvcj0iIzBkMWE3NyIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjA0JVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41\\nMCIsIHBlbndpZHRoPSIwLjUwIl07Cgk3NyAtPiA5OSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9\\nIiMwZDE5NzYiLCBmb250Y29sb3I9IiMwZDE5NzYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nMi45MCVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNzgg\\nW2NvbG9yPSIjMGQwZjc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwg\\nbGFiZWw9IjowOnplcm9zXG4wLjU5JVxuKDAuNTklKVxuNMOXIiwgdG9vbHRpcD0iIl07Cgk3OSBb\\nY29sb3I9IiMwZDFiNzciLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBs\\nYWJlbD0ic3B1dGlsczoyMDA6aXNzaGFwZVxuMy4zMiVcbigwLjczJSlcbjIyw5ciLCB0b29sdGlw\\nPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRl\\nLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9zcHV0aWxzLnB5Il07Cgk3OSAtPiA5MSBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiMwZDE3NzYiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iMi4zNSVcbjExw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTgxIFtjb2xvcj0iIzBjNjI4OSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVzc2VkOjU2MTptaW5pbXVtXG4xNy4xNiVcbigw\\nLjEzJSlcbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHki\\nXTsKCTgxIC0+IDU2IFthcnJvd3NpemU9IjAuNDEiLCBjb2xvcj0iIzBjNjE4OSIsIGZvbnRjb2xv\\ncj0iIzBjNjE4OSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxNy4wMyVcbjPDlyIsIGxhYmVs\\nZGlzdGFuY2U9IjAuNjgiLCBwZW53aWR0aD0iMC42OCJdOwoJODIgW2NvbG9yPSIjMGQwZjczIiwg\\nZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9Il91dGlsOjEyODpf\\ncHJ1bmVfYXJyYXlcbjAuNTAlXG4oMC41MCUpXG40OMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFz\\nLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lw\\neS9fbGliL191dGlsLnB5Il07Cgk4NSBbY29sb3I9IiMwZDE2NzYiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6bGVuXG4yLjMxJVxuKDIuMzElKVxuMjk0\\nw5ciLCB0b29sdGlwPSIiXTsKCTg3IFtjb2xvcj0iIzBkMTE3NCIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJiYXNlOjc4OnNldF9zaGFwZVxuMS4wOSVcbigw\\nLjkxJSlcbjI4w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211\\nbHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9iYXNlLnB5Il07Cgk4\\nNyAtPiA4NSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMw\\nZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4yMiVcbjI4w5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTg4IFtjb2xvcj0iIzBkMTk3NyIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJudW1lcmljOjE5MTc6aXNz\\nY2FsYXJcbjIuOTQlXG4oMC44MyUpXG4yMsOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25k\\nYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9udW1weS9jb3Jl\\nL251bWVyaWMucHkiXTsKCTg4IC0+IDUwIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTA3\\nNCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjc2JVxu\\nMzfDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJODkgW2NvbG9y\\nPSIjMGQxMDc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nIjowOnJlZHVjZWF0XG4wLjY4JVxuKDAuNjglKVxuMcOXIiwgdG9vbHRpcD0iIl07Cgk5MSBbY29s\\nb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0ic3B1dGlsczoxODg6aXNpbnRsaWtlXG4yLjM1JVxuKDAuMjMlKVxuMTHDlyIsIHRvb2x0aXA9\\nIi9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUt\\ncGFja2FnZXMvc2NpcHkvc3BhcnNlL3NwdXRpbHMucHkiXTsKCTkxIC0+IDU3IFthcnJvd3NpemU9\\nIjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIsIGZvbnRjb2xvcj0iIzBkMTU3NSIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSIxLjk4JVxuMTHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJOTIgW2NvbG9yPSIjMGQxZjc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9Il9tZXRob2RzOjI1Ol9hbWF4XG40LjE4JVxuKDAuMzglKVxu\\nMTTDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIv\\ncHl0aG9uMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvY29yZS9fbWV0aG9kcy5weSJdOwoJOTIgLT4g\\nMTIwIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTk3NyIsIGZvbnRjb2xvcj0iIzBkMTk3\\nNyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjAwJVxuMTTDlyIsIGxhYmVsZGlzdGFuY2U9\\nIjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJOTMgW2NvbG9yPSIjMGQxMDc0IiwgZm9udGNvbG9y\\nPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImZyb21udW1lcmljOjIyMjI6YW1h\\neFxuMC43OCVcbigwLjExJSlcbjLDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52\\ncy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvY29yZS9mcm9t\\nbnVtZXJpYy5weSJdOwoJOTMgLT4gOTIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjc0\\nIiwgZm9udGNvbG9yPSIjMGQwZjc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNjAlXG4y\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTk0IFtjb2xvcj0i\\nIzBkMjA3OCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6\\nMDptYXhcbjQuNDYlXG4oMC45NSUpXG41M8OXIiwgdG9vbHRpcD0iIl07Cgk5NCAtPiA5MiBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDFjNzciLCBmb250Y29sb3I9IiMwZDFjNzciLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iMy41OSVcbjEyw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTk4IFtjb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDpjb3B5XG4wLjYyJVxuKDAuNjIlKVxuMTTD\\nlyIsIHRvb2x0aXA9IiJdOwoJOTkgW2NvbG9yPSIjMGQyNjdhIiwgZm9udGNvbG9yPSIjZmZmZmZm\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbXByZXNzZWQ6MTA3ODpfd2l0aF9kYXRhXG41\\nLjgwJVxuKDAuMjUlKVxuNMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3Nw\\nYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvY29tcHJl\\nc3NlZC5weSJdOwoJOTkgLT4gMTcgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQyOTdiIiwg\\nZm9udGNvbG9yPSIjMGQyOTdiIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjYuNTIlXG40w5ci\\nLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTk5IC0+IDk4IFthcnJv\\nd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSIwLjM1JVxuOMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBl\\nbndpZHRoPSIwLjUwIl07CgkxMDAgW2NvbG9yPSIjMGQxNDc1IiwgZm9udGNvbG9yPSIjZmZmZmZm\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRpYTozNzA6X3dpdGhfZGF0YVxuMS44NCVcbigw\\nLjA3JSlcbjHDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RpYS5weSJdOwoJMTAw\\nIC0+IDUyIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIsIGZvbnRjb2xvcj0iIzBk\\nMTU3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjg4JVxuMcOXIiwgbGFiZWxkaXN0YW5j\\nZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxMDUgW2NvbG9yPSIjMGQwZjczIiwgZm9udGNv\\nbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmhhc2F0dHJcbjAuNTIl\\nXG4oMC40NSUpXG4xOMOXIiwgdG9vbHRpcD0iIl07CgkxMTAgW2NvbG9yPSIjMGQxMTc0IiwgZm9u\\ndGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRhdGE6MjI6X19pbml0\\nX19cbjEuMDAlXG4oMC41NSUpXG4yOMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9l\\nbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2Uv\\nZGF0YS5weSJdOwoJMTE0IFtjb2xvcj0iIzBkMTQ3NSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJnZXRsaW1pdHM6NTA3Ol9faW5pdF9fXG4xLjgxJVxuKDEu\\nODElKVxuNTnDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvY29yZS9nZXRsaW1pdHMucHkiXTsK\\nCTExNiBbY29sb3I9IiMwZDEwNzQiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iOjA6YXN0eXBlXG4wLjg4JVxuKDAuODglKVxuMTXDlyIsIHRvb2x0aXA9IiJd\\nOwoJMTE3IFtjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSJfd2Vha3JlZnNldDo3MDpfX2NvbnRhaW5zX19cbjAuNTElXG4oMC41MSUp\\nXG4zMMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xp\\nYi9weXRob24zLjUvX3dlYWtyZWZzZXQucHkiXTsKCTExOCBbY29sb3I9IiMwZDE5NzciLCBmb250\\nY29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6Y3NyX21pbmltdW1f\\nY3NyXG4yLjk1JVxuKDIuOTUlKVxuM8OXIiwgdG9vbHRpcD0iIl07CgkxMTkgW2NvbG9yPSIjMGQx\\nMTc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImJhc2U6\\nMTAxOmdldF9zaGFwZVxuMC45NyVcbigwLjk3JSlcbjEyN8OXIiwgdG9vbHRpcD0iL2hvbWUvZm9y\\nZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9z\\nY2lweS9zcGFyc2UvYmFzZS5weSJdOwoJMTIwIFtjb2xvcj0iIzBkMjU3YSIsIGZvbnRjb2xvcj0i\\nI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDpyZWR1Y2VcbjUuNTclXG4oNS41\\nNyUpXG4yNsOXIiwgdG9vbHRpcD0iIl07CgkxMjEgW2NvbG9yPSIjMGQxNDc1IiwgZm9udGNvbG9y\\nPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmNvb190b2NzclxuMS43NSVc\\nbigxLjc1JSlcbjTDlyIsIHRvb2x0aXA9IiJdOwoJMTIzIFtjb2xvcj0iIzBkMTE3NCIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVzc2VkOjEwMDpn\\nZXRubnpcbjEuMTElXG4oMS4xMSUpXG4xMDLDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29u\\nZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3Bh\\ncnNlL2NvbXByZXNzZWQucHkiXTsKfQo=\\n');\n", | |
" var image = Viz(\n", | |
" source, {\n", | |
" engine: \"dot\",\n", | |
" totalMemory: 67108864\n", | |
" });\n", | |
"\n", | |
" //console.log(image);\n", | |
"\n", | |
" var svg_container = '<div style=\"width: 100%; border:1px solid black; \">';\n", | |
" element.append(svg_container)\n", | |
" element.find(\"div\").append(image);\n", | |
" console.log(element);\n", | |
"\n", | |
" var svg_element = $(element).find(\"svg\");\n", | |
" svg_element.removeAttr(\"width\");\n", | |
" svg_element.removeAttr(\"height\");\n", | |
" svg_element[0].setAttribute(\"height\", \"90em\")\n", | |
" svg_element[0].setAttribute(\"width\", \"100%\")\n", | |
" svg_element[0].setAttribute(\"preserveAspectRatio\", \"xMinYMin\")\n", | |
"\n", | |
" var eventsHandler;\n", | |
" eventsHandler = {\n", | |
" haltEventListeners: ['touchstart', 'touchend', 'touchmove', 'touchleave', 'touchcancel'],\n", | |
" init: function(options) {\n", | |
" var instance = options.instance\n", | |
" , initialScale = 1\n", | |
" , pannedX = 0\n", | |
" , pannedY = 0\n", | |
"\n", | |
" // Init Hammer\n", | |
" // Listen only for pointer and touch events\n", | |
" this.hammer = Hammer(options.svgElement, {\n", | |
" inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput\n", | |
" })\n", | |
"\n", | |
" // Enable pinch\n", | |
" this.hammer.get('pinch').set({enable: true})\n", | |
"\n", | |
" // Handle double tap\n", | |
" this.hammer.on('doubletap', function(ev){\n", | |
" instance.zoomIn()\n", | |
" })\n", | |
"\n", | |
" // Handle pan\n", | |
" this.hammer.on('panstart panmove', function(ev){\n", | |
" // On pan start reset panned variables\n", | |
" if (ev.type === 'panstart') {\n", | |
" pannedX = 0\n", | |
" pannedY = 0\n", | |
" }\n", | |
" // Pan only the difference\n", | |
" instance.panBy({x: ev.deltaX - pannedX, y: ev.deltaY - pannedY})\n", | |
" pannedX = ev.deltaX\n", | |
" pannedY = ev.deltaY\n", | |
" })\n", | |
"\n", | |
" // Handle pinch\n", | |
" this.hammer.on('pinchstart pinchmove', function(ev){\n", | |
" // On pinch start remember initial zoom\n", | |
" if (ev.type === 'pinchstart') {\n", | |
" initialScale = instance.getZoom()\n", | |
" instance.zoom(initialScale * ev.scale)\n", | |
" }\n", | |
" instance.zoom(initialScale * ev.scale)\n", | |
" })\n", | |
" // Prevent moving the page on some devices when panning over SVG\n", | |
" options.svgElement.addEventListener('touchmove', function(e){ e.preventDefault(); });\n", | |
" },\n", | |
" destroy: function(){\n", | |
" this.hammer.destroy()\n", | |
" }\n", | |
" }\n", | |
"\n", | |
"\n", | |
" var panzoom = svgPanZoom(svg_element[0], {\n", | |
" zoomEnabled: true,\n", | |
" controlIconsEnabled: true,\n", | |
" fit: true,\n", | |
" center: true,\n", | |
" zoomScaleSensitivity: 0.33,\n", | |
" customEventsHandler: eventsHandler\n", | |
" });\n", | |
"\n", | |
" panzoom.resize();\n", | |
" panzoom.fit();\n", | |
" panzoom.center();\n", | |
"\n", | |
" $(window).resize(function(){\n", | |
" panzoom.resize();\n", | |
" panzoom.fit();\n", | |
" panzoom.center();\n", | |
" })\n", | |
"\n", | |
" window.svg_container = svg_container;\n", | |
" window.svg_element = svg_element;\n", | |
" window.panzoom = svgPanZoom(svg_element[0], {\n", | |
" zoomEnabled: true,\n", | |
" controlIconsEnabled: true,\n", | |
" fit: true,\n", | |
" center: true,\n", | |
" zoomScaleSensitivity: 0.33,\n", | |
" });\n", | |
"});\n" | |
], | |
"text/plain": [ | |
"<graphviz.files.Source at 0x7e466c03e710>" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"%%visual_profile\n", | |
"system_size = int(5e3)\n", | |
"max_depth = 4\n", | |
"\n", | |
"bond_matrix = scipy.sparse.diags([[True], [True], [True]], [-1, 0, 1], shape=(system_size, system_size), dtype=bool)\n", | |
"dist_matrix = graph_path_expansion(bond_matrix, max_depth)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 1., 1., 2., 3., inf, inf, inf, inf, inf, inf],\n", | |
" [ 1., 1., 1., 2., 3., inf, inf, inf, inf, inf],\n", | |
" [ 2., 1., 1., 1., 2., 3., inf, inf, inf, inf],\n", | |
" [ 3., 2., 1., 1., 1., 2., 3., inf, inf, inf],\n", | |
" [inf, 3., 2., 1., 1., 1., 2., 3., inf, inf],\n", | |
" [inf, inf, 3., 2., 1., 1., 1., 2., 3., inf],\n", | |
" [inf, inf, inf, 3., 2., 1., 1., 1., 2., 3.],\n", | |
" [inf, inf, inf, inf, 3., 2., 1., 1., 1., 2.],\n", | |
" [inf, inf, inf, inf, inf, 3., 2., 1., 1., 1.],\n", | |
" [inf, inf, inf, inf, inf, inf, 3., 2., 1., 1.]])" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sparse_path_len_to_dense(dist_matrix)[:10, :10]" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python [conda env:sparse_mult]", | |
"language": "python", | |
"name": "conda-env-sparse_mult-py" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.5.4" | |
}, | |
"toc": { | |
"nav_menu": {}, | |
"number_sections": true, | |
"sideBar": true, | |
"skip_h1_title": false, | |
"title_cell": "Table of Contents", | |
"title_sidebar": "Contents", | |
"toc_cell": false, | |
"toc_position": {}, | |
"toc_section_display": true, | |
"toc_window_display": false | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment