chaintool-doc

Chaintool documentation
Log | Files | Refs | README | LICENSE

commit 6dd41adfa0accb28121dc0673e4afbd25c00fbbb
parent 72ce38c4d60beae16f679cd2861e756cd45b253c
Author: lash <dev@holbrook.no>
Date:   Fri,  9 Jun 2023 07:53:05 +0100

Add python 3.11 warning

Diffstat:
MREADME.in | 2++
MREADME.md | 8+++++---
Mbuild/deps.svg | 180++++++++++++++++++++++++++++++++++++++++----------------------------------------
3 files changed, 97 insertions(+), 93 deletions(-)

diff --git a/README.in b/README.in @@ -1,5 +1,7 @@ # Chaintool documentation +**chaintool unfortunately does not currently work with python 3.11** + Chaintool is still very much a work-in-progress. So too is its documentation. This README, while still somewhat chaotic, aims to fill the void of a missing structured presentation, and make the introduction to chaintool a bit more friendly. diff --git a/README.md b/README.md @@ -1,5 +1,7 @@ # Chaintool documentation +**chaintool unfortunately does not currently work with python 3.11** + Chaintool is still very much a work-in-progress. So too is its documentation. This README, while still somewhat chaotic, aims to fill the void of a missing structured presentation, and make the introduction to chaintool a bit more friendly. @@ -9,13 +11,13 @@ This README, while still somewhat chaotic, aims to fill the void of a missing st The most intuitive entry point to chaintool is most likely the `eth-monitor` tool. It can be installed directly from `pypi` using `pip install eth-monitor`. -A short presentation video exists to demonstrate some of the features it provides: - <video width="800" height="450" controls> <source src="https://defalsify.org/chaintool_pychain_pitch.mp4"> Your browser cannot embed this video. Please use the links below instead. </video> +Source: + * [video file](https://defalsify.org/chaintool_pychain_pitch.mp4) * [video file signatures](https://defalsify.org/chaintool_pychain_pitch.mp4.asc) @@ -67,7 +69,7 @@ So far, documentation efforts have been made in four areas, in order of most rec Last time the author remembered to render it, it looked like this: -<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDcuMC4xICgwKQogLS0+CjwhLS0gUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjYzNXB0IiBoZWlnaHQ9IjU0OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDYzNC42NyA1NDguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgNTQ0KSI+Cjxwb2x5Z29uIGZpbGw9IndoaXRlIiBzdHJva2U9Im5vbmUiIHBvaW50cz0iLTQsNCAtNCwtNTQ0IDYzMC42NywtNTQ0IDYzMC42Nyw0IC00LDQiLz4KPCEtLSBjb25maW5pIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmNvbmZpbmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjY2NjY2NjIiBzdHJva2U9ImJsYWNrIiBjeD0iMTMxLjQ1IiBjeT0iLTQ1MCIgcng9IjQ0LjY5IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTMxLjQ1IiB5PSItNDQ2LjMiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+bG8vY29uZmluaTwvdGV4dD4KPC9nPgo8IS0tIGNoYWlubGliIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmNoYWlubGliPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjIwNC40NSIgY3k9Ii0zNzgiIHJ4PSIzOC45OSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNC40NSIgeT0iLTM3NC4zIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmNoYWlubGliPC90ZXh0Pgo8L2c+CjwhLS0gY29uZmluaSYjNDU7Jmd0O2NoYWlubGliIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNvbmZpbmkmIzQ1OyZndDtjaGFpbmxpYjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDguMDEsLTQzMy4xMkMxNTcuNTEsLTQyNC4wMSAxNjkuNTksLTQxMi40MiAxODAuMTUsLTQwMi4zIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE4Mi4zMSwtNDA1LjA4IDE4Ny4xMSwtMzk1LjYzIDE3Ny40NywtNDAwLjAyIDE4Mi4zMSwtNDA1LjA4Ii8+CjwvZz4KPCEtLSBoZXhhdGhvbiAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5oZXhhdGhvbjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9IiNjY2NjY2MiIHN0cm9rZT0iYmxhY2siIGN4PSIzODEuNDUiIGN5PSItNTIyIiByeD0iNTEuOTkiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzODEuNDUiIHk9Ii01MTguMyIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5sby9oZXhhdGhvbjwvdGV4dD4KPC9nPgo8IS0tIGxldmVsZGlyIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmxldmVsZGlyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2NjY2NjYyIgc3Ryb2tlPSJibGFjayIgY3g9IjI3OS40NSIgY3k9Ii0zMDYiIHJ4PSI0Ni41OSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3OS40NSIgeT0iLTMwMi4zIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmxvL2xldmVsZGlyPC90ZXh0Pgo8L2c+CjwhLS0gaGV4YXRob24mIzQ1OyZndDtsZXZlbGRpciAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5oZXhhdGhvbiYjNDU7Jmd0O2xldmVsZGlyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTM5Ny41LC01MDQuODRDNDA2LjE4LC00OTUuMDMgNDE2LjE4LC00ODEuNzggNDIxLjQ1LC00NjggNDM4LjYsLTQyMy4wOSA0NTUuMTIsLTM5OS4zMSA0MjcuNDUsLTM2MCA0MjQuMywtMzU1LjUzIDM2Ny4yMywtMzM1LjkzIDMyNC45LC0zMjEuODciLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzI2LjI1LC0zMTguNjMgMzE1LjY2LC0zMTguODEgMzI0LjA1LC0zMjUuMjggMzI2LjI1LC0zMTguNjMiLz4KPC9nPgo8IS0tIGhleGF0aG9uJiM0NTsmZ3Q7Y2hhaW5saWIgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aGV4YXRob24mIzQ1OyZndDtjaGFpbmxpYjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMzEuMjYsLTUxNy4wMUMyOTYuMTEsLTUxMS41MSAyNTAuNzEsLTQ5OC41NCAyMjMuNDUsLTQ2OCAyMDguODgsLTQ1MS42OCAyMDQuNTEsLTQyNi45OCAyMDMuNTcsLTQwNy43MyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyMDcuMDcsLTQwNy43NSAyMDMuNCwtMzk3LjgxIDIwMC4wNywtNDA3Ljg3IDIwNy4wNywtNDA3Ljc1Ii8+CjwvZz4KPCEtLSBmdW5nYSAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5mdW5nYTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIzODEuNDUiIGN5PSItNDUwIiByeD0iMzAuNTkiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzODEuNDUiIHk9Ii00NDYuMyIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5mdW5nYTwvdGV4dD4KPC9nPgo8IS0tIGhleGF0aG9uJiM0NTsmZ3Q7ZnVuZ2EgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aGV4YXRob24mIzQ1OyZndDtmdW5nYTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zODEuNDUsLTUwMy43QzM4MS40NSwtNDk2LjQxIDM4MS40NSwtNDg3LjczIDM4MS40NSwtNDc5LjU0Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjM4NC45NSwtNDc5LjYyIDM4MS40NSwtNDY5LjYyIDM3Ny45NSwtNDc5LjYyIDM4NC45NSwtNDc5LjYyIi8+CjwvZz4KPCEtLSBwb3RhYWh0byAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5wb3RhYWh0bzwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9IiNjY2NjY2MiIHN0cm9rZT0iYmxhY2siIGN4PSIyODIuNDUiIGN5PSItNDUwIiByeD0iNTAuMDkiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyODIuNDUiIHk9Ii00NDYuMyIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5sby9wb3RhYWh0bzwvdGV4dD4KPC9nPgo8IS0tIHBvdGFhaHRvJiM0NTsmZ3Q7Y2hhaW5saWIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+cG90YWFodG8mIzQ1OyZndDtjaGFpbmxpYjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNjQuMzYsLTQzMi43NkMyNTQuMiwtNDIzLjY1IDI0MS4zNiwtNDEyLjEzIDIzMC4xNywtNDAyLjA5Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIzMi41NCwtMzk5LjUxIDIyMi43NiwtMzk1LjQ0IDIyNy44NywtNDA0LjcyIDIzMi41NCwtMzk5LjUxIi8+CjwvZz4KPCEtLSBldGhfY2FjaGUgLS0+CjxnIGlkPSJub2RlMTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmV0aF9jYWNoZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNzYuNDUiIGN5PSItMjM0IiByeD0iNDQuMzkiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNzYuNDUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5ldGgmIzQ1O2NhY2hlPC90ZXh0Pgo8L2c+CjwhLS0gbGV2ZWxkaXImIzQ1OyZndDtldGhfY2FjaGUgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+bGV2ZWxkaXImIzQ1OyZndDtldGhfY2FjaGU8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjc4LjcxLC0yODcuN0MyNzguMzksLTI4MC40MSAyNzguMDIsLTI3MS43MyAyNzcuNjcsLTI2My41NCIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyODEuMTcsLTI2My40NiAyNzcuMjQsLTI1My42MiAyNzQuMTgsLTI2My43NiAyODEuMTcsLTI2My40NiIvPgo8L2c+CjwhLS0gc2hlcCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5zaGVwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2NjY2NjYyIgc3Ryb2tlPSJibGFjayIgY3g9IjE0MC40NSIgY3k9Ii0yMzQiIHJ4PSIzNi4yOSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE0MC40NSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmxvL3NoZXA8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbnN5bmNlciAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Y2hhaW5zeW5jZXI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjY4LjQ1IiBjeT0iLTE2MiIgcng9IjUyLjc5IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjY4LjQ1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+Y2hhaW5zeW5jZXI8L3RleHQ+CjwvZz4KPCEtLSBzaGVwJiM0NTsmZ3Q7Y2hhaW5zeW5jZXIgLS0+CjxnIGlkPSJlZGdlMTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPnNoZXAmIzQ1OyZndDtjaGFpbnN5bmNlcjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNjQuMjIsLTIyMEMxODMuMDcsLTIwOS42OSAyMDkuNzUsLTE5NS4xIDIzMS4zOSwtMTgzLjI2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIzMi44MywtMTg2LjQ3IDIzOS45MiwtMTc4LjYgMjI5LjQ3LC0xODAuMzMgMjMyLjgzLC0xODYuNDciLz4KPC9nPgo8IS0tIGNoYWlucXVldWUgLS0+CjxnIGlkPSJub2RlMTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmNoYWlucXVldWU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTQwLjQ1IiBjeT0iLTE2MiIgcng9IjUwLjg5IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTQwLjQ1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+Y2hhaW5xdWV1ZTwvdGV4dD4KPC9nPgo8IS0tIHNoZXAmIzQ1OyZndDtjaGFpbnF1ZXVlIC0tPgo8ZyBpZD0iZWRnZTE1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5zaGVwJiM0NTsmZ3Q7Y2hhaW5xdWV1ZTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDAuNDUsLTIxNS43QzE0MC40NSwtMjA4LjQxIDE0MC40NSwtMTk5LjczIDE0MC40NSwtMTkxLjU0Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE0My45NSwtMTkxLjYyIDE0MC40NSwtMTgxLjYyIDEzNi45NSwtMTkxLjYyIDE0My45NSwtMTkxLjYyIi8+CjwvZz4KPCEtLSBhaWVlIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmFpZWU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjY2NjY2NjIiBzdHJva2U9ImJsYWNrIiBjeD0iMzQuNDUiIGN5PSItNDUwIiByeD0iMzQuMzkiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzNC40NSIgeT0iLTQ0Ni4zIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmxvL2FsZWU8L3RleHQ+CjwvZz4KPCEtLSBhaWVlJiM0NTsmZ3Q7Y2hhaW5saWIgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YWllZSYjNDU7Jmd0O2NoYWlubGliPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTYxLjAxLC00MzguMDZDODkuMTIsLTQyNi40OSAxMzMuNzQsLTQwOC4xMSAxNjUuNzYsLTM5NC45MyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNjYuNzcsLTM5OC4zIDE3NC42OSwtMzkxLjI1IDE2NC4xMSwtMzkxLjgyIDE2Ni43NywtMzk4LjMiLz4KPC9nPgo8IS0tIGNoYWlubGliX2V0aCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jaGFpbmxpYl9ldGg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMzk2LjQ1IiBjeT0iLTMwNiIgcng9IjUyLjc5IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzk2LjQ1IiB5PSItMzAyLjMiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+Y2hhaW5saWImIzQ1O2V0aDwvdGV4dD4KPC9nPgo8IS0tIGNoYWlubGliJiM0NTsmZ3Q7Y2hhaW5saWJfZXRoIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWlubGliJiM0NTsmZ3Q7Y2hhaW5saWJfZXRoPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIzNC40NSwtMzY2LjA2QzI2NS42MSwtMzU0LjcgMzE0Ljc1LC0zMzYuNzkgMzUwLjc0LC0zMjMuNjYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzUxLjg0LC0zMjYuOTkgMzYwLjAzLC0zMjAuMjggMzQ5LjQ0LC0zMjAuNDEgMzUxLjg0LC0zMjYuOTkiLz4KPC9nPgo8IS0tIGNoYWlubGliJiM0NTsmZ3Q7Y2hhaW5zeW5jZXIgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWlubGliJiM0NTsmZ3Q7Y2hhaW5zeW5jZXI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjAzLjMxLC0zNTkuNzFDMjAxLjk3LC0zMjkuMjggMjAyLjIxLC0yNjQuNzcgMjIzLjQ1LC0yMTYgMjI3LjkxLC0yMDUuNzYgMjM1LjAyLC0xOTYgMjQyLjI5LC0xODcuNzEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjQ0LjgxLC0xOTAuMTMgMjQ5LjA4LC0xODAuNDQgMjM5LjcsLTE4NS4zNSAyNDQuODEsLTE5MC4xMyIvPgo8L2c+CjwhLS0gY2hhaW5saWImIzQ1OyZndDtjaGFpbnF1ZXVlIC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jaGFpbmxpYiYjNDU7Jmd0O2NoYWlucXVldWU8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTg0LjgyLC0zNjIuMjdDMTU4LjU5LC0zNDEuMjEgMTEzLjMzLC0yOTkuNzIgOTUuNDUsLTI1MiA4OS44MywtMjM3LjAyIDg5LjkzLC0yMzEuMDIgOTUuNDUsLTIxNiA5OS4zLC0yMDUuNTIgMTA2LjI0LC0xOTUuNjkgMTEzLjU0LC0xODcuNDEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTE2LjA3LC0xODkuODMgMTIwLjQzLC0xODAuMTcgMTExLC0xODUgMTE2LjA3LC0xODkuODMiLz4KPC9nPgo8IS0tIGNoYWlubGliX2V0aCYjNDU7Jmd0O2V0aF9jYWNoZSAtLT4KPGcgaWQ9ImVkZ2UxMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX2NhY2hlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTM3MC43LC0yODkuOThDMzUzLjE5LC0yNzkuNzcgMzI5LjgyLC0yNjYuMTQgMzEwLjc0LC0yNTUiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzEyLjYzLC0yNTIuMDUgMzAyLjIzLC0yNTAuMDQgMzA5LjEsLTI1OC4xIDMxMi42MywtMjUyLjA1Ii8+CjwvZz4KPCEtLSBjaGFpbmRfZXRoIC0tPgo8ZyBpZD0ibm9kZTE1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jaGFpbmRfZXRoPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2FhZmZhYSIgc3Ryb2tlPSJibGFjayIgY3g9IjQ1OS40NSIgY3k9Ii0xOCIgcng9IjU3LjM5IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNDU5LjQ1IiB5PSItMTQuMyIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5oaS9jaGFpbmQmIzQ1O2V0aDwvdGV4dD4KPC9nPgo8IS0tIGNoYWlubGliX2V0aCYjNDU7Jmd0O2NoYWluZF9ldGggLS0+CjxnIGlkPSJlZGdlMjUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWlubGliX2V0aCYjNDU7Jmd0O2NoYWluZF9ldGg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNDQ1Ljk2LC0yOTkuNDhDNTAxLjY2LC0yOTIuMTMgNTg2LjkyLC0yNzcuMDcgNjA2LjQ1LC0yNTIgNjU4LjgxLC0xODQuNzggNTk3LjgxLC0xMzUuMDEgNTQwLjQ1LC03MiA1MjguNzcsLTU5LjE4IDUxMy4zNSwtNDguMDggNDk5LjEsLTM5LjQiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTAxLjE5LC0zNi41NyA0OTAuNzgsLTM0LjU1IDQ5Ny42NiwtNDIuNjEgNTAxLjE5LC0zNi41NyIvPgo8L2c+CjwhLS0gZXRoX21vbml0b3IgLS0+CjxnIGlkPSJub2RlMTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmV0aF9tb25pdG9yPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2FhZmZhYSIgc3Ryb2tlPSJibGFjayIgY3g9IjQ2OS40NSIgY3k9Ii05MCIgcng9IjYxLjk5IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNDY5LjQ1IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5oaS9ldGgmIzQ1O21vbml0b3I8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbmxpYl9ldGgmIzQ1OyZndDtldGhfbW9uaXRvciAtLT4KPGcgaWQ9ImVkZ2UyNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX21vbml0b3I8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNDQ0LjcyLC0yOTguMzFDNDk1LjQzLC0yOTAuMTggNTcwLjIxLC0yNzQuNjcgNTg3LjQ1LC0yNTIgNjI0Ljg1LC0yMDIuODEgNTUyLjg5LC0xNDQuMDMgNTA1Ljc4LC0xMTIuODkiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTA3LjczLC0xMDkuOTggNDk3LjQzLC0xMDcuNSA1MDMuOTMsLTExNS44NiA1MDcuNzMsLTEwOS45OCIvPgo8L2c+CjwhLS0gZXRoX2VyYzIwIC0tPgo8ZyBpZD0ibm9kZTE3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5ldGhfZXJjMjA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjYWFmZmFhIiBzdHJva2U9ImJsYWNrIiBjeD0iNTI1LjQ1IiBjeT0iLTIzNCIgcng9IjUzLjA5IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNTI1LjQ1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+aGkvZXRoJiM0NTtlcmMyMDwvdGV4dD4KPC9nPgo8IS0tIGNoYWlubGliX2V0aCYjNDU7Jmd0O2V0aF9lcmMyMCAtLT4KPGcgaWQ9ImVkZ2UyMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX2VyYzIwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQyMy44LC0yOTAuMTVDNDQyLjUzLC0yNzkuOTkgNDY3LjYsLTI2Ni4zOSA0ODguMTUsLTI1NS4yNCIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI0ODkuNjgsLTI1OC4zOSA0OTYuOCwtMjUwLjU1IDQ4Ni4zNCwtMjUyLjI0IDQ4OS42OCwtMjU4LjM5Ii8+CjwvZz4KPCEtLSBldGhfZXJjNzIxIC0tPgo8ZyBpZD0ibm9kZTE4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5ldGhfZXJjNzIxPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2FhZmZhYSIgc3Ryb2tlPSJibGFjayIgY3g9IjM5Ni40NSIgY3k9Ii0yMzQiIHJ4PSI1Ny42OSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjM5Ni40NSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmhpL2V0aCYjNDU7ZXJjNzIxPC90ZXh0Pgo8L2c+CjwhLS0gY2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX2VyYzcyMSAtLT4KPGcgaWQ9ImVkZ2UyMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX2VyYzcyMTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zOTYuNDUsLTI4Ny43QzM5Ni40NSwtMjgwLjQxIDM5Ni40NSwtMjcxLjczIDM5Ni40NSwtMjYzLjU0Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjM5OS45NSwtMjYzLjYyIDM5Ni40NSwtMjUzLjYyIDM5Mi45NSwtMjYzLjYyIDM5OS45NSwtMjYzLjYyIi8+CjwvZz4KPCEtLSBmdW5nYSYjNDU7Jmd0O2NoYWlubGliIC0tPgo8ZyBpZD0iZWRnZTIyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5mdW5nYSYjNDU7Jmd0O2NoYWlubGliPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTM1Ny4zOSwtNDM4LjYyQzM1Mi4xNSwtNDM2LjQxIDM0Ni42MiwtNDM0LjEgMzQxLjQ1LC00MzIgMzA5LjA1LC00MTguODUgMjcyLjA1LC00MDQuNTggMjQ0LjY4LC0zOTQuMTciLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjQ1Ljk2LC0zOTAuOTEgMjM1LjM3LC0zOTAuNjMgMjQzLjQ4LC0zOTcuNDUgMjQ1Ljk2LC0zOTAuOTEiLz4KPC9nPgo8IS0tIGZ1bmdhX2V0aCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZnVuZ2FfZXRoPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjM3NC40NSIgY3k9Ii0zNzgiIHJ4PSI0NC4zOSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjM3NC40NSIgeT0iLTM3NC4zIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmZ1bmdhJiM0NTtldGg8L3RleHQ+CjwvZz4KPCEtLSBmdW5nYSYjNDU7Jmd0O2Z1bmdhX2V0aCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5mdW5nYSYjNDU7Jmd0O2Z1bmdhX2V0aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zNzkuNzIsLTQzMS43QzM3OC45OSwtNDI0LjQxIDM3OC4xMiwtNDE1LjczIDM3Ny4zLC00MDcuNTQiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzgwLjc5LC00MDcuMjEgMzc2LjMxLC0zOTcuNjEgMzczLjgyLC00MDcuOTEgMzgwLjc5LC00MDcuMjEiLz4KPC9nPgo8IS0tIGZ1bmdhX2V0aCYjNDU7Jmd0O2NoYWlubGliX2V0aCAtLT4KPGcgaWQ9ImVkZ2UyMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZnVuZ2FfZXRoJiM0NTsmZ3Q7Y2hhaW5saWJfZXRoPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTM3OS44OSwtMzU5LjdDMzgyLjIzLC0zNTIuMjQgMzg1LjAzLC0zNDMuMzIgMzg3LjY2LC0zMzQuOTciLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzkwLjk2LC0zMzYuMTQgMzkwLjYyLC0zMjUuNTUgMzg0LjI4LC0zMzQuMDQgMzkwLjk2LC0zMzYuMTQiLz4KPC9nPgo8IS0tIGV0aF9jYWNoZSYjNDU7Jmd0O2NoYWluc3luY2VyIC0tPgo8ZyBpZD0iZWRnZTEzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5ldGhfY2FjaGUmIzQ1OyZndDtjaGFpbnN5bmNlcjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNzQuNDcsLTIxNS43QzI3My42NCwtMjA4LjQxIDI3Mi42NCwtMTk5LjczIDI3MS43MSwtMTkxLjU0Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI3NS4xOSwtMTkxLjE1IDI3MC41NywtMTgxLjYxIDI2OC4yMywtMTkxLjk0IDI3NS4xOSwtMTkxLjE1Ii8+CjwvZz4KPCEtLSBjaGFpbmQgLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmNoYWluZDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9IiNhYWZmYWEiIHN0cm9rZT0iYmxhY2siIGN4PSIyNjguNDUiIGN5PSItOTAiIHJ4PSI0My41OSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI2OC40NSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+aGkvY2hhaW5kPC90ZXh0Pgo8L2c+CjwhLS0gY2hhaW5zeW5jZXImIzQ1OyZndDtjaGFpbmQgLS0+CjxnIGlkPSJlZGdlMTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWluc3luY2VyJiM0NTsmZ3Q7Y2hhaW5kPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI2OC40NSwtMTQzLjdDMjY4LjQ1LC0xMzYuNDEgMjY4LjQ1LC0xMjcuNzMgMjY4LjQ1LC0xMTkuNTQiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjcxLjk1LC0xMTkuNjIgMjY4LjQ1LC0xMDkuNjIgMjY0Ljk1LC0xMTkuNjIgMjcxLjk1LC0xMTkuNjIiLz4KPC9nPgo8IS0tIGNoYWluc3luY2VyJiM0NTsmZ3Q7ZXRoX21vbml0b3IgLS0+CjxnIGlkPSJlZGdlMTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWluc3luY2VyJiM0NTsmZ3Q7ZXRoX21vbml0b3I8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzA0LjM4LC0xNDguNDlDMzM2LjYyLC0xMzcuMjYgMzg0LjIyLC0xMjAuNjggNDIwLjAzLC0xMDguMjEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNDIxLjAyLC0xMTEuNTcgNDI5LjMxLC0xMDQuOTggNDE4LjcxLC0xMDQuOTYgNDIxLjAyLC0xMTEuNTciLz4KPC9nPgo8IS0tIGNoYWlucXVldWUmIzQ1OyZndDtjaGFpbmQgLS0+CjxnIGlkPSJlZGdlMTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWlucXVldWUmIzQ1OyZndDtjaGFpbmQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTY3LjI4LC0xNDYuMzNDMTg2LjM0LC0xMzUuOSAyMTIuMTQsLTEyMS43OSAyMzIuOTIsLTExMC40MyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyMzQuNTQsLTExMy41MyAyNDEuNjMsLTEwNS42NyAyMzEuMTgsLTEwNy4zOSAyMzQuNTQsLTExMy41MyIvPgo8L2c+CjwhLS0gY2hhaW5kJiM0NTsmZ3Q7Y2hhaW5kX2V0aCAtLT4KPGcgaWQ9ImVkZ2UxOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5kJiM0NTsmZ3Q7Y2hhaW5kX2V0aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMDAuNDIsLTc3LjI4QzMzMS4xMiwtNjYuMDMgMzc3Ljg1LC00OC45IDQxMi43MiwtMzYuMTIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNDEzLjUzLC0zOS41NiA0MjEuNzEsLTMyLjgzIDQxMS4xMiwtMzIuOTggNDEzLjUzLC0zOS41NiIvPgo8L2c+CjwvZz4KPC9zdmc+Cg==" /> +<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDguMC41ICgwKQogLS0+CjwhLS0gUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjY1M3B0IiBoZWlnaHQ9IjU0OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDY1Mi44NSA1NDguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgNTQ0KSI+Cjxwb2x5Z29uIGZpbGw9IndoaXRlIiBzdHJva2U9Im5vbmUiIHBvaW50cz0iLTQsNCAtNCwtNTQ0IDY0OC44NSwtNTQ0IDY0OC44NSw0IC00LDQiLz4KPCEtLSBjb25maW5pIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmNvbmZpbmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjY2NjY2NjIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1LjQ5IiBjeT0iLTQ1MCIgcng9IjQ2Ljc1IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1LjQ5IiB5PSItNDQ0Ljk1IiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmxvL2NvbmZpbmk8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbmxpYiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jaGFpbmxpYjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyMTAuNDkiIGN5PSItMzc4IiByeD0iNDAuNiIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIxMC40OSIgeT0iLTM3Mi45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5jaGFpbmxpYjwvdGV4dD4KPC9nPgo8IS0tIGNvbmZpbmkmIzQ1OyZndDtjaGFpbmxpYiAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jb25maW5pJiM0NTsmZ3Q7Y2hhaW5saWI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTUyLjUsLTQzMy4xMkMxNjIuMjksLTQyMy45OSAxNzQuNzUsLTQxMi4zNiAxODUuNjEsLTQwMi4yMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxODcuNjEsLTQwNS4yIDE5Mi41MywtMzk1LjgyIDE4Mi44NCwtNDAwLjA5IDE4Ny42MSwtNDA1LjIiLz4KPC9nPgo8IS0tIGhleGF0aG9uIC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmhleGF0aG9uPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2NjY2NjYyIgc3Ryb2tlPSJibGFjayIgY3g9IjM5Mi40OSIgY3k9Ii01MjIiIHJ4PSI1NC40MiIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjM5Mi40OSIgeT0iLTUxNi45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5sby9oZXhhdGhvbjwvdGV4dD4KPC9nPgo8IS0tIGxldmVsZGlyIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmxldmVsZGlyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2NjY2NjYyIgc3Ryb2tlPSJibGFjayIgY3g9IjI4Ny40OSIgY3k9Ii0zMDYiIHJ4PSI0OC43OSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI4Ny40OSIgeT0iLTMwMC45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5sby9sZXZlbGRpcjwvdGV4dD4KPC9nPgo8IS0tIGhleGF0aG9uJiM0NTsmZ3Q7bGV2ZWxkaXIgLS0+CjxnIGlkPSJlZGdlOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aGV4YXRob24mIzQ1OyZndDtsZXZlbGRpcjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik00MDkuMjgsLTUwNC40MkM0MTguMDYsLTQ5NC42OCA0MjguMDgsLTQ4MS42MiA0MzMuNDksLTQ2OCA0NTEuMjIsLTQyMy4yOSA0NjguMzgsLTM5OS4xOSA0NDAuNDksLTM2MCA0MzcuMjIsLTM1NS40MSAzNzguMDYsLTMzNS43OSAzMzQuMjksLTMyMS43NiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMzUuNCwtMzE4LjEzIDMyNC44MSwtMzE4LjQyIDMzMy4yNywtMzI0Ljc5IDMzNS40LC0zMTguMTMiLz4KPC9nPgo8IS0tIGhleGF0aG9uJiM0NTsmZ3Q7Y2hhaW5saWIgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aGV4YXRob24mIzQ1OyZndDtjaGFpbmxpYjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMzkuNTksLTUxNy4yOEMzMDMuNTEsLTUxMS45IDI1Ny4zNywtNDk4Ljk1IDIyOS40OSwtNDY4IDIxNC43LC00NTEuNTkgMjEwLjQsLTQyNi41NyAyMDkuNTQsLTQwNy4yMyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyMTMuMDIsLTQwNy4yOCAyMDkuMzgsLTM5Ny4zMyAyMDYuMDIsLTQwNy4zOCAyMTMuMDIsLTQwNy4yOCIvPgo8L2c+CjwhLS0gZnVuZ2EgLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZnVuZ2E8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMzkyLjQ5IiBjeT0iLTQ1MCIgcng9IjMxLjkiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzOTIuNDkiIHk9Ii00NDQuOTUiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+ZnVuZ2E8L3RleHQ+CjwvZz4KPCEtLSBoZXhhdGhvbiYjNDU7Jmd0O2Z1bmdhIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmhleGF0aG9uJiM0NTsmZ3Q7ZnVuZ2E8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzkyLjQ5LC01MDMuN0MzOTIuNDksLTQ5Ni4yNCAzOTIuNDksLTQ4Ny4zMiAzOTIuNDksLTQ3OC45NyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzOTUuOTksLTQ3OS4xIDM5Mi40OSwtNDY5LjEgMzg4Ljk5LC00NzkuMSAzOTUuOTksLTQ3OS4xIi8+CjwvZz4KPCEtLSBwb3RhYWh0byAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5wb3RhYWh0bzwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9IiNjY2NjY2MiIHN0cm9rZT0iYmxhY2siIGN4PSIyOTAuNDkiIGN5PSItNDUwIiByeD0iNTIuMzgiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyOTAuNDkiIHk9Ii00NDQuOTUiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+bG8vcG90YWFodG88L3RleHQ+CjwvZz4KPCEtLSBwb3RhYWh0byYjNDU7Jmd0O2NoYWlubGliIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPnBvdGFhaHRvJiM0NTsmZ3Q7Y2hhaW5saWI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjcxLjkzLC00MzIuNzZDMjYxLjMxLC00MjMuNDcgMjQ3LjgyLC00MTEuNjcgMjM2LjE5LC00MDEuNDkiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjM4Ljk1LC0zOTguMzggMjI5LjEyLC0zOTQuNDMgMjM0LjM0LC00MDMuNjUgMjM4Ljk1LC0zOTguMzgiLz4KPC9nPgo8IS0tIGV0aF9jYWNoZSAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZXRoX2NhY2hlPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjI4NC40OSIgY3k9Ii0yMzQiIHJ4PSI0Ni4yMyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI4NC40OSIgeT0iLTIyOC45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5ldGgmIzQ1O2NhY2hlPC90ZXh0Pgo8L2c+CjwhLS0gbGV2ZWxkaXImIzQ1OyZndDtldGhfY2FjaGUgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+bGV2ZWxkaXImIzQ1OyZndDtldGhfY2FjaGU8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjg2Ljc0LC0yODcuN0MyODYuNDIsLTI4MC4yNCAyODYuMDQsLTI3MS4zMiAyODUuNjgsLTI2Mi45NyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyODkuMTQsLTI2Mi45NSAyODUuMjIsLTI1My4xIDI4Mi4xNSwtMjYzLjI1IDI4OS4xNCwtMjYyLjk1Ii8+CjwvZz4KPCEtLSBzaGVwIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPnNoZXA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjY2NjY2NjIiBzdHJva2U9ImJsYWNrIiBjeD0iMTQ0LjQ5IiBjeT0iLTIzNCIgcng9IjM3LjUzIiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTQ0LjQ5IiB5PSItMjI4Ljk1IiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmxvL3NoZXA8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbnN5bmNlciAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Y2hhaW5zeW5jZXI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjc3LjQ5IiBjeT0iLTE2MiIgcng9IjU0LjkzIiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjc3LjQ5IiB5PSItMTU2Ljk1IiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmNoYWluc3luY2VyPC90ZXh0Pgo8L2c+CjwhLS0gc2hlcCYjNDU7Jmd0O2NoYWluc3luY2VyIC0tPgo8ZyBpZD0iZWRnZTE0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5zaGVwJiM0NTsmZ3Q7Y2hhaW5zeW5jZXI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTY5LjE5LC0yMjBDMTg4Ljk1LC0yMDkuNiAyMTcsLTE5NC44NCAyMzkuNTksLTE4Mi45NCIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNDEuMDEsLTE4NS42MyAyNDguMjIsLTE3Ny44NyAyMzcuNzUsLTE3OS40MyAyNDEuMDEsLTE4NS42MyIvPgo8L2c+CjwhLS0gY2hhaW5xdWV1ZSAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Y2hhaW5xdWV1ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNDQuNDkiIGN5PSItMTYyIiByeD0iNTIuODkiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNDQuNDkiIHk9Ii0xNTYuOTUiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+Y2hhaW5xdWV1ZTwvdGV4dD4KPC9nPgo8IS0tIHNoZXAmIzQ1OyZndDtjaGFpbnF1ZXVlIC0tPgo8ZyBpZD0iZWRnZTE1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5zaGVwJiM0NTsmZ3Q7Y2hhaW5xdWV1ZTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDQuNDksLTIxNS43QzE0NC40OSwtMjA4LjI0IDE0NC40OSwtMTk5LjMyIDE0NC40OSwtMTkwLjk3Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE0Ny45OSwtMTkxLjEgMTQ0LjQ5LC0xODEuMSAxNDAuOTksLTE5MS4xIDE0Ny45OSwtMTkxLjEiLz4KPC9nPgo8IS0tIGFpZWUgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YWllZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9IiNjY2NjY2MiIHN0cm9rZT0iYmxhY2siIGN4PSIzNS40OSIgY3k9Ii00NTAiIHJ4PSIzNS40OSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjM1LjQ5IiB5PSItNDQ0Ljk1IiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmxvL2FsZWU8L3RleHQ+CjwvZz4KPCEtLSBhaWVlJiM0NTsmZ3Q7Y2hhaW5saWIgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YWllZSYjNDU7Jmd0O2NoYWlubGliPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTYyLjgzLC00MzguMDZDOTEuOCwtNDI2LjQ3IDEzNy44MywtNDA4LjA2IDE3MC43OSwtMzk0Ljg4Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3Mi4wMSwtMzk3Ljc2IDE4MCwtMzkwLjggMTY5LjQxLC0zOTEuMjYgMTcyLjAxLC0zOTcuNzYiLz4KPC9nPgo8IS0tIGNoYWlubGliX2V0aCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jaGFpbmxpYl9ldGg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iNDA5LjQ5IiBjeT0iLTMwNiIgcng9IjU0LjkzIiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNDA5LjQ5IiB5PSItMzAwLjk1IiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiPmNoYWlubGliJiM0NTtldGg8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbmxpYiYjNDU7Jmd0O2NoYWlubGliX2V0aCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jaGFpbmxpYiYjNDU7Jmd0O2NoYWlubGliX2V0aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNDEuNTgsLTM2Ni4wNkMyNzQuMDUsLTM1NC42NCAzMjUuMzcsLTMzNi41OSAzNjIuNzMsLTMyMy40NSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNjMuNiwtMzI2LjUgMzcxLjg3LC0zMTkuODggMzYxLjI3LC0zMTkuOSAzNjMuNiwtMzI2LjUiLz4KPC9nPgo8IS0tIGNoYWlubGliJiM0NTsmZ3Q7Y2hhaW5zeW5jZXIgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWlubGliJiM0NTsmZ3Q7Y2hhaW5zeW5jZXI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjA5LjE4LC0zNTkuNjRDMjA3LjYxLC0zMjkuMSAyMDcuNDcsLTI2NC40MyAyMjkuNDksLTIxNiAyMzQuMzksLTIwNS4yMSAyNDIuMzIsLTE5NS4wOSAyNTAuMzIsLTE4Ni42NSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNTIuMywtMTg5LjYzIDI1Ni45MywtMTgwLjExIDI0Ny4zNywtMTg0LjY2IDI1Mi4zLC0xODkuNjMiLz4KPC9nPgo8IS0tIGNoYWlubGliJiM0NTsmZ3Q7Y2hhaW5xdWV1ZSAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5saWImIzQ1OyZndDtjaGFpbnF1ZXVlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE4OS43LC0zNjIuMDlDMTYyLjQ2LC0zNDEuMTEgMTE1Ljk4LC0zMDAuMDUgOTcuNDksLTI1MiA5MS43NCwtMjM3LjA3IDkxLjgxLC0yMzAuOTYgOTcuNDksLTIxNiAxMDEuNjUsLTIwNS4wMiAxMDkuMjUsLTE5NC44NiAxMTcuMTQsLTE4Ni40MyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMTkuMDcsLTE4OS40NSAxMjMuNjksLTE3OS45MSAxMTQuMTMsLTE4NC40OSAxMTkuMDcsLTE4OS40NSIvPgo8L2c+CjwhLS0gY2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX2NhY2hlIC0tPgo8ZyBpZD0iZWRnZTEyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jaGFpbmxpYl9ldGgmIzQ1OyZndDtldGhfY2FjaGU8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzgyLjY3LC0yODkuOThDMzY0LjE4LC0yNzkuNjMgMzM5LjQxLC0yNjUuNzYgMzE5LjM4LC0yNTQuNTQiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzIxLjQxLC0yNTEuMTEgMzEwLjk4LC0yNDkuMjcgMzE3Ljk5LC0yNTcuMjEgMzIxLjQxLC0yNTEuMTEiLz4KPC9nPgo8IS0tIGNoYWluZF9ldGggLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmNoYWluZF9ldGg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjYWFmZmFhIiBzdHJva2U9ImJsYWNrIiBjeD0iNDczLjQ5IiBjeT0iLTE4IiByeD0iNTkuNTQiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI0NzMuNDkiIHk9Ii0xMi45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5oaS9jaGFpbmQmIzQ1O2V0aDwvdGV4dD4KPC9nPgo8IS0tIGNoYWlubGliX2V0aCYjNDU7Jmd0O2NoYWluZF9ldGggLS0+CjxnIGlkPSJlZGdlMjUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmNoYWlubGliX2V0aCYjNDU7Jmd0O2NoYWluZF9ldGg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNDYxLjE4LC0yOTkuNTNDNTE4LjIsLTI5Mi4zIDYwNC41NywtMjc3LjQyIDYyNC40OSwtMjUyIDY3Ny4wMywtMTg0LjkyIDYxNi4xOSwtMTM0LjY5IDU1OC40OSwtNzIgNTQ2LjMxLC01OC43NyA1MzAuMTEsLTQ3LjU5IDUxNS4xMiwtMzguOTUiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTE2Ljk1LC0zNS40MSA1MDYuNSwtMzMuNjUgNTEzLjU3LC00MS41NCA1MTYuOTUsLTM1LjQxIi8+CjwvZz4KPCEtLSBldGhfbW9uaXRvciAtLT4KPGcgaWQ9Im5vZGUxNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZXRoX21vbml0b3I8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjYWFmZmFhIiBzdHJva2U9ImJsYWNrIiBjeD0iNDg0LjQ5IiBjeT0iLTkwIiByeD0iNjQuNjYiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI0ODQuNDkiIHk9Ii04NC45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5oaS9ldGgmIzQ1O21vbml0b3I8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbmxpYl9ldGgmIzQ1OyZndDtldGhfbW9uaXRvciAtLT4KPGcgaWQ9ImVkZ2UyNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX21vbml0b3I8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNDU5Ljk1LC0yOTguMzVDNTExLjk2LC0yOTAuMzQgNTg3Ljg2LC0yNzUuMDIgNjA1LjQ5LC0yNTIgNjQzLjU0LC0yMDIuMjggNTY5LjE2LC0xNDMuMzUgNTIxLjAyLC0xMTIuNDEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTIzLjExLC0xMDguOTcgNTEyLjc4LC0xMDYuNjEgNTE5LjM4LC0xMTQuODkgNTIzLjExLC0xMDguOTciLz4KPC9nPgo8IS0tIGV0aF9lcmMyMCAtLT4KPGcgaWQ9Im5vZGUxNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZXRoX2VyYzIwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0iI2FhZmZhYSIgc3Ryb2tlPSJibGFjayIgY3g9IjU0MS40OSIgY3k9Ii0yMzQiIHJ4PSI1NS40NSIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjU0MS40OSIgeT0iLTIyOC45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5oaS9ldGgmIzQ1O2VyYzIwPC90ZXh0Pgo8L2c+CjwhLS0gY2hhaW5saWJfZXRoJiM0NTsmZ3Q7ZXRoX2VyYzIwIC0tPgo8ZyBpZD0iZWRnZTIwIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jaGFpbmxpYl9ldGgmIzQ1OyZndDtldGhfZXJjMjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNDM3LjQ4LC0yOTAuMTVDNDU2LjgyLC0yNzkuOSA0ODIuNzYsLTI2Ni4xNCA1MDMuOSwtMjU0LjkzIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjUwNS4zNCwtMjU3LjYgNTEyLjUzLC0yNDkuODIgNTAyLjA2LC0yNTEuNDIgNTA1LjM0LC0yNTcuNiIvPgo8L2c+CjwhLS0gZXRoX2VyYzcyMSAtLT4KPGcgaWQ9Im5vZGUxOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZXRoX2VyYzcyMTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9IiNhYWZmYWEiIHN0cm9rZT0iYmxhY2siIGN4PSI0MDguNDkiIGN5PSItMjM0IiByeD0iNjAuMDUiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI0MDguNDkiIHk9Ii0yMjguOTUiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxNC4wMCI+aGkvZXRoJiM0NTtlcmM3MjE8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbmxpYl9ldGgmIzQ1OyZndDtldGhfZXJjNzIxIC0tPgo8ZyBpZD0iZWRnZTIxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jaGFpbmxpYl9ldGgmIzQ1OyZndDtldGhfZXJjNzIxPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQwOS4yNCwtMjg3LjdDNDA5LjEzLC0yODAuMjQgNDA5LC0yNzEuMzIgNDA4Ljg4LC0yNjIuOTciLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNDEyLjM3LC0yNjMuMDUgNDA4LjczLC0yNTMuMSA0MDUuMzcsLTI2My4xNSA0MTIuMzcsLTI2My4wNSIvPgo8L2c+CjwhLS0gZnVuZ2EmIzQ1OyZndDtjaGFpbmxpYiAtLT4KPGcgaWQ9ImVkZ2UyMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZnVuZ2EmIzQ1OyZndDtjaGFpbmxpYjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zNjcuMzksLTQzOC40NEMzNjIuMTUsLTQzNi4yOCAzNTYuNjUsLTQzNC4wNCAzNTEuNDksLTQzMiAzMTcuOTUsLTQxOC43NSAyNzkuNjMsLTQwNC40IDI1MS40MiwtMzkzLjk3Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI1Mi43MiwtMzkwLjM2IDI0Mi4xMywtMzkwLjE4IDI1MC4zLC0zOTYuOTIgMjUyLjcyLC0zOTAuMzYiLz4KPC9nPgo8IS0tIGZ1bmdhX2V0aCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZnVuZ2FfZXRoPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjM4NS40OSIgY3k9Ii0zNzgiIHJ4PSI0Ni4yMyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjM4NS40OSIgeT0iLTM3Mi45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5mdW5nYSYjNDU7ZXRoPC90ZXh0Pgo8L2c+CjwhLS0gZnVuZ2EmIzQ1OyZndDtmdW5nYV9ldGggLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZnVuZ2EmIzQ1OyZndDtmdW5nYV9ldGg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzkwLjc2LC00MzEuN0MzOTAuMDEsLTQyNC4yNCAzODkuMTIsLTQxNS4zMiAzODguMjgsLTQwNi45NyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzOTEuNjcsLTQwNi43MSAzODcuMiwtMzk3LjEgMzg0LjcxLC00MDcuNCAzOTEuNjcsLTQwNi43MSIvPgo8L2c+CjwhLS0gZnVuZ2FfZXRoJiM0NTsmZ3Q7Y2hhaW5saWJfZXRoIC0tPgo8ZyBpZD0iZWRnZTIzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5mdW5nYV9ldGgmIzQ1OyZndDtjaGFpbmxpYl9ldGg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzkxLjQyLC0zNTkuN0MzOTQuMDMsLTM1Mi4wNyAzOTcuMTcsLTM0Mi45MiA0MDAuMDksLTMzNC40Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjQwMy42OSwtMzM1LjcgNDAzLjYyLC0zMjUuMSAzOTcuMDcsLTMzMy40MyA0MDMuNjksLTMzNS43Ii8+CjwvZz4KPCEtLSBldGhfY2FjaGUmIzQ1OyZndDtjaGFpbnN5bmNlciAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZXRoX2NhY2hlJiM0NTsmZ3Q7Y2hhaW5zeW5jZXI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjgyLjc2LC0yMTUuN0MyODIuMDEsLTIwOC4yNCAyODEuMTIsLTE5OS4zMiAyODAuMjgsLTE5MC45NyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyODMuNjcsLTE5MC43MSAyNzkuMiwtMTgxLjEgMjc2LjcxLC0xOTEuNCAyODMuNjcsLTE5MC43MSIvPgo8L2c+CjwhLS0gY2hhaW5kIC0tPgo8ZyBpZD0ibm9kZTE0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jaGFpbmQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSIjYWFmZmFhIiBzdHJva2U9ImJsYWNrIiBjeD0iMjc3LjQ5IiBjeT0iLTkwIiByeD0iNDUuMjEiIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNzcuNDkiIHk9Ii04NC45NSIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjE0LjAwIj5oaS9jaGFpbmQ8L3RleHQ+CjwvZz4KPCEtLSBjaGFpbnN5bmNlciYjNDU7Jmd0O2NoYWluZCAtLT4KPGcgaWQ9ImVkZ2UxNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5zeW5jZXImIzQ1OyZndDtjaGFpbmQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjc3LjQ5LC0xNDMuN0MyNzcuNDksLTEzNi4yNCAyNzcuNDksLTEyNy4zMiAyNzcuNDksLTExOC45NyIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyODAuOTksLTExOS4xIDI3Ny40OSwtMTA5LjEgMjczLjk5LC0xMTkuMSAyODAuOTksLTExOS4xIi8+CjwvZz4KPCEtLSBjaGFpbnN5bmNlciYjNDU7Jmd0O2V0aF9tb25pdG9yIC0tPgo8ZyBpZD0iZWRnZTE5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jaGFpbnN5bmNlciYjNDU7Jmd0O2V0aF9tb25pdG9yPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTMxNC40OSwtMTQ4LjQ5QzM0Ny45OCwtMTM3LjE2IDM5Ny41NiwtMTIwLjM5IDQzNC41NSwtMTA3Ljg5Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjQzNS4yNywtMTExIDQ0My42MiwtMTA0LjQ4IDQzMy4wMywtMTA0LjM3IDQzNS4yNywtMTExIi8+CjwvZz4KPCEtLSBjaGFpbnF1ZXVlJiM0NTsmZ3Q7Y2hhaW5kIC0tPgo8ZyBpZD0iZWRnZTE3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jaGFpbnF1ZXVlJiM0NTsmZ3Q7Y2hhaW5kPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE3Mi4zNywtMTQ2LjMzQzE5Mi40NSwtMTM1Ljc2IDIxOS43MiwtMTIxLjQgMjQxLjQ1LC0xMDkuOTciLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjQyLjc4LC0xMTIuNjkgMjUwLC0xMDQuOTQgMjM5LjUyLC0xMDYuNSAyNDIuNzgsLTExMi42OSIvPgo8L2c+CjwhLS0gY2hhaW5kJiM0NTsmZ3Q7Y2hhaW5kX2V0aCAtLT4KPGcgaWQ9ImVkZ2UxOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Y2hhaW5kJiM0NTsmZ3Q7Y2hhaW5kX2V0aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMTAuMjksLTc3LjI4QzM0MS45MywtNjUuOTggMzkwLjE3LC00OC43NiA0MjYsLTM1Ljk2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjQyNi45OCwtMzguOTcgNDM1LjIyLC0zMi4zMSA0MjQuNjMsLTMyLjM4IDQyNi45OCwtMzguOTciLz4KPC9nPgo8L2c+Cjwvc3ZnPgo=" /> The dependency graph is only available in as an unformatted **graphviz** document located at `$REPO_ROOT/deps.dot`. `make diagram` renders this SVG version. diff --git a/build/deps.svg b/build/deps.svg @@ -1,270 +1,270 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 7.0.1 (0) +<!-- Generated by graphviz version 8.0.5 (0) --> <!-- Pages: 1 --> -<svg width="635pt" height="548pt" - viewBox="0.00 0.00 634.67 548.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg width="653pt" height="548pt" + viewBox="0.00 0.00 652.85 548.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 544)"> -<polygon fill="white" stroke="none" points="-4,4 -4,-544 630.67,-544 630.67,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-544 648.85,-544 648.85,4 -4,4"/> <!-- confini --> <g id="node1" class="node"> <title>confini</title> -<ellipse fill="#cccccc" stroke="black" cx="131.45" cy="-450" rx="44.69" ry="18"/> -<text text-anchor="middle" x="131.45" y="-446.3" font-family="Times,serif" font-size="14.00">lo/confini</text> +<ellipse fill="#cccccc" stroke="black" cx="135.49" cy="-450" rx="46.75" ry="18"/> +<text text-anchor="middle" x="135.49" y="-444.95" font-family="Times,serif" font-size="14.00">lo/confini</text> </g> <!-- chainlib --> <g id="node7" class="node"> <title>chainlib</title> -<ellipse fill="none" stroke="black" cx="204.45" cy="-378" rx="38.99" ry="18"/> -<text text-anchor="middle" x="204.45" y="-374.3" font-family="Times,serif" font-size="14.00">chainlib</text> +<ellipse fill="none" stroke="black" cx="210.49" cy="-378" rx="40.6" ry="18"/> +<text text-anchor="middle" x="210.49" y="-372.95" font-family="Times,serif" font-size="14.00">chainlib</text> </g> <!-- confini&#45;&gt;chainlib --> <g id="edge2" class="edge"> <title>confini&#45;&gt;chainlib</title> -<path fill="none" stroke="black" d="M148.01,-433.12C157.51,-424.01 169.59,-412.42 180.15,-402.3"/> -<polygon fill="black" stroke="black" points="182.31,-405.08 187.11,-395.63 177.47,-400.02 182.31,-405.08"/> +<path fill="none" stroke="black" d="M152.5,-433.12C162.29,-423.99 174.75,-412.36 185.61,-402.22"/> +<polygon fill="black" stroke="black" points="187.61,-405.2 192.53,-395.82 182.84,-400.09 187.61,-405.2"/> </g> <!-- hexathon --> <g id="node2" class="node"> <title>hexathon</title> -<ellipse fill="#cccccc" stroke="black" cx="381.45" cy="-522" rx="51.99" ry="18"/> -<text text-anchor="middle" x="381.45" y="-518.3" font-family="Times,serif" font-size="14.00">lo/hexathon</text> +<ellipse fill="#cccccc" stroke="black" cx="392.49" cy="-522" rx="54.42" ry="18"/> +<text text-anchor="middle" x="392.49" y="-516.95" font-family="Times,serif" font-size="14.00">lo/hexathon</text> </g> <!-- leveldir --> <g id="node4" class="node"> <title>leveldir</title> -<ellipse fill="#cccccc" stroke="black" cx="279.45" cy="-306" rx="46.59" ry="18"/> -<text text-anchor="middle" x="279.45" y="-302.3" font-family="Times,serif" font-size="14.00">lo/leveldir</text> +<ellipse fill="#cccccc" stroke="black" cx="287.49" cy="-306" rx="48.79" ry="18"/> +<text text-anchor="middle" x="287.49" y="-300.95" font-family="Times,serif" font-size="14.00">lo/leveldir</text> </g> <!-- hexathon&#45;&gt;leveldir --> <g id="edge8" class="edge"> <title>hexathon&#45;&gt;leveldir</title> -<path fill="none" stroke="black" d="M397.5,-504.84C406.18,-495.03 416.18,-481.78 421.45,-468 438.6,-423.09 455.12,-399.31 427.45,-360 424.3,-355.53 367.23,-335.93 324.9,-321.87"/> -<polygon fill="black" stroke="black" points="326.25,-318.63 315.66,-318.81 324.05,-325.28 326.25,-318.63"/> +<path fill="none" stroke="black" d="M409.28,-504.42C418.06,-494.68 428.08,-481.62 433.49,-468 451.22,-423.29 468.38,-399.19 440.49,-360 437.22,-355.41 378.06,-335.79 334.29,-321.76"/> +<polygon fill="black" stroke="black" points="335.4,-318.13 324.81,-318.42 333.27,-324.79 335.4,-318.13"/> </g> <!-- hexathon&#45;&gt;chainlib --> <g id="edge3" class="edge"> <title>hexathon&#45;&gt;chainlib</title> -<path fill="none" stroke="black" d="M331.26,-517.01C296.11,-511.51 250.71,-498.54 223.45,-468 208.88,-451.68 204.51,-426.98 203.57,-407.73"/> -<polygon fill="black" stroke="black" points="207.07,-407.75 203.4,-397.81 200.07,-407.87 207.07,-407.75"/> +<path fill="none" stroke="black" d="M339.59,-517.28C303.51,-511.9 257.37,-498.95 229.49,-468 214.7,-451.59 210.4,-426.57 209.54,-407.23"/> +<polygon fill="black" stroke="black" points="213.02,-407.28 209.38,-397.33 206.02,-407.38 213.02,-407.28"/> </g> <!-- funga --> <g id="node9" class="node"> <title>funga</title> -<ellipse fill="none" stroke="black" cx="381.45" cy="-450" rx="30.59" ry="18"/> -<text text-anchor="middle" x="381.45" y="-446.3" font-family="Times,serif" font-size="14.00">funga</text> +<ellipse fill="none" stroke="black" cx="392.49" cy="-450" rx="31.9" ry="18"/> +<text text-anchor="middle" x="392.49" y="-444.95" font-family="Times,serif" font-size="14.00">funga</text> </g> <!-- hexathon&#45;&gt;funga --> <g id="edge6" class="edge"> <title>hexathon&#45;&gt;funga</title> -<path fill="none" stroke="black" d="M381.45,-503.7C381.45,-496.41 381.45,-487.73 381.45,-479.54"/> -<polygon fill="black" stroke="black" points="384.95,-479.62 381.45,-469.62 377.95,-479.62 384.95,-479.62"/> +<path fill="none" stroke="black" d="M392.49,-503.7C392.49,-496.24 392.49,-487.32 392.49,-478.97"/> +<polygon fill="black" stroke="black" points="395.99,-479.1 392.49,-469.1 388.99,-479.1 395.99,-479.1"/> </g> <!-- potaahto --> <g id="node3" class="node"> <title>potaahto</title> -<ellipse fill="#cccccc" stroke="black" cx="282.45" cy="-450" rx="50.09" ry="18"/> -<text text-anchor="middle" x="282.45" y="-446.3" font-family="Times,serif" font-size="14.00">lo/potaahto</text> +<ellipse fill="#cccccc" stroke="black" cx="290.49" cy="-450" rx="52.38" ry="18"/> +<text text-anchor="middle" x="290.49" y="-444.95" font-family="Times,serif" font-size="14.00">lo/potaahto</text> </g> <!-- potaahto&#45;&gt;chainlib --> <g id="edge4" class="edge"> <title>potaahto&#45;&gt;chainlib</title> -<path fill="none" stroke="black" d="M264.36,-432.76C254.2,-423.65 241.36,-412.13 230.17,-402.09"/> -<polygon fill="black" stroke="black" points="232.54,-399.51 222.76,-395.44 227.87,-404.72 232.54,-399.51"/> +<path fill="none" stroke="black" d="M271.93,-432.76C261.31,-423.47 247.82,-411.67 236.19,-401.49"/> +<polygon fill="black" stroke="black" points="238.95,-398.38 229.12,-394.43 234.34,-403.65 238.95,-398.38"/> </g> <!-- eth_cache --> <g id="node11" class="node"> <title>eth_cache</title> -<ellipse fill="none" stroke="black" cx="276.45" cy="-234" rx="44.39" ry="18"/> -<text text-anchor="middle" x="276.45" y="-230.3" font-family="Times,serif" font-size="14.00">eth&#45;cache</text> +<ellipse fill="none" stroke="black" cx="284.49" cy="-234" rx="46.23" ry="18"/> +<text text-anchor="middle" x="284.49" y="-228.95" font-family="Times,serif" font-size="14.00">eth&#45;cache</text> </g> <!-- leveldir&#45;&gt;eth_cache --> <g id="edge9" class="edge"> <title>leveldir&#45;&gt;eth_cache</title> -<path fill="none" stroke="black" d="M278.71,-287.7C278.39,-280.41 278.02,-271.73 277.67,-263.54"/> -<polygon fill="black" stroke="black" points="281.17,-263.46 277.24,-253.62 274.18,-263.76 281.17,-263.46"/> +<path fill="none" stroke="black" d="M286.74,-287.7C286.42,-280.24 286.04,-271.32 285.68,-262.97"/> +<polygon fill="black" stroke="black" points="289.14,-262.95 285.22,-253.1 282.15,-263.25 289.14,-262.95"/> </g> <!-- shep --> <g id="node5" class="node"> <title>shep</title> -<ellipse fill="#cccccc" stroke="black" cx="140.45" cy="-234" rx="36.29" ry="18"/> -<text text-anchor="middle" x="140.45" y="-230.3" font-family="Times,serif" font-size="14.00">lo/shep</text> +<ellipse fill="#cccccc" stroke="black" cx="144.49" cy="-234" rx="37.53" ry="18"/> +<text text-anchor="middle" x="144.49" y="-228.95" font-family="Times,serif" font-size="14.00">lo/shep</text> </g> <!-- chainsyncer --> <g id="node12" class="node"> <title>chainsyncer</title> -<ellipse fill="none" stroke="black" cx="268.45" cy="-162" rx="52.79" ry="18"/> -<text text-anchor="middle" x="268.45" y="-158.3" font-family="Times,serif" font-size="14.00">chainsyncer</text> +<ellipse fill="none" stroke="black" cx="277.49" cy="-162" rx="54.93" ry="18"/> +<text text-anchor="middle" x="277.49" y="-156.95" font-family="Times,serif" font-size="14.00">chainsyncer</text> </g> <!-- shep&#45;&gt;chainsyncer --> <g id="edge14" class="edge"> <title>shep&#45;&gt;chainsyncer</title> -<path fill="none" stroke="black" d="M164.22,-220C183.07,-209.69 209.75,-195.1 231.39,-183.26"/> -<polygon fill="black" stroke="black" points="232.83,-186.47 239.92,-178.6 229.47,-180.33 232.83,-186.47"/> +<path fill="none" stroke="black" d="M169.19,-220C188.95,-209.6 217,-194.84 239.59,-182.94"/> +<polygon fill="black" stroke="black" points="241.01,-185.63 248.22,-177.87 237.75,-179.43 241.01,-185.63"/> </g> <!-- chainqueue --> <g id="node13" class="node"> <title>chainqueue</title> -<ellipse fill="none" stroke="black" cx="140.45" cy="-162" rx="50.89" ry="18"/> -<text text-anchor="middle" x="140.45" y="-158.3" font-family="Times,serif" font-size="14.00">chainqueue</text> +<ellipse fill="none" stroke="black" cx="144.49" cy="-162" rx="52.89" ry="18"/> +<text text-anchor="middle" x="144.49" y="-156.95" font-family="Times,serif" font-size="14.00">chainqueue</text> </g> <!-- shep&#45;&gt;chainqueue --> <g id="edge15" class="edge"> <title>shep&#45;&gt;chainqueue</title> -<path fill="none" stroke="black" d="M140.45,-215.7C140.45,-208.41 140.45,-199.73 140.45,-191.54"/> -<polygon fill="black" stroke="black" points="143.95,-191.62 140.45,-181.62 136.95,-191.62 143.95,-191.62"/> +<path fill="none" stroke="black" d="M144.49,-215.7C144.49,-208.24 144.49,-199.32 144.49,-190.97"/> +<polygon fill="black" stroke="black" points="147.99,-191.1 144.49,-181.1 140.99,-191.1 147.99,-191.1"/> </g> <!-- aiee --> <g id="node6" class="node"> <title>aiee</title> -<ellipse fill="#cccccc" stroke="black" cx="34.45" cy="-450" rx="34.39" ry="18"/> -<text text-anchor="middle" x="34.45" y="-446.3" font-family="Times,serif" font-size="14.00">lo/alee</text> +<ellipse fill="#cccccc" stroke="black" cx="35.49" cy="-450" rx="35.49" ry="18"/> +<text text-anchor="middle" x="35.49" y="-444.95" font-family="Times,serif" font-size="14.00">lo/alee</text> </g> <!-- aiee&#45;&gt;chainlib --> <g id="edge1" class="edge"> <title>aiee&#45;&gt;chainlib</title> -<path fill="none" stroke="black" d="M61.01,-438.06C89.12,-426.49 133.74,-408.11 165.76,-394.93"/> -<polygon fill="black" stroke="black" points="166.77,-398.3 174.69,-391.25 164.11,-391.82 166.77,-398.3"/> +<path fill="none" stroke="black" d="M62.83,-438.06C91.8,-426.47 137.83,-408.06 170.79,-394.88"/> +<polygon fill="black" stroke="black" points="172.01,-397.76 180,-390.8 169.41,-391.26 172.01,-397.76"/> </g> <!-- chainlib_eth --> <g id="node8" class="node"> <title>chainlib_eth</title> -<ellipse fill="none" stroke="black" cx="396.45" cy="-306" rx="52.79" ry="18"/> -<text text-anchor="middle" x="396.45" y="-302.3" font-family="Times,serif" font-size="14.00">chainlib&#45;eth</text> +<ellipse fill="none" stroke="black" cx="409.49" cy="-306" rx="54.93" ry="18"/> +<text text-anchor="middle" x="409.49" y="-300.95" font-family="Times,serif" font-size="14.00">chainlib&#45;eth</text> </g> <!-- chainlib&#45;&gt;chainlib_eth --> <g id="edge5" class="edge"> <title>chainlib&#45;&gt;chainlib_eth</title> -<path fill="none" stroke="black" d="M234.45,-366.06C265.61,-354.7 314.75,-336.79 350.74,-323.66"/> -<polygon fill="black" stroke="black" points="351.84,-326.99 360.03,-320.28 349.44,-320.41 351.84,-326.99"/> +<path fill="none" stroke="black" d="M241.58,-366.06C274.05,-354.64 325.37,-336.59 362.73,-323.45"/> +<polygon fill="black" stroke="black" points="363.6,-326.5 371.87,-319.88 361.27,-319.9 363.6,-326.5"/> </g> <!-- chainlib&#45;&gt;chainsyncer --> <g id="edge10" class="edge"> <title>chainlib&#45;&gt;chainsyncer</title> -<path fill="none" stroke="black" d="M203.31,-359.71C201.97,-329.28 202.21,-264.77 223.45,-216 227.91,-205.76 235.02,-196 242.29,-187.71"/> -<polygon fill="black" stroke="black" points="244.81,-190.13 249.08,-180.44 239.7,-185.35 244.81,-190.13"/> +<path fill="none" stroke="black" d="M209.18,-359.64C207.61,-329.1 207.47,-264.43 229.49,-216 234.39,-205.21 242.32,-195.09 250.32,-186.65"/> +<polygon fill="black" stroke="black" points="252.3,-189.63 256.93,-180.11 247.37,-184.66 252.3,-189.63"/> </g> <!-- chainlib&#45;&gt;chainqueue --> <g id="edge11" class="edge"> <title>chainlib&#45;&gt;chainqueue</title> -<path fill="none" stroke="black" d="M184.82,-362.27C158.59,-341.21 113.33,-299.72 95.45,-252 89.83,-237.02 89.93,-231.02 95.45,-216 99.3,-205.52 106.24,-195.69 113.54,-187.41"/> -<polygon fill="black" stroke="black" points="116.07,-189.83 120.43,-180.17 111,-185 116.07,-189.83"/> +<path fill="none" stroke="black" d="M189.7,-362.09C162.46,-341.11 115.98,-300.05 97.49,-252 91.74,-237.07 91.81,-230.96 97.49,-216 101.65,-205.02 109.25,-194.86 117.14,-186.43"/> +<polygon fill="black" stroke="black" points="119.07,-189.45 123.69,-179.91 114.13,-184.49 119.07,-189.45"/> </g> <!-- chainlib_eth&#45;&gt;eth_cache --> <g id="edge12" class="edge"> <title>chainlib_eth&#45;&gt;eth_cache</title> -<path fill="none" stroke="black" d="M370.7,-289.98C353.19,-279.77 329.82,-266.14 310.74,-255"/> -<polygon fill="black" stroke="black" points="312.63,-252.05 302.23,-250.04 309.1,-258.1 312.63,-252.05"/> +<path fill="none" stroke="black" d="M382.67,-289.98C364.18,-279.63 339.41,-265.76 319.38,-254.54"/> +<polygon fill="black" stroke="black" points="321.41,-251.11 310.98,-249.27 317.99,-257.21 321.41,-251.11"/> </g> <!-- chaind_eth --> <g id="node15" class="node"> <title>chaind_eth</title> -<ellipse fill="#aaffaa" stroke="black" cx="459.45" cy="-18" rx="57.39" ry="18"/> -<text text-anchor="middle" x="459.45" y="-14.3" font-family="Times,serif" font-size="14.00">hi/chaind&#45;eth</text> +<ellipse fill="#aaffaa" stroke="black" cx="473.49" cy="-18" rx="59.54" ry="18"/> +<text text-anchor="middle" x="473.49" y="-12.95" font-family="Times,serif" font-size="14.00">hi/chaind&#45;eth</text> </g> <!-- chainlib_eth&#45;&gt;chaind_eth --> <g id="edge25" class="edge"> <title>chainlib_eth&#45;&gt;chaind_eth</title> -<path fill="none" stroke="black" d="M445.96,-299.48C501.66,-292.13 586.92,-277.07 606.45,-252 658.81,-184.78 597.81,-135.01 540.45,-72 528.77,-59.18 513.35,-48.08 499.1,-39.4"/> -<polygon fill="black" stroke="black" points="501.19,-36.57 490.78,-34.55 497.66,-42.61 501.19,-36.57"/> +<path fill="none" stroke="black" d="M461.18,-299.53C518.2,-292.3 604.57,-277.42 624.49,-252 677.03,-184.92 616.19,-134.69 558.49,-72 546.31,-58.77 530.11,-47.59 515.12,-38.95"/> +<polygon fill="black" stroke="black" points="516.95,-35.41 506.5,-33.65 513.57,-41.54 516.95,-35.41"/> </g> <!-- eth_monitor --> <g id="node16" class="node"> <title>eth_monitor</title> -<ellipse fill="#aaffaa" stroke="black" cx="469.45" cy="-90" rx="61.99" ry="18"/> -<text text-anchor="middle" x="469.45" y="-86.3" font-family="Times,serif" font-size="14.00">hi/eth&#45;monitor</text> +<ellipse fill="#aaffaa" stroke="black" cx="484.49" cy="-90" rx="64.66" ry="18"/> +<text text-anchor="middle" x="484.49" y="-84.95" font-family="Times,serif" font-size="14.00">hi/eth&#45;monitor</text> </g> <!-- chainlib_eth&#45;&gt;eth_monitor --> <g id="edge24" class="edge"> <title>chainlib_eth&#45;&gt;eth_monitor</title> -<path fill="none" stroke="black" d="M444.72,-298.31C495.43,-290.18 570.21,-274.67 587.45,-252 624.85,-202.81 552.89,-144.03 505.78,-112.89"/> -<polygon fill="black" stroke="black" points="507.73,-109.98 497.43,-107.5 503.93,-115.86 507.73,-109.98"/> +<path fill="none" stroke="black" d="M459.95,-298.35C511.96,-290.34 587.86,-275.02 605.49,-252 643.54,-202.28 569.16,-143.35 521.02,-112.41"/> +<polygon fill="black" stroke="black" points="523.11,-108.97 512.78,-106.61 519.38,-114.89 523.11,-108.97"/> </g> <!-- eth_erc20 --> <g id="node17" class="node"> <title>eth_erc20</title> -<ellipse fill="#aaffaa" stroke="black" cx="525.45" cy="-234" rx="53.09" ry="18"/> -<text text-anchor="middle" x="525.45" y="-230.3" font-family="Times,serif" font-size="14.00">hi/eth&#45;erc20</text> +<ellipse fill="#aaffaa" stroke="black" cx="541.49" cy="-234" rx="55.45" ry="18"/> +<text text-anchor="middle" x="541.49" y="-228.95" font-family="Times,serif" font-size="14.00">hi/eth&#45;erc20</text> </g> <!-- chainlib_eth&#45;&gt;eth_erc20 --> <g id="edge20" class="edge"> <title>chainlib_eth&#45;&gt;eth_erc20</title> -<path fill="none" stroke="black" d="M423.8,-290.15C442.53,-279.99 467.6,-266.39 488.15,-255.24"/> -<polygon fill="black" stroke="black" points="489.68,-258.39 496.8,-250.55 486.34,-252.24 489.68,-258.39"/> +<path fill="none" stroke="black" d="M437.48,-290.15C456.82,-279.9 482.76,-266.14 503.9,-254.93"/> +<polygon fill="black" stroke="black" points="505.34,-257.6 512.53,-249.82 502.06,-251.42 505.34,-257.6"/> </g> <!-- eth_erc721 --> <g id="node18" class="node"> <title>eth_erc721</title> -<ellipse fill="#aaffaa" stroke="black" cx="396.45" cy="-234" rx="57.69" ry="18"/> -<text text-anchor="middle" x="396.45" y="-230.3" font-family="Times,serif" font-size="14.00">hi/eth&#45;erc721</text> +<ellipse fill="#aaffaa" stroke="black" cx="408.49" cy="-234" rx="60.05" ry="18"/> +<text text-anchor="middle" x="408.49" y="-228.95" font-family="Times,serif" font-size="14.00">hi/eth&#45;erc721</text> </g> <!-- chainlib_eth&#45;&gt;eth_erc721 --> <g id="edge21" class="edge"> <title>chainlib_eth&#45;&gt;eth_erc721</title> -<path fill="none" stroke="black" d="M396.45,-287.7C396.45,-280.41 396.45,-271.73 396.45,-263.54"/> -<polygon fill="black" stroke="black" points="399.95,-263.62 396.45,-253.62 392.95,-263.62 399.95,-263.62"/> +<path fill="none" stroke="black" d="M409.24,-287.7C409.13,-280.24 409,-271.32 408.88,-262.97"/> +<polygon fill="black" stroke="black" points="412.37,-263.05 408.73,-253.1 405.37,-263.15 412.37,-263.05"/> </g> <!-- funga&#45;&gt;chainlib --> <g id="edge22" class="edge"> <title>funga&#45;&gt;chainlib</title> -<path fill="none" stroke="black" d="M357.39,-438.62C352.15,-436.41 346.62,-434.1 341.45,-432 309.05,-418.85 272.05,-404.58 244.68,-394.17"/> -<polygon fill="black" stroke="black" points="245.96,-390.91 235.37,-390.63 243.48,-397.45 245.96,-390.91"/> +<path fill="none" stroke="black" d="M367.39,-438.44C362.15,-436.28 356.65,-434.04 351.49,-432 317.95,-418.75 279.63,-404.4 251.42,-393.97"/> +<polygon fill="black" stroke="black" points="252.72,-390.36 242.13,-390.18 250.3,-396.92 252.72,-390.36"/> </g> <!-- funga_eth --> <g id="node10" class="node"> <title>funga_eth</title> -<ellipse fill="none" stroke="black" cx="374.45" cy="-378" rx="44.39" ry="18"/> -<text text-anchor="middle" x="374.45" y="-374.3" font-family="Times,serif" font-size="14.00">funga&#45;eth</text> +<ellipse fill="none" stroke="black" cx="385.49" cy="-378" rx="46.23" ry="18"/> +<text text-anchor="middle" x="385.49" y="-372.95" font-family="Times,serif" font-size="14.00">funga&#45;eth</text> </g> <!-- funga&#45;&gt;funga_eth --> <g id="edge7" class="edge"> <title>funga&#45;&gt;funga_eth</title> -<path fill="none" stroke="black" d="M379.72,-431.7C378.99,-424.41 378.12,-415.73 377.3,-407.54"/> -<polygon fill="black" stroke="black" points="380.79,-407.21 376.31,-397.61 373.82,-407.91 380.79,-407.21"/> +<path fill="none" stroke="black" d="M390.76,-431.7C390.01,-424.24 389.12,-415.32 388.28,-406.97"/> +<polygon fill="black" stroke="black" points="391.67,-406.71 387.2,-397.1 384.71,-407.4 391.67,-406.71"/> </g> <!-- funga_eth&#45;&gt;chainlib_eth --> <g id="edge23" class="edge"> <title>funga_eth&#45;&gt;chainlib_eth</title> -<path fill="none" stroke="black" d="M379.89,-359.7C382.23,-352.24 385.03,-343.32 387.66,-334.97"/> -<polygon fill="black" stroke="black" points="390.96,-336.14 390.62,-325.55 384.28,-334.04 390.96,-336.14"/> +<path fill="none" stroke="black" d="M391.42,-359.7C394.03,-352.07 397.17,-342.92 400.09,-334.4"/> +<polygon fill="black" stroke="black" points="403.69,-335.7 403.62,-325.1 397.07,-333.43 403.69,-335.7"/> </g> <!-- eth_cache&#45;&gt;chainsyncer --> <g id="edge13" class="edge"> <title>eth_cache&#45;&gt;chainsyncer</title> -<path fill="none" stroke="black" d="M274.47,-215.7C273.64,-208.41 272.64,-199.73 271.71,-191.54"/> -<polygon fill="black" stroke="black" points="275.19,-191.15 270.57,-181.61 268.23,-191.94 275.19,-191.15"/> +<path fill="none" stroke="black" d="M282.76,-215.7C282.01,-208.24 281.12,-199.32 280.28,-190.97"/> +<polygon fill="black" stroke="black" points="283.67,-190.71 279.2,-181.1 276.71,-191.4 283.67,-190.71"/> </g> <!-- chaind --> <g id="node14" class="node"> <title>chaind</title> -<ellipse fill="#aaffaa" stroke="black" cx="268.45" cy="-90" rx="43.59" ry="18"/> -<text text-anchor="middle" x="268.45" y="-86.3" font-family="Times,serif" font-size="14.00">hi/chaind</text> +<ellipse fill="#aaffaa" stroke="black" cx="277.49" cy="-90" rx="45.21" ry="18"/> +<text text-anchor="middle" x="277.49" y="-84.95" font-family="Times,serif" font-size="14.00">hi/chaind</text> </g> <!-- chainsyncer&#45;&gt;chaind --> <g id="edge16" class="edge"> <title>chainsyncer&#45;&gt;chaind</title> -<path fill="none" stroke="black" d="M268.45,-143.7C268.45,-136.41 268.45,-127.73 268.45,-119.54"/> -<polygon fill="black" stroke="black" points="271.95,-119.62 268.45,-109.62 264.95,-119.62 271.95,-119.62"/> +<path fill="none" stroke="black" d="M277.49,-143.7C277.49,-136.24 277.49,-127.32 277.49,-118.97"/> +<polygon fill="black" stroke="black" points="280.99,-119.1 277.49,-109.1 273.99,-119.1 280.99,-119.1"/> </g> <!-- chainsyncer&#45;&gt;eth_monitor --> <g id="edge19" class="edge"> <title>chainsyncer&#45;&gt;eth_monitor</title> -<path fill="none" stroke="black" d="M304.38,-148.49C336.62,-137.26 384.22,-120.68 420.03,-108.21"/> -<polygon fill="black" stroke="black" points="421.02,-111.57 429.31,-104.98 418.71,-104.96 421.02,-111.57"/> +<path fill="none" stroke="black" d="M314.49,-148.49C347.98,-137.16 397.56,-120.39 434.55,-107.89"/> +<polygon fill="black" stroke="black" points="435.27,-111 443.62,-104.48 433.03,-104.37 435.27,-111"/> </g> <!-- chainqueue&#45;&gt;chaind --> <g id="edge17" class="edge"> <title>chainqueue&#45;&gt;chaind</title> -<path fill="none" stroke="black" d="M167.28,-146.33C186.34,-135.9 212.14,-121.79 232.92,-110.43"/> -<polygon fill="black" stroke="black" points="234.54,-113.53 241.63,-105.67 231.18,-107.39 234.54,-113.53"/> +<path fill="none" stroke="black" d="M172.37,-146.33C192.45,-135.76 219.72,-121.4 241.45,-109.97"/> +<polygon fill="black" stroke="black" points="242.78,-112.69 250,-104.94 239.52,-106.5 242.78,-112.69"/> </g> <!-- chaind&#45;&gt;chaind_eth --> <g id="edge18" class="edge"> <title>chaind&#45;&gt;chaind_eth</title> -<path fill="none" stroke="black" d="M300.42,-77.28C331.12,-66.03 377.85,-48.9 412.72,-36.12"/> -<polygon fill="black" stroke="black" points="413.53,-39.56 421.71,-32.83 411.12,-32.98 413.53,-39.56"/> +<path fill="none" stroke="black" d="M310.29,-77.28C341.93,-65.98 390.17,-48.76 426,-35.96"/> +<polygon fill="black" stroke="black" points="426.98,-38.97 435.22,-32.31 424.63,-32.38 426.98,-38.97"/> </g> </g> </svg>