From c3787e483e5adc940bac6054116ac4ba78765cc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Sat, 29 Jan 2022 00:45:41 +0100 Subject: [PATCH 01/45] started rewriting report template --- snakemake/dag.py | 20 ++ snakemake/jobs.py | 15 +- snakemake/report/__init__.py | 71 ++++- snakemake/report/controller.js | 15 + snakemake/report/events.js | 3 + snakemake/report/logo.svg | 7 + snakemake/report/report.html.jinja2 | 456 +++++++--------------------- snakemake/report/style.css | 312 +++++++++++++++++++ 8 files changed, 526 insertions(+), 373 deletions(-) create mode 100644 snakemake/report/controller.js create mode 100644 snakemake/report/events.js create mode 100644 snakemake/report/logo.svg create mode 100644 snakemake/report/style.css diff --git a/snakemake/dag.py b/snakemake/dag.py index a50efc41c..beb3f8b06 100755 --- a/snakemake/dag.py +++ b/snakemake/dag.py @@ -2191,6 +2191,26 @@ def stats(self): yield tabulate(rows, headers="keys") yield "" + def toposorted(self, jobs=None, inherit_pipe_dependencies=False): + from toposort import toposort + + if jobs is None: + jobs = set(self.jobs) + + def get_dependencies(job): + for dep, files in self.dependencies[job].items(): + if dep in jobs: + yield dep + if inherit_pipe_dependencies and any(is_flagged(f, "pipe") for f in files): + # In case of a pipe, inherit the dependencies of the producer, + # such that the two jobs end up on the same toposort level. + # This is important because they are executed simulataneously. + yield from get_dependencies(dep) + + dag = {job: set(get_dependencies(job)) for job in jobs} + + return toposort(dag) + def __str__(self): return self.dot() diff --git a/snakemake/jobs.py b/snakemake/jobs.py index e7b0014d4..21e4763f5 100644 --- a/snakemake/jobs.py +++ b/snakemake/jobs.py @@ -1139,20 +1139,7 @@ def finalize(self): from toposort import toposort if self.toposorted is None: - - def get_dependencies(job): - for dep, files in self.dag.dependencies[job].items(): - if dep in self.jobs: - yield dep - if any(is_flagged(f, "pipe") for f in files): - # In case of a pipe, inherit the dependencies of the producer, - # such that the two jobs end up on the same toposort level. - # This is important because they are executed simulataneously. - yield from get_dependencies(dep) - - dag = {job: set(get_dependencies(job)) for job in self.jobs} - - self.toposorted = list(toposort(dag)) + self.toposorted = list(self.dag.toposorted(jobs=self.jobs, inherit_pipe_dependencies=True)) @property def all_products(self): diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 8fe5c2cf8..7f4bf4120 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -44,7 +44,7 @@ from snakemake.exceptions import WorkflowError from snakemake.script import Snakemake from snakemake import __version__ -from snakemake.common import num_if_possible, lazy_property +from snakemake.common import is_local_file, num_if_possible, lazy_property from snakemake import logging @@ -104,6 +104,8 @@ def mime_from_file(file): def data_uri_from_file(file, defaultenc="utf8"): """Craft a base64 data URI from file with proper encoding and mimetype.""" + if isinstance(file, Path): + file = str(file) mime, encoding = mime_from_file(file) if encoding is None: encoding = defaultenc @@ -591,13 +593,61 @@ def encode_node(node): return {"nodes": nodes, "links": links}, xmax, ymax -def get_resource_as_string(url): - r = requests.get(url) - if r.status_code == requests.codes.ok: - return r.text - raise WorkflowError( - "Failed to download resource needed for " "report: {}".format(url) - ) +def rulegraph_spec(dag): + # get toposorting, and keep only one job of each rule per level + representatives = dict() + def get_representatives(level): + unique = dict() + for job in level: + if job.rule.name in unique: + representatives[job] = unique[job.rule.name] + else: + representatives[job] = job + unique[job.rule.name] = job + return sorted(unique.values(), key=lambda job: job.rule.name) + toposorted = [get_representatives(level) for level in dag.toposorted()] + + jobs = [ + job for level in toposorted + for job in level + ] + + nodes = [ + {"rule": job.rule.name, "fx": 10, "fy": i * 50} + for i, job in enumerate(jobs) + ] + idx = {job: i for i, job in enumerate(jobs)} + + def get_links(direct: bool): + for u in jobs: + for v in dag.dependencies[u]: + target = idx[u] + source = idx[representatives[v]] + if target - source == 1: + if not direct: + continue + else: + if direct: + continue + + yield {"target": target, "source": source, "value": 1} + + xmax = 100 + ymax = max(node["fy"] for node in nodes) + + return {"nodes": nodes, "links": list(get_links(direct=False)), "links_direct": list(get_links(direct=True))}, xmax, ymax + + +def get_resource_as_string(path_or_uri): + if is_local_file(path_or_uri): + return open(Path(__file__).parent / path_or_uri).read() + else: + r = requests.get(path_or_uri) + if r.status_code == requests.codes.ok: + return r.text + raise WorkflowError( + "Failed to download resource needed for " "report: {}".format(path_or_uri) + ) def auto_report(dag, path, stylesheet=None): @@ -808,6 +858,7 @@ def get_datetime(rectime): # rulegraph rulegraph, xmax, ymax = rulegraph_d3_spec(dag) + rulegraph, xmax, ymax = rulegraph_spec(dag) # configfiles configfiles = [ConfigfileRecord(f) for f in dag.workflow.configfiles] @@ -882,8 +933,8 @@ class Snakemake: text=text, rulegraph_nodes=rulegraph["nodes"], rulegraph_links=rulegraph["links"], - rulegraph_width=xmax + 20, - rulegraph_height=ymax + 20, + rulegraph_links_direct=rulegraph["links_direct"], + logo=data_uri_from_file(Path(__file__).parent / "logo.svg"), runtimes=runtimes, timeline=timeline, rules=[rec for recs in rules.values() for rec in recs], diff --git a/snakemake/report/controller.js b/snakemake/report/controller.js new file mode 100644 index 000000000..80f8d547b --- /dev/null +++ b/snakemake/report/controller.js @@ -0,0 +1,15 @@ +sidebar_controller = { + collapsed: false, + + toggle: function() { + if (this.collapsed) { + this.collapsed = false + $("#sidebar-content").show() + $("#show-hide-button svg").replaceWith(feather.icons["arrow-left"].toSvg()) + } else { + this.collapsed = true + $("#sidebar-content").hide() + $("#show-hide-button svg").replaceWith(feather.icons["arrow-right"].toSvg()) + } + } +} \ No newline at end of file diff --git a/snakemake/report/events.js b/snakemake/report/events.js new file mode 100644 index 000000000..0099e3198 --- /dev/null +++ b/snakemake/report/events.js @@ -0,0 +1,3 @@ +$("#show-hide-button").click(function() { + sidebar_controller.toggle() +}) \ No newline at end of file diff --git a/snakemake/report/logo.svg b/snakemake/report/logo.svg new file mode 100644 index 000000000..8362455cd --- /dev/null +++ b/snakemake/report/logo.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/snakemake/report/report.html.jinja2 b/snakemake/report/report.html.jinja2 index 43c231908..f24fa4758 100644 --- a/snakemake/report/report.html.jinja2 +++ b/snakemake/report/report.html.jinja2 @@ -15,289 +15,10 @@ - + {% if custom_stylesheet is not none %} - + {% endif %} @@ -310,75 +31,79 @@ {% endif %} - - -
-
- +
+
+ +
+
+ +
+
-

Workflow

- - {{ text }} -
- -

Click the nodes to obtain details about each step.

-
{% for cat, subcats in results|dictsort %} @@ -759,10 +484,7 @@ var rulegraph_spec = { "$schema": "https://vega.github.io/schema/vega/v5.json", - "width": {{ rulegraph_width }}, - "height": {{ rulegraph_height }}, "padding": 0, - "autosize": "none", "signals": [ { "name": "cx", "update": "width / 2" }, @@ -777,6 +499,10 @@ { "name": "link-data", "values": {{ rulegraph_links }} + }, + { + "name": "link-data-direct", + "values": {{ rulegraph_links_direct }} } ], @@ -810,10 +536,10 @@ "tooltip": { "value": "Click to show rule details." } }, "update": { - "size": {"value": 100} + "size": {"value": 70} }, "hover": { - "size": {"value": 200} + "size": {"value": 140} } }, @@ -825,8 +551,18 @@ "forces": [ { "force": "link", - "links": "link-data", - "distance": 25 + "links": "link-data" + } + ] + }, + { + "type": "force", + "iterations": 1, + "static": true, + "forces": [ + { + "force": "link", + "links": "link-data-direct" } ] } @@ -844,19 +580,20 @@ "text": {"field": "rule"}, "x": {"field": "fx", "scale": "x"}, "y": {"field": "fy", "scale": "y"}, - "dx": {"value": 5}, + "dx": {"value": -5}, "dy": {"value": -5}, + "align": { "value": "right" } } } }, { "type": "path", - "from": {"data": "link-data"}, + "from": {"data": "link-data-direct"}, "interactive": false, "encode": { "update": { "stroke": {"value": "#ccc"}, - "strokeWidth": {"value": 0.5} + "strokeWidth": {"value": 1.0} } }, "transform": [ @@ -866,6 +603,24 @@ "targetX": "datum.target.x", "targetY": "datum.target.y" } ] + }, + { + "type": "path", + "from": {"data": "link-data"}, + "interactive": false, + "encode": { + "update": { + "stroke": {"value": "#ccc"}, + "strokeWidth": {"value": 1.0} + } + }, + "transform": [ + { + "type": "linkpath", "shape": "curve", "orient": "horizontal", + "sourceX": "datum.source.x", "sourceY": "datum.source.y", + "targetX": "datum.target.x", "targetY": "datum.target.y" + } + ] } ] }; @@ -936,5 +691,8 @@ }, 2000); }); + + + diff --git a/snakemake/report/style.css b/snakemake/report/style.css new file mode 100644 index 000000000..83c65d16c --- /dev/null +++ b/snakemake/report/style.css @@ -0,0 +1,312 @@ +body { + font-size: .875rem; +} + +.feather { + width: 16px; + height: 16px; + vertical-align: text-bottom; +} + + +/* Sidebar */ + +.sidebar { + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 100; +} + +#sidebar-content { + display: flex; + flex-direction: column; + align-items: stretch; + padding-top: 15px; + padding-left: 0px; + padding-right: 0px; + height: 100vh; +} + +.sidebar-background { + opacity: 80%; + background-color: black; + color: white; +} + +.sidebar #nav { + flex-grow: 1; + overflow-y: auto; +} + +.sidebar p { + margin-left: 15px; + margin-right: 15px; +} + +.sidebar #title { + letter-spacing: 0.1em; +} + +.sidebar #title #logo { + height: 1.5em; + margin: 1em; + vertical-align: middle; +} + +.sidebar .nav-link { + font-weight: 500; + color: white; +} + +.sidebar .nav-link:hover { + font-weight: 500; + color: black; + background-color: white; +} + +.sidebar-heading { + font-size: .75rem; + text-transform: uppercase; +} + +.sidebar #show-hide-container { + height: 100vh; + display: flex; + justify-content: center; + align-items: center; +} + +.sidebar #show-hide-button { + padding-top: 3em; + padding-bottom: 3em; +} + +.sidebar #show-hide-button#hover { + color: grey; +} + + +/* Content */ + +[role="main"] { + padding-top: 65px; + /* Space for fixed navbar */ +} + +*[id]:before { + display: block; + content: " "; + margin-top: -75px; + height: 75px; + visibility: hidden; +} + + +/* Navbar */ + +.navbar-brand { + padding-top: .75rem; + padding-bottom: .75rem; + font-size: 1rem; + font-weight: bold; + background-color: rgba(0, 0, 0, .25); + box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25); +} + +.navbar .form-control { + padding: .75rem 1rem; + border-width: 0; + border-radius: 0; +} + +.form-control-dark { + color: #fff; + background-color: rgba(255, 255, 255, .1); + border-color: rgba(255, 255, 255, .1); +} + +.form-control-dark:focus { + border-color: transparent; + box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); +} + + +/* Utilities */ + +.border-top { + border-top: 1px solid #e5e5e5; +} + +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + + +/* Snakemake specific */ + +.result img { + max-width: 100vw; +} + +.result .preview { + text-align: center; +} + +#rulegraph canvas { + display: block; + max-width: 100vw; + margin-left: auto; + margin-right: auto; +} + +@keyframes fadeinout { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +#loading-screen { + background-color: white; + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 2000; + padding-top: 50vh; +} + +p.animation { + animation: fadeinout 2.5s infinite; + text-align: center; + font-size: 200%; +} + +#loading-screen p#info { + text-align: center; + color: grey; +} + +#loading-screen p#jswarning { + text-align: center; + color: red; +} + +#panel-loading-screen { + width: 100%; + height: 100%; + padding-top: 50vh; +} + +#panel-loading-sceen p.animation { + margin: auto; +} + +.vega-actions .btn { + font-size: 100%; +} + +.plot { + text-align: center; +} + +h6.sidebar-heading { + text-transform: none; +} + +.preview { + text-align: right; +} + +.ekko-lightbox-nav-overlay a span { + color: lightgrey; +} + +.navbar { + opacity: 0.8; +} + +.source { + background: none !important; + overflow-x: auto; + width: 100%; +} + +table.dataTable tbody tr.selected, +table.dataTable tbody th.selected, +table.dataTable tbody td.selected { + color: black; + font-weight: bold; +} + +table.dataTable tbody tr.selected td:first-of-type { + font-weight: bold; +} + +table.dataTable tbody tr.selected td { + border-top: 1px solid #007bff; + border-bottom: 1px solid #007bff; +} + +table.dataTable tbody>tr.selected, +table.dataTable tbody>tr>.selected { + background-color: transparent; +} + +table.dataTable tbody tr.selected a, +table.dataTable tbody th.selected a, +table.dataTable tbody td.selected a { + color: #007bff; +} + +table caption { + display: none; +} + +table.results-table { + width: 100%; + margin-bottom: 4em; +} + +.rule-property { + overflow-y: auto; + max-height: 10em; +} + +.panel { + display: none; +} + +.panel#workflow { + display: block; +} + +.ruletable th { + width: 1px; +} + +.rule-properties ul { + padding-left: 1.2em; +} + +#thumbnail-modal .modal-body { + overflow: auto; + text-align: center; +} + +.category pre { + max-width: 20vw; + max-height: 10vh; +} + +.modal-lg { + max-width: 95%; +} \ No newline at end of file From 683b05230a15976399991cb531f3df1b1e57af0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 2 Feb 2022 11:25:25 +0100 Subject: [PATCH 02/45] fixes --- snakemake/report/controller.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/snakemake/report/controller.js b/snakemake/report/controller.js index 80f8d547b..89b4e204b 100644 --- a/snakemake/report/controller.js +++ b/snakemake/report/controller.js @@ -1,5 +1,6 @@ sidebar_controller = { collapsed: false, + content: "nav", toggle: function() { if (this.collapsed) { @@ -11,5 +12,11 @@ sidebar_controller = { $("#sidebar-content").hide() $("#show-hide-button svg").replaceWith(feather.icons["arrow-right"].toSvg()) } + }, + + show: function(content) { + $(`#${this.content}`).hide() + $(`#${content}`).show() + this.content = content } } \ No newline at end of file From fa6b5ddae41f833e51c1612402fedf08edcb658a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Mon, 7 Feb 2022 22:38:30 +0100 Subject: [PATCH 03/45] minor --- snakemake/report/report.html.jinja2 | 4 ++-- snakemake/report/style.css | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/snakemake/report/report.html.jinja2 b/snakemake/report/report.html.jinja2 index f24fa4758..eb529db93 100644 --- a/snakemake/report/report.html.jinja2 +++ b/snakemake/report/report.html.jinja2 @@ -33,7 +33,7 @@ diff --git a/snakemake/report/style.css b/snakemake/report/style.css index 83c65d16c..58a24c5db 100644 --- a/snakemake/report/style.css +++ b/snakemake/report/style.css @@ -27,12 +27,11 @@ body { padding-left: 0px; padding-right: 0px; height: 100vh; + transition: width 2s; } .sidebar-background { opacity: 80%; - background-color: black; - color: white; } .sidebar #nav { From ea3dd56d21b31b5cae30948b716acc4c513d79c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Fri, 18 Feb 2022 23:23:35 +0100 Subject: [PATCH 04/45] polishing --- snakemake/report/__init__.py | 2 +- snakemake/report/report.html.jinja2 | 23 +++++++++++++++-------- snakemake/report/style.css | 9 ++++++--- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 79a69c9a1..38adf1f1e 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -949,7 +949,7 @@ class Snakemake: runtimes=runtimes, timeline=timeline, rules=[rec for recs in rules.values() for rec in recs], - version=__version__, + version=__version__.split("+")[0], now=now, pygments_css=HtmlFormatter(style="trac").get_style_defs(".source"), custom_stylesheet=custom_stylesheet, diff --git a/snakemake/report/report.html.jinja2 b/snakemake/report/report.html.jinja2 index eb529db93..5cc9f99b3 100644 --- a/snakemake/report/report.html.jinja2 +++ b/snakemake/report/report.html.jinja2 @@ -37,10 +37,11 @@

Snakemake Report

-
-

{{ text }}

-
+ + + +
-
-
-
+
+
+
@@ -121,10 +128,10 @@
{% endfor %} -
+

Statistics

If the workflow has been executed in cluster/cloud, runtimes include the waiting time in the queue. -
+
diff --git a/snakemake/report/style.css b/snakemake/report/style.css index 58a24c5db..4a899208d 100644 --- a/snakemake/report/style.css +++ b/snakemake/report/style.css @@ -77,13 +77,16 @@ body { align-items: center; } -.sidebar #show-hide-button { +#show-hide-button { padding-top: 3em; padding-bottom: 3em; + border: 1px solid #343a40; } -.sidebar #show-hide-button#hover { - color: grey; +#show-hide-button#hover { + color: black; + background-color: white!important; + border: 1px solid #343a40; } From 22c1eb130097eaec2f4cfa6396a1b3e68cc9b061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 11:52:37 +0100 Subject: [PATCH 05/45] react+tailwind based report (experiment) --- playground/react/categories.js | 21 +++ playground/react/components/abstract_menu.js | 27 +++ .../react/components/abstract_results.js | 151 +++++++++++++++++ playground/react/components/app.js | 23 +++ playground/react/components/breadcrumbs.js | 103 ++++++++++++ playground/react/components/category.js | 22 +++ playground/react/components/common.js | 17 ++ playground/react/components/content.js | 26 +++ playground/react/components/icon.js | 48 ++++++ playground/react/components/list_heading.js | 11 ++ playground/react/components/list_item.js | 15 ++ playground/react/components/menu.js | 69 ++++++++ playground/react/components/navbar.js | 155 ++++++++++++++++++ playground/react/components/result_info.js | 148 +++++++++++++++++ playground/react/components/rulegraph.js | 31 ++++ playground/react/components/search_results.js | 47 ++++++ playground/react/components/stats.js | 27 +++ playground/react/components/subcategory.js | 21 +++ playground/react/index.html | 51 ++++++ playground/react/logo.svg | 7 + playground/react/results.js | 92 +++++++++++ playground/react/rulegraph.js | 142 ++++++++++++++++ playground/react/runtimes.js | 15 ++ playground/react/timeline.js | 20 +++ 24 files changed, 1289 insertions(+) create mode 100644 playground/react/categories.js create mode 100644 playground/react/components/abstract_menu.js create mode 100644 playground/react/components/abstract_results.js create mode 100644 playground/react/components/app.js create mode 100644 playground/react/components/breadcrumbs.js create mode 100644 playground/react/components/category.js create mode 100644 playground/react/components/common.js create mode 100644 playground/react/components/content.js create mode 100644 playground/react/components/icon.js create mode 100644 playground/react/components/list_heading.js create mode 100644 playground/react/components/list_item.js create mode 100644 playground/react/components/menu.js create mode 100644 playground/react/components/navbar.js create mode 100644 playground/react/components/result_info.js create mode 100644 playground/react/components/rulegraph.js create mode 100644 playground/react/components/search_results.js create mode 100644 playground/react/components/stats.js create mode 100644 playground/react/components/subcategory.js create mode 100644 playground/react/index.html create mode 100644 playground/react/logo.svg create mode 100644 playground/react/results.js create mode 100644 playground/react/rulegraph.js create mode 100644 playground/react/runtimes.js create mode 100644 playground/react/timeline.js diff --git a/playground/react/categories.js b/playground/react/categories.js new file mode 100644 index 000000000..c55585e14 --- /dev/null +++ b/playground/react/categories.js @@ -0,0 +1,21 @@ +var categories = { + "Foo": { + "Sub": [ + "testdir/1.txt", + "test.csv" + ], + "Other": [] + }, + "Bar": { + "Other": [ + "testdir/2.txt", + "testdir/3.txt" + ] + }, + "Other": { + "Other": [ + "fig1.svg", + "testmodel.fig2.png" + ] + } +} \ No newline at end of file diff --git a/playground/react/components/abstract_menu.js b/playground/react/components/abstract_menu.js new file mode 100644 index 000000000..b215e4d0b --- /dev/null +++ b/playground/react/components/abstract_menu.js @@ -0,0 +1,27 @@ +'use strict'; + +class AbstractMenu extends React.Component { + buttonProps = { className: "transition-all block hover:text-emerald-500 rounded hover:bg-slate-800 p-1 flex items-center gap-2" }; + iconProps = { className: "text-emerald-500" }; + + constructor(props) { + super(props); + } + + getMenuItem(label, iconName, onClick) { + return e( + "li", + { key: label }, + e( + "a", + { href: "#", onClick: onClick, ...this.buttonProps }, + e(Icon, { iconName: iconName, ...this.iconProps }), + e( + "span", + {}, + label + ) + ) + ); + } +} \ No newline at end of file diff --git a/playground/react/components/abstract_results.js b/playground/react/components/abstract_results.js new file mode 100644 index 000000000..b69372ead --- /dev/null +++ b/playground/react/components/abstract_results.js @@ -0,0 +1,151 @@ +'use strict'; + +class AbstractResults extends React.Component { + constructor(props) { + super(props); + } + + render() { + return e( + "table", + { className: "table-auto text-white text-sm w-full" }, + e( + "thead", + {}, + this.renderHeader(), + ), + e( + "tbody", + {}, + this.renderEntries() + ) + ) + } + + getResults() { + throw new Error("Unimplemented!"); + } + + getCategory() { + throw new Error("Unimplemented!"); + } + + getSubcategory() { + throw new Error("Unimplemented!"); + } + + getSearchTerm() { + throw new Error("Unimplemented!"); + } + + getColumns() { + return Array.from(new Set(this.getResults().map(function ([path, result]) { Object.keys(result.columns) }).flat())).sort(); + } + + isColumnBased() { + return this.getResults().every(function ([path, result]) { + "columns" in result + }); + } + + renderHeader() { + if (this.isColumnBased()) { + return e( + "tr", + {}, + this.getColumns().map(function (column) { + return e( + "th", + { className: "text-left p-1" }, + column + ) + }), + e( + "th", + { className: "text-right p-1 w-fit" }, + ) + ) + } else { + return e( + "tr", + {}, + e( + "th", + { className: "text-left p-1" }, + "Filename" + ), + e( + "th", + { className: "text-right p-1 w-fit" }, + ) + ) + } + } + + renderEntries() { + let _this = this; + let columns = undefined; + if (this.isColumnBased()) { + columns = this.getColumns(); + } + return this.getResults().map(function ([path, entry]) { + let actions = e( + "td", + { className: "p-1 text-right" }, + e( + "div", + { className: "inline-flex gap-1", role: "group" }, + _this.renderButton("eye", { href: entry.data_uri(), download: entry.name }), + _this.renderButton( + "information-circle", + { + href: "#", + onClick: () => _this.showResultInfo(path) + } + ) + ) + ); + + let entryColumns = undefined; + let key = undefined; + if (columns !== undefined) { + entryColumns = columns.map(function (column) { + return e( + "td", + { className: "p-1" }, + entry.columns[column] || "" + ); + }); + key = columns.join(); + } else { + entryColumns = e( + "td", + { className: "p-1" }, + path + ); + key = path; + } + + return [ + e( + "tr", + { key: key }, + entryColumns, + actions + ) + ]; + }) + } + + renderButton(iconName, props) { + return e( + "a", + { type: "button", className: `transition-all inline-block p-1 text-emerald-500 rounded hover:bg-slate-800`, ...props }, + e(Icon, { iconName: iconName }) + ) + } + + showResultInfo(resultPath) { + this.props.setView({ mode: "resultinfo", resultPath: resultPath, category: this.getCategory(), subcategory: this.getSubcategory(), searchTerm: this.getSearchTerm() }); + } +} \ No newline at end of file diff --git a/playground/react/components/app.js b/playground/react/components/app.js new file mode 100644 index 000000000..0cba404fb --- /dev/null +++ b/playground/react/components/app.js @@ -0,0 +1,23 @@ +'use strict'; + + + +class App extends React.Component { + constructor(props) { + super(props); + this.state = { content: "rulegraph", ruleinfo: undefined }; + } + + render() { + return [ + e(Navbar, { app: this, ruleinfo: this.state.ruleinfo }), + e(ContentDisplay, { show: this.state.content }) + ]; + } + + setView(view) { + this.setState({ content: view.content, ruleinfo: view.ruleinfo }) + } +} + +ReactDOM.render(e(App), document.querySelector('#app')); \ No newline at end of file diff --git a/playground/react/components/breadcrumbs.js b/playground/react/components/breadcrumbs.js new file mode 100644 index 000000000..12a846bc6 --- /dev/null +++ b/playground/react/components/breadcrumbs.js @@ -0,0 +1,103 @@ +'use strict'; + +class Breadcrumbs extends React.Component { + constructor(props) { + super(props); + this.state = { searchTerm: "" }; + } + + render() { + return e( + "nav", + { className: "text-white align-middle text-xs m-2 p-2 rounded bg-slate-800" }, + e( + "ol", + { className: "list-reset flex items-center gap-1" }, + this.renderEntries(), + this.renderSearch() + ) + ) + } + + renderEntries() { + let entries = this.props.entries.filter(function (entry) { + return entry !== undefined + }); + + return entries.map(function (entry, index) { + const isLast = index == entries.length - 1; + + let content = entry.name; + if (entry.icon !== undefined) { + content = e( + Icon, + { iconName: entry.icon } + ) + } + + + let link = content; + if (entry.func !== undefined) { + link = e( + "a", + { className: "hover:text-emerald-600", href: "#", onClick: entry.func }, + content + ); + } + + let props = {}; + if (isLast) { + props = { className: "grow" } + } + + let item = e( + "li", + { key: entry.name, ...props }, + link + ); + if (!isLast) { + item = [ + item, + e( + "li", + { key: `sep-${index}` }, + "/" + ) + ]; + } + + return item; + }); + } + + renderSearch() { + let _this = this; + return e( + "li", + { className: "flex-0" }, + e( + "input", + { + type: "text", + placeholder: "Search...", + title: "Search all results. Prefix with 're:' to perform regexp search.", + size: 10, + className: "border-0 bg-transparent text-white h-3 w-fit text-xs text-right form-control rounded", + onKeyPress: function (event) { + if (event.charCode == 13) { + event.preventDefault(); + _this.showSearchResults(); + } + }, + onChange: function (event) { + _this.setState({ searchTerm: event.target.value }); + } + }, + ) + ) + } + + showSearchResults() { + this.props.setView({ mode: "searchresults", searchTerm: this.state.searchTerm }) + } +} diff --git a/playground/react/components/category.js b/playground/react/components/category.js new file mode 100644 index 000000000..71121c0e6 --- /dev/null +++ b/playground/react/components/category.js @@ -0,0 +1,22 @@ +'use strict'; + +class Category extends AbstractMenu { + render() { + return e( + "ul", + {}, + this.getSubcategoryMenuitems() + ) + } + + showSubcategory(subcategory) { + this.props.setView({ mode: "category", category: this.props.category, subcategory: subcategory }) + } + + getSubcategoryMenuitems() { + let _this = this + return Object.keys(categories[this.props.category]).map(function (subcategory) { + return _this.getMenuItem(subcategory, "folder", () => _this.showSubcategory(subcategory)); + }); + } +} \ No newline at end of file diff --git a/playground/react/components/common.js b/playground/react/components/common.js new file mode 100644 index 000000000..a1181d4c0 --- /dev/null +++ b/playground/react/components/common.js @@ -0,0 +1,17 @@ +const e = React.createElement; + +function isNoResults() { + return Object.keys(categories).length == 0; +} + +function isSingleCategory() { + return Object.keys(categories).length == 1; +} + +function isSingleDefaultCategory() { + return isSingleCategory() && Object.keys(categories)[0] == "Other"; +} + +function isSingleSubcategory(category) { + return Object.keys(categories[category]).length == 1; +} \ No newline at end of file diff --git a/playground/react/components/content.js b/playground/react/components/content.js new file mode 100644 index 000000000..87ef38a7f --- /dev/null +++ b/playground/react/components/content.js @@ -0,0 +1,26 @@ +'use strict'; + + + +class ContentDisplay extends React.Component { + constructor(props) { + super(props); + } + + render() { + return e( + "div", + { className: "flex items-center justify-center min-h-screen z-0" }, + this.renderContent() + ) + } + + renderContent() { + switch (this.props.show) { + case "rulegraph": + return e(RuleGraph); + case "stats": + return e(Stats) + } + } +} \ No newline at end of file diff --git a/playground/react/components/icon.js b/playground/react/components/icon.js new file mode 100644 index 000000000..707fa525c --- /dev/null +++ b/playground/react/components/icon.js @@ -0,0 +1,48 @@ +'use strict'; + +class Icon extends React.Component { + // paths are imported from https://heroicons.com + paths = { + "arrow-down": [ + { rule: "evenodd", path: "M16.707 10.293a1 1 0 010 1.414l-6 6a1 1 0 01-1.414 0l-6-6a1 1 0 111.414-1.414L9 14.586V3a1 1 0 012 0v11.586l4.293-4.293a1 1 0 011.414 0z" } + ], + "information-circle": [ + { rule: "evenodd", path: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" } + ], + "home": [ + { rule: "evenodd", path: "M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" } + ], + "share": [ + { rule: "evenodd", path: "M15 8a3 3 0 10-2.977-2.63l-4.94 2.47a3 3 0 100 4.319l4.94 2.47a3 3 0 10.895-1.789l-4.94-2.47a3.027 3.027 0 000-.74l4.94-2.47C13.456 7.68 14.19 8 15 8z" } + ], + "chart": [ + { rule: "evenodd", path: "M2 11a1 1 0 011-1h2a1 1 0 011 1v5a1 1 0 01-1 1H3a1 1 0 01-1-1v-5zM8 7a1 1 0 011-1h2a1 1 0 011 1v9a1 1 0 01-1 1H9a1 1 0 01-1-1V7zM14 4a1 1 0 011-1h2a1 1 0 011 1v12a1 1 0 01-1 1h-2a1 1 0 01-1-1V4z" } + ], + "folder": [ + { rule: "evenodd", path: "M2 6a2 2 0 012-2h5l2 2h5a2 2 0 012 2v6a2 2 0 01-2 2H4a2 2 0 01-2-2V6z" } + ], + "eye": [ + { rule: undefined, path: "M10 12a2 2 0 100-4 2 2 0 000 4z" }, + { rule: "evenodd", path: "M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" }, + ] + } + + render() { + let _this = this; + return e( + "svg", + { xmlns: "http://www.w3.org/2000/svg", className: `h-4 w-4 ${this.props.className}`, viewBox: "0 0 20 20", fill: "currentColor", }, + this.renderPath().map(function (item) { + + return e( + "path", + { fillRule: item.rule, clipRule: item.rule, d: item.path } + ); + }) + ) + } + + renderPath() { + return this.paths[this.props.iconName]; + } +} diff --git a/playground/react/components/list_heading.js b/playground/react/components/list_heading.js new file mode 100644 index 000000000..3a485c1ad --- /dev/null +++ b/playground/react/components/list_heading.js @@ -0,0 +1,11 @@ +'use strict'; + +class ListHeading extends React.Component { + render() { + return e( + "li", + { className: "uppercase font-bold p-1" }, + this.props.text + ); + } +} \ No newline at end of file diff --git a/playground/react/components/list_item.js b/playground/react/components/list_item.js new file mode 100644 index 000000000..96748dfbe --- /dev/null +++ b/playground/react/components/list_item.js @@ -0,0 +1,15 @@ +'use strict'; + +class ListItem extends React.Component { + constructor(props) { + super(props); + } + + render() { + return e( + "li", + { className: "p-1" }, + this.props.children + ); + } +} \ No newline at end of file diff --git a/playground/react/components/menu.js b/playground/react/components/menu.js new file mode 100644 index 000000000..25192915d --- /dev/null +++ b/playground/react/components/menu.js @@ -0,0 +1,69 @@ +'use strict'; + +class Menu extends AbstractMenu { + constructor(props) { + super(props); + this.showWorkflow = this.showWorkflow.bind(this) + this.showStatistics = this.showStatistics.bind(this) + } + + render() { + return e( + "ul", + {}, + this.getHeading(), + this.getMenuItem("Workflow", "share", this.showWorkflow), + this.getMenuItem("Statistics", "chart", this.showStatistics), + this.getCategoryMenumitems() + ) + } + + showWorkflow() { + this.props.app.setView({ content: "rulegraph" }); + } + + showStatistics() { + this.props.app.setView({ content: "stats" }); + } + + getHeading() { + if (isSingleCategory()) { + return []; + } else { + return e( + ListHeading, + { text: "General" } + ) + } + } + + showCategory(category) { + let subcategory = undefined; + if (isSingleSubcategory(category)) { + subcategory = Object.keys(categories[category])[0]; + } + this.props.setView({ mode: "category", category: category, subcategory: subcategory }) + } + + getCategoryMenumitems() { + if (isSingleCategory()) { + let category = Object.keys(categories)[0]; + return this.getMenuItem("Results", "folder", () => this.showCategory(category)); + } else if (isNoResults()) { + return []; + } else { + let items = [e( + "li", + { key: "Results", className: "uppercase font-bold p-1 mt-2" }, + "Results" + )]; + + let _this = this + items.push(...Object.keys(categories).map(function (category) { + return _this.getMenuItem(category, "folder", () => _this.showCategory(category)); + })); + + return items; + } + } +} \ No newline at end of file diff --git a/playground/react/components/navbar.js b/playground/react/components/navbar.js new file mode 100644 index 000000000..7ea053f84 --- /dev/null +++ b/playground/react/components/navbar.js @@ -0,0 +1,155 @@ +'use strict'; + + +class Navbar extends React.Component { + constructor(props) { + super(props); + this.state = { mode: "menu", category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined }; + this.setView = this.setView.bind(this); + } + + render() { + return e( + "nav", + { className: `fixed z-50 transition-all ${this.getWidth()} min-w-fit bg-slate-900/70 backdrop-blur-sm text-white text-sm h-screen overflow-y-auto` }, + e( + "h1", + { className: "sticky bg-blur bg-white opacity-80 text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, + e( + "img", + { src: "logo.svg", className: "h-4" } + ), + e( + "span", + { className: "font-bold mx-1" }, + "Snakemake" + ), + e( + "span", + {}, + "Report" + ), + ), + this.renderBreadcrumbs(), + e( + "div", + { className: "p-3" }, + this.renderContent() + ) + ); + } + + renderContent() { + let setView = this.setView; + switch (this.state.mode) { + case "menu": + return e(Menu, { setView: setView, app: this.props.app }); + case "category": + if (this.state.subcategory !== undefined) { + return e(Subcategory, { setView: setView, category: this.state.category, subcategory: this.state.subcategory }); + } else { + return e(Category, { setView: setView, category: this.state.category }); + } + case "searchresults": + return e(SearchResults, { setView: setView, searchTerm: this.state.searchTerm }); + case "resultinfo": + return e(ResultInfo, { resultPath: this.state.resultPath }); + } + } + + renderBreadcrumbs() { + let setView = this.setView; + switch (this.state.mode) { + case "menu": + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb()], setView: setView } + ); + case "category": + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb(), this.getResultBreadcrumb(), this.getCategoryBreadcrumb(), this.getSubcategoryBreadcrumb()], setView: setView } + ); + case "resultinfo": + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb(), this.getResultBreadcrumb(), this.getCategoryBreadcrumb(), this.getSubcategoryBreadcrumb(), this.getSearchResultsBreadcrumb(), this.getResultinfoBreadcrumb()], setView: setView } + ); + case "searchresults": + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb(), this.getSearchResultsBreadcrumb()], setView: setView } + ) + } + } + + getMenuBreadcrumb() { + let _this = this; + return { name: "menu", icon: "home", func: function () { _this.setView({ mode: "menu", category: undefined, subcategory: undefined }) } }; + } + + getCategoryBreadcrumb() { + if (this.state.category === undefined) { + return undefined; + } + let subcategory = undefined; + if (isSingleSubcategory(this.state.category)) { + subcategory = this.state.subcategory; + } + let _this = this; + + let name = this.state.category; + if (isSingleDefaultCategory()) { + name = "Results"; + } + return { name: name, func: function () { _this.setView({ mode: "category", category: _this.state.category, subcategory: subcategory }) } }; + } + + getSubcategoryBreadcrumb() { + if (this.state.subcategory === undefined || isSingleSubcategory(this.state.category)) { + return undefined; + } + let _this = this; + return { name: this.state.subcategory, func: function () { _this.setView({ mode: "category", category: _this.state.category, subcategory: _this.state.subcategory }) } }; + } + + getResultBreadcrumb() { + if (isSingleDefaultCategory()) { + return undefined; + } + return { name: "Results", func: undefined }; + } + + getSearchResultsBreadcrumb() { + let searchTerm = this.state.searchTerm; + if (searchTerm === undefined) { + return undefined; + } + let setView = this.setView; + return { + name: "Search results", func: function () { + setView({ mode: "searchresults", searchTerm: searchTerm }) + } + }; + } + + getResultinfoBreadcrumb() { + return { name: "resultinfo", icon: "eye", func: undefined }; + } + + getWidth() { + switch (this.state.mode) { + case "menu": + return "w-1/5" + case "category": + return "w-1/3" + case "resultinfo": + return "w-3/4" + } + } + + setView(view) { + event.preventDefault(); + this.setState({ mode: view.mode, category: view.category, subcategory: view.subcategory, searchTerm: view.searchTerm, resultPath: view.resultPath }) + } +} \ No newline at end of file diff --git a/playground/react/components/result_info.js b/playground/react/components/result_info.js new file mode 100644 index 000000000..8854643e0 --- /dev/null +++ b/playground/react/components/result_info.js @@ -0,0 +1,148 @@ +'use strict'; + +class ResultInfo extends React.Component { + render() { + return e( + "ul", + {}, + this.getDescriptor(), + this.getCaption(), + this.getRule(), + this.getParamsAndWildcards(), + ) + } + + getResult() { + return results[this.props.resultPath]; + } + + getDescriptor() { + let result = this.getResult(); + + if (result.columns !== undefined) { + const columns = Object.keys(result.columns).sort(); + return [ + e( + ListHeading, + { text: "Result" } + ), + e( + "li", + {}, + e( + "table", + {}, + e( + "thead", + {}, + e( + "tr", + {}, + columns.map(function (column) { + return e( + "th", + {}, + column + ); + }) + ) + ), + e( + "tbody", + {}, + e( + "tr", + {}, + columns.map(function (column) { + const value = result.columns[column]; + return e( + "td", + {}, + value + ); + }) + ) + ) + ) + ) + ]; + } else { + return [ + e( + ListHeading, + { text: "Result" } + ), + e( + "li", + { className: "p-1" }, + this.props.resultPath + ) + ]; + } + } + + getCaption() { + const caption = this.getResult().caption; + if (caption !== undefined) { + return [ + e( + ListHeading, + { text: "Description" } + ), + e( + "li", + { + className: "p-1", + dangerouslySetInnerHTML: { __html: caption } + } + ) + ]; + } else { + return []; + } + } + + getRule() { + return [ + e( + ListHeading, + { text: "Snakemake rule" } + ), + e( + ListItem, + {}, + this.getResult().job_properties.rule + ) + ] + } + + getParamsAndWildcards() { + const jobProperties = this.getResult().job_properties; + console.log(jobProperties) + if (jobProperties.params || jobProperties.wildcards) { + let items = [ + e( + ListHeading, + { text: "Job parameters" } + ), + ]; + if (jobProperties.wildcards) { + items.push(e( + ListItem, + { key: "wildcards" }, + jobProperties.wildcards + )); + } + if (jobProperties.params) { + items.push(e( + ListItem, + { key: "params" }, + jobProperties.params + )); + } + return items; + } else { + return []; + } + } +} \ No newline at end of file diff --git a/playground/react/components/rulegraph.js b/playground/react/components/rulegraph.js new file mode 100644 index 000000000..0d8c1768d --- /dev/null +++ b/playground/react/components/rulegraph.js @@ -0,0 +1,31 @@ +'use strict'; + +class RuleGraph extends React.Component { + constructor(props) { + super(props); + } + + render() { + return e( + "div", + { id: "rulegraph" } + ) + } + + componentDidMount() { + let showRuleProperties = this.showRuleProperties; + vegaEmbed("#rulegraph", rulegraph_spec).then(function (ret) { + ret.view.addEventListener("click", function (event, item) { + if (item && "rule" in item.datum) { + var rule = item.datum.rule; + showRuleProperties(rule); + } + }); + }); + } + + + showRuleProperties() { + + } +} \ No newline at end of file diff --git a/playground/react/components/search_results.js b/playground/react/components/search_results.js new file mode 100644 index 000000000..d488355a8 --- /dev/null +++ b/playground/react/components/search_results.js @@ -0,0 +1,47 @@ +'use strict'; + +class SearchResults extends AbstractResults { + getSearchFunc() { + let term = this.props.searchTerm; + if (term.startsWith("re:")) { + let regexp = new RegExp(term.slice(3)); + return function (text) { + return regexp.test(text); + } + } else { + return function (text) { + return text.includes(term); + } + } + } + + getResults() { + let searchFunc = this.getSearchFunc(); + return Object.entries(results).map(function ([path, result]) { + if (searchFunc(path)) { + return [path, result]; + } + const columns = result.columns || []; + for (columnValue in columns) { + if (searchFunc(columnValue)) { + return [path, result]; + } + } + return undefined; + }).filter(function (item) { + return item !== undefined; + }) + } + + getCategory() { + return undefined; + } + + getSubcategory() { + return undefined; + } + + getSearchTerm() { + return this.props.searchTerm; + } +} \ No newline at end of file diff --git a/playground/react/components/stats.js b/playground/react/components/stats.js new file mode 100644 index 000000000..4fada01a4 --- /dev/null +++ b/playground/react/components/stats.js @@ -0,0 +1,27 @@ +'use strict'; + +class Stats extends React.Component { + constructor(props) { + super(props); + } + + render() { + return e( + "div", + { className: "flex" }, + e( + "div", + { id: "runtimes" } + ), + e( + "div", + { id: "timeline" } + ) + ) + } + + componentDidMount() { + vegaEmbed("#runtimes", runtimes_spec); + vegaEmbed("#timeline", timeline_spec); + } +} \ No newline at end of file diff --git a/playground/react/components/subcategory.js b/playground/react/components/subcategory.js new file mode 100644 index 000000000..9eae67d6a --- /dev/null +++ b/playground/react/components/subcategory.js @@ -0,0 +1,21 @@ +'use strict'; + +class Subcategory extends AbstractResults { + getResults() { + return categories[this.props.category][this.props.subcategory].map(function (path) { + return [path, results[path]]; + }); + } + + getCategory() { + return this.props.category; + } + + getSubcategory() { + return this.props.subcategory; + } + + getSearchTerm() { + return undefined; + } +} \ No newline at end of file diff --git a/playground/react/index.html b/playground/react/index.html new file mode 100644 index 000000000..fd0c9706b --- /dev/null +++ b/playground/react/index.html @@ -0,0 +1,51 @@ + + + + + + Snakemake Report + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/playground/react/logo.svg b/playground/react/logo.svg new file mode 100644 index 000000000..8362455cd --- /dev/null +++ b/playground/react/logo.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/playground/react/results.js b/playground/react/results.js new file mode 100644 index 000000000..c547a295a --- /dev/null +++ b/playground/react/results.js @@ -0,0 +1,92 @@ +var results = { + "testdir/1.txt": { + name: "1.txt", + filename: "1.txt", + path: "testdir/1.txt", + size: "2 Bytes", + caption: "

Files obtained from a directory. This file starts with 1. This value has been dynamically inferred from the given pattern.

\n", + job_properties: { + rule: "e", + wildcards: "name=1", + params: "" + }, + data_uri: function () { return "data:text/plain;charset=utf8;filename=1.txt;base64,MQo="; }, + thumbnail_uri: function () { return null; } + }, + "testdir/2.txt": { + name: "2.txt", + filename: "2.txt", + path: "testdir/2.txt", + size: "2 Bytes", + caption: "

Files obtained from a directory. This file starts with 2. This value has been dynamically inferred from the given pattern.

\n", + job_properties: { + rule: "e", + wildcards: "name=2", + params: "" + }, + data_uri: function () { return "data:text/plain;charset=utf8;filename=2.txt;base64,Mgo="; }, + thumbnail_uri: function () { return null; } + }, + "testdir/3.txt": { + name: "3.txt", + filename: "3.txt", + path: "testdir/3.txt", + size: "2 Bytes", + caption: "

Files obtained from a directory. This file starts with 3. This value has been dynamically inferred from the given pattern.

\n", + job_properties: { + rule: "e", + wildcards: "name=3", + params: "" + }, + data_uri: function () { return "data:text/plain;charset=utf8;filename=3.txt;base64,Mwo="; }, + thumbnail_uri: function () { return null; } + }, + "test.csv": { + name: "test.csv", + filename: "test.csv", + path: "test.csv", + size: "113.2 kB", + caption: "

An example table.

\n", + job_properties: { + rule: "d", + wildcards: "", + params: "" + }, + data_uri: function () { return "data:text/csv;charset=utf8;filename=test.csv;base64,c3RyZWV0LGNpdHksemlwLHN0YXRlLGJlZHMsYmF0aHMsc3FfX2Z0LHR5cGUsc2FsZV9kYXRlLHByaWNlLGxhdGl0dWRlLGxvbmdpdHVkZQ0zNTI2IEhJR0ggU1QsU0FDUkFNRU5UTyw5NTgzOCxDQSwyLDEsODM2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNTkyMjIsMzguNjMxOTEzLC0xMjEuNDM0ODc5DTUxIE9NQUhBIENULFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywxLDExNjcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw2ODIxMiwzOC40Nzg5MDIsLTEyMS40MzEwMjgNMjc5NiBCUkFOQ0ggU1QsU0FDUkFNRU5UTyw5NTgxNSxDQSwyLDEsNzk2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjg4ODAsMzguNjE4MzA1LC0xMjEuNDQzODM5DTI4MDUgSkFORVRURSBXQVksU0FDUkFNRU5UTyw5NTgxNSxDQSwyLDEsODUyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjkzMDcsMzguNjE2ODM1LC0xMjEuNDM5MTQ2DTYwMDEgTUNNQUhPTiBEUixTQUNSQU1FTlRPLDk1ODI0LENBLDIsMSw3OTcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw4MTkwMCwzOC41MTk0NywtMTIxLjQzNTc2OA01ODI4IFBFUFBFUk1JTEwgQ1QsU0FDUkFNRU5UTyw5NTg0MSxDQSwzLDEsMTEyMixDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDg5OTIxLDM4LjY2MjU5NSwtMTIxLjMyNzgxMw02MDQ4IE9HREVOIE5BU0ggV0FZLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywyLDExMDQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw5MDg5NSwzOC42ODE2NTksLTEyMS4zNTE3MDUNMjU2MSAxOVRIIEFWRSxTQUNSQU1FTlRPLDk1ODIwLENBLDMsMSwxMTc3LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsOTEwMDIsMzguNTM1MDkyLC0xMjEuNDgxMzY3DTExMTUwIFRSSU5JVFkgUklWRVIgRFIgVW5pdCAxMTQsUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMiwyLDk0MSxDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDk0OTA1LDM4LjYyMTE4OCwtMTIxLjI3MDU1NQ03MzI1IDEwVEggU1QsUklPIExJTkRBLDk1NjczLENBLDMsMiwxMTQ2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsOTg5MzcsMzguNzAwOTA5LC0xMjEuNDQyOTc5DTY0NSBNT1JSSVNPTiBBVkUsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsOTA5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTAwMzA5LDM4LjYzNzY2MywtMTIxLjQ1MTUyDTQwODUgRkFXTiBDSVIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTI4OSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEwNjI1MCwzOC40NzA3NDYsLTEyMS40NTg5MTgNMjkzMCBMQSBST1NBIFJELFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMSwxLDg3MSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEwNjg1MiwzOC42MTg2OTgsLTEyMS40MzU4MzMNMjExMyBLSVJLIFdBWSxTQUNSQU1FTlRPLDk1ODIyLENBLDMsMSwxMDIwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTA3NTAyLDM4LjQ4MjIxNSwtMTIxLjQ5MjYwMw00NTMzIExPQ0ggSEFWRU4gV0FZLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMiwyLDEwMjIsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMDg3NTAsMzguNjcyOTE0LC0xMjEuMzU5MzQNNzM0MCBIQU1ERU4gUEwsU0FDUkFNRU5UTyw5NTg0MixDQSwyLDIsMTEzNCxDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDExMDcwMCwzOC43MDAwNTEsLTEyMS4zNTEyNzgNNjcxNSA2VEggU1QsUklPIExJTkRBLDk1NjczLENBLDIsMSw4NDQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMTMyNjMsMzguNjg5NTkxLC0xMjEuNDUyMjM5DTYyMzYgTE9OR0ZPUkQgRFIgVW5pdCAxLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDIsMSw3OTUsQ29uZG8sV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMTYyNTAsMzguNjc5Nzc2LC0xMjEuMzE0MDg5DTI1MCBQRVJBTFRBIEFWRSxTQUNSQU1FTlRPLDk1ODMzLENBLDIsMSw1ODgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMjAwMDAsMzguNjEyMDk5LC0xMjEuNDY5MDk1DTExMyBMRUVXSUxMIEFWRSxSSU8gTElOREEsOTU2NzMsQ0EsMywyLDEzNTYsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMjE2MzAsMzguNjg5OTk5LC0xMjEuNDYzMjINNjExOCBTVE9ORUhBTkQgQVZFLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMTE4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTIyMDAwLDM4LjcwNzg1MSwtMTIxLjMyMDcwNw00ODgyIEJBTkRBTElOIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxMzI5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTIyNjgyLDM4LjQ2ODE3MywtMTIxLjQ0NDA3MQ03NTExIE9BS1ZBTEUgQ1QsTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDQsMiwxMjQwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTIzMDAwLDM4LjcwMjc5MiwtMTIxLjM4MjIxDTkgUEFTVFVSRSBDVCxTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNjAxLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTI0MTAwLDM4LjYyODYzMSwtMTIxLjQ4ODA5Nw0zNzI5IEJBSU5CUklER0UgRFIsTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMiw5MDEsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMjUwMDAsMzguNzAxNDk5LC0xMjEuMzc2MjINMzgyOCBCTEFDS0ZPT1QgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMDg4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTI2NjQwLDM4LjcwOTc0LC0xMjEuMzczNzcNNDEwOCBOT1JUT04gV0FZLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMywxLDk2MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEyNzI4MSwzOC41Mzc1MjYsLTEyMS40NzgzMTUNMTQ2OSBKQU5SSUNLIEFWRSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMiwxMTE5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTI5MDAwLDM4LjQ3NjQ3MiwtMTIxLjUwMTcxMQ05ODYxIENVTFAgV0FZLFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNCwyLDEzODAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMzEyMDAsMzguNTU4NDIzLC0xMjEuMzI3OTQ4DTc4MjUgQ1JFRUsgVkFMTEVZIENJUixTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjQ4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTMyMDAwLDM4LjQ3MjEyMiwtMTIxLjQwNDE5OQ01MjAxIExBR1VOQSBPQUtTIERSIFVuaXQgMTQwLEVMSyBHUk9WRSw5NTc1OCxDQSwyLDIsMTAzOSxDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEzMzAwMCwzOC40MjMyNTEsLTEyMS40NDQ0ODkNNjc2OCBNRURPUkEgRFIsTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMiwxMTUyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTM0NTU1LDM4LjY5MTE2MSwtMTIxLjM3MTkyDTMxMDAgRVhQTE9SRVIgRFIsU0FDUkFNRU5UTyw5NTgyNyxDQSwzLDIsMTM4MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEzNjUwMCwzOC41NjY2NjMsLTEyMS4zMzI2NDQNNzk0NCBET01JTklPTiBXQVksRUxWRVJUQSw5NTYyNixDQSwzLDIsMTExNixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEzODc1MCwzOC43MTMxODIsLTEyMS40MTEyMjcNNTIwMSBMQUdVTkEgT0FLUyBEUiBVbml0IDE2MixFTEsgR1JPVkUsOTU3NTgsQ0EsMiwyLDEwMzksQ29uZG8sV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNDEwMDAsMzguNDIzMjUxLC0xMjEuNDQ0NDg5DTM5MjAgU0hJTklORyBTVEFSIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MTgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNDYyNTAsMzguNDg3NDIsLTEyMS40NjI0NTkNNTAzMSBDT1JWQUlSIFNULE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDIsMTA4MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE0NzMwOCwzOC42NTgyNDYsLTEyMS4zNzU0NjkNNzY2MSBOSVhPUyBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTQ3MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE0ODc1MCwzOC40Nzk1NTMsLTEyMS40NjMzMTcNNzA0NCBDQVJUSFkgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDExNDYsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNDk1OTMsMzguNDk4NTcsLTEyMS40MjA5MjUNMjQ0MiBMQVJLU1BVUiBMTixTQUNSQU1FTlRPLDk1ODI1LENBLDEsMSw3NjAsQ29uZG8sV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNTg1MTQsLTEyMS40MDM3MzYNNDgwMCBXRVNUTEFLRSBQS1dZIFVuaXQgMjEwOSxTQUNSQU1FTlRPLDk1ODM1LENBLDIsMiwxMzA0LENvbmRvLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTUyMDAwLDM4LjY1ODgxMiwtMTIxLjU0MjM0NQ0yMTc4IDYzUkQgQVZFLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywyLDEyMDcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNTQwMDAsMzguNDkzOTU1LC0xMjEuNDg5NjYNODcxOCBFTEsgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSwzLDIsMTA1NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE1Njg5NiwzOC40MTY1MywtMTIxLjM3OTY1Mw01NzA4IFJJREdFUE9JTlQgRFIsQU5URUxPUEUsOTU4NDMsQ0EsMiwyLDEwNDMsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNjEyNTAsMzguNzIwMjcsLTEyMS4zMzE1NTUNNzMxNSBLT0FMQSBDVCxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsNCwyLDE1ODcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNjE1MDAsMzguNjk5MjUxLC0xMjEuMzcxNDE0DTI2MjIgRVJJTiBEUixTQUNSQU1FTlRPLDk1ODMzLENBLDQsMSwxMTIwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTY0MDAwLDM4LjYxMzc2NSwtMTIxLjQ4ODY5NA04NDIxIFNVTkJMQVpFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxNTgwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTY1MDAwLDM4LjQ1MDU0MywtMTIxLjQzMjUzOA03NDIwIEFMSVggUEtXWSxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMSwxOTU1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTY2MzU3LDM4LjQ4OTQwNSwtMTIxLjQ1MjgxMQ0zODIwIE5BVE9NQSBXQVksU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTY1NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE2NjM1NywzOC42MzY3NDgsLTEyMS40MjIxNTkNNDQzMSBHUkVFTiBUUkVFIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0NzcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNjgwMDAsMzguNDk5OTU0LC0xMjEuNDU0NDY5DTk0MTcgU0FSQSBTVCxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDExODgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNDE1NTE4LC0xMjEuMzcwNTI3DTgyOTkgSEFMQlJJVEUgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE1OTAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzMwMDAsMzguNDczODE0LC0xMjEuNA03MjIzIEtBTExJRSBLQVkgTE4sU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTQ2MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE3NDI1MCwzOC40Nzc1NTMsLTEyMS40MTk0NjMNODE1NiBTVEVJTkJFQ0sgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE3MTQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzQzMTMsMzguNDc0ODUzLC0xMjEuNDA2MzI2DTc5NTcgVkFMTEVZIEdSRUVOIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDExODUsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzg0ODAsMzguNDY1MTg0LC0xMjEuNDM0OTI1DTExMjIgV0lMRCBQT1BQWSBDVCxHQUxULDk1NjMyLENBLDMsMiwxNDA2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTc4NzYwLDM4LjI4Nzc4OSwtMTIxLjI5NDcxNQ00NTIwIEJPTUFSSyBXQVksU0FDUkFNRU5UTyw5NTg0MixDQSw0LDIsMTk0MyxNdWx0aS1GYW1pbHksV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzk1ODAsMzguNjY1NzI0LC0xMjEuMzU4NTc2DTkwMTIgS0lFRkVSIEJMVkQsU0FDUkFNRU5UTyw5NTgyNixDQSwzLDIsMTE3MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE4MTAwMCwzOC41NDcwMTEsLTEyMS4zNjYyMTcNNTMzMiBTQU5EU1RPTkUgU1QsQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDEsMTE1MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE4MTg3MiwzOC42NjIxMDUsLTEyMS4zMTM5NDUNNTk5MyBTQVdZRVIgQ0lSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwzLDE4NTEsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODI1ODcsMzguNDQ3MywtMTIxLjQzNTIxOA00ODQ0IENMWURFQkFOSyBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDEyMTUsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODI3MTYsMzguNzE0NjA5LC0xMjEuMzQ3ODg3DTMwNiBDQU1FTExJQSBXQVksR0FMVCw5NTYzMixDQSwzLDIsMTEzMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE4Mjc1MCwzOC4yNjA0NDMsLTEyMS4yOTc4NjQNOTAyMSBNQURJU09OIEFWRSxPUkFOR0VWQUxFLDk1NjYyLENBLDQsMiwxNjAzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTgzMjAwLDM4LjY2NDE4NiwtMTIxLjIxNzUxMQ00MDQgNlRIIFNULEdBTFQsOTU2MzIsQ0EsMywxLDE0NzksUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODg3NDEsMzguMjUxODA4LC0xMjEuMzAyNDkzDTgzMTcgU1VOTlkgQ1JFRUsgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MjAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODkwMDAsMzguNDU5MDQxLC0xMjEuNDI0NjQ0DTI2MTcgQkFTUyBDVCxTQUNSQU1FTlRPLDk1ODI2LENBLDMsMiwxMjgwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTkyMDY3LDM4LjU2MDc2NywtMTIxLjM3NzQ3MQ03MDA1IFRJQU5UIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE1ODYsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxOTQwMDAsMzguNDIyODExLC0xMjEuNDIzMjg1DTc4OTUgQ0FCRVIgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMzYyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk0ODE4LDM4LjcxMTI3OSwtMTIxLjM5MzQ0OQ03NjI0IEJPR0VZIENULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCw0LDIxNjIsTXVsdGktRmFtaWx5LFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk1MDAwLDM4LjQ4MDA5LC0xMjEuNDE1MTAyDTY5MzAgSEFNUFRPTiBDT1ZFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMjY2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk4MDAwLDM4LjQ0MDA0LC0xMjEuNDIxMDEyDTg3MDggTUVTQSBCUk9PSyBXQVksRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNzE1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk5NTAwLDM4LjQ0MDc2LC0xMjEuMzg1NzkyDTEyMCBHUkFOVCBMTixGT0xTT00sOTU2MzAsQ0EsMywyLDE4MjAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNjg3NzQyLC0xMjEuMTcxMDQNNTkwNyBFTExFUlNMRUUgRFIsQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDEsOTM2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjAwMDAwLDM4LjY2NDQ2OCwtMTIxLjMyNjgzDTE3IFNFUkFTUEkgQ1QsU0FDUkFNRU5UTyw5NTgzNCxDQSwwLDAsMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIwNjAwMCwzOC42MzE0ODEsLTEyMS41MDE4OA0xNzAgUEVOSE9XIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNTExLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjA4MDAwLDM4LjY1MzQzOSwtMTIxLjUzNTE2OQ04MzQ1IFNUQVIgVEhJU1RMRSBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTU5MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIxMjg2NCwzOC40NTQzNDksLTEyMS40MzkyMzkNOTA4MCBGUkVTQ0EgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTU5NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIyMTAwMCwzOC40Mjc4MTgsLTEyMS40MjQwMjYNMzkxIE5BVEFMSU5PIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDIsMiwxMzQxLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjIxMDAwLDM4LjY3MzA3LC0xMjEuNTA2MzczDTgzNzMgQkxBQ0tNQU4gV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw1LDMsMjEzNixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIyMzA1OCwzOC40MzU0MzYsLTEyMS4zOTQ1MzYNOTgzNyBDT1JURSBET1JBRE8gQ1QsRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNjE2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjI3ODg3LDM4LjQwMDY3NiwtMTIxLjM4MTAxDTUwMzcgSiBQS1dZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0NzgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyMzE0NzcsMzguNDkxMzk5LC0xMjEuNDQzNTQ3DTEwMjQ1IExPUyBQQUxPUyBEUixSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSwzLDIsMTI4NyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNDY5NywzOC41OTM2OTksLTEyMS4zMTA4OQ02NjEzIE5BVklPTiBEUixDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTI3NyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNTAwMCwzOC43MDI4NTUsLTEyMS4zMTMwOA0yODg3IEFaRVZFRE8gRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDIsMTQ0OCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNjAwMCwzOC42MTg0NTcsLTEyMS41MDk0MzkNOTE4NiBLSU5CUkFDRSBDVCxTQUNSQU1FTlRPLDk1ODI5LENBLDQsMywyMjM1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjM2Njg1LDM4LjQ2MzM1NSwtMTIxLjM1ODkzNg00MjQzIE1JRERMRUJVUlkgV0FZLE1BVEhFUiw5NTY1NSxDQSwzLDIsMjA5MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNzgwMCwzOC41NDc5OTEsLTEyMS4yODA0ODMNMTAyOCBGQUxMT04gUExBQ0UgQ1QsUklPIExJTkRBLDk1NjczLENBLDMsMiwxMTkzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQwMTIyLDM4LjY5MzgxOCwtMTIxLjQ0MTE1Mw00ODA0IE5PUklLRVIgRFIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwyMTYzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQyNjM4LDM4LjQwMDk3NCwtMTIxLjQ0ODQyNA03NzEzIEhBUlZFU1QgV09PRFMgRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTI2OSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI0NDAwMCwzOC40NzgxOTgsLTEyMS40MTI5MTENMjg2NiBLQVJJVFNBIEFWRSxTQUNSQU1FTlRPLDk1ODMzLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQ0NTAwLDM4LjYyNjY3MSwtMTIxLjUyNTk3DTY5MTMgUklDSEVWRSBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDEsOTU4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQ0OTYwLDM4LjUwMjUxOSwtMTIxLjQyMDc2OQ04NjM2IFRFR0VBIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsNSwzLDI1MDgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNDU5MTgsMzguNDQzODMyLC0xMjEuMzgyMDg3DTU0NDggTUFJRFNUT05FIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTMwNSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1MDAwMCwzOC42NjUzOTUsLTEyMS4yOTMyODgNMTggT0xMSUUgQ1QsRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwxNTkxLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjUwMDAwLDM4LjQ0NDkwOSwtMTIxLjQxMjM0NQ00MDEwIEFMRVggTE4sQ0FSTUlDSEFFTCw5NTYwOCxDQSwyLDIsMTMyNixDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1MDEzNCwzOC42MzcwMjgsLTEyMS4zMTI5NjMNNDkwMSBNSUxMTkVSIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDE4NDMsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNTQyMDAsMzguMzg2OTIsLTEyMS40NDczNDkNNDgxOCBCUklUVE5FWSBMRUUgQ1QsU0FDUkFNRU5UTyw5NTg0MSxDQSw0LDIsMTkyMSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1NDIwMCwzOC42NTM5MTcsLTEyMS4zNDIxOA01NTI5IExBR1VOQSBQQVJLIERSLEVMSyBHUk9WRSw5NTc1OCxDQSw1LDMsMjc5MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1ODAwMCwzOC40MjU2OCwtMTIxLjQzODA2Mg0yMzAgQ0FOREVMQSBDSVIsU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTU0MSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI2MDAwMCwzOC42NTYyNTEsLTEyMS41NDc1NzINNDkwMCA3MVNUIFNULFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMywxLDEwMTgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNjAwMTQsMzguNTMxNTEsLTEyMS40MjEwODkNMTIyMDkgQ09OU0VSVkFOQ1kgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjYzNTAwLDM4LjU1Mzg2NywtMTIxLjIxOTE0MQ00MjM2IE5BVE9NQVMgQ0VOVFJBTCBEUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNjcyLENvbmRvLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjY1MDAwLDM4LjY0ODg3OSwtMTIxLjU0NDAyMw01NjE1IExVUElOIExOLFBPTExPQ0sgUElORVMsOTU3MjYsQ0EsMywyLDEzODAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNjUwMDAsMzguNzA4MzE1LC0xMjAuNjAzODcyDTU2MjUgSkFNRVMgV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDk3NSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI3MTc0MiwzOC41MjM5NDcsLTEyMS40ODQ5NDYNNzg0MiBMQUhPTlRBTiBDVCxTQUNSQU1FTlRPLDk1ODI5LENBLDQsMywyMzcyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjczNzUwLDM4LjQ3Mjk3NiwtMTIxLjMxODYzMw02ODUwIDIxU1QgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTQ0NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI3NTA4NiwzOC41MDIxOTQsLTEyMS40OTA3OTUNMjkwMCBCTEFJUiBSRCxQT0xMT0NLIFBJTkVTLDk1NzI2LENBLDIsMiwxMjg0LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjgwOTA4LDM4Ljc1NDg1LC0xMjAuNjA0NzYNMjA2NCBFWFBFRElUSU9OIFdBWSxTQUNSQU1FTlRPLDk1ODMyLENBLDQsMywzMDA5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjgwOTg3LDM4LjQ3NDA5OSwtMTIxLjQ5MDcxMQ0yOTEyIE5PUkNBREUgQ0lSLFNBQ1JBTUVOVE8sOTU4MjYsQ0EsOCw0LDM2MTIsTXVsdGktRmFtaWx5LFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjgyNDAwLDM4LjU1OTUwNSwtMTIxLjM2NDgzOQ05NTA3IFNFQSBDTElGRiBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwyMDU2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjg1MDAwLDM4LjQxMDk5MiwtMTIxLjQ3OTA0Mw04ODgyIEFVVFVNTiBHT0xEIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMTk5MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI4NzQxNywzOC40NDM5LC0xMjEuMzcyNTUNNTMyMiBXSElURSBMT1RVUyBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxODU3LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjkxMDAwLDM4LjM5MTUzOCwtMTIxLjQ0MjU5Ng0xODM4IENBU1RSTyBXQVksU0FDUkFNRU5UTyw5NTgxOCxDQSwyLDEsMTEyNixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI5MjAyNCwzOC41NTYwOTgsLTEyMS40OTA3ODcNMTAxNTggQ1JBV0ZPUkQgV0FZLFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNCw0LDIyMTMsTXVsdGktRmFtaWx5LFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjk3MDAwLDM4LjU3MDMsLTEyMS4zMTU3MzUNNzczMSBNQVNURVJTIFNULEVMSyBHUk9WRSw5NTc1OCxDQSw1LDMsMjQ5NCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI5NzAwMCwzOC40NDIwMzEsLTEyMS40MTA4NzMNNDkyNSBQRVJDSEVST04gRFIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxODQzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjk4MDAwLDM4LjQwMTU0LC0xMjEuNDQ3NjQ5DTIwMTAgUFJPTU9OVE9SWSBQT0lOVCBMTixHT0xEIFJJVkVSLDk1NjcwLENBLDIsMiwxNTIwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjk5MDAwLDM4LjYyODY5LC0xMjEuMjYxNjY5DTQ3MjcgU0FWT0lFIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDUsMywyODAwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzA0MDM3LDM4LjY1ODE4MiwtMTIxLjU0OTUyMQ04NjY0IE1BR05PTElBIEhJTEwgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMjMwOSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMxMTAwMCwzOC40NDIzNTIsLTEyMS4zODk2NzUNOTU3MCBIQVJWRVNUIFJPU0UgV0FZLFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNSwzLDIzNjcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzMTU1MzcsMzguNTU1OTkzLC0xMjEuMzQwMzUyDTQzNTkgQ1JFR0FOIENULFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDUsNCwzNTE2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzIwMDAwLDM4LjU0NTEyOCwtMTIxLjIyNDkyMg01MzM3IERVU1RZIFJPU0UgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzIwMDAwLDM4LjUyODU3NSwtMTIxLjIyODYNODkyOSBTVVRURVJTIEdPTEQgRFIsU0FDUkFNRU5UTyw5NTgyNixDQSw0LDMsMTkxNCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMyODM2MCwzOC41NTA4NDgsLTEyMS4zNzAyMjQNODAyNSBQRUVSTEVTUyBBVkUsT1JBTkdFVkFMRSw5NTY2MixDQSwyLDEsMTY5MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMzNDE1MCwzOC43MTE0NywtMTIxLjIxNjIxNA00NjIwIFdFTEVSQSBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMywyNzI1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzM1NzUwLDM4LjM5ODYwOSwtMTIxLjQ1MDE0OA05NzIzIFRFUlJBUElOIENULEVMSyBHUk9WRSw5NTc1NyxDQSw0LDMsMjM1NCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMzNTc1MCwzOC40MDM0OTIsLTEyMS40MzAyMjQNMjExNSBTTU9LRVNUQUNLIFdBWSxTQUNSQU1FTlRPLDk1ODMzLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzM5NTAwLDM4LjYwMjQxNiwtMTIxLjU0Mjk2NQ0xMDAgUkVCRUNDQSBXQVksRk9MU09NLDk1NjMwLENBLDMsMiwyMTg1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzQ0MjUwLDM4LjY4NDc5LC0xMjEuMTQ5MTk5DTk0ODggT0FLIFZJTExBR0UgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTgwMSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM0NjIxMCwzOC40MTMzMywtMTIxLjQwNDk5OQ04NDk1IERBUlRGT1JEIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywzLDE5NjEsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzNDcwMjksMzguNDQ4NTA3LC0xMjEuNDIxMzQ2DTY3MDggUE9OVEEgRE8gU09MIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNCwyLDMxMzQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzNDc2NTAsMzguMzgwNjM1LC0xMjEuNDI1NTM4DTQxNDMgU0VBIE1FQURPVyBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDMsMTkxNSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM1MTMwMCwzOC40NjUzNCwtMTIxLjQ1NzUxOQ0zMDIwIFJJQ0hBUkRTT04gQ0lSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSwzLDIsMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM1MjAwMCwzOC42OTEyOTksLTEyMS4wODE3NTINODA4MiBMSU5EQSBJU0xFIExOLFNBQ1JBTUVOVE8sOTU4MzEsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzNzAwMDAsMzguNDc3MiwtMTIxLjUyMTUNMTUzMDAgTVVSSUVUQSBTT1VUSCBQS1dZLFJBTkNITyBNVVJJRVRBLDk1NjgzLENBLDQsMywyNzM0LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzcwNTAwLDM4LjQ4NzQsLTEyMS4wNzUxMjkNMTEyMTUgU0hBUlJNT05UIENULFdJTFRPTiw5NTY5MyxDQSwzLDIsMjExMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM3MjAwMCwzOC4zNTA2MiwtMTIxLjIyODM0OQ03MTA1IERBTkJFUkcgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSw1LDMsMzE2NCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM3NTAwMCwzOC40MDE5LC0xMjEuNDIwMzg4DTU1NzkgSkVSUlkgTElURUxMIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDUsMywzNTk5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzgxMzAwLDM4LjY3NzEyNiwtMTIxLjUwMDUxOQ0xMDUwIEZPWEhBTEwgV0FZLFNBQ1JBTUVOVE8sOTU4MzEsQ0EsNCwyLDIwNTQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzODE5NDIsMzguNTA5ODE5LC0xMjEuNTE5NjYxDTc4MzcgQUJCSU5HVE9OIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSw0LDIsMTgzMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM4NzczMSwzOC43MDk4NzMsLTEyMS4zMzk0NzINMTMwMCBGIFNULFNBQ1JBTUVOVE8sOTU4MTQsQ0EsMywzLDE2MjcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzOTEwMDAsMzguNTgzNTUsLTEyMS40ODcyODkNNjgwMSBSQVdMRVkgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSw0LDMsMzQ0MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM5NDQ3MCwzOC40MDgzNTEsLTEyMS40MjM5MjUNMTY5MyBTSEVMVEVSIENPVkUgRFIsR1JFRU5XT09ELDk1NjM1LENBLDMsMiwyODQ2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzk1MDAwLDM4Ljk0NTM1NywtMTIwLjkwODgyMg05MzYxIFdBRERFTEwgTE4sRUxLIEdST1ZFLDk1NjI0LENBLDQsMywyMzU5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNDAwMTg2LDM4LjQ1MDgyOSwtMTIxLjM0OTkyOA0xMCBTRUEgRk9BTSBDVCxTQUNSQU1FTlRPLDk1ODMxLENBLDMsMywyMDUyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNDE1MDAwLDM4LjQ4Nzg4NSwtMTIxLjU0NTk0Nw02OTQ1IFJJTyBURUpPIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNSwzLDM0MzMsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0MjUwMDAsMzguMzg1NjM4LC0xMjEuNDIyNjE2DTQxODYgVFVMSVAgUEFSSyBXQVksUkFOQ0hPIENPUkRPVkEsOTU3NDIsQ0EsNSwzLDM2MTUsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0MzAwMDAsMzguNTUwNjE3LC0xMjEuMjM1MjYNOTI3OCBEQUlSWSBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0NDUwMDAsMzguNDIwMzM4LC0xMjEuMzYzNzU3DTIwNyBPUkFOR0UgQkxPU1NPTSBDSVIgVW5pdCBDLEZPTFNPTSw5NTYzMCxDQSw1LDMsMjY4NyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDQ2MDAwMCwzOC42NDYyNzMsLTEyMS4xNzUzMjINNjUwNyBSSU8gREUgT05BUiBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDQsMywyNzI0LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNDYxMDAwLDM4LjM4MjUzLC0xMjEuNDI4MDA3DTcwMDQgUkFXTEVZIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNCwzLDM0NDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0ODkzMzIsMzguNDA2NDIxLC0xMjEuNDIyMDgxDTY1MDMgUklPIERFIE9OQVIgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSw1LDQsMzUwOCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDUxMDAwMCwzOC4zODI1MywtMTIxLjQyODAzOA0yMjE3IEFQUEFMT09TQSBDVCxGT0xTT00sOTU2MzAsQ0EsNCwyLDI0NjIsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw1MzkwMDAsMzguNjU1MTY3LC0xMjEuMDkwMTc4DTg2OCBISUxERUJSQU5EIENJUixGT0xTT00sOTU2MzAsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw1ODUwMDAsMzguNjcwOTQ3LC0xMjEuMDk3NzI3DTYwMzAgUEFMRVJNTyBXQVksRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4LjY3Mjc2MSwtMTIxLjA1MDM3OA00MDcwIFJFRE9ORE8gRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjA2MjM4LDM4LjY2NjgwNywtMTIxLjA2NDgzDTQwMDQgQ1JFU1RBIFdBWSxTQUNSQU1FTlRPLDk1ODY0LENBLDMsMywyMzI1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjYwMDAwLDM4LjU5MTYxOCwtMTIxLjM3MDYyNg0zMTUgSlVNRUwgQ1QsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDYsNSwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsODMwMDAwLDM4LjY2OTkzMSwtMTIxLjA1OTU4DTYyNzIgTE9OR0ZPUkQgRFIgVW5pdCAxLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDIsMSw3OTUsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2OTAwMCwzOC42ODA5MjMsLTEyMS4zMTM5NDUNMzQzMiBZIFNULFNBQ1JBTUVOVE8sOTU4MTcsQ0EsNCwyLDEwOTksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw3MDAwMCwzOC41NTQ5NjcsLTEyMS40NjgwNDYNOTUxMiBFTUVSQUxEIFBBUksgRFIgVW5pdCAzLEVMSyBHUk9WRSw5NTYyNCxDQSwyLDEsODQwLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNzEwMDAsMzguNDA1NzMsLTEyMS4zNjk4MzINMzEzMiBDTEFZIFNULFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDgwMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDc4MDAwLDM4LjYyNDY3OCwtMTIxLjQzOTIwMw01MjIxIDM4VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjQsQ0EsMiwxLDc0NixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDc4NDAwLDM4LjUxODA0NCwtMTIxLjQ0MzU1NQ02MTEyIEhFUk1PU0EgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDEsMTA2NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDgwMDAwLDM4LjUxNTEyNSwtMTIxLjQ4MDQxNg00ODMgQVJDQURFIEJMVkQsU0FDUkFNRU5UTyw5NTgxNSxDQSw0LDIsMTMxNixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDg5MDAwLDM4LjYyMzU3MSwtMTIxLjQ1NDg4NA02NzEgU09OT01BIEFWRSxTQUNSQU1FTlRPLDk1ODE1LENBLDMsMSwxMzM3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsOTAwMDAsMzguNjIyOTUzLC0xMjEuNDUwMTQyDTU5ODAgNzlUSCBTVCxTQUNSQU1FTlRPLDk1ODI0LENBLDIsMSw4NjgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5MDAwMCwzOC41MTgzNzMsLTEyMS40MTE3NzkNNzYwNyBFTERFUiBDUkVFSyBSRCxTQUNSQU1FTlRPLDk1ODI0LENBLDMsMSw5MjQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5MjAwMCwzOC41MTA1NSwtMTIxLjQxNDc2OA01MDI4IDE0VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDYxMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDkzNjc1LDM4LjUzOTQyLC0xMjEuNDQ2ODk0DTE0Nzg4IE5BVENIRVogQ1QsUkFOQ0hPIE1VUklFVEEsOTU2ODMsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5Nzc1MCwzOC40OTIyODcsLTEyMS4xMDAwMzINMTA2OSBBQ0FDSUEgQVZFLFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDEyMjAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5ODAwMCwzOC42MjE5OTgsLTEyMS40NDIyMzgNNTIwMSBMQUdVTkEgT0FLUyBEUiBVbml0IDE5OSxFTEsgR1JPVkUsOTU3NTgsQ0EsMSwxLDcyMixDb25kbyxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDk4MDAwLDM4LjQyMzI1MSwtMTIxLjQ0NDQ4OQ0zODQ3IExBUyBQQVNBUyBXQVksU0FDUkFNRU5UTyw5NTg2NCxDQSwzLDEsMTY0MyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDk5MDAwLDM4LjU4ODY3MiwtMTIxLjM3MzkxNg01MjAxIExBR1VOQSBPQUtTIERSIFVuaXQgMTcyLEVMSyBHUk9WRSw5NTc1OCxDQSwxLDEsNzIyLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTAwMDAwLDM4LjQyMzI1MSwtMTIxLjQ0NDQ4OQ0xMTIxIENSRUVLU0lERSBXQVksR0FMVCw5NTYzMixDQSwzLDEsMTA4MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEwNjcxNiwzOC4yNDE1MTQsLTEyMS4zMTIxOTkNNTMwNyBDQUJSSUxMTyBXQVksU0FDUkFNRU5UTyw5NTgyMCxDQSwzLDEsMTAzOSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDExMTAwMCwzOC41MjcxMiwtMTIxLjQzNTM0OA0zNzI1IERPTiBKVUxJTyBCTFZELE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDEsMTA1MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDExMTAwMCwzOC42Nzg5NSwtMTIxLjM3OTQwNg00ODAzIE1DQ0xPVUQgRFIsU0FDUkFNRU5UTyw5NTg0MixDQSwyLDIsOTY3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTE0ODAwLDM4LjY4MjI3OSwtMTIxLjM1MjgxNw0xMDU0MiBTSUxWRVJXT09EIFdBWSxSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSwzLDEsMTA5OCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEyMDEwOCwzOC41ODcxNTYsLTEyMS4yOTU3NzgNNjMxOCAzOVRIIEFWRSxTQUNSQU1FTlRPLDk1ODI0LENBLDMsMSwxMDUwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTIzMjI1LDM4LjUxODk0MiwtMTIxLjQzMDE1OA0yMTEgTUNEQU5JRUwgQ0lSLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDExMTAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMjM3NTAsMzguNjM2NTY1LC0xMjEuNDYwMzgzDTM4MDAgTFlOSFVSU1QgV0FZLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDEsODg4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTI1MDAwLDM4LjY1MDQ0NSwtMTIxLjM3NDg2MQ02MTM5IEhFUk1PU0EgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTEyMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEyNTAwMCwzOC41MTQ2NjUsLTEyMS40ODA0MTENMjUwNSBSSElORSBXQVksRUxWRVJUQSw5NTYyNixDQSwzLDIsMTA4MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEyNjAwMCwzOC43MTc5NzYsLTEyMS40MDc2ODQNMzY5MiBQQVlORSBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMSw5NTcsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMjkwMDAsMzguNjY2NTQsLTEyMS4zNzgyOTgNNjA0IE1PUlJJU09OIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDIsMSw5NTIsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMzQwMDAsMzguNjM3Njc4LC0xMjEuNDUyNDc2DTY0OCBTQU5UQSBBTkEgQVZFLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDEyMTEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMzUwMDAsMzguNjU4NDc4LC0xMjEuNDUwNDA5DTE0IEFTSExFWSBPQUtTIENULFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMywyLDEyNjQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMzU1MDAsMzguNjE3NzksLTEyMS40MzY3NjUNMzE3NCBOT1JUSFZJRVcgRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSwzLDEsMTA4MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0MDAwMCwzOC42MjM4MTcsLTEyMS40Nzc4MjcNODQwIFRSQU5RVUlMIExOLEdBTFQsOTU2MzIsQ0EsMywyLDEyNjYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNDAwMDAsMzguMjcwNjE3LC0xMjEuMjk5MjA1DTUzMzMgUFJJTVJPU0UgRFIgVW5pdCAxOUEsRkFJUiBPQUtTLDk1NjI4LENBLDIsMiw5OTQsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNDI1MDAsMzguNjYyNzg1LC0xMjEuMjc2MjcyDTEwMzUgTUlMTEVUIFdBWSxTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxMjAyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTQzNTAwLDM4LjYzMTA1NiwtMTIxLjQ4NTA4DTUyMDEgTEFHVU5BIE9BS1MgRFIgVW5pdCAxMjYsRUxLIEdST1ZFLDk1NzU4LENBLDAsMCwwLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTQ1MDAwLDM4LjQyMzI1MSwtMTIxLjQ0NDQ4OQ0zMzI4IDIyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDcyMixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0NTAwMCwzOC41MzI3MjcsLTEyMS40NzA3ODMNODAwMSBIQVJUV0lDSyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSw0LDIsMTQ0OCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0NTAwMCwzOC40ODg2MjMsLTEyMS40MTA1ODINNzgxMiBIQVJUV0lDSyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTE4OCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0NTAwMCwzOC40ODg2MTEsLTEyMS40MTI4MDgNNDIwNyBQQUlOVEVSIFdBWSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsNCwyLDExODMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNDYwMDAsMzguNjkyOTE1LC0xMjEuMzY3NDk3DTc0NTggV0lOS0xFWSBXQVksU0FDUkFNRU5UTyw5NTgyMixDQSwzLDEsMTMyMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0ODUwMCwzOC40ODc0NDQsLTEyMS40OTEzNjYNODM1NCBTVU5SSVNFIFdPT0RTIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMTE3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTQ5MDAwLDM4LjQ3MzI4OCwtMTIxLjM5NjMNODExNiBDT1RUT05NSUxMIENJUixTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMzY0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTUwMDAwLDM4LjQ4Mjg3NiwtMTIxLjQwNTkxMg00NjYwIENFREFSV09PRCBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTMxMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE1MDAwMCwzOC40ODQ4MzQsLTEyMS40NDkzMTYNOTI1NCBIQVJST0dBVEUgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSwyLDIsMTAwNixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE1MjAwMCwzOC40MjAxMzgsLTEyMS40MTIxNzkNNjcxNiBUQVJFWVRPTiBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywyLDExMDQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTYwMDAsMzguNjkzNzI0LC0xMjEuMzA3MTY5DTIwMjggUk9CRVJUIFdBWSxTQUNSQU1FTlRPLDk1ODI1LENBLDIsMSw4MTAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTYwMDAsMzguNjA5OTgyLC0xMjEuNDE5MjYzDTkzNDYgQUlaRU5CRVJHIENJUixFTEsgR1JPVkUsOTU2MjQsQ0EsMiwyLDExMjMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTYwMDAsMzguNDE4NzUsLTEyMS4zNzAwMTkNNDUyNCBMT0NIIEhBVkVOIFdBWSxTQUNSQU1FTlRPLDk1ODQyLENBLDIsMSw5MDQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTc3ODgsMzguNjcyNzMsLTEyMS4zNTk2NDUNNzE0MCBCTFVFIFNQUklOR1MgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMTU2LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTYxNjUzLDM4LjcyMDY1MywtMTIxLjMwMjI0MQ00NjMxIDExVEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDEzMjEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNjE4MjksMzguNTQxOTY1LC0xMjEuNDUyMTMyDTMyMjggQkFHR0FOIENULEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMzkyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTY1MDAwLDM4LjcxNTM0NiwtMTIxLjM4ODE2Mw04NTE1IERBUlRGT1JEIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MzksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNjgwMDAsMzguNDQ4Mjg4LC0xMjEuNDIwNzE5DTQ1MDAgVElQUFdPT0QgV0FZLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywyLDExNTksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNjkwMDAsMzguNjk5NTEsLTEyMS4zNTk5ODkNMjQ2MCBFTCBST0NDTyBXQVksUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywyLDE2NzEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNzUwMDAsMzguNTkxNDc3LC0xMjEuMzE1MzQNODI0NCBTVU5CSVJEIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxNzQwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTc2MjUwLDM4LjQ1NzY1NCwtMTIxLjQzMTM4MQ01ODQxIFZBTExFWSBWQUxFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMjY1LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTc5MDAwLDM4LjQ2MTI4MywtMTIxLjQzNDMyMg03ODYzIENSRVNUTEVJR0ggQ1QsQU5URUxPUEUsOTU4NDMsQ0EsMiwyLDEwMDcsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNzEwODg5LC0xMjEuMzU4ODc2DTcxMjkgU1BSSU5HTU9OVCBEUixFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE3MTYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxODA0MDAsMzguNDE3NjQ5LC0xMjEuNDIwMjk0DTgyODQgUkVEIEZPWCBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwxNjg1LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTgyMDAwLDM4LjQxNzE4MiwtMTIxLjM5NzIzMQ0yMjE5IEVMIENBTlRPIENJUixSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw0LDIsMTgyOSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE4NDUwMCwzOC41OTIzODMsLTEyMS4zMTg2NjkNODkwNyBHRU1XT09EIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE1NTUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxODUwMDAsMzguNDM1NDcxLC0xMjEuNDQxMTczDTU5MjUgTUFMRVZJTExFIEFWRSxDQVJNSUNIQUVMLDk1NjA4LENBLDQsMiwxMTIwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTg5MDAwLDM4LjY2NjU2NCwtMTIxLjMyNTcxNw03MDMxIENBTkVWQUxMRVkgQ0lSLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMTM3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTk0MDAwLDM4LjcxODY5MywtMTIxLjMwMzYxOQ0zOTQ5IFdJTERST1NFIFdBWSxTQUNSQU1FTlRPLDk1ODI2LENBLDMsMSwxMTc0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTk1MDAwLDM4LjU0MzY5NywtMTIxLjM2NjY4Mw00NDM3IE1JVENIVU0gQ1QsQU5URUxPUEUsOTU4NDMsQ0EsMywyLDEzOTMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNzA0NDA3LC0xMjEuMzYxMTMNMjc3OCBLQVdFQUggQ1QsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDMsMSwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjAxMDAwLDM4LjY5NDA1MiwtMTIwLjk5NTU4OQ0xNjM2IEFMTEVOV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSw0LDIsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwMjUwMCwzOC44NzkxOTIsLTEyMS4zMDk0NzcNODE1MSBRVUFJTCBSSURHRSBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjg5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjA1MDAwLDM4LjQ2MTI5NiwtMTIxLjM5MDg1OA00ODk5IFdJTkQgQ1JFRUsgRFIsU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTc5OSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwNTAwMCwzOC42NTU4ODcsLTEyMS40NDYxMTkNMjM3MCBCSUcgQ0FOWU9OIENSRUVLIFJELFBMQUNFUlZJTExFLDk1NjY3LENBLDMsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjA1MDAwLDM4Ljc0NDU4LC0xMjAuNzk0MjU0DTYwNDkgSEFNQlVSRyBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDMsMTk1MyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwNTAwMCwzOC40NDMyNTMsLTEyMS40MzE5OTINNDIzMiA3MVNUIFNULFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDcyMyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwNzAwMCwzOC41MzY3NDEsLTEyMS40MjExNQ0zMzYxIEJPVyBNQVIgQ1QsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDIsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjEwMDAwLDM4LjY5NDM3LC0xMjAuOTk2NjAyDTE4ODkgQ09MRCBTUFJJTkdTIFJELFBMQUNFUlZJTExFLDk1NjY3LENBLDIsMSw5NDgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMTE1MDAsMzguNzM5Nzc0LC0xMjAuODYwMjQzDTU4MDUgSElNQUxBWUEgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDQsMiwxNTc4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjY5NjQ4OSwtMTIxLjMyODU1NQ03OTQ0IFNZTFZBTiBPQUsgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjEwLENBLDMsMiwxMzE3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjcxMDM4OCwtMTIxLjI2MTA5Ng0zMTM5IFNQT09OV09PRCBXQVkgVW5pdCAxLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMTU1MDAsMzguNjI2NTgyLC0xMjEuNTIxNTENNjIxNyBMRU9MQSBXQVksU0FDUkFNRU5UTyw5NTgyNCxDQSwzLDEsMTM2MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIyMjM4MSwzOC41MTMwNjYsLTEyMS40NTE5MDkNMjM0MCBIVVJMRVkgV0FZLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMCwwLDAsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMjUwMDAsMzguNTg4ODE2LC0xMjEuNDA4NTQ5DTMwMzUgQlJVTk5FVCBMTixTQUNSQU1FTlRPLDk1ODMzLENBLDMsMiwxNTIyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjYyNDc2MiwtMTIxLjUyMjc3NQ0zMDI1IEVMIFBSQURPIFdBWSxTQUNSQU1FTlRPLDk1ODI1LENBLDQsMiwxNzUxLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjYwNjYwMywtMTIxLjM5NDE0Nw05Mzg3IEdSQU5JVEUgRkFMTFMgQ1QsRUxLIEdST1ZFLDk1NjI0LENBLDMsMiwxNDY1LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjQxOTIxNCwtMTIxLjM0ODUzMw05MjU3IENBTERFUkEgV0FZLFNBQ1JBTUVOVE8sOTU4MjYsQ0EsNCwyLDE2MDUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMjgwMDAsMzguNTU4MjEsLTEyMS4zNTUwMjINNDQxIEFSTElOR0RBTEUgQ0lSLFJJTyBMSU5EQSw5NTY3MyxDQSw0LDIsMTQ3NSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIyOTY2NSwzOC43MDI4OTMsLTEyMS40NTQ5NDkNMjI4NCBMT1MgUk9CTEVTIFJELE1FQURPVyBWSVNUQSw5NTcyMixDQSwzLDEsMTIxNixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIzMDAwMCwzOS4wMDgxNTksLTEyMS4wMzYyMw04MTY0IENIRU5JTiBCTEFOQyBMTixGQUlSIE9BS1MsOTU2MjgsQ0EsMiwyLDEzMTUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMzAwMDAsMzguNjY1NjQ0LC0xMjEuMjU5OTY5DTQ2MjAgQ0hBTUJFUkxJTiBDSVIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxNTY3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjMwMDAwLDM4LjM5MDU1NywtMTIxLjQ0OTgwNQ01MzQwIEJJUksgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE3NzYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMzQwMDAsMzguNjcyNDk1LC0xMjEuNTE1MjUxDTUxIEFOSk9VIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDMsMiwyMTg3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjM1MDAwLDM4LjY2MTY1OCwtMTIxLjU0MDYzMw0yMTI1IDIyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDEyOTEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMzYyNTAsMzguNTM0NTk2LC0xMjEuNDkzMTIxDTYxMSBCTE9TU09NIFJPQ0sgTE4sRk9MU09NLDk1NjMwLENBLDAsMCwwLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjQwMDAwLDM4LjY0NTcsLTEyMS4xMTk3DTg4MzAgQURVUiBSRCxFTEsgR1JPVkUsOTU2MjQsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNDIwMDAsMzguNDM3NDIsLTEyMS4zNzI4NzYNNzM0NCBCVVRURVJCQUxMIFdBWSxTQUNSQU1FTlRPLDk1ODQyLENBLDMsMiwxNTAzLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjQ1MDAwLDM4LjY5OTQ4OSwtMTIxLjM2MTgyOA04MjE5IEdXSU5IVVJTVCBDSVIsU0FDUkFNRU5UTyw5NTgyOCxDQSw0LDMsMjQ5MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI0NTAwMCwzOC40NTk3MTEsLTEyMS4zODQyODMNMzI0MCBTIFNULFNBQ1JBTUVOVE8sOTU4MTYsQ0EsMiwxLDEyNjksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNDUwMDAsMzguNTYyMjk2LC0xMjEuNDY3NDg5DTIyMSBQSUNBU1NPIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDAsMCwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjUwMDAwLDM4LjY3NjY1OCwtMTIxLjUyODEyOA01NzA2IEdSRUVOQUNSRVMgV0FZLE9SQU5HRVZBTEUsOTU2NjIsQ0EsMywyLDExNzYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTAwMDAsMzguNjY5ODgyLC0xMjEuMjEzNTMzDTY5MDAgTE9OSUNFUkEgRFIsT1JBTkdFVkFMRSw5NTY2MixDQSw0LDIsMTQ1NixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI1MDAwMCwzOC42OTIxOTksLTEyMS4yNTA5NzUNNDE5IERBV05SSURHRSBSRCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDE0OTgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTAwMDAsMzguNzI1MjgzLC0xMjEuMjk3OTUzDTUzMTIgTUFSQlVSWSBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDE1NzQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTUwMDAsMzguNzEwMjIxLC0xMjEuMzQxNjUxDTYzNDQgQk9OSEFNIENJUixDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSw1LDQsMjA4NSxNdWx0aS1GYW1pbHksVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTYwNTQsMzguNjgyMzU4LC0xMjEuMjcyODc2DTgyMDcgWU9SS1RPTiBXQVksU0FDUkFNRU5UTyw5NTgyOSxDQSwzLDIsMjE3MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI1NzcyOSwzOC40NTk2NywtMTIxLjM2MDQ2MQ03OTIyIE1BTlNFTEwgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTU5NSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI2MDAwMCwzOC40MDk2MzQsLTEyMS40MTA3ODcNNTcxMiBNRUxCVVJZIENJUixBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTU2NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI2MTAwMCwzOC43MDU4NDksLTEyMS4zMzQ3MDENNjMyIE5FV0JSSURHRSBMTixMSU5DT0xOLDk1NjQ4LENBLDQsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjYxODAwLDM4Ljg3OTA4NCwtMTIxLjI5ODU4Ng0xNTcwIEdMSURERU4gQVZFLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsNCwyLDEyNTMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNjQ0NjksMzguNDgyNzA0LC0xMjEuNTAwNDMzDTgxMDggRklMSUZFUkEgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDQsMywxNzY4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjY1MDAwLDM4LjcxNzA0MiwtMTIxLjM1NDY4DTIzMCBCQU5LU0lERSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC42NzY5MzcsLTEyMS41MjkyNDQNNTM0MiBDQUxBQlJJQSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDMsMjAzMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC42NzE4MDcsLTEyMS40OTgyNzQNNDcgTkFQT05FRSBDVCxTQUNSQU1FTlRPLDk1ODM1LENBLDMsMiwxNTMxLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjcwMDAwLDM4LjY2NTcwNCwtMTIxLjUyOTA5Ng00MjM2IEFEUklBVElDIFNFQSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC42NDc5NjEsLTEyMS41NDMxNjINODg2NCBSRU1CUkFOVCBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsNCwzLDE2NTMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNzUwMDAsMzguNDM1Mjg4LC0xMjEuMzc1NzAzDTk0NTUgU0VBIENMSUZGIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDIwNTYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNzUwMDAsMzguNDExNTIyLC0xMjEuNDgxNDA2DTk3MjAgTElUVExFIEhBUkJPUiBXQVksRUxLIEdST1ZFLDk1NjI0LENBLDQsMywyNDk0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjgwMDAwLDM4LjQwNDkzNCwtMTIxLjM1MjQwNQ04ODA2IFBIT0VOSVggQVZFLEZBSVIgT0FLUyw5NTYyOCxDQSwzLDIsMTQ1MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI4NjAxMywzOC42NjAzMjIsLTEyMS4yMzAxMDENMzU3OCBMT0dHRVJIRUFEIFdBWSxTQUNSQU1FTlRPLDk1ODM0LENBLDQsMiwyMTY5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjkyMDAwLDM4LjYzMzAyOCwtMTIxLjUyNjc1NQ0xNDE2IExPQ0tIQVJUIFdBWSxST1NFVklMTEUsOTU3NDcsQ0EsMywyLDE0NDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTIwMDAsMzguNzUyMzk5LC0xMjEuMzMwMzI4DTU0MTMgQlVFTkEgVkVOVFVSQSBXQVksRkFJUiBPQUtTLDk1NjI4LENBLDMsMiwxNTI3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjkzOTkzLDM4LjY2NDU1MiwtMTIxLjI1NTkzNw0zNyBXSElURSBCSVJDSCBDVCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDE0MDEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTQwMDAsMzguNzc2MzI3LC0xMjEuMjg0NTE0DTQwNSBNQVJMSU4gU1BJS0UgV0FZLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDE0MTEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTY3NjksMzguNjU3ODMsLTEyMS40NTY4NDINMTEwMiBDSEVTTEVZIExOLExJTkNPTE4sOTU2NDgsQ0EsNCw0LDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTc1MDAsMzguODY0ODY0LC0xMjEuMzEzOTg4DTExMjgxIFNUQU5GT1JEIENPVVJUIExOIFVuaXQgNjA0LEdPTEQgUklWRVIsOTU2NzAsQ0EsMCwwLDAsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMDAwMDAsMzguNjI1Mjg5LC0xMjEuMjYwMjg2DTczMjAgNlRIIFNULFJJTyBMSU5EQSw5NTY3MyxDQSwzLDEsMTI4NCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMwMDAwMCwzOC43MDA1NTMsLTEyMS40NTIyMjMNOTkzIE1BTlRPTiBDVCxHQUxULDk1NjMyLENBLDQsMywyMzA3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjI3Mjk0MiwtMTIxLjI4OTE0OA00NDg3IFBBTk9SQU1BIERSLFBMQUNFUlZJTExFLDk1NjY3LENBLDMsMiwxMzI5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjY5NDU1OSwtMTIwLjg0ODE1Nw01NjUxIE9WRVJMRUFGIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwxOTEwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzAwNTAwLDM4LjY3NzQ1NCwtMTIxLjQ5NDc5MQ0yMDE1IFBST01PTlRPUlkgUE9JTlQgTE4sR09MRCBSSVZFUiw5NTY3MCxDQSwzLDIsMTk4MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMwNTAwMCwzOC42Mjg3MzIsLTEyMS4yNjExNDkNMzIyNCBQQVJLSEFNIERSLFJPU0VWSUxMRSw5NTc0NyxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMwNjUwMCwzOC43NzI3NzEsLTEyMS4zNjQ4NzcNMTUgVkFORVNTQSBQTCxTQUNSQU1FTlRPLDk1ODM1LENBLDAsMCwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzEyNTAwLDM4LjY2ODY5MiwtMTIxLjU0NTQ5DTEzMTIgUkVOSVNPTiBMTixMSU5DT0xOLDk1NjQ4LENBLDUsMywwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4Ljg2NjQwOSwtMTIxLjMwODQ4NQ04IFJJVkVSIFJBRlQgQ1QsU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMjIwNSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMxOTc4OSwzOC40NDczNTMsLTEyMS40MzQ5NjkNMjI1MSBMQU1QTElHSFQgTE4sTElOQ09MTiw5NTY0OCxDQSwyLDIsMTQ0OSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMzMDAwMCwzOC44NDk5MjQsLTEyMS4yNzU3MjkNMTA2IEZBUkhBTSBEUixGT0xTT00sOTU2MzAsQ0EsMywyLDEyNTgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzAwMDAsMzguNjY3ODM0LC0xMjEuMTY4NTc4DTU0MDUgTkVDVEFSIENJUixFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDI1NzUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzEwMDAsMzguMzg3MDE0LC0xMjEuNDQwOTY3DTU0MTEgMTBUSCBBVkUsU0FDUkFNRU5UTyw5NTgyMCxDQSwyLDEsNTM5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzM0MDAwLDM4LjU0MjcyNywtMTIxLjQ0MjQ0OQ0zNTEyIFJBSU5TT05HIENJUixSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw0LDMsMjIwOCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMzNjAwMCwzOC41NzM0ODgsLTEyMS4yODI4MDkNMTEwNiA1NVRIIFNULFNBQ1JBTUVOVE8sOTU4MTksQ0EsMywxLDExMDgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzkwMDAsMzguNTYzODA1LC0xMjEuNDM2Mzk1DTQxMSBJTExTTEVZIFdBWSxGT0xTT00sOTU2MzAsQ0EsNCwyLDE1OTUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzkwMDAsMzguNjUyMDAyLC0xMjEuMTI5NTA0DTc5NiBCVVRURVJDVVAgQ0lSLEdBTFQsOTU2MzIsQ0EsNCwyLDIxNTksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzNDUwMDAsMzguMjc5NTgxLC0xMjEuMzAwODI4DTEyMzAgU0FORFJBIENJUixQTEFDRVJWSUxMRSw5NTY2NyxDQSw0LDMsMjI5NSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDM1MDAwMCwzOC43MzgxNDEsLTEyMC43ODQxNDUNMzE4IEFOQUNBUEEgRFIsUk9TRVZJTExFLDk1Njc4LENBLDMsMiwxODM4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzU2MDAwLDM4Ljc4MjA5NCwtMTIxLjI5NzEzMw0zOTc1IFNISU5JTkcgU1RBUiBEUixTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxOTAwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzYxNzQ1LDM4LjQ4NzQwOSwtMTIxLjQ2MTQxMw0xNjIwIEJBU0xFUiBTVCxTQUNSQU1FTlRPLDk1ODExLENBLDQsMiwxNzE4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzYxOTQ4LDM4LjU5MTgyMiwtMTIxLjQ3ODY0NA05Njg4IE5BVFVSRSBUUkFJTCBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDUsMywzMzg5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzcwMDAwLDM4LjQwNTIyNCwtMTIxLjQ3OTI3NQ01OTI0IFRBTlVTIENJUixST0NLTElOLDk1Njc3LENBLDQsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzgwMDAwLDM4Ljc3ODY5MSwtMTIxLjIwNDI5Mg05NjI5IENFREFSIE9BSyBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDUsNCwzMjYwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzg1MDAwLDM4LjQwNTUyNywtMTIxLjQzMTc0Ng0zNDI5IEZFUk5CUk9PSyBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsMywyLDIwMTYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzOTkwMDAsMzguNjY0MjI1LC0xMjEuMDA3MTczDTIxMjEgSEFOTkFIIFdBWSxST0NLTElOLDk1NzY1LENBLDQsMiwyNjA3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDAyMDAwLDM4LjgwNTc0OSwtMTIxLjI4MDkzMQ0xMDEwNCBBTk5JRSBTVCxFTEsgR1JPVkUsOTU3NTcsQ0EsNCwzLDI3MjQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0MDYwMjYsMzguMzkwNDY1LC0xMjEuNDQzNDc5DTEwOTIgTUFVR0hBTSBDVCxHQUxULDk1NjMyLENBLDUsNCwzNzQ2LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDIwMDAwLDM4LjI3MTY0NiwtMTIxLjI4Njg0OA01NDA0IEFMTU9ORCBGQUxMUyBXQVksUkFOQ0hPIENPUkRPVkEsOTU3NDIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0MjUwMDAsMzguNTI3NTAyLC0xMjEuMjMzNDkyDTYzMDYgQ09ORUpPLFJBTkNITyBNVVJJRVRBLDk1NjgzLENBLDQsMiwzMTkyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDI1MDAwLDM4LjUxMjYwMiwtMTIxLjA4NzIzMw0xNCBDQVNBIFZBVE9OSSBQTCxTQUNSQU1FTlRPLDk1ODM0LENBLDAsMCwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDMzNTAwLDM4LjY1MDIyMSwtMTIxLjU1MTcwNA0xNDU2IEVBR0xFU0ZJRUxEIExOLExJTkNPTE4sOTU2NDgsQ0EsNCwzLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0MzY3NDYsMzguODU3NjM1LC0xMjEuMzExMzc1DTQxMDAgQk9USFdFTEwgQ0lSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw1LDMsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQzODcwMCwzOC42NzkxMzYsLTEyMS4wMzQzMjkNNDI3IDIxU1QgU1QsU0FDUkFNRU5UTyw5NTgxMSxDQSwyLDEsMTI0NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ0NTAwMCwzOC41ODI2MDQsLTEyMS40NzU3Ng0xMDQ0IEdBTFNUT04gRFIsRk9MU09NLDk1NjMwLENBLDQsMiwyNTgxLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDUwMDAwLDM4LjY3NjMwNiwtMTIxLjA5OTU0DTQ0NDAgU1lDQU1PUkUgQVZFLFNBQ1JBTUVOVE8sOTU4NDEsQ0EsMywxLDIwNjgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0NjAwMDAsMzguNjQ2Mzc0LC0xMjEuMzUzNjU4DTEwMzIgU09VWkEgRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDMsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDYwMDAwLDM4LjY2ODIzOSwtMTIxLjA2NDQzNw05NzYwIExBWlVMSVRFIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDMsMzk5MixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ2MDAwMCwzOC40MDM2MDksLTEyMS4zMzU1NDENMjQxIExBTkZSQU5DTyBDSVIsU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDQsMzM5NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ2NTAwMCwzOC42NjU2OTYsLTEyMS41NDk0MzcNNTU1OSBOT1JUSEJPUk9VR0ggRFIsU0FDUkFNRU5UTyw5NTgzNSxDQSw1LDMsMzg4MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ3MTc1MCwzOC42NzcyMjUsLTEyMS41MTk2ODcNMjEyNSBCSUcgU0tZIERSLFJPQ0tMSU4sOTU3NjUsQ0EsNSwzLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0ODAwMDAsMzguODAxNjM3LC0xMjEuMjc4Nzk4DTIxMDkgSEFNTEVUIFBMLENBUk1JQ0hBRUwsOTU2MDgsQ0EsMiwyLDE1OTgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0ODQwMDAsMzguNjAyNzU0LC0xMjEuMzI5MzI2DTk5NzAgU1RBVEUgSElHSFdBWSAxOTMsUExBQ0VSVklMTEUsOTU2NjcsQ0EsNCwzLDE5MjksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0ODUwMDAsMzguNzg3ODc3LC0xMjAuODE2Njc2DTI5MDEgUElOVEFJTCBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDQsMywzMDcwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDk1MDAwLDM4LjM5ODQ4OCwtMTIxLjQ3MzQyNA0yMDEgRklSRVNUT05FIERSLFJPU0VWSUxMRSw5NTY3OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDUwMDUwMCwzOC43NzAxNTMsLTEyMS4zMDAwMzkNMTc0MCBISUdIIFNULEFVQlVSTiw5NTYwMyxDQSwzLDMsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDUwNDAwMCwzOC44OTE5MzUsLTEyMS4wODQzNA0yNzMzIERBTkEgTE9PUCxFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw1NDEwMDAsMzguNjI4NDU5LC0xMjEuMDU1MDc4DTk3NDEgU0FERExFQlJFRCBDVCxXSUxUT04sOTU2OTMsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw1NjAwMDAsMzguNDA4ODQxLC0xMjEuMTk4MDM5DTc3NTYgVElHRVJXT09EUyBEUixTQUNSQU1FTlRPLDk1ODI5LENBLDUsMywzOTg0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNTcyNTAwLDM4LjQ3NjQzLC0xMjEuMzA5MjQzDTU3MDkgUklWRVIgT0FLIFdBWSxDQVJNSUNIQUVMLDk1NjA4LENBLDQsMiwyMjIyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNTgyMDAwLDM4LjYwMjQ2MSwtMTIxLjMzMDk3OQ0yOTgxIFdSSU5HRVIgRFIsUk9TRVZJTExFLDk1NjYxLENBLDQsMywzODM4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNjEzNDAxLDM4LjczNTM3MywtMTIxLjIyNzA3Mg04NjE2IFJPQ0tQT1JURSBDVCxST1NFVklMTEUsOTU3NDcsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2MTQwMDAsMzguNzQyMTE4LC0xMjEuMzU5OTA5DTQxMjggSElMTCBTVCxGQUlSIE9BS1MsOTU2MjgsQ0EsNSw1LDI4NDYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2ODAwMDAsMzguNjQxNjcsLTEyMS4yNjIwOTkNMTQwOSA0N1RIIFNULFNBQ1JBTUVOVE8sOTU4MTksQ0EsNSwyLDI0ODQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2OTkwMDAsMzguNTYzMjQ0LC0xMjEuNDQ2ODc2DTM5MzUgRUwgTU9OVEUgRFIsTE9PTUlTLDk1NjUwLENBLDQsNCwxNjI0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsODM5MDAwLDM4LjgxMzMzNywtMTIxLjEzMzM0OA01ODQwIFdBTEVSR0EgUkQsU0FDUkFNRU5UTyw5NTg0MixDQSwyLDEsODQwLENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDAwMDAsMzguNjczNjc4LC0xMjEuMzU3NDcxDTkyMyBGVUxUT04gQVZFLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMSwxLDQ4NCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4MDAwLDM4LjU4MjI3OSwtMTIxLjQwMTQ4Mg0yNjEgUkVET05ETyBBVkUsU0FDUkFNRU5UTyw5NTgxNSxDQSwzLDEsOTcwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjE1MDAsMzguNjIwNjg1LC0xMjEuNDYwNTM5DTQwMzAgQlJPQURXQVksU0FDUkFNRU5UTyw5NTgxNyxDQSwyLDEsNjIzLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjIwNTAsMzguNTQ2Nzk4LC0xMjEuNDYwMDM4DTM2NjAgMjJORCBBVkUsU0FDUkFNRU5UTyw5NTgyMCxDQSwyLDEsOTMyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjUwMDAsMzguNTMyNzE4LC0xMjEuNDY3NDcNMzkyNCBISUdIIFNULFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMiwxLDc5NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY1MDAwLDM4LjYzODc5NywtMTIxLjQzNTA0OQ00NzM0IDE0VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDgzNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY4MDAwLDM4LjUzOTQ0NywtMTIxLjQ1MDg1OA00NzM0IDE0VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDgzNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY4MDAwLDM4LjUzOTQ0NywtMTIxLjQ1MDg1OA01MDUwIFJIT0RFIElTTEFORCBEUiBVbml0IDQsU0FDUkFNRU5UTyw5NTg0MSxDQSwyLDEsOTI0LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNzcwMDAsMzguNjU4NzM5LC0xMjEuMzMzNTYxDTQ1MTMgR1JFRU5IT0xNRSBEUixTQUNSQU1FTlRPLDk1ODQyLENBLDIsMSw3OTUsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw4MjczMiwzOC42NjkxMDQsLTEyMS4zNTkwMDgNMzg0NSBFTE0gU1QsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDEsMTI1MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDg0MDAwLDM4LjYzNzMzNywtMTIxLjQzMjgzNQ0zOTA4IDE3VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDk4NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDg0Njc1LDM4LjUzNzI4LC0xMjEuNDYzNTMxDTcxMDkgQ0hBTkRMRVIgRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDEsMTAxMyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDg1MDAwLDM4LjQ5NzIzNywtMTIxLjQyNDE4Nw03NTQxIFNLRUxUT04gV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDEwMTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw5MDAwMCwzOC40ODQyNzQsLTEyMS40ODg4NTENOTA1OCBNT05UT1lBIFNULFNBQ1JBTUVOVE8sOTU4MjYsQ0EsMiwxLDc5NSxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDkwMDAwLDM4LjU1OTE0NCwtMTIxLjM2ODM4Nw0xMDE2IENPTkdSRVNTIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDIsMiw5MTgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw5MTAwMCwzOC42MzAxNTEsLTEyMS40NDI3ODkNNTQwIE1PUlJJU09OIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMSwxMDgyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsOTUwMDAsMzguNjM3NzA0LC0xMjEuNDUzOTQ2DTUzMDMgSkVSUkVUVCBXQVksU0FDUkFNRU5UTyw5NTg0MixDQSwyLDEsOTY0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsOTc1MDAsMzguNjYzMjgyLC0xMjEuMzU5NjMxDTI4MjAgREVMIFBBU08gQkxWRCxTQUNSQU1FTlRPLDk1ODE1LENBLDQsMiwxNDA0LE11bHRpLUZhbWlseSxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEwMDAwMCwzOC42MTc3MTgsLTEyMS40NDAwODkNMzcxNSBUQUxMWUhPIERSIFVuaXQgNzhISUdILFNBQ1JBTUVOVE8sOTU4MjYsQ0EsMSwxLDYyNSxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEwMDAwMCwzOC41NDQ2MjcsLTEyMS4zNTc5Ng02MDEzIFJPV0FOIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwyLDEsODg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTAxMDAwLDM4LjY3NTg5MywtMTIxLjI5NjMNMjk4NyBQT05ERVJPU0EgTE4sU0FDUkFNRU5UTyw5NTgxNSxDQSw0LDIsMTEyMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEwMjc1MCwzOC42MjIyNDMsLTEyMS40NTc4NjMNMzczMiBMQU5LRVJTSElNIFdBWSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywxLDEzMzEsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTI1MDAsMzguNjg5NzIsLTEyMS4zNzgzOTkNMjIxNiBEVU5MQVAgRFIsU0FDUkFNRU5UTyw5NTgyMSxDQSwzLDEsMTAxNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDExMzAwMCwzOC42MjM3MzgsLTEyMS40MTMwNQ0zNTAzIDIxU1QgQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsNCwyLDE0NDgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTQwMDAsMzguNTMzNjEsLTEyMS40NjkzMDgNNTIzIEVYQ0hBTkdFIFNULFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywxLDk2NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDExNDAwMCwzOC42NTk0MTQsLTEyMS40NTQwOA04MTAxIFBPUlQgUk9ZQUxFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDIsMSw3NzksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTQ3NTAsMzguNDYzOTI5LC0xMjEuNDM4NjY3DTgwMjAgV0FMRVJHQSBSRCxBTlRFTE9QRSw5NTg0MyxDQSwyLDIsODM2LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTE1MDAwLDM4LjcxNjA3LC0xMjEuMzY0NDY4DTE2NyBWQUxMRVkgT0FLIERSLFJPU0VWSUxMRSw5NTY3OCxDQSwyLDIsMTEwMCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDExNTAwMCwzOC43MzI0MjksLTEyMS4yODgwNjkNNzg3NiBCVVJMSU5HVE9OIFdBWSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMSwxMTc0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTE2MTAwLDM4LjQ3MDA5MywtMTIxLjQ2ODM0Nw0zNzI2IEpPTktPIEFWRSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywyLDEyMDcsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTkyNTAsMzguNjU2MTMxLC0xMjEuMzc3MjY1DTczNDIgR0lHSSBQTCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsNCwxOTk1LE11bHRpLUZhbWlseSxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyMDAwMCwzOC40OTA3MDQsLTEyMS40MTAxNzYNMjYxMCBQSFlMTElTIEFWRSxTQUNSQU1FTlRPLDk1ODIwLENBLDIsMSw4MDQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjAwMDAsMzguNTMxMDUsLTEyMS40Nzk1NzQNNDIwMCBDT01NRVJDRSBXQVkgVW5pdCA3MTEsU0FDUkFNRU5UTyw5NTgzNCxDQSwyLDIsOTU4LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTIwMDAwLDM4LjY0NzUyMywtMTIxLjUyMzIxNw00NjIxIENPVU5UUlkgU0NFTkUgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEzNjYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjAxMDgsMzguNDcwMTg3LC0xMjEuNDQ4MTQ5DTUzODAgVklMTEFHRSBXT09EIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMiwyLDkwMSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyMTUwMCwzOC40NTQ5NDksLTEyMS40NDA1NzgNMjYyMSBFVkVSR1JFRU4gU1QsU0FDUkFNRU5UTyw5NTgxNSxDQSwzLDEsNjk2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTIxNzI1LDM4LjYxMzEwMywtMTIxLjQ0NDA4NQ0yMDEgQ0FSTE8gQ1QsR0FMVCw5NTYzMixDQSwzLDIsMTA4MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyMjAwMCwzOC4yNDIyNywtMTIxLjMxMDMyDTY3NDMgMjFTVCBTVCxTQUNSQU1FTlRPLDk1ODIyLENBLDMsMiwxMTA0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTIzMDAwLDM4LjUwMzcyLC0xMjEuNDkwNjU3DTMxMjggVklBIEdSQU5ERSxTQUNSQU1FTlRPLDk1ODI1LENBLDIsMSw5NzIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjUwMDAsMzguNTk4MzIxLC0xMjEuMzkxNjENMjg0NyBCRUxHUkFERSBXQVksU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDIsMTM5MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNTU3MywzOC42MTcxNzMsLTEyMS40ODI1NDENNzc0MSBNSUxMREFMRSBDSVIsRUxWRVJUQSw5NTYyNixDQSw0LDIsMTM1NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNjcxNCwzOC43MDU4MzQsLTEyMS40MzkxOQ05MDEzIENBU0FMUyBTVCxTQUNSQU1FTlRPLDk1ODI2LENBLDIsMSw3OTUsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjY5NjAsMzguNTU3MDQ1LC0xMjEuMzcxNjcNMjI3IE1BSEFOIENUIFVuaXQgMSxST1NFVklMTEUsOTU2NzgsQ0EsMiwxLDc4MCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNzAwMCwzOC43NDk3MjMsLTEyMS4yNzAwOA03MzQ5IEZMRVRDSEVSIEZBUk0gRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSw0LDIsMTU4NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNzUwMCwzOC40OTA2OSwtMTIxLjM4MjYxOQ03MjI2IExBUkNITU9OVCBEUixOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywyLDEyMDksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMzAwMDAsMzguNjk5MjY5LC0xMjEuMzc2MzM0DTQxMTQgMzVUSCBBVkUsU0FDUkFNRU5UTyw5NTgyNCxDQSwyLDEsMTEzOSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEzMzEwNSwzOC41MjA5NDEsLTEyMS40NTkzNTUNNjE3IE0gU1QsUklPIExJTkRBLDk1NjczLENBLDIsMiwxNjkwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTM2NTAwLDM4LjY5MTEwNCwtMTIxLjQ1MTgzMg03MDMyIEZBSVIgT0FLUyBCTFZELENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDEyNDUsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMzk1MDAsMzguNjI4NTYzLC0xMjEuMzI4Mjk3DTI0MjEgU0FOVElOQSBXQVksRUxWRVJUQSw5NTYyNixDQSwzLDIsMTQxNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE0MDAwMCwzOC43MTg2NSwtMTIxLjQwNzc2Mw0yMzY4IENSQUlHIEFWRSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMiwxMzAwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTQwODAwLDM4LjQ3ODA3LC0xMjEuNDgxMTQNMjEyMyBBTUFOREEgV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywyLDExMjAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNDUwMDAsMzguNDg0ODk2LC0xMjEuNDg2OTQ4DTc2MjAgREFSTEEgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE1OTAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNDcwMDAsMzguNDc4NTAyLC0xMjEuNDAzNTE3DTgzNDQgRklFTERQT1BQWSBDSVIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTQwNyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE0OTYwMCwzOC40NzkwODMsLTEyMS40MDA3MDINMzYyNCAyMFRIIEFWRSxTQUNSQU1FTlRPLDk1ODIwLENBLDUsMiwxNTE2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTUwMDAwLDM4LjUzNDUwOCwtMTIxLjQ2NzkwNw0xMDAwMSBXT09EQ1JFRUsgT0FLUyBCTFZEIFVuaXQgMTQxNSxST1NFVklMTEUsOTU3NDcsQ0EsMiwyLDAsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNzk1NTI5LC0xMjEuMzI4ODE5DTI4NDggUFJPVk8gV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywyLDE2NDYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNDg5NzU5LC0xMjEuNDc0NzU0DTYwNDUgRUhSSEFSRFQgQVZFLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE2NzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTUwMDAsMzguNDU3MTU3LC0xMjEuNDMzMDY1DTEyMjMgTEFNQkVSVE9OIENJUixTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMzcwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTU1NDM1LDM4LjY0NjY3NywtMTIxLjQzNzU3Mw0xMjIzIExBTUJFUlRPTiBDSVIsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTM3MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE1NTUwMCwzOC42NDY2NzcsLTEyMS40Mzc1NzMNNjAwMCBCSVJDSEdMQURFIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTM1MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE1ODAwMCwzOC43MDE2NiwtMTIxLjMyMzI0OQ03MjA0IFRIT01BUyBEUixOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywyLDExNTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTgwMDAsMzguNjk3ODk4LC0xMjEuMzc3Njg3DTgzNjMgTEFOR1RSRUUgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0NTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNjAwMDAsMzguNDUzNTYsLTEyMS40MzU5NTkNMTY3NSBWRVJOT04gU1QgVW5pdCA4LFJPU0VWSUxMRSw5NTY3OCxDQSwyLDEsOTkwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTYwMDAwLDM4LjczNDEzNiwtMTIxLjI5OTYzOQ02NjMyIElCRVggV09PRFMgQ1QsQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMiwyLDExNjIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNjQwMDAsMzguNzIwODY4LC0xMjEuMzA5ODU1DTExNyBFVkNBUiBXQVksUklPIExJTkRBLDk1NjczLENBLDMsMiwxMTgyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTY0MDAwLDM4LjY4NzY1OSwtMTIxLjQ2MzMNNjQ4NSBMQUdVTkEgTUlSQUdFIExOLEVMSyBHUk9WRSw5NTc1OCxDQSwyLDIsMTExMixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE2NTAwMCwzOC40MjQ2NSwtMTIxLjQzMDEzNw03NDYgTU9PU0UgQ1JFRUsgV0FZLEdBTFQsOTU2MzIsQ0EsMywyLDExMDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNjcwMDAsMzguMjgzMDg1LC0xMjEuMzAyMDcxDTgzMDYgQ1VSTEVXIENULENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDQsMiwxMjgwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTY3MjkzLDM4LjcxNTc4MSwtMTIxLjI5ODUxOQ04MzA2IENVUkxFVyBDVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTI4MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE2NzI5MywzOC43MTU3ODEsLTEyMS4yOTg1MTkNNTIxNyBBUkdPIFdBWSxTQUNSQU1FTlRPLDk1ODIwLENBLDMsMSwxMDM5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTY4MDAwLDM4LjUyNzc0LC0xMjEuNDMzNjY5DTcxMDggSEVBVEhFUiBUUkVFIERSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywyLDExNTksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNjk1Njc3LC0xMjEuMzYwMjINMjk1NiBEQVZFTlBPUlQgV0FZLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsNCwyLDE5MTcsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNjIwNjg3LC0xMjEuNDgyNjE5DTEwMDYyIExJTkNPTE4gVklMTEFHRSBEUixTQUNSQU1FTlRPLDk1ODI3LENBLDMsMiwxNTIwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTcwMDAwLDM4LjU2NCwtMTIxLjMyMDAyMw0zMzIgUEFMSU4gQVZFLEdBTFQsOTU2MzIsQ0EsMywyLDEyMDQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNzQwMDAsMzguMjYwNDY3LC0xMjEuMzAyNjM2DTQ2NDkgRlJFRVdBWSBDSVIsU0FDUkFNRU5UTyw5NTg0MSxDQSwzLDIsMTEyMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE3ODAwMCwzOC42NTg3MzQsLTEyMS4zNTcxOTYNODU5MyBERVJMSU4gV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNDQ3NTg1LC0xMjEuNDI2NjI3DTkyNzMgUFJFTUlFUiBXQVksU0FDUkFNRU5UTyw5NTgyNixDQSwzLDIsMTQ1MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE4MDAwMCwzOC41NTk5MiwtMTIxLjM1MjUzOQ04MDMyIERVU0VOQkVSRyBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxNjM4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTgwMDAwLDM4LjQ2NjQ5OSwtMTIxLjM4MTExOQ03MTEwIFNURUxMQSBMTiBVbml0IDE1LENBUk1JQ0hBRUwsOTU2MDgsQ0EsMiwyLDEwMDAsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxODIwMDAsMzguNjM3Mzk2LC0xMjEuMzAwMDU1DTE3ODYgUElFRE1PTlQgV0FZLFJPU0VWSUxMRSw5NTY2MSxDQSwzLDEsMTE1MixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODMyNSwzOC43Mjc0OCwtMTIxLjI1NjUzNw0xMzQ3IEhJREFMR08gQ0lSLFJPU0VWSUxMRSw5NTc0NyxDQSwzLDIsMTE1NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE5MTUwMCwzOC43NDc4NzgsLTEyMS4zMTEyNzkNMjEyIENBUFBVQ0lOTyBXQVksU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTM1MyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE5MjAwMCwzOC42NTc4MTEsLTEyMS40NjUzMjcNNTkzOCBXT09EQlJJQVIgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMzI5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTkyNzAwLDM4LjcwNjE1MiwtMTIxLjMyNTM5OQ0zODAxIFdJTERST1NFIFdBWSxTQUNSQU1FTlRPLDk1ODI2LENBLDMsMSwxMzU2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTk1MDAwLDM4LjU0NDM2OCwtMTIxLjM2OTk3OQ01MDggU0FNVUVMIFdBWSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxNTA1LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTk3NjU0LDM4LjY0NTY4OSwtMTIxLjQ1Mjc2Ng02MTI4IENBUkwgU0FOREJVUkcgQ0lSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywxLDEwMDksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxOTgwMDAsMzguNjgxNTQxLC0xMjEuMzU1NjE2DTEgS0VOTkVMRk9SRCBDSVIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTE0NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIwMDM0NSwzOC40NjQ1MiwtMTIxLjQyNzYwNg05MDkgU0lOR0lOR1dPT0QgUkQsU0FDUkFNRU5UTyw5NTg2NCxDQSwyLDEsOTMwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjAzMDAwLDM4LjU4MTQ3MSwtMTIxLjM4ODM5DTY2NzEgRk9YV09PRCBDVCxTQUNSQU1FTlRPLDk1ODQxLENBLDQsMiwxNzY2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjA3MDAwLDM4LjY4Nzk0MywtMTIxLjMyODg4Mw04MTY1IEFZTiBSQU5EIENULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwzLDE5NDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMDgwMDAsMzguNDY4NjM5LC0xMjEuNDAzMjY1DTk0NzQgVklMTEFHRSBUUkVFIERSLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTc3NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIxMDAwMCwzOC40MTM5NDcsLTEyMS40MDgyNzYNNzIxMyBDQUxWSU4gRFIsQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywxLDEyNTgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMTIwMDAsMzguNjk4MTU0LC0xMjEuMjk4Mzc1DTgxNjcgREVSQlkgUEFSSyBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxODcyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjEzNjc1LDM4LjQ2MDQ5MiwtMTIxLjM3MzM3OQ02MzQ0IExBR1VOQSBNSVJBR0UgTE4sRUxLIEdST1ZFLDk1NzU4LENBLDIsMiwxMTEyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjEzNjk3LDM4LjQyMzk2MywtMTIxLjQyODg3NQ0yOTQ1IFJFRCBIQVdLIFdBWSxTQUNSQU1FTlRPLDk1ODMzLENBLDQsMiwxODU2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjYxOTY3NSwtMTIxLjQ5NjkwMw0zMjI4IEkgU1QsU0FDUkFNRU5UTyw5NTgxNixDQSw0LDMsMTkzOSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIxNTAwMCwzOC41NzM4NDQsLTEyMS40NjI4MzkNMzA4IEFUS0lOU09OIFNULFJPU0VWSUxMRSw5NTY3OCxDQSwzLDEsOTk4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjE1MTAwLDM4Ljc0Njc5NCwtMTIxLjI5OTcxDTYyNCBIT1ZFWSBXQVksUk9TRVZJTExFLDk1Njc4LENBLDMsMiwxNzU4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjE3NTAwLDM4Ljc1NjE0OSwtMTIxLjMwNjQ3OQ0xMTAgQ09QUEVSIExFQUYgV0FZLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDIxNDIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMTgwMDAsMzguNjU4NDY2LC0xMjEuNDYwNjYxDTc1MzUgQUxNQSBWSVNUQSBXQVksU0FDUkFNRU5UTyw5NTgzMSxDQSwyLDEsOTUwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjIwMDAwLDM4LjQ4NDAzLC0xMjEuNTA3NjQxDTc0MjMgV0lMU0FMTCBDVCxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwzLDE3MzksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMjEwMDAsMzguNDE3MDI2LC0xMjEuNDE2ODIxDTg2MjkgVklBIEFMVEEgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSwzLDIsMTUxNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjkwMCwzOC4zOTgyNDUsLTEyMS4zODA2MTUNMzMxOCBEQVZJRFNPTiBEUixBTlRFTE9QRSw5NTg0MyxDQSwzLDEsOTg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjIzMTM5LDM4LjcwNTc1MywtMTIxLjM4ODkxNw05MTMgQ09CREVOIENULEdBTFQsOTU2MzIsQ0EsNCwyLDE1NTUsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMjU1MDAsMzguMjgyMDAxLC0xMjEuMjk1OTAyDTQ0MTkgNzlUSCBTVCxTQUNSQU1FTlRPLDk1ODIwLENBLDMsMiwxMjEyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjI4MzI3LDM4LjUzNDgyNywtMTIxLjQxMjU0NQ0zMDEyIFNQT09OV09PRCBXQVksU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDIsMTg3MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMDAwMCwzOC42MjQ3OCwtMTIxLjUyMzQ3NA04NzI4IENSWVNUQUwgUklWRVIgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDEzMDIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzAwMDAsMzguNDc1NDcsLTEyMS4zODAwNTUNNDcwOSBBTUJFUiBMTiBVbml0IDEsU0FDUkFNRU5UTyw5NTg0MSxDQSwyLDEsNzU2LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjMwNTIyLDM4LjY1Nzc4OSwtMTIxLjM1NDk5NA00NTA4IE9MRCBEQUlSWSBEUixBTlRFTE9QRSw5NTg0MyxDQSw0LDMsMjAyNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMTIwMCwzOC43MjI4NiwtMTIxLjM1ODkzOQ0zMTIgUklWRVIgSVNMRSBXQVksU0FDUkFNRU5UTyw5NTgzMSxDQSwzLDIsMTM3NSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjAwMCwzOC40OTAyNiwtMTIxLjU1MDUyNw0zMDEgT0xJVkFESSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwyLDIsMTI1MCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjUwMCwzOC42NDQ0MDYsLTEyMS41NDkwNDkNNTYzNiAyNVRIIFNULFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDEwNTgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzM2NDEsMzguNTIzODI4LC0xMjEuNDgxMTM5DTg3MjEgU1BSVUNFIFJJREdFIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTE4NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzNDAwMCwzOC43Mjc2NTcsLTEyMS4zOTEwMjgNNzQ2MSBXSU5EQlJJREdFIERSLFNBQ1JBTUVOVE8sOTU4MzEsQ0EsMiwyLDEzMjQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzQ1MDAsMzguNDg3OTcsLTEyMS41MzAyMjkNODEwMSBMRU1PTiBDT1ZFIENULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwzLDE5MzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzUwMDAsMzguNDYyOTgxLC0xMjEuNDA4Mjg4DTEwOTQ5IFNDT1RTTUFOIFdBWSxSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw1LDQsMjM4MixNdWx0aS1GYW1pbHksTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzYwMDAsMzguNjAzNjg2LC0xMjEuMjc3ODQ0DTYxNyBXSUxMT1cgQ1JFRUsgRFIsRk9MU09NLDk1NjMwLENBLDMsMiwxNDI3LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjM2MDczLDM4LjY3OTYyNiwtMTIxLjE0MjYwOQ0zMzAxIFBBUksgRFIgVW5pdCAxOTE0LFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE2NzgsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzgwMDAsMzguNjY1Mjk2LC0xMjEuNTMxOTkzDTcwOSBDSU1NQVJPTiBDVCxHQUxULDk1NjMyLENBLDQsMiwxNzk4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjM4ODYxLDM4LjI3NzE3NywtMTIxLjMwMzc0Nw0zMzA1IFJJTyBST0NBIENULEFOVEVMT1BFLDk1ODQzLENBLDQsMywyNjUyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjM5NzAwLDM4LjcyNTA3OSwtMTIxLjM4NzY5OA05MDgwIEJFRFJPQ0sgQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDIsMTgxNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI0MDAwMCwzOC40NTY5MzksLTEyMS4zNjI5NjUNMTAwIFRPVVJNQUxJTkUgQ0lSLFNBQ1JBTUVOVE8sOTU4MzQsQ0EsNSwzLDMwNzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNDAwMDAsMzguNjM0MzcsLTEyMS41MTA3NzkNNjQxMSBSRUQgQklSQ0ggV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTg0NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI0MTAwMCwzOC40MzQ2MSwtMTIxLjQyOTMxNg00ODY3IExBR1VOQSBEUixTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMzA2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjQ1MDAwLDM4LjQ2MTc5LC0xMjEuNDQ1MzcxDTM2NjIgUklWRVIgRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDMsMjQ0NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI0NjAwMCwzOC42MDQ5NjksLTEyMS41NDI1NQ02OTQzIFdPTEZHUkFNIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxMTc2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjQ3MjM0LDM4LjQ4OTIxNSwtMTIxLjQxOTU0Ng03NyBSSU5FVFRJIFdBWSxSSU8gTElOREEsOTU2NzMsQ0EsNCwyLDExODIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNDc0ODAsMzguNjg3MDIxLC0xMjEuNDYzMTUxDTEzMTYgSSBTVCxSSU8gTElOREEsOTU2NzMsQ0EsMywxLDExNjAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNDk4NjIsMzguNjgzNjc0LC0xMjEuNDM1MjA0DTIxMzAgQ0FUSEVSV09PRCBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTQyNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI1MTAwMCwzOC42NzU1MDYsLTEyMS41MTA5ODcNODMwNCBKVUdMQU5TIERSLE9SQU5HRVZBTEUsOTU2NjIsQ0EsNCwyLDE1NzQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNTIxNTUsMzguNjkxODI5LC0xMjEuMjQ5MDMzDTUzMDggTUFSQlVSWSBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDE4MzAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNTQxNzIsMzguNzEwMjIxLC0xMjEuMzQxNzA3DTkxODIgTEFLRU1PTlQgRFIsRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNzI0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjU4MDAwLDM4LjQ1MTM1MywtMTIxLjM1ODc3Ng0yMjMxIENPVU5UUlkgVklMTEEgQ1QsQVVCVVJOLDk1NjAzLENBLDIsMiwxMjU1LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjYwMDAwLDM4LjkzMTY3MSwtMTIxLjA5Nzg2Mg04NDkxIENSWVNUQUwgV0FMSyBDSVIsRUxLIEdST1ZFLDk1NzU4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjYxMDAwLDM4LjQxNjkxNiwtMTIxLjQwNzU1NA0zNjEgTUFIT05JQSBDSVIsU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDMsMjE3NSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI2MTAwMCwzOC42NzYxNzIsLTEyMS41MDk3NjENMzQyNyBMQSBDQURFTkEgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsNCwyLDE5MDQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNjEwMDAsMzguNjgxMTk0LC0xMjEuNTM3MzUxDTk1NSBCSUcgU1VSIENULEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw0LDIsMTgwOCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI2MjUwMCwzOC42NjQzNDcsLTEyMS4wNzY1MjkNMTE4MjYgRElPTllTVVMgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDQsMiwyNzExLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjY2MDAwLDM4LjU1MTA0NiwtMTIxLjIzOTQxMQ01ODQ3IERFTCBDQU1QTyBMTixDQVJNSUNIQUVMLDk1NjA4LENBLDMsMSwxNzEzLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjY2MDAwLDM4LjY3MTk5NSwtMTIxLjMyNDMzOQ01NjM1IEZPWFZJRVcgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSwzLDIsMTQ1NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC4zOTUyNTYsLTEyMS40MzgyNDkNMTAzNzIgVklBIENJTlRBIENULEVMSyBHUk9WRSw5NTc1NyxDQSw0LDMsMjcyNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI3NDQyNSwzOC4zODAwODksLTEyMS40MjgxODYNNjI4NiBMT05FVFJFRSBCTFZELFJPQ0tMSU4sOTU3NjUsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNzQ1MDAsMzguODA1MDM2LC0xMjEuMjkzNjA4DTc3NDQgU09VVEhCUkVFWkUgRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTQ2OCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI3NTMzNiwzOC40NzY5MzIsLTEyMS4zNzgzNDkNMjI0MiBBQkxFIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDQsMywyNTUwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjc3OTgwLDM4LjY2NjA3NCwtMTIxLjUwOTc0Mw0xMDQyIFNUQVJCUk9PSyBEUixHQUxULDk1NjMyLENBLDQsMiwxOTI4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjgwMDAwLDM4LjI4NTYxMSwtMTIxLjI5MzA2Mw0xMjE5IEcgU1QsU0FDUkFNRU5UTyw5NTgxNCxDQSwzLDMsMTkyMixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI4NDY4NiwzOC41ODI4MTgsLTEyMS40ODkwOTYNNjIyMCBPUFVTIENULENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMzQzLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjg0ODkzLDM4LjcxNTg1MywtMTIxLjMxNzA5NQ01NDE5IEhBVkVOSFVSU1QgQ0lSLFJPQ0tMSU4sOTU2NzcsQ0EsMywyLDE1MTAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODUwMDAsMzguNzg2NzQ2LC0xMjEuMjA5OTU3DTIyMCBPTEQgQUlSUE9SVCBSRCxBVUJVUk4sOTU2MDMsQ0EsMiwyLDk2MCxNdWx0aS1GYW1pbHksTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODUwMDAsMzguOTM5ODAyLC0xMjEuMDU0NTc1DTQ2MjIgTUVZRVIgV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsNCwyLDE1NTksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODUwMDAsMzguNjQ5MTMsLTEyMS4zMTA2NjcNNDg4NSBTVU1NSVQgVklFVyBEUixFTCBET1JBRE8sOTU2MjMsQ0EsMywyLDE2MjQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODkwMDAsMzguNjczMjg1LC0xMjAuODc5MTc2DTI2IEpFQU5ST1NTIENULFNBQ1JBTUVOVE8sOTU4MzIsQ0EsNSwzLDI5OTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyOTUwMDAsMzguNDczMTYyLC0xMjEuNDkxMDg1DTQ4MDAgTUFQTEVQTEFJTiBBVkUsRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwyMTA5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjk2MDAwLDM4LjQzMjg0OCwtMTIxLjQ0OTIzNw0xMDYyOSBCQVNJRSBXQVksUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsNCwyLDE1MjQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyOTYwNTYsMzguNTc5LC0xMjEuMjkyNjI3DTg2MTIgV0lMTE9XIEdST1ZFIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjQ4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjk3MzU5LDM4LjQ2NDk5NCwtMTIxLjM4Njk2Mg02MiBERSBGRVIgQ0lSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwyLDE4NzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyOTk5NDAsMzguNDkyNTQsLTEyMS40NjMzMTYNMjUxMyBPTEQgS0VOTUFSRSBSRCxMSU5DT0xOLDk1NjQ4LENBLDUsMywwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzA0MDAwLDM4Ljg0NzM5NiwtMTIxLjI1OTU4Ng0zMjUzIEFCT1RPIFdBWSxSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw0LDMsMTg1MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDMwNTAwMCwzOC41NzcyNywtMTIxLjI4NTU5MQ0zMDcyIFZJTExBR0UgUExBWkEgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzA3MDAwLDM4Ljc3MzA5NCwtMTIxLjM2NTkwNQ0yNTEgQ0hBTkdPIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwyMjE4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzExMzI4LDM4LjY4MjM3LC0xMjEuNTM5MTQ3DTgyMDUgV0VZQlVSTiBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMzk0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzEzMTM4LDM4LjQ3MzE2LC0xMjEuNDAzODkzDTg3ODggTEEgTUFSR0FSSVRBIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxNDEwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzE2NjMwLDM4LjQ2ODE4NSwtMTIxLjM3NTY5NA01OTEyIERFRVBEQUxFIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNSwzLDM0NjgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzMjAwMDAsMzguNDM5NTY1LC0xMjEuNDM2NjA2DTQ3MTIgUElTTU8gQkVBQ0ggRFIsQU5URUxPUEUsOTU4NDMsQ0EsNSwzLDIzNDYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzMjAwMDAsMzguNzA3NzA1LC0xMjEuMzU0MTUzDTQ3NDEgUEFDSUZJQyBQQVJLIERSLEFOVEVMT1BFLDk1ODQzLENBLDUsMywyMzQ3LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzI1MDAwLDM4LjcwOTI5OSwtMTIxLjM1MzA1Ng0zMTAgR1JPVEggQ0lSLFNBQ1JBTUVOVE8sOTU4MzQsQ0EsNCwyLDE2NTksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzMjg1NzgsMzguNjM4NzY0LC0xMjEuNTMxODI3DTYxMjEgV0lMRCBGT1ggQ1QsRUxLIEdST1ZFLDk1NzU3LENBLDMsMywyNDQyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzMxMDAwLDM4LjQwNjc1OCwtMTIxLjQzMTY2OQ0xMjI0MSBDQU5ZT05MQU5EUyBEUixSQU5DSE8gQ09SRE9WQSw5NTc0MixDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDMzMTUwMCwzOC41NTcyOTMsLTEyMS4yMTc2MTENMjkgQ09PTCBGT1VOVEFJTiBDVCxTQUNSQU1FTlRPLDk1ODMzLENBLDQsMiwyMTU1LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzQwMDAwLDM4LjYwNjkwNiwtMTIxLjU0MTMyDTkwNyBSSU8gUk9CTEVTIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzQ0NzU1LDM4LjY2NDc2NSwtMTIxLjQ0NTAwNg04OTA5IEJJTExGSVNIIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxODEwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzQ1NzQ2LDM4LjQ3NTQzMywtMTIxLjM3MjU4NA02MjMyIEdVUyBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDQsMiwyNzg5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzUxMDAwLDM4LjM4ODEyOSwtMTIxLjQzMTE3DTIwMCBPQUtXSUxERSBTVCxHQUxULDk1NjMyLENBLDQsMiwxNjA2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzUzNzY3LDM4LjI1MzUsLTEyMS4zMTgxMg0xMDMzIFBBUksgU1RSRUFNIERSLEdBTFQsOTU2MzIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNTUwMDAsMzguMjg3Nzg1LC0xMjEuMjg5OTAzDTIwMCBBTExBSVJFIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwyMTY2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzU2MDM1LDM4LjY4MzE4LC0xMjEuNTM0ODQNMTMyMiBTVVRURVIgV0FMSyxTQUNSQU1FTlRPLDk1ODE2LENBLDAsMCwwLENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzYwMDAwLDM4LjUzODA1LC0xMjEuNTA0Nw01NDc5IE5JQ0tNQU4gV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsNCwyLDE4NzEsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNjA1NTIsMzguNjcyOTY2LC0xMjEuNTAyNzQ4DTIxMDMgQlVSQkVSUlkgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE4MDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNjIzMDUsMzguNjczNDIsLTEyMS41MDg1NDINMjQ1MCBTQU4gSk9TRSBXQVksU0FDUkFNRU5UTyw5NTgxNyxDQSwzLDEsMTY4MyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDM2NTAwMCwzOC41NTM1OTYsLTEyMS40NTk0ODMNNzY0MSBST1NFSEFMTCBEUixST1NFVklMTEUsOTU2NzgsQ0EsMywyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNjc1NTQsMzguNzkxNjE3LC0xMjEuMjg2MTQ3DTEzMzYgTEFZU0FOIFRFQUwgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzY4NTAwLDM4Ljc5NjEyMSwtMTIxLjMxOTk2Mw0yODAyIEJMQUNLIE9BSyBEUixST0NLTElOLDk1NzY1LENBLDIsMiwxNTk2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzcwMDAwLDM4LjgzNzAwNiwtMTIxLjIzMjAyNA0yMTEzIEZBTEwgVFJBSUwgQ1QsUExBQ0VSVklMTEUsOTU2NjcsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNzEwODYsMzguNzMzMTU1LC0xMjAuNzQ4MDM5DTEwMTEyIExBTUJFQVUgQ1QsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxMTc5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzc4MDAwLDM4LjM5MDMyOCwtMTIxLjQ0ODAyMg02MzEzIENBU1RSTyBWRVJERSBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzgzMDAwLDM4LjM4MTEwMiwtMTIxLjQyOTAxDTM2MjIgQ1VSVElTIERSLFNBQ1JBTUVOVE8sOTU4MTgsQ0EsMywxLDE2MzksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzODgwMDAsMzguNTQxNzM1LC0xMjEuNDgwMDk4DTExODE3IE9QQUwgUklER0UgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDUsMywzMjgxLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzk1MTAwLDM4LjU1MTA4MywtMTIxLjIzNzQ3Ng0xNzAgTEFHT01BUlNJTk8gV0FZLFNBQ1JBTUVOVE8sOTU4MTksQ0EsMywyLDE2OTcsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0MDAwMDAsMzguNTc0ODk0LC0xMjEuNDM1ODA2DTI3NDMgREVBS0lOIFBMLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSwzLDIsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQwMDAwMCwzOC42OTI4OCwtMTIxLjA3MzU1MQ0zMzYxIEFMREVSIENBTllPTiBXQVksQU5URUxPUEUsOTU4NDMsQ0EsNCwzLDIwODUsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0MDg0MzEsMzguNzI3NjQ5LC0xMjEuMzg1NjU2DTIxNDggUkFOQ0ggVklFVyBEUixST0NLTElOLDk1NzY1LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDEzMDAwLDM4LjgzNzQ1NSwtMTIxLjI4OTMzNw0zOTggTElORExFWSBEUixTQUNSQU1FTlRPLDk1ODE1LENBLDQsMiwxNzQ0LE11bHRpLUZhbWlseSxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQxNjc2NywzOC42MjIzNTksLTEyMS40NTc1ODINMzAxMyBCUklETEVXT09EIERSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw0LDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQyMDAwMCwzOC42NzU1MTksLTEyMS4wMTU4NjINMTY5IEJBVVJFUiBDSVIsRk9MU09NLDk1NjMwLENBLDQsMywxOTM5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDIzMDAwLDM4LjY2Njk1LC0xMjEuMTIwNzI5DTI4MDkgTE9PTiBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0MjMwMDAsMzguNjg3MDcyLC0xMjEuMDA0NzI5DTEzMTUgS09ORE9TIEFWRSxTQUNSQU1FTlRPLDk1ODE0LENBLDIsMywxNzg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDI3NTAwLDM4LjU3MTk0MywtMTIxLjQ5MjEwNg00OTY2IENIQVJURVIgUkQsUk9DS0xJTiw5NTc2NSxDQSwzLDIsMTY5MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQzMDkyMiwzOC44MjU1MywtMTIxLjI1NDY5OA05NTE2IExBR1VOQSBMQUtFIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDIwMDIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0NDUwMDAsMzguNDExMjU4LC0xMjEuNDMxMzQ4DTUyMDEgQkxPU1NPTSBSQU5DSCBEUixFTEsgR1JPVkUsOTU3NTcsQ0EsNCw0LDQzMDMsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0NTAwMDAsMzguMzk5NDM2LC0xMjEuNDQ0MDQxDTMwMjcgUEFMTUFURSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSw1LDMsNDI0NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ1MjAwMCwzOC42Mjg5NTUsLTEyMS41MjkyNjkNNTAwIFdJTkNIRVNURVIgQ1QsUk9TRVZJTExFLDk1NjYxLENBLDMsMiwyMjc0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDcwMDAwLDM4LjczOTg4LC0xMjEuMjQ4OTI5DTU3NDYgR0VMU1RPTiBXQVksRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDcxMDAwLDM4LjY3NzAxNSwtMTIxLjAzNDA4Mw02OTM1IEVMTSBUUkVFIExOLE9SQU5HRVZBTEUsOTU2NjIsQ0EsNCw0LDMwNTYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0NzUwMDAsMzguNjkzMDQxLC0xMjEuMjMyOTQNOTYwNSBHT0xGIENPVVJTRSBMTixFTEsgR1JPVkUsOTU3NTgsQ0EsMywzLDI1MDMsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODQ1MDAsMzguNDA5Njg5LC0xMjEuNDQ2MDU5DTcxOSBCQVlXT09EIENULEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw1LDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4NzUwMCwzOC42NDc1OTgsLTEyMS4wNzc4MDENNTk1NCBUQU5VUyBDSVIsUk9DS0xJTiw5NTY3NyxDQSwzLDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4ODc1MCwzOC43Nzc1ODUsLTEyMS4yMDM2DTEwMCBDSEVMU0VBIENULEZPTFNPTSw5NTYzMCxDQSwzLDIsMTkwNSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUwMDAwMCwzOC42OTQzNSwtMTIxLjE3NzI1OQ0xNTAwIE9SQU5HRSBISUxMIExOLFBFTlJZTiw5NTY2MyxDQSwzLDIsMTMyMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUwNjY4OCwzOC44NjI3MDgsLTEyMS4xNjIwOTINNDA4IEtJUktXT09EIENULExJTkNPTE4sOTU2NDgsQ0EsMiwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw1MTIwMDAsMzguODYxNjE1LC0xMjEuMjY4NjkNMTczMiBUVVNDQU4gR1JPVkUgQ0lSLFJPU0VWSUxMRSw5NTc0NyxDQSw1LDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUyMDAwMCwzOC43OTY2ODMsLTEyMS4zNDI1NTUNMjA0OSBFTVBJUkUgTUlORSBDSVIsR09MRCBSSVZFUiw5NTY3MCxDQSw0LDIsMzAzNyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUyODAwMCwzOC42MjkyOTksLTEyMS4yNDkwMjENOTM2MCBNQUdPUyBSRCxXSUxUT04sOTU2OTMsQ0EsNSwyLDM3NDEsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw1NzkwOTMsMzguNDE2ODA5LC0xMjEuMjQwNjI4DTEwNCBDQVRMSU4gQ1QsRk9MU09NLDk1NjMwLENBLDQsMywyNjYwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjM2MDAwLDM4LjY4NDQ1OSwtMTIxLjE0NTkzNQ00NzM0IEdJQkJPTlMgRFIsQ0FSTUlDSEFFTCw5NTYwOCxDQSw0LDMsMzM1NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY2ODM2NSwzOC42MzU1OCwtMTIxLjM1MzYzOQ00NjI5IERPUkNIRVNURVIgTE4sR1JBTklURSBCQVksOTU3NDYsQ0EsNSwzLDI4OTYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw2NzYyMDAsMzguNzIzNTQ1LC0xMjEuMjE2MDI1DTI0MDAgQ09VTlRSWVNJREUgRFIsUExBQ0VSVklMTEUsOTU2NjcsQ0EsMywyLDIwMjUsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw2NzcwNDgsMzguNzM3NDUyLC0xMjAuOTEwOTYzDTEyOTAxIEZVUkxPTkcgRFIsV0lMVE9OLDk1NjkzLENBLDUsMywzNzg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjkxNjU5LDM4LjQxMzUzNSwtMTIxLjE4ODIxMQ02MjIyIENBTExFIE1PTlRBTFZPIENJUixHUkFOSVRFIEJBWSw5NTc0NixDQSw1LDMsMzY3MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDc2MDAwMCwzOC43Nzk0MzUsLTEyMS4xNDY2NzYNMjAgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTMyNywtMTIxLjI4OTQxMg0yNCBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1MTMyLC0xMjEuMjg5NDA1DTI4IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ5MzYsLTEyMS4yODkzOTcNMzIgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDc0MSwtMTIxLjI4OTM5DTM2IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ1OTksLTEyMS4yODk0MDYNNDAgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDUzNSwtMTIxLjI4OTYxOQ00NCBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NTksLTEyMS4yODk4MzUNNDggQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDY2NywtMTIxLjI4OTg5Ng01MiBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NzgsLTEyMS4yODk5MTENNjggQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTIzNiwtMTIxLjI4OTkyOA03MiBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1MzUsLTEyMS4yODk5MjYNNzYgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTQ2NCwtMTIxLjI4OTkyMg04MCBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1NTc4LC0xMjEuMjg5OTE5DTg0IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODU2OTIsLTEyMS4yODk5MTUNODggQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTgwNiwtMTIxLjI4OTkxMQ05MiBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1OTIsLTEyMS4yODk5MDgNOTYgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjAyNCwtMTIxLjI4OTg1OQ0xMDAgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjA5MSwtMTIxLjI4OTc0NA00MzQgMVNUIFNULExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjUzLC0xMjEuMjg5NDA2DTMgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ2OTIsLTEyMS4yOTAyODgNMTEgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ4NzksLTEyMS4yOTAyNTcNMTkgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODUwMTcsLTEyMS4yOTAyNjINMjcgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODUxNzMsLTEyMS4yOTAyNw0zNSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTMyOCwtMTIxLjI5MDI3NQ00MyBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTQ4MywtMTIxLjI5MDI3Nw01MSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTYzOCwtMTIxLjI5MDI3OQ01OSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMywyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTc5NCwtMTIxLjI5MDI4MQ03NSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMywyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjEwNCwtMTIxLjI5MDI4NQ02MyBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1MDkzLC0xMjEuMjg5OTMyDTM5OCAxU1QgU1QsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg2NTMsLTEyMS4yODg5NTINMzg2IDFTVCBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODY1MjgsLTEyMS4yODg4NjkNMzc0IDFTVCBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODY1MjUsLTEyMS4yODg3ODcNMTE2IENSWVNUQUxXT09EIFdBWSxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYyODIsLTEyMS4yODk1ODYNMTA4IENSWVNUQUxXT09EIFdBWSxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYyODIsLTEyMS4yODk2NDYNMTAwIENSWVNUQUxXT09EIFdBWSxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYyODIsLTEyMS4yODk3MDYNNTUgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDg2NSwtMTIxLjI4OTkyMg01MSBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NzUyLC0xMjEuMjg5OTA3DTQ3IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ2MzgsLTEyMS4yODk4OTMNNDMgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDU2OCwtMTIxLjI4OTc4NA0zOSBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NTQ2LC0xMjEuMjg5NTYyDTM1IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ2NDUsLTEyMS4yODkzOTcNMzEgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDc5LC0xMjEuMjg5MzkyDTI3IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ5ODUsLTEyMS4yODkzOTkNMjMgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTE4MSwtMTIxLjI4OTQwNg0xOSBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1Mzc2LC0xMjEuMjg5NDE0DTE1IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODU1NzEsLTEyMS4yODk0MjENNyBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1OTYyLC0xMjEuMjg5NDM2DTcgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTk2MiwtMTIxLjI4OTQzNg0zIENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYwOTMsLTEyMS4yODk1ODQNODIwOCBXT09EWUFSRCBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywyLDExNjYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzMDAwMCwzOC43MTUzMjIsLTEyMS4zMTQ3ODcNMTEzIFJJTkVUVEkgV0FZLFJJTyBMSU5EQSw5NTY3MyxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMwMDAwLDM4LjY4NzE3MiwtMTIxLjQ2MzkzMw0xNSBMT09SWiBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDIsMSw4MzgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw1NTQyMiwzOC40NzE2NDYsLTEyMS40MzUxNTgNNTgwNSBET1RNQVIgV0FZLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwyLDEsOTA0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjMwMDAsMzguNjcyNjQyLC0xMjEuMzgwMzQzDTIzMzIgQ0FNQlJJREdFIFNULFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDEwMzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2NTAwMCwzOC42MDgwODUsLTEyMS40NDk2NTENMzgxMiBCRUxERU4gU1QsU0FDUkFNRU5UTyw5NTgzOCxDQSwyLDEsOTA0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjUwMDAsMzguNjM2ODMzLC0xMjEuNDQxNjQNMzM0OCA0MFRIIFNULFNBQ1JBTUVOVE8sOTU4MTcsQ0EsMiwxLDEwODAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2NTAwMCwzOC41NDQxNjIsLTEyMS40NjA2NTINMTI3IFFVQVNBUiBDSVIsU0FDUkFNRU5UTyw5NTgyMixDQSwyLDIsOTkwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjY1MDAsMzguNDkzNTA0LC0xMjEuNDc1MzA0DTM4MTIgQ1lQUkVTUyBTVCxTQUNSQU1FTlRPLDk1ODM4LENBLDIsMSw5MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw3MTAwMCwzOC42MzY4NzcsLTEyMS40NDQ5NDgNNTgyMSA2NFRIIFNULFNBQ1JBTUVOVE8sOTU4MjQsQ0EsMiwxLDg2MSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDc1MDAwLDM4LjUyMTIwMiwtMTIxLjQyODE0Ng04MjQ4IENFTlRFUiBQS1dZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMiwxLDkwNixDb25kbyxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDc3MDAwLDM4LjQ1OTAwMiwtMTIxLjQyODc5NA0xMTcxIFNPTk9NQSBBVkUsU0FDUkFNRU5UTyw5NTgxNSxDQSwyLDEsMTAxMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDg1MDAwLDM4LjYyMzgsLTEyMS40Mzk4NzINNDI1MCBBUkRXRUxMIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMDg5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsOTU2MjUsMzguNDY2OTM4LC0xMjEuNDU1NjMxDTMxMDQgQ0xBWSBTVCxTQUNSQU1FTlRPLDk1ODE1LENBLDIsMSw4MzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw5NjE0MCwzOC42MjM5MSwtMTIxLjQzOTIwOA02MDYzIExBTkQgUEFSSyBEUixTQUNSQU1FTlRPLDk1ODIyLENBLDIsMSw4MDAsQ29uZG8sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMDQyNTAsMzguNTE3MDI5LC0xMjEuNTEzODA5DTQ3MzggT0FLSE9MTE9XIERSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsNCwyLDEyOTIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMDUwMDAsMzguNjc5NTk4LC0xMjEuMzU2MDM1DTE0MDEgU1RFUkxJTkcgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwyLDEsODEwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTA4MDAwLDM4LjUyMDMxOSwtMTIxLjUwNDcyNw0zNzE1IERJRENPVCBDSVIsU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTA2NCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEwOTAwMCwzOC42MzUyMzIsLTEyMS40NjAwOTgNMjQyNiBSQVNIQVdOIERSLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDIsMSw5MTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMTUwMDAsMzguNjEwODUyLC0xMjEuMjczMjc4DTQ4MDAgV0VTVExBS0UgUEtXWSBVbml0IDQxMCxTQUNSQU1FTlRPLDk1ODM1LENBLDEsMSw4NDYsQ29uZG8sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMTUwMDAsMzguNjU4ODEyLC0xMjEuNTQyMzQ1DTM0MDkgVklSR08gU1QsU0FDUkFNRU5UTyw5NTgyNyxDQSwzLDIsMTMyMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDExNTUwMCwzOC41NjM0MDIsLTEyMS4zMjc3NDcNMTExMCBQSU5FREFMRSBBVkUsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTQxMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDExNTYyMCwzOC42NjAxNzMsLTEyMS40NDAyMTYNMjM2MSBMQSBMT01BIERSLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDMsMiwxMTE1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTE2MDAwLDM4LjU5MzY4LC0xMjEuMzE2MDU0DTE0NTUgNjRUSCBBVkUsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTE2OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyMjAwMCwzOC40OTIxNzcsLTEyMS41MDMzOTINNzMyOCBTUFJJTkdNQU4gU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTE2NCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyMjUwMCwzOC40OTE5OTEsLTEyMS40Nzc2MzYNMTE5IFNBSU5UIE1BUklFIENJUixTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxMzQxLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTIzMDAwLDM4LjQ4MTQ1NCwtMTIxLjQ0NjY0NA0xMiBDT1NUQSBCUkFTRSBDVCxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMjE5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTI0MDAwLDM4LjY1NTU1NCwtMTIxLjQ2NDI3NQ02ODEzIFNDT1RFUiBXQVksU0FDUkFNRU5UTyw5NTg0MixDQSw0LDIsMTEyNyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyNDAwMCwzOC42OTA0MywtMTIxLjM2MTAzNQ02NTQ4IEdSQVlMT0NLIExOLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDIsMTI3MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyNDQxMywzOC42ODYwNjEsLTEyMS4zNjk5NDkNMTYzMCBHTElEREVOIEFWRSxTQUNSQU1FTlRPLDk1ODIyLENBLDQsMiwxMjUzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTI1MDAwLDM4LjQ4MjcxNywtMTIxLjQ5OTY4Mw03ODI1IERBTEVXT09EUyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTEyMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEzMDAwMCwzOC40NzcyOTcsLTEyMS40MTE1MTMNNDA3MyBUUkVTTEVSIEFWRSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMiwyLDExMTgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzE3NTAsMzguNjU5MDE2LC0xMjEuMzcwNDU3DTQyODggRFlNSUMgV0FZLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsNCwzLDE4OTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzc3MjEsMzguNjQ2NTQxLC0xMjEuNDQxMTM5DTExNTggU0FOIElHTkFDSU8gV0FZLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMywyLDEyNjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzc3NjAsMzguNjIzMDQ1LC0xMjEuNDg2Mjc5DTQ5MDQgSiBQS1dZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzgwMDAsMzguNDg3Mjk3LC0xMjEuNDQyOTUNMjkzMSBIT1dFIEFWRSxTQUNSQU1FTlRPLDk1ODIxLENBLDMsMSwxMjY0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTQwMDAwLDM4LjYxOTAxMiwtMTIxLjQxNTMyOQ01NTMxIEpBTlNFTiBEUixTQUNSQU1FTlRPLDk1ODI0LENBLDMsMSwxMDYwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTQ1MDAwLDM4LjUyMjAxNSwtMTIxLjQzODcxMw03ODM2IE9SQ0hBUkQgV09PRFMgQ0lSLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMiwyLDExMzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNDUwMDAsMzguNDc5NTUsLTEyMS40MTA4NjcNNDA1NSBERUVSQlJPT0sgRFIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTQ2NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE1MDAwMCwzOC40NzIxMTcsLTEyMS40NTk1ODkNOTkzNyBCVVJMSU5FIFNULFNBQ1JBTUVOVE8sOTU4MjcsQ0EsMywyLDEwOTIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNTU5NjQxLC0xMjEuMzIzMTYNNjk0OCBNSVJBRE9SIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxNjI4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTUxMDAwLDM4LjQ5MzQ4NCwtMTIxLjQyMDM1DTQ5MDkgUlVHRVIgQ1QsU0FDUkFNRU5UTyw5NTg0MixDQSwzLDIsOTYwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTU1MDAwLDM4LjY4NzQ3LC0xMjEuMzQ5MjM0DTcyMDQgS0VSU1RFTiBTVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTA3NSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE1NTgwMCwzOC42OTU4NjMsLTEyMS4zMDA4MTQNMzE1MCBST1NFTU9OVCBEUixTQUNSQU1FTlRPLDk1ODI2LENBLDMsMiwxNDI4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTU2MTQyLDM4LjU1NDkyNywtMTIxLjM1NTIxDTgyMDAgU1RFSU5CRUNLIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxMzU4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTU4MDAwLDM4LjQ3NDg1NCwtMTIxLjQwNDcyNg04MTk4IFNURVZFTlNPTiBBVkUsU0FDUkFNRU5UTyw5NTgyOCxDQSw2LDQsMjQ3NSxNdWx0aS1GYW1pbHksRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNTk5MDAsMzguNDY1MjcxLC0xMjEuNDA0MjYNNjgyNCBPTElWRSBUUkVFIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSwzLDIsMTQxMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE2MDAwMCwzOC42ODkyMzksLTEyMS4yNjc3MzcNMzUzNiBTVU4gTUFJREVOIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTcxMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE2MTUwMCwzOC43MDk2OCwtMTIxLjM4MjMyOA00NTE3IE9MWU1QSUFEIFdBWSxTQUNSQU1FTlRPLDk1ODI2LENBLDQsMiwxNDgzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTYxNjAwLDM4LjUzNjc1MSwtMTIxLjM1OTE1NA05MjUgQ09CREVOIENULEdBTFQsOTU2MzIsQ0EsMywyLDExNDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjIwMDAsMzguMjgyMDQ3LC0xMjEuMjk1ODEyDTgyMjUgU0NPVFRTREFMRSBEUixTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxNTQ5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTY1MDAwLDM4LjQ4Nzg2NCwtMTIxLjQwMjQ3Ng04NzU4IExFTUFTIFJELFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDE0MTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjUwMDAsMzguNDY3NDg3LC0xMjEuMzc3MDU1DTYxMjEgQUxQSU5FU1BSSU5HIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEyNDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjcyOTMsMzguNDM0MDc1LC0xMjEuNDMyNjIzDTU5MzcgWU9SSyBHTEVOIFdBWSxTQUNSQU1FTlRPLDk1ODQyLENBLDUsMiwxNzEyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTY4MDAwLDM4LjY3NzAwMywtMTIxLjM1NDQ1NA02NDE3IFNVTk5ZRklFTEQgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwyLDE1ODAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjgwMDAsMzguNDQ5MTUzLC0xMjEuNDI4MjcyDTQwMDggR1JFWSBMSVZFUlkgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxNjY5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTY4NzUwLDM4LjcxODQ2LC0xMjEuMzcwODYyDTg5MjAgUk9TRVRUQSBDSVIsU0FDUkFNRU5UTyw5NTgyNixDQSwzLDEsMTAyOSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE2ODc1MCwzOC41NDQzNzQsLTEyMS4zNzA4NzQNODMwMCBMSUNIRU4gRFIsQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywxLDExMDMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNzE2NDEsLTEyMS4zMDYyMzkNODg4NCBBTUJFUkpBQ0sgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDIxNjEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNzAyNTAsMzguNDc5MzQzLC0xMjEuMzcyNTUzDTQ0ODAgVkFMTEVZIEhJIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE2NTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNzMwMDAsMzguNDY2NzgxLC0xMjEuNDUwOTU1DTIyNTAgRk9SRUJBWSBSRCxQT0xMT0NLIFBJTkVTLDk1NzI2LENBLDMsMSwxMzIwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTc1MDAwLDM4Ljc3NDkxLC0xMjAuNTk3NTk5DTM1MjkgRkFCRVJHRSBXQVksU0FDUkFNRU5UTyw5NTgyNixDQSwzLDIsMTIwMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3NjA5NSwzOC41NTMyNzUsLTEyMS4zNDYyMTgNMTc5MiBEQVdORUxMRSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTE3MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3NjI1MCwzOC42ODI3MSwtMTIxLjUwMTY5Nw03ODAwIFRBQkFSRSBDVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTE5OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3ODAwMCwzOC43MDc5OSwtMTIxLjMwMjk3OQ04NTMxIEhFUk1JVEFHRSBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTY5NSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3OTAwMCwzOC40NDg0NTIsLTEyMS40Mjg1MzYNMjQyMSBCRVJSWVdPT0QgRFIsUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywyLDExNTcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNjA4NjgsLTEyMS4yNzg0OQ0xMDA1IE1PUkVOTyBXQVksU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTQxMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE4MDAwMCwzOC42NDYyMDYsLTEyMS40NDI3NjcNMTY3NSBWRVJOT04gU1QgVW5pdCAyNCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDExNzQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNzM0MTM2LC0xMjEuMjk5NjM5DTI0IFdJTkRDSElNRSBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxNTkzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTgxMDAwLDM4LjQ0NjE3LC0xMjEuNDI3ODI0DTU0MCBIQVJMSU5HIENULFJJTyBMSU5EQSw5NTY3MyxDQSwzLDIsMTA5MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE4MjAwMCwzOC42ODI3OSwtMTIxLjQ1MzUwOQ0xMjA3IENSRVNDRU5ETyBEUixST1NFVklMTEUsOTU2NzgsQ0EsMywyLDE3NzAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODI1ODcsMzguNzI0NDYsLTEyMS4yOTI4MjkNNzU3NyBFRERZTEVFIFdBWSxTQUNSQU1FTlRPLDk1ODIyLENBLDQsMiwxNDM2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTg1MDc0LDM4LjQ4MjkxLC0xMjEuNDkxNTA5DTgzNjkgRk9QUElBTk8gV0FZLFNBQ1JBTUVOVE8sOTU4MjksQ0EsMywyLDExMjQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODU4MzMsMzguNDUzODM5LC0xMjEuMzU3OTE5DTg4MTcgU0FXVEVMTEUgV0FZLFNBQ1JBTUVOVE8sOTU4MjYsQ0EsNCwyLDExMzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODY3ODUsMzguNTY1MzIyLC0xMjEuMzc0MjUxDTE5MTAgQk9OQVZJU1RBIFdBWSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMiwxNjM4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTg3MDAwLDM4LjQ3NjA0OCwtMTIxLjQ5NDk2MQ04IFRJREUgQ1QsU0FDUkFNRU5UTyw5NTgzMyxDQSwzLDIsMTMyOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODMzNSwzOC42MDk4NjQsLTEyMS40OTIzMDQNODk1MiBST0NLWSBDUkVFSyBDVCxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEyNzMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTAwMDAsMzguNDMxMjM5LC0xMjEuNDQwMDENNDM1IEVYQ0hBTkdFIFNULFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywxLDEwODIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTAwMDAsMzguNjU5NDM0LC0xMjEuNDU1MjM2DTEwMTA1IE1PTlRFIFZBTExPIENULFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNCwyLDE1NzgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTAwMDAsMzguNTczOTE3LC0xMjEuMzE2OTE2DTM5MzAgQU5OQUJFTExFIEFWRSxST1NFVklMTEUsOTU2NjEsQ0EsMiwxLDc5NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5MDAwMCwzOC43Mjc2MDksLTEyMS4yMjY0OTQNNDg1NCBUQU5HRVJJTkUgQVZFLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEzODYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTEyNTAsMzguNDc4MjM5LC0xMjEuNDQ2MzI2DTI5MDkgU0hBV04gV0FZLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDMsMiwxNDUyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTkzMDAwLDM4LjU4OTkyNSwtMTIxLjI5OTA1OQ00MjkwIEJMQUNLRk9SRCBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTUxMyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5MzUwMCwzOC40NzA0OTQsLTEyMS40NTQxNjINNTg5MCBUVCBUUkFLLEZPUkVTVEhJTEwsOTU2MzEsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTQ4MTgsMzkuMDIwODA4LC0xMjAuODIxNTE4DTcwMTUgV09PRFNJREUgRFIsU0FDUkFNRU5UTyw5NTg0MixDQSw0LDIsMTU3OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5NTAwMCwzOC42OTMwNzEsLTEyMS4zMzIzNjUNNjAxOSBDSEVTSElSRSBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MTAsQ0EsNCwzLDE3MzYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTUwMDAsMzguNjc2NDM3LC0xMjEuMjc5MTY1DTMzMzAgVklMTEFHRSBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsMiwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTUwMDAsMzguNjkwNTA0LC0xMjAuOTk2MjQ1DTI1NjEgVkVSTkEgV0FZLFNBQ1JBTUVOVE8sOTU4MjEsQ0EsMywxLDE0NzMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTUwMDAsMzguNjExMDU1LC0xMjEuMzY5OTY0DTM1MjIgMjJORCBBVkUsU0FDUkFNRU5UTyw5NTgyMCxDQSwzLDEsMTE1MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5ODAwMCwzOC41MzI3MjUsLTEyMS40NjkwNzgNMjg4MCBDQU5ESURPIERSLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMywyLDExMjcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTk5MDAsMzguNjE4MDE5LC0xMjEuNTEwMjE1DTY5MDggUElOIE9BSyBDVCxGQUlSIE9BS1MsOTU2MjgsQ0EsMywxLDExNDQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNjY0MjQsLTEyMS4zMDM2NzUNNTczMyBBTkdFTElOQSBBVkUsQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDEsOTcyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjAxMDAwLDM4LjYyMjYzNCwtMTIxLjMzMDg0Ng03ODQ5IEJPTk5ZIERPV05TIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDIzMDYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDQ5MTgsMzguNDIxMzksLTEyMS40MTEzMzkNODcxNiBMT05HU1BVUiBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDE0NzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNzI0MDgzLC0xMjEuMzU4NA02MzIwIEVMIERPUkFETyBTVCxFTCBET1JBRE8sOTU2MjMsQ0EsMiwxLDEwNDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNjc4NzU4LC0xMjAuODQ0MTE4DTIzMjggRE9ST1RIWSBKVU5FIFdBWSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxNDMwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjA1ODc4LDM4LjY0MTcyNywtMTIxLjQxMjcwMw0xOTg2IERBTlZFUlMgV0FZLFNBQ1JBTUVOVE8sOTU4MzIsQ0EsNCwyLDE4MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDcwMDAsMzguNDc3MjMsLTEyMS40OTI1NjgNNzkwMSBHQVpFTExFIFRSQUlMIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSw0LDIsMTk1MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIwNzc0NCwzOC43MTE3NCwtMTIxLjM0MjY3NQ02MDgwIEJSSURHRUNST1NTIERSLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDExMjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDkwMDAsMzguNjgxOTUyLC0xMjEuNTA1MDA5DTIwIEdST1RIIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxMjMyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjEwMDAwLDM4LjY0MDgwNywtMTIxLjUzMzUyMg0xOTAwIERBTkJST09LIERSLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMSwxLDk4NCxDb25kbyxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIxMDk0NCwzOC42Njg0MzMsLTEyMS41MDM0NzENMTQwIFZFTlRPIENULFJPU0VWSUxMRSw5NTY3OCxDQSwzLDIsMCxDb25kbyxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIxMjUwMCwzOC43OTM1MzMsLTEyMS4yODk2ODUNODQ0MiBLRVVTTUFOIFNULEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMjMyOSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIxMzc1MCwzOC40NDk2NTEsLTEyMS40MTQ3MDQNOTU1MiBTVU5MSUdIVCBMTixFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEzNTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMTUwMDAsMzguNDEwNTYxLC0xMjEuNDA0MzI3DTI3MzMgWVVNQSBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsMiwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMTUwMDAsMzguNjkxMjE1LC0xMjAuOTk0OTQ5DTE0MDcgVElGRkFOWSBDSVIsUk9TRVZJTExFLDk1NjYxLENBLDQsMSwxMzc2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjczNjM5MiwtMTIxLjI2NjQNNjM2IENSRVNUVklFVyBEUixESUFNT05EIFNQUklOR1MsOTU2MTksQ0EsMywyLDEzMDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMTYwMzMsMzguNjg4MjU1LC0xMjAuODEwMjM1DTE1MjggSEVTS0VUIFdBWSxTQUNSQU1FTlRPLDk1ODI1LENBLDQsMiwxNTY2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjIwMDAwLDM4LjU5MzU5OCwtMTIxLjQwMzYzNw0yMzI3IDMyTkQgU1QsU0FDUkFNRU5UTyw5NTgxNyxDQSwyLDEsMTExNSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC41NTc0MzMsLTEyMS40NzAzNA0xODMzIDJORCBBVkUsU0FDUkFNRU5UTyw5NTgxOCxDQSwyLDEsMTAzMixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC41NTY4MTgsLTEyMS40OTA2NjkNNzI1MiBDQVJSSUFHRSBEUixDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTQxOSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC42OTgwNTgsLTEyMS4yOTQ4OTMNOTgxNSBQQVNPIEZJTk8gV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSwzLDIsMTI2MSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC40MDQ4ODgsLTEyMS40NDM5OTgNNTUzMiBFTkdMRSBSRCxDQVJNSUNIQUVMLDk1NjA4LENBLDIsMiwxNjM3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjIwNzAyLDM4LjYzMTczLC0xMjEuMzM1Mjg2DTExMzkgQ0xJTlRPTiBSRCxTQUNSQU1FTlRPLDk1ODI1LENBLDQsMiwxNzc2LE11bHRpLUZhbWlseSxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMTI1MCwzOC41ODUyOTEsLTEyMS40MDY4MjQNOTE3NiBTQUdFIEdMRU4gV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSwzLDIsMTMzOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjAwMCwzOC40MjM5MTMsLTEyMS40MzkxMTUNOTk2NyBIQVRIRVJUT04gV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjUwMCwzOC4zMDUyLC0xMjEuNDAzMw05MjY0IEJPVUxERVIgUklWRVIgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw1LDIsMjI1NCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjc1MCwzOC40MjE3MTMsLTEyMS4zNDUxOTENMzIwIEdST1RIIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNDQxLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjYzODg4MiwtMTIxLjUzMTg4Mw0xMzcgR1VOTklTT04gQVZFLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsNCwyLDE5OTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMjUwMDAsMzguNjUwNzI5LC0xMjEuNDY2NDgzDTgyMDkgUklWQUxMTyBXQVksU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDMsMjEyNixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyODc1MCwzOC40NTk1MjQsLTEyMS4zNTAxDTg2MzcgUEVSSVdJTktMRSBDSVIsRUxLIEdST1ZFLDk1NjI0LENBLDMsMiwxMDk0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjI5MDAwLDM4LjQ0MzE4NCwtMTIxLjM2NDM4OA0zNDI1IE1FQURPVyBXQVksUk9DS0xJTiw5NTY3NyxDQSwzLDIsMTQ2MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIzMDA5NSwzOC43OTgwMjgsLTEyMS4yMzUzNjQNMTA3IEpBUlZJUyBDSVIsU0FDUkFNRU5UTyw5NTgzNCxDQSw1LDMsMjI1OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjUwMCwzOC42Mzk4OTEsLTEyMS41Mzc2MDMNMjMxOSBUSE9SRVMgU1QsUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywyLDEwNzQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMzMwMDAsMzguNTk2NzUsLTEyMS4zMTI3MTYNODkzNSBNT1VOVEFJTiBIT01FIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMjExMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIzMzUwMCwzOC4zODc1MSwtMTIxLjM3MDI3Ng0yNTY2IFNFUkVOQVRBIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDMsMiwxNjg2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjM5MDAwLDM4LjY3MTU1NiwtMTIxLjUyMDkxNg00MDg1IENPVU5UUlkgRFIsQU5URUxPUEUsOTU4NDMsQ0EsNCwzLDE5MTUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDAwMDAsMzguNzA2MjA5LC0xMjEuMzY5NTA5DTkyOTcgVFJPVVQgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMjM2NyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI0MDAwMCwzOC40MjA2MzcsLTEyMS4zNzU3OTgNNyBBUkNISUJBTEQgQ1QsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTk2MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI0MDk3MSwzOC40NDMzMDUsLTEyMS40MzUyOTYNMTExMzAgRUVMIFJJVkVSIENULFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDIsMiwxNDA2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQyMDAwLDM4LjYyNTkzMiwtMTIxLjI3MTUxNw04MzIzIFJFREJBTksgV0FZLFNBQ1JBTUVOVE8sOTU4MjksQ0EsMywyLDE3ODksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDM0NTAsMzguNDU1NzUzLC0xMjEuMzQ5MjczDTE2IEJST05DTyBDUkVFSyBDVCxTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwxODc2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQzNTAwLDM4LjY3NDIyNiwtMTIxLjUyNTQ5Nw04MzE2IE5PUlRIQU0gRFIsQU5URUxPUEUsOTU4NDMsQ0EsMywyLDEyMzUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDY1NDQsMzguNzIwNzY3LC0xMjEuMzc2Njc4DTQyNDAgV0lOSkUgRFIsQU5URUxPUEUsOTU4NDMsQ0EsNCwyLDI1MDQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDY3NTAsMzguNzA4ODQsLTEyMS4zNTk1NTkNMzU2OSBTT0RBIFdBWSxTQUNSQU1FTlRPLDk1ODM0LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQ3MDAwLDM4LjYzMTEzOSwtMTIxLjUwMTg3OQ01MTE4IFJPQkFOREVSIFNULENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDE2NzYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDcwMDAsMzguNjU3MjY3LC0xMjEuMzEwMzUyDTU5NzYgS1lMRU5DSCBDVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTM2NyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI0OTAwMCwzOC43MDg5NjYsLTEyMS4zMjQ2Nw05MjQ3IERFTEFJUiBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDQsMywxODk5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQ5MDAwLDM4LjQyMjI0MSwtMTIxLjQ1ODAyMg05MDU0IERFU0NFTkRBTlQgRFIsRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxNjM2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjUwMDAwLDM4LjQyODg1MiwtMTIxLjQxNTYyOA0zNDUwIFdISVROT1IgQ1QsU0FDUkFNRU5UTyw5NTgyMSxDQSwzLDIsMTgyOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI1MDAwMCwzOC42Mjc2OTgsLTEyMS4zNjk2OTgNNjI4OCBMT05FVFJFRSBCTFZELFJPQ0tMSU4sOTU3NjUsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNTAwMDAsMzguODA0OTkzLC0xMjEuMjkzNjA5DTkzNTUgTUFUQURPUiBXQVksU0FDUkFNRU5UTyw5NTgyNixDQSw0LDIsMTQzOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI1MjAwMCwzOC41NTU2MzMsLTEyMS4zNTA2OTENODY3MSBTVU1NRVIgU1VOIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDE0NTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNTUwMDAsMzguNDQyODQ1LC0xMjEuMzczMjcyDTE4OTAgR0VORVZBIFBMLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMywxLDE1MjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNTUwMDAsMzguNTk5NDQ5LC0xMjEuNDAwMzA1DTE4MTMgQVZFTklEQSBNQVJUSU5BLFJPU0VWSUxMRSw5NTc0NyxDQSwzLDIsMTUwNixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI1NTAwMCwzOC43NzY2NDksLTEyMS4zMzk1ODkNMTkxIEJBUk5IQVJUIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwyNjA1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjU3MjAwLDM4LjY3NTU5NCwtMTIxLjUxNTg3OA02MjIxIEdSRUVOIFRPUCBXQVksT1JBTkdFVkFMRSw5NTY2MixDQSwzLDIsMTE5NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI2MDAwMCwzOC42Nzk0MDksLTEyMS4yMTkxMDcNMjI5OCBQUklNUk9TRSBMTixMSU5DT0xOLDk1NjQ4LENBLDMsMiwxNjIxLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjYwMDAwLDM4Ljg5OTE4LC0xMjEuMzIyNTE0DTU2MzUgTE9TIFBVRUJMT1MgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE4MTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNjM1MDAsMzguNjc5MTkxLC0xMjEuNTM3NjIyDTEwMTY1IExPRlRPTiBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxNTQwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjY2NTEwLDM4LjM4NzcwOCwtMTIxLjQzNjUyMg0xMjUxIEdSRUVOIFJBVklORSBEUixMSU5DT0xOLDk1NjQ4LENBLDQsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjY3NzUwLDM4Ljg4MTU2LC0xMjEuMzAxMzQzDTYwMDEgU0hPTyBGTFkgUkQsUExBQ0VSVklMTEUsOTU2NjcsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzAwMDAsMzguODEzNTQ2LC0xMjAuODA5MjU0DTMwNDAgUEFSS0hBTSBEUixST1NFVklMTEUsOTU3NDcsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzEwMDAsMzguNzcwODM1LC0xMjEuMzY2OTk2DTI2NzQgVEFNIE8gU0hBTlRFUiBEUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzI3MDAsMzguNjk1ODAxLC0xMjEuMDc5MjE2DTYwMDcgTUFSWUJFTExFIExOLFNISU5HTEUgU1BSSU5HUyw5NTY4MixDQSwwLDAsMCxVbmtvd24sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzUwMDAsMzguNjQzNDcsLTEyMC44ODgxODMNOTk0OSBORVNUTElORyBDSVIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxNTQzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjc1MDAwLDM4LjM5NzQ1NSwtMTIxLjQ2ODM5MQ0yOTE1IEhPTERSRUdFIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDUsMywyNDk0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjc2MDAwLDM4LjY2MzcyOCwtMTIxLjUyNTgzMw0yNjc4IEJSSUFSVE9OIERSLExJTkNPTE4sOTU2NDgsQ0EsMywyLDE2NTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzY1MDAsMzguODQ0MTE2LC0xMjEuMjc0ODA2DTI5NCBTUEFSUk9XIERSLEdBTFQsOTU2MzIsQ0EsNCwzLDIyMTQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzgwMDAsMzguMjU4OTc2LC0xMjEuMzIxMjY2DTI5ODcgRElPUklURSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSw1LDMsMjI4MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI3OTAwMCwzOC42NjczMzIsLTEyMS41MjgyNzYNNjMyNiBBUFBJQU4gV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDE0NDMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyODAwMDAsMzguNjYyNjYsLTEyMS4zMTY4NTgNNjkwNSBDT0JBTFQgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDQsMiwxNTgyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjgwMDAwLDM4LjY5MTM5MywtMTIxLjMwNTIxNQ04OTg2IEhBRkxJTkdFUiBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxODU3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjg1MDAwLDM4LjM5NzkyMywtMTIxLjQ1MDIxOQ0yOTE2IEJBQlNPTiBEUixFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE3MzUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyODgwMDAsMzguNDE3MTkxLC0xMjEuNDczODk3DTEwMTMzIE5FQkJJT0xPIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDMsMjA5NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI4OTAwMCwzOC4zOTEwODUsLTEyMS4zNDcyMzENMTEwMyBDT01NT05TIERSLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMywyLDE3MjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTAwMDAsMzguNTY3ODY1LC0xMjEuNDEwNjk5DTQ2MzYgVEVBTCBCQVkgQ1QsQU5URUxPUEUsOTU4NDMsQ0EsNCwyLDIxNjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTAwMDAsMzguNzA0NTU0LC0xMjEuMzU0NzUzDTE1MjQgWU9VTkdTIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDQsMiwxMzgyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjkzOTk2LDM4LjY0NDkyNywtMTIxLjQzMDU0DTg2NSBDT05SQUQgQ1QsUExBQ0VSVklMTEUsOTU2NjcsQ0EsMywyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTQwMDAsMzguNzI5OTkzLC0xMjAuODAyNDU4DTg0NjMgVEVSUkFDT1RUQSBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsNCwyLDE3MjEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTQxNzMsMzguNDUwNTQ4LC0xMjEuMzYzMDAyDTU3NDcgS0lORyBSRCxMT09NSVMsOTU2NTAsQ0EsNCwyLDEzMjgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTUwMDAsMzguODI1MDk2LC0xMjEuMTk4NDMyDTgyNTMgS0VFR0FOIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTgwMDAsMzguNDQ2Mjg2LC0xMjEuNDAwODE3DTkyMDQgVFJPVVQgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMTk4MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI5ODAwMCwzOC40MjIyMjEsLTEyMS4zNzU3OTkNMTgyOCAyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MTgsQ0EsMiwxLDExNDQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTkwMDAsMzguNTU2ODQ0LC0xMjEuNDkwNzY5DTExMTMgQ09NTU9OUyBEUixTQUNSQU1FTlRPLDk1ODI1LENBLDIsMiwxNjIzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjU2Nzc5NSwtMTIxLjQxMDcwMw0yMzQxIEJJRyBTVFJJS0UgVFJMLENPT0wsOTU2MTQsQ0EsMywyLDE0NTcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzMDAwMDAsMzguOTA1OTI3LC0xMjAuOTc1MTY5DTk0NTIgUkVEIFNQUlVDRSBXQVksRUxLIEdST1ZFLDk1NjI0LENBLDYsMywyNTU1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjQwNDUwNSwtMTIxLjM0NjkzOA01Nzc2IFRFUlJBQ0UgRFIsUk9DS0xJTiw5NTc2NSxDQSwzLDIsMTU3NyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMwMDU2NywzOC44MDA1MzksLTEyMS4yNjA5NzkNNTkwOCBNQ0xFQU4gRFIsRUxLIEdST1ZFLDk1NzU3LENBLDUsMywyNTkyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzAzMDAwLDM4LjM4OTEyLC0xMjEuNDM0Mzg5DTgyMTUgUEVSRUdSSU5FIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSwzLDIsMTQwMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMwNTAwMCwzOC43MTU0OTMsLTEyMS4yNjI5Mw0xMTA0IEhJTExTREFMRSBMTixMSU5DT0xOLDk1NjQ4LENBLDQsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzA2MDAwLDM4Ljg2NTAxNywtMTIxLjMyMzAyDTI5NDkgUEFOQU1BIEFWRSxDQVJNSUNIQUVMLDk1NjA4LENBLDMsMiwxNTAyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEwMDAwLDM4LjYxODM2OSwtMTIxLjMyNjE4Nw0xMzU2IEhBUlRMRVkgV0FZLEZPTFNPTSw5NTYzMCxDQSwzLDIsMTMyNyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxMDAwMCwzOC42NTE2MTcsLTEyMS4xMzE2NzQNNjMzIEhBTklTQ0ggRFIsUk9TRVZJTExFLDk1Njc4LENBLDQsMywxODAwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEwMDAwLDM4Ljc2MzQ5LC0xMjEuMjc1ODgxDTYzIEFOR0VMIElTTEFORCBDSVIsU0FDUkFNRU5UTyw5NTgzMSxDQSw0LDIsMjE2OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxMTUxOCwzOC40OTA0MDgsLTEyMS41NDc2NjQNMTU3MSBXSUxEIE9BSyBMTixMSU5DT0xOLDk1NjQ4LENBLDUsMywyNDU3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEyMDAwLDM4Ljg0NDE0NCwtMTIxLjI3NDE3NA01MjIyIENPUFBFUiBTVU5TRVQgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEzMDAwLDM4LjUyOTE4MSwtMTIxLjIyNDc1NQ01NjAxIFNQSU5EUklGVCBMTixPUkFOR0VWQUxFLDk1NjYyLENBLDQsMiwyMDA0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4LjY2ODI4OSwtMTIxLjE5MjMxNg02NTIgRklGVEVFTiBNSUxFIERSLFJPU0VWSUxMRSw5NTY3OCxDQSw0LDMsMjIxMixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxNTAwMCwzOC43NzU4NzIsLTEyMS4yOTg4NjQNNzkyMSBET0UgVFJBSUwgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDUsMywzMTM0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4LjcxMTkyNywtMTIxLjM0MzYwOA00MjA0IExVU0sgRFIsU0FDUkFNRU5UTyw5NTg2NCxDQSwzLDIsMTM2MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxNTAwMCwzOC42MDY1NjksLTEyMS4zNjg0MjQNNTMyMSBERUxUQSBEUixST0NLTElOLDk1NzY1LENBLDQsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4LjgxNTQ5MywtMTIxLjI2MjkwOA01NjA4IFJPU0VEQUxFIFdBWSxTQUNSQU1FTlRPLDk1ODIyLENBLDMsMiwxMjc2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzIwMDAwLDM4LjUyNTExNSwtMTIxLjUxODY4OQ0zMzcyIEJFUkVUQU5JQSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSw0LDMsMjk2MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMyMjAwMCwzOC42NDk3NywtMTIxLjUzNDQ4DTI0MjIgU1RFRkFOSUUgRFIsUk9DS0xJTiw5NTc2NSxDQSw0LDIsMTg4OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMyNTAwMCwzOC44MjI3MywtMTIxLjI2NDI0DTMyMzIgUEFSS0hBTSBEUixST1NFVklMTEUsOTU3NDcsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzMjU1MDAsMzguNzcyODIxLC0xMjEuMzY0ODIxDTQ0OCBFTE1XT09EIENULFJPU0VWSUxMRSw5NTY3OCxDQSwzLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMyNjk1MSwzOC43NzE5MTcsLTEyMS4zMDQ0MzkNMTIxNCBEQVdOV09PRCBEUixHQUxULDk1NjMyLENBLDMsMiwxNTQ4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzI4MzcwLDM4LjI5MDExOSwtMTIxLjI4NjAyMw0xNDQwIEVNRVJBTEQgTE4sTElOQ09MTiw5NTY0OCxDQSwyLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMzMDAwMCwzOC44NjE4NjQsLTEyMS4yNjc0NzgNMzM0OSBDT1JWSU5BIERSLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDQsMywyMTA5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzMwMDAwLDM4LjU4MDU0NSwtMTIxLjI3OTAxNg0xMDI1NCBKVUxJQU5BIFdBWSxTQUNSQU1FTlRPLDk1ODI3LENBLDQsMiwyNDg0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzMxMjAwLDM4LjU2ODAzLC0xMjEuMzA5OTY2DTE0OSBPUFVTIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDQsMywyMjU4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzMyMDAwLDM4LjYzNTQsLTEyMS41MzQ5OQ01ODAgUkVHRU5DWSBQQVJLIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDMsMywyMjEyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzM0MDAwLDM4LjY3NDg2NCwtMTIxLjQ5NTgNNTU0NCBDQU1BUyBDVCxPUkFOR0VWQUxFLDk1NjYyLENBLDMsMiwxNjE2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzM1MDAwLDM4LjY2NzcwMywtMTIxLjIwOTQ1Ng01MTAyIEFSQ0hDUkVTVCBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDIsMjM3MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM0MTAwMCwzOC42Njg0MSwtMTIxLjQ5NDYzOQ01NzI1IEJBTEZPUiBSRCxST0NLTElOLDk1NzY1LENBLDUsMywyNjA2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzQ2Mzc1LDM4LjgwNzgxNiwtMTIxLjI3MDAwOA03Njk3IFJPU0VIQUxMIERSLFJPU0VWSUxMRSw5NTY3OCxDQSw1LDMsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM0NzIyNSwzOC43OTIxOCwtMTIxLjI4NTk1DTQ4MjEgSFVUU09OIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNSwzLDI4NzcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNDkwMDAsMzguMzg2MjM5LC0xMjEuNDQ4MTU5DTQ1MDkgV0lOSkUgRFIsQU5URUxPUEUsOTU4NDMsQ0EsMywyLDI5NjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNTAwMDAsMzguNzA5NTEzLC0xMjEuMzU5MzU3DTE5NjUgTEFVUkVMSFVSU1QgTE4sTElOQ09MTiw5NTY0OCxDQSwyLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM1MDAwMCwzOC44NTM4NjksLTEyMS4yNzE3NDINNjcwOSBST1NFIEJSSURHRSBEUixST1NFVklMTEUsOTU2NzgsQ0EsMywyLDIxNzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNTAwMDAsMzguNzkyNDYxLC0xMjEuMjc1NzExDTI4MSBTUFlHTEFTUyBITCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDIxMDAsQ29uZG8sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNTAwMDAsMzguNzYyMTUzLC0xMjEuMjgzNDUxDTc3MDkgUklWRVIgVklMTEFHRSBEUixTQUNSQU1FTlRPLDk1ODMxLENBLDMsMiwxNzk1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzUxMDAwLDM4LjQ4MzIxMiwtMTIxLjU0MDE5DTQxNjUgQlJJU0JBTkUgQ0lSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSwzLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM1NjIwMCwzOC42ODYwNjcsLTEyMS4wNzM0MTMNNTA2IEJFREZPUkQgQ1QsUk9TRVZJTExFLDk1NjYxLENBLDQsMiwyMjk1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzYwMDAwLDM4LjczMzk4NSwtMTIxLjIzNjc2Ng05MDQ4IFBJTlRPIENBTllPTiBXQVksUk9TRVZJTExFLDk1NzQ3LENBLDQsMywyNTc3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzY3NDYzLDM4Ljc5MjQ5MywtMTIxLjMzMTg5OQ0yMjc0IElWWSBCUklER0UgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzc1MDAwLDM4Ljc3ODU2MSwtMTIxLjM2MjAwOA0xNDAwNCBXQUxOVVQgQVZFLFdBTE5VVCBHUk9WRSw5NTY5MCxDQSwzLDEsMTcyNyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM4MDAwMCwzOC4yNDc2NTksLTEyMS41MTUxMjkNNjkwNSBGUkFOS0ZPUlQgQ1QsRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxNDg1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzgwNTc4LDM4LjQyOTEzOSwtMTIxLjQyMzQ0NA0zNjIxIFdJTlRVTiBEUixDQVJNSUNIQUVMLDk1NjA4LENBLDMsMiwxNjU1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzg2MjIyLDM4LjYyOTkyOSwtMTIxLjMyMzA4Ng0yMDEgS0lSS0xBTkQgQ1QsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM4OTAwMCwzOC44NjcxMjUsLTEyMS4zMTkwODUNMTIwNzUgQVBQTEVTQlVSWSBDVCxSQU5DSE8gQ09SRE9WQSw5NTc0MixDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM5MDAwMCwzOC41MzU3LC0xMjEuMjI0OQ0xOTc1IFNJREVTQURETEUgV0FZLFJPU0VWSUxMRSw5NTY2MSxDQSwzLDIsMjA0OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM5NTUwMCwzOC43Mzc4NzIsLTEyMS4yNDkwMjUNNTQyMCBBTE1PTkQgRkFMTFMgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzk2MDAwLDM4LjUyNzM4NCwtMTIxLjIzMzUzMQ05Njc3IFBJTExJVEVSSSBDVCxFTEsgR1JPVkUsOTU3NTcsQ0EsNSwzLDI4NzUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzOTcwMDAsMzguNDA1NTcxLC0xMjEuNDQ1MTg2DTE1MTUgRUwgQ0FNSU5PIFZFUkRFIERSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MDAwMDAsMzguOTA0ODY5LC0xMjEuMzIwNzUNNTU2IFBMQVRUIENJUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsNCwyLDIxOTksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MDAwMDAsMzguNjU2Mjk5LC0xMjEuMDc5NzgzDTE3OTIgRElBTU9ORCBXT09EUyBDSVIsUk9TRVZJTExFLDk1NzQ3LENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDEyNTAwLDM4LjgwODU4MSwtMTIxLjMyNzg1DTExMjQgUEVSS0lOUyBXQVksU0FDUkFNRU5UTyw5NTgxOCxDQSwyLDEsMTMwNCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQxMzUwMCwzOC41NTE2MTEsLTEyMS41MDQ0MzcNNDc0OCBTQUxFTSBXQVksQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDIsMjMzNCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQxNTAwMCwzOC42MzQxMTEsLTEyMS4zNTMzNzYNMTQ4NCBSQURDTElGRkUgV0FZLEFVQlVSTiw5NTYwMyxDQSw0LDMsMjI3OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQyMDQ1NCwzOC45MzU1NzksLTEyMS4wNzkwMTgNNTEgQUlLRU4gV0FZLFNBQ1JBTUVOVE8sOTU4MTksQ0EsMywxLDE0OTMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MjUwMDAsMzguNTc5MzI2LC0xMjEuNDQyNTINMjgxOCBLTk9MTFdPT0QgRFIsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDMsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDI1MDAwLDM4LjY2OTgwNSwtMTIwLjk5OTAwNw0xNTM2IFNUT05FWSBDUk9TUyBMTixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDMzNTAwLDM4Ljg2MDAwNywtMTIxLjMxMDk0Ng01MDkgQ0FTVElMTElBTiBDVCxST1NFVklMTEUsOTU3NDcsQ0EsNSwzLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MzgwMDAsMzguODA0NzczLC0xMjEuMzQxMTk1DTcwMCBIVU5URVIgUEwsRk9MU09NLDk1NjMwLENBLDUsMywyNzg3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDQxMDAwLDM4LjY2MDUxLC0xMjEuMTYzNjg5DTEyNDAgRkFZIENJUixTQUNSQU1FTlRPLDk1ODMxLENBLDUsMywyODI0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDQ1MDAwLDM4LjUwNjM3MSwtMTIxLjUxNDQ1Ng0xMTEzIFNBTkRXSUNLIFdBWSxGT0xTT00sOTU2MzAsQ0EsNCwzLDMyNjEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0NDYwMDAsMzguNjczODgyLC0xMjEuMTA1MDc3DTMxMDggREVMV09PRCBXQVksU0FDUkFNRU5UTyw5NTgyMSxDQSw0LDIsMjA1MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQ1MDAwMCwzOC42MjE1NjYsLTEyMS4zNzA4ODINMzIxMiBDT1JOSUNIRSBMTixST1NFVklMTEUsOTU2NjEsQ0EsNCwzLDIzNzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0NTUwMDAsMzguNzUwNTc3LC0xMjEuMjMyNzY4DTIxNTkgQkVDS0VUVCBEUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMywyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0NjAwMDAsMzguNjgwMDkyLC0xMjEuMDM2NDY3DTQzMjAgRk9VUiBTRUFTT05TIFJELFBMQUNFUlZJTExFLDk1NjY3LENBLDMsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDc1MDAwLDM4LjY5MDg2NywtMTIwLjY5MzY0MQ02NDAxIE1BUlNIQUxMIFJELEdBUkRFTiBWQUxMRVksOTU2MzMsQ0EsMywyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0OTAwMDAsMzguODQyNTUsLTEyMC44NzU0DTIwODkgQkVDS0VUVCBEUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0OTMwMDAsMzguNjgxNzc4LC0xMjEuMDM1ODM4DTYxOTYgRURHRUhJTEwgRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDUsNCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTA4MDAwLDM4LjY3NjEzMSwtMTIxLjAzODkzMQ0yMDAgSElMTFNGT1JEIENULFJPU0VWSUxMRSw5NTc0NyxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDUxMTAwMCwzOC43ODAwNTEsLTEyMS4zNzg3MTgNODIxNyBQTFVNRVJJQSBBVkUsRkFJUiBPQUtTLDk1NjI4LENBLDMsMiwzMTczLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTI1MDAwLDM4LjY1MDczNSwtMTIxLjI1ODYyOA00ODQxIFZJTExBR0UgR1JFRU4gRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTMzMDAwLDM4LjY2NDA2NiwtMTIxLjA1NjczNQ0zODYzIExBUyBQQVNBUyBXQVksU0FDUkFNRU5UTyw5NTg2NCxDQSwzLDEsMTM0OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDU0NTAwMCwzOC41ODg5MzYsLTEyMS4zNzM2MDYNODIwIERBTkEgQ1QsQVVCVVJOLDk1NjAzLENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTYwMDAwLDM4Ljg2NTI0NiwtMTIxLjA5NDg2OQ0xMTY1IDM3VEggU1QsU0FDUkFNRU5UTyw5NTgxNixDQSwyLDEsMTI1MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDU3NTAwMCwzOC41Njg0MzgsLTEyMS40NTc4NTQNMjAzIENBU0NBREUgRkFMTFMgRFIsRk9MU09NLDk1NjMwLENBLDQsMywzMjI5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTc1MDAwLDM4LjcwMzk2MiwtMTIxLjE4NzENOTg4MCBJWklMREEgQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw1LDQsMzg2MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDU5ODY5NSwzOC40NTMyNiwtMTIxLjMyNTczDTE4MDAgQVZPTkRBTEUgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDUsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4Ljc5ODQ0OCwtMTIxLjM0NDA1NA00NjIwIEJST01XSUNIIENULFJPQ0tMSU4sOTU2NzcsQ0EsNCwzLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2MDAwMDAsMzguNzcyNjcyLC0xMjEuMjIwMjMyDTYyMCBLRVNXSUNLIENULEdSQU5JVEUgQkFZLDk1NzQ2LENBLDQsMywyMzU2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4LjczMjA5NiwtMTIxLjIxOTE0Mg00NDc4IEdSRUVOQlJBRSBSRCxST0NLTElOLDk1Njc3LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4Ljc4MTEzNCwtMTIxLjIyMjgwMQ04NDMyIEJSSUdHUyBEUixST1NFVklMTEUsOTU3NDcsQ0EsNSwzLDM1NzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2MTAwMDAsMzguNzg4NjEsLTEyMS4zMzk0OTUNMjAwIENSQURMRSBNT1VOVEFJTiBDVCxFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2MjI1MDAsMzguNjQ3OCwtMTIxLjAzMDkNMjA2NSBJTVBSRVNTSU9OSVNUIFdBWSxFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2ODAwMDAsMzguNjgyOTYxLC0xMjEuMDMzMjUzDTI5ODIgQUJFUkRFRU4gTE4sRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsODc5MDAwLDM4LjcwNjY5MiwtMTIxLjA1ODg2OQ05NDAxIEJBUlJFTCBSQUNFUiBDVCxXSUxUT04sOTU2OTMsQ0EsNCwzLDQ0MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw4ODQ3OTAsMzguNDE1Mjk4LC0xMjEuMTk0ODU4DTM3MjAgVklTVEEgREUgTUFERVJBLExJTkNPTE4sOTU2NDgsQ0EsMywzLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNTUxLDM4Ljg1MTY0NSwtMTIxLjIzMTc0Mg0xNDE1MSBJTkRJTyBEUixTTE9VR0hIT1VTRSw5NTY4MyxDQSwzLDQsNTgyMixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIwMDAsMzguNDkwNDQ3LC0xMjEuMTI5MzM3DTc0MDEgVE9VTE9OIExOLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE1MTIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw1Njk1MCwzOC40ODg2MjgsLTEyMS4zODc3NTkNOTEyNyBORVdIQUxMIERSIFVuaXQgMzQsU0FDUkFNRU5UTyw5NTgyNixDQSwxLDEsNjExLENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAsMzguNTQyNDE5LC0xMjEuMzU5OTA0DTU5MzcgQkFNRk9SRCBEUixTQUNSQU1FTlRPLDk1ODIzLENBLDIsMSw4NzYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw2MTAwMCwzOC40NzExMzksLTEyMS40MzIyNTUNNTY3MiBISUxMU0RBTEUgQkxWRCxTQUNSQU1FTlRPLDk1ODQyLENBLDIsMSw5MzMsQ29uZG8sVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw2MjAwMCwzOC42NzA0NjcsLTEyMS4zNTk3OTkNMzkyMCAzOVRIIFNULFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDg2NCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDY4NTY2LDM4LjUzOTIxMywtMTIxLjQ2MzkzDTcwMSBKRVNTSUUgQVZFLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMiwxLDEwMTEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw3MDAwMCwzOC42NDM5NzgsLTEyMS40NDk1NjINODMgQVJDQURFIEJMVkQsU0FDUkFNRU5UTyw5NTgxNSxDQSw0LDIsMTE1OCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDgwMDAwLDM4LjYxODcxNiwtMTIxLjQ2NjMyNw02MDEgUkVHR0lOQUxEIFdBWSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMDkyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsODU1MDAsMzguNjQ0NzIsLTEyMS40NTIyMjgNNTUwIERFTCBWRVJERSBDSVIsU0FDUkFNRU5UTyw5NTgzMyxDQSwyLDEsOTU2LENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsOTIwMDAsMzguNjI3MTQ3LC0xMjEuNTAwNzk5DTQxMTMgREFZU1RBUiBDVCxTQUNSQU1FTlRPLDk1ODI0LENBLDIsMiwxMTM5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsOTM2MDAsMzguNTIwNDY5LC0xMjEuNDU4NjA2DTczNzQgVElTREFMRSBXQVksU0FDUkFNRU5UTyw5NTgyMixDQSwzLDEsMTA1OCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDk1MDAwLDM4LjQ4ODIzOCwtMTIxLjQ3MjU2MQ0zMzQ4IFJJTyBMSU5EQSBCTFZELFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDEwNDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw5Nzc1MCwzOC42Mjg4NDIsLTEyMS40NDYxMjcNMzkzNSBMSU1FU1RPTkUgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEzNTQsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMDQwMDAsMzguNDg0Mzc0LC0xMjEuNDYzMTU3DTYyMDggR1JBVFRBTiBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMSwxMDUxLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTA1MDAwLDM4LjY3OTI3OSwtMTIxLjM3NjYxNQ03MzkgRSBXT09EU0lERSBMTiBVbml0IEUsU0FDUkFNRU5UTyw5NTgyNSxDQSwxLDEsNjgyLENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTA3NjY2LDM4LjU3ODY3NSwtMTIxLjQwOTk1MQ00MjI1IDQ2VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjQsQ0EsMywxLDExNjEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMDkwMDAsMzguNTExODkzLC0xMjEuNDU3Njc2DTE0MzQgQkVMTCBBVkUsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDEsMTAwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDExMDAwMCwzOC42NDczOTgsLTEyMS40MzI5MTQNNTYyOCBHRU9SR0lBIERSLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDEsMTIyOSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDExMDAwMCwzOC42Njk1ODcsLTEyMS4zNzk4NzkNNzYyOSBCRVRIIFNULFNBQ1JBTUVOVE8sOTU4MzIsQ0EsMywyLDEyNDksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMTI1MDAsMzguNDgwMTI2LC0xMjEuNDg3ODY5DTIyNzcgQkFCRVRURSBXQVksU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTE2MSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDExNDgwMCwzOC40Nzk1OTMsLTEyMS40ODQzNA02NTYxIFdFQVRIRVJGT1JEIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMSwxMDEwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTE2MDAwLDM4LjQ2NTU1MSwtMTIxLjQyNjYxDTMwMzUgRVNURVBBIERSIFVuaXQgNUMsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDAsMCwwLENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTE5MDAwLDM4LjY4MTM5MywtMTIwLjk5NjcxMw01MTM2IENBQk9UIENJUixTQUNSQU1FTlRPLDk1ODIwLENBLDQsMiwxNDYyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTIxNTAwLDM4LjUyODQ3OSwtMTIxLjQxMTgwNg03NzMwIFJPQklORVRURSBSRCxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjY5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTIyMDAwLDM4LjQ3NzA5LC0xMjEuNDEwNTY5DTg3IExBQ0FNIENJUixTQUNSQU1FTlRPLDk1ODIwLENBLDIsMiwxMTg4LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTIzNjc1LDM4LjUzMjM1OSwtMTIxLjQxMTY3DTE2OTEgTk9HQUxFUyBTVCxTQUNSQU1FTlRPLDk1ODM4LENBLDQsMiwxNTcwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTI2ODU0LDM4LjYzMTkyNSwtMTIxLjQyNzc3NQ0zMTE4IDQyTkQgU1QsU0FDUkFNRU5UTyw5NTgxNyxDQSwzLDIsMTA5MyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDEyNzA1OSwzOC41NDYwOTEsLTEyMS40NTc3NDUNNzUxNyA1MFRIIEFWRSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMSw5NjIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMjg2ODcsMzguNTA3MzM5LC0xMjEuNDE2MjY3DTQwNzEgRVZBTElUQSBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTA4OSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDEyOTUwMCwzOC40NjYzODgsLTEyMS40NTg4NjENNzkyOCAzNlRIIEFWRSxTQUNSQU1FTlRPLDk1ODI0LENBLDMsMiwxMTI3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTMwMDAwLDM4LjUyMDQ5LC0xMjEuNDExMzgzDTY2MzEgREVNQVJFVCBEUixTQUNSQU1FTlRPLDk1ODIyLENBLDQsMiwxMzA5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTMxNzUwLDM4LjUwNjM4MiwtMTIxLjQ4MzU3NA03MDQzIDlUSCBBVkUsUklPIExJTkRBLDk1NjczLENBLDIsMSw5NzAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzIwMDAsMzguNjk1NTg5LC0xMjEuNDQ0MTMzDTk3IEtFTk5FTEZPUkQgQ0lSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDExNDQsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzQwMDAsMzguNDYyMzc2LC0xMjEuNDI2NTU2DTI2MzYgVFJPTkVSTyBXQVksUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywxLDEwMDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzQwMDAsMzguNTkzMDQ5LC0xMjEuMzAzMDQNMTUzMCBUT1BBTkdBIExOIFVuaXQgMjA0LExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsQ29uZG8sVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzgwMDAsMzguODg0MTUsLTEyMS4yNzAyNzcNMzYwNCBLT0RJQUsgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMjA2LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTQyMDAwLDM4LjcwNjE3NSwtMTIxLjM3OTc3Ng0yMTQ5IENPVFRBR0UgV0FZLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMywxLDEyODUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNDMwMTIsMzguNjAzNTkzLC0xMjEuNDE3MDExDTg2MzIgUFJBSVJJRVdPT0RTIERSLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDE1NDMsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNDU4NDYsMzguNDc3NTYzLC0xMjEuMzg0MzgyDTYxMiBTVE9ORSBCTFZELFdFU1QgU0FDUkFNRU5UTyw5NTY5MSxDQSwyLDEsODg0LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTQ3MDAwLDM4LjU2MzA4NCwtMTIxLjUzNTU3OQ00MTgwIDEyVEggQVZFLFNBQ1JBTUVOVE8sOTU4MTcsQ0EsMywxLDEwMTksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNDg3NTAsMzguNTQxMTcsLTEyMS40NTgxMjkNODAyNSBBUlJPWU8gVklTVEEgRFIsU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTM5MixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE1MDAwMCwzOC40NjY1NCwtMTIxLjQxOTAyOQ01NzU0IFdBTEVSR0EgUkQgVW5pdCA0LFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMiwxLDkyNCxDb25kbyxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE1MDQ1NCwzOC42NzI1NjcsLTEyMS4zNTY3NTQNOCBMQSBST0NBUyBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMjE3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTUxMDg3LDM4LjQ2NjE2LC0xMjEuNDQ4MjgzDTg2MzYgTE9OR1NQVVIgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxNjcwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTU3Mjk2LDM4LjcyNTg3MywtMTIxLjM1ODU2DTE5NDEgRVhQRURJVElPTiBXQVksU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTMwMixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE1NzUwMCwzOC40NzM3NzUsLTEyMS40OTM3NzcNNDM1MSBUVVJOQlJJREdFIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0ODgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjAwMDAsMzguNTAyMDM0LC0xMjEuNDU2MDI3DTY1MTMgSE9MSURBWSBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMiwxMzczLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTYwMDAwLDM4LjY4NTM2MSwtMTIxLjM3NjkzOA04MzIxIE1JU1RMRVRPRSBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsNCwyLDEzODEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjEyNTAsMzguNzE3NzM4LC0xMjEuMzA4MzIyDTU5MjAgVkFMTEVZIEdMRU4gV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEyNjUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjQwMDAsMzguNDYyODIxLC0xMjEuNDMzMTM1DTI2MDEgU0FOIEZFUk5BTkRPIFdBWSxTQUNSQU1FTlRPLDk1ODE4LENBLDIsMSw4ODEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjUwMDAsMzguNTU2MTc4LC0xMjEuNDc2MjU2DTUwMSBQT1BMQVIgQVZFLFdFU1QgU0FDUkFNRU5UTyw5NTY5MSxDQSwwLDAsMCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE2NTAwMCwzOC41ODQ1MjYsLTEyMS41MzQ2MDkNODAwOCBTQUlOVCBIRUxFTkEgQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDIsMTYwOCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE2NTc1MCwzOC40NjcwMTIsLTEyMS4zNTk5NjkNNjUxNyBET05FR0FMIERSLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMSwxMzQ0LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTY2MDAwLDM4LjY4MTU1NCwtMTIxLjMxMjkzNA0xMDAxIFJJTyBOT1JURSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwzLDIsMTIwMixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE2OTAwMCwzOC42MzQyOTIsLTEyMS40ODUxMDYNNjA0IFAgU1QsTElOQ09MTiw5NTY0OCxDQSwzLDIsMTEwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MDAwMCwzOC44OTMxNjgsLTEyMS4zMDUzOTgNMTAwMDEgV09PRENSRUVLIE9BS1MgQkxWRCBVbml0IDgxNSxST1NFVklMTEUsOTU3NDcsQ0EsMiwyLDAsQ29uZG8sVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNzk1NTI5LC0xMjEuMzI4ODE5DTczNTEgR0lHSSBQTCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxODU5LE11bHRpLUZhbWlseSxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MDAwMCwzOC40OTA2MDYsLTEyMS40MTAxNzMNNzc0MCBESVhJRSBMT1UgU1QsU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTIzMixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MDAwMCwzOC40NzU4NTMsLTEyMS40NzcwMzkNNzM0MiBEQVZFIFNULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywxLDE2MzgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzA3MjUsMzguNDkwODIyLC0xMjEuNDAxNjQzDTc2ODcgSE9XRVJUT04gRFIsU0FDUkFNRU5UTyw5NTgzMSxDQSwyLDIsMTE3NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MTc1MCwzOC40ODA4NTksLTEyMS41Mzk3NDUNMjYgS0FNU09OIENULFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMywyLDE1ODIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzIwMDAsMzguNjIyNzk0LC0xMjEuNDk5MTczDTcwNDUgUEVFVkVZIENULFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMiwyLDkwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MzA1NiwzOC41MDIyNTQsLTEyMS40NTE0NDQNODkxNiBHQUJMRVMgTUlMTCBQTCxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEzNDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzQwMDAsMzguNDMzOTE5LC0xMjEuNDIyMzQ3DTExNDAgRURNT05UT04gRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSwzLDIsMTIwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3NDI1MCwzOC42MjQ1NywtMTIxLjQ4NjkxMw04ODc5IEFQUExFIFBFQVIgQ1QsRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNDc3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTc2ODUwLDM4LjQ0NTc0LC0xMjEuMzcyNQ05IFdJTkQgQ1QsU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTQ5NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3OTUwMCwzOC40NTA3MywtMTIxLjQyNzUyOA04NTcwIFNIRVJBVE9OIERSLEZBSVIgT0FLUyw5NTYyOCxDQSwzLDEsOTYwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTg1MDAwLDM4LjY2NzI1NCwtMTIxLjI0MDcwOA0xNTUwIFRPUEFOR0EgTE4gVW5pdCAyMDcsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxDb25kbyxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODAwMCwzOC44ODQxNywtMTIxLjI3MDIyMg0xMDgwIFJJTyBOT1JURSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwzLDIsMTQyOCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODcwMCwzOC42MzQzMzUsLTEyMS40ODYwOTgNNTUwMSBWQUxMRVRUQSBXQVksU0FDUkFNRU5UTyw5NTgyMCxDQSwzLDEsMTAzOSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4OTAwMCwzOC41MzAxNDQsLTEyMS40Mzc0OQ01NjI0IE1FTU9SWSBMTixGQUlSIE9BS1MsOTU2MjgsQ0EsMywxLDE1MjksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxODkwMDAsMzguNjY3NDUsLTEyMS4yMzY0DTY2MjIgV0lMTE9XTEVBRiBEUixDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDMsMTg5MixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4OTgzNiwzOC42OTk3MTQsLTEyMS4zMTE2MzUNMjcgTUVHQU4gQ1QsU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTg4NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE5MDAwMCwzOC42NDkyNTgsLTEyMS40NjUzMDgNNjYwMSBXT09ETU9SRSBPQUtTIERSLE9SQU5HRVZBTEUsOTU2NjIsQ0EsMywyLDEyOTQsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxOTEyNTAsMzguNjg3MDA2LC0xMjEuMjU0MzE5DTE5NzMgREFOVkVSUyBXQVksU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTYzOCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE5MTY3NSwzOC40Nzc1NjgsLTEyMS40OTI1NzQNODAwMSBBUlJPWU8gVklTVEEgRFIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTY3NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE5NTUwMCwzOC40NjczNCwtMTIxLjQxOTg0Mw03NDA5IFZPWUFHRVIgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMSwxMDczLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTk4MDAwLDM4LjcwMDcxNywtMTIxLjMxMzMNODE1IENST1NTV0lORCBEUixTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMjMxLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjAwMDAwLDM4LjY1MTM4NiwtMTIxLjQ1MDQyDTU1MDkgTEFHVU5BIENSRVNUIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDExNzUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNDI0NDIsLTEyMS40NDAzNTcNODQyNCBNRVJSWSBISUxMIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDE0MTYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNDUyMDc1LC0xMjEuMzY2NDYxDTE1MjUgUEVOTlNZTFZBTklBIEFWRSxXRVNUIFNBQ1JBTUVOVE8sOTU2OTEsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDAxMDAsMzguNTY5OTQzLC0xMjEuNTI3NTM5DTU5NTQgQlJJREdFQ1JPU1MgRFIsU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTM1OCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwMTUyOCwzOC42ODE5NywtMTIxLjUwMDAyNQ04Nzg5IFNFUVVPSUEgV09PRCBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsNCwyLDE2MDksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDQ3NTAsMzguNDM4ODE4LC0xMjEuMzc0NDMNNjYwMCBTSUxWRVJUSE9STkUgQ0lSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsNCwzLDE5NjgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNjg2MDcsLTEyMS4zNDIzNjkNMjIyMSAyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MTgsQ0EsMiwyLDEwODksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNTU1NzgxLC0xMjEuNDg1MzMxDTMyMzAgU01BVEhFUlMgV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDEyOTYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDU5MDAsMzguNjIzMzcyLC0xMjEuMzQ3NjY1DTUyMDkgTEFHVU5BIENSRVNUIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMiwyLDExODksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDcwMDAsMzguNDI0NDIxLC0xMjEuNDQzOTE1DTQxNiBMRUlUQ0ggQVZFLFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDc5NSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwNzk3MywzOC42MTI2OTQsLTEyMS40NTY2NjkNMjEwMCBCRUFUVFkgV0FZLFJPU0VWSUxMRSw5NTc0NyxDQSwzLDIsMTM3MSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwODI1MCwzOC43Mzc4ODIsLTEyMS4zMDgxNDINNjkyMCBHSUxMSU5HSEFNIFdBWSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywxLDEzMTAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDgzMTgsMzguNjk0Mjc5LC0xMjEuMzczMzk1DTgyIFdJTERGTE9XRVIgRFIsR0FMVCw5NTYzMixDQSwzLDIsMTI2MixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwOTM0NywzOC4yNTk3MDgsLTEyMS4zMTE2MTYNODY1MiBCQU5UT04gQ0lSLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMTc0MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIxMTUwMCwzOC40NDQsLTEyMS4zNzA5OTMNODQyOCBNSVNUWSBQQVNTIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTUxNyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIxMjAwMCwzOC43MjI5NTksLTEyMS4zNDcxMTUNNzk1OCBST1NFVklFVyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTQ1MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIxMzAwMCwzOC40Njc4MzYsLTEyMS40MTAzNjYNOTAyMCBMVUtFTiBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDE0MTYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMTYwMDAsMzguNDUxMzk4LC0xMjEuMzY2NjE0DTc4MDkgVkFMTEVDSVRPUyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDEsODg4LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjE2MDIxLDM4LjUwODIxNywtMTIxLjQxMTIwNw04NDQ1IE9MRCBBVUJVUk4gUkQsQ0lUUlVTIEhFSUdIVFMsOTU2MTAsQ0EsMywyLDE4ODIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMTkwMDAsMzguNzE1NDIzLC0xMjEuMjQ2NzQzDTEwMDg1IEFUS0lOUyBEUixFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDEzMDIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMTk3OTQsMzguMzkwODkzLC0xMjEuNDM3ODIxDTkxODUgQ0VSUk9MSU5EQSBDSVIsRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxNDE4LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjIwMDAwLDM4LjQyNDQ5NywtMTIxLjQyNjU5NQ05MTk3IENPUlRJTkEgQ0lSLFJPU0VWSUxMRSw5NTY3OCxDQSwzLDIsMCxDb25kbyxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC43OTMxNTIsLTEyMS4yOTAwMjUNNTQyOSBIRVNQRVIgV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsNCwyLDEzMTksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjAwMDAsMzguNjY1MTA0LC0xMjEuMzE1OTAxDTExNzggV0FSTVdPT0QgQ1QsR0FMVCw5NTYzMixDQSw0LDIsMTc3MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC4yODk1NDQsLTEyMS4yODQ2MDcNNDkwMCBFTFVERSBDVCxTQUNSQU1FTlRPLDk1ODQyLENBLDQsMiwxNjI3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjIzMDAwLDM4LjY5Njc0LC0xMjEuMzUwNTE5DTM1NTcgU09EQSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwwLDAsMCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyNDAwMCwzOC42MzEwMjYsLTEyMS41MDE4NzkNMzUyOCBTQUlOVCBHRU9SR0UgRFIsU0FDUkFNRU5UTyw5NTgyMSxDQSwzLDEsMTA0MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyNDAwMCwzOC42Mjk0NjgsLTEyMS4zNzY0NDUNNzM4MSBXQVNIQlVSTiBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMSw5NjAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjQyNTIsMzguNzAzNTUsLTEyMS4zNzUxMDMNMjE4MSBXSU5URVJIQVZFTiBDSVIsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDMsMiwwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjI0NTAwLDM4LjY5NzU3LC0xMjAuOTk1NzM5DTc1NDAgSElDS09SWSBBVkUsT1JBTkdFVkFMRSw5NTY2MixDQSwzLDEsMTQ1NixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyNTAwMCwzOC43MDMwNTYsLTEyMS4yMzUyMjENNTAyNCBDSEFNQkVSTElOIENJUixFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDE0NTAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjgwMDAsMzguMzg5NzU2LC0xMjEuNDQ2MjQ2DTI0MDAgSU5WRVJORVNTIERSLExJTkNPTE4sOTU2NDgsQ0EsMywyLDEzNTgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjkwMjcsMzguODk3ODE0LC0xMjEuMzI0NjkxDTUgQklTSE9QR0FURSBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxMzI5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjI5NTAwLDM4LjQ2NzkzNiwtMTIxLjQ0NTQ3Nw01NjAxIFJFWExFSUdIIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwyLDE3MTUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMzAwMDAsMzguNDQ1MzQyLC0xMjEuNDQxNTA0DTE5MDkgWUFSTkVMTCBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxMjYyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjMwMDAwLDM4LjQxNzM4MiwtMTIxLjQ4NDMyNQ05MTY5IEdBUkxJTkdUT04gQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDMsMjI4MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjQyNSwzOC40NTc2NzksLTEyMS4zNTk2Mg02OTMyIFJVU0tVVCBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTQ3NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIzNDAwMCwzOC40OTk4OTMsLTEyMS40NTg4OQ03OTMzIERBRkZPRElMIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSwzLDIsMTIxNixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIzNTAwMCwzOC43MDg4MjQsLTEyMS4yNTY4MDMNODMwNCBSRUQgRk9YIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDE2ODUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMzUzMDEsMzguNDE3LC0xMjEuMzk3NDI0DTM4ODIgWUVMTE9XU1RPTkUgTE4sRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDMsMiwxMzYyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjM1NzM4LDM4LjY1NTI0NSwtMTIxLjA3NTkxNQ0="; }, + thumbnail_uri: function () { return null; } + } + + , + "fig1.svg": { + name: "fig1.svg", + filename: "fig1.svg", + path: "fig1.svg", + size: "28.3 kB", + caption: "

This is a caption with a link.

\n", + job_properties: { + rule: "a", + wildcards: "", + params: "" + }, + data_uri: function () { return "data:image/svg+xml;charset=utf8;filename=fig1.svg;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI2MDBweCIgdmlld0JveD0iMCAwIDgwMCA2MDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDgwMCA2MDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPiAgPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiB4PSIwIiB5PSIwIgogICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk4KQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQQpDWEJJV1hNQUFBOWhBQUFQWVFHb1A2ZHBBQUJQZzBsRVFWUjQydTNkZVpTVTFhSHUvMisxVEVML0FJUDBZbkFCUnZGb01CNEVHZ0dQCkFzWWI1S0o0UllGZ2xLZ01Ub0NBUWdTTktLS0NCSlVoeEloQUJGMklFbkswTmFJM3FNZ1NSS0M1c2p6S0llZ0JyeGNVTVVLUVNZYjYKL2JHUEpJU3BtKzZ1WGNQM3MxYXRZSFc5K0x5ZDh1MSthdTkzNzBReW1Vd2lTWklrU1NtUUZ6dUFKRW1TcE54aEFaRWtTWktVTWhZUQpTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVCk1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWsKU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsagpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrClNTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVEKU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVQpNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFUbUsvL2lQLzZCNzkrNmNjY1laMUtoUmd6cDE2dEN1WFR1ZWUrNjVFaDIvCmRldFcrdmZ2VDkyNmRjblB6K2VTU3k1aDFhcFZzVTlMa2lSSmlxcFM3QURwNnJQUFB1UGJiNy9saGh0dW9FR0RCdXpjdVpONTgrWngKL2ZYWHMzNzlldTY1NTU2akhudmd3QUc2ZE9uQzZ0V3JHVDU4T0hYcTFHSHExS2wwNk5DQmxTdFhjdWFaWjhZK1BVbVNKQ21LUkRLWgpUTVlPa1NrT0hEaEF5NVl0K2V0Zi84cUdEUnVPK3JvWFhuaUJuLzNzWjh5Yk40OXUzYm9Cc0dYTEZzNDY2eXc2ZCs1YzRsRVVTWklrCktkczRCYXNVOHZMeU9PMjAwNmhjdWZJeFh6ZHYzanpxMWF0M3NId0FuSHJxcWZUbzBZT1hYbnFKdlh2M3hqNFZTWklrS1FvTHlISHMKM0xtVExWdTI4TWtubi9ENDQ0L3ordXV2TTN6NDhHTWVzMnJWS2xxMGFISFk4NFdGaGV6Y3VaTzFhOWZHUGkxSmtpUXBDZ3ZJY1F3ZApPcFNDZ2dLYU5tM0tMMy81U3laTm1rVC8vdjJQZWN5bVRadW9YNy8rWWM5Ly85ekdqUnRqbjVZa1NaSVVoVGVoSDhlUUlVUG8wYU1ICkd6ZHU1TG5ubm1QQWdBR2NmUExKL09JWHZ6anFNYnQzNzZacTFhcUhQVit0V2pVQWR1M2FGZnUwSkVtU3BDZ3NJTWZ4TC8veUwvekwKdi93TEFOZGRkeDJkT25WaThPREI5T2pSZzVOUFB2bUl4NXg4OHNuczJiUG5zT2QzNzk1OThPdEhzMm5USmpadDJoVDd0Q1ZKa25RVQo5ZXZYUCtKc0Y1V01CYVNVcnI3NmF2NzMvLzdmL09kLy9pZk5temMvNG12cTE2OS94R2xXM3hlTEJnMGFIUEc0VFpzMjBhcFZLNmRvClNaSWtwYkVHRFJxd1lzVUtTOGdKc29DVTB2ZlRwL0x5am43N1RQUG16Vm04ZURISlpKSkVJbkh3K1dYTGxsR2pSZzNPT3V1c0l4NjMKYWRNbU5tN2N5TFBQUHNzNTU1d1QrMVNWNVFZUEhzd1RUendSTzRheTFQNzljTU1Oc0dzWFZLOCttUC83ZjUrZ2VuWDQ5YS9CeTVzcQppdGMxcGNMSEgzL01kZGRkZDlSN2ZuVjhGcENqK09xcnI2aGJ0KzRoeiszZHU1ZFpzMlpScDA0ZG1qVnJCb1RTc0czYk5zNDg4MHdxClZRcmZ6bXV1dVlaNTgrWXhmLzU4cnI3NmFpRHNBL0xpaXk5eXhSVlhISGNaMzNQT09lZUlxMmhKNWFsMjdkcSt6MVJoSG5zTVB2NFkKM24wWEhubWtOcSsrMm9MdTNlR21tMkRLRk9qYkYvN2g4eG1wWEhoZGt6S0RCZVFvK3ZmdnovYnQyN240NG90cDBLQUJYM3p4QmM4OQo5eHhyMTY1bDVzeVpuSFRTU1FDTUdER0NXYk5tc1g3OWVobzFhZ1NFQXRLbVRSdHV2UEZHUHZyb280TTdvU2VUU1I1NDRJSFlweVpKCkZlclRUK0hlZTJIUUlHamJOanpYdURFc1hneERoa0QvL3JCa0NVeWRDc2U0SlU2U2xLVXNJRWZ4czUvOWpPblRwL1BiMy82V3I3LysKbXBvMWEzTEJCUmN3WmNvVWZ2S1RueHg4WFNLUk9HU2FGWVRwV1gvNjA1OFlObXdZa3laTll0ZXVYYlJ1M1pwWnMyYlJ0R25UMktjbQpTUlVtbVlSKy9hQ2dBTWFNT2ZSclZhdUcwdEcyTGR4OE02eGFCWC80QTV4eFJ1elVrcVJVc29BY1JjK2VQZW5acytkeFh6ZHo1a3htCnpweDUyUE8xYTlkbTJyUnBUSnMyTGZhcFNGTEt6SndKYjc0SnI3OE8rZmxIZnMzMTE4Ty8vaXRjZlRXMGJBbXpaa0hYcnJHVFM1SlMKeFkwSXBSelZxMWV2MkJHVVpUWnRnanZ2aEYvOEFuNzYwNzgvZjZUMzJubm53WW9WMExFalhIa2xqQndKKy9iRlBnTmxPcTlyVW1hdwpnRWc1eWgvVUttOERCa0NWS3VFRzlIOTB0UGRhclZvd2Z6Nk1HeGNlblRyQjVzMnh6MEtaek91YWxCa3NJSktrTXBzL1B6d21UNFlmCi9LRGt4eVVTTUh3NExGd0lIMzRJTFZxRUc5UWxTZG5MQWlKSktwTnZ2b0hiYnc5VHFicDNQN0cvbzBPSGNGTjZreWJRdm4wb01zbGsKN0RPVEpGVUVDNGdrcVV6dXVndDI3b1RmL0tac2UzczBhQUJ2dlJXbWNnMGFCTmRlQzk5K0cvdnNKRW5selFJaVNUcGhDeGZDakJrdwpmancwYkZqMnY2OXlaWGo4Y1pnN0YxNTVCVnEzaGpWcllwK2xKS2s4V1VBa1NTZGt4NDZ3cVdDSERtRm44L0xVb3dlOC8zNzRjMkVoCnZQaGk3TE9WSkpVWEM0Z2s2WVRjZHg5czNBalRwa0ZlQmZ3ME9lZWNVRUs2ZEFtRlpPaFEyTHMzOWxsTGtzcktBaUpKS3JYbHkrR0oKSitDQkIrRE1NeXZ1MzVPZkQzUG13S1JKNGNiMGpoMUQ2WkVrWlM0TGlDU3BWTDc3RHZyMGdlYk53NmhFUlVza1lPQkFXTFFJMXErSAo4OCtIdDkrTy9WMlFKSjBvQzRna3FWVEdqWU9QUG9McDA2RlNwZFQ5ZTl1MWcrSmlhTllNTHIwMDNQanVVcjJTbEhrc0lKS2tFdnY0Cll4Z3pKbXdlMkx4NTZ2LzlCUVh3eGh2aDN6OThPSFRyQnR1MnhmNnVTSkpLd3dJaVNTcVIvZnZEMUtzbVRjSU42TEZVcWdRUFB3d3YKdlJUMkRXblZDbGF2anYzZGtTU1ZsQVZFa2xRaVU2ZkMwcVh3OU5OUXJWcnNOTkMxSzZ4Y0NUVnFRSnMyTUh0MjdFU1NwSkt3Z0VpUwpqbXZEQmhneEFtNjlGUzY2S0hhYXZ6dmpERml5SkN6VDI3dDN5TGRuVCt4VWtxUmpzWUJJa280cG1ZUmJib0ZUVG9HeFkyT25PVnoxCjZqQnpKanoxVk5pVi9hS0w0TFBQWXFlU0pCMk5CVVNTZEV6UFBnc0xGc0NUVDBMTm1ySFRIRmtpQWYzNndidnZ3dWJOMEtJRnZQNTYKN0ZTU3BDT3hnRWlTam1yelpoZzhHSHIxQ2p1U3A3dFdyY0o5SVlXRjBMa3pqQjROQnc3RVRpVkora2NXRUVuU1VkMXhSeGhkbURneApkcEtTcTFNSFhuMFY3cjgvUEM2L0hQNzYxOWlwSkVuZnM0QklrbzZvcUFpZWZ6NlVqN3AxWTZjcG5ieThzRlR3YTYvQnNtVmhTdGJLCmxiRlRTWkxBQWlKSk9vSnQyOEtLVXAwN3c3WFh4azV6NGpwMUNydW5GeFNFbmRTblRYUDNkRW1LelFJaVNUck0zWGVIRXZMa2syRUsKVmlacjNCZ1dMdzZiS1BidkR6ZmRCTHQyeFU0bFNibkxBaUpKT3NTaVJhRjRqQjBMalJyRlRsTStxbFlOR3luT21nVno1MExidHZESgpKN0ZUU1ZKdXNvQklrZzdhdFNzc1ozdmhoV0VLVnJhNS9ucDQ3ejNZc1FOYXRvU1hYNDZkU0pKeWp3VkVrblRRNk5GaDEvT25udzQzCmNtZWo4ODZERlN1Z1kwZTQ4a29ZT1JMMjdZdWRTcEp5UjViK2VKRWtsVlp4TVl3ZkgxYVBPdnZzMkdrcVZxMWFNSDgrakJzWEhwMDYKaFQxUEpFa1Z6d0lpU1dMZlB1amJGNW8xZytIRFk2ZEpqVVFpbk92Q2hmRGhoMkdwM2lWTFlxZVNwT3huQVpFa01XRUNmUEFCVEo4TwpsU3ZIVHBOYUhUckFxbFhRcEFtMGJ3K1RKN3RVcnlSVkpBdUlKT1c0dFd0aDFDZ1lPaFJhdFlxZEpvNEdEZUN0dDJEQUFCZzBLT3g5Cjh1MjNzVk5KVW5heWdFaFNEanR3SUt4NmRkcHA4TUFEc2RQRVZia3lQUDU0V0tiM2xWZWdkV3RZc3laMktrbktQaFlRU2NwaDA2YkIKTysrRS82MWVQWGFhOU5DakI3ei9mdmh6WVNHOCtHTHNSSktVWFN3Z2twU2pQdjhjaGcwTE41OTM3Qmc3VFhvNTU1eFFRcnAwQ1lWawo2RkRZdXpkMktrbktEaFlRU2NwQnlTVGNkaHZrNTRlbGQzVzQvSHlZTXdjbVRRbzNwbmZzQ0JzM3hrNGxTWm5QQWlKSk9laUZGNkNvCkNLWk9oZHExWTZkSlg0a0VEQndJaXhiQit2Vncvdm53OXR1eFUwbFNack9BU0ZLTytmcnI4RXYxTmRmQS8vcGZzZE5raG5idHdrYU4KelpyQnBaZUdVU09YNnBXa0UyTUJrYVFjTTJSSTJIaHc4dVRZU1RKTFFRRzg4VWJZdkhENGNPaldEYlp0aTUxS2tqS1BCVVNTY3NpQwpCVEI3ZHRoNHNGNjkyR2t5VDZWSzhQREQ4TkpMWWQrUVZxMWc5ZXJZcVNRcHMxaEFKQ2xIYk44T045OGNwaERkY0VQc05KbXRhMWRZCnVSSnExSUEyYlVLcGt5U1ZqQVZFa25MRVBmZkFsaTN3MUZQaDVtcVZ6Umxud0pJbFlabmUzcjNoMWx0aHo1N1lxU1FwL1ZsQUpDa0gKTEZrQ1U2YkFtREZ3K3VteDAyU1A2dFZoNXN4UTZtYk1nSXN1Z3M4K2k1MUtrdEtiQlVTU3N0eWVQV0d6d2NKQ0dEUW9kcHJzazBoQQp2Mzd3N3J1d2VUTzBhQUd2dng0N2xTU2xMd3VJSkdXNWh4NkNkZXRnK25RNDZhVFlhYkpYcTFiaHZwRENRdWpjR1VhUGhnTUhZcWVTCnBQUmpBWkdrTExaNk5UenlDSXdZQWVlZUd6dE45cXRUQjE1OUZlNi9Qend1dnh6Kyt0ZllxU1FwdlZoQUpDbEw3ZDhmcGw2ZGRSYU0KSEJrN1RlN0l5NFA3N29QWFhvTmx5OEtVckpVclk2ZVNwUFJoQVpHa0xEVnhJcXhZQVU4L0RWV3J4azZUZXpwMUNydW5GeFNFbmRTbgpUWFAzZEVrQ0M0Z2taYVZQUDRWNzc0V0JBNkZ0MjlocGNsZmp4ckI0TWZUcEEvMzd3MDAzd2E1ZHNWTkpVbHdXRUVuS01zbGtXSldwCm9DRGNnSzY0cWxhRnFWTmgxaXlZT3pjVXdrOCtpWjFLa3VLeGdFaFNscGs1RTk1OE0reE5rWjhmTzQyK2QvMzE4TjU3c0dNSHRHd0oKTDc4Y081RWt4V0VCa2FRc3Nta1QzSGxuMkpuN3B6K05uVWIvN0x6enduMDVIVHZDbFZlR3hRSDI3WXVkU3BKU3l3SWlTVmxrd0FDbwpVZ1VlZXl4MkVoMU5yVm93Zno2TUd4Y2VuVHFGRFF3bEtWZFlRQ1FwUzh5Zkh4NlRKNGY5S0pTK0Vna1lQaHdXTG9RUFB3eEw5UzVaCkVqdVZKS1dHQlVTU3NzQTMzOER0dDBQWHJ0QzllK3cwS3FrT0hXRFZLbWpTQk5xM0QrWFJwWG9sWlRzTGlDUmxnYnZ1Z3AwN3cycEwKaVVUc05DcU5CZzNncmJmQzlMbEJnK0RhYStIYmIyT25rcVNLWXdHUnBBeTNjQ0hNbUFIangwUERockhUNkVSVXJneVBQeDZXNlgzbApGV2pkR3Rhc2laMUtraXFHQlVTU010aU9IV0dEdS9idG9XL2YyR2xVVmoxNndQdnZoejhYRnNLTEw4Wk9KRW5sendJaVNSbnN2dnRnCjQwYVlOZzN5dktKbmhYUE9DU1drUzVkUVNJWU9oYjE3WTZlU3BQTGpqeXRKeWxETGw4TVRUOEFERDBEVHBySFRxRHpsNThPY09UQnAKVXJneHZXUEhVRFFsS1J0WVFDUXBBMzMzSGZUcEE4MmJoMC9JbFgwU0NSZzRFQll0Z3ZYcjRmeno0ZTIzWTZlU3BMS3pnRWhTQmhvMwpEajc2Q0taUGgwcVZZcWRSUldyWERvcUxvVmt6dVBUU3NOaUFTL1ZLeW1RV0VFbktNQjkvREdQR2hJM3NtamVQblVhcFVGQUFiN3dSCi9qOGZQaHk2ZFlOdDIyS25rcVFUWXdHUnBBeXlmMytZZXRXa1NiZ0JYYm1qVWlWNCtHRjQ2YVd3YjBpclZyQjZkZXhVa2xSNkZoQkoKeWlCVHA4TFNwZkQwMDFDdFd1dzBpcUZyVjFpNUVtclVnRFp0WVBiczJJa2txWFFzSUpLVUlUWnNnQkVqNE5aYjRhS0xZcWRSVEdlYwpBVXVXaEdWNmUvY083NGs5ZTJLbmtxU1NzWUJJVWdaSUp1R1dXK0NVVTJEczJOaHBsQTZxVjRlWk0rR3BwMkRHakZCS1Avc3NkaXBKCk9qNExpQ1JsZ0dlZmhRVUw0TWtub1diTjJHbVVMaElKNk5jUDNuMFhObStHRmkzZzlkZGpwNUtrWTdPQVNGS2EyN3daQmcrR1hyM0MKN3RqU1AydlZLdHdYVWxnSW5UdkQ2TkZ3NEVEc1ZKSjBaQllRU1VwemQ5d1JQdW1lT0RGMkVxV3pPblhnMVZmaC92dkQ0L0xMNGE5LwpqWjFLa2c1bkFaR2tORlpVQk04L0g4cEgzYnF4MHlqZDVlV0Y1WmxmZXcyV0xRdFRzbGF1akoxS2tnNWxBWkdrTkxWdFcxamRxSE5uCnVQYmEyR21VU1RwMUNydW5GeFNFbmRTblRYUDNkRW5wd3dJaVNXbnE3cnREQ1hueXlUQUZTeXFOeG8xaDhlS3djV1gvL25EVFRiQnIKVit4VWttUUJrYVMwdEdoUktCNWp4MEtqUnJIVEtGTlZyUm8ycjV3MUMrYk9oYlp0NFpOUFlxZVNsT3NzSUpLVVpuYnRDa3VyWG5oaAptSUlsbGRYMTE4Tjc3OEdPSGRDeUpiejhjdXhFa25LWkJVU1Mwc3pvMFdIWDg2ZWZEamNWUytYaHZQTmd4UXJvMkJHdXZCSkdqb1I5CisyS25rcFNML05FbVNXbWt1QmpHanc4ckdaMTlkdXcweWphMWFzSDgrVEJ1WEhoMDZoVDJtWkdrVkxLQVNGS2EyTGNQK3ZhRlpzMWcKK1BEWWFaU3RFb253L2xxNEVENzhNQ3pWdTJSSjdGU1Njb2tGUkpMU3hJUUo4TUVITUgwNlZLNGNPNDJ5WFljT3NHb1ZOR2tDN2R2RAo1TWt1MVNzcE5Td2drcFFHMXE2RlVhTmc2RkJvMVNwMkd1V0tCZzNncmJkZ3dBQVlOQ2pzTi9QdHQ3RlRTY3AyRmhCSml1ekFnYkRxCjFXbW53UU1QeEU2alhGTzVNanorZUZpbTk1VlhvSFZyV0xNbWRpcEoyY3dDSWttUlRac0c3N3dEVHowRjFhdkhUcU5jMWFNSHZQOSsKK0hOaEliejRZdXhFa3JLVkJVU1NJdnI4Y3hnMkxOeDhmc2tsc2RNbzE1MXpUaWdoWGJxRVFqSjBLT3pkR3p1VnBHeGpBWkdrU0pKSgp1TzAyeU04UFMrOUs2U0EvSCtiTWdVbVR3bzNwSFR2Q3hvMnhVMG5LSmhZUVNZcmtoUmVncUFoKzh4dW9YVHQyR3VudkVna1lPQkFXCkxZTDE2K0g4OCtIdHQyT25rcFF0TENDU0ZNSFhYNGRmOEs2NUJxNjZLbllhNmNqYXRRdWJZelpyQnBkZUdrYnFYS3BYVWxsWlFDUXAKZ2lGRHdzYURreWZIVGlJZFcwRUJ2UEZHMkx4dytIRG8xZzIyYll1ZFNsSW1zNEJJVW9vdFdBQ3paNGVOQit2Vmk1MUdPcjVLbGVEaApoK0dsbDhLK0lhMWF3ZXJWc1ZOSnlsUVdFRWxLb2UzYjRlYWJ3M1NXRzI2SW5VWXFuYTVkWWVWS3FGRUQyclFKUlZxU1Nzc0NJa2twCmRNODlzR1ZMMlBNamtZaWRSaXE5TTg2QUpVdkNNcjI5ZThPdHQ4S2VQYkZUU2Nva0ZoQkpTcEVsUzJES0ZCZ3pCazQvUFhZYTZjUlYKcnc0elo0WWlQV01HWEhRUmZQWlo3RlNTTW9VRlJKSlNZTStlc05sZ1lTRU1HaFE3alZSMmlRVDA2d2Z2dmd1Yk4wT0xGdkQ2NjdGVApTY29FRmhCSlNvR0hIb0oxNjJENmREanBwTmhwcFBMVHFsVzRMNlN3RURwM2h0R2o0Y0NCMktra3BUTUxpQ1JWc05XcjRaRkhZTVFJCk9QZmMyR21rOGxlbkRyejZLdHgvZjNoY2Zqbjg5YSt4VTBsS1Z4WVFTYXBBKy9lSHFWZG5uUVVqUjhaT0kxV2N2RHk0N3o1NDdUVlkKdGl4TXlWcTVNbllxU2VuSUFpSkpGV2ppUkZpeEFwNStHcXBXaloxR3FuaWRPb1hkMHdzS3drN3EwNmE1ZTdxa1ExbEFKS21DZlBvcAozSHN2REJ3SWJkdkdUaU9sVHVQR3NIZ3g5T2tEL2Z2RFRUZkJybDJ4VTBsS0Z4WVFTYW9BeVdSWUlhaWdJTnlBTHVXYXFsVmg2bFNZCk5Rdm16ZzBsL0pOUFlxZVNsQTRzSUpKVUFXYk9oRGZmRFBzazVPZkhUaVBGYy8zMThONTdzR01IdEd3Skw3OGNPNUdrMkN3Z2tsVE8KTm0yQ08rOE11MFQvOUtleDAwanhuWGRldUJlcVkwZTQ4c3F3SU1PK2ZiRlRTWXJGQWlKSjVXekFBS2hTQlI1N0xIWVNLWDNVcWdYego1OE80Y2VIUnFWUFl3RkJTN3JHQVNGSTVtajgvUENaUERuc2pTUHE3UkFLR0Q0ZUZDK0hERDhOU3ZVdVd4RTRsS2RVc0lKSlVUcjc1CkJtNi9IYnAyaGU3ZFk2ZVIwbGVIRHJCcUZUUnBBdTNiaDhMdVVyMVM3ckNBU0ZJNXVlc3UyTGt6clB5VFNNUk9JNlczQmczZ3JiZkMKbE1WQmcrRGFhK0hiYjJPbmtwUUtGaEJKS2djTEY4S01HVEIrUERSc0dEdU5sQmtxVjRiSEh3L0w5TDd5Q3JSdURXdld4RTRscWFKWgpRQ1Nwakhic0NKdXR0VzhQZmZ2R1RpTmxuaDQ5NFAzM3c1OExDK0hGRjJNbmtsU1JMQ0NTVkViMzNRY2JOOEswYVpEblZWVTZJZWVjCkUwcElseTZoa0F3ZENudjN4azRscVNMNG8xS1N5bUQ1Y25qaUNYamdBV2phTkhZYUtiUGw1OE9jT1RCcFVyZ3h2V1BIVU80bFpSY0wKaUNTZG9PKytnejU5b0huejhHbXRwTEpMSkdEZ1FGaTBDTmF2aC9QUGg3ZmZqcDFLVW5teWdCekQ4dVhMR1RCZ0FNMmFOU00vUDUvRwpqUnZUczJkUC92S1h2eHozMk4vLy92Zms1ZVVkOGJIWm5aZWtyREJ1SEh6MEVVeWZEcFVxeFU0alpaZDI3YUM0R0pvMWcwc3ZEUXM4CnVGU3ZsQjM4a1hrTTQ4YU5ZK25TcFhUdjNwM3p6anVQVFpzMk1XWEtGRnEwYU1GNzc3MUhzMmJOanZ0M1BQamdnNXgrK3VtSFBGZXIKVnEzWXB5YXBqRDcrR01hTUNadXFOVzhlTzQyVW5Rb0s0STAzd24xV3c0ZUhUUXQvLy91d3E3cWt6R1VCT1lZNzc3eVR3c0pDS3YzRApSNXM5ZS9ia3h6LytNV1BIam1YMjdObkgvVHM2ZCs1TWl4WXRZcCtLcEhLMGYzK1lldFdrU2ZqRlNGTEZxVlFKSG40WTJyU0IzcjJoClZTdjR3eC9ndlBOaUo1TjBvcHlDZFF4dDI3WTlwSHdBbkhubW1mem9SejlpVFFrWEtrOG1rMnpmdnAzOSsvZkhQaDFKNVdUcVZGaTYKRko1K0dxcFZpNTFHeWcxZHU4TEtsVkNqUmlnakpmZ01VRkthc29DVVVqS1o1TXN2ditUVVUwOHQwZXM3ZHV4SXJWcTFxRkdqQmxkZQplU1hyMXEyTGZRcVN5bUREQmhneEFtNjlGUzY2S0hZYUtiZWNjVWFZaHRXalJ4Z051ZlZXMkxNbmRpcEpwZVVVckZKNjdybm4yTGh4CkkyUEdqRG5tNjJyVXFNR05OOTVJeDQ0ZHFWbXpKaXRXck9DeHh4NmpYYnQyRkJjWGM5cHBwOFUrRlVtbGxFekNMYmZBS2FmQTJMR3gKMDBpNXFYcDFtRGtUTHJ3UUJnd0lveUx6NWtHalJyR1RTU3FwUkRMcG1oSWx0V2JOR2k2NDRBSisvT01mczNqeFloS0pSS21PZi9mZApkN240NG92cDM3OC92LzN0YncvN2VuRnhNUzFidG1UbHlwWGVOeUtsb2Rtenc2ZXVyN3dTTmt1VEZOZUtGWEROTmZEdHQvRGNjOUNwClUreEV5Z1grdmxaMlRzRXFvUysrK0lJdVhicHd5aW1uTUcvZXZGS1hENEFMTDd5UUN5NjRnRC8vK2MreFQwZFNLVzNlRElNSFE2OWUKbGc4cFhiUnFGVVpBQ2d1aGMyY1lQUm9PSElpZFN0THhPQVdyQkxadDIwYm56cDM1MjkvK3h1TEZpNmxYcjk0Si8xMm5uWFlhYTlldQpQZVpyQmc4ZVRPM2F0UTk1cmxldlh2VHExU3YydDBMS1dYZmNFVFpJbXpneGRoSkovNmhPSFhqMTFiQXM5djMzdzN2dndiUFB3ZzkrCkVEdVpzc0djT1hPWU0yZk9JYzl0M2JvMWRxeU01eFNzNDlpOWV6Yy8vZWxQV2JWcUZYLys4NSs1NElJTHl2VDN0V3JWaWgwN2R2RHgKeHg4ZjlqV0g5S1QwVkZRVVZ1QjU5bG40K2M5anA1RjBOSysvRHRkZUMvL2YveGVXNm0zWk1uWWlaU04vWHlzN3AyQWR3Lzc5KytuWgpzeWZMbGkzanhSZGZQR3I1K09LTEwxaXpaZzM3OXUwNytOeFhYMzExMk92KzlLYy9VVnhjekdXWFhSYjcxQ1NWMExadFlhV2R6cDNECkx6YVMwbGVuVG1IMzlJS0NzSlA2dEdudW5pNmxJNmRnSGNPZGQ5NUpVVkVSVjF4eEJWdTJiT0haWjU4OTVPdlhYWGNkQUhmZmZUZXoKWnMxaS9mcjFOUHJ2WlRqYXRXdEhpeFl0YU5teUpiVnExYUs0dUpnWk0yYlFxRkVqUm80Y0dmdlVKSlhRM1hlSEV2TGtrMkVLbHFUMAoxcmd4TEY0TVE0WkEvLzVoMmQ2cFUrSGtrMk1uay9ROUM4Z3hmUERCQnlRU0NZcUtpaWdxS2pya2E0bEU0bUFCU1NRU2g5MlUvck9mCi9ZeFhYMzJWTjk1NGc1MDdkOUtnUVFOdXZ2bG1SbzBhUmQyNmRXT2ZtcVFTV0xRb0ZJOHBVMXppVThva1ZhdUcwdEcyTGR4OE02eGEKRmFaa25YRkc3R1NTd0h0QTBvcHpDcVgwc1dzWC9PdS9ocWtjNzd3RGVVNVlsVExTNnRWdzlkWHcxVmN3YTFhNG4wc3FDMzlmS3p0LwpwRXJTRVl3ZUhYWTlmL3BweTRlVXljNDdMK3dYMHJFalhIa2xqQndKLzNETHBxUUkvTEVxU2Yra3VCakdqNGY3N29Peno0NmRSbEpaCjFhb0Y4K2ZEdUhIaDBhbFQyTnRIVWh3V0VFbjZCL3YyUWQrKzBLd1pEQjhlTzQyazhwSkloUCttRnk2RUR6K0VGaTNDRGVxU1VzOEMKSWtuL1lNSUUrT0FEbUQ0ZEtsZU9uVVpTZWV2UUlkeVUzcVFKdEc4UGt5YTVWSytVYWhZUVNmcHZhOWZDcUZFd2RDaTBhaFU3amFTSwowcUFCdlBVV0RCZ0FkOXdSOXZqNTl0dllxYVRjWVFHUkpPREFBZWpYRDA0N0RSNTRJSFlhU1JXdGNtVjQvSEdZT3hkZWVRVmF0NFkxCmEyS25rbktEQlVTU0NEc212L01PUFBVVVZLOGVPNDJrVk9uUkE5NS9QL3k1c0JCZWVDRjJJaW43V1VBazVielBQNGRodzhMTjU1ZGMKRWp1TnBGUTc1NXhRUXJwMGdaNDl3eTdxZS9mR1RpVmxMd3VJcEp5V1RNSnR0MEYrZmxoNlYxSnV5cytIT1hQQ1RlbFRwb1I5UXpadQpqSjFLeWs0V0VFazU3WVVYb0tnSWZ2TWJxRjA3ZGhwSk1TVVNNSEFnTEZvRTY5ZkQrZWZEMjIvSFRpVmxId3VJcEp6MTlkZmhsNDFyCnJvR3Jyb3FkUmxLNmFOY3ViRWphckJuODVDZnc2S011MVN1Vkp3dUlwSncxWkVqWWVIRHk1TmhKSktXYmdnSjQ0dzM0NVMvRG8xczMKMkxZdGRpb3BPMWhBSk9Xa0JRdGc5dXl3OFdDOWVySFRTRXBIbFNyQnd3L0RTeStGZlVOYXRZTFZxMk9ua2pLZkJVUlN6dG0rSFc2KwpHUzY5Rkc2NElYWWFTZW11YTFkWXVSSnExSUEyYmNLSEY1Sk9uQVZFVXM2NTV4N1lzaVhzK1pGSXhFNGpLUk9jY1FZc1dSTDJEZW5kCkcyNjlGZmJzaVoxS3lrd1dFRWs1WmNtU3NNVG1tREZ3K3VteDAwaktKTldydzh5WjRjT0xHVFBnb290Z3c0YllxYVRNWXdHUmxEUDIKN0FtYkRSWVd3cUJCc2ROSXlrU0pCUFRyQisrK0M1czNRNHNXOFBycnNWTkptY1VDSWlsblBQUVFyRnNIMDZmRFNTZkZUaU1wazdWcQpGZTRMYWQwYU9uZUcwYVBod0lIWXFhVE1ZQUdSbEJOV3I0WkhIb0VSSStEY2MyT25rWlFONnRTQlYxK0YrKzhQajhzdkQvc0xTVG8yCkM0aWtyTGQvZjVoNmRkWlpNSEprN0RTU3NrbGVIdHgzSDd6MkdpeGJCaTFiaHBFUlNVZG5BWkdVOVNaT2hCVXI0T21ub1dyVjJHa2sKWmFOT25jTHU2UVVGWVNmMWFkUGNQVjA2R2d1SXBLejI2YWR3Nzcwd2NDQzBiUnM3amFSczFyZ3hMRjRNZmZwQS8vNXcwMDJ3YzJmcwpWRkw2c1lCSXlsckpaRml0cHFBZzNJQXVTUld0YWxXWU9oVm16WUs1YzhOb3lDZWZ4RTRscFJjTGlLU3NOWE1tdlBsbVdMTS9QejkyCkdrbTU1UHJyNGIzM1lNZU9jRi9JeXkvSFRpU2xEd3VJcEt5MGFSUGNlV2ZZc2ZpblA0MmRSbEl1T3UrOGNQOVp4NDV3NVpWaEVZeDkKKzJLbmt1S3pnRWpLU2dNR1FKVXE4Tmhqc1pOSXltVzFhc0g4K1RCdVhIaDA2aFEyTUpSeW1RVkVVdGFaUHo4OEprOE82L1JMVWt5SgpCQXdmRGdzWHdvY2ZodDNUbHl5Sm5VcUt4d0lpS2F0ODh3M2NmanQwN1FyZHU4ZE9JMGwvMTZFRHJGb0ZUWnBBKy9Zd2FaSkw5U28zCldVQWtaWlc3N2dyTFhrNmRHajUxbEtSMDBxQUJ2UFZXbUNaNnh4MXc3Ylh3N2JleFUwbXBaUUdSbERVV0xvUVpNMkQ4ZUdqWU1IWWEKU1RxeXlwWGg4Y2ZETXIydnZBS3RXOE9hTmJGVFNhbGpBWkdVRlhic0NCdC90VzhQZmZ2R1RpTkp4OWVqQjd6L2Z2aHpZU0c4OEVMcwpSRkpxV0VBa1pZWDc3b09ORzJIYU5Nanp5aVlwUTV4elRpZ2hYYnBBejU0d1pBanMzUnM3bFZTeC9ERXRLZU10WHc1UFBBRVBQQUJOCm04Wk9JMG1sazU4UGMrYUVtOUtuVEFuN2htemNHRHVWVkhFc0lKSXkybmZmUVo4KzBMdzVEQjBhTzQwa25aaEVBZ1lPaEVXTFlQMTYKT1A5OGVQdnQyS21raW1FQmtaVFJ4bzJEano2QzZkT2hVcVhZYVNTcGJOcTFnK0ppYU5ZTWZ2SVRlUFJSbCtwVjlyR0FTTXBZSDM4TQpZOGFFRGI2YU40K2RScExLUjBFQnZQRUcvUEtYNGRHdEcyemJGanVWVkg0c0lKSXkwdjc5WWVwVmt5YmhCblJKeWlhVktzSEREOE5MCkw0VjlRMXExZ3RXclk2ZVN5b2NGUkZKR21qb1ZsaTZGcDUrR2F0VmlwNUdraXRHMUs2eGNDVFZxUUpzMk1IdDI3RVJTMlZsQUpHV2MKRFJ0Z3hBaTQ5VmE0NktMWWFTU3BZcDF4Qml4WkV2WU42ZDA3WFB2MjdJbWRTanB4RmhCSkdTV1poRnR1Z1ZOT2diRmpZNmVScE5TbwpYaDFtem9Tbm5vSVpNOEtITHhzMnhFNGxuUmdMaUtTTTh1eXpzR0FCUFBrazFLd1pPNDBrcFU0aUFmMzZ3YnZ2d3ViTjBLSUZ2UDU2CjdGUlM2VmxBSkdXTXpadGg4R0RvMVN2c0dpeEp1YWhWcTNCZlNPdlcwTGt6akI0TkJ3N0VUaVdWbkFWRVVzYTQ0NDd3Q2VERWliR1QKU0ZKY2RlckFxNi9DL2ZlSHgrV1h3OWRmeDA0bGxZd0ZSRkpHS0NxQzU1OFA1YU51M2RocEpDbSt2THl3RFBscnI4R3laZEN5WlJnWgprZEtkQlVSUzJ0dTJMYXo2MHJrelhIdHQ3RFNTbEY0NmRRcTdweGNVaEozVXAwMXo5M1NsTnd1SXBMUjM5OTJoaER6NVpKaUNKVWs2ClZPUEdzSGh4MktDMWYzKzQ2U2JZdVROMkt1bklMQ0NTMHRxaVJhRjRqQjBMalJyRlRpTko2YXRxMWJCSjY2eFpNSGR1R0EzNTVKUFkKcWFURFdVQWtwYTFkdThLU2t4ZGVHS1pnU1pLTzcvcnI0YjMzWU1lT2NGL0l5eS9IVGlRZHlnSWlLVzJOSGgwMjJucjY2WEN6cFNTcApaTTQ3RDFhc2dJNGQ0Y29yWWVSSTJMY3ZkaW9wOEVlNnBMUlVYQXpqeDRjVlhzNCtPM1lhU2NvOHRXckIvUGt3Ymx4NGRPb1U5bE9TCllyT0FTRW83Ky9aQjM3N1FyQmtNSHg0N2pTUmxya1FpWEVjWExvUVBQd3k3cHk5WkVqdVZjcDBGUkZMYW1UQUJQdmdBcGsrSHlwVmoKcDVHa3pOZWhBNnhhQlUyYVFQdjJNR21TUy9VcUhndUlwTFN5ZGkyTUdnVkRoMEtyVnJIVFNGTDJhTkFBM25vTEJneUFPKzRJK3lwOQorMjNzVk1wRkZoQkphZVBBZ2JEcTFXbW53UU1QeEU0alNkbW5jbVY0L1BHd1RPOHJyMERyMXJCbVRleFV5alVXRUVscFk5bzBlT2NkCmVPb3BxRjQ5ZGhwSnlsNDllc0Q3NzRjL0Z4YkNDeS9FVHFSY1lnR1JsQlkrL3h5R0RRczNuMTl5U2V3MGtwVDl6amtubEpBdVhhQm4KVHhneUJQYnVqWjFLdWNBQ0lpbTZaQkp1dXczeTg4UFN1NUtrMU1qUGh6bHp3azNwVTZhRWZVTTJib3lkU3RuT0FpSXB1aGRlZ0tJaQorTTF2b0hidDJHa2tLYmNrRWpCd0lDeGFCT3ZYdy9ubnc5dHZ4MDZsYkdZQmtSVFYxMStISDN6WFhBTlhYUlU3alNUbHJuYnR3aWF3CnpackJUMzRDano3cVVyMnFHQllRU1ZFTkdSSTJIcHc4T1hZU1NWSkJBYnp4QnZ6eWwrSFJyUnRzMnhZN2xiS05CVVJTTkFzV3dPeloKWWVQQmV2VmlwNUVrQVZTcUJBOC9EQys5RlBZTmFkVUtWcStPblVyWnhBSWlLWXJ0MitIbW0rSFNTK0dHRzJLbmtTVDlzNjVkWWVWSwpxRkVEMnJRSkh4aEo1Y0VDSWltS2UrNkJMVnZDbmgrSlJPdzBrcVFqT2VNTVdMSWs3QnZTdXpmY2VpdnMyUk03bFRLZEJVUlN5aTFaCkVwWjdIRE1HVGo4OWRocEowckZVcnc0elo0WVBqR2JNZ0lzdWdnMGJZcWRTSnJPQVNFcXBQWHZDWm9PRmhUQm9VT3cwa3FTU1NDU2cKWHo5NDkxM1l2QmxhdElEWFg0K2RTcG5LQWlJcHBSNTZDTmF0ZytuVDRhU1RZcWVSSkpWR3ExYmh2cERXcmFGelp4ZzlHZzRjaUoxSwptY1lDSWlsbFZxK0dSeDZCRVNQZzNITmpwNUVrbllnNmRlRFZWK0grKzhQajhzdkRuazVTU1ZsQUpLWEUvdjFoNnRWWlo4SElrYkhUClNKTEtJaThQN3JzUFhuc05saTJEbGkzRHlJaFVFaFlRU1NreGNTS3NXQUZQUHcxVnE4Wk9JMGtxRDUwNmhkM1RDd3JDVHVyVHBybDcKdW83UEFpS3B3bjM2S2R4N0x3d2NDRzNieGs0alNTcFBqUnZENHNYUXB3LzA3dzgzM1FRN2Q4Wk9wWFJtQVpGVW9aTEpzSEpLUVVHNApBVjJTbEgycVZvV3BVMkhXTEpnN040eUdmUEpKN0ZSS1Z4WVFTUlZxNWt4NDg4MndmbngrZnV3MGtxU0tkUDMxOE41N3NHTkh1Qy9rCjVaZGpKMUk2c29CSXFqQ2JOc0dkZDRiZGMzLzYwOWhwSkVtcGNONTU0WjYvamgzaHlpdkR3aVA3OXNWT3BYUmlBWkZVWVFZTWdDcFYKNExISFlpZVJKS1ZTclZvd2Z6Nk1HeGNlblRxRkRRd2xzSUJJcWlEejU0Zkg1TWxoelhoSlVtNUpKR0Q0Y0ZpNEVENzhNT3lldm1SSgo3RlJLQnhZUVNlWHVtMi9nOXR1aGExZm8zajEyR2tsU1RCMDZ3S3BWMEtRSnRHOFBreWE1VkcrdXM0QklLbmQzM1JXV1lKdzZOWHdDCkprbktiUTBhd0Z0dmhhbTVkOXdCMTE0TDMzNGJPNVZpc1lCSUtsY0xGOEtNR1RCK1BEUnNHRHVOSkNsZFZLNE1qejhlbHVsOTVSVm8KM1JyV3JJbWRTakZZUUNTVm14MDd3aVpVN2R0RDM3NngwMGlTMGxHUEh2RCsrK0hQaFlYd3dndXhFeW5WTENDU3lzMTk5OEhHalRCdApHdVI1ZFpFa0hjVTU1NFFTMHFVTDlPd0pRNGJBM3IyeFV5bFYvQlZCVXJsWXZoeWVlQUllZUFDYU5vMmRScEtVN3ZMelljNmNjRlA2CmxDbGgzNUNORzJPblVpcFlRQ1NWMlhmZlFaOCswTHc1REIwYU80MGtLVk1rRWpCd0lDeGFCT3ZYdy9ubnc5dHZ4MDZsaW1ZQmtWUm0KNDhiQlJ4L0I5T2xRcVZMc05KS2tUTk91SFJRWFE3Tm04Sk9md0tPUHVsUnZOck9BU0NxVGp6K0dNV1BDWmxQTm04ZE9JMG5LVkFVRgo4TVliOE10ZmhrZTNickJ0Vyt4VXFnZ1dFRWtuYlAvK01QV3FTWk53QTdva1NXVlJxUkk4L0RDODlGTFlONlJWSzFpOU9uWXFsVGNMCmlLUVROblVxTEYwS1R6OE4xYXJGVGlOSnloWmR1OExLbFZDakJyUnBBN05ueDA2azhtUUJrWFJDTm15QUVTUGcxbHZob290aXA1RWsKWlpzenpvQWxTOEsrSWIxN2g1ODNlL2JFVHFYeVlBR1JWR3JKSk54eUM1eHlDb3dkR3p1TkpDbGJWYThPTTJmQ1UwL0JqQm5oQTY4TgpHMktuVWxsWlFDU1YyclBQd29JRjhPU1RVTE5tN0RTU3BHeVdTRUMvZnZEdXU3QjVNN1JvQWErL0hqdVZ5c0lDSXFsVU5tK0d3WU9oClY2K3dnNjBrU2FuUXFsVzRMNlIxYStqY0dVYVBoZ01IWXFmU2liQ0FTQ3FWTys0SW4wWk5uQmc3aVNRcDE5U3BBNisrQ3ZmZkh4NlgKWHc1ZmZ4MDdsVXJMQWlLcHhJcUs0UG5uUS9tb1d6ZDJHa2xTTHNyTEMwdS92L1lhTEZzR0xWdUdrUkZsRGd1SXBCTFp0aTJzUU5LNQpNMXg3YmV3MGtxUmMxNmxUMkQyOW9DRHNwRDV0bXJ1blp3b0xpS1FTdWZ2dVVFS2VmREpNd1pJa0tiYkdqV0h4NHJBcGJ2LytjTk5OCnNITm43RlE2SGd1SXBPTmF0Q2dVajdGam9WR2oyR2trU2ZxN3FsWER4cml6WnNIY3VXRTA1Sk5QWXFmU3NWaEFKQjNUcmwxaCtjTUwKTHd4VHNDUkpTa2ZYWHcvdnZRYzdkb1Q3UWw1K09YWWlIWTBGUk5JeGpSNGRObjE2K3VsdzQ1OGtTZW5xdlBOZ3hRcm8yQkd1dkJKRwpqb1I5KzJLbjBqL3oxd2xKUjFWY0RPUEhoOVZHemo0N2RocEprbzZ2VmkyWVB4L0dqUXVQVHAzQ0hsWktIeFlRU1VlMGJ4LzA3UXZOCm1zSHc0YkhUU0pKVWNvbEUrTm0xY0NGOCtHSFlQWDNKa3RpcDlEMExpS1FqbWpBQlB2Z0FwaytIeXBWanA1RWtxZlE2ZElCVnE2QkoKRTJqZkhpWk5jcW5lZEdBQmtYU1l0V3RoMUNnWU9oUmF0WXFkUnBLa0U5ZWdBYnoxRmd3WUFIZmNFZmF5K3ZiYjJLbHltd1ZFMGlFTwpIQWlyWHAxMkdqendRT3cwa2lTVlhlWEs4UGpqWVpuZVYxNkIxcTFoelpyWXFYS1hCVVRTSWFaTmczZmVnYWVlZ3VyVlk2ZVJKS244CjlPZ0I3NzhmL2x4WUNDKzhFRHRSYnJLQVNEcm84ODloMkxCdzgva2xsOFJPSTBsUytUdm5uRkJDdW5TQm5qMWh5QkRZdXpkMnF0eGkKQVpFRWhKdnlicnNOOHZQRDBydVNKR1dyL0h5WU15ZmNsRDVsU3RnM1pPUEcyS2x5aHdWRUVoQ0dvWXVLNERlL2dkcTFZNmVSSktsaQpKUkl3Y0NBc1dnVHIxOFA1NThQYmI4ZE9sUnNzSUVleGZQbHlCZ3dZUUxObXpjalB6NmR4NDhiMDdObVR2L3psTHlVNmZ1dldyZlR2CjM1KzZkZXVTbjUvUEpaZGN3cXBWcTJLZmxuUkVYMzhkTHNMWFhBTlhYUlU3alNSSnFkT3VYZGg0dDFreitNbFA0TkZIWGFxM29sbEEKam1MY3VISDg4WTkvNUgvOGovL0JwRW1UNk4rL1ArKzg4dzR0V3JUZ1AvN2pQNDU1N0lFREIralNwUXR6NXN4aDBLQkJQUHJvbzJ6ZQp2SmtPSFRxd2J0MjYyS2NtSFdiSWtMRHg0T1RKc1pOSWtwUjZCUVh3eGh2d3kxK0dSN2R1c0cxYjdGVFpxMUxzQU9ucXpqdnZwTEN3CmtFcVYvdjR0NnRtekp6Lys4WThaTzNZc3MyZlBQdXF4OCtiTlkrblNwY3liTjQ5dTNib0IwS05IRDg0NjZ5eEdqUnJGYzg4OUYvdjAKcElNV0xJRFpzMkhHREtoWEwzWWFTWkxpcUZRSkhuNFkyclNCM3IzRFBsaC8rQU9jZDE3c1pObkhFWkNqYU51MjdTSGxBK0RNTTgvawpSei82RVd1T3MzRDB2SG56cUZldjNzSHlBWERxcWFmU28wY1BYbnJwSmZhNjFJTFN4UGJ0Y1BQTmNPbWxjTU1Oc2ROSWtoUmYxNjZ3CmNpWFVxQkhLeURFK2M5WUpzb0NVUWpLWjVNc3Z2K1RVVTA4OTV1dFdyVnBGaXhZdERudStzTENRblR0M3NuYnQydGluSWdGd3p6MncKWlV2WTh5T1JpSjFHa3FUMGNNWVpzR1JKMkRla2QyKzQ5VmJZc3lkMnF1eGhBU21GNTU1N2pvMGJOOUt6Wjg5anZtN1RwazNVcjEvLwpzT2UvZjI2ajY3d3BEU3haRXBZZUhETUdUajg5ZGhwSmt0Skw5ZW93YzJiNGtHN0dETGpvSXRpd0lYYXE3R0FCS2FFMWE5WncrKzIzCjA2NWRPMzd4aTE4Yzg3VzdkKyttYXRXcWh6MWZyVm8xQUhidDJoWDdkSlRqOXV3Sm13MFdGc0tnUWJIVFNKS1VuaElKNk5jUDNuMFgKTm0rR0ZpM0NCM2dxRzI5Q0w0RXZ2dmlDTGwyNmNNb3BwekJ2M2p3U3g1bXJjdkxKSjdQbkNPTjB1M2Z2UHZoMUthYUhIb0oxNjhLeQpneWVkRkR1TkpFbnByVldyY0YvSWRkZUZaZXRWTmhhUTQ5aTJiUnVkTzNmbWIzLzdHNHNYTDZaZUNaWUpxbCsvL2hHbldXM2F0QW1BCkJnMGFIUFA0d1lNSFUvdWZkb0xyMWFzWHZYcjFpdjN0VUJaWXZSb2VlUVJHam9Seno0MmRScEtrOURWbnpoem16Smx6OEo4clZZTEcKamJjNkZhdU1MQ0RIc0h2M2JxNjQ0Z3JXclZ2SG4vLzhaODQrKyt3U0hkZThlWE1XTDE1TU1wazhaTFJrMmJKbDFLaFJnN1BPT3V1WQp4ei94eEJOSHZJbGRLcXY5KzhQVXE3UE9DZ1ZFa2lRZDNaRStBQzR1THFabHk1YXhvMlUwN3dFNWl2Mzc5OU96WjArV0xWdkdpeSsrCnlBVVhYSERFMTMzeHhSZXNXYk9HZmZ2MkhYenVtbXV1NGNzdnYyVCsvUGtIbjl1eVpRc3Z2dmdpVjF4eEJaVXJWNDU5ZXNwUkV5ZkMKaWhYdzlOTndoTnVVSkVtU0twd2pJRWR4NTUxM1VsUlV4QlZYWE1HV0xWdDQ5dGxuRC9uNmRkZGRCOERkZDkvTnJGbXpXTDkrUFkwYQpOUUpDQVduVHBnMDMzbmdqSDMzMEVYWHExR0hxMUtra2swa2VlT0NCMktlbUhQWHBwM0R2dldIdWF0dTJzZE5Ja3FSY1pRRTVpZzgrCitJQkVJa0ZSVVJGRlJVV0hmQzJSU0J3c0lJbEU0ckNiMHZQeTh2alRuLzdFc0dIRG1EUnBFcnQyN2FKMTY5Yk1taldMcGsyYnhqNDEKNWFCa01xemlVVkFRYmtDWEpFbUtKWkZNSnBPeFF5ajRmazdoeXBVcnZRZEU1V3JHRE9qVEIxNS9IWDc2MDlocEpFbktYUDYrVm5iZQpBeUpsdVUyYjRNNDd3MDZ1bGc5SmtoU2JCVVRLY2dNR1FKVXE4Tmhqc1pOSWtpUjVENGlVMWViUEQ0KzVjNkZPbmRocEpFbVNIQUdSCnN0WTMzOER0dDBQWHJ0QzllK3cwa2lSSmdRVkV5bEozM1FVN2Q4TFVxZkJQQzdWSmtpUkY0eFFzS1FzdFhCaFd2dnJkNzZCaHc5aHAKSkVtUy9zNFJFQ25MN05nQi9mdEQrL2JRdDIvc05KSWtTWWR5QkVUS012ZmRCeHMzd29JRmtPZEhESklrS2MxWVFLUXNzbnc1UFBFRQpQUElJTkcwYU80MGtTZExoL0h4VXloTGZmUmQyTzIvZUhJWU9qWjFHa2lUcHlCd0JrYkxFdUhIdzBVZXdZZ1ZVOHI5c1NaS1VwaHdCCmtiTEF4eC9EbURFd2ZIZ1lBWkVrU1VwWEZoQXB3KzNmSDZaZU5Xa1Nia0NYSkVsS1owN1VrRExjMUttd2RDbTg4dzVVcXhZN2pTUkoKMHJFNUFpSmxzQTBiWU1RSXVQVld1T2lpMkdra1NaS096d0lpWmFoa0VtNjVCVTQ1QmNhT2paMUdraVNwWkp5Q0pXV29aNThObXcwVwpGVUhObXJIVFNKSWtsWXdqSUZJRzJyd1pCZytHWHIzZzhzdGpwNUVrU1NvNUM0aVVnZTY0QXhJSm1EZ3hkaEpKa3FUU2NRcVdsR0dLCml1RDU1MkgyYktoYk4zWWFTWktrMG5FRVJNb2cyN2FGRmE4NmQ0YWYvengyR2ttU3BOS3pnRWdaNU82N1F3bDU4c2t3QlV1U0pDblQKT0FWTHloQ0xGb1hpTVhreU5Hb1VPNDBrU2RLSmNRUkV5Z0M3ZGtHL2ZuRGhoWERiYmJIVFNKSWtuVGhIUUtRTU1IcDAyUFg4NVpjaAp6NDhOSkVsU0J2TlhHU25ORlJmRCtQSHdxMS9CMldmSFRpTkprbFEyRmhBcGplM2JCMzM3UXJObU1IeDQ3RFNTSkVsbDV4UXNLWTFOCm1BQWZmQURMbGtHVktySFRTSklrbFowaklGS2FXcnNXUm8yQ0lVT2dWYXZZYVNSSmtzcUhCVVJLUXdjT2hGV3ZHallNTjZCTGtpUmwKQzZkZ1NXbG8yalI0NXgxWXVCQ3FWNCtkUnBJa3FmdzRBaUtsbWM4L2gySERvRThmdU9TUzJHa2tTWkxLbHdWRVNpUEpaTmhvTUQ4ZgpmdjNyMkdra1NaTEtuMU93cERUeXdndFFWQVR6NTBQdDJySFRTSklrbFQ5SFFLUTA4ZlhYTUhBZ1hIMDFYSFZWN0RTU0pFa1Z3d0lpCnBZa2hRMkR2WHBneUpYWVNTWktraXVNVUxDa05MRmdBczJmRGpCbFFyMTdzTkpJa1NSWEhFUkFwc3UzYjRlYWI0ZEpMNFlZYllxZVIKSkVtcVdJNkFTSkhkY3c5czJRSnZ2UVdKUk93MGtpUkpGY3NDSWtXMFpFbTQ1MlBDQlBqaEQyT25rU1JKcW5oT3daSWkyYk1IK3ZhRgp3a0lZTkNoMkdrbVNwTlJ3QkVTSzVLR0hZTjA2S0M2R2swNktuVWFTSkNrMUhBR1JJbGk5R2g1NUJFYU1nSFBQaloxR2tpUXBkU3dnClVvcnQzeCttWGpWdENpTkh4azRqU1pLVVdrN0JrbEpzNGtSWXNRTGVmUmVxVm8yZFJwSWtLYlVjQVpGUzZOTlA0ZDU3WWVCQWFOczIKZGhwSmtxVFVzNEJJS1pKTVFyOStVRkFRYmtDWEpFbktSVTdCa2xKazVreDQ4MDFZc0FEeTgyT25rU1JKaXNNUkVDa0ZObTJDTysrRQozcjJoVTZmWWFTUkprdUt4Z0VncE1HQUFWSzRNanowV080a2tTVkpjVHNHU0t0ajgrZUV4ZHk3VXFSTTdqU1JKVWx5T2dFZ1Y2SnR2CjRQYmJvV3RYNk40OWRocEprcVQ0TENCU0JicnJMdGk1RTZaT2hVUWlkaHBKa3FUNG5JSWxWWkNGQzJIR0RQamQ3NkJodzlocEpFbVMKMG9NaklGSUYyTEVEK3ZlSDl1MmhiOS9ZYVNSSmt0S0hJeUJTQmJqdlB0aTRNZXo1a1dmTmx5UkpPc2dDSXBXejVjdmhpU2Zna1VlZwphZFBZYVNSSmt0S0xuODFLNWVpNzc2QlBIMmplSElZT2paMUdraVFwL1RnQ0lwV2pjZVBnbzQ5Z3hRcW81SDlka2lSSmgzRUVSQ29uCkgzOE1ZOGJBOE9GaEJFU1NKRW1IczRCSTVXRC8vakQxcWttVGNBTzZKRW1TanN4SklsSTVtRG9WbGk2RlJZdWdXclhZYVNSSmt0S1gKSXlCU0dXM1lBQ05Hd0syM3dzVVh4MDRqU1pLVTNpd2dVaGtrazNETExYREtLVEIyYk93MGtpUko2YzhwV0ZJWlBQdHMyR3l3cUFocQoxb3lkUnBJa0tmMDVBaUtkb00yYllmQmc2TlVMTHI4OGRocEprcVRNWUFHUlR0QWRkMEFpQVJNbnhrNGlTWktVT1p5Q0paMkFvaUo0Ci9ubVlQUnZxMW8yZFJwSWtLWE00QWlLVjByWnRZY1dyenAzaDV6K1BuVWFTSkNteldFQ2tVcnI3N2xCQ25ud3lUTUdTSkVsU3lUa0YKU3lxRlJZdEM4Wmc4R1JvMWlwMUdraVFwOHpnQ0lwWFFybDNRcng5Y2VDSGNkbHZzTkpJa1NabkpFUkNwaEVhUERydWV2L3d5NUZuZApKVW1TVG9pL1Jra2xVRndNNDhmRHIzNEZaNThkTzQwa1NWTG1zb0JJeDdGdkgvVHRDODJhd2ZEaHNkTklraVJsTnFkZ1NjY3hZUUo4CjhBRXNXd1pWcXNST0kwbVNsTmtjQVpHT1llMWFHRFVLaGd5QlZxMWlwNUVrU2NwOEZoRHBLQTRjQ0t0ZU5Xd1lia0NYSkVsUzJUa0YKU3pxS2FkUGduWGRnNFVLb1hqMTJHa21TcE96Z0NJaDBCSjkvRHNPR1FaOCtjTWtsc2ROSWtpUmxEd3VJOUUrU3liRFJZSDQrL1ByWApzZE5Ja2lSbEY2ZGdTZi9raFJlZ3FBam16NGZhdFdPbmtTUkp5aTZPZ0VqLzRPdXZZZUJBdVBwcXVPcXEyR2trU1pLeWp3VkUrZ2RECmhzRGV2VEJsU3V3a2tpUkoyY2twV05KL1c3QUFacytHR1RPZ1hyM1lhU1JKa3JLVEl5QVNzSDA3M0h3elhIb3AzSEJEN0RTU0pFbloKeXhFUUNiam5IdGl5QmQ1NkN4S0oyR2trU1pLeWx3VkVPVy9Ka25EUHg0UUo4TU1meGs0alNaS1UzWnlDcFp5Mlp3LzA3UXVGaFRCbwpVT3cwa2lSSjJjOFJFT1cwaHg2Q2RldWd1QmhPT2lsMkdrbVNwT3puQ0loeTF1clY4TWdqTUdJRW5IdHU3RFNTSkVtNXdRS2luTFIvCmY1aDYxYlFwakJ3Wk80MGtTVkx1Y0FxV2N0TEVpYkJpQmJ6N0xsU3RHanVOSkVsUzduQUVSRG5uMDAvaDNudGg0RUJvMnpaMkdrbVMKcE54aUFWRk9TU2FoWHo4b0tBZzNvRXVTSkNtMW5JS2xuREp6SnJ6NUppeFlBUG41c2ROSWtpVGxIa2RBbERNMmJZSTc3NFRldmFGVApwOWhwSkVtU2NwTUZSRGxqd0FDb1hCa2VleXgyRWttU3BOemxGQ3psaFBuencyUHVYS2hUSjNZYVNaS2szT1VJaUxMZU45L0E3YmRECjE2N1F2WHZzTkpJa1Nibk5BcUtzZDlkZHNITW5USjBLaVVUc05KSWtTYm5OS1ZqS2Fnc1h3b3daOEx2ZlFjT0dzZE5Ja2lUSkVSQmwKclIwN29IOS9hTjhlK3ZhTm5VYVNKRW5nQ0lpeTJIMzN3Y2FOWWMrUFBLdTJKRWxTV3JDQUtDc3RYdzVQUEFHUFBBSk5tOFpPSTBtUwpwTy81dWJDeXpuZmZRWjgrMEx3NURCMGFPNDBrU1pMK2tRWGtHSGJzMk1Hb1VhTzQ3TExMK01FUGZrQmVYaDdQUFBOTWlZNzkvZTkvClQxNWUzaEVmbXpkdmpuMXFXVzNjT1Bqb0k1ZytIU281eGlkSmtwUlcvUFhzR0w3NjZpc2VmUEJCR2pkdVRQUG16WG43N2JkSmxISWQKMXdjZmZKRFRUei85a09kcTFhb1YrOVN5MXNjZnc1Z3hNSHg0R0FHUkpFbFNlckdBSEVPREJnMzQ0b3N2S0Nnb1lPWEtsUlFXRnBiNgo3K2pjdVRNdFdyU0lmU281WWYvK01QV3FTWk53QTdva1NaTFNqd1hrR0twVXFVSkJRUUVBeVdUeWhQNk9aRExKOXUzYnFWNjlPaWVkCmRGTHNVOHBxVTZmQzBxV3dhQkZVcXhZN2pTUkprbzdFZTBBcVdNZU9IYWxWcXhZMWF0VGd5aXV2Wk4yNmRiRWpaYVVORzJERUNMajEKVnJqNDR0aHBKRW1TZERTT2dGU1FHalZxY09PTk45S3hZMGRxMXF6SmloVXJlT3l4eDJqWHJoM0Z4Y1djZHRwcHNTTm1qV1FTYnJrRgpUamtGeG82Tm5VYVNKRW5IWWdHcElOMjdkNmQ3OSs0SC83bHIxNjUwNnRTSml5KyttSWNlZW9qZi92YTNzU05taldlZkRac05GaFZCCnpacXgwMGlTSk9sWW5JS1ZRaGRlZUNFWFhIQUJmLzd6bjJOSHlScWJOOFBnd2RDckYxeCtlZXcwa2lSSk9oNUhRRkxzdE5OT1krM2EKdGNkOHplREJnNmxkdS9ZaHovWHExWXRldlhyRmpwOTI3cmdERWdtWU9ERjJFa21TbEczbXpKbkRuRGx6RG5sdTY5YXRzV05sUEF0SQppbjM2NmFmVXJWdjNtSzk1NG9rblhMcTNCSXFLNFBubllmWnNPTTYzVkpJa3FkU085QUZ3Y1hFeExWdTJqQjB0b3prRnF4eDg4Y1VYCnJGbXpobjM3OWgxODdxdXZ2anJzZFgvNjA1OG9MaTdtc3NzdWl4MDU0MjNiRmxhODZ0d1pmdjd6Mkdra1NaSlVVbzZBSE1lVUtWUFkKdW5Vckd6ZHVCT0RsbDEvbXM4OCtBMkRRb0VIVXJGbVR1KysrbTFtelpyRisvWG9hTldvRVFMdDI3V2pSb2dVdFc3YWtWcTFhRkJjWApNMlBHREJvMWFzVElrU05qbjFiR3UvdnVVRUtlZkRKTXdaSWtTVkptc0lBY3g0UUpFOWl3WVFNQWlVU0NQLzd4ajh5ZlA1OUVJa0h2CjNyMnBXYk1taVVTQ3hELzlGdnl6bi8yTVYxOTlsVGZlZUlPZE8zZlNvRUVEYnI3NVprYU5HblhjS1ZnNnRrV0xRdkdZUEJuK3UrOUoKa2lRcFF5U1NKN3JGdDhyZDkzTUtWNjVjNlQwZ1I3RnJGL3pydjBKQkFienpEdVE1aVZDU0pLV1F2NitWblNNZ3lpaWpSNGRkejE5KwoyZkloU1pLVWlmd1ZUaG1qdUJqR2o0ZGYvUXJPUGp0MkdrbVNKSjBJQzRneXdyNTkwTGN2TkdzR3c0ZkhUaU5Ka3FRVDVSUXNaWVFKCkUrQ0REMkRaTXFoU0pYWWFTWklrblNoSFFKVDIxcTZGVWFOZ3lCQm8xU3AyR2ttU0pKV0ZCVVJwN2NBQjZOY1BHallNTjZCTGtpUXAKc3prRlMybHQyclN3M083Q2hWQzlldXcwa2lSSktpdEhRSlMyUHY4Y2hnMkRQbjNna2t0aXA1RWtTVko1c0lBb0xTV1RjTnR0a0o4UAp2LzUxN0RTU0pFa3FMMDdCVWxwNjRRVW9Lb0w1ODZGMjdkaHBKRW1TVkY0Y0FWSGErZnByR0RnUXJyNGFycm9xZGhwSmtpU1ZKd3VJCjBzNlFJYkIzTDB5WkVqdUpKRW1TeXB0VHNKUldGaXlBMmJOaHhneW9WeTkyR2ttU0pKVTNSMENVTnJadmg1dHZoa3N2aFJ0dWlKMUcKa2lSSkZjRVJFS1dOZSs2QkxWdmdyYmNna1lpZFJwSWtTUlhCQXFLMHNHUkp1T2Rqd2dUNDRROWpwNUVrU1ZKRmNRcVdvdHV6Qi9yMgpoY0pDR0RRb2RocEpraVJWSkVkQUZOMUREOEc2ZFZCY0RDZWRGRHVOSkVtU0twSWpJSXBxOVdwNDVCRVlNUUxPUFRkMkdrbVNKRlUwCkM0aWkyYjgvVEwxcTJoUkdqb3lkUnBJa1NhbmdGQ3hGTTNFaXJGZ0I3NzRMVmF2R1RpTkprcVJVY0FSRVVYejZLZHg3THd3Y0NHM2IKeGs0alNaS2tWTEdBS09XU1NlalhEd29Ld2czb2tpUkp5aDFPd1ZMS3pad0piNzRKQ3haQWZuN3NOSklrU1VvbFIwQ1VVcHMyd1oxMwpRdS9lMEtsVDdEU1NKRWxLTlF1SVVtckFBS2hjR1I1N0xIWVNTWklreGVBVUxLWE0vUG5oTVhjdTFLa1RPNDBrU1pKaWNBUkVLZkhOCk4zRDc3ZEMxSzNUdkhqdU5KRW1TWXJHQUtDWHV1Z3QyN29TcFV5R1JpSjFHa2lSSnNUZ0ZTeFZ1NFVLWU1RTis5enRvMkRCMkdrbVMKSk1Ya0NJZ3ExSTRkMEw4L3RHOFBmZnZHVGlOSmtxVFlIQUZSaGJydlB0aTRNZXo1a1dmZGxTUkp5bmtXRUZXWTVjdmhpU2Zna1VlZwphZFBZYVNSSmtwUU8vRXhhRmVLNzc2QlBIMmplSElZT2paMUdraVJKNmNJUkVGV0ljZVBnbzQ5Z3hRcW81THRNa2lSSi84MFJFSlc3Cmp6K0dNV05nK1BBd0FpSkpraVI5endLaWNyVi9mNWg2MWFSSnVBRmRraVJKK2tkT2psRzVtam9WbGk2RlJZdWdXclhZYVNSSmtwUnUKSEFGUnVkbXdBVWFNZ0Z0dmhZc3ZqcDFHa2lSSjZjZ0NvbktSVE1JdHQ4QXBwOERZc2JIVFNKSWtLVjA1QlV2bDR0bG53MmFEUlVWUQpzMmJzTkpJa1NVcFhqb0NvekRadmhzR0RvVmN2dVB6eTJHa2tTWktVeml3Z0tyTTc3b0JFQWlaT2pKMUVraVJKNmM0cFdDcVRvaUo0Ci9ubVlQUnZxMW8yZFJwSWtTZW5PRVJDZHNHM2J3b3BYblR2RHozOGVPNDBrU1pJeWdRVkVKK3p1dTBNSmVmTEpNQVZMa2lSSk9oNm4KWU9tRUxGb1Vpc2ZreWRDb1VldzBraVJKeWhTT2dLalVkdTJDZnYzZ3dndmh0dHRpcDVFa1NWSW1jUVJFcFRaNmROajEvT1dYSWM4SwpLMG1TcEZMdzEwZVZTbkV4akI4UHYvb1ZuSDEyN0RTU0pFbktOQllRbGRpK2ZkQzNMelJyQnNPSHgwNGpTWktrVE9RVUxKWFloQW53CndRZXdiQmxVcVJJN2pTUkpraktSSXlBcWtiVnJZZFFvR0RJRVdyV0tuVWFTSkVtWnlnS2k0enB3SUt4NjFiQmh1QUZka2lSSk9sRk8Kd2RKeFRac0c3N3dEQ3hkQzllcXgwMGlTSkNtVE9RS2lZL3I4Y3hnMkRQcjBnVXN1aVoxR2tpUkptYzRDb3FOS0pzTkdnL241OE90Zgp4MDRqU1pLa2JPQVVMQjNWQ3k5QVVSSE1udysxYThkT0kwbVNwR3pnQ0lpTzZPdXZZZUJBdVBwcXVPcXEyR2trU1pLVUxTd2dPcUloClEyRHZYcGd5SlhZU1NaSWtaUk9uWU9rd0N4YkE3Tmt3WXdiVXF4YzdqU1JKa3JLSkl5QTZ4UGJ0Y1BQTmNPbWxjTU1Oc2ROSWtpUXAKMnpnQ29rUGNjdzlzMlFKdnZRV0pST3cwa2lSSnlqWVdFQjIwWkVtNDUyUENCUGpoRDJPbmtTUkpValp5Q3BZQTJMTUgrdmFGd2tJWQpOQ2gyR2ttU0pHVXJSMEFFd0VNUHdicDFVRndNSjUwVU80MGtTWkt5bFNNZ1l2VnFlT1FSR0RFQ3pqMDNkaHBKa2lSbE13dElqdHUvClAweTlhdG9VUm82TW5VYVNKRW5aemlsWU9XN2lSRml4QXQ1OUY2cFdqWjFHa2lSSjJjNFJrQnoyNmFkdzc3MHdjQ0MwYlJzN2pTUkoKa25LQkJTUkhKWlBRcng4VUZJUWIwQ1ZKa3FSVWNBcFdqcG81RTk1OEV4WXNnUHo4Mkdra1NaS1VLeHdCeVVHYk5zR2RkMEx2M3RDcApVK3cwa2lSSnlpVVdrQncwWUFCVXJneVBQUlk3aVNSSmtuS05VN0J5elB6NTRURjNMdFNwRXp1TkpFbVNjbzBqSURua20yL2c5dHVoCmExZm8zajEyR2ttU0pPVWlDMGdPdWVzdTJMa1RwazZGUkNKMkdrbVNKT1VpcDJEbGlJVUxZY1lNK04zdm9HSEQyR2trU1pLVXF4d0IKeVFFN2RrRC8vdEMrUGZUdEd6dU5KRW1TY3BraklEbmd2dnRnNDhhdzUwZWVsVk9TSkVrUldVQ3kzUExsOE1RVDhNZ2owTFJwN0RTUwpKRW5LZFg0ZW5zVysrdzc2OUlIbXpXSG8wTmhwSkVtU0pFZEFzdHE0Y2ZEUlI3QmlCVlR5LzJsSmtpU2xBVWRBc3RUSEg4T1lNVEI4CmVCZ0JrU1JKa3RLQkJTUUw3ZDhmcGw0MWFSSnVRSmNrU1pMU2hSTnpzdERVcWJCMEtTeGFCTldxeFU0alNaSWsvWjBqSUZsbXd3WVkKTVFKdXZSVXV2amgyR2ttU0pPbFFGcEFza2t6Q0xiZkFLYWZBMkxHeDAwaVNKRW1IY3dwV0ZubjIyYkRaWUZFUjFLd1pPNDBrU1pKMApPRWRBc3NUbXpUQjRNUFRxQlpkZkhqdU5KRW1TZEdRV2tDeHh4eDJRU01ERWliR1RTSklrU1VmbkZLd3NVRlFFeno4UHMyZEQzYnF4CjAwaVNKRWxINXdoSWh0dTJMYXg0MWJrei9Qem5zZE5Ja2lSSngyWUJ5WEIzM3gxS3lKTlBoaWxZa2lSSlVqcHpDbFlHVzdRb0ZJL0oKazZGUm85aHBKRW1TcE9OekJDUkQ3ZG9GL2ZyQmhSZkNiYmZGVGlOSmtpU1ZqQ01nR1dyMDZMRHIrY3N2UTU0MVVwSWtTUm5DWDEwegpVSEV4akI4UHYvb1ZuSDEyN0RTU0pFbFN5VmxBTXN5K2ZkQzNMelJyQnNPSHgwNGpTWklrbFk1VHNETE1oQW53d1Fld2JCbFVxUkk3CmpTUkprbFE2am9Ca2tMVnJZZFFvR0RJRVdyV0tuVWFTSkVrcVBRdEloamh3SUt4NjFiQmh1QUZka2lSSnlrUk93Y29RMDZiQk8rL0EKd29WUXZYcnNOSklrU2RLSmNRUWtBM3orT1F3YkJuMzZ3Q1dYeEU0alNaSWtuVGdMU0pwTEpzTkdnL241OE90ZngwNGpTWklrbFkxVApzTkxjQ3k5QVVSSE1udysxYThkT0kwbVNKSldOSXlESHNHUEhEa2FOR3NWbGwxM0dEMzd3QS9MeThuam1tV2RLZlB6V3JWdnAzNzgvCmRldldKVDgvbjBzdXVZUlZxMWFWK1BpdnY0YUJBK0hxcStHcXEySi9OeVJKa3FTeXM0QWN3MWRmZmNXRER6N0lmLzduZjlLOGVYTUEKRW9sRWlZNDljT0FBWGJwMFljNmNPUXdhTkloSEgzMlV6WnMzMDZGREI5YXRXMWVpdjJQSUVOaTdGNlpNaWYyZGtDUkprc3FIQmVRWQpHalJvd0JkZmZNRi8vZGQvTVg3OCtGSWRPMi9lUEpZdVhjb3p6enpEcjM3MUsyNjc3VGJlZnZ0dFRqcnBKRWFOR25YYzR4Y3NnTm16CjRiSEhvRjY5Mk44SlphTTVjK2JFanFBYzRYdE5xZUo3VGNvTUZwQmpxRktsQ2dVRkJRQWtrOGxTSFR0djNqenExYXRIdDI3ZERqNTMKNnFtbjBxTkhEMTU2NlNYMjd0MTcxR04zN0lDYmI0WkxMNFViYm9qOVhWQzI4Z2UxVXNYM21sTEY5NXFVR1N3Z0ZXVFZxbFcwYU5IaQpzT2NMQ3d2WnVYTW5hOWV1UGVxeHYva05iTmtDdi9zZGxIREdseVJKa3BRUkxDQVZaTk9tVGRTdlgvK3c1NzkvYnVQR2pVYzlkdTVjCkdETUdmdmpEMkdjaFNaSWtsUzhMU0FYWnZYczNWYXRXUGV6NWF0V3FBYkJyMTY2akh0dXNHUXdhRlBzTUpFbVNwUExuUGlBVjVPU1QKVDJiUG5qMkhQYjk3OSs2RFh6K2E2Njc3bUE4K2lIMEd5blpidDI2bHVMZzRkZ3psQU45clNoWGZhMHFGanovK09IYUVqR2NCcVNEMQo2OWMvNGpTclRaczJBV0dGclNNZDA2QkJBMGFNdUk0UkkyS2ZnWEpCeTVZdFkwZFFqdkM5cGxUeHZhWlVhTkNnd1JHbjJxdGtMQ0FWCnBIbno1aXhldkpoa01ubkkzaUhMbGkyalJvMGFuSFhXV1ljZFU3OStmVmFzV0hHd3BFaVNKQ245MUs5ZjN3SlNCaGFRY3ZERkYxK3cKZGV0V3pqenpUQ3BWQ3QvU2E2NjVobm56NWpGLy9ueXV2dnBxQUxaczJjS0xMNzdJRlZkY1FlWEtsWS80ZC9tR2xpUkpVamF6Z0J6SApsQ2xUMkxwMTY4SHBWQysvL0RLZmZmWVpBSU1HRGFKbXpacmNmZmZkekpvMWkvWHIxOU9vVVNNZ0ZKQTJiZHB3NDQwMzh0RkhIMUduClRoMm1UcDFLTXBua2dRY2VpSDFha2lSSlVoU0paR2wzMk1zeHA1OStPaHMyYkFBNE9KWHErMmxWLy9WZi8wV2pSbzI0OGNZYm1UVnIKMXNGLy90N1dyVnNaTm13WS8vN3YvODZ1WGJ0bzNibzF2LzcxcjQrNFA0Z2tTWktVQ3l3Z2tpUkprbExHZlVBa1NaSWtwWXdGSkFYMgo3Tm5ETDMvNVN4bzBhRUQxNnRWcDA2WU5mLzd6bjB0MDdOYXRXK25mdno5MTY5WWxQeitmU3k2NWhGV3JWc1UrSmFXcEUzMnYvZjczCnZ5Y3ZMKytJajgyYk44YytMYVdaSFR0Mk1HclVLQzY3N0RKKzhJTWZrSmVYeHpQUFBGUGk0NzJ1cWFUSzhsN3p1cWJTV0w1OE9RTUcKREtCWnMyYms1K2ZUdUhGamV2YnN5Vi8rOHBjU0hlOTFyWFM4Q1QwRmJyamhCdjd3aHo4d1pNZ1Ftalp0eXN5Wk0vbWYvL04vOHRaYgpiM0hoaFJjZTliZ0RCdzdRcFVzWFZxOWV6ZkRod3cvZXlONmhRd2RXcmx6Sm1XZWVHZnZVbEdaTzlMMzJ2UWNmZkpEVFR6LzlrT2RxCjFhb1YrN1NVWnI3NjZpc2VmUEJCR2pkdVRQUG16WG43N2JjUFdXNzhXTHl1cVRUSzhsNzdudGMxbGNTNGNlTll1blFwM2J0MzU3enoKem1QVHBrMU1tVEtGRmkxYThONTc3OUdzV2JPakh1dDE3UVFrVmFHV0xWdVdUQ1FTeVFrVEpoeDhidmZ1M2Nrenp6d3oyYTVkdTJNZQpPM2Z1M0dRaWtVais0UTkvT1BqY1YxOTlsVHpsbEZPUzExNTdiZXhUVTVvcHkzdHQ1c3laeVVRaWtWeTVjbVhzMDFBRzJMTm5UL0xMCkw3OU1KcFBKNUlvVks1S0pSQ0w1ekRQUGxPaFlyMnNxamJLODE3eXVxVFNXTEZtUzNMdDM3eUhQL2VVdmYwbFdxMVl0ZWQxMTF4M3oKV0s5cnBlY1VyQW8yYjk0OEtsV3FSUC8rL1E4K1Y3VnFWZnIwNmNQU3BVdjVmLy92L3gzejJIcjE2dEd0VzdlRHo1MTY2cW4wNk5HRApsMTU2aWIxNzk4WStQYVdSc3J6WHZwZE1KdG0rZlR2NzkrK1BmVHBLWTFXcVZLR2dvQUFJNzVuUzhMcW0waWpMZSsxN1h0ZFVFbTNiCnRqMjRsOXYzemp6elRINzBveCt4WnMyYVl4N3JkYTMwTENBVmJOV3FWWngxMWxuazUrY2Y4bnhoWVNFQS8rZi8vSjlqSG51a0pYc0wKQ3d2WnVYTW5hOWV1algxNlNpTmxlYTk5cjJQSGp0U3FWWXNhTldwdzVaVlhzbTdkdXRpbnBTempkVTJwNW5WTkp5cVpUUExsbDE5eQo2cW1uSHZOMVh0ZEt6d0pTd1RadDJuVEVuYzIvZis3N0RRN0wrMWpsbnJLOFgyclVxTUdOTjk3STFLbFQrZmQvLzNlR0R4L093b1VMCmFkZXVIWjkvL25uc1UxTVc4YnFtVlBHNnBySjY3cm5uMkxoeEl6MTc5anptNjd5dWxaNDNvVmV3WGJ0MlViVnExY09lcjFhdDJzR3YKSDgzdTNidFArRmpsbnJLODE3cDM3MDczN3QwUC9uUFhybDNwMUtrVEYxOThNUTg5OUJDLy9lMXZZNStlc29UWE5hV0sxeldWeFpvMQphN2o5OXR0cDE2NGR2L2pGTDQ3NVdxOXJwZWNJU0FVNytlU1QyYk5uejJIUDc5NjkrK0RYSytKWTVaN3lmcjljZU9HRlhIREJCU1ZlCk1sb3FDYTlyaXNucm1rcmlpeSsrb0V1WExweHl5aW5NbXpmdnVDdXZlVjByUFF0SUJhdGZ2LzRSaDk0MmJkb0VRSU1HRFNya1dPV2UKaW5pL25IYmFhWHp6elRleFQwMVp4T3VhWXZPNnBtUFp0bTBiblR0MzVtOS8reHNMRml5Z1hyMTZ4ejNHNjFycFdVQXEyUG5ubjgvYQp0V3Zadm4zN0ljOHZXN1lNZ09iTm14LzEyT2JObTFOY1hIell5aC9MbGkyalJvMGFuSFhXV2JGUFQybWtMTysxby9uMDAwK3BXN2R1CjdGTlRGdkc2cHRpOHJ1bG9kdS9lelJWWFhNRzZkZXQ0NVpWWE9QdnNzMHQwbk5lMTByT0FWTEJycnJtRy9mdjM4OVJUVHgxOGJzK2UKUGN5Y09aTTJiZHJRc0dGRElBejNyVm16aG4zNzloMXk3SmRmZnNuOCtmTVBQcmRseXhaZWZQRkZycmppQ2lwWHJoejc5SlJHeXZKZQorK3Fycnc3NysvNzBwejlSWEZ6TVpaZGRGdnZVbEtHOHJpbFZ2SzZwclBidjMwL1BuajFadG13Wkw3NzRJaGRjY01FUlgrZDFyWHdrCmtpZTZzTFpLckdmUG52enhqMzlreUpBaG5ISEdHVHp6ekRPc1dMR0NoUXNYOG0vLzltOUEyTUY2MXF4WnJGKy9ua2FOR2dGaFo4MS8KKzdkLzQ4TVBQMlRZc0dFSGQ5YjgvUFBQV2I1OE9VMmJObzE5YWtvekovcGVhOXEwS1MxYXRLQmx5NWJVcWxXTDR1Smlac3lZUWNPRwpEVm0rZkxtZkZ1b3dVNlpNWWV2V3JXemN1SkVubjN5U2J0MjZIUnhsR3pSb0VEVnIxdlM2cG5KeG91ODFyMnNxamNHREJ6TnAwaVN1CnVPS0tReFl2K041MTExMEgrUHRhdVltOUUySXUyTDE3ZDNMWXNHSEordlhySjZ0VnE1YTg0SUlMa20rODhjWWhyN25oaGh1U2VYbDUKeVEwYk5oenkvRGZmZkpQczI3ZHY4dFJUVDAzV3FGRWoyYkZqUjNkMTFWR2Q2SHZ0M252dlRaNS8vdm5KMnJWcko2dFVxWkpzMHFSSgo4dmJiYjA5dTNydzU5aWtwVFRWcDBpU1pTQ1NTaVVRaW1aZVhsOHpMeXp2NDUrL2ZXMTdYVkI1TzlMM21kVTJsMGFGRGg0UHZyWDkrCjVPWGxIWHlkMTdYeTRRaUlKRW1TcEpUeEhoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUIKa1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSgpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKCmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXkKRmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSgprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktmUC9BeE5wMGlHdHpRYjJBQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5Ck1ERTRMVEExTFRFMVZERTVPalEzT2pNekt6QXlPakF3WGI2MHNBQUFBQ1YwUlZoMFpHRjBaVHB0YjJScFpua0FNakF4T0Mwd05TMHgKTlZReE9UbzBOem96TXlzd01qb3dNQ3pqREF3QUFBQUFTVVZPUks1Q1lJST0iIC8+Cjwvc3ZnPgo="; }, + thumbnail_uri: function () { return null; } + } + + , + "testmodel.fig2.png": { + name: "testmodel.fig2.png", + filename: "testmodel.fig2.png", + path: "testmodel.fig2.png", + size: "9.1 kB", + caption: "

Some math \u2211ii2.

\n", + job_properties: { + rule: "b", + wildcards: "model=testmodel", + params: "" + }, + data_uri: function () { return "data:image/png;charset=utf8;filename=testmodel.fig2.png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3W2QlfV5wOF7t+sLgQJmWQobRiSLkmSLQyBC2BiDpo1vRRsDbLdDEkgaZ1LFYtLgtHHwgzFjNm2kljTENNlgQ2lHDKl22ial0YaZrCBsmrYSBAkvRRZZrShKUMHTDw6kG15kdzn3A3uua4aZ8JzzOPf+547y45yzW1UqlUoBAACQoLroAQAAgMohQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAyqyjoyOuu+66qK2tjYEDB8b48ePjL//yL4seCwAAClFT9AD92Q9+8IOYPn16TJo0KRYuXBiDBg2Kp556Kp5++umiRwMAgEJUlUqlUtFD9EcvvvhiXHTRRXHppZfGihUrih4HAABOC96CVSZ/+7d/G3v27Im77rorIiJefvnleP311wueCgAAiiVAymTVqlUxePDg+J//+Z8YN25c/Pqv/3oMGTIk/vAP/zBeeeWVoscDAIBCCJAy2bx5cxw8eDB+93d/N66++ur47ne/G5/4xCdiyZIlMXfu3KLHAwCAQvgMSJk0NDTE1q1b49Of/nR89atfPXL905/+dHz961+PTZs2xdixYwucEAAA8vkuWGUyYMCAiIhoaWnpdr2lpSW+/vWvx2OPPXbMAOns7IzOzs6UGQEA6LmRI0fGyJEjix7jjCVAyqS+vj42bNgQv/Ebv9Ht+vDhwyMi4vnnnz/qns7OznjPe94Tu3btSpkRAICeq6+vj3Xr1omQXhIgZfKe97wnVq1aFTt37owLL7zwyPXDcVFXV3fUPZ2dnbFr1674zne+E+985zvTZu0P5s+fH4sWLSp6jDOKM+sd59Zzzqx3nNubmzFjRmzduvW4j48ZM8a3wj8Jdq1nfvazn8Xs2bOjs7NTgPSSACmTWbNmxd133x3f/OY34/LLLz9y/a//+q/jrLPOimnTph333ne+850xceLEhCn7j6FDhzqzHnJmvePces6Z9Y5ze3Mf+MAHThggH/jAB5zhSbBrZBMgZTJhwoT4xCc+Ed/61rfi4MGDcdlll8Wjjz4aK1asiD/90z+NESNGFD0iAJzRWltbY/Xq1bFly5ajHmtoaIjW1tYCpgLejAApoyVLlsT5558fbW1tsXLlyrjgggti0aJFccsttxQ9GgCc8erq6qK9vT0WLFgQa9euje3bt8fo0aNj8uTJ0draesy3OwPFEyBlVFNTEwsXLoyFCxcWPQoA9Et1dXXR1tYWERHXXXddPPTQQwVPBLwZP4iQfuFXv90xb86Z9Y5z6zln1jvOreecWe84N7L5QYSnkY6Ojpg0aVKsX7/eh8EAAE5D/rzWd14BAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQApo0cffTSqq6uP+Wvt2rVFjwcAAOlqih6gEvzRH/1RXHLJJd2uNTQ0FDQNAAAUR4AkeP/73x833HBD0WMAAEDhvAUrQalUin379sXBgweLHgUAAAolQBLMnTs3hgwZEgMGDIgrrrgi1q9fX/RIAABQCG/BKqNzzjknZsyYEddcc00MGzYsnnjiifizP/uzeP/73x8//vGPY8KECUWPCAAAqQRIGU2dOjWmTp165Pe/8zu/EzNmzIiLL744/uRP/iT++Z//ucDpAAAgn7dgJWtoaIjrr78+HnnkkSiVSkWPAwAAqbwCUoBRo0bFq6++Gi+//HIMGjToqMfnz58fQ4cO7XatpaUlWlpaskYEAKh4y5cvj+XLl3e7tnfv3oKm6T8ESAF+/vOfx4ABA44ZHxERixYtiokTJyZPBQDA/3esvwDu6OiISZMmFTRR/+AtWGXU1dV11LWf/vSn8dBDD8WHPvShAiYCAIBieQWkjJqbm+Mtb3lLTJ06NYYPHx4bNmyI++67LwYNGhR333130eMBAEA6AVJGH/7wh2PZsmVxzz33xIsvvhjDhw+PGTNmxB133BFvf/vbix4PAADSCZAymjdvXsybN6/oMQAA4LThMyAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgie66666orq6O8ePHFz0KAAAUQoAk2blzZ3zxi1+MgQMHRlVVVdHjAABAIWqKHqBS/PEf/3E0NTXFwYMH49lnny16HAAAKIRXQBL86Ec/igcffDAWLVoUpVLJKyAAAFQsAVJmhw4dinnz5sWnPvWpaGxsLHocAAB6oaurK+bOnRszZswoepQznrdgldmSJUtix44d8cMf/rDoUQAA6IU9e/ZEU1NTbNmypehR+gWvgJTRc889FwsXLoyFCxdGbW1t0eMAANALt912m/g4hQRIGd1+++0xbNiwmDdvXtGjAADQS2vXri16hH7FW7DKZPPmzfGNb3wjFi1aFDt37jxy/cCBA/Hqq6/G9u3bY/DgwXHeeecdde/8+fNj6NCh3a61tLRES0tL2ecGAOANy5cvj+XLl8f27duLHqVfqSqVSqWih+iPHn300bjiiitO+Jz58+fHV77ylSO/7+joiEmTJsX69etj4sSJ5R4RAICT0NjYGBs2bOh2zZ/Xes8rIGUyfvz4WLlyZbdvuVsqleL222+Pl156Kf7iL/4iGhoaCpwQAICTMXny5KMChN4TIGVSW1sb119//VHX77nnnoiIuO6667JHAgCgF1pbW2P16tU+iH6K+BB6sqqqKj+IEADgDFJXVxft7e0xZ86cGDNmTNHjnPG8ApLskUceKXoEAAB6qK6uLtra2o58Zpfe8woIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkESBk98cQTMXPmzGhoaIiBAwdGbW1tNDU1xbJly4oeDQAAClFT9AD92Y4dO+Kll16KOXPmRH19fezfvz9WrFgRH/3oR2Pbtm3x+c9/vugRAQAgVVWpVCoVPUQlef3112PSpEnxv//7v7F9+/Zuj3V0dMSkSZNi/fr1MXHixIImBADgePx5re+8BStZdXV1jBo1Ks4666yiRwEAgHTegpVg//79sX///njhhRfioYceiu9///uxePHioscCKJuurq5YsGBBrF27Ng4ePBg1NTUxefLkaG1tjbq6uqLHA6BAAiTBZz7zmbjvvvsiIqKmpibuvffeuPHGGwueCqA89uzZE01NTbFly5Zu1zds2BCrV6+O9vZ2EQJQwbwFK8Gtt94aq1ativvvvz8++MEPxs033xxLly4teiyAsrjtttuOio/DtmzZEgsWLEieCIDTiVdAEowbNy7GjRsXERGzZ8+OK6+8MubPnx+zZs2KAQMGFDwdwKm1du3aPj0OQP8mQArwkY98JP71X/81nnzyyZgwYcJRj8+fPz+GDh3a7VpLS0u0tLRkjQjQawcPHuzT4wCni+XLl8fy5cu7Xdu7d29B0/QfAqQAv/jFLyLije+IdSyLFi3ybd2AM1ZNzYn/0/JmjwOcLo71F8CHvw0vveczIGXU1dV11LXXXnst7r///qitrY3GxsYCpgIor8mTJ/fpcQD6N38NVUY33nhj7Nu3Ly677LKor6+P3bt3x7Jly2LTpk3R1tYWv/Zrv1b0iACnXGtra6xevfqYH0RvaGiI1tbWAqYC4HQhQMro937v9+Kb3/xmfO1rX4vnnnsuBg8eHFOmTInFixfHBz/4waLHAyiLurq6aG9v93NAADgmAVJGzc3N0dzcXPQYAOnq6uqira2t6DEAOA35DAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQRIGT3++ONx8803R2NjYwwaNChGjx4dzc3NsXnz5qJHAwCAQtQUPUB/9qUvfSna29tj5syZcfHFF0dnZ2csXrw4Jk6cGI899lg0NjYWPSIAAKQSIGX02c9+Ni655JKoqfnlMTc3N8f48ePj7rvvjr/5m78pcDoAAMgnQMpo6tSpR10bO3ZsvOtd74qNGzcWMBEAABTLZ0CSlUqleOaZZ2LYsGFFj0IF6urqirlz50ZjY2OMGzcuGhsbY+7cudHV1VX0aABAhfAKSLJly5bFrl274gtf+ELRo1Bh9uzZE01NTbFly5Zu1zds2BCrV6+O9vb2qKurK2g6AKBSeAUk0caNG+Omm26Kpqam+PjHP170OFSY22677aj4OGzLli2xYMGC5IkAgEokQJLs3r07rr322jjvvPNixYoVUVVVVfRIVJi1a9f26XEAgFPBW7ASvPDCC3H11VfHiy++GKtXr44RI0ac8Pnz58+PoUOHdrvW0tISLS0t5RyTfu7gwYN9ehwAKs3y5ctj+fLl3a7t3bu3oGn6DwFSZgcOHIjp06fHU089FatWrYp3vOMdb3rPokWLYuLEiQnTUUn+/7eD7s3jAFBpjvUXwB0dHTFp0qSCJuofvAWrjA4dOhTNzc2xZs2aeOCBB2LKlClFj0QFmzx5cp8eBwA4FfyVZxl99rOfjYcffjimT58ezz77bHznO9/p9vjs2bMLmoxK1NraGqtXrz7mB9EbGhqitbW1gKkAgEojQMropz/9aVRVVcXDDz8cDz/8cLfHqqqqBAip6urqor29PRYsWBBr166NgwcPRk1NTUyePDlaW1t9C14AIIUAKaNHHnmk6BGgm7q6umhrayt6DACggvkMCAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBEgZvfzyy3HHHXfEVVddFW9961ujuro6li5dWvRYAABQGAFSRl1dXXHnnXfGk08+GRMmTIiIiKqqqoKnAgCA4giQMqqvr4/du3fH1q1b48tf/nLR4/Rry5cvL3qEM44z6x3n1nPOrHecW885s95xbmQTIGV09tlnx/DhwyMiolQqFTxN/+Zfnj3nzHrHufWcM+sd59Zzzqx3nBvZBMhpaMaMGTF37tzo6uoqehQAADilaooegKNt3bo1tm7dGqtXr4729vaoq6sreiQAADglvAJyGtuyZUssWLCg6DEAAOCU8QrIae7f//3fo6Ojo+gxTnt79+51Tj3kzHrHufWcM+sd59Zzzqx3nFvP/OxnPyt6hDNeVcmno1OsW7cuJk+eHN/+9rfjYx/72DGf09nZGfX19cmTAQDQE/X19bFu3boYOXJk0aOckbwCchoZOXJk7Nq1Kzo7O4seBQCA4xg5cqT46AMBcpqx0AAA9GcCpMwWL14ce/fujV27dkVExEMPPRQ7duyIiIhbbrklBg8eXOR4AACQymdAymzMmDGxffv2iIioqqqKiDd+KGFVVVVs3bo1zj///CLHAwCAVAIEAABI4+eAAAAAaQRIgldeeSVuu+22qK+vj7e85S3x3ve+N1atWnVS9+7duzduvPHGqKuri0GDBsUVV1wRP/nJT8o88emht+f27W9/O6qrq4/5a8+ePQmTF+Pll1+OO+64I6666qp461vfGtXV1bF06dKTvr9Sd60v51apu/b444/HzTffHI2NjTFo0KAYPXp0NDc3x+bNm0/q/krdtb6cW6Xu2hNPPBEzZ86MhoaGGDhwYNTW1kZTU1MsW7bspO6v1F3ry7lV6q4dy1133RXV1dUxfvz4k3p+pe5bb/gQeoI5c+bEgw8+GLfeemtceOGF0dbWFtdcc0088sgj8b73ve+4973++utx7bXXxn/+53/GggULora2Nv7qr/4qpk2bFuvXr4+xY8cmfhX5entuh915550xZsyYbteGDBlSrnEL19XVFXfeeWeMHj06JkyYEI8++uiRzx29mUretb6c22GVtmtf+tKXor29PWbOnBkXX3xxdHZ2xuLFi2PixInx2GOPRWNj43HvreRd68u5HVZpu7Zjx4546aWXYs6cOVFfXx/79++PFStWxEc/+tHYtm1bfP7znz/uvZW8a305t8Mqbdd+1c6dO+OLX/xiDBw48KT+m1DJ+9YrJcpqzZo1paqqqtKf//mfH7l24MCB0tixY0tNTU0nvPfv//7vS1VVVaUHH3zwyLWurq7SeeedV/r93//9ss18OujLubW1tZWqqqpK69evL/eYp5VXXnml9Mwzz5RKpVJp3bp1paqqqtLSpUtP6t5K3rW+nFul7tqPf/zj0muvvdbt2ubNm0vnnntuafbs2Se8t5J3rS/nVqm7diyHDh0qTZgwoXT++eef8HmVvGvHcrLnZtfe0NzcXPqt3/qt0rRp00q/+Zu/+abPt2894y1YZbZixYqoqamJG2+88ci1c845Jz75yU9Ge3t7PP300ye8d8SIEXHDDTccuTZs2LCYNWtW/MM//EO89tprZZ29SH05t8NKpVLs27cvDh06VM5RTxtnn312DB8+PCLe+Np7opJ3rS/ndlil7drUqVOjpqb7C+hjx46Nd73rXbFx48YT3lvJu9aXczus0nbtWKqrq2PUqFFx1llnnfB5lbxrx3Ky53ZYJe/aj370o3jwwQdj0aJFR75z6Zuxbz0jQMrsJz/5SVx00UUxaNCgbtcvueSSiIj4j//4jxPeO3HixKOuX3LJJbF///7YtGnTqR32NNKXczvs8ssvjyFDhsTAgQPj+uuvj6eeeqoss/YHlbxrp4Jde+MPK88880wMGzbshM+za92d7LkdVqm7tn///nj22Wdjy5Ytcc8998T3v//9WLBgwQnvsWu9O7fDKnXXDh06FPPmzYtPfepTJ/W2yMPsW8/4DEiZdXZ2HvMnmx++dvgHFB7v3mnTpp3w3p78n+NM0pdzGzhwYMydOzcuv/zyGDx4cKxbty6+8pWvRFNTU3R0dMSoUaPKNveZqpJ3rS/s2i8tW7Ysdu3aFV/4whdO+Dy71t3Jnlul79pnPvOZuO+++yIioqamJu69995ur5Afi13r3blV+q4tWbIkduzYET/84Q97dJ996xkBUma/+MUv4pxzzjnq+rnnnnvk8eM5cOBAr+890/Xl3GbOnBkzZ8488vvrrrsurrzyyrjsssvirrvuiq997WunfuAzXCXvWl/YtTds3LgxbrrppmhqaoqPf/zjJ3yuXfulnpxbpe/arbfeGrNmzYpdu3bFsmXL4uabb44BAwac8NzsWu/OrZJ37bnnnouFCxfGwoULo7a2tkf32reeESBlNmDAgHjllVeOun7gwIEjj5fj3jPdqf7a3/e+98WUKVNO+tsfV5pK3rVTrdJ2bffu3XHttdfGeeedFytWrHjT90rbtTf09NyOpZJ2bdy4cTFu3LiIiJg9e3ZceeWVMX/+/Jg1a9Zxd8au9e7cjqVSdu3222+PYcOGxbx583p8r33rGZ8BKbORI0ce8+1CnZ2dERFRX19flnvPdOX42keNGhXPP/98n2frjyp518qhUnbthRdeiKuvvjpefPHF+Jd/+ZcYMWLEm95j13p3bsdTKbv2qz7ykY/ECy+8EE8++eRxn2PXjnYy53Y8/X3XNm/eHN/4xjdi3rx5sXPnzti2bVts27YtDhw4EK+++mps3779hF+/fesZAVJm7373u2PTpk2xb9++btfXrFkTERETJkw47r0TJkyIjo6Oo74zz5o1a2LgwIFx0UUXnfqBTxN9Obfj+fnPfx51dXWnZL7+ppJ3rRwqYdcOHDgQ06dPj6eeeir+8R//Md7xjnec1H2Vvmu9PbfjqYRdO5bDb2eprj7+H2MqfdeO5WTO7Xj6+649/fTT8frrr8ctt9wSb3/724/8Wrt2bWzatCnGjBkTd95553Hvt289I0DKbMaMGXHo0KEjHwKLeOMnfLe1tcV73/veeNvb3hYRb7wcv3Hjxjh48GC3e5955pn47ne/e+Tas88+Gw888EBMnz79pL+V3pmoL+fW1dV11D/vn/7pn6KjoyOuuuqq8g9/mrNrvWPXfunQoUPR3Nwca9asiQceeCCmTJlyzOfZte76cm6VumvH+rrLggk3AAADF0lEQVRfe+21uP/++6O2tvbIh3o7Ozvt2v/Tl3Or1F0bP358rFy5Mr73ve8d+bVy5cpobGyM0aNHx/e+97345Cc/GRH27VSoKvX2G99z0pqbm2PlypVx6623RkNDQyxdujTWrVsX//Zv/xaXXnppRLzxU7/vv//+2LZtW5x//vkR8cZP1bz00kvjv//7v+Nzn/vckZ+quXPnznj88cfjwgsvLPLLKrventuFF14YEydOjEmTJsWQIUOio6MjvvWtb8Xb3va2ePzxx/v13+AsXrw49u7dG7t27YolS5bEDTfccOTVoltuuSUGDx5s146ht+dWqbs2f/78uPfee2P69OndPqx62OzZsyPCv9d+VV/OrVJ37cMf/nDs27cvLrvssqivr4/du3fHsmXLYtOmTdHW1hYf+9jHIsKu/aq+nFul7trxTJs2LZ577rn4r//6ryPX7NspkP+zDyvPgQMHSp/73OdKI0eOLJ177rmlKVOmlH7wgx90e86cOXNK1dXVpe3bt3e7/vzzz5f+4A/+oDRs2LDSwIEDS5dffnnF/HTS3p7b7bffXnr3u99dGjp0aOnss88uXXDBBaWbbrqptGfPnuwvId0FF1xQqqqqKlVVVZWqq6tL1dXVR/734TOya0fr7blV6q5NmzbtyBn96q/q6uojz7Nr3fXl3Cp11/7u7/6u9Nu//dulESNGlM4666xSbW1t6ZprrimtWrWq2/PsWnd9ObdK3bXjmTZtWmn8+PHdrtm3vvMKCAAAkMZnQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANP8H3KyZU9NTlqcAAAAASUVORK5CYII="; }, + thumbnail_uri: function () { return null; } + } + + +}; \ No newline at end of file diff --git a/playground/react/rulegraph.js b/playground/react/rulegraph.js new file mode 100644 index 000000000..8c9225d58 --- /dev/null +++ b/playground/react/rulegraph.js @@ -0,0 +1,142 @@ +var rulegraph_spec = { + "$schema": "https://vega.github.io/schema/vega/v5.json", + "padding": 0, + + "signals": [ + { "name": "cx", "update": "width / 2" }, + { "name": "cy", "update": "height / 2" } + ], + + "data": [ + { + "name": "node-data", + "values": [{ 'rule': 'c', 'fx': 10, 'fy': 0 }, { 'rule': 'd', 'fx': 10, 'fy': 50 }, { 'rule': 'e', 'fx': 10, 'fy': 100 }, { 'rule': 'a', 'fx': 10, 'fy': 150 }, { 'rule': 'b', 'fx': 10, 'fy': 200 }, { 'rule': 'all', 'fx': 10, 'fy': 250 }] + }, + { + "name": "link-data", + "values": [{ 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 5, 'source': 3, 'value': 1 }, { 'target': 5, 'source': 1, 'value': 1 }, { 'target': 5, 'source': 2, 'value': 1 }] + }, + { + "name": "link-data-direct", + "values": [{ 'target': 5, 'source': 4, 'value': 1 }] + } + ], + + "scales": [ + { + "name": "color", + "type": "ordinal", + "range": { "scheme": "category20c" } + }, + { + "name": "x", + "type": "linear" + }, + { + "name": "y", + "type": "linear" + } + ], + + "marks": [ + { + "name": "nodes", + "type": "symbol", + "zindex": 1, + "from": { "data": "node-data" }, + "encode": { + "enter": { + "fill": { "scale": "color", "field": "rule" }, + "x": { "field": "fx", "scale": "x" }, + "y": { "field": "fy", "scale": "y" }, + "tooltip": { "value": "Click to show rule details." } + }, + "update": { + "size": { "value": 70 } + }, + "hover": { + "size": { "value": 140 } + } + }, + + "transform": [ + { + "type": "force", + "iterations": 1, + "static": true, + "forces": [ + { + "force": "link", + "links": "link-data" + } + ] + }, + { + "type": "force", + "iterations": 1, + "static": true, + "forces": [ + { + "force": "link", + "links": "link-data-direct" + } + ] + } + ] + }, + { + "name": "labels", + "type": "text", + "zindex": 2, + "from": { "data": "node-data" }, + "encode": { + "enter": { + "fill": { "value": "black" }, + "fontWeight": { "value": "normal" }, + "text": { "field": "rule" }, + "x": { "field": "fx", "scale": "x" }, + "y": { "field": "fy", "scale": "y" }, + "dx": { "value": -5 }, + "dy": { "value": -5 }, + "align": { "value": "right" } + } + } + }, + { + "type": "path", + "from": { "data": "link-data-direct" }, + "interactive": false, + "encode": { + "update": { + "stroke": { "value": "#ccc" }, + "strokeWidth": { "value": 1.0 } + } + }, + "transform": [ + { + "type": "linkpath", "shape": "diagonal", + "sourceX": "datum.source.x", "sourceY": "datum.source.y", + "targetX": "datum.target.x", "targetY": "datum.target.y" + } + ] + }, + { + "type": "path", + "from": { "data": "link-data" }, + "interactive": false, + "encode": { + "update": { + "stroke": { "value": "#ccc" }, + "strokeWidth": { "value": 1.0 } + } + }, + "transform": [ + { + "type": "linkpath", "shape": "curve", "orient": "horizontal", + "sourceX": "datum.source.x", "sourceY": "datum.source.y", + "targetX": "datum.target.x", "targetY": "datum.target.y" + } + ] + } + ] +}; \ No newline at end of file diff --git a/playground/react/runtimes.js b/playground/react/runtimes.js new file mode 100644 index 000000000..81b4cd85d --- /dev/null +++ b/playground/react/runtimes.js @@ -0,0 +1,15 @@ +var runtimes_spec = { + "$schema": "https://vega.github.io/schema/vega-lite/v3.json", + "description": "Runtimes of jobs.", + "data": { "values": [{ 'rule': 'a', 'runtime': 2.0280115604400635 }, { 'rule': 'c', 'runtime': 3.028017282485962 }, { 'rule': 'c', 'runtime': 3.020017147064209 }, { 'rule': 'c', 'runtime': 2.0160114765167236 }, { 'rule': 'c', 'runtime': 3.016017198562622 }, { 'rule': 'c', 'runtime': 1.0240058898925781 }, { 'rule': 'c', 'runtime': 3.016016960144043 }, { 'rule': 'c', 'runtime': 1.0160057544708252 }, { 'rule': 'c', 'runtime': 2.0120115280151367 }, { 'rule': 'c', 'runtime': 3.024017095565796 }, { 'rule': 'c', 'runtime': 1.0160057544708252 }, { 'rule': 'd', 'runtime': 1.0520060062408447 }, { 'rule': 'e', 'runtime': 0.012000083923339844 }] }, + "mark": "point", + "encoding": { + "x": { + "field": "runtime", "type": "quantitative", + "axis": { "title": "runtime [s]", "labelAngle": -90 }, + "scale": { "type": "log" } + }, + "y": { "field": "rule", "type": "nominal" }, + "color": { "value": "#007bff" } + } +}; \ No newline at end of file diff --git a/playground/react/timeline.js b/playground/react/timeline.js new file mode 100644 index 000000000..294a3e018 --- /dev/null +++ b/playground/react/timeline.js @@ -0,0 +1,20 @@ +var timeline_spec = { + "$schema": "https://vega.github.io/schema/vega-lite/v3.json", + "description": "Timeline of jobs.", + "data": { + "values": [{ 'rule': 'a', 'starttime': '2020-03-27T14:58:42.460061', 'endtime': '2020-03-27T14:58:44.488072' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:39.404043', 'endtime': '2020-03-27T14:58:42.432060' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.368037', 'endtime': '2020-03-27T14:58:41.388055' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.384037', 'endtime': '2020-03-27T14:58:40.400049' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.352037', 'endtime': '2020-03-27T14:58:41.368054' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:39.356043', 'endtime': '2020-03-27T14:58:40.380049' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.344037', 'endtime': '2020-03-27T14:58:41.360054' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.332037', 'endtime': '2020-03-27T14:58:39.348043' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.340037', 'endtime': '2020-03-27T14:58:40.352049' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:39.424043', 'endtime': '2020-03-27T14:58:42.448061' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.376037', 'endtime': '2020-03-27T14:58:39.392043' }, { 'rule': 'd', 'starttime': '2020-03-27T14:58:38.360037', 'endtime': '2020-03-27T14:58:39.412043' }, { 'rule': 'e', 'starttime': '2020-03-27T14:58:38.356037', 'endtime': '2020-03-27T14:58:38.368037' }] + }, + "mark": "point", + "encoding": { + "x": { + "field": "endtime", "type": "temporal", + "timeUnit": "yearmonthdatehoursminutes", + "axis": { + "labelAngle": -90, + "title": "creation date" + } + }, + "y": { "field": "rule", "type": "nominal" }, + "color": { "value": "#007bff" } + } +}; \ No newline at end of file From 82ebfde2aa6e921752a9eada5ea3c4d9b34cd636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 12:07:58 +0100 Subject: [PATCH 06/45] refactor --- playground/react/components/app.js | 16 ++++++-- playground/react/components/navbar.js | 55 +++++++++++++-------------- 2 files changed, 39 insertions(+), 32 deletions(-) diff --git a/playground/react/components/app.js b/playground/react/components/app.js index 0cba404fb..7f8ea7bbf 100644 --- a/playground/react/components/app.js +++ b/playground/react/components/app.js @@ -5,18 +5,28 @@ class App extends React.Component { constructor(props) { super(props); - this.state = { content: "rulegraph", ruleinfo: undefined }; + this.state = { navbarMode: "menu", content: "rulegraph", ruleinfo: undefined, category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined }; + this.setView = this.setView.bind(this); } render() { return [ - e(Navbar, { app: this, ruleinfo: this.state.ruleinfo }), + e(Navbar, { app: this }), e(ContentDisplay, { show: this.state.content }) ]; } setView(view) { - this.setState({ content: view.content, ruleinfo: view.ruleinfo }) + event.preventDefault(); + this.setState({ + navbarMode: view.mode || this.state.navbarMode, + content: view.content || this.state.content, + ruleinfo: view.ruleinfo, + category: view.category, + subcategory: view.subcategory, + searchTerm: view.searchTerm, + resultPath: view.resultPath + }) } } diff --git a/playground/react/components/navbar.js b/playground/react/components/navbar.js index 7ea053f84..bc2428e80 100644 --- a/playground/react/components/navbar.js +++ b/playground/react/components/navbar.js @@ -4,8 +4,6 @@ class Navbar extends React.Component { constructor(props) { super(props); - this.state = { mode: "menu", category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined }; - this.setView = this.setView.bind(this); } render() { @@ -40,26 +38,26 @@ class Navbar extends React.Component { } renderContent() { - let setView = this.setView; - switch (this.state.mode) { + let setView = this.props.app.setView; + switch (this.props.app.state.navbarMode) { case "menu": return e(Menu, { setView: setView, app: this.props.app }); case "category": - if (this.state.subcategory !== undefined) { - return e(Subcategory, { setView: setView, category: this.state.category, subcategory: this.state.subcategory }); + if (this.props.app.state.subcategory !== undefined) { + return e(Subcategory, { setView: setView, category: this.props.app.state.category, subcategory: this.props.app.state.subcategory }); } else { - return e(Category, { setView: setView, category: this.state.category }); + return e(Category, { setView: setView, category: this.props.app.state.category }); } case "searchresults": - return e(SearchResults, { setView: setView, searchTerm: this.state.searchTerm }); + return e(SearchResults, { setView: setView, searchTerm: this.props.app.state.searchTerm }); case "resultinfo": - return e(ResultInfo, { resultPath: this.state.resultPath }); + return e(ResultInfo, { resultPath: this.props.app.state.resultPath }); } } renderBreadcrumbs() { - let setView = this.setView; - switch (this.state.mode) { + let setView = this.props.app.setView; + switch (this.props.app.state.navbarMode) { case "menu": return e( Breadcrumbs, @@ -84,33 +82,37 @@ class Navbar extends React.Component { } getMenuBreadcrumb() { - let _this = this; - return { name: "menu", icon: "home", func: function () { _this.setView({ mode: "menu", category: undefined, subcategory: undefined }) } }; + let setView = this.props.app.setView; + return { name: "menu", icon: "home", func: function () { setView({ mode: "menu", category: undefined, subcategory: undefined }) } }; } getCategoryBreadcrumb() { - if (this.state.category === undefined) { + let category = this.props.app.state.category; + if (category === undefined) { return undefined; } let subcategory = undefined; - if (isSingleSubcategory(this.state.category)) { - subcategory = this.state.subcategory; + if (isSingleSubcategory(category)) { + subcategory = this.props.app.state.subcategory; } let _this = this; - let name = this.state.category; + let name = this.props.app.state.category; if (isSingleDefaultCategory()) { name = "Results"; } - return { name: name, func: function () { _this.setView({ mode: "category", category: _this.state.category, subcategory: subcategory }) } }; + let setView = this.props.app.setView; + return { name: name, func: function () { setView({ mode: "category", category: category, subcategory: subcategory }) } }; } getSubcategoryBreadcrumb() { - if (this.state.subcategory === undefined || isSingleSubcategory(this.state.category)) { + let subcategory = this.props.app.state.subcategory; + let category = this.props.app.state.category; + if (subcategory === undefined || isSingleSubcategory(category)) { return undefined; } - let _this = this; - return { name: this.state.subcategory, func: function () { _this.setView({ mode: "category", category: _this.state.category, subcategory: _this.state.subcategory }) } }; + let setView = this.props.app.setView; + return { name: this.props.app.state.subcategory, func: function () { setView({ mode: "category", category: category, subcategory: subcategory }) } }; } getResultBreadcrumb() { @@ -121,11 +123,11 @@ class Navbar extends React.Component { } getSearchResultsBreadcrumb() { - let searchTerm = this.state.searchTerm; + let searchTerm = this.props.app.state.searchTerm; if (searchTerm === undefined) { return undefined; } - let setView = this.setView; + let setView = this.props.app.setView; return { name: "Search results", func: function () { setView({ mode: "searchresults", searchTerm: searchTerm }) @@ -138,7 +140,7 @@ class Navbar extends React.Component { } getWidth() { - switch (this.state.mode) { + switch (this.props.app.state.navbarMode) { case "menu": return "w-1/5" case "category": @@ -147,9 +149,4 @@ class Navbar extends React.Component { return "w-3/4" } } - - setView(view) { - event.preventDefault(); - this.setState({ mode: view.mode, category: view.category, subcategory: view.subcategory, searchTerm: view.searchTerm, resultPath: view.resultPath }) - } } \ No newline at end of file From e257b9f90f2a129225e02553ebc737e0b9cf9350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 13:29:13 +0100 Subject: [PATCH 07/45] fixes and refactoring --- .../react/components/abstract_results.js | 2 +- playground/react/components/app.js | 6 +-- playground/react/components/breadcrumbs.js | 2 +- playground/react/components/category.js | 2 +- playground/react/components/content.js | 5 ++- playground/react/components/icon.js | 4 +- playground/react/components/menu.js | 2 +- playground/react/components/navbar.js | 23 +++++++++-- playground/react/components/result_info.js | 23 +++++------ .../{rulegraph.js => rule_graph.js} | 9 +++-- playground/react/components/rule_info.js | 40 +++++++++++++++++++ playground/react/index.html | 9 +++-- playground/react/rules.js | 20 ++++++++++ 13 files changed, 114 insertions(+), 33 deletions(-) rename playground/react/components/{rulegraph.js => rule_graph.js} (75%) create mode 100644 playground/react/components/rule_info.js create mode 100644 playground/react/rules.js diff --git a/playground/react/components/abstract_results.js b/playground/react/components/abstract_results.js index b69372ead..5abe08653 100644 --- a/playground/react/components/abstract_results.js +++ b/playground/react/components/abstract_results.js @@ -146,6 +146,6 @@ class AbstractResults extends React.Component { } showResultInfo(resultPath) { - this.props.setView({ mode: "resultinfo", resultPath: resultPath, category: this.getCategory(), subcategory: this.getSubcategory(), searchTerm: this.getSearchTerm() }); + this.props.setView({ navbarMode: "resultinfo", resultPath: resultPath, category: this.getCategory(), subcategory: this.getSubcategory(), searchTerm: this.getSearchTerm() }); } } \ No newline at end of file diff --git a/playground/react/components/app.js b/playground/react/components/app.js index 7f8ea7bbf..f00a390c3 100644 --- a/playground/react/components/app.js +++ b/playground/react/components/app.js @@ -11,15 +11,15 @@ class App extends React.Component { render() { return [ - e(Navbar, { app: this }), - e(ContentDisplay, { show: this.state.content }) + e(Navbar, { key: "navbar", app: this }), + e(ContentDisplay, { key: "content", app: this }) ]; } setView(view) { event.preventDefault(); this.setState({ - navbarMode: view.mode || this.state.navbarMode, + navbarMode: view.navbarMode || this.state.navbarMode, content: view.content || this.state.content, ruleinfo: view.ruleinfo, category: view.category, diff --git a/playground/react/components/breadcrumbs.js b/playground/react/components/breadcrumbs.js index 12a846bc6..49c5c6d7f 100644 --- a/playground/react/components/breadcrumbs.js +++ b/playground/react/components/breadcrumbs.js @@ -98,6 +98,6 @@ class Breadcrumbs extends React.Component { } showSearchResults() { - this.props.setView({ mode: "searchresults", searchTerm: this.state.searchTerm }) + this.props.setView({ navbarMode: "searchresults", searchTerm: this.state.searchTerm }) } } diff --git a/playground/react/components/category.js b/playground/react/components/category.js index 71121c0e6..fcf329f54 100644 --- a/playground/react/components/category.js +++ b/playground/react/components/category.js @@ -10,7 +10,7 @@ class Category extends AbstractMenu { } showSubcategory(subcategory) { - this.props.setView({ mode: "category", category: this.props.category, subcategory: subcategory }) + this.props.setView({ navbarMode: "category", category: this.props.category, subcategory: subcategory }) } getSubcategoryMenuitems() { diff --git a/playground/react/components/content.js b/playground/react/components/content.js index 87ef38a7f..1c9d80729 100644 --- a/playground/react/components/content.js +++ b/playground/react/components/content.js @@ -16,9 +16,10 @@ class ContentDisplay extends React.Component { } renderContent() { - switch (this.props.show) { + let setView = this.props.app.setView; + switch (this.props.app.state.content) { case "rulegraph": - return e(RuleGraph); + return e(RuleGraph, { setView: setView }); case "stats": return e(Stats) } diff --git a/playground/react/components/icon.js b/playground/react/components/icon.js index 707fa525c..4071f2739 100644 --- a/playground/react/components/icon.js +++ b/playground/react/components/icon.js @@ -32,11 +32,11 @@ class Icon extends React.Component { return e( "svg", { xmlns: "http://www.w3.org/2000/svg", className: `h-4 w-4 ${this.props.className}`, viewBox: "0 0 20 20", fill: "currentColor", }, - this.renderPath().map(function (item) { + this.renderPath().map(function (item, index) { return e( "path", - { fillRule: item.rule, clipRule: item.rule, d: item.path } + { fillRule: item.rule, clipRule: item.rule, d: item.path, key: index } ); }) ) diff --git a/playground/react/components/menu.js b/playground/react/components/menu.js index 25192915d..68e9c9b67 100644 --- a/playground/react/components/menu.js +++ b/playground/react/components/menu.js @@ -42,7 +42,7 @@ class Menu extends AbstractMenu { if (isSingleSubcategory(category)) { subcategory = Object.keys(categories[category])[0]; } - this.props.setView({ mode: "category", category: category, subcategory: subcategory }) + this.props.setView({ navbarMode: "category", category: category, subcategory: subcategory }) } getCategoryMenumitems() { diff --git a/playground/react/components/navbar.js b/playground/react/components/navbar.js index bc2428e80..93337d1a7 100644 --- a/playground/react/components/navbar.js +++ b/playground/react/components/navbar.js @@ -52,6 +52,8 @@ class Navbar extends React.Component { return e(SearchResults, { setView: setView, searchTerm: this.props.app.state.searchTerm }); case "resultinfo": return e(ResultInfo, { resultPath: this.props.app.state.resultPath }); + case "ruleinfo": + return e(RuleInfo, { rule: this.props.app.state.ruleinfo }); } } @@ -78,12 +80,25 @@ class Navbar extends React.Component { Breadcrumbs, { entries: [this.getMenuBreadcrumb(), this.getSearchResultsBreadcrumb()], setView: setView } ) + case "ruleinfo": + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb(), this.getRuleBreadcrumb(), this.getRuleinfoBreadcrumb()], setView: setView } + ) } } getMenuBreadcrumb() { let setView = this.props.app.setView; - return { name: "menu", icon: "home", func: function () { setView({ mode: "menu", category: undefined, subcategory: undefined }) } }; + return { name: "menu", icon: "home", func: function () { setView({ navbarMode: "menu", category: undefined, subcategory: undefined }) } }; + } + + getRuleBreadcrumb() { + return { name: "Rule", func: undefined } + } + + getRuleinfoBreadcrumb() { + return { name: this.props.app.state.ruleinfo, func: undefined } } getCategoryBreadcrumb() { @@ -102,7 +117,7 @@ class Navbar extends React.Component { name = "Results"; } let setView = this.props.app.setView; - return { name: name, func: function () { setView({ mode: "category", category: category, subcategory: subcategory }) } }; + return { name: name, func: function () { setView({ navbarMode: "category", category: category, subcategory: subcategory }) } }; } getSubcategoryBreadcrumb() { @@ -112,7 +127,7 @@ class Navbar extends React.Component { return undefined; } let setView = this.props.app.setView; - return { name: this.props.app.state.subcategory, func: function () { setView({ mode: "category", category: category, subcategory: subcategory }) } }; + return { name: this.props.app.state.subcategory, func: function () { setView({ navbarMode: "category", category: category, subcategory: subcategory }) } }; } getResultBreadcrumb() { @@ -130,7 +145,7 @@ class Navbar extends React.Component { let setView = this.props.app.setView; return { name: "Search results", func: function () { - setView({ mode: "searchresults", searchTerm: searchTerm }) + setView({ navbarMode: "searchresults", searchTerm: searchTerm }) } }; } diff --git a/playground/react/components/result_info.js b/playground/react/components/result_info.js index 8854643e0..4f8bc4473 100644 --- a/playground/react/components/result_info.js +++ b/playground/react/components/result_info.js @@ -24,11 +24,10 @@ class ResultInfo extends React.Component { return [ e( ListHeading, - { text: "Result" } + { text: "Result", key: "result" } ), e( - "li", - {}, + ListItem, e( "table", {}, @@ -70,11 +69,11 @@ class ResultInfo extends React.Component { return [ e( ListHeading, - { text: "Result" } + { text: "Result", key: "result" } ), e( - "li", - { className: "p-1" }, + ListItem, + { key: "path" }, this.props.resultPath ) ]; @@ -87,11 +86,12 @@ class ResultInfo extends React.Component { return [ e( ListHeading, - { text: "Description" } + { key: "caption-heading", text: "Description" } ), e( - "li", + ListItem, { + key: "caption", className: "p-1", dangerouslySetInnerHTML: { __html: caption } } @@ -106,11 +106,11 @@ class ResultInfo extends React.Component { return [ e( ListHeading, - { text: "Snakemake rule" } + { key: "rule-heading", text: "Snakemake rule" } ), e( ListItem, - {}, + { key: "rulename" }, this.getResult().job_properties.rule ) ] @@ -118,12 +118,11 @@ class ResultInfo extends React.Component { getParamsAndWildcards() { const jobProperties = this.getResult().job_properties; - console.log(jobProperties) if (jobProperties.params || jobProperties.wildcards) { let items = [ e( ListHeading, - { text: "Job parameters" } + { key: "params-heading", text: "Job parameters" } ), ]; if (jobProperties.wildcards) { diff --git a/playground/react/components/rulegraph.js b/playground/react/components/rule_graph.js similarity index 75% rename from playground/react/components/rulegraph.js rename to playground/react/components/rule_graph.js index 0d8c1768d..63ed76646 100644 --- a/playground/react/components/rulegraph.js +++ b/playground/react/components/rule_graph.js @@ -3,6 +3,7 @@ class RuleGraph extends React.Component { constructor(props) { super(props); + this.showRuleProperties = this.showRuleProperties.bind(this); } render() { @@ -24,8 +25,10 @@ class RuleGraph extends React.Component { }); } - - showRuleProperties() { - + showRuleProperties(rule) { + this.props.setView({ + navbarMode: "ruleinfo", + ruleinfo: rule + }); } } \ No newline at end of file diff --git a/playground/react/components/rule_info.js b/playground/react/components/rule_info.js new file mode 100644 index 000000000..5e3f60646 --- /dev/null +++ b/playground/react/components/rule_info.js @@ -0,0 +1,40 @@ +'use strict'; + +class RuleInfo extends React.Component { + constructor(props) { + super(props); + } + + render() { + let rule = rules[this.props.rule]; + return e( + "ol", + {}, + this.renderItems("Input", rule.input, {}, false), + this.renderItems("Output", rule.input), + this.renderItems("Software", rule.conda), + this.renderItems("Container", [rule.container]), + this.renderItems("Code", rule.code), + ) + } + + renderItems(heading, items, props = {}, margin = true) { + let headingProps = {}; + if (margin) { + headingProps = { className: "" } + } + return [ + e( + ListHeading, + { text: heading, ...headingProps } + ), + items.map(function (item) { + return e( + ListItem, + props, + item + ); + }) + ]; + } +} \ No newline at end of file diff --git a/playground/react/index.html b/playground/react/index.html index fd0c9706b..5060e0956 100644 --- a/playground/react/index.html +++ b/playground/react/index.html @@ -5,8 +5,9 @@ Snakemake Report @@ -27,6 +28,7 @@ + @@ -40,7 +42,8 @@ - + + diff --git a/playground/react/rules.js b/playground/react/rules.js new file mode 100644 index 000000000..4c6097bf7 --- /dev/null +++ b/playground/react/rules.js @@ -0,0 +1,20 @@ +var rules = { + "a": { + "input": [ + "x.txt", + "y.txt" + ], + "output": [ + "z.txt", + "y2.txt" + ], + "conda": [ + "bwa =0.74" + ], + "container": "docker://miniconda", + "code": [ + "codeblock1(1.4)", + "codeblock2(1.5)" + ] + } +} \ No newline at end of file From 1ee686f6a9ebcc182495574443ddac526dbae380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 14:09:56 +0100 Subject: [PATCH 08/45] image display --- .../react/components/abstract_results.js | 35 ++++++++++++++++++- playground/react/components/app.js | 13 +++---- playground/react/components/content.js | 5 +++ playground/react/components/result_info.js | 15 ++++++++ playground/react/results.js | 2 ++ 5 files changed, 63 insertions(+), 7 deletions(-) diff --git a/playground/react/components/abstract_results.js b/playground/react/components/abstract_results.js index 5abe08653..a2a6667d2 100644 --- a/playground/react/components/abstract_results.js +++ b/playground/react/components/abstract_results.js @@ -95,7 +95,7 @@ class AbstractResults extends React.Component { e( "div", { className: "inline-flex gap-1", role: "group" }, - _this.renderButton("eye", { href: entry.data_uri(), download: entry.name }), + _this.getViewButton(path, entry), _this.renderButton( "information-circle", { @@ -137,6 +137,35 @@ class AbstractResults extends React.Component { }) } + getViewButton(resultPath, entry) { + const mimeType = this.getResultMimeType(resultPath); + let setView = this.props.setView; + + let props = undefined; + + switch (mimeType) { + case "image/svg+xml": + case "image/png": + case "image/jpeg": + props = { + href: "#", + onClick: function () { + setView({ + content: "img", + contentPath: entry.data_uri() + }) + } + }; + break; + default: + props = { + href: entry.data_uri(), + download: entry.name + }; + } + return this.renderButton("eye", props); + } + renderButton(iconName, props) { return e( "a", @@ -148,4 +177,8 @@ class AbstractResults extends React.Component { showResultInfo(resultPath) { this.props.setView({ navbarMode: "resultinfo", resultPath: resultPath, category: this.getCategory(), subcategory: this.getSubcategory(), searchTerm: this.getSearchTerm() }); } + + getResultMimeType(resultPath) { + return results[resultPath].mime_type + } } \ No newline at end of file diff --git a/playground/react/components/app.js b/playground/react/components/app.js index f00a390c3..7fb5af454 100644 --- a/playground/react/components/app.js +++ b/playground/react/components/app.js @@ -5,7 +5,7 @@ class App extends React.Component { constructor(props) { super(props); - this.state = { navbarMode: "menu", content: "rulegraph", ruleinfo: undefined, category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined }; + this.state = { navbarMode: "menu", content: "rulegraph", ruleinfo: undefined, category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined, contentPath: undefined }; this.setView = this.setView.bind(this); } @@ -21,11 +21,12 @@ class App extends React.Component { this.setState({ navbarMode: view.navbarMode || this.state.navbarMode, content: view.content || this.state.content, - ruleinfo: view.ruleinfo, - category: view.category, - subcategory: view.subcategory, - searchTerm: view.searchTerm, - resultPath: view.resultPath + ruleinfo: view.ruleinfo || this.state.ruleinfo, + category: view.category || this.state.category, + subcategory: view.subcategory || this.state.subcategory, + searchTerm: view.searchTerm || this.state.searchTerm, + resultPath: view.resultPath || this.state.resultPath, + contentPath: view.contentPath || this.state.contentPath, }) } } diff --git a/playground/react/components/content.js b/playground/react/components/content.js index 1c9d80729..463f2a89d 100644 --- a/playground/react/components/content.js +++ b/playground/react/components/content.js @@ -22,6 +22,11 @@ class ContentDisplay extends React.Component { return e(RuleGraph, { setView: setView }); case "stats": return e(Stats) + case "img": + return e( + "img", + { src: this.props.app.state.contentPath } + ) } } } \ No newline at end of file diff --git a/playground/react/components/result_info.js b/playground/react/components/result_info.js index 4f8bc4473..6597dc72d 100644 --- a/playground/react/components/result_info.js +++ b/playground/react/components/result_info.js @@ -7,6 +7,7 @@ class ResultInfo extends React.Component { {}, this.getDescriptor(), this.getCaption(), + this.getSize(), this.getRule(), this.getParamsAndWildcards(), ) @@ -144,4 +145,18 @@ class ResultInfo extends React.Component { return []; } } + + getSize() { + return [ + e( + ListHeading, + { key: "size-heading", text: "Size" } + ), + e( + ListItem, + { key: "size" }, + this.getResult().size + ) + ]; + } } \ No newline at end of file diff --git a/playground/react/results.js b/playground/react/results.js index c547a295a..92b9042bb 100644 --- a/playground/react/results.js +++ b/playground/react/results.js @@ -62,6 +62,7 @@ var results = { filename: "fig1.svg", path: "fig1.svg", size: "28.3 kB", + mime_type: "image/svg+xml", caption: "

This is a caption with a link.

\n", job_properties: { rule: "a", @@ -78,6 +79,7 @@ var results = { filename: "testmodel.fig2.png", path: "testmodel.fig2.png", size: "9.1 kB", + mime_type: "image/png", caption: "

Some math \u2211ii2.

\n", job_properties: { rule: "b", From 3c81ff5a94a857ef74993ff111c1240b6906274b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 14:15:16 +0100 Subject: [PATCH 09/45] html handling --- playground/react/components/abstract_results.js | 11 +++++++++++ playground/react/components/content.js | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/playground/react/components/abstract_results.js b/playground/react/components/abstract_results.js index a2a6667d2..03b4e6168 100644 --- a/playground/react/components/abstract_results.js +++ b/playground/react/components/abstract_results.js @@ -157,6 +157,17 @@ class AbstractResults extends React.Component { } }; break; + case "text/html": + props = { + href: "#", + onClick: function () { + setView({ + content: "html", + contentPath: entry.data_uri() + }) + } + }; + break; default: props = { href: entry.data_uri(), diff --git a/playground/react/components/content.js b/playground/react/components/content.js index 463f2a89d..bd2605460 100644 --- a/playground/react/components/content.js +++ b/playground/react/components/content.js @@ -27,6 +27,11 @@ class ContentDisplay extends React.Component { "img", { src: this.props.app.state.contentPath } ) + case "html": + return e( + "iframe", + { src: this.props.add.state.contentPath, className: "w-screen h-screen" } + ) } } } \ No newline at end of file From f20ccd31aa618291bdd8e5c5a4783ce2f4ca2a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 14:20:48 +0100 Subject: [PATCH 10/45] fixes --- playground/react/components/list_item.js | 2 +- playground/react/components/result_info.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/playground/react/components/list_item.js b/playground/react/components/list_item.js index 96748dfbe..cc377cf5b 100644 --- a/playground/react/components/list_item.js +++ b/playground/react/components/list_item.js @@ -8,7 +8,7 @@ class ListItem extends React.Component { render() { return e( "li", - { className: "p-1" }, + { className: "p-1", ...this.props }, this.props.children ); } diff --git a/playground/react/components/result_info.js b/playground/react/components/result_info.js index 6597dc72d..ffde0b5c3 100644 --- a/playground/react/components/result_info.js +++ b/playground/react/components/result_info.js @@ -83,7 +83,8 @@ class ResultInfo extends React.Component { getCaption() { const caption = this.getResult().caption; - if (caption !== undefined) { + console.log(caption) + if (caption) { return [ e( ListHeading, From 64a98550150a1b0ed106176c516e1270fe2bc81c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 15:51:21 +0100 Subject: [PATCH 11/45] show/hide and papercut fixes --- playground/react/components/abstract_menu.js | 1 + playground/react/components/app.js | 3 +- playground/react/components/category.js | 2 +- playground/react/components/icon.js | 12 ++ playground/react/components/menu.js | 4 +- playground/react/components/navbar.js | 133 ++++++++++++++----- playground/react/components/result_info.js | 11 +- 7 files changed, 125 insertions(+), 41 deletions(-) diff --git a/playground/react/components/abstract_menu.js b/playground/react/components/abstract_menu.js index b215e4d0b..9a6cfa70f 100644 --- a/playground/react/components/abstract_menu.js +++ b/playground/react/components/abstract_menu.js @@ -9,6 +9,7 @@ class AbstractMenu extends React.Component { } getMenuItem(label, iconName, onClick) { + console.log(label, onClick); return e( "li", { key: label }, diff --git a/playground/react/components/app.js b/playground/react/components/app.js index 7fb5af454..b5bc0d8d4 100644 --- a/playground/react/components/app.js +++ b/playground/react/components/app.js @@ -5,7 +5,7 @@ class App extends React.Component { constructor(props) { super(props); - this.state = { navbarMode: "menu", content: "rulegraph", ruleinfo: undefined, category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined, contentPath: undefined }; + this.state = { hideNavbar: false, navbarMode: "menu", content: "rulegraph", ruleinfo: undefined, category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined, contentPath: undefined }; this.setView = this.setView.bind(this); } @@ -19,6 +19,7 @@ class App extends React.Component { setView(view) { event.preventDefault(); this.setState({ + hideNavbar: view.hideNavbar || this.hideNavbar, navbarMode: view.navbarMode || this.state.navbarMode, content: view.content || this.state.content, ruleinfo: view.ruleinfo || this.state.ruleinfo, diff --git a/playground/react/components/category.js b/playground/react/components/category.js index fcf329f54..3b99e633f 100644 --- a/playground/react/components/category.js +++ b/playground/react/components/category.js @@ -10,7 +10,7 @@ class Category extends AbstractMenu { } showSubcategory(subcategory) { - this.props.setView({ navbarMode: "category", category: this.props.category, subcategory: subcategory }) + this.props.setView({ navbarMode: "subcategory", category: this.props.category, subcategory: subcategory }) } getSubcategoryMenuitems() { diff --git a/playground/react/components/icon.js b/playground/react/components/icon.js index 4071f2739..dcb3086e9 100644 --- a/playground/react/components/icon.js +++ b/playground/react/components/icon.js @@ -3,9 +3,21 @@ class Icon extends React.Component { // paths are imported from https://heroicons.com paths = { + "menu": [ + { rule: "evenodd", path: "M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" } + ], + "x": [ + { rule: "evenodd", path: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" } + ], "arrow-down": [ { rule: "evenodd", path: "M16.707 10.293a1 1 0 010 1.414l-6 6a1 1 0 01-1.414 0l-6-6a1 1 0 111.414-1.414L9 14.586V3a1 1 0 012 0v11.586l4.293-4.293a1 1 0 011.414 0z" } ], + "arrow-circle-left": [ + { rule: "evenodd", path: "M10 18a8 8 0 100-16 8 8 0 000 16zm.707-10.293a1 1 0 00-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L9.414 11H13a1 1 0 100-2H9.414l1.293-1.293z" } + ], + "arrow-circle-right": [ + { rule: "evenodd", path: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-8.707l-3-3a1 1 0 00-1.414 1.414L10.586 9H7a1 1 0 100 2h3.586l-1.293 1.293a1 1 0 101.414 1.414l3-3a1 1 0 000-1.414z" } + ], "information-circle": [ { rule: "evenodd", path: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" } ], diff --git a/playground/react/components/menu.js b/playground/react/components/menu.js index 68e9c9b67..54572770b 100644 --- a/playground/react/components/menu.js +++ b/playground/react/components/menu.js @@ -39,10 +39,12 @@ class Menu extends AbstractMenu { showCategory(category) { let subcategory = undefined; + let mode = "category"; if (isSingleSubcategory(category)) { subcategory = Object.keys(categories[category])[0]; + mode = "subcategory"; } - this.props.setView({ navbarMode: "category", category: category, subcategory: subcategory }) + this.props.setView({ navbarMode: mode, category: category, subcategory: subcategory }) } getCategoryMenumitems() { diff --git a/playground/react/components/navbar.js b/playground/react/components/navbar.js index 93337d1a7..8079c3e78 100644 --- a/playground/react/components/navbar.js +++ b/playground/react/components/navbar.js @@ -7,34 +7,82 @@ class Navbar extends React.Component { } render() { - return e( - "nav", - { className: `fixed z-50 transition-all ${this.getWidth()} min-w-fit bg-slate-900/70 backdrop-blur-sm text-white text-sm h-screen overflow-y-auto` }, + let translateNavbar = ""; + let translateShowButton = "-translate-x-full" + if (this.props.app.state.hideNavbar) { + translateNavbar = "-translate-x-full"; + translateShowButton = "" + } + return [ e( - "h1", - { className: "sticky bg-blur bg-white opacity-80 text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, - e( - "img", - { src: "logo.svg", className: "h-4" } - ), + "div", + { className: `fixed z-50 p-3 transition-translate ${translateShowButton}` }, + this.getShowButton() + ), + e( + "nav", + { className: `fixed z-50 transition-all ${translateNavbar} ${this.getWidth()} min-w-fit text-white text-sm bg-slate-900/70 backdrop-blur-sm h-screen overflow-y-auto` }, e( - "span", - { className: "font-bold mx-1" }, - "Snakemake" + "h1", + { className: "sticky bg-blur bg-white opacity-80 text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, + e( + "img", + { src: "logo.svg", className: "h-4" } + ), + e( + "span", + { className: "font-bold mx-1" }, + "Snakemake" + ), + e( + "span", + { className: "grow mr-5" }, + "Report" + ), + this.getHideButton() ), + this.renderBreadcrumbs(), e( - "span", - {}, - "Report" - ), - ), - this.renderBreadcrumbs(), + "div", + { className: "p-3" }, + this.renderContent() + ) + ) + ]; + } + + getHideButton() { + let setView = this.props.app.setView; + return e( + "a", + { + type: "button", + className: "bg-transparent hover:text-emerald-500", + href: "#", + onClick: () => setView({ hideNavbar: true }) + }, e( - "div", - { className: "p-3" }, - this.renderContent() + Icon, + { iconName: "x" } ) - ); + ) + } + + getShowButton() { + let setView = this.props.app.setView; + return e( + "a", + { + type: "button", + href: "#", + className: "bg-transparent hover:text-emerald-500", + onClick: () => setView({ hideNavbar: false }) + }, + e( + Icon, + { iconName: "menu" } + ) + ) } renderContent() { @@ -43,15 +91,13 @@ class Navbar extends React.Component { case "menu": return e(Menu, { setView: setView, app: this.props.app }); case "category": - if (this.props.app.state.subcategory !== undefined) { - return e(Subcategory, { setView: setView, category: this.props.app.state.category, subcategory: this.props.app.state.subcategory }); - } else { - return e(Category, { setView: setView, category: this.props.app.state.category }); - } + return e(Category, { setView: setView, category: this.props.app.state.category }); + case "subcategory": + return e(Subcategory, { setView: setView, category: this.props.app.state.category, subcategory: this.props.app.state.subcategory }); case "searchresults": return e(SearchResults, { setView: setView, searchTerm: this.props.app.state.searchTerm }); case "resultinfo": - return e(ResultInfo, { resultPath: this.props.app.state.resultPath }); + return e(ResultInfo, { resultPath: this.props.app.state.resultPath, setView: setView }); case "ruleinfo": return e(RuleInfo, { rule: this.props.app.state.ruleinfo }); } @@ -66,6 +112,11 @@ class Navbar extends React.Component { { entries: [this.getMenuBreadcrumb()], setView: setView } ); case "category": + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb(), this.getResultBreadcrumb(), this.getCategoryBreadcrumb()], setView: setView } + ); + case "subcategory": return e( Breadcrumbs, { entries: [this.getMenuBreadcrumb(), this.getResultBreadcrumb(), this.getCategoryBreadcrumb(), this.getSubcategoryBreadcrumb()], setView: setView } @@ -81,10 +132,17 @@ class Navbar extends React.Component { { entries: [this.getMenuBreadcrumb(), this.getSearchResultsBreadcrumb()], setView: setView } ) case "ruleinfo": - return e( - Breadcrumbs, - { entries: [this.getMenuBreadcrumb(), this.getRuleBreadcrumb(), this.getRuleinfoBreadcrumb()], setView: setView } - ) + if (this.props.app.state.resultPath) { + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb(), this.getResultBreadcrumb(), this.getCategoryBreadcrumb(), this.getSubcategoryBreadcrumb(), this.getSearchResultsBreadcrumb(), this.getResultinfoBreadcrumb(), this.getRuleBreadcrumb(), this.getRuleinfoBreadcrumb()], setView: setView } + ) + } else { + return e( + Breadcrumbs, + { entries: [this.getMenuBreadcrumb(), this.getRuleBreadcrumb(), this.getRuleinfoBreadcrumb()], setView: setView } + ) + } } } @@ -107,8 +165,10 @@ class Navbar extends React.Component { return undefined; } let subcategory = undefined; + let mode = "category"; if (isSingleSubcategory(category)) { subcategory = this.props.app.state.subcategory; + mode = "subcategory"; } let _this = this; @@ -117,7 +177,7 @@ class Navbar extends React.Component { name = "Results"; } let setView = this.props.app.setView; - return { name: name, func: function () { setView({ navbarMode: "category", category: category, subcategory: subcategory }) } }; + return { name: name, func: function () { setView({ navbarMode: mode, category: category, subcategory: subcategory }) } }; } getSubcategoryBreadcrumb() { @@ -127,7 +187,7 @@ class Navbar extends React.Component { return undefined; } let setView = this.props.app.setView; - return { name: this.props.app.state.subcategory, func: function () { setView({ navbarMode: "category", category: category, subcategory: subcategory }) } }; + return { name: this.props.app.state.subcategory, func: function () { setView({ navbarMode: "subcategory", category: category, subcategory: subcategory }) } }; } getResultBreadcrumb() { @@ -151,7 +211,10 @@ class Navbar extends React.Component { } getResultinfoBreadcrumb() { - return { name: "resultinfo", icon: "eye", func: undefined }; + let setView = this.props.app.setView; + return { + name: "resultinfo", icon: "eye", func: function () { setView({ navbarMode: "resultinfo" }) } + }; } getWidth() { diff --git a/playground/react/components/result_info.js b/playground/react/components/result_info.js index ffde0b5c3..c9abef127 100644 --- a/playground/react/components/result_info.js +++ b/playground/react/components/result_info.js @@ -83,7 +83,6 @@ class ResultInfo extends React.Component { getCaption() { const caption = this.getResult().caption; - console.log(caption) if (caption) { return [ e( @@ -105,6 +104,8 @@ class ResultInfo extends React.Component { } getRule() { + const setView = this.props.setView; + const rule = this.getResult().job_properties.rule; return [ e( ListHeading, @@ -112,8 +113,12 @@ class ResultInfo extends React.Component { ), e( ListItem, - { key: "rulename" }, - this.getResult().job_properties.rule + { key: "rulename", className: "" }, + e( + "a", + { type: "button", href: "#", className: "p-1 transition-all hover:text-emerald-500 rounded hover:bg-slate-800", onClick: () => setView({ navbarMode: "ruleinfo", ruleinfo: rule }) }, + rule + ) ) ] } From 6c0a2d13a6d6c5bb90d911c4a6862efab1c35e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 9 Mar 2022 18:02:38 +0100 Subject: [PATCH 12/45] move new report into module --- playground/react/index.html | 54 ------- setup.py | 2 +- snakemake/report/__init__.py | 51 ++++--- snakemake/report/data/__init__.py | 0 snakemake/report/data/categories.py | 8 + snakemake/report/data/results.py | 18 +++ snakemake/report/data/rulegraph.py | 116 ++++++++++++++ snakemake/report/data/rules.py | 2 + snakemake/report/data/runtimes.py | 17 +++ snakemake/report/data/timeline.py | 17 +++ .../report/template}/categories.js | 0 .../template}/components/abstract_menu.js | 0 .../template}/components/abstract_results.js | 6 +- .../report/template}/components/app.js | 0 .../template}/components/breadcrumbs.js | 0 .../report/template}/components/category.js | 0 .../report/template}/components/common.js | 0 .../report/template}/components/content.js | 0 .../report/template}/components/icon.js | 0 .../template}/components/list_heading.js | 0 .../report/template}/components/list_item.js | 0 .../report/template}/components/menu.js | 0 .../report/template}/components/navbar.js | 0 .../template}/components/result_info.js | 0 .../report/template}/components/rule_graph.js | 0 .../report/template}/components/rule_info.js | 0 .../template}/components/search_results.js | 0 .../report/template}/components/stats.js | 0 .../template}/components/subcategory.js | 0 snakemake/report/template/index.html.jinja2 | 80 ++++++++++ .../report/template}/logo.svg | 0 .../report/template}/results.js | 0 .../report/template}/rulegraph.js | 0 snakemake/report/template/rulegraph_spec.js | 142 ++++++++++++++++++ .../report/template}/rules.js | 0 .../report/template}/runtimes.js | 0 snakemake/report/template/style.css | 4 + .../report/template}/timeline.js | 0 38 files changed, 440 insertions(+), 77 deletions(-) delete mode 100644 playground/react/index.html create mode 100644 snakemake/report/data/__init__.py create mode 100644 snakemake/report/data/categories.py create mode 100644 snakemake/report/data/results.py create mode 100644 snakemake/report/data/rulegraph.py create mode 100644 snakemake/report/data/rules.py create mode 100644 snakemake/report/data/runtimes.py create mode 100644 snakemake/report/data/timeline.py rename {playground/react => snakemake/report/template}/categories.js (100%) rename {playground/react => snakemake/report/template}/components/abstract_menu.js (100%) rename {playground/react => snakemake/report/template}/components/abstract_results.js (96%) rename {playground/react => snakemake/report/template}/components/app.js (100%) rename {playground/react => snakemake/report/template}/components/breadcrumbs.js (100%) rename {playground/react => snakemake/report/template}/components/category.js (100%) rename {playground/react => snakemake/report/template}/components/common.js (100%) rename {playground/react => snakemake/report/template}/components/content.js (100%) rename {playground/react => snakemake/report/template}/components/icon.js (100%) rename {playground/react => snakemake/report/template}/components/list_heading.js (100%) rename {playground/react => snakemake/report/template}/components/list_item.js (100%) rename {playground/react => snakemake/report/template}/components/menu.js (100%) rename {playground/react => snakemake/report/template}/components/navbar.js (100%) rename {playground/react => snakemake/report/template}/components/result_info.js (100%) rename {playground/react => snakemake/report/template}/components/rule_graph.js (100%) rename {playground/react => snakemake/report/template}/components/rule_info.js (100%) rename {playground/react => snakemake/report/template}/components/search_results.js (100%) rename {playground/react => snakemake/report/template}/components/stats.js (100%) rename {playground/react => snakemake/report/template}/components/subcategory.js (100%) create mode 100644 snakemake/report/template/index.html.jinja2 rename {playground/react => snakemake/report/template}/logo.svg (100%) rename {playground/react => snakemake/report/template}/results.js (100%) rename {playground/react => snakemake/report/template}/rulegraph.js (100%) create mode 100644 snakemake/report/template/rulegraph_spec.js rename {playground/react => snakemake/report/template}/rules.js (100%) rename {playground/react => snakemake/report/template}/runtimes.js (100%) create mode 100644 snakemake/report/template/style.css rename {playground/react => snakemake/report/template}/timeline.js (100%) diff --git a/playground/react/index.html b/playground/react/index.html deleted file mode 100644 index 5060e0956..000000000 --- a/playground/react/index.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Snakemake Report - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/setup.py b/setup.py index 46ebfafbc..8b1181cf9 100644 --- a/setup.py +++ b/setup.py @@ -56,7 +56,7 @@ "snakemake-bash-completion = snakemake:bash_completion", ] }, - package_data={"": ["*.css", "*.sh", "*.html", "*.jinja2"]}, + package_data={"": ["*.css", "*.sh", "*.html", "*.jinja2", "*.js", "*.svg"]}, install_requires=[ "wrapt", "requests", diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 38adf1f1e..72d8bf389 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -46,6 +46,7 @@ from snakemake import __version__ from snakemake.common import is_local_file, num_if_possible, lazy_property from snakemake import logging +from snakemake.report import data class EmbeddedMixin(object): @@ -599,6 +600,7 @@ def encode_node(node): def rulegraph_spec(dag): # get toposorting, and keep only one job of each rule per level representatives = dict() + def get_representatives(level): unique = dict() for job in level: @@ -608,16 +610,13 @@ def get_representatives(level): representatives[job] = job unique[job.rule.name] = job return sorted(unique.values(), key=lambda job: job.rule.name) + toposorted = [get_representatives(level) for level in dag.toposorted()] - jobs = [ - job for level in toposorted - for job in level - ] + jobs = [job for level in toposorted for job in level] nodes = [ - {"rule": job.rule.name, "fx": 10, "fy": i * 50} - for i, job in enumerate(jobs) + {"rule": job.rule.name, "fx": 10, "fy": i * 50} for i, job in enumerate(jobs) ] idx = {job: i for i, job in enumerate(jobs)} @@ -638,7 +637,15 @@ def get_links(direct: bool): xmax = 100 ymax = max(node["fy"] for node in nodes) - return {"nodes": nodes, "links": list(get_links(direct=False)), "links_direct": list(get_links(direct=True))}, xmax, ymax + return ( + { + "nodes": nodes, + "links": list(get_links(direct=False)), + "links_direct": list(get_links(direct=True)), + }, + xmax, + ymax, + ) def get_resource_as_string(path_or_uri): @@ -678,7 +685,7 @@ def auto_report(dag, path, stylesheet=None): logger.info("Creating report...") env = Environment( - loader=PackageLoader("snakemake", "report"), + loader=PackageLoader("snakemake", "report", "template"), trim_blocks=True, lstrip_blocks=True, ) @@ -933,27 +940,33 @@ class Snakemake: "Python package pygments must be installed to create reports." ) - template = env.get_template("report.html.jinja2") + results = data.results.render_results(results) + categories = data.categories.render_categories(results) + rulegraph = data.rulegraph.render_rulegraph( + rulegraph["nodes"], rulegraph["links"], rulegraph["links_direct"] + ) + rules = data.rules.render_rules(rules.values()) + runtimes = data.runtimes.render_runtimes(runtimes) + timeline = data.timeline.render_timeline(timeline) + + template = env.get_template("index.html.jinja2") logger.info("Downloading resources and rendering HTML.") rendered = template.render( results=results, - results_size=results_size, - configfiles=configfiles, - text=text, - rulegraph_nodes=rulegraph["nodes"], - rulegraph_links=rulegraph["links"], - rulegraph_links_direct=rulegraph["links_direct"], - logo=data_uri_from_file(Path(__file__).parent / "logo.svg"), + categories=categories, + rulegraph=rulegraph, + rules=rules, runtimes=runtimes, timeline=timeline, - rules=[rec for recs in rules.values() for rec in recs], - version=__version__.split("+")[0], + pygments_css=HtmlFormatter(style="trac").get_style_defs(".source"), + custom_stylesheet=custom_stylesheet, + logo=data_uri_from_file(Path(__file__).parent / "logo.svg"), now=now, pygments_css=HtmlFormatter(style="trac").get_style_defs(".source"), custom_stylesheet=custom_stylesheet, - mode_embedded=mode_embedded, + version=__version__.split("+")[0], ) # TODO look into supporting .WARC format, also see (https://webrecorder.io) diff --git a/snakemake/report/data/__init__.py b/snakemake/report/data/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/snakemake/report/data/categories.py b/snakemake/report/data/categories.py new file mode 100644 index 000000000..0e7edaf58 --- /dev/null +++ b/snakemake/report/data/categories.py @@ -0,0 +1,8 @@ +def render_categories(results): + return { + cat.name: { + subcat.name: [res.path for res in catresults] + for subcat, catresults in subcats + } + for cat, subcats in results + } diff --git a/snakemake/report/data/results.py b/snakemake/report/data/results.py new file mode 100644 index 000000000..bf6bb3003 --- /dev/null +++ b/snakemake/report/data/results.py @@ -0,0 +1,18 @@ +def render_results(results): + return { + res.path: { + "name": res.name, + "filename": res.filename, + "size": res.size, + "caption": res.caption, + "job_properties": { + "rule": res.rule, + "wildcards": res.wildcards, + "params": res.params, + }, + "data_uri": res.data_uri, + } + for cat, subcats in results.items() + for subcat, catresults in subcats + for res in catresults + } diff --git a/snakemake/report/data/rulegraph.py b/snakemake/report/data/rulegraph.py new file mode 100644 index 000000000..98371a73a --- /dev/null +++ b/snakemake/report/data/rulegraph.py @@ -0,0 +1,116 @@ +def render_rulegraph(nodes, links, links_direct): + return { + "$schema": "https://vega.github.io/schema/vega/v5.json", + "padding": 0, + "signals": [ + {"name": "cx", "update": "width / 2"}, + {"name": "cy", "update": "height / 2"}, + ], + "data": [ + {"name": "node-data", "values": nodes}, + {"name": "link-data", "values": links}, + {"name": "link-data-direct", "values": links_direct}, + ], + "scales": [ + { + "name": "color", + "type": "ordinal", + "range": {"scheme": "category20c"}, + }, + {"name": "x", "type": "linear"}, + {"name": "y", "type": "linear"}, + ], + "marks": [ + { + "name": "nodes", + "type": "symbol", + "zindex": 1, + "from": {"data": "node-data"}, + "encode": { + "enter": { + "fill": {"scale": "color", "field": "rule"}, + "x": {"field": "fx", "scale": "x"}, + "y": {"field": "fy", "scale": "y"}, + "tooltip": {"value": "Click to show rule details."}, + }, + "update": {"size": {"value": 70}}, + "hover": {"size": {"value": 140}}, + }, + "transform": [ + { + "type": "force", + "iterations": 1, + "static": true, + "forces": [{"force": "link", "links": "link-data"}], + }, + { + "type": "force", + "iterations": 1, + "static": true, + "forces": [{"force": "link", "links": "link-data-direct"}], + }, + ], + }, + { + "name": "labels", + "type": "text", + "zindex": 2, + "from": {"data": "node-data"}, + "encode": { + "enter": { + "fill": {"value": "black"}, + "fontWeight": {"value": "normal"}, + "text": {"field": "rule"}, + "x": {"field": "fx", "scale": "x"}, + "y": {"field": "fy", "scale": "y"}, + "dx": {"value": -5}, + "dy": {"value": -5}, + "align": {"value": "right"}, + } + }, + }, + { + "type": "path", + "from": {"data": "link-data-direct"}, + "interactive": false, + "encode": { + "update": { + "stroke": {"value": "#ccc"}, + "strokeWidth": {"value": 1.0}, + } + }, + "transform": [ + { + "type": "linkpath", + "shape": "diagonal", + "sourceX": "datum.source.x", + "sourceY": "datum.source.y", + "targetX": "datum.target.x", + "targetY": "datum.target.y", + } + ], + }, + { + "type": "path", + "from": {"data": "link-data"}, + "interactive": false, + "encode": { + "update": { + "stroke": {"value": "#ccc"}, + "strokeWidth": {"value": 1.0}, + } + }, + "transform": [ + { + "type": "linkpath", + "shape": "curve", + "orient": "horizontal", + "sourceX": "datum.source.x", + "sourceY": "datum.source.y", + "targetX": "datum.target.x", + "targetY": "datum.target.y", + } + ], + }, + ], + } diff --git a/snakemake/report/data/rules.py b/snakemake/report/data/rules.py new file mode 100644 index 000000000..478c54933 --- /dev/null +++ b/snakemake/report/data/rules.py @@ -0,0 +1,2 @@ +def render_rules(rules): + return {} # TODO diff --git a/snakemake/report/data/runtimes.py b/snakemake/report/data/runtimes.py new file mode 100644 index 000000000..216162457 --- /dev/null +++ b/snakemake/report/data/runtimes.py @@ -0,0 +1,17 @@ +def render_runtimes(runtimes): + return { + "$schema": "https://vega.github.io/schema/vega-lite/v3.json", + "description": "Runtimes of jobs.", + "data": {"values": runtimes}, + "mark": "point", + "encoding": { + "x": { + "field": "runtime", + "type": "quantitative", + "axis": {"title": "runtime [s]", "labelAngle": -90}, + "scale": {"type": "log"}, + }, + "y": {"field": "rule", "type": "nominal"}, + "color": {"value": "#007bff"}, + }, + } diff --git a/snakemake/report/data/timeline.py b/snakemake/report/data/timeline.py new file mode 100644 index 000000000..b09d1ed30 --- /dev/null +++ b/snakemake/report/data/timeline.py @@ -0,0 +1,17 @@ +def render_timeline(timeline): + return { + "$schema": "https://vega.github.io/schema/vega-lite/v3.json", + "description": "Timeline of jobs.", + "data": {"values": timeline}, + "mark": "point", + "encoding": { + "x": { + "field": "endtime", + "type": "temporal", + "timeUnit": "yearmonthdatehoursminutes", + "axis": {"labelAngle": -90, "title": "creation date"}, + }, + "y": {"field": "rule", "type": "nominal"}, + "color": {"value": "#007bff"}, + }, + } diff --git a/playground/react/categories.js b/snakemake/report/template/categories.js similarity index 100% rename from playground/react/categories.js rename to snakemake/report/template/categories.js diff --git a/playground/react/components/abstract_menu.js b/snakemake/report/template/components/abstract_menu.js similarity index 100% rename from playground/react/components/abstract_menu.js rename to snakemake/report/template/components/abstract_menu.js diff --git a/playground/react/components/abstract_results.js b/snakemake/report/template/components/abstract_results.js similarity index 96% rename from playground/react/components/abstract_results.js rename to snakemake/report/template/components/abstract_results.js index 03b4e6168..7747f96c3 100644 --- a/playground/react/components/abstract_results.js +++ b/snakemake/report/template/components/abstract_results.js @@ -152,7 +152,7 @@ class AbstractResults extends React.Component { onClick: function () { setView({ content: "img", - contentPath: entry.data_uri() + contentPath: entry.data_uri }) } }; @@ -163,14 +163,14 @@ class AbstractResults extends React.Component { onClick: function () { setView({ content: "html", - contentPath: entry.data_uri() + contentPath: entry.data_uri }) } }; break; default: props = { - href: entry.data_uri(), + href: entry.data_uri, download: entry.name }; } diff --git a/playground/react/components/app.js b/snakemake/report/template/components/app.js similarity index 100% rename from playground/react/components/app.js rename to snakemake/report/template/components/app.js diff --git a/playground/react/components/breadcrumbs.js b/snakemake/report/template/components/breadcrumbs.js similarity index 100% rename from playground/react/components/breadcrumbs.js rename to snakemake/report/template/components/breadcrumbs.js diff --git a/playground/react/components/category.js b/snakemake/report/template/components/category.js similarity index 100% rename from playground/react/components/category.js rename to snakemake/report/template/components/category.js diff --git a/playground/react/components/common.js b/snakemake/report/template/components/common.js similarity index 100% rename from playground/react/components/common.js rename to snakemake/report/template/components/common.js diff --git a/playground/react/components/content.js b/snakemake/report/template/components/content.js similarity index 100% rename from playground/react/components/content.js rename to snakemake/report/template/components/content.js diff --git a/playground/react/components/icon.js b/snakemake/report/template/components/icon.js similarity index 100% rename from playground/react/components/icon.js rename to snakemake/report/template/components/icon.js diff --git a/playground/react/components/list_heading.js b/snakemake/report/template/components/list_heading.js similarity index 100% rename from playground/react/components/list_heading.js rename to snakemake/report/template/components/list_heading.js diff --git a/playground/react/components/list_item.js b/snakemake/report/template/components/list_item.js similarity index 100% rename from playground/react/components/list_item.js rename to snakemake/report/template/components/list_item.js diff --git a/playground/react/components/menu.js b/snakemake/report/template/components/menu.js similarity index 100% rename from playground/react/components/menu.js rename to snakemake/report/template/components/menu.js diff --git a/playground/react/components/navbar.js b/snakemake/report/template/components/navbar.js similarity index 100% rename from playground/react/components/navbar.js rename to snakemake/report/template/components/navbar.js diff --git a/playground/react/components/result_info.js b/snakemake/report/template/components/result_info.js similarity index 100% rename from playground/react/components/result_info.js rename to snakemake/report/template/components/result_info.js diff --git a/playground/react/components/rule_graph.js b/snakemake/report/template/components/rule_graph.js similarity index 100% rename from playground/react/components/rule_graph.js rename to snakemake/report/template/components/rule_graph.js diff --git a/playground/react/components/rule_info.js b/snakemake/report/template/components/rule_info.js similarity index 100% rename from playground/react/components/rule_info.js rename to snakemake/report/template/components/rule_info.js diff --git a/playground/react/components/search_results.js b/snakemake/report/template/components/search_results.js similarity index 100% rename from playground/react/components/search_results.js rename to snakemake/report/template/components/search_results.js diff --git a/playground/react/components/stats.js b/snakemake/report/template/components/stats.js similarity index 100% rename from playground/react/components/stats.js rename to snakemake/report/template/components/stats.js diff --git a/playground/react/components/subcategory.js b/snakemake/report/template/components/subcategory.js similarity index 100% rename from playground/react/components/subcategory.js rename to snakemake/report/template/components/subcategory.js diff --git a/snakemake/report/template/index.html.jinja2 b/snakemake/report/template/index.html.jinja2 new file mode 100644 index 000000000..334f44742 --- /dev/null +++ b/snakemake/report/template/index.html.jinja2 @@ -0,0 +1,80 @@ + + + + + + + + + + Snakemake Report + + + + + + {% if custom_stylesheet is not none %} + + {% endif %} + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/playground/react/logo.svg b/snakemake/report/template/logo.svg similarity index 100% rename from playground/react/logo.svg rename to snakemake/report/template/logo.svg diff --git a/playground/react/results.js b/snakemake/report/template/results.js similarity index 100% rename from playground/react/results.js rename to snakemake/report/template/results.js diff --git a/playground/react/rulegraph.js b/snakemake/report/template/rulegraph.js similarity index 100% rename from playground/react/rulegraph.js rename to snakemake/report/template/rulegraph.js diff --git a/snakemake/report/template/rulegraph_spec.js b/snakemake/report/template/rulegraph_spec.js new file mode 100644 index 000000000..fd694a608 --- /dev/null +++ b/snakemake/report/template/rulegraph_spec.js @@ -0,0 +1,142 @@ +var rulegraph_spec = { + "$schema": "https://vega.github.io/schema/vega/v5.json", + "padding": 0, + + "signals": [ + { "name": "cx", "update": "width / 2" }, + { "name": "cy", "update": "height / 2" } + ], + + "data": [ + { + "name": "node-data", + "values": {{ rulegraph_nodes }} + }, +{ + "name": "link-data", + "values": { { rulegraph_links } } +}, +{ + "name": "link-data-direct", + "values": { { rulegraph_links_direct } } +} + ], + +"scales": [ + { + "name": "color", + "type": "ordinal", + "range": { "scheme": "category20c" } + }, + { + "name": "x", + "type": "linear" + }, + { + "name": "y", + "type": "linear" + } +], + + "marks": [ + { + "name": "nodes", + "type": "symbol", + "zindex": 1, + "from": { "data": "node-data" }, + "encode": { + "enter": { + "fill": { "scale": "color", "field": "rule" }, + "x": { "field": "fx", "scale": "x" }, + "y": { "field": "fy", "scale": "y" }, + "tooltip": { "value": "Click to show rule details." } + }, + "update": { + "size": { "value": 70 } + }, + "hover": { + "size": { "value": 140 } + } + }, + + "transform": [ + { + "type": "force", + "iterations": 1, + "static": true, + "forces": [ + { + "force": "link", + "links": "link-data" + } + ] + }, + { + "type": "force", + "iterations": 1, + "static": true, + "forces": [ + { + "force": "link", + "links": "link-data-direct" + } + ] + } + ] + }, + { + "name": "labels", + "type": "text", + "zindex": 2, + "from": { "data": "node-data" }, + "encode": { + "enter": { + "fill": { "value": "black" }, + "fontWeight": { "value": "normal" }, + "text": { "field": "rule" }, + "x": { "field": "fx", "scale": "x" }, + "y": { "field": "fy", "scale": "y" }, + "dx": { "value": -5 }, + "dy": { "value": -5 }, + "align": { "value": "right" } + } + } + }, + { + "type": "path", + "from": { "data": "link-data-direct" }, + "interactive": false, + "encode": { + "update": { + "stroke": { "value": "#ccc" }, + "strokeWidth": { "value": 1.0 } + } + }, + "transform": [ + { + "type": "linkpath", "shape": "diagonal", + "sourceX": "datum.source.x", "sourceY": "datum.source.y", + "targetX": "datum.target.x", "targetY": "datum.target.y" + } + ] + }, + { + "type": "path", + "from": { "data": "link-data" }, + "interactive": false, + "encode": { + "update": { + "stroke": { "value": "#ccc" }, + "strokeWidth": { "value": 1.0 } + } + }, + "transform": [ + { + "type": "linkpath", "shape": "curve", "orient": "horizontal", + "sourceX": "datum.source.x", "sourceY": "datum.source.y", + "targetX": "datum.target.x", "targetY": "datum.target.y" + } + ] + } + ] + }; \ No newline at end of file diff --git a/playground/react/rules.js b/snakemake/report/template/rules.js similarity index 100% rename from playground/react/rules.js rename to snakemake/report/template/rules.js diff --git a/playground/react/runtimes.js b/snakemake/report/template/runtimes.js similarity index 100% rename from playground/react/runtimes.js rename to snakemake/report/template/runtimes.js diff --git a/snakemake/report/template/style.css b/snakemake/report/template/style.css new file mode 100644 index 000000000..f4146fa47 --- /dev/null +++ b/snakemake/report/template/style.css @@ -0,0 +1,4 @@ +.vega-embed summary { + z-index: 49 !important; + /* ensure that menu is always below navbar*/ +} \ No newline at end of file diff --git a/playground/react/timeline.js b/snakemake/report/template/timeline.js similarity index 100% rename from playground/react/timeline.js rename to snakemake/report/template/timeline.js From 4ee49b1fe99c3a7c1261f77188de194c823e05d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 11:31:49 +0100 Subject: [PATCH 13/45] fixes --- setup.py | 2 + snakemake/report/__init__.py | 34 +-- snakemake/report/data/__init__.py | 6 + snakemake/report/data/categories.py | 19 +- snakemake/report/data/results.py | 38 +-- snakemake/report/data/rulegraph.py | 223 +++++++++--------- snakemake/report/data/rules.py | 17 +- snakemake/report/data/runtimes.py | 35 +-- snakemake/report/data/timeline.py | 35 +-- snakemake/report/template/__init__.py | 0 .../report/template/components/navbar.js | 6 +- .../report/template/components/result_info.js | 2 +- .../report/template/components/rule_info.js | 83 +++++-- snakemake/report/template/index.html.jinja2 | 4 + snakemake/report/template/style.css | 4 + 15 files changed, 306 insertions(+), 202 deletions(-) create mode 100644 snakemake/report/template/__init__.py diff --git a/setup.py b/setup.py index 8b1181cf9..d959206ae 100644 --- a/setup.py +++ b/setup.py @@ -41,6 +41,8 @@ "snakemake", "snakemake.remote", "snakemake.report", + "snakemake.report.template", + "snakemake.report.data", "snakemake.common", "snakemake.caching", "snakemake.deployment", diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 72d8bf389..9ec013cc0 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -121,7 +121,7 @@ def report( defaultenc="utf8", template=None, metadata=None, - **files + **files, ): if stylesheet is None: os.path.join(os.path.dirname(__file__), "report.css") @@ -400,7 +400,8 @@ def __init__( self.path = path self.target = os.path.basename(path) self.size = os.path.getsize(self.path) - logger.info("Adding {} ({:.2g} MB).".format(self.name, self.size / 1e6)) + self.size_mb = f"{self.size / 1e6:.2g} MB" + logger.info(f"Adding {self.name} ({self.size_mb}).") self.raw_caption = caption self.mime, _ = mime_from_file(self.path) self.workflow = workflow @@ -504,9 +505,7 @@ def render(self, env, rst_links, categories, files): caption = env.from_string(caption).render( snakemake=snakemake, categories=categories, files=files ) - self.caption = json.dumps( - publish_parts(caption, writer_name="html")["body"] - ) + self.caption = publish_parts(caption, writer_name="html")["body"] except Exception as e: raise WorkflowError( "Error loading caption file {} of output marked for report.".format( @@ -650,7 +649,7 @@ def get_links(direct: bool): def get_resource_as_string(path_or_uri): if is_local_file(path_or_uri): - return open(Path(__file__).parent / path_or_uri).read() + return open(Path(__file__).parent / "template" / path_or_uri).read() else: r = requests.get(path_or_uri) if r.status_code == requests.codes.ok: @@ -685,7 +684,7 @@ def auto_report(dag, path, stylesheet=None): logger.info("Creating report...") env = Environment( - loader=PackageLoader("snakemake", "report", "template"), + loader=PackageLoader("snakemake", "report/template"), trim_blocks=True, lstrip_blocks=True, ) @@ -865,6 +864,9 @@ def get_datetime(rectime): break if not merged: rules[rec.rule].append(rule) + # In theory there could be more than one rule with the same name kept from above. + # For now, we just keep the first. + rules = {rulename: items[0] for rulename, items in rules.items()} # rulegraph rulegraph, xmax, ymax = rulegraph_d3_spec(dag) @@ -940,14 +942,14 @@ class Snakemake: "Python package pygments must be installed to create reports." ) - results = data.results.render_results(results) - categories = data.categories.render_categories(results) - rulegraph = data.rulegraph.render_rulegraph( + categories = data.render_categories(results) + results = data.render_results(results) + rulegraph = data.render_rulegraph( rulegraph["nodes"], rulegraph["links"], rulegraph["links_direct"] ) - rules = data.rules.render_rules(rules.values()) - runtimes = data.runtimes.render_runtimes(runtimes) - timeline = data.timeline.render_timeline(timeline) + rules = data.render_rules(rules) + runtimes = data.render_runtimes(runtimes) + timeline = data.render_timeline(timeline) template = env.get_template("index.html.jinja2") @@ -960,12 +962,10 @@ class Snakemake: rules=rules, runtimes=runtimes, timeline=timeline, - pygments_css=HtmlFormatter(style="trac").get_style_defs(".source"), + pygments_css=HtmlFormatter(style="stata-dark").get_style_defs(".source"), custom_stylesheet=custom_stylesheet, - logo=data_uri_from_file(Path(__file__).parent / "logo.svg"), + logo=data_uri_from_file(Path(__file__).parent / "template" / "logo.svg"), now=now, - pygments_css=HtmlFormatter(style="trac").get_style_defs(".source"), - custom_stylesheet=custom_stylesheet, version=__version__.split("+")[0], ) diff --git a/snakemake/report/data/__init__.py b/snakemake/report/data/__init__.py index e69de29bb..45fb7ccfe 100644 --- a/snakemake/report/data/__init__.py +++ b/snakemake/report/data/__init__.py @@ -0,0 +1,6 @@ +from .results import render_results +from .categories import render_categories +from .rulegraph import render_rulegraph +from .rules import render_rules +from .runtimes import render_runtimes +from .timeline import render_timeline diff --git a/snakemake/report/data/categories.py b/snakemake/report/data/categories.py index 0e7edaf58..12e797eb7 100644 --- a/snakemake/report/data/categories.py +++ b/snakemake/report/data/categories.py @@ -1,8 +1,15 @@ +import json + + def render_categories(results): - return { - cat.name: { - subcat.name: [res.path for res in catresults] - for subcat, catresults in subcats + return json.dumps( + { + cat.name: { + subcat.name: [res.path for res in catresults] + for subcat, catresults in subcats.items() + if catresults + } + for cat, subcats in results.items() + if subcats and sum(len(catresults) for catresults in subcats.values()) } - for cat, subcats in results - } + ) diff --git a/snakemake/report/data/results.py b/snakemake/report/data/results.py index bf6bb3003..f4243aed6 100644 --- a/snakemake/report/data/results.py +++ b/snakemake/report/data/results.py @@ -1,18 +1,24 @@ +import json + + def render_results(results): - return { - res.path: { - "name": res.name, - "filename": res.filename, - "size": res.size, - "caption": res.caption, - "job_properties": { - "rule": res.rule, - "wildcards": res.wildcards, - "params": res.params, - }, - "data_uri": res.data_uri, + return json.dumps( + { + res.path: { + "name": res.name, + "filename": res.filename, + "size": res.size_mb, + "caption": res.caption, + "mime_type": res.mime, + "job_properties": { + "rule": res.job.rule.name, + "wildcards": res.wildcards, + "params": res.params, + }, + "data_uri": res.data_uri, + } + for cat, subcats in results.items() + for subcat, catresults in subcats.items() + for res in catresults } - for cat, subcats in results.items() - for subcat, catresults in subcats - for res in catresults - } + ) diff --git a/snakemake/report/data/rulegraph.py b/snakemake/report/data/rulegraph.py index 98371a73a..f9fb64110 100644 --- a/snakemake/report/data/rulegraph.py +++ b/snakemake/report/data/rulegraph.py @@ -1,116 +1,121 @@ +import json + + def render_rulegraph(nodes, links, links_direct): - return { - "$schema": "https://vega.github.io/schema/vega/v5.json", - "padding": 0, - "signals": [ - {"name": "cx", "update": "width / 2"}, - {"name": "cy", "update": "height / 2"}, - ], - "data": [ - {"name": "node-data", "values": nodes}, - {"name": "link-data", "values": links}, - {"name": "link-data-direct", "values": links_direct}, - ], - "scales": [ - { - "name": "color", - "type": "ordinal", - "range": {"scheme": "category20c"}, - }, - {"name": "x", "type": "linear"}, - {"name": "y", "type": "linear"}, - ], - "marks": [ - { - "name": "nodes", - "type": "symbol", - "zindex": 1, - "from": {"data": "node-data"}, - "encode": { - "enter": { - "fill": {"scale": "color", "field": "rule"}, - "x": {"field": "fx", "scale": "x"}, - "y": {"field": "fy", "scale": "y"}, - "tooltip": {"value": "Click to show rule details."}, - }, - "update": {"size": {"value": 70}}, - "hover": {"size": {"value": 140}}, + return json.dumps( + { + "$schema": "https://vega.github.io/schema/vega/v5.json", + "padding": 0, + "signals": [ + {"name": "cx", "update": "width / 2"}, + {"name": "cy", "update": "height / 2"}, + ], + "data": [ + {"name": "node-data", "values": nodes}, + {"name": "link-data", "values": links}, + {"name": "link-data-direct", "values": links_direct}, + ], + "scales": [ + { + "name": "color", + "type": "ordinal", + "range": {"scheme": "category20c"}, }, - "transform": [ - { - "type": "force", - "iterations": 1, - "static": true, - "forces": [{"force": "link", "links": "link-data"}], + {"name": "x", "type": "linear"}, + {"name": "y", "type": "linear"}, + ], + "marks": [ + { + "name": "nodes", + "type": "symbol", + "zindex": 1, + "from": {"data": "node-data"}, + "encode": { + "enter": { + "fill": {"scale": "color", "field": "rule"}, + "x": {"field": "fx", "scale": "x"}, + "y": {"field": "fy", "scale": "y"}, + "tooltip": {"value": "Click to show rule details."}, + }, + "update": {"size": {"value": 70}}, + "hover": {"size": {"value": 140}}, }, - { - "type": "force", - "iterations": 1, - "static": true, - "forces": [{"force": "link", "links": "link-data-direct"}], + "transform": [ + { + "type": "force", + "iterations": 1, + "static": True, + "forces": [{"force": "link", "links": "link-data"}], + }, + { + "type": "force", + "iterations": 1, + "static": True, + "forces": [{"force": "link", "links": "link-data-direct"}], + }, + ], + }, + { + "name": "labels", + "type": "text", + "zindex": 2, + "from": {"data": "node-data"}, + "encode": { + "enter": { + "fill": {"value": "black"}, + "fontWeight": {"value": "normal"}, + "text": {"field": "rule"}, + "x": {"field": "fx", "scale": "x"}, + "y": {"field": "fy", "scale": "y"}, + "dx": {"value": -5}, + "dy": {"value": -5}, + "align": {"value": "right"}, + } }, - ], - }, - { - "name": "labels", - "type": "text", - "zindex": 2, - "from": {"data": "node-data"}, - "encode": { - "enter": { - "fill": {"value": "black"}, - "fontWeight": {"value": "normal"}, - "text": {"field": "rule"}, - "x": {"field": "fx", "scale": "x"}, - "y": {"field": "fy", "scale": "y"}, - "dx": {"value": -5}, - "dy": {"value": -5}, - "align": {"value": "right"}, - } }, - }, - { - "type": "path", - "from": {"data": "link-data-direct"}, - "interactive": false, - "encode": { - "update": { - "stroke": {"value": "#ccc"}, - "strokeWidth": {"value": 1.0}, - } + { + "type": "path", + "from": {"data": "link-data-direct"}, + "interactive": False, + "encode": { + "update": { + "stroke": {"value": "#ccc"}, + "strokeWidth": {"value": 1.0}, + } + }, + "transform": [ + { + "type": "linkpath", + "shape": "diagonal", + "sourceX": "datum.source.x", + "sourceY": "datum.source.y", + "targetX": "datum.target.x", + "targetY": "datum.target.y", + } + ], }, - "transform": [ - { - "type": "linkpath", - "shape": "diagonal", - "sourceX": "datum.source.x", - "sourceY": "datum.source.y", - "targetX": "datum.target.x", - "targetY": "datum.target.y", - } - ], - }, - { - "type": "path", - "from": {"data": "link-data"}, - "interactive": false, - "encode": { - "update": { - "stroke": {"value": "#ccc"}, - "strokeWidth": {"value": 1.0}, - } + { + "type": "path", + "from": {"data": "link-data"}, + "interactive": False, + "encode": { + "update": { + "stroke": {"value": "#ccc"}, + "strokeWidth": {"value": 1.0}, + } + }, + "transform": [ + { + "type": "linkpath", + "shape": "curve", + "orient": "horizontal", + "sourceX": "datum.source.x", + "sourceY": "datum.source.y", + "targetX": "datum.target.x", + "targetY": "datum.target.y", + } + ], }, - "transform": [ - { - "type": "linkpath", - "shape": "curve", - "orient": "horizontal", - "sourceX": "datum.source.x", - "sourceY": "datum.source.y", - "targetX": "datum.target.x", - "targetY": "datum.target.y", - } - ], - }, - ], - } + ], + } + ) diff --git a/snakemake/report/data/rules.py b/snakemake/report/data/rules.py index 478c54933..dfa35004f 100644 --- a/snakemake/report/data/rules.py +++ b/snakemake/report/data/rules.py @@ -1,2 +1,17 @@ +import json + + def render_rules(rules): - return {} # TODO + return json.dumps( + { + rulename: { + "input": rule.input, + "output": rule.output, + "conda_env": rule.conda_env, + "container_img_url": rule.container_img_url, + "code": rule.code, + "n_jobs": rule.n_jobs, + } + for rulename, rule in rules.items() + } + ) diff --git a/snakemake/report/data/runtimes.py b/snakemake/report/data/runtimes.py index 216162457..a82c7009c 100644 --- a/snakemake/report/data/runtimes.py +++ b/snakemake/report/data/runtimes.py @@ -1,17 +1,22 @@ +import json + + def render_runtimes(runtimes): - return { - "$schema": "https://vega.github.io/schema/vega-lite/v3.json", - "description": "Runtimes of jobs.", - "data": {"values": runtimes}, - "mark": "point", - "encoding": { - "x": { - "field": "runtime", - "type": "quantitative", - "axis": {"title": "runtime [s]", "labelAngle": -90}, - "scale": {"type": "log"}, + return json.dumps( + { + "$schema": "https://vega.github.io/schema/vega-lite/v3.json", + "description": "Runtimes of jobs.", + "data": {"values": runtimes}, + "mark": "point", + "encoding": { + "x": { + "field": "runtime", + "type": "quantitative", + "axis": {"title": "runtime [s]", "labelAngle": -90}, + "scale": {"type": "log"}, + }, + "y": {"field": "rule", "type": "nominal"}, + "color": {"value": "#007bff"}, }, - "y": {"field": "rule", "type": "nominal"}, - "color": {"value": "#007bff"}, - }, - } + } + ) diff --git a/snakemake/report/data/timeline.py b/snakemake/report/data/timeline.py index b09d1ed30..7591441ce 100644 --- a/snakemake/report/data/timeline.py +++ b/snakemake/report/data/timeline.py @@ -1,17 +1,22 @@ +import json + + def render_timeline(timeline): - return { - "$schema": "https://vega.github.io/schema/vega-lite/v3.json", - "description": "Timeline of jobs.", - "data": {"values": timeline}, - "mark": "point", - "encoding": { - "x": { - "field": "endtime", - "type": "temporal", - "timeUnit": "yearmonthdatehoursminutes", - "axis": {"labelAngle": -90, "title": "creation date"}, + return json.dumps( + { + "$schema": "https://vega.github.io/schema/vega-lite/v3.json", + "description": "Timeline of jobs.", + "data": {"values": timeline}, + "mark": "point", + "encoding": { + "x": { + "field": "endtime", + "type": "temporal", + "timeUnit": "yearmonthdatehoursminutes", + "axis": {"labelAngle": -90, "title": "creation date"}, + }, + "y": {"field": "rule", "type": "nominal"}, + "color": {"value": "#007bff"}, }, - "y": {"field": "rule", "type": "nominal"}, - "color": {"value": "#007bff"}, - }, - } + } + ) diff --git a/snakemake/report/template/__init__.py b/snakemake/report/template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/snakemake/report/template/components/navbar.js b/snakemake/report/template/components/navbar.js index 8079c3e78..19cda2d60 100644 --- a/snakemake/report/template/components/navbar.js +++ b/snakemake/report/template/components/navbar.js @@ -16,7 +16,7 @@ class Navbar extends React.Component { return [ e( "div", - { className: `fixed z-50 p-3 transition-translate ${translateShowButton}` }, + { className: `fixed z-50 p-3 transition-translate bg-white backdrop-blur-sm rounded-br-lg ${translateShowButton}` }, this.getShowButton() ), e( @@ -27,7 +27,7 @@ class Navbar extends React.Component { { className: "sticky bg-blur bg-white opacity-80 text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, e( "img", - { src: "logo.svg", className: "h-4" } + { src: logo_uri, className: "h-4" } ), e( "span", @@ -213,7 +213,7 @@ class Navbar extends React.Component { getResultinfoBreadcrumb() { let setView = this.props.app.setView; return { - name: "resultinfo", icon: "eye", func: function () { setView({ navbarMode: "resultinfo" }) } + name: this.props.app.state.resultPath, func: function () { setView({ navbarMode: "resultinfo" }) } }; } diff --git a/snakemake/report/template/components/result_info.js b/snakemake/report/template/components/result_info.js index c9abef127..637109f60 100644 --- a/snakemake/report/template/components/result_info.js +++ b/snakemake/report/template/components/result_info.js @@ -93,7 +93,7 @@ class ResultInfo extends React.Component { ListItem, { key: "caption", - className: "p-1", + className: "p-1 prose prose-invert prose-sm", dangerouslySetInnerHTML: { __html: caption } } ) diff --git a/snakemake/report/template/components/rule_info.js b/snakemake/report/template/components/rule_info.js index 5e3f60646..b43fb2c87 100644 --- a/snakemake/report/template/components/rule_info.js +++ b/snakemake/report/template/components/rule_info.js @@ -7,34 +7,79 @@ class RuleInfo extends React.Component { render() { let rule = rules[this.props.rule]; + if (rule === undefined) { + return e( + "span", + { className: "p-1" }, + `No metadata available for rule ${this.props.rule}` + ); + } + return e( "ol", {}, this.renderItems("Input", rule.input, {}, false), - this.renderItems("Output", rule.input), - this.renderItems("Software", rule.conda), + this.renderItems("Output", rule.output), + this.renderSoftware(), this.renderItems("Container", [rule.container]), - this.renderItems("Code", rule.code), + this.renderCode(), ) } + renderSoftware() { + let rule = rules[this.props.rule]; + if (rule.conda_env) { + return this.renderItems("Software", rule.conda_env.dependencies); + } else { + return []; + } + } + + renderCode() { + let rule = rules[this.props.rule]; + if (rule.code.length) { + return [ + e( + ListHeading, + { key: "code-heading", text: "Code" } + ), + rule.code.map(function (block) { + return e( + ListItem, + { + key: "code", + className: "p-1", + dangerouslySetInnerHTML: { __html: block } + } + ) + }) + ]; + } else { + return []; + } + } + renderItems(heading, items, props = {}, margin = true) { - let headingProps = {}; - if (margin) { - headingProps = { className: "" } + if (items.length && items.every((item) => item !== undefined)) { + let headingProps = {}; + if (margin) { + headingProps = { className: "" } + } + return [ + e( + ListHeading, + { text: heading, ...headingProps } + ), + items.map(function (item) { + return e( + ListItem, + props, + item + ); + }) + ]; + } else { + return []; } - return [ - e( - ListHeading, - { text: heading, ...headingProps } - ), - items.map(function (item) { - return e( - ListItem, - props, - item - ); - }) - ]; } } \ No newline at end of file diff --git a/snakemake/report/template/index.html.jinja2 b/snakemake/report/template/index.html.jinja2 index 334f44742..a46ed8713 100644 --- a/snakemake/report/template/index.html.jinja2 +++ b/snakemake/report/template/index.html.jinja2 @@ -53,6 +53,10 @@ var rules = {{rules}}; + + diff --git a/snakemake/report/template/style.css b/snakemake/report/template/style.css index f4146fa47..dd63f225d 100644 --- a/snakemake/report/template/style.css +++ b/snakemake/report/template/style.css @@ -1,4 +1,8 @@ .vega-embed summary { z-index: 49 !important; /* ensure that menu is always below navbar*/ +} + +.source { + background-color: transparent!important; } \ No newline at end of file From f22d6cc84d142fec65484801f9c649a98fdff834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:08:46 +0100 Subject: [PATCH 14/45] cleanup --- setup.py | 2 +- snakemake/report/__init__.py | 86 ------------------------------------ test-environment.yml | 2 - 3 files changed, 1 insertion(+), 89 deletions(-) diff --git a/setup.py b/setup.py index d959206ae..c83941777 100644 --- a/setup.py +++ b/setup.py @@ -84,7 +84,7 @@ "retry", ], extras_require={ - "reports": ["jinja2", "networkx", "pygments", "pygraphviz"], + "reports": ["jinja2", "pygments"], "messaging": ["slacker"], "google-cloud": [ "oauth2client", diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 9ec013cc0..eeae225e5 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -425,50 +425,6 @@ def __init__( self.data_uri = self._data_uri() self.png_uri = self._png_uri() - @lazy_property - def png_content(self): - assert self.is_img - - convert = shutil.which("magick") - if convert is not None: - try: - # 2048 aims at a reasonable balance between what displays - # can show in a png-preview image and what renders quick - # into a small enough png - max_width = "2048" - max_height = "2048" - # '>' means only larger images scaled down to within max-dimensions - max_spec = max_width + "x" + max_height + ">" - png = sp.check_output( - ["magick", "convert", "-resize", max_spec, self.path, "png:-"], - stderr=sp.PIPE, - ) - return png - except sp.CalledProcessError as e: - logger.warning( - "Failed to convert image to png with " - "imagemagick convert: {}".format(e.stderr) - ) - else: - logger.warning( - "Command convert not in $PATH. Install " - "imagemagick in order to have embedded " - "images and pdfs in the report." - ) - - def _png_uri(self): - if self.is_img: - png = self.png_content - if self.mode_embedded: - if png is not None: - uri = data_uri( - png, os.path.basename(self.path) + ".png", mime="image/png" - ) - return uri - else: - if png is not None: - return os.path.join("data/thumbnails", self.id) - def _data_uri(self): if self.mode_embedded: return data_uri_from_file(self.path) @@ -561,41 +517,6 @@ def filename(self): return os.path.basename(self.path) -def rulegraph_d3_spec(dag): - try: - import networkx as nx - from networkx.drawing.nx_agraph import graphviz_layout - from networkx.readwrite import json_graph - except ImportError as e: - raise WorkflowError( - "Python packages networkx and pygraphviz must be " - "installed to create reports.", - e, - ) - - g = nx.DiGraph() - g.add_nodes_from(sorted(job.rule.name for job in dag.jobs)) - - for job in dag.jobs: - target = job.rule.name - for dep in dag.dependencies[job]: - source = dep.rule.name - g.add_edge(source, target) - - pos = graphviz_layout(g, "dot", args="-Grankdir=BT") - xmax = max(x for x, y in pos.values()) + 100 # add offset to account for labels - ymax = max(y for x, y in pos.values()) - - def encode_node(node): - x, y = pos[node] - return {"rule": node, "fx": x, "fy": y} - - nodes = list(map(encode_node, g.nodes)) - idx = {node: i for i, node in enumerate(g.nodes)} - links = [{"target": idx[u], "source": idx[v], "value": 1} for u, v in g.edges] - return {"nodes": nodes, "links": links}, xmax, ymax - - def rulegraph_spec(dag): # get toposorting, and keep only one job of each rule per level representatives = dict() @@ -817,7 +738,6 @@ def get_time(rectime, metatime, sel_func): rec.container_img_url = meta["container_img_url"] rec.output.append(f) except KeyError as e: - print(e) logger.warning( "Metadata for file {} was created with a too " "old Snakemake version.".format(f) @@ -869,7 +789,6 @@ def get_datetime(rectime): rules = {rulename: items[0] for rulename, items in rules.items()} # rulegraph - rulegraph, xmax, ymax = rulegraph_d3_spec(dag) rulegraph, xmax, ymax = rulegraph_spec(dag) # configfiles @@ -980,11 +899,6 @@ class Snakemake: for result in catresults: # write raw data zipout.write(result.path, str(folder.joinpath(result.data_uri))) - # write thumbnail - if result.is_img and result.png_content: - zipout.writestr( - str(folder.joinpath(result.png_uri)), result.png_content - ) # write aux files parent = folder.joinpath(result.data_uri).parent for aux_path in result.aux_files: diff --git a/test-environment.yml b/test-environment.yml index d1fcf797e..327024e74 100644 --- a/test-environment.yml +++ b/test-environment.yml @@ -42,8 +42,6 @@ dependencies: - cwltool - jsonschema - pandas - - networkx - - pygraphviz - python-kubernetes - gitpython - pulp >=2.0 From ea21e3e506c31cf1019064617ac2d9587b650404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:09:58 +0100 Subject: [PATCH 15/45] fixes --- snakemake/report/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index eeae225e5..a8341e33b 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -423,7 +423,6 @@ def __init__( self.aux_files = aux_files or [] self.data_uri = self._data_uri() - self.png_uri = self._png_uri() def _data_uri(self): if self.mode_embedded: From 2db9dcf08cd2f6aef27b356cf7dd5bedb92d76e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:12:20 +0100 Subject: [PATCH 16/45] fix --- snakemake/report/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index a8341e33b..3d30095f3 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -287,7 +287,6 @@ def code(self): self._rule.notebook, self._rule.workflow.sourcecache, self._rule.basedir, - wildcards=self.wildcards, params=self.params, ) language = language.split("_")[1] From ffae54801e80f17ee0010be0b3f84542b4d0623a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:13:09 +0100 Subject: [PATCH 17/45] fixes --- snakemake/report/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 3d30095f3..87bee8ccf 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -287,7 +287,6 @@ def code(self): self._rule.notebook, self._rule.workflow.sourcecache, self._rule.basedir, - params=self.params, ) language = language.split("_")[1] sources = notebook.get_cell_sources(source) From 1fb439924ea1a0549fe17cb954c369330866af91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:16:59 +0100 Subject: [PATCH 18/45] fixes --- snakemake/report/__init__.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 87bee8ccf..6b49a8b6c 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -34,6 +34,7 @@ from snakemake.utils import format from snakemake.logging import logger from snakemake.io import ( + is_callable, is_flagged, get_flag_value, glob_wildcards, @@ -231,6 +232,13 @@ def __lt__(self, other): return self.name.__lt__(other.name) +def render_iofile(iofile): + if is_callable(iofile): + return "" + else: + return str(iofile) + + class RuleRecord: def __init__(self, job, job_rec): import yaml @@ -320,11 +328,11 @@ def add(self, job_rec): @property def output(self): - return self._rule.output + return [render_iofile(f) for f in self._rule.output] @property def input(self): - return self._rule.input + return [render_iofile(f) for f in self._rule.input] def __eq__(self, other): return ( From 20a8dc2161cef7409b6d64ebee0d3195e3190899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:17:48 +0100 Subject: [PATCH 19/45] dbg --- snakemake/report/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 6b49a8b6c..631b0d53a 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -234,6 +234,7 @@ def __lt__(self, other): def render_iofile(iofile): if is_callable(iofile): + print("func") return "" else: return str(iofile) From 8930221f2cb122059fc9354c252d09d94fc70c4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:18:27 +0100 Subject: [PATCH 20/45] dbg --- snakemake/report/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 631b0d53a..5266cf94c 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -233,8 +233,8 @@ def __lt__(self, other): def render_iofile(iofile): + print(iofile, is_callable(iofile)) if is_callable(iofile): - print("func") return "" else: return str(iofile) From c90ec189fc46b4176dfba5b655758689728ab245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:18:38 +0100 Subject: [PATCH 21/45] cleanup --- snakemake/report/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 5266cf94c..6b49a8b6c 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -233,7 +233,6 @@ def __lt__(self, other): def render_iofile(iofile): - print(iofile, is_callable(iofile)) if is_callable(iofile): return "" else: From ee403a8b89080311ae05489807faa95ae84f8b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:33:50 +0100 Subject: [PATCH 22/45] implement column support --- snakemake/io.py | 8 ++++---- snakemake/report/__init__.py | 17 +++++++++++++++++ snakemake/report/data/results.py | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/snakemake/io.py b/snakemake/io.py index f6772cdb3..e8f7de4f6 100755 --- a/snakemake/io.py +++ b/snakemake/io.py @@ -1080,12 +1080,12 @@ def checkpoint_target(value): ReportObject = collections.namedtuple( - "ReportObject", ["caption", "category", "subcategory", "patterns", "htmlindex"] + "ReportObject", ["caption", "category", "subcategory", "columns", "patterns", "htmlindex"] ) def report( - value, caption=None, category=None, subcategory=None, patterns=[], htmlindex=None + value, caption=None, category=None, subcategory=None, columns=None, patterns=[], htmlindex=None ): """Flag output file or directory as to be included into reports. @@ -1095,14 +1095,14 @@ def report( value -- File or directory. caption -- Path to a .rst file with a textual description of the result. category -- Name of the category in which the result should be displayed in the report. - pattern -- Wildcard pattern for selecting files if a directory is given (this is used as + patterns -- Wildcard patterns for selecting files if a directory is given (this is used as input for snakemake.io.glob_wildcards). Pattern shall not include the path to the directory itself. """ return flag( value, "report", - ReportObject(caption, category, subcategory, patterns, htmlindex), + ReportObject(caption, category, subcategory, columns, patterns, htmlindex), ) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 6b49a8b6c..78a4abf5e 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -400,7 +400,9 @@ def __init__( mode_embedded=True, aux_files=None, name_overwrite=None, + columns=None, ): + self.columns = columns self.name_overwrite = name_overwrite self.mode_embedded = mode_embedded self.path = path @@ -585,6 +587,19 @@ def get_resource_as_string(path_or_uri): ) +def expand_columns(columns, wildcards, job): + if columns is None: + return None + if not isinstance(columns, list) or not all( + isinstance(col, str) for col in columns + ): + raise WorkflowError( + "Expected list of strings as columns argument given to report flag.", + rule=job.rule, + ) + return [apply_wildcards(col, wildcards) for col in columns] + + def auto_report(dag, path, stylesheet=None): try: from jinja2 import Template, Environment, PackageLoader, UndefinedError @@ -639,6 +654,7 @@ def register_file( subcategory = Category( report_obj.subcategory, wildcards=wildcards, job=job ) + columns = expand_columns(report_obj.columns, wildcards, job) results[category][subcategory].append( FileRecord( @@ -652,6 +668,7 @@ def register_file( mode_embedded=mode_embedded, aux_files=aux_files, name_overwrite=name_overwrite, + columns=columns, ) ) recorded_files.add(f) diff --git a/snakemake/report/data/results.py b/snakemake/report/data/results.py index f4243aed6..374cd370b 100644 --- a/snakemake/report/data/results.py +++ b/snakemake/report/data/results.py @@ -7,6 +7,7 @@ def render_results(results): res.path: { "name": res.name, "filename": res.filename, + "columns": res.columns, "size": res.size_mb, "caption": res.caption, "mime_type": res.mime, From 60030c882f5cf54627c848f24eb8de6973354ac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 12:58:58 +0100 Subject: [PATCH 23/45] fixes --- snakemake/io.py | 15 ++++++++++++--- snakemake/report/__init__.py | 8 ++++---- .../template/components/abstract_results.js | 6 +++--- .../report/template/components/result_info.js | 15 ++++++--------- snakemake/rules.py | 1 + tests/test_report/Snakefile | 4 ++-- 6 files changed, 28 insertions(+), 21 deletions(-) diff --git a/snakemake/io.py b/snakemake/io.py index e8f7de4f6..42cefb40f 100755 --- a/snakemake/io.py +++ b/snakemake/io.py @@ -1080,12 +1080,19 @@ def checkpoint_target(value): ReportObject = collections.namedtuple( - "ReportObject", ["caption", "category", "subcategory", "columns", "patterns", "htmlindex"] + "ReportObject", + ["caption", "category", "subcategory", "columns", "patterns", "htmlindex"], ) def report( - value, caption=None, category=None, subcategory=None, columns=None, patterns=[], htmlindex=None + value, + caption=None, + category=None, + subcategory=None, + columns=None, + patterns=[], + htmlindex=None, ): """Flag output file or directory as to be included into reports. @@ -1094,7 +1101,9 @@ def report( Arguments value -- File or directory. caption -- Path to a .rst file with a textual description of the result. - category -- Name of the category in which the result should be displayed in the report. + category -- Name of the (optional) category in which the result should be displayed in the report. + subcategory -- Name of the (optional) subcategory + columns -- Dict of strings (may contain wildcard expressions) that will be used as columns when displaying result tables patterns -- Wildcard patterns for selecting files if a directory is given (this is used as input for snakemake.io.glob_wildcards). Pattern shall not include the path to the directory itself. diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 78a4abf5e..158d5b60b 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -590,14 +590,14 @@ def get_resource_as_string(path_or_uri): def expand_columns(columns, wildcards, job): if columns is None: return None - if not isinstance(columns, list) or not all( - isinstance(col, str) for col in columns + if not isinstance(columns, dict) or not all( + isinstance(col, str) for col in columns.values() ): raise WorkflowError( - "Expected list of strings as columns argument given to report flag.", + "Expected dict of strings as columns argument given to report flag.", rule=job.rule, ) - return [apply_wildcards(col, wildcards) for col in columns] + return {name: apply_wildcards(col, wildcards) for name, col in columns.items()} def auto_report(dag, path, stylesheet=None): diff --git a/snakemake/report/template/components/abstract_results.js b/snakemake/report/template/components/abstract_results.js index 7747f96c3..6d2d55c5f 100644 --- a/snakemake/report/template/components/abstract_results.js +++ b/snakemake/report/template/components/abstract_results.js @@ -39,12 +39,12 @@ class AbstractResults extends React.Component { } getColumns() { - return Array.from(new Set(this.getResults().map(function ([path, result]) { Object.keys(result.columns) }).flat())).sort(); + return Array.from(new Set(this.getResults().map(function ([path, result]) { return Object.keys(result.columns) }).flat())).sort(); } isColumnBased() { return this.getResults().every(function ([path, result]) { - "columns" in result + return result.columns; }); } @@ -56,7 +56,7 @@ class AbstractResults extends React.Component { this.getColumns().map(function (column) { return e( "th", - { className: "text-left p-1" }, + { className: "text-left p-1 uppercase" }, column ) }), diff --git a/snakemake/report/template/components/result_info.js b/snakemake/report/template/components/result_info.js index 637109f60..c467a3b58 100644 --- a/snakemake/report/template/components/result_info.js +++ b/snakemake/report/template/components/result_info.js @@ -20,18 +20,15 @@ class ResultInfo extends React.Component { getDescriptor() { let result = this.getResult(); - if (result.columns !== undefined) { + if (result.columns) { const columns = Object.keys(result.columns).sort(); return [ - e( - ListHeading, - { text: "Result", key: "result" } - ), e( ListItem, + {}, e( "table", - {}, + { className: "table-auto text-white text-sm" }, e( "thead", {}, @@ -41,7 +38,7 @@ class ResultInfo extends React.Component { columns.map(function (column) { return e( "th", - {}, + { className: "text-left uppercase pr-2" }, column ); }) @@ -57,7 +54,7 @@ class ResultInfo extends React.Component { const value = result.columns[column]; return e( "td", - {}, + { className: "pr-2" }, value ); }) @@ -70,7 +67,7 @@ class ResultInfo extends React.Component { return [ e( ListHeading, - { text: "Result", key: "result" } + { text: "Path", key: "result" } ), e( ListItem, diff --git a/snakemake/rules.py b/snakemake/rules.py index 45730db1c..aa24b1eca 100644 --- a/snakemake/rules.py +++ b/snakemake/rules.py @@ -594,6 +594,7 @@ def _set_inoutput_item(self, item, output=False, name=None): self.workflow.current_basedir.join(report_obj.caption), report_obj.category, report_obj.subcategory, + report_obj.columns, report_obj.patterns, report_obj.htmlindex, ) diff --git a/tests/test_report/Snakefile b/tests/test_report/Snakefile index 91ba92e4c..f900b8682 100644 --- a/tests/test_report/Snakefile +++ b/tests/test_report/Snakefile @@ -23,7 +23,7 @@ rule a: input: expand("test.{i}.out", i=range(10)) output: - report("fig1.svg", caption="report/fig1.rst", category="Step 1") + report("fig1.svg", caption="report/fig1.rst", category="Step 1", columns={"type": "figure", "num": "1"}) shell: "sleep `shuf -i 1-3 -n 1`; cp data/fig1.svg {output}" @@ -32,7 +32,7 @@ rule b: input: expand("test.{i}.out", i=range(10)) output: - report("{model}.fig2.png", caption="report/fig2.rst", category="Step 2", subcategory="{model}") + report("{model}.fig2.png", caption="report/fig2.rst", category="Step 2", subcategory="{model}", columns={"type": "figure", "model": "{model}"}) shell: "sleep `shuf -i 1-3 -n 1`; cp data/fig2.png {output}" From cdb8af6a515f374a20782d664268bedba67b3088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 13:16:01 +0100 Subject: [PATCH 24/45] polish --- .../report/template/components/result_info.js | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/snakemake/report/template/components/result_info.js b/snakemake/report/template/components/result_info.js index c467a3b58..2119bb4e3 100644 --- a/snakemake/report/template/components/result_info.js +++ b/snakemake/report/template/components/result_info.js @@ -110,11 +110,27 @@ class ResultInfo extends React.Component { ), e( ListItem, - { key: "rulename", className: "" }, + { key: "rulename" }, e( - "a", - { type: "button", href: "#", className: "p-1 transition-all hover:text-emerald-500 rounded hover:bg-slate-800", onClick: () => setView({ navbarMode: "ruleinfo", ruleinfo: rule }) }, - rule + "span", + { className: "flex items-center gap-1" }, + [ + e( + "span", + {}, + rule + ), + e( + "a", + { + type: "button", + href: "#", + className: `transition-all inline-block p-1 text-emerald-500 rounded hover:bg-slate-800`, + onClick: () => setView({ navbarMode: "ruleinfo", ruleinfo: rule }) + }, + e(Icon, { iconName: "information-circle" }) + ) + ] ) ) ] From 4928be9d145c163e2a2044e35299c6e76b1cfeda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 13:55:50 +0100 Subject: [PATCH 25/45] allow input functions for report category, subcategory, and columns --- snakemake/common/__init__.py | 10 ++++++++++ snakemake/report/__init__.py | 37 +++++++++++++++++++++++++++++------- snakemake/rules.py | 18 ++++++++++++------ tests/test_report/Snakefile | 4 ++-- 4 files changed, 54 insertions(+), 15 deletions(-) diff --git a/snakemake/common/__init__.py b/snakemake/common/__init__.py index 2cde9d810..852abd70d 100644 --- a/snakemake/common/__init__.py +++ b/snakemake/common/__init__.py @@ -257,3 +257,13 @@ class Gather: """A namespace for gather to allow items to be accessed via dot notation.""" pass + + +def get_function_params(func): + return inspect.signature(func).parameters + + +def get_input_function_aux_params(func, candidate_params): + func_params = get_function_params(func) + + return {k: v for k, v in candidate_params.items() if k in func_params} diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 158d5b60b..fff69c2be 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -42,10 +42,15 @@ apply_wildcards, contains_wildcard, ) -from snakemake.exceptions import WorkflowError +from snakemake.exceptions import InputFunctionException, WorkflowError from snakemake.script import Snakemake from snakemake import __version__ -from snakemake.common import is_local_file, num_if_possible, lazy_property +from snakemake.common import ( + get_input_function_aux_params, + is_local_file, + num_if_possible, + lazy_property, +) from snakemake import logging from snakemake.report import data @@ -204,6 +209,22 @@ def report( ) +def expand_report_argument(item, wildcards, job): + if is_callable(item): + aux_params = get_input_function_aux_params(item, {"params": job.params}) + try: + item = item(wildcards, **aux_params) + except Exception as e: + raise InputFunctionException(e, rule=job.rule, wildcards=wildcards) + if isinstance(item, str): + try: + return apply_wildcards(item, wildcards) + except AttributeError as e: + raise WorkflowError("Failed to resolve wildcards.", e, rule=job.rule) + else: + return item + + class Category: def __init__(self, name, wildcards, job): if name is None: @@ -211,10 +232,7 @@ def __init__(self, name, wildcards, job): self.is_other = True else: self.is_other = False - try: - name = apply_wildcards(name, wildcards) - except AttributeError as e: - raise WorkflowError("Failed to resolve wildcards.", e, rule=job.rule) + name = expand_report_argument(name, wildcards, job) self.name = name h = hashlib.sha256() h.update(name.encode()) @@ -590,6 +608,8 @@ def get_resource_as_string(path_or_uri): def expand_columns(columns, wildcards, job): if columns is None: return None + columns = expand_report_argument(columns, wildcards, job) + if not isinstance(columns, dict) or not all( isinstance(col, str) for col in columns.values() ): @@ -597,7 +617,10 @@ def expand_columns(columns, wildcards, job): "Expected dict of strings as columns argument given to report flag.", rule=job.rule, ) - return {name: apply_wildcards(col, wildcards) for name, col in columns.items()} + return { + name: expand_report_argument(col, wildcards, job) + for name, col in columns.items() + } def auto_report(dag, path, stylesheet=None): diff --git a/snakemake/rules.py b/snakemake/rules.py index aa24b1eca..2d9c8fbb0 100644 --- a/snakemake/rules.py +++ b/snakemake/rules.py @@ -55,7 +55,14 @@ IncompleteCheckpointException, ) from snakemake.logging import logger -from snakemake.common import Mode, ON_WINDOWS, lazy_property, TBDString +from snakemake.common import ( + Mode, + ON_WINDOWS, + get_function_params, + get_input_function_aux_params, + lazy_property, + TBDString, +) import snakemake.io @@ -720,18 +727,17 @@ def apply_input_function( func = func._file.callable elif isinstance(func, AnnotatedString): func = func.callable - sig = inspect.signature(func) - - _aux_params = {k: v for k, v in aux_params.items() if k in sig.parameters} - if "groupid" in sig.parameters: + if "groupid" in get_function_params(func): if groupid is not None: - _aux_params["groupid"] = groupid + aux_params["groupid"] = groupid else: # Return empty list of files and incomplete marker # the job will be reevaluated once groupids have been determined return [], True + _aux_params = get_input_function_aux_params(func, aux_params) + try: value = func(Wildcards(fromdict=wildcards), **_aux_params) except IncompleteCheckpointException as e: diff --git a/tests/test_report/Snakefile b/tests/test_report/Snakefile index f900b8682..c5960a38c 100644 --- a/tests/test_report/Snakefile +++ b/tests/test_report/Snakefile @@ -23,7 +23,7 @@ rule a: input: expand("test.{i}.out", i=range(10)) output: - report("fig1.svg", caption="report/fig1.rst", category="Step 1", columns={"type": "figure", "num": "1"}) + report("fig1.svg", caption="report/fig1.rst", category="Step 1", columns=lambda w, params: {"type": "figure", "num": "1"}) shell: "sleep `shuf -i 1-3 -n 1`; cp data/fig1.svg {output}" @@ -32,7 +32,7 @@ rule b: input: expand("test.{i}.out", i=range(10)) output: - report("{model}.fig2.png", caption="report/fig2.rst", category="Step 2", subcategory="{model}", columns={"type": "figure", "model": "{model}"}) + report("{model}.fig2.png", caption="report/fig2.rst", category=lambda w: "Step 2", subcategory="{model}", columns={"type": "figure", "model": "{model}"}) shell: "sleep `shuf -i 1-3 -n 1`; cp data/fig2.png {output}" From 079cf8dba56053cb159b2b15e68309c401c895b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 14:25:41 +0100 Subject: [PATCH 26/45] rename columns to labels --- snakemake/io.py | 6 ++-- snakemake/report/__init__.py | 22 ++++++------ snakemake/report/data/results.py | 2 +- .../template/components/abstract_results.js | 34 +++++++++---------- .../report/template/components/result_info.js | 12 +++---- snakemake/rules.py | 2 +- tests/test_report/Snakefile | 4 +-- 7 files changed, 41 insertions(+), 41 deletions(-) diff --git a/snakemake/io.py b/snakemake/io.py index 42cefb40f..d22086025 100755 --- a/snakemake/io.py +++ b/snakemake/io.py @@ -1081,7 +1081,7 @@ def checkpoint_target(value): ReportObject = collections.namedtuple( "ReportObject", - ["caption", "category", "subcategory", "columns", "patterns", "htmlindex"], + ["caption", "category", "subcategory", "labels", "patterns", "htmlindex"], ) @@ -1090,7 +1090,7 @@ def report( caption=None, category=None, subcategory=None, - columns=None, + labels=None, patterns=[], htmlindex=None, ): @@ -1111,7 +1111,7 @@ def report( return flag( value, "report", - ReportObject(caption, category, subcategory, columns, patterns, htmlindex), + ReportObject(caption, category, subcategory, labels, patterns, htmlindex), ) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index fff69c2be..dc0c7361d 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -418,9 +418,9 @@ def __init__( mode_embedded=True, aux_files=None, name_overwrite=None, - columns=None, + labels=None, ): - self.columns = columns + self.labels = labels self.name_overwrite = name_overwrite self.mode_embedded = mode_embedded self.path = path @@ -605,21 +605,21 @@ def get_resource_as_string(path_or_uri): ) -def expand_columns(columns, wildcards, job): - if columns is None: +def expand_labels(labels, wildcards, job): + if labels is None: return None - columns = expand_report_argument(columns, wildcards, job) + labels = expand_report_argument(labels, wildcards, job) - if not isinstance(columns, dict) or not all( - isinstance(col, str) for col in columns.values() + if not isinstance(labels, dict) or not all( + isinstance(col, str) for col in labels.values() ): raise WorkflowError( - "Expected dict of strings as columns argument given to report flag.", + "Expected dict of strings as labels argument given to report flag.", rule=job.rule, ) return { name: expand_report_argument(col, wildcards, job) - for name, col in columns.items() + for name, col in labels.items() } @@ -677,7 +677,7 @@ def register_file( subcategory = Category( report_obj.subcategory, wildcards=wildcards, job=job ) - columns = expand_columns(report_obj.columns, wildcards, job) + labels = expand_labels(report_obj.labels, wildcards, job) results[category][subcategory].append( FileRecord( @@ -691,7 +691,7 @@ def register_file( mode_embedded=mode_embedded, aux_files=aux_files, name_overwrite=name_overwrite, - columns=columns, + labels=labels, ) ) recorded_files.add(f) diff --git a/snakemake/report/data/results.py b/snakemake/report/data/results.py index 374cd370b..1cd4010fa 100644 --- a/snakemake/report/data/results.py +++ b/snakemake/report/data/results.py @@ -7,7 +7,7 @@ def render_results(results): res.path: { "name": res.name, "filename": res.filename, - "columns": res.columns, + "labels": res.labels, "size": res.size_mb, "caption": res.caption, "mime_type": res.mime, diff --git a/snakemake/report/template/components/abstract_results.js b/snakemake/report/template/components/abstract_results.js index 6d2d55c5f..ef5940435 100644 --- a/snakemake/report/template/components/abstract_results.js +++ b/snakemake/report/template/components/abstract_results.js @@ -38,26 +38,26 @@ class AbstractResults extends React.Component { throw new Error("Unimplemented!"); } - getColumns() { - return Array.from(new Set(this.getResults().map(function ([path, result]) { return Object.keys(result.columns) }).flat())).sort(); + getLabels() { + return Array.from(new Set(this.getResults().map(function ([path, result]) { return Object.keys(result.labels) }).flat())).sort(); } - isColumnBased() { + isLabelled() { return this.getResults().every(function ([path, result]) { - return result.columns; + return result.labels; }); } renderHeader() { - if (this.isColumnBased()) { + if (this.isLabelled()) { return e( "tr", {}, - this.getColumns().map(function (column) { + this.getLabels().map(function (label) { return e( "th", { className: "text-left p-1 uppercase" }, - column + label ) }), e( @@ -84,9 +84,9 @@ class AbstractResults extends React.Component { renderEntries() { let _this = this; - let columns = undefined; - if (this.isColumnBased()) { - columns = this.getColumns(); + let labels = undefined; + if (this.isLabelled()) { + labels = this.getLabels(); } return this.getResults().map(function ([path, entry]) { let actions = e( @@ -106,19 +106,19 @@ class AbstractResults extends React.Component { ) ); - let entryColumns = undefined; + let entryLabels = undefined; let key = undefined; - if (columns !== undefined) { - entryColumns = columns.map(function (column) { + if (labels !== undefined) { + entryLabels = labels.map(function (label) { return e( "td", { className: "p-1" }, - entry.columns[column] || "" + entry.labels[label] || "" ); }); - key = columns.join(); + key = labels.join(); } else { - entryColumns = e( + entryLabels = e( "td", { className: "p-1" }, path @@ -130,7 +130,7 @@ class AbstractResults extends React.Component { e( "tr", { key: key }, - entryColumns, + entryLabels, actions ) ]; diff --git a/snakemake/report/template/components/result_info.js b/snakemake/report/template/components/result_info.js index 2119bb4e3..6573d0491 100644 --- a/snakemake/report/template/components/result_info.js +++ b/snakemake/report/template/components/result_info.js @@ -20,8 +20,8 @@ class ResultInfo extends React.Component { getDescriptor() { let result = this.getResult(); - if (result.columns) { - const columns = Object.keys(result.columns).sort(); + if (result.labels) { + const labels = Object.keys(result.labels).sort(); return [ e( ListItem, @@ -35,11 +35,11 @@ class ResultInfo extends React.Component { e( "tr", {}, - columns.map(function (column) { + labels.map(function (label) { return e( "th", { className: "text-left uppercase pr-2" }, - column + label ); }) ) @@ -50,8 +50,8 @@ class ResultInfo extends React.Component { e( "tr", {}, - columns.map(function (column) { - const value = result.columns[column]; + labels.map(function (label) { + const value = result.labels[label]; return e( "td", { className: "pr-2" }, diff --git a/snakemake/rules.py b/snakemake/rules.py index 2d9c8fbb0..b647f249e 100644 --- a/snakemake/rules.py +++ b/snakemake/rules.py @@ -601,7 +601,7 @@ def _set_inoutput_item(self, item, output=False, name=None): self.workflow.current_basedir.join(report_obj.caption), report_obj.category, report_obj.subcategory, - report_obj.columns, + report_obj.labels, report_obj.patterns, report_obj.htmlindex, ) diff --git a/tests/test_report/Snakefile b/tests/test_report/Snakefile index c5960a38c..1b79ea4fc 100644 --- a/tests/test_report/Snakefile +++ b/tests/test_report/Snakefile @@ -23,7 +23,7 @@ rule a: input: expand("test.{i}.out", i=range(10)) output: - report("fig1.svg", caption="report/fig1.rst", category="Step 1", columns=lambda w, params: {"type": "figure", "num": "1"}) + report("fig1.svg", caption="report/fig1.rst", category="Step 1", labels=lambda w, params: {"type": "figure", "num": "1"}) shell: "sleep `shuf -i 1-3 -n 1`; cp data/fig1.svg {output}" @@ -32,7 +32,7 @@ rule b: input: expand("test.{i}.out", i=range(10)) output: - report("{model}.fig2.png", caption="report/fig2.rst", category=lambda w: "Step 2", subcategory="{model}", columns={"type": "figure", "model": "{model}"}) + report("{model}.fig2.png", caption="report/fig2.rst", category=lambda w: "Step 2", subcategory="{model}", labels={"type": "figure", "model": "{model}"}) shell: "sleep `shuf -i 1-3 -n 1`; cp data/fig2.png {output}" From 77f97c539339370fbee591877f651504ace7e532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 14:45:09 +0100 Subject: [PATCH 27/45] use chevron icon for breadcrumbs --- snakemake/report/template/components/breadcrumbs.js | 5 ++++- snakemake/report/template/components/icon.js | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/snakemake/report/template/components/breadcrumbs.js b/snakemake/report/template/components/breadcrumbs.js index 49c5c6d7f..abaf9f2ae 100644 --- a/snakemake/report/template/components/breadcrumbs.js +++ b/snakemake/report/template/components/breadcrumbs.js @@ -61,7 +61,10 @@ class Breadcrumbs extends React.Component { e( "li", { key: `sep-${index}` }, - "/" + e( + Icon, + { iconName: "chevron-right", className: "text-emerald-500" } + ) ) ]; } diff --git a/snakemake/report/template/components/icon.js b/snakemake/report/template/components/icon.js index dcb3086e9..d7302fa2f 100644 --- a/snakemake/report/template/components/icon.js +++ b/snakemake/report/template/components/icon.js @@ -3,6 +3,9 @@ class Icon extends React.Component { // paths are imported from https://heroicons.com paths = { + "chevron-right": [ + { rule: "evenodd", path: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" } + ] "menu": [ { rule: "evenodd", path: "M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" } ], From 824e0cbd83ea84bcb5b649f0f8b972da41d7e28c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 14:46:58 +0100 Subject: [PATCH 28/45] fix --- snakemake/report/template/components/icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakemake/report/template/components/icon.js b/snakemake/report/template/components/icon.js index d7302fa2f..240a029b1 100644 --- a/snakemake/report/template/components/icon.js +++ b/snakemake/report/template/components/icon.js @@ -5,7 +5,7 @@ class Icon extends React.Component { paths = { "chevron-right": [ { rule: "evenodd", path: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" } - ] + ], "menu": [ { rule: "evenodd", path: "M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" } ], From 7297c377695100041c51f91ccdac19686986ac36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 14:49:24 +0100 Subject: [PATCH 29/45] padding --- snakemake/report/template/components/content.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakemake/report/template/components/content.js b/snakemake/report/template/components/content.js index bd2605460..81007ff0a 100644 --- a/snakemake/report/template/components/content.js +++ b/snakemake/report/template/components/content.js @@ -10,7 +10,7 @@ class ContentDisplay extends React.Component { render() { return e( "div", - { className: "flex items-center justify-center min-h-screen z-0" }, + { className: "flex items-center justify-center min-h-screen z-0 p-3" }, this.renderContent() ) } From 727857750fd117b369994c1a8ee3d886e0c9cef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 15:39:38 +0100 Subject: [PATCH 30/45] overflow and code display polish --- snakemake/report/__init__.py | 13 +++++-------- snakemake/report/template/components/navbar.js | 2 +- .../report/template/components/rule_info.js | 18 ++++++++---------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index dc0c7361d..ce92390ec 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -325,14 +325,11 @@ def code(self): try: lexer = get_lexer_by_name(language) - highlighted = [ - highlight( - source, - lexer, - HtmlFormatter(linenos=True, cssclass="source", wrapcode=True), - ) - for source in sources - ] + highlighted = highlight( + "\n\n".join(sources), + lexer, + HtmlFormatter(linenos=True, cssclass="source", wrapcode=True), + ) return highlighted except pygments.util.ClassNotFound: diff --git a/snakemake/report/template/components/navbar.js b/snakemake/report/template/components/navbar.js index 19cda2d60..77a21f388 100644 --- a/snakemake/report/template/components/navbar.js +++ b/snakemake/report/template/components/navbar.js @@ -21,7 +21,7 @@ class Navbar extends React.Component { ), e( "nav", - { className: `fixed z-50 transition-all ${translateNavbar} ${this.getWidth()} min-w-fit text-white text-sm bg-slate-900/70 backdrop-blur-sm h-screen overflow-y-auto` }, + { className: `fixed z-50 transition-all ${translateNavbar} ${this.getWidth()} min-w-fit max-w-screen text-white text-sm bg-slate-900/70 backdrop-blur-sm h-screen overflow-auto` }, e( "h1", { className: "sticky bg-blur bg-white opacity-80 text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, diff --git a/snakemake/report/template/components/rule_info.js b/snakemake/report/template/components/rule_info.js index b43fb2c87..d2b942dac 100644 --- a/snakemake/report/template/components/rule_info.js +++ b/snakemake/report/template/components/rule_info.js @@ -43,16 +43,14 @@ class RuleInfo extends React.Component { ListHeading, { key: "code-heading", text: "Code" } ), - rule.code.map(function (block) { - return e( - ListItem, - { - key: "code", - className: "p-1", - dangerouslySetInnerHTML: { __html: block } - } - ) - }) + e( + ListItem, + { + key: "code", + className: "p-1", + dangerouslySetInnerHTML: { __html: rule.code } + } + ) ]; } else { return []; From 8be2830a582a915c8e34735ecd9f8d1c9827a86c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 16:49:30 +0100 Subject: [PATCH 31/45] scrolling fixes --- .../report/template/components/navbar.js | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/snakemake/report/template/components/navbar.js b/snakemake/report/template/components/navbar.js index 77a21f388..54e51af24 100644 --- a/snakemake/report/template/components/navbar.js +++ b/snakemake/report/template/components/navbar.js @@ -21,7 +21,7 @@ class Navbar extends React.Component { ), e( "nav", - { className: `fixed z-50 transition-all ${translateNavbar} ${this.getWidth()} min-w-fit max-w-screen text-white text-sm bg-slate-900/70 backdrop-blur-sm h-screen overflow-auto` }, + { className: `fixed z-50 transition-all ${translateNavbar} ${this.getWidth()} text-white text-sm bg-slate-900/70 backdrop-blur-sm h-screen` }, e( "h1", { className: "sticky bg-blur bg-white opacity-80 text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, @@ -41,11 +41,15 @@ class Navbar extends React.Component { ), this.getHideButton() ), - this.renderBreadcrumbs(), e( "div", - { className: "p-3" }, - this.renderContent() + { className: "overflow-auto" }, + this.renderBreadcrumbs(), + e( + "div", + { className: "p-3" }, + this.renderContent() + ) ) ) ]; @@ -220,11 +224,17 @@ class Navbar extends React.Component { getWidth() { switch (this.props.app.state.navbarMode) { case "menu": - return "w-1/5" + return "w-1/5 min-w-fit" case "category": - return "w-1/3" + case "subcategory": + case "searchresults": + return "w-1/4 min-w-fit" case "resultinfo": - return "w-3/4" + return "w-1/2" + case "ruleinfo": + return "w-1/2" + default: + return "w-1/5 min-w-fit" } } } \ No newline at end of file From 4beb587611584b67c9739c15892150c038a2d3a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 16:58:36 +0100 Subject: [PATCH 32/45] static tailwind --- snakemake/report/template/index.html.jinja2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakemake/report/template/index.html.jinja2 b/snakemake/report/template/index.html.jinja2 index a46ed8713..2f61878c2 100644 --- a/snakemake/report/template/index.html.jinja2 +++ b/snakemake/report/template/index.html.jinja2 @@ -9,7 +9,7 @@ Snakemake Report - + From b0df7972aedc661633548a0fa319f058c030eb27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 17:20:12 +0100 Subject: [PATCH 33/45] loading screen --- snakemake/report/template/index.html.jinja2 | 12 +++++++++++ snakemake/report/template/style.css | 22 +++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/snakemake/report/template/index.html.jinja2 b/snakemake/report/template/index.html.jinja2 index 2f61878c2..42851b970 100644 --- a/snakemake/report/template/index.html.jinja2 +++ b/snakemake/report/template/index.html.jinja2 @@ -20,6 +20,14 @@ +
+

Loading Snakemake Report...

+

Please enable Javascript in your browser to see this report.

+
+ +
@@ -79,6 +87,10 @@ + + \ No newline at end of file diff --git a/snakemake/report/template/style.css b/snakemake/report/template/style.css index dd63f225d..62cfb1d44 100644 --- a/snakemake/report/template/style.css +++ b/snakemake/report/template/style.css @@ -5,4 +5,26 @@ .source { background-color: transparent!important; +} + +#loading-screen { + background-color: white; + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 2000; + padding-top: 50vh; +} + +#loading-screen .animation { + animation: fadeinout 2.5s infinite; + text-align: center; + font-size: 200%; +} + +#loading-screen #jswarning { + text-align: center; + color: red; } \ No newline at end of file From e3246a668905d8a4076c54168fdfb40ecece7cbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 10 Mar 2022 17:29:13 +0100 Subject: [PATCH 34/45] fixes and cleanup --- snakemake/report/controller.js | 22 - snakemake/report/events.js | 3 - snakemake/report/logo.svg | 7 - snakemake/report/report.html.jinja2 | 705 -------------------- snakemake/report/style.css | 314 --------- snakemake/report/template/index.html.jinja2 | 2 +- snakemake/report/template/style.css | 16 +- 7 files changed, 15 insertions(+), 1054 deletions(-) delete mode 100644 snakemake/report/controller.js delete mode 100644 snakemake/report/events.js delete mode 100644 snakemake/report/logo.svg delete mode 100644 snakemake/report/report.html.jinja2 delete mode 100644 snakemake/report/style.css diff --git a/snakemake/report/controller.js b/snakemake/report/controller.js deleted file mode 100644 index 89b4e204b..000000000 --- a/snakemake/report/controller.js +++ /dev/null @@ -1,22 +0,0 @@ -sidebar_controller = { - collapsed: false, - content: "nav", - - toggle: function() { - if (this.collapsed) { - this.collapsed = false - $("#sidebar-content").show() - $("#show-hide-button svg").replaceWith(feather.icons["arrow-left"].toSvg()) - } else { - this.collapsed = true - $("#sidebar-content").hide() - $("#show-hide-button svg").replaceWith(feather.icons["arrow-right"].toSvg()) - } - }, - - show: function(content) { - $(`#${this.content}`).hide() - $(`#${content}`).show() - this.content = content - } -} \ No newline at end of file diff --git a/snakemake/report/events.js b/snakemake/report/events.js deleted file mode 100644 index 0099e3198..000000000 --- a/snakemake/report/events.js +++ /dev/null @@ -1,3 +0,0 @@ -$("#show-hide-button").click(function() { - sidebar_controller.toggle() -}) \ No newline at end of file diff --git a/snakemake/report/logo.svg b/snakemake/report/logo.svg deleted file mode 100644 index 8362455cd..000000000 --- a/snakemake/report/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/snakemake/report/report.html.jinja2 b/snakemake/report/report.html.jinja2 deleted file mode 100644 index 5cc9f99b3..000000000 --- a/snakemake/report/report.html.jinja2 +++ /dev/null @@ -1,705 +0,0 @@ - - - - - - - - - Snakemake Report - - - - - - - - - - - {% if custom_stylesheet is not none %} - - {% endif %} - - - -
-

Loading Snakemake Report...

-

Please enable Javascript in your browser to see this report.

- {% if mode_embedded %} -

Loading {{ results_size|filesizeformat }}. For large reports, this can take a while.

- {% endif %} -
- - - -
-
-
-
-
-
-
-
-
-
- - {% for cat, subcats in results|dictsort %} -
-

{{ cat.name }}

- {% for subcat, catresults in subcats|dictsort %} - {% if subcats|length > 1 or not subcat.is_other %} -

{{ subcat.name }}

- {% endif %} -
- {% if not loop.last %} -
- {% endif %} - {% endfor %} -
- {% endfor %} - -
-

Statistics

- If the workflow has been executed in cluster/cloud, runtimes include the waiting time in the queue. -
-
-
-
-
-
-
-
-
- - {% if configfiles %} -
-

Configuration

- - - - - - - - - - {% for configfile in configfiles %} - - - - - {% endfor %} - -
Configuration files
FileCode
{{ configfile.name }} - -
- {{ configfile.code()|safe }} -
-
-
- {% endif %} - -
-

Loading...

-
-
- - - - {% for rule in rules %} - - {% endfor %} -
-
- - - - - - - - - - - - - {% if mode_embedded %} - - {% endif %} - - - - - - - - - - - - diff --git a/snakemake/report/style.css b/snakemake/report/style.css deleted file mode 100644 index 4a899208d..000000000 --- a/snakemake/report/style.css +++ /dev/null @@ -1,314 +0,0 @@ -body { - font-size: .875rem; -} - -.feather { - width: 16px; - height: 16px; - vertical-align: text-bottom; -} - - -/* Sidebar */ - -.sidebar { - position: fixed; - top: 0; - bottom: 0; - left: 0; - z-index: 100; -} - -#sidebar-content { - display: flex; - flex-direction: column; - align-items: stretch; - padding-top: 15px; - padding-left: 0px; - padding-right: 0px; - height: 100vh; - transition: width 2s; -} - -.sidebar-background { - opacity: 80%; -} - -.sidebar #nav { - flex-grow: 1; - overflow-y: auto; -} - -.sidebar p { - margin-left: 15px; - margin-right: 15px; -} - -.sidebar #title { - letter-spacing: 0.1em; -} - -.sidebar #title #logo { - height: 1.5em; - margin: 1em; - vertical-align: middle; -} - -.sidebar .nav-link { - font-weight: 500; - color: white; -} - -.sidebar .nav-link:hover { - font-weight: 500; - color: black; - background-color: white; -} - -.sidebar-heading { - font-size: .75rem; - text-transform: uppercase; -} - -.sidebar #show-hide-container { - height: 100vh; - display: flex; - justify-content: center; - align-items: center; -} - -#show-hide-button { - padding-top: 3em; - padding-bottom: 3em; - border: 1px solid #343a40; -} - -#show-hide-button#hover { - color: black; - background-color: white!important; - border: 1px solid #343a40; -} - - -/* Content */ - -[role="main"] { - padding-top: 65px; - /* Space for fixed navbar */ -} - -*[id]:before { - display: block; - content: " "; - margin-top: -75px; - height: 75px; - visibility: hidden; -} - - -/* Navbar */ - -.navbar-brand { - padding-top: .75rem; - padding-bottom: .75rem; - font-size: 1rem; - font-weight: bold; - background-color: rgba(0, 0, 0, .25); - box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25); -} - -.navbar .form-control { - padding: .75rem 1rem; - border-width: 0; - border-radius: 0; -} - -.form-control-dark { - color: #fff; - background-color: rgba(255, 255, 255, .1); - border-color: rgba(255, 255, 255, .1); -} - -.form-control-dark:focus { - border-color: transparent; - box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); -} - - -/* Utilities */ - -.border-top { - border-top: 1px solid #e5e5e5; -} - -.border-bottom { - border-bottom: 1px solid #e5e5e5; -} - - -/* Snakemake specific */ - -.result img { - max-width: 100vw; -} - -.result .preview { - text-align: center; -} - -#rulegraph canvas { - display: block; - max-width: 100vw; - margin-left: auto; - margin-right: auto; -} - -@keyframes fadeinout { - 0% { - opacity: 1; - } - 50% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -#loading-screen { - background-color: white; - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 2000; - padding-top: 50vh; -} - -p.animation { - animation: fadeinout 2.5s infinite; - text-align: center; - font-size: 200%; -} - -#loading-screen p#info { - text-align: center; - color: grey; -} - -#loading-screen p#jswarning { - text-align: center; - color: red; -} - -#panel-loading-screen { - width: 100%; - height: 100%; - padding-top: 50vh; -} - -#panel-loading-sceen p.animation { - margin: auto; -} - -.vega-actions .btn { - font-size: 100%; -} - -.plot { - text-align: center; -} - -h6.sidebar-heading { - text-transform: none; -} - -.preview { - text-align: right; -} - -.ekko-lightbox-nav-overlay a span { - color: lightgrey; -} - -.navbar { - opacity: 0.8; -} - -.source { - background: none !important; - overflow-x: auto; - width: 100%; -} - -table.dataTable tbody tr.selected, -table.dataTable tbody th.selected, -table.dataTable tbody td.selected { - color: black; - font-weight: bold; -} - -table.dataTable tbody tr.selected td:first-of-type { - font-weight: bold; -} - -table.dataTable tbody tr.selected td { - border-top: 1px solid #007bff; - border-bottom: 1px solid #007bff; -} - -table.dataTable tbody>tr.selected, -table.dataTable tbody>tr>.selected { - background-color: transparent; -} - -table.dataTable tbody tr.selected a, -table.dataTable tbody th.selected a, -table.dataTable tbody td.selected a { - color: #007bff; -} - -table caption { - display: none; -} - -table.results-table { - width: 100%; - margin-bottom: 4em; -} - -.rule-property { - overflow-y: auto; - max-height: 10em; -} - -.panel { - display: none; -} - -.panel#workflow { - display: block; -} - -.ruletable th { - width: 1px; -} - -.rule-properties ul { - padding-left: 1.2em; -} - -#thumbnail-modal .modal-body { - overflow: auto; - text-align: center; -} - -.category pre { - max-width: 20vw; - max-height: 10vh; -} - -.modal-lg { - max-width: 95%; -} \ No newline at end of file diff --git a/snakemake/report/template/index.html.jinja2 b/snakemake/report/template/index.html.jinja2 index 42851b970..3c8f69015 100644 --- a/snakemake/report/template/index.html.jinja2 +++ b/snakemake/report/template/index.html.jinja2 @@ -21,7 +21,7 @@
-

Loading Snakemake Report...

+

Loading Snakemake Report...

Please enable Javascript in your browser to see this report.

+ + From bbe6fb9bb2e705d81d9e8e41d39aaf68c6c8b502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Fri, 11 Mar 2022 12:17:46 +0100 Subject: [PATCH 40/45] cleanup --- snakemake/report/template/categories.js | 21 --- snakemake/report/template/results.js | 94 ------------- snakemake/report/template/rulegraph.js | 142 -------------------- snakemake/report/template/rulegraph_spec.js | 142 -------------------- snakemake/report/template/rules.js | 20 --- snakemake/report/template/runtimes.js | 15 --- snakemake/report/template/timeline.js | 20 --- 7 files changed, 454 deletions(-) delete mode 100644 snakemake/report/template/categories.js delete mode 100644 snakemake/report/template/results.js delete mode 100644 snakemake/report/template/rulegraph.js delete mode 100644 snakemake/report/template/rulegraph_spec.js delete mode 100644 snakemake/report/template/rules.js delete mode 100644 snakemake/report/template/runtimes.js delete mode 100644 snakemake/report/template/timeline.js diff --git a/snakemake/report/template/categories.js b/snakemake/report/template/categories.js deleted file mode 100644 index c55585e14..000000000 --- a/snakemake/report/template/categories.js +++ /dev/null @@ -1,21 +0,0 @@ -var categories = { - "Foo": { - "Sub": [ - "testdir/1.txt", - "test.csv" - ], - "Other": [] - }, - "Bar": { - "Other": [ - "testdir/2.txt", - "testdir/3.txt" - ] - }, - "Other": { - "Other": [ - "fig1.svg", - "testmodel.fig2.png" - ] - } -} \ No newline at end of file diff --git a/snakemake/report/template/results.js b/snakemake/report/template/results.js deleted file mode 100644 index 92b9042bb..000000000 --- a/snakemake/report/template/results.js +++ /dev/null @@ -1,94 +0,0 @@ -var results = { - "testdir/1.txt": { - name: "1.txt", - filename: "1.txt", - path: "testdir/1.txt", - size: "2 Bytes", - caption: "

Files obtained from a directory. This file starts with 1. This value has been dynamically inferred from the given pattern.

\n", - job_properties: { - rule: "e", - wildcards: "name=1", - params: "" - }, - data_uri: function () { return "data:text/plain;charset=utf8;filename=1.txt;base64,MQo="; }, - thumbnail_uri: function () { return null; } - }, - "testdir/2.txt": { - name: "2.txt", - filename: "2.txt", - path: "testdir/2.txt", - size: "2 Bytes", - caption: "

Files obtained from a directory. This file starts with 2. This value has been dynamically inferred from the given pattern.

\n", - job_properties: { - rule: "e", - wildcards: "name=2", - params: "" - }, - data_uri: function () { return "data:text/plain;charset=utf8;filename=2.txt;base64,Mgo="; }, - thumbnail_uri: function () { return null; } - }, - "testdir/3.txt": { - name: "3.txt", - filename: "3.txt", - path: "testdir/3.txt", - size: "2 Bytes", - caption: "

Files obtained from a directory. This file starts with 3. This value has been dynamically inferred from the given pattern.

\n", - job_properties: { - rule: "e", - wildcards: "name=3", - params: "" - }, - data_uri: function () { return "data:text/plain;charset=utf8;filename=3.txt;base64,Mwo="; }, - thumbnail_uri: function () { return null; } - }, - "test.csv": { - name: "test.csv", - filename: "test.csv", - path: "test.csv", - size: "113.2 kB", - caption: "

An example table.

\n", - job_properties: { - rule: "d", - wildcards: "", - params: "" - }, - data_uri: function () { return "data:text/csv;charset=utf8;filename=test.csv;base64,c3RyZWV0LGNpdHksemlwLHN0YXRlLGJlZHMsYmF0aHMsc3FfX2Z0LHR5cGUsc2FsZV9kYXRlLHByaWNlLGxhdGl0dWRlLGxvbmdpdHVkZQ0zNTI2IEhJR0ggU1QsU0FDUkFNRU5UTyw5NTgzOCxDQSwyLDEsODM2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNTkyMjIsMzguNjMxOTEzLC0xMjEuNDM0ODc5DTUxIE9NQUhBIENULFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywxLDExNjcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw2ODIxMiwzOC40Nzg5MDIsLTEyMS40MzEwMjgNMjc5NiBCUkFOQ0ggU1QsU0FDUkFNRU5UTyw5NTgxNSxDQSwyLDEsNzk2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjg4ODAsMzguNjE4MzA1LC0xMjEuNDQzODM5DTI4MDUgSkFORVRURSBXQVksU0FDUkFNRU5UTyw5NTgxNSxDQSwyLDEsODUyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjkzMDcsMzguNjE2ODM1LC0xMjEuNDM5MTQ2DTYwMDEgTUNNQUhPTiBEUixTQUNSQU1FTlRPLDk1ODI0LENBLDIsMSw3OTcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw4MTkwMCwzOC41MTk0NywtMTIxLjQzNTc2OA01ODI4IFBFUFBFUk1JTEwgQ1QsU0FDUkFNRU5UTyw5NTg0MSxDQSwzLDEsMTEyMixDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDg5OTIxLDM4LjY2MjU5NSwtMTIxLjMyNzgxMw02MDQ4IE9HREVOIE5BU0ggV0FZLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywyLDExMDQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw5MDg5NSwzOC42ODE2NTksLTEyMS4zNTE3MDUNMjU2MSAxOVRIIEFWRSxTQUNSQU1FTlRPLDk1ODIwLENBLDMsMSwxMTc3LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsOTEwMDIsMzguNTM1MDkyLC0xMjEuNDgxMzY3DTExMTUwIFRSSU5JVFkgUklWRVIgRFIgVW5pdCAxMTQsUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMiwyLDk0MSxDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDk0OTA1LDM4LjYyMTE4OCwtMTIxLjI3MDU1NQ03MzI1IDEwVEggU1QsUklPIExJTkRBLDk1NjczLENBLDMsMiwxMTQ2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsOTg5MzcsMzguNzAwOTA5LC0xMjEuNDQyOTc5DTY0NSBNT1JSSVNPTiBBVkUsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsOTA5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTAwMzA5LDM4LjYzNzY2MywtMTIxLjQ1MTUyDTQwODUgRkFXTiBDSVIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTI4OSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEwNjI1MCwzOC40NzA3NDYsLTEyMS40NTg5MTgNMjkzMCBMQSBST1NBIFJELFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMSwxLDg3MSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEwNjg1MiwzOC42MTg2OTgsLTEyMS40MzU4MzMNMjExMyBLSVJLIFdBWSxTQUNSQU1FTlRPLDk1ODIyLENBLDMsMSwxMDIwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTA3NTAyLDM4LjQ4MjIxNSwtMTIxLjQ5MjYwMw00NTMzIExPQ0ggSEFWRU4gV0FZLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMiwyLDEwMjIsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMDg3NTAsMzguNjcyOTE0LC0xMjEuMzU5MzQNNzM0MCBIQU1ERU4gUEwsU0FDUkFNRU5UTyw5NTg0MixDQSwyLDIsMTEzNCxDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDExMDcwMCwzOC43MDAwNTEsLTEyMS4zNTEyNzgNNjcxNSA2VEggU1QsUklPIExJTkRBLDk1NjczLENBLDIsMSw4NDQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMTMyNjMsMzguNjg5NTkxLC0xMjEuNDUyMjM5DTYyMzYgTE9OR0ZPUkQgRFIgVW5pdCAxLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDIsMSw3OTUsQ29uZG8sV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMTYyNTAsMzguNjc5Nzc2LC0xMjEuMzE0MDg5DTI1MCBQRVJBTFRBIEFWRSxTQUNSQU1FTlRPLDk1ODMzLENBLDIsMSw1ODgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMjAwMDAsMzguNjEyMDk5LC0xMjEuNDY5MDk1DTExMyBMRUVXSUxMIEFWRSxSSU8gTElOREEsOTU2NzMsQ0EsMywyLDEzNTYsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMjE2MzAsMzguNjg5OTk5LC0xMjEuNDYzMjINNjExOCBTVE9ORUhBTkQgQVZFLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMTE4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTIyMDAwLDM4LjcwNzg1MSwtMTIxLjMyMDcwNw00ODgyIEJBTkRBTElOIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxMzI5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTIyNjgyLDM4LjQ2ODE3MywtMTIxLjQ0NDA3MQ03NTExIE9BS1ZBTEUgQ1QsTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDQsMiwxMjQwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTIzMDAwLDM4LjcwMjc5MiwtMTIxLjM4MjIxDTkgUEFTVFVSRSBDVCxTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNjAxLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTI0MTAwLDM4LjYyODYzMSwtMTIxLjQ4ODA5Nw0zNzI5IEJBSU5CUklER0UgRFIsTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMiw5MDEsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMjUwMDAsMzguNzAxNDk5LC0xMjEuMzc2MjINMzgyOCBCTEFDS0ZPT1QgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMDg4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTI2NjQwLDM4LjcwOTc0LC0xMjEuMzczNzcNNDEwOCBOT1JUT04gV0FZLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMywxLDk2MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEyNzI4MSwzOC41Mzc1MjYsLTEyMS40NzgzMTUNMTQ2OSBKQU5SSUNLIEFWRSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMiwxMTE5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTI5MDAwLDM4LjQ3NjQ3MiwtMTIxLjUwMTcxMQ05ODYxIENVTFAgV0FZLFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNCwyLDEzODAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxMzEyMDAsMzguNTU4NDIzLC0xMjEuMzI3OTQ4DTc4MjUgQ1JFRUsgVkFMTEVZIENJUixTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjQ4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTMyMDAwLDM4LjQ3MjEyMiwtMTIxLjQwNDE5OQ01MjAxIExBR1VOQSBPQUtTIERSIFVuaXQgMTQwLEVMSyBHUk9WRSw5NTc1OCxDQSwyLDIsMTAzOSxDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEzMzAwMCwzOC40MjMyNTEsLTEyMS40NDQ0ODkNNjc2OCBNRURPUkEgRFIsTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMiwxMTUyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTM0NTU1LDM4LjY5MTE2MSwtMTIxLjM3MTkyDTMxMDAgRVhQTE9SRVIgRFIsU0FDUkFNRU5UTyw5NTgyNyxDQSwzLDIsMTM4MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEzNjUwMCwzOC41NjY2NjMsLTEyMS4zMzI2NDQNNzk0NCBET01JTklPTiBXQVksRUxWRVJUQSw5NTYyNixDQSwzLDIsMTExNixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDEzODc1MCwzOC43MTMxODIsLTEyMS40MTEyMjcNNTIwMSBMQUdVTkEgT0FLUyBEUiBVbml0IDE2MixFTEsgR1JPVkUsOTU3NTgsQ0EsMiwyLDEwMzksQ29uZG8sV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNDEwMDAsMzguNDIzMjUxLC0xMjEuNDQ0NDg5DTM5MjAgU0hJTklORyBTVEFSIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MTgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNDYyNTAsMzguNDg3NDIsLTEyMS40NjI0NTkNNTAzMSBDT1JWQUlSIFNULE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDIsMTA4MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE0NzMwOCwzOC42NTgyNDYsLTEyMS4zNzU0NjkNNzY2MSBOSVhPUyBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTQ3MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE0ODc1MCwzOC40Nzk1NTMsLTEyMS40NjMzMTcNNzA0NCBDQVJUSFkgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDExNDYsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNDk1OTMsMzguNDk4NTcsLTEyMS40MjA5MjUNMjQ0MiBMQVJLU1BVUiBMTixTQUNSQU1FTlRPLDk1ODI1LENBLDEsMSw3NjAsQ29uZG8sV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNTg1MTQsLTEyMS40MDM3MzYNNDgwMCBXRVNUTEFLRSBQS1dZIFVuaXQgMjEwOSxTQUNSQU1FTlRPLDk1ODM1LENBLDIsMiwxMzA0LENvbmRvLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTUyMDAwLDM4LjY1ODgxMiwtMTIxLjU0MjM0NQ0yMTc4IDYzUkQgQVZFLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywyLDEyMDcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNTQwMDAsMzguNDkzOTU1LC0xMjEuNDg5NjYNODcxOCBFTEsgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSwzLDIsMTA1NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE1Njg5NiwzOC40MTY1MywtMTIxLjM3OTY1Mw01NzA4IFJJREdFUE9JTlQgRFIsQU5URUxPUEUsOTU4NDMsQ0EsMiwyLDEwNDMsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNjEyNTAsMzguNzIwMjcsLTEyMS4zMzE1NTUNNzMxNSBLT0FMQSBDVCxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsNCwyLDE1ODcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNjE1MDAsMzguNjk5MjUxLC0xMjEuMzcxNDE0DTI2MjIgRVJJTiBEUixTQUNSQU1FTlRPLDk1ODMzLENBLDQsMSwxMTIwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTY0MDAwLDM4LjYxMzc2NSwtMTIxLjQ4ODY5NA04NDIxIFNVTkJMQVpFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxNTgwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTY1MDAwLDM4LjQ1MDU0MywtMTIxLjQzMjUzOA03NDIwIEFMSVggUEtXWSxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMSwxOTU1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTY2MzU3LDM4LjQ4OTQwNSwtMTIxLjQ1MjgxMQ0zODIwIE5BVE9NQSBXQVksU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTY1NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE2NjM1NywzOC42MzY3NDgsLTEyMS40MjIxNTkNNDQzMSBHUkVFTiBUUkVFIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0NzcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNjgwMDAsMzguNDk5OTU0LC0xMjEuNDU0NDY5DTk0MTcgU0FSQSBTVCxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDExODgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNDE1NTE4LC0xMjEuMzcwNTI3DTgyOTkgSEFMQlJJVEUgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE1OTAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzMwMDAsMzguNDczODE0LC0xMjEuNA03MjIzIEtBTExJRSBLQVkgTE4sU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTQ2MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE3NDI1MCwzOC40Nzc1NTMsLTEyMS40MTk0NjMNODE1NiBTVEVJTkJFQ0sgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE3MTQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzQzMTMsMzguNDc0ODUzLC0xMjEuNDA2MzI2DTc5NTcgVkFMTEVZIEdSRUVOIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDExODUsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzg0ODAsMzguNDY1MTg0LC0xMjEuNDM0OTI1DTExMjIgV0lMRCBQT1BQWSBDVCxHQUxULDk1NjMyLENBLDMsMiwxNDA2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTc4NzYwLDM4LjI4Nzc4OSwtMTIxLjI5NDcxNQ00NTIwIEJPTUFSSyBXQVksU0FDUkFNRU5UTyw5NTg0MixDQSw0LDIsMTk0MyxNdWx0aS1GYW1pbHksV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxNzk1ODAsMzguNjY1NzI0LC0xMjEuMzU4NTc2DTkwMTIgS0lFRkVSIEJMVkQsU0FDUkFNRU5UTyw5NTgyNixDQSwzLDIsMTE3MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE4MTAwMCwzOC41NDcwMTEsLTEyMS4zNjYyMTcNNTMzMiBTQU5EU1RPTkUgU1QsQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDEsMTE1MixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE4MTg3MiwzOC42NjIxMDUsLTEyMS4zMTM5NDUNNTk5MyBTQVdZRVIgQ0lSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwzLDE4NTEsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODI1ODcsMzguNDQ3MywtMTIxLjQzNTIxOA00ODQ0IENMWURFQkFOSyBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDEyMTUsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODI3MTYsMzguNzE0NjA5LC0xMjEuMzQ3ODg3DTMwNiBDQU1FTExJQSBXQVksR0FMVCw5NTYzMixDQSwzLDIsMTEzMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDE4Mjc1MCwzOC4yNjA0NDMsLTEyMS4yOTc4NjQNOTAyMSBNQURJU09OIEFWRSxPUkFOR0VWQUxFLDk1NjYyLENBLDQsMiwxNjAzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTgzMjAwLDM4LjY2NDE4NiwtMTIxLjIxNzUxMQ00MDQgNlRIIFNULEdBTFQsOTU2MzIsQ0EsMywxLDE0NzksUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODg3NDEsMzguMjUxODA4LC0xMjEuMzAyNDkzDTgzMTcgU1VOTlkgQ1JFRUsgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MjAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxODkwMDAsMzguNDU5MDQxLC0xMjEuNDI0NjQ0DTI2MTcgQkFTUyBDVCxTQUNSQU1FTlRPLDk1ODI2LENBLDMsMiwxMjgwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTkyMDY3LDM4LjU2MDc2NywtMTIxLjM3NzQ3MQ03MDA1IFRJQU5UIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE1ODYsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwxOTQwMDAsMzguNDIyODExLC0xMjEuNDIzMjg1DTc4OTUgQ0FCRVIgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMzYyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk0ODE4LDM4LjcxMTI3OSwtMTIxLjM5MzQ0OQ03NjI0IEJPR0VZIENULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCw0LDIxNjIsTXVsdGktRmFtaWx5LFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk1MDAwLDM4LjQ4MDA5LC0xMjEuNDE1MTAyDTY5MzAgSEFNUFRPTiBDT1ZFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMjY2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk4MDAwLDM4LjQ0MDA0LC0xMjEuNDIxMDEyDTg3MDggTUVTQSBCUk9PSyBXQVksRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNzE1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMTk5NTAwLDM4LjQ0MDc2LC0xMjEuMzg1NzkyDTEyMCBHUkFOVCBMTixGT0xTT00sOTU2MzAsQ0EsMywyLDE4MjAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNjg3NzQyLC0xMjEuMTcxMDQNNTkwNyBFTExFUlNMRUUgRFIsQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDEsOTM2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjAwMDAwLDM4LjY2NDQ2OCwtMTIxLjMyNjgzDTE3IFNFUkFTUEkgQ1QsU0FDUkFNRU5UTyw5NTgzNCxDQSwwLDAsMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIwNjAwMCwzOC42MzE0ODEsLTEyMS41MDE4OA0xNzAgUEVOSE9XIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNTExLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjA4MDAwLDM4LjY1MzQzOSwtMTIxLjUzNTE2OQ04MzQ1IFNUQVIgVEhJU1RMRSBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTU5MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIxMjg2NCwzOC40NTQzNDksLTEyMS40MzkyMzkNOTA4MCBGUkVTQ0EgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTU5NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIyMTAwMCwzOC40Mjc4MTgsLTEyMS40MjQwMjYNMzkxIE5BVEFMSU5PIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDIsMiwxMzQxLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjIxMDAwLDM4LjY3MzA3LC0xMjEuNTA2MzczDTgzNzMgQkxBQ0tNQU4gV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw1LDMsMjEzNixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIyMzA1OCwzOC40MzU0MzYsLTEyMS4zOTQ1MzYNOTgzNyBDT1JURSBET1JBRE8gQ1QsRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNjE2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjI3ODg3LDM4LjQwMDY3NiwtMTIxLjM4MTAxDTUwMzcgSiBQS1dZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0NzgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyMzE0NzcsMzguNDkxMzk5LC0xMjEuNDQzNTQ3DTEwMjQ1IExPUyBQQUxPUyBEUixSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSwzLDIsMTI4NyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNDY5NywzOC41OTM2OTksLTEyMS4zMTA4OQ02NjEzIE5BVklPTiBEUixDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTI3NyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNTAwMCwzOC43MDI4NTUsLTEyMS4zMTMwOA0yODg3IEFaRVZFRE8gRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDIsMTQ0OCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNjAwMCwzOC42MTg0NTcsLTEyMS41MDk0MzkNOTE4NiBLSU5CUkFDRSBDVCxTQUNSQU1FTlRPLDk1ODI5LENBLDQsMywyMjM1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjM2Njg1LDM4LjQ2MzM1NSwtMTIxLjM1ODkzNg00MjQzIE1JRERMRUJVUlkgV0FZLE1BVEhFUiw5NTY1NSxDQSwzLDIsMjA5MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDIzNzgwMCwzOC41NDc5OTEsLTEyMS4yODA0ODMNMTAyOCBGQUxMT04gUExBQ0UgQ1QsUklPIExJTkRBLDk1NjczLENBLDMsMiwxMTkzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQwMTIyLDM4LjY5MzgxOCwtMTIxLjQ0MTE1Mw00ODA0IE5PUklLRVIgRFIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwyMTYzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQyNjM4LDM4LjQwMDk3NCwtMTIxLjQ0ODQyNA03NzEzIEhBUlZFU1QgV09PRFMgRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTI2OSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI0NDAwMCwzOC40NzgxOTgsLTEyMS40MTI5MTENMjg2NiBLQVJJVFNBIEFWRSxTQUNSQU1FTlRPLDk1ODMzLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQ0NTAwLDM4LjYyNjY3MSwtMTIxLjUyNTk3DTY5MTMgUklDSEVWRSBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDEsOTU4LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjQ0OTYwLDM4LjUwMjUxOSwtMTIxLjQyMDc2OQ04NjM2IFRFR0VBIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsNSwzLDI1MDgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNDU5MTgsMzguNDQzODMyLC0xMjEuMzgyMDg3DTU0NDggTUFJRFNUT05FIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTMwNSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1MDAwMCwzOC42NjUzOTUsLTEyMS4yOTMyODgNMTggT0xMSUUgQ1QsRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwxNTkxLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjUwMDAwLDM4LjQ0NDkwOSwtMTIxLjQxMjM0NQ00MDEwIEFMRVggTE4sQ0FSTUlDSEFFTCw5NTYwOCxDQSwyLDIsMTMyNixDb25kbyxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1MDEzNCwzOC42MzcwMjgsLTEyMS4zMTI5NjMNNDkwMSBNSUxMTkVSIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDE4NDMsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNTQyMDAsMzguMzg2OTIsLTEyMS40NDczNDkNNDgxOCBCUklUVE5FWSBMRUUgQ1QsU0FDUkFNRU5UTyw5NTg0MSxDQSw0LDIsMTkyMSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1NDIwMCwzOC42NTM5MTcsLTEyMS4zNDIxOA01NTI5IExBR1VOQSBQQVJLIERSLEVMSyBHUk9WRSw5NTc1OCxDQSw1LDMsMjc5MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI1ODAwMCwzOC40MjU2OCwtMTIxLjQzODA2Mg0yMzAgQ0FOREVMQSBDSVIsU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTU0MSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI2MDAwMCwzOC42NTYyNTEsLTEyMS41NDc1NzINNDkwMCA3MVNUIFNULFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMywxLDEwMTgsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNjAwMTQsMzguNTMxNTEsLTEyMS40MjEwODkNMTIyMDkgQ09OU0VSVkFOQ1kgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjYzNTAwLDM4LjU1Mzg2NywtMTIxLjIxOTE0MQ00MjM2IE5BVE9NQVMgQ0VOVFJBTCBEUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNjcyLENvbmRvLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjY1MDAwLDM4LjY0ODg3OSwtMTIxLjU0NDAyMw01NjE1IExVUElOIExOLFBPTExPQ0sgUElORVMsOTU3MjYsQ0EsMywyLDEzODAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwyNjUwMDAsMzguNzA4MzE1LC0xMjAuNjAzODcyDTU2MjUgSkFNRVMgV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDk3NSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI3MTc0MiwzOC41MjM5NDcsLTEyMS40ODQ5NDYNNzg0MiBMQUhPTlRBTiBDVCxTQUNSQU1FTlRPLDk1ODI5LENBLDQsMywyMzcyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjczNzUwLDM4LjQ3Mjk3NiwtMTIxLjMxODYzMw02ODUwIDIxU1QgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTQ0NixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI3NTA4NiwzOC41MDIxOTQsLTEyMS40OTA3OTUNMjkwMCBCTEFJUiBSRCxQT0xMT0NLIFBJTkVTLDk1NzI2LENBLDIsMiwxMjg0LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjgwOTA4LDM4Ljc1NDg1LC0xMjAuNjA0NzYNMjA2NCBFWFBFRElUSU9OIFdBWSxTQUNSQU1FTlRPLDk1ODMyLENBLDQsMywzMDA5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjgwOTg3LDM4LjQ3NDA5OSwtMTIxLjQ5MDcxMQ0yOTEyIE5PUkNBREUgQ0lSLFNBQ1JBTUVOVE8sOTU4MjYsQ0EsOCw0LDM2MTIsTXVsdGktRmFtaWx5LFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjgyNDAwLDM4LjU1OTUwNSwtMTIxLjM2NDgzOQ05NTA3IFNFQSBDTElGRiBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwyMDU2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjg1MDAwLDM4LjQxMDk5MiwtMTIxLjQ3OTA0Mw04ODgyIEFVVFVNTiBHT0xEIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMTk5MyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI4NzQxNywzOC40NDM5LC0xMjEuMzcyNTUNNTMyMiBXSElURSBMT1RVUyBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxODU3LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjkxMDAwLDM4LjM5MTUzOCwtMTIxLjQ0MjU5Ng0xODM4IENBU1RSTyBXQVksU0FDUkFNRU5UTyw5NTgxOCxDQSwyLDEsMTEyNixSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI5MjAyNCwzOC41NTYwOTgsLTEyMS40OTA3ODcNMTAxNTggQ1JBV0ZPUkQgV0FZLFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNCw0LDIyMTMsTXVsdGktRmFtaWx5LFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjk3MDAwLDM4LjU3MDMsLTEyMS4zMTU3MzUNNzczMSBNQVNURVJTIFNULEVMSyBHUk9WRSw5NTc1OCxDQSw1LDMsMjQ5NCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDI5NzAwMCwzOC40NDIwMzEsLTEyMS40MTA4NzMNNDkyNSBQRVJDSEVST04gRFIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxODQzLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjk4MDAwLDM4LjQwMTU0LC0xMjEuNDQ3NjQ5DTIwMTAgUFJPTU9OVE9SWSBQT0lOVCBMTixHT0xEIFJJVkVSLDk1NjcwLENBLDIsMiwxNTIwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMjk5MDAwLDM4LjYyODY5LC0xMjEuMjYxNjY5DTQ3MjcgU0FWT0lFIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDUsMywyODAwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzA0MDM3LDM4LjY1ODE4MiwtMTIxLjU0OTUyMQ04NjY0IE1BR05PTElBIEhJTEwgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMjMwOSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMxMTAwMCwzOC40NDIzNTIsLTEyMS4zODk2NzUNOTU3MCBIQVJWRVNUIFJPU0UgV0FZLFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNSwzLDIzNjcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzMTU1MzcsMzguNTU1OTkzLC0xMjEuMzQwMzUyDTQzNTkgQ1JFR0FOIENULFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDUsNCwzNTE2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzIwMDAwLDM4LjU0NTEyOCwtMTIxLjIyNDkyMg01MzM3IERVU1RZIFJPU0UgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzIwMDAwLDM4LjUyODU3NSwtMTIxLjIyODYNODkyOSBTVVRURVJTIEdPTEQgRFIsU0FDUkFNRU5UTyw5NTgyNixDQSw0LDMsMTkxNCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMyODM2MCwzOC41NTA4NDgsLTEyMS4zNzAyMjQNODAyNSBQRUVSTEVTUyBBVkUsT1JBTkdFVkFMRSw5NTY2MixDQSwyLDEsMTY5MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMzNDE1MCwzOC43MTE0NywtMTIxLjIxNjIxNA00NjIwIFdFTEVSQSBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMywyNzI1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzM1NzUwLDM4LjM5ODYwOSwtMTIxLjQ1MDE0OA05NzIzIFRFUlJBUElOIENULEVMSyBHUk9WRSw5NTc1NyxDQSw0LDMsMjM1NCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDMzNTc1MCwzOC40MDM0OTIsLTEyMS40MzAyMjQNMjExNSBTTU9LRVNUQUNLIFdBWSxTQUNSQU1FTlRPLDk1ODMzLENBLDAsMCwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzM5NTAwLDM4LjYwMjQxNiwtMTIxLjU0Mjk2NQ0xMDAgUkVCRUNDQSBXQVksRk9MU09NLDk1NjMwLENBLDMsMiwyMTg1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzQ0MjUwLDM4LjY4NDc5LC0xMjEuMTQ5MTk5DTk0ODggT0FLIFZJTExBR0UgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTgwMSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM0NjIxMCwzOC40MTMzMywtMTIxLjQwNDk5OQ04NDk1IERBUlRGT1JEIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywzLDE5NjEsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzNDcwMjksMzguNDQ4NTA3LC0xMjEuNDIxMzQ2DTY3MDggUE9OVEEgRE8gU09MIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNCwyLDMxMzQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzNDc2NTAsMzguMzgwNjM1LC0xMjEuNDI1NTM4DTQxNDMgU0VBIE1FQURPVyBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDMsMTkxNSxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM1MTMwMCwzOC40NjUzNCwtMTIxLjQ1NzUxOQ0zMDIwIFJJQ0hBUkRTT04gQ0lSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSwzLDIsMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM1MjAwMCwzOC42OTEyOTksLTEyMS4wODE3NTINODA4MiBMSU5EQSBJU0xFIExOLFNBQ1JBTUVOVE8sOTU4MzEsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzNzAwMDAsMzguNDc3MiwtMTIxLjUyMTUNMTUzMDAgTVVSSUVUQSBTT1VUSCBQS1dZLFJBTkNITyBNVVJJRVRBLDk1NjgzLENBLDQsMywyNzM0LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzcwNTAwLDM4LjQ4NzQsLTEyMS4wNzUxMjkNMTEyMTUgU0hBUlJNT05UIENULFdJTFRPTiw5NTY5MyxDQSwzLDIsMjExMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM3MjAwMCwzOC4zNTA2MiwtMTIxLjIyODM0OQ03MTA1IERBTkJFUkcgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSw1LDMsMzE2NCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM3NTAwMCwzOC40MDE5LC0xMjEuNDIwMzg4DTU1NzkgSkVSUlkgTElURUxMIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDUsMywzNTk5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzgxMzAwLDM4LjY3NzEyNiwtMTIxLjUwMDUxOQ0xMDUwIEZPWEhBTEwgV0FZLFNBQ1JBTUVOVE8sOTU4MzEsQ0EsNCwyLDIwNTQsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzODE5NDIsMzguNTA5ODE5LC0xMjEuNTE5NjYxDTc4MzcgQUJCSU5HVE9OIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSw0LDIsMTgzMCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM4NzczMSwzOC43MDk4NzMsLTEyMS4zMzk0NzINMTMwMCBGIFNULFNBQ1JBTUVOVE8sOTU4MTQsQ0EsMywzLDE2MjcsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCwzOTEwMDAsMzguNTgzNTUsLTEyMS40ODcyODkNNjgwMSBSQVdMRVkgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSw0LDMsMzQ0MCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDM5NDQ3MCwzOC40MDgzNTEsLTEyMS40MjM5MjUNMTY5MyBTSEVMVEVSIENPVkUgRFIsR1JFRU5XT09ELDk1NjM1LENBLDMsMiwyODQ2LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsMzk1MDAwLDM4Ljk0NTM1NywtMTIwLjkwODgyMg05MzYxIFdBRERFTEwgTE4sRUxLIEdST1ZFLDk1NjI0LENBLDQsMywyMzU5LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNDAwMTg2LDM4LjQ1MDgyOSwtMTIxLjM0OTkyOA0xMCBTRUEgRk9BTSBDVCxTQUNSQU1FTlRPLDk1ODMxLENBLDMsMywyMDUyLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNDE1MDAwLDM4LjQ4Nzg4NSwtMTIxLjU0NTk0Nw02OTQ1IFJJTyBURUpPIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNSwzLDM0MzMsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0MjUwMDAsMzguMzg1NjM4LC0xMjEuNDIyNjE2DTQxODYgVFVMSVAgUEFSSyBXQVksUkFOQ0hPIENPUkRPVkEsOTU3NDIsQ0EsNSwzLDM2MTUsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0MzAwMDAsMzguNTUwNjE3LC0xMjEuMjM1MjYNOTI3OCBEQUlSWSBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0NDUwMDAsMzguNDIwMzM4LC0xMjEuMzYzNzU3DTIwNyBPUkFOR0UgQkxPU1NPTSBDSVIgVW5pdCBDLEZPTFNPTSw5NTYzMCxDQSw1LDMsMjY4NyxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDQ2MDAwMCwzOC42NDYyNzMsLTEyMS4xNzUzMjINNjUwNyBSSU8gREUgT05BUiBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDQsMywyNzI0LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNDYxMDAwLDM4LjM4MjUzLC0xMjEuNDI4MDA3DTcwMDQgUkFXTEVZIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNCwzLDM0NDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw0ODkzMzIsMzguNDA2NDIxLC0xMjEuNDIyMDgxDTY1MDMgUklPIERFIE9OQVIgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSw1LDQsMzUwOCxSZXNpZGVudGlhbCxXZWQgTWF5IDIxIDAwOjAwOjAwIEVEVCAyMDA4LDUxMDAwMCwzOC4zODI1MywtMTIxLjQyODAzOA0yMjE3IEFQUEFMT09TQSBDVCxGT0xTT00sOTU2MzAsQ0EsNCwyLDI0NjIsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw1MzkwMDAsMzguNjU1MTY3LC0xMjEuMDkwMTc4DTg2OCBISUxERUJSQU5EIENJUixGT0xTT00sOTU2MzAsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsV2VkIE1heSAyMSAwMDowMDowMCBFRFQgMjAwOCw1ODUwMDAsMzguNjcwOTQ3LC0xMjEuMDk3NzI3DTYwMzAgUEFMRVJNTyBXQVksRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4LjY3Mjc2MSwtMTIxLjA1MDM3OA00MDcwIFJFRE9ORE8gRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjA2MjM4LDM4LjY2NjgwNywtMTIxLjA2NDgzDTQwMDQgQ1JFU1RBIFdBWSxTQUNSQU1FTlRPLDk1ODY0LENBLDMsMywyMzI1LFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsNjYwMDAwLDM4LjU5MTYxOCwtMTIxLjM3MDYyNg0zMTUgSlVNRUwgQ1QsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDYsNSwwLFJlc2lkZW50aWFsLFdlZCBNYXkgMjEgMDA6MDA6MDAgRURUIDIwMDgsODMwMDAwLDM4LjY2OTkzMSwtMTIxLjA1OTU4DTYyNzIgTE9OR0ZPUkQgRFIgVW5pdCAxLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDIsMSw3OTUsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2OTAwMCwzOC42ODA5MjMsLTEyMS4zMTM5NDUNMzQzMiBZIFNULFNBQ1JBTUVOVE8sOTU4MTcsQ0EsNCwyLDEwOTksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw3MDAwMCwzOC41NTQ5NjcsLTEyMS40NjgwNDYNOTUxMiBFTUVSQUxEIFBBUksgRFIgVW5pdCAzLEVMSyBHUk9WRSw5NTYyNCxDQSwyLDEsODQwLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNzEwMDAsMzguNDA1NzMsLTEyMS4zNjk4MzINMzEzMiBDTEFZIFNULFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDgwMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDc4MDAwLDM4LjYyNDY3OCwtMTIxLjQzOTIwMw01MjIxIDM4VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjQsQ0EsMiwxLDc0NixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDc4NDAwLDM4LjUxODA0NCwtMTIxLjQ0MzU1NQ02MTEyIEhFUk1PU0EgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDEsMTA2NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDgwMDAwLDM4LjUxNTEyNSwtMTIxLjQ4MDQxNg00ODMgQVJDQURFIEJMVkQsU0FDUkFNRU5UTyw5NTgxNSxDQSw0LDIsMTMxNixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDg5MDAwLDM4LjYyMzU3MSwtMTIxLjQ1NDg4NA02NzEgU09OT01BIEFWRSxTQUNSQU1FTlRPLDk1ODE1LENBLDMsMSwxMzM3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsOTAwMDAsMzguNjIyOTUzLC0xMjEuNDUwMTQyDTU5ODAgNzlUSCBTVCxTQUNSQU1FTlRPLDk1ODI0LENBLDIsMSw4NjgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5MDAwMCwzOC41MTgzNzMsLTEyMS40MTE3NzkNNzYwNyBFTERFUiBDUkVFSyBSRCxTQUNSQU1FTlRPLDk1ODI0LENBLDMsMSw5MjQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5MjAwMCwzOC41MTA1NSwtMTIxLjQxNDc2OA01MDI4IDE0VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDYxMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDkzNjc1LDM4LjUzOTQyLC0xMjEuNDQ2ODk0DTE0Nzg4IE5BVENIRVogQ1QsUkFOQ0hPIE1VUklFVEEsOTU2ODMsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5Nzc1MCwzOC40OTIyODcsLTEyMS4xMDAwMzINMTA2OSBBQ0FDSUEgQVZFLFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDEyMjAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw5ODAwMCwzOC42MjE5OTgsLTEyMS40NDIyMzgNNTIwMSBMQUdVTkEgT0FLUyBEUiBVbml0IDE5OSxFTEsgR1JPVkUsOTU3NTgsQ0EsMSwxLDcyMixDb25kbyxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDk4MDAwLDM4LjQyMzI1MSwtMTIxLjQ0NDQ4OQ0zODQ3IExBUyBQQVNBUyBXQVksU0FDUkFNRU5UTyw5NTg2NCxDQSwzLDEsMTY0MyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDk5MDAwLDM4LjU4ODY3MiwtMTIxLjM3MzkxNg01MjAxIExBR1VOQSBPQUtTIERSIFVuaXQgMTcyLEVMSyBHUk9WRSw5NTc1OCxDQSwxLDEsNzIyLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTAwMDAwLDM4LjQyMzI1MSwtMTIxLjQ0NDQ4OQ0xMTIxIENSRUVLU0lERSBXQVksR0FMVCw5NTYzMixDQSwzLDEsMTA4MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEwNjcxNiwzOC4yNDE1MTQsLTEyMS4zMTIxOTkNNTMwNyBDQUJSSUxMTyBXQVksU0FDUkFNRU5UTyw5NTgyMCxDQSwzLDEsMTAzOSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDExMTAwMCwzOC41MjcxMiwtMTIxLjQzNTM0OA0zNzI1IERPTiBKVUxJTyBCTFZELE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDEsMTA1MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDExMTAwMCwzOC42Nzg5NSwtMTIxLjM3OTQwNg00ODAzIE1DQ0xPVUQgRFIsU0FDUkFNRU5UTyw5NTg0MixDQSwyLDIsOTY3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTE0ODAwLDM4LjY4MjI3OSwtMTIxLjM1MjgxNw0xMDU0MiBTSUxWRVJXT09EIFdBWSxSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSwzLDEsMTA5OCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEyMDEwOCwzOC41ODcxNTYsLTEyMS4yOTU3NzgNNjMxOCAzOVRIIEFWRSxTQUNSQU1FTlRPLDk1ODI0LENBLDMsMSwxMDUwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTIzMjI1LDM4LjUxODk0MiwtMTIxLjQzMDE1OA0yMTEgTUNEQU5JRUwgQ0lSLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDExMTAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMjM3NTAsMzguNjM2NTY1LC0xMjEuNDYwMzgzDTM4MDAgTFlOSFVSU1QgV0FZLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDEsODg4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTI1MDAwLDM4LjY1MDQ0NSwtMTIxLjM3NDg2MQ02MTM5IEhFUk1PU0EgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTEyMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEyNTAwMCwzOC41MTQ2NjUsLTEyMS40ODA0MTENMjUwNSBSSElORSBXQVksRUxWRVJUQSw5NTYyNixDQSwzLDIsMTA4MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDEyNjAwMCwzOC43MTc5NzYsLTEyMS40MDc2ODQNMzY5MiBQQVlORSBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMSw5NTcsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMjkwMDAsMzguNjY2NTQsLTEyMS4zNzgyOTgNNjA0IE1PUlJJU09OIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDIsMSw5NTIsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMzQwMDAsMzguNjM3Njc4LC0xMjEuNDUyNDc2DTY0OCBTQU5UQSBBTkEgQVZFLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDEyMTEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMzUwMDAsMzguNjU4NDc4LC0xMjEuNDUwNDA5DTE0IEFTSExFWSBPQUtTIENULFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMywyLDEyNjQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxMzU1MDAsMzguNjE3NzksLTEyMS40MzY3NjUNMzE3NCBOT1JUSFZJRVcgRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSwzLDEsMTA4MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0MDAwMCwzOC42MjM4MTcsLTEyMS40Nzc4MjcNODQwIFRSQU5RVUlMIExOLEdBTFQsOTU2MzIsQ0EsMywyLDEyNjYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNDAwMDAsMzguMjcwNjE3LC0xMjEuMjk5MjA1DTUzMzMgUFJJTVJPU0UgRFIgVW5pdCAxOUEsRkFJUiBPQUtTLDk1NjI4LENBLDIsMiw5OTQsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNDI1MDAsMzguNjYyNzg1LC0xMjEuMjc2MjcyDTEwMzUgTUlMTEVUIFdBWSxTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxMjAyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTQzNTAwLDM4LjYzMTA1NiwtMTIxLjQ4NTA4DTUyMDEgTEFHVU5BIE9BS1MgRFIgVW5pdCAxMjYsRUxLIEdST1ZFLDk1NzU4LENBLDAsMCwwLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTQ1MDAwLDM4LjQyMzI1MSwtMTIxLjQ0NDQ4OQ0zMzI4IDIyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDcyMixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0NTAwMCwzOC41MzI3MjcsLTEyMS40NzA3ODMNODAwMSBIQVJUV0lDSyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSw0LDIsMTQ0OCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0NTAwMCwzOC40ODg2MjMsLTEyMS40MTA1ODINNzgxMiBIQVJUV0lDSyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTE4OCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0NTAwMCwzOC40ODg2MTEsLTEyMS40MTI4MDgNNDIwNyBQQUlOVEVSIFdBWSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsNCwyLDExODMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNDYwMDAsMzguNjkyOTE1LC0xMjEuMzY3NDk3DTc0NTggV0lOS0xFWSBXQVksU0FDUkFNRU5UTyw5NTgyMixDQSwzLDEsMTMyMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE0ODUwMCwzOC40ODc0NDQsLTEyMS40OTEzNjYNODM1NCBTVU5SSVNFIFdPT0RTIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMTE3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTQ5MDAwLDM4LjQ3MzI4OCwtMTIxLjM5NjMNODExNiBDT1RUT05NSUxMIENJUixTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMzY0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTUwMDAwLDM4LjQ4Mjg3NiwtMTIxLjQwNTkxMg00NjYwIENFREFSV09PRCBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTMxMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE1MDAwMCwzOC40ODQ4MzQsLTEyMS40NDkzMTYNOTI1NCBIQVJST0dBVEUgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSwyLDIsMTAwNixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE1MjAwMCwzOC40MjAxMzgsLTEyMS40MTIxNzkNNjcxNiBUQVJFWVRPTiBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywyLDExMDQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTYwMDAsMzguNjkzNzI0LC0xMjEuMzA3MTY5DTIwMjggUk9CRVJUIFdBWSxTQUNSQU1FTlRPLDk1ODI1LENBLDIsMSw4MTAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTYwMDAsMzguNjA5OTgyLC0xMjEuNDE5MjYzDTkzNDYgQUlaRU5CRVJHIENJUixFTEsgR1JPVkUsOTU2MjQsQ0EsMiwyLDExMjMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTYwMDAsMzguNDE4NzUsLTEyMS4zNzAwMTkNNDUyNCBMT0NIIEhBVkVOIFdBWSxTQUNSQU1FTlRPLDk1ODQyLENBLDIsMSw5MDQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNTc3ODgsMzguNjcyNzMsLTEyMS4zNTk2NDUNNzE0MCBCTFVFIFNQUklOR1MgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMTU2LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTYxNjUzLDM4LjcyMDY1MywtMTIxLjMwMjI0MQ00NjMxIDExVEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDEzMjEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNjE4MjksMzguNTQxOTY1LC0xMjEuNDUyMTMyDTMyMjggQkFHR0FOIENULEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMzkyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTY1MDAwLDM4LjcxNTM0NiwtMTIxLjM4ODE2Mw04NTE1IERBUlRGT1JEIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MzksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNjgwMDAsMzguNDQ4Mjg4LC0xMjEuNDIwNzE5DTQ1MDAgVElQUFdPT0QgV0FZLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywyLDExNTksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNjkwMDAsMzguNjk5NTEsLTEyMS4zNTk5ODkNMjQ2MCBFTCBST0NDTyBXQVksUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywyLDE2NzEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxNzUwMDAsMzguNTkxNDc3LC0xMjEuMzE1MzQNODI0NCBTVU5CSVJEIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxNzQwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTc2MjUwLDM4LjQ1NzY1NCwtMTIxLjQzMTM4MQ01ODQxIFZBTExFWSBWQUxFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMjY1LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTc5MDAwLDM4LjQ2MTI4MywtMTIxLjQzNDMyMg03ODYzIENSRVNUTEVJR0ggQ1QsQU5URUxPUEUsOTU4NDMsQ0EsMiwyLDEwMDcsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNzEwODg5LC0xMjEuMzU4ODc2DTcxMjkgU1BSSU5HTU9OVCBEUixFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE3MTYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxODA0MDAsMzguNDE3NjQ5LC0xMjEuNDIwMjk0DTgyODQgUkVEIEZPWCBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwxNjg1LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTgyMDAwLDM4LjQxNzE4MiwtMTIxLjM5NzIzMQ0yMjE5IEVMIENBTlRPIENJUixSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw0LDIsMTgyOSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDE4NDUwMCwzOC41OTIzODMsLTEyMS4zMTg2NjkNODkwNyBHRU1XT09EIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE1NTUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwxODUwMDAsMzguNDM1NDcxLC0xMjEuNDQxMTczDTU5MjUgTUFMRVZJTExFIEFWRSxDQVJNSUNIQUVMLDk1NjA4LENBLDQsMiwxMTIwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTg5MDAwLDM4LjY2NjU2NCwtMTIxLjMyNTcxNw03MDMxIENBTkVWQUxMRVkgQ0lSLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMTM3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTk0MDAwLDM4LjcxODY5MywtMTIxLjMwMzYxOQ0zOTQ5IFdJTERST1NFIFdBWSxTQUNSQU1FTlRPLDk1ODI2LENBLDMsMSwxMTc0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMTk1MDAwLDM4LjU0MzY5NywtMTIxLjM2NjY4Mw00NDM3IE1JVENIVU0gQ1QsQU5URUxPUEUsOTU4NDMsQ0EsMywyLDEzOTMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNzA0NDA3LC0xMjEuMzYxMTMNMjc3OCBLQVdFQUggQ1QsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDMsMSwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjAxMDAwLDM4LjY5NDA1MiwtMTIwLjk5NTU4OQ0xNjM2IEFMTEVOV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSw0LDIsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwMjUwMCwzOC44NzkxOTIsLTEyMS4zMDk0NzcNODE1MSBRVUFJTCBSSURHRSBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjg5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjA1MDAwLDM4LjQ2MTI5NiwtMTIxLjM5MDg1OA00ODk5IFdJTkQgQ1JFRUsgRFIsU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTc5OSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwNTAwMCwzOC42NTU4ODcsLTEyMS40NDYxMTkNMjM3MCBCSUcgQ0FOWU9OIENSRUVLIFJELFBMQUNFUlZJTExFLDk1NjY3LENBLDMsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjA1MDAwLDM4Ljc0NDU4LC0xMjAuNzk0MjU0DTYwNDkgSEFNQlVSRyBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDMsMTk1MyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwNTAwMCwzOC40NDMyNTMsLTEyMS40MzE5OTINNDIzMiA3MVNUIFNULFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDcyMyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIwNzAwMCwzOC41MzY3NDEsLTEyMS40MjExNQ0zMzYxIEJPVyBNQVIgQ1QsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDIsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjEwMDAwLDM4LjY5NDM3LC0xMjAuOTk2NjAyDTE4ODkgQ09MRCBTUFJJTkdTIFJELFBMQUNFUlZJTExFLDk1NjY3LENBLDIsMSw5NDgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMTE1MDAsMzguNzM5Nzc0LC0xMjAuODYwMjQzDTU4MDUgSElNQUxBWUEgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDQsMiwxNTc4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjY5NjQ4OSwtMTIxLjMyODU1NQ03OTQ0IFNZTFZBTiBPQUsgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjEwLENBLDMsMiwxMzE3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjcxMDM4OCwtMTIxLjI2MTA5Ng0zMTM5IFNQT09OV09PRCBXQVkgVW5pdCAxLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMTU1MDAsMzguNjI2NTgyLC0xMjEuNTIxNTENNjIxNyBMRU9MQSBXQVksU0FDUkFNRU5UTyw5NTgyNCxDQSwzLDEsMTM2MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIyMjM4MSwzOC41MTMwNjYsLTEyMS40NTE5MDkNMjM0MCBIVVJMRVkgV0FZLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMCwwLDAsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMjUwMDAsMzguNTg4ODE2LC0xMjEuNDA4NTQ5DTMwMzUgQlJVTk5FVCBMTixTQUNSQU1FTlRPLDk1ODMzLENBLDMsMiwxNTIyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjYyNDc2MiwtMTIxLjUyMjc3NQ0zMDI1IEVMIFBSQURPIFdBWSxTQUNSQU1FTlRPLDk1ODI1LENBLDQsMiwxNzUxLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjYwNjYwMywtMTIxLjM5NDE0Nw05Mzg3IEdSQU5JVEUgRkFMTFMgQ1QsRUxLIEdST1ZFLDk1NjI0LENBLDMsMiwxNDY1LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjQxOTIxNCwtMTIxLjM0ODUzMw05MjU3IENBTERFUkEgV0FZLFNBQ1JBTUVOVE8sOTU4MjYsQ0EsNCwyLDE2MDUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMjgwMDAsMzguNTU4MjEsLTEyMS4zNTUwMjINNDQxIEFSTElOR0RBTEUgQ0lSLFJJTyBMSU5EQSw5NTY3MyxDQSw0LDIsMTQ3NSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIyOTY2NSwzOC43MDI4OTMsLTEyMS40NTQ5NDkNMjI4NCBMT1MgUk9CTEVTIFJELE1FQURPVyBWSVNUQSw5NTcyMixDQSwzLDEsMTIxNixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDIzMDAwMCwzOS4wMDgxNTksLTEyMS4wMzYyMw04MTY0IENIRU5JTiBCTEFOQyBMTixGQUlSIE9BS1MsOTU2MjgsQ0EsMiwyLDEzMTUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMzAwMDAsMzguNjY1NjQ0LC0xMjEuMjU5OTY5DTQ2MjAgQ0hBTUJFUkxJTiBDSVIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxNTY3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjMwMDAwLDM4LjM5MDU1NywtMTIxLjQ0OTgwNQ01MzQwIEJJUksgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE3NzYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMzQwMDAsMzguNjcyNDk1LC0xMjEuNTE1MjUxDTUxIEFOSk9VIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDMsMiwyMTg3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjM1MDAwLDM4LjY2MTY1OCwtMTIxLjU0MDYzMw0yMTI1IDIyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDEyOTEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyMzYyNTAsMzguNTM0NTk2LC0xMjEuNDkzMTIxDTYxMSBCTE9TU09NIFJPQ0sgTE4sRk9MU09NLDk1NjMwLENBLDAsMCwwLENvbmRvLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjQwMDAwLDM4LjY0NTcsLTEyMS4xMTk3DTg4MzAgQURVUiBSRCxFTEsgR1JPVkUsOTU2MjQsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNDIwMDAsMzguNDM3NDIsLTEyMS4zNzI4NzYNNzM0NCBCVVRURVJCQUxMIFdBWSxTQUNSQU1FTlRPLDk1ODQyLENBLDMsMiwxNTAzLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjQ1MDAwLDM4LjY5OTQ4OSwtMTIxLjM2MTgyOA04MjE5IEdXSU5IVVJTVCBDSVIsU0FDUkFNRU5UTyw5NTgyOCxDQSw0LDMsMjQ5MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI0NTAwMCwzOC40NTk3MTEsLTEyMS4zODQyODMNMzI0MCBTIFNULFNBQ1JBTUVOVE8sOTU4MTYsQ0EsMiwxLDEyNjksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNDUwMDAsMzguNTYyMjk2LC0xMjEuNDY3NDg5DTIyMSBQSUNBU1NPIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDAsMCwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjUwMDAwLDM4LjY3NjY1OCwtMTIxLjUyODEyOA01NzA2IEdSRUVOQUNSRVMgV0FZLE9SQU5HRVZBTEUsOTU2NjIsQ0EsMywyLDExNzYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTAwMDAsMzguNjY5ODgyLC0xMjEuMjEzNTMzDTY5MDAgTE9OSUNFUkEgRFIsT1JBTkdFVkFMRSw5NTY2MixDQSw0LDIsMTQ1NixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI1MDAwMCwzOC42OTIxOTksLTEyMS4yNTA5NzUNNDE5IERBV05SSURHRSBSRCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDE0OTgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTAwMDAsMzguNzI1MjgzLC0xMjEuMjk3OTUzDTUzMTIgTUFSQlVSWSBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDE1NzQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTUwMDAsMzguNzEwMjIxLC0xMjEuMzQxNjUxDTYzNDQgQk9OSEFNIENJUixDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSw1LDQsMjA4NSxNdWx0aS1GYW1pbHksVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNTYwNTQsMzguNjgyMzU4LC0xMjEuMjcyODc2DTgyMDcgWU9SS1RPTiBXQVksU0FDUkFNRU5UTyw5NTgyOSxDQSwzLDIsMjE3MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI1NzcyOSwzOC40NTk2NywtMTIxLjM2MDQ2MQ03OTIyIE1BTlNFTEwgV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTU5NSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI2MDAwMCwzOC40MDk2MzQsLTEyMS40MTA3ODcNNTcxMiBNRUxCVVJZIENJUixBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTU2NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI2MTAwMCwzOC43MDU4NDksLTEyMS4zMzQ3MDENNjMyIE5FV0JSSURHRSBMTixMSU5DT0xOLDk1NjQ4LENBLDQsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjYxODAwLDM4Ljg3OTA4NCwtMTIxLjI5ODU4Ng0xNTcwIEdMSURERU4gQVZFLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsNCwyLDEyNTMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNjQ0NjksMzguNDgyNzA0LC0xMjEuNTAwNDMzDTgxMDggRklMSUZFUkEgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDQsMywxNzY4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjY1MDAwLDM4LjcxNzA0MiwtMTIxLjM1NDY4DTIzMCBCQU5LU0lERSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC42NzY5MzcsLTEyMS41MjkyNDQNNTM0MiBDQUxBQlJJQSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDMsMjAzMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC42NzE4MDcsLTEyMS40OTgyNzQNNDcgTkFQT05FRSBDVCxTQUNSQU1FTlRPLDk1ODM1LENBLDMsMiwxNTMxLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjcwMDAwLDM4LjY2NTcwNCwtMTIxLjUyOTA5Ng00MjM2IEFEUklBVElDIFNFQSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC42NDc5NjEsLTEyMS41NDMxNjINODg2NCBSRU1CUkFOVCBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsNCwzLDE2NTMsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNzUwMDAsMzguNDM1Mjg4LC0xMjEuMzc1NzAzDTk0NTUgU0VBIENMSUZGIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDIwNTYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyNzUwMDAsMzguNDExNTIyLC0xMjEuNDgxNDA2DTk3MjAgTElUVExFIEhBUkJPUiBXQVksRUxLIEdST1ZFLDk1NjI0LENBLDQsMywyNDk0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjgwMDAwLDM4LjQwNDkzNCwtMTIxLjM1MjQwNQ04ODA2IFBIT0VOSVggQVZFLEZBSVIgT0FLUyw5NTYyOCxDQSwzLDIsMTQ1MCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDI4NjAxMywzOC42NjAzMjIsLTEyMS4yMzAxMDENMzU3OCBMT0dHRVJIRUFEIFdBWSxTQUNSQU1FTlRPLDk1ODM0LENBLDQsMiwyMTY5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjkyMDAwLDM4LjYzMzAyOCwtMTIxLjUyNjc1NQ0xNDE2IExPQ0tIQVJUIFdBWSxST1NFVklMTEUsOTU3NDcsQ0EsMywyLDE0NDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTIwMDAsMzguNzUyMzk5LC0xMjEuMzMwMzI4DTU0MTMgQlVFTkEgVkVOVFVSQSBXQVksRkFJUiBPQUtTLDk1NjI4LENBLDMsMiwxNTI3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMjkzOTkzLDM4LjY2NDU1MiwtMTIxLjI1NTkzNw0zNyBXSElURSBCSVJDSCBDVCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDE0MDEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTQwMDAsMzguNzc2MzI3LC0xMjEuMjg0NTE0DTQwNSBNQVJMSU4gU1BJS0UgV0FZLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDE0MTEsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTY3NjksMzguNjU3ODMsLTEyMS40NTY4NDINMTEwMiBDSEVTTEVZIExOLExJTkNPTE4sOTU2NDgsQ0EsNCw0LDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwyOTc1MDAsMzguODY0ODY0LC0xMjEuMzEzOTg4DTExMjgxIFNUQU5GT1JEIENPVVJUIExOIFVuaXQgNjA0LEdPTEQgUklWRVIsOTU2NzAsQ0EsMCwwLDAsQ29uZG8sVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMDAwMDAsMzguNjI1Mjg5LC0xMjEuMjYwMjg2DTczMjAgNlRIIFNULFJJTyBMSU5EQSw5NTY3MyxDQSwzLDEsMTI4NCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMwMDAwMCwzOC43MDA1NTMsLTEyMS40NTIyMjMNOTkzIE1BTlRPTiBDVCxHQUxULDk1NjMyLENBLDQsMywyMzA3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjI3Mjk0MiwtMTIxLjI4OTE0OA00NDg3IFBBTk9SQU1BIERSLFBMQUNFUlZJTExFLDk1NjY3LENBLDMsMiwxMzI5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjY5NDU1OSwtMTIwLjg0ODE1Nw01NjUxIE9WRVJMRUFGIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwxOTEwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzAwNTAwLDM4LjY3NzQ1NCwtMTIxLjQ5NDc5MQ0yMDE1IFBST01PTlRPUlkgUE9JTlQgTE4sR09MRCBSSVZFUiw5NTY3MCxDQSwzLDIsMTk4MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMwNTAwMCwzOC42Mjg3MzIsLTEyMS4yNjExNDkNMzIyNCBQQVJLSEFNIERSLFJPU0VWSUxMRSw5NTc0NyxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMwNjUwMCwzOC43NzI3NzEsLTEyMS4zNjQ4NzcNMTUgVkFORVNTQSBQTCxTQUNSQU1FTlRPLDk1ODM1LENBLDAsMCwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzEyNTAwLDM4LjY2ODY5MiwtMTIxLjU0NTQ5DTEzMTIgUkVOSVNPTiBMTixMSU5DT0xOLDk1NjQ4LENBLDUsMywwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4Ljg2NjQwOSwtMTIxLjMwODQ4NQ04IFJJVkVSIFJBRlQgQ1QsU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMjIwNSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMxOTc4OSwzOC40NDczNTMsLTEyMS40MzQ5NjkNMjI1MSBMQU1QTElHSFQgTE4sTElOQ09MTiw5NTY0OCxDQSwyLDIsMTQ0OSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMzMDAwMCwzOC44NDk5MjQsLTEyMS4yNzU3MjkNMTA2IEZBUkhBTSBEUixGT0xTT00sOTU2MzAsQ0EsMywyLDEyNTgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzAwMDAsMzguNjY3ODM0LC0xMjEuMTY4NTc4DTU0MDUgTkVDVEFSIENJUixFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDI1NzUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzEwMDAsMzguMzg3MDE0LC0xMjEuNDQwOTY3DTU0MTEgMTBUSCBBVkUsU0FDUkFNRU5UTyw5NTgyMCxDQSwyLDEsNTM5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzM0MDAwLDM4LjU0MjcyNywtMTIxLjQ0MjQ0OQ0zNTEyIFJBSU5TT05HIENJUixSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw0LDMsMjIwOCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDMzNjAwMCwzOC41NzM0ODgsLTEyMS4yODI4MDkNMTEwNiA1NVRIIFNULFNBQ1JBTUVOVE8sOTU4MTksQ0EsMywxLDExMDgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzkwMDAsMzguNTYzODA1LC0xMjEuNDM2Mzk1DTQxMSBJTExTTEVZIFdBWSxGT0xTT00sOTU2MzAsQ0EsNCwyLDE1OTUsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzMzkwMDAsMzguNjUyMDAyLC0xMjEuMTI5NTA0DTc5NiBCVVRURVJDVVAgQ0lSLEdBTFQsOTU2MzIsQ0EsNCwyLDIxNTksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzNDUwMDAsMzguMjc5NTgxLC0xMjEuMzAwODI4DTEyMzAgU0FORFJBIENJUixQTEFDRVJWSUxMRSw5NTY2NyxDQSw0LDMsMjI5NSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDM1MDAwMCwzOC43MzgxNDEsLTEyMC43ODQxNDUNMzE4IEFOQUNBUEEgRFIsUk9TRVZJTExFLDk1Njc4LENBLDMsMiwxODM4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzU2MDAwLDM4Ljc4MjA5NCwtMTIxLjI5NzEzMw0zOTc1IFNISU5JTkcgU1RBUiBEUixTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxOTAwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzYxNzQ1LDM4LjQ4NzQwOSwtMTIxLjQ2MTQxMw0xNjIwIEJBU0xFUiBTVCxTQUNSQU1FTlRPLDk1ODExLENBLDQsMiwxNzE4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzYxOTQ4LDM4LjU5MTgyMiwtMTIxLjQ3ODY0NA05Njg4IE5BVFVSRSBUUkFJTCBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDUsMywzMzg5LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzcwMDAwLDM4LjQwNTIyNCwtMTIxLjQ3OTI3NQ01OTI0IFRBTlVTIENJUixST0NLTElOLDk1Njc3LENBLDQsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzgwMDAwLDM4Ljc3ODY5MSwtMTIxLjIwNDI5Mg05NjI5IENFREFSIE9BSyBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDUsNCwzMjYwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsMzg1MDAwLDM4LjQwNTUyNywtMTIxLjQzMTc0Ng0zNDI5IEZFUk5CUk9PSyBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsMywyLDIwMTYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCwzOTkwMDAsMzguNjY0MjI1LC0xMjEuMDA3MTczDTIxMjEgSEFOTkFIIFdBWSxST0NLTElOLDk1NzY1LENBLDQsMiwyNjA3LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDAyMDAwLDM4LjgwNTc0OSwtMTIxLjI4MDkzMQ0xMDEwNCBBTk5JRSBTVCxFTEsgR1JPVkUsOTU3NTcsQ0EsNCwzLDI3MjQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0MDYwMjYsMzguMzkwNDY1LC0xMjEuNDQzNDc5DTEwOTIgTUFVR0hBTSBDVCxHQUxULDk1NjMyLENBLDUsNCwzNzQ2LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDIwMDAwLDM4LjI3MTY0NiwtMTIxLjI4Njg0OA01NDA0IEFMTU9ORCBGQUxMUyBXQVksUkFOQ0hPIENPUkRPVkEsOTU3NDIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0MjUwMDAsMzguNTI3NTAyLC0xMjEuMjMzNDkyDTYzMDYgQ09ORUpPLFJBTkNITyBNVVJJRVRBLDk1NjgzLENBLDQsMiwzMTkyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDI1MDAwLDM4LjUxMjYwMiwtMTIxLjA4NzIzMw0xNCBDQVNBIFZBVE9OSSBQTCxTQUNSQU1FTlRPLDk1ODM0LENBLDAsMCwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDMzNTAwLDM4LjY1MDIyMSwtMTIxLjU1MTcwNA0xNDU2IEVBR0xFU0ZJRUxEIExOLExJTkNPTE4sOTU2NDgsQ0EsNCwzLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0MzY3NDYsMzguODU3NjM1LC0xMjEuMzExMzc1DTQxMDAgQk9USFdFTEwgQ0lSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw1LDMsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQzODcwMCwzOC42NzkxMzYsLTEyMS4wMzQzMjkNNDI3IDIxU1QgU1QsU0FDUkFNRU5UTyw5NTgxMSxDQSwyLDEsMTI0NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ0NTAwMCwzOC41ODI2MDQsLTEyMS40NzU3Ng0xMDQ0IEdBTFNUT04gRFIsRk9MU09NLDk1NjMwLENBLDQsMiwyNTgxLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDUwMDAwLDM4LjY3NjMwNiwtMTIxLjA5OTU0DTQ0NDAgU1lDQU1PUkUgQVZFLFNBQ1JBTUVOVE8sOTU4NDEsQ0EsMywxLDIwNjgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0NjAwMDAsMzguNjQ2Mzc0LC0xMjEuMzUzNjU4DTEwMzIgU09VWkEgRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDMsMiwwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDYwMDAwLDM4LjY2ODIzOSwtMTIxLjA2NDQzNw05NzYwIExBWlVMSVRFIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDMsMzk5MixSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ2MDAwMCwzOC40MDM2MDksLTEyMS4zMzU1NDENMjQxIExBTkZSQU5DTyBDSVIsU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDQsMzM5NyxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ2NTAwMCwzOC42NjU2OTYsLTEyMS41NDk0MzcNNTU1OSBOT1JUSEJPUk9VR0ggRFIsU0FDUkFNRU5UTyw5NTgzNSxDQSw1LDMsMzg4MSxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDQ3MTc1MCwzOC42NzcyMjUsLTEyMS41MTk2ODcNMjEyNSBCSUcgU0tZIERSLFJPQ0tMSU4sOTU3NjUsQ0EsNSwzLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0ODAwMDAsMzguODAxNjM3LC0xMjEuMjc4Nzk4DTIxMDkgSEFNTEVUIFBMLENBUk1JQ0hBRUwsOTU2MDgsQ0EsMiwyLDE1OTgsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0ODQwMDAsMzguNjAyNzU0LC0xMjEuMzI5MzI2DTk5NzAgU1RBVEUgSElHSFdBWSAxOTMsUExBQ0VSVklMTEUsOTU2NjcsQ0EsNCwzLDE5MjksUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw0ODUwMDAsMzguNzg3ODc3LC0xMjAuODE2Njc2DTI5MDEgUElOVEFJTCBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDQsMywzMDcwLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNDk1MDAwLDM4LjM5ODQ4OCwtMTIxLjQ3MzQyNA0yMDEgRklSRVNUT05FIERSLFJPU0VWSUxMRSw5NTY3OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDUwMDUwMCwzOC43NzAxNTMsLTEyMS4zMDAwMzkNMTc0MCBISUdIIFNULEFVQlVSTiw5NTYwMyxDQSwzLDMsMCxSZXNpZGVudGlhbCxUdWUgTWF5IDIwIDAwOjAwOjAwIEVEVCAyMDA4LDUwNDAwMCwzOC44OTE5MzUsLTEyMS4wODQzNA0yNzMzIERBTkEgTE9PUCxFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw1NDEwMDAsMzguNjI4NDU5LC0xMjEuMDU1MDc4DTk3NDEgU0FERExFQlJFRCBDVCxXSUxUT04sOTU2OTMsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw1NjAwMDAsMzguNDA4ODQxLC0xMjEuMTk4MDM5DTc3NTYgVElHRVJXT09EUyBEUixTQUNSQU1FTlRPLDk1ODI5LENBLDUsMywzOTg0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNTcyNTAwLDM4LjQ3NjQzLC0xMjEuMzA5MjQzDTU3MDkgUklWRVIgT0FLIFdBWSxDQVJNSUNIQUVMLDk1NjA4LENBLDQsMiwyMjIyLFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNTgyMDAwLDM4LjYwMjQ2MSwtMTIxLjMzMDk3OQ0yOTgxIFdSSU5HRVIgRFIsUk9TRVZJTExFLDk1NjYxLENBLDQsMywzODM4LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsNjEzNDAxLDM4LjczNTM3MywtMTIxLjIyNzA3Mg04NjE2IFJPQ0tQT1JURSBDVCxST1NFVklMTEUsOTU3NDcsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2MTQwMDAsMzguNzQyMTE4LC0xMjEuMzU5OTA5DTQxMjggSElMTCBTVCxGQUlSIE9BS1MsOTU2MjgsQ0EsNSw1LDI4NDYsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2ODAwMDAsMzguNjQxNjcsLTEyMS4yNjIwOTkNMTQwOSA0N1RIIFNULFNBQ1JBTUVOVE8sOTU4MTksQ0EsNSwyLDI0ODQsUmVzaWRlbnRpYWwsVHVlIE1heSAyMCAwMDowMDowMCBFRFQgMjAwOCw2OTkwMDAsMzguNTYzMjQ0LC0xMjEuNDQ2ODc2DTM5MzUgRUwgTU9OVEUgRFIsTE9PTUlTLDk1NjUwLENBLDQsNCwxNjI0LFJlc2lkZW50aWFsLFR1ZSBNYXkgMjAgMDA6MDA6MDAgRURUIDIwMDgsODM5MDAwLDM4LjgxMzMzNywtMTIxLjEzMzM0OA01ODQwIFdBTEVSR0EgUkQsU0FDUkFNRU5UTyw5NTg0MixDQSwyLDEsODQwLENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDAwMDAsMzguNjczNjc4LC0xMjEuMzU3NDcxDTkyMyBGVUxUT04gQVZFLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMSwxLDQ4NCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4MDAwLDM4LjU4MjI3OSwtMTIxLjQwMTQ4Mg0yNjEgUkVET05ETyBBVkUsU0FDUkFNRU5UTyw5NTgxNSxDQSwzLDEsOTcwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjE1MDAsMzguNjIwNjg1LC0xMjEuNDYwNTM5DTQwMzAgQlJPQURXQVksU0FDUkFNRU5UTyw5NTgxNyxDQSwyLDEsNjIzLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjIwNTAsMzguNTQ2Nzk4LC0xMjEuNDYwMDM4DTM2NjAgMjJORCBBVkUsU0FDUkFNRU5UTyw5NTgyMCxDQSwyLDEsOTMyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjUwMDAsMzguNTMyNzE4LC0xMjEuNDY3NDcNMzkyNCBISUdIIFNULFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMiwxLDc5NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY1MDAwLDM4LjYzODc5NywtMTIxLjQzNTA0OQ00NzM0IDE0VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDgzNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY4MDAwLDM4LjUzOTQ0NywtMTIxLjQ1MDg1OA00NzM0IDE0VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDgzNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY4MDAwLDM4LjUzOTQ0NywtMTIxLjQ1MDg1OA01MDUwIFJIT0RFIElTTEFORCBEUiBVbml0IDQsU0FDUkFNRU5UTyw5NTg0MSxDQSwyLDEsOTI0LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNzcwMDAsMzguNjU4NzM5LC0xMjEuMzMzNTYxDTQ1MTMgR1JFRU5IT0xNRSBEUixTQUNSQU1FTlRPLDk1ODQyLENBLDIsMSw3OTUsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw4MjczMiwzOC42NjkxMDQsLTEyMS4zNTkwMDgNMzg0NSBFTE0gU1QsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDEsMTI1MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDg0MDAwLDM4LjYzNzMzNywtMTIxLjQzMjgzNQ0zOTA4IDE3VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDk4NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDg0Njc1LDM4LjUzNzI4LC0xMjEuNDYzNTMxDTcxMDkgQ0hBTkRMRVIgRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDEsMTAxMyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDg1MDAwLDM4LjQ5NzIzNywtMTIxLjQyNDE4Nw03NTQxIFNLRUxUT04gV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDEwMTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw5MDAwMCwzOC40ODQyNzQsLTEyMS40ODg4NTENOTA1OCBNT05UT1lBIFNULFNBQ1JBTUVOVE8sOTU4MjYsQ0EsMiwxLDc5NSxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDkwMDAwLDM4LjU1OTE0NCwtMTIxLjM2ODM4Nw0xMDE2IENPTkdSRVNTIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDIsMiw5MTgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw5MTAwMCwzOC42MzAxNTEsLTEyMS40NDI3ODkNNTQwIE1PUlJJU09OIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMSwxMDgyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsOTUwMDAsMzguNjM3NzA0LC0xMjEuNDUzOTQ2DTUzMDMgSkVSUkVUVCBXQVksU0FDUkFNRU5UTyw5NTg0MixDQSwyLDEsOTY0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsOTc1MDAsMzguNjYzMjgyLC0xMjEuMzU5NjMxDTI4MjAgREVMIFBBU08gQkxWRCxTQUNSQU1FTlRPLDk1ODE1LENBLDQsMiwxNDA0LE11bHRpLUZhbWlseSxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEwMDAwMCwzOC42MTc3MTgsLTEyMS40NDAwODkNMzcxNSBUQUxMWUhPIERSIFVuaXQgNzhISUdILFNBQ1JBTUVOVE8sOTU4MjYsQ0EsMSwxLDYyNSxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEwMDAwMCwzOC41NDQ2MjcsLTEyMS4zNTc5Ng02MDEzIFJPV0FOIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwyLDEsODg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTAxMDAwLDM4LjY3NTg5MywtMTIxLjI5NjMNMjk4NyBQT05ERVJPU0EgTE4sU0FDUkFNRU5UTyw5NTgxNSxDQSw0LDIsMTEyMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEwMjc1MCwzOC42MjIyNDMsLTEyMS40NTc4NjMNMzczMiBMQU5LRVJTSElNIFdBWSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywxLDEzMzEsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTI1MDAsMzguNjg5NzIsLTEyMS4zNzgzOTkNMjIxNiBEVU5MQVAgRFIsU0FDUkFNRU5UTyw5NTgyMSxDQSwzLDEsMTAxNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDExMzAwMCwzOC42MjM3MzgsLTEyMS40MTMwNQ0zNTAzIDIxU1QgQVZFLFNBQ1JBTUVOVE8sOTU4MjAsQ0EsNCwyLDE0NDgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTQwMDAsMzguNTMzNjEsLTEyMS40NjkzMDgNNTIzIEVYQ0hBTkdFIFNULFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywxLDk2NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDExNDAwMCwzOC42NTk0MTQsLTEyMS40NTQwOA04MTAxIFBPUlQgUk9ZQUxFIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDIsMSw3NzksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTQ3NTAsMzguNDYzOTI5LC0xMjEuNDM4NjY3DTgwMjAgV0FMRVJHQSBSRCxBTlRFTE9QRSw5NTg0MyxDQSwyLDIsODM2LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTE1MDAwLDM4LjcxNjA3LC0xMjEuMzY0NDY4DTE2NyBWQUxMRVkgT0FLIERSLFJPU0VWSUxMRSw5NTY3OCxDQSwyLDIsMTEwMCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDExNTAwMCwzOC43MzI0MjksLTEyMS4yODgwNjkNNzg3NiBCVVJMSU5HVE9OIFdBWSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMSwxMTc0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTE2MTAwLDM4LjQ3MDA5MywtMTIxLjQ2ODM0Nw0zNzI2IEpPTktPIEFWRSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywyLDEyMDcsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMTkyNTAsMzguNjU2MTMxLC0xMjEuMzc3MjY1DTczNDIgR0lHSSBQTCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsNCwxOTk1LE11bHRpLUZhbWlseSxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyMDAwMCwzOC40OTA3MDQsLTEyMS40MTAxNzYNMjYxMCBQSFlMTElTIEFWRSxTQUNSQU1FTlRPLDk1ODIwLENBLDIsMSw4MDQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjAwMDAsMzguNTMxMDUsLTEyMS40Nzk1NzQNNDIwMCBDT01NRVJDRSBXQVkgVW5pdCA3MTEsU0FDUkFNRU5UTyw5NTgzNCxDQSwyLDIsOTU4LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTIwMDAwLDM4LjY0NzUyMywtMTIxLjUyMzIxNw00NjIxIENPVU5UUlkgU0NFTkUgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEzNjYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjAxMDgsMzguNDcwMTg3LC0xMjEuNDQ4MTQ5DTUzODAgVklMTEFHRSBXT09EIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMiwyLDkwMSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyMTUwMCwzOC40NTQ5NDksLTEyMS40NDA1NzgNMjYyMSBFVkVSR1JFRU4gU1QsU0FDUkFNRU5UTyw5NTgxNSxDQSwzLDEsNjk2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTIxNzI1LDM4LjYxMzEwMywtMTIxLjQ0NDA4NQ0yMDEgQ0FSTE8gQ1QsR0FMVCw5NTYzMixDQSwzLDIsMTA4MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyMjAwMCwzOC4yNDIyNywtMTIxLjMxMDMyDTY3NDMgMjFTVCBTVCxTQUNSQU1FTlRPLDk1ODIyLENBLDMsMiwxMTA0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTIzMDAwLDM4LjUwMzcyLC0xMjEuNDkwNjU3DTMxMjggVklBIEdSQU5ERSxTQUNSQU1FTlRPLDk1ODI1LENBLDIsMSw5NzIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjUwMDAsMzguNTk4MzIxLC0xMjEuMzkxNjENMjg0NyBCRUxHUkFERSBXQVksU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDIsMTM5MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNTU3MywzOC42MTcxNzMsLTEyMS40ODI1NDENNzc0MSBNSUxMREFMRSBDSVIsRUxWRVJUQSw5NTYyNixDQSw0LDIsMTM1NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNjcxNCwzOC43MDU4MzQsLTEyMS40MzkxOQ05MDEzIENBU0FMUyBTVCxTQUNSQU1FTlRPLDk1ODI2LENBLDIsMSw3OTUsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMjY5NjAsMzguNTU3MDQ1LC0xMjEuMzcxNjcNMjI3IE1BSEFOIENUIFVuaXQgMSxST1NFVklMTEUsOTU2NzgsQ0EsMiwxLDc4MCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNzAwMCwzOC43NDk3MjMsLTEyMS4yNzAwOA03MzQ5IEZMRVRDSEVSIEZBUk0gRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSw0LDIsMTU4NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEyNzUwMCwzOC40OTA2OSwtMTIxLjM4MjYxOQ03MjI2IExBUkNITU9OVCBEUixOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywyLDEyMDksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMzAwMDAsMzguNjk5MjY5LC0xMjEuMzc2MzM0DTQxMTQgMzVUSCBBVkUsU0FDUkFNRU5UTyw5NTgyNCxDQSwyLDEsMTEzOSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDEzMzEwNSwzOC41MjA5NDEsLTEyMS40NTkzNTUNNjE3IE0gU1QsUklPIExJTkRBLDk1NjczLENBLDIsMiwxNjkwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTM2NTAwLDM4LjY5MTEwNCwtMTIxLjQ1MTgzMg03MDMyIEZBSVIgT0FLUyBCTFZELENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDEyNDUsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxMzk1MDAsMzguNjI4NTYzLC0xMjEuMzI4Mjk3DTI0MjEgU0FOVElOQSBXQVksRUxWRVJUQSw5NTYyNixDQSwzLDIsMTQxNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE0MDAwMCwzOC43MTg2NSwtMTIxLjQwNzc2Mw0yMzY4IENSQUlHIEFWRSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMiwxMzAwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTQwODAwLDM4LjQ3ODA3LC0xMjEuNDgxMTQNMjEyMyBBTUFOREEgV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywyLDExMjAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNDUwMDAsMzguNDg0ODk2LC0xMjEuNDg2OTQ4DTc2MjAgREFSTEEgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE1OTAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNDcwMDAsMzguNDc4NTAyLC0xMjEuNDAzNTE3DTgzNDQgRklFTERQT1BQWSBDSVIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTQwNyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE0OTYwMCwzOC40NzkwODMsLTEyMS40MDA3MDINMzYyNCAyMFRIIEFWRSxTQUNSQU1FTlRPLDk1ODIwLENBLDUsMiwxNTE2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTUwMDAwLDM4LjUzNDUwOCwtMTIxLjQ2NzkwNw0xMDAwMSBXT09EQ1JFRUsgT0FLUyBCTFZEIFVuaXQgMTQxNSxST1NFVklMTEUsOTU3NDcsQ0EsMiwyLDAsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNzk1NTI5LC0xMjEuMzI4ODE5DTI4NDggUFJPVk8gV0FZLFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywyLDE2NDYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNDg5NzU5LC0xMjEuNDc0NzU0DTYwNDUgRUhSSEFSRFQgQVZFLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE2NzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTUwMDAsMzguNDU3MTU3LC0xMjEuNDMzMDY1DTEyMjMgTEFNQkVSVE9OIENJUixTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMzcwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTU1NDM1LDM4LjY0NjY3NywtMTIxLjQzNzU3Mw0xMjIzIExBTUJFUlRPTiBDSVIsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTM3MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE1NTUwMCwzOC42NDY2NzcsLTEyMS40Mzc1NzMNNjAwMCBCSVJDSEdMQURFIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTM1MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE1ODAwMCwzOC43MDE2NiwtMTIxLjMyMzI0OQ03MjA0IFRIT01BUyBEUixOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywyLDExNTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNTgwMDAsMzguNjk3ODk4LC0xMjEuMzc3Njg3DTgzNjMgTEFOR1RSRUUgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0NTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNjAwMDAsMzguNDUzNTYsLTEyMS40MzU5NTkNMTY3NSBWRVJOT04gU1QgVW5pdCA4LFJPU0VWSUxMRSw5NTY3OCxDQSwyLDEsOTkwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTYwMDAwLDM4LjczNDEzNiwtMTIxLjI5OTYzOQ02NjMyIElCRVggV09PRFMgQ1QsQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMiwyLDExNjIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNjQwMDAsMzguNzIwODY4LC0xMjEuMzA5ODU1DTExNyBFVkNBUiBXQVksUklPIExJTkRBLDk1NjczLENBLDMsMiwxMTgyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTY0MDAwLDM4LjY4NzY1OSwtMTIxLjQ2MzMNNjQ4NSBMQUdVTkEgTUlSQUdFIExOLEVMSyBHUk9WRSw5NTc1OCxDQSwyLDIsMTExMixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE2NTAwMCwzOC40MjQ2NSwtMTIxLjQzMDEzNw03NDYgTU9PU0UgQ1JFRUsgV0FZLEdBTFQsOTU2MzIsQ0EsMywyLDExMDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNjcwMDAsMzguMjgzMDg1LC0xMjEuMzAyMDcxDTgzMDYgQ1VSTEVXIENULENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDQsMiwxMjgwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTY3MjkzLDM4LjcxNTc4MSwtMTIxLjI5ODUxOQ04MzA2IENVUkxFVyBDVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTI4MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE2NzI5MywzOC43MTU3ODEsLTEyMS4yOTg1MTkNNTIxNyBBUkdPIFdBWSxTQUNSQU1FTlRPLDk1ODIwLENBLDMsMSwxMDM5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTY4MDAwLDM4LjUyNzc0LC0xMjEuNDMzNjY5DTcxMDggSEVBVEhFUiBUUkVFIERSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywyLDExNTksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNjk1Njc3LC0xMjEuMzYwMjINMjk1NiBEQVZFTlBPUlQgV0FZLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsNCwyLDE5MTcsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNjIwNjg3LC0xMjEuNDgyNjE5DTEwMDYyIExJTkNPTE4gVklMTEFHRSBEUixTQUNSQU1FTlRPLDk1ODI3LENBLDMsMiwxNTIwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTcwMDAwLDM4LjU2NCwtMTIxLjMyMDAyMw0zMzIgUEFMSU4gQVZFLEdBTFQsOTU2MzIsQ0EsMywyLDEyMDQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxNzQwMDAsMzguMjYwNDY3LC0xMjEuMzAyNjM2DTQ2NDkgRlJFRVdBWSBDSVIsU0FDUkFNRU5UTyw5NTg0MSxDQSwzLDIsMTEyMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE3ODAwMCwzOC42NTg3MzQsLTEyMS4zNTcxOTYNODU5MyBERVJMSU4gV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNDQ3NTg1LC0xMjEuNDI2NjI3DTkyNzMgUFJFTUlFUiBXQVksU0FDUkFNRU5UTyw5NTgyNixDQSwzLDIsMTQ1MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE4MDAwMCwzOC41NTk5MiwtMTIxLjM1MjUzOQ04MDMyIERVU0VOQkVSRyBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxNjM4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTgwMDAwLDM4LjQ2NjQ5OSwtMTIxLjM4MTExOQ03MTEwIFNURUxMQSBMTiBVbml0IDE1LENBUk1JQ0hBRUwsOTU2MDgsQ0EsMiwyLDEwMDAsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxODIwMDAsMzguNjM3Mzk2LC0xMjEuMzAwMDU1DTE3ODYgUElFRE1PTlQgV0FZLFJPU0VWSUxMRSw5NTY2MSxDQSwzLDEsMTE1MixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODMyNSwzOC43Mjc0OCwtMTIxLjI1NjUzNw0xMzQ3IEhJREFMR08gQ0lSLFJPU0VWSUxMRSw5NTc0NyxDQSwzLDIsMTE1NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE5MTUwMCwzOC43NDc4NzgsLTEyMS4zMTEyNzkNMjEyIENBUFBVQ0lOTyBXQVksU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTM1MyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDE5MjAwMCwzOC42NTc4MTEsLTEyMS40NjUzMjcNNTkzOCBXT09EQlJJQVIgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMzI5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTkyNzAwLDM4LjcwNjE1MiwtMTIxLjMyNTM5OQ0zODAxIFdJTERST1NFIFdBWSxTQUNSQU1FTlRPLDk1ODI2LENBLDMsMSwxMzU2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTk1MDAwLDM4LjU0NDM2OCwtMTIxLjM2OTk3OQ01MDggU0FNVUVMIFdBWSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxNTA1LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMTk3NjU0LDM4LjY0NTY4OSwtMTIxLjQ1Mjc2Ng02MTI4IENBUkwgU0FOREJVUkcgQ0lSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMywxLDEwMDksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwxOTgwMDAsMzguNjgxNTQxLC0xMjEuMzU1NjE2DTEgS0VOTkVMRk9SRCBDSVIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTE0NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIwMDM0NSwzOC40NjQ1MiwtMTIxLjQyNzYwNg05MDkgU0lOR0lOR1dPT0QgUkQsU0FDUkFNRU5UTyw5NTg2NCxDQSwyLDEsOTMwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjAzMDAwLDM4LjU4MTQ3MSwtMTIxLjM4ODM5DTY2NzEgRk9YV09PRCBDVCxTQUNSQU1FTlRPLDk1ODQxLENBLDQsMiwxNzY2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjA3MDAwLDM4LjY4Nzk0MywtMTIxLjMyODg4Mw04MTY1IEFZTiBSQU5EIENULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwzLDE5NDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMDgwMDAsMzguNDY4NjM5LC0xMjEuNDAzMjY1DTk0NzQgVklMTEFHRSBUUkVFIERSLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTc3NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIxMDAwMCwzOC40MTM5NDcsLTEyMS40MDgyNzYNNzIxMyBDQUxWSU4gRFIsQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywxLDEyNTgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMTIwMDAsMzguNjk4MTU0LC0xMjEuMjk4Mzc1DTgxNjcgREVSQlkgUEFSSyBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxODcyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjEzNjc1LDM4LjQ2MDQ5MiwtMTIxLjM3MzM3OQ02MzQ0IExBR1VOQSBNSVJBR0UgTE4sRUxLIEdST1ZFLDk1NzU4LENBLDIsMiwxMTEyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjEzNjk3LDM4LjQyMzk2MywtMTIxLjQyODg3NQ0yOTQ1IFJFRCBIQVdLIFdBWSxTQUNSQU1FTlRPLDk1ODMzLENBLDQsMiwxODU2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjYxOTY3NSwtMTIxLjQ5NjkwMw0zMjI4IEkgU1QsU0FDUkFNRU5UTyw5NTgxNixDQSw0LDMsMTkzOSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIxNTAwMCwzOC41NzM4NDQsLTEyMS40NjI4MzkNMzA4IEFUS0lOU09OIFNULFJPU0VWSUxMRSw5NTY3OCxDQSwzLDEsOTk4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjE1MTAwLDM4Ljc0Njc5NCwtMTIxLjI5OTcxDTYyNCBIT1ZFWSBXQVksUk9TRVZJTExFLDk1Njc4LENBLDMsMiwxNzU4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjE3NTAwLDM4Ljc1NjE0OSwtMTIxLjMwNjQ3OQ0xMTAgQ09QUEVSIExFQUYgV0FZLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDIxNDIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMTgwMDAsMzguNjU4NDY2LC0xMjEuNDYwNjYxDTc1MzUgQUxNQSBWSVNUQSBXQVksU0FDUkFNRU5UTyw5NTgzMSxDQSwyLDEsOTUwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjIwMDAwLDM4LjQ4NDAzLC0xMjEuNTA3NjQxDTc0MjMgV0lMU0FMTCBDVCxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwzLDE3MzksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMjEwMDAsMzguNDE3MDI2LC0xMjEuNDE2ODIxDTg2MjkgVklBIEFMVEEgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSwzLDIsMTUxNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjkwMCwzOC4zOTgyNDUsLTEyMS4zODA2MTUNMzMxOCBEQVZJRFNPTiBEUixBTlRFTE9QRSw5NTg0MyxDQSwzLDEsOTg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjIzMTM5LDM4LjcwNTc1MywtMTIxLjM4ODkxNw05MTMgQ09CREVOIENULEdBTFQsOTU2MzIsQ0EsNCwyLDE1NTUsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMjU1MDAsMzguMjgyMDAxLC0xMjEuMjk1OTAyDTQ0MTkgNzlUSCBTVCxTQUNSQU1FTlRPLDk1ODIwLENBLDMsMiwxMjEyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjI4MzI3LDM4LjUzNDgyNywtMTIxLjQxMjU0NQ0zMDEyIFNQT09OV09PRCBXQVksU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDIsMTg3MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMDAwMCwzOC42MjQ3OCwtMTIxLjUyMzQ3NA04NzI4IENSWVNUQUwgUklWRVIgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDEzMDIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzAwMDAsMzguNDc1NDcsLTEyMS4zODAwNTUNNDcwOSBBTUJFUiBMTiBVbml0IDEsU0FDUkFNRU5UTyw5NTg0MSxDQSwyLDEsNzU2LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjMwNTIyLDM4LjY1Nzc4OSwtMTIxLjM1NDk5NA00NTA4IE9MRCBEQUlSWSBEUixBTlRFTE9QRSw5NTg0MyxDQSw0LDMsMjAyNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMTIwMCwzOC43MjI4NiwtMTIxLjM1ODkzOQ0zMTIgUklWRVIgSVNMRSBXQVksU0FDUkFNRU5UTyw5NTgzMSxDQSwzLDIsMTM3NSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjAwMCwzOC40OTAyNiwtMTIxLjU1MDUyNw0zMDEgT0xJVkFESSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwyLDIsMTI1MCxDb25kbyxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjUwMCwzOC42NDQ0MDYsLTEyMS41NDkwNDkNNTYzNiAyNVRIIFNULFNBQ1JBTUVOVE8sOTU4MjIsQ0EsMywxLDEwNTgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzM2NDEsMzguNTIzODI4LC0xMjEuNDgxMTM5DTg3MjEgU1BSVUNFIFJJREdFIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTE4NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDIzNDAwMCwzOC43Mjc2NTcsLTEyMS4zOTEwMjgNNzQ2MSBXSU5EQlJJREdFIERSLFNBQ1JBTUVOVE8sOTU4MzEsQ0EsMiwyLDEzMjQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzQ1MDAsMzguNDg3OTcsLTEyMS41MzAyMjkNODEwMSBMRU1PTiBDT1ZFIENULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwzLDE5MzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzUwMDAsMzguNDYyOTgxLC0xMjEuNDA4Mjg4DTEwOTQ5IFNDT1RTTUFOIFdBWSxSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw1LDQsMjM4MixNdWx0aS1GYW1pbHksTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzYwMDAsMzguNjAzNjg2LC0xMjEuMjc3ODQ0DTYxNyBXSUxMT1cgQ1JFRUsgRFIsRk9MU09NLDk1NjMwLENBLDMsMiwxNDI3LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjM2MDczLDM4LjY3OTYyNiwtMTIxLjE0MjYwOQ0zMzAxIFBBUksgRFIgVW5pdCAxOTE0LFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE2NzgsQ29uZG8sTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyMzgwMDAsMzguNjY1Mjk2LC0xMjEuNTMxOTkzDTcwOSBDSU1NQVJPTiBDVCxHQUxULDk1NjMyLENBLDQsMiwxNzk4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjM4ODYxLDM4LjI3NzE3NywtMTIxLjMwMzc0Nw0zMzA1IFJJTyBST0NBIENULEFOVEVMT1BFLDk1ODQzLENBLDQsMywyNjUyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjM5NzAwLDM4LjcyNTA3OSwtMTIxLjM4NzY5OA05MDgwIEJFRFJPQ0sgQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDIsMTgxNixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI0MDAwMCwzOC40NTY5MzksLTEyMS4zNjI5NjUNMTAwIFRPVVJNQUxJTkUgQ0lSLFNBQ1JBTUVOVE8sOTU4MzQsQ0EsNSwzLDMwNzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNDAwMDAsMzguNjM0MzcsLTEyMS41MTA3NzkNNjQxMSBSRUQgQklSQ0ggV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMTg0NCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI0MTAwMCwzOC40MzQ2MSwtMTIxLjQyOTMxNg00ODY3IExBR1VOQSBEUixTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMzA2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjQ1MDAwLDM4LjQ2MTc5LC0xMjEuNDQ1MzcxDTM2NjIgUklWRVIgRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSw0LDMsMjQ0NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI0NjAwMCwzOC42MDQ5NjksLTEyMS41NDI1NQ02OTQzIFdPTEZHUkFNIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxMTc2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjQ3MjM0LDM4LjQ4OTIxNSwtMTIxLjQxOTU0Ng03NyBSSU5FVFRJIFdBWSxSSU8gTElOREEsOTU2NzMsQ0EsNCwyLDExODIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNDc0ODAsMzguNjg3MDIxLC0xMjEuNDYzMTUxDTEzMTYgSSBTVCxSSU8gTElOREEsOTU2NzMsQ0EsMywxLDExNjAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNDk4NjIsMzguNjgzNjc0LC0xMjEuNDM1MjA0DTIxMzAgQ0FUSEVSV09PRCBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTQyNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI1MTAwMCwzOC42NzU1MDYsLTEyMS41MTA5ODcNODMwNCBKVUdMQU5TIERSLE9SQU5HRVZBTEUsOTU2NjIsQ0EsNCwyLDE1NzQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNTIxNTUsMzguNjkxODI5LC0xMjEuMjQ5MDMzDTUzMDggTUFSQlVSWSBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDE4MzAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNTQxNzIsMzguNzEwMjIxLC0xMjEuMzQxNzA3DTkxODIgTEFLRU1PTlQgRFIsRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNzI0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjU4MDAwLDM4LjQ1MTM1MywtMTIxLjM1ODc3Ng0yMjMxIENPVU5UUlkgVklMTEEgQ1QsQVVCVVJOLDk1NjAzLENBLDIsMiwxMjU1LENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjYwMDAwLDM4LjkzMTY3MSwtMTIxLjA5Nzg2Mg04NDkxIENSWVNUQUwgV0FMSyBDSVIsRUxLIEdST1ZFLDk1NzU4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjYxMDAwLDM4LjQxNjkxNiwtMTIxLjQwNzU1NA0zNjEgTUFIT05JQSBDSVIsU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDMsMjE3NSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI2MTAwMCwzOC42NzYxNzIsLTEyMS41MDk3NjENMzQyNyBMQSBDQURFTkEgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsNCwyLDE5MDQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNjEwMDAsMzguNjgxMTk0LC0xMjEuNTM3MzUxDTk1NSBCSUcgU1VSIENULEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw0LDIsMTgwOCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI2MjUwMCwzOC42NjQzNDcsLTEyMS4wNzY1MjkNMTE4MjYgRElPTllTVVMgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDQsMiwyNzExLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjY2MDAwLDM4LjU1MTA0NiwtMTIxLjIzOTQxMQ01ODQ3IERFTCBDQU1QTyBMTixDQVJNSUNIQUVMLDk1NjA4LENBLDMsMSwxNzEzLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjY2MDAwLDM4LjY3MTk5NSwtMTIxLjMyNDMzOQ01NjM1IEZPWFZJRVcgV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSwzLDIsMTQ1NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI3MDAwMCwzOC4zOTUyNTYsLTEyMS40MzgyNDkNMTAzNzIgVklBIENJTlRBIENULEVMSyBHUk9WRSw5NTc1NyxDQSw0LDMsMjcyNCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI3NDQyNSwzOC4zODAwODksLTEyMS40MjgxODYNNjI4NiBMT05FVFJFRSBCTFZELFJPQ0tMSU4sOTU3NjUsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyNzQ1MDAsMzguODA1MDM2LC0xMjEuMjkzNjA4DTc3NDQgU09VVEhCUkVFWkUgRFIsU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTQ2OCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI3NTMzNiwzOC40NzY5MzIsLTEyMS4zNzgzNDkNMjI0MiBBQkxFIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDQsMywyNTUwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjc3OTgwLDM4LjY2NjA3NCwtMTIxLjUwOTc0Mw0xMDQyIFNUQVJCUk9PSyBEUixHQUxULDk1NjMyLENBLDQsMiwxOTI4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjgwMDAwLDM4LjI4NTYxMSwtMTIxLjI5MzA2Mw0xMjE5IEcgU1QsU0FDUkFNRU5UTyw5NTgxNCxDQSwzLDMsMTkyMixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDI4NDY4NiwzOC41ODI4MTgsLTEyMS40ODkwOTYNNjIyMCBPUFVTIENULENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMiwxMzQzLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjg0ODkzLDM4LjcxNTg1MywtMTIxLjMxNzA5NQ01NDE5IEhBVkVOSFVSU1QgQ0lSLFJPQ0tMSU4sOTU2NzcsQ0EsMywyLDE1MTAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODUwMDAsMzguNzg2NzQ2LC0xMjEuMjA5OTU3DTIyMCBPTEQgQUlSUE9SVCBSRCxBVUJVUk4sOTU2MDMsQ0EsMiwyLDk2MCxNdWx0aS1GYW1pbHksTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODUwMDAsMzguOTM5ODAyLC0xMjEuMDU0NTc1DTQ2MjIgTUVZRVIgV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsNCwyLDE1NTksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODUwMDAsMzguNjQ5MTMsLTEyMS4zMTA2NjcNNDg4NSBTVU1NSVQgVklFVyBEUixFTCBET1JBRE8sOTU2MjMsQ0EsMywyLDE2MjQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyODkwMDAsMzguNjczMjg1LC0xMjAuODc5MTc2DTI2IEpFQU5ST1NTIENULFNBQ1JBTUVOVE8sOTU4MzIsQ0EsNSwzLDI5OTIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyOTUwMDAsMzguNDczMTYyLC0xMjEuNDkxMDg1DTQ4MDAgTUFQTEVQTEFJTiBBVkUsRUxLIEdST1ZFLDk1NzU4LENBLDQsMiwyMTA5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjk2MDAwLDM4LjQzMjg0OCwtMTIxLjQ0OTIzNw0xMDYyOSBCQVNJRSBXQVksUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsNCwyLDE1MjQsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyOTYwNTYsMzguNTc5LC0xMjEuMjkyNjI3DTg2MTIgV0lMTE9XIEdST1ZFIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjQ4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMjk3MzU5LDM4LjQ2NDk5NCwtMTIxLjM4Njk2Mg02MiBERSBGRVIgQ0lSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwyLDE4NzYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwyOTk5NDAsMzguNDkyNTQsLTEyMS40NjMzMTYNMjUxMyBPTEQgS0VOTUFSRSBSRCxMSU5DT0xOLDk1NjQ4LENBLDUsMywwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzA0MDAwLDM4Ljg0NzM5NiwtMTIxLjI1OTU4Ng0zMjUzIEFCT1RPIFdBWSxSQU5DSE8gQ09SRE9WQSw5NTY3MCxDQSw0LDMsMTg1MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDMwNTAwMCwzOC41NzcyNywtMTIxLjI4NTU5MQ0zMDcyIFZJTExBR0UgUExBWkEgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzA3MDAwLDM4Ljc3MzA5NCwtMTIxLjM2NTkwNQ0yNTEgQ0hBTkdPIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwyMjE4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzExMzI4LDM4LjY4MjM3LC0xMjEuNTM5MTQ3DTgyMDUgV0VZQlVSTiBDVCxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMzk0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzEzMTM4LDM4LjQ3MzE2LC0xMjEuNDAzODkzDTg3ODggTEEgTUFSR0FSSVRBIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxNDEwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzE2NjMwLDM4LjQ2ODE4NSwtMTIxLjM3NTY5NA01OTEyIERFRVBEQUxFIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNSwzLDM0NjgsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzMjAwMDAsMzguNDM5NTY1LC0xMjEuNDM2NjA2DTQ3MTIgUElTTU8gQkVBQ0ggRFIsQU5URUxPUEUsOTU4NDMsQ0EsNSwzLDIzNDYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzMjAwMDAsMzguNzA3NzA1LC0xMjEuMzU0MTUzDTQ3NDEgUEFDSUZJQyBQQVJLIERSLEFOVEVMT1BFLDk1ODQzLENBLDUsMywyMzQ3LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzI1MDAwLDM4LjcwOTI5OSwtMTIxLjM1MzA1Ng0zMTAgR1JPVEggQ0lSLFNBQ1JBTUVOVE8sOTU4MzQsQ0EsNCwyLDE2NTksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzMjg1NzgsMzguNjM4NzY0LC0xMjEuNTMxODI3DTYxMjEgV0lMRCBGT1ggQ1QsRUxLIEdST1ZFLDk1NzU3LENBLDMsMywyNDQyLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzMxMDAwLDM4LjQwNjc1OCwtMTIxLjQzMTY2OQ0xMjI0MSBDQU5ZT05MQU5EUyBEUixSQU5DSE8gQ09SRE9WQSw5NTc0MixDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDMzMTUwMCwzOC41NTcyOTMsLTEyMS4yMTc2MTENMjkgQ09PTCBGT1VOVEFJTiBDVCxTQUNSQU1FTlRPLDk1ODMzLENBLDQsMiwyMTU1LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzQwMDAwLDM4LjYwNjkwNiwtMTIxLjU0MTMyDTkwNyBSSU8gUk9CTEVTIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzQ0NzU1LDM4LjY2NDc2NSwtMTIxLjQ0NTAwNg04OTA5IEJJTExGSVNIIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxODEwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzQ1NzQ2LDM4LjQ3NTQzMywtMTIxLjM3MjU4NA02MjMyIEdVUyBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDQsMiwyNzg5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzUxMDAwLDM4LjM4ODEyOSwtMTIxLjQzMTE3DTIwMCBPQUtXSUxERSBTVCxHQUxULDk1NjMyLENBLDQsMiwxNjA2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzUzNzY3LDM4LjI1MzUsLTEyMS4zMTgxMg0xMDMzIFBBUksgU1RSRUFNIERSLEdBTFQsOTU2MzIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNTUwMDAsMzguMjg3Nzg1LC0xMjEuMjg5OTAzDTIwMCBBTExBSVJFIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwyMTY2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzU2MDM1LDM4LjY4MzE4LC0xMjEuNTM0ODQNMTMyMiBTVVRURVIgV0FMSyxTQUNSQU1FTlRPLDk1ODE2LENBLDAsMCwwLENvbmRvLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzYwMDAwLDM4LjUzODA1LC0xMjEuNTA0Nw01NDc5IE5JQ0tNQU4gV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsNCwyLDE4NzEsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNjA1NTIsMzguNjcyOTY2LC0xMjEuNTAyNzQ4DTIxMDMgQlVSQkVSUlkgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE4MDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNjIzMDUsMzguNjczNDIsLTEyMS41MDg1NDINMjQ1MCBTQU4gSk9TRSBXQVksU0FDUkFNRU5UTyw5NTgxNyxDQSwzLDEsMTY4MyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDM2NTAwMCwzOC41NTM1OTYsLTEyMS40NTk0ODMNNzY0MSBST1NFSEFMTCBEUixST1NFVklMTEUsOTU2NzgsQ0EsMywyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNjc1NTQsMzguNzkxNjE3LC0xMjEuMjg2MTQ3DTEzMzYgTEFZU0FOIFRFQUwgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzY4NTAwLDM4Ljc5NjEyMSwtMTIxLjMxOTk2Mw0yODAyIEJMQUNLIE9BSyBEUixST0NLTElOLDk1NzY1LENBLDIsMiwxNTk2LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzcwMDAwLDM4LjgzNzAwNiwtMTIxLjIzMjAyNA0yMTEzIEZBTEwgVFJBSUwgQ1QsUExBQ0VSVklMTEUsOTU2NjcsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzNzEwODYsMzguNzMzMTU1LC0xMjAuNzQ4MDM5DTEwMTEyIExBTUJFQVUgQ1QsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxMTc5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzc4MDAwLDM4LjM5MDMyOCwtMTIxLjQ0ODAyMg02MzEzIENBU1RSTyBWRVJERSBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzgzMDAwLDM4LjM4MTEwMiwtMTIxLjQyOTAxDTM2MjIgQ1VSVElTIERSLFNBQ1JBTUVOVE8sOTU4MTgsQ0EsMywxLDE2MzksUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCwzODgwMDAsMzguNTQxNzM1LC0xMjEuNDgwMDk4DTExODE3IE9QQUwgUklER0UgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDUsMywzMjgxLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsMzk1MTAwLDM4LjU1MTA4MywtMTIxLjIzNzQ3Ng0xNzAgTEFHT01BUlNJTk8gV0FZLFNBQ1JBTUVOVE8sOTU4MTksQ0EsMywyLDE2OTcsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0MDAwMDAsMzguNTc0ODk0LC0xMjEuNDM1ODA2DTI3NDMgREVBS0lOIFBMLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSwzLDIsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQwMDAwMCwzOC42OTI4OCwtMTIxLjA3MzU1MQ0zMzYxIEFMREVSIENBTllPTiBXQVksQU5URUxPUEUsOTU4NDMsQ0EsNCwzLDIwODUsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0MDg0MzEsMzguNzI3NjQ5LC0xMjEuMzg1NjU2DTIxNDggUkFOQ0ggVklFVyBEUixST0NLTElOLDk1NzY1LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDEzMDAwLDM4LjgzNzQ1NSwtMTIxLjI4OTMzNw0zOTggTElORExFWSBEUixTQUNSQU1FTlRPLDk1ODE1LENBLDQsMiwxNzQ0LE11bHRpLUZhbWlseSxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQxNjc2NywzOC42MjIzNTksLTEyMS40NTc1ODINMzAxMyBCUklETEVXT09EIERSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw0LDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQyMDAwMCwzOC42NzU1MTksLTEyMS4wMTU4NjINMTY5IEJBVVJFUiBDSVIsRk9MU09NLDk1NjMwLENBLDQsMywxOTM5LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDIzMDAwLDM4LjY2Njk1LC0xMjEuMTIwNzI5DTI4MDkgTE9PTiBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0MjMwMDAsMzguNjg3MDcyLC0xMjEuMDA0NzI5DTEzMTUgS09ORE9TIEFWRSxTQUNSQU1FTlRPLDk1ODE0LENBLDIsMywxNzg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDI3NTAwLDM4LjU3MTk0MywtMTIxLjQ5MjEwNg00OTY2IENIQVJURVIgUkQsUk9DS0xJTiw5NTc2NSxDQSwzLDIsMTY5MSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQzMDkyMiwzOC44MjU1MywtMTIxLjI1NDY5OA05NTE2IExBR1VOQSBMQUtFIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDIwMDIsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0NDUwMDAsMzguNDExMjU4LC0xMjEuNDMxMzQ4DTUyMDEgQkxPU1NPTSBSQU5DSCBEUixFTEsgR1JPVkUsOTU3NTcsQ0EsNCw0LDQzMDMsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0NTAwMDAsMzguMzk5NDM2LC0xMjEuNDQ0MDQxDTMwMjcgUEFMTUFURSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSw1LDMsNDI0NixSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ1MjAwMCwzOC42Mjg5NTUsLTEyMS41MjkyNjkNNTAwIFdJTkNIRVNURVIgQ1QsUk9TRVZJTExFLDk1NjYxLENBLDMsMiwyMjc0LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDcwMDAwLDM4LjczOTg4LC0xMjEuMjQ4OTI5DTU3NDYgR0VMU1RPTiBXQVksRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDcxMDAwLDM4LjY3NzAxNSwtMTIxLjAzNDA4Mw02OTM1IEVMTSBUUkVFIExOLE9SQU5HRVZBTEUsOTU2NjIsQ0EsNCw0LDMwNTYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0NzUwMDAsMzguNjkzMDQxLC0xMjEuMjMyOTQNOTYwNSBHT0xGIENPVVJTRSBMTixFTEsgR1JPVkUsOTU3NTgsQ0EsMywzLDI1MDMsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODQ1MDAsMzguNDA5Njg5LC0xMjEuNDQ2MDU5DTcxOSBCQVlXT09EIENULEVMIERPUkFETyBISUxMUyw5NTc2MixDQSw1LDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4NzUwMCwzOC42NDc1OTgsLTEyMS4wNzc4MDENNTk1NCBUQU5VUyBDSVIsUk9DS0xJTiw5NTY3NyxDQSwzLDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4ODc1MCwzOC43Nzc1ODUsLTEyMS4yMDM2DTEwMCBDSEVMU0VBIENULEZPTFNPTSw5NTYzMCxDQSwzLDIsMTkwNSxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUwMDAwMCwzOC42OTQzNSwtMTIxLjE3NzI1OQ0xNTAwIE9SQU5HRSBISUxMIExOLFBFTlJZTiw5NTY2MyxDQSwzLDIsMTMyMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUwNjY4OCwzOC44NjI3MDgsLTEyMS4xNjIwOTINNDA4IEtJUktXT09EIENULExJTkNPTE4sOTU2NDgsQ0EsMiwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw1MTIwMDAsMzguODYxNjE1LC0xMjEuMjY4NjkNMTczMiBUVVNDQU4gR1JPVkUgQ0lSLFJPU0VWSUxMRSw5NTc0NyxDQSw1LDMsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUyMDAwMCwzOC43OTY2ODMsLTEyMS4zNDI1NTUNMjA0OSBFTVBJUkUgTUlORSBDSVIsR09MRCBSSVZFUiw5NTY3MCxDQSw0LDIsMzAzNyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDUyODAwMCwzOC42MjkyOTksLTEyMS4yNDkwMjENOTM2MCBNQUdPUyBSRCxXSUxUT04sOTU2OTMsQ0EsNSwyLDM3NDEsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw1NzkwOTMsMzguNDE2ODA5LC0xMjEuMjQwNjI4DTEwNCBDQVRMSU4gQ1QsRk9MU09NLDk1NjMwLENBLDQsMywyNjYwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjM2MDAwLDM4LjY4NDQ1OSwtMTIxLjE0NTkzNQ00NzM0IEdJQkJPTlMgRFIsQ0FSTUlDSEFFTCw5NTYwOCxDQSw0LDMsMzM1NyxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDY2ODM2NSwzOC42MzU1OCwtMTIxLjM1MzYzOQ00NjI5IERPUkNIRVNURVIgTE4sR1JBTklURSBCQVksOTU3NDYsQ0EsNSwzLDI4OTYsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw2NzYyMDAsMzguNzIzNTQ1LC0xMjEuMjE2MDI1DTI0MDAgQ09VTlRSWVNJREUgRFIsUExBQ0VSVklMTEUsOTU2NjcsQ0EsMywyLDIwMjUsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw2NzcwNDgsMzguNzM3NDUyLC0xMjAuOTEwOTYzDTEyOTAxIEZVUkxPTkcgRFIsV0lMVE9OLDk1NjkzLENBLDUsMywzNzg4LFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNjkxNjU5LDM4LjQxMzUzNSwtMTIxLjE4ODIxMQ02MjIyIENBTExFIE1PTlRBTFZPIENJUixHUkFOSVRFIEJBWSw5NTc0NixDQSw1LDMsMzY3MCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDc2MDAwMCwzOC43Nzk0MzUsLTEyMS4xNDY2NzYNMjAgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTMyNywtMTIxLjI4OTQxMg0yNCBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1MTMyLC0xMjEuMjg5NDA1DTI4IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ5MzYsLTEyMS4yODkzOTcNMzIgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDc0MSwtMTIxLjI4OTM5DTM2IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ1OTksLTEyMS4yODk0MDYNNDAgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDUzNSwtMTIxLjI4OTYxOQ00NCBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NTksLTEyMS4yODk4MzUNNDggQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDY2NywtMTIxLjI4OTg5Ng01MiBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NzgsLTEyMS4yODk5MTENNjggQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTIzNiwtMTIxLjI4OTkyOA03MiBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1MzUsLTEyMS4yODk5MjYNNzYgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTQ2NCwtMTIxLjI4OTkyMg04MCBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1NTc4LC0xMjEuMjg5OTE5DTg0IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODU2OTIsLTEyMS4yODk5MTUNODggQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTgwNiwtMTIxLjI4OTkxMQ05MiBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1OTIsLTEyMS4yODk5MDgNOTYgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjAyNCwtMTIxLjI4OTg1OQ0xMDAgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjA5MSwtMTIxLjI4OTc0NA00MzQgMVNUIFNULExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjUzLC0xMjEuMjg5NDA2DTMgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ2OTIsLTEyMS4yOTAyODgNMTEgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ4NzksLTEyMS4yOTAyNTcNMTkgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODUwMTcsLTEyMS4yOTAyNjINMjcgRSBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODUxNzMsLTEyMS4yOTAyNw0zNSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTMyOCwtMTIxLjI5MDI3NQ00MyBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTQ4MywtMTIxLjI5MDI3Nw01MSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTYzOCwtMTIxLjI5MDI3OQ01OSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMywyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTc5NCwtMTIxLjI5MDI4MQ03NSBFIFNULExJTkNPTE4sOTU2NDgsQ0EsMywyLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NjEwNCwtMTIxLjI5MDI4NQ02MyBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1MDkzLC0xMjEuMjg5OTMyDTM5OCAxU1QgU1QsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg2NTMsLTEyMS4yODg5NTINMzg2IDFTVCBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODY1MjgsLTEyMS4yODg4NjkNMzc0IDFTVCBTVCxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODY1MjUsLTEyMS4yODg3ODcNMTE2IENSWVNUQUxXT09EIFdBWSxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYyODIsLTEyMS4yODk1ODYNMTA4IENSWVNUQUxXT09EIFdBWSxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYyODIsLTEyMS4yODk2NDYNMTAwIENSWVNUQUxXT09EIFdBWSxMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYyODIsLTEyMS4yODk3MDYNNTUgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDg2NSwtMTIxLjI4OTkyMg01MSBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NzUyLC0xMjEuMjg5OTA3DTQ3IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ2MzgsLTEyMS4yODk4OTMNNDMgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDU2OCwtMTIxLjI4OTc4NA0zOSBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg0NTQ2LC0xMjEuMjg5NTYyDTM1IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ2NDUsLTEyMS4yODkzOTcNMzEgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NDc5LC0xMjEuMjg5MzkyDTI3IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODQ5ODUsLTEyMS4yODkzOTkNMjMgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTE4MSwtMTIxLjI4OTQwNg0xOSBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1Mzc2LC0xMjEuMjg5NDE0DTE1IENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODU1NzEsLTEyMS4yODk0MjENNyBDUllTVEFMV09PRCBDSVIsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxNb24gTWF5IDE5IDAwOjAwOjAwIEVEVCAyMDA4LDQ4OTcsMzguODg1OTYyLC0xMjEuMjg5NDM2DTcgQ1JZU1RBTFdPT0QgQ0lSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsTW9uIE1heSAxOSAwMDowMDowMCBFRFQgMjAwOCw0ODk3LDM4Ljg4NTk2MiwtMTIxLjI4OTQzNg0zIENSWVNUQUxXT09EIENJUixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLE1vbiBNYXkgMTkgMDA6MDA6MDAgRURUIDIwMDgsNDg5NywzOC44ODYwOTMsLTEyMS4yODk1ODQNODIwOCBXT09EWUFSRCBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywyLDExNjYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzMDAwMCwzOC43MTUzMjIsLTEyMS4zMTQ3ODcNMTEzIFJJTkVUVEkgV0FZLFJJTyBMSU5EQSw5NTY3MyxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMwMDAwLDM4LjY4NzE3MiwtMTIxLjQ2MzkzMw0xNSBMT09SWiBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDIsMSw4MzgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw1NTQyMiwzOC40NzE2NDYsLTEyMS40MzUxNTgNNTgwNSBET1RNQVIgV0FZLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwyLDEsOTA0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjMwMDAsMzguNjcyNjQyLC0xMjEuMzgwMzQzDTIzMzIgQ0FNQlJJREdFIFNULFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDEwMzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2NTAwMCwzOC42MDgwODUsLTEyMS40NDk2NTENMzgxMiBCRUxERU4gU1QsU0FDUkFNRU5UTyw5NTgzOCxDQSwyLDEsOTA0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjUwMDAsMzguNjM2ODMzLC0xMjEuNDQxNjQNMzM0OCA0MFRIIFNULFNBQ1JBTUVOVE8sOTU4MTcsQ0EsMiwxLDEwODAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2NTAwMCwzOC41NDQxNjIsLTEyMS40NjA2NTINMTI3IFFVQVNBUiBDSVIsU0FDUkFNRU5UTyw5NTgyMixDQSwyLDIsOTkwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjY1MDAsMzguNDkzNTA0LC0xMjEuNDc1MzA0DTM4MTIgQ1lQUkVTUyBTVCxTQUNSQU1FTlRPLDk1ODM4LENBLDIsMSw5MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw3MTAwMCwzOC42MzY4NzcsLTEyMS40NDQ5NDgNNTgyMSA2NFRIIFNULFNBQ1JBTUVOVE8sOTU4MjQsQ0EsMiwxLDg2MSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDc1MDAwLDM4LjUyMTIwMiwtMTIxLjQyODE0Ng04MjQ4IENFTlRFUiBQS1dZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMiwxLDkwNixDb25kbyxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDc3MDAwLDM4LjQ1OTAwMiwtMTIxLjQyODc5NA0xMTcxIFNPTk9NQSBBVkUsU0FDUkFNRU5UTyw5NTgxNSxDQSwyLDEsMTAxMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDg1MDAwLDM4LjYyMzgsLTEyMS40Mzk4NzINNDI1MCBBUkRXRUxMIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMDg5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsOTU2MjUsMzguNDY2OTM4LC0xMjEuNDU1NjMxDTMxMDQgQ0xBWSBTVCxTQUNSQU1FTlRPLDk1ODE1LENBLDIsMSw4MzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw5NjE0MCwzOC42MjM5MSwtMTIxLjQzOTIwOA02MDYzIExBTkQgUEFSSyBEUixTQUNSQU1FTlRPLDk1ODIyLENBLDIsMSw4MDAsQ29uZG8sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMDQyNTAsMzguNTE3MDI5LC0xMjEuNTEzODA5DTQ3MzggT0FLSE9MTE9XIERSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsNCwyLDEyOTIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMDUwMDAsMzguNjc5NTk4LC0xMjEuMzU2MDM1DTE0MDEgU1RFUkxJTkcgU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwyLDEsODEwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTA4MDAwLDM4LjUyMDMxOSwtMTIxLjUwNDcyNw0zNzE1IERJRENPVCBDSVIsU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTA2NCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEwOTAwMCwzOC42MzUyMzIsLTEyMS40NjAwOTgNMjQyNiBSQVNIQVdOIERSLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDIsMSw5MTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMTUwMDAsMzguNjEwODUyLC0xMjEuMjczMjc4DTQ4MDAgV0VTVExBS0UgUEtXWSBVbml0IDQxMCxTQUNSQU1FTlRPLDk1ODM1LENBLDEsMSw4NDYsQ29uZG8sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMTUwMDAsMzguNjU4ODEyLC0xMjEuNTQyMzQ1DTM0MDkgVklSR08gU1QsU0FDUkFNRU5UTyw5NTgyNyxDQSwzLDIsMTMyMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDExNTUwMCwzOC41NjM0MDIsLTEyMS4zMjc3NDcNMTExMCBQSU5FREFMRSBBVkUsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTQxMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDExNTYyMCwzOC42NjAxNzMsLTEyMS40NDAyMTYNMjM2MSBMQSBMT01BIERSLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDMsMiwxMTE1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTE2MDAwLDM4LjU5MzY4LC0xMjEuMzE2MDU0DTE0NTUgNjRUSCBBVkUsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTE2OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyMjAwMCwzOC40OTIxNzcsLTEyMS41MDMzOTINNzMyOCBTUFJJTkdNQU4gU1QsU0FDUkFNRU5UTyw5NTgyMixDQSwzLDIsMTE2NCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyMjUwMCwzOC40OTE5OTEsLTEyMS40Nzc2MzYNMTE5IFNBSU5UIE1BUklFIENJUixTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxMzQxLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTIzMDAwLDM4LjQ4MTQ1NCwtMTIxLjQ0NjY0NA0xMiBDT1NUQSBCUkFTRSBDVCxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMjE5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTI0MDAwLDM4LjY1NTU1NCwtMTIxLjQ2NDI3NQ02ODEzIFNDT1RFUiBXQVksU0FDUkFNRU5UTyw5NTg0MixDQSw0LDIsMTEyNyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyNDAwMCwzOC42OTA0MywtMTIxLjM2MTAzNQ02NTQ4IEdSQVlMT0NLIExOLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDIsMTI3MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEyNDQxMywzOC42ODYwNjEsLTEyMS4zNjk5NDkNMTYzMCBHTElEREVOIEFWRSxTQUNSQU1FTlRPLDk1ODIyLENBLDQsMiwxMjUzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTI1MDAwLDM4LjQ4MjcxNywtMTIxLjQ5OTY4Mw03ODI1IERBTEVXT09EUyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTEyMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDEzMDAwMCwzOC40NzcyOTcsLTEyMS40MTE1MTMNNDA3MyBUUkVTTEVSIEFWRSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMiwyLDExMTgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzE3NTAsMzguNjU5MDE2LC0xMjEuMzcwNDU3DTQyODggRFlNSUMgV0FZLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsNCwzLDE4OTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzc3MjEsMzguNjQ2NTQxLC0xMjEuNDQxMTM5DTExNTggU0FOIElHTkFDSU8gV0FZLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMywyLDEyNjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzc3NjAsMzguNjIzMDQ1LC0xMjEuNDg2Mjc5DTQ5MDQgSiBQS1dZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxMzgwMDAsMzguNDg3Mjk3LC0xMjEuNDQyOTUNMjkzMSBIT1dFIEFWRSxTQUNSQU1FTlRPLDk1ODIxLENBLDMsMSwxMjY0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTQwMDAwLDM4LjYxOTAxMiwtMTIxLjQxNTMyOQ01NTMxIEpBTlNFTiBEUixTQUNSQU1FTlRPLDk1ODI0LENBLDMsMSwxMDYwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTQ1MDAwLDM4LjUyMjAxNSwtMTIxLjQzODcxMw03ODM2IE9SQ0hBUkQgV09PRFMgQ0lSLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMiwyLDExMzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNDUwMDAsMzguNDc5NTUsLTEyMS40MTA4NjcNNDA1NSBERUVSQlJPT0sgRFIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTQ2NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE1MDAwMCwzOC40NzIxMTcsLTEyMS40NTk1ODkNOTkzNyBCVVJMSU5FIFNULFNBQ1JBTUVOVE8sOTU4MjcsQ0EsMywyLDEwOTIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNTAwMDAsMzguNTU5NjQxLC0xMjEuMzIzMTYNNjk0OCBNSVJBRE9SIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxNjI4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTUxMDAwLDM4LjQ5MzQ4NCwtMTIxLjQyMDM1DTQ5MDkgUlVHRVIgQ1QsU0FDUkFNRU5UTyw5NTg0MixDQSwzLDIsOTYwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTU1MDAwLDM4LjY4NzQ3LC0xMjEuMzQ5MjM0DTcyMDQgS0VSU1RFTiBTVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTA3NSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE1NTgwMCwzOC42OTU4NjMsLTEyMS4zMDA4MTQNMzE1MCBST1NFTU9OVCBEUixTQUNSQU1FTlRPLDk1ODI2LENBLDMsMiwxNDI4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTU2MTQyLDM4LjU1NDkyNywtMTIxLjM1NTIxDTgyMDAgU1RFSU5CRUNLIFdBWSxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxMzU4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTU4MDAwLDM4LjQ3NDg1NCwtMTIxLjQwNDcyNg04MTk4IFNURVZFTlNPTiBBVkUsU0FDUkFNRU5UTyw5NTgyOCxDQSw2LDQsMjQ3NSxNdWx0aS1GYW1pbHksRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNTk5MDAsMzguNDY1MjcxLC0xMjEuNDA0MjYNNjgyNCBPTElWRSBUUkVFIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSwzLDIsMTQxMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE2MDAwMCwzOC42ODkyMzksLTEyMS4yNjc3MzcNMzUzNiBTVU4gTUFJREVOIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTcxMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE2MTUwMCwzOC43MDk2OCwtMTIxLjM4MjMyOA00NTE3IE9MWU1QSUFEIFdBWSxTQUNSQU1FTlRPLDk1ODI2LENBLDQsMiwxNDgzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTYxNjAwLDM4LjUzNjc1MSwtMTIxLjM1OTE1NA05MjUgQ09CREVOIENULEdBTFQsOTU2MzIsQ0EsMywyLDExNDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjIwMDAsMzguMjgyMDQ3LC0xMjEuMjk1ODEyDTgyMjUgU0NPVFRTREFMRSBEUixTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxNTQ5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTY1MDAwLDM4LjQ4Nzg2NCwtMTIxLjQwMjQ3Ng04NzU4IExFTUFTIFJELFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDE0MTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjUwMDAsMzguNDY3NDg3LC0xMjEuMzc3MDU1DTYxMjEgQUxQSU5FU1BSSU5HIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEyNDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjcyOTMsMzguNDM0MDc1LC0xMjEuNDMyNjIzDTU5MzcgWU9SSyBHTEVOIFdBWSxTQUNSQU1FTlRPLDk1ODQyLENBLDUsMiwxNzEyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTY4MDAwLDM4LjY3NzAwMywtMTIxLjM1NDQ1NA02NDE3IFNVTk5ZRklFTEQgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwyLDE1ODAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNjgwMDAsMzguNDQ5MTUzLC0xMjEuNDI4MjcyDTQwMDggR1JFWSBMSVZFUlkgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxNjY5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTY4NzUwLDM4LjcxODQ2LC0xMjEuMzcwODYyDTg5MjAgUk9TRVRUQSBDSVIsU0FDUkFNRU5UTyw5NTgyNixDQSwzLDEsMTAyOSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE2ODc1MCwzOC41NDQzNzQsLTEyMS4zNzA4NzQNODMwMCBMSUNIRU4gRFIsQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsMywxLDExMDMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNzE2NDEsLTEyMS4zMDYyMzkNODg4NCBBTUJFUkpBQ0sgV0FZLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDIxNjEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNzAyNTAsMzguNDc5MzQzLC0xMjEuMzcyNTUzDTQ0ODAgVkFMTEVZIEhJIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE2NTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNzMwMDAsMzguNDY2NzgxLC0xMjEuNDUwOTU1DTIyNTAgRk9SRUJBWSBSRCxQT0xMT0NLIFBJTkVTLDk1NzI2LENBLDMsMSwxMzIwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTc1MDAwLDM4Ljc3NDkxLC0xMjAuNTk3NTk5DTM1MjkgRkFCRVJHRSBXQVksU0FDUkFNRU5UTyw5NTgyNixDQSwzLDIsMTIwMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3NjA5NSwzOC41NTMyNzUsLTEyMS4zNDYyMTgNMTc5MiBEQVdORUxMRSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTE3MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3NjI1MCwzOC42ODI3MSwtMTIxLjUwMTY5Nw03ODAwIFRBQkFSRSBDVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTE5OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3ODAwMCwzOC43MDc5OSwtMTIxLjMwMjk3OQ04NTMxIEhFUk1JVEFHRSBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTY5NSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE3OTAwMCwzOC40NDg0NTIsLTEyMS40Mjg1MzYNMjQyMSBCRVJSWVdPT0QgRFIsUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywyLDExNTcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNjA4NjgsLTEyMS4yNzg0OQ0xMDA1IE1PUkVOTyBXQVksU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDIsMTQxMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE4MDAwMCwzOC42NDYyMDYsLTEyMS40NDI3NjcNMTY3NSBWRVJOT04gU1QgVW5pdCAyNCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDExNzQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODAwMDAsMzguNzM0MTM2LC0xMjEuMjk5NjM5DTI0IFdJTkRDSElNRSBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxNTkzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTgxMDAwLDM4LjQ0NjE3LC0xMjEuNDI3ODI0DTU0MCBIQVJMSU5HIENULFJJTyBMSU5EQSw5NTY3MyxDQSwzLDIsMTA5MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE4MjAwMCwzOC42ODI3OSwtMTIxLjQ1MzUwOQ0xMjA3IENSRVNDRU5ETyBEUixST1NFVklMTEUsOTU2NzgsQ0EsMywyLDE3NzAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODI1ODcsMzguNzI0NDYsLTEyMS4yOTI4MjkNNzU3NyBFRERZTEVFIFdBWSxTQUNSQU1FTlRPLDk1ODIyLENBLDQsMiwxNDM2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTg1MDc0LDM4LjQ4MjkxLC0xMjEuNDkxNTA5DTgzNjkgRk9QUElBTk8gV0FZLFNBQ1JBTUVOVE8sOTU4MjksQ0EsMywyLDExMjQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODU4MzMsMzguNDUzODM5LC0xMjEuMzU3OTE5DTg4MTcgU0FXVEVMTEUgV0FZLFNBQ1JBTUVOVE8sOTU4MjYsQ0EsNCwyLDExMzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxODY3ODUsMzguNTY1MzIyLC0xMjEuMzc0MjUxDTE5MTAgQk9OQVZJU1RBIFdBWSxTQUNSQU1FTlRPLDk1ODMyLENBLDMsMiwxNjM4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTg3MDAwLDM4LjQ3NjA0OCwtMTIxLjQ5NDk2MQ04IFRJREUgQ1QsU0FDUkFNRU5UTyw5NTgzMyxDQSwzLDIsMTMyOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODMzNSwzOC42MDk4NjQsLTEyMS40OTIzMDQNODk1MiBST0NLWSBDUkVFSyBDVCxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEyNzMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTAwMDAsMzguNDMxMjM5LC0xMjEuNDQwMDENNDM1IEVYQ0hBTkdFIFNULFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywxLDEwODIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTAwMDAsMzguNjU5NDM0LC0xMjEuNDU1MjM2DTEwMTA1IE1PTlRFIFZBTExPIENULFNBQ1JBTUVOVE8sOTU4MjcsQ0EsNCwyLDE1NzgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTAwMDAsMzguNTczOTE3LC0xMjEuMzE2OTE2DTM5MzAgQU5OQUJFTExFIEFWRSxST1NFVklMTEUsOTU2NjEsQ0EsMiwxLDc5NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5MDAwMCwzOC43Mjc2MDksLTEyMS4yMjY0OTQNNDg1NCBUQU5HRVJJTkUgQVZFLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEzODYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTEyNTAsMzguNDc4MjM5LC0xMjEuNDQ2MzI2DTI5MDkgU0hBV04gV0FZLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDMsMiwxNDUyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMTkzMDAwLDM4LjU4OTkyNSwtMTIxLjI5OTA1OQ00MjkwIEJMQUNLRk9SRCBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTUxMyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5MzUwMCwzOC40NzA0OTQsLTEyMS40NTQxNjINNTg5MCBUVCBUUkFLLEZPUkVTVEhJTEwsOTU2MzEsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTQ4MTgsMzkuMDIwODA4LC0xMjAuODIxNTE4DTcwMTUgV09PRFNJREUgRFIsU0FDUkFNRU5UTyw5NTg0MixDQSw0LDIsMTU3OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5NTAwMCwzOC42OTMwNzEsLTEyMS4zMzIzNjUNNjAxOSBDSEVTSElSRSBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MTAsQ0EsNCwzLDE3MzYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTUwMDAsMzguNjc2NDM3LC0xMjEuMjc5MTY1DTMzMzAgVklMTEFHRSBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsMiwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTUwMDAsMzguNjkwNTA0LC0xMjAuOTk2MjQ1DTI1NjEgVkVSTkEgV0FZLFNBQ1JBTUVOVE8sOTU4MjEsQ0EsMywxLDE0NzMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTUwMDAsMzguNjExMDU1LC0xMjEuMzY5OTY0DTM1MjIgMjJORCBBVkUsU0FDUkFNRU5UTyw5NTgyMCxDQSwzLDEsMTE1MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDE5ODAwMCwzOC41MzI3MjUsLTEyMS40NjkwNzgNMjg4MCBDQU5ESURPIERSLFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMywyLDExMjcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxOTk5MDAsMzguNjE4MDE5LC0xMjEuNTEwMjE1DTY5MDggUElOIE9BSyBDVCxGQUlSIE9BS1MsOTU2MjgsQ0EsMywxLDExNDQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNjY0MjQsLTEyMS4zMDM2NzUNNTczMyBBTkdFTElOQSBBVkUsQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDEsOTcyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjAxMDAwLDM4LjYyMjYzNCwtMTIxLjMzMDg0Ng03ODQ5IEJPTk5ZIERPV05TIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDIzMDYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDQ5MTgsMzguNDIxMzksLTEyMS40MTEzMzkNODcxNiBMT05HU1BVUiBXQVksQU5URUxPUEUsOTU4NDMsQ0EsMywyLDE0NzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNzI0MDgzLC0xMjEuMzU4NA02MzIwIEVMIERPUkFETyBTVCxFTCBET1JBRE8sOTU2MjMsQ0EsMiwxLDEwNDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNjc4NzU4LC0xMjAuODQ0MTE4DTIzMjggRE9ST1RIWSBKVU5FIFdBWSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxNDMwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjA1ODc4LDM4LjY0MTcyNywtMTIxLjQxMjcwMw0xOTg2IERBTlZFUlMgV0FZLFNBQ1JBTUVOVE8sOTU4MzIsQ0EsNCwyLDE4MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDcwMDAsMzguNDc3MjMsLTEyMS40OTI1NjgNNzkwMSBHQVpFTExFIFRSQUlMIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSw0LDIsMTk1MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIwNzc0NCwzOC43MTE3NCwtMTIxLjM0MjY3NQ02MDgwIEJSSURHRUNST1NTIERSLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDExMjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMDkwMDAsMzguNjgxOTUyLC0xMjEuNTA1MDA5DTIwIEdST1RIIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxMjMyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjEwMDAwLDM4LjY0MDgwNywtMTIxLjUzMzUyMg0xOTAwIERBTkJST09LIERSLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMSwxLDk4NCxDb25kbyxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIxMDk0NCwzOC42Njg0MzMsLTEyMS41MDM0NzENMTQwIFZFTlRPIENULFJPU0VWSUxMRSw5NTY3OCxDQSwzLDIsMCxDb25kbyxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIxMjUwMCwzOC43OTM1MzMsLTEyMS4yODk2ODUNODQ0MiBLRVVTTUFOIFNULEVMSyBHUk9WRSw5NTc1OCxDQSw0LDIsMjMyOSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIxMzc1MCwzOC40NDk2NTEsLTEyMS40MTQ3MDQNOTU1MiBTVU5MSUdIVCBMTixFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEzNTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMTUwMDAsMzguNDEwNTYxLC0xMjEuNDA0MzI3DTI3MzMgWVVNQSBDVCxDQU1FUk9OIFBBUkssOTU2ODIsQ0EsMiwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMTUwMDAsMzguNjkxMjE1LC0xMjAuOTk0OTQ5DTE0MDcgVElGRkFOWSBDSVIsUk9TRVZJTExFLDk1NjYxLENBLDQsMSwxMzc2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjE1MDAwLDM4LjczNjM5MiwtMTIxLjI2NjQNNjM2IENSRVNUVklFVyBEUixESUFNT05EIFNQUklOR1MsOTU2MTksQ0EsMywyLDEzMDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMTYwMzMsMzguNjg4MjU1LC0xMjAuODEwMjM1DTE1MjggSEVTS0VUIFdBWSxTQUNSQU1FTlRPLDk1ODI1LENBLDQsMiwxNTY2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjIwMDAwLDM4LjU5MzU5OCwtMTIxLjQwMzYzNw0yMzI3IDMyTkQgU1QsU0FDUkFNRU5UTyw5NTgxNyxDQSwyLDEsMTExNSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC41NTc0MzMsLTEyMS40NzAzNA0xODMzIDJORCBBVkUsU0FDUkFNRU5UTyw5NTgxOCxDQSwyLDEsMTAzMixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC41NTY4MTgsLTEyMS40OTA2NjkNNzI1MiBDQVJSSUFHRSBEUixDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDIsMTQxOSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC42OTgwNTgsLTEyMS4yOTQ4OTMNOTgxNSBQQVNPIEZJTk8gV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSwzLDIsMTI2MSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC40MDQ4ODgsLTEyMS40NDM5OTgNNTUzMiBFTkdMRSBSRCxDQVJNSUNIQUVMLDk1NjA4LENBLDIsMiwxNjM3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjIwNzAyLDM4LjYzMTczLC0xMjEuMzM1Mjg2DTExMzkgQ0xJTlRPTiBSRCxTQUNSQU1FTlRPLDk1ODI1LENBLDQsMiwxNzc2LE11bHRpLUZhbWlseSxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMTI1MCwzOC41ODUyOTEsLTEyMS40MDY4MjQNOTE3NiBTQUdFIEdMRU4gV0FZLEVMSyBHUk9WRSw5NTc1OCxDQSwzLDIsMTMzOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjAwMCwzOC40MjM5MTMsLTEyMS40MzkxMTUNOTk2NyBIQVRIRVJUT04gV0FZLEVMSyBHUk9WRSw5NTc1NyxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjUwMCwzOC4zMDUyLC0xMjEuNDAzMw05MjY0IEJPVUxERVIgUklWRVIgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw1LDIsMjI1NCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyMjc1MCwzOC40MjE3MTMsLTEyMS4zNDUxOTENMzIwIEdST1RIIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDMsMiwxNDQxLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjI1MDAwLDM4LjYzODg4MiwtMTIxLjUzMTg4Mw0xMzcgR1VOTklTT04gQVZFLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsNCwyLDE5OTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMjUwMDAsMzguNjUwNzI5LC0xMjEuNDY2NDgzDTgyMDkgUklWQUxMTyBXQVksU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDMsMjEyNixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIyODc1MCwzOC40NTk1MjQsLTEyMS4zNTAxDTg2MzcgUEVSSVdJTktMRSBDSVIsRUxLIEdST1ZFLDk1NjI0LENBLDMsMiwxMDk0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjI5MDAwLDM4LjQ0MzE4NCwtMTIxLjM2NDM4OA0zNDI1IE1FQURPVyBXQVksUk9DS0xJTiw5NTY3NyxDQSwzLDIsMTQ2MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIzMDA5NSwzOC43OTgwMjgsLTEyMS4yMzUzNjQNMTA3IEpBUlZJUyBDSVIsU0FDUkFNRU5UTyw5NTgzNCxDQSw1LDMsMjI1OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjUwMCwzOC42Mzk4OTEsLTEyMS41Mzc2MDMNMjMxOSBUSE9SRVMgU1QsUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywyLDEwNzQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyMzMwMDAsMzguNTk2NzUsLTEyMS4zMTI3MTYNODkzNSBNT1VOVEFJTiBIT01FIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMjExMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIzMzUwMCwzOC4zODc1MSwtMTIxLjM3MDI3Ng0yNTY2IFNFUkVOQVRBIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDMsMiwxNjg2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjM5MDAwLDM4LjY3MTU1NiwtMTIxLjUyMDkxNg00MDg1IENPVU5UUlkgRFIsQU5URUxPUEUsOTU4NDMsQ0EsNCwzLDE5MTUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDAwMDAsMzguNzA2MjA5LC0xMjEuMzY5NTA5DTkyOTcgVFJPVVQgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMjM2NyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI0MDAwMCwzOC40MjA2MzcsLTEyMS4zNzU3OTgNNyBBUkNISUJBTEQgQ1QsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTk2MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI0MDk3MSwzOC40NDMzMDUsLTEyMS40MzUyOTYNMTExMzAgRUVMIFJJVkVSIENULFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDIsMiwxNDA2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQyMDAwLDM4LjYyNTkzMiwtMTIxLjI3MTUxNw04MzIzIFJFREJBTksgV0FZLFNBQ1JBTUVOVE8sOTU4MjksQ0EsMywyLDE3ODksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDM0NTAsMzguNDU1NzUzLC0xMjEuMzQ5MjczDTE2IEJST05DTyBDUkVFSyBDVCxTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwxODc2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQzNTAwLDM4LjY3NDIyNiwtMTIxLjUyNTQ5Nw04MzE2IE5PUlRIQU0gRFIsQU5URUxPUEUsOTU4NDMsQ0EsMywyLDEyMzUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDY1NDQsMzguNzIwNzY3LC0xMjEuMzc2Njc4DTQyNDAgV0lOSkUgRFIsQU5URUxPUEUsOTU4NDMsQ0EsNCwyLDI1MDQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDY3NTAsMzguNzA4ODQsLTEyMS4zNTk1NTkNMzU2OSBTT0RBIFdBWSxTQUNSQU1FTlRPLDk1ODM0LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQ3MDAwLDM4LjYzMTEzOSwtMTIxLjUwMTg3OQ01MTE4IFJPQkFOREVSIFNULENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDE2NzYsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNDcwMDAsMzguNjU3MjY3LC0xMjEuMzEwMzUyDTU5NzYgS1lMRU5DSCBDVCxDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSwzLDIsMTM2NyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI0OTAwMCwzOC43MDg5NjYsLTEyMS4zMjQ2Nw05MjQ3IERFTEFJUiBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDQsMywxODk5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjQ5MDAwLDM4LjQyMjI0MSwtMTIxLjQ1ODAyMg05MDU0IERFU0NFTkRBTlQgRFIsRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxNjM2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjUwMDAwLDM4LjQyODg1MiwtMTIxLjQxNTYyOA0zNDUwIFdISVROT1IgQ1QsU0FDUkFNRU5UTyw5NTgyMSxDQSwzLDIsMTgyOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI1MDAwMCwzOC42Mjc2OTgsLTEyMS4zNjk2OTgNNjI4OCBMT05FVFJFRSBCTFZELFJPQ0tMSU4sOTU3NjUsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNTAwMDAsMzguODA0OTkzLC0xMjEuMjkzNjA5DTkzNTUgTUFUQURPUiBXQVksU0FDUkFNRU5UTyw5NTgyNixDQSw0LDIsMTQzOCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI1MjAwMCwzOC41NTU2MzMsLTEyMS4zNTA2OTENODY3MSBTVU1NRVIgU1VOIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDE0NTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNTUwMDAsMzguNDQyODQ1LC0xMjEuMzczMjcyDTE4OTAgR0VORVZBIFBMLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMywxLDE1MjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNTUwMDAsMzguNTk5NDQ5LC0xMjEuNDAwMzA1DTE4MTMgQVZFTklEQSBNQVJUSU5BLFJPU0VWSUxMRSw5NTc0NyxDQSwzLDIsMTUwNixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI1NTAwMCwzOC43NzY2NDksLTEyMS4zMzk1ODkNMTkxIEJBUk5IQVJUIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDQsMiwyNjA1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjU3MjAwLDM4LjY3NTU5NCwtMTIxLjUxNTg3OA02MjIxIEdSRUVOIFRPUCBXQVksT1JBTkdFVkFMRSw5NTY2MixDQSwzLDIsMTE5NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI2MDAwMCwzOC42Nzk0MDksLTEyMS4yMTkxMDcNMjI5OCBQUklNUk9TRSBMTixMSU5DT0xOLDk1NjQ4LENBLDMsMiwxNjIxLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjYwMDAwLDM4Ljg5OTE4LC0xMjEuMzIyNTE0DTU2MzUgTE9TIFBVRUJMT1MgV0FZLFNBQ1JBTUVOVE8sOTU4MzUsQ0EsMywyLDE4MTEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNjM1MDAsMzguNjc5MTkxLC0xMjEuNTM3NjIyDTEwMTY1IExPRlRPTiBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxNTQwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjY2NTEwLDM4LjM4NzcwOCwtMTIxLjQzNjUyMg0xMjUxIEdSRUVOIFJBVklORSBEUixMSU5DT0xOLDk1NjQ4LENBLDQsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjY3NzUwLDM4Ljg4MTU2LC0xMjEuMzAxMzQzDTYwMDEgU0hPTyBGTFkgUkQsUExBQ0VSVklMTEUsOTU2NjcsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzAwMDAsMzguODEzNTQ2LC0xMjAuODA5MjU0DTMwNDAgUEFSS0hBTSBEUixST1NFVklMTEUsOTU3NDcsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzEwMDAsMzguNzcwODM1LC0xMjEuMzY2OTk2DTI2NzQgVEFNIE8gU0hBTlRFUiBEUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzI3MDAsMzguNjk1ODAxLC0xMjEuMDc5MjE2DTYwMDcgTUFSWUJFTExFIExOLFNISU5HTEUgU1BSSU5HUyw5NTY4MixDQSwwLDAsMCxVbmtvd24sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzUwMDAsMzguNjQzNDcsLTEyMC44ODgxODMNOTk0OSBORVNUTElORyBDSVIsRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxNTQzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjc1MDAwLDM4LjM5NzQ1NSwtMTIxLjQ2ODM5MQ0yOTE1IEhPTERSRUdFIFdBWSxTQUNSQU1FTlRPLDk1ODM1LENBLDUsMywyNDk0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjc2MDAwLDM4LjY2MzcyOCwtMTIxLjUyNTgzMw0yNjc4IEJSSUFSVE9OIERSLExJTkNPTE4sOTU2NDgsQ0EsMywyLDE2NTAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzY1MDAsMzguODQ0MTE2LC0xMjEuMjc0ODA2DTI5NCBTUEFSUk9XIERSLEdBTFQsOTU2MzIsQ0EsNCwzLDIyMTQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyNzgwMDAsMzguMjU4OTc2LC0xMjEuMzIxMjY2DTI5ODcgRElPUklURSBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSw1LDMsMjI4MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI3OTAwMCwzOC42NjczMzIsLTEyMS41MjgyNzYNNjMyNiBBUFBJQU4gV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDE0NDMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyODAwMDAsMzguNjYyNjYsLTEyMS4zMTY4NTgNNjkwNSBDT0JBTFQgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDQsMiwxNTgyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjgwMDAwLDM4LjY5MTM5MywtMTIxLjMwNTIxNQ04OTg2IEhBRkxJTkdFUiBXQVksRUxLIEdST1ZFLDk1NzU3LENBLDMsMiwxODU3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjg1MDAwLDM4LjM5NzkyMywtMTIxLjQ1MDIxOQ0yOTE2IEJBQlNPTiBEUixFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDE3MzUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyODgwMDAsMzguNDE3MTkxLC0xMjEuNDczODk3DTEwMTMzIE5FQkJJT0xPIENULEVMSyBHUk9WRSw5NTYyNCxDQSw0LDMsMjA5NixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI4OTAwMCwzOC4zOTEwODUsLTEyMS4zNDcyMzENMTEwMyBDT01NT05TIERSLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMywyLDE3MjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTAwMDAsMzguNTY3ODY1LC0xMjEuNDEwNjk5DTQ2MzYgVEVBTCBCQVkgQ1QsQU5URUxPUEUsOTU4NDMsQ0EsNCwyLDIxNjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTAwMDAsMzguNzA0NTU0LC0xMjEuMzU0NzUzDTE1MjQgWU9VTkdTIEFWRSxTQUNSQU1FTlRPLDk1ODM4LENBLDQsMiwxMzgyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMjkzOTk2LDM4LjY0NDkyNywtMTIxLjQzMDU0DTg2NSBDT05SQUQgQ1QsUExBQ0VSVklMTEUsOTU2NjcsQ0EsMywyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTQwMDAsMzguNzI5OTkzLC0xMjAuODAyNDU4DTg0NjMgVEVSUkFDT1RUQSBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsNCwyLDE3MjEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTQxNzMsMzguNDUwNTQ4LC0xMjEuMzYzMDAyDTU3NDcgS0lORyBSRCxMT09NSVMsOTU2NTAsQ0EsNCwyLDEzMjgsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTUwMDAsMzguODI1MDk2LC0xMjEuMTk4NDMyDTgyNTMgS0VFR0FOIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTgwMDAsMzguNDQ2Mjg2LC0xMjEuNDAwODE3DTkyMDQgVFJPVVQgV0FZLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMTk4MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDI5ODAwMCwzOC40MjIyMjEsLTEyMS4zNzU3OTkNMTgyOCAyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MTgsQ0EsMiwxLDExNDQsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwyOTkwMDAsMzguNTU2ODQ0LC0xMjEuNDkwNzY5DTExMTMgQ09NTU9OUyBEUixTQUNSQU1FTlRPLDk1ODI1LENBLDIsMiwxNjIzLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjU2Nzc5NSwtMTIxLjQxMDcwMw0yMzQxIEJJRyBTVFJJS0UgVFJMLENPT0wsOTU2MTQsQ0EsMywyLDE0NTcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzMDAwMDAsMzguOTA1OTI3LC0xMjAuOTc1MTY5DTk0NTIgUkVEIFNQUlVDRSBXQVksRUxLIEdST1ZFLDk1NjI0LENBLDYsMywyNTU1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzAwMDAwLDM4LjQwNDUwNSwtMTIxLjM0NjkzOA01Nzc2IFRFUlJBQ0UgRFIsUk9DS0xJTiw5NTc2NSxDQSwzLDIsMTU3NyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMwMDU2NywzOC44MDA1MzksLTEyMS4yNjA5NzkNNTkwOCBNQ0xFQU4gRFIsRUxLIEdST1ZFLDk1NzU3LENBLDUsMywyNTkyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzAzMDAwLDM4LjM4OTEyLC0xMjEuNDM0Mzg5DTgyMTUgUEVSRUdSSU5FIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSwzLDIsMTQwMSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMwNTAwMCwzOC43MTU0OTMsLTEyMS4yNjI5Mw0xMTA0IEhJTExTREFMRSBMTixMSU5DT0xOLDk1NjQ4LENBLDQsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzA2MDAwLDM4Ljg2NTAxNywtMTIxLjMyMzAyDTI5NDkgUEFOQU1BIEFWRSxDQVJNSUNIQUVMLDk1NjA4LENBLDMsMiwxNTAyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEwMDAwLDM4LjYxODM2OSwtMTIxLjMyNjE4Nw0xMzU2IEhBUlRMRVkgV0FZLEZPTFNPTSw5NTYzMCxDQSwzLDIsMTMyNyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxMDAwMCwzOC42NTE2MTcsLTEyMS4xMzE2NzQNNjMzIEhBTklTQ0ggRFIsUk9TRVZJTExFLDk1Njc4LENBLDQsMywxODAwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEwMDAwLDM4Ljc2MzQ5LC0xMjEuMjc1ODgxDTYzIEFOR0VMIElTTEFORCBDSVIsU0FDUkFNRU5UTyw5NTgzMSxDQSw0LDIsMjE2OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxMTUxOCwzOC40OTA0MDgsLTEyMS41NDc2NjQNMTU3MSBXSUxEIE9BSyBMTixMSU5DT0xOLDk1NjQ4LENBLDUsMywyNDU3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEyMDAwLDM4Ljg0NDE0NCwtMTIxLjI3NDE3NA01MjIyIENPUFBFUiBTVU5TRVQgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzEzMDAwLDM4LjUyOTE4MSwtMTIxLjIyNDc1NQ01NjAxIFNQSU5EUklGVCBMTixPUkFOR0VWQUxFLDk1NjYyLENBLDQsMiwyMDA0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4LjY2ODI4OSwtMTIxLjE5MjMxNg02NTIgRklGVEVFTiBNSUxFIERSLFJPU0VWSUxMRSw5NTY3OCxDQSw0LDMsMjIxMixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxNTAwMCwzOC43NzU4NzIsLTEyMS4yOTg4NjQNNzkyMSBET0UgVFJBSUwgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDUsMywzMTM0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4LjcxMTkyNywtMTIxLjM0MzYwOA00MjA0IExVU0sgRFIsU0FDUkFNRU5UTyw5NTg2NCxDQSwzLDIsMTM2MCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMxNTAwMCwzOC42MDY1NjksLTEyMS4zNjg0MjQNNTMyMSBERUxUQSBEUixST0NLTElOLDk1NzY1LENBLDQsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzE1MDAwLDM4LjgxNTQ5MywtMTIxLjI2MjkwOA01NjA4IFJPU0VEQUxFIFdBWSxTQUNSQU1FTlRPLDk1ODIyLENBLDMsMiwxMjc2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzIwMDAwLDM4LjUyNTExNSwtMTIxLjUxODY4OQ0zMzcyIEJFUkVUQU5JQSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSw0LDMsMjk2MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMyMjAwMCwzOC42NDk3NywtMTIxLjUzNDQ4DTI0MjIgU1RFRkFOSUUgRFIsUk9DS0xJTiw5NTc2NSxDQSw0LDIsMTg4OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMyNTAwMCwzOC44MjI3MywtMTIxLjI2NDI0DTMyMzIgUEFSS0hBTSBEUixST1NFVklMTEUsOTU3NDcsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzMjU1MDAsMzguNzcyODIxLC0xMjEuMzY0ODIxDTQ0OCBFTE1XT09EIENULFJPU0VWSUxMRSw5NTY3OCxDQSwzLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMyNjk1MSwzOC43NzE5MTcsLTEyMS4zMDQ0MzkNMTIxNCBEQVdOV09PRCBEUixHQUxULDk1NjMyLENBLDMsMiwxNTQ4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzI4MzcwLDM4LjI5MDExOSwtMTIxLjI4NjAyMw0xNDQwIEVNRVJBTEQgTE4sTElOQ09MTiw5NTY0OCxDQSwyLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDMzMDAwMCwzOC44NjE4NjQsLTEyMS4yNjc0NzgNMzM0OSBDT1JWSU5BIERSLFJBTkNITyBDT1JET1ZBLDk1NjcwLENBLDQsMywyMTA5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzMwMDAwLDM4LjU4MDU0NSwtMTIxLjI3OTAxNg0xMDI1NCBKVUxJQU5BIFdBWSxTQUNSQU1FTlRPLDk1ODI3LENBLDQsMiwyNDg0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzMxMjAwLDM4LjU2ODAzLC0xMjEuMzA5OTY2DTE0OSBPUFVTIENJUixTQUNSQU1FTlRPLDk1ODM0LENBLDQsMywyMjU4LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzMyMDAwLDM4LjYzNTQsLTEyMS41MzQ5OQ01ODAgUkVHRU5DWSBQQVJLIENJUixTQUNSQU1FTlRPLDk1ODM1LENBLDMsMywyMjEyLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzM0MDAwLDM4LjY3NDg2NCwtMTIxLjQ5NTgNNTU0NCBDQU1BUyBDVCxPUkFOR0VWQUxFLDk1NjYyLENBLDMsMiwxNjE2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzM1MDAwLDM4LjY2NzcwMywtMTIxLjIwOTQ1Ng01MTAyIEFSQ0hDUkVTVCBXQVksU0FDUkFNRU5UTyw5NTgzNSxDQSw0LDIsMjM3MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM0MTAwMCwzOC42Njg0MSwtMTIxLjQ5NDYzOQ01NzI1IEJBTEZPUiBSRCxST0NLTElOLDk1NzY1LENBLDUsMywyNjA2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzQ2Mzc1LDM4LjgwNzgxNiwtMTIxLjI3MDAwOA03Njk3IFJPU0VIQUxMIERSLFJPU0VWSUxMRSw5NTY3OCxDQSw1LDMsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM0NzIyNSwzOC43OTIxOCwtMTIxLjI4NTk1DTQ4MjEgSFVUU09OIFdBWSxFTEsgR1JPVkUsOTU3NTcsQ0EsNSwzLDI4NzcsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNDkwMDAsMzguMzg2MjM5LC0xMjEuNDQ4MTU5DTQ1MDkgV0lOSkUgRFIsQU5URUxPUEUsOTU4NDMsQ0EsMywyLDI5NjAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNTAwMDAsMzguNzA5NTEzLC0xMjEuMzU5MzU3DTE5NjUgTEFVUkVMSFVSU1QgTE4sTElOQ09MTiw5NTY0OCxDQSwyLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM1MDAwMCwzOC44NTM4NjksLTEyMS4yNzE3NDINNjcwOSBST1NFIEJSSURHRSBEUixST1NFVklMTEUsOTU2NzgsQ0EsMywyLDIxNzIsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNTAwMDAsMzguNzkyNDYxLC0xMjEuMjc1NzExDTI4MSBTUFlHTEFTUyBITCxST1NFVklMTEUsOTU2NzgsQ0EsMywyLDIxMDAsQ29uZG8sRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzNTAwMDAsMzguNzYyMTUzLC0xMjEuMjgzNDUxDTc3MDkgUklWRVIgVklMTEFHRSBEUixTQUNSQU1FTlRPLDk1ODMxLENBLDMsMiwxNzk1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzUxMDAwLDM4LjQ4MzIxMiwtMTIxLjU0MDE5DTQxNjUgQlJJU0JBTkUgQ0lSLEVMIERPUkFETyBISUxMUyw5NTc2MixDQSwzLDIsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM1NjIwMCwzOC42ODYwNjcsLTEyMS4wNzM0MTMNNTA2IEJFREZPUkQgQ1QsUk9TRVZJTExFLDk1NjYxLENBLDQsMiwyMjk1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzYwMDAwLDM4LjczMzk4NSwtMTIxLjIzNjc2Ng05MDQ4IFBJTlRPIENBTllPTiBXQVksUk9TRVZJTExFLDk1NzQ3LENBLDQsMywyNTc3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzY3NDYzLDM4Ljc5MjQ5MywtMTIxLjMzMTg5OQ0yMjc0IElWWSBCUklER0UgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzc1MDAwLDM4Ljc3ODU2MSwtMTIxLjM2MjAwOA0xNDAwNCBXQUxOVVQgQVZFLFdBTE5VVCBHUk9WRSw5NTY5MCxDQSwzLDEsMTcyNyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM4MDAwMCwzOC4yNDc2NTksLTEyMS41MTUxMjkNNjkwNSBGUkFOS0ZPUlQgQ1QsRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxNDg1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzgwNTc4LDM4LjQyOTEzOSwtMTIxLjQyMzQ0NA0zNjIxIFdJTlRVTiBEUixDQVJNSUNIQUVMLDk1NjA4LENBLDMsMiwxNjU1LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzg2MjIyLDM4LjYyOTkyOSwtMTIxLjMyMzA4Ng0yMDEgS0lSS0xBTkQgQ1QsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM4OTAwMCwzOC44NjcxMjUsLTEyMS4zMTkwODUNMTIwNzUgQVBQTEVTQlVSWSBDVCxSQU5DSE8gQ09SRE9WQSw5NTc0MixDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM5MDAwMCwzOC41MzU3LC0xMjEuMjI0OQ0xOTc1IFNJREVTQURETEUgV0FZLFJPU0VWSUxMRSw5NTY2MSxDQSwzLDIsMjA0OSxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDM5NTUwMCwzOC43Mzc4NzIsLTEyMS4yNDkwMjUNNTQyMCBBTE1PTkQgRkFMTFMgV0FZLFJBTkNITyBDT1JET1ZBLDk1NzQyLENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsMzk2MDAwLDM4LjUyNzM4NCwtMTIxLjIzMzUzMQ05Njc3IFBJTExJVEVSSSBDVCxFTEsgR1JPVkUsOTU3NTcsQ0EsNSwzLDI4NzUsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwzOTcwMDAsMzguNDA1NTcxLC0xMjEuNDQ1MTg2DTE1MTUgRUwgQ0FNSU5PIFZFUkRFIERSLExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MDAwMDAsMzguOTA0ODY5LC0xMjEuMzIwNzUNNTU2IFBMQVRUIENJUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsNCwyLDIxOTksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MDAwMDAsMzguNjU2Mjk5LC0xMjEuMDc5NzgzDTE3OTIgRElBTU9ORCBXT09EUyBDSVIsUk9TRVZJTExFLDk1NzQ3LENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDEyNTAwLDM4LjgwODU4MSwtMTIxLjMyNzg1DTExMjQgUEVSS0lOUyBXQVksU0FDUkFNRU5UTyw5NTgxOCxDQSwyLDEsMTMwNCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQxMzUwMCwzOC41NTE2MTEsLTEyMS41MDQ0MzcNNDc0OCBTQUxFTSBXQVksQ0FSTUlDSEFFTCw5NTYwOCxDQSwzLDIsMjMzNCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQxNTAwMCwzOC42MzQxMTEsLTEyMS4zNTMzNzYNMTQ4NCBSQURDTElGRkUgV0FZLEFVQlVSTiw5NTYwMyxDQSw0LDMsMjI3OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQyMDQ1NCwzOC45MzU1NzksLTEyMS4wNzkwMTgNNTEgQUlLRU4gV0FZLFNBQ1JBTUVOVE8sOTU4MTksQ0EsMywxLDE0OTMsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MjUwMDAsMzguNTc5MzI2LC0xMjEuNDQyNTINMjgxOCBLTk9MTFdPT0QgRFIsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDMsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDI1MDAwLDM4LjY2OTgwNSwtMTIwLjk5OTAwNw0xNTM2IFNUT05FWSBDUk9TUyBMTixMSU5DT0xOLDk1NjQ4LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDMzNTAwLDM4Ljg2MDAwNywtMTIxLjMxMDk0Ng01MDkgQ0FTVElMTElBTiBDVCxST1NFVklMTEUsOTU3NDcsQ0EsNSwzLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0MzgwMDAsMzguODA0NzczLC0xMjEuMzQxMTk1DTcwMCBIVU5URVIgUEwsRk9MU09NLDk1NjMwLENBLDUsMywyNzg3LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDQxMDAwLDM4LjY2MDUxLC0xMjEuMTYzNjg5DTEyNDAgRkFZIENJUixTQUNSQU1FTlRPLDk1ODMxLENBLDUsMywyODI0LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDQ1MDAwLDM4LjUwNjM3MSwtMTIxLjUxNDQ1Ng0xMTEzIFNBTkRXSUNLIFdBWSxGT0xTT00sOTU2MzAsQ0EsNCwzLDMyNjEsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0NDYwMDAsMzguNjczODgyLC0xMjEuMTA1MDc3DTMxMDggREVMV09PRCBXQVksU0FDUkFNRU5UTyw5NTgyMSxDQSw0LDIsMjA1MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDQ1MDAwMCwzOC42MjE1NjYsLTEyMS4zNzA4ODINMzIxMiBDT1JOSUNIRSBMTixST1NFVklMTEUsOTU2NjEsQ0EsNCwzLDIzNzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0NTUwMDAsMzguNzUwNTc3LC0xMjEuMjMyNzY4DTIxNTkgQkVDS0VUVCBEUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMywyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0NjAwMDAsMzguNjgwMDkyLC0xMjEuMDM2NDY3DTQzMjAgRk9VUiBTRUFTT05TIFJELFBMQUNFUlZJTExFLDk1NjY3LENBLDMsMiwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNDc1MDAwLDM4LjY5MDg2NywtMTIwLjY5MzY0MQ02NDAxIE1BUlNIQUxMIFJELEdBUkRFTiBWQUxMRVksOTU2MzMsQ0EsMywyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0OTAwMDAsMzguODQyNTUsLTEyMC44NzU0DTIwODkgQkVDS0VUVCBEUixFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsNCwyLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw0OTMwMDAsMzguNjgxNzc4LC0xMjEuMDM1ODM4DTYxOTYgRURHRUhJTEwgRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDUsNCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTA4MDAwLDM4LjY3NjEzMSwtMTIxLjAzODkzMQ0yMDAgSElMTFNGT1JEIENULFJPU0VWSUxMRSw5NTc0NyxDQSwwLDAsMCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDUxMTAwMCwzOC43ODAwNTEsLTEyMS4zNzg3MTgNODIxNyBQTFVNRVJJQSBBVkUsRkFJUiBPQUtTLDk1NjI4LENBLDMsMiwzMTczLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTI1MDAwLDM4LjY1MDczNSwtMTIxLjI1ODYyOA00ODQxIFZJTExBR0UgR1JFRU4gRFIsRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTMzMDAwLDM4LjY2NDA2NiwtMTIxLjA1NjczNQ0zODYzIExBUyBQQVNBUyBXQVksU0FDUkFNRU5UTyw5NTg2NCxDQSwzLDEsMTM0OCxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDU0NTAwMCwzOC41ODg5MzYsLTEyMS4zNzM2MDYNODIwIERBTkEgQ1QsQVVCVVJOLDk1NjAzLENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTYwMDAwLDM4Ljg2NTI0NiwtMTIxLjA5NDg2OQ0xMTY1IDM3VEggU1QsU0FDUkFNRU5UTyw5NTgxNixDQSwyLDEsMTI1MixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDU3NTAwMCwzOC41Njg0MzgsLTEyMS40NTc4NTQNMjAzIENBU0NBREUgRkFMTFMgRFIsRk9MU09NLDk1NjMwLENBLDQsMywzMjI5LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNTc1MDAwLDM4LjcwMzk2MiwtMTIxLjE4NzENOTg4MCBJWklMREEgQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw1LDQsMzg2MyxSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDU5ODY5NSwzOC40NTMyNiwtMTIxLjMyNTczDTE4MDAgQVZPTkRBTEUgRFIsUk9TRVZJTExFLDk1NzQ3LENBLDUsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4Ljc5ODQ0OCwtMTIxLjM0NDA1NA00NjIwIEJST01XSUNIIENULFJPQ0tMSU4sOTU2NzcsQ0EsNCwzLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2MDAwMDAsMzguNzcyNjcyLC0xMjEuMjIwMjMyDTYyMCBLRVNXSUNLIENULEdSQU5JVEUgQkFZLDk1NzQ2LENBLDQsMywyMzU2LFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4LjczMjA5NiwtMTIxLjIxOTE0Mg00NDc4IEdSRUVOQlJBRSBSRCxST0NLTElOLDk1Njc3LENBLDAsMCwwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAwLDM4Ljc4MTEzNCwtMTIxLjIyMjgwMQ04NDMyIEJSSUdHUyBEUixST1NFVklMTEUsOTU3NDcsQ0EsNSwzLDM1NzksUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2MTAwMDAsMzguNzg4NjEsLTEyMS4zMzk0OTUNMjAwIENSQURMRSBNT1VOVEFJTiBDVCxFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2MjI1MDAsMzguNjQ3OCwtMTIxLjAzMDkNMjA2NSBJTVBSRVNTSU9OSVNUIFdBWSxFTCBET1JBRE8gSElMTFMsOTU3NjIsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw2ODAwMDAsMzguNjgyOTYxLC0xMjEuMDMzMjUzDTI5ODIgQUJFUkRFRU4gTE4sRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDQsMywwLFJlc2lkZW50aWFsLEZyaSBNYXkgMTYgMDA6MDA6MDAgRURUIDIwMDgsODc5MDAwLDM4LjcwNjY5MiwtMTIxLjA1ODg2OQ05NDAxIEJBUlJFTCBSQUNFUiBDVCxXSUxUT04sOTU2OTMsQ0EsNCwzLDQ0MDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCw4ODQ3OTAsMzguNDE1Mjk4LC0xMjEuMTk0ODU4DTM3MjAgVklTVEEgREUgTUFERVJBLExJTkNPTE4sOTU2NDgsQ0EsMywzLDAsUmVzaWRlbnRpYWwsRnJpIE1heSAxNiAwMDowMDowMCBFRFQgMjAwOCwxNTUxLDM4Ljg1MTY0NSwtMTIxLjIzMTc0Mg0xNDE1MSBJTkRJTyBEUixTTE9VR0hIT1VTRSw5NTY4MyxDQSwzLDQsNTgyMixSZXNpZGVudGlhbCxGcmkgTWF5IDE2IDAwOjAwOjAwIEVEVCAyMDA4LDIwMDAsMzguNDkwNDQ3LC0xMjEuMTI5MzM3DTc0MDEgVE9VTE9OIExOLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsNCwyLDE1MTIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw1Njk1MCwzOC40ODg2MjgsLTEyMS4zODc3NTkNOTEyNyBORVdIQUxMIERSIFVuaXQgMzQsU0FDUkFNRU5UTyw5NTgyNixDQSwxLDEsNjExLENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsNjAwMDAsMzguNTQyNDE5LC0xMjEuMzU5OTA0DTU5MzcgQkFNRk9SRCBEUixTQUNSQU1FTlRPLDk1ODIzLENBLDIsMSw4NzYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw2MTAwMCwzOC40NzExMzksLTEyMS40MzIyNTUNNTY3MiBISUxMU0RBTEUgQkxWRCxTQUNSQU1FTlRPLDk1ODQyLENBLDIsMSw5MzMsQ29uZG8sVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw2MjAwMCwzOC42NzA0NjcsLTEyMS4zNTk3OTkNMzkyMCAzOVRIIFNULFNBQ1JBTUVOVE8sOTU4MjAsQ0EsMiwxLDg2NCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDY4NTY2LDM4LjUzOTIxMywtMTIxLjQ2MzkzDTcwMSBKRVNTSUUgQVZFLFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMiwxLDEwMTEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw3MDAwMCwzOC42NDM5NzgsLTEyMS40NDk1NjINODMgQVJDQURFIEJMVkQsU0FDUkFNRU5UTyw5NTgxNSxDQSw0LDIsMTE1OCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDgwMDAwLDM4LjYxODcxNiwtMTIxLjQ2NjMyNw02MDEgUkVHR0lOQUxEIFdBWSxTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMDkyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsODU1MDAsMzguNjQ0NzIsLTEyMS40NTIyMjgNNTUwIERFTCBWRVJERSBDSVIsU0FDUkFNRU5UTyw5NTgzMyxDQSwyLDEsOTU2LENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsOTIwMDAsMzguNjI3MTQ3LC0xMjEuNTAwNzk5DTQxMTMgREFZU1RBUiBDVCxTQUNSQU1FTlRPLDk1ODI0LENBLDIsMiwxMTM5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsOTM2MDAsMzguNTIwNDY5LC0xMjEuNDU4NjA2DTczNzQgVElTREFMRSBXQVksU0FDUkFNRU5UTyw5NTgyMixDQSwzLDEsMTA1OCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDk1MDAwLDM4LjQ4ODIzOCwtMTIxLjQ3MjU2MQ0zMzQ4IFJJTyBMSU5EQSBCTFZELFNBQ1JBTUVOVE8sOTU4MzgsQ0EsMywyLDEwNDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCw5Nzc1MCwzOC42Mjg4NDIsLTEyMS40NDYxMjcNMzkzNSBMSU1FU1RPTkUgV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEzNTQsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMDQwMDAsMzguNDg0Mzc0LC0xMjEuNDYzMTU3DTYyMDggR1JBVFRBTiBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMSwxMDUxLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTA1MDAwLDM4LjY3OTI3OSwtMTIxLjM3NjYxNQ03MzkgRSBXT09EU0lERSBMTiBVbml0IEUsU0FDUkFNRU5UTyw5NTgyNSxDQSwxLDEsNjgyLENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTA3NjY2LDM4LjU3ODY3NSwtMTIxLjQwOTk1MQ00MjI1IDQ2VEggQVZFLFNBQ1JBTUVOVE8sOTU4MjQsQ0EsMywxLDExNjEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMDkwMDAsMzguNTExODkzLC0xMjEuNDU3Njc2DTE0MzQgQkVMTCBBVkUsU0FDUkFNRU5UTyw5NTgzOCxDQSwzLDEsMTAwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDExMDAwMCwzOC42NDczOTgsLTEyMS40MzI5MTQNNTYyOCBHRU9SR0lBIERSLE5PUlRIIEhJR0hMQU5EUyw5NTY2MCxDQSwzLDEsMTIyOSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDExMDAwMCwzOC42Njk1ODcsLTEyMS4zNzk4NzkNNzYyOSBCRVRIIFNULFNBQ1JBTUVOVE8sOTU4MzIsQ0EsMywyLDEyNDksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMTI1MDAsMzguNDgwMTI2LC0xMjEuNDg3ODY5DTIyNzcgQkFCRVRURSBXQVksU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTE2MSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDExNDgwMCwzOC40Nzk1OTMsLTEyMS40ODQzNA02NTYxIFdFQVRIRVJGT1JEIFdBWSxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMSwxMDEwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTE2MDAwLDM4LjQ2NTU1MSwtMTIxLjQyNjYxDTMwMzUgRVNURVBBIERSIFVuaXQgNUMsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDAsMCwwLENvbmRvLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTE5MDAwLDM4LjY4MTM5MywtMTIwLjk5NjcxMw01MTM2IENBQk9UIENJUixTQUNSQU1FTlRPLDk1ODIwLENBLDQsMiwxNDYyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTIxNTAwLDM4LjUyODQ3OSwtMTIxLjQxMTgwNg03NzMwIFJPQklORVRURSBSRCxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMiwxMjY5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTIyMDAwLDM4LjQ3NzA5LC0xMjEuNDEwNTY5DTg3IExBQ0FNIENJUixTQUNSQU1FTlRPLDk1ODIwLENBLDIsMiwxMTg4LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTIzNjc1LDM4LjUzMjM1OSwtMTIxLjQxMTY3DTE2OTEgTk9HQUxFUyBTVCxTQUNSQU1FTlRPLDk1ODM4LENBLDQsMiwxNTcwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTI2ODU0LDM4LjYzMTkyNSwtMTIxLjQyNzc3NQ0zMTE4IDQyTkQgU1QsU0FDUkFNRU5UTyw5NTgxNyxDQSwzLDIsMTA5MyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDEyNzA1OSwzOC41NDYwOTEsLTEyMS40NTc3NDUNNzUxNyA1MFRIIEFWRSxTQUNSQU1FTlRPLDk1ODI4LENBLDMsMSw5NjIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMjg2ODcsMzguNTA3MzM5LC0xMjEuNDE2MjY3DTQwNzEgRVZBTElUQSBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTA4OSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDEyOTUwMCwzOC40NjYzODgsLTEyMS40NTg4NjENNzkyOCAzNlRIIEFWRSxTQUNSQU1FTlRPLDk1ODI0LENBLDMsMiwxMTI3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTMwMDAwLDM4LjUyMDQ5LC0xMjEuNDExMzgzDTY2MzEgREVNQVJFVCBEUixTQUNSQU1FTlRPLDk1ODIyLENBLDQsMiwxMzA5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTMxNzUwLDM4LjUwNjM4MiwtMTIxLjQ4MzU3NA03MDQzIDlUSCBBVkUsUklPIExJTkRBLDk1NjczLENBLDIsMSw5NzAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzIwMDAsMzguNjk1NTg5LC0xMjEuNDQ0MTMzDTk3IEtFTk5FTEZPUkQgQ0lSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDExNDQsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzQwMDAsMzguNDYyMzc2LC0xMjEuNDI2NTU2DTI2MzYgVFJPTkVSTyBXQVksUkFOQ0hPIENPUkRPVkEsOTU2NzAsQ0EsMywxLDEwMDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzQwMDAsMzguNTkzMDQ5LC0xMjEuMzAzMDQNMTUzMCBUT1BBTkdBIExOIFVuaXQgMjA0LExJTkNPTE4sOTU2NDgsQ0EsMCwwLDAsQ29uZG8sVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxMzgwMDAsMzguODg0MTUsLTEyMS4yNzAyNzcNMzYwNCBLT0RJQUsgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxMjA2LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTQyMDAwLDM4LjcwNjE3NSwtMTIxLjM3OTc3Ng0yMTQ5IENPVFRBR0UgV0FZLFNBQ1JBTUVOVE8sOTU4MjUsQ0EsMywxLDEyODUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNDMwMTIsMzguNjAzNTkzLC0xMjEuNDE3MDExDTg2MzIgUFJBSVJJRVdPT0RTIERSLFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywyLDE1NDMsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNDU4NDYsMzguNDc3NTYzLC0xMjEuMzg0MzgyDTYxMiBTVE9ORSBCTFZELFdFU1QgU0FDUkFNRU5UTyw5NTY5MSxDQSwyLDEsODg0LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTQ3MDAwLDM4LjU2MzA4NCwtMTIxLjUzNTU3OQ00MTgwIDEyVEggQVZFLFNBQ1JBTUVOVE8sOTU4MTcsQ0EsMywxLDEwMTksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNDg3NTAsMzguNTQxMTcsLTEyMS40NTgxMjkNODAyNSBBUlJPWU8gVklTVEEgRFIsU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTM5MixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE1MDAwMCwzOC40NjY1NCwtMTIxLjQxOTAyOQ01NzU0IFdBTEVSR0EgUkQgVW5pdCA0LFNBQ1JBTUVOVE8sOTU4NDIsQ0EsMiwxLDkyNCxDb25kbyxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE1MDQ1NCwzOC42NzI1NjcsLTEyMS4zNTY3NTQNOCBMQSBST0NBUyBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDMsMiwxMjE3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTUxMDg3LDM4LjQ2NjE2LC0xMjEuNDQ4MjgzDTg2MzYgTE9OR1NQVVIgV0FZLEFOVEVMT1BFLDk1ODQzLENBLDMsMiwxNjcwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTU3Mjk2LDM4LjcyNTg3MywtMTIxLjM1ODU2DTE5NDEgRVhQRURJVElPTiBXQVksU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTMwMixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE1NzUwMCwzOC40NzM3NzUsLTEyMS40OTM3NzcNNDM1MSBUVVJOQlJJREdFIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDE0ODgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjAwMDAsMzguNTAyMDM0LC0xMjEuNDU2MDI3DTY1MTMgSE9MSURBWSBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMiwxMzczLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTYwMDAwLDM4LjY4NTM2MSwtMTIxLjM3NjkzOA04MzIxIE1JU1RMRVRPRSBXQVksQ0lUUlVTIEhFSUdIVFMsOTU2MjEsQ0EsNCwyLDEzODEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjEyNTAsMzguNzE3NzM4LC0xMjEuMzA4MzIyDTU5MjAgVkFMTEVZIEdMRU4gV0FZLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMywyLDEyNjUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjQwMDAsMzguNDYyODIxLC0xMjEuNDMzMTM1DTI2MDEgU0FOIEZFUk5BTkRPIFdBWSxTQUNSQU1FTlRPLDk1ODE4LENBLDIsMSw4ODEsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNjUwMDAsMzguNTU2MTc4LC0xMjEuNDc2MjU2DTUwMSBQT1BMQVIgQVZFLFdFU1QgU0FDUkFNRU5UTyw5NTY5MSxDQSwwLDAsMCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE2NTAwMCwzOC41ODQ1MjYsLTEyMS41MzQ2MDkNODAwOCBTQUlOVCBIRUxFTkEgQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDIsMTYwOCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE2NTc1MCwzOC40NjcwMTIsLTEyMS4zNTk5NjkNNjUxNyBET05FR0FMIERSLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMSwxMzQ0LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTY2MDAwLDM4LjY4MTU1NCwtMTIxLjMxMjkzNA0xMDAxIFJJTyBOT1JURSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwzLDIsMTIwMixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE2OTAwMCwzOC42MzQyOTIsLTEyMS40ODUxMDYNNjA0IFAgU1QsTElOQ09MTiw5NTY0OCxDQSwzLDIsMTEwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MDAwMCwzOC44OTMxNjgsLTEyMS4zMDUzOTgNMTAwMDEgV09PRENSRUVLIE9BS1MgQkxWRCBVbml0IDgxNSxST1NFVklMTEUsOTU3NDcsQ0EsMiwyLDAsQ29uZG8sVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzAwMDAsMzguNzk1NTI5LC0xMjEuMzI4ODE5DTczNTEgR0lHSSBQTCxTQUNSQU1FTlRPLDk1ODI4LENBLDQsMiwxODU5LE11bHRpLUZhbWlseSxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MDAwMCwzOC40OTA2MDYsLTEyMS40MTAxNzMNNzc0MCBESVhJRSBMT1UgU1QsU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTIzMixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MDAwMCwzOC40NzU4NTMsLTEyMS40NzcwMzkNNzM0MiBEQVZFIFNULFNBQ1JBTUVOVE8sOTU4MjgsQ0EsMywxLDE2MzgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzA3MjUsMzguNDkwODIyLC0xMjEuNDAxNjQzDTc2ODcgSE9XRVJUT04gRFIsU0FDUkFNRU5UTyw5NTgzMSxDQSwyLDIsMTE3NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MTc1MCwzOC40ODA4NTksLTEyMS41Mzk3NDUNMjYgS0FNU09OIENULFNBQ1JBTUVOVE8sOTU4MzMsQ0EsMywyLDE1ODIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzIwMDAsMzguNjIyNzk0LC0xMjEuNDk5MTczDTcwNDUgUEVFVkVZIENULFNBQ1JBTUVOVE8sOTU4MjMsQ0EsMiwyLDkwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3MzA1NiwzOC41MDIyNTQsLTEyMS40NTE0NDQNODkxNiBHQUJMRVMgTUlMTCBQTCxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDEzNDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxNzQwMDAsMzguNDMzOTE5LC0xMjEuNDIyMzQ3DTExNDAgRURNT05UT04gRFIsU0FDUkFNRU5UTyw5NTgzMyxDQSwzLDIsMTIwNCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3NDI1MCwzOC42MjQ1NywtMTIxLjQ4NjkxMw04ODc5IEFQUExFIFBFQVIgQ1QsRUxLIEdST1ZFLDk1NjI0LENBLDQsMiwxNDc3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTc2ODUwLDM4LjQ0NTc0LC0xMjEuMzcyNQ05IFdJTkQgQ1QsU0FDUkFNRU5UTyw5NTgyMyxDQSw0LDIsMTQ5NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE3OTUwMCwzOC40NTA3MywtMTIxLjQyNzUyOA04NTcwIFNIRVJBVE9OIERSLEZBSVIgT0FLUyw5NTYyOCxDQSwzLDEsOTYwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTg1MDAwLDM4LjY2NzI1NCwtMTIxLjI0MDcwOA0xNTUwIFRPUEFOR0EgTE4gVW5pdCAyMDcsTElOQ09MTiw5NTY0OCxDQSwwLDAsMCxDb25kbyxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODAwMCwzOC44ODQxNywtMTIxLjI3MDIyMg0xMDgwIFJJTyBOT1JURSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwzLDIsMTQyOCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4ODcwMCwzOC42MzQzMzUsLTEyMS40ODYwOTgNNTUwMSBWQUxMRVRUQSBXQVksU0FDUkFNRU5UTyw5NTgyMCxDQSwzLDEsMTAzOSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4OTAwMCwzOC41MzAxNDQsLTEyMS40Mzc0OQ01NjI0IE1FTU9SWSBMTixGQUlSIE9BS1MsOTU2MjgsQ0EsMywxLDE1MjksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxODkwMDAsMzguNjY3NDUsLTEyMS4yMzY0DTY2MjIgV0lMTE9XTEVBRiBEUixDSVRSVVMgSEVJR0hUUyw5NTYyMSxDQSw0LDMsMTg5MixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE4OTgzNiwzOC42OTk3MTQsLTEyMS4zMTE2MzUNMjcgTUVHQU4gQ1QsU0FDUkFNRU5UTyw5NTgzOCxDQSw0LDIsMTg4NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE5MDAwMCwzOC42NDkyNTgsLTEyMS40NjUzMDgNNjYwMSBXT09ETU9SRSBPQUtTIERSLE9SQU5HRVZBTEUsOTU2NjIsQ0EsMywyLDEyOTQsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwxOTEyNTAsMzguNjg3MDA2LC0xMjEuMjU0MzE5DTE5NzMgREFOVkVSUyBXQVksU0FDUkFNRU5UTyw5NTgzMixDQSwzLDIsMTYzOCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE5MTY3NSwzOC40Nzc1NjgsLTEyMS40OTI1NzQNODAwMSBBUlJPWU8gVklTVEEgRFIsU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTY3NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDE5NTUwMCwzOC40NjczNCwtMTIxLjQxOTg0Mw03NDA5IFZPWUFHRVIgV0FZLENJVFJVUyBIRUlHSFRTLDk1NjIxLENBLDMsMSwxMDczLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMTk4MDAwLDM4LjcwMDcxNywtMTIxLjMxMzMNODE1IENST1NTV0lORCBEUixTQUNSQU1FTlRPLDk1ODM4LENBLDMsMiwxMjMxLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjAwMDAwLDM4LjY1MTM4NiwtMTIxLjQ1MDQyDTU1MDkgTEFHVU5BIENSRVNUIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMywyLDExNzUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNDI0NDIsLTEyMS40NDAzNTcNODQyNCBNRVJSWSBISUxMIFdBWSxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDE0MTYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDAwMDAsMzguNDUyMDc1LC0xMjEuMzY2NDYxDTE1MjUgUEVOTlNZTFZBTklBIEFWRSxXRVNUIFNBQ1JBTUVOVE8sOTU2OTEsQ0EsMCwwLDAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDAxMDAsMzguNTY5OTQzLC0xMjEuNTI3NTM5DTU5NTQgQlJJREdFQ1JPU1MgRFIsU0FDUkFNRU5UTyw5NTgzNSxDQSwzLDIsMTM1OCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwMTUyOCwzOC42ODE5NywtMTIxLjUwMDAyNQ04Nzg5IFNFUVVPSUEgV09PRCBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsNCwyLDE2MDksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDQ3NTAsMzguNDM4ODE4LC0xMjEuMzc0NDMNNjYwMCBTSUxWRVJUSE9STkUgQ0lSLFNBQ1JBTUVOVE8sOTU4NDIsQ0EsNCwzLDE5NjgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNjg2MDcsLTEyMS4zNDIzNjkNMjIyMSAyTkQgQVZFLFNBQ1JBTUVOVE8sOTU4MTgsQ0EsMiwyLDEwODksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDUwMDAsMzguNTU1NzgxLC0xMjEuNDg1MzMxDTMyMzAgU01BVEhFUlMgV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsMywyLDEyOTYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDU5MDAsMzguNjIzMzcyLC0xMjEuMzQ3NjY1DTUyMDkgTEFHVU5BIENSRVNUIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsMiwyLDExODksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDcwMDAsMzguNDI0NDIxLC0xMjEuNDQzOTE1DTQxNiBMRUlUQ0ggQVZFLFNBQ1JBTUVOVE8sOTU4MTUsQ0EsMiwxLDc5NSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwNzk3MywzOC42MTI2OTQsLTEyMS40NTY2NjkNMjEwMCBCRUFUVFkgV0FZLFJPU0VWSUxMRSw5NTc0NyxDQSwzLDIsMTM3MSxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwODI1MCwzOC43Mzc4ODIsLTEyMS4zMDgxNDINNjkyMCBHSUxMSU5HSEFNIFdBWSxOT1JUSCBISUdITEFORFMsOTU2NjAsQ0EsMywxLDEzMTAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMDgzMTgsMzguNjk0Mjc5LC0xMjEuMzczMzk1DTgyIFdJTERGTE9XRVIgRFIsR0FMVCw5NTYzMixDQSwzLDIsMTI2MixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIwOTM0NywzOC4yNTk3MDgsLTEyMS4zMTE2MTYNODY1MiBCQU5UT04gQ0lSLEVMSyBHUk9WRSw5NTYyNCxDQSw0LDIsMTc0MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIxMTUwMCwzOC40NDQsLTEyMS4zNzA5OTMNODQyOCBNSVNUWSBQQVNTIFdBWSxBTlRFTE9QRSw5NTg0MyxDQSwzLDIsMTUxNyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIxMjAwMCwzOC43MjI5NTksLTEyMS4zNDcxMTUNNzk1OCBST1NFVklFVyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDIsMTQ1MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIxMzAwMCwzOC40Njc4MzYsLTEyMS40MTAzNjYNOTAyMCBMVUtFTiBDVCxFTEsgR1JPVkUsOTU2MjQsQ0EsMywyLDE0MTYsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMTYwMDAsMzguNDUxMzk4LC0xMjEuMzY2NjE0DTc4MDkgVkFMTEVDSVRPUyBXQVksU0FDUkFNRU5UTyw5NTgyOCxDQSwzLDEsODg4LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjE2MDIxLDM4LjUwODIxNywtMTIxLjQxMTIwNw04NDQ1IE9MRCBBVUJVUk4gUkQsQ0lUUlVTIEhFSUdIVFMsOTU2MTAsQ0EsMywyLDE4ODIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMTkwMDAsMzguNzE1NDIzLC0xMjEuMjQ2NzQzDTEwMDg1IEFUS0lOUyBEUixFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDEzMDIsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMTk3OTQsMzguMzkwODkzLC0xMjEuNDM3ODIxDTkxODUgQ0VSUk9MSU5EQSBDSVIsRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxNDE4LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjIwMDAwLDM4LjQyNDQ5NywtMTIxLjQyNjU5NQ05MTk3IENPUlRJTkEgQ0lSLFJPU0VWSUxMRSw5NTY3OCxDQSwzLDIsMCxDb25kbyxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC43OTMxNTIsLTEyMS4yOTAwMjUNNTQyOSBIRVNQRVIgV0FZLENBUk1JQ0hBRUwsOTU2MDgsQ0EsNCwyLDEzMTksUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjAwMDAsMzguNjY1MTA0LC0xMjEuMzE1OTAxDTExNzggV0FSTVdPT0QgQ1QsR0FMVCw5NTYzMixDQSw0LDIsMTc3MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyMDAwMCwzOC4yODk1NDQsLTEyMS4yODQ2MDcNNDkwMCBFTFVERSBDVCxTQUNSQU1FTlRPLDk1ODQyLENBLDQsMiwxNjI3LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjIzMDAwLDM4LjY5Njc0LC0xMjEuMzUwNTE5DTM1NTcgU09EQSBXQVksU0FDUkFNRU5UTyw5NTgzNCxDQSwwLDAsMCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyNDAwMCwzOC42MzEwMjYsLTEyMS41MDE4NzkNMzUyOCBTQUlOVCBHRU9SR0UgRFIsU0FDUkFNRU5UTyw5NTgyMSxDQSwzLDEsMTA0MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyNDAwMCwzOC42Mjk0NjgsLTEyMS4zNzY0NDUNNzM4MSBXQVNIQlVSTiBXQVksTk9SVEggSElHSExBTkRTLDk1NjYwLENBLDMsMSw5NjAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjQyNTIsMzguNzAzNTUsLTEyMS4zNzUxMDMNMjE4MSBXSU5URVJIQVZFTiBDSVIsQ0FNRVJPTiBQQVJLLDk1NjgyLENBLDMsMiwwLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjI0NTAwLDM4LjY5NzU3LC0xMjAuOTk1NzM5DTc1NDAgSElDS09SWSBBVkUsT1JBTkdFVkFMRSw5NTY2MixDQSwzLDEsMTQ1NixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIyNTAwMCwzOC43MDMwNTYsLTEyMS4yMzUyMjENNTAyNCBDSEFNQkVSTElOIENJUixFTEsgR1JPVkUsOTU3NTcsQ0EsMywyLDE0NTAsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjgwMDAsMzguMzg5NzU2LC0xMjEuNDQ2MjQ2DTI0MDAgSU5WRVJORVNTIERSLExJTkNPTE4sOTU2NDgsQ0EsMywyLDEzNTgsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMjkwMjcsMzguODk3ODE0LC0xMjEuMzI0NjkxDTUgQklTSE9QR0FURSBDVCxTQUNSQU1FTlRPLDk1ODIzLENBLDQsMiwxMzI5LFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjI5NTAwLDM4LjQ2NzkzNiwtMTIxLjQ0NTQ3Nw01NjAxIFJFWExFSUdIIERSLFNBQ1JBTUVOVE8sOTU4MjMsQ0EsNCwyLDE3MTUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMzAwMDAsMzguNDQ1MzQyLC0xMjEuNDQxNTA0DTE5MDkgWUFSTkVMTCBXQVksRUxLIEdST1ZFLDk1NzU4LENBLDMsMiwxMjYyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjMwMDAwLDM4LjQxNzM4MiwtMTIxLjQ4NDMyNQ05MTY5IEdBUkxJTkdUT04gQ1QsU0FDUkFNRU5UTyw5NTgyOSxDQSw0LDMsMjI4MCxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIzMjQyNSwzOC40NTc2NzksLTEyMS4zNTk2Mg02OTMyIFJVU0tVVCBXQVksU0FDUkFNRU5UTyw5NTgyMyxDQSwzLDIsMTQ3NyxSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIzNDAwMCwzOC40OTk4OTMsLTEyMS40NTg4OQ03OTMzIERBRkZPRElMIFdBWSxDSVRSVVMgSEVJR0hUUyw5NTYxMCxDQSwzLDIsMTIxNixSZXNpZGVudGlhbCxUaHUgTWF5IDE1IDAwOjAwOjAwIEVEVCAyMDA4LDIzNTAwMCwzOC43MDg4MjQsLTEyMS4yNTY4MDMNODMwNCBSRUQgRk9YIFdBWSxFTEsgR1JPVkUsOTU3NTgsQ0EsNCwyLDE2ODUsUmVzaWRlbnRpYWwsVGh1IE1heSAxNSAwMDowMDowMCBFRFQgMjAwOCwyMzUzMDEsMzguNDE3LC0xMjEuMzk3NDI0DTM4ODIgWUVMTE9XU1RPTkUgTE4sRUwgRE9SQURPIEhJTExTLDk1NzYyLENBLDMsMiwxMzYyLFJlc2lkZW50aWFsLFRodSBNYXkgMTUgMDA6MDA6MDAgRURUIDIwMDgsMjM1NzM4LDM4LjY1NTI0NSwtMTIxLjA3NTkxNQ0="; }, - thumbnail_uri: function () { return null; } - } - - , - "fig1.svg": { - name: "fig1.svg", - filename: "fig1.svg", - path: "fig1.svg", - size: "28.3 kB", - mime_type: "image/svg+xml", - caption: "

This is a caption with a link.

\n", - job_properties: { - rule: "a", - wildcards: "", - params: "" - }, - data_uri: function () { return "data:image/svg+xml;charset=utf8;filename=fig1.svg;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI2MDBweCIgdmlld0JveD0iMCAwIDgwMCA2MDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDgwMCA2MDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPiAgPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiB4PSIwIiB5PSIwIgogICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk4KQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQQpDWEJJV1hNQUFBOWhBQUFQWVFHb1A2ZHBBQUJQZzBsRVFWUjQydTNkZVpTVTFhSHUvMisxVEVML0FJUDBZbkFCUnZGb01CNEVHZ0dQCkFzWWI1S0o0UllGZ2xLZ01Ub0NBUWdTTktLS0NCSlVoeEloQUJGMklFbkswTmFJM3FNZ1NSS0M1c2p6S0llZ0JyeGNVTVVLUVNZYjYKL2JHUEpJU3BtKzZ1WGNQM3MxYXRZSFc5K0x5ZDh1MSthdTkzNzBReW1Vd2lTWklrU1NtUUZ6dUFKRW1TcE54aEFaRWtTWktVTWhZUQpTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVCk1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWsKU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsagpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrClNTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVEKU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFaRWtTWktVTWhZUVNaSWtTU2xqQVpFa1NaS1VNaFlRU1pJa1NTbGpBWkVrU1pLVQpNaFlRU1pJa1NTbGpBWkVrU1pLVU1oWVFTWklrU1NsakFUbUsvL2lQLzZCNzkrNmNjY1laMUtoUmd6cDE2dEN1WFR1ZWUrNjVFaDIvCmRldFcrdmZ2VDkyNmRjblB6K2VTU3k1aDFhcFZzVTlMa2lSSmlxcFM3QURwNnJQUFB1UGJiNy9saGh0dW9FR0RCdXpjdVpONTgrWngKL2ZYWHMzNzlldTY1NTU2akhudmd3QUc2ZE9uQzZ0V3JHVDU4T0hYcTFHSHExS2wwNk5DQmxTdFhjdWFaWjhZK1BVbVNKQ21LUkRLWgpUTVlPa1NrT0hEaEF5NVl0K2V0Zi84cUdEUnVPK3JvWFhuaUJuLzNzWjh5Yk40OXUzYm9Cc0dYTEZzNDY2eXc2ZCs1YzRsRVVTWklrCktkczRCYXNVOHZMeU9PMjAwNmhjdWZJeFh6ZHYzanpxMWF0M3NId0FuSHJxcWZUbzBZT1hYbnFKdlh2M3hqNFZTWklrS1FvTHlISHMKM0xtVExWdTI4TWtubi9ENDQ0L3ordXV2TTN6NDhHTWVzMnJWS2xxMGFISFk4NFdGaGV6Y3VaTzFhOWZHUGkxSmtpUXBDZ3ZJY1F3ZApPcFNDZ2dLYU5tM0tMMy81U3laTm1rVC8vdjJQZWN5bVRadW9YNy8rWWM5Ly85ekdqUnRqbjVZa1NaSVVoVGVoSDhlUUlVUG8wYU1ICkd6ZHU1TG5ubm1QQWdBR2NmUExKL09JWHZ6anFNYnQzNzZacTFhcUhQVit0V2pVQWR1M2FGZnUwSkVtU3BDZ3NJTWZ4TC8veUwvekwKdi93TEFOZGRkeDJkT25WaThPREI5T2pSZzVOUFB2bUl4NXg4OHNuczJiUG5zT2QzNzk1OThPdEhzMm5USmpadDJoVDd0Q1ZKa25RVQo5ZXZYUCtKc0Y1V01CYVNVcnI3NmF2NzMvLzdmL09kLy9pZk5temMvNG12cTE2OS94R2xXM3hlTEJnMGFIUEc0VFpzMjBhcFZLNmRvClNaSWtwYkVHRFJxd1lzVUtTOGdKc29DVTB2ZlRwL0x5am43N1RQUG16Vm04ZURISlpKSkVJbkh3K1dYTGxsR2pSZzNPT3V1c0l4NjMKYWRNbU5tN2N5TFBQUHNzNTU1d1QrMVNWNVFZUEhzd1RUendSTzRheTFQNzljTU1Oc0dzWFZLOCttUC83ZjUrZ2VuWDQ5YS9CeTVzcQppdGMxcGNMSEgzL01kZGRkZDlSN2ZuVjhGcENqK09xcnI2aGJ0KzRoeiszZHU1ZFpzMlpScDA0ZG1qVnJCb1RTc0czYk5zNDg4MHdxClZRcmZ6bXV1dVlaNTgrWXhmLzU4cnI3NmFpRHNBL0xpaXk5eXhSVlhISGNaMzNQT09lZUlxMmhKNWFsMjdkcSt6MVJoSG5zTVB2NFkKM24wWEhubWtOcSsrMm9MdTNlR21tMkRLRk9qYkYvN2g4eG1wWEhoZGt6S0RCZVFvK3ZmdnovYnQyN240NG90cDBLQUJYM3p4QmM4OQo5eHhyMTY1bDVzeVpuSFRTU1FDTUdER0NXYk5tc1g3OWVobzFhZ1NFQXRLbVRSdHV2UEZHUHZyb280TTdvU2VUU1I1NDRJSFlweVpKCkZlclRUK0hlZTJIUUlHamJOanpYdURFc1hneERoa0QvL3JCa0NVeWRDc2U0SlU2U2xLVXNJRWZ4czUvOWpPblRwL1BiMy82V3I3LysKbXBvMWEzTEJCUmN3WmNvVWZ2S1RueHg4WFNLUk9HU2FGWVRwV1gvNjA1OFlObXdZa3laTll0ZXVYYlJ1M1pwWnMyYlJ0R25UMktjbQpTUlVtbVlSKy9hQ2dBTWFNT2ZSclZhdUcwdEcyTGR4OE02eGFCWC80QTV4eFJ1elVrcVJVc29BY1JjK2VQZW5acytkeFh6ZHo1a3htCnpweDUyUE8xYTlkbTJyUnBUSnMyTGZhcFNGTEt6SndKYjc0SnI3OE8rZmxIZnMzMTE4Ty8vaXRjZlRXMGJBbXpaa0hYcnJHVFM1SlMKeFkwSXBSelZxMWV2MkJHVVpUWnRnanZ2aEYvOEFuNzYwNzgvZjZUMzJubm53WW9WMExFalhIa2xqQndKKy9iRlBnTmxPcTlyVW1hdwpnRWc1eWgvVUttOERCa0NWS3VFRzlIOTB0UGRhclZvd2Z6Nk1HeGNlblRyQjVzMnh6MEtaek91YWxCa3NJSktrTXBzL1B6d21UNFlmCi9LRGt4eVVTTUh3NExGd0lIMzRJTFZxRUc5UWxTZG5MQWlKSktwTnZ2b0hiYnc5VHFicDNQN0cvbzBPSGNGTjZreWJRdm4wb01zbGsKN0RPVEpGVUVDNGdrcVV6dXVndDI3b1RmL0tac2UzczBhQUJ2dlJXbWNnMGFCTmRlQzk5K0cvdnNKRW5selFJaVNUcGhDeGZDakJrdwpmancwYkZqMnY2OXlaWGo4Y1pnN0YxNTVCVnEzaGpWcllwK2xKS2s4V1VBa1NTZGt4NDZ3cVdDSERtRm44L0xVb3dlOC8zNzRjMkVoCnZQaGk3TE9WSkpVWEM0Z2s2WVRjZHg5czNBalRwa0ZlQmZ3ME9lZWNVRUs2ZEFtRlpPaFEyTHMzOWxsTGtzcktBaUpKS3JYbHkrR0oKSitDQkIrRE1NeXZ1MzVPZkQzUG13S1JKNGNiMGpoMUQ2WkVrWlM0TGlDU3BWTDc3RHZyMGdlYk53NmhFUlVza1lPQkFXTFFJMXErSAo4OCtIdDkrTy9WMlFKSjBvQzRna3FWVEdqWU9QUG9McDA2RlNwZFQ5ZTl1MWcrSmlhTllNTHIwMDNQanVVcjJTbEhrc0lKS2tFdnY0Cll4Z3pKbXdlMkx4NTZ2LzlCUVh3eGh2aDN6OThPSFRyQnR1MnhmNnVTSkpLd3dJaVNTcVIvZnZEMUtzbVRjSU42TEZVcWdRUFB3d3YKdlJUMkRXblZDbGF2anYzZGtTU1ZsQVZFa2xRaVU2ZkMwcVh3OU5OUXJWcnNOTkMxSzZ4Y0NUVnFRSnMyTUh0MjdFU1NwSkt3Z0VpUwpqbXZEQmhneEFtNjlGUzY2S0hhYXZ6dmpERml5SkN6VDI3dDN5TGRuVCt4VWtxUmpzWUJJa280cG1ZUmJib0ZUVG9HeFkyT25PVnoxCjZqQnpKanoxVk5pVi9hS0w0TFBQWXFlU0pCMk5CVVNTZEV6UFBnc0xGc0NUVDBMTm1ySFRIRmtpQWYzNndidnZ3dWJOMEtJRnZQNTYKN0ZTU3BDT3hnRWlTam1yelpoZzhHSHIxQ2p1U3A3dFdyY0o5SVlXRjBMa3pqQjROQnc3RVRpVkora2NXRUVuU1VkMXhSeGhkbURneApkcEtTcTFNSFhuMFY3cjgvUEM2L0hQNzYxOWlwSkVuZnM0QklrbzZvcUFpZWZ6NlVqN3AxWTZjcG5ieThzRlR3YTYvQnNtVmhTdGJLCmxiRlRTWkxBQWlKSk9vSnQyOEtLVXAwN3c3WFh4azV6NGpwMUNydW5GeFNFbmRTblRYUDNkRW1LelFJaVNUck0zWGVIRXZMa2syRUsKVmlacjNCZ1dMdzZiS1BidkR6ZmRCTHQyeFU0bFNibkxBaUpKT3NTaVJhRjRqQjBMalJyRlRsTStxbFlOR3luT21nVno1MExidHZESgpKN0ZUU1ZKdXNvQklrZzdhdFNzc1ozdmhoV0VLVnJhNS9ucDQ3ejNZc1FOYXRvU1hYNDZkU0pKeWp3VkVrblRRNk5GaDEvT25udzQzCmNtZWo4ODZERlN1Z1kwZTQ4a29ZT1JMMjdZdWRTcEp5UjViK2VKRWtsVlp4TVl3ZkgxYVBPdnZzMkdrcVZxMWFNSDgrakJzWEhwMDYKaFQxUEpFa1Z6d0lpU1dMZlB1amJGNW8xZytIRFk2ZEpqVVFpbk92Q2hmRGhoMkdwM2lWTFlxZVNwT3huQVpFa01XRUNmUEFCVEo4TwpsU3ZIVHBOYUhUckFxbFhRcEFtMGJ3K1RKN3RVcnlSVkpBdUlKT1c0dFd0aDFDZ1lPaFJhdFlxZEpvNEdEZUN0dDJEQUFCZzBLT3g5Cjh1MjNzVk5KVW5heWdFaFNEanR3SUt4NmRkcHA4TUFEc2RQRVZia3lQUDU0V0tiM2xWZWdkV3RZc3laMktrbktQaFlRU2NwaDA2YkIKTysrRS82MWVQWGFhOU5DakI3ei9mdmh6WVNHOCtHTHNSSktVWFN3Z2twU2pQdjhjaGcwTE41OTM3Qmc3VFhvNTU1eFFRcnAwQ1lWawo2RkRZdXpkMktrbktEaFlRU2NwQnlTVGNkaHZrNTRlbGQzVzQvSHlZTXdjbVRRbzNwbmZzQ0JzM3hrNGxTWm5QQWlKSk9laUZGNkNvCkNLWk9oZHExWTZkSlg0a0VEQndJaXhiQit2Vncvdm53OXR1eFUwbFNack9BU0ZLTytmcnI4RXYxTmRmQS8vcGZzZE5raG5idHdrYU4KelpyQnBaZUdVU09YNnBXa0UyTUJrYVFjTTJSSTJIaHc4dVRZU1RKTFFRRzg4VWJZdkhENGNPaldEYlp0aTUxS2tqS1BCVVNTY3NpQwpCVEI3ZHRoNHNGNjkyR2t5VDZWSzhQREQ4TkpMWWQrUVZxMWc5ZXJZcVNRcHMxaEFKQ2xIYk44T045OGNwaERkY0VQc05KbXRhMWRZCnVSSnExSUEyYlVLcGt5U1ZqQVZFa25MRVBmZkFsaTN3MUZQaDVtcVZ6Umxud0pJbFlabmUzcjNoMWx0aHo1N1lxU1FwL1ZsQUpDa0gKTEZrQ1U2YkFtREZ3K3VteDAyU1A2dFZoNXN4UTZtYk1nSXN1Z3M4K2k1MUtrdEtiQlVTU3N0eWVQV0d6d2NKQ0dEUW9kcHJzazBoQQp2Mzd3N3J1d2VUTzBhQUd2dng0N2xTU2xMd3VJSkdXNWh4NkNkZXRnK25RNDZhVFlhYkpYcTFiaHZwRENRdWpjR1VhUGhnTUhZcWVTCnBQUmpBWkdrTExaNk5UenlDSXdZQWVlZUd6dE45cXRUQjE1OUZlNi9Qend1dnh6Kyt0ZllxU1FwdlZoQUpDbEw3ZDhmcGw2ZGRSYU0KSEJrN1RlN0l5NFA3N29QWFhvTmx5OEtVckpVclk2ZVNwUFJoQVpHa0xEVnhJcXhZQVU4L0RWV3J4azZUZXpwMUNydW5GeFNFbmRTbgpUWFAzZEVrQ0M0Z2taYVZQUDRWNzc0V0JBNkZ0MjlocGNsZmp4ckI0TWZUcEEvMzd3MDAzd2E1ZHNWTkpVbHdXRUVuS01zbGtXSldwCm9DRGNnSzY0cWxhRnFWTmgxaXlZT3pjVXdrOCtpWjFLa3VLeGdFaFNscGs1RTk1OE0reE5rWjhmTzQyK2QvMzE4TjU3c0dNSHRHd0oKTDc4Y081RWt4V0VCa2FRc3Nta1QzSGxuMkpuN3B6K05uVWIvN0x6enduMDVIVHZDbFZlR3hRSDI3WXVkU3BKU3l3SWlTVmxrd0FDbwpVZ1VlZXl4MkVoMU5yVm93Zno2TUd4Y2VuVHFGRFF3bEtWZFlRQ1FwUzh5Zkh4NlRKNGY5S0pTK0Vna1lQaHdXTG9RUFB3eEw5UzVaCkVqdVZKS1dHQlVTU3NzQTMzOER0dDBQWHJ0QzllK3cwS3FrT0hXRFZLbWpTQk5xM0QrWFJwWG9sWlRzTGlDUmxnYnZ1Z3AwN3cycEwKaVVUc05DcU5CZzNncmJmQzlMbEJnK0RhYStIYmIyT25rcVNLWXdHUnBBeTNjQ0hNbUFIangwUERockhUNkVSVXJneVBQeDZXNlgzbApGV2pkR3Rhc2laMUtraXFHQlVTU010aU9IV0dEdS9idG9XL2YyR2xVVmoxNndQdnZoejhYRnNLTEw4Wk9KRW5sendJaVNSbnN2dnRnCjQwYVlOZzN5dktKbmhYUE9DU1drUzVkUVNJWU9oYjE3WTZlU3BQTGpqeXRKeWxETGw4TVRUOEFERDBEVHBySFRxRHpsNThPY09UQnAKVXJneHZXUEhVRFFsS1J0WVFDUXBBMzMzSGZUcEE4MmJoMC9JbFgwU0NSZzRFQll0Z3ZYcjRmeno0ZTIzWTZlU3BMS3pnRWhTQmhvMwpEajc2Q0taUGgwcVZZcWRSUldyWERvcUxvVmt6dVBUU3NOaUFTL1ZLeW1RV0VFbktNQjkvREdQR2hJM3NtamVQblVhcFVGQUFiN3dSCi9qOGZQaHk2ZFlOdDIyS25rcVFUWXdHUnBBeXlmMytZZXRXa1NiZ0JYYm1qVWlWNCtHRjQ2YVd3YjBpclZyQjZkZXhVa2xSNkZoQkoKeWlCVHA4TFNwZkQwMDFDdFd1dzBpcUZyVjFpNUVtclVnRFp0WVBiczJJa2txWFFzSUpLVUlUWnNnQkVqNE5aYjRhS0xZcWRSVEdlYwpBVXVXaEdWNmUvY083NGs5ZTJLbmtxU1NzWUJJVWdaSUp1R1dXK0NVVTJEczJOaHBsQTZxVjRlWk0rR3BwMkRHakZCS1Avc3NkaXBKCk9qNExpQ1JsZ0dlZmhRVUw0TWtub1diTjJHbVVMaElKNk5jUDNuMFhObStHRmkzZzlkZGpwNUtrWTdPQVNGS2EyN3daQmcrR1hyM0MKN3RqU1AydlZLdHdYVWxnSW5UdkQ2TkZ3NEVEc1ZKSjBaQllRU1VwemQ5d1JQdW1lT0RGMkVxV3pPblhnMVZmaC92dkQ0L0xMNGE5LwpqWjFLa2c1bkFaR2tORlpVQk04L0g4cEgzYnF4MHlqZDVlV0Y1WmxmZXcyV0xRdFRzbGF1akoxS2tnNWxBWkdrTkxWdFcxamRxSE5uCnVQYmEyR21VU1RwMUNydW5GeFNFbmRTblRYUDNkRW5wd3dJaVNXbnE3cnREQ1hueXlUQUZTeXFOeG8xaDhlS3djV1gvL25EVFRiQnIKVit4VWttUUJrYVMwdEdoUktCNWp4MEtqUnJIVEtGTlZyUm8ycjV3MUMrYk9oYlp0NFpOUFlxZVNsT3NzSUpLVVpuYnRDa3VyWG5oaAptSUlsbGRYMTE4Tjc3OEdPSGRDeUpiejhjdXhFa25LWkJVU1Mwc3pvMFdIWDg2ZWZEamNWUytYaHZQTmd4UXJvMkJHdXZCSkdqb1I5CisyS25rcFNML05FbVNXbWt1QmpHanc4ckdaMTlkdXcweWphMWFzSDgrVEJ1WEhoMDZoVDJtWkdrVkxLQVNGS2EyTGNQK3ZhRlpzMWcKK1BEWWFaU3RFb253L2xxNEVENzhNQ3pWdTJSSjdGU1Njb2tGUkpMU3hJUUo4TUVITUgwNlZLNGNPNDJ5WFljT3NHb1ZOR2tDN2R2RAo1TWt1MVNzcE5Td2drcFFHMXE2RlVhTmc2RkJvMVNwMkd1V0tCZzNncmJkZ3dBQVlOQ2pzTi9QdHQ3RlRTY3AyRmhCSml1ekFnYkRxCjFXbW53UU1QeEU2alhGTzVNanorZUZpbTk1VlhvSFZyV0xNbWRpcEoyY3dDSWttUlRac0c3N3dEVHowRjFhdkhUcU5jMWFNSHZQOSsKK0hOaEliejRZdXhFa3JLVkJVU1NJdnI4Y3hnMkxOeDhmc2tsc2RNbzE1MXpUaWdoWGJxRVFqSjBLT3pkR3p1VnBHeGpBWkdrU0pKSgp1TzAyeU04UFMrOUs2U0EvSCtiTWdVbVR3bzNwSFR2Q3hvMnhVMG5LSmhZUVNZcmtoUmVncUFoKzh4dW9YVHQyR3VudkVna1lPQkFXCkxZTDE2K0g4OCtIdHQyT25rcFF0TENDU0ZNSFhYNGRmOEs2NUJxNjZLbllhNmNqYXRRdWJZelpyQnBkZUdrYnFYS3BYVWxsWlFDUXAKZ2lGRHdzYURreWZIVGlJZFcwRUJ2UEZHMkx4dytIRG8xZzIyYll1ZFNsSW1zNEJJVW9vdFdBQ3paNGVOQit2Vmk1MUdPcjVLbGVEaApoK0dsbDhLK0lhMWF3ZXJWc1ZOSnlsUVdFRWxLb2UzYjRlYWJ3M1NXRzI2SW5VWXFuYTVkWWVWS3FGRUQyclFKUlZxU1Nzc0NJa2twCmRNODlzR1ZMMlBNamtZaWRSaXE5TTg2QUpVdkNNcjI5ZThPdHQ4S2VQYkZUU2Nva0ZoQkpTcEVsUzJES0ZCZ3pCazQvUFhZYTZjUlYKcnc0elo0WWlQV01HWEhRUmZQWlo3RlNTTW9VRlJKSlNZTStlc05sZ1lTRU1HaFE3alZSMmlRVDA2d2Z2dmd1Yk4wT0xGdkQ2NjdGVApTY29FRmhCSlNvR0hIb0oxNjJENmREanBwTmhwcFBMVHFsVzRMNlN3RURwM2h0R2o0Y0NCMktra3BUTUxpQ1JWc05XcjRaRkhZTVFJCk9QZmMyR21rOGxlbkRyejZLdHgvZjNoY2Zqbjg5YSt4VTBsS1Z4WVFTYXBBKy9lSHFWZG5uUVVqUjhaT0kxV2N2RHk0N3o1NDdUVlkKdGl4TXlWcTVNbllxU2VuSUFpSkpGV2ppUkZpeEFwNStHcXBXaloxR3FuaWRPb1hkMHdzS3drN3EwNmE1ZTdxa1ExbEFKS21DZlBvcAozSHN2REJ3SWJkdkdUaU9sVHVQR3NIZ3g5T2tEL2Z2RFRUZkJybDJ4VTBsS0Z4WVFTYW9BeVdSWUlhaWdJTnlBTHVXYXFsVmg2bFNZCk5Rdm16ZzBsL0pOUFlxZVNsQTRzSUpKVUFXYk9oRGZmRFBzazVPZkhUaVBGYy8zMThONTdzR01IdEd3Skw3OGNPNUdrMkN3Z2tsVE8KTm0yQ08rOE11MFQvOUtleDAwanhuWGRldUJlcVkwZTQ4c3F3SU1PK2ZiRlRTWXJGQWlKSjVXekFBS2hTQlI1N0xIWVNLWDNVcWdYego1OE80Y2VIUnFWUFl3RkJTN3JHQVNGSTVtajgvUENaUERuc2pTUHE3UkFLR0Q0ZUZDK0hERDhOU3ZVdVd4RTRsS2RVc0lKSlVUcjc1CkJtNi9IYnAyaGU3ZFk2ZVIwbGVIRHJCcUZUUnBBdTNiaDhMdVVyMVM3ckNBU0ZJNXVlc3UyTGt6clB5VFNNUk9JNlczQmczZ3JiZkMKbE1WQmcrRGFhK0hiYjJPbmtwUUtGaEJKS2djTEY4S01HVEIrUERSc0dEdU5sQmtxVjRiSEh3L0w5TDd5Q3JSdURXdld4RTRscWFKWgpRQ1Nwakhic0NKdXR0VzhQZmZ2R1RpTmxuaDQ5NFAzM3c1OExDK0hGRjJNbmtsU1JMQ0NTVkViMzNRY2JOOEswYVpEblZWVTZJZWVjCkUwcElseTZoa0F3ZENudjN4azRscVNMNG8xS1N5bUQ1Y25qaUNYamdBV2phTkhZYUtiUGw1OE9jT1RCcFVyZ3h2V1BIVU80bFpSY0wKaUNTZG9PKytnejU5b0huejhHbXRwTEpMSkdEZ1FGaTBDTmF2aC9QUGg3ZmZqcDFLVW5teWdCekQ4dVhMR1RCZ0FNMmFOU00vUDUvRwpqUnZUczJkUC92S1h2eHozMk4vLy92Zms1ZVVkOGJIWm5aZWtyREJ1SEh6MEVVeWZEcFVxeFU0alpaZDI3YUM0R0pvMWcwc3ZEUXM4CnVGU3ZsQjM4a1hrTTQ4YU5ZK25TcFhUdjNwM3p6anVQVFpzMk1XWEtGRnEwYU1GNzc3MUhzMmJOanZ0M1BQamdnNXgrK3VtSFBGZXIKVnEzWXB5YXBqRDcrR01hTUNadXFOVzhlTzQyVW5Rb0s0STAzd24xV3c0ZUhUUXQvLy91d3E3cWt6R1VCT1lZNzc3eVR3c0pDS3YzRApSNXM5ZS9ia3h6LytNV1BIam1YMjdObkgvVHM2ZCs1TWl4WXRZcCtLcEhLMGYzK1lldFdrU2ZqRlNGTEZxVlFKSG40WTJyU0IzcjJoClZTdjR3eC9ndlBOaUo1TjBvcHlDZFF4dDI3WTlwSHdBbkhubW1mem9SejlpVFFrWEtrOG1rMnpmdnAzOSsvZkhQaDFKNVdUcVZGaTYKRko1K0dxcFZpNTFHeWcxZHU4TEtsVkNqUmlnakpmZ01VRkthc29DVVVqS1o1TXN2ditUVVUwOHQwZXM3ZHV4SXJWcTFxRkdqQmxkZQplU1hyMXEyTGZRcVN5bUREQmhneEFtNjlGUzY2S0hZYUtiZWNjVWFZaHRXalJ4Z051ZlZXMkxNbmRpcEpwZVVVckZKNjdybm4yTGh4CkkyUEdqRG5tNjJyVXFNR05OOTVJeDQ0ZHFWbXpKaXRXck9DeHh4NmpYYnQyRkJjWGM5cHBwOFUrRlVtbGxFekNMYmZBS2FmQTJMR3gKMDBpNXFYcDFtRGtUTHJ3UUJnd0lveUx6NWtHalJyR1RTU3FwUkRMcG1oSWx0V2JOR2k2NDRBSisvT01mczNqeFloS0pSS21PZi9mZApkN240NG92cDM3OC92LzN0YncvN2VuRnhNUzFidG1UbHlwWGVOeUtsb2Rtenc2ZXVyN3dTTmt1VEZOZUtGWEROTmZEdHQvRGNjOUNwClUreEV5Z1grdmxaMlRzRXFvUysrK0lJdVhicHd5aW1uTUcvZXZGS1hENEFMTDd5UUN5NjRnRC8vK2MreFQwZFNLVzNlRElNSFE2OWUKbGc4cFhiUnFGVVpBQ2d1aGMyY1lQUm9PSElpZFN0THhPQVdyQkxadDIwYm56cDM1MjkvK3h1TEZpNmxYcjk0Si8xMm5uWFlhYTlldQpQZVpyQmc4ZVRPM2F0UTk1cmxldlh2VHExU3YydDBMS1dYZmNFVFpJbXpneGRoSkovNmhPSFhqMTFiQXM5djMzdzN2dndiUFB3ZzkrCkVEdVpzc0djT1hPWU0yZk9JYzl0M2JvMWRxeU01eFNzNDlpOWV6Yy8vZWxQV2JWcUZYLys4NSs1NElJTHl2VDN0V3JWaWgwN2R2RHgKeHg4ZjlqV0g5S1QwVkZRVVZ1QjU5bG40K2M5anA1RjBOSysvRHRkZUMvL2YveGVXNm0zWk1uWWlaU04vWHlzN3AyQWR3Lzc5KytuWgpzeWZMbGkzanhSZGZQR3I1K09LTEwxaXpaZzM3OXUwNytOeFhYMzExMk92KzlLYy9VVnhjekdXWFhSYjcxQ1NWMExadFlhV2R6cDNECkx6YVMwbGVuVG1IMzlJS0NzSlA2dEdudW5pNmxJNmRnSGNPZGQ5NUpVVkVSVjF4eEJWdTJiT0haWjU4OTVPdlhYWGNkQUhmZmZUZXoKWnMxaS9mcjFOUHJ2WlRqYXRXdEhpeFl0YU5teUpiVnExYUs0dUpnWk0yYlFxRkVqUm80Y0dmdlVKSlhRM1hlSEV2TGtrMkVLbHFUMAoxcmd4TEY0TVE0WkEvLzVoMmQ2cFUrSGtrMk1uay9ROUM4Z3hmUERCQnlRU0NZcUtpaWdxS2pya2E0bEU0bUFCU1NRU2g5MlUvck9mCi9ZeFhYMzJWTjk1NGc1MDdkOUtnUVFOdXZ2bG1SbzBhUmQyNmRXT2ZtcVFTV0xRb0ZJOHBVMXppVThva1ZhdUcwdEcyTGR4OE02eGEKRmFaa25YRkc3R1NTd0h0QTBvcHpDcVgwc1dzWC9PdS9ocWtjNzd3RGVVNVlsVExTNnRWdzlkWHcxVmN3YTFhNG4wc3FDMzlmS3p0LwpwRXJTRVl3ZUhYWTlmL3BweTRlVXljNDdMK3dYMHJFalhIa2xqQndKLzNETHBxUUkvTEVxU2Yra3VCakdqNGY3N29Peno0NmRSbEpaCjFhb0Y4K2ZEdUhIaDBhbFQyTnRIVWh3V0VFbjZCL3YyUWQrKzBLd1pEQjhlTzQyazhwSkloUCttRnk2RUR6K0VGaTNDRGVxU1VzOEMKSWtuL1lNSUUrT0FEbUQ0ZEtsZU9uVVpTZWV2UUlkeVUzcVFKdEc4UGt5YTVWSytVYWhZUVNmcHZhOWZDcUZFd2RDaTBhaFU3amFTSwowcUFCdlBVV0RCZ0FkOXdSOXZqNTl0dllxYVRjWVFHUkpPREFBZWpYRDA0N0RSNTRJSFlhU1JXdGNtVjQvSEdZT3hkZWVRVmF0NFkxCmEyS25rbktEQlVTU0NEc212L01PUFBVVVZLOGVPNDJrVk9uUkE5NS9QL3k1c0JCZWVDRjJJaW43V1VBazVielBQNGRodzhMTjU1ZGMKRWp1TnBGUTc1NXhRUXJwMGdaNDl3eTdxZS9mR1RpVmxMd3VJcEp5V1RNSnR0MEYrZmxoNlYxSnV5cytIT1hQQ1RlbFRwb1I5UXpadQpqSjFLeWs0V0VFazU3WVVYb0tnSWZ2TWJxRjA3ZGhwSk1TVVNNSEFnTEZvRTY5ZkQrZWZEMjIvSFRpVmxId3VJcEp6MTlkZmhsNDFyCnJvR3Jyb3FkUmxLNmFOY3ViRWphckJuODVDZnc2S011MVN1Vkp3dUlwSncxWkVqWWVIRHk1TmhKSktXYmdnSjQ0dzM0NVMvRG8xczMKMkxZdGRpb3BPMWhBSk9Xa0JRdGc5dXl3OFdDOWVySFRTRXBIbFNyQnd3L0RTeStGZlVOYXRZTFZxMk9ua2pLZkJVUlN6dG0rSFc2KwpHUzY5Rkc2NElYWWFTZW11YTFkWXVSSnExSUEyYmNLSEY1Sk9uQVZFVXM2NTV4N1lzaVhzK1pGSXhFNGpLUk9jY1FZc1dSTDJEZW5kCkcyNjlGZmJzaVoxS3lrd1dFRWs1WmNtU3NNVG1tREZ3K3VteDAwaktKTldydzh5WjRjT0xHVFBnb290Z3c0YllxYVRNWXdHUmxEUDIKN0FtYkRSWVd3cUJCc2ROSXlrU0pCUFRyQisrK0M1czNRNHNXOFBycnNWTkptY1VDSWlsblBQUVFyRnNIMDZmRFNTZkZUaU1wazdWcQpGZTRMYWQwYU9uZUcwYVBod0lIWXFhVE1ZQUdSbEJOV3I0WkhIb0VSSStEY2MyT25rWlFONnRTQlYxK0YrKzhQajhzdkQvc0xTVG8yCkM0aWtyTGQvZjVoNmRkWlpNSEprN0RTU3NrbGVIdHgzSDd6MkdpeGJCaTFiaHBFUlNVZG5BWkdVOVNaT2hCVXI0T21ub1dyVjJHa2sKWmFOT25jTHU2UVVGWVNmMWFkUGNQVjA2R2d1SXBLejI2YWR3Nzcwd2NDQzBiUnM3amFSczFyZ3hMRjRNZmZwQS8vNXcwMDJ3YzJmcwpWRkw2c1lCSXlsckpaRml0cHFBZzNJQXVTUld0YWxXWU9oVm16WUs1YzhOb3lDZWZ4RTRscFJjTGlLU3NOWE1tdlBsbVdMTS9QejkyCkdrbTU1UHJyNGIzM1lNZU9jRi9JeXkvSFRpU2xEd3VJcEt5MGFSUGNlV2ZZc2ZpblA0MmRSbEl1T3UrOGNQOVp4NDV3NVpWaEVZeDkKKzJLbmt1S3pnRWpLU2dNR1FKVXE4Tmhqc1pOSXltVzFhc0g4K1RCdVhIaDA2aFEyTUpSeW1RVkVVdGFaUHo4OEprOE82L1JMVWt5SgpCQXdmRGdzWHdvY2ZodDNUbHl5Sm5VcUt4d0lpS2F0ODh3M2NmanQwN1FyZHU4ZE9JMGwvMTZFRHJGb0ZUWnBBKy9Zd2FaSkw5U28zCldVQWtaWlc3N2dyTFhrNmRHajUxbEtSMDBxQUJ2UFZXbUNaNnh4MXc3Ylh3N2JleFUwbXBaUUdSbERVV0xvUVpNMkQ4ZUdqWU1IWWEKU1RxeXlwWGg4Y2ZETXIydnZBS3RXOE9hTmJGVFNhbGpBWkdVRlhic0NCdC90VzhQZmZ2R1RpTkp4OWVqQjd6L2Z2aHpZU0c4OEVMcwpSRkpxV0VBa1pZWDc3b09ORzJIYU5Nanp5aVlwUTV4elRpZ2hYYnBBejU0d1pBanMzUnM3bFZTeC9ERXRLZU10WHc1UFBBRVBQQUJOCm04Wk9JMG1sazU4UGMrYUVtOUtuVEFuN2htemNHRHVWVkhFc0lKSXkybmZmUVo4KzBMdzVEQjBhTzQwa25aaEVBZ1lPaEVXTFlQMTYKT1A5OGVQdnQyS21raW1FQmtaVFJ4bzJEano2QzZkT2hVcVhZYVNTcGJOcTFnK0ppYU5ZTWZ2SVRlUFJSbCtwVjlyR0FTTXBZSDM4TQpZOGFFRGI2YU40K2RScExLUjBFQnZQRUcvUEtYNGRHdEcyemJGanVWVkg0c0lKSXkwdjc5WWVwVmt5YmhCblJKeWlhVktzSEREOE5MCkw0VjlRMXExZ3RXclk2ZVN5b2NGUkZKR21qb1ZsaTZGcDUrR2F0VmlwNUdraXRHMUs2eGNDVFZxUUpzMk1IdDI3RVJTMlZsQUpHV2MKRFJ0Z3hBaTQ5VmE0NktMWWFTU3BZcDF4Qml4WkV2WU42ZDA3WFB2MjdJbWRTanB4RmhCSkdTV1poRnR1Z1ZOT2diRmpZNmVScE5TbwpYaDFtem9Tbm5vSVpNOEtITHhzMnhFNGxuUmdMaUtTTTh1eXpzR0FCUFBrazFLd1pPNDBrcFU0aUFmMzZ3YnZ2d3ViTjBLSUZ2UDU2CjdGUlM2VmxBSkdXTXpadGg4R0RvMVN2c0dpeEp1YWhWcTNCZlNPdlcwTGt6akI0TkJ3N0VUaVdWbkFWRVVzYTQ0NDd3Q2VERWliR1QKU0ZKY2RlckFxNi9DL2ZlSHgrV1h3OWRmeDA0bGxZd0ZSRkpHS0NxQzU1OFA1YU51M2RocEpDbSt2THl3RFBscnI4R3laZEN5WlJnWgprZEtkQlVSUzJ0dTJMYXo2MHJrelhIdHQ3RFNTbEY0NmRRcTdweGNVaEozVXAwMXo5M1NsTnd1SXBMUjM5OTJoaER6NVpKaUNKVWs2ClZPUEdzSGh4MktDMWYzKzQ2U2JZdVROMkt1bklMQ0NTMHRxaVJhRjRqQjBMalJyRlRpTko2YXRxMWJCSjY2eFpNSGR1R0EzNTVKUFkKcWFURFdVQWtwYTFkdThLU2t4ZGVHS1pnU1pLTzcvcnI0YjMzWU1lT2NGL0l5eS9IVGlRZHlnSWlLVzJOSGgwMjJucjY2WEN6cFNTcApaTTQ3RDFhc2dJNGQ0Y29yWWVSSTJMY3ZkaW9wOEVlNnBMUlVYQXpqeDRjVlhzNCtPM1lhU2NvOHRXckIvUGt3Ymx4NGRPb1U5bE9TCllyT0FTRW83Ky9aQjM3N1FyQmtNSHg0N2pTUmxya1FpWEVjWExvUVBQd3k3cHk5WkVqdVZjcDBGUkZMYW1UQUJQdmdBcGsrSHlwVmoKcDVHa3pOZWhBNnhhQlUyYVFQdjJNR21TUy9VcUhndUlwTFN5ZGkyTUdnVkRoMEtyVnJIVFNGTDJhTkFBM25vTEJneUFPKzRJK3lwOQorMjNzVk1wRkZoQkphZVBBZ2JEcTFXbW53UU1QeEU0alNkbW5jbVY0L1BHd1RPOHJyMERyMXJCbVRleFV5alVXRUVscFk5bzBlT2NkCmVPb3BxRjQ5ZGhwSnlsNDllc0Q3NzRjL0Z4YkNDeS9FVHFSY1lnR1JsQlkrL3h5R0RRczNuMTl5U2V3MGtwVDl6amtubEpBdVhhQm4KVHhneUJQYnVqWjFLdWNBQ0lpbTZaQkp1dXczeTg4UFN1NUtrMU1qUGh6bHp3azNwVTZhRWZVTTJib3lkU3RuT0FpSXB1aGRlZ0tJaQorTTF2b0hidDJHa2tLYmNrRWpCd0lDeGFCT3ZYdy9ubnc5dHZ4MDZsYkdZQmtSVFYxMStISDN6WFhBTlhYUlU3alNUbHJuYnR3aWF3CnpackJUMzRDano3cVVyMnFHQllRU1ZFTkdSSTJIcHc4T1hZU1NWSkJBYnp4QnZ6eWwrSFJyUnRzMnhZN2xiS05CVVJTTkFzV3dPeloKWWVQQmV2VmlwNUVrQVZTcUJBOC9EQys5RlBZTmFkVUtWcStPblVyWnhBSWlLWXJ0MitIbW0rSFNTK0dHRzJLbmtTVDlzNjVkWWVWSwpxRkVEMnJRSkh4aEo1Y0VDSWltS2UrNkJMVnZDbmgrSlJPdzBrcVFqT2VNTVdMSWs3QnZTdXpmY2VpdnMyUk03bFRLZEJVUlN5aTFaCkVwWjdIRE1HVGo4OWRocEowckZVcnc0elo0WVBqR2JNZ0lzdWdnMGJZcWRTSnJPQVNFcXBQWHZDWm9PRmhUQm9VT3cwa3FTU1NDU2cKWHo5NDkxM1l2QmxhdElEWFg0K2RTcG5LQWlJcHBSNTZDTmF0ZytuVDRhU1RZcWVSSkpWR3ExYmh2cERXcmFGelp4ZzlHZzRjaUoxSwptY1lDSWlsbFZxK0dSeDZCRVNQZzNITmpwNUVrbllnNmRlRFZWK0grKzhQajhzdkRuazVTU1ZsQUpLWEUvdjFoNnRWWlo4SElrYkhUClNKTEtJaThQN3JzUFhuc05saTJEbGkzRHlJaFVFaFlRU1NreGNTS3NXQUZQUHcxVnE4Wk9JMGtxRDUwNmhkM1RDd3JDVHVyVHBybDcKdW83UEFpS3B3bjM2S2R4N0x3d2NDRzNieGs0alNTcFBqUnZENHNYUXB3LzA3dzgzM1FRN2Q4Wk9wWFJtQVpGVW9aTEpzSEpLUVVHNApBVjJTbEgycVZvV3BVMkhXTEpnN040eUdmUEpKN0ZSS1Z4WVFTUlZxNWt4NDg4MndmbngrZnV3MGtxU0tkUDMxOE41N3NHTkh1Qy9rCjVaZGpKMUk2c29CSXFqQ2JOc0dkZDRiZGMzLzYwOWhwSkVtcGNONTU0WjYvamgzaHlpdkR3aVA3OXNWT3BYUmlBWkZVWVFZTWdDcFYKNExISFlpZVJKS1ZTclZvd2Z6Nk1HeGNlblRxRkRRd2xzSUJJcWlEejU0Zkg1TWxoelhoSlVtNUpKR0Q0Y0ZpNEVENzhNT3lldm1SSgo3RlJLQnhZUVNlWHVtMi9nOXR1aGExZm8zajEyR2tsU1RCMDZ3S3BWMEtRSnRHOFBreWE1VkcrdXM0QklLbmQzM1JXV1lKdzZOWHdDCkprbktiUTBhd0Z0dmhhbTVkOXdCMTE0TDMzNGJPNVZpc1lCSUtsY0xGOEtNR1RCK1BEUnNHRHVOSkNsZFZLNE1qejhlbHVsOTVSVm8KM1JyV3JJbWRTakZZUUNTVm14MDd3aVpVN2R0RDM3NngwMGlTMGxHUEh2RCsrK0hQaFlYd3dndXhFeW5WTENDU3lzMTk5OEhHalRCdApHdVI1ZFpFa0hjVTU1NFFTMHFVTDlPd0pRNGJBM3IyeFV5bFYvQlZCVXJsWXZoeWVlQUllZUFDYU5vMmRScEtVN3ZMelljNmNjRlA2CmxDbGgzNUNORzJPblVpcFlRQ1NWMlhmZlFaOCswTHc1REIwYU80MGtLVk1rRWpCd0lDeGFCT3ZYdy9ubnc5dHZ4MDZsaW1ZQmtWUm0KNDhiQlJ4L0I5T2xRcVZMc05KS2tUTk91SFJRWFE3Tm04Sk9md0tPUHVsUnZOck9BU0NxVGp6K0dNV1BDWmxQTm04ZE9JMG5LVkFVRgo4TVliOE10ZmhrZTNickJ0Vyt4VXFnZ1dFRWtuYlAvK01QV3FTWk53QTdva1NXVlJxUkk4L0RDODlGTFlONlJWSzFpOU9uWXFsVGNMCmlLUVROblVxTEYwS1R6OE4xYXJGVGlOSnloWmR1OExLbFZDakJyUnBBN05ueDA2azhtUUJrWFJDTm15QUVTUGcxbHZob290aXA1RWsKWlpzenpvQWxTOEsrSWIxN2g1ODNlL2JFVHFYeVlBR1JWR3JKSk54eUM1eHlDb3dkR3p1TkpDbGJWYThPTTJmQ1UwL0JqQm5oQTY4TgpHMktuVWxsWlFDU1YyclBQd29JRjhPU1RVTE5tN0RTU3BHeVdTRUMvZnZEdXU3QjVNN1JvQWErL0hqdVZ5c0lDSXFsVU5tK0d3WU9oClY2K3dnNjBrU2FuUXFsVzRMNlIxYStqY0dVYVBoZ01IWXFmU2liQ0FTQ3FWTys0SW4wWk5uQmc3aVNRcDE5U3BBNisrQ3ZmZkh4NlgKWHc1ZmZ4MDdsVXJMQWlLcHhJcUs0UG5uUS9tb1d6ZDJHa2xTTHNyTEMwdS92L1lhTEZzR0xWdUdrUkZsRGd1SXBCTFp0aTJzUU5LNQpNMXg3YmV3MGtxUmMxNmxUMkQyOW9DRHNwRDV0bXJ1blp3b0xpS1FTdWZ2dVVFS2VmREpNd1pJa0tiYkdqV0h4NHJBcGJ2LytjTk5OCnNITm43RlE2SGd1SXBPTmF0Q2dVajdGam9WR2oyR2trU2ZxN3FsWER4cml6WnNIY3VXRTA1Sk5QWXFmU3NWaEFKQjNUcmwxaCtjTUwKTHd4VHNDUkpTa2ZYWHcvdnZRYzdkb1Q3UWw1K09YWWlIWTBGUk5JeGpSNGRObjE2K3VsdzQ1OGtTZW5xdlBOZ3hRcm8yQkd1dkJKRwpqb1I5KzJLbjBqL3oxd2xKUjFWY0RPUEhoOVZHemo0N2RocEprbzZ2VmkyWVB4L0dqUXVQVHAzQ0hsWktIeFlRU1VlMGJ4LzA3UXZOCm1zSHc0YkhUU0pKVWNvbEUrTm0xY0NGOCtHSFlQWDNKa3RpcDlEMExpS1FqbWpBQlB2Z0FwaytIeXBWanA1RWtxZlE2ZElCVnE2QkoKRTJqZkhpWk5jcW5lZEdBQmtYU1l0V3RoMUNnWU9oUmF0WXFkUnBLa0U5ZWdBYnoxRmd3WUFIZmNFZmF5K3ZiYjJLbHltd1ZFMGlFTwpIQWlyWHAxMkdqendRT3cwa2lTVlhlWEs4UGpqWVpuZVYxNkIxcTFoelpyWXFYS1hCVVRTSWFaTmczZmVnYWVlZ3VyVlk2ZVJKS244CjlPZ0I3NzhmL2x4WUNDKzhFRHRSYnJLQVNEcm84ODloMkxCdzgva2xsOFJPSTBsUytUdm5uRkJDdW5TQm5qMWh5QkRZdXpkMnF0eGkKQVpFRWhKdnlicnNOOHZQRDBydVNKR1dyL0h5WU15ZmNsRDVsU3RnM1pPUEcyS2x5aHdWRUVoQ0dvWXVLNERlL2dkcTFZNmVSSktsaQpKUkl3Y0NBc1dnVHIxOFA1NThQYmI4ZE9sUnNzSUVleGZQbHlCZ3dZUUxObXpjalB6NmR4NDhiMDdObVR2L3psTHlVNmZ1dldyZlR2CjM1KzZkZXVTbjUvUEpaZGN3cXBWcTJLZmxuUkVYMzhkTHNMWFhBTlhYUlU3alNSSnFkT3VYZGg0dDFreitNbFA0TkZIWGFxM29sbEEKam1MY3VISDg4WTkvNUgvOGovL0JwRW1UNk4rL1ArKzg4dzR0V3JUZ1AvN2pQNDU1N0lFREIralNwUXR6NXN4aDBLQkJQUHJvbzJ6ZQp2SmtPSFRxd2J0MjYyS2NtSFdiSWtMRHg0T1RKc1pOSWtwUjZCUVh3eGh2d3kxK0dSN2R1c0cxYjdGVFpxMUxzQU9ucXpqdnZwTEN3CmtFcVYvdjR0NnRtekp6Lys4WThaTzNZc3MyZlBQdXF4OCtiTlkrblNwY3liTjQ5dTNib0IwS05IRDg0NjZ5eEdqUnJGYzg4OUYvdjAKcElNV0xJRFpzMkhHREtoWEwzWWFTWkxpcUZRSkhuNFkyclNCM3IzRFBsaC8rQU9jZDE3c1pObkhFWkNqYU51MjdTSGxBK0RNTTgvawpSei82RVd1T3MzRDB2SG56cUZldjNzSHlBWERxcWFmU28wY1BYbnJwSmZhNjFJTFN4UGJ0Y1BQTmNPbWxjTU1Oc2ROSWtoUmYxNjZ3CmNpWFVxQkhLeURFK2M5WUpzb0NVUWpLWjVNc3Z2K1RVVTA4OTV1dFdyVnBGaXhZdERudStzTENRblR0M3NuYnQydGluSWdGd3p6MncKWlV2WTh5T1JpSjFHa3FUMGNNWVpzR1JKMkRla2QyKzQ5VmJZc3lkMnF1eGhBU21GNTU1N2pvMGJOOUt6Wjg5anZtN1RwazNVcjEvLwpzT2UvZjI2ajY3d3BEU3haRXBZZUhETUdUajg5ZGhwSmt0Skw5ZW93YzJiNGtHN0dETGpvSXRpd0lYYXE3R0FCS2FFMWE5WncrKzIzCjA2NWRPMzd4aTE4Yzg3VzdkKyttYXRXcWh6MWZyVm8xQUhidDJoWDdkSlRqOXV3Sm13MFdGc0tnUWJIVFNKS1VuaElKNk5jUDNuMFgKTm0rR0ZpM0NCM2dxRzI5Q0w0RXZ2dmlDTGwyNmNNb3BwekJ2M2p3U3g1bXJjdkxKSjdQbkNPTjB1M2Z2UHZoMUthYUhIb0oxNjhLeQpneWVkRkR1TkpFbnByVldyY0YvSWRkZUZaZXRWTmhhUTQ5aTJiUnVkTzNmbWIzLzdHNHNYTDZaZUNaWUpxbCsvL2hHbldXM2F0QW1BCkJnMGFIUFA0d1lNSFUvdWZkb0xyMWFzWHZYcjFpdjN0VUJaWXZSb2VlUVJHam9Seno0MmRScEtrOURWbnpoem16Smx6OEo4clZZTEcKamJjNkZhdU1MQ0RIc0h2M2JxNjQ0Z3JXclZ2SG4vLzhaODQrKyt3U0hkZThlWE1XTDE1TU1wazhaTFJrMmJKbDFLaFJnN1BPT3V1WQp4ei94eEJOSHZJbGRLcXY5KzhQVXE3UE9DZ1ZFa2lRZDNaRStBQzR1THFabHk1YXhvMlUwN3dFNWl2Mzc5OU96WjArV0xWdkdpeSsrCnlBVVhYSERFMTMzeHhSZXNXYk9HZmZ2MkhYenVtbXV1NGNzdnYyVCsvUGtIbjl1eVpRc3Z2dmdpVjF4eEJaVXJWNDU5ZXNwUkV5ZkMKaWhYdzlOTndoTnVVSkVtU0twd2pJRWR4NTUxM1VsUlV4QlZYWE1HV0xWdDQ5dGxuRC9uNmRkZGRCOERkZDkvTnJGbXpXTDkrUFkwYQpOUUpDQVduVHBnMDMzbmdqSDMzMEVYWHExR0hxMUtra2swa2VlT0NCMktlbUhQWHBwM0R2dldIdWF0dTJzZE5Ja3FSY1pRRTVpZzgrCitJQkVJa0ZSVVJGRlJVV0hmQzJSU0J3c0lJbEU0ckNiMHZQeTh2alRuLzdFc0dIRG1EUnBFcnQyN2FKMTY5Yk1taldMcGsyYnhqNDEKNWFCa01xemlVVkFRYmtDWEpFbUtKWkZNSnBPeFF5ajRmazdoeXBVcnZRZEU1V3JHRE9qVEIxNS9IWDc2MDlocEpFbktYUDYrVm5iZQpBeUpsdVUyYjRNNDd3MDZ1bGc5SmtoU2JCVVRLY2dNR1FKVXE4Tmhqc1pOSWtpUjVENGlVMWViUEQ0KzVjNkZPbmRocEpFbVNIQUdSCnN0WTMzOER0dDBQWHJ0QzllK3cwa2lSSmdRVkV5bEozM1FVN2Q4TFVxZkJQQzdWSmtpUkY0eFFzS1FzdFhCaFd2dnJkNzZCaHc5aHAKSkVtUy9zNFJFQ25MN05nQi9mdEQrL2JRdDIvc05KSWtTWWR5QkVUS012ZmRCeHMzd29JRmtPZEhESklrS2MxWVFLUXNzbnc1UFBFRQpQUElJTkcwYU80MGtTZExoL0h4VXloTGZmUmQyTzIvZUhJWU9qWjFHa2lUcHlCd0JrYkxFdUhIdzBVZXdZZ1ZVOHI5c1NaS1VwaHdCCmtiTEF4eC9EbURFd2ZIZ1lBWkVrU1VwWEZoQXB3KzNmSDZaZU5Xa1Nia0NYSkVsS1owN1VrRExjMUttd2RDbTg4dzVVcXhZN2pTUkoKMHJFNUFpSmxzQTBiWU1RSXVQVld1T2lpMkdra1NaS096d0lpWmFoa0VtNjVCVTQ1QmNhT2paMUdraVNwWkp5Q0pXV29aNThObXcwVwpGVUhObXJIVFNKSWtsWXdqSUZJRzJyd1pCZytHWHIzZzhzdGpwNUVrU1NvNUM0aVVnZTY0QXhJSm1EZ3hkaEpKa3FUU2NRcVdsR0dLCml1RDU1MkgyYktoYk4zWWFTWktrMG5FRVJNb2cyN2FGRmE4NmQ0YWYvengyR2ttU3BOS3pnRWdaNU82N1F3bDU4c2t3QlV1U0pDblQKT0FWTHloQ0xGb1hpTVhreU5Hb1VPNDBrU2RLSmNRUkV5Z0M3ZGtHL2ZuRGhoWERiYmJIVFNKSWtuVGhIUUtRTU1IcDAyUFg4NVpjaAp6NDhOSkVsU0J2TlhHU25ORlJmRCtQSHdxMS9CMldmSFRpTkprbFEyRmhBcGplM2JCMzM3UXJObU1IeDQ3RFNTSkVsbDV4UXNLWTFOCm1BQWZmQURMbGtHVktySFRTSklrbFowaklGS2FXcnNXUm8yQ0lVT2dWYXZZYVNSSmtzcUhCVVJLUXdjT2hGV3ZHallNTjZCTGtpUmwKQzZkZ1NXbG8yalI0NXgxWXVCQ3FWNCtkUnBJa3FmdzRBaUtsbWM4L2gySERvRThmdU9TUzJHa2tTWkxLbHdWRVNpUEpaTmhvTUQ4ZgpmdjNyMkdra1NaTEtuMU93cERUeXdndFFWQVR6NTBQdDJySFRTSklrbFQ5SFFLUTA4ZlhYTUhBZ1hIMDFYSFZWN0RTU0pFa1Z3d0lpCnBZa2hRMkR2WHBneUpYWVNTWktraXVNVUxDa05MRmdBczJmRGpCbFFyMTdzTkpJa1NSWEhFUkFwc3UzYjRlYWI0ZEpMNFlZYllxZVIKSkVtcVdJNkFTSkhkY3c5czJRSnZ2UVdKUk93MGtpUkpGY3NDSWtXMFpFbTQ1MlBDQlBqaEQyT25rU1JKcW5oT3daSWkyYk1IK3ZhRgp3a0lZTkNoMkdrbVNwTlJ3QkVTSzVLR0hZTjA2S0M2R2swNktuVWFTSkNrMUhBR1JJbGk5R2g1NUJFYU1nSFBQaloxR2tpUXBkU3dnClVvcnQzeCttWGpWdENpTkh4azRqU1pLVVdrN0JrbEpzNGtSWXNRTGVmUmVxVm8yZFJwSWtLYlVjQVpGUzZOTlA0ZDU3WWVCQWFOczIKZGhwSmtxVFVzNEJJS1pKTVFyOStVRkFRYmtDWEpFbktSVTdCa2xKazVreDQ4MDFZc0FEeTgyT25rU1JKaXNNUkVDa0ZObTJDTysrRQozcjJoVTZmWWFTUkprdUt4Z0VncE1HQUFWSzRNanowV080a2tTVkpjVHNHU0t0ajgrZUV4ZHk3VXFSTTdqU1JKVWx5T2dFZ1Y2SnR2CjRQYmJvV3RYNk40OWRocEprcVQ0TENCU0JicnJMdGk1RTZaT2hVUWlkaHBKa3FUNG5JSWxWWkNGQzJIR0RQamQ3NkJodzlocEpFbVMKMG9NaklGSUYyTEVEK3ZlSDl1MmhiOS9ZYVNSSmt0S0hJeUJTQmJqdlB0aTRNZXo1a1dmTmx5UkpPc2dDSXBXejVjdmhpU2Zna1VlZwphZFBZYVNSSmt0S0xuODFLNWVpNzc2QlBIMmplSElZT2paMUdraVFwL1RnQ0lwV2pjZVBnbzQ5Z3hRcW81SDlka2lSSmgzRUVSQ29uCkgzOE1ZOGJBOE9GaEJFU1NKRW1IczRCSTVXRC8vakQxcWttVGNBTzZKRW1TanN4SklsSTVtRG9WbGk2RlJZdWdXclhZYVNSSmt0S1gKSXlCU0dXM1lBQ05Hd0syM3dzVVh4MDRqU1pLVTNpd2dVaGtrazNETExYREtLVEIyYk93MGtpUko2YzhwV0ZJWlBQdHMyR3l3cUFocQoxb3lkUnBJa0tmMDVBaUtkb00yYllmQmc2TlVMTHI4OGRocEprcVRNWUFHUlR0QWRkMEFpQVJNbnhrNGlTWktVT1p5Q0paMkFvaUo0Ci9ubVlQUnZxMW8yZFJwSWtLWE00QWlLVjByWnRZY1dyenAzaDV6K1BuVWFTSkNteldFQ2tVcnI3N2xCQ25ud3lUTUdTSkVsU3lUa0YKU3lxRlJZdEM4Wmc4R1JvMWlwMUdraVFwOHpnQ0lwWFFybDNRcng5Y2VDSGNkbHZzTkpJa1NabkpFUkNwaEVhUERydWV2L3d5NUZuZApKVW1TVG9pL1Jra2xVRndNNDhmRHIzNEZaNThkTzQwa1NWTG1zb0JJeDdGdkgvVHRDODJhd2ZEaHNkTklraVJsTnFkZ1NjY3hZUUo4CjhBRXNXd1pWcXNST0kwbVNsTmtjQVpHT1llMWFHRFVLaGd5QlZxMWlwNUVrU2NwOEZoRHBLQTRjQ0t0ZU5Xd1lia0NYSkVsUzJUa0YKU3pxS2FkUGduWGRnNFVLb1hqMTJHa21TcE96Z0NJaDBCSjkvRHNPR1FaOCtjTWtsc2ROSWtpUmxEd3VJOUUrU3liRFJZSDQrL1ByWApzZE5Ja2lSbEY2ZGdTZi9raFJlZ3FBam16NGZhdFdPbmtTUkp5aTZPZ0VqLzRPdXZZZUJBdVBwcXVPcXEyR2trU1pLeWp3VkUrZ2RECmhzRGV2VEJsU3V3a2tpUkoyY2twV05KL1c3QUFacytHR1RPZ1hyM1lhU1JKa3JLVEl5QVNzSDA3M0h3elhIb3AzSEJEN0RTU0pFbloKeXhFUUNiam5IdGl5QmQ1NkN4S0oyR2trU1pLeWx3VkVPVy9Ka25EUHg0UUo4TU1meGs0alNaS1UzWnlDcFp5Mlp3LzA3UXVGaFRCbwpVT3cwa2lSSjJjOFJFT1cwaHg2Q2RldWd1QmhPT2lsMkdrbVNwT3puQ0loeTF1clY4TWdqTUdJRW5IdHU3RFNTSkVtNXdRS2luTFIvCmY1aDYxYlFwakJ3Wk80MGtTVkx1Y0FxV2N0TEVpYkJpQmJ6N0xsU3RHanVOSkVsUzduQUVSRG5uMDAvaDNudGg0RUJvMnpaMkdrbVMKcE54aUFWRk9TU2FoWHo4b0tBZzNvRXVTSkNtMW5JS2xuREp6SnJ6NUppeFlBUG41c2ROSWtpVGxIa2RBbERNMmJZSTc3NFRldmFGVApwOWhwSkVtU2NwTUZSRGxqd0FDb1hCa2VleXgyRWttU3BOemxGQ3psaFBuencyUHVYS2hUSjNZYVNaS2szT1VJaUxMZU45L0E3YmRECjE2N1F2WHZzTkpJa1Nibk5BcUtzZDlkZHNITW5USjBLaVVUc05KSWtTYm5OS1ZqS2Fnc1h3b3daOEx2ZlFjT0dzZE5Ja2lUSkVSQmwKclIwN29IOS9hTjhlK3ZhTm5VYVNKRW5nQ0lpeTJIMzN3Y2FOWWMrUFBLdTJKRWxTV3JDQUtDc3RYdzVQUEFHUFBBSk5tOFpPSTBtUwpwTy81dWJDeXpuZmZRWjgrMEx3NURCMGFPNDBrU1pMK2tRWGtHSGJzMk1Hb1VhTzQ3TExMK01FUGZrQmVYaDdQUFBOTWlZNzkvZTkvClQxNWUzaEVmbXpkdmpuMXFXVzNjT1Bqb0k1ZytIU281eGlkSmtwUlcvUFhzR0w3NjZpc2VmUEJCR2pkdVRQUG16WG43N2JkSmxISWQKMXdjZmZKRFRUei85a09kcTFhb1YrOVN5MXNjZnc1Z3hNSHg0R0FHUkpFbFNlckdBSEVPREJnMzQ0b3N2S0Nnb1lPWEtsUlFXRnBiNgo3K2pjdVRNdFdyU0lmU281WWYvK01QV3FTWk53QTdva1NaTFNqd1hrR0twVXFVSkJRUUVBeVdUeWhQNk9aRExKOXUzYnFWNjlPaWVkCmRGTHNVOHBxVTZmQzBxV3dhQkZVcXhZN2pTUkprbzdFZTBBcVdNZU9IYWxWcXhZMWF0VGd5aXV2Wk4yNmRiRWpaYVVORzJERUNMajEKVnJqNDR0aHBKRW1TZERTT2dGU1FHalZxY09PTk45S3hZMGRxMXF6SmloVXJlT3l4eDJqWHJoM0Z4Y1djZHRwcHNTTm1qV1FTYnJrRgpUamtGeG82Tm5VYVNKRW5IWWdHcElOMjdkNmQ3OSs0SC83bHIxNjUwNnRTSml5KyttSWNlZW9qZi92YTNzU05taldlZkRac05GaFZCCnpacXgwMGlTSk9sWW5JS1ZRaGRlZUNFWFhIQUJmLzd6bjJOSHlScWJOOFBnd2RDckYxeCtlZXcwa2lSSk9oNUhRRkxzdE5OT1krM2EKdGNkOHplREJnNmxkdS9ZaHovWHExWXRldlhyRmpwOTI3cmdERWdtWU9ERjJFa21TbEczbXpKbkRuRGx6RG5sdTY5YXRzV05sUEF0SQppbjM2NmFmVXJWdjNtSzk1NG9rblhMcTNCSXFLNFBubllmWnNPTTYzVkpJa3FkU085QUZ3Y1hFeExWdTJqQjB0b3prRnF4eDg4Y1VYCnJGbXpobjM3OWgxODdxdXZ2anJzZFgvNjA1OG9MaTdtc3NzdWl4MDU0MjNiRmxhODZ0d1pmdjd6Mkdra1NaSlVVbzZBSE1lVUtWUFkKdW5Vckd6ZHVCT0RsbDEvbXM4OCtBMkRRb0VIVXJGbVR1KysrbTFtelpyRisvWG9hTldvRVFMdDI3V2pSb2dVdFc3YWtWcTFhRkJjWApNMlBHREJvMWFzVElrU05qbjFiR3UvdnVVRUtlZkRKTXdaSWtTVkptc0lBY3g0UUpFOWl3WVFNQWlVU0NQLzd4ajh5ZlA1OUVJa0h2CjNyMnBXYk1taVVTQ3hELzlGdnl6bi8yTVYxOTlsVGZlZUlPZE8zZlNvRUVEYnI3NVprYU5HblhjS1ZnNnRrV0xRdkdZUEJuK3UrOUoKa2lRcFF5U1NKN3JGdDhyZDkzTUtWNjVjNlQwZ1I3RnJGL3pydjBKQkFienpEdVE1aVZDU0pLV1F2NitWblNNZ3lpaWpSNGRkejE5KwoyZkloU1pLVWlmd1ZUaG1qdUJqR2o0ZGYvUXJPUGp0MkdrbVNKSjBJQzRneXdyNTkwTGN2TkdzR3c0ZkhUaU5Ka3FRVDVSUXNaWVFKCkUrQ0REMkRaTXFoU0pYWWFTWklrblNoSFFKVDIxcTZGVWFOZ3lCQm8xU3AyR2ttU0pKV0ZCVVJwN2NBQjZOY1BHallNTjZCTGtpUXAKc3prRlMybHQyclN3M083Q2hWQzlldXcwa2lSSktpdEhRSlMyUHY4Y2hnMkRQbjNna2t0aXA1RWtTVko1c0lBb0xTV1RjTnR0a0o4UAp2LzUxN0RTU0pFa3FMMDdCVWxwNjRRVW9Lb0w1ODZGMjdkaHBKRW1TVkY0Y0FWSGErZnByR0RnUXJyNGFycm9xZGhwSmtpU1ZKd3VJCjBzNlFJYkIzTDB5WkVqdUpKRW1TeXB0VHNKUldGaXlBMmJOaHhneW9WeTkyR2ttU0pKVTNSMENVTnJadmg1dHZoa3N2aFJ0dWlKMUcKa2lSSkZjRVJFS1dOZSs2QkxWdmdyYmNna1lpZFJwSWtTUlhCQXFLMHNHUkp1T2Rqd2dUNDRROWpwNUVrU1ZKRmNRcVdvdHV6Qi9yMgpoY0pDR0RRb2RocEpraVJWSkVkQUZOMUREOEc2ZFZCY0RDZWRGRHVOSkVtU0twSWpJSXBxOVdwNDVCRVlNUUxPUFRkMkdrbVNKRlUwCkM0aWkyYjgvVEwxcTJoUkdqb3lkUnBJa1NhbmdGQ3hGTTNFaXJGZ0I3NzRMVmF2R1RpTkprcVJVY0FSRVVYejZLZHg3THd3Y0NHM2IKeGs0alNaS2tWTEdBS09XU1NlalhEd29Ld2czb2tpUkp5aDFPd1ZMS3pad0piNzRKQ3haQWZuN3NOSklrU1VvbFIwQ1VVcHMyd1oxMwpRdS9lMEtsVDdEU1NKRWxLTlF1SVVtckFBS2hjR1I1N0xIWVNTWklreGVBVUxLWE0vUG5oTVhjdTFLa1RPNDBrU1pKaWNBUkVLZkhOCk4zRDc3ZEMxSzNUdkhqdU5KRW1TWXJHQUtDWHV1Z3QyN29TcFV5R1JpSjFHa2lSSnNUZ0ZTeFZ1NFVLWU1RTis5enRvMkRCMkdrbVMKSk1Ya0NJZ3ExSTRkMEw4L3RHOFBmZnZHVGlOSmtxVFlIQUZSaGJydlB0aTRNZXo1a1dmZGxTUkp5bmtXRUZXWTVjdmhpU2Zna1VlZwphZFBZYVNSSmtwUU8vRXhhRmVLNzc2QlBIMmplSElZT2paMUdraVJKNmNJUkVGV0ljZVBnbzQ5Z3hRcW81THRNa2lSSi84MFJFSlc3Cmp6K0dNV05nK1BBd0FpSkpraVI5endLaWNyVi9mNWg2MWFSSnVBRmRraVJKK2tkT2psRzVtam9WbGk2RlJZdWdXclhZYVNSSmtwUnUKSEFGUnVkbXdBVWFNZ0Z0dmhZc3ZqcDFHa2lSSjZjZ0NvbktSVE1JdHQ4QXBwOERZc2JIVFNKSWtLVjA1QlV2bDR0bG53MmFEUlVWUQpzMmJzTkpJa1NVcFhqb0NvekRadmhzR0RvVmN2dVB6eTJHa2tTWktVeml3Z0tyTTc3b0JFQWlaT2pKMUVraVJKNmM0cFdDcVRvaUo0Ci9ubVlQUnZxMW8yZFJwSWtTZW5PRVJDZHNHM2J3b3BYblR2RHozOGVPNDBrU1pJeWdRVkVKK3p1dTBNSmVmTEpNQVZMa2lSSk9oNm4KWU9tRUxGb1Vpc2ZreWRDb1VldzBraVJKeWhTT2dLalVkdTJDZnYzZ3dndmh0dHRpcDVFa1NWSW1jUVJFcFRaNmROajEvT1dYSWM4SwpLMG1TcEZMdzEwZVZTbkV4akI4UHYvb1ZuSDEyN0RTU0pFbktOQllRbGRpK2ZkQzNMelJyQnNPSHgwNGpTWktrVE9RVUxKWFloQW53CndRZXdiQmxVcVJJN2pTUkpraktSSXlBcWtiVnJZZFFvR0RJRVdyV0tuVWFTSkVtWnlnS2k0enB3SUt4NjFiQmh1QUZka2lSSk9sRk8Kd2RKeFRac0c3N3dEQ3hkQzllcXgwMGlTSkNtVE9RS2lZL3I4Y3hnMkRQcjBnVXN1aVoxR2tpUkptYzRDb3FOS0pzTkdnL241OE90Zgp4MDRqU1pLa2JPQVVMQjNWQ3k5QVVSSE1udysxYThkT0kwbVNwR3pnQ0lpTzZPdXZZZUJBdVBwcXVPcXEyR2trU1pLVUxTd2dPcUloClEyRHZYcGd5SlhZU1NaSWtaUk9uWU9rd0N4YkE3Tmt3WXdiVXF4YzdqU1JKa3JLSkl5QTZ4UGJ0Y1BQTmNPbWxjTU1Oc2ROSWtpUXAKMnpnQ29rUGNjdzlzMlFKdnZRV0pST3cwa2lSSnlqWVdFQjIwWkVtNDUyUENCUGpoRDJPbmtTUkpValp5Q3BZQTJMTUgrdmFGd2tJWQpOQ2gyR2ttU0pHVXJSMEFFd0VNUHdicDFVRndNSjUwVU80MGtTWkt5bFNNZ1l2VnFlT1FSR0RFQ3pqMDNkaHBKa2lSbE13dElqdHUvClAweTlhdG9VUm82TW5VYVNKRW5aemlsWU9XN2lSRml4QXQ1OUY2cFdqWjFHa2lSSjJjNFJrQnoyNmFkdzc3MHdjQ0MwYlJzN2pTUkoKa25LQkJTUkhKWlBRcng4VUZJUWIwQ1ZKa3FSVWNBcFdqcG81RTk1OEV4WXNnUHo4Mkdra1NaS1VLeHdCeVVHYk5zR2RkMEx2M3RDcApVK3cwa2lSSnlpVVdrQncwWUFCVXJneVBQUlk3aVNSSmtuS05VN0J5elB6NTRURjNMdFNwRXp1TkpFbVNjbzBqSURua20yL2c5dHVoCmExZm8zajEyR2ttU0pPVWlDMGdPdWVzdTJMa1RwazZGUkNKMkdrbVNKT1VpcDJEbGlJVUxZY1lNK04zdm9HSEQyR2trU1pLVXF4d0IKeVFFN2RrRC8vdEMrUGZUdEd6dU5KRW1TY3BraklEbmd2dnRnNDhhdzUwZWVsVk9TSkVrUldVQ3kzUExsOE1RVDhNZ2owTFJwN0RTUwpKRW5LZFg0ZW5zVysrdzc2OUlIbXpXSG8wTmhwSkVtU0pFZEFzdHE0Y2ZEUlI3QmlCVlR5LzJsSmtpU2xBVWRBc3RUSEg4T1lNVEI4CmVCZ0JrU1JKa3RLQkJTUUw3ZDhmcGw0MWFSSnVRSmNrU1pMU2hSTnpzdERVcWJCMEtTeGFCTldxeFU0alNaSWsvWjBqSUZsbXd3WVkKTVFKdXZSVXV2amgyR2ttU0pPbFFGcEFza2t6Q0xiZkFLYWZBMkxHeDAwaVNKRW1IY3dwV0ZubjIyYkRaWUZFUjFLd1pPNDBrU1pKMApPRWRBc3NUbXpUQjRNUFRxQlpkZkhqdU5KRW1TZEdRV2tDeHh4eDJRU01ERWliR1RTSklrU1VmbkZLd3NVRlFFeno4UHMyZEQzYnF4CjAwaVNKRWxINXdoSWh0dTJMYXg0MWJrei9Qem5zZE5Ja2lSSngyWUJ5WEIzM3gxS3lKTlBoaWxZa2lSSlVqcHpDbFlHVzdRb0ZJL0oKazZGUm85aHBKRW1TcE9OekJDUkQ3ZG9GL2ZyQmhSZkNiYmZGVGlOSmtpU1ZqQ01nR1dyMDZMRHIrY3N2UTU0MVVwSWtTUm5DWDEwegpVSEV4akI4UHYvb1ZuSDEyN0RTU0pFbFN5VmxBTXN5K2ZkQzNMelJyQnNPSHgwNGpTWklrbFk1VHNETE1oQW53d1Fld2JCbFVxUkk3CmpTUkprbFE2am9Ca2tMVnJZZFFvR0RJRVdyV0tuVWFTSkVrcVBRdEloamh3SUt4NjFiQmh1QUZka2lSSnlrUk93Y29RMDZiQk8rL0EKd29WUXZYcnNOSklrU2RLSmNRUWtBM3orT1F3YkJuMzZ3Q1dYeEU0alNaSWtuVGdMU0pwTEpzTkdnL241OE90ZngwNGpTWklrbFkxVApzTkxjQ3k5QVVSSE1udysxYThkT0kwbVNKSldOSXlESHNHUEhEa2FOR3NWbGwxM0dEMzd3QS9MeThuam1tV2RLZlB6V3JWdnAzNzgvCmRldldKVDgvbjBzdXVZUlZxMWFWK1BpdnY0YUJBK0hxcStHcXEySi9OeVJKa3FTeXM0QWN3MWRmZmNXRER6N0lmLzduZjlLOGVYTUEKRW9sRWlZNDljT0FBWGJwMFljNmNPUXdhTkloSEgzMlV6WnMzMDZGREI5YXRXMWVpdjJQSUVOaTdGNlpNaWYyZGtDUkprc3FIQmVRWQpHalJvd0JkZmZNRi8vZGQvTVg3OCtGSWRPMi9lUEpZdVhjb3p6enpEcjM3MUsyNjc3VGJlZnZ0dFRqcnBKRWFOR25YYzR4Y3NnTm16CjRiSEhvRjY5Mk44SlphTTVjK2JFanFBYzRYdE5xZUo3VGNvTUZwQmpxRktsQ2dVRkJRQWtrOGxTSFR0djNqenExYXRIdDI3ZERqNTMKNnFtbjBxTkhEMTU2NlNYMjd0MTcxR04zN0lDYmI0WkxMNFViYm9qOVhWQzI4Z2UxVXNYM21sTEY5NXFVR1N3Z0ZXVFZxbFcwYU5IaQpzT2NMQ3d2WnVYTW5hOWV1UGVxeHYva05iTmtDdi9zZGxIREdseVJKa3BRUkxDQVZaTk9tVGRTdlgvK3c1NzkvYnVQR2pVYzlkdTVjCkdETUdmdmpEMkdjaFNaSWtsUzhMU0FYWnZYczNWYXRXUGV6NWF0V3FBYkJyMTY2akh0dXNHUXdhRlBzTUpFbVNwUExuUGlBVjVPU1QKVDJiUG5qMkhQYjk3OSs2RFh6K2E2Njc3bUE4K2lIMEd5blpidDI2bHVMZzRkZ3psQU45clNoWGZhMHFGanovK09IYUVqR2NCcVNEMQo2OWMvNGpTclRaczJBV0dGclNNZDA2QkJBMGFNdUk0UkkyS2ZnWEpCeTVZdFkwZFFqdkM5cGxUeHZhWlVhTkNnd1JHbjJxdGtMQ0FWCnBIbno1aXhldkpoa01ubkkzaUhMbGkyalJvMGFuSFhXV1ljZFU3OStmVmFzV0hHd3BFaVNKQ245MUs5ZjN3SlNCaGFRY3ZERkYxK3cKZGV0V3pqenpUQ3BWQ3QvU2E2NjVobm56NWpGLy9ueXV2dnBxQUxaczJjS0xMNzdJRlZkY1FlWEtsWS80ZC9tR2xpUkpVamF6Z0J6SApsQ2xUMkxwMTY4SHBWQysvL0RLZmZmWVpBSU1HRGFKbXpacmNmZmZkekpvMWkvWHIxOU9vVVNNZ0ZKQTJiZHB3NDQwMzh0RkhIMUduClRoMm1UcDFLTXBua2dRY2VpSDFha2lSSlVoU0paR2wzMk1zeHA1OStPaHMyYkFBNE9KWHErMmxWLy9WZi8wV2pSbzI0OGNZYm1UVnIKMXNGLy90N1dyVnNaTm13WS8vN3YvODZ1WGJ0bzNibzF2LzcxcjQrNFA0Z2tTWktVQ3l3Z2tpUkprbExHZlVBa1NaSWtwWXdGSkFYMgo3Tm5ETDMvNVN4bzBhRUQxNnRWcDA2WU5mLzd6bjB0MDdOYXRXK25mdno5MTY5WWxQeitmU3k2NWhGV3JWc1UrSmFXcEUzMnYvZjczCnZ5Y3ZMKytJajgyYk44YytMYVdaSFR0Mk1HclVLQzY3N0RKKzhJTWZrSmVYeHpQUFBGUGk0NzJ1cWFUSzhsN3p1cWJTV0w1OE9RTUcKREtCWnMyYms1K2ZUdUhGamV2YnN5Vi8rOHBjU0hlOTFyWFM4Q1QwRmJyamhCdjd3aHo4d1pNZ1Ftalp0eXN5Wk0vbWYvL04vOHRaYgpiM0hoaFJjZTliZ0RCdzdRcFVzWFZxOWV6ZkRod3cvZXlONmhRd2RXcmx6Sm1XZWVHZnZVbEdaTzlMMzJ2UWNmZkpEVFR6LzlrT2RxCjFhb1YrN1NVWnI3NjZpc2VmUEJCR2pkdVRQUG16WG43N2JjUFdXNzhXTHl1cVRUSzhsNzdudGMxbGNTNGNlTll1blFwM2J0MzU3enoKem1QVHBrMU1tVEtGRmkxYThONTc3OUdzV2JPakh1dDE3UVFrVmFHV0xWdVdUQ1FTeVFrVEpoeDhidmZ1M2Nrenp6d3oyYTVkdTJNZQpPM2Z1M0dRaWtVais0UTkvT1BqY1YxOTlsVHpsbEZPUzExNTdiZXhUVTVvcHkzdHQ1c3laeVVRaWtWeTVjbVhzMDFBRzJMTm5UL0xMCkw3OU1KcFBKNUlvVks1S0pSQ0w1ekRQUGxPaFlyMnNxamJLODE3eXVxVFNXTEZtUzNMdDM3eUhQL2VVdmYwbFdxMVl0ZWQxMTF4M3oKV0s5cnBlY1VyQW8yYjk0OEtsV3FSUC8rL1E4K1Y3VnFWZnIwNmNQU3BVdjVmLy92L3gzejJIcjE2dEd0VzdlRHo1MTY2cW4wNk5HRApsMTU2aWIxNzk4WStQYVdSc3J6WHZwZE1KdG0rZlR2NzkrK1BmVHBLWTFXcVZLR2dvQUFJNzVuUzhMcW0waWpMZSsxN1h0ZFVFbTNiCnRqMjRsOXYzemp6elRINzBveCt4WnMyYVl4N3JkYTMwTENBVmJOV3FWWngxMWxuazUrY2Y4bnhoWVNFQS8rZi8vSjlqSG51a0pYc0wKQ3d2WnVYTW5hOWV1algxNlNpTmxlYTk5cjJQSGp0U3FWWXNhTldwdzVaVlhzbTdkdXRpbnBTempkVTJwNW5WTkp5cVpUUExsbDE5eQo2cW1uSHZOMVh0ZEt6d0pTd1RadDJuVEVuYzIvZis3N0RRN0wrMWpsbnJLOFgyclVxTUdOTjk3STFLbFQrZmQvLzNlR0R4L093b1VMCmFkZXVIWjkvL25uc1UxTVc4YnFtVlBHNnBySjY3cm5uMkxoeEl6MTc5anptNjd5dWxaNDNvVmV3WGJ0MlViVnExY09lcjFhdDJzR3YKSDgzdTNidFArRmpsbnJLODE3cDM3MDczN3QwUC9uUFhybDNwMUtrVEYxOThNUTg5OUJDLy9lMXZZNStlc29UWE5hV0sxeldWeFpvMQphN2o5OXR0cDE2NGR2L2pGTDQ3NVdxOXJwZWNJU0FVNytlU1QyYk5uejJIUDc5NjkrK0RYSytKWTVaN3lmcjljZU9HRlhIREJCU1ZlCk1sb3FDYTlyaXNucm1rcmlpeSsrb0V1WExweHl5aW5NbXpmdnVDdXZlVjByUFF0SUJhdGZ2LzRSaDk0MmJkb0VRSU1HRFNya1dPV2UKaW5pL25IYmFhWHp6elRleFQwMVp4T3VhWXZPNnBtUFp0bTBiblR0MzVtOS8reHNMRml5Z1hyMTZ4ejNHNjFycFdVQXEyUG5ubjgvYQp0V3Zadm4zN0ljOHZXN1lNZ09iTm14LzEyT2JObTFOY1hIell5aC9MbGkyalJvMGFuSFhXV2JGUFQybWtMTysxby9uMDAwK3BXN2R1CjdGTlRGdkc2cHRpOHJ1bG9kdS9lelJWWFhNRzZkZXQ0NVpWWE9QdnNzMHQwbk5lMTByT0FWTEJycnJtRy9mdjM4OVJUVHgxOGJzK2UKUGN5Y09aTTJiZHJRc0dGRElBejNyVm16aG4zNzloMXk3SmRmZnNuOCtmTVBQcmRseXhaZWZQRkZycmppQ2lwWHJoejc5SlJHeXZKZQorK3Fycnc3NysvNzBwejlSWEZ6TVpaZGRGdnZVbEtHOHJpbFZ2SzZwclBidjMwL1BuajFadG13Wkw3NzRJaGRjY01FUlgrZDFyWHdrCmtpZTZzTFpLckdmUG52enhqMzlreUpBaG5ISEdHVHp6ekRPc1dMR0NoUXNYOG0vLzltOUEyTUY2MXF4WnJGKy9ua2FOR2dGaFo4MS8KKzdkLzQ4TVBQMlRZc0dFSGQ5YjgvUFBQV2I1OE9VMmJObzE5YWtvekovcGVhOXEwS1MxYXRLQmx5NWJVcWxXTDR1Smlac3lZUWNPRwpEVm0rZkxtZkZ1b3dVNlpNWWV2V3JXemN1SkVubjN5U2J0MjZIUnhsR3pSb0VEVnIxdlM2cG5KeG91ODFyMnNxamNHREJ6TnAwaVN1CnVPS0tReFl2K041MTExMEgrUHRhdVltOUUySXUyTDE3ZDNMWXNHSEordlhySjZ0VnE1YTg0SUlMa20rODhjWWhyN25oaGh1U2VYbDUKeVEwYk5oenkvRGZmZkpQczI3ZHY4dFJUVDAzV3FGRWoyYkZqUjNkMTFWR2Q2SHZ0M252dlRaNS8vdm5KMnJWcko2dFVxWkpzMHFSSgo4dmJiYjA5dTNydzU5aWtwVFRWcDBpU1pTQ1NTaVVRaW1aZVhsOHpMeXp2NDUrL2ZXMTdYVkI1TzlMM21kVTJsMGFGRGg0UHZyWDkrCjVPWGxIWHlkMTdYeTRRaUlKRW1TcEpUeEhoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUIKa1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSgpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKCmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXkKRmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktXTUJrU1JKa3BReUZoQkpraVJKS1dNQmtTUkprcFF5RmhCSmtpUkpLV01Ca1NSSgprcFF5RmhCSmtpUkpLV01Ca1NSSmtwUXlGaEJKa2lSSktmUC9BeE5wMGlHdHpRYjJBQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5Ck1ERTRMVEExTFRFMVZERTVPalEzT2pNekt6QXlPakF3WGI2MHNBQUFBQ1YwUlZoMFpHRjBaVHB0YjJScFpua0FNakF4T0Mwd05TMHgKTlZReE9UbzBOem96TXlzd01qb3dNQ3pqREF3QUFBQUFTVVZPUks1Q1lJST0iIC8+Cjwvc3ZnPgo="; }, - thumbnail_uri: function () { return null; } - } - - , - "testmodel.fig2.png": { - name: "testmodel.fig2.png", - filename: "testmodel.fig2.png", - path: "testmodel.fig2.png", - size: "9.1 kB", - mime_type: "image/png", - caption: "

Some math \u2211ii2.

\n", - job_properties: { - rule: "b", - wildcards: "model=testmodel", - params: "" - }, - data_uri: function () { return "data:image/png;charset=utf8;filename=testmodel.fig2.png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3W2QlfV5wOF7t+sLgQJmWQobRiSLkmSLQyBC2BiDpo1vRRsDbLdDEkgaZ1LFYtLgtHHwgzFjNm2kljTENNlgQ2lHDKl22ial0YaZrCBsmrYSBAkvRRZZrShKUMHTDw6kG15kdzn3A3uua4aZ8JzzOPf+547y45yzW1UqlUoBAACQoLroAQAAgMohQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAyqyjoyOuu+66qK2tjYEDB8b48ePjL//yL4seCwAAClFT9AD92Q9+8IOYPn16TJo0KRYuXBiDBg2Kp556Kp5++umiRwMAgEJUlUqlUtFD9EcvvvhiXHTRRXHppZfGihUrih4HAABOC96CVSZ/+7d/G3v27Im77rorIiJefvnleP311wueCgAAiiVAymTVqlUxePDg+J//+Z8YN25c/Pqv/3oMGTIk/vAP/zBeeeWVoscDAIBCCJAy2bx5cxw8eDB+93d/N66++ur47ne/G5/4xCdiyZIlMXfu3KLHAwCAQvgMSJk0NDTE1q1b49Of/nR89atfPXL905/+dHz961+PTZs2xdixYwucEAAA8vkuWGUyYMCAiIhoaWnpdr2lpSW+/vWvx2OPPXbMAOns7IzOzs6UGQEA6LmRI0fGyJEjix7jjCVAyqS+vj42bNgQv/Ebv9Ht+vDhwyMi4vnnnz/qns7OznjPe94Tu3btSpkRAICeq6+vj3Xr1omQXhIgZfKe97wnVq1aFTt37owLL7zwyPXDcVFXV3fUPZ2dnbFr1674zne+E+985zvTZu0P5s+fH4sWLSp6jDOKM+sd59Zzzqx3nNubmzFjRmzduvW4j48ZM8a3wj8Jdq1nfvazn8Xs2bOjs7NTgPSSACmTWbNmxd133x3f/OY34/LLLz9y/a//+q/jrLPOimnTph333ne+850xceLEhCn7j6FDhzqzHnJmvePces6Z9Y5ze3Mf+MAHThggH/jAB5zhSbBrZBMgZTJhwoT4xCc+Ed/61rfi4MGDcdlll8Wjjz4aK1asiD/90z+NESNGFD0iAJzRWltbY/Xq1bFly5ajHmtoaIjW1tYCpgLejAApoyVLlsT5558fbW1tsXLlyrjgggti0aJFccsttxQ9GgCc8erq6qK9vT0WLFgQa9euje3bt8fo0aNj8uTJ0draesy3OwPFEyBlVFNTEwsXLoyFCxcWPQoA9Et1dXXR1tYWERHXXXddPPTQQwVPBLwZP4iQfuFXv90xb86Z9Y5z6zln1jvOreecWe84N7L5QYSnkY6Ojpg0aVKsX7/eh8EAAE5D/rzWd14BAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0ggQAAAgjQApo0cffTSqq6uP+Wvt2rVFjwcAAOlqih6gEvzRH/1RXHLJJd2uNTQ0FDQNAAAUR4AkeP/73x833HBD0WMAAEDhvAUrQalUin379sXBgweLHgUAAAolQBLMnTs3hgwZEgMGDIgrrrgi1q9fX/RIAABQCG/BKqNzzjknZsyYEddcc00MGzYsnnjiifizP/uzeP/73x8//vGPY8KECUWPCAAAqQRIGU2dOjWmTp165Pe/8zu/EzNmzIiLL744/uRP/iT++Z//ucDpAAAgn7dgJWtoaIjrr78+HnnkkSiVSkWPAwAAqbwCUoBRo0bFq6++Gi+//HIMGjToqMfnz58fQ4cO7XatpaUlWlpaskYEAKh4y5cvj+XLl3e7tnfv3oKm6T8ESAF+/vOfx4ABA44ZHxERixYtiokTJyZPBQDA/3esvwDu6OiISZMmFTRR/+AtWGXU1dV11LWf/vSn8dBDD8WHPvShAiYCAIBieQWkjJqbm+Mtb3lLTJ06NYYPHx4bNmyI++67LwYNGhR333130eMBAEA6AVJGH/7wh2PZsmVxzz33xIsvvhjDhw+PGTNmxB133BFvf/vbix4PAADSCZAymjdvXsybN6/oMQAA4LThMyAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgie66666orq6O8ePHFz0KAAAUQoAk2blzZ3zxi1+MgQMHRlVVVdHjAABAIWqKHqBS/PEf/3E0NTXFwYMH49lnny16HAAAKIRXQBL86Ec/igcffDAWLVoUpVLJKyAAAFQsAVJmhw4dinnz5sWnPvWpaGxsLHocAAB6oaurK+bOnRszZswoepQznrdgldmSJUtix44d8cMf/rDoUQAA6IU9e/ZEU1NTbNmypehR+gWvgJTRc889FwsXLoyFCxdGbW1t0eMAANALt912m/g4hQRIGd1+++0xbNiwmDdvXtGjAADQS2vXri16hH7FW7DKZPPmzfGNb3wjFi1aFDt37jxy/cCBA/Hqq6/G9u3bY/DgwXHeeecdde/8+fNj6NCh3a61tLRES0tL2ecGAOANy5cvj+XLl8f27duLHqVfqSqVSqWih+iPHn300bjiiitO+Jz58+fHV77ylSO/7+joiEmTJsX69etj4sSJ5R4RAICT0NjYGBs2bOh2zZ/Xes8rIGUyfvz4WLlyZbdvuVsqleL222+Pl156Kf7iL/4iGhoaCpwQAICTMXny5KMChN4TIGVSW1sb119//VHX77nnnoiIuO6667JHAgCgF1pbW2P16tU+iH6K+BB6sqqqKj+IEADgDFJXVxft7e0xZ86cGDNmTNHjnPG8ApLskUceKXoEAAB6qK6uLtra2o58Zpfe8woIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkESBk98cQTMXPmzGhoaIiBAwdGbW1tNDU1xbJly4oeDQAAClFT9AD92Y4dO+Kll16KOXPmRH19fezfvz9WrFgRH/3oR2Pbtm3x+c9/vugRAQAgVVWpVCoVPUQlef3112PSpEnxv//7v7F9+/Zuj3V0dMSkSZNi/fr1MXHixIImBADgePx5re+8BStZdXV1jBo1Ks4666yiRwEAgHTegpVg//79sX///njhhRfioYceiu9///uxePHioscCKJuurq5YsGBBrF27Ng4ePBg1NTUxefLkaG1tjbq6uqLHA6BAAiTBZz7zmbjvvvsiIqKmpibuvffeuPHGGwueCqA89uzZE01NTbFly5Zu1zds2BCrV6+O9vZ2EQJQwbwFK8Gtt94aq1ativvvvz8++MEPxs033xxLly4teiyAsrjtttuOio/DtmzZEgsWLEieCIDTiVdAEowbNy7GjRsXERGzZ8+OK6+8MubPnx+zZs2KAQMGFDwdwKm1du3aPj0OQP8mQArwkY98JP71X/81nnzyyZgwYcJRj8+fPz+GDh3a7VpLS0u0tLRkjQjQawcPHuzT4wCni+XLl8fy5cu7Xdu7d29B0/QfAqQAv/jFLyLije+IdSyLFi3ybd2AM1ZNzYn/0/JmjwOcLo71F8CHvw0vveczIGXU1dV11LXXXnst7r///qitrY3GxsYCpgIor8mTJ/fpcQD6N38NVUY33nhj7Nu3Ly677LKor6+P3bt3x7Jly2LTpk3R1tYWv/Zrv1b0iACnXGtra6xevfqYH0RvaGiI1tbWAqYC4HQhQMro937v9+Kb3/xmfO1rX4vnnnsuBg8eHFOmTInFixfHBz/4waLHAyiLurq6aG9v93NAADgmAVJGzc3N0dzcXPQYAOnq6uqira2t6DEAOA35DAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQRIGT3++ONx8803R2NjYwwaNChGjx4dzc3NsXnz5qJHAwCAQtQUPUB/9qUvfSna29tj5syZcfHFF0dnZ2csXrw4Jk6cGI899lg0NjYWPSIAAKQSIGX02c9+Ni655JKoqfnlMTc3N8f48ePj7rvvjr/5m78pcDoAAMgnQMpo6tSpR10bO3ZsvOtd74qNGzcWMBEAABTLZ0CSlUqleOaZZ2LYsGFFj0IF6urqirlz50ZjY2OMGzcuGhsbY+7cudHV1VX0aABAhfAKSLJly5bFrl274gtf+ELRo1Bh9uzZE01NTbFly5Zu1zds2BCrV6+O9vb2qKurK2g6AKBSeAUk0caNG+Omm26Kpqam+PjHP170OFSY22677aj4OGzLli2xYMGC5IkAgEokQJLs3r07rr322jjvvPNixYoVUVVVVfRIVJi1a9f26XEAgFPBW7ASvPDCC3H11VfHiy++GKtXr44RI0ac8Pnz58+PoUOHdrvW0tISLS0t5RyTfu7gwYN9ehwAKs3y5ctj+fLl3a7t3bu3oGn6DwFSZgcOHIjp06fHU089FatWrYp3vOMdb3rPokWLYuLEiQnTUUn+/7eD7s3jAFBpjvUXwB0dHTFp0qSCJuofvAWrjA4dOhTNzc2xZs2aeOCBB2LKlClFj0QFmzx5cp8eBwA4FfyVZxl99rOfjYcffjimT58ezz77bHznO9/p9vjs2bMLmoxK1NraGqtXrz7mB9EbGhqitbW1gKkAgEojQMropz/9aVRVVcXDDz8cDz/8cLfHqqqqBAip6urqor29PRYsWBBr166NgwcPRk1NTUyePDlaW1t9C14AIIUAKaNHHnmk6BGgm7q6umhrayt6DACggvkMCAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBEgZvfzyy3HHHXfEVVddFW9961ujuro6li5dWvRYAABQGAFSRl1dXXHnnXfGk08+GRMmTIiIiKqqqoKnAgCA4giQMqqvr4/du3fH1q1b48tf/nLR4/Rry5cvL3qEM44z6x3n1nPOrHecW885s95xbmQTIGV09tlnx/DhwyMiolQqFTxN/+Zfnj3nzHrHufWcM+sd59Zzzqx3nBvZBMhpaMaMGTF37tzo6uoqehQAADilaooegKNt3bo1tm7dGqtXr4729vaoq6sreiQAADglvAJyGtuyZUssWLCg6DEAAOCU8QrIae7f//3fo6Ojo+gxTnt79+51Tj3kzHrHufWcM+sd59Zzzqx3nFvP/OxnPyt6hDNeVcmno1OsW7cuJk+eHN/+9rfjYx/72DGf09nZGfX19cmTAQDQE/X19bFu3boYOXJk0aOckbwCchoZOXJk7Nq1Kzo7O4seBQCA4xg5cqT46AMBcpqx0AAA9GcCpMwWL14ce/fujV27dkVExEMPPRQ7duyIiIhbbrklBg8eXOR4AACQymdAymzMmDGxffv2iIioqqqKiDd+KGFVVVVs3bo1zj///CLHAwCAVAIEAABI4+eAAAAAaQRIgldeeSVuu+22qK+vj7e85S3x3ve+N1atWnVS9+7duzduvPHGqKuri0GDBsUVV1wRP/nJT8o88emht+f27W9/O6qrq4/5a8+ePQmTF+Pll1+OO+64I6666qp461vfGtXV1bF06dKTvr9Sd60v51apu/b444/HzTffHI2NjTFo0KAYPXp0NDc3x+bNm0/q/krdtb6cW6Xu2hNPPBEzZ86MhoaGGDhwYNTW1kZTU1MsW7bspO6v1F3ry7lV6q4dy1133RXV1dUxfvz4k3p+pe5bb/gQeoI5c+bEgw8+GLfeemtceOGF0dbWFtdcc0088sgj8b73ve+4973++utx7bXXxn/+53/GggULora2Nv7qr/4qpk2bFuvXr4+xY8cmfhX5entuh915550xZsyYbteGDBlSrnEL19XVFXfeeWeMHj06JkyYEI8++uiRzx29mUretb6c22GVtmtf+tKXor29PWbOnBkXX3xxdHZ2xuLFi2PixInx2GOPRWNj43HvreRd68u5HVZpu7Zjx4546aWXYs6cOVFfXx/79++PFStWxEc/+tHYtm1bfP7znz/uvZW8a305t8Mqbdd+1c6dO+OLX/xiDBw48KT+m1DJ+9YrJcpqzZo1paqqqtKf//mfH7l24MCB0tixY0tNTU0nvPfv//7vS1VVVaUHH3zwyLWurq7SeeedV/r93//9ss18OujLubW1tZWqqqpK69evL/eYp5VXXnml9Mwzz5RKpVJp3bp1paqqqtLSpUtP6t5K3rW+nFul7tqPf/zj0muvvdbt2ubNm0vnnntuafbs2Se8t5J3rS/nVqm7diyHDh0qTZgwoXT++eef8HmVvGvHcrLnZtfe0NzcXPqt3/qt0rRp00q/+Zu/+abPt2894y1YZbZixYqoqamJG2+88ci1c845Jz75yU9Ge3t7PP300ye8d8SIEXHDDTccuTZs2LCYNWtW/MM//EO89tprZZ29SH05t8NKpVLs27cvDh06VM5RTxtnn312DB8+PCLe+Np7opJ3rS/ndlil7drUqVOjpqb7C+hjx46Nd73rXbFx48YT3lvJu9aXczus0nbtWKqrq2PUqFFx1llnnfB5lbxrx3Ky53ZYJe/aj370o3jwwQdj0aJFR75z6Zuxbz0jQMrsJz/5SVx00UUxaNCgbtcvueSSiIj4j//4jxPeO3HixKOuX3LJJbF///7YtGnTqR32NNKXczvs8ssvjyFDhsTAgQPj+uuvj6eeeqoss/YHlbxrp4Jde+MPK88880wMGzbshM+za92d7LkdVqm7tn///nj22Wdjy5Ytcc8998T3v//9WLBgwQnvsWu9O7fDKnXXDh06FPPmzYtPfepTJ/W2yMPsW8/4DEiZdXZ2HvMnmx++dvgHFB7v3mnTpp3w3p78n+NM0pdzGzhwYMydOzcuv/zyGDx4cKxbty6+8pWvRFNTU3R0dMSoUaPKNveZqpJ3rS/s2i8tW7Ysdu3aFV/4whdO+Dy71t3Jnlul79pnPvOZuO+++yIioqamJu69995ur5Afi13r3blV+q4tWbIkduzYET/84Q97dJ996xkBUma/+MUv4pxzzjnq+rnnnnvk8eM5cOBAr+890/Xl3GbOnBkzZ8488vvrrrsurrzyyrjsssvirrvuiq997WunfuAzXCXvWl/YtTds3LgxbrrppmhqaoqPf/zjJ3yuXfulnpxbpe/arbfeGrNmzYpdu3bFsmXL4uabb44BAwac8NzsWu/OrZJ37bnnnouFCxfGwoULo7a2tkf32reeESBlNmDAgHjllVeOun7gwIEjj5fj3jPdqf7a3/e+98WUKVNO+tsfV5pK3rVTrdJ2bffu3XHttdfGeeedFytWrHjT90rbtTf09NyOpZJ2bdy4cTFu3LiIiJg9e3ZceeWVMX/+/Jg1a9Zxd8au9e7cjqVSdu3222+PYcOGxbx583p8r33rGZ8BKbORI0ce8+1CnZ2dERFRX19flnvPdOX42keNGhXPP/98n2frjyp518qhUnbthRdeiKuvvjpefPHF+Jd/+ZcYMWLEm95j13p3bsdTKbv2qz7ykY/ECy+8EE8++eRxn2PXjnYy53Y8/X3XNm/eHN/4xjdi3rx5sXPnzti2bVts27YtDhw4EK+++mps3779hF+/fesZAVJm7373u2PTpk2xb9++btfXrFkTERETJkw47r0TJkyIjo6Oo74zz5o1a2LgwIFx0UUXnfqBTxN9Obfj+fnPfx51dXWnZL7+ppJ3rRwqYdcOHDgQ06dPj6eeeir+8R//Md7xjnec1H2Vvmu9PbfjqYRdO5bDb2eprj7+H2MqfdeO5WTO7Xj6+649/fTT8frrr8ctt9wSb3/724/8Wrt2bWzatCnGjBkTd95553Hvt289I0DKbMaMGXHo0KEjHwKLeOMnfLe1tcV73/veeNvb3hYRb7wcv3Hjxjh48GC3e5955pn47ne/e+Tas88+Gw888EBMnz79pL+V3pmoL+fW1dV11D/vn/7pn6KjoyOuuuqq8g9/mrNrvWPXfunQoUPR3Nwca9asiQceeCCmTJlyzOfZte76cm6VumvH+rrLggk3AAADF0lEQVRfe+21uP/++6O2tvbIh3o7Ozvt2v/Tl3Or1F0bP358rFy5Mr73ve8d+bVy5cpobGyM0aNHx/e+97345Cc/GRH27VSoKvX2G99z0pqbm2PlypVx6623RkNDQyxdujTWrVsX//Zv/xaXXnppRLzxU7/vv//+2LZtW5x//vkR8cZP1bz00kvjv//7v+Nzn/vckZ+quXPnznj88cfjwgsvLPLLKrventuFF14YEydOjEmTJsWQIUOio6MjvvWtb8Xb3va2ePzxx/v13+AsXrw49u7dG7t27YolS5bEDTfccOTVoltuuSUGDx5s146ht+dWqbs2f/78uPfee2P69OndPqx62OzZsyPCv9d+VV/OrVJ37cMf/nDs27cvLrvssqivr4/du3fHsmXLYtOmTdHW1hYf+9jHIsKu/aq+nFul7trxTJs2LZ577rn4r//6ryPX7NspkP+zDyvPgQMHSp/73OdKI0eOLJ177rmlKVOmlH7wgx90e86cOXNK1dXVpe3bt3e7/vzzz5f+4A/+oDRs2LDSwIEDS5dffnnF/HTS3p7b7bffXnr3u99dGjp0aOnss88uXXDBBaWbbrqptGfPnuwvId0FF1xQqqqqKlVVVZWqq6tL1dXVR/734TOya0fr7blV6q5NmzbtyBn96q/q6uojz7Nr3fXl3Cp11/7u7/6u9Nu//dulESNGlM4666xSbW1t6ZprrimtWrWq2/PsWnd9ObdK3bXjmTZtWmn8+PHdrtm3vvMKCAAAkMZnQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANP8H3KyZU9NTlqcAAAAASUVORK5CYII="; }, - thumbnail_uri: function () { return null; } - } - - -}; \ No newline at end of file diff --git a/snakemake/report/template/rulegraph.js b/snakemake/report/template/rulegraph.js deleted file mode 100644 index 8c9225d58..000000000 --- a/snakemake/report/template/rulegraph.js +++ /dev/null @@ -1,142 +0,0 @@ -var rulegraph_spec = { - "$schema": "https://vega.github.io/schema/vega/v5.json", - "padding": 0, - - "signals": [ - { "name": "cx", "update": "width / 2" }, - { "name": "cy", "update": "height / 2" } - ], - - "data": [ - { - "name": "node-data", - "values": [{ 'rule': 'c', 'fx': 10, 'fy': 0 }, { 'rule': 'd', 'fx': 10, 'fy': 50 }, { 'rule': 'e', 'fx': 10, 'fy': 100 }, { 'rule': 'a', 'fx': 10, 'fy': 150 }, { 'rule': 'b', 'fx': 10, 'fy': 200 }, { 'rule': 'all', 'fx': 10, 'fy': 250 }] - }, - { - "name": "link-data", - "values": [{ 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 3, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 4, 'source': 0, 'value': 1 }, { 'target': 5, 'source': 3, 'value': 1 }, { 'target': 5, 'source': 1, 'value': 1 }, { 'target': 5, 'source': 2, 'value': 1 }] - }, - { - "name": "link-data-direct", - "values": [{ 'target': 5, 'source': 4, 'value': 1 }] - } - ], - - "scales": [ - { - "name": "color", - "type": "ordinal", - "range": { "scheme": "category20c" } - }, - { - "name": "x", - "type": "linear" - }, - { - "name": "y", - "type": "linear" - } - ], - - "marks": [ - { - "name": "nodes", - "type": "symbol", - "zindex": 1, - "from": { "data": "node-data" }, - "encode": { - "enter": { - "fill": { "scale": "color", "field": "rule" }, - "x": { "field": "fx", "scale": "x" }, - "y": { "field": "fy", "scale": "y" }, - "tooltip": { "value": "Click to show rule details." } - }, - "update": { - "size": { "value": 70 } - }, - "hover": { - "size": { "value": 140 } - } - }, - - "transform": [ - { - "type": "force", - "iterations": 1, - "static": true, - "forces": [ - { - "force": "link", - "links": "link-data" - } - ] - }, - { - "type": "force", - "iterations": 1, - "static": true, - "forces": [ - { - "force": "link", - "links": "link-data-direct" - } - ] - } - ] - }, - { - "name": "labels", - "type": "text", - "zindex": 2, - "from": { "data": "node-data" }, - "encode": { - "enter": { - "fill": { "value": "black" }, - "fontWeight": { "value": "normal" }, - "text": { "field": "rule" }, - "x": { "field": "fx", "scale": "x" }, - "y": { "field": "fy", "scale": "y" }, - "dx": { "value": -5 }, - "dy": { "value": -5 }, - "align": { "value": "right" } - } - } - }, - { - "type": "path", - "from": { "data": "link-data-direct" }, - "interactive": false, - "encode": { - "update": { - "stroke": { "value": "#ccc" }, - "strokeWidth": { "value": 1.0 } - } - }, - "transform": [ - { - "type": "linkpath", "shape": "diagonal", - "sourceX": "datum.source.x", "sourceY": "datum.source.y", - "targetX": "datum.target.x", "targetY": "datum.target.y" - } - ] - }, - { - "type": "path", - "from": { "data": "link-data" }, - "interactive": false, - "encode": { - "update": { - "stroke": { "value": "#ccc" }, - "strokeWidth": { "value": 1.0 } - } - }, - "transform": [ - { - "type": "linkpath", "shape": "curve", "orient": "horizontal", - "sourceX": "datum.source.x", "sourceY": "datum.source.y", - "targetX": "datum.target.x", "targetY": "datum.target.y" - } - ] - } - ] -}; \ No newline at end of file diff --git a/snakemake/report/template/rulegraph_spec.js b/snakemake/report/template/rulegraph_spec.js deleted file mode 100644 index fd694a608..000000000 --- a/snakemake/report/template/rulegraph_spec.js +++ /dev/null @@ -1,142 +0,0 @@ -var rulegraph_spec = { - "$schema": "https://vega.github.io/schema/vega/v5.json", - "padding": 0, - - "signals": [ - { "name": "cx", "update": "width / 2" }, - { "name": "cy", "update": "height / 2" } - ], - - "data": [ - { - "name": "node-data", - "values": {{ rulegraph_nodes }} - }, -{ - "name": "link-data", - "values": { { rulegraph_links } } -}, -{ - "name": "link-data-direct", - "values": { { rulegraph_links_direct } } -} - ], - -"scales": [ - { - "name": "color", - "type": "ordinal", - "range": { "scheme": "category20c" } - }, - { - "name": "x", - "type": "linear" - }, - { - "name": "y", - "type": "linear" - } -], - - "marks": [ - { - "name": "nodes", - "type": "symbol", - "zindex": 1, - "from": { "data": "node-data" }, - "encode": { - "enter": { - "fill": { "scale": "color", "field": "rule" }, - "x": { "field": "fx", "scale": "x" }, - "y": { "field": "fy", "scale": "y" }, - "tooltip": { "value": "Click to show rule details." } - }, - "update": { - "size": { "value": 70 } - }, - "hover": { - "size": { "value": 140 } - } - }, - - "transform": [ - { - "type": "force", - "iterations": 1, - "static": true, - "forces": [ - { - "force": "link", - "links": "link-data" - } - ] - }, - { - "type": "force", - "iterations": 1, - "static": true, - "forces": [ - { - "force": "link", - "links": "link-data-direct" - } - ] - } - ] - }, - { - "name": "labels", - "type": "text", - "zindex": 2, - "from": { "data": "node-data" }, - "encode": { - "enter": { - "fill": { "value": "black" }, - "fontWeight": { "value": "normal" }, - "text": { "field": "rule" }, - "x": { "field": "fx", "scale": "x" }, - "y": { "field": "fy", "scale": "y" }, - "dx": { "value": -5 }, - "dy": { "value": -5 }, - "align": { "value": "right" } - } - } - }, - { - "type": "path", - "from": { "data": "link-data-direct" }, - "interactive": false, - "encode": { - "update": { - "stroke": { "value": "#ccc" }, - "strokeWidth": { "value": 1.0 } - } - }, - "transform": [ - { - "type": "linkpath", "shape": "diagonal", - "sourceX": "datum.source.x", "sourceY": "datum.source.y", - "targetX": "datum.target.x", "targetY": "datum.target.y" - } - ] - }, - { - "type": "path", - "from": { "data": "link-data" }, - "interactive": false, - "encode": { - "update": { - "stroke": { "value": "#ccc" }, - "strokeWidth": { "value": 1.0 } - } - }, - "transform": [ - { - "type": "linkpath", "shape": "curve", "orient": "horizontal", - "sourceX": "datum.source.x", "sourceY": "datum.source.y", - "targetX": "datum.target.x", "targetY": "datum.target.y" - } - ] - } - ] - }; \ No newline at end of file diff --git a/snakemake/report/template/rules.js b/snakemake/report/template/rules.js deleted file mode 100644 index 4c6097bf7..000000000 --- a/snakemake/report/template/rules.js +++ /dev/null @@ -1,20 +0,0 @@ -var rules = { - "a": { - "input": [ - "x.txt", - "y.txt" - ], - "output": [ - "z.txt", - "y2.txt" - ], - "conda": [ - "bwa =0.74" - ], - "container": "docker://miniconda", - "code": [ - "codeblock1(1.4)", - "codeblock2(1.5)" - ] - } -} \ No newline at end of file diff --git a/snakemake/report/template/runtimes.js b/snakemake/report/template/runtimes.js deleted file mode 100644 index 81b4cd85d..000000000 --- a/snakemake/report/template/runtimes.js +++ /dev/null @@ -1,15 +0,0 @@ -var runtimes_spec = { - "$schema": "https://vega.github.io/schema/vega-lite/v3.json", - "description": "Runtimes of jobs.", - "data": { "values": [{ 'rule': 'a', 'runtime': 2.0280115604400635 }, { 'rule': 'c', 'runtime': 3.028017282485962 }, { 'rule': 'c', 'runtime': 3.020017147064209 }, { 'rule': 'c', 'runtime': 2.0160114765167236 }, { 'rule': 'c', 'runtime': 3.016017198562622 }, { 'rule': 'c', 'runtime': 1.0240058898925781 }, { 'rule': 'c', 'runtime': 3.016016960144043 }, { 'rule': 'c', 'runtime': 1.0160057544708252 }, { 'rule': 'c', 'runtime': 2.0120115280151367 }, { 'rule': 'c', 'runtime': 3.024017095565796 }, { 'rule': 'c', 'runtime': 1.0160057544708252 }, { 'rule': 'd', 'runtime': 1.0520060062408447 }, { 'rule': 'e', 'runtime': 0.012000083923339844 }] }, - "mark": "point", - "encoding": { - "x": { - "field": "runtime", "type": "quantitative", - "axis": { "title": "runtime [s]", "labelAngle": -90 }, - "scale": { "type": "log" } - }, - "y": { "field": "rule", "type": "nominal" }, - "color": { "value": "#007bff" } - } -}; \ No newline at end of file diff --git a/snakemake/report/template/timeline.js b/snakemake/report/template/timeline.js deleted file mode 100644 index 294a3e018..000000000 --- a/snakemake/report/template/timeline.js +++ /dev/null @@ -1,20 +0,0 @@ -var timeline_spec = { - "$schema": "https://vega.github.io/schema/vega-lite/v3.json", - "description": "Timeline of jobs.", - "data": { - "values": [{ 'rule': 'a', 'starttime': '2020-03-27T14:58:42.460061', 'endtime': '2020-03-27T14:58:44.488072' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:39.404043', 'endtime': '2020-03-27T14:58:42.432060' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.368037', 'endtime': '2020-03-27T14:58:41.388055' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.384037', 'endtime': '2020-03-27T14:58:40.400049' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.352037', 'endtime': '2020-03-27T14:58:41.368054' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:39.356043', 'endtime': '2020-03-27T14:58:40.380049' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.344037', 'endtime': '2020-03-27T14:58:41.360054' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.332037', 'endtime': '2020-03-27T14:58:39.348043' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.340037', 'endtime': '2020-03-27T14:58:40.352049' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:39.424043', 'endtime': '2020-03-27T14:58:42.448061' }, { 'rule': 'c', 'starttime': '2020-03-27T14:58:38.376037', 'endtime': '2020-03-27T14:58:39.392043' }, { 'rule': 'd', 'starttime': '2020-03-27T14:58:38.360037', 'endtime': '2020-03-27T14:58:39.412043' }, { 'rule': 'e', 'starttime': '2020-03-27T14:58:38.356037', 'endtime': '2020-03-27T14:58:38.368037' }] - }, - "mark": "point", - "encoding": { - "x": { - "field": "endtime", "type": "temporal", - "timeUnit": "yearmonthdatehoursminutes", - "axis": { - "labelAngle": -90, - "title": "creation date" - } - }, - "y": { "field": "rule", "type": "nominal" }, - "color": { "value": "#007bff" } - } -}; \ No newline at end of file From f96647549fae8f01f51b31f40574bebc5b4d404d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Fri, 11 Mar 2022 12:19:58 +0100 Subject: [PATCH 41/45] add graphviz for testing --- test-environment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/test-environment.yml b/test-environment.yml index 327024e74..1ac2c14d3 100644 --- a/test-environment.yml +++ b/test-environment.yml @@ -62,3 +62,4 @@ dependencies: - filelock - tabulate - retry + - graphviz From fc6faf5edba3fe4d5153ae79d21c4b0a2e08e469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Fri, 11 Mar 2022 14:58:54 +0100 Subject: [PATCH 42/45] fix lints and add hover and tooltip effects to rulegraph --- snakemake/report/__init__.py | 52 +-------------- snakemake/report/data/rulegraph.py | 19 ++++-- snakemake/report/rulegraph_spec.py | 64 +++++++++++++++++++ snakemake/report/template/components/app.js | 1 - snakemake/report/template/components/icon.js | 1 - .../report/template/components/navbar.js | 1 - .../template/components/search_results.js | 2 +- 7 files changed, 81 insertions(+), 59 deletions(-) create mode 100644 snakemake/report/rulegraph_spec.py diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index eb513a28e..d016c2852 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -53,6 +53,7 @@ ) from snakemake import logging from snakemake.report import data +from snakemake.report.rulegraph_spec import rulegraph_spec class EmbeddedMixin(object): @@ -539,57 +540,6 @@ def filename(self): return os.path.basename(self.path) -def rulegraph_spec(dag): - # get toposorting, and keep only one job of each rule per level - representatives = dict() - - def get_representatives(level): - unique = dict() - for job in level: - if job.rule.name in unique: - representatives[job] = unique[job.rule.name] - else: - representatives[job] = job - unique[job.rule.name] = job - return sorted(unique.values(), key=lambda job: job.rule.name) - - toposorted = [get_representatives(level) for level in dag.toposorted()] - - jobs = [job for level in toposorted for job in level] - - nodes = [ - {"rule": job.rule.name, "fx": 10, "fy": i * 50} for i, job in enumerate(jobs) - ] - idx = {job: i for i, job in enumerate(jobs)} - - def get_links(direct: bool): - for u in jobs: - for v in dag.dependencies[u]: - target = idx[u] - source = idx[representatives[v]] - if target - source == 1: - if not direct: - continue - else: - if direct: - continue - - yield {"target": target, "source": source, "value": 1} - - xmax = 100 - ymax = max(node["fy"] for node in nodes) - - return ( - { - "nodes": nodes, - "links": list(get_links(direct=False)), - "links_direct": list(get_links(direct=True)), - }, - xmax, - ymax, - ) - - def get_resource_as_string(path_or_uri): if is_local_file(path_or_uri): return open(Path(__file__).parent / "template" / path_or_uri).read() diff --git a/snakemake/report/data/rulegraph.py b/snakemake/report/data/rulegraph.py index f9fb64110..6aa84f4d9 100644 --- a/snakemake/report/data/rulegraph.py +++ b/snakemake/report/data/rulegraph.py @@ -76,12 +76,15 @@ def render_rulegraph(nodes, links, links_direct): { "type": "path", "from": {"data": "link-data-direct"}, - "interactive": False, + "interactive": True, "encode": { "update": { "stroke": {"value": "#ccc"}, "strokeWidth": {"value": 1.0}, - } + }, + "hover": { + "strokeWidth": {"value": 4.0}, + }, }, "transform": [ { @@ -97,12 +100,20 @@ def render_rulegraph(nodes, links, links_direct): { "type": "path", "from": {"data": "link-data"}, - "interactive": False, + "interactive": True, "encode": { + "enter": { + "tooltip": { + "signal": "{\"from rule\": datum['sourcerule'], \"to rule\": datum['targetrule']}" + }, + }, "update": { "stroke": {"value": "#ccc"}, "strokeWidth": {"value": 1.0}, - } + }, + "hover": { + "strokeWidth": {"value": 4.0}, + }, }, "transform": [ { diff --git a/snakemake/report/rulegraph_spec.py b/snakemake/report/rulegraph_spec.py new file mode 100644 index 000000000..eee2bb998 --- /dev/null +++ b/snakemake/report/rulegraph_spec.py @@ -0,0 +1,64 @@ +from functools import partial + + +def rulegraph_spec(dag): + # get toposorting, and keep only one job of each rule per level + representatives = dict() + + toposorted = [ + get_representatives(level, representatives) for level in dag.toposorted() + ] + + jobs = [job for level in toposorted for job in level] + + nodes = [ + {"rule": job.rule.name, "fx": 10, "fy": i * 50} for i, job in enumerate(jobs) + ] + idx = {job: i for i, job in enumerate(jobs)} + + xmax = 100 + ymax = max(node["fy"] for node in nodes) + + _get_links = partial(get_links, jobs, dag, idx, nodes, representatives) + + return ( + { + "nodes": nodes, + "links": list(_get_links(direct=False)), + "links_direct": list(_get_links(direct=True)), + }, + xmax, + ymax, + ) + + +def get_representatives(level: list, representatives: dict): + unique = dict() + for job in level: + if job.rule.name in unique: + representatives[job] = unique[job.rule.name] + else: + representatives[job] = job + unique[job.rule.name] = job + return sorted(unique.values(), key=lambda job: job.rule.name) + + +def get_links(jobs, dag, idx, nodes, representatives, direct: bool): + for u in jobs: + for v in dag.dependencies[u]: + target = idx[u] + source = idx[representatives[v]] + if target - source == 1: + if not direct: + continue + else: + if direct: + continue + + yield { + "target": target, + "source": source, + "sourcerule": nodes[source]["rule"], + "targetrule": nodes[target]["rule"], + "value": 1, + } diff --git a/snakemake/report/template/components/app.js b/snakemake/report/template/components/app.js index b5bc0d8d4..f25f2d844 100644 --- a/snakemake/report/template/components/app.js +++ b/snakemake/report/template/components/app.js @@ -17,7 +17,6 @@ class App extends React.Component { } setView(view) { - event.preventDefault(); this.setState({ hideNavbar: view.hideNavbar || this.hideNavbar, navbarMode: view.navbarMode || this.state.navbarMode, diff --git a/snakemake/report/template/components/icon.js b/snakemake/report/template/components/icon.js index 240a029b1..f8fd391bf 100644 --- a/snakemake/report/template/components/icon.js +++ b/snakemake/report/template/components/icon.js @@ -43,7 +43,6 @@ class Icon extends React.Component { } render() { - let _this = this; return e( "svg", { xmlns: "http://www.w3.org/2000/svg", className: `h-4 w-4 ${this.props.className}`, viewBox: "0 0 20 20", fill: "currentColor", }, diff --git a/snakemake/report/template/components/navbar.js b/snakemake/report/template/components/navbar.js index 476da7e96..741e8605a 100644 --- a/snakemake/report/template/components/navbar.js +++ b/snakemake/report/template/components/navbar.js @@ -174,7 +174,6 @@ class Navbar extends React.Component { subcategory = this.props.app.state.subcategory; mode = "subcategory"; } - let _this = this; let name = this.props.app.state.category; if (isSingleDefaultCategory()) { diff --git a/snakemake/report/template/components/search_results.js b/snakemake/report/template/components/search_results.js index d488355a8..0447ba31d 100644 --- a/snakemake/report/template/components/search_results.js +++ b/snakemake/report/template/components/search_results.js @@ -22,7 +22,7 @@ class SearchResults extends AbstractResults { return [path, result]; } const columns = result.columns || []; - for (columnValue in columns) { + for (const columnValue in columns) { if (searchFunc(columnValue)) { return [path, result]; } From 663a8b882f72df7e4cdd9ac7e152d74ba3cc1970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Fri, 11 Mar 2022 17:42:44 +0100 Subject: [PATCH 43/45] overflow fixes and link support (draft) --- docs/snakefiles/reporting.rst | 47 ++++++++++- snakemake/report/__init__.py | 4 +- .../template/components/abstract_results.js | 77 +++---------------- snakemake/report/template/components/app.js | 20 +++++ .../report/template/components/breadcrumbs.js | 2 +- .../report/template/components/button.js | 15 ++++ snakemake/report/template/components/menu.js | 21 ++--- .../report/template/components/navbar.js | 12 +-- .../report/template/components/result_info.js | 13 +++- .../template/components/result_view_button.js | 69 +++++++++++++++++ snakemake/report/template/index.html.jinja2 | 5 +- 11 files changed, 186 insertions(+), 99 deletions(-) create mode 100644 snakemake/report/template/components/button.js create mode 100644 snakemake/report/template/components/result_view_button.js diff --git a/docs/snakefiles/reporting.rst b/docs/snakefiles/reporting.rst index c011b5fbd..16e7de925 100644 --- a/docs/snakefiles/reporting.rst +++ b/docs/snakefiles/reporting.rst @@ -52,7 +52,11 @@ Consider the following example: rule d: output: - report(directory("testdir"), patterns=["{name}.txt"], caption="report/somedata.rst", category="Step 3") + report( + directory("testdir"), + patterns=["{name}.txt"], + caption="report/somedata.rst", + category="Step 3") shell: "mkdir {output}; for i in 1 2 3; do echo $i > {output}/$i.txt; done" @@ -89,8 +93,44 @@ This works as follows: echo \"alert('test')\" > test/js/test.js """ +Defining file labels +~~~~~~~~~~~~~~~~~~~~~ -Moreover, in every ``.rst`` document, you can link to +In addition to category, and subcategory, it is possible to define a dictionary of labels for each report item. +By that, the actual filename will be hidden in the report and instead a table with the label keys as columns and the values in the respective row for the file will be displayed. +This can lead to less technical reports that abstract away the fact that the results of the analysis are actually files. +Consider the following modification of rule ``b`` from above: + +.. code-block:: python + + rule b: + input: + expand("{model}.{i}.out", i=range(10)) + output: + report( + "fig2.png", + caption="report/fig2.rst", + category="Step 2", + subcategory="{model}", + labels={ + "model": "{model}", + "figure": "some plot" + } + ) + shell: + "sleep `shuf -i 1-3 -n 1`; cp data/fig2.png {output}" + + +Determining category, subcategory, and labels dynamically via functions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Similar to e.g. with input file and parameter definition (see :ref:`snakefiles-input_functions`), ``category`` and a ``subcategory`` and ``labels`` can be specified by pointing to a function which is expected to return a string. + + +Linking between items +~~~~~~~~~~~~~~~~~~~~~ + +In every ``.rst`` document, you can link to * the **Workflow** panel (with ``Rules_``), * the **Statistics** panel (with ``Statistics_``), @@ -99,6 +139,9 @@ Moreover, in every ``.rst`` document, you can link to For details about the hyperlink mechanism of restructured text see `here `_. +Rendering reports +~~~~~~~~~~~~~~~~~ + To create the report simply run .. code-block:: bash diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index d016c2852..601384b8d 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -801,10 +801,10 @@ def get_datetime(rectime): .. _Workflow: javascript:show_panel('workflow') .. _Statistics: javascript:show_panel('statistics') {% for cat, catresults in categories|dictsort %} - .. _{{ cat.name }}: javascript:show_panel("{{ cat.id }}") + .. _{{ cat.name }}: javascript:app.showCategory("{{ cat.name }}") {% endfor %} {% for res in files %} - .. _{{ res.target }}: javascript:show_panel("{{ res.category.id }}") + .. _{{ res.target }}: javascript:showResultInfo("{{ res.path }}") {% endfor %} """ ) diff --git a/snakemake/report/template/components/abstract_results.js b/snakemake/report/template/components/abstract_results.js index 260a54f63..a456b7bca 100644 --- a/snakemake/report/template/components/abstract_results.js +++ b/snakemake/report/template/components/abstract_results.js @@ -84,6 +84,7 @@ class AbstractResults extends React.Component { renderEntries() { let _this = this; + let app = this.props.app; let labels = undefined; if (this.isLabelled()) { labels = this.getLabels(); @@ -95,12 +96,16 @@ class AbstractResults extends React.Component { e( "div", { className: "inline-flex gap-1", role: "group" }, - _this.getViewButton(path, entry), - _this.renderButton( - "information-circle", + e( + ResultViewButton, + { resultPath: path } + ), + e( + Button, { href: "#", - onClick: () => _this.showResultInfo(path) + onClick: () => app.showResultInfo(path), + iconName: "information-circle" } ) ) @@ -137,70 +142,6 @@ class AbstractResults extends React.Component { }) } - getViewButton(resultPath, entry) { - const mimeType = this.getResultMimeType(resultPath); - let setView = this.props.setView; - - let props = undefined; - - switch (mimeType) { - case "image/svg+xml": - case "image/png": - case "image/jpeg": - props = { - href: "#", - onClick: function () { - setView({ - content: "img", - contentPath: entry.data_uri - }) - } - }; - break; - case "text/html": - props = { - href: "#", - onClick: function () { - setView({ - content: "html", - contentPath: entry.data_uri - }) - } - }; - break; - case "application/pdf": - props = { - href: "#", - onClick: function () { - setView({ - content: "pdf", - contentPath: entry.data_uri - }) - } - }; - break; - default: - props = { - href: entry.data_uri, - download: entry.name, - target: "_blank" - }; - } - return this.renderButton("eye", props); - } - - renderButton(iconName, props) { - return e( - "a", - { type: "button", className: `transition-all inline-block p-1 text-emerald-500 rounded hover:bg-slate-800`, ...props }, - e(Icon, { iconName: iconName }) - ) - } - - showResultInfo(resultPath) { - this.props.setView({ navbarMode: "resultinfo", resultPath: resultPath, category: this.getCategory(), subcategory: this.getSubcategory(), searchTerm: this.getSearchTerm() }); - } - getResultMimeType(resultPath) { return results[resultPath].mime_type } diff --git a/snakemake/report/template/components/app.js b/snakemake/report/template/components/app.js index f25f2d844..2732e76dc 100644 --- a/snakemake/report/template/components/app.js +++ b/snakemake/report/template/components/app.js @@ -1,12 +1,18 @@ 'use strict'; +var app = undefined; + class App extends React.Component { constructor(props) { super(props); this.state = { hideNavbar: false, navbarMode: "menu", content: "rulegraph", ruleinfo: undefined, category: undefined, subcategory: undefined, searchTerm: undefined, resultPath: undefined, contentPath: undefined }; this.setView = this.setView.bind(this); + this.showCategory = this.showCategory.bind(this); + this.showResultInfo = this.showResultInfo.bind(this); + // store in global variable + app = this; } render() { @@ -29,6 +35,20 @@ class App extends React.Component { contentPath: view.contentPath || this.state.contentPath, }) } + + showCategory(category) { + let subcategory = undefined; + let mode = "category"; + if (isSingleSubcategory(category)) { + subcategory = Object.keys(categories[category])[0]; + mode = "subcategory"; + } + this.setView({ navbarMode: mode, category: category, subcategory: subcategory }) + } + + showResultInfo(resultPath) { + this.setView({ navbarMode: "resultinfo", resultPath: resultPath }); + } } ReactDOM.render(e(App), document.querySelector('#app')); \ No newline at end of file diff --git a/snakemake/report/template/components/breadcrumbs.js b/snakemake/report/template/components/breadcrumbs.js index abaf9f2ae..8796f0fe8 100644 --- a/snakemake/report/template/components/breadcrumbs.js +++ b/snakemake/report/template/components/breadcrumbs.js @@ -9,7 +9,7 @@ class Breadcrumbs extends React.Component { render() { return e( "nav", - { className: "text-white align-middle text-xs m-2 p-2 rounded bg-slate-800" }, + { className: "text-white whitespace-nowrap align-middle text-xs m-2 p-2 rounded bg-slate-800 min-w-fit" }, e( "ol", { className: "list-reset flex items-center gap-1" }, diff --git a/snakemake/report/template/components/button.js b/snakemake/report/template/components/button.js new file mode 100644 index 000000000..016f9aed5 --- /dev/null +++ b/snakemake/report/template/components/button.js @@ -0,0 +1,15 @@ +'use strict'; + +class Button extends React.Component { + render() { + return this.renderButton(this.props.iconName, this.props); + } + + renderButton(iconName, props) { + return e( + "a", + { type: "button", className: `transition-all inline-block p-1 text-emerald-500 rounded hover:bg-slate-800`, ...props }, + e(Icon, { iconName: iconName }) + ); + } +} \ No newline at end of file diff --git a/snakemake/report/template/components/menu.js b/snakemake/report/template/components/menu.js index 54572770b..7b1f3a967 100644 --- a/snakemake/report/template/components/menu.js +++ b/snakemake/report/template/components/menu.js @@ -3,8 +3,8 @@ class Menu extends AbstractMenu { constructor(props) { super(props); - this.showWorkflow = this.showWorkflow.bind(this) - this.showStatistics = this.showStatistics.bind(this) + this.showWorkflow = this.showWorkflow.bind(this); + this.showStatistics = this.showStatistics.bind(this); } render() { @@ -37,20 +37,12 @@ class Menu extends AbstractMenu { } } - showCategory(category) { - let subcategory = undefined; - let mode = "category"; - if (isSingleSubcategory(category)) { - subcategory = Object.keys(categories[category])[0]; - mode = "subcategory"; - } - this.props.setView({ navbarMode: mode, category: category, subcategory: subcategory }) - } - getCategoryMenumitems() { + let _this = this; + let app = this.props.app; if (isSingleCategory()) { let category = Object.keys(categories)[0]; - return this.getMenuItem("Results", "folder", () => this.showCategory(category)); + return this.getMenuItem("Results", "folder", () => app.showCategory(category)); } else if (isNoResults()) { return []; } else { @@ -60,9 +52,8 @@ class Menu extends AbstractMenu { "Results" )]; - let _this = this items.push(...Object.keys(categories).map(function (category) { - return _this.getMenuItem(category, "folder", () => _this.showCategory(category)); + return _this.getMenuItem(category, "folder", () => app.showCategory(category)); })); return items; diff --git a/snakemake/report/template/components/navbar.js b/snakemake/report/template/components/navbar.js index 741e8605a..cd45a4ba4 100644 --- a/snakemake/report/template/components/navbar.js +++ b/snakemake/report/template/components/navbar.js @@ -21,10 +21,10 @@ class Navbar extends React.Component { ), e( "nav", - { className: `fixed z-50 transition-all ${translateNavbar} ${this.getWidth()} text-white text-sm bg-slate-900/70 backdrop-blur-sm h-screen` }, + { className: `fixed z-50 transition-all ${translateNavbar} ${this.getWidth()} text-white text-sm bg-slate-900/70 backdrop-blur-sm h-screen overflow-auto` }, e( "h1", - { className: "sticky bg-blur bg-white opacity-80 text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, + { className: "sticky relative top-0 left-0 bg-white/80 backdrop-blur-sm text-slate-700 text-l tracking-wide px-3 py-1 mb-1 flex items-center" }, e( "img", { src: logo_uri, className: "h-4" } @@ -43,7 +43,7 @@ class Navbar extends React.Component { ), e( "div", - { className: "overflow-auto" }, + {}, this.renderBreadcrumbs(), e( "div", @@ -93,13 +93,13 @@ class Navbar extends React.Component { let setView = this.props.app.setView; switch (this.props.app.state.navbarMode) { case "menu": - return e(Menu, { setView: setView, app: this.props.app }); + return e(Menu, { app: this.props.app }); case "category": return e(Category, { setView: setView, category: this.props.app.state.category }); case "subcategory": - return e(Subcategory, { setView: setView, category: this.props.app.state.category, subcategory: this.props.app.state.subcategory }); + return e(Subcategory, { app: this.props.app, setView: setView, category: this.props.app.state.category, subcategory: this.props.app.state.subcategory }); case "searchresults": - return e(SearchResults, { setView: setView, searchTerm: this.props.app.state.searchTerm }); + return e(SearchResults, { app: this.props.app, setView: setView, searchTerm: this.props.app.state.searchTerm }); case "resultinfo": return e(ResultInfo, { resultPath: this.props.app.state.resultPath, setView: setView }); case "ruleinfo": diff --git a/snakemake/report/template/components/result_info.js b/snakemake/report/template/components/result_info.js index 6573d0491..ab38c49de 100644 --- a/snakemake/report/template/components/result_info.js +++ b/snakemake/report/template/components/result_info.js @@ -41,7 +41,8 @@ class ResultInfo extends React.Component { { className: "text-left uppercase pr-2" }, label ); - }) + }), + e("th", {}) ) ), e( @@ -57,7 +58,11 @@ class ResultInfo extends React.Component { { className: "pr-2" }, value ); - }) + }), + e( + ResultViewButton, + { resultPath: this.props.resultPath } + ) ) ) ) @@ -73,6 +78,10 @@ class ResultInfo extends React.Component { ListItem, { key: "path" }, this.props.resultPath + ), + e( + ResultViewButton, + { resultPath: this.props.resultPath } ) ]; } diff --git a/snakemake/report/template/components/result_view_button.js b/snakemake/report/template/components/result_view_button.js new file mode 100644 index 000000000..32c6b7e30 --- /dev/null +++ b/snakemake/report/template/components/result_view_button.js @@ -0,0 +1,69 @@ +'use strict'; + +class ResultViewButton extends React.Component { + + constructor(props) { + super(props); + } + + render() { + let result = results[this.props.resultPath]; + + return this.getViewButton(this.props.resultPath, result); + } + + getViewButton(resultPath, entry) { + const mimeType = this.getResultMimeType(resultPath); + let setView = this.props.setView; + + let props = undefined; + + switch (mimeType) { + case "image/svg+xml": + case "image/png": + case "image/jpeg": + props = { + href: "#", + onClick: function () { + setView({ + content: "img", + contentPath: entry.data_uri + }) + } + }; + break; + case "text/html": + props = { + href: "#", + onClick: function () { + setView({ + content: "html", + contentPath: entry.data_uri + }) + } + }; + break; + case "application/pdf": + props = { + href: "#", + onClick: function () { + setView({ + content: "pdf", + contentPath: entry.data_uri + }) + } + }; + break; + default: + props = { + href: entry.data_uri, + download: entry.name, + target: "_blank" + }; + } + return e( + Button, + { iconName: "eye", ...props } + ); + } +} \ No newline at end of file diff --git a/snakemake/report/template/index.html.jinja2 b/snakemake/report/template/index.html.jinja2 index 2fa905292..1decc2efa 100644 --- a/snakemake/report/template/index.html.jinja2 +++ b/snakemake/report/template/index.html.jinja2 @@ -69,13 +69,12 @@ var logo_uri = "{{logo}}"; - - - + + From a96af499790992865752535aa35d204041d416aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Sat, 12 Mar 2022 22:26:21 +0100 Subject: [PATCH 44/45] fixes, links, brand --- snakemake/report/__init__.py | 5 +- .../template/components/abstract_results.js | 6 +- .../report/template/components/common.js | 1 + .../report/template/components/content.js | 16 +- .../report/template/components/navbar.js | 2 +- .../report/template/components/result_info.js | 45 +- .../template/components/result_view_button.js | 6 +- tests/test_report/custom-stylesheet.css | 15 +- .../test_report/expected-results/report.html | 107973 ++++++++++++++- tests/test_report/report/workflow.rst | 2 +- 10 files changed, 106481 insertions(+), 1590 deletions(-) diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index 601384b8d..965bc0a5d 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -801,10 +801,10 @@ def get_datetime(rectime): .. _Workflow: javascript:show_panel('workflow') .. _Statistics: javascript:show_panel('statistics') {% for cat, catresults in categories|dictsort %} - .. _{{ cat.name }}: javascript:app.showCategory("{{ cat.name }}") + .. _{{ cat.name }}: javascript:app.showCategory('{{ cat.name|urlencode }}') {% endfor %} {% for res in files %} - .. _{{ res.target }}: javascript:showResultInfo("{{ res.path }}") + .. _{{ res.target }}: javascript:app.showResultInfo('{{ res.path|urlencode }}') {% endfor %} """ ) @@ -822,6 +822,7 @@ class Snakemake: config = dag.workflow.config text = f.read() + rst_links + try: text = publish_parts( env.from_string(text).render( diff --git a/snakemake/report/template/components/abstract_results.js b/snakemake/report/template/components/abstract_results.js index a456b7bca..2c4854a6a 100644 --- a/snakemake/report/template/components/abstract_results.js +++ b/snakemake/report/template/components/abstract_results.js @@ -98,7 +98,7 @@ class AbstractResults extends React.Component { { className: "inline-flex gap-1", role: "group" }, e( ResultViewButton, - { resultPath: path } + { resultPath: path, app: app } ), e( Button, @@ -141,8 +141,4 @@ class AbstractResults extends React.Component { ]; }) } - - getResultMimeType(resultPath) { - return results[resultPath].mime_type - } } \ No newline at end of file diff --git a/snakemake/report/template/components/common.js b/snakemake/report/template/components/common.js index a1181d4c0..20690e20a 100644 --- a/snakemake/report/template/components/common.js +++ b/snakemake/report/template/components/common.js @@ -13,5 +13,6 @@ function isSingleDefaultCategory() { } function isSingleSubcategory(category) { + console.log(categories, category); return Object.keys(categories[category]).length == 1; } \ No newline at end of file diff --git a/snakemake/report/template/components/content.js b/snakemake/report/template/components/content.js index 3045d1140..aa3b089b8 100644 --- a/snakemake/report/template/components/content.js +++ b/snakemake/report/template/components/content.js @@ -25,10 +25,18 @@ class ContentDisplay extends React.Component { e(RuleGraph, { setView: setView }), e( "div", - { - className: "prose prose-sm max-w-lg", - dangerouslySetInnerHTML: { __html: workflow_desc } - } + {}, + e( + "div", + { + className: "prose prose-sm max-w-lg", + dangerouslySetInnerHTML: { __html: workflow_desc } + } + ), + e( + "div", + { id: "brand" } + ) ) ); case "stats": diff --git a/snakemake/report/template/components/navbar.js b/snakemake/report/template/components/navbar.js index cd45a4ba4..f1276df00 100644 --- a/snakemake/report/template/components/navbar.js +++ b/snakemake/report/template/components/navbar.js @@ -101,7 +101,7 @@ class Navbar extends React.Component { case "searchresults": return e(SearchResults, { app: this.props.app, setView: setView, searchTerm: this.props.app.state.searchTerm }); case "resultinfo": - return e(ResultInfo, { resultPath: this.props.app.state.resultPath, setView: setView }); + return e(ResultInfo, { resultPath: this.props.app.state.resultPath, app: this.props.app }); case "ruleinfo": return e(RuleInfo, { rule: this.props.app.state.ruleinfo }); } diff --git a/snakemake/report/template/components/result_info.js b/snakemake/report/template/components/result_info.js index ab38c49de..5062a1886 100644 --- a/snakemake/report/template/components/result_info.js +++ b/snakemake/report/template/components/result_info.js @@ -19,6 +19,8 @@ class ResultInfo extends React.Component { getDescriptor() { let result = this.getResult(); + let resultPath = this.props.resultPath; + let app = this.props.app; if (result.labels) { const labels = Object.keys(result.labels).sort(); @@ -28,7 +30,7 @@ class ResultInfo extends React.Component { {}, e( "table", - { className: "table-auto text-white text-sm" }, + { className: "table-auto text-white text-sm items-center" }, e( "thead", {}, @@ -51,18 +53,27 @@ class ResultInfo extends React.Component { e( "tr", {}, - labels.map(function (label) { + labels.map(function (label, index) { const value = result.labels[label]; + let item = value; + if (index == labels.length - 1) { + item = e( + "span", + { className: "flex items-center gap-2" }, + e("span", {}, value), + e( + ResultViewButton, + { resultPath: resultPath, app: app } + ) + ); + } + return e( "td", { className: "pr-2" }, - value + item ); }), - e( - ResultViewButton, - { resultPath: this.props.resultPath } - ) ) ) ) @@ -77,12 +88,20 @@ class ResultInfo extends React.Component { e( ListItem, { key: "path" }, - this.props.resultPath + e( + "span", + { className: "flex items-center gap-2" }, + e( + "span", + {}, + this.props.resultPath + ), + e( + ResultViewButton, + { resultPath: this.props.resultPath, app: app } + ) + ) ), - e( - ResultViewButton, - { resultPath: this.props.resultPath } - ) ]; } } @@ -110,7 +129,7 @@ class ResultInfo extends React.Component { } getRule() { - const setView = this.props.setView; + const setView = this.props.app.setView; const rule = this.getResult().job_properties.rule; return [ e( diff --git a/snakemake/report/template/components/result_view_button.js b/snakemake/report/template/components/result_view_button.js index 32c6b7e30..db9da54a4 100644 --- a/snakemake/report/template/components/result_view_button.js +++ b/snakemake/report/template/components/result_view_button.js @@ -14,7 +14,7 @@ class ResultViewButton extends React.Component { getViewButton(resultPath, entry) { const mimeType = this.getResultMimeType(resultPath); - let setView = this.props.setView; + let setView = this.props.app.setView; let props = undefined; @@ -66,4 +66,8 @@ class ResultViewButton extends React.Component { { iconName: "eye", ...props } ); } + + getResultMimeType(resultPath) { + return results[resultPath].mime_type + } } \ No newline at end of file diff --git a/tests/test_report/custom-stylesheet.css b/tests/test_report/custom-stylesheet.css index e278b6329..6703f7fe3 100644 --- a/tests/test_report/custom-stylesheet.css +++ b/tests/test_report/custom-stylesheet.css @@ -1,8 +1,9 @@ #brand { - margin: auto; - height: 30px; - width: 311px; - background-repeat: no-repeat; - background-size: 311px 30px; - background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8' standalone='no'%3F%3E%3C!-- Creator: CorelDRAW --%3E%3Csvg xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:cc='http://creativecommons.org/ns%23' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xml:space='preserve' width='1568.9631' height='150.92992' viewBox='0 0 1483.7169 142.72835' version='1.1' id='svg12' sodipodi:docname='uk-uni-white.svg' style='clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision' inkscape:version='0.92.4 (5da689c313, 2019-01-14)'%3E%3Cmetadata id='metadata18'%3E%3Crdf:RDF%3E%3Ccc:Work rdf:about=''%3E%3Cdc:format%3Eimage/svg+xml%3C/dc:format%3E%3Cdc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage' /%3E%3Cdc:title%3E%3C/dc:title%3E%3C/cc:Work%3E%3C/rdf:RDF%3E%3C/metadata%3E%3Cdefs id='defs16'%3E%3C/defs%3E%3Csodipodi:namedview pagecolor='%23ffffff' bordercolor='%23666666' borderopacity='1' objecttolerance='10' gridtolerance='10' guidetolerance='10' inkscape:pageopacity='0' inkscape:pageshadow='2' inkscape:window-width='1850' inkscape:window-height='1025' id='namedview14' showgrid='false' inkscape:pagecheckerboard='true' fit-margin-top='0' fit-margin-left='0' fit-margin-right='0' fit-margin-bottom='0' inkscape:zoom='1.2128168' inkscape:cx='136.25611' inkscape:cy='10.038152' inkscape:window-x='70' inkscape:window-y='27' inkscape:window-maximized='1' inkscape:current-layer='svg12' showguides='true' inkscape:guide-bbox='true'%3E%3Csodipodi:guide position='989.81019,142.98824' orientation='0,1' id='guide840' inkscape:locked='false' /%3E%3C/sodipodi:namedview%3E%3Cg id='g845' transform='matrix(0.77078623,0,0,0.77078623,1422.0842,-34.102505)' style='stroke-width:1.29737616'%3E%3Cpath d='m -427.2909,73.871082 c 0,2.94841 0.13153,6.70348 3.30574,9.69765 2.01076,1.875846 5.54175,2.732196 8.98239,2.732196 2.99413,0 5.80821,-0.66893 8.08768,-2.509216 3.35373,-2.72769 3.39663,-7.46386 3.39663,-9.4312 v -21.71651 h -7.28323 v 21.6736 c 0,5.98828 -3.21768,5.98828 -4.6041,5.98828 -4.42403,0 -4.42403,-4.06669 -4.42403,-6.03397 v -21.62786 h -7.46108 v 21.22708 z m 32.19369,11.573456 h 6.61433 V 70.070802 c 0,-0.84902 -0.18008,-5.00434 -0.22298,-5.94255 h 0.22298 c 1.69859,3.97807 1.7415,4.11242 2.45672,5.40737 l 8.71595,15.908866 h 5.89964 V 52.643952 h -6.61433 v 12.1995 c 0,1.24981 0,1.51852 0.13435,3.75452 l 0.17726,3.30574 h -0.22298 c -0.13435,-0.22298 -0.58088,-1.42989 -0.71523,-1.69859 -0.31161,-0.66951 -0.76038,-1.56424 -1.11772,-2.23318 l -8.445,-15.328 h -6.883 v 32.800526 z m 39.5255,0.007 V 52.643682 h -7.24032 v 32.807856 z m 23.25703,-0.007 9.78625,-32.800536 h -7.14945 l -4.87281,17.3382 c -0.53515,1.9673 -1.07256,3.93234 -1.56198,5.89963 h -0.17951 c -0.26871,-1.02965 -0.80386,-2.90551 -1.56424,-5.58805 l -5.09352,-17.64983 h -7.19519 l 10.00923,32.800536 h 7.82123 z m 14.67543,0 h 23.06058 v -6.122616 h -15.81965 v -7.72976 h 10.143 v -5.98828 h -10.23448 v -6.9722 h 14.88203 v -5.98773 h -22.03148 v 32.800536 z m 36.70918,-27.707576 c 4.02096,0 4.91571,0 6.03119,0.40306 1.42989,0.53515 2.14512,1.65286 2.14512,3.93233 0,1.78722 -0.17782,3.57445 -2.45673,4.3783 -1.02909,0.35733 -1.65287,0.35733 -5.71956,0.35733 v -9.07104 z m 0,14.30117 h 2.411 l 6.21405,13.406406 h 7.8184 l -7.14945,-14.569846 c 4.6041,-1.38416 6.25695,-4.55612 6.25695,-8.71367 0,-8.80233 -6.74866,-9.51697 -12.06516,-9.51697 h -10.59181 v 32.800536 h 7.10599 V 72.038182 Z m 43.14115,-14.16683 c -2.6797,-3.93234 -6.07688,-5.89908 -10.90399,-5.89908 -6.74639,0 -10.67874,3.88887 -10.67874,9.29625 0,6.47994 4.28967,8.66799 9.24885,10.58954 4.91571,1.92213 6.25695,2.45954 6.25695,4.91627 0,2.99413 -2.81462,3.70879 -4.37886,3.70879 -2.81631,0 -5.00659,-1.69859 -6.21349,-4.46692 l -5.58522,3.7088 c 2.94841,5.273586 6.3456,6.664556 12.1109,6.664556 1.65287,0 4.3783,-0.49168 6.29986,-1.659636 4.64983,-2.81688 4.64983,-7.19519 4.64983,-8.67082 0,-3.08276 -1.42989,-5.2279 -1.83295,-5.7653 -1.29553,-1.78722 -3.62017,-3.12792 -5.58522,-3.84314 l -4.15758,-1.51852 c -2.01076,-0.71523 -4.15531,-1.65287 -4.15531,-3.97807 0,-0.35733 0.0886,-3.17139 3.84315,-3.17139 2.54817,0 4.647,1.6986 5.67382,3.66364 l 5.40797,-3.57501 z m 14.45472,27.580556 V 52.644002 h -7.24093 v 32.807856 z m 5.96175,-32.807856 v 5.98773 h 8.35635 v 26.812856 h 7.50904 V 58.631732 h 8.17856 v -5.98773 z m 33.26626,-3.21767 h 5.67609 v -5.18439 h -5.67609 z m 8.71595,0 h 5.67382 v -5.18439 h -5.67382 z m 2.09939,23.90734 h -7.37243 l 3.57445,-14.8363 h 0.17782 l 3.62017,14.8363 z m -8.08768,-20.68969 -9.25112,32.800536 h 7.01511 l 1.6986,-6.525676 h 10.05496 l 1.65287,6.525676 h 7.01734 l -9.47411,-32.800536 h -8.71367 z m 20.88669,0 v 5.98773 h 8.35636 v 26.812856 h 7.50904 V 58.631712 h 8.17855 v -5.98773 z' id='path5' inkscape:connector-curvature='0' style='fill:%23ffffff;fill-rule:nonzero;stroke-width:1.29737616' /%3E%3Cpath d='m -425.94284,170.75254 c 8.35636,0 15.60855,0 17.05765,-0.13661 4.07629,-0.34548 7.18331,-0.69096 10.84415,-2.55495 5.59256,-2.83325 6.90504,-8.91073 6.97448,-14.64212 l 0.0694,-8.63412 c 0.0694,-11.39621 -0.82756,-14.91817 -3.03986,-18.16408 -2.90042,-4.2129 -7.24992,-6.55899 -19.61256,-6.55899 h -12.2932 v 50.69104 z m 11.32621,-41.71349 c 5.93805,0 8.35636,0 10.49639,3.10703 1.72739,2.48777 1.86625,6.70065 1.86625,12.77758 0,1.72739 -0.13887,4.48894 -0.13887,6.21632 0,9.73773 -4.55838,10.56583 -9.04734,10.56583 h -3.17647 v -32.66675 z m 59.49367,23.82546 c 0,4.55838 0.20604,10.35978 5.10989,14.98761 3.10703,2.90043 8.56523,4.22476 13.88118,4.22476 4.62837,0 8.98012,-1.03643 12.50208,-3.87928 5.17989,-4.21289 5.24706,-11.53282 5.24706,-14.57212 v -33.56374 h -11.25677 v 33.49375 c 0,9.25617 -4.97103,9.25617 -7.11331,9.25617 -6.83787,0 -6.83787,-6.28576 -6.83787,-9.32562 v -33.4243 h -11.53226 v 32.80281 z m 85.11614,17.89991 v -50.70267 h -11.18738 v 50.70267 z m 68.33672,-42.62236 c -4.14572,-6.07971 -9.39279,-9.11674 -16.85159,-9.11674 -10.42867,0 -16.5061,6.00744 -16.5061,14.36324 0,10.01655 6.62898,13.39907 14.2944,16.36949 7.59769,2.96986 9.6705,3.79742 9.6705,7.59769 0,4.62555 -4.35176,5.73199 -6.76786,5.73199 -4.35177,0 -7.73709,-2.62495 -9.60112,-6.90726 l -8.6324,5.73144 c 4.55837,8.14974 9.80772,10.30448 18.71557,10.30448 2.55551,0 6.76842,-0.76095 9.73828,-2.56737 7.18276,-4.35176 7.18276,-11.1196 7.18276,-13.39907 0,-4.76442 -2.20947,-8.0803 -2.831,-8.91013 -2.00286,-2.76156 -5.59421,-4.83442 -8.63412,-5.93804 l -6.42237,-2.34891 c -3.10704,-1.10586 -6.42238,-2.55495 -6.42238,-6.14632 0,-0.55152 0.13661,-4.90385 5.93972,-4.90385 3.93459,0 7.18108,2.62494 8.76901,5.66421 l 8.35863,-5.52482 z m 34.90954,42.61053 h 16.3667 c 6.42293,0 10.77472,-0.27604 14.43551,-4.00403 3.38308,-3.38534 3.9346,-7.18276 3.9346,-10.91355 0,-7.45881 -4.69499,-11.11738 -8.07975,-11.60226 v -0.34548 c 3.93686,-0.897 6.97615,-4.83442 6.97615,-10.98077 0,-4.21289 -1.72739,-8.49524 -5.45538,-10.77471 -2.90043,-1.79456 -7.11332,-2.07004 -11.46566,-2.07004 h -16.71215 v 50.69104 z m 10.84188,-22.23754 c 3.93685,0 7.87369,0 9.46223,0.62152 2.62438,1.10361 3.2459,3.93686 3.2459,6.35294 0,5.17988 -2.76381,7.25275 -7.18331,7.25275 h -5.52483 v -14.22723 z m 0,-20.65127 h 5.04272 c 2.27947,0 6.76787,0 6.76787,6.1486 0,6.42237 -2.90043,6.69842 -11.81059,6.69842 z m 58.943778,25.00078 c 0,4.55838 0.20661,10.35978 5.11045,14.98761 3.10646,2.90043 8.56468,4.22476 13.88118,4.22476 4.62781,0 8.97957,-1.03643 12.50153,-3.87928 5.17988,-4.21289 5.24705,-11.53282 5.24705,-14.57211 v -33.56375 h -11.25677 v 33.49375 c 0,9.25617 -4.97103,9.25617 -7.11331,9.25617 -6.83726,0 -6.83726,-6.28576 -6.83726,-9.32562 v -33.4243 h -11.53282 v 32.80281 z m 84.01234,-24.93134 c 6.2163199,0 7.5959699,0 9.3233399,0.62152 2.20947,0.82983 3.31534003,2.55495 3.31534003,6.07916 0,2.76156 -0.27604,5.52538 -3.79799003,6.76787 -1.59021,0.55208 -2.5572,0.55208 -8.8407299,0.55208 v -14.02062 z m 0,22.10093 h 3.7285499 l 9.60112003,20.71844 H 12.451478 L 1.4035379,148.23956 c 7.11331,-2.14286 9.6682801,-7.0467 9.6682801,-13.46908 0,-13.60512 -10.42866007,-14.70873 -18.6478501,-14.70873 H -23.943292 v 50.69104 h 10.98077 v -20.71844 z m 57.90821,2.48495 c 0,6.28576 0.69094,10.49866 3.45196,14.02062 3.31591,4.14347 8.01091,5.60665 13.12363,5.60665 7.80203,0 10.08095,-2.63624 11.53227,-4.36362 h 0.48266 l 1.45132,3.5338 h 4.97327 v -27.0838 h -16.99047 v 8.4258 h 5.94026 v 3.45251 c 0,1.86625 0,6.63126 -5.80143,6.63126 -5.45761,0 -6.70065,-4.07629 -6.70065,-10.70528 V 136.083 c 0,-2.96986 0.41494,-7.94091 6.21632,-7.94091 3.79746,0 6.07688,2.07004 6.28576,6.55898 h 11.05016 c 0,-9.80545 -6.83726,-15.67572 -16.43893,-15.67572 -4.90383,0 -9.4594,0.48209 -13.32963,4.00403 -5.2465,4.83442 -5.2465,11.25904 -5.2465,15.74799 v 13.74174 z' id='path7' inkscape:connector-curvature='0' style='fill:%23ffffff;fill-rule:nonzero;stroke-width:1.29737616' /%3E%3Cpath d='m -397.02371,227.62821 h 35.63661 v -9.46223 h -24.44701 v -11.94776 h 15.67572 v -9.25334 h -15.81516 v -10.77416 h 22.99847 v -9.25335 h -34.04868 v 50.69104 z m 99.01173,-42.61054 c -4.14572,-6.07971 -9.39223,-9.11673 -16.85159,-9.11673 -10.42866,0 -16.50555,6.00744 -16.50555,14.36324 0,10.01655 6.62843,13.39907 14.29385,16.36948 7.59825,2.96986 9.67111,3.79743 9.67111,7.59769 0,4.62556 -4.35233,5.73144 -6.76842,5.73144 -4.35177,0 -7.73708,-2.62438 -9.60112,-6.9067 l -8.63185,5.73143 c 4.55838,8.14975 9.80773,10.30449 18.71558,10.30449 2.55495,0 6.76787,-0.76095 9.73772,-2.56737 7.18331,-4.35177 7.18331,-11.1196 7.18331,-13.39907 0,-4.76442 -2.21003,-8.08031 -2.83099,-8.91013 -2.00342,-2.76156 -5.59482,-4.83442 -8.63468,-5.93804 l -6.42237,-2.34891 c -3.10704,-1.10587 -6.42238,-2.55495 -6.42238,-6.14632 0,-0.55209 0.13661,-4.90386 5.94027,-4.90386 3.9346,0 7.18048,2.62439 8.76846,5.66422 l 8.35863,-5.52483 z m 63.51163,0 c -4.14516,-6.07971 -9.39223,-9.11673 -16.85104,-9.11673 -10.42922,0 -16.5061,6.00744 -16.5061,14.36324 0,10.01655 6.62899,13.39907 14.29385,16.36948 7.59824,2.96986 9.67111,3.79743 9.67111,7.59769 0,4.62556 -4.35233,5.73144 -6.76787,5.73144 -4.35233,0 -7.73708,-2.62438 -9.60167,-6.9067 l -8.63185,5.73143 c 4.55838,8.14975 9.80772,10.30449 18.71557,10.30449 2.55495,0 6.76787,-0.76095 9.73829,-2.56737 7.18275,-4.35177 7.18275,-11.1196 7.18275,-13.39907 0,-4.76442 -2.20947,-8.08031 -2.83099,-8.91013 -2.00343,-2.76156 -5.59483,-4.83442 -8.63468,-5.93804 l -6.42238,-2.34891 c -3.10703,-1.10587 -6.42237,-2.55495 -6.42237,-6.14632 0,-0.55209 0.13661,-4.90386 5.94027,-4.90386 3.9346,0 7.18048,2.62439 8.76902,5.66422 l 8.35807,-5.52483 z m 31.87984,42.61054 h 35.63661 v -9.46223 h -24.44701 v -11.94776 h 15.67572 v -9.25334 h -15.81516 v -10.77416 h 22.99791 v -9.25335 h -34.04812 v 50.69104 z m 67.93341,0 h 10.22033 v -23.7583 c 0,-1.31021 -0.27604,-7.73486 -0.34548,-9.1839 h 0.34548 c 2.62438,6.14632 2.69382,6.35293 3.79743,8.3558 l 13.46907,24.58645 h 9.116738 v -50.69104 h -10.222608 v 18.85219 c 0,1.93343 0,2.3489 0.2083,5.80365 l 0.27604,5.10989 h -0.34547 c -0.20887,-0.34548 -0.897,-2.20947 -1.10587,-2.62494 -0.48209,-1.03644 -1.17304,-2.41778 -1.72738,-3.45421 l -13.05136,-23.68663 h -10.63527 v 50.69104 z' id='path9' inkscape:connector-curvature='0' style='fill:%23ffffff;fill-rule:nonzero;stroke-width:1.29737616' /%3E%3C/g%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.94566709' id='path44' d='m 57.849497,14.92373 v 118.42303 l 8.333397,-0.0127 V 14.923159 h -8.333397 z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:none;stroke:%23000000;stroke-width:0.53388023;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.86400008;stroke-dasharray:none;stroke-opacity:1' id='path48' d='m 57.849497,14.92373 v 118.42303 l 8.333397,-0.0127 V 14.923159 h -8.333397 z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.94566709' id='path52' d='M 13.340586,37.253319 0.2644434,50.29467 V 68.102403 H 26.614851 V 50.29467 Z M 0.2644434,80.614155 V 98.421888 L 13.340586,111.39704 26.614851,98.355688 V 80.614155 Z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23fffcfd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.94566709' id='path68' d='M 109.56251,37.253319 96.420323,50.22847 V 68.102403 H 122.77073 V 50.36087 Z M 96.420323,80.614155 V 98.421888 L 109.56251,111.39704 122.77073,98.355688 V 80.614155 Z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23fefefe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.94566709' id='path84' d='m 35.002074,106.82926 -13.010102,13.17375 13.010102,13.23995 h 17.699027 v -26.4137 z m 36.190541,0 v 26.4137 H 89.023718 L 101.96778,120.06921 88.957676,106.82926 Z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23fffffa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.94566709' id='path100' d='m 35.002074,15.076403 -13.010102,13.10755 13.010102,13.30615 h 17.699027 v -26.4137 z m 36.190541,0 v 26.3475 H 89.023718 L 101.96778,28.316353 88.957676,15.076403 Z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:none;stroke:%23000000;stroke-width:0.53388023;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.86400008;stroke-dasharray:none;stroke-opacity:1' id='path112' d='M 52.720437,15.060303 V 41.474342 H 35.011957 L 21.997076,28.215729 35.011957,15.060303 Z M 71.221652,41.436105 V 15.064561 H 88.930119 L 101.945,28.323195 88.99673,41.442185 71.221652,41.43583 Z m 0,91.817145 v -26.4201 h 17.708467 l 13.014881,13.2647 -12.94827,13.14932 -17.775078,0.006 z M 96.442915,80.605851 H 122.78153 V 98.344715 L 109.53047,111.39085 96.442915,98.423647 Z m 0,-12.51798 H 122.78153 V 50.330789 L 109.53047,37.28465 96.442915,50.257937 Z M 52.720437,106.83364 V 133.2416 H 35.011957 L 21.997076,119.98299 35.011957,106.83364 Z M 0.26662011,80.605851 26.599193,80.593141 V 98.344143 L 13.372344,111.3903 0.26662011,98.423075 V 80.605279 Z m 0,-12.51798 26.33257289,-0.0064 V 50.294077 L 13.372344,37.284375 0.26662011,50.294077 v 17.793518 z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.94566709' id='path124' d='m 75.903661,9.8260743 2.095458,1.2627307 c 0.635918,0.51602 1.25364,1.43269 1.25364,1.43269 L 78.89544,11.076646 80.37922,10.955262 C 79.979507,10.840021 79.761498,10.754862 79.386004,10.578866 78.750107,10.281402 78.374613,10.099283 77.865896,9.607541 77.405615,9.1582936 77.28448,9.1643734 76.927161,8.25982 l -0.224075,1.1109695 -0.799425,0.455306 z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23ffffff;fill-opacity:1;stroke:%23000000;stroke-width:0.37669724;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.86400008;stroke-dasharray:none;stroke-opacity:1' id='path132' d='M 70.796368,0.44625824 C 69.212036,0.47866964 67.440211,1.1445014 65.975366,1.042056 57.981115,0.46532377 50.760844,4.2672443 47.417804,11.965015 c -3.851776,8.845155 1.564706,17.819807 8.057024,23.368511 0.635896,0.540296 1.350218,1.048499 2.113316,1.588794 l 0.198017,-9.069365 c -2.440668,-2.537601 -4.088505,-5.485852 -4.094549,-9.267965 -0.01268,-2.489026 0.802553,-5.521716 3.103932,-7.94397 2.19842,-2.306908 6.300408,-3.5814385 7.396606,-3.508587 2.561783,0.1578202 1.997358,1.3572326 2.905809,2.383191 0.399713,0.455306 1.855767,0.649287 3.169974,0.728197 2.870665,0.163964 7.220968,-0.125832 7.396606,-0.198493 C 77.834027,9.9785986 75.315905,3.2672573 73.371866,1.3731607 72.633748,0.65833046 71.746853,0.42691732 70.796262,0.44636416 Z M 65.909325,34.208131 V 42.4169 c 3.851772,2.798629 5.955535,5.97181 5.28329,9.929962 C 69.406017,62.897916 46.995319,65.771367 46.55927,79.885958 46.371523,86.151018 49.078518,90.97216 57.654185,97.82609 L 57.852202,87.631329 C 54.484929,85.008739 52.437084,82.061632 54.484105,78.230964 57.796876,72.026618 79.297118,63.240778 78.655156,50.625669 78.243334,42.502949 72.365167,38.585173 65.909219,34.208131 Z m 0.198018,60.043173 0.198017,9.996166 c 2.101503,1.54805 3.28589,2.42998 3.764344,5.36218 0.932649,5.75512 -5.558655,8.54262 -9.113675,10.98915 -3.936579,2.71364 -13.737191,7.79037 -9.509921,16.48374 2.416429,4.972 6.598617,5.61658 6.538071,5.42838 -0.399713,-1.26879 -3.687927,-3.35646 -3.50018,-8.40737 0.254359,-6.82357 15.76185,-10.61816 19.680255,-18.00633 1.071958,-2.02158 6.55671,-11.6834 -8.057017,-21.845916 z' /%3E%3Cpath inkscape:connector-curvature='0' style='fill:%23ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.94566709' id='path272' d='m 1018.8932,97.637109 v -22.26769 c 0,-3.569617 -0.9811,-5.74296 -4.2636,-5.74296 -4.5422,0 -8.1093,5.111595 -8.1093,11.206675 v 16.803975 h -8.87242 V 69.69323 c -1.6715,-0.279246 -4.05163,-0.558514 -6.06834,-0.698137 v -5.597279 c 4.39684,-0.564572 9.77476,-0.777068 14.46226,-0.637424 0,1.687681 -0.1392,4.413458 -0.4966,6.301475 h 0.073 c 2.1016,-4.06136 6.1471,-6.93284 11.8037,-6.93284 7.8246,0 10.338,4.978051 10.338,11.067051 v 24.441033 h -8.8664 z M 971.25174,68.646024 c -3.70641,0 -6.28639,2.731858 -6.77694,7.072464 h 12.7787 c 0.14539,-4.48023 -2.22871,-7.072464 -6.00176,-7.072464 m 14.59556,13.094714 h -21.51178 c -0.0727,6.441098 3.14924,9.591845 9.56886,9.591845 3.28248,0 6.77694,-0.698137 10.05338,-2.100491 l 0.98111,6.793217 c -3.76699,1.541978 -8.30918,2.312966 -12.57278,2.312966 -10.96181,0 -17.10889,-5.536565 -17.10889,-17.787417 0,-10.642124 5.86848,-18.485576 16.27312,-18.485576 10.12606,0 14.60162,6.926782 14.60162,15.541223 0,1.195959 -0.0786,2.592234 -0.28464,4.134233 M 933.11129,98.33586 c -2.72531,0 -5.51723,-0.279267 -7.752,-0.910633 l 0.62379,-7.491354 c 2.10152,0.910612 4.82079,1.396274 7.40679,1.396274 3.35517,0 5.58993,-1.469126 5.58993,-3.70924 0,-6.234725 -14.11107,-2.592234 -14.11107,-14.424216 0,-6.161873 4.67543,-11.127765 14.66218,-11.127765 2.03492,0 4.40291,0.273166 6.36512,0.692057 l -0.41786,7.005713 c -1.89563,-0.558514 -4.12431,-0.910633 -6.29247,-0.910633 -3.49445,0 -5.09934,1.402354 -5.09934,3.569639 0,5.882605 14.31697,2.944332 14.31697,14.351364 0,6.932841 -6.07443,11.558794 -15.29204,11.558794 m -30.87717,0 c -2.73137,0 -5.51723,-0.279267 -7.75804,-0.910633 l 0.62983,-7.491354 c 2.10152,0.910612 4.82683,1.396274 7.40679,1.396274 3.35516,0 5.58387,-1.469126 5.58387,-3.70924 0,-6.234725 -14.10501,-2.592234 -14.10501,-14.424216 0,-6.161873 4.67543,-11.127765 14.66825,-11.127765 2.02884,0 4.39683,0.273166 6.35905,0.692057 l -0.43,7.005713 c -1.87743,-0.558514 -4.11217,-0.910633 -6.28033,-0.910633 -3.48839,0 -5.09935,1.402354 -5.09935,3.569639 0,5.882605 14.32302,2.944332 14.32302,14.351364 0,6.932841 -6.07441,11.558794 -15.29808,11.558794 M 860.24976,97.637109 V 50.369894 h 25.63611 v 7.630978 h -16.55172 v 11.625587 h 15.71594 v 7.424582 h -15.71594 v 12.809366 h 16.55172 v 7.776702 z m -37.37371,0 V 75.648687 c 0,-3.715342 -0.83576,-6.022228 -4.11824,-6.022228 -3.9063,0 -7.95793,4.553081 -7.95793,11.346319 v 16.664331 h -8.81185 V 75.575836 c 0,-3.429995 -0.69646,-5.949377 -4.11217,-5.949377 -4.13037,0 -7.96397,4.832348 -7.96397,11.346319 v 16.664331 h -8.87846 V 69.69323 c -1.67153,-0.279246 -4.05165,-0.558514 -6.07443,-0.698137 v -5.597279 c 4.4029,-0.564572 9.84746,-0.777068 14.45626,-0.637424 0,1.687681 -0.13314,4.273835 -0.41182,6.301475 l 0.0727,0.07287 c 2.08941,-4.267777 6.28033,-7.005692 11.45237,-7.005692 6.14102,0 8.72705,3.575697 9.56886,6.93284 1.60492,-3.357143 5.45063,-6.93284 11.31309,-6.93284 6.71033,0 10.41068,3.71532 10.41068,11.558794 v 23.94929 h -8.94507 z m -65.80236,0.06737 c 0,-1.608771 0.0788,-4.267776 0.41788,-6.301496 h -0.13926 c -2.02279,4.061381 -6.08048,6.932861 -11.73096,6.932861 -7.89733,0 -10.41068,-4.971993 -10.41068,-11.067073 V 69.693824 c -1.67153,-0.279268 -3.97895,-0.558515 -6.01386,-0.698138 v -5.597279 c 4.62091,-0.564593 10.13817,-0.777068 14.95287,-0.637445 v 22.340541 c 0,3.569618 0.98113,5.742961 4.26362,5.742961 4.54219,0 8.10325,-5.111596 8.10325,-11.200617 V 62.833814 h 8.8724 v 27.937819 c 1.67153,0.279247 4.05165,0.558493 6.07443,0.704196 v 5.597279 c -4.4029,0.564594 -9.78085,0.770989 -14.38965,0.631366 m -41.56288,-0.06737 -10.75589,-17.228925 v 17.228925 h -8.9451 V 53.380998 c -1.67757,-0.279247 -4.04556,-0.558514 -6.07441,-0.704217 v -5.597258 c 4.47556,-0.558514 9.84746,-0.77101 15.01951,-0.631366 V 77.330288 L 714.881,62.833242 h 10.8952 l -12.22152,15.893341 13.12995,18.910526 z M 678.55684,57.652417 c -3.00391,0 -5.5233,-2.385817 -5.5233,-5.396942 0,-3.005045 2.51939,-5.451576 5.5233,-5.451576 3.08263,0 5.58991,2.373679 5.58991,5.451576 0,2.944332 -2.50728,5.396942 -5.58991,5.396942 m -4.40291,39.982256 V 69.696874 c -1.66546,-0.279268 -4.05163,-0.564594 -6.07441,-0.704217 v -5.597279 c 4.40895,-0.564573 9.78085,-0.770989 14.94683,-0.631365 v 34.87066 z m -22.63038,0.0021 v -22.26765 c 0,-3.569639 -0.97506,-5.742982 -4.25755,-5.742982 -4.54823,0 -8.10325,5.111616 -8.10325,11.206696 v 16.803954 h -8.87847 V 69.692913 c -1.67152,-0.279247 -4.05162,-0.558514 -6.07441,-0.698138 v -5.597279 c 4.40289,-0.564572 9.7869,-0.777047 14.46231,-0.637424 0,1.687681 -0.14539,4.413458 -0.49054,6.301475 h 0.0727 c 2.09546,-4.06136 6.14102,-6.93284 11.80363,-6.93284 7.81861,0 10.33196,4.978051 10.33196,11.067073 v 24.441011 h -8.86636 z M 612.12703,57.652417 c -3.00391,0 -5.51723,-2.385817 -5.51723,-5.396942 0,-3.005045 2.51332,-5.451576 5.51723,-5.451576 3.07052,0 5.58991,2.373679 5.58991,5.451576 0,2.944332 -2.51939,5.396942 -5.58991,5.396942 m -4.4029,39.982256 V 69.696874 c -1.67757,-0.279268 -4.05163,-0.564594 -6.07441,-0.704217 v -5.597279 c 4.39684,-0.564573 9.77478,-0.770989 14.94683,-0.631365 v 34.87066 z m -22.62795,0.0021 V 53.38068 c -1.68364,-0.279247 -4.05163,-0.558493 -6.08047,-0.704196 v -5.597279 c 4.46951,-0.558514 9.84746,-0.770989 15.0195,-0.631365 v 51.188951 z m -18.87066,0 -10.74985,-17.228925 v 17.228925 h -8.94508 V 53.38068 c -1.67152,-0.279247 -4.05162,-0.558493 -6.07443,-0.704196 v -5.597279 c 4.46952,-0.558514 9.84749,-0.770989 15.01951,-0.631365 v 30.882151 l 10.12606,-14.497067 h 10.89518 l -12.2215,15.893342 13.13599,18.910525 z m -44.63275,0.698752 c -2.72531,0 -5.51723,-0.279247 -7.752,-0.910612 l 0.62985,-7.491376 c 2.09546,0.910633 4.81473,1.396296 7.40073,1.396296 3.35516,0 5.58993,-1.469147 5.58993,-3.709262 0,-6.234703 -14.10501,-2.592234 -14.10501,-14.424216 0,-6.161852 4.67541,-11.127765 14.66823,-11.127765 2.0228,0 4.39684,0.273188 6.35301,0.692079 l -0.41787,7.005691 c -1.88349,-0.558514 -4.1243,-0.910633 -6.2864,-0.910633 -3.49445,0 -5.09936,1.402355 -5.09936,3.569639 0,5.882605 14.31697,2.944332 14.31697,14.351364 0,6.932841 -6.07441,11.558795 -15.29808,11.558795 m -22.55893,0 c -7.69143,0 -10.05942,-2.798629 -10.05942,-10.92137 V 69.766378 h -6.0078 v -6.932861 h 6.0078 V 52.124643 l 8.87239,-2.385818 v 13.094692 h 8.44847 v 6.932861 h -8.44847 v 15.261977 c 0,4.48633 1.04774,5.742982 4.11826,5.742982 1.47167,0 2.79799,-0.139602 3.985,-0.491743 l 0.62381,7.078544 c -2.23477,0.558514 -5.09331,0.977405 -7.54004,0.977405 M 467.6661,57.092378 c -2.65263,0 -4.82076,-2.173343 -4.82076,-4.832349 0,-2.731857 2.16813,-4.83237 4.82076,-4.83237 2.65264,0 4.82077,2.100513 4.82077,4.83237 0,2.659006 -2.16813,4.832349 -4.82077,4.832349 m -2.51334,24.926695 c -9.07832,0 -11.52503,2.45259 -11.52503,5.463714 0,2.306908 1.53221,3.988509 4.11824,3.988509 4.39684,0 7.40679,-4.200983 7.40679,-8.401988 z M 453.55505,57.092378 c -2.65265,0 -4.82079,-2.173343 -4.82079,-4.832349 0,-2.731857 2.16814,-4.83237 4.82079,-4.83237 2.65263,0 4.82077,2.100513 4.82077,4.83237 0,2.659006 -2.16814,4.832349 -4.82077,4.832349 m 12.29417,40.613621 c 0,-2.03372 0.0727,-4.134212 0.35128,-5.955457 l -0.0727,-0.06673 c -1.67153,3.921737 -5.93512,6.653594 -11.10716,6.653594 -6.2864,0 -9.91408,-3.854944 -9.91408,-9.458303 0,-8.329115 8.24255,-12.669742 20.04618,-12.669742 V 74.52776 c 0,-3.64249 -1.75025,-5.536566 -6.77694,-5.536566 -3.1432,0 -7.33412,1.056315 -10.12606,2.525441 l -1.05378,-7.351731 c 3.56713,-1.189879 8.17593,-2.100491 12.43954,-2.100491 11.31914,0 14.45627,4.480229 14.45627,12.117308 V 90.7732 c 1.67757,0.279268 4.05163,0.558514 6.08047,0.698137 v 5.603359 c -4.4029,0.564572 -9.78085,0.770989 -14.32304,0.631365 m -34.8549,0.629523 c -7.68539,0 -10.05942,-2.798629 -10.05942,-10.92137 V 69.766421 h -6.0078 v -6.932862 h 6.0078 V 52.124685 l 8.8724,-2.385818 v 13.094692 h 8.45453 v 6.932862 h -8.45453 v 15.261976 c 0,4.486331 1.04774,5.742982 4.1243,5.742982 1.45956,0 2.78588,-0.139602 3.97895,-0.491742 l 0.62985,7.078543 c -2.23474,0.558514 -5.10541,0.977405 -7.54608,0.977405 M 403.46925,57.652142 c -3.00391,0 -5.5233,-2.385818 -5.5233,-5.396943 0,-3.005045 2.51939,-5.451575 5.5233,-5.451575 3.07657,0 5.58991,2.373679 5.58991,5.451575 0,2.944332 -2.51334,5.396943 -5.58991,5.396943 m -4.39684,39.982276 V 69.696599 c -1.67757,-0.279247 -4.05162,-0.564573 -6.08047,-0.704217 v -5.597258 c 4.4029,-0.564594 9.78085,-0.770989 14.94683,-0.631366 v 34.87066 z m -26.90003,0.701167 c -2.72532,0 -5.51724,-0.279246 -7.75201,-0.910612 l 0.62986,-7.491376 c 2.09545,0.910634 4.82077,1.396296 7.40679,1.396296 3.3491,0 5.58386,-1.469147 5.58386,-3.709262 0,-6.234703 -14.11107,-2.592234 -14.11107,-14.424216 0,-6.161851 4.68148,-11.127765 14.67429,-11.127765 2.02281,0 4.39684,0.273188 6.35301,0.692079 l -0.41786,7.005692 c -1.8835,-0.558514 -4.12431,-0.910633 -6.2864,-0.910633 -3.49445,0 -5.09937,1.402354 -5.09937,3.569638 0,5.882606 14.31698,2.944332 14.31698,14.351365 0,6.93284 -6.07441,11.558794 -15.29808,11.558794 M 357.92685,70.958122 c -6.63765,-1.402354 -9.85352,2.798629 -9.85352,12.463348 v 14.217799 h -8.8724 V 69.695391 c -1.67153,-0.279267 -4.05163,-0.558514 -6.07441,-0.698137 v -5.603359 c 4.40288,-0.558514 9.78083,-0.770989 14.46231,-0.631365 0,1.821245 -0.21197,4.625953 -0.62986,7.072484 h 0.13927 c 1.67153,-4.407399 5.02667,-8.262343 11.24646,-7.703829 l -0.41789,8.826937 z m -45.12874,-2.312373 c -3.70037,0 -6.2864,2.731857 -6.77694,7.072485 h 12.78474 c 0.13927,-4.480251 -2.23475,-7.072485 -6.0078,-7.072485 m 14.59555,13.094713 h -21.51178 c -0.0727,6.441119 3.14924,9.591846 9.57493,9.591846 3.27642,0 6.77087,-0.698137 10.05943,-2.100491 l 0.97506,6.793217 c -3.77305,1.541998 -8.31524,2.312987 -12.57884,2.312987 -10.96181,0 -17.1089,-5.536566 -17.1089,-17.787438 0,-10.642103 5.86245,-18.485576 16.27313,-18.485576 10.12606,0 14.60162,6.926781 14.60162,15.541244 0,1.195938 -0.0727,2.592234 -0.28465,4.134211 m -47.21693,15.896371 h -9.08438 L 258.241,62.832966 h 9.78085 l 5.51723,15.686926 c 0.84182,2.452611 1.6776,5.25124 2.30743,7.70385 h 0.13926 c 0.55718,-2.379759 1.25364,-5.044823 2.09546,-7.424582 l 5.58387,-15.966194 h 9.50225 L 280.17669,97.636833 Z M 246.99575,57.652417 c -3.00391,0 -5.5233,-2.385817 -5.5233,-5.396942 0,-3.005045 2.51939,-5.451576 5.5233,-5.451576 3.07052,0 5.58387,2.373679 5.58387,5.451576 0,2.944332 -2.51335,5.396942 -5.58387,5.396942 m -4.4029,39.982256 V 69.696874 c -1.67151,-0.279268 -4.05163,-0.564594 -6.07441,-0.704217 v -5.597279 c 4.4029,-0.564573 9.78085,-0.770989 14.94683,-0.631365 v 34.87066 z m -22.6322,0.0021 v -22.26765 c 0,-3.569639 -0.97506,-5.742982 -4.26359,-5.742982 -4.53613,0 -8.09722,5.111616 -8.09722,11.206696 v 16.803954 h -8.87241 V 69.692913 c -1.67758,-0.279247 -4.05768,-0.558514 -6.08048,-0.698138 v -5.597279 c 4.4029,-0.564572 9.78085,-0.777047 14.46233,-0.637424 0,1.687681 -0.13927,4.413458 -0.49056,6.301475 h 0.0727 c 2.08942,-4.06136 6.14105,-6.93284 11.80366,-6.93284 7.82465,0 10.338,4.978051 10.338,11.067073 v 24.441011 h -8.8724 z m -54.55772,0.769273 c -14.88022,0 -18.22932,-8.12272 -18.22932,-17.156073 V 50.36786 h 9.08437 v 30.323617 c 0,5.949377 1.95012,10.150381 9.77478,10.150381 6.98892,0 9.92014,-2.944332 9.92014,-10.994221 V 50.36786 h 9.0117 v 28.921262 c 0,12.882239 -7.12821,19.116942 -19.56167,19.116942' /%3E%3C/svg%3E"); -} + margin: auto; + height: 60px; + width: 100%; + background-repeat: no-repeat; + background-size: 50%; + background-position: center; + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMTY1My4xMSA0MjUuMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmU7fS5jbHMtMntjbGlwLXBhdGg6dXJsKCNjbGlwLXBhdGgpO30uY2xzLTN7Y2xpcC1wYXRoOnVybCgjY2xpcC1wYXRoLTIpO30uY2xzLTR7Y2xpcC1wYXRoOnVybCgjY2xpcC1wYXRoLTMpO30uY2xzLTV7ZmlsbDojNTc1NzU2O308L3N0eWxlPjxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xODkuMSwyODkuNzF2NDguNDhhMTI3LjU4LDEyNy41OCwwLDAsMS00NS40My0yMzIuNzRjMiwxNi4wOCw4LjkyLDMwLjUsMjAuNjgsNDNBODAuNDIsODAuNDIsMCwwLDAsMTg5LjEsMjg5LjcxWk0yMzYuMjksODcuNDR2NDguNWE4MC40Miw4MC40MiwwLDAsMSwyMC4yOCwxNDQuMThjNS40Niw4LDksMTcuMSw5LjA2LDI3LjY5YTQ3LjY3LDQ3LjY3LDAsMCwxLTUuODMsMjMuNTJBMTI3LjU5LDEyNy41OSwwLDAsMCwyMzYuMjksODcuNDRaIi8+PC9jbGlwUGF0aD48Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aC0yIj48Y2lyY2xlIGNsYXNzPSJjbHMtMSIgY3g9IjIxMi42IiBjeT0iMjEyLjgiIHI9IjEyNy41NiIvPjwvY2xpcFBhdGg+PGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgtMyI+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI4MC4wNCIgeT0iODAuMjQiIHdpZHRoPSIyNjUuMTIiIGhlaWdodD0iMjY1LjEyIi8+PC9jbGlwUGF0aD48L2RlZnM+PGcgaWQ9IlRleHRfUkdCX1Bhc3NlciIgZGF0YS1uYW1lPSJUZXh0IFJHQiBQYXNzZXIiPjxwYXRoIGQ9Ik00ODAuMjcsMTI5djQyYTI0LjE5LDI0LjE5LDAsMCwxLTMuMjIsMTIuNjEsMjAuOTEsMjAuOTEsMCwwLDEtOS4zMSw4LjMxLDMzLjI0LDMzLjI0LDAsMCwxLTE0LjQsMi44OXEtMTIuNTIsMC0xOS40Ni02LjQyVDQyNywxNzAuODVWMTI5aDEzLjczdjM5Ljc3cTAsNy41MiwzLDExdDEwLDMuNTFxNi43NSwwLDkuOC0zLjUzdDMtMTEuMDlWMTI5WiIvPjxwYXRoIGQ9Ik01MzguNTIsMTk0SDUyNXYtMjljMC0zLjU5LS42NC02LjI3LTEuOTEtOC4wN3MtMy4zMS0yLjY4LTYuMDktMi42OHEtNS42OSwwLTguMjIsMy43OXQtMi41NCwxMi42VjE5NEg0OTIuNjZWMTQ0LjI4SDUwM2wxLjgyLDYuMzVoLjc1YTE0LjI4LDE0LjI4LDAsMCwxLDYuMjUtNS40NCwyMS4yMywyMS4yMywwLDAsMSw5LTEuODVxOC42NSwwLDEzLjE1LDQuNjl0NC40OSwxMy41M1oiLz48cGF0aCBkPSJNNTQ5LjM1LDEzMS40NHEwLTYuNjMsNy4zOC02LjYzdDcuMzgsNi42M2E2LjQ0LDYuNDQsMCwwLDEtMS44NSw0LjljLTEuMjMsMS4xOC0zLjA3LDEuNzYtNS41MywxLjc2UTU0OS4zNSwxMzguMSw1NDkuMzUsMTMxLjQ0Wk01NjMuNDgsMTk0SDU0OS45M1YxNDQuMjhoMTMuNTVaIi8+PHBhdGggZD0iTTU4OC4zNSwxOTRsLTE4LjkzLTQ5LjY3aDE0LjE3bDkuNiwyOC4zYTUwLjYsNTAuNiwwLDAsMSwyLDEwLjE4aC4yN2E0NC4wNSw0NC4wNSwwLDAsMSwyLTEwLjE4bDkuNTUtMjguM2gxNC4xN0w2MDIuMjYsMTk0WiIvPjxwYXRoIGQ9Ik02NDcuODcsMTk0Ljg0cS0xMiwwLTE4Ljc1LTYuNjJ0LTYuNzUtMTguNzVxMC0xMi40OCw2LjI0LTE5LjMxdDE3LjI3LTYuODJxMTAuNTMsMCwxNi4zOSw2dDUuODcsMTYuNTh2Ni41N2gtMzJxLjIzLDUuNzcsMy40Miw5dDksMy4yNWEzNy4yOSwzNy4yOSwwLDAsMCw4LjQ4LS45NCw0Mi41Nyw0Mi41NywwLDAsMCw4LjM2LTN2MTAuNDhhMzEuODIsMzEuODIsMCwwLDEtNy42LDIuNjVBNDguNTksNDguNTksMCwwLDEsNjQ3Ljg3LDE5NC44NFpNNjQ2LDE1M2E4LjYsOC42LDAsMCwwLTYuNzUsMi43M2MtMS42MywxLjgyLTIuNTYsNC40MS0yLjgsNy43NWgxOWMtLjA2LTMuMzQtLjkzLTUuOTMtMi42Mi03Ljc1QTguODksOC44OSwwLDAsMCw2NDYsMTUzWiIvPjxwYXRoIGQ9Ik03MDUuMzMsMTQzLjM0YTIyLjI1LDIyLjI1LDAsMCwxLDQuNTcuNGwtMSwxMi43MWExNS44NSwxNS44NSwwLDAsMC00LS40NHEtNi40OCwwLTEwLjExLDMuMzN0LTMuNjIsOS4zM1YxOTRINjc3LjZWMTQ0LjI4aDEwLjI2bDIsOC4zNWguNjdhMTguNjgsMTguNjgsMCwwLDEsNi4yNC02LjczQTE1LjQ0LDE1LjQ0LDAsMCwxLDcwNS4zMywxNDMuMzRaIi8+PHBhdGggZD0iTTc1Mi41NiwxNzkuMnEwLDcuNjUtNS4zMSwxMS42NHQtMTUuODgsNGE0OS42OSw0OS42OSwwLDAsMS05LjI0LS43M0EzNC44OSwzNC44OSwwLDAsMSw3MTUsMTkyVjE4MC43NmE0Ny44NSw0Ny44NSwwLDAsMCw4LjUxLDMsMzQuNCwzNC40LDAsMCwwLDguMzMsMS4ycTcuMzgsMCw3LjM4LTQuMjZhMy41NSwzLjU1LDAsMCwwLTEtMi42LDE0LjIyLDE0LjIyLDAsMCwwLTMuMzgtMi4yN2MtMS42LS44NC0zLjczLTEuODMtNi40LTNBNDAuMDYsNDAuMDYsMCwwLDEsNzIwLDE2OC40YTEyLjU2LDEyLjU2LDAsMCwxLTMuOTEtNC42OCwxNS42LDE1LjYsMCwwLDEtMS4yMi02LjUxQTExLjgyLDExLjgyLDAsMCwxLDcyMCwxNDdxNS4xNS0zLjYxLDE0LjU2LTMuNjJBNDEuNDIsNDEuNDIsMCwwLDEsNzUyLDE0Ny4yNUw3NDcuOTQsMTU3YTczLjI0LDczLjI0LDAsMCwwLTctMi42MiwyMiwyMiwwLDAsMC02LjYyLTFjLTQsMC02LDEuMDktNiwzLjI1YTMuODIsMy44MiwwLDAsMCwxLjk0LDMuMTUsNTIuNjYsNTIuNjYsMCwwLDAsOC40Niw0LDM5LjI3LDM5LjI3LDAsMCwxLDguNTMsNC40LDEzLDEzLDAsMCwxLDQsNC43MUExNC40NSwxNC40NSwwLDAsMSw3NTIuNTYsMTc5LjJaIi8+PHBhdGggZD0iTTc2MC44MiwxMzEuNDRxMC02LjYzLDcuMzgtNi42M3Q3LjM3LDYuNjNhNi40Myw2LjQzLDAsMCwxLTEuODQsNC45Yy0xLjIzLDEuMTgtMy4wNywxLjc2LTUuNTMsMS43NlE3NjAuODIsMTM4LjEsNzYwLjgyLDEzMS40NFpNNzc1LDE5NEg3NjEuNFYxNDQuMjhINzc1WiIvPjxwYXRoIGQ9Ik04MDcuODIsMTg0YTI5LjE5LDI5LjE5LDAsMCwwLDguNTMtMS41NXYxMC4wOWEzMC40LDMwLjQsMCwwLDEtMTIuNDQsMi4yNnEtOC4xMywwLTExLjg0LTQuMTF0LTMuNzEtMTIuMzN2LTI0aC02LjQ5di01LjczbDcuNDctNC41MywzLjkxLTEwLjQ5aDguNjZ2MTAuNThoMTMuOTF2MTAuMTdIODAxLjkxdjI0YTUuMyw1LjMsMCwwLDAsMS42Miw0LjI3QTYuNCw2LjQsMCwwLDAsODA3LjgyLDE4NFoiLz48cGF0aCBkPSJNODIwLjA4LDE0NC4yOGgxNC44NGw5LjM3LDI3Ljk0YTM5LDM5LDAsMCwxLDEuNjUsOC42M2guMjdhMzcuNywzNy43LDAsMCwxLDEuOTEtOC42M2w5LjE5LTI3Ljk0aDE0LjUzbC0yMSw1NnEtMi45LDcuNzctOC4yNSwxMS42NGEyMC43OCwyMC43OCwwLDAsMS0xMi41LDMuODYsMzEuNjksMzEuNjksMCwwLDEtNi44OS0uNzVWMjA0LjMxYTIzLjQyLDIzLjQyLDAsMCwwLDUuMzMuNTcsOS42MSw5LjYxLDAsMCwwLDYuMjktMi4yQTE0LjI3LDE0LjI3LDAsMCwwLDgzOSwxOTZsLjgtMi40NFoiLz48cGF0aCBkPSJNOTMxLjE2LDE5NGwtMTUuNjQtNTFoLS40cS44NCwxNS41Ni44NSwyMC43NVYxOTRIOTAzLjY2VjEyOWgxOC43NWwxNS4zNyw0OS42OGguMjdMOTU0LjM2LDEyOWgxOC43NXY2NUg5NjAuMjdWMTYzLjIxYzAtMS40NiwwLTMuMTMuMDYtNXMuMjUtNi45My42LTE1LjFoLS40TDk0My43OCwxOTRaIi8+PHBhdGggZD0iTTEwMDksMTk0Ljg0cS0xMiwwLTE4Ljc1LTYuNjJ0LTYuNzUtMTguNzVxMC0xMi40OCw2LjI0LTE5LjMxdDE3LjI3LTYuODJxMTAuNTMsMCwxNi4zOSw2dDUuODcsMTYuNTh2Ni41N2gtMzJxLjIyLDUuNzcsMy40Miw5dDksMy4yNWEzNy4yOSwzNy4yOSwwLDAsMCw4LjQ4LS45NCw0Mi41Nyw0Mi41NywwLDAsMCw4LjM2LTN2MTAuNDhhMzEuODIsMzEuODIsMCwwLDEtNy42LDIuNjVBNDguNTksNDguNTksMCwwLDEsMTAwOSwxOTQuODRaTTEwMDcuMDYsMTUzYTguNiw4LjYsMCwwLDAtNi43NSwyLjczYy0xLjYzLDEuODItMi41Niw0LjQxLTIuOCw3Ljc1aDE5Yy0uMDYtMy4zNC0uOTQtNS45My0yLjYyLTcuNzVBOC44OSw4Ljg5LDAsMCwwLDEwMDcuMDYsMTUzWiIvPjxwYXRoIGQ9Ik0xMDU1LDE5NC44NGExNi4xMiwxNi4xMiwwLDAsMS0xMy43NS02LjhxLTUtNi43OS01LTE4Ljg0LDAtMTIuMjEsNS4wOS0xOWExNi41NSwxNi41NSwwLDAsMSwxNC02LjgycTkuMzgsMCwxNC4zMSw3LjI5aC40NGE1NS40Myw1NS40MywwLDAsMS0xLTkuOTFWMTI0LjgxaDEzLjZWMTk0aC0xMC40bC0yLjYyLTYuNDRoLS41OFExMDY0LjQ0LDE5NC44NSwxMDU1LDE5NC44NFptNC43Ni0xMC44YzMuNDYsMCw2LTEsNy42Mi0zczIuNDktNS40MywyLjY0LTEwLjI2di0xLjQ3cTAtOC0yLjQ2LTExLjQ2dC04LTMuNDdhOCw4LDAsMCwwLTcsMy44NXEtMi41MSwzLjg0LTIuNTEsMTEuMTd0Mi41NCwxMUE4LjI2LDguMjYsMCwwLDAsMTA1OS43MywxODRaIi8+PHBhdGggZD0iTTEwOTMuODgsMTMxLjQ0cTAtNi42Myw3LjM3LTYuNjN0Ny4zOCw2LjYzYTYuNDMsNi40MywwLDAsMS0xLjg0LDQuOWMtMS4yMywxLjE4LTMuMDgsMS43Ni01LjU0LDEuNzZRMTA5My44OCwxMzguMSwxMDkzLjg4LDEzMS40NFpNMTEwOCwxOTRoLTEzLjU1VjE0NC4yOEgxMTA4WiIvPjxwYXRoIGQ9Ik0xMTQwLjM1LDE5NC44NHEtMjMuMTksMC0yMy4xOS0yNS40NiwwLTEyLjY2LDYuMzEtMTkuMzV0MTguMDgtNi42OWEzNC40NywzNC40NywwLDAsMSwxNS40NiwzLjM4bC00LDEwLjQ5Yy0yLjEzLS44Ni00LjExLTEuNTctNi0yLjExYTE5LjEzLDE5LjEzLDAsMCwwLTUuNTEtLjgzcS0xMC41OCwwLTEwLjU3LDE1LDAsMTQuNTgsMTAuNTcsMTQuNThhMjQsMjQsMCwwLDAsNy4yNC0xLjA1LDI1LjgzLDI1LjgzLDAsMCwwLDYuNjctMy4yNnYxMS41OWEyMS42MSwyMS42MSwwLDAsMS02LjY0LDIuODlBMzcsMzcsMCwwLDEsMTE0MC4zNSwxOTQuODRaIi8+PHBhdGggZD0iTTExNjQuMiwxMzEuNDRxMC02LjYzLDcuMzctNi42M3Q3LjM4LDYuNjNhNi40Myw2LjQzLDAsMCwxLTEuODQsNC45Yy0xLjIzLDEuMTgtMy4wOCwxLjc2LTUuNTQsMS43NlExMTY0LjIxLDEzOC4xLDExNjQuMiwxMzEuNDRaTTExNzguMzMsMTk0aC0xMy41NVYxNDQuMjhoMTMuNTVaIi8+PHBhdGggZD0iTTEyMzYsMTk0aC0xMy41NnYtMjljMC0zLjU5LS42My02LjI3LTEuOTEtOC4wN3MtMy4zLTIuNjgtNi4wOC0yLjY4Yy0zLjgsMC02LjUzLDEuMjYtOC4yMiwzLjc5cy0yLjU0LDYuNzQtMi41NCwxMi42VjE5NGgtMTMuNTVWMTQ0LjI4aDEwLjM2bDEuODIsNi4zNWguNzVhMTQuMzEsMTQuMzEsMCwwLDEsNi4yNC01LjQ0LDIxLjMsMjEuMywwLDAsMSw5LjA1LTEuODVxOC42NSwwLDEzLjE1LDQuNjl0NC40OSwxMy41M1oiLz48cGF0aCBkPSJNMTI3MC40MywxOTQuODRxLTEyLDAtMTguNzUtNi42MnQtNi43NS0xOC43NXEwLTEyLjQ4LDYuMjQtMTkuMzF0MTcuMjYtNi44MnExMC41MywwLDE2LjQsNnQ1Ljg3LDE2LjU4djYuNTdoLTMycS4yMiw1Ljc3LDMuNDIsOXQ5LDMuMjVhMzcuMjksMzcuMjksMCwwLDAsOC40OC0uOTQsNDIuNTcsNDIuNTcsMCwwLDAsOC4zNi0zdjEwLjQ4YTMxLjgyLDMxLjgyLDAsMCwxLTcuNiwyLjY1QTQ4LjU5LDQ4LjU5LDAsMCwxLDEyNzAuNDMsMTk0Ljg0Wk0xMjY4LjUyLDE1M2E4LjYsOC42LDAsMCwwLTYuNzUsMi43M2MtMS42MywxLjgyLTIuNTYsNC40MS0yLjgsNy43NWgxOWMtLjA2LTMuMzQtLjk0LTUuOTMtMi42Mi03Ljc1QTguODksOC44OSwwLDAsMCwxMjY4LjUyLDE1M1oiLz48cGF0aCBkPSJNMTM2My44MywxOTRoLTM3LjQxVjEyOWgzNy40MXYxMS4yOWgtMjMuNjR2MTQuMjZoMjJ2MTEuMjloLTIydjE2Ljc1aDIzLjY0WiIvPjxwYXRoIGQ9Ik0xNDEwLDE3OS4ycTAsNy42NS01LjMxLDExLjY0dC0xNS44OSw0YTQ5Ljg0LDQ5Ljg0LDAsMCwxLTkuMjQtLjczLDM0LjgsMzQuOCwwLDAsMS03LjE1LTIuMTZWMTgwLjc2YTQ3LjU3LDQ3LjU3LDAsMCwwLDguNTEsMywzNC40LDM0LjQsMCwwLDAsOC4zMywxLjJjNC45MiwwLDcuMzctMS40Miw3LjM3LTQuMjZhMy41NSwzLjU1LDAsMCwwLTEtMi42LDE0LjIyLDE0LjIyLDAsMCwwLTMuMzgtMi4yN2MtMS42LS44NC0zLjczLTEuODMtNi40LTNhMzkuODEsMzkuODEsMCwwLDEtOC40Mi00LjQ1LDEyLjU2LDEyLjU2LDAsMCwxLTMuOTEtNC42OCwxNS42LDE1LjYsMCwwLDEtMS4yMi02LjUxLDExLjgyLDExLjgyLDAsMCwxLDUuMTMtMTAuMjVxNS4xMy0zLjYxLDE0LjU1LTMuNjJhNDEuNDMsNDEuNDMsMCwwLDEsMTcuNDcsMy45MWwtNC4wOSw5Ljc4YTc0LjI2LDc0LjI2LDAsMCwwLTctMi42MiwyMiwyMiwwLDAsMC02LjYyLTFjLTQsMC02LDEuMDktNiwzLjI1YTMuODIsMy44MiwwLDAsMCwxLjk0LDMuMTUsNTIuMjIsNTIuMjIsMCwwLDAsOC40Niw0LDM5LjUxLDM5LjUxLDAsMCwxLDguNTMsNC40LDEzLDEzLDAsMCwxLDQsNC43MUExNC40NSwxNC40NSwwLDAsMSwxNDEwLDE3OS4yWiIvPjxwYXRoIGQ9Ik0xNDU0LjA5LDE3OS4ycTAsNy42NS01LjMxLDExLjY0dC0xNS44OSw0YTQ5Ljg0LDQ5Ljg0LDAsMCwxLTkuMjQtLjczLDM0LjgsMzQuOCwwLDAsMS03LjE1LTIuMTZWMTgwLjc2YTQ3LjU3LDQ3LjU3LDAsMCwwLDguNTEsMywzNC40LDM0LjQsMCwwLDAsOC4zMywxLjJxNy4zNywwLDcuMzctNC4yNmEzLjU1LDMuNTUsMCwwLDAtMS0yLjYsMTQuMjIsMTQuMjIsMCwwLDAtMy4zOC0yLjI3Yy0xLjYtLjg0LTMuNzMtMS44My02LjQtM2EzOS44MSwzOS44MSwwLDAsMS04LjQyLTQuNDUsMTIuNTYsMTIuNTYsMCwwLDEtMy45MS00LjY4LDE1LjYsMTUuNiwwLDAsMS0xLjIyLTYuNTEsMTEuODIsMTEuODIsMCwwLDEsNS4xMy0xMC4yNXE1LjEzLTMuNjEsMTQuNTUtMy42MmE0MS40Myw0MS40MywwLDAsMSwxNy40NywzLjkxbC00LjA5LDkuNzhhNzQuMjYsNzQuMjYsMCwwLDAtNy0yLjYyLDIyLDIyLDAsMCwwLTYuNjItMWMtNCwwLTYsMS4wOS02LDMuMjVhMy44MiwzLjgyLDAsMCwwLDEuOTQsMy4xNSw1Mi4yMiw1Mi4yMiwwLDAsMCw4LjQ2LDQsMzkuNTEsMzkuNTEsMCwwLDEsOC41Myw0LjQsMTMsMTMsMCwwLDEsNCw0LjcxQTE0LjQ1LDE0LjQ1LDAsMCwxLDE0NTQuMDksMTc5LjJaIi8+PHBhdGggZD0iTTE0ODUuNDksMTk0Ljg0cS0xMiwwLTE4Ljc1LTYuNjJUMTQ2MCwxNjkuNDdxMC0xMi40OCw2LjI0LTE5LjMxdDE3LjI2LTYuODJxMTAuNTMsMCwxNi40LDZ0NS44NiwxNi41OHY2LjU3aC0zMnEuMjEsNS43NywzLjQyLDl0OSwzLjI1YTM3LjQ0LDM3LjQ0LDAsMCwwLDguNDktLjk0LDQyLjI3LDQyLjI3LDAsMCwwLDguMzUtM3YxMC40OGEzMS43NCwzMS43NCwwLDAsMS03LjU5LDIuNjVBNDguNTksNDguNTksMCwwLDEsMTQ4NS40OSwxOTQuODRaTTE0ODMuNTgsMTUzYTguNiw4LjYsMCwwLDAtNi43NSwyLjczLDEyLjYsMTIuNiwwLDAsMC0yLjgsNy43NWgxOWMwLTMuMzQtLjkzLTUuOTMtMi42Mi03Ljc1QTguODgsOC44OCwwLDAsMCwxNDgzLjU4LDE1M1oiLz48cGF0aCBkPSJNMTU2MS4wNywxOTRoLTEzLjU1di0yOWMwLTMuNTktLjY0LTYuMjctMS45MS04LjA3cy0zLjMtMi42OC02LjA5LTIuNjhxLTUuNjgsMC04LjIyLDMuNzl0LTIuNTMsMTIuNlYxOTRoLTEzLjU1VjE0NC4yOGgxMC4zNWwxLjgyLDYuMzVoLjc2YTE0LjMxLDE0LjMxLDAsMCwxLDYuMjQtNS40NCwyMS4yMywyMS4yMywwLDAsMSw5LTEuODVxOC42NywwLDEzLjE1LDQuNjl0NC40OSwxMy41M1oiLz48cGF0aCBkPSJNNDY1LjczLDI0Mi44NXYzMy43MnEwLDguOTEtNS4zOCwxNHQtMTQuNzksNS4wOXEtOS40LDAtMTQuNTYtNS4xM3QtNS4xNS0xNC4xMVYyNDIuODVoNi4wNnYzNHEwLDYuNTIsMy41NiwxMFQ0NDYsMjkwLjM2cTYuNiwwLDEwLjE2LTMuNTF0My41Ni0xMC4wN1YyNDIuODVaIi8+PHBhdGggZD0iTTUwNi44MywyOTVWMjY5LjY5YzAtMy4xOS0uNzItNS41Ni0yLjE3LTcuMTNzLTMuNzItMi4zNS02LjgxLTIuMzVxLTYuMTQsMC05LDMuMzFUNDg2LDI3NC40NlYyOTVINDgwLjFWMjU1Ljg5aDQuODFsMSw1LjM1aC4yOWExMi4xMywxMi4xMywwLDAsMSw1LjA5LTQuNDcsMTYuNTcsMTYuNTcsMCwwLDEsNy4zMS0xLjU5cTcuMDYsMCwxMC42MiwzLjQxdDMuNTcsMTAuODhWMjk1WiIvPjxwYXRoIGQ9Ik01MjUuODYsMjQ1LjMxYTQsNCwwLDAsMSwxLTMsMy43MSwzLjcxLDAsMCwxLDUsMCwzLjg5LDMuODksMCwwLDEsMSwzLDMuOTMsMy45MywwLDAsMS0xLDMsMy42MywzLjYzLDAsMCwxLTUsMEE0LDQsMCwwLDEsNTI1Ljg2LDI0NS4zMVpNNTMyLjI4LDI5NWgtNS45MlYyNTUuODloNS45MloiLz48cGF0aCBkPSJNNTU0Ljg0LDI5NSw1NDAsMjU1Ljg5aDYuMzVsOC40MSwyMy4xN2ExMDkuODMsMTA5LjgzLDAsMCwxLDMuMzUsMTAuNTVoLjI5YTc5LjcxLDc5LjcxLDAsMCwxLDIuNDctNy44MnEyLjA4LTUuOTQsOS4zNi0yNS45aDYuMzRMNTYxLjc2LDI5NVoiLz48cGF0aCBkPSJNNjAwLjgyLDI5NS42N3EtOC42NiwwLTEzLjY3LTUuMjd0LTUtMTQuNjVxMC05LjQ1LDQuNjUtMTVhMTUuNDksMTUuNDksMCwwLDEsMTIuNS01LjU2cTcuMzQsMCwxMS42Miw0LjgzdDQuMjgsMTIuNzR2My43NUg1ODguMjdjLjEyLDQuNTgsMS4yOCw4LjA3LDMuNDgsMTAuNDRzNS4yOSwzLjU3LDkuMjksMy41N2EzMS40MywzMS40MywwLDAsMCwxMi40Ny0yLjY0djUuMjdhMzEuNDksMzEuNDksMCwwLDEtNS45MywxLjk1QTMzLjYzLDMzLjYzLDAsMCwxLDYwMC44MiwyOTUuNjdabS0xLjYtMzUuNTNhOS42OSw5LjY5LDAsMCwwLTcuNTEsMy4wNiwxNC4xNiwxNC4xNiwwLDAsMC0zLjI5LDguNDloMjAuNDJxMC01LjYtMi40OS04LjU4QTguOCw4LjgsMCwwLDAsNTk5LjIyLDI2MC4xNFoiLz48cGF0aCBkPSJNNjQ0LjU2LDI1NS4xOGEyMi42OCwyMi42OCwwLDAsMSw0LjY2LjQzbC0uODEsNS40OWEyMC4wNiwyMC4wNiwwLDAsMC00LjI4LS41NCwxMC40MywxMC40MywwLDAsMC04LjExLDMuODUsMTQsMTQsMCwwLDAtMy4zNyw5LjU5djIxaC01LjkyVjI1NS44OWg0Ljg5bC42Nyw3LjI0aC4yOWExNy4xNSwxNy4xNSwwLDAsMSw1LjI0LTUuODhBMTEuNzgsMTEuNzgsMCwwLDEsNjQ0LjU2LDI1NS4xOFoiLz48cGF0aCBkPSJNNjgzLjE5LDI4NC4zYTkuNzcsOS43NywwLDAsMS00LjA2LDguNDFxLTQuMDcsMy0xMS40MSwzLTcuNzcsMC0xMi4xMi0yLjQ2di01LjQ5YTI4LjkxLDI4LjkxLDAsMCwwLDYsMi4yNSwyNSwyNSwwLDAsMCw2LjIyLjgyLDE0LDE0LDAsMCwwLDcuMTItMS40OCw1LjA5LDUuMDksMCwwLDAsLjUyLTguNDFxLTItMS42Mi03LjcyLTMuODNhNDIuMjMsNDIuMjMsMCwwLDEtNy43NS0zLjU1LDEwLjY2LDEwLjY2LDAsMCwxLTMuNDItMy40NCw4LjkzLDguOTMsMCwwLDEtMS4xMi00LjYsOC43OCw4Ljc4LDAsMCwxLDMuODgtNy41NHEzLjg5LTIuNzYsMTAuNjYtMi43NmEzMS4xNSwzMS4xNSwwLDAsMSwxMi4zMywyLjU3bC0yLjEsNC44MWEyOC4yLDI4LjIsMCwwLDAtMTAuNjYtMi40MiwxMi4yMywxMi4yMywwLDAsMC02LjM0LDEuMzIsNC4wNiw0LjA2LDAsMCwwLTIuMTQsMy42Myw0LjQyLDQuNDIsMCwwLDAsLjgsMi42Nyw4LjA3LDguMDcsMCwwLDAsMi41OCwyLjExLDU3LjMyLDU3LjMyLDAsMCwwLDYuODUsMi44OHE2Ljk1LDIuNTMsOS4zOSw1LjFBOSw5LDAsMCwxLDY4My4xOSwyODQuM1oiLz48cGF0aCBkPSJNNjkzLjc4LDI0NS4zMWEzLjkxLDMuOTEsMCwwLDEsMS0zLDMuNDYsMy40NiwwLDAsMSwyLjQ5LS45NCwzLjQ5LDMuNDksMCwwLDEsMi40NiwxLDMuODYsMy44NiwwLDAsMSwxLDMsMy45LDMuOSwwLDAsMS0xLDMsMy40MywzLjQzLDAsMCwxLTIuNDYsMSwzLjM3LDMuMzcsMCwwLDEtMi40OS0xQTQsNCwwLDAsMSw2OTMuNzgsMjQ1LjMxWk03MDAuMTksMjk1aC01LjkxVjI1NS44OWg1LjkxWiIvPjxwYXRoIGQ9Ik03MjYuODIsMjkwLjc5YTIwLDIwLDAsMCwwLDMtLjIzLDIzLjM1LDIzLjM1LDAsMCwwLDIuMzItLjQ4djQuNTJhMTAuOCwxMC44LDAsMCwxLTIuODQuNzcsMjEuNDEsMjEuNDEsMCwwLDEtMy4zNy4zcS0xMS4zMywwLTExLjMzLTExLjk0VjI2MC40OUg3MDl2LTIuODVsNS42LTIuNDYsMi40OS04LjM0aDMuNDN2OWgxMS4zM3Y0LjZINzIwLjU1djIzYTcuODksNy44OSwwLDAsMCwxLjY3LDUuNDJBNS44NCw1Ljg0LDAsMCwwLDcyNi44MiwyOTAuNzlaIi8+PHBhdGggZD0iTTczNS4yMywyNTUuODloNi4zNGw4LjU2LDIyLjI4YTg0LDg0LDAsMCwxLDMuNDksMTFoLjI5Yy4zMS0xLjIyLDEtMy4yOSwxLjk0LTYuMjJzNC4yMS0xMiw5LjY4LTI3LjA4aDYuMzRsLTE2Ljc5LDQ0LjQ5cS0yLjQ5LDYuNTgtNS44Miw5LjM2YTEyLjQyLDEyLjQyLDAsMCwxLTguMTgsMi43NiwyMy40OCwyMy40OCwwLDAsMS01LjM1LS42MXYtNC43NGEyMC4zMiwyMC4zMiwwLDAsMCw0LjM4LjQzcTYuMSwwLDguNy02Ljg0bDIuMTctNS41N1oiLz48cGF0aCBkPSJNODQwLjU2LDI5NUg4MzQuNVYyNzAuNDRIODA3LjA1VjI5NUg4MDFWMjQyLjg1aDYuMDZWMjY1SDgzNC41VjI0Mi44NWg2LjA2WiIvPjxwYXRoIGQ9Ik04ODkuMTQsMjc1LjM5cTAsOS41Ni00LjgxLDE0LjkyVDg3MSwyOTUuNjdhMTcuNjEsMTcuNjEsMCwwLDEtOS4zLTIuNDYsMTYuMjksMTYuMjksMCwwLDEtNi4yOC03LDI0LjY5LDI0LjY5LDAsMCwxLTIuMi0xMC43N3EwLTkuNTYsNC43Ny0xNC44OHQxMy4yNi01LjMzcTguMjEsMCwxMyw1LjQ1VDg4OS4xNCwyNzUuMzlabS0yOS43NiwwcTAsNy40OSwzLDExLjQxdDguOCwzLjkycTUuODIsMCw4LjgzLTMuOWMyLTIuNjEsMy02LjQxLDMtMTEuNDNzLTEtOC43NC0zLTExLjMxLTUtMy44Ny04LjktMy44Ny02Ljc5LDEuMjctOC43NywzLjgxUzg1OS4zOCwyNzAuMzUsODU5LjM4LDI3NS4zOVoiLz48cGF0aCBkPSJNOTI2LjE3LDI4NC4zYTkuNzcsOS43NywwLDAsMS00LjA2LDguNDFxLTQuMDcsMy0xMS40MSwzLTcuNzcsMC0xMi4xMi0yLjQ2di01LjQ5YTI4LjkxLDI4LjkxLDAsMCwwLDYsMi4yNSwyNSwyNSwwLDAsMCw2LjIxLjgyLDE0LjA2LDE0LjA2LDAsMCwwLDcuMTMtMS40OCw1LjA5LDUuMDksMCwwLDAsLjUyLTguNDFxLTItMS42Mi03LjcyLTMuODNhNDIuMjMsNDIuMjMsMCwwLDEtNy43NS0zLjU1LDEwLjY2LDEwLjY2LDAsMCwxLTMuNDItMy40NCw4LjkzLDguOTMsMCwwLDEtMS4xMi00LjYsOC43OCw4Ljc4LDAsMCwxLDMuODgtNy41NHEzLjg5LTIuNzYsMTAuNjYtMi43NmEzMS4xNSwzMS4xNSwwLDAsMSwxMi4zMywyLjU3bC0yLjEsNC44MWEyOC4yLDI4LjIsMCwwLDAtMTAuNjYtMi40MiwxMi4yMywxMi4yMywwLDAsMC02LjM0LDEuMzIsNC4wNiw0LjA2LDAsMCwwLTIuMTQsMy42Myw0LjQyLDQuNDIsMCwwLDAsLjgsMi42Nyw4LDgsMCwwLDAsMi41OSwyLjExLDU2LjIyLDU2LjIyLDAsMCwwLDYuODQsMi44OHE2Ljk1LDIuNTMsOS4zOSw1LjFBOSw5LDAsMCwxLDkyNi4xNywyODQuM1oiLz48cGF0aCBkPSJNOTU1LjQzLDI5NS42N2ExNywxNywwLDAsMS03LTEuNCwxMy4xOCwxMy4xOCwwLDAsMS01LjMtNC4zM2gtLjQyYTUzLjI3LDUzLjI3LDAsMCwxLC40Miw2LjQ4VjMxMi41aC01LjkxVjI1NS44OWg0LjgxbC44Miw1LjM1aC4yOGExMy43MSwxMy43MSwwLDAsMSw1LjMxLTQuNjMsMTYuMTYsMTYuMTYsMCwwLDEsNi45NS0xLjQzcTcuNzcsMCwxMiw1LjMxdDQuMjIsMTQuOXEwLDkuNjMtNC4yOSwxNC45NVQ5NTUuNDMsMjk1LjY3Wm0tLjg1LTM1LjQ2cS02LDAtOC42NiwzLjMxdC0yLjc1LDEwLjU1djEuMzJxMCw4LjI0LDIuNzUsMTEuNzh0OC44LDMuNTVhOS4xNSw5LjE1LDAsMCwwLDcuOTMtNC4xcTIuODgtNC4xLDIuODctMTEuM3QtMi44Ny0xMS4yMUE5LjQzLDkuNDMsMCwwLDAsOTU0LjU4LDI2MC4yMVoiLz48cGF0aCBkPSJNOTgzLDI0NS4zMWEzLjkxLDMuOTEsMCwwLDEsMS0zLDMuNywzLjcsMCwwLDEsNC45NSwwLDMuODYsMy44NiwwLDAsMSwxLDMsMy45LDMuOSwwLDAsMS0xLDMsMy40MywzLjQzLDAsMCwxLTIuNDYsMSwzLjM4LDMuMzgsMCwwLDEtMi40OS0xQTQsNCwwLDAsMSw5ODMsMjQ1LjMxWk05ODkuMzcsMjk1aC01LjkyVjI1NS44OWg1LjkyWiIvPjxwYXRoIGQ9Ik0xMDE2LDI5MC43OWExOS44LDE5LjgsMCwwLDAsMy0uMjMsMjIuMTgsMjIuMTgsMCwwLDAsMi4zMi0uNDh2NC41MmExMC42OSwxMC42OSwwLDAsMS0yLjg0Ljc3LDIxLjM5LDIxLjM5LDAsMCwxLTMuMzYuM3EtMTEuMzQsMC0xMS4zNC0xMS45NFYyNjAuNDloLTUuNTl2LTIuODVsNS41OS0yLjQ2LDIuNS04LjM0aDMuNDJ2OWgxMS4zM3Y0LjZoLTExLjMzdjIzYTcuOTQsNy45NCwwLDAsMCwxLjY3LDUuNDJBNS44NCw1Ljg0LDAsMCwwLDEwMTYsMjkwLjc5WiIvPjxwYXRoIGQ9Ik0xMDU0LjYzLDI5NWwtMS4xOC01LjU2aC0uMjhhMTYuMzIsMTYuMzIsMCwwLDEtNS44Myw1LDE3Ljc0LDE3Ljc0LDAsMCwxLTcuMjUsMS4zcS01LjgyLDAtOS4xMS0zdC0zLjMtOC41MnEwLTExLjg0LDE4LjkzLTEyLjRsNi42My0uMjJ2LTIuNDJxMC00LjYxLTItNi43OXQtNi4zMy0yLjE5YTI1LjczLDI1LjczLDAsMCwwLTExLDNsLTEuODEtNC41M2EyOC4yNiwyOC4yNiwwLDAsMSw2LjMyLTIuNDYsMjcuNjIsMjcuNjIsMCwwLDEsNi45LS44OXE3LDAsMTAuMzUsMy4xdDMuMzcsOS45NVYyOTVabS0xMy4zNy00LjE3cTUuNTQsMCw4LjY4LTNjMi4xLTIsMy4xNi00Ljg1LDMuMTYtOC40OHYtMy41M2wtNS45Mi4yNXEtNy4wNy4yNS0xMC4xOCwyLjE5YTYuNjEsNi42MSwwLDAsMC0zLjEyLDYsNi4xLDYuMSwwLDAsMCwxLjk1LDQuODlBOC4wNyw4LjA3LDAsMCwwLDEwNDEuMjYsMjkwLjc5WiIvPjxwYXRoIGQ9Ik0xMDc4LjU4LDI5NWgtNS45MlYyMzkuNWg1LjkyWiIvPjwvZz48ZyBpZD0iU2lnX0dyYXUiIGRhdGEtbmFtZT0iU2lnIEdyYXUiPjxnIGNsYXNzPSJjbHMtMiI+PGcgY2xhc3M9ImNscy0zIj48ZyBjbGFzcz0iY2xzLTQiPjxnIGNsYXNzPSJjbHMtNCI+PGltYWdlIHdpZHRoPSI1NTMiIGhlaWdodD0iNTUzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3OS43NSA4MC4wNCkgc2NhbGUoMC40OCkiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBaWtBQUFJcENBWUFBQUJuazZnZUFBQUFDWEJJV1hNQUFCY1JBQUFYRVFIS0p2TS9BQUFnQUVsRVFWUjRYdXk5UzdObHgxRTJuTWV5Yk1tV1pGdTJaTXVXell5QWVMOEk0TU1RZ2NBTWllOGxnaUFZRU1FdjRBOHdlUDhISXhnellBaEVBQzhHWStPcjdoZnJZaVFiMlpiVVVyZlU2cHU2ZGVsV3EvTWJyRlZWbVZsNXE3WFhQbjFPbjVXS2MrckpKNS9NeXFxOTlsclYrNXhXSHlBaXdtYWJiYmFaWXBuYmc5UkkvMk1mKzFpcVRqRkVoTnR1dXkyU2JiYlpaaWZBRHJaRHltYWJuUnhiOG5ZZnpiSDBJN3gzOFBuNHh6OXVjcHR0dHRtdFpkc2haYlBOVG9qdDhsWWZ5UjA1akZoODlPbE14SDNzWXgrRDIyNjdyZnEzM1hZYmZPeGpIK3YwbTIyMjJkRzI3WkN5MldZbnlKYSszVWZ5Umc0akZyL2trSkxSRk80VG4vZ0VJQ0FBQW56aUU1L29OSnR0dHRuUnNPMlFzdGxtSjh5V3Z1V3plU09IRVl2UGNKR2Y0UXBHbU1aUGZ1S1RERysyMldZMzE3WkR5bWFiblRCYitwYlA1bzBjUml3K09vQmtjalNPSFZEbVQxSlVQSUYyWVBua2RHRDUrRzBmMzM3L1piUE5EdEcyZDl0bW14MlNXUS9wZzRNRGxkK1hIUndjcEE4YzFKYm0zU3hiczljUFB2aWdPUWh3Mjhkdmc5cy9manQ4L09QYm9XV3p6ZlpwMjd0cnM4MVd0dm9qQk1UVUFTU3JXOU9PMjRGakwrWXRuM3lLb3RuMTY5ZmgrdlhyVFljQWQ5NTVKd0MwY2JQTk50dmR0aC8zYkxiWkRrWVBKSnFOSEQ1R3RHdlkwcmQrbE9mRk16K1MwYmhSUDZPcHIxM3dveDZKMVJ4U3V0UzkvZmJwazViYmI3OGRici85ZHRoc3M4M0diZnNrWmJQTkJvd2VTZ3BlNjNCeDJKK29uT1JQVTl4MUIxdmlmY0pDWXg5KytDRmN1M2F0OHAvKzFLY0JBT0JUbi9xVW1ydlpacHYxdG4yU3N0bG1nZDI0Y1NOOG1GdUhpeVdIamlVNXUxaTBObW1SL2poOGtzS3c4YWxJNWhPV01LZGdaZTVQZi9yVGNQdnR0MjkvQlhxenpSemJQa25aYkROaDVWT1NHemR1TVA2d0RnOXJmMEp6M0N3NmdFU0hKTTEyK2VTa0d0V05Zc1d1dkh1bGFzcGg1YTY3N3ZLVE50dnNoTm4yU2NwbW04SDBhVW41eEdUSnB5SkxjaksyYTM3V1JtNERvNStVUlBIb0VETHFSeG8zTm4vNnNmTW5KeGxzZmJLRENIZmZmVGQ4NGhPZjJENWwyZXpFMi9aSnltWW4xajc2NktQNnFjbFJOZS9RdEthdDlmc3BhOVU1TE5NT0tJUllqaTNMYUFEZzh1WEx0YmR5WUNuL3I1Yk5OanRKdGgxU05qdFJWZzRtNVVjNWgzRUEyTlVPNjZCeXE5cE5PVFJabjZKQWdKVmU1WUhsazUvODVIWmcyZXpFMkhaSTJleVd0NDgrK3FqK09FYys3UGQ5QUZpci9scDFQRnZqVTVCZDgyK3FEYmFlT1hTc2JlKzg4MDdGOTl4enozWmcyZXlXdCsyUXN0a3RhVGR1M0lEcjE2OHZlbWdleG9GZ2laVzE3TE8zTlE0cU45dTgvcjNmVGVGQ0hiT2N0YlpKcVpQcDg5S2xTeFhmYzg4OWNNY2RkMndIbHMxdU9kdCtjWGF6VzhiS3B5WFhyMSt2blBaQWwxeEdZM0c3eHBiYVBtcG1id1haUTBBbVB1cG5OSjZmd3VKM1UwWnpvbCsrN1hCeE0vTUUrSk9mL0NUY2NjY2Q4Sm5QZkFZMjIreFdzTzJRc3RteHQrdlhyOWNmNlN3NWdHUTBhL05yMkZxMVIyOEJrWDdrRUxPMkw3bGREeXhXTFBXM2R6S0hGVEpWcHA4NmZ4UUhoTTkrNXJOd3h4MTN3QjEzM0FHYmJYWmNiZnR4ejJiSDBtN2N1QUVmZmZRUis5UkVNOFQ0UnpjWnpWSTc2cldqQThkeHM1RURVc2JZQVFEeStTTmFBSzZQRGlDV3NUa1I0T0xGaTRDQWNNY243NEE3N3J3RFB2Zlp6OW5KbTIxMlJHMzdKR1d6WTJVZmZ2Z2hmUGpoaDlYUGZBb1MrYnR5SGgvRjFyQWw5WGQ1MjBlNVZqejYxR1BmdnZmQXoraTZBd3VTZzhFSXJpN0JtVGtWWEVlbHJ0YkRIWGZjQVovNzNPZmd6anUyZndSeHMrTmgyeWNwbXgxNSsraWpqK0RERHovcy9nK3dOOE53aFU4djFyYnlvTXIwRlIwd01uWndjRHgrdVRiYm8zc1FzVEF0N1V5akhsYUExeGo5RkVWZFYyNnA4UDc3NzhQNzc3OFBpQWozM25zdjNQdTVlNk9VelRhN3FiWjlrckxaa2JWeU9Qbm9vNDhxdDlhbklwRnZjUlovTXo5Sm9lYk50ZVpiUGFxbHhUUGNtcjczWU0vb290ODFzYkI2NktBOE5tMVhJOVBYakZYTzY0ZGcydGU5OTk0TDk5NjdIVlkyTzVxMkhWSTJPM0oyN2RxMStxL0hMajFNUkhtUjcvRWpXby9mbDhuNTl2RVdqMm91T1pCa05DTitCbWQxTy8xNGgrTHFFcHc4Z0poYXBhNTdNS0c1NUxCeTU1MTN3dWMvLzNtNDg4N3RSMEdiSFIzYkRpbWJIUm03ZHUwYVhMMTZOVHhBUkw3R1ozSjI0WmJ3KzdTRGcvMytTTWFyblRsOFdQd3VmamEyUzA3Nk1HTFYwclRGVGZTb0hreVdIbGFNWHU3ODFIUlkrZFNkbjRMTk5ydlp0aDFTTnJ1cDl0RkhIOEhWcTFmWmozUUEvRU5GOXVBUUhVd2kzK0lzZmtSN0sxajI0SkhsMXZTek1STXJEM3dMMXdlOXJKRTVtRkFjSFV4R0Rpc1RxTml0NS9UMytjOS9Icjd3aFMvQVpwdmRMTnNPS1p2ZEZMdCsvVHBjdTNhdC9oWGk2TUF3Nm1jMGtXOXhGaitpM2FlVitmYjkxajR1aDVTZER5L1dvV0xHMGFIQU93U29oNHpvc0tMbGpQWTEyTk1YdnZDRjdiQ3kyVTJ4N1pDeTJhSGE5ZXZYNGVyVnEzRDkrdlh3a0xDckw3bElQM0xJR05GNi9OcEc1OW4zVy9zb0hWTG9nN1dMSlhCVzV4MEExTU1BeFpxMnVnUkhoNVNsQnhPbEJzT0pYdTY3Nzc3dHNMTFpvZHAyU05uc1VPejY5ZXZ3d1FjZmRJY1Q3NkFRSFNJaVA2T0pmSXV6K0JIdDJpYm4yUGRiZTVkRHloSk45cEN5NU1DUzBibWZxTkFjYkp5S3RSclpnd1NOei9uRGg1VVYrcnZ2dnZ2Z3Z2dnVnODAyMjdkdGg1VE45bXJYcjErSDk5OS9QLzNYaUtORHcwaXV4bzM2Rm1meDNtRmtud2NWcmZhKzM5cVpnOFl1WFBaUUl2MWREeXpXdk5FYzNpY1hORjZ4VmlzNm1EaTl1QWNucFVhNko2ZS8rKysvZnp1c2JMWlgydzRwbSszRnl1SEUrc2Yrc2dlVDZCQVIrWktMOUdzY1NFYjVYYzJxdSsrM2R1YWdzUXUzK0pBeWVQaElZK3RnTUJFMkorSmRyZVRCaEhGMHJxZ25vNGJiWDJZL0NMN3Z2dnZnL3Z2dmg4MDJXOXUyUThwbXE5cUhIMzdJRGlmWkEwSld0MjkvOUlBeGNuaUpZa3NzcXJldnQ3ZFZOM1A0eUhMcFE0bU1KUjZxYXgxWXVrTkF3RWxNZGRHODJpRWlkVERST0JIdmFnbk96Qlg0L3Z2djN3NHJtNjFxMnlGbHMxV3NIRTdLdjZ1VE9ZQ01IQmF5c1gzNEZyY212OFF5dGZiMTl0NzNJZVVvSDFpOFQwOHlCNU9SUTBCNFdLSHpKK2FNNGwzOTVBRksrdmZmZno5ODhZdGZoTTAyMjlXMlE4cG1POW1ISDM0STc3MzNYbmM0T1VvSGt4R3Q1bnY4aURZVHkxcTJ4ajdlM2w3TjZQQmhjU1ArUGc4cEpyWWU0dlRoTDhkSllPSnVEdWVRb2g0Y3JMa29wOVJpMkZpSHFVL2k0bi94aTEvY0RpdWI3V1FmaXdTYmJXYlplKys5QnhjdlhtVC9Lbkd4N0kyTTJrak0wMHFMY2lQZnN4RnRzU1U1MUxJSGxKTnU3RUVOdSsyNVp0cUQzUkYzMk9yUGZSOVlFMW0wVmt0UVd2OVdQNlB2NVROdm5vR1hYMzRacmx5NVltbzMyOHl6N1Y5QjNtelkzbjMzWFhqdnZmZlVHR0w4cndSVGphZlAxQ29tdFNPNSs3Qjl6YitQbWtmZHZBUEdrc1BIb3NPTGNzam9KWmpTVGFGWVd4NzBURXNQT0tpc1JYQTFaaHhXdFB3UzYrU0pRd25GcGQ2VksxZmc4cFhMY05lbjc0SXZmZWxMY05kZGQxbGxOdHVzcysyVGxNM1NkdTNhTmJoNDhTSzgrKzY3cVQ5UlpUUkxkUm5maTBXZlptanhLRWZhU0Q4Wk93b0hsQ1Y5ajlyU1EwbjZ3R0ZZSnA5cERMbjVDUWs5QkZoNjc1cEo5TWNzMFYvUjBkNHkvVmp2V2FZWDlhNWN1UUkvKzUrZndaa3paMkN6emJLMi9VN0tacUZkdTNZTjNuMzNYYmgyN2RyT3YydVN3V3ZGZHRHT2FKYndVWXhhVnFmWjJtL3ZxRjcyY09jZEd1WERYSDJBS3I2RjFSb1JOdnFUbnhKbzNHaDlEYXNjclQ4Uk5oZlVzdXBNYnQrbmVSQ2hHcXVHZ2hFUUhuamdBWGpnU3cvQVpwdDV0aDFTTm5QdC9Qbno2Y09KOVVEUGFFWmkwY0ZocVhhSkgvRzd4REx4eU5aK2UwZjFNZ2NTeVMwOWxFZy9lakJLREFEbXd6ZkM2Y1BLUktUbTlRNG1HdWNkVmtZT0pxazlITmticTRhY2I4NzUxVi85VmJqN3JydGhzODAwMnc0cG02bDI1Y29WOXN0dTJRZi9MbmlwYmtRN1VtZEVzNFNQWXRTeU9zM1dlb3RuNmtRSEVvMWJla2l4c0ZvandBQ2dQbkFwemh4V01uTkZELy9zZzk4OFpFUjF0UnlqdGxYTHhWYTlpVkR4WFhmZEJWOSs0TXR3OTkzYllXVXpidHZ2cEd6RzdOcTFhM0R1M0RtNGZQbHk2b2JrbWFYTDF2SjBucC90VDdOTWJrWkRMYnRHejdLNjQyNzBUOWtqc1YzTnFwM2VkMDFHT1FzWFNwbUg5VlNmNjZqUFJmVTBEWHV1QmZrY1htMEFleStzR2wwOWJiN1pMbCsrREMvOTlDVjQ0NDAzWUxQTnFHMmZwR3hXN2ZMbHkzRDU4bVVBaUQvUnlINWFrY0ZyNk5hS2FmNVNUVGFXaVZNYjBRSU1QR2dkeTlaUUg3WWpCMHp4WU9zZWVpM0FIc29XVm11TTRMazM3UkRzNlRLMTFieG9uaG16Y1FwVTdOVlNjNHphbERQckVheStWa0dQRE0veHUrKytHNzd5NWE5c242cHNCZ0RiSVdVekFMaDY5U3E4L2ZiYkFKQTdMR2dIbGV3aElJUFgwTzBTeTNLUkwyMlhRNHhtMlp3MTN1TFpHcU9IbE5TaHhIdndTZC9CdFlhR293ZXd3MlVQTlNOeFRUdDBXTkU0V3QvSTZlWVo2ZGZxYnlMOGZpaWVoN3Z2dmh0KzdkZCtEVFk3MmJZZFVrNjRuVDE3RnE1ZXZSb2VDcUw0RXJ5R3pvdGxkUmwvcVNZYnk4UXRpL0oyZll1UDVudUhFdWxuRHlubW9RUkUvY1NEc1dJNkR5MlJPWmhvc2JtTytjQ25PSGx3OFE0bUhVZHJCQnl0azltWDZKQ3k1SUJDc1R5ZzBIcS85dXUvQnZmY2ZROXNkakp0TzZTY1VMdDY5U3E4OWRaYjRZSEU0dmVCMTlCNXNhek80cFpxc3ZFb056SXJmOWUzK0VpK3BsMXlLSkUrUFpSSWY4MURpdlpnVGg4b25OaXVjZSt3a2pwNDBMcEdqbGE3bXp2cTNjcHorZ294QXR4enp6M3c2Ny8rNjdEWnliUHRrSExDN09yVnEzRHAwaVc0ZXZWcTVkWThuQ3c1Rk95YXN6UVdIVENXSGtwMk9ZaEU4Y2kwL0YzZjRxUDVVbitZaHhRVml3ZWxpd2NQSDY0K1dUZURSdzRyMFdFa09xQjBPTm03VzJzQ0tyYjYxZW84K0pVSDRjRUhINFROVG81dGg1UVRaSmN1WFlKTGx5NVZQenBZUkRpS1ovSE4waTA1Y0dRMEZyZHJiTVJvblYzZTRxTzVtdjZtSEZLTUIyTEZ4a093NG9XSGxleGhJK0pZWE9sTEhsQTZiaUpjTHFwRDU2TTR0WC9XSEJQUjQyUU5nT2xUbFFjZmZCRHV1V2Y3RWRCSnNPMnZJSjhRZS9QTk4rSGl4WXZ4UTJRQVIvRXNscGJWVWN2cXFNbWNUSTJNWmhkYnF6NGlybFpyeE9RaGl4MHVoSzBlaTVhN0lKNjlUcjFZOUo3VGpNV3hERDNYWE9RYzZweWJJM1IwUHEyZlRodmdvbGNQSzRtOFlwY3VYWUlYWG5nQlRwMTZEVGE3OVcwN3BOemk5c0VISDhBdmYvbExlUC85OTd0WTVnQXhjck9OdEo2bDlmUmVtYzBoRnVWa0RpNFpqV2VqK2wxc2w3bDJ5UzEyQU90OE1tUloyR08wQkNYdXZlYVo2OEd5U0JmV3hqSmdHMFZLOTZrRktOaklrZHJLWmQ3ak5EL0FSVzhkVmdwWG9USG5xNisrQmkrODhBSnNkbXZiOXVPZVc5aE9uejROSDN6d3djNC9xb25pUzdVdWhnT2d6N2QwYkJCbi9Jd21rNU9OWmVJamRuQndFRDRnTlZ1U0F5QWVLdUxocEQ0UUZWOCtMSzAvMWF2WWVnQVdUT2NyV0ttekJqZXFOem1sMXpyT01XMXRpOWMrRWcvdzhHdGhZWEU5TmgvaGYvMnYvd2MrODVuUHdHYTNubTJmcE55QzlzRUhIOERQZi81eitPQ0REd0NnZjNOTHpub1llVGRRaWJQeHpvakV1aWwzT2tqVUZUYmMxNkNOMWh6Vkh4ZnIxaVdYdWFadlljMml1R1BSZFM0NSt2RHM5Zm4zRHcrVUFkbElZNlloMTZzSFJSQnpsN2oxdnFINUFTNzYwUU5LMFZZZUdxYjdpUWp3L1BQUHcvUFBQd2ViM1hxMkhWSnVNYnR3NFVMOVgwdEhOMEgxVDBqQmdjWFNaT3BxYzJRUEkxSVh6U2V4WjFJWHJjL1NTTXRvTE5zbDk2aWFkN2hjR3BzRlRXTmg4SysxU2puNzdsOFhjZ1JvY28xckZyM1cydUdnTGJHUGxYVm0xcHZkZzcwY1ZveDRoY0U4azZZSkxsMjZCTTg5OXh6N3l3R2JIWC9iZnR4emk5ajc3NzhQRnk1Y2dQZmZmei8xWTQ0MWZ6d3pFamZ6eUk5d3VoL25HREdHa3ovT3lXRE56Mmd5T1d2SE0zYVlQKzd4RG5QZEEwWSt6Q2JRK2V5aGhnby9ncFdIblhXb0h1RjZEYzRQMERKeTNPdjAraFRYVWVsZE81Z3diaUxDUGNqMmtNR1pnMHNLVy9NUURVRGJid0NBcjMzdGEvQzFyLzBLYkhiOGJUdWszQUoyL3Z4NU9ILytmT29CSEIwaUlqd1NOL1BtdzhXU2cwa1hHK2pkdzJ2NFdjMmE4WXdkMWlGRjA2OTZTQm5CMnNPTzR1UURlTGVEU1lsVGp1UERQS3lZOWJRNnliM0k0TlRyRWZUWVlhSUhzbmR6QkFBUlB2T1p6OEt2L01xdmJMK3Jjc3h0KzNIUE1iZFRwMDdCK2ZQbkFTRDU1aVk0aW85b0tSZng1WUZpM2FTaUdET0R6NnhKNjNQRU12bVJKb3B2RmhqZFBtelgxdVNLdlZXMk9yckdKZWU5WGxySWYzbWoxejY0VnVuN1EzQ1JqdFVyOGVSZVdQSHVFT0ZZNm9CaXZKYnhBV1h5TGwyNkNELys4VE53NmRKRjJPejQydlpKeWpHMTk5OS9IMDZkT2xYOXpLY0YwU2NmRVk3aUk5clVqM0FhOEhVRGZVazhFc3Y0V2MyYThjaHV1VTlTeE1NdGlrc00wUHJTSHJJZTEydktRN0k5TEwyWXowVjFjajFHWEJSZmttTnFyZGRqaFJyY0w3MVIzSVNmK2N4bjRUZCs0emRncytObjJ5Y3B4OURlZSs4OWVPMjExOEkzZDhaR2FxeXBsVGNiRFNQMGRWVXFzZDZvMzB4TXM0dytvem1LTm5JNGlxNkJuVTJVNnE2TmdhbXl2Y3FIY3RPMHNWQXRYY2I0aGQxUFl4OVdLcXB6RFBiTmF2UTRlazhzalROdDZaMjgzek41V2cyS2NmNnYrV1dmRU5yM0ZydDQ4UUw4K01mUHdHYkh6N1pQVW82WnZmYmFhL0RlZSsrRm54SkVjVXRyOFZIZUNOWStFYkUrUVVsL21yTERKeXNqc1l5ZjFhd1o5K3d3UGttSkhtS1JiLzhKdVdGc2hCcDNjZklobllrQnlFOUQrSUVrRSt0MVdrN1VSNDZMRGdMN2pqTnQ1dlhKdko0cUxuTUFBTnI0TjMvenQrQ3puLzBzYkhZOGJQc2s1WmpZZSsrOUI2KysraXE4OTk1N0FHRGZERFF1d2xxK3BaWHhYVzlVTlNadk9oTmdtSWk1VHVLQlhqS3g0MnhMRHlnQStZUFJrdm9JZGs3M3VpcXZ2V2J1UXd4NlhEbW4veFpyNDBUMUI0cEpyMnRvVE9JNVU2blhYNVBSK3pmN1dvemNNM2FOTXkxZmNtZnhRVVRCTEI5SURNcEdNOVhUenp3TnYvemxMMkd6NDJIYkllVVlHRDJnUkRlQ0tMNUxuc2RKUHNMbFJsTnZPRVVpU3hkTmRZVkFieVZsUzIvb2thOVpSbk1yMmM3cmpkS3hES2hycmZ5UzUxelhMZFpHckhsZG10QkVqUVBURmR6bjBqbnRYaTB1aW52Y3FuSGp2ZXZkRTRid0JKcEg5N0hXaGVvWC9JdGYvQnllZnZwcDJPem8yM1pJT2VKMjl1eFplT1dWVjhJYkVMVVJMYlVvRHhHVkcvazRsdmZ4Y3V1Z041M3VNREx6RWtjM1BnOHYxV1ZzYlgwVXYyV052czdLYTY1cE9ZVXFUeFY1UXpGNnhyWFR5K2R4UUxnMk5xMy8zb3V1NCtpOVRjMTY3eStLMDllc3JzM1hkcmhTMkdNK1ZOU2xJOG1lOFlXTEYrRHBwNStDQ3hjdlNQVm1SOGkyUThvUnRsZGVlUVhPbmoxYi9aR2J6NjVhYXZRR0tma1JMTzhjM1FNRStjMG54Q1JQeFlaNU4rbG9MNnhZZE9QUGFvNmJSZGZGV3JiR1AxU285eXBqYlp5bzlvbEdueWMxT01mS3lMV1VteU1zM21LeUI1S1JlSzlLSEw4MzR6OThhTnhRdk93RjZISDFBRkl3blFaSlhOWXNhekJ3TWVxZHYzQUJubnBxTzZnY1pkdCtjZllJMnJ2dnZndS8vT1V2ZC80RlZRdnZHdDhGczErVW5ZaU9ZNzhMWVdocHJRNG4rc25xdkp4UnJjVmw0MUd1WmdjSHkzOG5CVUIvRUVYeERDY2ZQdHFmdEx0UFQwVGN3cEdXUDV5am1IVVE4V0w2cU1kb1BzZVovRGplMTdQaUk5cjgvREUyWCtjQTA4UE1CR2VtMWhWNDlra1c2K2V6bi8wcy9QYi8rOXV3MmRHeTdaT1VJMmJsZ0VJdGVwTjdXTE1vTDRwbk1UTjZneUVqamFzeHJSeTd5NVFoN3NmYmwyeE90b2JtNzJwcjE5dlZWdTFIZVIyMTE5a3kxa3V5clphQ1lxU3gzcWFZTHZEek1OQ2cwaE9KS29uUjlWMG9IdFBXcWMvTjYwZnhmSC9tNjFYNm5XNElEVU9QZVk0NGZHZ1k3UU1LSXNLRkN4Zmd5YWVlaE0yT2xtMkhsQ05rNzc3N0x2emlGNzhnTjdQNERiN0dUV0tOUEEwajZqY2FlUWZCSnVvNTRISDNodFV2dzdYc1E5YlRaV3NVRzlVZk40dXVwVVpTYUZ3YmdjVjdhVnlUWFl5UDlFS2N1RFpTMDJOOG5yNDIxZEI4SG05NXN1OTRqNzIxYXJWNUQxcmMxdmJ4Zkg4ZFZsNTg5YjB2TU12RUJBYTdoL1BuejhNVFR6NEJteDBkMjM3Y2MwVHM1ei8vT2J6NzdyczcvL2dsaWkvVlpyQVpwei9PT1ZBNHFnODQ3OGMvTEdjQlhrTzN4SmZteGFOY2FRY0grL2x4endnZmNSR080dlRCNmVYN3VkYm9hMml0Tm5veFRjTnI5dk5HYXhoZHE0MGo3VWpkc05mcHRMRVRaa2NQSEQrVVVDejlyLy8yMStGem4vc2NiSFp6YmZzazVRaFlPYUFBR0cvbXhCdHMzOW9NTnVQejdZTGVaR2FpeGVxZFRhbEhkUExHcE5WVU1hV2RtNVJsbnM2NzBXa1d4VDNiSmZjNFdieE8raHI2Y1R1bUhReDZiZEVVbjQ3ZTNPMDZCbVZFaHZzNitzTytSb1AzSDFIV3NZVnRuSXZUdVhZL29NeEV4M2NZZWt6SXhxSjlRQUdqTCtraklqeit4T053NGNMMkM3VTMyN1pEeWsyMm4vLzg1M0RseXBYNFRSM0VkOUV1eWJPczB5TEIwRzQ4MnFGRHZSa3J1bm9IcWk1eUxIUEI3M3ZKV3IwYm5MUm96MjRWMjMyZFVmNlNPSFpqYWJOdlZ4NWFlSzZleDYvZGZwdzBkajFhVE91dHZ4N3o3M250RUJaaHZSK0pLMUxpZGkra05vVmxEWUI4K2lvdGhUUFlPYUJBSysrOWZ5bCsvSW5INGZ5Rjg3RFp6YlB0eHowM3lhNWN1UUl2di94eTZzY0ltUjlCSENXdGhUTi9zeWY5NDU3cUhwZ2Nxd0c5bjhHSEVkUE1pMGU1MUE0T0R1L0hQVXM0LytIS2NSUnYyQnExR3ZyQnhJL3BveGZMejhWeFpnNmQ4L1psd3BQZTFrWnhyVit0ZHhjRGxxbFUzQTRmQ1F6MlBGNHNvN3YzM252aGQ3NytPN0RaNGR2MlNjcE5zSEpBQVpqZUJOR2JKNHBMYlRadlZPdkZQUnplZURRT2RJN1dvZGJkNEFvdmJrRFVVcjBMV3l2bWFTUGJKWGNOMCtiZnZTZTYvNDJqdURmS1VhMWxXRWRQTzhXYXRvL3BKdDhyUlZ2cThibzhSaGlTbDl2bnhubDcyTytseHROK3ZMajFHbW12bC9rK2srOVpCYzhFdzlaOWdiMDRZcCt5NzNVcmR2NzhlWGpzOGNkZ3M4TzM3WkJ5eUhibHloWDRuLy81SDBDTUR5Y1VSM0dKby9pU09XalBrWmJsS1RjZzdkQkJiejVsN0c1SWRJbUNZempSbjdSZGMwWmlKOEdpOWJkNDVvQlJqQXY3UFBrZzdVZFB5eW9oSFZ1dkUxZEdVSDJxMWV2eU5XdnJhREUrcDgxVlZFZXJycmNYbVRqbmJPeStqNHFHdm04OUxFd2VVRkREWVBjZys0bGkyMEhsNXRoMlNEbEVPM1BtRFB6c1p6K0xaQUNndjJFeWI3WWwycVY1VVh4eXl0QnVPSVUzT1dnajVXZ2RqV041SVBvd3pOTllzU1U1VVV6YWlQWXdiZGUrNG53dHpybStSRlNUMjVTdkg0eDRyQWptYTFMdFhYSkZDOHFvSHhvYUp3OU5FKzR5bEQ0YXA5ZWc2NW0wdEU5dGYzbGM0MGlHTWxldm9WYnZJWUExWkw2UEc4a3dFWmd6bWZjbFlkblkrZlBuNGYvKzIvK0Y4K2UzMzFNNUxOc09LWWRrUC92WnorRDA2VGNBd0g3anlEZks0b05CRUY4akw0cDdOeUgzMElFKzErVUlEc0RvWThlYlZlYTEyVFUyWXJ2a3JtM1JkYkhNK0FOOXdyU21WbDgvWFBRak5UOUhXNGE4cHRvSVpOUU9DN1dDRWtPUkx6aysxeFRUT0JDbUhUQ0FZT3l3enRFY2ltbmNQcXpRZGJCcmc2Y1hkZldITUFDcm5YMmZqN3hIaS8vb1k0OXVCNVZEc3UyUWNnajIwNS8rRkM1ZnZneUk3U0szM2dqZUcwYmpOT3pGUFUwVWwxb3ZQamxsUUk0MURsdXMzbk1vbDYxVHRFdDdGclpFTnhJN1NXYnZmMFV6cHZ2bDdXdUx0M3JjTHpRZjlZT0oxUEtZWDVkcWRkTU9JVnFzM3hmOSttMjVaYlQza2ZZY1lUOCtHVDhNK1hIdDREUkg2SHJrM2lIaE1oaEVQVEZwZEk4S2RVcnNrVWNmMlE0cWgyRGJJV1hQVmc0bzNic0I3RGNFSXFxeHpFTTIwbEtMTkV2anRRZDZBNkhyci9jWTVOdUNUZGZkaUxRY2hWdmFzNlh4ek5NZFpvMmJhZEVleDViVnp0Y0ZObHdqYmdsMFI1NHJZM3prcHRjcC9la2p6K001TkVibjlQWlhPd0JvQjRnV2F4d055UFhxV20wdHVmanNFWWRod05xT2RrL0lXUHA5SkdUV0lhZlRHWnY2eUNNUHcvbno1MkN6L2RsMlNObWp2ZlRTUzNENThqc0FNRjNYMFFFaTgwYkw1RnBheW52MU1uVkh0STBzQTNhNE85QVlYTVVHQnhEM0VjV2xlYS9SNk9zWDZVWnNyVHFIWWJ4WHVoZU5ZNWNLTmgxZnBsYUh2NFp0Qkhma3VWcU1tMSsvUDNUME5UVk52eGNlcDhWYVhlOEFRWHR1V0wvK2RXM0JSVU5UdERnMTgvMG4zOE1XbmtERmlNZ3dOZk85UnZJWDZSQUFrRVJtOFBBamo4QzU3YUN5TjlzT0tYdXlsMTU2RVM1ZmZvZmRDQUFhbHB6RlU0czAxandaamJRb1IycTkzdW9ZM0lRb054TjJqbFl6MmNkb1hGbzI1dW1vWlhWSHphTHJ4dUw4NVdyQjh2b29JZGZRSFhrOUdaTTk4NXhwNUFlQk9XS01kTDU0anl5T1JCZkdxR2x6V25HNmZtMjkwTVgxOVlvNWxSQTdJRFNTWVprREFPejlYM3lxc3c0b3NwNTVrS0VSTE14a2p6ejhNSnc3dHgxVTltSGJJV1VQOXVLTEw4STc3MXlldmZLRzdTOTg2MDFsUFd5bFJuSkxzT1NzdWFNK0pTK3R4cWE3UU1OVlFEamtNU3VIMVZUTTY4UENVVnd6TDJiWmtwekROdXZhT3dvbVh5L3YyclBOcWdIVm43NzZIQkRYM0tSQmtpdEhlaTMxWEl2WjE2RldvODNKK3l3YzFYS3Vyejk3TE1lUGM2ek55ZnVTUFZvOUFMQjdRQkt6WERhUnlQRmloazdtRUdWZDdNT1BiQWVWZmRoMlNGblpYbnp4ditjZjhVeHZ5TXlOSWNMV3d5TEt5K0JkNDFHZUdnT2RZM0ZzSStYTW11Z2ZycUorcVVWeGo1ZVdxWFdyV0xTWE02TmlLck53NCtKOXRLN0RUQzd2a2JDb2pmM0JwT1ZuOXNQdnpiOSs5YmxMWDQzWER4Q0l0RDdIVGR2UGE5Y3Z1b29NYkswSDJQdDhKaUJ6UUZIeDBoaWRYL3BsdmRWSFFpTTgvUENQdG9QS3lyWWRVbGEwLy83di80WjMzbmtIcGdjbVFMbTYremM5eFpEQ1UwMzU3b256TXRpS2V6a2VscHc1Si9hNU5UN2ROZXBJT1N1SDJwcnI5RGd0NXVrc3MzS2lXcnZHRDl0b093MXJQWEp1MGtvTzliSEV3VFl6dDQ1QXhsVEZPdkxjdnJiR1JkZXJqRTI0b2pyMisrdnRJMTByMWZFOW1MQVZwL2M2NjFBeWZrRForYkNpK2RTY0d0Tmd4YkFNVUJaVi9kbCt0QjFVVnJYdDMrNVp3ZDU1NXgxNC9mVlQ4TTQ3bDZIOXN5cmwzNSt4Y1B6dnhrUTRpdStDczl5SU5zMHAvL2FPOWUveHBHc3V5Qm1KTDhGUkxPS3o4YVVtYncyanZxL1JIbUx6VFI4MWpzYzROempPaGJwUnhQVWFrNEtQOFp5anNheGU2MEhycitmNGVuZytNTi9TNlBFSjkvUHlIQm16RGlnYURnOG9WRy80MlR6emdBTFNSeUtiOE9jLy93VjQ2S0dIWUxQZGJQc2taVWQ3NTUxMzRDYy9lUUhlZWFmOWlHZXkrYUpGQzFmaFloekZsK0NJeTg2OUV6ZmRIVUxPekU5eTFFWnFqbG8wOTYxcTJiVlMyWVI1WG9rai9ZN1VreG1CMVlKaUZQSDIybFBhT2FBbzcrMWkzbldVdVc3cDJIVGVBWVVhUDVoVWxuRDhOWkR2YzY4L1dZUE9JUnZoK2FoSUViRmgwSEhSanh3MER1T0FBZ0tlTy9jMi9PaEhQNFROZHJQdGtMS2puVkcyMGdRQUFDQUFTVVJCVkRyMUdnQ0FjWlBBT2NaeDlPRE1ZQ3UrYTIyTHkycXBMZUt3REQ0M01yZldyNmVMdEprY0xUK3lKVG5IeWZqK1ZLUndCWk1EQVJHd2JTcU9lRzJLeEJxbHRUS2lqdFlIdVJJcG9nOHNCUDI5V0t5ZmgrNkRIcE1hMlhQcmsySitHQ2hjMFVpT2EvdWVLTzd6dkhyOWZYR0trMzJpZk4xUEc4OUVoNnNHU1UzTjEvSkEwK1VPS05qNUNHKy8vVGE4OU5KTHNObHkydzRwTzlnTEw3d0FseTVkWWpjTGVtT3czcmpVb2h1QmhkbWJHM2xkNzhhWHdWRTgwaTdodWhzTTFTbWNoYTE0VnBldEdjM2oyV2h1Um5POGpLNWZjdkpBd01QWWZUZkdVdGdZWmM0MEwzOXRWU1dmcEk1eUd1OTZWYS8vQlpvZVY5VDIwT0JhL1lucnNUVUg3Y2VxQVFKcmZTaldsMlk0YzNEcHNKYnY1YUdXMTNDTmNwTHZBUURicHhkZmZCSGVmdnR0Mkd5WmJZZVVoZmJDQzgvRHBVdVhaaysvR1FDQWcra0Z2anRHUk1abjh5d2N4YVhXdTdsbU9BUmt1TjRnS0NkeUpmYmlXVjFHbStXaW1wcGxkZFNXNU96YmNqMWhIVlU1empFelZDOFNSVUdyODNGeVdpNTduZWpZWGROVFJCK3BqbzhXWjhVeUdoc3JCeWFsMXhaSEF4ZE5OQjlBMjdXQ3JVT0puTCt0S1pvbk9wVGcvQi9qSjZEbXFGcHFTbDVWdG0rQUFIenZvQkxRSU1JUGYvaUQ3YUN5MExaRHlnSjcvdmx5UUluZWpQT0ZLM0QraGpPT28zaVVSeTJUcDk1UW5QVkZYSTJCcnN2VzhmWWs2ai9TWnJtc2plcVBva1ZyNFB2RFI2SnFNVTVEdlNLRW9PaEtqR3YwaVdvT0lzTmFUbjE5NSs5OHBQUHJDb1RjTlp1NVhxTnJkY0lWMVhIaWFIMTZyd0lXNzNIUjlQMUp2bi90clBzaldSUHd1dW9lQWRhaUdqWVBKRmFPMUdxNUFsZWwzQVpDSXBadmN3aGJFd2dBUC9qQmRsQlpZdHNoWmRDZWYvNDV1SFRwb3ZIbTYzRzd3VXhjalpJYno5aE55TWRSM012YnRRYkZYaTN0aGpjeXR4Y2Y0YUk1OThWNS9LMXU4cUUwY1h5RStuQVFhcVJEY1l6OTFVYkVOdFlBT1hDZ01jcmNtV1FQU1dWc3lSQmVsNW1ZMU5pNHJZK1d3ZEo0WTZDM1BzNXIwUGNONVp1K2JCRHBqRmN0K1dTZkVGcGRxcG1ESGVZSENKdFhEeDJSMzlXUkI1UzVmOVJ4ODRsNi92YURIM3gvTzZnTTJuWklHYkRubm5zT0xsNzBmc1RUWXdCZ2IrcVJCK0pTSE1Vek9JcDdXSEplL1NWelorZmRSODdhdVpwbGRkUVFjVkhlWVJqckN6blhIZ2JZWWxTS1ZkVkduRWF1azRlSU5rcXJ0V3FCZ3NrSVpKUzFXTCtzQ3daRmxRa25yby9SV0k4bFIrOUpKWTRNSTlJOE9wL1VGZzEyTlZpOVNnbk1pcFFCR2M2czBjcmxMME11NW12bnZSTyt0dWFxb0xGS05PMzN2NzhkVkVac082UWs3ZGxubjRXTEZ5K0N2RWd6R0FDVU54dm42VU5HWXBxWHZWbU5hQzI4dEViRWplcTlYSXZMeGtkeUpLZkZJck55bHRUU3JMeG1hOVZiMCtxK2diS25GSWt3Y2dFSmlNT0RZVVZUdFFXWEIxQlRRZTBPKzdHcGtJK2xaUlJyeERaT0paUjFPOWVTakZuWEtvMzNXcjdHZ3VkdE1PTkZVMWZNTUoxYjE1UU5RWWxMSHQxQmhBNER4T3VkaytaQjVBcmZpeUY2UFFDeC9ucGg2NWQrSTRoMmluLy8rOS9iRGlwSjJ3NHBDWHYyMldmckw4bmFiOXdNMWk1WXliTjNSZVdpQjZoK2d3TEdaVzkyRm83aWxuWWt0aXUzYTF6am9uMk5ZaEo3bkJYenRKWWg3dS9Ba3UxZDFXRVpjTVpJT0NYV0dDcGxOc1hFd2FJVEViNWkrcjRvTVgxVTU4RFdxM3p3c2dkdzR0cWhyMVgyK3RMaXJYR3lKbWdQMktaRk5kNXdxUzN4ckVMc05DZ3dhQmdSdXYwUjJMcUcxSDBndVpYM2FuVnJhRm9yQm5WUHFwTHZDLy9XZmFlNU1QdmYrOTUyVU1uWWRrZ0o3TmxuZnd3WEwxNFVGem9BdmRqR3NINWppVzVDa3FkY1JqTVM5elJSWFUyN0pMWlVGK1ZRaTdnbzdzVjI2V3NmVnZacUgvTlo2d25YaVNWV1hLd2NrekM2SllVcktScWNIakJJT1FBMkY4NFRtYU9zTitlWGFtd3NkZW02Q3FWY0E5SXkxNzVsaU8xaHl2TXE2bkprbkU1UjF0OWpXYnN1RnRwK0diZ2c3SEdyTWNQTTlXVHBSVjBaNitxNVd1b0JrRytHcjhXbVhOcjY5NzczWFRoNzlpeHNadHQyU0hIc2xWZGVnUXNYTGxiZmVtT080c2xITm81aStjQ3hORkhjdW1sNk5hSzZtamFLWlhVeUZzVzEybkt0VnE0Vmw5eElidFRyWVZqWms1SDVSclNlMWJVQ0g1bG1mcmpRUjFvWmtJNEFBR2djSUZwV2UzVFUvUExRbWNhS3dSbHJmVnEzOU5YNks4YXlxd3pacUhIZVBtZXZmL25hY2x3Unc3M1JlTnVqaGlkdnFrMTUvaERYTU5zVGdlbjFFYTNYeGFTdWpNMENNOFo5VWFkK2t6NFNuMklaYTVuVEdxZFBWRGF6YlR1a0dIYng0a1g0eFM5K0FRRGVtd0lZYmplSkdOTmFrdk51WnFNNGlrdHR0a2FtWnk5SHhpeWQ1REpyeU1RanZjWmwxNkZ4VVoxc1AydGJlZTNrWE43YzBib2tWazJFeTBPbFBWeXc2ckNPSmFuRU9xWVozYytxUXlaRThwMUJNaUlkZ2ZSUTFpZjdVOFpKWG1acjgyV3VwK2k2aVBaWjEvSURTbyt0T0xSNGN4VGV4eldIN28rRE0ydnY5b0gxekdOZUh2ZkYya2xmMnZyb25qUk1ZMXJ1Wk4vOTduZGhNOTIyUTRwaUZ5OWVoR2VlZVlaeDZUZkhvSGszS3NrdnhZakljRGFQNHFpdXBvMWkzdHFYNUk3RXRUSGlxQzNKamRhcGNWSCttbGIyYmUxNXZOY1pqS21RZit0ampDQjdSTWN5NzR5TGh3anpBMGMrbFB1UlZjVTJ0cG9JVU92MTQxeXRqYlVFc2xIamxsd2JVWHpDRmFuWWo3ZTFUMTZwM1QrMFBkenRUNEFCY210Yk0wYkRzaTkxZldSUEdCWUFtVC9OZGZiczJlMmdZdGgyU0JGMjhlSkZlUHJwcHdmZjlNajBJNWpXeXM1RnNWWGZ5ODNXeStaUmsxcE41OVdPMXJTa3IyaStKWGtXSjJOcjVCeTJ5WDlWT1ZwTEZrdE9QcnpsUTJtS1FZdVJYRVVLVUdQWTRnSmpLMWl4T1pZY2IyekticXhZck0zZGsyVE12NlpReFlqeXZ0UHlLVzU1MEdHczN3cEdnbWR0Z05sZUdMZ1ZuV0d3ZHN2Zk5ZWmwvMmlQRTZCZUljaDZTZnRWaXl3T3dPYzllL1lzL05kLy9SZHN4bTA3cEFoNyt1bW5LODdlSEtMWUNLWTNFazg3V2tmV3RPYVJHbzN6YWxITHpwbFpiNlRMOXFybFpPcFR5NnpWdzlrY2o5dUhIUndjZEFlVXRVeGRnN0VzdEFPcUJwV3hIUTVtQnFXT3o2SFZxRGx5cExxeUxxVkE2NkVsUnRkbXNldzEyY2Yxd3dWZEw1MmJHOVUwanRXWU42THNSeDBRQmE5ajYxQWlzYmxlMFBsT2gwNk5aSXoyVlAwSlVBK0tyRnV2NmMrYzB2L1pzMmZoSnovNUNXeldiRHVrRUN1Zm9GZzNnUWhUZllUN200dU9MVzBtMThMUlBKRTJpcS9OYWZGZGNqWHo2a3ZORXAyVnN3dTNwbG1IazJndFdleHhvQzBKb1Q0a3lpMitQU1RzZlVIRUdtLzV0V0RqY0ZhZ0V0TkdNbi8zV2lDYU9kUzZkZEFhQkh2WFluUk5OSWdxbHZtMFJxL1Jhc3hqd1ZQQ3JDaTQ4TUF3VzNjQ3F6RmxIZEpmSTBibllyNVlVMzN0aTYvRW10OXEwVFltdnhIUFAvLzg5amQraUcySGxObWVldW9wdUhEaFF2V2pHOE91bVByeVp1SGxVbTFHTDNFVXQrWWNqZS9LUmZFb1ZyQ1ZrNm1oYVRUTDdwT2wxWFFldDZacG41NHNXVThXVjI2K1k3T0hrcmRVVFNicTFyNkpxRHhjV2s0TDRvekxDSElFTWdwWDY2ZGJFOUw1a1FxbllmRGE4NjhqZnEzWE5kWDFGWi9uKzdpaWloazNEVkNIYnYrUjRSS2tEL3dPRXczZE0wU0JvV0h2V2xzU1kzTUI5djRFZ0F5azUwYlFHTXMyYWdPMFByN3puZTlzQjVYWnRrTUtBUHppRjcrQUN4Y3VoQmR4OXNZUlllK05vK25YeEptK1J2STBiclRPa3A3cDZISFVOQjBkTTVvbCt4QnBsNng1RGR2WGozWXNZMzBqSDhzdFhUN1U2VzJmNWRFU2lLME8wbnl0RnM1MDJVdFJpNDVJUjlJZkhaM1hSR3BOTHZHNnh0ZElSVUNOOG5XdGlXdlVyMDBmMUFXWDNaWDhoQ2h1MVJTTUhBUGtlb3o4a1JnWFVvalFGbW4wREZEM2d1YlRQYWk1WWxyWng3ZS8vVzE0NjYyMzRLVGJpVCtrWExod0FWNSsrZVhxSTJMcUFzNjhjV2d0cjY1KzB4bXJtYzMxYWtoTmxyUGl1OWFPNHBTVE1Vc251U1dhN0J3U3I4R3RZZDd2bmtSOTdJSWx4Mi9zbll4WjkzQVhlbFFLZEF3U0RrVk43TWVtRm5NV1Y3a3V1dXVCNVBUMSt4cFdYU3ZHTVVLakMwYUd1VGJDY3A2aWFOOGFwcUxHMDllcnJsdmpEWnk5cmp4L2pSaDd6ZWIvWnFmaEthbDUyTlRONTdXcXd1ampoUmRlZ0pOdUovcVFjdUhDQlhqeXlTY0JZTG9vdkRlRWYzUG9OWmszbDRhanVCZXplc2pVelBhU3lkSDJSZVpudUNnZXhUU2RsVHVxb1ZxWlkrRVJMcHBYbXo5amgvM3BTVEcxWHl3RHRsRmJGb29SU0k3Y1B5eDFLQzY2SHJleG40ZUZhUzBscC9hQkFuczVNNkFQdVpGcmttT0VSaGM4alFVMzA3UVNPM09YMnRNQVdQRTBrcXc2c0RWcXZJYXJpMm92QlVjK3RVeXNtMC8wTW9OdVhXWDlEVk8vN0ZPck5kRzlUK2QrNjYyMzROdmYvamFjWkR1eGg1UUxGeTdBRTA4OHNld2lKbThFNzAyeEZJKzhJYk5ZOWp5U3AzRzcxTXJPRThXam1LZlQ5S09hYk8vVXNtdlRMTk9yWmFOL2N5ZmJleFo3SEFpcTNMakxMUjU3QVJzUnNlR2EyeWRRRGxHTVlpN1dRelRXb2lRZlVkVlk5VXVPWmY2MWd0RG9namszNlMydGh2dDVPQWR6MmRKOFJRQ0k4L29MVHpVREdJRHRENEMxZmowVytWYU16VWZtcHoweUg2Q3RkM0pvaVc1OUpiZGJtL0FCcHJvbi9hQnlZZzhwOGtjODFFWXU3bjFoT3U4K2VwRDFJKzB1Y1UyN3BNNW9QVTlITlpIV3M2dzIyNS9HUmJVOUd6bWNlSHRpY2FOWWN1WG1yZDJnNTBBZHBiYkx3VExNY1N5ajRHZ2RwUjZycS9Bc0Q4ZzhKVW5tR25Xb052UDYyL3RiRWNHY20zZzB0QjVXNWdhSzJUZWdTd1BFZnYxTGNDMm5yMzhrTnFJdHJ5dEEzeGZ6YVEyNi9ybUd2QzY2NjZSd3dxZDEzM3JyTFhqKytlZmhKTnFKUEtROC92ampjUDc4K2ZURktuMUU0ODNyWUtyUFlLdk92bkEwZnliZmkydmF0ZnF3WWxZOHloc1pKVWZudFhRU2U5d3VsajJjWkd5TjN0STFQSmtSNng1b3M2ODk5S1kyc05VaVkzbFlsSWNFOVdVOU9uYnpZTUNSSERwNjExa3pVcVBHRVpvVTZ4cnJXb0hXMGJRMjducWdhOGFLeEpyNUs5TDJIb2xHMlNNRjAveFNnMkx2ZmVYNTJWaGRwK3lMK3REN3JMNWNCd3VoNndOTXRaNTc3cmtUK1l1MEorNlE4dkxMTDhQNTgrZXJuNzFvUGQ5N0VHVWVVdHFOS0tQZEo4NXlNbTVoVFd2Rm9uaTJubWNqZVpaVzlpSFh2c1lhc3lPMWtVOVBpbGs5ZWhhdFMyTFZrSS8xWVRiZnFMTmpWNC80dFllaUI0QkdpWDMwMmlXOXF2TkwzdEtXbnBSOEFGRDNySEhZZWxlNGhpazNyWGZTYTFxdlJpdkNybW5TOXl3VmEyNm1YcXVkM3Nac0x1ZmFHdkd6TWI1T3VtRFJKMkx6UlkzS0tmbnM5UzhhNGROYS8vbWYvd2tuelU3VUllWDgrZlB3czUvOURBQ2NpeEl4OUtscGIwQXZKOExzUmpDUXR3YTIxa1p4dGxZbUw5bzdiMCtpZXBaZXJ0SExqK3BJamFXam84UWVOMnBMRGllZXJkbW51a2VnMUhMS3Evb1c1QThCNUhyRTlrQmc4MU5mOGdNanEwL3FXbG82VHpjMzZabU9BQWdvOUpScldPZW1QTWxuYXRENVpsejZJR3VZaWJZR2JHdmx4YWdtaDZkQjlFRE04NjMzcUtXdG1Lek43SVgyV1h5bHZwZmZVdEgzNTNXY3RJUEtpVHFrUFBiWVl3RFFMcUxvUWpZdlhpTVc1U3pCMXJ3U2V6V3llcXJ6dEZIY3k3TTRXbk5KVGxhL1ZuNldBMmo3S2RkSXRYM2U4bkZ0OC9ZbWkxVU9PVmR1M09YbUxNZVNvOFpwVE5SUCs0UzNlc2oyNXRXYTZNYXg5WmQ0dCtjSUtHS1VhMWpucHJ5Q01jUzhSbHRRaDhzYVNPOXpHcUNKY1FoUEEzSmN5bUhmbjlkdjVETXM1MVA4cmhmaUY2NDVaZWpyeWYyVDY2VjEzbnp6VFhqdXVlZmdwTmlKT2FROCt1aWo2Z1hwWGFqU3o4Yld4bEdQVW1OaHFkZHlhVXlPRnJacVpiUVdaOFUxbmVReU1hM1AzV0tXSHRTWXRVKzcycEphMXY2dlpkblhyOTZrbFZIZXhDWHZQVGhZaXZPNk1yMHlkMnFzYVR4R2pYRjF1c1pwMTBXRE90ZHZaK0ZLclF4R2tnY00wK3UxYVVuZjgxcTkxd01SVmQ3RGJBNkpqZGRXODVkcTFWNW0zN3ZPQUFVMzY3MTZ4YmZXVzBzaHdyUFBQZ3R2dnZrbW5BUTdFWWVVUng5OXRQNGVpbmt4a2plaDlvYjBZcEhPdzFhZExJNzY4ZlNaM0d5dlZxMUlXM0NtZmhTejlDTTFsc1VRRUMzOUZJTjZwOUZyZW5OcE5xcGYwNkxYU21LWEUzZmc0cVBZSnhiSFBrK0l1SXZJOU9XYWlQYSt6czFmT3RYb3c0YjFpQ1F1NnJBMUZNN2R0M0l0a1FUQmxXdU5Ybk01VERsYW8ybXFSM3VVYTBFZHk1eEl6K3BhbUZoM25UalhZbFpiNTVQenk1NlZldksxMVh4enJjcDZpMC9uK3RhM3ZuVWlEaXEzL0NIbDNMbHpjTzdjdWU2bTFOMklac3RlM0JKck41ZU1lVFVQRTJ2N0libElGK1ZIMktvdjlacE9jbGE5cU1aNERHRnlDNVlqZEtOWFcxcEdzdzhiblpmR0xheHlLTGdTa21tU1YwYjZJS0N2VStVQU85NThMY0Fac1IvbllPZlRuSzYrNUp5K0p0eGkvTHFpV0t5WmNPV2ExSG5LdGJwdHJvS1ZIdHRDVmF5OURwNWUzVGNIZC9XVkhqTSt3MlFPNmFzOUYxK3AzMm1FUHczS0hobnpGeDl4K2tUbFZyZGIrcEJ5N3R3NWVPU1JSK3dMa2R3SUlrMG1GbW1XWU5walJqK0tyZjFZd28xb1BaTTVTMnRyZGNxNFRneGhjcWVSNGo3V1JxdDJzWXhtUk9lWnRYY1ppL1JSYmZYR1RMVGRLUFZ5dldSL3E2WTlCVmpjZlozbkIwSjZ4SjdYYXJGNVNsdEtEOXJyMk85QnViNG9MbmtOYzI1bUVBbmY1eFJzdlg3YSt1cjZvY2Nra2I5V2pyN1dUV0lBWUh0WGZDL21yWS9WbFhOT29HSE5CMTZ6MDJEejZSNU9JVDZmMTgrYmI3NEovL0VmL3dHM3N0M1NoNVNmL3ZTbkZYc1hyNFcxRzBkV3R4WXVQaDJ6dVJtczFSM2xJbjZVay9Fc0Y4MFQxWXRpUFFjQWdJQ29jM1MwYXNaejJMM2RESXZtSG9xajRHaElxeVAxaHFIeXNORDJsbUt0ci9wUWlVYm9lY3JSbXJRM3VRNnJyNHBydlhKZFVUeFZwdGVkdkNiTnVpeXUxUmQ5S2V1ckdNa2FzZkdJMlBNS051c1dNM0JtTDYyWXRUNEFwWmNKTkt6NHNtYmx0SFVLMzlwVFdrZjZaODZjdWFWLzdIUExIbEllZnZqaCttT2VZdkpHRmVIaVc5aXJuY2xmZ2tmNnkyQnJENng0dHE0MGk5UG1sRG1aM2pJMW8zcFJUTmNEQUZBT0t5ZkhQdCsvWmtaNjgzcTJUSnVUWXErR2xhdVpGcy8ybmVWWkhLSGU4RE5yOFBhM1BoQ1VzVHhFNklPbGU4Q1FXaXFIZlkvYW1uZ3VZV2txVm1XanNBYWN2U2p4aGd2UHRsVys1dHBheTU0Zzh2MXBKWnN2c0ZXcjRPaDZIWTFKNjdTeWx3bUlKTDYrcmo0S2J0YXI2NVkrUzdPdkV3Q0FmLy8zZjc5bER5cTM1Q0hsM0xsejhQYmJiNnR2ZHVrdndaNnY4WmxhSHJaeVI3RlczOHFKNm1SMEh1ZHBvL3BMYTBxZDVNWmlTRVpnMkJyNzJxRE9KVGs2UnJGOW10ZUxqRnY3cU5YSmpySU81V3JNZVFDVTNLaVhxSTg2ZjJtanVDVk9IakF1SjlZbHVaS0hPT1ZXWFBtS0drYUErVnZsWk4wMkY4ZE5TMnBCd1gzK0hHbnJndGJuVEhDTWFNYXNXaElEMEo1NVh6UW1jZVJyKzg3bW53Q1AwVFdRZUhYcGVrSFh6NjllN3pPWktLeHdDQWcvL3ZHUE85MnRZQWNvWDUxamJ1Zk9uWU1mL2VoSGpLUC9nNnRkOE5MWWNjWkw0bEZPbEpmVlpYQm1ub3lHY3dBQUIyTFV1RGJxK2YxY1hvOVIvNTVHTS9QQkl4Nlk5R0VRUFZnOVRvdDdjMm01Vm4yWmp6QnoyTGdiTjI0TTlaTFJsQWVLOUxOMXNsejhBSjhmV3pWdjRtZ05Wby9GZTl4U0dxWjFxQzhmc2k1V1lyVkdnQUZvLzZJWFE2ZjVJMXJwZDcxTm9QTzdRNFNvMldtVVBaa2c3MVhqcVArbEwzMEovdWlQL2dodUpidmxQa2w1NmFXWC9Jc3NpZW1iSWFQVFlrY1phK3ZUOUZHOUxKZkJJejFsc01lTmFEaFhidHA4MURnNjhwb2xobVQwKzlBNEdyTTBsbGwxNlZlazgrS2F6dXJmNmxuTGxUcHREbnJUbHV1Uk5heTVOUTdMNjBoSEpEWEV2TEpPWnM5VVBhMWJjVnNubHVzTXA4Nnd4bWtOV2JkZzZIQnJoV1BDOXIxaG1aRmdqUyt2RDlIcDYrTVlRUGJmTklnOFI0M1RHcFlXQTEvMk5vSE9yN2prWWUremZMRkgwOEQzcFhJb09PR2ZQbjBhenB3NUE3ZVMzVktIbEpkZWVnbmVmdnR0QU5Bdk9BdHJGMzgySjlKcE9WbTloVWZyVUgyVVkzRlJQTXJKWW0wdWIvNm9CNHZ6YXRzeGhNbnRSeStHS0d0TFRkeXIxYVBGeVpqRzdWSlh4ak4xdEhoMkxOanlXUXg3TGEzbGpSYUg4d05ESGFINU5OZWJLOHNodG5rS3JyT1NQaWpYY09sdHdranJWa3puYTljanhkTWVORnpYQ1FMUGhlbmVkSHdyejJKcVBZTFZ2U0thbEcvazB2cVd0bHYzQkRxZnJyRzdCaEU2WCtacmZ1V0VyL1lJQU4vODVqZmhWckpiNXBEeTl0dHZ3NHN2dnVoZmJBSnJ2c1pIT1JyVzhxbWZtY1BDc2s2RXFWN1RTVTBtUHBxamFiemNLT2J4R1k2T1Zxem5BQUJRSGYwWXJhTnA0bDQxYm1TOTNoNVlYNVplRzczYTNqeVoybFFyYTFuelRBNU1OMit4eDlHb3hzcjB5b2prQVNMNzFFWXJadlpFNjVmcmhzMkxaU0M0NURaY09lUVlLUTlUOFpiUzl6eXBlRThnZXNJV2pIMnJuc1N5RjZMcDkwanhvZmxhL1JvM3ROV2ZRT2NqRWRJYXhhZnhvcGY1V3YxdWJiSW41RDRBd0wvOTI3L0JyV0szekNIbHhSZGZySmpkcUlTdnhUU0xjc3czTDhtSjlORWMrOENaWGpQeFRNN1N0VmsxSktmbFpQSnBMSnBqR3BHTTBJMWFqTmYyOC8yNWMrdlF1TXlYVjlPTFozb29SckVWaThhQ283azdqQUI0by9GWmkrYWhZMzJBSk5abGNXNnNUak92aHp5b1ppVHdOREpjNnRMdjZPUFdnNzZ2YzBUdEQxbzU1dFBldlJvZHB2c0hBaHUxdWhwMGJrMUxYbU8zRmwwSE5KL1dvZGE5emxTUDBPV3orbkp0MEh3QVpTNlkxbkRtekJsNDVwbG40RmF3VytJWFozL3dneC9VSC9QSVh4VDAvR3hzelp5MWNGWTNnbmZobG1BcnR0YmNhOVJ1SXdDWXZ4Q3J4MW81K3hkcXRiNnlYRllqc2ZVQTFSNmtTM0xXaWtVNTlLRVNZY2t0R1RNYVQ3c0xWeDVZM1VOMkFnVFBDSWxDNWVvM3dBQ1R0dFFlWjVYYm4rbG5hZ2R6Vmp3QjI3Zm1GVDZBUFUvMUo4RDltVk5mbHhKR3JwMkdaRDJwaWRZQUNQLzcvL3ZmOEtVdmZRbU9zeDM3VDFMZWZ2dHRPSHYyYlBYcHpTanl0VmdHWjNWcllhOWZHclB5czFpcmwrR1dZbHBUMXRmeUtFZS9JcTJYbjlFRElFd3VIL3NZMXJGOTlYbDlUdHlEM2xlOExpMmVxVk5zTkVlT1MvTzBPalFuV21mRlpJOTN0V3lQVm13cGgvTURDTWxUcUdMSzQ0eVFLQXl1WUN3WVp4ckszRkQ1TXBIV1k2MktiYXpjQkppbTZLaTJxNmU4bHAxR3pqWFhscjZjcTV0WDZjT2FoL25LT3N2MXhyVEUySFZDZXpQOHdrbGZya2YyQ0REUGhRQlBQLzAwSEhjNzlwK2svTU0vL0VQRjlFK0xvMzRHUi9Ib1QrZTc2TmRlUy9TbjdTWHhrVHd2TmxJanF4MmRwNDBBRVA1VllwNEw3aWNuY3RSN09UaFlIcU9qeE1VeUQwZkphNXA5eHFSR2kwdnN4Ync1ZGgyejNPS1llREN4QnhqTnBUek9DR3VXanB0VDBnalBNZTJSK2xwL0ZVK2dpNm0rc2hmU1o5aXA1ODBkOVJGcDFOcWFELzFhcGpJNDVFK0RQMmZseEhTLytadS9DYi8xVzc4Rng5V085U2NwMy8vKzk3dUxkNm1md1RRdmk3VTVsK2d6YThsZ1dzL2lsc1ExMzZvUjlScmxMZTNUNHV3WXd1UzIwWTZWSGtDSldlTklMLzFhNVplbXNmUmVQY2xwOWJ5NTZHanBvend0Mzh2MTlOUmYwN3cxYWx5a04vUElnNmRnSkErb1dvUHhNMElFQkIwM2RabHZwc24xU1RIckg4aitrNTYwWGpzZkROL1lFL08xRlhOMWMwL0E3a3VwVXprVXRZVS9BOTh2ZFlnaFloZW5mdWxYK3VvY3lIMXRYWWdJVHovOTlMSCthOG5IOXBCeTl1elorbU1lNzZJZTliTTN1Nk9BdFpqMlJyZHlORTAwNytpZVpQWlQ2enRhVnlZL3k5a3hBQURzUm8yYjhuVzlQdEkxdHJVVzgvcTBSdmxsOFJtZDVLaXZ6Wi9sckw2enNZalhzT1RXR0VmWFRTMmpaM2xZQm9UeTBDcDh3eWd3R1EyTUtQRDBXSU0yZGNOZHI2S24yZEY1NFU5emlMaXhYK2JySytxVnVlY1ZNSDhXOFpoU0J3RDYxOWJTMDdsQjk3MjFhRDdyMS9HN3ZSUTlGWjc2Ly9xdi93ckgxWTd0SWVWNzMvdWVlUUh2Nmt2c3hUU2R4SmxjaWpPNWtTOTVUeFBsZVhGTFkra3p1WkUyMDErV2E3WDZ1UUVRSnBlT0dnY3FaNCswSDFtYmYxSHRrakZUay9LVTAzeXZSb2JUeGt6TTZwUEdOVzAwOTVMUjYzdUVHNHJORHgxc1Q2ZkdZV1ViSnB5S3NWYlZNU0tVZHJSMTFBeE5RL201RnZWYk15U3UxS0JyWnhqYVhzaTVadEQ1V2t6MkpmZGY2N1h6SjlCNklUNjFycmJpc3h4WncxaURackpQZ0tuK2NmMzlsR1A1T3luZi9lNTM2OS9tQWVoLzVyNlduOVZsc1BjN0FsR3VoN082RVJ6RmQ4R1pkU3lwc1lUVCtINEVnTlRmMk5FNGZaeHFXNy9uc255MDFpaXR4SzBITDQxRmZ2UWdscldsWmlTbTlhdGhxODRhWTJhOUVaZUpkUTlmaFA0aHFIRkcvZG1aRkZpcjZyaW1sSG9sdmE5ZnM5SEhxbS8wNmRhYmdJNGpYK0Fxa2V0eDFsZjlDZmcrSkdvTFAxeVB6SEg2cWh6eC8vaVAveGdlZU9BQk9FNTI3RDVKS1QvbWtSZTQrY2Jjd1IrcEcyRmF5NnM3aXJVWW5TZkRTNXpWUm12VGNHWWZvcjZYY2xZUGJaUnhoQ2xNeHl4bmp4eTNlZVg4ZHAvNm1QbXl0SkxQK3BTMyt2RTBVVXlMUjFpcnM4Ym8xWTl5TW5wbVdBYXN1UENGUS9KUUtsaXJYekFTYmNFZ2NVMlpjUEZiTGQ0cll1dWw0RG1iU1dtcytob0d2VWJGWkswZFJteStGaWU0MUdSNjRMMFVEUy9aK3FqK0JIZzlGTFdrRDdwdjlsOThVWE1hK0x5VlUvYjhxYWVlZ3VObXgrNlE4dDN2ZnJkaTY4Wmh4U0tmbXFXTjV0d0gxdWJPcmlmRFM1elZXdm9NanViMytzNXlWcHo2UEFjQTZyc2FxOTlHbmJQMVhoMzZCV3dFNk5kaDdaRTFhbDh5cHVWU2plWjcrVkZmUzJKYTNTeVczQzZqMTZlWHV3dUgwMU9LWVRaT2dZclZmVURPazRKUU0rY2FMVVhpa3EvenRFL1ZGNitKKzNxcHJSSzlzbTZHaTQ5WSs2aFkxa1R1cTMxNjZ5STF1dmxwYjNUK0loRjdvTTF0MWlRK1d4ZmxlTGxhLy9UcDA4ZnVvSEtzRGlrLytjbFB6QmVVWXU5Tk1KcHIxY3JpK2taTzZyWGNYWFIwL213dldhMmxIOFd5L21pY2ZsbjVsb2JyRUJCTHJLODlTZWtvNTlNMDB6aVp6bXU5dHZyMld2ZjFKZWVpdmhVckpqa3JQeHNyNXZYaDFmRHFqSXhldnBlVDBWdTYrdnlaTVFJWkFSaldhazBTb3NYWm0vTW9abnJzTWRSclZ1K3RxbWdNc090TDI0Y3VKdkptVWwxMzF6K2lHU3MrWDVkY3A5SmI2WWV1QzdnL2czaCtaZDNVWkx4eXlqb0tadXNxWEpYMjlaNTg4a2s0ZmZvMEhCYzdOb2VVczJmUHd2UFBQMS85ekl2dGFVZjlVYXpGbHVaYStTTTFKSTdpVXF2aFRHNEdXL1d6Y1U4ck9jbkQvQ2FldnJRWWlKSHlzZ2VwYlRuZUY2L0xlMmxqdnlacjFPZlFZMWF1NXhlell0Ym94VWI2c2ZSYVhhdk9pQzFabDhWcHNWVGQ2VW5FSGtTVlE4SlpXT2FKR2d4RGoxdExwRGVCV2Q4a0gwQmZVOEZXWHEycDlRa0NhM1dKVHViSitzd25SdU5GVStwVmZ3SWMwL21oOXdzWCtkcGVhZXRvb3NaMXJ3RlozNU5QUGduSHhZN05JZVdGRjE0QUFQK0Z0RjVVejZmbXhiTTQwbG45MWd2UVdZdkhaMklTZTcxWWVabmMwVHFXWmg5eHlTTktMWklSNmxoeU9aWnI1amtBVWlOai9kajN4K2VRWHlPYTZLdVk1MXQxcWRZYXZWZ21YMnFvZVRVMFhhWWZUME10c3c2TFMrbnB3d2FucjhJaGVXQ2xzYWdoNTJBWU9VYUQ1eHJGRjdqbUtBc2UxQUFBSUFCSlJFRlVFV041WG04VGFMamtLcmpvWkI3YlU0RE83K29JRGF0QmV4RjlBZXJyVk5jKzRBT0lkVTBFNTV6MW5UNTkrdGg4bW5Jcy9uYlBDeSs4VUE4cDFLeS9xWkh4SXkzbHNubTc0R3dzbTdORXQzUzlVYjFkOEpyeEtLK05BREQwdDNlMHVybS82UVAxYi9ka05QSC9hVmFheFplWTllQWM4YTJZVm50SlRCc3Q3TVV0M3hwSGVzMXlvM3JHelE4YTdRR3VQaVExTFBKY3JQUUFnRUJvUTdOaVRQWTJnWWFsM3FrbDk2UFJ5SDFaUThaRkRiWEhPZTc2RVBScmNVb2RiYTVwOE5mN2wzLzVsM0RVN2NnZlV0NTY2eTM0em5lK1UzM3RwcHQ1a0s3aDd4dG40dFpEYVRSbkJHZm5pbkl6UFZLYzVVYmlrWFlhNHNPSXhzbVl4VU4zK1BCaTltaTlQdFNzR09YVE4va0IzM3Z3THRGb1l3Wm5jb3RsYXV6Q0RjZm93MC9qWnV3K3lJWFd4VW9QRnFhY3B4K0pkVnF2NXdrMExISmxqUGxLbmVyemR2citqRDVjZitiTVhwT2NGdS9XT1hQVHdQdXBIUEVmZU9BQitKTS8rUk00eW5ia2Y5enovUFBQZHkrVWRtRjdiNnBkL1F5bWI5NE1scm1aMnRTaUhFM3I5V0RoVEg4ZXp1eEhOamVxRjhVajdUUUNBS0F4MGo2dGVpMW1mZEc0TlpkV1c4NFpmV1YxWHM2bzcvSDlldXpYeFpySHlyR3dWVU9hVmp2U1NYM0VlVFVBQUZCZVU4ajFzNmhxNndOS2NDYnY0V0FmS1piN1krbEhZNTNXNm5rQ0hDUEhNa1o5V2FmNnBMMnVIMEM5cDdrUDFaL3JhLzFJMC9iRzI3dUpKT3VZZmEyZktjVDdCNWhxdnZIR0cvREdHMi9BVWJZamZVaDU2NjIzNEsyMzNnS0ErRVdVR3UxRmp0NHdWanlEczdxQ3kzeFdqMVlzNnRPckwzT3MrYXc1TW5xdk40cVgxSW0wSTNWN0Rza0lZbXh4eEtpZUZXczF1VTlmcHhhMyt2TG01clYwWG90cFB1VXk4ZUpyZVI0bmEydDZMU2ZpTlBQbXBiNm4xMGFKSlplcVdSNHFCUXQ5bDROS3pzeWxNSkpjWXgyWnZmYjJ3S3RsN2ptUW1PeXpyTGVzSFJ6cytGUS9EVzBPQUdVZE1rNTh0VmJ4TS8wb2UranRJODNSNXFKN05JVUlSMnNTNHFqL0V1MlIvbkhQMy8vOTN3TkEvNUcxOWhGMjVzY0hTL3hkOEZKZDVJOWl5VVU1MXR4UlhoWlRQN1BPTEpmQk9nY0E1bzlYcGhnZnRYcjk3Njcwc1pIZmM3SDYwVWRxR3VmeDFOd2JaT0JiTVd2TWFLSWNUUmZGclhGSlg3dHdkU1FQRVlhZEdscSs5ZkEwNnh1WTFRN21sbmkxbUxFV05ZWkVJM1dPVC9NbHJuR2pKOU9mUU9lei9xQmZ1OFpGL2tUcWE1K2d2OTdLSWNMWHYvNTErUHJYdnc1SDBZN3NKeW5QUGZkY3hZajZEWVNhOW9MU041ck16L29lSCtGc2Z0YlBZRmxmMDBhMVpHNjB6bEZzMWFTODFIaDVXV3pGRWZ1NTJnZ0FnR1JzZWpyU1dNUGM1enlOOWFQZGo3NGVmVjI1TDVwVGJJbFArYWh2TCthTlVaMG83bzFadmFmTmNuVWtEdzFFZ1V0YzFMRHkyek5wNWxEVXQ3Q1kxK3VmWXFxMS9NVXhZeTNGbDNnVzh4ajBlZFJYNXlFOXNKNkFhMDNmbUo4VTZxNmphQis3SEd4ZnN2WTA4SDQ2amxpcCs4UVRUOEJSdFNOOVNQRmV6SUxkRnhmQWpYdHZIT3BIYjdBTXR2eE1UNXAybHhvV1orVnFlaXZYd3BsY2I2NGxOU2h2Y1ZxY2p3aVRXM29Bd1dreG1VLzd0dkw1MlBMOWthNVpjcG1ZMUZrNTJueWFIL0ZhSDViR3k2V2NoWmZXajh6THlYQjFKQThOeXFYanFNUXBCd2tjN0p1bm9lYjUyVmczcjlZektoZ2FwcjZNMXpyQ3AzdkdOTVhYOXRTcFYzMDZQeGgrWWgrMUd0WmFaWDlUV09ma1hQLzBULzhFUjlHTzVJOTd2dld0YjlYZlJTbm0vVmdnbzlsRm44RkxkU1BhREk1ODdjY0V1K2pYd2hsZGxodUphOXBweVAwTm5GWW05eU9jYUFTdys5QTBFa3Z6WWxwY3V4MWticVNTajdBMUZwekprVm82V25oa3pHZzhyWnMzUHpqcUF3UWNMSElvWjhZRDdTN1lpa2N4TCs3V3lleFJBOXlmT1JtWCthb3ZlNHIwVmc5MGZzMHZ0TE1IbW0rdHRjRit6UUIrM1QvOTB6K0ZMMy81eTNDVTdNaDlrdkxtbTIvQ20yKytDWWo5amNyekxVMmt0M3lxejJBdFg2dVZ5Y3ZFb2o2OHZFeSt4Sm01ZDhGMExndVA5aFhGTmUwMGxuamhKcXlQRnFaYy9vdm5nRHJTL3UwNjRPcXN1TVpuZmNwSDJCcXRPYng1TEY2TFd4YXR3eHV6WEIzcHd3M0xnQjFHUURYSG5JUEdIYTNNRzhWYVBTOVc4clY2bHBiRnRIMlIreldCM2tjOXpsNEQ0UE5VbjFpbnQzeWxoNG90WDZ3WlFNeVB2Vi9xeUxWT2tLeVBjc3JleW5rZmYveHhPR3AyNUE0cHp6NzdiSGpSUmhzOW9zLzR1K0NzUHhyTDZyUThLOGZEc2thRVIydG05UFFyMG1iaVV0dEdqcWNRSDFzdmxKTTZQVGNhOVo3NmRXWDJSdnVLNHBxdW1PZDdPWjZXamxxT2w2dk5rOUZFZFQxOWxPL3E1NGNIQXVvY3dmUUJVekhKOGViTjRDaWV4YnZvMGxxNUwzSnY1cGdYdDN5dkp5aHhxb2ZtRjA2TmwzNmJrUG1JeU9PRmsvMG9OU1EzRGYzNkN5K202ZmE2Y0srLy92cVIreXZKUitxUVVqNUZBVEJlckIxOWFpUCtFcnpVai9xZ3VpWHpaK3BwT0lwTHJNMGw4Wks2KzRvRDBIVlNEcnBSaTFHTzF1RTZQVStPc2ljNWFtdnp1SkY0cEpOOHBvZTJIbHNiNWRCNEprZGltVU56TmEybDErSlNZL1kvUHl6S3FISk9YTmFodGVWOFZCdXRkd1RUR3BadllTdm1hV3YveXI1bysxVDNTb2xUdjg0cC9lYk5mVENtemxGOFdnTWI2SDBrUHVqcjkvWUVjTllBNTBwZE9mY0VlWCtNSXliblBtcWZwaHlwMzBuNXU3LzdPd0RvZjA0KzZrZWFLTi95bzk5cHlQaFJyOW02KzZ5WnlUMUtlUGM0QUFSL0JWbmorRWgxUEc3bnhPT1VtMXVIWjVIbTRPQ2d1M2xKaXg0c0ZtZHB2UHpzR0dreXNhaUdObm9jZXpnV3pjekpCeWZsMUllY2thUFZwdHcrc0JXUC9HeGVGN1BXUmZoT0ovWXcwbGZPNlFNQWdWUHpMS2o3M1VHQ2NpamlFTzlsbCtQTXczaG5qWnBQK2QvOTNkK0YzL21kMzFIamgyMUg1cE9VSC8vNHh4VWo5amVRRWI5d2xxL2xXMXFMcHpVS2xuNUdhOFd6ZGRhb0tiR1g2K1d0a1p2QjJycTlPYU0rRUVITmdYcHowams2Y2gyUGE1eGVveC9idlAxNnMxOVJMcDNEMHQ2NGNhT0xhVnJLV1hvNVpudXpjajFORlBQaWx0NktWWXpjeCtrcFUwZU5RL0pnd2ZrL0s2ZmlZZ3FuOXJVRDl1S1JuODNyWW1VdmFFenNRZEd4V01rais2anAyVnhGd1Y1cm5PT0VndG1uTllIN1VIelNSK0hrNjhibWt6N00vY2tjVVpQM2dveXJOWnk5MS9qSEhudXNpOThzTzFLSGxHZ3psL3FGMCtKUnJvY3RQeE9MNHRrNm96WHBPaXlOaDBmMlpVbHVCbWZyV3pVMG5jeVpSZ0FBQkVTZDQ3RWVSNXdjMjl6SVJxdnZ6SmVuTFpiSm9aeUdvN2lsajhaTXJxZkp6T0dOMUt5WU8wOTVhRXdPNDlnNHh6dXM1Q0FLck1XQll3RGUyeWlXTlRRYytScjJZbVdkbXMvMlZmZ1ZseTlEMy9jTHBqOW5FQTc1UEpZL3dha2U4U2VwbUYvNnJDR1JJOWJHNXlhOHM5ZVUwL2lqY2xBNUVqL3UrZVkzdndsbnpwenBQcExlcDc5VUczM012blFPNldmclpHTkxkQkVlclRtcXQ3QlZaeVRQaTdjUkFJSWY5ZlM2SG51Y05VNWF2Mi9OdDdnbG11aldrSGtJUlRnN1pqU1dOdEpIK1Y1TTVjc0RRK0hVY1JMME9CSFhhdE41aTNsckc4VmU3Y2pQeGx3ZFdXY1lFMzZuRi9NQUlIQksrb1ptR3FqWCt6UG4rWDAvZXM0MDhIbGF1Rjh6Z0wrbkZ2OW5mL1puOEpXdmZFWFZIWmJkOUU5U3pwdzVBMmZPbkFFQVVOLzBrVTlOODYzOGtWclpHcDUyMU0vMm1vMFZUSDByeDhxWG10R2FVYThXbHZXdGVhTmVhSjZWejNVeTFyZ1dzekRBTlBSeFhvZlAxYytwOTYydHVaaWxwenBQazlYSytVZXc1S0p4SkVkcUk3MjBiRzNKVnkwQ0lCQU9Ha2NmT0dWa01jUk9SK095RHAydnlzbThicDhBdzFqdWw5UkVmalpHcll1UnNCV2plMVBqWU05WmZFVExSNEM2bjQyYmFzN2gyYTl5NlNQeFo0NzZzcC9DYVRsOG5zWWg4RFhYR3M3ZWUveFIrRFRsNDVGZzMvYk1NODhBSXJJLzJZMzRaVk10MzlKb2VxL1cwdGhTUDVwbjEzNjhlcVA2akdZWGJOWDM1aDJwUitQRlpPemdBQUR4QUFCNjd1QUE1NXA2dkhFQUJ3ZEl1QmFmNW9SWk00M1NyRFZsTGNyeDRsNGVqWTFneVZtOE4yWTFVVHlxRVkyTW14OFU5SUhCT0pxSGZjekVRVzFhVitOcWpjUnJNWUlqUHhzYnFTbDloc25hSTYzbUF5QndxdmNCb05lMFVQTXI1L2lnOUlCQ2dXVkE1bGRPTGdHMGRlbWN4NTg2ZFFwZWYvMzFtL3BweWszOUpDWDZGSVdhRnMvNDNodGl5WnZGbTNlMHA5RmF1K2kwUEN2SHdydmtXdGlxcWEwdmk2TjRwS1ZjK3dLaGFkdzAybkdiay9QeFVldE4rL0ppSXhwUFJ5M0tMeHFxMWJDczVlVlpvNWN2NjJoeFdjZXFFWTBWMXdkR0dSdFhSNnlCK3RBcEkzczQwVGhpVjBmV1pyVktYRmtuOWFWWmNROUhmalptNmFKNGg4bmVSR3ZtZnRFM2YrS0VEOEE0TEJva2ZwVTdQc3crN1FIbjlZSGdhQlpkSDdUMU5ybStmOWJyYldrTC8raWpqM1o1aDJrMzlaT1VwNTkrdW00RS9STnU4ZW5tYWZHTVh6aFA3ODJkbldja3QzQnI5SlRaTnl2UHFoM05TUzJiRzlXTSt2Yld1blJkSS9rOEQwQithcEtKQTNnNThmcXpNYzNrNjBaTjdtc3hLMGZqUFk3R05CeU5HYzJJbHBxMTV0RVJnRC9NQ2k0UEVUWk9nWXBIOTBtdEkrYXphdXlDcmIyS1lpUGF0ZXBNaEIzcnRPejF5L24xT3dZKzRUeWZIVXlxaHZEU0oxemxaWWx1blRadmFXLzJweWszN1pNVStpa0t3TFJCSXhkZ3hwZjF2RGZoa2xqa1d6MFV6dXN4Rzh1c004cnoxcTdWb1g0MlYrWjUyTXFYYzBaMW92Vm1kWlNmdm1RTjJaOWRPOHRaWDE0OHlwWGFZcVAxTXJrMG4rbzA3STFaellnMjBveU93QjVnQmM5clJLZ1BENnhQR1d4YzBGOFhaM1VJaGpaUHhmTllheERNYWlhdzVEdzk5YlY0SnFiTk1WSW5xd1VvMTJ2ekFXSWZBQ1lPb2Zua0d3dmg5SHEzRXJyUERBR1lxZzdFSnh3aVZyK1dFT3N1bkxZZmtmWm1mcHB5MHo1SjBUNUZBUURHeWZpb2IybTgvSkZZaVVkOVdIMk56QlhGb2psbG5zUldyZXhhdlZ3ckwxcEhKaitqdDlhYjFjazRId0g0NzVYNHRaZHlFbXYraU5HMVJ1Yk5RV05TcCtVVlR1WnBkU3l0TzA1Mzk1UTJvNGxHZ1BJQTR3K3lnbHMvbGFodWUrRDAvVEJEQ21rZGdRbUhXQ2FpUFVDTEVmUDJ4Y01qTVUrYjFXWGl2azlmbzJVK0FMRFh1WDdId0NlSjFPL0xkOGNWWUs5MTFSR09oWkQ1bFEvMk1lSlBuVG9GcDA2ZGdnY2ZmRkRKMksvZGxFUEs2ZE9uNGZUcDA5VXZtMEp2bXBTVDhhd3ZPVSt2WWFuZFY1K2F2KzlZRnN1MWV2dFpMS3FwNFV4OXI3OElhM2xablJadnRwOERpcmYyakUrdDFKSm02YVY1T2htTGZNa2h0Z09LNUwzeE1EVjJidjZBVW5YVFFCNHc3ZkhqOWFiR1dSMDZIMENqVWNXc3pvcDR4TS9xTE03VHg3VzhBMG5wei9kVkRmL0cvQ1lsc2NveFJlV21BWmxmT1NrUDlzdmpNdnlqano1NmNnNHBtVTlSS0tmZHNETitKdC9DeGJ5NDFidk1qL3FrdGFXLzcxaUV2YlZZNjRqMjFhdVRxUy9ua3BhcG1kRlpIRUEvZjVRendsbnJLbWF0by9RbXphc2xMWnBieHBiNGRJNW9kRFgwQVJ4b1BLMmJIL2JuSDFSWWZFcXN6NVphQS9zWWZXaHBmYktIR2xrZmZkQlpCNVI5SFZ3T0k2WnhJN1dBdlRhVFArbDI5UG0zdHFVWStkTTNwU1hPU282RmtQa0ErcDZOOHBLN1daK21IUHJ2cEdpZm9tZ1htYnpRMXZZdEhHazlYK3FsUDFwN2FhejQyVmdHRnorRDZaZFZKNXB2RkJjLzBsTnRwTXR3V3B6T2thMURPZm1sMWRYNnVISGpobGtqK2lvVzFhQW01OWQ2MUh5cHI2Tzgwd0wwR3FyRmFRdzF5TFV5eCt3bkdBRVFKbGhHd1RFTUFGakdDUVBqMnVwTGp3WFh5aFFYTmZLOTBMaUNhMTZkbW1OdEx1MTFrNW9vcG1tWDVFWDZUQzFLRlgvaUVBREcvYWxPL1FZbEFwVXIvcFRZVkMybitkTlhmYzBvVDVVc2hNd0hnRzdkaGN2eW52YVJSeDdwK0gzYm9YK1M4dFJUVDlVTm9IL3l5M0NJOXFjRGxtL2wweGg5UWJ5NEZodnh0WHBlYnFiL0VhMDFoNVVUOVJUMVNpM1Q0OUw1UnRhamFVZDAzcHpSbXIwNldvNzBhWitSVmhyTjA4ektzM2daMDNTUzgveTZ4dm1tMnoxTXRWRm9SM0swbUp0bmpBRHR3VWU1TnBRNEZwYzhiQXFueEVnOXRtOUVVM2xXczYyeDQwUzhsalJleHd4ZUs3YUxOdkpsRE9wcll2c0FRRGpxMDdvaXpyODFKVVorR1VnVERGWUI1OFN5TkE1QVc3L09XVHpsYnNhbktZZjZ2OFUvZmZvMC9NdS8vRXZIYXpmUWlKUHhYZldlUDZMTitKVGIxN3paT3FNNHE5czN0bUtaWEtuTjFzbk1yK21qV3BuNlZvN2xXOXhTaTI1ZVN6WGF3NlNPODAwM2RRZ3h0SmtjTGFicU93MDVnTlEwRGJkRFNNUEdDSG9QSmk1ck5EZ1ZWN2RobHI4QXJ4VWI5VWRpUFRkeU9HbCs0NGpQaGN4djZTTGVoTUlYSE9PaGU5MEE0ajN6K0JFdEFNQlh2dklWK1BNLy8zTTF0Zzg3MUU5U25uenl5YnB3ZWdOZHdzbjRybnJQSDlGNnZ1U3MybDRkYjQ5a2J0U1BuTi9LR1psbkZHdHpSSmo2M241NmE2T2Nwdk80WGV0VDB6aU50M1F5Vm5vQUFGTy9pOUdhV24yUGkvU1pBNFY3K0RBMG1SeDFUbVd0amZNT0tFVTdjODNwT0Q3V3lLd3RqVFhlMm45WFd3Y2N3K0wxOGw3N2JFemFMblVpMzQvMUJ4VDZPazQ1M0crYzlBVkhBc2kvQVpkTHpRUkVXd1FpOEdEUGplMUJucVA4WVgrYWNtaWZwSncrZlJyKytaLy91ZVBwVFhVWFRzYjM2WTlvTlM1Yk82cHIrVmxkRm1kMTJ2eTcxSWxpSTNObnRSRm5hU3ljN1N1Ny9sSHRxQjBjMkllaFl0NkRST084bTE1M2s1MzlKWWVRdEViVVk1eXl0c2IxQnhNN1ZuSm5yamtWNjJOVnova0tUbWlzdkdsQUhiUFhpVC9FdmRmOFpzWWlQOUwyWE5rLzM1ODRVWnNJa1g5VHViNGtLaHhoSlNlV0VxOXRHYTl4RHo3NDRLRjltbkpvbjZTVVQxSGtUWFNFQStBM1lhcVQ4WDM0STFycVM0Nis2TVhYY3EyNm1iakdXM05rMTVqRjBScWl0VWI5VXB5ZDI5SkcrWlN6NmxwemFCYk40YzJuK2RTODJCS3pha2wrMUpkODk5Q2NnUG9BalE0aEl3Y1lzNGZDMWI3cEE3cy9xUFNjaUUzRm9BM0dBYVZGV3A4T3B2dXE0cWhHZFJzMmErMFFpNjZIYkoxUlA5SUNlNTJrVCt2NC9zU1JlQk1Sbitkd0Z5bDBPT2hlS3dCdFhUcTNKdi9hYTY4ZDJxY3BoL2EzZTk1NDR3MEFtQmF0WFR5UzEzU0ZqL3pvUXZYbThmd1JMZlVqamNkcnNTZyswcS9rWmM5cllLOW1Oci80TkNmS2piUWpPZG41cko0ek9kNThHWC9YTDYxK1pvNm9yNmdPSVBSNHZoa2pZUFc3SE1pUFdrN3RkZVpLajNTY01PMS96cWhoeWJWeHJsd0xURFVieDBjeVoxbC80YUhsVTF6anJGZWhSWTVydlpyZWNKY3ZzRGFQcGUxMTg5cU5QRDgzcHgzTmJWVHZUenFZT2VwajUzZnpVcDkvcTNtTlF3cm5uSjRyUFBVQitEcUxyM0dhMXRKbitZY2ZmcmlMNzhNTzVaTVU3WGRSNkFZVWp2TGFuNktscHZDV3hwc3Jta2Z6UjdURnRIeXRubFlycXV2MWthbVQwWTNpcUZaR0kydGw4aVdPNHRTMEhHbFJQVytmdlZxV1NVMzBPbEtmY2lQbTlTUmptamFqa1h6QjdvTno5cTFSYW1wOXFSV2NOcjhXQTJnUE1JMXJ1STFjUytjQkFDVDY0cmRneFYzUFNjem1oWVpwN2VvcG1JRHdOZFhXNk9HWkFVcEYxOUxTSHBiNHZMZXluOXh2WEZTYmE1Qi9JNXFtNk10cUhJalhTOTlEeXNmckh1ZGZmZlZWUmJtK0hjcnZwUHp0My81dHgyazMwVFc1ZmZvajJvd21nelB4YkIzTHo5UmIydC9JSEpxT2NsRXZJM2lYdnFMMVJUaUtqOGFrZWJFbEZ0M29JbDhhSXBvUHl1NG1QUHZxQ0dRdUpIV0xMM0s2dVpRYmVjKzFoMWZQMlhrMDNzVm1RWk1zTzZCWUQya1ZpM2s0MXRmTCtkN1B4M2pOMk0vUHM0dFc1OHJlY3I5eDlseXFobjhESHRZNVVhTGErRnJXNVNuMzBFTVB3ZS85M3U5MW1qVnQ3NGVVSjU1NEFwNTQ0Z2tBOEI4OCsrTFc5RWUwR2hmcHN3K3RLSjZ0TXhvYjFVdC9TVitlZHFTdXB4MmR6OEpSM05KbnRCbi80T0NnUHJnT2dPdldNdTlCc0pSamVIcjY2bmdDbFUrTklvZldIVCs4MEljb1A2QVVySEZhcmFxZkpXMWVjV2l3K3FaNUFyUDlkdlI4cnJZMjcyQ3g3R0RBYTJoYzlPQmRObTljUitka3YyVmZHOVo4bjJzOGw5RGFqVlBLQUwwV3Bwek1XblRPaTFsNmkvK3J2L29ybFYvTDluNUkrWnUvK1J1VmoyNitXVzZKNWlqN2EybVh4TEk1bVZxN1lpK2V5WS93V21zZTZTL1NaSHRSdVFOWTdXQlM2bVp2WU41RHdkSkp2ejY4elFkcTgrVUR2MnJscUdrS1Iyc1dyUFVqNXdMdm9GTEdudFBpMkJ6QnRWNHpXRnRqS2RSYVZYQzNEbXVkZkIwYWw4R3lwc1o1MThpb1A2S2RHZEZmMlYvdU53NGJxKzRQeitFeVdYdmlaSXA4RDFRK1hNczRQNktsL0VNUFBRUVBQZlNRcWxuRDl2bzdLVys4OFFaYklMMnBGbDdlRUQzTjByeWxmdUdXNmtmekxhMWMyOUk2WHN6cVcrdERxNlhWWG9xTEQ5RFBsY21QZXBkekZZdnFaWEMwSmptdmxtZlYxdktxRHdmMGtiU1RhYTgxaldtVzFkRVlPeUI0ZUFJcXJ2UE1uUFFyRm5PYTg1RytKeHc5d0FzdS9WQXNhN1U0TnFkeFdqOEtqdllFa0Z3SlF0UG1OdkFzN05jM2U4SHJySzI1MTlGMU44N3pvM2twRjJtOVhNSjAvVXc2Z3ZrM1lLaWJzMU1FNjU5ZmtReVhXby9PcmNILzZFYy9PcjZIbE1jZmY1ejVaWEhsQnFoeEdZMlhwM0ZMZmNsbDlaWWY1Y3U1ckxWbDZvekdMSjJtaVhLMDJobE5WSnRhVkRjVHAzV1g2bVZ1dEtjeXB0bFEvQUNtQTRxanAxWjZpVXpXbzc0WGsyYkZDaDg5a0N1ZVFNTzBoakZXUGMwalhLMHRPYlpXeVdrUDhESXZ4WGFmUkZ4eldzdEtQOXI2dmJWSlBQdVYwWEJKWTYvWDdvZVYvdlgzSHY1NjNQZTFPZXhZNUtmNnEzUVRJaGNKWG1oSnJaNmJlRzFKY2U5NWJwU1B0Sys5OWhwODlhdGZWVFc3MnQ1KzNQUEdHMi9BUC83alAxYmZ1amxLUHZJdFR1TVAyNWRjcFBmOHRiVFpXQVpIZmliUDAzanhDR2M1elIvSnpkVEo1R2IyWnlLQS94akg4dytBM3ZkYzAvWStNdTNCYS9sUlRIMklUMC9XaGllZ1krRWpZdTlUalZhSHpsV3c2RXRmcy9id0x2UDJITTMxdENWazlxWmdmWi9JTHRXOWJYNXJnZlpCNjNzSEEvK1FZRjhqOGNOZit0NDhrVCtpdFRsdjNXUmZ5VjR5MU0zSkZTS3Q4Y0c2OThHTjhwTDc2bGUvQ24veEYzL1I2ZGF3dlgyUzh0aGpqekcvTEVyZUhDVnYrWjZtV0xiV3FGKzRLRjY0cUY3R3oyaVh4b28vZ3JWWXRsN1JSYld6OWVUNnJIaW1IMnZPWWxIUEkvTm0rbUh6SHdBYzRFRjcrSGorQVFDLzRlbFdEalJ5blJtVE9Wb05yeTZOUlEvZmlpZWdZMmcxYTIwUzd6Z3hoem12ckFuYXc2cG9lc3c1Mm12UDh4eTl0NDZuZFV1K3hKT0lsbWkrbFNONjRWaXVoVlYyNDF6TDZ6Y041NndlcGhnbjF2YjdPZnVla1g4am5MSXZtbGJXNStIcVJHdmZsUnZsTGUycnI3NjZ0MDlUOXZZL2Mzdjk5ZGZOUlpZdmpiZDhUNlB4bWJ5c1g3aWw4VjM4ZmNTS2IrVjVPWm42STlpclo5V082a2J4a1RXTTZMTnpaZkJFekZ5NWV4RWZBYm1QeEplOUk5UXZMYjdtVjIwOWlFM3RZNHdSdTdWcTY2aHprbmpkczhJQk1neEZJdWN0WEYwSENEeU5ITk5lR3RmeU5MN2x6elBNUFpIZVNrKzA1Nkl2K1JwR3JESW92YzI0NlZwUERBUEZjOTNtZExoN0RSUmNhckMxQXN6N1VYeTZyMUQ5WnJ5UEtYKzV6L3VqYTZsTTcwUGRxdktOY0tSVzVjdUNXaTViYjkxL09vZmNoNzdYWGJsUlBxUDk0UTkvMk1YWHNMMThra0kvUmFFTEszOXE5R0tGczN3clQycTl2T3hjKy9CbFAxay9pZ0hvODNnOVdURnFubTRrdHFRbmExMWVYYTlHaEtOWXBJOXFaRENBZUswUG9QdjBCQkRNWDVRdEhQMlJrS2JMbUxZMmdQNDYwVFJSclBBSUNLVzlEazlBeFhLL05GejFXbzNpYW4wVVRvd2NTdzNsSmt5NW5KWmpObS9VczdKSFVIVVMxMjloTHlSVnhFUi83alhoMTJ3NXZvWlBZZmV5RjUvc05XRUloKzA3RHdnSjBTbEFURHR6UGJrMlovRWoybjM5ejkzMmZraXBOMXRvQzZNY2pYbGFLMWZqS1JmRkQ4dVB0SVd6ZkcwdG8vUElQY2hvUjNSUkRXOXRzb2FHcVdtOHQxOFJIdEY1K3RFYW1yRThlaGpSRGlnYUI4QncxdWoxQWRCZUQ5cTN0NGFSR0t0SkhnRFJnOWVxVTNuVTh5b1c4MmdQZjdVdWFBY0puWnZ5S0taMWMzbHRPWDNQZFZXakdLQk13R0lUVGVlZmN3aTJZM3g5M09jNnY2YkdSZjdFV1gxVjF1eXY5K2wrVjBiNjAxRDkraDJGenlTQ3B6MTNuTlpIMzdjWDA3UlcvcHI4RDMvNFEvajkzLzk5TmI3VVZ2L0YyY2NlZTZ6N2ZSU0EvZ2JvOFZsTzR5TS9vMW5UMzNWK3I5WWFzUkh0R3JHc3pvc1ZITVd6T0tzYndhTnpTVTBUbE9FQXRGK2FwVEY1VTB1Wm1GYjdmNjJNM1BDOG1IWFk2UjdFRTZpNHE0ZUJUb3NMYmhySXZIT3V5aWtQM2Vqd01tbnl1SzlCNXhCclVQcnZha3dGWnE5aDZmdDlUYjZPZTMrWHc4cWs1OXlJTDZhZTQxWS95L3kycjhLdkhEWUlRQnNNZEEzdytvUk5yTS9qNDdYNXNSSDkvL2svLzhkUUxyUFZQMGs1ZGVvVUlHSjMwNlVMb1RHTkwxeWswN1JTNTlXeTVsdkR0L3JKNWhmZndwN09pa1YrdG82M1Rpc3Y4L3BFTldTOWFJNnNwdmlaL0F5V2Uwek55dFhGQUFjNDl5VHZVZ2NBZ0dEKzJDZHRjNDNtOXJXOEhxMVlKc2Q2NEhhSGpvbmt2YUdpbzVxQ3JmcE92TlhVRGd6V1E3dmcwbFBQV1R6bk9LWjdFSzFIMXV0d0l4UWQxUnY1U244MFYrTGVqK2VvRWNGbCtwZ1pXU3JvU2ZUZk5wVnJSTjFlUjY3T3NwZEFqUGJQdUFuMG5MR1daSCtWbHh0a2NCYWZlUjlMN3RWWFg0V3ZmZTFyU3NZeVcvMlE4dnJycndOQVcwQzU4Vk9qaTZOeG1aUFZlWnoxVU5LNE5YMnQ5NUg4NGtjUHpwRlk1T3NZQU1DTzBldlVtNTlhZm01ZForbXA3YUlaNmMvckxhT1h1Q1dDK3Jzb0NQTTFRZVZ6Yk1TaWc0bG0yaDVHTVkyblhQZXdwWEhCRjQ3NlJVdHo2STA4ZnJDVEdnckhzWFo0MEE0WHBTZUthVDByajJPOUIyZnVhVEJ3V1dNdEFnMXEvZFpvNSt2WTdyZlh4bk5VUkhxU3ZyNzJadkxCSGZwZHo3Mm1ud3NwNUQ0QWJWTG9oRGJxVTJnc2JlVzF0U1E1ajdkaWxEdlNoNVJISDMyME5xczlwQXBIVFl2TEdwSE80NngrdE5xVzVtYjZXbXhwWHJGb1h6Z0dBSkMvWHdJQVlNWHMzalRzNVhscjBEUlpITTJWN1YyclJTM3FRMkthTjkxN1p2NEFBQkRxd2FMd0IzQUFlSUNnM2FTa3lSL2pZQ2JKTVcyOUl6ejF5NDNXdXprakQrZ3hVa1BqYWswTnovMnd2bGpQN1NIYmVPMkJyWE5UbnVSdGJQWEJNY21iQmdkM1NYT005dFpqUFRiNWRIdnNmWlBhZUk3STEyczFUcTVadmE0aWZ3S21SdGNoaGR3bm5FaXBRSEptSDBMSFlvS3JzZTQxMGJsUlh1Tis4SU1md0IvOHdSOTAvRkpiOVhkUy92cXYvN3JqNk1Ob2w1aW16WEM3K3BJYjFlL3FyeFViaVhNZEFJQ2VSMk9lcnMvTHhaYm9JcnlQbXRKZk1zZEVRUDg3SVFkbE9HQitDeDkwSEl0eG9qZmtQUHVFWmI0MUhCd29uL1FJelNodkhSYlUyQVE2djhNYUorSmRmZVhoNmg2b09vMTJ5Q2lhUG03eE1ZN21WUENVTkhzNm5pREZWYUhneWVmYlkvWEljZS8zYytnNU10NThIa0xoRXhaenZ2YVFkdzhLY3U3S0liQXlkRThZTDdTMER5Rkc3akRUOUFEUTdhWEhlOGVBSmZwdmZPTWJxeDFVVnZza3Bmd3VDZ0MvK2RMRnlKdXlwcmRpWG0yUFErei8xQzdqbW05cFpEelM3K3J2R292aTFtczF4UUFRRHdDQWZucWlmNUxTY05PVkdpMXZiTDFMZEJMTDY4QjYvWGJCbXEveFVmNTBqeVRHMkJyRUFBQWdBRWxFUVZRMURvRC9Uc3IwVXN5aEE0Q0RtYWNwOVBYczcyYXFsVGttU1M4cWZXcnIwN2dvaG9oZDMrSERZd0tkMzJHcU1iZ09LK3ZyK3FHeGl0c0RXdU1hcHB5bDBlZVFlK2pQMCtNcFI4ZVRiL0ZlL3VUVDF2VDkwZU5SajczZTZtL2lSS2l4T09EVC9ybXc1MUg0VEV0WTZYczg2dk9HdlZoOHNCK1ZWMTZyTmZoWFhubmw2QjFTSG4zMDBZcGx3OWJEU2VvbFgyTGFnM1NFNng0R1NzNkk1bWI0UzJPV3I2OGJvRDBKK2NHREhsWUtMalZiZmE3ak5YSjlqcTVQWWxscmFaMHMxdnlJVCtrT3dQei9vd0NBK21PZXpIenEzOTdSN2w2T2FYTmtPY2w3RHcvem9ZQUtwaG9OejNOcThYUS9WRmR4ZStCcVhNUHovQjF2MVNBOWQvdW81OGJ6YXYxTExITjBYOGQyWFUyYjZVM0drWC9qZlRTNjVUcXZwL1RkQnp6aDJmdEYxcW9jVTlWRzVZNHdyVmFMOE5hOExCYXN2L0xkYTdNdS84b3JyNnoydXltckhWSmVlKzIxZXZPWGhxZ2ZOQURBNUdsTTA5TUhSakZMSnpXWm5DVis0Ykw2RVg5cHpQSjV6d0JBRGhRV2YzQUFNUHJKeWxSbjJXRWhFNVBZMHR0cmozWFovclg2R3UvMVU3anAzb0pRemhUMUU1V0RXVXRTNnFjcTJyemlVQ0p1blR1Wk5wL0dXVHpsd29jSHhST29OU2pYWWFzR3lmZmlWSlBEMmdOYzR6eE0raEw3WnMxdnpUdnBHcFo1Tm00NVZvOVcvMTdQVWx2OFNVZHdJNXFxaTllSThLRi9EZHVMMi9uYUF4NjVNOFFKRmdDRlAydXo5U3lPL2MwK01ZSExkODJBOGhyRnNZaC81WlZYanM0aDVaRkhIZ0dBdnVseUU1ZXhERTlqbXQ1NkVHczZLMGZtUmJValgzS1JYdlpoK1ZHdGtUb3lkL0lCQVBoaDQrQUFnUjlJQUxSUFV5UUcwT2YzK2w0YW8rYnRWMmF2UnJHMGFBMVp6T2FZdHJYZGpHYWZtdnpsMlowUEpjb2NubG43SVhsTjEybkVEWlQ2SFo1QTVUWE9yVEhQYmNXTHFUcGpiWTFIYUpLQ0tXZHB0RnI5ZkhhYzE1eGlPdVo1RXVzNVdyOTlydDkzMUtQcU41TDQwemN1UlFvNVEvdWxyeVhCcnI0NU9XN21NMXkzVDhrNVpLK2FubWtGQjZETUhmQmVUUExmLy83MzRSdmYrSWFxSGJGVkRpbXZ2ZmFheXRPbXkwMDh5OU1ZdlpGTHJkUm9Pay9qY1V0OXlXWDFtZnlvbHVaSDJzS1ZtOFBCZlBBNG1QL1Vqdk9mNGllL0hXSmFUUHN4RU16YStEWDExdEQzMlB2ZUhvM09RMnNXamIxZnVUNHpPY1VxZHdEbTc2TVVVLzhmS2UwU1NodjdaZGtiZlUrUmFldlFlSGU5eFJjM1UvT1FNWU9hajQycjJNb3JtTXpOc094QjBWbWFwdVVQNHdrWGplUWxidWJ0SVk5WnRlaWNHcWIxcEdieTlWb3k1dlhXKzFHUHFzKy9NVitVZ3NvaXdTU2VlY0N2eG9HMi9ra2I1aHIxU201M0Q1RHJGMXpsbFhZQWpENGQzb3NoNGlvSGxaMFBLYWRPbllKVHAwNTFQSDNnQXJTRldId21SNnVSNGJRNVBHNHRYM0pSWDFGUGlDTUhqdnk4dkI0QVBXd0F5TU1LUFpBQWFBY1hxUVhRRHhPVEx1NlQrdHJlRnZQV3JlRW9wcG5XUy9RNlptcDJhNkUzSC9weXpERUFtT0lpbGpIcjA1YW96OGkwZk1uSjY2QnF4RHBZbk54VTZZMjM0d3VXdFFVMjQ4WThYU3lvRDZBZEdEUk80cmpIeUtjOVRQNFkxbU9USC9Vc2NSU2JXVlozMGhITXY2a2NEWnNQZUVhanFlOE9BeGFmNU5RMVMxMnlsc2FyMXluUldqckdLOVBVdVBxYTJieU12ZkxLS3pmL2tKTDVGQVhBZjBCcU9kYURYdk1qTHBNN01wK3NHK2tsRjhVdDM1dEwwOG82L3J3QW9IeEtNdjNZWjRwNW41NU1lTkxObGVjNUtiWjcwV0thMW50Tm81eHM3WUt0K3BaNTlTMmRwbUdjZUhoYmh4ZjUvMUNSdHVSLzNoYVp0UytVMXpTRlk3b2IySzJWeGNuTmxONXdPNzVncFFlckw2dUdGNHZtNHJpOGgwb2ZWVkZ4WENPS29WcFg0aW1QWW04dW1UUDVNZmI3MXZSUm53eVYxNU44RTZuQVdCejBIYTU3Nyt6Q2diWXZodGJnR3V4N1ozekFTY3U4dHpQOEs2KzhvdklqdHZNaDVlR0hINjZZUHZ5azBadXk1Q1J2eFdRTnI2Wld6OU5sYWxtYXFEK3JSblpPTDFkcVpUek9CUUNnaHdrQStpa0p4NVBXKzJTbCtBRHhRei9xMDlKNnVaTFB6cVgxUjIyazkweGNhbFJ1MnQ0WnpqVkFqeUdncWkrbTNTRFhNcm1HeURkanFPUk9kK2NPVTU5cFNMNkdHV2ZVVmg5ZUVXWjl0d2R1NC9sRFdNZEduODUrOW51Ym1ZZlBNUTBVNjc3V3A0Y3p2dDZYOFBtM2p1Tnk2Uk1tOG1kT2ZhOG92SFpkcjgycC9WZzlPdnBwNE91V2xuNmZEc2ErOTczdndSLys0UithbXNoMk9xVElUMUcwWnVrRFdHcTBoN01YaXg1a1dTNVQyOHZMK2htTjlqQ0w0aGsvMGhadWNzdkJBcUQvWkFRSTlqOVphZHBXQTZBZEFESjdFUGxScnBVVDdXYzBaellXeGIxK0FmcjNBUUR3VDA4bUFnQ0JIMXphUzlEckQ4Rm8zOW9hc3J5bXNRNEdWRzhkR0dxY2NsNDlHWnRBSHpONjl1Zm1EM3JxcTMyS3ZmQjhYMXZtS1hOWVhQT3BUc1pwNldqdGxxL3R4YVNUbVBqVkpmT1FiM0lKNXVFamludmNvTFpiZDFZM3dLbnJtWG01Umg3R2pwT1dlYzlHc1YwL1RkbnBrRUwvQjI0QTdVWkxUVGJzUFlpdEdPVXlHb3Nydk5aenBwYmxGMjZYR3BuOGFCMFpyVjI3YUhHT0hWUi8rckVQQUFDQzk4bEt5NU0vQ29vUENjV3MrSWlXbWpkM2RyOHlyMWsyTHZzeitRUFEvM0hCK1REaS9kZ0hEL281Tkt1SEhLV25KU2JyYUhXdHVhTGMvNSs4ZDl1MUpqbXFSa2RKZmhEREx5UjNBOC9BZWNQbUJnRUNBZGM4bm1YRWpmRXZMR09id3lNQU11NXUyN3lIYzE5a1pWWkU1SWhEMXF5NXZvWTliSDJ6TW1KRVpHUmtWbWFzcXJsV2U0V0ZlMzNhU3o5TFFlTG9GbDdTUisxYUhzcjhPdmZ4aW83MU9YSmtyM2xidXJzWHc5cGVaVHJPK1c4ejdVbFpPVm8vUHVhRlp0ZzJlSXlldkNwai9YamNWMlJVdmpUYklsTjZ4KzhkWFdzTlAvdlp6MWJ5Qmw0cVV2N3QzLzVOdFZtUThsQ1VISFpZUnJvaHQrMnFuWlY3dGhYL1huK1pQdkloMjNkaWlQcG51cTRIb0Y3TEFQb0xzVUJyUTk2NSt2c3FBTlNtTXZTajZMa0tsRHZqdk11Vk9tbGpaVXdlOVZ1MXk5cGVqQmNaK2crNUNUa2FiajhwWWErQTNCaHVnUG55WkN5M2FkdHNycVA5VWhIaDJlcU9ZbDY1di95Z3ozM3N0c21oMzJMNWRjM2IyUmgyZFVLcVk5RC9YRE9pNXUrU21aRFB5NlprYnJIaXljQmpwZkZYZkRwOUFCdjlPUEpGRnVSQjB4cVZUNzBUdzQ3dWxWYyt0NHVVLy83di8xWkJ5QU5aWW5DczNnNk9IZWhNem5qZTRXeDVsaHY1WWpLdlBXUVpQL0x4Ukx1aTYyMEFxcEM0MnJJNEFYb2gwbTNYVnoyWHkrUDAyeEQ5elpUTzJjK2R4MlcyekU5Rkh2bXE5dU54cGI1aXUyeGtCM3FCY1lxbWJpeXJodXVwaU5sdGRyOHdhK2NyZzgwVHM0OWtWcGUyelliSy9FeVo0QzUyanM0OXhGcGlNNjZkWE9oeFhQZE9oUi9sSk02OUxrVFc2M2JhWmZ5MVhZMHY0NTdTdU4vK29kdXplWTdoVWx1R2xtVjZLU2F4Vm1YdjZNZVRlLzMzRDZGYndtbUxUT21kR0NLZEovL1p6MzcyYVlvVUNSdWNQSmgzOVZJMzVONGhIWEVHUEM3cmM4ZC81amZqNy9SUmFkZTV3RmlkUGQ3ZVBvNmhPMDVkbSsyb1FNbi9ac294NDh0eW5zZGVHL2ZPOVYyZDVXWDZIZHN1d0N4T2xzM3RUQy83UW0zMjMrSjVFci84NVM4WG1SMlhKL04wV1Z2S2RndUVzTkRvRjh2R1RuWGoydk5GWWdMNFFWK0tleU5IdnM0ckJraGhVTkpWKzYyMWwzNzdoMjVQV2JzdXA5eXM5cWFzMXY2TWZwZEg1UldaNXc4c0oxeEc1YWZmNVVtcnVteUxUR0xuUHMza1V2ZktLNS9iUmNxLy91dS96bXQ1MkE3WXdDMG4wZzhka3cxNWhXUGxrY3hyVzltTzM3dDlSQnltejJ5ei9rYjQ2NnNlL1VxbjI0eU41T0tPTml0V1FKNm1kTHZYbmpZd2JxUzdZN1BqSStNQy9zM3M2ZWxyblhPdW91K3JmRFM4Y1RGNWxadTFwY3dyQ3RTMTVOanJmckZzN0xUdCtjajZUNjZqOFZaMWNjNjh3cU55M2RzQXFENmJxNzMyMnEvb2N2eXp5TFNKYlJ1R2JROXh0dWFVaTFXWHlweCtBZEtYSTJQeXBXMzZWRExpMHVzbjAwZDJUUGVqSC8wSXYvVmJ2MFhZTVc0VktidFBVU3Fjb1pkeUpodnk2T0QxYkJuWDhySTRJaDlNRmgxNmxyOFRhOFYvYlV3QUswNUdlN2krL0Y2RnkrQ090djhIM3RZeHNqbXM1TTdUWjM2cithckVZbjFrZnFyY0ZBZDRjWExxME1BTG02RWZLSGEzZzJnTVZ1ZHhNeDZ6azdKeHJXVDlaT0RYL1dMWndOUEN4Zk0zcmtsTTlscTJLL3dzRjNVdUx5NDhqcjVldWZWK2I3UkZUbWU3WDFqSnhWbUMxWGEzaWhPQTIwNjNLa2dxU3dzWXFXTDlPM0kyM3Y3QngzQmQ2dHd1VkNlR1NKZlovT3huUC91NEl1VVh2L2pGREVnZWZBTXlXS2FQT013djQrN3lQRzUyVUZwWk5kYXFqV3piU2M1aTJ6bFVwYTdMQUp5RkJLQmY5WGpmUytsKzVLYWxYd1BoYVAyc1pLOTlqdk1BZGNhYmpTVnJWOGJ0NmFvOHE4djBPMXdKUGw4SDNJM3R3RnE4WEVzTzZ2c3NwTDhLdkZnbElyMm5zL0pYMnVwYWJNS1BGU2ZldGRjUHUvYmlMVnhuN1pqTEN3K2ZFK3NpN2s3TXRDM3lKU1JDMXVTbGJwOHllNSt3OWFka3hNYVRYWmZhdmlwajkzRDEvbkRsanQ4MS9Ca1VSYm0vZ3M3Szc3N3l1VldreUZjOU1oQjVHRE45eHBFNkptUHlLcThxeXpoc3ZKR01IWGhXejlvVlR0U0hIek1BVTV4Y2JVQy92dW1jMFpZcnUvY2p1UTFvQjlycFEvZGhEbGpoS28rM1ZzeDQxNWJIZkVwWS85VllYclVkTW1DOVo0Wk1ybzF1Z0ZtQTJBMXE5d3V6SGtZc3JIOHZUZytlenNxenRwV3A2NTRNZnQwdmxvM2EwN21IUy9FYUNPSjg0VHByMSt6OElpUFMzWTNqVG50bXM1bjJsTm5paEt6MHRyRHlmb25OTmEweU1mSXlrQWM4Nzk2OGU2OWNpdkhCeDNFMTJ5SlQrbUljVmQwUGYvaEQvUFp2Lzdhclo5Z3VVc1pUbEdYRHhCcmNMbWZvbUl6SnF6eFBKdVZXNW5HcXZyT0RNVHRJSzV5b0Q1OExBTG80dWY3T3lXaDN6dlVxWjdTdFgvT3FoenhKQWNpNEcrak5HY1hQOUY1dUpWamVxL21yMmpHK1JNVVhzTjRia20vMVVSNU5QZmtZYkh4ZXZKNDgwakY1cFQ4cFU5ZGk4NjBVS3pLUG5zK2xQZXk4ZnJMcndIZmwraTZ2dCtjVnBLcnFJL052a2ZHWHRzalRiUGNMM1Q1bDdEQitkM0hpRlNaS1ozMHkyNkhhdURlbzNQTWR4TVpRN205RFAzUjNucVpzRnluait5Z3lJTG5SU3R6bGVIWldYdVY1TWltM01vOVQ5VzM5VnRzVlRxV2QrZTlOK1VvR1dGL3o2QTFzOWRzVXQ5K1FWNEVpZjhPSHZlN3BmZkdZczNuSnhycVRJeHRiQkxzR21Nd2JTNmF6WUhNM0lNZW9jSUQvalpVM3dodkRFM0lyUzl0OUVmTHJmaEhxeHZVU1MwdDRSdDgvZUN6SzdzYjFPM1JWM3F2dFVHZHlOR1g5UXJjRDJWUEZTVnF3R1BYVU5kTVczRkkvUTFXNEg3clE4Y0hpTUhLSm5mc3kwM255RHlsUy92bWYvM25aSEcxQWJQT1VITHE1Q280OW1KaU5sWHYrcXo0OWY5NGhHWEdrck5xdWNPNjBQZi85MGhZclhkYTVzZ0RCNWZjNHpxY2xyWE1QNEVBRCs5THNmTElDcUlNektoQ3FCM3pFdGRlQVdhTWpxS0Z2VUxGSlByVWZicHc1ck1SdmRSSlJuNjcrekdPMDZiMFRYcXlSbk9VZ2ExZDRyeFFuZ1BFbCsybU9EYnVXWnNRZkc1ZlhyeHZQQTd5N3VpeiszVGIxWi9QSTV2SlM2amFJenp1Y29QOVVic2VieEF2d1BIaHlqK3ZsWjZVMUtnY0MzNGsrc3dQMlgvbHNGeW5BRllnOG5KbmU0N0NCc0lOZXlqMmZyZm52eXUvNHRMS3NMVzFZZjVWREwrTTgzd2IwSzVuUkJ0S25LUmpyMmp3OU1hOTZUbEhYQWYyR09BL1MxcTdyZWJOS0hYU3VvL0V3SGJzZU9JNnJUNlVuL1Z1L3R1M040YTR0ODhFUTZaZmY2aG41OWZoT0RCVjR0cDQvVDg3K3hnckErZEhCejJUMGdHdml1bC93YTltMmNvaCtqSDMvYVB4YXh1WmNWM21SVGRST2MzWWpscWZiN3R6M0M5MCtaV25od1dUV2p2anhaUDFEeDZRcFRja1pOKzE3cUtyM0ZNdU5rRjlOUDI3QTcrOFZuZVY4OWRWWDd5dFMvdVZmL2tXMWJXRHlrTjdoU0o3Vk03bjA2UjVFaERjUStZeGtyY1ZQVWxoL0hxZmlaN2ZmZWhzQXZGYzlvOTA1MTVDdTMvTEJjUjZKcmN0eE5GR1F0Rk4wblBkQmJ3TzRucVljNWxvVUs5R0JmbGZYQlhDTElCVVBzVjI0OFBXaExXa1BHWUJGdnFOZmRBM0FvZk14VmEyNU1WVEE3SzErVjhma2RyTzNNbW9qWkY1aFl0djBHcXYvMmZac3BHOFNZK1U2MDBkMlVmc0pPOW5PWXQ1dHUvUGZMM1Q3bEdWRkJWMXIxcTdnUjEvcW1KUzhLcnNhYTk5dzR2YmtqZyszWCs3NjFqMTdWN2Y3eW1lclNQbjV6Myt1T3JZYlc2UmpITVliK3FydjF2YWVwTHdxWTNGa05sRzd3cW4ybS9WeDZRSGdRRy9HMzB2QitYRVZKUmlsQ0hEMFlxWC8vOEI0bWdKUmdBQzRmajMyYUtvZ1ljV0tIL005M1dpcm0za000T3hUeFNOak1PM0ZqL1JGVUlvTGVwNGs3dXFaM1BOUjFUTmtOa3dmMlZRMitxeHRaUkdmRmhvUU1kcTV0ckp4VGZwYStqMTlSbk1TdFQrbFhhU3J6UEZPT3p6WW0ybGZCRDUvUXQ4L1lqdldYdXhZYkZWWnYxaGxwM3lKYjZnS09iNFU4dEtQZStxWnZQRlhzVksvSTJlY24vM3NaL2ptTjc4WmswOXNGU20vK01VdlZOc0d4UTVwcHBPUVBNL2UyZzVkZE9Bem5zZmRrVVgrSy8xNW5OMjI5RkhKaCtUMHk5cjNVcm94MEl1UTgweHVEVGdPSEczY0JnZlUwNVRUVHYzdGpnUHUweE9sRys3QWJ4SStubm8rWkYvcUZRbUxJWGk2TW1SakRKV0N3bHNMakF2RXZpTDlSeU9LZyttOHpYSHErb1VybzRlQTZTY3NIdnJGMGg3WHlwZVFVeG03bHViQzErNjFsUzFqTExZem5wVkY4ZHoxbWJXWHZPbkdLbSttUGZUWjNERTVhZmNQSHNQVU1kZUY5WjcyQmU0bmtudCtxbkVERFNwMWhmbDhSZmZWVjEvaG05Lzg1a29tS0JjcDhnKzRBZGRHS1RIMGtVNGlLejZxY3FsajNNdys0MHBaMUNmak1GNTBzRElmV2IrVnNRKzVqZ0VBc3UrbEFJRDgvZ21BUXhRb0IzbWEwaFhYRFNNUGZITU53QzhPRGtCK3J5TEtXNVpUVmhqTm01WDFLWGoyNlVyLzhJdU14VWFxV0d3Yk9xYVA3b3VQZ3RkbkZFdURLQlFOamNxRXIweHZPZlJ3STdvaER3OHhLL044am1zWmQrRTZhMWQxT3o2ejlvNWZLNnY2QmRhY2V2Sm9mdWlhTXh3cXM3NlRHSlF1eWNHVVJlTTQ1WXNNRzJNU3V1dlNqeHRvOEc3UmJCOTVSZi9WVjEvaGQzN25kMXk5UkxsSStmblBmNjdhTm9Eb1lQVGc4WWE4VWxSSVhlWWo4bnRIVnUzRHlxU2ZLdjlPZTBEM0N3RHlRQWRHY1FMSXB5bWQxLzgvRnZMWmJ1ZXlQM1N4QXJUcnV5akhGY1BSRGpUeGRHVWUvdlpKaXlnT2p1TzZ0cEFGaVcxYlhSZUtmbVhiaVduaGlYYW5DUm5XL20zY05DWWhyeFFuM2czditSNDZJUFo3RjE2ZlRDNFBiS3B6ZUhKelpSdXQ1MWZHUUgwMmNkMHY1cldLMzh3amEvZVB4cTlsSElYckhWM1UzdkhKWk5VWXF2RlUydTdjWDRKVjNwSTJ5SGhaSDQ1dlQzWTEyeXJ6N2d2R2pmcEg0TXVSMDdFWnVkSVNPUUI0N3J2T1YwWTZ5L25xcTY4UzVvVnlrZkxqSC85NFhudEZBdFBid0wzTnNiWGFkMHVrZk9JODRLWjhISGlTVzVXQmIrN0hzZjdFNS9FeVdYVElldnlkdHBScEhxRC82OFJYZTlDdmdnVlFUMC82aVgyKzB1bkdxa0JwL2Zzb3czdzhUUUhRdjRzaXZwZlM5WDR4d0E1ZWVhQkhlVkIyWTM0YnVtL1Rubk5QaWhYYkhuWUFkTnhqM2NucjBYMFFuN3lPN3BGbHJRTlhQRVFmRlMwU3JPK2R3c1hySStyYmJzb3VwNWwydjZCNmdQY3BaVXNSMFMrNHJnbU81V1Z0SjBhV2F4dHpWWmUxcTM2eW5ObDI1ZHFUaFg1dHJreGVGL21weXc3MEpTNDVOMFplbWU5THplVkFNUmZFUG8xSnF0ajl4Y2EyMEU0dGtRT0FmOXUyUUhjeW9ucyswUDNUUC8xVDZXbEt1VWlSeURZMkcxaTFhUEg4UmphZGNFM1FjUnhyMjNDV3cwdktJUG9qTXVsM3lIaEI0TXZlMWZaa1E5NUY4aWYzMFFic2YxVHdyRHR3SmdGSFR4Ym1kMVBhbVltakZ5dkEwUXVVTmg3aGQ5ODQrZ2RPVjEwVUZ3TnlmSzNwd21UQXlsaDdtVi95VklUR1pOcktidGhDeTlYVEZUTU9ZSTN2RnNaNmxPT1NjZ0MvYkwrYzE3djk3ZklCYmhOdDVFby9PSEtOWUxWdmZjQmFiM3huQjBUa1kxelRmaXR0S1pOOWttc2JwOGZQMnUvUU1kbVR2bXg3bVo5K3NjcUVYTWxRaUtHdE51SDhGZVpZb3JvV0dkZjZYdUtFNzZzci9iR05ScnN1RGJwZ2RlL0pCU1BaSnpMOTRGUjRRTEZJK2ZHUGY0elcxaWNkd0JxUXgvRitTaHYyVmkvOWVqcDVpQ21kMkxTbkh5R2JrOHRrRVAzWlJVRDgwc05SNkNPWkhmdmQ5b0IzbUZ2YjZ4b0FaUEZ5TGM3NVJFVjlJZmJraWZiUkd0cHhURGx3ekNjVDNienpHdGFuS1gwS2VERWc0NVJ6UEs2alhDeDVrTDduc000NFNRd0ErQk9mMDVleWtmMk45ZEhXdFpUTnBZUzc5b1hmcmx6NzZ6VEJlVE9pallZZFBJdk82cWZKWmVzZVlNWnZKbHV1KzhXV3ptMUx2c2hKNWZvamRCbVh5ZTdFenRvWko4M25PcW1MYk9tVGNEeFovOUI5VHRrNkZDb1A3d003ZHErdnE3SEdtZW5hL0VkclNVTlF0ZHdkUWd0MEp5TWpFTTRQZnZBRC9PN3YvcTdEdmxBcVVnWnNKenNiTEJ0RXBQZDBUSzVzeldGSE4vSklKdjBKV1ZkYy9KM0RoOFhmbXYrOUZNdVAydGJPem9sbjI2OEJnTC9xZ2ZwMTRyTjl1cEpGU1Rzcm0wUElyNVNhUXNBVUo5MVgwM054NWp3Yk01TXYrYlB6ZklZM0Nnd1pBd0JkeUFqZThEVTRnUERYRzcwdnN1NnljYkE1bTNFRGROekx1QUt3ZXpSRFpjTmhZSnZ2b2lQNk1SZU1JdytFNmtGQ0R3WGlUN2F0NzkzMmxBMnhpTUc3M3RIdGNEMGRtOWVLN001WVdOdktvbm1hYlUxSVpYVHRXanV2ajJaa2pNZmNGM0k0NVdhTVUzWTExakhDOTllcHhLTHBDOVBVT3NkMXJnL2lLdW9yS0JVcFAvclJqN1lLRXFabm5LSFBiSGVLSFRuSngyRU9LSkJEcXlLYkhaSER3eHhHWHFFeElIbWVqY2VYYmM4dXlqbnZHNUJmbkIyeVB2WURWN0V5MmdEYVdaVElmMFd4TXBLNEZDZ3paZnJKUmJzVXk1TUxyMGlMOGtkOW5XMUF6SFBEL0pReExURmJEbGFaMVlVRmkraDdrV1BOd1VTbWZ6T3FHMDY0b1V1aHVteUxYdlUzWGE2KzZjWnZZcldjMFpaeTYzdTNQV1ZETEdKWTRpbnFJaTZiajB6djZYWjhaYlk3dmdDZHM5bnVGN3F0alpTY2p0VndxTCtnM3lsejBsZ1o5OVFSUCtrNGJmeEs1MmphL09mU0s2TE1HUXdpM2NXSnRvSHlIbkh5S2s5VDBpSmwvRmFQN1R6NmlaM3BMY2NyUENJNzc2ZkNhVDgyY1loRFMyenN3RG5wbTdMcFV5NmFZNVdsUDlrVG1YY0lSL3dCSzh2NkhuTGROd0NjcjNyUWg1eTk2Z0dPOHd1eTltbktKZS9tM1c3Y29OR1RDL1kwQllqSE9PUjA3ZG01S3I3dW1XMVJWQzJjMDc2ckxydWxMNmM5YzBGaW5ENGxXSjlTWitnc2YrOUN1SWxMaGVING02L1FOZTVqNXpCUmg2UGdlTmRQdEFIVGIrRjZSNWUxUFIxYkN6dCtiWHVIeTJRMGovMWlsUW01bEdWOWRNSDRpSDFsYytySnZYdU14blpqakVNZTNUUERVREhhY2lHcGxnMCtESmxyb3QzWVh4ajN5eSsvZkwxSThmNkVyZXh3cHlDeCtxall5UXFoVHJvMlpEWEJkbU1mQitONU9PeklGcC95Z0dFSHdpbGpZN1N5dSsySTQvRXM5N29lQy9Eb1EzWmY5WWdpcEoxalBBQzBVYUMwbWJQbzZjbTBIZmtUaC9oU1lNREdlbzNaSzFEc1BNaTV1dUp1K2hxcmJ2b01ZZ2R3RlR6aitocDAvRFJIWVByVXd2N2hGU2NBOEV0eERUUGVEd1RkdkVGZTQzVEZaY01nNDdkanNiYlc5Y2JCdUZ6M0M3K2Q5R1U1cWwvbmVrZjNGRGZMRVpQZDdiZlVKblBwenNkRjBETGJEbVQ5UTl0ZWwza3NVMTdNSTRCbGJVeloxYWpKcHR6bXNLQnZxdFd2bG5DTkhSOE9nQmJvL0R4WVZINFZPUzFTNUovQ1o4VUdnTEplSXZySmVDRFNYU1F4aWVOUU91WDlvNjJIQTl2OHZRTmh5TS9OWC9tMEJ3S1IyWU0wS3o2eWRwVlRzZTJYaDFoc0kxZkFlSldqMnZOZ1ArMUV1NTMwMFllOEtXVWhzQlNONW1uS2pIVjBid29VYi9Fdll6MkViOUVHb0l1UU9jd0RmZXAwM0pPUGl6ZlhpMnpENktESHB0b1NwMDZKQmIrcmhKTHhSL3lXTzB5Yys5SkRkWU94OERaNEZwUGtzVTA0M0t5Ti84VThPVHlramJYZmJpY0hidlZ3VHcveUI3aVpYVVcyNHk5ckEwNSsrNFZ1QjdKMC9aeXkvcUg5ZTdJcFgwTk9jNVRKcXpHVXhxWDBKdC9xNHRMcEpodkxJZ2wwZ3JXNWJ3eitWMTk5aFYvNWxWOXhlV21SSXArazJDRHM1cGZwSlNTMzhnU0E2Vm96WHpxVWt6ZzIrbjd5d0I0V0FLN0RSOG9FejVON1QxS1l6TWJJeGpDdXBUNHFQQ0liMlIvTHBlWUNjd0dPbU5zcGtVOVQra1grTk1YMjBaMmlLZTZwTTNsbFQxT1VMMU9nUk1YTHNMZHpQdHROekEvV3AwREFHU3ZqT3dVTDh5OTFveS9SQWZXenlDTCtWSkhpNXdYc2JqWVc3R0JaNUJLTTA3aWZVR2I5bU82a1RCMjJodnRxR3pEK25ldmRkdVFuMCsvWVpweGRlOHBQNW1lMis4VjFMZm5XTCtOWm1lTi9Wd2J3Y1VWeXBrdlgrQ2xuTWhuUTBxUFJUM0VvVjVKQUoxakZ2U0xpZmZubGw2OFZLY3ZtNytncStveVgyYlBEWG5IR1FRdm9DYmNidkRsb0FOQ0N4WlBiVjBKekFSMnJqQjZnSjFvakIzdFFuRmllOWN0eTRoVXN1ZzJBdnFZQXJxY25hN3NQdGNuMWZQa2NlVzVyMjMzaUFEOWZMRC9zZW5MRlhBQml6dGlUSEJPbjFDL3h5dkVZMmJpbU9nbkJBOFQ2QVpHSnRUdjA3ZndmczU4NGhLL2lScktEYkwwQ0pLNlpVajhlNWFjWkxyTzNNcVZxcW0xbFZyOGNJRzlzMytWbWRsYjJpaTJUUmY1MjljQTZiNVg1dHV1SHJtL0xDL3dydVhGRjE1QnpQMVhHTytXRmNmdHljZ2MxUlhCVU5tOEx5OUVwVGFJL1dSbmhSSVVYRmlrLy9PRVBWVnM2dEFXRjFYdWNpSmZac3dFcFRqdW5UNGprUVlYelVKMUZ5RGhrVDF0V3NERDV6dE9WR2ZNcHN6a2M3U3dISHE5cUY5c0NrSEUzTWxiV0hyazVjeUQ5anB0YkZqT3VMOUYzSlQvUndkakpXRjcxakZqbW5BMVRvY054K2hSNlc5UXltVmVBZVUvbkZLODdWUDZaakJVa2FxczY1T1U1aDhyaGU2QU9wZEdmNlhhSlk5SjRmTXU4MnJGWWU2VnFhLzgyeGczK25iYVZSZnlxTHV1ejZxZlN6bVFaUDlNRHpqejBDOTArWld5dHNIWFNQN1N0SjFOeUsxdTdLNjJWVEc1MXBYdUdqV0hLYlY0TjZGeFFKcUdLT1AzaGhHTzFZTnp2Zi8vNytMM2YrejNDN3JqOUpNVjJWaWxhQnJMaUl6cGdMU2JuR0IrSFhuQ2s0R0JQVW5CY2kwQStTV0h5NkRYUmNrQVFHU3NXc2h4VTJ3TXNkMWEyY0VhTThvQ05pcFdSbXpGVU5xNVRUdzkySjJkUmZyeGNxVHlJY1FCazNzNytjZlErWkpFeDlBQVd1U3BXQ1VlT2tSVkp5b2VqbTNFenZwQlAyNEZHZkV1cWMvOEFXUEw1QkVxYnI1U3pHSnJoazNiL0VITTNWSFJ6YnZRYVdIMHMrc1NmYldmOEhWdFBsL1VoMnp2Y0hjN2RlSlRNNWo2YWM5VDY2Y0xWMTNYWnVNeTRZVEpnSTRaTnVSdlgxVkFYeWtOYkpBcU42TnZxSU5BclRhRFQ4TVpmeGUwbktZRGUrQ0tkaGVSNnhVMVd5QXhNM3B6YnBqWnZXbkEwY1VpSlJiSElwQnhZRG13bEF6a2NqV3o2T2NjU0ZSb1p4MnNQUkw2bXpNWTAybTBkcTFlY2pBSmhLWHJRRDF4N3NMTmN5Z1A3UVB3MGhhMGR1VjZtL3NEc1R4N3dyTkFZT2dsWllIVUtMMjZYQXNYMkNXZ2ZZcXhVWitNa2ZpYUU3ZVJ1NE5YTkk4TVNUNU9YcTQ3R2IrVnpDcHBxVDFuUUJ0WXhQOTYyTVFqOWJqeVZhOWEyc295ZjJUTlo1Si9KS0lmTlY3L1E3YUV2OU5PRnhwYjVzLzNhZVNuTTFaTnlONGFyc2NxRTNNWVBRVVFBQUNBQVNVUkJWQm8zL2MrQ2x1b1dhYUFUckl3Z0lMbmYvLzczOGZ1Ly8vdVVGeFlwdzRsWGNNaE90b3NLaDFjNWRDVW1UeHk0YW03SlU0OHBiOEpHSEx5VEQzRWdDM3Y2Sk1VVUswem1GU3NBd2dPNDBzN3NLRmNjakV1TXp0TUg5UlJCeE56YVZaQXN1VHlFL2VuZnRsWC93eXdwVU53YlFzWnYrN092YmtoeGhVUGtiN1RGZUZqQk10Y0lHZVBBbEo5MjB6K3d4Q1hNTGhtQktueTBZdXFCZGU3dklMdW4yVVk3NWFzd2xDL2ptdWxwWVh2S2pPdnMwSHl5dmVoTVBIZDk3ZGpaZHNhOXc4bjBsVGF3em1GMk9MdHJ1ZVcyeXpwaE11TSt1bmZjOFJDVEt0ZU42MnJZQ3lQYWkvZlNxVmFnazNMZm4wU1Z4K0FXS2RGdjlRQlFoNS9sZUFXRjVRR3hINm0zL2x1ci8yYlBwR3k4K3VtaWRzbVB5ei83VGt0WXJIUW5VNmJhSjlqNHhyWFVlL2tZaUhpTWV4dzZKZ0RYMDQwRDYvaGwyOFo4RGJqTFJuNWxDQWVXQW9JOVRRSDBXTHo4eVBZY0d4a1BnS1hBQXB3eG1IaGxleW5VSUFvdGtyZW1qVmRmZ3IrRG1TUHJmMXcyb244VGxvUElySU5JVHVOcmx6dzhkS3dmMjUrSXEzSkFQTmxPNDhuMFFleXZ0R2tlRW5zcnkvU1ZOdURrcjEvbzl0QVRIOTJGVFNTWDlRL2R4NlVtODBGa2dCT0hJOS94RWQ0Zml0NjBpT2dXaVJ2enduUjBTaFBvVGtaR01Qanl5eTlkblZ1a1pIOWtKVHY4R0ZqeFlnOEpUOC84cTM3RTRhWVdKTm00TDFwZlFMWUlHUi8wY0FiNGE1L1JWek9Iei9EVExvNXFuL0FLRFR0K2xxOU1GbkZuKzRBK3pJSGxjUGVlS3VBd2ZxTzh0VW1hZll3OHFJSnAwSW9GaW9Md0RWempVV1BZektNM2R2VUVaRXhoRXpvam43Nmc0eHBnOFVrc3hjbTFiSFN1b2UxcG50NEkxYis2TE1nbFpvcldYTzBjOUI2ZjhySzI4U1BiR2RkeW9yN1NPRGJhR2ZjcHptNGJ3REszYkkxSVRyUldRbHNoVTNJN1A4bWNaVndnR0NmanN2NU1iTjRZbUtEcGZ4WmNvV1g2S1hIa2dyRzV0MWorRjE5ODRUQ1RKeW1zWTFaSUFMclRDb2Z4SW4wYVN6c25Vb2prMDR4NXdKemNxVGNIRHlBT3FGUE9EaFd2RUJrODJqNXQxYUY4WW93dkc3UGtzSng3T1ZUeTQ0eS90WG1OZG8yUEh1N2tLWU9VemZHSmZIcEYzUnkveU9HTVJ5QXFTSllpNGhEamNWNzFBQWlmcHRENXdMcEczSUpGamtzV1pESm5Zc3hTenV5c1QwRE15WUNNQ1ZkdUxYWTNrYWZBRG9JbHhrakg5RUhieXR3RHgrUS84N3ZUWnJvNWx4NG5PTXl6Zy80dTkxWFp5LzJ5SFBZTDNUNWxkbTIweHYvcXRHZnZ5YVk4YUZ0VXh1UEpJOS9aZXBaU2RhWDBOaytyYk5YUFZxS1g4aUJCQWxYZWwxOStpVi85MVY5ZDVOdFBVbGlIV2JGUjVkM1d6L1B4MEl1QnZONlJmRG41OW9BYUI5SGs0VHI4eGdGbEM1R3U2ckxXTzlSdDZMN2srQ0tabExPRDJ1b2xxRnpHeDE1UmJENTVzRFpNdGhSMThna0t4SFV3cGlnSFk4TlN1VDZ3OVRTRnJUZTdRVkRaR0d2VDE4b1gxamlVN2x4VFV0NGd2aEFNYlRmWHN1QktrZFUvRFc4ZmNEZlpmc0hsbDZDc3p6Yis3SkNjN2N4bmhkT2NhMkU3MmxHY3lwNGRnc0dZTW42V2o3c2NKdHZ1MThuVmtObDE0UG9uWE0rbmtsbVR3aGlWenN5cEp3TjhQMjVlRnJFWUNkSE5LNTlrOUN1SGg4aDhFMWFrRE5CYXd4ZGZmTEZYcEhpYkVBUGIzRE1lNDl6V2o3VW1paEpWc0J5RDFnWDJ0UTl3K1ZhSFFoT2IvYkhhMCsrZnNLY21oejQwWkYrdGtkK01LUll4RXA0K2xNdjRrbGM3bzVCUUJRTGhEQ2cvb3czUmo4aExhK1phZ09YRzVtL0J5TGNZM3hLTE1ITUxsR3hPN1BpZEFtWnlnS2tiOGk2NmJPeTZYL29iY3Z0RUJWZHVBZEhmQjJMRXlqWi83MEJRdWtBL0MxbnIwL0RkQTh6aE0va3JiYXJyRjY1c3NZbkdRTmI3RGorenIzQzhQV2duRGlEUGxWMFhiRTNUV0J4N1Q2Ymt5bDNENmw1NE1EcHZqYnRyZ0tlUjZueSt6UGtxVzNXY0UrbWQ2VDUxZ2RMQnJnMHRVbjd3Z3g4d01kMjA3L0xrUWZPS2ZoNUlnRjRFc21BUm16YzdNTHI0UEV4R3YrUndxUnk0ZlMyWjJLUU02NEhYR3ZtTHFZSlhrZG1KTHhjdFJ4OEhmZFV6S09Qd2hlbnp2SEZtWHM0OEtEOURkdkpVYnVRWFpnMXNuS3h0MTluTW81MEQ4alNscS9pY3kzNmtid2xXa0ZnY2NKNnFGR3dsN0xyckRhSXZPUFRXeGROd0Q3SVJvOU45dHRGbkcvaHlPQ1o4SmVzWDk5c1pkOEN6SWRlc0RaQnhCbTEzTGhKTzFrZUZWL0hCNXB6bWMraTh0ZHVTWE8vSUZqZnJIR1M2cmJXMzVWdm1sOHN6SGVjQXZtL04yZDArS3Z2TlAvN2pQK0lQL3VBUEZubitKT1c0TmtHcVB6a1M3S25CNEZsZnUvcVJ3M2xZTjdHd3BMMHdvd1dMaWJuaC9JdW94OVZHRS82T2s5TXZPaWQ2eGRPZFhMSEJQeUN5bjlwM2lwVklKdVV6em9iMVZRVndqZjNROGJLRG5iMVdHN2tBa0JaenRyRHdDcEJxdXd2WGVWSHpDYWdDZ2hVT2RQeGtEaVZ2akwzcWIrcWl0VEdjTEVNVWVkVUtyUzlzRUJaM2JDeWl6VGZUZTJOV2VxSExEc09GNy9pbnZHTGIrbVR0ZVc5SWpqT090Rzh5UjJrZWtuYUY0NjJOaUVmN01lT1pzbjV4WGJQMkVIdnJsUEZsemtWN3lxaXJCdHVGall2cW1MelUzNmxmeG5WNlhteGtqbjBkMTFjNUFNdURoMnhzSHJ5NXBFV0srajZLbkd5eitVbU9ibDU4eGMxOEZmVHo4aHlRT29ROWUybEh2aE13ZU9yUUdnZktLVmllREJDWlBYd0JIUitObWNpOXRpY2I4Z3B2aWZQQUxNN0c0bEpqRitieTRKMEhvSG10TTJTMm1MT0ZtODFMbEtlS2ZyUmJ1OGFrMXFGOVFuUUFsMW8vMFFuSDMzSWVEbWQrTEUvNk1IN1ZacWVYeTVWN0ZaeTRiRVIvd3QzVUgwRGtPOXE0VWwyLzRQcmdJS1FIUTcvWWtrWHRIYTVzVTNtN1BnZXlOa0RHelFxQ2hQT1VUY2FqL1JSekpneFdtU2RuUHB4K0ZpYVQwMjZabjN4Y0M1ZW4wOUYxQVo4Q21XOWY1M09BMkQrdWVSVDdhQlhSV0wvNDRndjhuLy96ZjVTTUZpbGZmdFYvWjlrclJocmFzbkY2Zk11VmgxWC9FSU9OOUJLSDJLaGxGZy9Ibm16ZzBtYnkybnJ3cU1NWVozdjRaazlTaHR1TkFtUG92TU9YeWFxRnpwRE5nOTdNeVh6Vk02ZGhmVVd4OUQwNGdENzhCNThVQ0txTi9FbUl6VWNsRjhzWUFkMy9nV3RjemN6dGFJdTU5L3E3RkZBOEprdm4zUFlsODI5aVVjV0pubjQ5bmlXb2o4T1lBKzhBa3p3cU4vbklkTXVCeURoR1J0dmFRTXRKbTE0N2JXczcxZ2oxVDY1Wkd5QmpUOXBQY054NVMveFFmVEttTUkrRXJ4VXJsL3BvUnJLNGE3QmQySG1yNkNyck1wTUR3WGhQQTY2Vzg4RDBOUTd0Mi9VMzFINnVORHFoWEtTb3lSU2JvU3BDdk9TYXpWTWU2Z0QwWVViOE1SK01LeGZhUExDbGZCekNRZi9ENXJqSWM0RXN4WW56MUdTUkRiZkJvV3JsUTdkVG5IaStJdHVwTzZDTGl6RmVNWDdwWS9adE9LeFlBZFljMFRiaXNjangyakZGYlltbEtKdkQxM09yeGlJNTU1QlVmMFJ1NTFGeWw0MVM4SmxmbFg4NUR5TFhUTmRGUEE4ZWJLRTc0RytFTldTSFUwVVg2ZG5HWjdsMkhkTjJ2OUR0aXhEeldxeFRiWWR2ZVhNTWpyOHBzNkhhc1NmdHB6Z1ZHeXVqK2lSdlRPYXQ5Y1YveGFjeWFkZS9ScjdLU0J5cW05VS83MVBvbUR5OFR4cDg5VG1XUmQrZ05rVEt1YmllYnU3amRwK0x3alhJOWdDQUZDbGZmZlVWR3ZUaitZR0dOamRvQzhidnpjdG1LUmlJUDh0UjNFNjRlRVBYTHAyTncvYkJucVRJaFNNUEMxV0lPRTlOYUlFazViamlzNGRDZHZneVd6dXBsZUxrVXBqNHozVzZITkMyZUJJNW1Ua0M5SGRaN1B5SXB5ZjI2VVlVODVCN0hDOGZzcjNZSHFCRjFCWHlvWXMxd0M5WXNPYkpuUk00UHVTWVRHNFozR0lIb2grdG1IcHZFNGlLdXdydTJFWTJtYjg3QjZUTmFlWFFXSExaakt4cEcxZDN0dnRIMEllVVpYd2J0dzAxeVZFcFp3SEhtNk9LblBvMVl5am5TY0xtUEpLNytUUk0wMWhEYjlMVTA0Ump5K1JUeDFNTEhsZVhBMGgxeCtIWmQ1Nm5DKytoQUY1ZUxMNzQ0cWNBL2g4bFc0cVU4ZWRwcFZOWkVOQU9EajlRZHRBejNTbWdmbGovaW5kY3ZxWmNiTlFxUDlHVGxGTmYvdjRKNEI5UTVuQmxYS2JMMmxMbXlkbkJ2anhWQU5hbktjNVArUFIxa0xVZmZKSW5WU3pnU0dPMllEbGhZMXdOeWJvNDVYTGVWYkZsbnE1SS9XVitBSWN6bjlBRmhWZUVSTDRieEE4SkVITW01bURLTDhQck12aE95a0JXRkdSNHhUNnozZFhiM05KMnY0amJRcGJaWlQ2eTluVlo4T20wcHl4cXMrS2dJTnR0ZXpJcjN5cFdlb1BLdkxWTlk2RDVOeDVJb3lrNWsvWEcwaU1iaXpNT0M1c0xwUXZ2aXdaZnZlcDB1eEdaMEc3YzYwczJRdE8yWFAzMHArdGZuZzFmOTh5bVBkZ0Zsa0xqVWdEUVFhdW5HTWM2b1BIVHR5cEtjUEtVcWRiM2VXM1hvWFRLcUsxOWtvSnJmT3BBRXdlYzlFTVBQYUJjbk1nQ2crbmtRZXpaMmtWVDRiWjI1WUg5U201MnVMTDJ6RW4ycWdmUVJkTG9neFFYNFJNUll4UHF6N2pVUE5ueGo3VXh4c09lcG5UaWFhNXpNR1hDdjlJZGgycExQdldOS3ovdFVpdzh1NmFIbmhZdm53aVZqUzNqVkE2OUtUTjVacktabDVhMEE1bTBjWFdzWFpHWjYvNFJ4Q1RiMmRnTFJVWEd5ZlNaUEpQWmNURlpLYWVlM01xVXVsMy9Ncm5IWGZoK0grSDRDbHlMZTBXTEZrWXUzTGtOZy9KVlhaMlB5Mko5a3ZMVmx5cUluU0pFcWFQWEtnRFF4QVp2ZkZtZk5nYWxQNFNmSm5SR3Z0ak9yaS9mclFmVjVVMGZCclNBRWJBSFp5WWI4UGhSd2FHZWpnQWhWOG5IT09XVEVKbjdKdXhIdXc5V3Q0MlBaVDdzcXg3RU1kN0pnY1ZTM0l5NUF0U2NBdXM4VHhuNitNckZ5U0g2RUh6VkZzdEVGUmdxWlVRKzdDelB4RGJrWGNSems4RVd6Z3haUWVHaGFoZnhzc05OeWNVY3pYYS9pTnVuak9Vd09zeVhPS3lQckcxbFRseEtSdmhUYjExSHNUcnlMTitaUHBNdi9abTR3N0Y3TW5TLzlvZXR3ZWYzcVdHMjVRTE55RmFLYzlkVjR5Ykd1L2VDMUIySGpGbHBUdzdUWFJ4UG44WE1RRE1USmV1RS9mTHNXcVI4Y2Y3WENPWGhSZUQ5bHN3QVd5aUFPWkN1V1ZOWUNnRDJtbWdxZFYvVHY1U1BBd25pU1kxY01FSXY1ZXBnUDNuMkNjRkE1VERlNVdmdHJLL2w4Qi9qYk9LQUZhR3h3bUJ3V0hFQ21MeDBnWkxac2RNK0FrNDFUL1RtSGNOdjE5d1B1VmV3TE45RkFWS1poRnlicFNjekVERklmNFl6ZVEwNjMwTnVZZjBSWklYZlFLYXZvT29qMjRSTE1yT3UyVDVqWlRLSE5JWjJjUlo5MC9aTCs0Nk5qYXVnbDVEOUxVV0JrK09NVjg3L1RWazRUNmVjblN0cTd1UjEwN1pXTCtWUVBsYTVLMU1YdmJHTWxQWE54cmlFMWhhWnhUcEhDNFBJdW54ZU9YMWsvZE45WnlVdEF0ZnFWUHowcHorTmk1VGg0bTRSMHFsajE4ZUNlYkJZcFdoSzM3SndXUFN6RzdGaHQwc25EMDVwMTlDMHJkUUwrVGpZbHdQNGhQY0V3TXFzM05ONUIvTk9zZVAxaitPYTArdzdGb3RQSEhGeHd2TGk1Q29hVTFaOGVEYk01NGhoUUs0WjlmVG5BUHBReE5NZmlEemgwbHVaeEtLM25PTnFMOFhKeWFVeDZJbnFIL2JwbGRTSnRackJPNnd5M0xVRC9MbjFlRlVkbGZWRlNOdlpZYmUwaDFqMHN4NFFOM3phZURJYndyOVVlcnpBWnJ4RlhqWC9ucnc4Vi8xaWxaM3lkQTZIbU1YVzVqK1hoYUtkT3FJVXBsT3k5RERETDhTWWpOc2l1LzlpZlVPa1RuMTdzWXY5ellMTmlac3dBbFdrakMvTkFuRWlveUtrVTNtaXgyR29PSmZSeFpGaThuMFlyL2lZZW50SW1qaWp3a1RLMldFTCtJZWxKN1B5U0ZkOWlwRFpYc0pyWE96UTdhcDI1Vi8yUHc1SytjVlNtUzk3Mko4MlVWNjhnb3NWSkpVOFNFNTRnOGs4bURFQWwweTk1aE41WWpLSnltdVlxRGlSUEhzdHVZdHNOQXRmbG4wM1d1T3ZJQmwrK2N0ZmxyalZRODdUMjczSWJRY3lOUysyYjZObm5LeWRjcHpZcDh5R0pNZC9vMjhtcTNBOCtjNzgwdkZFYzRiQXY1MmJOdi9SSHRweUlhZ3lseEF3ZnB6WVFoMlRzN0g3NmV1Y2pmdmhEaWVLYitqcEQwNFhvU29FQVB6Zi8vczkvT0VmL3VGc0wwVkthK0tMcSt0ZURFQUVMZnF4aHllRE9neWxjM0VwQnlxTEJnbjEyeVRzd0dqdE9wUUFQdkZFYitYMmtKejJZa0lyQitpUWVadTRMVmlxUGoyZGlyZGQ0K29mNXFDVTgzSGdtdi9qbWd2M2k2WkRmMXp6cEdUZ09aRHRBWS9uMldSK0Y1dDJ4WVlENjZGK3l1WWFJSytEN0xpSDNkRDFwaGlUc1cyNGNpdjU3czF0K3NWc2lySEorWHdBYWJHWDRLVURhb1ByeVR5ZDNlekRnNitaTnZKWUsvRmw3VVZtNDdDeDJ2RVlkOUxYZHQrT3pNdDVsZWZwc3ZsUnNrdVF6dE1wdEphbmZQNXo2ZGNMTkNZejNNWC9ESCtOZVpFbjQyYkk3dEZYOUpVWWxyeFh4aG1CNUhpQS9uWVBDM0p1cmc3WW9LUENoVTJTTFRqYzc2S3dTZTBFeFZrUzVPa0RPN1pwczhNMU9uQ2xMTkl4ZUp6S0FkOEY1MGZ3cFZFY3A3eWRoNmJ6WFFwWk5MYmpLbWFqSEVReWIweVM1OWw0aFIzakxEWmpqdG04SDFpL05DMS9lMm04S2h1aWN3aExzU0QwUzRIUlJHeVNQOUxCK2hWcmNzQXRjS1N2QlBZZVpldjBDZXo0eTdqVkE1RWUzRVptOTZIdzBHdkV4bklLYlN1ajhjdFliTDgyL3FoOUk3WXFyOExKZElzUGI0eEN4ZzdFa3V5VUQwZFR1MTRJR3BOZEY2cUhrMEJINnNUWVA5UmdGMlQzUTRXVDZudUFzWDRWdW5DeU1KVDJJb1FxVXY3eCsvL284ZWdnRGdDSUNoRjdDQUdkM3hyT0UwTHpUUWYyZXpIMkFGaWVvcGlGc0JSSlFxOTBuaHhZRHNBaHMxdzVWaysrWThNTzhxcXRrc3Nid1J4K1U5YkVJU3RmN2JCZlVSWStvb1VZeGUvbHhISmxuajBkYXpON3dQUjdrREZJbWNpTFduZURMbkxXbTRKajlMYVBvWmN5OVJ0UjBhc2JaaS9rbzVCazY1WWgyN3dpM0xIZHNha2ViSjVzNnRCVXZzSkR6OG9hbjRlbFA4c2pkc3VCbkxTWnovNUI0cmVtd2xjbFg5VmNaKzFNNS9iRHhtREdxV1NudkRRM0o1ZXlaWjRNZDZYRVhPWDdqSTMrSU1IaVptUDBVOXZWaFh0cGQzNFdUaVhPQ0NSM0ZYenZlOS9ESC8zUkh3RXdSWXJhK0FGRUJRZ3c1cWR1by9rTmFIcWpoekdWU1ZDOE9ZZGk0SWZoWUoyRW5VTitoMXVWNzloa2NVaGRTWDVnTFU0Z1pMWWc4WjZtZUwvVkE1MDdOazQyeG9ocjdhcnRLVHZqb3psdll2Mk1jUXhaa0t1eDhVemRkSHh4QmlMOTBJMUNVbkxwemUvNWQvd0M2N3A0Sjd3NWlWRGhBSnpuMmJyeW51UlYxaTkwRzhZUDBVdGRlSEJHYmF1cnltUThTbXphSmhlVlBGYnlHczFieFQ3aUFjNjRyc1lxTytXcnJFa1R4UjNTcVd1cWRWRnQzSVNyR0tiUDlINWs0MkUwc2xjeXZLeS9Bc281bnI1NFh5OXc3UGdmYzhPWUIyMTBBS2dYSVhQL1BCdmpjR2pLaDUyYzVla0lnSDUrMkZnTXIvSGtWWW9IOTVBVDJDb0lBcm1uczMxbmZxWE9LNFNVdk1GOWJUUDBzaUN4eFFzdFRrak9XZEhCeGpsa0VWZWk0bGZaSHFCUFNsUzRiQnpXN3NCU0FDdytzWEtxK29iMWp4Y3FpQmdIWDZ1ZGZndGcrYTVzaEJHWWJlWXYwdy9zK1BZMmRmY0FsUGwxY2wyV00xN1RiUldYMFZHWjA4ZVVSVzJiZzBJZXMzWkZWK2tua3R0eFRGbS8wTzJoOStJVWNzVm9XdEwwUDdGc050b3FPd1gwdm1UeVpKekFYdTZxK3N3V2NNYlFGYkUrUXFIZkFmb2s1UURBaXBFK1Q1ZHp4ZkQ0czlHVzYyUDhxODVTNmY4WXdnWFpsMmNuYi9SVk9NaWx6T3JaWm03bGxTTEhzN0d5aXQ5eWJPeWdNNGNuQUZXd3pKUzJibXR0bHNQUzlGa1pWOFUyODB0emNPZ1laLzdhdXI1VSt6Z3Vqc2paY2hPT1BBVEZRMXBjT0RGZGhLRC9VdzhBVE9YQjNnUHlOMndHWkI2emUyQVhtWDJtOXppZTNSaWYxZE5EdlYvb1hMTzVZM1pDWjdsdTIxczNHY2ZLYkR5eWJjZGR5RjNXem5TdnlJQjFERlBXTDFiWktmY09TamQrdWM3VmhaQ2J0cVlRZTJENlpiM1NXSUl4ZWNqdWszRE9TQzVEWG0vNHVncVcrOCtCbW9pTE5ZdVVMNzY4L21aK240Tk9tbHRZc1FoWldNUnVZRTVuQXkwMDNDL09BdTdrc2dJRDBCT1h5YU9OT3BKN2ZVUzZxUDl5RVlMRVp4TTVZb2ZuT0hUTnF3VDFVL3FCNVdsQTFHZVdWMDkrcDVCWmVFM0VEUEtFQmJrdlc4QU1XMkROZzlUTHdqclNleHZKVHZIU2FkZTg5ZysrL2dIZVo3YmhSWnlLTFVQRnJqWC84ZlpPUEVQbUhuNUNwdTU3cFRBMlJzYmt0RzExak05a0xZbkh4aUxIVWN6ZkhadE1WL0hqMnBJOHYxS3NZSzREWHplYk83TFo4UDI3dVp2RDBXUFFsT1lFTFRqUjNGVHNCK2RBeUhWek8vU3RaUzR1Nk9RdDZuLzRoMy9BSC8zUi93dEFGQ2xmZnZIbHhSVjcyelFmR3g4TTdFWm8xV0x5RmxzaG9RVUptN0N1dkRnRzdHYXJGQmhTTHJGendFWnlUMWM1Nk1kMVpPLzFOK1hpY0Z2eVNMNS9JU2RNMlEwL3lQdmNIYStVeVRZcmV0SzhIMWhmMjlqeEUxOHNqZ2J5VjRxbndaVVA2M3ZZVDVDK0xieHhYWVMxRDBETWlkQkZtOWZUeU9hSEllT3dlOW5UVitUQW1aOW0ydjFDWFRPOVJGVWUrUThManpzMk5wYk4vTzNrOHhYdXp2eUVzbjZoMjBOUDlnMmh2QzZCNjJDOS9oRlVNcDVMdWNxRWpvNnlyYkZtWTJNSWM1amRWeVNmcDRLQ2pxVEp5eUFQVk1GWmJibm9tRVZLTy84SEFPVHZwMkVVSTJ3eTFxMFdsQjlNOTlublBCV1h4TENuS1Bhd1VNM2tNSXprRWhWYnFZdDhSb2NoazF2TytLeU9RZW5BRDJ6Z3pPTklQWG1hb3V5Q1Z6MkFqbkYzdkZJVytVbjl5ampGV0dYY1diKzI3WTY1QlRxczQ1VjZielBKN0JVR05hRlZzZFczQTJsWDhWSGhERmh1Wk92cDdDYTkrTHh1akZBMjVhUWJLVi82TTc2OFE0dnlITjFsbW95dG1MOHF6OU85SWdONFhpdnpvZzVNNjN2ZXkxckdJdWhVazROTGNiVzFjcFVqeUIySm1RWGpyYkdwVCs0ZmI2MVFYZ1BzV1VwNVhLRTRoM0RrdXFNS0xieStreExuYVQ0UnVRVHlNRE1xUUUzbWltTzVIRU5oVDFDNnBsMEhLU3VMakEwN3lLcHlpWXF0cDZzZVVKVkQzck90eUtYdU9NeUJMUTV4d09UNXhrRS81S28vaDJQbFZoYjVjWXNUR2VjQi9qUUZjYjlEVnAwL3E0L3NBTjkyOExKTlovQUE2SGx6ZUZrOEV1NmhVWWdwUThWSHh0bU5ML0lYRlJLaHJGL1V1QzFwOXd2ZFpyS29UWVpveHkzYk83bUsvRmk4WWwrZEp5WHJGenB2RndIOW9DVHBzVEU1OHFseithcWwremwxcTJ4Y0xnTmFkVTVLMG5za3M5ZWRNUUlSdWM1Y3ZUY3ZpYUJMaGZqNlRzb1hYN2lEc25YREFkQUo3Y3JEZFRNcFM1TEVCbDc0SG9xYnNCT1ZBc0xLbVo1eHNpSkQ2dGhCd0hUUmdSbkY2eDNxTzhVRG1zam5LVnArazZkdzBBUDVBUzU1MFpndGgvRnAzM1lzZ3lMR0ZZN0RHVnMyVnhJVnU2R3J6TEhrUzFSekxOZURSR2J2SVp1SENpbzJHY2ZUNzhncmhZVW5BeHlmcmFtMVYvSEhEcFdzR01uYXdCcWZHMjhpcTNBcXVvcmZVTzdsclRkV0dhQmJ3cThudjBSZURPb2ZxQ3NobDdMc2dPK1g2MWdzMG51Q3JBR2x1eG9oR3NRVDlJQmJHZGNsU3A2c0VKdi8rcS8vd3EvOTJxOWRSY3BQdi9pcElxaHR6VGhvQUdBMnZ0a0tFemtPUDdnZHlOY05YZE1VbHo1Rk1XQUhBdE5WTnU5S0FlTFpzRVdWRlRuWkljQzQxbWZGdDhJNG5FKzF6SG4yTkFXSXg1VGxLeXRZMkdHdXhuSEdOV1VpYmdENjE2blp1SVFQYjJ4MzVqZlRTMTIyNWhqSFE4Vi9oR2hzRnBZVHpsT0FWM2lScmNzL0FEbk5WYi9sWXFXUjNCamJzREFSOHF3WVdkck9uRmlVeC95Q1B5YXY4aktkSERjOUxGdVhtNmtXZWpzL1hENTFMdjlxV1V1MkxuUlRUZVNDY3BIZ2NDTC9wYjRKb3NMRTFVMUszS2RWTEVYS09nak1EWDFBTmUya09VVkxnN1N6UVpMTkdPMDZOQlJYNkFOa0czejFFUEU0M2daY0tWcXNybHF3N05oSE91dG50dVVDRXdjMmdPdlAzNU5GV0NsT2hpekxZMmJuK3JDeDI0SmttSnhEclJRc0E2cjRHVElTeDVBRCtacUtOdU1xMkJvZjJQV2ZyWGRQRnFGNk1ERmszTmJNdkZwZFFZYTJ3WFhrcjNCbDJ6dG8wbUxFdEFIajk2SDRXTnVUUmJwWFpGUEhjbkExVmhtZ1c2ZnZwUWM3WGlMVHV2a1AxSlc0c0RLdmtOTE5TVjZwaFhzb0t3S3lvc1pEWmxjWm13OWpUZXpjUCtZR2dDVHhoTnJJaDlKZkhFMHlsYTJOaUIrYS9jUGZtQ1YyRG9tc29HRTh6OTdLVzR0L0c4ZVRaN0tNTzVENXNZZXRXN0N3dnpkeUl1dGp5RE9aRjh1UTJXSmxZTm9jV0F1cE0zWUE0WC9GR1lDU0RkNlVENXg5Vk9ZeTB6RmsvRXh2RVJVeUVoVmZFcnQ4aTh3KzAzZlMrR2dBb2J0eXh6ZVR2OHJOWkpXaW84b2JmdDhkYzVYajZYYmlHM0syZjlBY3JJSlZwdlRXSjVkck1iRzVETFdXOVIvRjdJU2EzUTloWVpQMHYzRGlyaFMyZmEvS01yNEI5TytqcUdRYzZtT0ZIZGU1SWNiYm9rM21XcUxJWHl1YVJjazB5MGZsYmN6Vmc0VnhHQzhyRXV5bXdYUmVINjl5SmFxRno3SVIyRU9mSE5EU0ZvaHpNZnl6NG9QWmVtMjJZZGxDU2hZZ00zYnlkSVg5MXRJQUswNW1MaEt3TVVsZE5xZVNHK2tsNkVZdTh2MHVaQnRvaEYxYjd4Q1BkSis2V0tIdGMvMU5tWW5STzNRaTM1VllJbmtwYm9NZC8weCtoN2ZvZE9KV21jVnB2ekJrSC9xZkJWcEYvTms0b3Jpb3FHM0pLZTlxK0RxaXo3QlZFRjJLVGJTWjQ1Lzg1Q2Y0NHovKzQxNmsvUFNuK3Zzb2JpekhQQU0wdk1rSGNKMGExbGF5ajBVa0Q4Y3F2SVVmSGVac0k4ODQ3S0JoZmU4VUNRT1Z6VHM3Q0FleU9MMmlvZDhQSis4OHdPMGlySTVOd3ZaVGlhVTE1NHZBWTIyTVdNY3lZNjk3eFBTbHIzc20wZmkzY3VUNW5TWWsvc284UjhqNmpPUVJLbjR0MlAxU3NhMXV2QU9aeitvR24vWEwrdG5KY1RqUGpjdFpURlIyMmxYaWlmSzE5RjhZYzRVVDZTb3hSeklnbVdNdFdHVVdNbGVtcmVXTHhOVkpXVlF3bFBSUmJyMnhMV21JKzlqbFNlemE3QlpKLy9WZi93VkEvcDJVMW5EdFQySlhsK0RyUTlneHpCazdyd2o1c0g5cmhSeVdDYUtmR3RsaFluVVNsWjlpMlVhOFc4enNGQnVaajBqbnhXbTVpbWNQYVhFNFM5dXNLR0x5aW0xMGd4NkhpQXZBS0ViczZ4d2x3NnBmL25Lc0NIc3BYR3crRXR3NTdDT2J5cHFNRU4wZkVqc0hpUWZ2ejlGWGtHMThVeCs0L2pvVUsxbjdyaXpUZTdKcTNGYVc2ZS9LZDdpZTNGc3I0ZjNaaUZhT1YxMndQaGVTYmVaeE5jdzl5OElkditNejVGM0NKQ2UreXFJU2h4ZkRMa1l1ekgrN1oxNU5XV1Z2WTNuMU4wVkpQcVpJdTVEOUZ3S0FQN2xBZnZCVkRvRHM0SlV5YXlQbGxVT2QyVlI4Ujdxc3lGbGtjbUVmNjZFZDllSEZaTWViMlhveTVmK01EVGpqUFcvKytiUkRmaC9GL3BlZUJWOXVHdlpWRUxDT2YraTg3NmxFNjNFZ1czZDNDaDJHdXdWREJUdUh5dFN0TjN3SXhxOXNoRzZ4WW1MTDRxRUhaR0hjVmJ1bmZHWHRTSGZILzQ3c0tYbDBTQzVyb2puclpPcU50czEvSXRFVXJMcTJ5Tng0bTlHenNRU2hUdzVYeEp3b0pVNDhFU3FGUzRab3ZQRVhad0hZZFZLc0djUUN1d3hXMjVXek1NaENyUll1QThQSDJLeDNEb2VNSStXUjMrb2hiSFZTbnhVYWtXNG4vaVZIN1ZxSWtiOG9qOUpuRmw5SmRoWUlNelpSVEFCWUM1TGp1Z2xzd1NKNS9aTDRrM2VRN1hzREgxRjRaT3M3d2s2UlpYSExwcmpCdVFVSEYzSk80MjNGaTJKZ2g2WXpaaW12MmxsWmhjTmtXVHZTWmUwZFdhVGovQWJQalp0bnNuNzJDaE14VDBwT3BWMWlpTXlPcmJGS0FSRG1rWXcxNVhWQnJIZDRFYXF4U0ZUR3ovQU5vQ2VtSHlKU3RSN1VuYXZiZWIwZ0ZrRURxTi96d0xnMHNkT2R6WkFkQ3RhK3NxbDduT2pRMlNrMHJBM3o1Zm12K3JrVHo4RGRZa2ZLSWs0MXRpbHI1NkszeFlRcFRxWnN0SS9UdVVqamZnQUFJQUJKUkVGVVRneURGU2VEWHlwT0R1R0R4QzZScmQzcWVtTC9CZU9CckE4UFh1RlQ5VWQ1SXA4VlJCdHNaV09NT0I5WnJGUTRyOGd5ampkblZYbldqdVE3WE1BclRKajhuTEhLM0orOHZZSmwvaE9KcG9EcDJOcUoxbE9xNnhleDNzTTBkeDI0cU54ckVsbGh0QU83VHB6WFBjRG9KU3RDMHYzcnNGOTl0UWFIU0tiSE1SZ0hVMUxNQU91QWdmVUFpUTZEakdNUDN0YnFUd3lzenJPUjh1b2hsdlZkTFdLR3ZEcitUSmExUGRtUUw3eXhkcnppNUpSMUEzRTlSZUtweXNtbFJRdEF2NmRDNVJ2WVdZdlZnOE9EVjlRTVZQMVZlSEtEVmZtOENDbkNJdUpxVUhpYzdVTWtHR3ZsZ1Bic0s3Wk05bW83MDFYc1h4M1RxUUZYT2NVSmsrbW1wOUZvY1dIUy9Bdk5NVTZzTEZ5N1RualpmVVhIUlVWZUJ3VmVITUtDYUR3UnNyRU8vT1FuUCtsRnl2ZSs5ejJYWkgxbFJjc0N0U2dPOWRFdmJiQ0ZEdWI4SndNOXJnMVNJam9JbUQ3aXNFTWswdGxDUnVvOEc2bnp1SlpmTFhBeTJaRHZqRCtTZVcxUFZySTlBRFJ4R0pyaVpENUJhZGVmZTJaUFZSWjdRUDlxOG56aWR5ai9vNWlSYXkxYll4N3ZIZkR5K2hReXY5NTlXdDBrUzhYSzBCK2FaNHVWcU1DNWU0QXduWlY1OWxLKzAwZlVydlNWeWJQKzdzbXJCUWlUdCt0ZjVzT0tUaDVmWThLWGtpOFhUbjlkYUhWM0NoTWd5T0hxS09kWWZYYlBwMm8rcGgya01RU1lSWW8rS0N6TkhrNVdmK0U0RHdMclJHemQ2Z09rUklINXFkYldHSlduSnhQT0lzMktFbmFnWkFkbnByT3lxci9LZ2MvNFVkOVB5U3JjSVk5aTk0cVFBZGYycEVWZm5KV0ZpUHl5ck4wNDJCZHJsVS9iejJXSTVSWFFpTUhKazRmS3VvdndSQ0cwR3pOUTUwVndOOXM1SlViZjVLVnF4QnptYjNHdHVVb1hqTlhxUEc2RmQxZVd0VDBaMDFYajkrVCs0Vnd0VEh6WjlhOFN3Y3pzZ2lYMk52OXgvQzBOR2pzZGU3OVk1VTZBV1VFUWpteWFtdjl5dmNQVElpb3NJWXQ1RjJ4dExWK2N0WnpqcVBjK2JaY0pBMGoxWTBxVVE1QUYyQ1FQSFBLU2I5QU1MQkhSNXB3ZEhsSFJVeWtvUEJzckg3cFgrcTRVRWp1MjFURlUvR1c1V216bi9kR3V0ZENnaXBIQllWK1dIVTlUcGcvSjlYeDJ3bVhmb09RSHppZGw4TC9ZYWhHTjI5Tm5hektDVjh3QXNZK0svNmlZQUhEbGxPbVVxc2tHbDJjNmorUFpMSzcxZWxHNnh2OGE2dEJGYlNhditJbms3L0lWeVppYzVqZVlaeUFvUXFaY2pFMDNMeTRNNXRRNW5UZWlNWDVKOXdadGljY2JielYvaTU0NmkvVnNUWWNGanVENTZ1bm9KV1RqWmRqKzdSNkpZSzlib1J5ZG0rNTFpV3owdEFoSkpzdGlaM1BPZnFMTUNvbFhkQldiTzF6TDMvWExiQ3RqeUd3elh5SDNMQXptOUIvWFdqamFNZGVYS2tLR0R5bXpCVXUvbU91T3ZRS3l4VWwzMTdSdTJHeXN2UXJ1MkR5TlNneHAwV0t4MEp0c2NMblJ6L21YaGVXZ3RJSS9Md1lyRjc2V3c3cHdLREZPbE5OS0g1bi9IWG1aMXhmK3lsdmtNcmFWN2NtYjU0T0svWk9BanNlemkrSTd0TDQrZnFGTDdwMW9QUzU2Z3N4L0ozbml1TzhJcFg0M1VYemR3enN1eDJPY0hrc1MvQTE4b0tGUjJ0MG5LTkdoQWZCa1Z3cU1wM1NaM1BQekpEZUtvY3FUc3F3dFpWWStkRk5tQzROaDFxNDFJWC90bVBvQVpuRmlONVNsT0pGK1JYL0wweFFEYnc0OHNIVlp0Ylh3MXZoZGZ4SjNmY2dDd3NvWTRvUEZzWjFUMWxhTzBVbFpKSis2Wk5qTEFaNjBkMlNlVHJaM2ZPM0l5ektUb3pobjUvd292UndMa2ZrWHZKdG01bFRJKzhjeXlhcEJ1bEY5MCtXNW1kZmpPTksxNWQ0ajNqZ1lscUhHUGpQYzNRTThlUDdTMXowajR1Uk1qNkdjSG1pTHIwdC9pTlpTZ05DMTFnWjUxY3VEeElBbFpMZHdpUTVVcWQreHkyd3E4bGU1RmZ1c01HSHkwYjdUNTlETmR0Tnp6NzdnaW9aWmhLQjEzaEtEMlJ4VTBTSjlTTDhBLzM3S1ZJNFAvam9nV21mUmpaK3RUNHM3bTRqdG8rSWpPZ1E4ekVLUG1qYlpXR1dhbk92UGZrcCtGZVZhQTVyU0ZwblNtNXlWRC9paXpOUEp0bWUzMDhmaTN4azNrNit5TTV1MEt4bTNscTgyalZ4SlFlTzZ5U0VyaGZXNXlFK2Q0N2lhUXlhakhObTVsM09HZHVuQzc2WklKQlR2UHJpTHlwNGlrYjd1R2ZEODJuMHo3NzVCZjgzbFVKZHlVYmJnK3pDVkF1YktyVmJ1L0lTNWM2QkVHM3lsTUxsamt4MzB6RWZXWDZVdnByY2NyOEI0b3M5T090ZkJ1REZIZHcyNjJHaVgzQU1yV3FwUFV5VGtxNmU1V1d3ZS9ONmNaWGE3WUdzNzZ5UFREOXplSEp1OE5BU1Qxd1hOMFVtZk5uN20wNHRoTVcyTFRPa3JoOUVMTWlhdjJrYnpXUEpKeG01bFBEOU5YUjBBTHZlMlh5THpMelR6ZE9xT3NvMlBaUkNtT1lrVXI4ekxrQi9IZTU2a1pQZkNMbStoa0QzOTZYMnF0WWJqdTkvOWJ2dnVkNzg3aGNmUjUzZnpoN1k2SE1lSHVHcG9heEZpSVE0a2o1cjZPTEh6RTJxRkczSHU2SjZ5ZVVYRzVFL2Fabm1WK29WN2pBOGhKKzdrOTA2bWpJMkI4U3ErQ2JKeFZUbDM4QTYvZHplZ1V0Rmk0UGJWRW4rUjN0TTFlYWthaE9vZlhEdUgweDFaMVYvRjE2NThxMWpwRjdSTkdwZDBpdHYxcjVIUmxvaU5leDVLTXZ0cXVsVmpRVlJNVkhOZXVZZEtjYXhDcFZjL1VFWEl3d25IL1JTOHZMaXZlN3c4dnJ6dktjZlhZV0NYbUpmWVl6WHdGNDFWc01NTWEzS2l6VDFhWUxhcXRIS3JzLzE0dW9vL3oxZldkeWFMdUhkc3N6YXo5ZlNkQlBwZk51Nlh1ckN3TjVwOUhNcWV2ckJYUFl0dm1MVW0xbGsyTGlCZVV6dDR3bTgwSHhiWlJobkIycnFQcHB2VFQxRWZqc096VlZQZEZwblNNYm5UWi9YQXVpdXJjTzdJM1VJa3lkTnExL1NWbzVzU0dzdENDdVZVcHhRdERHT25JTDBqbjdJRFFhQkxsRkxoNnJLMXZhclU1TDJFMXB6L2V2ME5mS08xcGh4bThQc3ppcEsvNE5XUEkwNnJRcXdIeU1SY2I1Y1BOdTdLd2NMQUR1MnF2R3BqZFI2aUlzU1RlK09PdU5WK0tuYWVyZFdwOVRwdTBsRVlzTyttbkR3QXN4RHBvb1p1Mm1XMGlHRy90anhzSmNRVTJlK3IzSmsvaTkzMXQ0TktNVmp4WGJrM0FZRFJiSUY1cTJCQkhxZXJaNzdWOGxuWGtxYTJSVjdOWlpWWGxiM3F6NU52RlN1OUVlVE54Z3djUi8rVXVxWXVpSHdLQXAzRTZXZTExdzNkcjZXdWVaaTZZbzRYR2N1cm82T2NnSGVwWFVkbFpQZVh4QTdYUTJ2dGVwS2lEeG5LMzBNbHdPTXcrZkdUV0gxMUE1eVRZZWllZlhSSVJqd1AxVU03MDJVSEJ6djRNbDhWLzk2QjZ2bXdlc2FSTXRhV3NWZnlZd3NuSEhDZnBseVVBNndRR2ZhS2V3aGZUZGdEN3Zla1ZIRzBjOWVmOFBJMFVGMS9ERm1Cay9uTzlCRzJjaUdwTGJjTjR3cnN4M3FqOW0xOEdGMlRsNnFoYVU1TVRHNWxGWTRuci9LMlpPeGVHZkorNGNwV1RtTk5lUUVaUXI4MlkyUkVxeU1jbmhtcE1MTzlPZ01KSjF4L3I4NEhRM2xOWmdpb2xlTG9DVlRIRERoZm5NM3NxMFZNR2tacjU5Wi9yQWVMNlNPYmhPeUx0Sjc5N21GUTNmQ2ZMa3k2cm1Fa0pvc1Q4QXNMSzl1VmU0V0cxVnVPYkZ1N3pKN1o5R1Z6QU8yYzM5UHNzTDgrZHB6NkprWFhtZ3RqbE1VTnNLeXI2TW5LMUFYelAxQTlkQWF5ZFNpUitkb0Z2WmVLWFdUM01VTVdmNmJ2Sk4yM3Nta2tMcVhXWEUxYjEwVnI5VC8wVnBWVk9KRjhTemEybWlGenhyOVZyQ2llbUlkNTRjK2hPMDVOOG5WRGZ4eW5vcTBjMHlDaFh0cGlMaU5kdG1hell1SHhlN0JnNjhYc0Z2d1BZZjZkbEkwOUwxcFBISUh6dVZ5c3o3T2RQa0VaQjQyVDVjemVPeHc5WkpPUkhmWldseDNJcTY2ZE91RGFUZUlDWUxRWlo4RHJPL0tSdGFWZEZrdEZMblhIdWVHMGE2SFFQN0oyQ3M3bU1lVkwwV0pqbE1VSm1mS2xPQkZMUnhWT1dOZFZ0b1k4UlBQMUpMeDV5SENuQUdGSSsyMUpYNDcrdHQ4MlBvVE8wT3c2R1gwOWNYaFZaQlZPV1NiSHE0Yk14OC9rMnJaWmswV25WTWs4dFU3aTh0a3crU0V5Tjc3RjlhbTM1azZjVDh3NUF5c0txVDVEZ2VidGV3elYrRE40ZnNUckhxcFhLSnpoSEtuelEyM3lFbEhpeDJFUXdUMUVHRGVOY3oxd0xOaGhYSlZuT3FudnFxRnZwdzRZQTFXSE9Yai9Ya3daMzdQUHhwZ1ZJVHZ5S1R0TVVTQ0hNU21uSC90ZlJSNjZnOFJvYnRMeHhVNzN0VThUL1dTTHNvaW5pcHNNckorZFRhcUNjazdtRkFXdlpBeC90MkNwK093ZjZ4eGZsK3RhaW5LMmMzQlZEN0tLblNldnlnQStMcmN3RVRLZVB4T3phZ1E1Y3ZSVEV1bUcvamdVVCt2WHhocHVveUdtNjhuaGhHdUM1TmZWYTBVSjBkcCtGWlY4N0tEOGQxS0FhQTIxY1VMZVJGTkpzZ2VDVUJnckhoQXRRdFNjTzNhRk1XUVQ4TTdDeE9ySFBUZUtrMmJ1S3E5d3lHU2VybUpmS1N3cUJWRkZmaHlpT0FHQUF6amF1bmE4TDcvMjJrYXZQUXMxbmtQMFpYM0JyS3ZqMG5tNTljWTNFSzIxeWxxdElsdlRFZWk5dE9FdUtqQlVYQzNtWHRQQ09kRUI3aFpEbms4VmxsNFBVbjVnOVJ2MXg3Z1p4NU14K1k2dDFVWGpGQTNDYlZLbG9meXZzZ2pkTlJuUHZEQmpCM0EwTTVOdHVaQWhLK0xhMWIyQ1pYY09KTHc1Y0hrK29ZUnFYTy9DNlA4Yi9lS0JZS0lCYlc2b0k4bHNjOGhlMzZpRFJJbnpHTHhKMlRrUXNvTTEwM1Y1QStEcDU5Vk1lUk4zMWloWXBGMmx1SkNvRkI2ZXpOb01qTTNaMmtoYnBxc1VQYk1nYUdidGpCRGt1dkVLalZNZGpWa3VxNTNYUFFEUFI5Um1pTmJUMXczcFJqbWcwcnRuNC9LWlByQ3hjMXdxU3BoOE1ic0U2c0Izcm5ka1dUdlRsV1ZtWE9INGpYeVZtWmdCZ1BiWi96bU9vZmJIcHJTZXI2bHU2RGVxeUQ4anFublRjdHRGZGgvdXpvdlNYNG1NOVZxNGhheVBwNUNOTmNMNW5SU2ZzSEUrK3lnRzJMQnU1aXRuOWFVS2tHaEM3VUZTUkRYQjJVRzA4NVRBRG1RVUg1ZFpwRzlHdHZibDlTOTFPOFdKdFdOamZ5MGZxM3kybTFrWG94Nnh2M0VqOXFmdyt5azQrQVlnN094NjZrMmhld0RaZXFvZ3ZaOWtIaE5rUlVFRllXNmF2Q3c2YmVQRGo0MFZIYWwvajhQNnN6SXZGR2YreWdWRFFiWjdLRmJ0N2RpODNPaThPRmtXZlRSMVlXT0JpeFlRTHA5TTMweWY2b0tFc1JZbVFDMlhPL3JVbHF5M0NOWDd6S1hjMkd2ZWhmUjFUelZXY1Y2OEJIVW8yVUxDMlV2dGhMZ0ZpSnJudlVnckd6bWIyT3FCeXpDS2pNNEJ4Z0F1MDNIcWVzWEpKZXZ5dkdEeDVCV1oxeDZ5N05EZGlXZUJjRTEvSFZuSVoySFNTWkJQVXFiZHFWNWlOcHNGZmQwenU4bm5XQ0xMajhlTFVPbTN3b213ZFMrMURiNmtqYVdPd043VFIzMW04UVErNStYbTRlTVdBamU1RlU0bXIzSnZGU3VCVENaU054dlVwQ2ZvdG1SYzgySmNyVDVOR0xQUmpNeTZ6KzZibC9VOWFTbDJDeGlHYWw5UElodi9nQ2xTYWtZTXVqK3lpZGIzMVFtMnFDdFBRTmpmc3FqWVJjZ1M2aDBjKzRXSjVBQmpUbVJoY3BtMitibnFwVjFjVEV6TFFpSENaQjRuYWt2NVFDVlhidUdqN3ROMkZRclJmM2dRd0N4WWhEMTcvYU4wVjBPdDBhbWIzZkQ4ZXNqV0dPRG44ZXVJckpqUW9tUk1VbTNuMm9McG5Ua1JSRFNjM3lNSmZJYUhiekNFbmNMQTAyV0Z5U3YrSWhsd2puRW5yNDNJQUl6TlMybmFjdEd2bXY2dDAzWGY0N2hvak5kSWQ1b245OCtyTGZYMXZEMmxCOWFjVjdCekQxWVE3ZUdWTWR6Qi9CVmtpK1BnYzF6N0lZNHRUaXNRaDRkUTJrUEFnaVY5S1VCbzkzc0p6QTRVaTFyUkljWjVIamF5aUZnNTgycTVRVzE0YlI3R1VsOS9tZ0tzOFVrWjQ5MHRZSjZVTHpqRHpQNVUvcFMzWVhaTVhsaTBTSVh3cDNRakJyTXUwOWdGS2tYdkhleXVhNHU3bTE1Ni94bDF5aDlRMDBGc0dwRTNueTlsTk5mTWxzWGdwU21ZdityaEoyVnVVYkVoTDh2TTJIWUtrMFhhNWorWGJyMmdaNUFIZDh4ZFNYV1hYa3VhYVFPcmk1MGNiK2w3SXJmZ3JjY2RaSEY1dUd2SElNK05jZTIrN3ZINkRlUFoydis4QmFXVFhYa0M4aW1lbkVoRUczOTIyRFp6aDFRTGs5WnNuM3RQVTdyYy81N0lUaUVTeVJqSHM3MHJ2d3ErWTZaU0ZpZjB1eW05Y1JVdFI1dTI0NmZwVVp6UW9vWDVHM3I3OTFvU3NQV1RyYi9NNWwxRmpvZHdyRW1YWGhIQmVPSDNmcHE4bkF0aGxVbTB3and4amx4bm91M0I1ajJhaDZ4b3lQU1JMTko1Zkx2KzJZRm84K1AyUGZZOUpkTVMwelJJRW4yaSt3akdQLzlSRjh1ZXU3cXdCVXljNXlvbjAxdnNGREwwdmluYXZvcmRjUTFJdTI5b0ovY2NUaXdISjRHa2VOM0p3NWlRdmc1UFRpU3lpZkFPMjBzUFhFWEVaQXJkS1drNmVjZlIrWU1qbjZhd2drWDIwL21qRDE5V0tVU1lIWlBac1Q4aGw0WFFsSjhoZUgvY0xmdHV5cERSNGtUYURBemIyVlJHdmVnaCtabjhqUnZaeTQxRnBnZDA3dDZCOUI1czhyTEdaYnlveUhscnNaTDBZN0ZUR0hnNktjdjBkK1V1Tjh1bGwwTW1iL09mUzJNdUd1UnVkV0VOTDVtM3dRaHpQVm1HeG1UNzgzYUhBOVI1QTk0NlROYzI5dnY2S0xpdmV4anljenp6YytES29jOWQvcXk1VW5MYmozcHljcWVZWWI3WHd1VGlyQVhHQUg5SHk0cVRWY1plL1F4NU85dmlvSFZrZHZ4V1Z2VWw1UjYvSWw5eWU0QVdKNGRjZThYdnBnQ21mNk9QbnFqSTc2Zkk5VnBkWndOUnppcUkxbXZGRjUxemR1OG1ydHo3UGJDcmJLeVd3b29JcjRpSllncjd0dlplREo1N2t2ZWRReTlyUi9JZExuQ09KUm1melpVN2x0Yi9VZHFtTDVxU3ljdGdQaHhrNjd2WnZ0MzJKYmV5ckk4bk9STGp2cXphTmJSMXY2cVp2aDNaR05MZjdwRW81a050MWhvMUIyRVI0cTcvbW0vZ1hxRXhrQ1dVWVN3bWZlQUNZekN5S0xsMFRBK3NyM21BUTd6dTJpdE9CazhmK05XbklSVTdhanVLQmdIbUk3SmgvcnZpWEF1U0wyUUE4aS9URGh6cmZLc1l6R3ZHM2YvSVlHVWRldXV0WWd2Y1c2OFdWUi9aNGN6Z0ZSQWVCbis4a2pQS2xkdE0yMktHSEhUY3VIN0pTK1NDNU5DVGVZZVBsTzBVRzQ5d1RTNm43R3JVWkFsWGFZSjhEbDRWM1orWGg4a1E3ZG1pWmpzNTNkRXozT2tybmE4aTdzVDdOTGFLbERLZUdwYzZlMWFuZDUrZVZCTmZQUWd5alA2dWczaG84cUxrS2lZdWpnMnI2N3Z3S2xqc2E1NkI5ZldQVjRoa1QwTThPNDgzNVUzUFoxYmNkSVd3OFFxV3FEREJNZGVsTEM3b3E1K0I2ZFlwVEpyUlNYc1RJME8yRHF1NXJvQ3Q1VjBmRlpRM3dpWFZqcDByMW9xZHc1SHFUbjBhditSNFl3aGNWQW9EcnhpcDJFYnlSN2hrakRKbjdwcXl1VzNvOTZhZEsyV2V6QVVBM2wxdUJ3emJKcTZ2dHBaMXVlMnJjdjlVT0FNNzNJRTdOc0I5dTArQnJkYzlBM3RudDdPSko1Q0hpZ2QyS05peHZGSm83T2RGSENEQklXVnZpUHRGeWJqVE1Zc1RxUnQyN0xzc1Z6OGpCcjlZcWNxOFlrUG1ndVZHRmhuOWd4ekUwcWF0YTJrcGZnYS9EWk4yK1hlZXBIUXo4YVhaMHc4N0FHZU13dS9BNkhkcnZSZUxDRzlOWnV0OGR5MUx0Rlo0NWJQaHZuS1lLNTRXWGhpM3dFSnBpNXpONFNJWCttenVsbnl5L2dJWE8zTnJkYThXR3p2MlFEMmZkbDZqK1pzK0c4dzhubFp4K2l1RUJUd1hnUFJsOTk1VnRwKy9YWTZISGRzZDdpNlliL2NKK0FPNDlTU2wzUDhCaUZXNUJYZno5OUQ0VGZGS3NyS04zMEwxNWNTenVseUxFc3ZyK2t0d3lMeXFHK2s0OVVNMmJLUlAva1ZhZVJCRlJjZk9UL2VUSzNOeFlQNzNkVWE3Znh4aXFUUXRaejdNV2xqaVkzeml2MS9PenFhTjNIRFp1bk45U0Z0ZzlzM3lKM0ZubmJwRjRSc1FIbUJYbzR5N1JVN1luMUpkODZjcHZGK3ZLSEh6NnRrRjQ2Z1dERldaSjM5RkZzclIvSHcySjRkc1RvVGNMMVo0ZnpGcTVMSC9yYkpMenZaa3RiMEg5OXZkZS9GL2loM0RrNzRzYmhVcFpid2F0M2REaUgwK2U2VCtDcUxFTHdjRU9UZ1pWcGVYUUJjbTJwZiszZ2tNRGxXNFZIL0xaMjEzKzd0UFRkeHFXdWFtbmZNWUZBNkwzUE5oSUo4R0tadW0vUUFJbjZaYzVvZldXelRCc2Y2ZFdMT2JPY3E5UmRXWFJXYjNGTEpEUzR1TjRrYUlyRER4aXBvb3RxaGdHVS9hck0zVjVHdEpjWW9GdzA0UjhZck0wNDE5TFJ1alczeFlzUHhMV1Z2OWNOUVhSenplZVVWa2w5ekttTXVkZTJxSGEzSFg5cTdkVTJEOVZ4OENmS08xZG1zQXZRUFBUaHdBR3d2S3dqMzAyV0ovQWRWa1NTdzVheVlXNGpJcllyclB3ZUcveVRQMHg5RmxvempSK3RwditheHRmVUJXbjVwNFQxS3lJaUVzVEpMRGZ2b1dXT0kyL1ZaZS8waUVYNm9kSE9FSHVIeFYxdVdycjNpQWVPM2V1YThaN0Z5LzZyZHFmN2R3YVgzaVY5blY0SEtqWjdyaHV4SWJpMFBwTithNnluMUZSblV5RjE1T3ZYd2xmRTgyNVVIdU9CcTVzbW9SWmJQTVk3WjFldGJDSkZ2RG1aN2hqbzNFcS9ZZVByWGYyMDlTNGc1cW5XZXdCMXUvOURmbHU4aVNSWjhRa0VOU2s1aG9GYTVuakxqUkdpQUhyNStXUUgwQzltbktzTFVGeS81M1VyS25KcXhnNllwenpMTGdHSEVmTFM1TWlIeGdLWHlHUEhvS0lmbkhHZ3RGdStiWTVWaWVXYlBSR3NuV1hRUzNNSHd6NklIWGs3c0ZyMmpJc0dQbnhSVWRwbTV4U2RiYmtGK1hjOUc2ZUxVSThlUVZXWVdUeXMwWXd5SkRDMVlkczJFcGJtMytVQmFqa1N1dFh0ZVB0R0Z4alFhLzMrN2NmN3MyZmZ4OHY5M0JYYnRQamR0RnlvZUNMZkNiZU9TcENiQXUrTUtoeEpDdEcvODFUeTg0WkhIaUZ5dzlwdTdMLzA1SzUreS85cEUza2NxVkxRYlFyanlaSnlsRFpubFNQakQwM3BNVWdNUXU1MGZPM1psRzkwa0orV0l0NWNteDJURW5zRThuS212VTIzQXF0aG1lM3N3cWgvY096MkxZelZjeHhqNHFiTHpDdzVzM056Zk1iekNPYW5GUTVVWHlWMlNlem83UHkzRlcyRTBPbzRrK3h5V05XNjZiYVBrM0UwM1RGMHgzV1RUMXNZUEsvWlJ4TXYxQWxmY2tkdmV1WGR6NjdaNlB4Tk9Edmp2V05BNjdxRWNOWVVFTzF3dmtCcHlpVVdoWUxpOU91a3dXSy9sM1VvQ2VuMnB4SXR1eUdGaGUwYkREK3p6ODZYZERBamxBQ2cycEk4Vko2WW1OK0xQNGFucWFucS9LRTVVbExyRVdLcTk0N3F6UmozcXk4cXIvWGZ2c3NKY1llUThQVyt0TXJndUdTTytzd2FXTFZ2dmJKNnh0VWVWWCt2SmtudHd0VEphVUt0S0MwSTdrenFLMVJ2ZFhaVy9tN1RnTnBFbVdhMjlKVEhXNy80Umpod3ZvdnU3WVNxUm5HZmI3R0xockYrRnIveVJsZDlDVkNiZ0RGWWM4NUR4NFlUZDdxMXlJUSs4MlBCMStjVExhUVA2ZEZBQnFNNDFlODdnTFg0NXY1SWs5SVduaVFEYzhBTXZmSXdHdWZBOGJsdjhsTGxrMERKdXphZU9aTnM2VG04RUxYK0hJOFl3TE9aVE45VHlRcmV2SXIzZEFQb1c3dmovQ3JuU1FWdlFJK3BYcmljZ0JiZnRLb1JIcHFuNWVzUVhPY1hyNXl2TEk5S1RyTk9aMnlzajkyNXZHL3V5blVsUnFGUi9YMUJmVzRrZHlnSnlYNlY5RlF3djN5RjE4NDkwQmZ6U3E0OGsyL1JCejNaNFhCVmVWU1N1R0RnQ21vUEdMayt0SkN1QjlKeVY3a3VMOXRFRGw4b0FlZWNyK2VGbzdEMUlRM2hSYy9NcVRsSUd4a2RIWFBDRDk0T1RZN3IyL0pzdW10ZlgrNklaNFl2Y1ZUM1ZkQTA0T0NtRHp6ZlIzY05kMjF5NDgyTVY2YzNXWGdPdWNkVGQwMTZXMldhZ3ZGZ3FScmlwajhtcGZwVnh1NkdqaFU0bTVZZDdqbzYyNFJoQ3VwMEJsc2JzdUdYWjgySHR6eC9acFZQcDI3NUZnbS9QT1NQZDFUN1pwY3JEQTd2alJrQWZuVTRnU1RYL3lsSWV2UlQ1bmROTDRtQXJPQUZ6aGpVSUVBQnBhVzlzQVJMR3kveVRGTzB4VmprUWhBSnpqSllXQSs5L05HWDEyUjJ1K0JILzRMajFKT1hwTXNqaHhuNlpJdStocHl1QUlQeFkyUnJ1R2R3NEhEKzhvSm9DNmZaVTNZTmZScnYxQTFZNGRmRXAzTlh6ZGtOaytpZC93Y0s0Y3VJRXMwMVg5Vk8yclBNQWZkNVNQcWJjMk8vMUttYm9rZm9QNXByeUFzNHZLZXExd2dPZDVINDVLN2czYzF6M1BEZklaUDVWNG5pcGthRjl6N1RaNnFBSDgwSXpnaldsdkdBMnRBVGpFRVg2Njdmbm9EZjNsV1FDa1dPbTgrcE1VVlNnMG5admRKeWtBcnFjcHFndlI5L2dlQzB6aEllQTlSZkJlUjNtRmh1UU0wTUxGd3ZBbHA3S0dKYkwxSFBuemZ1SjZwVGpZeFZPSGJRV1pYVmhBV0dHVGw5ck8yMGhkdjlaMXEzOC94WlB0eXFzeUp2ZmlkZTNKbUlkOFBsMWsrcXIvbmJHUU9hOFdLeEd5dFZiRnJoL0ovOGo3T01JU3cwTm5vOFRSV210Lys3ZC9tL0grMXlEYitHK2o2UGFWeVZJNFdKZUhLNytHM1M5cys1TEpObytWeXNlQmIyVDlRNTdjbHFJRG51M21jR1g3MEw5WnhNQjA2UnF3OFJBNTFXOGlqZU1HM3VGVFluZGozT1Y3cVBpcGNBQitlQzI2UzdES21VeWljQWhIOG1nY3IvcXBGQU5WR1FDMzZNaDBRQzJXU0c1MU84VktSZmNVS3V1eXd0bkJqcjlvejlqeFU4TG05dlQ1WjU4LytjWFpod2NEUU9aSDUzRnpwQUsza2w0NW5JcHU3Y1ltbjNac29RSHRzRkcwOC8rSHlWZUQvYU51Mlg4dG1iMzJtZDVHRGcrUmgzYU83UmlxWXc2TC9rZjVwbG1idk9WSlNoUCtoUi81Q2tWK0RuaFBmdWpUQlZhUXFIQ3ZzZHA0bEo3aFdQa1NsYlc0VzNSVWZMNEwxYjZydkF4VlArbEJlalc0cnBtMnc3L0UybTdLaTRkdEpNdDBWVCt2eUFBL3AvVHBVWkJqb041dk5SKzdNV2VvcnJOZDNQRnI5N003UGl5ZThGSEdabGVmZmZiWjEvOVhrQWQwaUd1OHU1djVGdGlORmYwcXFzRXJCMVU0ckhiZS9xUllhZTJBcUFYUUJ6RU9hZURPYTUrQnlxc1Q3eFZQTit1YmhYMktNdnBSUmNicFVQa1dmYUt0YysvRnl3b1d2WCtLaGkxZVpOOW1UdHo1YmNhblFIVzladXRqd011QkxkaXEvVEpVWTZueUJsaGNGUjhWanNXZGdvVVZIWFJlcVdqdHIzcllSckpNdCtPbnl0MnhqK1RBbXBkZEg1WDRLQ2VZL3p1NHN3WTk3UHFxNU9hVit6MURLZDVpOTk0ZTJ0Q2VmSkx5YVZGSjJOMEpZeHNTKysyVGs2emI0UGFka3NlekRFdWY5NVBVenJISjR4M3Q2RDNQV3FCTnh2QTcvc0RiSlpOUFZrVG54eFh2bEF0WjcwN2NITjV2OFZ6QnpBM0RLMWE2K2RubnNjcW1XNU9rOE1BN1k2YnJaWVo4cUkxTXp0OXhhSjNWWDhTMUgrOEpUNGJLdXExc1dCSHZEblo4WmR4TS95Um53SHZpb1hTblBub2FzTXcvMDdNK29rTzhPSitaM05OVlpEcytXd3UrYTdNNS9sZmxXVHZDRHZkVjNPMXJ4MjZIK3haazNjdXpnS0U5K25kU3NtaWVSTDVwTTl5ZU1OS2RUYXI4V3lEMmtQT2dENytBS05FQXdCWWZBTTZ4NldMbDlLK0tsZEhuS0RnQUhBMkhsWjI4NWFuSm9Zc0UrV1NoOUZzODU0Ymx2Zklac01VSi9SWGdBOU11S2dEVUljL0dJWFQ5UTlqUDBFZHVsa0NWZnFJWlB5QzJBdTk2TCt3OURYc0hkdnZZNVEvczJBMXU5bWpjSzFqU3B5aU95OTJEMmRQdDhpUGQweklyOTY0dHFrWEVydHpxcXYzczRpay9ETy8wL1c2NGhZYUQ2amxaL2hYa3A1TEg5dUo5MTl5ZzhoUG5MWGp4cWJPdjBXdUorTFdQcTRJNHowKzArYkU4UVdrTndJR21iTHFzODRlOFhWWlRMbVRUWGU4cksxWUFYUDg5bmlHYmw2SndFN0x1UnZUSDhubHlWREZrK2dYVzlaa1dMVTMwWWNIR0pyaTI2TEg2Q040YTNiMi9xbXQ5MTIrRVhWK3Y4TE9pWXFEQ0FWYWVXMFNvUmVYTElybkZ6cUh2NlhiNWthNGl5L0phOGVISlBvWGNhN1A3S0J2N0syanQvbCtPSGJoclY4VmJjOEwyK0FRZjhDdklHbTl5Q3lDT21SNWF0WDNlaGZkZnovWEFma0x2bDRtZmR1NkI4NUNXdWdZY3RyeG9RT3VGeXNVL0djS1hzcHJ5OCtZMU1jbWI2K0szNVVDLzlXUkYrT3hpMDdkNW1zSVdkMVpVcy9rZkIrRnlVemJTeHd3NU9EeVBWWi9GNVNFclFxcCszbzNkT0tyODdKQ0pzTU1GenJrbUpreWVQWEdaQmJYVkZ3L1RWM1N2OHUvRTZPbUcrOThWQUFBZ0FFbEVRVlNyc2tpM0UwK1ZtN1V6N1BJWmR2UHcwWGhyREJYWFp1djdCZ0Q4eVovOENmNys3LytlMFl1bzlQd2s5b29Ed0VsOEpleWdxMG9sNkJZZ1RWNFNQNGZ0K3BnMnNqWTZBS0ExQUtRb0dZZjZsTGVwbmZ1b2VkVno3Y0g5d2l2dVdHSENucXgwK2hVN1JHSGlmYTlIUGJWUTR6WnlBVHUvV1hFZ2YxTDNia3IzaWNuTXA0bC81RUtLS3I0Sm50d283cnhLdXZ2VFZJVWpzY3NIOW0ycWZGYUFaRVdKS3gvdDRxRjQ5K0RhT2JBOVhWVlcwVmQ5N2RoNzh1bzRkM3grQko3dVYvckw5cFVuc01UL2RKZW4rd1BIOWRzOWxQZHdJaTI4WEdiZGRyc3N0Z2V6OW1KWFhpR3ovL1JFK0ZGZlNoWDYwNkJaRzFXc3JFVkpOK1AvdlFWNkF6VE13L3FKWW1XaWtlTGo5RG4wM2ZSWWJLT2lwSExnVmppZGlQQ0pUb1RvRlZTRVZ6ZWVuYjRHcWdkQUZlKzIyZUVPZUU5UVBGMzR4S1ZmVU93ZWtuZHkvNnI4VHArUnZpcmJsYi9DemNZeDBCci9MYmlxL1R0UTdidktleFN2ZEJsc2JRME5uMzh1L2s3S3h3MnU5OVBzVDlGQ0YwVmVDNU9RWHR2bmZiVDEwRXdMRUlBZWNQUXdHdnVmVUYzRkJ6Q3F2WVl4eElieHhaTXJtNmRXK1RKRlNidGl5cjQzVVMxV0FGMlkwR0xGSVBvdG5zbEIvaXVyVVVGUTNZQzgrWmh6SjhhOTVJYkF1OGV5SXVUVmUvTnVjYlNMTzc2ck5sV2V4STdOVTBYSnREbFcvYzRCbStsMjVVeC9wOTlNWHlrV1BQbHVQRldaSjkvdHI0TEtYalBRV3Z5Znl2amZDUGFEcVlVOVB4LzY3WjQ3eVkxc1BGMSsrTHVvaEhqVC9mS0kxN1FyUlF0d0xWSzNXREZuZHE4MVRvVXRTcGFuTGVaTHJZRDcra1RlTE5tQmZoeTlnNlhBTVgyb1lnVnR5VFVyU0dReG9EaklONE5JSDIwR0pkNG9Uc1M0VXh1QzBkZU9EWkRiWmJtNGl6dCszbVZUNFZoVWJiWUxGdVoyclBXTncvSHVvYm5UaDZmZjlWL1J2OUxIenBnODduSG83NGRsNDVEWTRVYkkvR1I2aGpzMnI2QzBKMHJVampzWGRrOTFmcnVuRU1nblFSYlh5OW1wWWJPYjNhSmx6c2N4dW1MVmlXeTIzaEJQVllEenRRNzVleVcwSU5oNTNXUDBiQkY3eFFxZ0M1WnBOd1NrSUprK2JCNDNucFprNDJBOENXWFQxbGc4dk53WFFiWlJaUHAzWWFmZmQzQ3JQQ0RuYmhjbGdXN25jTTdra2U3ZDhnckh5ak5mRlg1Vlp1WGV0VVFXbjhTeXQ3MFJPM0c5Rzl1eGJOSVZTR28vd2VzZVFJOWlSRFZrOXhaQVh6ZHlVVEw5UG1oV25GVFI0b09JeXErRzJ0blZmQm94NUZmaGNkSjZzeldJeXVhVW03L2J3b3FWazd5OHVqSHdibEltbit0cCtCTTUyeXBJYnNRamRVenZyZlhkZ3FLeVdWWHVxMnA4cjZBU3E0ZTc4ZXphVmZsUDh5UnNvUkVXSmQ3QmQ4ZG1VNTdwZCtXUjdpbWJYVDlXVnVGRThpeVhFcnV4ZmdyYzJjYytCYW8vMEFHZzk4MDNBT0JiMy9yV3FybU5qWUFBclB6SVBqcEVYRldzZjNBK2FmR1J4U1VKN05EdXBQNXhWU21kTVV6dEU1UUc2R0pGeEVWK0xkajdic3EwS1Q2VkdITDYxT0Z1UWJJWlQ2Wi9zaENwYmxiWnBwSDUyWGxpNUNIcm93STJ2N3QrMzhHdmNJQU5YbDkwWlRuZys5NlZSN283Tm5kMWtkeStScEc2aW14WC9yUnNSLzkxd0c2TXUvekhVZHVTVXZ6NjU3OE9ZTHRJK2NTRHAvMi9tSkhxa0RhNzJYM0ZBMkRHNHY2cWJZTW9QQzRjcmMxQzVkSTEvU3Urb21CWnZwdHlGaEd2UExHb0ZDdjk0N3dvRmlSQVhwUlludFZYRDlYc2lZekYwd1dDNSsvT0lXT3hPN1lJVDhRejhDNStoZmNxNTQ1dVZ4N3BQcFdOYkRPYnFwOU05eEd5SFhqMjFYMEFlRDJHL3hHNE0wU1N3czkvL1hNQTlJdXpkM3E0QnpsaE94T3RFY2M3dXVqK1h4aWJZOW93OG51RWhjeFcwVEtvaDdhenIyMFV2WkhmZUpHMm0wOVFza090OHJSQzNaQzJLREg5VFZxeEVHTHdlSFpqMkNrR25uaVNJdkcwUHc5WkRqTHM4aVBjOVZXeHEzQ0FaM2k3dXRiOHB3NURYNVZYNG4vUzM0NnZTTGZMOStSM1pkazRQZXpZN1hCZndVZjF3ekRXY2JZSDN3WWIyaW43b08razVMNTUvODhsaFBsbitjNGpYZEhHdnkwcFBnVHNheDVxMTJDS2tjdkcvcGVGZ1d1TTA1ZXhYWjZnT0g5ZEZ0RDUyaTBjcUs2Wk1WdjlvQVg5Um1zMGVscFM5WlBGWTNIbmhxM2NaMTY4Ty8xVitya0xHODl1WDd2OGdSMjdLcmZDMnpsTXJhNTZhTzdLNytqdTlKSHAzOTNQSFZuV3owQ1ZOOEQ0Ty9ma3dHNi9Yd2Q0NjVsaVB5VWhacEh5clc5OUMvLzVuLzhaY1IwVWdyNE56L2N6V1VqemZhT2JyU2NtQSsyMEU5VGxPeTNHemV5bm5WeFN6TmpYUFZOdWk1V3o3NmRlOTFSME8vcUlNMkJ2bnAyaXhlTUJXSDRTanZ6ZVJiV0llclcvTElmQVhoKzdoOWN1S2o0cW5JRlg0OTIxMytWSHVsZmkyL1YzUi9lVTNOTlZaTHMrTTFSc0tweW5zZE5uNVo1L0hQWHdOSnhRWjVIeTJXZWZPVVhLM1I3ZmlaMll2RW1TUGdiSCtDMTNjNmdQQ2ZwbFdnK0Q2aFVVam5uRCtmMFRwNURaK3UwZWdaMmY2Q3U2aXI3S2tjajQxU0lBeUxuTTl0V05ZR2ZUWWFqMmY2ZWZPellNci9yWnNjKzRtVjVpOTVDOWMxQStKYzg0ZC94bGZUM1ZqNmV2eU83Mlo3SExmd3J2N1BkcDM5Vzk1aFpNcUgveEYzOEJ3THp1ZVhwQUdsWGZQQWxSYnVLd2ZlWGxzeHJiQlhPYkFFRDZIeHlVWHhvZGNGL3puTHpzRmM5bDBuQzUxd1VMTFZhRy9QQ0xwN0VlN2hRclE2OWVNeG45NEZoVU9CTFJ1clZQUXFTczBqZERWc2c4Z1d6TUV0WCtuNHlicllITVg2YmZqUy9UUDhrQmZGN2xJSzNxNy9nYWlIaFd0OE9WY25ZLzNmRjFSeWRsdTdhUnZJSTd0anYzeHY4VWJJK2p2bzI1K0lSL2NkYUR0OEFlR0syQm0rK2JYWldmbWpSNTJXWi83TGRkV0xHaGloRmdpWGNVTE1xZktIaThKeWpaYTVEd0VDSEZ6dEJIMzcreGkzNjNjTWdPODdHeFdwbjhITWg4RGJCNHFyWlZiRzhHSjZJNDdtenNHWjcwbVIxTUZXVDhUQyt4TTdZZGJsVy9LODg0ZDJLTXhsbTFxZWlxOGlxdnFwT284cXE0NjAvYWpmdjVyaThQMWYxcTlGdmxMN2didHVqdVJwRnl0OWRYc2R0dk5hblc3eUZFV1o4SHZRUlFMMWlBMlUzNDM2MGhMcUx2cFVqOThnVEYrY0tzdlJHaW9tUlp0RTNFUXdvV3lrTlMrQkM5aFhmelJqL0ZlRTlTZGphQ1YyeXJ5TWJPOEk0NFh2WDVxajFENWpQVER6ekJxeDZrbVg1WEx2WHNDWWZVVjJRVi9VNGU3c3F0cnNxcnlDMnF2SUdJbi8yUWR3ZXYyRWJZOVZ2aDM5bXZYSWp1WnBIeXAzLzZwL2k3di9zN3JTVW94SG9EbDlNN0ErVXg4VUJ6OXpzREZGenZTYzhCL1NRQjhRRitFdFlpUjdyd0NwWW1mQXZPcTErWVpaeElad3VSd2VzZkc0V1AwVnZzUERWZ1JRdmpERm0yRHIyNE1yc2RWRGFHSGJ5anNMTDVlc0xuUU5YWGs3eTduTHVINWE1ZFZiNFQ0MTNka3pZNzhUNGx6N0JydDh2ZnhTdituOXlYUE96RWw4WHpsMy81bC9OYVBVblo2YVNHZlg5ckRNOG10enBFTDRmQmJUbXY3T3VVbFNtRXppSFBpb3hwWWdzaVZwQVFUdmE2QjNBV3orQkVCWWxUaEVoZS8yaUR1UER0M0djTDJWdXZXYkZUZVpKU3ZSZmVjZkJMWkRuWVFTVzJDb2RoNTVDNWk2cS9qK1R0akh1c3VaM0ROSXN4MDBlYzNYRkY4a2kvMDg4Tzk2N2Nvc3A3QWgvWmw4U1QvVDZ4SiszRWMrTjF6MEM5azlldzA4K3J5YnY2NmptVS9tUWNCNzBjb01XQWg0YjROVThYR2hPZEUvbzNVMndNd3FUMDkxR2lnb1RwMi9ob05DZTBFSVB3MTBsaDBUSnBMeFl2UTErNVVWN3R5K05sZmdjcU1lNGdPaVF6M0xWN0JWbWZtWDdnU1Y3MVlLMGMyQlZPVlNmeGxOL01acmZvK3BUeXFwN2hqczMvVmxSelVkM2pNbnpTdnpqN1BCcTgvTjNMbDVjTElYL2phNTR1T3RZd25LTEYrelA0dmVrWEZEU3VKbUtKQ2hiVjVWb1FYWFNIcTBsaDBUSnB3VTF5OXhXUWg4b05tVDI1WWNqMEE1VVlkeUQ3cmNaUXdUaXd4dlc3VVBGZDRRQ3Y4WFlQeUt5dnArMHFuRjA1MDJYdFRCN3BkdVE3M0FpNy9IZmhuWEU4dlVkNnVEc0dXL2dlVGJTKzg1M3Y0RHZmK1E0MWZBKzhRZlRFMlB6Y0hQTVdYcGlURTBVSFhuRnc2cmk0eHFlOEk5QlplTnlzeUhnaDdrcGNyOXd3bjhvMnd6dDlQNFc3bTAyRUozMVdmTDJMYy9md1pVOGdzdjR6ZmNiNWFGMmszeWswSXQydVBOTTloWS9vNDFQaTNmdVdyRU5lZU4xVHdkMko2bmIxZVg0dVlielBVMWlhbU01TkQ5MEc5WFFoL0I3TE1jUmE0YjBhdXYzMEpPT0tmdVFyS3VEa3NOeUplQ1p2UVByemNpSEFidnpxemZLMExVUFZuMFRtKzQ3UE84amlxT0FKSHhHcS9pdThDZ2ZndkNjT3hxenR5WGIwQTd1Kzcrb3kvVzRjbm40bi81bi9DSy9ZUGdrWmg5d1BodnlqOWdpSm5keThHdDhMUlVwRFAxWHF3YjRQYkhIcTlwV29GK0tkVHZPa3UvOGw0NFdJNVNBSDlvdVdwWkR3aXBXVFkvdHpDNWVHdkNBaDhWTWVIRjlUT1Q0RUp5bW9zcHRsNTlIbXdOMmJLb3ZGb3RMUHJzOTM0ZWs0bnZCWDlWSGgzZVhzSEppUlBOTzlXLzhPWGFUZmxVZTZYVG5ERHZjZHFQYS9zd2JmaGNxK0piRVRIL090aXBRLys3TS9DMTczc0k3cW5UK0ZqZkVxK0FjU0ZTZXd2dmpoZmwxcS9qSVJ4SjM3OUtIS3QvMG5oNzBxWEF6TisyOEE5ZVphaUZ6MWtobDNvV2ladkVsWS9VeGVZZkx1RkNLVm0rcUpuMmdxL1ZoVSsvQmlrbjArK1IyU0ozeEVxUGl2Y0lBYXI3WDlWekozRDh1N2RoWE9uWGhmMFVYNk93ZnNiaHladnlwSFlwZi92eDEzOXRRcVdtdjRxNy82S3lWem5xVDRYMEI5RnE5MDhucENBSlRHbWVkZU9rbkpmWkxWdVI4WEllSFRCOERsZTRmOTJIemRSV1dHbzRxU29HQ1phS1p2VXJUUVYxVVF2TVB3Q0xMTjQwNGhVcjNSN202UUROVStnZjArZGpkNWhpcFBRdG84V1F3TlZIeFZPSURQRy9KTVg1Vy9vcXZvQnpMZW5SanUySGk2VitMejlIZmladGpsdnd2dmppTzZKM2YySTRrN01WZjZXb3FVYjMzclcvaVAvL2dQeHIyQi9hRHJxUGtlZWVQSjJQRVJKL055MythLzJaT0xlWm05R2pKaFZ2bnRhRlJQTjErdmFJcjZKcjlOTkhsZVlYTnlXMnVMVGZycWgrQk9JUUw0ZHRtTnhwNmdNTjBPc2o0alJQRll2Y2Q1QXJzSFZZUmRQbEN6cVhDQSsyTzVjMUJXWXNvNHIvaS9ZL3ZSUHUvb3NoaXJuQXFrbitvZThGVGZkM0VucHhiVnNVWmdmVm5aVXFSOC92bm5ONHVVMnNDZVFqR1BFMW5pODN4YmU3djVZMEgxaVlBcVdDbzJEaDlZRDNyNUNxY2NRL1FLcGdIWHBiZzVtL21QQ2Fvd2pMOTIrbHZFaGJFYlZBNW1oaWZ0S3JvS0t2MWJaSDFtK2dydStMaGpzNE9LL3ljNGQrZjdydTVUNisvbzd2UjN4NmFpdjlPWGh6dDJkMnlxYUMxNCt2MEprSTNWdmk2dHhsNTgzVlBCZXllam96YW9KOER5SGVmVUdzUUZSZm1McXAxOGZyVEo3Ui8xb29XOUVtSXg5SStWYXpsTmQ3SVVJME0vZWMySmx4VTR1cUpaOUI3dVBnMEJ1RzFtbDcyMnFONkVIckwrN3lLTCsxWGM4Y3MyM0R0K0JxcTJHUy9UUjV3ZGVhV2ZnWXk3MCs4dTU2N3YzVEhmOFpmcE1wOFNPOXgzb1JKRGhmTUVYdDNMZ0RWV0ZudWxuNlZJK2V5eno0eGtMeWw3T2N6SW1WNGlIK3d1N0ZnZUtWb0dHbFFSVW5uS3NjT3ZmbG0yZnpRYTd2SzBROVVTMDdqempuNU5PUUxMcXgrcy9iLzdLUXF3Mmxic3NnMGkwKytpRWxNRnI4UjF4N1pxVStWWlZPMHF2RmM0N3pvNE04NmRmaXVjelBadXYrL29MOUx2eWlONGU4eU9yMTMrMXdFNzhiSlh6dFc5cTlJUExWSXFodnQ0aDArSnkzOFdmakYvQmtmcVYrTWlweFBXb0E3MFhiNWJqQkJlLytCY3kzTmYwekRlb0tydUhLNkFlbzBFenJHNCt6MlVnYnRQVVRMTzREMkZTbjlmQit6R3VjdlBVUFgzQk8vT0FYakhScUxDdTl2SG5iZ3JlcVo3eGQ5ZGZXWXpPRHRQR3lzY2lWMytnR2QzWjQrUnZ1N1lSOWpKZTliM1gvLzFYeSt5RjE3M2VMZzNJUlhjbk9zRmtSOC9oOUpvYjVMSGhHVVROTEM5b0JwcVJVNGJIK2VGb2JHQ3dYTHNheC9BNzg5OVJTUTUyVzh1RVdRM2ZaWXphNS94Z2J6UGdTcXZpa3BzcjRMRnZMTnBXOXl4aVNEdm42cnZqUGVxUHVMc3luYzV3UHY2ZUZxWHhYUEhaMFcvYTV2eDM0bmR2bmY1Rmp2MlQrOC8wVjdqZ1JZcG4zLytPZjc5My8rZHFRenFnOTNCUmc0Zmg5ZTN6cU1rMVNkUlRsQTJNUU92MktUOEJoWCtLQ3JvYi9jRXJsU00vYkVPNThId3VwQnpqczU1WmZ3V2JqSDEwSUtyeHJlRHAyTGJSYlhmS2svaWpnM0E3VEpmbVY0aTQ5NDVGTy9ZTU56MWsvWHhpbTNHZVVkTzd1b3p1NEhXNHY5bzR2L2ZzSnVITzN1ZzdPTTNmdU0zRmowdFVqNzc3RE5UcE9TQmJvNGxRZVJzUHdsUHdCOWZNd1ZNTFQ0NytaWEozVDJ3VlIrSDg1UkNoakhyaG5XdzBhOGJTNmhYUDNENlBOWStLbC8wcmR3d3U2K0NLbm1zb2hMZkxyd044NG00M3hIdkV6N3RPcS80ckhBR01tNm1qemhNWHZFblVlSHY5TC9EdWF1TDlIZnRNbDJtejJ3OVRzWHVYZmlJdnAvWU96eEU4VmY2TFJjcHdNY2txMk8zbjJ6Uk9vcVJINkl2NUE3UnlhejcxQjFVSmdaWU4rWU11M3gxNkt0NlF6Ums2RXZOMEdSRDBFanhNdlJlTVVMbXdNWldlZTNEc0h1Z1A3M09TM094Z2JzYi8wZGhONDVYK1R2MlZXN0dheTMrNlhwWGJqbVZRdXh1SDVrKzQzeTA3dXVnSDZqeUtyRDd3cE8rZDJIN2ZuclA4cENOMll1REZpbC8vdWQvam05Lys5dE05U0wySitheHVRejhSSDFjZVpPaytxVHVIcHFBdHNtNHdNb2ZiZGRXaE9SK0o2UTRYSzk0R1cxYnhOQ25OS1JReXI0OGEzR25FS25rZGhmWmpiaURyM3Q4REUvNjMvVlY0ZDg5UEtXdXlxdkltZTZWY1ZSc2diMTRxdnJNTHVPOFEvYzA1eTVlOVYwNUV5b2NobGRqazlqcDE0STlSUUhlOHNWWkFKc0h6SU01ZWh3MnRqNEhVcmcvS1drUkliQzc4THpOdEZLdzdEejVxQTViZlErRi9Qcng1S2hhcHVoY0lMdlIyUGd6bXp1b3pGRVY3NGp2TGxwNzl1K2FBUGZ0cTNZWjcxVjl4S25ZQWpYZUt3ZDBwcTl3M3RYL0s3YVpQck1kcVBMZWhUdjlWMnc4enBQN0U0UHRkNmUvMy96TjM2Unl0MGlwZlhsV0IxVEkzZjk0ckdPOFB5bWxJa0pnbHk4eGJZL3hRZXpsVU9ZREZXZFNHL0V4bXA1SjRiK0EzQzlyQzJrbkIreW0zYkd2b3JLQlJJZ2UvYjhTNzZ0eEFUVWZGVTRWRlYrdDFWNlhETzRkbllYSHpYeGtlb2wzOS9GS0xsNnh6VGlaL1N1MkVsWHVXRi9qK2k2cWEvVGRlTWZlRWlFYXMrMXorMG1LTFZJK0pzSFZQcTdCemJpZXlMSG8vdTZreVR6dCtOaTFzM3g1TTRWbzQ2TXRPYXQrUCtXaTZQbnlucFJNbU9sTlkwaFFYWk9WeDZOUG9UUUhBWjdhaEo4QzYvT1ZUZnVPelVEMTRNNzZ5UFJWRHNCNVZkdUJjZSsrTXZldjJHYWN1N29xNXhYL21WNml5dDFkVHhYcyt0amxTOXpaZ3o2NlAyRHRjL3RKeXZ2K3FOdEF0REJkMVdDVVJBc08xSGpnazlibm9qNGgwUVlmUWRydDhLUDVvbjRNdmZUOUZBdFYxeFNUQzk5M3hVY2xKeEplWG5iOVZQRGVlMFpqSi80bjQvSjhmVVFmREJuM2xVTndvTUxMT0x0eDNNMXpwcTl3ZHVKNW12T3F2c3FSMk9YZnhVZjA4NUg3SFJDUDZZayt3eWNwejhDNzBhajR2WGl4eng3ejZtUm5JdXlFWnJhN0JZdUg2ZWNJbmxiSTBBNkVCVU9wZ0Fud3l2ZFFLamQ2SlZjVlA3dW85UHNVM2hGL0JVLzB1K3VqeXQ4dEJPNXdCbDd0eStJVmY2L1lScHlLTFpEelh0Rm50bFdPUmRWbThLSjd1K3JyQ2JSV2ZHcHU4TzVpZ3FGNjN2M04zL3dObFFNUGZYSDJJeWZvNjRoWENva2QyeDJ1aTRhcitJaUtCRzlLWjIyeUVuWUtEUUNxait3Snl1NTRLMnR5MTJjRmxYN2ZoYS9MSmdxODN0K09mY1o5dDc3S0Flbzh3T2RXZkdTY1Y0cUNWMndITXQ0VGZUQlViUm12YXZza0ttdmdpWDNNNjhkN3RYdTN6enM1UEZwZzllMXZmNXYrS3ZLZGp2WXcvUE5FWkFmYUU5ZytjQTN1VGlMd21xMUYyWmRESytXaFFNbFE2aWRBZVp4dndxZnUvMm04OHg3ZjhiM0RIZmovMmp1M0hqdU82Mnl2N2I4am5xUWhoMWUrY1pBNENaQUVBUklrc1hWMExJbVNTRG14azg4SWtCOFIyQlpGU2xZc1VsWnMyZGNCQXVRSTVDWThpNHJ6ZStxNzZLbmQxZFZWdGQ2MWFsWHY3ajMxRUNOeHV0NjFhdFdodTkvcHZmZVFpN0ZvMyszcTNrT1NBcmtodFdqbk5MWHhpSWFMNTlwREpOb1FiUnlLM3pmaDk2MDV4SFZKMCtjLy8vTS9aOXZZSnlsTFRDUUZwbVBhbmFKditmd2tpWDl6cWdkZGdOUzhhV0xSbUJ4d3J0UlU3d2g3WXFKWXBwamNyOE5IeDgvdFV6U1BGcTcvUTdERUJiRkZYbW5PbXBzZnArR01BNUkvUktMbitzN0J0WE9hSmVLSmJISjRwUG9RSkJhOUhuRzV1UFlTenNsZjV1SDZrK1pES1BXcDZhOW9VdjdrVC82RWZ2M3JYNWNrRU54RW1kSzRLL2ltbnlDZUJ5UytwcitZMlRyc21DY1ltYm1NMzJCTFZQOGtaSStqaVRISzdSM3BYRmp2UVduL2gwQXpaazJNQkduK0Zub0xEZGZ1UVhXZW5MNzJobjdvZUNKZVY5dGVRaHNieDJuemFFajFwYm1IbEVqMWtmcmhwcllmVDZyKzNLZDZQT3lURkExTEx1UWhxVFVRMGcySHpDdVhZNEtqNVB0VFBOQWJiUDJoaEhHUklqRTYzRnlJNWtFQjEvOTVvTVVjU0hOeWVxN2R3K200ZGcraXM5RFVtQWF1M1VLRHhCUFo1SWpSeG5scTQxTzB5RW5FNTlWY0J4RnpGS1BwaDJqSVcyMVN1Ri9xeGhYZkF1djNwTVEzUjUrLzVxYXBXYlJhMDBQRXIwYzJieUlNZW9QdEtLNm0rR2tpNFh6azVtRzNzL3VsU3RLYXRrVHRITlhHRStseW9ER2N6dkxtS2RIbnRFZ09UbFBiWHRJZ3NVUzhqbXRQb1lueFNHSzlsanZ2SlRsYnc5WENqUVdsMUEvWHg2VkxsNHJ0WXBQQ0RicVdTWDZiK1dQSjNSejN4Nk5tYnRLSjB2T0V4SGtzVEUrS2ZkNmR3SVM1OEs5anZBZk9VMEhOU1JCaXVYOHRjMjJSbXZFN3AzOFRZWGl6c0RJVG5KWnJSelVlUk10cGFzZHVvY20xYzNFZVZFY2swOFpZeHRia1FwRG1sMXovWW5MM3FmajhySUc3ZGxjL1NYbmhoUmRNM3BlU2dsME0yVnFOYU9aVzBGZFl0MlFodFhGRS9FS0xjWlEyWnp2L1B5YW5DLzhhZkFPYW45eEprRHRwU25EN0tJN1g5TEVVUzlRbW1Yc05hSjRXTjFrdXpvK2QwM210NUhnS2laYUkxOWZVWktHcFhUTWlteHc1YXVNOVZubUliSE9scUxtdnBQRDU0cm90Y3Nkd0JvVUlNQ2xXdjlTdDlVSk5XTElyNVFiUnhxWGc1bGFVMy9uL1JUbEI4NUUxUHdtNHVqMjFKd3ZTRDZJNUZDMXFzOGhwa1lOSW5nZlJhMjZFWEY2dUhkVjRFSzFtSEdnN29xbnBIOUZ3N1J3MThkcFk1OXFhL0JwS05VaXZtekV0Y25NdjlSQUJKb1ZvZUpyeWYvLzNmNXlNaUpaZHFQaTlJK2pOc1FSMEk4N2d4eTVkc05TY1NYT1V5SzJKcUErWG1GL1V1QmpEN1RIUnVFaS9icTJJeDFkYlYzeFI1ZWF2RnN2ODBseUkzczhIcDYyOVFYdXN0RnllMm5ZUHA2dXAwWVBxUWpReG5wcFlvbmw4YmI0Y2tyelM2d0tYVzVvdlJKdmI1RWtLMGZBMEpXVlN1TUtzWWQ4N1lrQTIxOWxoWkNIRGVmRVhReVF1SkhXanNyNlpWdDhNbmUzY2M2RDFhZmVsTnE0MUZuVlo1SWlwemFtTlIrSTRUYXJkNHVaTEpOTVM4ZnFhZG0xYlRFN0w1ZURhWTZUNm1OcDRJcHNjSHN0Y01ibmM2SFV5aHF0Vm01Y29ueHQ1a2xMOGpiTWhmL3FuZjhwSlRIREJEWDNKR3lBUmtiUTc3YUpwNHpoYTVHMlIwNW90MUlpU09oMGw0ME11WE9BcHI4SXl0elFYcXZlNm1xY3BYRndLSktaV1kxRXZvcTN0QjlYbHFJMG5xc3N4dVU5VjVGbUMrTnlYWEU4NGFuSzkvUExMOVBMTEwzTXk3RW1LSmNpQ0locUkxUHdacFNhYTE0a3VXTzJOS0FkM2c5SnMwRmExV3NMdEYrUm10R1lzYXJmSTRhbkpWUlByUVhKb05iVTNYdytpUnpSRXZLN1VybTJMcWMyRGFEaTBPYlJ4SVpLOWd1TGpwV1pIZXYyTjg0YmZTM1BGY1BjY0MrQW5LYi8rOWEvcFY3LzZGU2ViQWFadkR2VHIzUTJ4V0NTTEhDaEw5bVhCMXVyMXhCZW1WRnNLYnJ6SWVkYlNyTFhJSzgwcDBUdFg5NzRVTGk0SEVzZHB0TzFjWEVpdEtTSENkU20yR0J0am1RdUJ1MGFnaE9lRlZjNlkzVzVILy9Jdi84TEppRWp3SklYN2xNL1NDNUpEOGhJUnFxMzl0MlRRbUJoa1RyVzVZNVp3eEpab2J1aklmRXFRR28wUVZPZVI2bE1nT1hMN0Zvbk5VUk1iSXNtRGFGTWFpeHM4RWFaSE5aeVo0dkxVeElaWTVwRStQUWpSeEtTb3pWTWJiMDJxSHMzMU84ekRqVkdUbjRqUEd3S2JsQmRlZUdIL2Qwa0hMVUZOaHBnb2JlcmZrcEVzVGp4ZmtsaU8zRnFFRjRHYS9xUWJYekkveUQ1QzhzUWdlUzNROUZPYXoxSytwWXhYQ0pJYjBkU0E1RWMwTVVnTXArSGFVNkF4cFJzRmx5UFh6c1hGbFBSSXJ0cjRHRTJNcHlZMjVGQjVOTmRCb3JiM0hpTCsvcFBqbFZkZUtiYUh3Q2FGS1A4cG45YVltaEdqVk9IaWNBc1NvN2taU1NsZDVIS2dmU1A1RUEwQ21nZXRQUVRKTGNtTDVFdUJ4Q0dhV2xyMFlaMVRraytpRFZuaUptK3BxV25uWW1PczVxYUVOSmRVejJHWnp5cVgxZ3pFV09YaFNQVVQ5b0Y4cXNjak1pbVMzNWVDQUMrZ1p2NFNxVU96WS9sK2xIZ2NOUXVPekVsTi9oS1c0MWdhWk40MHRNaGJteE41OHJJRVMvU1A5SUZvVW5CeFhEdXFJY0oxSWFrWTUrcGUva0hycU8ybmhEYk9VeHZ2c2NvVDBpSm5pZHcxMjY4ZkNscTNKR2RNMkVkVGt5SUJIVGhMUlpxYTM2MFNHaG5Kb25QalJ2UGt5T1d2elJ2RGpZTmpxWmNvck1hZHFndk5iVDJtRXEzNmFwRzNSVTRpV1Y2SmxpaXZ0OHFUZ3RPRzdTbHRqWmxBeDh2bGlaSHFTOVRrcW9uMVdPVElrVE1hR3JoOVVwT2JpSjhISlAvbHk1YzV5UVMxU2VHS1BRU0k4Y2dTaHU2RzcrTjhmc3pJUXBRSTU2NDJWd2kzSnR4UFJxSE9BcVF2QzNJbnVVWC9GamxTdE1yYm12QWNXR29NWEQ5Y2V3NWtMRnh1cmoxRW92V2tZcEE4MnZGNFVCMlJUSXNnelNmVmw3RE1GWVBtenVrc3JzdXQ3ajJlMGhoOWY1S25LRVNFZndUWjg2dGYvWXErK09JTFRyWVlZbU1pbENPMFdHeWlkbmxSRHQzL29RbHZZcHhtNjdRY1I0dmNhRTduK0pjdFFqZ2QxKzVCZFNGY1RNNndjT1BUNU0waDBlYW96VkViVDJTVG8wVHIvQ0V0cjlNdGN2L3J2LzRySjVrZ2VwSkNKSC9KeHhxUktSRklhMmpsVHBHTmJ0bGZETkwvMm9qbncySU1GamxpV3VSY21xWEdnUFNqdlVsenVibDJWT09SYUlueSt2QjR6cnpra05RZzBhYW9qZmRJOGtpMEhKYTVXb0hVcUwxUDVISnI4MGxmNmlGYW1VbnhFN0xiN1hnendxL0xERFpuRG9jdkNySmhRdEM4T2JqK2F2TnZEVzQrV25DSVBpVWdKbnJKTVZqMEpjbGhyZVUwWEhzSkxsWnFTSkQyRUlrMmhUWitjdTBYNXBEcVUxamtRSkgwWlhYOVR2VlprNXNiUXk2M3hxU0lYKzRocW52SlI5R2RHcFVwWVVKcUZoYWhkWDRKYUMzY21pTHZFVUg3c29Dcjk1Q3N1YmFRbXB1S0JxUVBSSk1EaWVVMFhIdUloVlo2WEtxSjBjU2txTW1qaVYxNnI0YTA2cy82ZW1tZEx5VE1MWDJwaDBqeEpJVUllNXJTYW5GS1FLWUVrSlNJeDJXOXVNaThXZmVaQTZrRkFjbURhTGJBMnNiQjdkZmFlclh4MmppaVpXTTVmVzE3aWxLTXhwaFkxNEF3aE5mbElOTFZvWm1qRkZMOWtuQzFTZThSMXZsQ2ZHN05VeFFpWTVQQ0RkU1NKUXdKQW5jVGFBRTN6MHZVY0t4d2M3czAxdlZZNUhNdS8zRjhpL3dwSkhrbFdvOGt4dElRb0hycGpSZkppMmhTK0xEZGJ2ejdXVXRLRHFHdlJSY1hZcEZEU3RobmkrdDFia3phdml6eWFVMks2dVVlSXFJdnZ2aEMvWktQaHFRcFVWVytUaVNMdmJJeDYrc0FBQ0FBU1VSQlZGVU9PVWJsTmxleFpGOHh2dTl3cm5NWHhFUFdTVlRYZjAwc2tTd2UwWElhcmoxR1k0U2t4eVhZNUNDcXVXaHJhOURHV1dKWlE0dnJxRVZPTHNlLy9kdS9GZHR6cUo2a0VCRmR1SENocVVteFhGU2lqTWs1SS82bGJSemNZbWhJOWR1aW4wT0N6TzJhV2JyK212NWEzckFRclB2UjVHc2RvekVTTWFpT0tLM2w0cm4ySFBxNDJaR1VERUpUZ3lZbXhpSkhTK0w2TE80VEZqbkRISEc4OWlrS1VZVkpRZDZYZ3RKaVUyUk5TZUl3OU5KUlFHa3hMSkhNUzhzNnpnT1N1YmJpdlBTWnd0ZGg4V2JHSmVNNWJXMTdqTVpzU3ZxUWFJbGlFK0svMlFWLzF6SG1sZWVSajBHbVh6dWw4V2p2QzdYM3VEaSt4cVNvWCs0aDByL2tVOUZsRm9rcGFVbDQwZFVzYmd0OEhkSzZhamVxQjFsdmJmNWNib3ViWDRyVUhMYm9KeVRPSDYvbjJxbXQ4eER4a2hoT3k3WEhhQXlJOUxpVW1qenBVRjArYlIzYU9FdEsxNnFscWVsVEUvdnYvLzd2bkNTTCtra0tFZjZTVDRzTnNqY2w5cW1yQ01lcUhiZG1FNVNJNjlEVXBZbVJZSjNmSXAvbVpsRUxraGZScE1pWm5SU2FQclRHVUJNVFVodFBKTXRodVM4UXZiWS9KSGNLTkE2VFFhSUpRMTU1bkFldFAwUVRrME42SGtpMG50cDdSTmluTkpjMHR1WXBDbEdsU1ZueVV6NHRjcTZWMGxpUlRkRXBZN1dYbkV0L3lzVXFmd3FmMjZKZnFaNER5WWRvVW1qamNxRDUvQnB6ZXE3ZHcrbTRkazdEeFhQdEhMVUd3cE11UTVkWE95WnRIRWVydkNHcFByVDNCcTVleVE4ektlMlZLMWRteHlSVW1SUWlvai83c3oralgvN3lsNXdNaHBzd0RiT1hnZ3k3MEc0TUxkejhMRjBQQjFldmhFTy96SkhxMTdvV05CK3FTeEhHb3ZzRjdjL3FaYkNhV0k4MFIwNHZQWTYyZTJwMTB1TlNrRHlBSkVBa0pxSWh2OTlhU0QweG1waXRZV2xjUXB6TC84cUJtTlMxNWFCUFVvaHMza0JydllHV2ZDbUlxeDFkWEN1NGVyWk02N0cxek44eWR3cTBQMVNISXMwbjFjZlV4aE5oT2Z5RnVxUkY4b1RVNW1waFR0RFl2TXdSN1Q4dGllVWlpdlBseHBVOG5BUWRSMnR5ZFN4MVg0ajcxL2FyeWVPY295dFhyaHplcEZ5NGNJR1RKTEhhUkZaNVdxR3BMOTRBS1hmYTRlZlcrc21MVlo0U1MvUVI0bSsrbkNZSEYwdWtHNU1tcG9Ra24vVG1qK1RtTkVoN3lTUWg4VFVNNFZpT29kYncrN3gyQkJJbDBZNU5HMmVCZGQvSWVVaVU3aGVORFVGTlM2MUJJYUs2VC9kNHZ2amlDL1lsSDROdTlsam1PaVkwbTYwbFcxeW5wV28rdG41cXNLcFJtMGNTeDVtRlVNZkJhYmoya2dhSlJVRHlBSktBWEwzSnc2R0NFeFJCeG5GTVdONExwTGxDL1gvOHgzOFVsQmdtSm9XSTZJLy8rSThuM3h1bGhTOEtuWTZVbWoxVkU0dXlSQjhJdmc3cHhTcEZ6WmhxWWtQUVBLak93K2xidDZNYWowUWJrZzZUNWNwM0xjdVRRanV1WThUaW5JMUJjNzcrK3V2MDJtdXZjVEtXNnBkN1BDKzg4QUw5NWplLzRXUkZXdnhVVUJOYkM3cVluVFNIWEx1WVZyVnNLVytMbkNHVythVzVOSHJraDZmVzdad0dpVWRBODRDeUFISEF2bzlXYjZTMWV2TzNCYm1YL3RGN1M2cCtORFpIbUxPVXkrS2xIaUxESnltLytjMXY2Ty8vL3U4NTJSNmpibWUweXJzMmFqZmFJVmpiMmxqV1k1a3JSZXY4UzJFeERvc2NIaVFYb2lIQ2RKeW10aDNWcE5ERXlVT21BVmc4SkNxaUdkdlcwTjRUUXJPdHpVRTBqLzNQLy96UGpGS0cyWk1VNUEyMExUWktpNXhiZ0J2M21uNGFXSnFVMDYrZGc5cjRISzN5aGl6UlJ3c3M2cGJta09qREMzc3Bqc3RaMjQ1cVBCSnRpbWw0YWR6WnBnS3FvQW0xNDlzcThiaFJ3eEhHcGVaT2srZjExMS9QQzRXWVBVa2hJdnJsTDM4NWV3T3RZZm85TFhKMjFzVWgxN2kyNzlwNGp0ekZxSFcvcmFpcHV5YVdTQmFQYWhFZHAybmRqaUxOZzh1NStvdXRwVVlXWkV6b2pkbUQ1QXlSNVBlNUpURXBhdU5UNUhMKzEzLzlWL0s0QnJNbktVVEQweFRwWXBXd3lwWDZkMzNDZi9sWVErb1h4Rm5kTExpZnpMeG1pM0RqYW9sVjMxWjVRbXB5U21JbFdvNTRuK2IycEhQTzdOeW9pWmZHU3ZTSWx0T1UycmxZRDZvTDBjUjQrTkJCNEhYaiswZ3k4aG13TUl0bWZKb1lDWnI4cVJqSmZjREs3SVNrY3RiK2h0a1ljNU55NGNJRjFSdG9OWXRXb3BodlIwbmpBcE1KdFJvRGtxZDJ3MXFBMUhrSXJPdXl5bWVWSnlTOFNMVElYeUx1eitJbVN5VFRocXd4anRQVXRIT3hNVko5am1tYWRNNWNWK1VTZFBYNW5LTUIwdVhaSXVGWTBldC9hWDdRSERGaFRzdVhlb2lNVFFvUjBjV0xGMW1UMG1vVHdYbEIyZGFBeDc4UmxoeVBWVjlXZVVLUW5JZ21KaGVER0I3dHhTeUU2NE9qSmw0YWkraWRHMjZVZzFSbkxyallRYVBMTFVXYUM1Y1BRbHdma3c1RThzVmpzdGpITWR5OG9YMDZ4LytpeFJDTHNaV3VDU2pXVDFKTTM1UGkrYU0vK3FQSjl3MjYyTk15ZHd0OHZhVkZsMjdPcmROeURTMXlXK1FJOGV0cm1kY3kxMXFvR1pNMkZvMGJaUks5M3B5ME5DWTE4WHpvS09DMU9kU0JSRlEzdmpXaXZUZG80MHJFT2Q5NDQ0MzFQMGtoSXZyelAvOXorc1V2ZnNISlJGaHVOUDlTaitSOUtlSExRNks0VE4zY2VMajJtQlliME1NWksybXRyYkNxd3lJUGw0TnJMMUVUaTNBb2s2d2QxeEp4RWkwUmIySjRVMUxYSGlPdDM2T1A0eFFwc0tCMGJpejJHQWpYUkhLZXhtc3BpYzBSNTdSK2lrTFV5S1JjdkhpeDJxUm9UNDRVdWZlZmFOK1gwdkpmVmRaaU9WODVsdWdqaFdXL2xybUk5UGxDSTZETlVRUFhKOWVlSXJ6b2FlSlJKTGtsV284a1ppcmw1blQvdDBKN1BrZXBuWXRGa1l3OUJBc0xSYnZKOTFoOGlEamdZSlRtTkRZSzBoOFF0SWFGcUM0MnhZc3Z2cmdkazNMaHdnVzZlUEVpL2UvLy9pOG4zYU05T1ZKb3pRZEV3OVRuRmN1MUQ3SEthNVdIYUpxck5tOXR2RFZXOWRUazBjU2lNUkpEUW9UcE1lUEN0Zk8xaEtEampmRnh3MHVWazVha2Z0K2FiRVpxUURScG5OdkdHMmxUdGNYSFVBT2hqU05LMXlHSkp4cGU2bWxCRTVOQ1JQUVhmL0VYUlpOaXZYSFUrVXJyb0V5cFFlSzIxNFo2N28zUjFLR0pTYUhKRS8vVXBNbGhEVklEc2grUlBCWm8rcEhFY0NaaDN3cmVpTG1iZTZtZGk5MjNDTVlYZzhTV05FQjRBYzBjRStYaTZtcFpEK0Y4SStlZUp6U1ZHaVRHcGRWVEZLS0dKaVgzTkFVNUNWQk1jaG1ra0NLdFc2by9kclR6b1luVHhPUkFmbXFTSUxtSTFQUVRZNW1MbzdZdk5ONjU0U2R2dlNsQmI5eXBQWkJ2NTJLbkdteXNJZWo4NUNpSHkzSmpwVUNpbzBWaldDVFhDWTVjcmxZR2hhaWhTU0VhaklvM0tUVW5RMDFzaWxZdkI4VnZxTFd1KzVocE1WYzFPV3RpUTVBOHp0azlVYW1KallsemFTOXNJWmIxeFVoekQvcnh2UkdsY05TVXBIUE1EM0xtQXpFZWc0WnYxMzZTVEJNVFVobCtSbDJTM0JnMGU5bm5Tc1hXenBWSFVwZkdzSGhxWW1PY2M4MWU2aUdpTmg5QkR2bkRQL3hEOFFKSzlTVmFHUklpcWoxL2pnckxOZE9pclVFYlI2U0wxY1NFbEM2V1VtcHJPUlRTdWlWNjFKQVE1VzdFSmRPQmFKQjRvbGlIR0pzY2t2bEpnZFNYeHU5aFJEdUN6T2ZXMFo3ZjJyZ1FTWTd2Zk9jNzJ6WXB2L2pGTCtpZi91bWZPTm1lMm5LYW1aSkdhWW1DbW4wZitQNllzU1BkVDAxcnhYSXMwbHlEWEJhVFE5bzNrUzVtcThSajFmNzA3NUhHb2pkNDVHYnNYUHpTVVZwYnV0RnlzWE1OWDNmdEcwbW5jVHB6RWVMVHhmZkRjbm42L3JhTXhEU0VhT05DdUJ6Ly9kLy9YV3l2cGJsSklTTDZnei80QTA2aVAzRmFiTm9HS1dPMDR6MEc0aWNCTGVaQ20xTWI1MEhqVWQxU1dOVFRjajFMU1B0RDlXa1RNYjQ4Vk5aT1dzZS9KWFBtMnFidCt5T1RRK21PQncwMlRnODZMeHhHYVVoYVA5RXdCdTZtYWtHdUgra2NhbXJWeElUVXhoT05PZDU0NHczNnpuZSt3NmpyYVBxZUZNKzN2dld0NHRNVTZjSVM2V0pLYUg5Wm13VHJtdGVJWkl3U0xZYzJGeEtudWVESElQM2swTVphWEVRbHRNcXR6YXVKNHd3QW4zUGFucGU3WXR2a3U2U3VwT0ZxSE9ISHc2UHR1NWF4MzNndTdHdElQZG16NkNmTWdab0hUVXhJWEhkTmpoZGZmSkZSMXJPSVNibHc0VUx5dUdhUk5URjUwczloMUU5bnpzSnFIMVd2bWFYSFpkV2ZOSStGTVNIaSsrWGFhMmlWdTNTUmE5VW5RazNmcGZWR1RBSlJUamRSRFA5bDhpSG1aYTdoYW1lTG0xRXpueWkraS9BK2lZeC9hWmFaaS94NWxhUFdzQkNOT2FUeEw3NzQ0dkdZbElzWEwwNCtqcXhkY0czY2dFdjhyWkpNSWsyZGFtTVVZNVJtS1RSenhhSEppWm9TNStJTEtoOFRJdFY3dURqcEJZYUl6NGxpbFVlQ3BrOXB6RlErajhYU0RhS1NNU25ubVRiS2Fpb1hLSjBQRG4wNlI4NkYrMWVkYUhVNHAzLzVTV29lVXV1SnhoTGw5ME11Uit1WGVUeUxtQlNpNFplN2ZmWFZWNXdzaWY1a2lrN3dqS3FJS29obmpiOWF2d1g2dFpPaDZZZUxHWnRMTndvZXZoOWh3Z1FXT1ZxeGRHMDEvZVhXZk40K2F3RTBSTU1OdWRRK2FQWi9TMnE1L2RobXYybmpNR1M1SlRkVWk2Y05NWks1aUxYU0dtcnFyKzJiS0QzV2wxNTZhWkduS0VRTG1wVDRhUXFDWkNNTVpDNHN5YU1KWUtHYzJTZDROb3g4WGVxdzZFK1NZNURpZWcvYUI2cnoxRnlrV2lFZFF3dHFheGpqMDIrR0hYWEpvMHg3Q0c1TTlBWW5jKzNiSDJZTDJGTTdyeWh4TitXWGZMQ2F1TnE1OWh5V0wrSFhHSWZhYTBGTjN5RkxQVVVoV3RDa0VBMXZvUDI3di9zN1RrWkU2R1lxWEZpeUxRbEVZaHhzREdrY09mTTM4TmJVMHdycm1xVDVwbkxrUmlYTDcwSHFzdEtrV012N1JyVFUxbHlPNTI3d2FZM2VVSVJ3dXFHUk0wcjdJN05ES1ExVUdJUnRMazV4T0N6SEdhTTFIcW1hSlBGRTh4eEkvRkx2UmZFc2FsS1FweW5ZWnNoY1ZKSkhFeVNFYTNoUFNGeURxaVpGU0N1d3RheEgwczhnTGV1NW14TUtWeGZYYnNsU2ZTM1ZUNG1hR2pnenFqY1VJVFhHWkd6UGE2THJDRE1tbEpwNVBRLzQrVUZ1OURtMGhzVmpGVitLL2N1Ly9NdHNXd3UreGdtcytkYTN2cFU4N3B3RFQ0TDVDZWhtUnhNNE4zN1IrT1gvaUhHWkx3RXUraE0weUhJcCs3ZkFyMXZxUzBzY1crb0Q3V2ZVNXZYNzdjRk02S0FyMTVTcmkydFA2ZERjVm5COUg2cXVtSm9hOHJIemRYY3UzQnY3by91dk1UN1doRG1tdW9TQ3pSTzM1K3NKYXk3djVaQkRybTFxVEw1K3pkYzBONjVGS2VXeHlFOVVuNmNtUGplK3BaK2lFQzM4SklXbzVwTSs4Y2JMTmtXa0c5RmVpVWdvTHVOU3lYTDVEZnN0Z2ErQlBibStOVFZKWStieWVmeFVJODJQNnlWYUlybCtLN1FZbHlZbnQrNTh5dkNtbFZId1NZak9USWVzUFhkTzVkc2toSFhuZnVMR3hwYW1JblNQcEgrSlZrT2NYL09FZ3dpYjl4SzFkVGpuRm4rS1FuU0FKeWxFNDlNVWZITk1UM2p1cEoxK3BWdVR4S0ZGTVlZTC8vakNnZncraHNNbC9tUzFidTZPOFRXb28xWGZhQzYvYjRZdnI1OHZ4RlJIcy9aMFh2bllPQzJTWTQzazVnTDlxcUUycDh2dWpWZ3pPVEw3R25La3RHTk1xYTVwL1pMMmFiMWhEZU9ZY0pENVJEU2RLUmJ6ZElnY1MzNmlKMlR4SnlsRXc5T1U4RjlJTGpOTVlINGVzUW11REJmaHlPWHpGdnB6aWNiVXNTSk9FVk1CdXNHbDFPWWR3ckVjOHd0OUdsUVhnNHdscDBGaWM0U2ZTQ2o5eEJ1MzFmUzVOSnBhSlRGemFXNmRrb2NqMHFhRGJ5dTFqd2RsdFVJRkg0VFVubHd6NFg2UzFoM3ZSV2s4MFhJNUR2RVVoZWhBVDFLSWlMNzk3Vzh6Q2tmK3hNeWZuUHlKbGxRNVFzTmhKcTVVa05jRmYxUTRhakllVCtxbkpLa0RMMkdkZDR6UDUvQjdhcnEzcGpHeFpzeVp6eDNYWFJxTDFYaExoSGxMODd4RUxURzVlbksxY08wNWRESGgza2l2ZTZqSnAzVEIvMTFHVjJvTDY1KzFrSStiMXpEZm80UEdqNStmZ3hqSi9IRWdhODVwMEM5SkxwUlNuQ1pmU0cwOFViaytsRGorRU85RjhSemtTUW9SOTBrZlIrVzU1U2QrZHM0YW9WMTBqME9LQVNRdHFCMGJpbFUvYUI0SGJvWjVPa1E3djBpbHdHdkZkQ0c1WDJDbCtZbEtpcVplQ1pyODBoaFVuNVp4c2JscjJYQXcxNVlyS1Y5cnZBL3piVG53ZWNCMGEwQlNxMFNMRU9iVG5JdnBlb1k4a25RV2RSenFLUXJSQVora0VLV2VwbmozbHBRVEpYNUN5Q29jSVhJaWN1VS96c0NWQm4rQ2cvbXZSRndjejFROS9nbHFqc2RpTWJZWXJnKzBIeTVIS1k5ei9zdnIwcHRoMUExZnVZV0lkZE9jZWJCYXNUR1Z5TTNOOUZnODFuSTgrclVHSkRWSnhqQ2RzM2h2cE5jL251ZHArakZ1M2phMnAwdEsxVHF0WTlwbnVrWS9Gc2s4ZE9xeG0rdlMvdUhSMVBIU1N5L1JTeSs5eE1tYWNiQW5LVVRUcHluOGhKWGI5K2ZsOUVnV2dWU0ZDNU1LOGp1MmJpWlpvcG1mV3g2TEhDa3M4cUk1OHJLeEFkR1VRR3JSYWpRL0JZM01iMVl0UU1iR1lmMkw1eVE1SkZwUGVjL3NxTHkvK0xaMC9yeVptWHkzLzFZMkx2djlWNGJyejdlM3JFR0RjN29ubHVGNE5mSGozcEEvV1FtSjUzMU43MFh4SE5Ta0VBMVBVMzc0d3g4eXF2SUpKcjJ3S005YkNIa3RNdjJFaXRBUzBqRm9zT2dEeVZHNktlUTFSTnprVG1QeVduOFI0MnJsMmxITmxKMzY0dVdSOTFtUFJaK1NIQkt0QjlsWDhmSGNucEdhazNrYm4ydDJWRFZtUHNieVRkaXAySnA4dGVUT1krUkdYNkl1M3UrSE9yUGlpV3M1OUZNVW9oV1lsSXNYTDlLbFM1Y0svL2hnNWlTYi9nZENLSWVSbmpnaVkrS2w0ZVlUaENOSTYrZXd6Q2ZOaFYra1owZFNNcVdCbWJibnhzQ05UZnRUMm9qL2FYdjYwM3lJOVZPTHBVRk5ZSXhVVHhUdUJTd1cyVHU0MlJqYitaalNYc1pxMTZLWjE2MkFqcTNPZE9UNkdYT2swNFY3by82SEU4OTN2L3RkVHRLY2c1c1VvdUZweXR5a3pCZHFlZzVpRzRZb2Q4TExRVGRwanFJNXlUVHRZN1JkYStNSzFNNURDbTNPOGNLYnZ4R1B1bVFMMCs0cFhmano3WU9HVGI0SE5UaDVVaGNvbTlwQ2ZKelZUODY1Ti84aUlEcEVFNk9MbVIxSnlRQ2pnYlNuOW01S2k0MGpOVjdwRGJZeko1eFgvWHo2SEx2SmV1Y01pOWZvKzF2SFV4UWlvcDNUbklrTitQenp6K256eno4Lys4NEYvdzBRbkhRMW83S2NrcVF4S2FRWFBXVkpVUm51c1p5REZMWDV1WGpPbE95L0EzWDdvK0FlNU9yem9Eb2Q2UXVVOUxyVnRzWjJTT3FXYUdQUVBVRVU3N2Z4bTVLNXdkcHkrenAxbks5VEEzcERST2NheVpjenkxdEFYL004amt1bDZldC8vdWQvT01raXJNYWtFQkg5L3UvL1BuTlQ1MjRNeGVZc0xhWkE4Z1JFYlV5VVlTbXM1c0FxandmTk43MG83NEsvNTNTemx1bDNvRzdXV3FnWEh3dXZtNzdFVWY5NDExL0VrTDdYUkhpVGt0UXUwY1pvWW5rendiVk5OYnpaU2VXUzE5M0IwUmlCRUhtODNLd01HbDcwM2U5K2R4VXY5UkN0ektSOC92bm45UFBQZno0ZUtKekFreGJ4Q0ZJbmVqM1NxUlNaRTRGVWdyVG1rSnJZR0cwdUxvNVBtL3VVeEZRek81SzVHY1J3OVhsUUhRLzMyblViU3ZVakY4VVl1L2tZcWNtcGlTMFprR2w3cVcydXNUSW96dFcrNTZsVG9uNXVVUk9DNnRLazZsekxVeFNpbGJ3bnhlUGZtOEs5UDRVNTl5TlNKNndkcW9zWFYzVFV6T3BMVklRUzZjYkhZWkV6bDZPY09uZWhqK0YwK1dCa2JJaUdLSDhUS2Q5Y3d0ckxWeXJKaGN5RDFoNmlpYkdndGw5cFBLclBtWWF4YmYrZHNHMmVNM1U4ckJPdE9hYitCanpnKzdmS3R5Yml1WldQMGNlUGNmRnlEU25EZy82SmFOaGVKcTd6elRmZnpDZ1B3NnBNQ2xIOEpsb1gvRGRCNGFTTlVaNkxFN1FuTkJIbGpVYjJzTDZ2cXRDS01lYW96WW5FanhMazRqOXJuWDZYMU9ZVGxHNDZRenRmUDFGYWx6ZGo4d3ZUL0lJa095ZTIrSkpQV0t2MEpSK2krckZLNG0zTXliUTl0Ky96cGdXdnR3U1hSN29XS2EzOHBqNUhVb05GZnlYMGhzeVBJZlVEeTFuTHZtbXFuYmVYZWVtbGwxYnpNbzluZFNibDBxVkxkT25TUlhxZS9VZ3lSZWRlZmhNSzl1Y0V5Y2Jta1A1U043RTVFY3Bqck1aNnFEd2xQWmVxM0ZlNnJYUXpHVFhZR0ZBZHo1Qm5TS2QvZWxKYlQra2k3SnpzcFFWTkxlVzlJTStYUTVPTDM2ZnkvU1l4S0pxYWE3RG96eUtIQkUxL2tqM3RpZnZ4aG83UDVlTWtab1dJZ2s4RWNWMnM3U2tLMFFwTkNoSFJ0Ny85TWozLzZ2L05HekluWll4a3IyazJKb2NqeDVVNGd6VW53bndscEdPVzZrdFk1Y3JsbVI4ZUQvQmRjMXB1MzlXMW81b0I1T2xKL21JV3cxMjhpUERhOG11RHhWdGkxYWNtRHhlRG1aTjV1OFNjRE1kbHRZZDYvc1o1dmtrWkRpayt4L0QvZFB3MHJlOFRNU3RFb2Q2NS9MbStsbzhjeDZ6U3BBeFBVNkpmOEZZNG9mY1N3YmtvUFhFNXRQbFFjOExxT0lUaDJ2SEVXT1JCY21BWDlUVGwvUG0yMGsxbWFPZnJKc0oxVS95RmpTaStXS1YvbWlxakt1SEE2T2F0VEcxT05KNDMyYVgyM0I2ZkhrZHE0VFJjZTRuY0V6VkV0MVhxVFl1UG44YWxseUgvOUtWa1Z2dzFJdzVkNDFNVUlsclhwM3RpZnZmM2ZuZjRDM3NpRlpzbldBNVhtd3N5SE03L0Q5Q0dDT1VoMnZHRWFIUG80NGpLRi9UVWNhU3YzSTBnM1RacWtOeThUbmV4UXpUWVU1TkR3ODFQTFZiNUpYazRiZG1BN0w5THRLVmkrTG9RemFIQTl2djJrSStMMTQ4cGthY3dxZllkdmZubW02dDdMNHBuMVNibDV6Ly9PWDMyODgvS0lyRDYybUhXeGhNVkRFZmlzT2EzMDByUWpNYzUzYThnajZtTkp5cm5TRGVWUG1yc2lJTGZXSnVMTDhHTmlXdjNZTHJjazVNWS9nSkhOTVE3eDEvTVVpQS9HV05qYWtPTHZxVTVPWDNPYUl4dDZmWlVITmNYcWxrYitTY0c4ckhJamNLQTcwc2Jud0xMaFdqS1pvWHI1dUhEaDJYQkFWbmx5ejJlbDE5K21aNS85VHo5Ny9xQWV4UGR4RlkzNEppWjJRRFNTMzlMTFlKMlhIR2NOSTlVSHlKWms3bkVaWTdIZVBPU0VzcHZIS09HN1ppSWNOMlVNR2FYSGVOdUYvNTY3TFNHYUJ6UHFCM0Ztdm8wTVZhMDZGdVRrNHZoMjRuSysyL2V4dVZFTlFoaEh1eEdXNGRWM1VUMXVlTDRtdkVQdWNiNGRDcmZYN2tmNTN6ODlQcmcyNGpTK2UvY3VUTS91Q0sreGdrT3pTc3Z2ekk5NEtoMGI5ampuSU0yWTZoRDlCdytuNk96dkw1ZW9PNnpxUGpnSk01Si9qZzNHUjlIcUpmRWVhemovYkc4M24vRmsrejJiWm5Jb0ovcDhYaXh4ajVTZlFXUjRMZ1JIYUlKMUpTcWgyZzYvdms0WnZKQWkvWjlHRkw3ektMZW1weG9ETmZ1TmFuMUhOcG8xb2JtNURRNXVEa3ByUWZ5dFhYcXh6S3V0eXVlbjN6K2VlejAraERuUFRrNVdlV2JaVU5XL1hLUFovK3lEN0J3Nkdpc2hsMmJ4NlVHbFR6RTlLTW9vN3AyWmJ3MkxpU1hZMzRZM1IrcGs3aGM1NkRsTlB4WUVjMFU5TFZuL3hJVzlwT2U1Z2ZDdUhidFQ1VStUKzFUSEFUbjhDZDBPYVN4bkY3VHpzV2dHbzlFMnhydFBsb2I4bkdnNXpZUmQxNlhYZ2IyYld0K21jZXpDWk5DUlBUTmIzNHpjWFFzSFIxRnpYQnJZbU95cGlNNmpKb1lGTTBZTkRHZUpXSVJZMUZPNVlybXhqbmF2MjhqYm90QmF1WTAvaWFLdzJzbDd6dEJQNVd4RlN4cTErYmc0clR0WEp5bFppMW85NlhzWEdvTFhvdkVnT1MxcGU3ZWV1dXQxWDZpSjJRekp1V3JyNzZpdi8zYnY2WDQ1b0dpSGFZMkxzWE1jQlJTUzdRbE5QVnJZb2owY1NHU0hJTzBaQml5TFFWTnFxM1VCMTh2b2lFcTYvQ0xHeEYzZ2ZPSVVtNEFkSjVSdFBtNHVKcDJMdFpTWTBIY2oyd2ZyNVBhTWVEeHZLNzB0R1R5WGFRN09UbFovWHRSUEt0KzQyeUkvOTBwejc5NlBod0F6ekgwWkVSMUVwdzdlNnhNRHE4M0ZCWmlpaS8vZ0gxNU5HUFh4SVRVeEhPeEplT1JicDlxcHUyNTJMb2JDUkd1SXdxMS9JWEwxOFpkRE1QdTRldm1nWkhNbVpTYTNFZ3NwNmx0UnpSY2V5MWMvbFE3dDAvWFJxM3g4dkY4SEgvT081YzdkOE1hNTcvRWJRdFBVRHliZVpMaStaMXYvazdwL3JBSEhSYXE0NmpOb3pJbkZWMXE2MTA2em9QRWw4ekZ2SDNTa21pZmlvZTJmQTFZZlppR3YzaDVVQjFuUXNvL2RjVWc0eURpTDhKb25oYlU5aTJKUjdTY2htdEhORnk3Qk10Y0tiaTlzMmJrdFE5NkxFejMwczZvMlczbVpSN1A1a3pLVjE5OVJYL3pOMytUYlVlSGcrcHkxTWFIN0kwSFlrNlUzV3JyMWNScFlrS2s4YnlCbUIwcHRPZmE1dm1ST2kwMCtFVVAwOEhwTmdvM24xSzArYmc0cm4xcFRZd21waVg0ZWJBT1pQWEtmbENvTVN1UEh6OHVDMWJHWmw3dThWeTZkSWt1WDc1TXo1OC9ueHhIVHloVUY2S0o0VUNmaUdqTmliWm1hWnhVSDZLSmxjUmc1aU90S1p1VDlQR3huYThSMFhpOGxyL294VG5UK3Jock51MEdrTXduUWswK0xwWnJSelRjSHZUd2VmZ2NhMkdKV3ZsekRBYy9iNG5HdFJ5MC9EazYxVTlhenBwUzNkNjllM2QrY09Wc3pxUVFFYjN5eWl0N2s0SnVYR3VkRk9kazcwOUJ6UW1hTDRkbXZFdkZoRWppU3hkdzNKeE1qNDl0dWJ6MU53UHVvamJOZ1YzNDh0ZkhzWUcvSU00SmE4RXV3dlVnYzFpRE5qOGF4K200OWtGRGhKendXQzVlbzZLVWRwbXRvZ2FkRThtZTU4N3JLWTV5eHFQODNwTzhXU0VhWWs5T1R1ams1R1NtV3p1YmU3bkg4OWxubjlIOSsvYzVHUkhoR3cvVklXaHpvYVlEMWFWUTF3YkdvYm9Ta2h5SWRpNlpIdENZazFLL1dFMjhoZ2k5dUNHYUFTZ2REZjJpTlc2Sm1qRkpZeEU5cHRuL3JTUURjL0VhR0l0VTRINWNNOWc1aXV0RzVucHhpak9lUEhuQ1NWYkpKcCtrRUkxUFUrS1hmV0xRRXhMVnBhaUo5YUNtUTlPWEppWUVqVWQxSHFuZWc4YVZqTWU4ZmE0cDNSZ2tCc1c1dWw4ZUZzYmxMM0s1M1B4UFdEbTA5UjRTNjVxMStaQTRSRVBrMTZ1c1JUUkVlSjlaZ0hEMkYwOEc3R2lYenFtOEVSOEtmNDV6K1BsSHRBTitjdVpQUHVFVVJQVFJSeDl4a3RXeVdaTkNOSDNaSndWNlFxSzZFRTFNQ2pTUHRhNkVKRWNyYllnbXJuVFJYc3FjaE1keWNmRng3dUkxNnN1Nk1VMXA3dWIvN28va3dyY0dOSHVqUkcwK0pCN1RUTDdMeVNCemdtaVNaRUlrSm9RamxTdHJYQUo4bkQ5ZnVEbmx6aXNMSkFZa1BvLzVrUGw1ajVxVnJiN000OW5zeXoyZTU4K2ZKei90Z3d3TDBZUkk5U1hRWEtpT1NLWU5rY2FoZWxTWFFoS0xhcmtMdjhhY2FFMExDbkxCbXpMVmk4TUR3cjZsZFJQbGE1ZmtxbmtDSlVIYVJ5dDlhUTlLTkVSZWgvVWJ5aXhOaUJVNzJxMmlMc241S05HRzV5MGVoc1ZzOVdVZXo2YWZwQkFSWGI1OGVmSnBIL3hpWUt0RGtPUkN0YWd1cEhWTUs2MUhHc05kMU12bUpIMThhQ3ZkU0ZLNVpIVVR6V1A0Qzk5VTd4eW56MS9nTlBXRzFNWVRyU2NIa1M0UEdzUHQwYW1HQ05PViswWnJZOUdtNGJmbW5qVVlGS0poenZoemNFQ2lEU2ZSbjdOOHFJOFpuNGpHTVZ0K21jZXorU2NwbnQvKzdkK0dUenByWFFscERvbStsVFpFRW9kb0VVMk1Mb1lJdTVEdmp5VGEwL0ZjUFJLRElqY2hST0VqNHR6RnFVeGFMTXV4THJnMTBhTEpLNG5CRGNYK2IxV2F2VUpRNDR5SzBDSWIybi9ZZVRvaTFRK2dab1VvOVFUMTdiZmZwcmZlZWl1ajN3NUhZMUtlUDM5T1AvakJEemdaZkhLaXVwZ2w0amd0MTQ2QTVFQTBSTGd1Qm8xRGRVVDhoVHhuVHJnK1N1MFMweElqdTdqTkwxUTRjM0VjcnpOVTdVRG5VRUpOVGtrc3R3LzNyWlBtMHA0dGE0andQaWNJcEUzd1d3eXRJN05uVysxVmFWNnBma0JpVmdhdVhyMTZGRTlSaUk3ZzVSNVAvTEpQak93QzBrYWJBbzFIZElnbUJ4cUw2b2d3TGFLSjBjVVFhUy9ndWY2NE9yUnhJYUdXdjhCTjh3NmhPL0RpbGhwM1FqWnA1OGNSMTR6RUxJMjJKazBjYWhUbXFibjEwZTN0TEFKcERzbExOTHZjWTVSQ0NzbS9FSStzRlg5K3paR2FJS2wrWUloeERqMlhtRElPdVFBQUgyVkpSRUZVaDZjb3g4TFJQRW54L09BSFAxRC9ObHFpc3RhNXVvK1NlaVR4cUJiVmVWcnFFUzJpOFVpMEhpU0d1OGh6ZTBIYWh0UWtRWGFoSXlvOVR4ZW4yZ2lXYzY3SjVSeE5YcFlyM1hYbHhpU3QyYmNBZmM0UVNJbk81cVRSM2dtTmk4VHdXQ0EvdHdZa2NSTHRsTEpaZWZ2dHQ0L0twSHlORTJ5TlYxOTlkZks5NU1LQ2FCRk5DVFRlT1FkcHBUcFVUMFFpUGFKRk5MR08wM29rTWM3NUM3Z0x2dUwyZEk1U2ZxNHRkWXlydFlSa3pBTXUrelhtS2NXdmszZ2VaSE5TUnB0cjNFTnUvLzk0bjAyMWt5Tko3YndFSkI5ZjkyVE8wRC9obk9TM0ZmNlZJT3h2YVRSclRrU2lHRzBmdEovL2VjdlZxMWVQeXFBUUhlR1RGQ0tpKy9mdjAvMzc5MFViZ05OeTdTVWtzYWdXMFNHYUhFZ3NvdkVnV2tRVEl0Y1RaYStJaFhhdW4xSjdyaTEzWFAvVFZScnJmQWdXZmFibXAvWWowUWcxZWFXeGMzbHVyOHlPcURRemhiQmVJa0xTMmxDL2hjeVI3dXZXK2hBZisvVHBVMGE1UFk3bVBTa2hyNzc2S24zNTVaZnNiNlAxYUc0eUphUXhFajJpUlRReGFBeXFJOEsxMWpvaXFaYm8wT1lrMVY1ejBmSndOL3NXY0dQVVlwWFhLbzlIa2k4dFhkYWNFTWxxSmlJMHJSMUcvZm1uTUJaNzNzOFptcXUxUHNRNVJ4OS8vREVuMnlSSCtTVEY4MXUvOVZ1Y2hEMVp1WFpVazBJU2gyZ1JUWWhFYjYyMTBvUkk5RGxqd3JVTjdmWnRDSnFMRjBLcnZJZWtkcTQ1SlBuejB0TCtteDBWYS9aSEo0Znh1b2xJTEQ4VTZFdENsbnRka2t1aTlVaGlidHk0Y1hRdjgzaU8ycVE4Zi82Y3Z2Lzk3MmZidWFIWHR1ZVF4Q0ZhSzAwTUdvUHFpSEN0dFk2STE3WXlKMGk3RnNtRlRFUHFqZUt0KzBScE5hY3BOSDJOSVh3c1ltUVF6ZjdJN0JCZnc0U0NmUDkwd3VnMW1kQmdjRGxSTTRKZ3NZODFPYVF4blA3cTFhdEgreFNGNk1oTkN0SHcvcFI3OSs1TmppRkQ1alJjZXdwSkRLSkZORVM0em9Qb0VZMEgwU0lhSWx4SGhHdEw1b1RMb1RVdUxXNzhGams2dzlxa3pCa0NaM1JEeXVtbmphaEJTZXZRZWpCZERtOHdra1lDVFgyQUxXeHgza2h6U1BWRStaaG56NTRsang4TFIvZnBucGhYWDMyVkxsKyt2UDhlT1JHNW13dVNJd1NOOFRwVXk3V2p1VHlJSHRGNEVDMmkwZWc0clhOaHpya1d5NUZ1NTJKVGJXSGRYTDg1NGh5MStjNER1Ym1TekJtM2wrYmE0U3Vqb0RCSFhqdnE4am41ZW9qNC9Zcml6djRFQjlBU1JwemdpNEwvVjJCeG5rampKVnBQcW85amZvTGlPZm9uS1o3dmYvLzc5T1dYWDNJeWR2Tnc3UjVVUjJTcjVkbzlxSTdJWG90b1FqZzkxKzVCZEp5bTFGNFRXMEx6VTFjSjYzeGJRN3NPS2RCY2VWbTZBZEVqbWhKbzdSTktJVHVtZlFtTXRuYk5PU0tObGVxSmhwaVBQLzZZcmw2OXlrazN6OUUvU2ZHODl0cHJuSVE5YVpGMjFGRkx0RVRFYXJsMnFZNEkxNkpqUVRTaGp0Tno3YUVHMVpYYVV1MWNmcTRkSWM1Ums0dG9QcjhXTmE2TlZtT1U1SEp1L0FxT1JsOXpiVDZ0WC8rY1pwb3pCMUo3RWk2RWExK0MrZFNxVU04UnljOTVpZFp6Y25KeUxnd0swVGw2a2tJMHZKSDJyLy82cjJmSHVTbW9iUStSYUlrd3ZaV0c2SEE2SWx6TDZiajJrSktXeTZPTjlXMmFuNkJTV09XUkl1azNuQTVCV09GbTNCWnU3WFBNdzByN0lOc1VNUWpMZWl5WmFseUtrRlVoMkc4bEpQczlSQnJINmE5ZXZVby8vZWxQaTVwajRpaC9UMHFPeTVjdjA1VXJWNkNYZmF5UlhCeFFMYUpETkVUcjF4SHhXcTdkU29NWUVLUTkxbklYcHh5NVByWDVVTGl4cGhuL1dYa2NjWUFZM1ZoR3huQStEOTVWblRtWnhzR2RFcEZzUHJoUDVHaHh6dG5zNFhBb0ZlbTBQMXhJNHpqOWpSczNrc2VQbFhQMUpNWGozNS9DRFoxclJ6UmN1d2ZWRWVGYVJJZG9pT3gxUkxnVzBYR2EyblpPdzhWejdUSG9CVTFDaTV4YlJib2VPU1I1VUxPQnBVeUwwckZRUWlLU2pTZEh6clE0dEk1WTFtRGJXcHdMbWh5MU1ULzk2VS9QemNzOG5uTnBVb2lJdnZHTmI3QW5aRTA3Rnh1Q2FpMTFpTWFEYWhFZG9pR3kwN1ZzcjRtVm9MbXdTV2lkLzlCWXJVT0lKR2RlT20zQVU2S0dCazRvR2s4VDBPNk50NnJsM3Bma2ttaUpCdjE1ZTVuSGMyNU55cGRmZnBsOGY0cUhtNVpjT3hjWGdtb1BwU1BDdEZZYUlsc2RwNmxwMTdiNWR1bEZLcVkyWGtOdG4vRzBjT21BSlNiODdxYUhXODhVNlpEY05TTjVPSUVEdFpDSWlIUmpNOEdpMjdydE9LRjJiM3NrZVNUYXExZXYwaWVmZk1MSmpwSnphMUtJMGthRm00NmFtNU1IMFNFYUlseEhaSy9sTkZ4N0NLcEZkSnltWmcwdFl5VVhLWlFXT1cyd3FJdGYrMXE0TlVTWXA2Z3pKN0thTUswc3B4R3R1clRZV21kWW5UK1NQSnoyUEJzVW9uTnVVb2lJN3QyN1I1OSsraWtSOFNkdXJwMkxDMEcwaUliSVhrZUVhMnR1MWg1VVI0UnBPVTFOemExaVE3aUxWUTB0Yyt2aGFzTG1UUXU2TGdqcFZPc3lKN0o4STJHYzZFMnlPMExLc2tWUUhvZkZPWVBtS09uUWZ5ajNXRGszdnljbHgydXZ2VWFYTDE5bWIwSzFCcVdVUTZQaGRLR1d3eW9ua2tQVEY2ZmxORWg3N25qTmVMbjJHSzYvR2xybTF1T1lMM3VzNXNHNTZWZlFRcm42NTlvMDh2cDRyU3pmUUtvT2wvaVRSZDRsRVZYdUJwRzRqSHdkNXFEeHViN084eE1VejdsL2t1TDVxNy82cStSSGswczNLQW1jdnJZOXBJV1cwM0h0cUliSVRzZTFselNsV0M0djE2NEIvWW1zTmJWMTVLWW1US3VidmlISTEyZTVCdk5VNFlIeTR3SzhEQ2ZTY2t4ejhmb1F5N2tyUFhsSkd4ejUvbUlqV0FGT3pmNlh4TzUyTy9ya2swL08zU2Q1VXB6N0p5bWVmL2lIZjZBclY2N3N2eSs1YU1sSmpMangydllRVkl2VTVlRjBTRHVxNFhTaFZ0c2U2cVRITGZyVkVNNVB5MzQ0VW5XRTlVeVAwZXdybjVmWFRISFIxOWxSdzdrWmM2WDdPbFBONG9qUXNVem5pdE9tKzUvUDhaZ3JyYzloT1hjZVYvaVRpMGgvNVdFanNEUVFOWE1raWJ0eDQwWTNLR2Qwa3hMdyt1dXZzNXRRc3RFUXVIeGN1NGVyVzZyemNITlIwNDVxUWwxdGZ5V2Q5SGpZaHZSclRkaDM2bXRwNW4wV2J4MUNyUEtrc1pnLzU4YXZnb3FJZkI4bFhjaFVHUGFUendFblY0OTNNUndGZzhYM1FVcnQrREFJN1h3aGMzM3QyalY2NTUxM2lwcnpSSCs1SitMTEw3K2s3MzN2ZTdQajBtbEM5Q1VORWs5a3IvTncrdHJhRVEwUnBrTTBSTHFhVThmUi9rcWtVd3dISlkrRkpiVEtXMDljVi8zOGxyQllQNkxjR3VZWXhIak1WTWpIc1lJWlZ2TmdEbHFXNFhhdU9UZTBzYW00YTlldTlmZWhSSFNUa2lBMktwb3A0bUkwTjB5cHhvTnFFVjF0M1VTWXprcER4T3RhR2hSZVhoWm9MNEFTZHJ0ZGNseEw5QjNDejVXRThYZlJTTmNzaHp6TkdJREhTbUpZd1F5cnVUQ2x0aVNqYlZxNzM3WHhQcTRibERUOTVaNEVWNjVjb1RmZWVJT2M0eC9OcGVCaWFtNzBrcHBRclVTbmFRczFuTTVLZytwYUdSVG5TamNaRjN5VjhXTUl2NndwelVIcEs2MG45VmNkTHZyQzFqK0h2cjZ4Qmp4V0VqTWRJMHJOWEJDUnREdWV6RERpVlN4OUpZTXFxSjBqYmF5UDZ5L3hwT2xQVWdwODczdmZvMmZQbm5HeUNkeDBsdHExYlRHbzFrS0g1RmhTUTRUcFNqZG15ZkdZOHMybFBkcWY1dHJScWg3YitaeXVXMTF1Y0t1UTc0ZlhzNElrUTE1ZDdKN0tjSTlSR3BiZDdDOTZ0T2VTSnU0Zi8vRWY2ZHExYTV6c1hOSk5Db1BFcUhCVHFiblpjemxEVUMycTgyaHI0OW90TlVUMXV0UnhQR2Z5YU9yZ1FkQmNPTnZoUDdhTDF0Um1IdEcxNVhDT2FMZER6QVlSYmt3OHNERElpY2RrVWFad2NDQzY5dlhVYm4zdHVZUEdkWU5TcHBzVUFNNm9JRlBZeXFBZ21oQXJ2V1k4TVp5T2EwYzFIbW5OWE81eU0xN1hJVUF2b01zUzFvVE52V1FZM0hvaTZGUG9QODJUVk13a2ZBeEVJZzF1UEdvUkxLWVF5VDVKb1QxZnVMaHVVSGk2U1FISkdSVmsrcVEzUjZRTmFRK1JhSWwwZFNGOUlCb2lUSWRvaU5xTUpkK00xWFFNcEM3QTRKSVFFWDdqa09RY0VBZGtrZmNkSWpFbVJMbTYwemxFaVhrT2FrNDR3STBDZ082NUhKenB5SkdLNndZRm81c1VBYUZSUWFldHpRMFM2NXZJVnFzWkM5cnVzZFJ4R3MzOEwzTERPR1BlMTNCQWU2RmNqaVhyczUxN1lGc0JTTXlKWksvQlNXV3MycUJ3eVBlYXhlbWpPUWZEbUc1UWNMcEpFZkwrKysrYnZFZEZjNE5FMmoyb2pnalRhc2JDdFlXZ09xSjIvWEd4MDJiSnphVUdYVExOUlhRWmF1dlN6VWVPK3JVYUU4aHlTZmFQS0RGR0p1VVd6RWs0UDlOdGp1OHRpOU5EZTQ3OTdHYy82d1pGUURjcENoQ2pvcm1SYW1La0dvK1ZWak9XR0ZUTDZiaDJUNzFCSVVwZDVjSHVHVXlTWk5GZVdOdkIxV00zSCtQNjJPVWtrcTU3N255WkhVbko2dG1nT1VIbXQ3eXQ4NDBXcDRQa25Pb0dSVTQzS1VxKy92V3ZaOXMwTjI1dG0wVGpRYldjVGpQT0VFdGRqYVk4OTdNalRMc0dreVNMSUxrZzY5aVI1WHdnKzBLTExQVmNuSTRYSlpYaC9QOFVmZVJDR213SDJieU95TGZtRUNDUFM4T2RHOWV1WGFPZi9leG5SVTFuVHY5bGJrcCs5S01mSlkvcmJvUzZOdC9PYVR5b2x0T1YyaTN5YTNTbHRsd2VMbi9Kb0RpbnY1Z091T0JyTzRUek9mM2lJbEYwaWZ4NkRGLzVOYThsN0FkanVzYjUrSFo3WVQ4ZlozOUVjR1U1NFZjcWhhUEN2T0RJWTRlaTVIRnBTbnV1R3hROS9VbEtCYytlUGFQMzMzOS8vNzNteHExdFE5bzlscm90MVZ0WDYreElvUTFGSGJoUjVqOVoxdjdVV2xxWFZ1aldleHFVenFGS3ZJZmJ3MVUwU0QwM1NKV2JvWUI4bjludTFmQ3BTamNvZFhTVFVvazNLcG9ib2lZR2JVYzFSRFk2YlZzTXF1VjBOZlZNbTVHYlRRbHhRQkt1NWhMY1kraGxLZGV5MjNGenJKOEhLYklwTCsyMzVOSFV3YWxDVmtBOWh0MkpuOWpzc2R1cjhtMmZEcERuR1RrOVBlMEdwWkp1VWd4NDl1d1ozYnAxSzlsbWJWQ1E1VUkwUkRZNmJWc01xa1YwTlRYWkdCUllDT1JrQlNhRVJzWTVkd0Jqaytwdm1iR0g4T3RCaE5hVno0WHNRYXdQTXd5NjB4c1RCTjErbEc5ak82Tnk3ZG8xK3ZUVFR6bFpoNkdiRkNOU1JzWFNvS0FYTG1RNUVRMFJyOU9NSXdXaXJkVmc4WlB2Q20wcDdGN2JSdFo1U1pZM0xHMlo3d1UvdnJwNTU5ZWZGY0RudVJtQ3J0cWFFQlRkWHBSdDRid1l6ZE1OaWgzZHBCZ1NHcFdsRFFxeWpJaUdDTk5weGhleXBBN0pNVXJtMmxJNGtodkRLazlidG1SWTdOYW1ETjhOSzRET2NYUEE3dFpoVG1MaysxQzJkZm1YSlhOMGcySkxOeW5HUEh2MmpENzU1SlBzNzFIUjNOeTVKZUxhVVEwUnB0T01RYUx4SU5xYWVSczArNzh4N2JNVzRPYkVVWjFnVlJ6S3dDRHIzQUtzVys3YzVUWG1NTjBWVFlrajd2NTlBUENDWkZ0VWJsVGVlKzg5ZXZmZGQrY05IVFhkcERUaTVzMmJNNk9pdWFHV0xtTEkwaUVhb25vZEVvOW9pR3gwU0E3dUJwRk80UXB0Q09yQWF2eWNITXBNRU9uN1J0WnpDVXFtVlFKbmpwdVI2QTU2VWdKSWt1aVdXNEdzSTN3YjhrS2Y2OU5QUCsyL3FLMEIzYVEwSkRRcW1odHE3aWJLM1Z3OXlOSmFhRFJqUzJHbFJmSndtbm56ZUFCSUh5RU9LTUxWanFJMURPZVI2WlRyNS8vUTVnUXlKQ0ZDT2NRaTI0N3ZCTi8rdlBEZXZXNVFXdEZOU21OdTNyeEpUNTgremJhM01DaklraUlhSWw1WGF4YUk3SFJjTzZJcG1aTjBldzVZbUdUcG0xazNMR200L1lKZ1pYQzBxTWFnQ05IaXFQV255ZVF2Mjh6Smk3cEJhVXMzS1F1UU15bzZnNUp1R3pYOGNyYldJTEZFdUk2STEzTHRpS1owTXdIU24xRmFtMnhUQkN4c1J0dWJ4cnJnOW9XR2RNcTZmbHJVbVdTQmJ2SlBkSVo5dDl6MmsvUTNGM1dEMHA1dVVoWWlOaXBsZzBLVXYwbnFqY0VTR2lTZXlGYkhhYmoyUWJQL1c2RXRCZGQzc1RrQUZpN09GZzBMc3VZdEtCbGREWXVQbzBGMzRwZVlpQ2hsQ0ZwdlEyeWZqNXB1VUphaG01UUY4VVpGYjFEbWJXTTdkN09zYS9mVUdoUkVRNFRwN0RSRXVmbkxoNWZtSWRzVUFJbFd4MjYzMjg4cGRsRnZEN0xHclNtWlhBa0hIWXRCMXpwRFVvTGZZM2JiTUoxb21uLzRwaHVVNWVnbVpXSGVlKys5ekVzL2srOHliWEtEZ2l5dmhhYld2SGhRTGFLcjFjeWJKTm9jc0hDenRESXZ5SG91aFdVdGxyblVDRXV3TnlNYzJKNnEzM3A4Z3Z2MzczV0RzaURkcEJ5QXAwK2YwbnZ2dlRjNWxqSWlwWnNrOHBNYnNyU2NwblY3Q0tybGRGdzdvaW1aeGtrTDM5VVpzUERjRUpzWmJrME9pWFZ0MXZtcUFFdlpHNU5RejkvVGpjRTZyRE1yNmVEVDAxTzZkKy9UWkZ1bkhkMmtISWpRcU9RTVIrNUd5ZDFBaDNaK1dXdWZmbkFhcnQyRDZvaDRMZGVPYUxqNTNiZndYUkd5RGptNE9tdG85YlRqbUdneC95MXlxaW1Va24xU2tvdFpmRHRoSGVxMytUU3dHNVREMFUzS0FYbjY5Q205KzY1L29sSXlLR003ZHdQbERBcXkzTFVhSko0STF4RmhXazdEdFErYS9kOEFUUWxJbElSYnd4YWNOOU9DN0FVcmx1d0x4b1YvQmV0RFpBZlpSbnludXUwOUJIV0RjbGk2U1ZrQjc3NzdIajE5K21UL1BXWlF4dVA3NzVnYkxMTFVuS2EySGRWNFVDMm40OXYzZnl2SkNnWUZxelBISVl4SmlhMmFGbTZkbDJBTk5Yak1hdEdrV1h3TGxUdlViT2w3OSs3VDZXbC8vOGtoNlNabEpiejc3cnRubi95Slcrb05DbklENUxaQmJUdXE4Y0JhUit4UGdsd3ViSDZ5TGJrR0Z0UVlyWVUxR2hkdWJaZmdVRFVzMXE5Rk40dHVIUnV6Y3UvZVBUbzlQZVZrbmNaMGs3SWkzbm5uM2NRbmYzTC9rTjE0Y05xT201ZFJ3OTJnMjdhSFNMUzFCZ1h0aXpPSUtGWjUxa1JMNDRLdXo1SWN1cVpGKzIvUWxTUGNKTlNqTnl2ZG9LeUhibEpXeHRPblQrbWRkL3kvb2xrMktOeE5yN1ZCNFdKUkRSR3UyOE1ZRkM0ZjF6NW9aa2RTc2lLY3dUeFA1QXdOc2hhSFlFMTFMVjZMWVhlcFZNc1psWmg1eDJFdHcvdFA3czAwbmNQUlRjb0s4VVlsdnpRU2s1TE93UzE3YmJ1bFpvOEwvMXFJcXpRd2cyYi90NUpzUmo2MUxFL25NQ0I3WXdrT1dvZXdheS9ma1N6MGNFWmx6bTYzNndabHBYU1RzbEtlUG4xS0gzLzhNVDE1TW4vNWh3ZzFLUFBqWTN1ZENWbnFDUXNSelliQWZUeXkxTTYvUExUL1cwbVdwRDgxV1RlaVBYY2dEbDVqb2ZzV2xhM0ZxTnk4ZVpOdTNyekp5VG9Ib0p1VWxmUE9PKzhFUm1WY3F1bXFiY2VnY08wVFhQaFhKczdNb0FqcU82TzBGbGFJNW8yaDVmdElEb25sSEMzTkttcFBsREE5Wjlyc20wTnZ4L3YzNy9mM242eVlibEkyd05PblQrbkdqWGZJWDBXNG0yTHBac3N0ZDAxN1Rld0V6bkRFY0hySW9JQjlSWENHc0FadFRWTFcrTy94SUN3MVA2MVlTLzNPT2RyUmpqMUhwdGp1azBOc3U5UFRVN3A1ODJZM0tDdW5tNVNOTUJpVkcxVUdaV2l2dTFsclRRcVhkeER4Wm1LQ0MvK3FOQ2hjZXdGdXJqVkE4N1FDbGpRelc1a1Rqa09ObzIyL2R2dGd3UzFGcDZlbmRQLytmVTdXV1FIZHBHeU1HemZlb1NkUC9DOStTNWtVdlZHb2FkZTJJZTFKT0lQQ3RaOXBOQWJGMHB5b3huNEViT25mN2RHeTlKaVc3bStLamNOWXdxajBsM2UyUlRjcEcrVGpqeittano3NmFIYWN1M25XR0FsTzA2SnRSdEtMS0F5S0s3U1ZVSnFhRU5GNE80dXp4ZlZaVjgzMUxxT2xVZWtHWlh0MGs3SlJuang1UWpkdTNOaC9YMk5RYXR0YnRFM0l5R2FHWWZhdHdzQ2swSnFhTStCeGRnN0NWdGRuM1hYcm5VWUxrOUpmM3RrdVgrTUVuWFZ5Y25KQ2QrN2NvWk9UazdPTGxkNE0xTFMzYUJ0RnRHbUQ0cHpEeHRrNUNGdGNIMS96bXV0MkxweGJlWjNXUTd0NTgyWTNLQnVtUDBrNUF0NSsrKzNnZlNwenVDV3VhVy9STmdpNDVvbmp5TGNoN1NrMGhpYUFIZDhDK0JxV2ZKUHJGbGpEMmtoWlk4MW9TZFB0aCs5RmkyM2JYOTdaUHQya0hBbFBuanlodDk5K2UzYWNXOTZhOWhadEpUL0FQUjFKYXJqMkdLayt4aWxpS3VIV3NBVmJNejZIbUNNTDFsQjNiUW5wcllMdEgrMDI2eS92SEEvZHBCd1o4Vk1WdFZtb2JOZTJ3U1loNlZkYytFMFNkVDRPNS84bmlBSGgxbUh0SE5MUWJISHVEbDN6MEwvdG1wVzNRTGt2NmZicFQwK09pMjVTamhEL1ZJVmIycHIyRm0xVGo0R2JpZUd3MHFCSXRDbVFtaFZ3YTdORmxqQXJXNTIzdGRROXJjTjJ2YkRsVDR1UTJQNzA1RGpwYjV3OVFrNU9UdWp1M2J0MGNuS1MxWEFYUmEzUjRQSWlaTTBFa2xwaU9pVGF1Y2pjb0RpMy9qZEYxbUE5dG5DK3JITzNabzExeitzNFJGM3BFNTJib3Y3bTJPT2xQMGs1Y2o3NjZDTzZlL2Z1NUJpMzVEWHQyalovWFpLWWliSFpZWnJ4RzB5WEZpUU95VThoYm83UEM5elRsV09ZcDdXUGdhOFBlSXdCZ2p3Um1UTUd4Zkg5VjlzZlA5MmtuQU9lUEhsQ2QrL2UzYjlYaFZ0eXJkR295VHY0akJVYmxFeFROeWlkbUMydEwxYXJ5bGxrMFJrVklsK0hqKzh2NzV3UHVrazVSN3oxMWx2MCtQSGpvb2JiRGxxVHdobVU0WDh5azhMVlNtUmdVRFF4R1pCNk85dGxhK3NycTFmdExHYm9UY3JJWjU5OTFwK2VuQk82U1RsbitLY3FPYk9pTlJyY051Sk1TZ3VEUWhUa1plU3ovcVg2QW1pdFd5RWVEL2VTelRHeTVUWFYxMjYzenRvdGMzcDZTcDk5OWhrbjZ4d1IzYVNjVSs3ZXZTdDZyd3EzVGRTeE9ZTnkxcFkrN0ZnVElkWk5EeFJCRFFvM1oydEdVL3V4bVJVL0I3dmRUalVmYTZSK0hIWnJMTmt1cDZlbmRPdldyZjcwNUJ6U1RjbzVKbnlxd20wRHRRbGgyamtETXorRUdROGl2aTZpd0hEd1VpSTZQb1BTcXM0dEdwWldjN0VXN01abnM3Ym9GcmwxNnhiZHZIbVRrM1dPbEc1U09uVDM3bDI2YytkT3RwM2JJbW9UVW1yUEdaUk0yMHdIN0dvMG40YzFLUHQwWU1LRjROYWdOV3MxTEllZWx5V3hINnZObXBhMlJuOTYwaUhxSnFVVDhPYWJieWJmcTlMRWhEQnQ4MWRnY0VNaE1pbUFqcWhnUEhKMVZzTE42eFk1cEZrNXh2bEVhRHR1bS9WTWJZdit4dGlPcDV1VXpvVEhqeC9UbTIrK3VmK2UyeDVxRTFKcUw5MzQyWWNabUptcE5pakpRMkRDQXR5Y0hRdExHSmJ6TXBjNWxobC8vVHFHVzZHL01iWVQwMDFLSjhuZHUzZnB3dzgvTEdxYUdCUWl0VWtSNmNCZEw4cFpBVGRmeDBxdFdUbXY4OGF4N0x6VXJTSFJZRlQ2MDVOT2ltNVNPbGtlUDM1TWQrN2NNZis0Y3JGZFlWRFFKeDNEWVZkc0QwRzFOUWFGbTZmelJNNnc5RG1Tc2Z4ODFabVVXN2R1MHExYnR6aFo1NXpTVFVxSEpXVldtaGdVb29raFFEOGEzTUtrY0dQd2FBMEttci9Ua1hDNGZTVTNLdGV2OTVkMk9qemRwSFJnN3R5NXMvOFVVR3VUZ2hpVW9rSGc5TVZReDVvWWo5U2tjSFBUNlVoWTEzN0NqTXIxNi8xVE94MmNibEk2WXU3Y3VaTjl2d3EzblZRR0pXZ2J2K1VlaGNUZjhqbjNoNEZUd2dYL1JVQnlkam9jNjk5SGVhUFN6VWxIUXpjcEhSV1BIeittRHovOGNQWitGVzQ3TFdaU0J0SFovL2g4NDJIK0tZckVvSER6c1ZYOHNDcmY5OW9CMk40ZW1tK0svcjZUanBadVVqcFZoR2FGMjBvV0JnVXlKeDVYMENlNzJSZFJCRFVwM0h4c0Jja3d1bW14WWZ0N1o5Z0kzWngwYXVrbXBXUENuVHQzNlBidDIwVU5aMUlRUXlFeEtWeC84ME4yVDFHR3JubmRtbWh4SmVpbUJlZVlMc1hYcjEvdkwrMTBUT2dtcFdQS2h4OSttSHkvQ21jWVZtRlFNbTJqWnY2M0ZHUFhlTDFMY2NpemZjdUdwVjhtTWJvNTZWalRUVXFuQ2FGWjRiWVlZaWpNREFyUnpEc2duL3JabWtFWjVtRGRyc0RTdExCcjNtbEtOeWVkVm5TVDBtbktoeDkrV0g0WnFQUVU1YXg5K0IrMlRhSHRuRE1wckVFcGlDaCtTZ0hVMFlEMCtBM2RRRU00MHdLdGJXZFJ1am5wdEthYmxNNGk1TXlLNVZNVWFDc0xuNkxvREFyUmtpWUZHdmVlTFJnV3lYZzZoNkNiazg1U2RKUFNXWlRRckxCYmozdktFc0RtOGt3OHljeXhsTDVOSHRtM0hNQ2t3R1BPc2diRFVqdUd6cEowYzlKWm1tNVNPZ2ZoOXUzYmRTOERCWWkyY002a3NFOVJNaUphMXFDSXhpcGlLY1BTcXY1T1MwNVByOVA3NzNkejBsbWVibEk2QitYMjdkdjA2TkVqZXZUbzBiUUJOQ21pN2R2Z0tVcTZlMEZOSUtKeFZtTmxXSmFzdWRPQzRhbkpkYnArdlp1VHptSG9KcVd6Q2g0OWVyUTNMRTBNQ3RIK25zbi93cmdVQ2R1UzdWNVlWd0h4R0p1QW1KWTExTm14NHRhdFcvMlhzSFZXUVRjcG5WWGhuNnA4OE1FSFJaMXEyK1pNQ3ZzVVpYNjAzTDJpdGdEVjJCWmpSN1hqNjZ3VC84U2ttNVBPbXVnbXBiTmFidCsrUFRNcjZ1MXErQlNGTDRFVlpCbHk2K05iRW8rYis4aHdaeHVjbmc1dmh1MHY2WFRXU0RjcG5kVnorL1p0ZXZqd0lUMTgrSkNUNW5FWmczTFdGdnd2TC9EZk5YcUtNdWJWNTJnQmQ0VllzMWx4enRGdXpRVWVrUDUrazg0VzZDYWxzeGtlUFhwRUR4OCtaRjhLbXJHWVFTSFNHb3kxR1JSK25IUFc1Z1hDUzFzM0tnT25wNmY3anhGM09sdWdtNVRPSnZuZ2d3LzJwb1hGeUtSZ1p3b2syclBreDVjUnNER1dXWXNmaUM5dDU5bW8rTjl0Y3YzNmRVN2E2YXlLYmxJNm13WjV1bExjNHM3U29CQkpURVk2Sng1dkNUNCtuRU43Z3RTNm55ZWowcCthZEk2QmJsSTZSNFAvVkZENGRFVnZVTTRFSkwyQlkrSzFHQlRaMkhRY3doZVUxdjNZalVyLytIRG5tT2dtcFhPVWZQREJCL1RCQng5VW14VFoyY0dMVzczcFZzb3dMOHZlckpmMEJ0eGw3ZGlNeXVucDZka25kUHJMT1ozam9wdVV6bEh6OE9GRGV2VG9FZjNrSnorWnRYR0dRWDVtTUpablZRYkZzK1ROZXBsUDJrZ3VhVXZVMDRyK2NrN25QTkJOU3VmY0VCb1dmdGZibWhRK0Z5c3dZWDY2TDNtVEh2dHVhUTZrbDdTV3RWalRqVW5udk5GTlN1ZGNNdnplbGZRVEZwMUJJVW9aRFR3UExGU1RQOVdYdWtsUCsyOWhEclNYc3hhMVdOR05TZWM4MDAxSzU5d1RHeGJkS2JGZWc0S05wL1ZOT2wyRHRUbkF4cHJHdXBZYXVqSHBkQWE2U2VsMEluN3lrNS9RZ3dmUzMzQTdQWTFrWjVWSUxBSS92VnZmb010MVdCZ0VmS3g1TE9yUTBuK1hTYWN6cDV1VVRxZUEvM1g4UC81eDZtV2hrUEUwa3A5UjRnQUkrYW5kNmdhTjFWRnJFT1RqVFZOYkIwcC9XdExwOEhTVDB1a0k4QzhKelUyTDNmdFlhdEdmMHExdXpuZzlOUVpCUCs0NU5YWGs4S2FrUHkzcGRIQzZTZWwwbFBpbkxBOGVQS1FIRHg1dzhneTJwMS85Nld4OWM5YlZJelVKOWVOT0k2MGp4ajhsNlU5TE9oMGQzYVIwT2taNHcwSkU5T01mLzVoUmUreE9QN3RUdWU3R1BFVmZrOFFnMkkxOURscEgrSVNrbTVKT3g0WnVVanFkaHZpWGhSNCtmTEEzTUNNMnA1NzlLWXpkbERIcWFrTU1ndjM0NTZUcThFYWt2M3pUNmJTam01Uk9aMEdtVDF0K3hLaDUycDIrdkRuZ3NhbU5NeXJ0NW1Eayt2WHIvU2xKcDNNQXVrbnBkQTdNWUZ3ZXpQN08wZmJVWFk5SjhhVE1Tb3M1ZVAvOTkvZC83NGFrMHprczNhUjBPaXNsWjE2V08yVnJqRXFiR21PalVqTVgzWXgwT3V1bm01Uk9aNFBFYjh6OTBZL3FYenBLb3pVcTdTNHIzcWh3bDY3d0pScWkvdDZSVG1lTGRKUFM2Undoc1lsNThPQUIvRExTRkkxSmFYOUoyZTEyczZjZjNZUjBPc2RITnltZHpqbm53WU1IeFg4Q1lEQTQrbjhpb0VUNGtrdUsvakpNcDNPKytmOFNRYlVpaW4xcGpRQUFBQUJKUlU1RXJrSmdnZz09Ii8+PC9nPjwvZz48L2c+PC9nPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTIxOCwyMjQuNTd2NDQuMWMxNC41OCwxMC40LDI5LjI0LDIzLDI5LjM0LDM5LjI1LDAsNi42OC0yLjE4LDIwLjUzLTE4LjUsMjcuNjYtMTQuMSw2LjE2LTI4Ljg0LDUuNDUtMjkuNTUsMi4wNnM1LjU3LTQuNDMsMTQuNzYtOC4yOGMxMi4zMi01LjE3LDE0Ljc3LTEzLjU4LDE0Ljc3LTE4LjU2cy0yLjE2LTEyLTEwLjgyLTE3LjgxdjI3LjQzYy0yLjMxLDMuMjktMTAuNTQsNS41Ni0xMC41NCw1LjU2di05NS45Yy04LjM3LDQuNzktMTMuNjEsOS4zLTEzLjYxLDE0LjY1LDAsNC44NywzLDksOC4yOSwxMy4yN3YyNWMtMTQuMjctOS0yOC44Mi0xOS42NC0yOC44Mi0zOC4yNSwwLTkuODQsNC43My0xOC41NywxNC4wOC0yNiw3LTUuNTIsMTUuNzItOS43OSwyNC4xOS0xMy45MywxMi43NS02LjIzLDI1Ljk1LTEyLjY3LDI1Ljk1LTIwLjMzLDAtNy03LjI0LTEyLjctMTkuNTQtMjAuMjN2MzEuNUwyMDcuNDIsMjAxVjg1LjIxczIuMS0uMTMsNS4yMS0uMTMsNS4zMy4xMyw1LjMzLjEzdjU1LjE4bDMuNTQsMi4wOWMxOCwxMC41NywzNi41MywyMS41MSwzNi41Myw0MnMtMTkuOTEsMzAuMjEtMzcuNDcsMzguNzhabTI0LjctMTc5LjUyYy01LjgzLTEuNzUtOS40NS40Ny0xMywuMTRhOTAuOTQsOTAuOTQsMCwwLDAtMTMuNy0uNDYsNTcuMTEsNTcuMTEsMCwwLDAtMzcuNiwxNC45M0MxNjcuNTcsNjkuNDMsMTYxLjQsODIuNTMsMTYxLjQsOTUuNmMwLDE2LDUuNjksMjkuNTMsMTcuMzksNDEuNDcsNi45LDcsMTUuMTksMTIuNzMsMjMuMzEsMTcuNzNWMTMwLjE2Yy0xMS42Ny04LjYzLTIwLjE3LTE4Ljg5LTIwLjE3LTM0LjU2czE2LjYxLTMwLjMzLDM0LjE4LTMwLjMzYTY4Ljg0LDY4Ljg0LDAsMCwxLDEwLjg5Ljk0YzIuMzcuNjQsMy4yLDQsOS42OSw0LjY5LDcuNzcuODYsMjAuMzItLjcxLDIxLjg2LTQuMlMyNTEuOCw0Ny44LDI0Mi42Niw0NS4wNVoiLz48L2c+PC9zdmc+"); +} \ No newline at end of file diff --git a/tests/test_report/expected-results/report.html b/tests/test_report/expected-results/report.html index ac74248d1..3f4f45037 100644 --- a/tests/test_report/expected-results/report.html +++ b/tests/test_report/expected-results/report.html @@ -1,1681 +1,106542 @@ + - + + - Snakemake Report - - - - - - - - + - .sidebar .nav-link.active { - color: #007bff; - } + + - .sidebar .nav-link:hover .feather, - .sidebar .nav-link.active .feather { - color: inherit; - } + - .sidebar-heading { - font-size: .75rem; - text-transform: uppercase; - } +
+

Loading Snakemake Report...

+

Please enable Javascript in your browser to see this report.

+
+ - /* - * Content - */ +
+
- [role="main"] { - padding-top: 65px; /* Space for fixed navbar */ - } + - - - - - - - - - - + function getComponentName(type) { + if (type == null) { + // Host root, text node or just invalid type. + return null; + } - - + { + if (typeof type.tag === 'number') { + error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.'); + } + } - + if (typeof type === 'function') { + return type.displayName || type.name || null; + } - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - $(document).ready(function() { - // Hide loading screen when document is ready. - setTimeout(function(){ - $("#loading-screen").hide(); - }, 2000); - }); - - \ No newline at end of file diff --git a/tests/test_report/report/workflow.rst b/tests/test_report/report/workflow.rst index 124933f92..b455d79cf 100644 --- a/tests/test_report/report/workflow.rst +++ b/tests/test_report/report/workflow.rst @@ -1 +1 @@ -This is the workflow description. Test reference fig1.svg_. +This is the workflow description. Test reference fig1.svg_. And a reference to a category `Step 2`_. From 2bc167b77b4a2d7a7f0bb4f3b55aa64099adaf07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Sat, 12 Mar 2022 22:27:39 +0100 Subject: [PATCH 45/45] cleanup --- snakemake/report/template/components/abstract_results.js | 1 - 1 file changed, 1 deletion(-) diff --git a/snakemake/report/template/components/abstract_results.js b/snakemake/report/template/components/abstract_results.js index 2c4854a6a..fe51d294c 100644 --- a/snakemake/report/template/components/abstract_results.js +++ b/snakemake/report/template/components/abstract_results.js @@ -83,7 +83,6 @@ class AbstractResults extends React.Component { } renderEntries() { - let _this = this; let app = this.props.app; let labels = undefined; if (this.isLabelled()) {