From b9c583f806f2a8cad7876d13634fa919315da1f6 Mon Sep 17 00:00:00 2001 From: Jamie Taylor Date: Thu, 22 Feb 2024 15:20:41 +0000 Subject: [PATCH 1/3] Add methods to dl deployment datasets and update some docstrings --- pvlive_api/pvlive.py | 170 +++++++++++++++++++++++++++++++++---------- requirements.txt | 1 + 2 files changed, 133 insertions(+), 38 deletions(-) diff --git a/pvlive_api/pvlive.py b/pvlive_api/pvlive.py index 6673fe0..a1b0cb4 100644 --- a/pvlive_api/pvlive.py +++ b/pvlive_api/pvlive.py @@ -11,7 +11,7 @@ import json from datetime import datetime, timedelta, date, time from time import sleep -from typing import List, Union, Tuple, Dict, Optional +from typing import List, Union, Tuple, Dict, Optional, Literal import inspect import argparse import re @@ -20,6 +20,7 @@ import requests from numpy import nan, int64 import pandas as pd +from bs4 import BeautifulSoup class PVLiveException(Exception): """An Exception specific to the PVLive class.""" @@ -39,15 +40,16 @@ class PVLive: Parameters ---------- - `retries` : int + retries : int Optionally specify the number of retries to use should the API respond with anything other than status code 200. Exponential back-off applies inbetween retries. - `proxies` : Optional[Dict] + proxies : Optional[Dict] Optionally specify a Dict of proxies for http and https requests in the format: {"http": "
", "https": "
"} """ def __init__(self, retries: int = 3, proxies: Optional[Dict] = None, ssl_verify: bool = True): - self.base_url = "https://api.solar.sheffield.ac.uk/pvlive/api/v4" + self.domain_url = "https://api.solar.sheffield.ac.uk" + self.base_url = f"{self.domain_url}/pvlive/api/v4" self.max_range = {"national": timedelta(days=365), "regional": timedelta(days=30)} self.retries = retries self.proxies = proxies @@ -57,6 +59,7 @@ def __init__(self, retries: int = 3, proxies: Optional[Dict] = None, ssl_verify: self.pes_list = self._get_pes_list() self.gsp_ids = self.gsp_list.gsp_id.dropna().astype(int64).unique() self.pes_ids = self.pes_list.pes_id.dropna().astype(int64).unique() + self.deployment_releases = None def _get_gsp_list(self): """Fetch the GSP list from the API and convert to Pandas DataFrame.""" @@ -70,8 +73,96 @@ def _get_pes_list(self): response = self._fetch_url(url) return pd.DataFrame(response["data"], columns=response["meta"]) + def _get_deployment_releases(self): + """Get a list of deployment releases as datestamps (YYYYMMDD).""" + if self.deployment_releases is None: + url = f"{self.domain_url}/capacity/" + response = self._fetch_url(url, parse_json=False) + soup = BeautifulSoup(response.content, "html.parser") + releases = [r["href"].strip("/") for r in soup.find_all("a", href=True) + if re.match(r"[0-9]{8}/", r["href"])] + self.deployment_releases = sorted(releases, reverse=True) + return self.deployment_releases + + def _get_deployment_filenames(self, release): + """Get a list of filenames for a given release.""" + url = f"{self.domain_url}/capacity/{release}/" + response = self._fetch_url(url, parse_json=False) + soup = BeautifulSoup(response.content, "html.parser") + filenames = [r["href"] for r in soup.find_all("a", href=True) + if re.match(r".+\.csv.gz", r["href"])] + return filenames + + def _validate_deployment_inputs(self, region, include_history, by_system_size, release): + """Validate input parameters to `deployment()`.""" + releases = self._get_deployment_releases() + if not isinstance(region, str): + raise TypeError("`region` must be a string.") + supported_regions = ["gsp", "llsoa"] + if region not in supported_regions: + raise ValueError(f"The region must be one of {supported_regions}") + if not isinstance(include_history, bool): + raise TypeError("`include_history` must be True or False.") + if not isinstance(by_system_size, bool): + raise TypeError("`by_system_size` must be True or False.") + if by_system_size and region != "gsp": + raise ValueError(f"`by_system_size` can only be True if `region`='gsp'") + if by_system_size and not include_history: + raise ValueError(f"`by_system_size` can only be True if `include_history`=True") + if not isinstance(release, (str, int)): + raise TypeError("`release` must be str or int.") + if isinstance(release, str) and release not in releases: + raise ValueError(f"The requested release ({release}) was not found on the API") + if isinstance(release, int) and release not in range(len(releases)): + raise ValueError("The requested release index ({release}) was not found on the API, " + f"release index must be between 0 and {len(releases)-1}") + + def deployment(self, + region: Literal["gsp", "llsoa"] = "gsp", + include_history: bool = False, + by_system_size: bool = False, + release: Union[str, int] = 0) -> pd.DataFrame: + """ + Download deployment data from the `/capacity` endpoint. + + Parameters + ---------- + region : str + The aggregation region for the deployment data, either 'gsp' (default) or 'llsoa'. + include_history : bool + Set to True to include historical deployment data. Defaults to False. + by_system_size : bool + If `region` == "gsp", set to True to also include the breakdown by system size. + release : Union[str, int] + The datestamp (YYYYMMDD) of the capacity update you wish to download. Pass a string + (e.g. "20231116") to get a specific release, or pass an int to get the latest + (release=0), next-latest (release==1) etc. Defaults to 0. + + Returns + ------- + Pandas DataFrame + Contains the columns pes_id, datetime_gmt and generation_mw, plus any extra_fields in + the order specified. + """ + self._validate_deployment_inputs(region, include_history, by_system_size, release) + releases = self._get_deployment_releases() + release = releases[release] if isinstance(release, int) else release + filenames = self._get_deployment_filenames(release) + region_ = "20220314_GSP" if region == "gsp" else region + history_ = "_and_month" if include_history else "" + system_size_ = "_and_system_size" if by_system_size else "" + filename_ending = f"_capacity_by_{region_}{history_}{system_size_}.csv.gz" + filename = [f for f in filenames if f.endswith(filename_ending)][0] + url = f"{self.domain_url}/capacity/{release}/{filename}" + kwargs = dict(parse_dates=["install_month"]) if include_history else {} + deployment_data = pd.read_csv(url, **kwargs) + deployment_data.insert(0, "release", release) + deployment_data.rename(columns={"dc_capacity_MWp": "dc_capacity_mwp"}, inplace=True) + deployment_data.system_count = deployment_data.system_count.astype("Int64") + return deployment_data + def latest(self, - entity_type: str = "gsp", + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -81,15 +172,15 @@ def latest(self, Parameters ---------- - `entity_type` : string + entity_type : string The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp". - `entity_id` : int + entity_id : int The numerical ID of the entity of interest. Defaults to 0. - `extra_fields` : string + extra_fields : string Comma-separated string listing any extra fields. - `period` : int + period : int Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30. - `dataframe` : boolean + dataframe : boolean Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple. Returns @@ -124,7 +215,7 @@ def latest(self, def at_time(self, dt: datetime, - entity_type: str = "gsp", + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -134,18 +225,18 @@ def at_time(self, Parameters ---------- - `dt` : datetime + dt : datetime A timezone-aware datetime object. Will be corrected to the END of the half hour in which *dt* falls, since Sheffield Solar use end of interval as convention. - `entity_type` : string + entity_type : string The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp". - `entity_id` : int + entity_id : int The numerical ID of the entity of interest. Defaults to 0. - `extra_fields` : string + extra_fields : string Comma-separated string listing any extra fields. - `period` : int + period : int Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30. - `dataframe` : boolean + dataframe : boolean Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple. Returns @@ -172,7 +263,7 @@ def at_time(self, def between(self, start: datetime, end: datetime, - entity_type: str = "gsp", + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -182,21 +273,21 @@ def between(self, Parameters ---------- - `start` : datetime + start : datetime A timezone-aware datetime object. Will be corrected to the END of the half hour in which *start* falls, since Sheffield Solar use end of interval as convention. - `end` : datetime + end : datetime A timezone-aware datetime object. Will be corrected to the END of the half hour in which *end* falls, since Sheffield Solar use end of interval as convention. - `entity_type` : string + entity_type : string The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp". - `entity_id` : int + entity_id : int The numerical ID of the entity of interest. Defaults to 0. - `extra_fields` : string + extra_fields : string Comma-separated string listing any extra fields. - `period` : int + period : int Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30. - `dataframe` : boolean + dataframe : boolean Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple. Returns @@ -218,7 +309,7 @@ def between(self, def day_peak(self, d: date, - entity_type: str = "gsp", + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -228,17 +319,17 @@ def day_peak(self, Parameters ---------- - `d` : date + d : date The day of interest as a date object. - `entity_type` : string + entity_type : string The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp". - `entity_id` : int + entity_id : int The numerical ID of the entity of interest. Defaults to 0. - `extra_fields` : string + extra_fields : string Comma-separated string listing any extra fields. - `period` : int + period : int Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30. - `dataframe` : boolean + dataframe : boolean Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple. Returns @@ -274,17 +365,17 @@ def day_peak(self, return maxdata return None - def day_energy(self, d: date, entity_type: str = "gsp", entity_id: int = 0) -> float: + def day_energy(self, d: date, entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0) -> float: """ Get the cumulative PV generation for a given day from the API. Parameters ---------- - `d` : date + d : date The day of interest as a date object. - `entity_type` : string + entity_type : string The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp". - `entity_id` : int + entity_id : int The numerical ID of the entity of interest. Defaults to 0. Returns @@ -369,7 +460,7 @@ def _build_url(self, entity_type, entity_id, params): url = base_url + "?" + "&".join(["{}={}".format(k, params[k]) for k in params]) return url - def _fetch_url(self, url): + def _fetch_url(self, url, parse_json=True): """Fetch the URL with GET request.""" success = False try_counter = 0 @@ -391,7 +482,10 @@ def _fetch_url(self, url): if not success: raise PVLiveException("Error communicating with the PV_Live API.") try: - return json.loads(page.text) + if parse_json: + return json.loads(page.text) + else: + return page except Exception as e: raise PVLiveException("Error communicating with the PV_Live API.") from e diff --git a/requirements.txt b/requirements.txt index 2f40ed3..28b3b02 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ pytz requests numpy pandas +bs4 From ed088fc4410540117ad2374519193ab91553a43b Mon Sep 17 00:00:00 2001 From: Jamie Taylor Date: Thu, 22 Feb 2024 15:21:01 +0000 Subject: [PATCH 2/3] Update demo code and tests --- Tests/test_pvlive_api.py | 84 +++++++++++++++++++++++++++++----------- pvlive_api_demo.py | 42 +++++++++++++------- 2 files changed, 90 insertions(+), 36 deletions(-) diff --git a/Tests/test_pvlive_api.py b/Tests/test_pvlive_api.py index 23a09a6..96e8c80 100644 --- a/Tests/test_pvlive_api.py +++ b/Tests/test_pvlive_api.py @@ -20,18 +20,26 @@ def setUp(self): """ self.api = PVLive() self.expected_dtypes = { - 'pes_id': ptypes.is_integer_dtype, - 'gsp_id': ptypes.is_integer_dtype, - 'datetime_gmt': ptypes.is_datetime64_any_dtype, - 'generation_mw': ptypes.is_float_dtype, - 'bias_error': ptypes.is_float_dtype, - 'capacity_mwp': ptypes.is_float_dtype, - 'installedcapacity_mwp': ptypes.is_float_dtype, - 'lcl_mw': ptypes.is_float_dtype, - 'stats_error': ptypes.is_float_dtype, - 'ucl_mw': ptypes.is_float_dtype, - 'uncertainty_MW': ptypes.is_float_dtype, - 'site_count': ptypes.is_integer_dtype + "pes_id": ptypes.is_integer_dtype, + "gsp_id": ptypes.is_integer_dtype, + "datetime_gmt": ptypes.is_datetime64_any_dtype, + "generation_mw": ptypes.is_float_dtype, + "bias_error": ptypes.is_float_dtype, + "capacity_mwp": ptypes.is_float_dtype, + "installedcapacity_mwp": ptypes.is_float_dtype, + "lcl_mw": ptypes.is_float_dtype, + "stats_error": ptypes.is_float_dtype, + "ucl_mw": ptypes.is_float_dtype, + "uncertainty_MW": ptypes.is_float_dtype, + "site_count": ptypes.is_integer_dtype, + "release": ptypes.is_string_dtype, + "GSPs": ptypes.is_string_dtype, + "llsoa": ptypes.is_string_dtype, + "system_size": ptypes.is_string_dtype, + "install_month": ptypes.is_datetime64_dtype, + "dc_capacity_mwp": ptypes.is_float_dtype, + "system_count": ptypes.is_integer_dtype, + "cumul_capacity_mwp": ptypes.is_float_dtype, } def check_df_dtypes(self, api_df): @@ -40,19 +48,20 @@ def check_df_dtypes(self, api_df): against the expected dtypes from the API. """ for column in api_df.columns: - with self.subTest(column=column): - assert self.expected_dtypes[column](api_df[column]) + if column in self.expected_dtypes: + with self.subTest(column=column): + assert self.expected_dtypes[column](api_df[column]) def check_gsp_tuple_dtypes(self, data): """ Check the dtypes of a gsp tuple against the expected dtypes from the API. """ - with self.subTest(column='gsp_id'): + with self.subTest(column="gsp_id"): assert isinstance(data[0], int) - with self.subTest(column='datetime_gmt'): + with self.subTest(column="datetime_gmt"): assert isinstance(data[1], str) - with self.subTest(column='generation_mw'): + with self.subTest(column="generation_mw"): assert isinstance(data[2], float) def check_pes_tuple_dtypes(self, data): @@ -60,11 +69,11 @@ def check_pes_tuple_dtypes(self, data): Check the dtypes of a pes tuple against the expected dtypes from the API. """ - with self.subTest(column='pes_id'): + with self.subTest(column="pes_id"): assert isinstance(data[0], int) - with self.subTest(column='datetime_gmt'): + with self.subTest(column="datetime_gmt"): assert isinstance(data[1], str) - with self.subTest(column='generation_mw'): + with self.subTest(column="generation_mw"): assert isinstance(data[2], float) def check_pes_tuple(self, data): @@ -89,8 +98,17 @@ def check_df_columns(self, data): against the expected columns. """ with self.subTest(): - assert (('pes_id' in data or 'gsp_id' in data) and 'datetime_gmt' in data - and 'generation_mw' in data) + assert (("pes_id" in data or "gsp_id" in data) and "datetime_gmt" in data + and "generation_mw" in data) + + def check_deployment_df_columns(self, data): + """ + Check the columns of the returned DataFrame + against the expected columns. + """ + with self.subTest(): + assert (("llsoa" in data or "GSPs" in data) and "release" in data + and "dc_capacity_mwp" in data) def test_latest(self): """Tests the latest function.""" @@ -218,5 +236,27 @@ def test_at_time(self): self.check_df_columns(data) self.check_df_dtypes(data) + def test_deployment(self): + """Tests the deployment function.""" + # import pdb; pdb.set_trace() + data = self.api.deployment(region="gsp") + self.check_deployment_df_columns(data) + self.check_df_dtypes(data) + data = self.api.deployment(region="llsoa") + self.check_deployment_df_columns(data) + self.check_df_dtypes(data) + data = self.api.deployment(region="gsp", include_history=True) + self.check_deployment_df_columns(data) + self.check_df_dtypes(data) + with self.subTest(test_type="errors"): + with self.assertRaises(ValueError): + data = self.api.deployment(region="gsp", by_system_size=True) + data = self.api.deployment(region="gsp", include_history=True, by_system_size=True) + self.check_deployment_df_columns(data) + self.check_df_dtypes(data) + data = self.api.deployment(region="gsp", release=1) + self.check_deployment_df_columns(data) + self.check_df_dtypes(data) + if __name__ == "__main__": unittest.main(verbosity=2) diff --git a/pvlive_api_demo.py b/pvlive_api_demo.py index cb1adf5..c06fb06 100644 --- a/pvlive_api_demo.py +++ b/pvlive_api_demo.py @@ -43,20 +43,20 @@ def main(): print("\n\n---------- NATIONAL 5 MIN----------") print("\nLatest: ") print(pvlive.latest(period=5)) - print("\nAt 2021-04-01 12:05: ") - print(pvlive.at_time(datetime(2021, 4, 1, 12, 5, tzinfo=pytz.utc), period=5)) - print("\nAt 2021-04-01 12:05 as a Pandas DataFrame object: ") - print(pvlive.at_time(datetime(2021, 4, 1, 12, 5, tzinfo=pytz.utc), period=5, dataframe=True)) - print("\nBetween 2021-04-01 10:30 and 2021-04-01 14:00: ") - print(pvlive.between(datetime(2021, 4, 1, 10, 30, tzinfo=pytz.utc), - datetime(2021, 4, 1, 14, 0, tzinfo=pytz.utc), period=5)) - print("\nBetween 2021-04-01 10:30 and 2021-04-01 14:00 as a Pandas DataFrame object: ") - print(pvlive.between(datetime(2021, 4, 1, 10, 30, tzinfo=pytz.utc), - datetime(2021, 4, 1, 14, 0, tzinfo=pytz.utc), period=5, dataframe=True)) - print("\nPeak on 2021-04-01: ") - print(pvlive.day_peak(date(2021, 4, 1), period=5)) - print("\nPeak on 2021-04-01 as a Pandas DataFrame object: ") - print(pvlive.day_peak(date(2021, 4, 1), period=5, dataframe=True)) + print("\nAt 2023-12-01 12:05: ") + print(pvlive.at_time(datetime(2023, 12, 1, 12, 5, tzinfo=pytz.utc), period=5)) + print("\nAt 2023-12-01 12:05 as a Pandas DataFrame object: ") + print(pvlive.at_time(datetime(2023, 12, 1, 12, 5, tzinfo=pytz.utc), period=5, dataframe=True)) + print("\nBetween 2023-12-01 10:30 and 2023-12-01 14:00: ") + print(pvlive.between(datetime(2023, 12, 1, 10, 30, tzinfo=pytz.utc), + datetime(2023, 12, 1, 14, 0, tzinfo=pytz.utc), period=5)) + print("\nBetween 2023-12-01 10:30 and 2023-12-01 14:00 as a Pandas DataFrame object: ") + print(pvlive.between(datetime(2023, 12, 1, 10, 30, tzinfo=pytz.utc), + datetime(2023, 12, 1, 14, 0, tzinfo=pytz.utc), period=5, dataframe=True)) + print("\nPeak on 2023-12-01: ") + print(pvlive.day_peak(date(2023, 12, 1), period=5)) + print("\nPeak on 2023-12-01 as a Pandas DataFrame object: ") + print(pvlive.day_peak(date(2023, 12, 1), period=5, dataframe=True)) print("\n\n---------- REGIONAL - PES REGION 23 ----------") print("\nLatest PES region 23: ") @@ -112,5 +112,19 @@ def main(): print("\nGSP ID 120 cumulative generation on 2019-03-18: ") print(pvlive.day_energy(date(2019, 3, 18), entity_type="gsp", entity_id=120)) + print("\n\n---------- PV deployment ----------") + print("\nLatest by GSP: ") + print(pvlive.deployment(region="gsp")) + print("\nLatest by LLSOA: ") + print(pvlive.deployment(region="llsoa")) + print("\nHistorical by GSP: ") + print(pvlive.deployment(region="gsp", include_history=True)) + print("\nHistorical by GSP and system size: ") + print(pvlive.deployment(region="gsp", include_history=True, by_system_size=True)) + print("\nLatest by GSP, using previous release: ") + print(pvlive.deployment(region="gsp", release=1)) + print("\nLatest by GSP, using specific release (20230404): ") + print(pvlive.deployment(region="gsp", release="20230404")) + if __name__ == "__main__": main() From a9fdb6ce6d04ab07aaa4ffbab84aa78cfd24b4de Mon Sep 17 00:00:00 2001 From: Jamie Taylor Date: Thu, 22 Feb 2024 15:39:34 +0000 Subject: [PATCH 3/3] update README and docs --- README.md | 8 +- docs/build/doctrees/environment.pickle | Bin 196151 -> 48114 bytes docs/build/doctrees/index.doctree | Bin 5052 -> 4990 bytes docs/build/doctrees/modules.doctree | Bin 110715 -> 130608 bytes docs/build/html/.buildinfo | 2 +- docs/build/html/_modules/index.html | 18 +- .../html/_modules/pvlive_api/pvlive.html | 235 +++++++++++------- .../_sphinx_javascript_frameworks_compat.js | 17 +- docs/build/html/_static/basic.css | 55 ++-- docs/build/html/_static/css/theme.css | 2 +- docs/build/html/_static/doctools.js | 132 +++++++++- .../html/_static/documentation_options.js | 5 +- docs/build/html/_static/language_data.js | 2 +- docs/build/html/_static/pygments.css | 1 - docs/build/html/_static/searchtools.js | 109 +++----- docs/build/html/genindex.html | 20 +- docs/build/html/index.html | 24 +- docs/build/html/modules.html | 87 ++++--- docs/build/html/objects.inv | 3 +- docs/build/html/py-modindex.html | 18 +- docs/build/html/search.html | 18 +- docs/build/html/searchindex.js | 2 +- pvlive_api/pvlive.py | 4 +- 23 files changed, 460 insertions(+), 302 deletions(-) diff --git a/README.md b/README.md index 179687d..2a2f9ea 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,12 @@ These methods include the following optional parameters: |`period`|Set the desired temporal resolution (in minutes) for PV outturn estimates. Options are 30 (default) or 5.| |`dataframe`|Set `dataframe=True` and the results will be returned as a Pandas DataFrame object which is generally much easier to work with. The columns of the DataFrame will be _pes_id_ or _gsp_id_, _datetime_gmt_, _generation_mw_, plus any extra fields specified.| +There is also a method for extracting PV deployment (a.k.a capacity) data: +|Method|Description|Docs Link| +|------|-----------|---------| +|`PVLive.deployment(region="gsp", include_history=False, by_system_size=False, release=0)`|Download PV deployment datasets from the API.|[🔗](https://sheffieldsolar.github.io/PV_Live-API/build/html/modules.html#pvlive_api.pvlive.PVLive.deployment)| + + ## Code Examples See [pvlive_api_demo.py](https://github.com/SheffieldSolar/PV_Live-API/blob/master/pvlive_api_demo.py) for more example usage. @@ -146,7 +152,7 @@ There is also a Docker Image hosted on Docker Hub which can be used to download Sheffield Solar will endeavour to update this library in sync with the [PV_Live API](https://www.solar.sheffield.ac.uk/pvlive/api/ "PV_Live API webpage") and ensure the latest version of this library always supports the latest version of the PV_Live API, but cannot guarantee this. To make sure you are forewarned of upcoming changes to the API, you should email [solar@sheffield.ac.uk](mailto:solar@sheffield.ac.uk?subject=PV_Live%20API%20email%20updates "Email Sheffield Solar") and request to be added to the PV_Live user mailing list. To upgrade the code: -* Run `pip install --upgrade git+https://github.com/SheffieldSolar/PV_Live-API` +* Run `pip install --upgrade pvlive-api` ## Notes on PV_Live GB national update cycle diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 471aee3a9ccda3efa3087a77c9f3e920e020f2fa..cb21d6b5a171615164e864e268d76b23a992be19 100644 GIT binary patch delta 13743 zcmb_D33MFAmG06lS(kO+t&t_o$nsdSjlp(gFgUPAjBH|K0!Fl3Gd=1akGk8_J+_6O z7`%@q3mGuk9^4!@Ag?(R5{`weI6?x;hG6Fo#*|9}0vs@n7KRs8yYNbyZYcm3prC7&t2oLgrNKi<<7(Za@c6G0%=hjwp#tI*2gVZI@R(_0vyqe7Yj6#p6=gR5TT!Dz+seQbLMsQNm`%$^<@P zZ6vpItF4pdDQ>`;DOkk~S&tR8!|&G$2Ga>5P29 zT2``-o3XZ*B)FTbFO}@z+O3+>dh3$X?=4#)52gzwb$@2;QyF;`pgU#_mi4Aq%0c-! zb`8s`bd4B^2vb@l35+0aBlEWaG+NOMK>I4{+01qF`SNk= za7E7uol`3-lX4vXnS!P>HO^+(;&{263MO4`N>h4VG$mmop+qJnSp9M9zbhKr83rS% z>j}v)gacwiRn$oo0MO-^c3q5eO_wJOQ;>8eu1z{}V_kYe^K>mU6Ur1W*^~f08W#Z% zvVUkPis$Ik&CtHJ^b^nySGKdI9G33{fZ58X6k}vcG-W~Bmyn`DR7=2{ORj>BsL3hN z0wSecnQ=qdFC~=dwA)pIU12dSCBOukhSTLqLrMssF*S$Hm=Y7_zN7}6vZ+>GRR=Ow zwGG-ws(5b9I$5=*w~<@2B!&&rTPEqr3Bi=5Daj-0SfkZlUEemC1*@Q7V$zhgL`EKh z@$J=3>$|e!RdgIs#T7%A7>GlG4TUv*I)VDk$U&I>V0F*6E(;8|5k?*|F~66)Qi?XI zL|DHgBH9_&KuVc_w`&prCG4^~YMOeeII9_78tM*Ao7n)YTfSAk4cNH4rgM91yOTOq`&>#rBK7T)8mRMC~8DH2+BNesdderbhw@k%i00K z(2|L;ge-tP9Jfx?EobXvJc3t(7fGriiHWd`5!!lul2_|M~`f-f#`E? zg4oyA^Ftm46oRc9iRZM2b_1GVV!OG%ru`JXMhfYy zk20Oj1+HN@+_6DVFg|W|HMEeqF>7N(XOoAS3DJ;}i8x)nr8o4fy9_*7Q)4k}0PeC&a{qp7?~aY3u=rUqJ(K|8nY^!eGsOHn;W6s+KeH4 zZ*$v)bV4&XoU) z+g1;K{cVW;^0wB1>e`ung&d+Nm$@a}0wEu6L!6&&>wxyPHWc_T+S;KlZ|{P3MY|8Q zIo93=ZH%_Jw0Cc1+4&#@T&OBcGn<{O!-5hKM3V(>szsI`mW3ghftfEHv)*YBa=Waq zj*Hh*oK;~#jK{(E0k5!s4W*tsE`kOKa9D!q#{jVWxUGW+?jGxC?V`Z-VO>89 zwW`kMjyY;02m|3aIVn&R!V(&Y%~@t=H{d$b8GyFAYa1t7a#tU;hr9aPB*MysDv)4Y zlBKvVu>25{tk=7SJKXV_-1y!J0o{KLAUgRjz_W?>K`ZjhH@VPtIcUSwbWnH1$jDtW zcie-G6|8j7dW9bZMDOs(TvPXQXg}7y8d|OUJZK;4UIFdt?zKf9lSg1#<-YbnF1k_H z(eykK7^PCZ59~g!TTfOsJE?$muu2soCo3xt`Pv}b9P@QR`+^T;|0CZ3v?V=#&<1<3 zXIoE?qYbcq4V(pvUT_3uO4qP*qt)kUdX@v^KlThm`_mq*6^fVlLmOP)32kUOTAseV zn-woDs;Fym2`pez(zU<9^*hUvgZGxB_WF9U-QGJ0?JWKMNN=!> zT1agc7v?BszlcHhnDtIC#;=OL)=p+ec~E<$X;clwz+=`WeccyPkcKRXIju`zn+nAH zY+c%%9StWzwNrxO?!q9>TPOOun<$c{Zb9u<4s+JKeZGQIpf-$p^9X7!iDuigGG zXusy~h4yWK545#`c923a&<)z%PJd4Y`uZr!X4IvToPyeVI$xi$r@=R1QO^Ys(Z2?I zTj@31v{hBwMS!8xE0zP9wSz$dX!Z?m z?kmG>TDlY{vF+F4j6Yq(%A9nGE7d!#YgYDf#F|~XjVrdkv2q>!E({KH1=hOYs*<)* zPCkG1f~VubjU4xa_2{Z+xh_i_>Kb+tUAFlL$v0PDt3D7LD_F9GzTNTqvGyIT2;@mj3_*Q5WBqKXlUt8NT-;KI zdr10xd|8KZ1{4Y_!9Vw6!MJL|Si4Gq(hcf20cYNsOqVKZIG&71uy?o-h{X-O_nE7HX@37DDKJ=UtVW7j6rC8jt@x7aTF z~25-WhxMg-3LGAx!6&70PY76cS(ruppDGmWDq8H0y<+)Lt{*cv4`MkUA%T< zDj9nU`)z2F6G^B#GR1y&ctfpa0BV6&Vz~_u}+URFX(%~{>lwx-DwowV*HcXDG>)#ty^7#lEuk{sLKw<*9%gJGIk1}7uD$-$Xy9Yo~B{f!ty0d)p~CH z{xgw19!A!60&P@$oEyTJgaTX`e zYQ-Lvr1BivANz<(Sv1UD1H5>Z@&a9J>_ztY3VoEtUS_YaF!#p*x2XHaegGp(IJ*`I zcrm(M zc^COB(p+fQ9U&j*w%OMlA-<+c%tCiMz^`)ArV)Ap;--Wq!qT43}w`hetxX%#9Bm#kAVVnSkF zX-G4$9f3*-`-;HPd{&b-(;>}D8D=;_m`u;dvnh2t9y}!N8dN9;hD9??VmU3;V z6rOE!UGva&MPJ$yF)DA|;b)5@Sm~1(KSDTNSs4 z_6VyG&!ebZ9H2^BG~gB>Nfnoq*sau5ZcS#TOrUy2ak6RtbZu5{iXFO|lv?eDbSJg>*4vAY%)6lkTS0q9sfGEO5V#qebk{#y)*F;jP1umo<9;-eJ=vIM!-VGl%Tcf8csrydZz{ zg4jT*%YOR~QqFr}2&_6?CLIjJ0Y170#kBc)(%R*PDnh8zXi}wjgA54BHP}NksZM#g zDm@br>XS<71tmAZBi4)%6|5@%IQRiKwcJ+OvFXfNzLTc4;ID5mi07vesfmRF@p^l@+;9!Mt86+h{ zI07$%!Um48k$CJ{WOX+-*I_db&8ITAWG3L~qZF*h*#%bU(<`%Yu<`gLfcbNCQ*?5A zDO)UmcJz`5eX(;09@`6@XX0ciD|XOxWqv#C;ud8%ju=Vi7W>qFq??=z{^?ONLT)Rv`;U>3z3YCmqSVxvEb;k#<<{j_UNnF5e$v5} z4DwgtS-Ab550D!=q6uw^hfOZe4i)%|B{-K*qRIFUEve6sKS*BSO5j)$gR$LxoP4PS zZZQwS%lwazlSZyMqD_g4dgKHNa6bE&e@|NKqP`hJibsQN1W)W{=L09mo18uW5UFg< zg;TgkiA#9I!;kP|nkvnchenZ{DneWwgiGG5*L#a)(zCk+e=N}=JsX-q0YjEZgGc?R`~)vTm|z9UQsEr zU=$n?&w2em(KpB=_{h#g64wVjw7WAtcU3pa7b{KYDko#Eq;$QrgBQkinyGjk4RB|q3Ydl1`MiuL`M;S zkP&33P%()7Bvb~fJ2B|9%|}Q}*P?2iaj?&>vLAQ^c3mH&%0EwyIUc<_T%fm>4^&)3 zDqnHI71ssB#{S^s4QJ6DxNtI|@>$Xzq3?&2R&)}t(qMlh5cq_Ze!mxCYX15$Jl_*4VpkHMQ7zb9u9{=l9*w{*=24GV29 z&pIkqGiyNpfUUkt+KLkr@@fD3zmeY59`>?_pMuk3enNsc!49~C9)H3QIjG43Dx8Xu zXt!_D&_Rg4c-+uLU(WWaz!8d9HIus6!r8gl#M?(-C1rNoX;Lv9_3e};us}N1C(^b|;Kghn{qoBp< zG5P0g5yX?DdEvRzTqs2vq#T*mIkq>*`@w3^^34F1{q@d3PF66EA_oYsWdY-gp{S5| z;4IJ$h=XW?0Y_vslDVejntE;-Dc5ZFB_VrBC}cLnpN&%i{s5#m6h>4_f*Qaw;l_!F zkH_*QxELe2phX#h&$T2!e5qCLGHuX>H=sV3ZefWodA??x@W=+0gSVX4g6IqgofR&wTuIaZQYP>lM5<;Atg>8r+kuE%xwm!J%uQE&KZC$na7piflkbvVZk5 z>40ls8dosqo!O0-+TRpUT&G7K>Iw;d%B2>BvtxI7g zs)Suz8bs~r6qAZ^1t1F%)b98^X%4vVFftSv|W?9Tz+hsep8>^@_ zQKyZB;hRDxEn(__9xS)Rm=HqWf_-q#KH*A@mKe-{^NWiQtSz#n9nE6WKC?c^D-W_$ zQm!?OxGOPsJ6+@aSzJesc00dht>?Q6+nxY3|GjiDbwi-f*YGo_d6+cHQ0sZYPQ^bPbbB)z-K8B zo=uaxHo-Bc5kBh6=^Z9Roy z2pR_1Vq*8WBcz`)DGM z#~l%m2dJqmh?Z17GqZFpRLmYz$50HIAr(NliU?4s`(ax=$PWxKsyVAzFewO>;p1HY z5F}2=PO-jswn16BEt~~rj`xy&_*NY~e`Lnz^~uoHx^DxY*9C6sn?)alub#tfyLNV- z936(C=rB=Uxve0sGYG>M;EsTf2O(&{#~gm&R@Gd$)>D@_`;i5c?V3l)ng)70;Yr@Q zWcbE0b+^n5kHP^)1)Rmg##=zl_MQJg_LVsuO2mHYa}a9yr^&@jAvD4Vq)|nRM+{qk znrthEZ#)%^f=rYlt5M9!^D7@Cn~N5wIS(|qa3o^d&pky>{YA;zK=yam(f=)-AO0e# zE?AsCuK9EJ+s~5YMUa>hl#Lth`sc|u_^dyIOx*P(dYxncOjs{nQhr#rC~LI!iEif}h(@K0#XH5@J%CKmRTA z+xCLCQQi)|OFDWVfb+mn-)Ikh{pBG zze`%#+eM>W>?hzYMaM23y&TYVF*Ny`Ur%y_Z#a&(4HBqx)e(turC#w9fFs(c|{%cS)T{c{wrqT>!3ffJIZlk8T{u?}v&w z&!AK7v%yda7g~#>j_88$Us2$@Y;mtMyp9X0_U89UvmeQXbS`v<7h1?ib|)A5ynX0B z(lJ1xALl~PA+);&0X8x4-Ib^-4)zzg(3kDk-Xp$I3jY!p`dS`5{TQ5ne@G=BI?08; zkp~cknoIToe2WYHmwn#*q^pb~`~?^Kl|BAG>7?2X{e}w_65ywpi7CUZqnCA7GV60c ziDm?gNoX6+fcqasb(p@AgeIUb2}k@nOn6anruehHDX_|5R#vpz6$%O*kNPL4+4ob6 vXd)jz8~PpiN=NCeBxRj34zxvYFBt3XF6@FuBIcyM`D#*MY-Wt)MDYIs0`i#% literal 196151 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 EKO=pKNB{r; diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 7eaa244afaec9f9bcec8e35563377723140dd96a..4c2bc78b6c426e8722dba1015e1a7820596c0fa2 100644 GIT binary patch delta 29 lcmdm^{!fjifpu!}Mixn)$$>oKn>X>yW@L=s?8leK3ILq{38er4 delta 93 zcmeyTwnv?%fpzM}jVzKpCOsl0MTvREIf*5i`FZgLMfvGPsl~-pYNu%Qu$JVPB<4)< qX6WI9sYy)%a!V)6@`Q8su;rJQ6qJ@s@!MR&GnkdXSMv9Ze?PBgdaCL?>YRU7SDiZb(7@Y=&slN~{^zf2)=TB;sfm2C zSgjS^X2)MqtQFdGZnf2UytDJ+&V!v%e`OF zDp#5lqW)0REwswDYEZp2P#P=^9qo*kR{8_2a;xGhKlwwq*NW{55XK@N$>Yk?CXijg-3r1VkZR_ZTe>Ck{ZQol-I4E`{NehE3iNy~UoUsU{%DwmK;ycq zlPt)ET#)gw%?bW7kgR4SStYH|Ye4*RTA}@1M=ohi*wT$QEnTi^By1BfMwmWVi}oEX zSNpD5@os6sK%Y4$bml6(b5ti%dx_ysQpf$8%4V`7m0nRgEuHCCcopVQ!@$Nl{y@1} zbWg?YJ;^QoA@Kc1nIY7uzr3C=H#+{yxGlWei5o-d;nLutRws`fd>9lUIPmYaK&P;^ zDgJSyK0k?&1q@VYo!X3v-qwRlK(N3W{OfOU?woIxYE`EUxYd}+7hGqi)^J)S*AY0!{OZG_|VMarU z@n3N(jv>zB{Cov;cP$%HCR*&<^-Za;iF{$AeS9BRSkMEdzv2V!CV#Eoh=M_1RrOH{ zkjvjp5t1E47YddB4V6f;zxaay)$K;P<6knDFIQT%NsrpY@`hpV zCHrZO)j}b5q;i}IN#BS>A@z9m+*??U&32+M%fDojEM0ObZ5uE zFdTTroG#$PG?oi2ILBWO?`rD1f_%j~2VThFmt3<9uPLo|L!DmxdCt;k!)4QoNgSq~ z>zut~*u$q_qA}^bsWo2*0VeLK<2ziwazs8jP%gBNLg7OIa$`=jS;?Jn8|9h#NoTrN ztH2M38*O(dvxrfc>#Sp3?Ct((%jIsR(i9q^Km@2=q+m%lM?e^NuH zpF)+rJCMQjb~);=0t*}mCuRiwHAtUz9sBO8+SFC_uBeKfL%F(@4u zmk>7j@@vTKZ>2E10-5EUu0RTDO#UXx*}v!S_(Ze?n^5Us8>G(C4@k{}BFRHhLaY8`7`0tA$oOh8s&J zB?Is&B>h4P>3W>>*HqHpPs2Bf^+^cvPb3lV3HUh)BDjFw=T$1p0C~AE;G1=~S_I6^ zor1}*(p6&ZVH2zlK;cl{6-y<0m^@GQEVjy0tii0U+VPjx=VA2=NC3ja@Fakg6=~%g zvu+F5xPXwq3d%I=ZlOE_t5J`_I?ntgf9LG@8)9gIBlY|w2jxQuaf8U+h_@8}iO$%( zzcOh_GXtx>xQtYQMPC3QZU~I6R(BiuR;{6E-d}QEU}@JWn!k!9>@TUsEp0DXhp+(~ zOFKXkv5{`2KUl7^l~4ufm+TEh+N+3kn52fdJ(F)&TDcSXO54@N^UrOz>-Acrm21xB z8?86AYq-|>C>p_Cs?@fF<8$a@Bi^UrpZ2u(S=C*(2J@3(UZT!Nm}H~6hYg7;QtIG) z=txykcG6lss0vJeU1c%>p591P`8#MLh8zN)1Qi>rc`HqY!Y4sR!>6^no`r&kfQSUj z0G(FIqKZ{LMRJn_QQjt~ra;uP+O*fv0BT)ic1nSjw*^}>qtkzbpJLs2M4HNyBZ?^R zBSrD3?h{muT3e3xtC0CUl8mLsy!WEWxU?=2eU(rcqedWmW@YgiIj+JSRiyYlDTRfy zbgZy(K^y0Ik!H)nIj)2jq~#}#4&SAzTn|6T99;|#8617tGHUcEhX+CBZdI1$_&z5M zpMMDfasy2(7nLY|MBpswy{sCy{w_d_2p1&0feNJ3z-%}yD5DwNF&Dw+GCXTM8;R5c3dCg@Tw2vb>F^VqrQu#Nf)1biC#4OK2xg z(X_gN7%pg65Mx{ElQ3t4nQFL<6RuGJ1oD6iSl^mBQFc!jAgZF{uah5h`Dy`{pp};m zF_B8#1XPFfi*jO1dw2LECO*O&9gO=Bso;GGxMLeDut*DUe4++hNBt0LTV)RGPA*+q?TTRA>7gR2A4x8!IC~$+MhxdVQImhsej2W!DjWz za;s$8tqwM(t;&Wbum(vhn|QhjsNE-+T?ExF)%CE_A7(r7iD5ni>}SR5JW)^oVx}{uAH_SOEB@5MjDjoR2XY4dzj{+6DB6rtm(o z(CLiAO4v?keB6;Qx0QK^uZhhw`+!ZbX}5u45wb?B=Cqrx(=6565YB)R4;bYDn^^T) zwdgRz%2y#c0v7s)Yw$BhMZn&16Sha%O$SE_*pu8d;oNu%DnQ&vIbU%w4sEm1MbL;)csw0Z%!I*r-)!6*Zt|^Dq(tRl)bLCvMKv6F2gnxB>nF z^>6Z*I-?50;$zk5HG~x^KgVA$`E}>&rF^s8R5=cpM`Np>uaC4&x|BD?IlZ58np{+c zOAg2eaAfPIu_>u{4BFNwq>p$@;Tc0tZyA2V5jlXz5iii&lAVOwK(7PN^AA0)?o&lo z3uWGU)>~+3Wl{FSd51YpW5nB+(s2lz5TfC|nw1MfGh&|ogjf!AMy0-vuoc84C(k?h zGmCrTTca$HsnlxKojmw6erSRdzM<_lTj-a};~~~*F5j9QKD`}(-#+PVzZT+Z0Rx)* zwvRdNVN-wlAfKvuHv#{_`a-Z&Dg9M0Wrmu30?MmCmTcN+cfwyE=SqtDD?V1+GWe@^ zROK&R@e>S&4?+%qEz&B@q43jRVH_qGRsGa!LSg23kx5K~pFRV{y_4`K%{{rAbdh06 zP{^t+4t^Y(Q&pGDId+2(QnVj`jn+x>6+%HZx?K3D-4Om9R3fL4IIR=gMOn4`MQFQw z?V48;|F#<;xpn~>E1S8bgM!THa_?1>*XG-; zTC+U|n|t#RXo?XS{w8I0L-`qYhLvwQ(1LczePD+s+%v)4GH#?G4!YK*TkinQSa}dDgG)r2y1ho1%34sdqJ$s{b$yn z$>T<_78_rg`x&UJtjzHZZ|&9d5oKM@^jhgHhw;achn9*cQrRzT5MiM?Th749!Pee> zlBo$MUYA(FztT}yPwgmra)JwfPh$punNtJdZ*zZX+p8L$m@F@ zl;lLD_lCk5%>O|C6D`@a$hi1(2WA1k$uyjyGsv#?+9>yk*I=!BC*U8w-$v=ae0=~j za!oB6-9!nFZfrWi@T_QpIV)t#K+=G0e~FR{WD_kZ4)YcKHPIfjAlsia)h2fsfo$J| zstb#3QgC$PGmC70#?%DJ=A=zEm0rS1YA=zt&h{~WfHlNE2BVnVF$%1GjuoX{;g&97 z%{&2?_}0f3L!etfsH=>WpB?5qLqN9%7^N0kV%264}dOwIU#0pVIeV@Gl3kR zpikvsE|)Nio9v#d0r9TEuIGq195Sf5)2m3^$O3v-rF0$vdi$YjKS1x2#A&u7`4V*JeU^D@T+= zN_r;YZ6<3+EGWDcG@xNi9LWeb!RHGtcH#g6CTwn8$fK-*)aU1Wi_ zx21F(0c}q~)qX(RHWJ#fYtDjK)weP|0kCZ+fK9A*DIJB?vZ32ESc9Y6PcfRL&r5WB zGb>7?+X0Dgy{!33jO$NhA=3SRL{X&FXArg*e(xiB(&8brs9D zQ*zywUXW9!azT^S1TrYJk4NI^%W{8%oiC?yK~cqxzC~I`7QA~grTYlH`z}=N2i_4= zxlr~qKb89$(-eD!Ow7h^sS@~{^8=GvI5Vtwm zt1>yCydpb2!(8%SGzpHbgPbkJy6(dt6|2=%odsDBr*sv8tkY1nAIN%f;!IM=edba1 zPNpRQmy1)jG?hNWI%*%0HjduvwXg=CMBdH_>fIXI0FaZ&TUk*WRIiqkNZ|p*R(yP; zb(7z1^$@xqi711Vj49(a;UeixccI-6aoxF|P3~i`ZpdYfkl~)P_YCNt(2>0*~L*T01ROw?T zpx=R>p)vvK4Bm~$L)4fX-(AqymtfBnoeIX)uJQnRZvd|SSIB^uoz7?yTse>=1Y(pR z7f|{xu9n{~IL#nqpu7`GcZtXa@3ivF{|---A|-^4SjhMTaTzX#&rHYS5#j(Q(dbr8e?h+#7L9>UI7NZ1+mJ_hZ1zYl-3!#cXviWD(_9yGOh zR*RndtSa&^p7s6Ar{Q|ihtLz5 z4~ZHIcAO-6vNiNrB966S8JJg364Xx&X<3$xM=ljBZ<@N%d_Li)NnuEc;#A;Z*#$wS zqzaz^;0ZGjMF}eO2iP1yTCVsO+U(DhZ1_u>dSW4z^+~KU;u&QflZ2LxDINE#BoPZ) zt#VI&h^9iBtdQmBpoL&gJ-}vBQXcUwRNNw$7( z{53%Uvfs-#;Qn zCILoJu>qLX!{p3@0+lT7kbQud_0dI36SxfW zLQ**SH5Bj$T0ja=u7j$UfN}>-g#r{o#RgE0(o`s;5L9$Pfn{R~Q1Itaku{Qd_ke;_ zdH|H;tdlYTN(OyDN{UPZilAZxC{NH-C_u>|%X?@l7Pg}U%HCkgvJ^gsX7T}=P8Wc} zh3o^MTmWmIracc6uB;5oN@!7@gwj4oOG}~4r=Y4Ox_p_YLZOSGVuLQv? zIJthS%)Ffcc2X1@mDvn3Pt#N=l%P6hiTQ-z?qI7--sJlBDHSFS}e8h7Xe(^ z9j~L_XMk7lIryUoko*zmoG{$6!uHKs7D4ZGSn~x?1JV?!bUA9XBlcfH0EY-qz@^Ql#)=^}K#zbd4~9@ImMaS4Uda=lf9u5Qzo% zG7giAs#`Z%vz)#X+E(-X{VlkHF}Z1=CN2M7R7()w5=(AsD0BaUS)4L1$LOx~SD2F0 zF5gvb?UHW*dcfJyOx<+^OOJRlx|{s#dv=4+grdzSkFgv~N4$$t><7zXvegS%IU?Dr zr-U zA}uDnHqHhF3UnBE$wgHZ@D4&@HlMf4q532gw?ctHMH&i3HDp2oLz&lSH5tk1Mkie2(@YJ}pL!~Ae5|&WIyeSV3(yq%9P;(G zNLw^t!Wq88_)0F?i!;0cZCg1*pd8H^qPj6TgQ3i14@MCxGum*vp+B3VNozyDMcseb zMu+`y`*eQ1>EgYmICbRk=-~aSFn~bbZO9dg2MQd1pulM4`bNI6bNykcg^Skc=9z3K zim7jcN``qLKF(z767B_$@@vT5?nsL?cf#Pu7U z=v=wlZn>5DodK{r<)*XO4D523Sz40VgAUa&lgW|nw(oaX)N;X^c zKVjjg7+=Xnd$I5bp=~P*50s->cvLqg3pbRx>2QBcBkb@fk#xJyrD)aK?rXtLr8A0m z!nye>oBH34>6~lqmU#S^?_7M(_TsaVHj`~$agUEP{*sIK z;vRnhZCklVpd`&bqB=6UhoQ`U3uZc@s-tAn9p=3$de$9=ZVxl+pO-$rk{R`Jq0cg- z{yD5@`pV?cU1Fb4_)G9TRMG0Sx`ij37+RyatZ5}yN?Vf*GEU!j9-LZaZjDzjvE3$I z<7>hF^}&+JvNo?7S#Dw3?fpYq1+y!gS`jxszgsC|4ZCx%FY5=NyioR^ZB| zU^*$zr{ZcPQm8eGu=2n!dn&s{$Vz_4UBhsH6`nE;;RzYs&sl@j2&e`}x!ZHqrX_>P zJPez7;2@E_cI!X3i>YnbS)@14bI`YEEsLYx6gY`o%lC(bCM7NpFvTjP##kml5Nmy- zP>H=X_^=-F_}OCGid4v;I)2fBg=r`L9XCU^9^44nbt#jM1O&ElxQ%P!mO$CdcinN9 zSW*oP#k&nzffOcMzXVTls%H51na_7()@q+Zbm``r!Jg0+sG>bkqG+)|X&PHRg_s*A)um$U|2icRm=I zm&q8Do!R>d7;*h2yD;fuX}|8(TLgpA6V;L3C)kIDt%G!a9e= z0t0euHpqoB25C(KoEbP&gNsF^If-xK)aKWPq_Q#%A>t08kfMY_yaOnJF@NqRc$LSs zE1ZSY>iEu|uQR3%W!FGW?%sX!D z4%lEg$mJ)PE8QLR;r>3TNs6;Rs&R#dFItP_FK0KO`tjCScu2cZ?)c-GdXl-}U0}{a zMR+AmzA@{z)Wg<$vYH2%T3#;WudkmNufTmn<6t}EaAPo@zJ?2*(XH_}xCj>RB7)x> z@!JmgZ72MO7Yw6J-Z!xS!1ewH{`Fx}EfU@pJ1hhx=-nj~idLgmM>;jj(+OUUAZ3fLkx{-iH^`F%>37fggYuF-wtY7Q z!56rL+VL&|DIj}?+bk&GhpKS7Qqeutc@+Ds4S3H+9g$E;UZ2)Wk|S{w!)T95j^u?7 zJtjH2Zx}=r;aZY2c4bFWsw2ol^is`%bQ=sW-K0PYRLwI54$1G~ka!K4k~%xlfjv_S zq`g5?3!MTWMk&Mt1Wwb*N1FVc3^~ATZlMe+wlQ~b) ztxy%<`0LR^=K+oB(I>NX)X-PVy~jc@awQlDC`?a zHq@!Jwh+6xd6G`C&eL6*%-X>oUlEXMQ?H!&)@(XN3gK02w_GAJRET88K^I)*x2@3nhIsxf{JF_eM#%(kUZHMdh9S!AJckm1`cB* zs`)t4m839aHwr3|BvhEuQ-W?Rd)JTC)Tks>Mw!g#eeR^GP_Qeg*qG+)X)2Uynl*<> zP(#hJZ{dJdp{ZroocZ+412mO%&FMgCgEcm)ejCjerD}l!Hit={qNz}aNi!hYuhLX3 zWYG_k(&_R(L{sbHFew*R?`IYBtmkk2P2cs$w4l^+_0K}p7+RX&KmLlQLivZFVq@-q zOH-jtL{QNNy&!7J5Hbs^yph=0e2D&tmL(gW%zSAlX)viynBE_Dm?(qe_@@J0bnxd``x6-WVRha#Rg#B zPg9`)CW9>hlcr)}I~u?wrtkVgnobuG!-ebv#Plb9*Ne1(6rg+!s#*fdcWEjVpa?29 zfU<03*CVK)q612%^j+tZ#JdNS9@BSi0Jfs>4&)0_27T`)MJ547P_Y4&>u4$zpk$Ec zAWek=6hTD?l%(`s_tSK`02EHX4}h`&>AM=Vv=q8jp{gaiJVaBW&_z(OL6^7DR45A( zR5WzSn!f9uB>ArKrRVfrPqBW=Fk{J}@(+_TlK>;A*Z|C@Xet!IWRT?xG!+Z;(EuhT zeb?7%YF)q#7qu&xv8^Q1cZJ*Q-i^44fa$xu*FkV@urK>6bHXnB-~r?AXDnaWvU92V zgsscPme~82uj}8TlVcERUSPj~6op)17gUTYTaGGM-l{Gm$#ku;RU*R~qt?UQl~G~l z)%#bGlGrHBW=y%6rb2-N)h#Q7LuX3g+(Xi`?VCl*)@AG~^L{~@l+2>9YynDS>oNk= zqGaom@j!{$xrv1*hTe&6T^yuYsN^28=?kbtXY0B}Uc@QmR>RXy za2~SRu0Z}Ih&IkUvkyYw>&uZ=^~rz4E95EnFES33i>muLS#x>)Ikc@FB6P}L{bZY9z;0drRVA1p6qPs z5&}6KsAND6eB6KJcvYlTnnRHv<7&oXa#0mIyzhVsWXS*ZYG~UEIRZ6l$Pv|&2{{a9 z76mz?bamtyfJne%fE$sx)T5cYNuWlQUY}7T+I%`{Y)P>jYt(oNW&g|6aRLF}#PkH+ zrKdW>$C(g7CVUbZ7v$G)HvL4T#blR8d=lQ@VcaDb?Zx|_gto1`KTwh8{ZS2>yx&k} z5wrhA6rS!gr&F|T?K5Xj_P>Y@k}XLY6hF<>5OWE9oXI7EpeJZ565;fINF!gMn~ zH${KeW`0&>|BI+0**p|GpJtkfK{`IpWak8=pN_Oe^Cc|&6yqzoXfGE2Ahc~|;em2A z3yVjOpYcN6Gx#Edn=cp$O^_N@FJG=6f2@4K{W$9onT#eiD;-0z$5*v;>66N<0Cfc#4C+o`4X4fIGMB zvWJNtJH$AlIaY+c0EE2Nq6$ku$jXJ=I{tqoAdDq-W!@KY%x)79cGLY;-bZIP0bzu3 zYmd7SjL~BP(DoY|V{+3h0ipM^Jfj%PK&ZI&7QtaOB0n9p|&3v*YgG(d~cv&(KJ|iTRl}W{VA_HMaQDWg{7zDx*^K8vP_&X6{^{uvy83;cf zX^hsKKwsp5jhFEZgi+?sKnB7uSc{aLfzW#qlk;_%eUPii`zACI1QGX|b#Pg^czKv; zumnj3jmZYJM1y~g-2~2vi3YuYg+DB6F6cZh!Ctw%}*p4l#zwO+m|81Alv&lCK&X#LSQ0`4e&0;Pv>6% zf1KdcHu$tq$pj~g`T3k%bsMwucKHM^sh_}vl{rXQIl(_ph~$4^OPwB53i|C>lcTY$ zfpCcnTt(TM&tdLGNGTWuVZ%FXzH)@6d>C_fV2Y5V&UKFX9^Cphi2~m%+ zwR}rVQa-5WSQ}QQ;@SJuN8x;W0{Sd@R+=e+->#r3zqEgH>Yk?CXijl6Nh%6UX?`IYBtOvyYCM7#T3rZcrZ$MScN!*)hDwKZ+DmLc+7)^yT5kW;8^nzdx z^BgV`viEM1xZ2a1rf`f(4->a{vQEk{am%3Z-z7yRkz7!*ftTlKDipkAkmbuX6${(Z z;3Xj`**9n^UBC(#u`5`ytt3v~hwsJSwK!3TpS&Lk-{Z|LBMOA?Jwq>}<^o+iji5ug z&D%Hr=p6Q+_s4KYg}(yc*$b6?v)PFr3R?yoQVa4rY>P9%MpZ578Q=}EB^!Q&2`of( zyk|i~Tv+@N{0r-BA$PH3z?VVC_U9PzIO+{(ietdsV%UP_4l&Dwp@TjKyiXnjF0|*` zm3#|>7Vf;)2_qY{Q^2rN_+88eBzETaYQZ8XcVW-`9?GH% z86k5JD{T?*(T6j?my7dy?5y5lxRw%)09M>!ZPA7B7Pu-C<7RN}!+~34+(OHEe{RC^ zRymV|;<$_pl?(yX_*h+@G{B>N)HYl|GOQN8Dbkugx~r&(9w=hvPBYGui>kAdtVe7g zg0|IIxvTKI>4Uk zvPj2pbMmEgO6<2l6xCFdEe4HCnEm^?{Lxcl_*iW#)$CKx34A8fBF&vJ{ZBFOl8dUQ z?>!EMGn^6qEEKmg{Xj*U=|?qWGJQjt#XBVyC7$jxzn-FPYo9r5PKhnONH^nTOHy3o zM@$XSpZdW`e4NQ8g11m;D)P#CK_H(~^!8*-4^E`g_Qpj_&uduGzC=Y&WwJLB6@5QeN}Ka310{Qh zWEXqmHRDM${~Eu&oF@RnSzo#8-2U2Qt?FVEx6C-z8qWXn@T$@ zURm1Ua%4%_?EhFdO8h9(2z1CL%miuS6k=GfD_dIw>iz9Z-H>d?@mNj8pyvdK)JTdG z9lR~tOJ_*pI)Y^;Tu){nry?R&Q!Wa~aLa{?`uZVopE>F)WKIIc)-(->s4uyY6pSv0 zs4q5~C!)UacOLb1-UxhRQD5xSLPmX!VN_Gy%^$am`PxPX5Met#M|^!tSw3WpEm-Uk z#EqS5HS#%jxp#BYfiNiy58E;3)ZIq826TB~*xo&3Y~Y@0?RJyp1A{D}N^xLvQfU0e|hcU$rvk?CpjM>hhDSu|+W6ZdT z#3Rg}I-7f0j8VM?sT~M3ojFMDdZ=o-zj+r;h1%Z~RBZM)kI_`9Jt{#(+usb=7!B(( zFla}E)EXptb=gsShg`fMwJPf{-7U#b3a*vpF;w5&5kYF#GAd^(NbP6IP9UXyj5BT% zr1ox_3T4lNij6(LpQb|Dv!J5cb6GnhF&~k^#{U(NrvC(V|Gi<+N-s36_O;$XYldoua9A5lzBH)%#h+ zJnI3mzd>qkT2LxT?F~@XauWBSX)2U|2r4$_{xdWc%0vVeZO{w02h4N0$d19&ByqK; zGfm+b6(ZUuEy(8oVV#s=;+8?*A0HzT3)qS-)spj<4ElZzDKZH#f{G2m+)GoT049ShMVg9*?Pvg#cynfh zrqcz)a3T8uG5xtY^QUP6DM0xtsA>r)PtsH0!q5LDoqbW-J->{drPk5>Nyc8$kIgO@#uK46=NOrea|`I-n%oocTkV zP8Wc}h3o^MEWpi~o3?g6UD*g#Ez#vtnhJ$3f{G2gTtQQzEJRSz&?W25nFmPnUE@p7 zH)meY`Y8jzWKj9*NtsE25mamdrb1Jp049Sh571OB%tr&5l$$djp{aENGhEcJV8*tR zIKLC_IeM?gHPra|ok_Wk+V!TY@f9I=UVTD0}K*cyA^uFiZK_={nrd4>HWq$uPH zyP#rL8QaKKra^x|(&<@coLmp{A*0I73;2IQiejTOn_=Z!G!+ULsE#pSp7}kJmTl)O z+U1$XzA|qathtz+Xi!rCPQ@0Z#KAcuMlI;Uxpk4qm*it}A#br`bC&|1_UYIhC>$fV z#IZRJ)a=;Y%f-GI026&|?tnZthhZNcL@gG#0obdk0U z+Z`EB&^;JwO`m5+%ut@7dw_A4TvXjM$$EnBC!uZa9kDYG@k# z9=oK{P$v5cx(Jj{BA$+WM zY^vF(o}l}5q(z!LacJmS#$9qz)%3l`pm2s0bk9L?E7K2Dq?vwHLnhNVlv%tJbW!5z zKJ!e9wyk~UtT{oq#L>+-*^)pu=@LI=YJmRKPtf7xOfC^@kwa6F{qRkh_!7==E>wzc zCaFV4FV1iwv~A@KfpRowi0a1V42ClOIYAd~INi{{-!DTyi|$#wJ(Ed^NzX0Jq++Iy zk29HiD*8`HTBIFO7<`U#mt3?LgD*ncRt6uaNHh4ThD-);DAUV5YtiP?&HSbm{aNGr z*>um^lbI|@*!kO;CSrDuk2Bdh0qM^~+DbNC9BPDxznAfqT(lPp{|#u{%EANXXcivT zjmg3dW%_^5T9in--9MJ1RcpI{3Ei{yLMHPQZt+#7sF+*e<4kT5+^Z(u#)I$S0?hX# zZ6@2i;vWCP_)9L@i+lV4+O~3!uQDb;Nt%1$Q&mSM_b`-MjCl+da8{|EAMy+=#6Qb9jU3b;5_;uQz(OBWv$9v1%j8rdTf`Bl#Fkwj=h-68t_};w zFXU6jdlIqO#V0odTtOO&4R8|wwMyEp2Ma;(gNn|CKhC)8Y z(OgSI@#YBUBpWgf#lsdHvosW3$a6u+2Q8}Lifc^Bhj!hWuNEO?-T_FMauc4rX1=?> zR&C|W)uw|mP^eYfbMP6CGv&&VPX%-9waRmDZgvi`?Ny69WWu5DN*hw}Rp+%+-*Cix z7#piKig3YYv+fqka2&iS60(GTd3G=qalbC_O?yu_z5k1>E5VX#%qbVKCqjoq9=dY4 z^T5X5(XA~S9qtpzO3dNp)0o43I>Nb?!#!)kvEp!>K*;}PQN`$RS0(3bNgj8HBQWG& z*-a~~k%(odWPtfrH|l(m=?1!Hw=n}uvY5(vhHZ3Zfq0GN*D`fZ@@Qhn1{01ecM1;E z=I)pc=Js@kBCr@S{r_Y=D&3#uR-^vA^nQrdev0blB`;@r3FQn*+ z!T2JWYJ@m{w%*)#RYcgHZtlA-(ip8dF)Kq3*sLsmb6=FXGjMa?9o8Z((9L~ZJ$=8q z?~1H9_vNsgz{B*L`-0BXZtjcr8|ky^1a<_#LwXWKr!3ITeJ4Sb>^YnQNRbXco`zc@ zhm(wI3f|`pIh@#jGLgdxf9E-z-UiI`98T=hLgsLqD7y7ZZ5}Udx69&0+}szm)N>xE zPsnJtpvlpOI|~_-l5gm%RGPKCdPiTmTBx*(ZmtA3b=Mm6dhVq$XL>%@oNu<=xm>gS zfE)d_0hie4oA6ihIJfz-!RKfyRJ^O8ViTMEWts{Vn=Ghky1O7j-$KvE z0P`VHM{%70kK`&bz#)>}DHfIA$Lra?Vd_Y8T>d$iQ1etW$Xrm#lKEyWO^wRmVwA}o zIKP>uLK&x^Vq=`UXeyL(nlv}GgL}X9?BILo+OMQ3X4alLl>H`}O1k#+i5hu&JOdWI zj%JHex1e(6Qsv(2CD%zs!>3TiC7KF#7Au1+Cuk}bvgl{A=quXZOjGOPEEX44?`IYF zjM;B~i-VFj5^f>qPy&}V3||+iA$u|QJnYkV(DGA9%%6m+mLuYOX)2W42r4$9^V>8P z%5nr1O`BN{fqsT0ubP0i(;XT5Vh4D7J_PzK>nDAsfCQclDu02LnLGq4sMr9{Khjhv z;K?A%l1s_a-okuz;9+TIr3;E9p`qigqp5WPJY3X10MBOX?aYKbYxN3J=IG;4_)%JT z3Uw}ps+Op8HBE&=9YMtgbq>%}D6zMZ}Q3sdKr z-|@doibB5Q3o1sHMKYQ#yNsG!*eWbGH)K?LIB;*&lX>0X0#X7SJ=qxfWi%Da$jRQ& z(?RVesdV2PJ*I;)_J(;K;$~6;i{8)yn|vL}fKf+iwy5qCRBQ(3GEIdVm@~+7lBQxI zi#9MPq{(~>O{I$gnTx3RuWHi7`h#sHkqai=+3-Gy%f9hkFq>01XbeYDApOv6DwIR-2a&qMsL};ZT@l>*9Bv-@uyHbDy7M{YE|$FF7r+4e zlf2^7s5jUK7s)HQWwGQH??fYmm=l^GC*0f<7q~TQb1Ve$*zQ8U zo-dSJ^T!;wTCCRqyT!e}V1L`w8&K9ozYsA@@6sV&3npaFaNNSnoW3@c)U6W}Oo$sP`EF3M%op_xHA?NX57^FnOs)rHNK@xx5|6~_d= zkCnCveCtE5jA_0_>5RhbO>p6Kes&ff!`Oq*`628^PmzlKK*Pp zKGtHx;xlAD%Lbdq3f3YM=kZ8eG+$GkuU(9<k7W=EnY5OQ_c+rh)Pk2y`Tw|twyN=@2_#dgr9%tDK<>K zqZcy{jWJ3l-DiI_rN6Cx_Fu)Kv@;r6UkxUEc-X1g%ForE(fi@Q+iyQ`0H$v<{9u%L zCvnIaRo2bDaO+1V3DN z`A)}e74$)Nj}b+J6?p+4!S}GM*6q-JJ=x_H+*k#b4D(KWoC!C?y0+jhw#t2Jq&=E9 zfgIZyZ^=b_L5`P0+g8ZI6{O7`yielXSmf6`q9DPw-AE}2^f0l%tsAnpETD1^^`KmT z>6jy-5{H+x>(4` z+q-!mdSSB!)(XEfz{k+5SXL(T@ZE9GM1&6 zla_&M&SV)RmdPWua^YJpxh~XUyemP_%!lzp=DdH#CGf2Wx2I`99LAHoG=W_j4&$+< zB;qh0{>~5M9R%k2VLbL}ArIs2;%_>32k|bhpQw~ixVe12Ji$Lsh*NXCm7WjbeL-t( z6ix`jUR4f(Bs>-uJ+gz>1LNU1wmAS>1-wqVILTi2;LsdAJJo9BbC4*bQfyA*Dh#lj@E*G_axPDv(qs2Oj5*YvFOOyz^|VuYgHmPu?L>YJ z@umnypia(oyvcML?^w{3U)(=Abx#w<$SE&BS9YfkxXt6OT760+V;aBV&ReF!UKSrG z>hqJZHOk+;@wGiHkzfb$lX#DwHJ!=ufAmb(k&G{@Iq)2uo27W(hf)G}+%9RId#Cp98iSc5)8BjevP zpuhz*Ta>B=6`T0C%V;W8{96WD_R>@=WYOZ^Qf{HYfu`0)92^%_?`IYB^!TgimViNx zculZg7+17&c>TSF{&lpVR7m>0P}OqKE74RaWD!(skmUqTg)$LAMH}>je9Y!I(#R6$ zBP4OPr>W5`9#Y+75bv8=C+Ra(5?(Us`(32S|By~_W*-T^bl9P4%mvWZ;=3#LEqz~$RxlBDmDP~YMKfKFd1aIg{ER*I~u?w z-a`LcnobuG!-ebv#PsJD`Z_Hj1t=A$Y6&QBqNz}TBBTFqE~ zfh68Np!7In`8n1}8D=aQ^!*`HWD-yW6&pbLBu#|^lnk=`2~EYqc62~Vx`qCEnobvh z!iDSupe(>G^#4XnOQFlZKvhe0S@{ZbB0-^xpkjkA7tmBF3lUT_bP3~q&F~Tp0p3ZH z?;2k?nI2{=mjPdyW-J+0zMqtt1Q zg*s$w>?`w@!9S3aS@e}HMv0@mMvPj}qr7Xhkb&eo=tIt8$9Rtbn)c@y@5V6zp70ni zhiP_<_o&z*0$8Gt@m?+Opcf(N@|GmSE%fqOFYMU|!D`)B591EDf(*%V2dXphprS2{ z7E{1Z&W;H7K#>c3a&~VPJ;>O!Jy>ar7@zxaa@JF#CfM;=hSw^43D6Mg7G;V$||#%VUhY=zLJZo&fuMb!WmA@z8{KPIYXcv z%^9M)F*$>wOnoHj%MLe-Iy%g zP^SM^cSnh&+x=LIR;}&+C3JQ7Pi8VdG1EEC6cvMie4NQGf~&gafon{n;^wQ$RJapq zGuh_RZH0UM4C61kXfN*Zv(UDcdjv|-+#{+ZlY1D-EXLK{QL^a{b1Fs8y2H@z;fcu` z(gz-S#tC27(@yw^6O-etXkSiDekqeRiW8Gxz)EQ=3&DxW`)-ENPIkNTe_Y*-Cq$$7 z<WIS{uIql;1T-AGJy<@)5nQ{jdn*=K zu1O`?kk@sOK&9w@d1PIVUFj%<#5>6^u&9D7Mlm7Jj@z-7Yh2F`h9Z|5cX?g+k9E`g zuV!5dmUITM>qZ__v$b}(jbLNfbZd*o>$-EuO3dNp)0o2*Bb-|~T;76X1y%4)@}m}2 zj1IRm`J!!otc_jKJ!)IiG=QXB%l(#a)b=pb0d&D7#%sBCagaIflPk-nh)MO?)lQj`Pjg|Mg-%((rt^(yZF9TB#ttGK@yX^hsKm~kNoZ2c>K z6?c@mGjJ96-&l*ZKv!{d_4NHJ?!8&B;{G0X6L^?@6?f2i+Ev`qej|NWowvOV&`f#~ zY~e4^RookPcai-=vK7vxUy+7eBKwC7?g-w`4cR}~mKc%!1Aph)KSqIhp8bP;O3VI1 zs@@YEp2U-$Y)bC^B7Vf!LA~Or*92ts2MQHPmDq9BskgUv9dLv{a|W*p7-XLe43>UH z;&SODJ0I>m*cmMilm^-Q+{O518$>Hz0{>qI|L=hRcOLEdLlA4wC8SVjQ}6Ydx&=eTGiPZ^-e3#{PQ9dN9UTe zJH^c6VYT4ZN3Ol31!+YlogJ=ZZ^ynd=h~v%EWq{Nv$-ZD+J~$qK{02?zI`AmOzK8q z@~|?frA!eHfnGI!ZQ|taja1SRnT!QSdQme_yF@=M{1C_w&U&!1V)Tp~)BvPjpb zRsC;_8-g6|O+ST0|M7r*Q~Hfj@7IBf_Z#p>_kaREF2WxK$alfNnkGCCTV-6TIbOU2 z_!xQ|Iy`2}AxrZqEPV`V|33U7So%$ZrDx$cY4!dxuxO?!{kV7dSPRAv9)kqzbIA4E zNUq7Vd2fZP)Fe~4J8?+;zhtT;LZ(AwRk~;)!x34RCtf8IvJ;Czyb;9fAqKHD=zVS( zmsmb z3qK2OQI@Fpq_*Mnr%=_0+`cm`&7B-KO+haw^NnifQEw@ZpC5r*Jj@Gw%3F>@t|BF} zHnt@%FF{hj~WYrGd7KT5z4_D;}THb@8CyfQOaA;t{bXO&}(5XX2`jW%kX@7 zby%kaA*)%cg!uDqL0wv#ZU*WwCRkrgjp7wAp?Vf-mit3cLFOEHk}a64{($%8c`5xa z=a3RXpeDza_#Be^oie%6hb%UaJZ}#e{>AIy&-wVt2|g{@Jo3`He7TAl?#fkXu2yVU z+;{@BogIHud`^KC^`v%LXOx4SwwOcqXAUy~dQ<0#y6I<{!|V#0@{cUgY>w+NHaYT_ z^B*|U^Dm)yUl;IYo~C7(6NMsr*J7)T6Kzhkbd=BWOG)o0`h-NxEsX6h=-lGRfPH;L z!tvrmd?*XqiOnr8gL-|KTOfHPDCQPinQSE3fqJ!>TkN?F?!K6~ILbwkfU4r3*EE8JDHw8`mkz%3J=|(J@UmE#hsFDR5GQI~C zG7lM&Edc(1MGozU4B5v}GjOBqL&o~c<&d!fKd~W$eIkd9kj`l7VSkv<{l_7*HLQJ$ zrD^#T^IgMc$_~Czjjxl#u(Z6IBWY;@1RmC2p{AK*;47#<#NRiX@#@Qz>PzW0h-R(b zC_pOx2_(J5Ut4H58n9TN6VDI%tK}0k{>~wP1zd~Pf(cZ!<8Oex&FxmX(wvxS)ZkEH zwFpOK@6A`*u+aW^M=ZLmJLInv=Syo1sJ}9}+ylO>;$(8r_Hp<+EWWlI75KKMRV(DC z^M&L1YqR4$0K2gM#+h2JRfQc`<(Gp?{54It(5klQa;M;)&$$jfS&JE^>p65?kf#al zjqoRM9TR(!J6Ud(a%{N(_yuyJ0`5_;2df)yz1C>uD((rl(mA-)A1>u9!PfzQgL|qB zifZLs?WQa=;13kt>GmwNw-(oCKv7TvE{dCjCo3USc)>-9I*<5k*~Jn$w_2#-e6-`Q zY`12{UpWrz`yGF?{$tKG)eBzeJkw zZUS@m*Yb8l9%Sv!`VW!H{(6+535qI#iYg#e$6r&)S7+P#Sr;^3gzrmT*it#S;o@{V z$1l|YGPnhE$R8}!sxu%aXrx@s)nT2hd~2|Tbd4wm8Q?1*9Ju8s`~*ZG5jsvpp>MFYB6Rtx zM*d{*6-;ykx)fMWbruYt74UrgvOQOVKG!y83X$gV zN!a|$W%HP@9!>VR+n6Z3trXFz)y=s)INBT9EVAMe|6KN+f6Y~Da3d*K?Uq6b z?qMmw@ni09pk<~)sC~R$2NG+6J4ovf`sXu?Eg*7!0ZJXuxv<7i$>obhI17z{@rb_xTgEPLx|JD@ zX^;BL-0F!AtY-NuIGlk0f+?2aju~){R<4zAz}0fha5ex_U|KDJRA>V(B5uOwroT~p zT7_F^*kfpICisHaikzlT3i zHD;{Ji$7ZWrAJxeM_Iu~+NEu{sX7fq(z{BRvld{P>R~OSAiDeda4<&6am^nnH(|8u zKyy3>02ZO|U6?f?n9SoGkFTY{hC~y0xZa3=zBmMb{v7|H^xn7d&jhXz?!`ZUy9xfh zh<`4-0RHU4KbMZcpPl$;25w6Cj^UqQz(06zyN9VAJWT!IowFPMe18J|;8qLU#`JJu z#KVOX52v#po9>R44wp`s8f|}#>L#q;*1*l_3{%iG`4dD#S&kcs`h=GQyaBhGo32#? z&tpZ;i#!ZUuhd#xDXFqb8@2XfU~9B+Bt1XcmiXlye;Ba3P-|m807$@Ds8uT50bp)0 zv|l`b98AkQ42E}bp!t^0U4TD){t0&61dl_)qotKFT+cTFu5#jWIDe3P`(ZHD-UID= z1+FQE>l^{m;Zqr|GiGk&pgm7I+v_L5`%b|9&h;|f@>pnY4<_r^q}7E>!lJd|vM}{d z=l_9DmH46?-y9h6eiLd?voL0Rd4E7mG?w_w`M%HcTMpfH2afi9j>cxd0GT)sJ9s{N z()*E>5$~~cB}d-V_;KsOtzh^cfFI??m+;WDMu(rztiwM_(;<3jT!-Fgp%q-uxdy+TS%cq7(;%W)*BXomI9&wqE&j$}QYJl{Aggo*kJRl}=f`I@r5FUX9^3J(S)xFhK zr*3ukjK=xm@AIg;`rdn%d(MBib5GsX|AwWD7B9m8{MC(Gu~a!eZWjubYQbr={AGn| zzB%Jmyw-iKZFjfsXpQ#H@Ey%Slla>8{?w>V8h9K zrD`RpUhFRp6bEl^jTVReey`+}9pxu~@Y-sjSq8#b1WNQBc8(+I@Q0VRI2Qvo8)$m1 z;%WX+E?}~_)E^MM9q{|grHa!!(44gWVcYZSrOBoTO`{A;ON9pVJD4xqjRrh~&;1p9 zhJRXCXx73nlXm{rx--Sgz=u+yh4n9NHT^-)p2mW$;_Bi^aYga0;?m+qf8vUXBhPI( z^~Mp`o+&v;_BxGQy=v{q!5ebdl#V)MmmS=91UPOS;hY|s;WCfc8z9cv`9yhnadti)(m~6#M;U@;9!y4ax(dFyQYZ&fkIJ*{GA^IiQH*CQ$Ph z`2VT!|5o^a+s&(VO$paR zq33|`d!?GW&PLk30u0-q@`V|M#44$V}$8*wP@eLa<%V@6`v<980a(S zgw9;9caG{rYA-STN$R){sca@YQt{m4i=;C>z^gEa8U{8N`TeCz!8zV;?@4ay4}$O4 zOAMh#{l1!As<-?zxh*`?YBz@B-Nk_eUdu)fJ`D;G9B}V11~%(odYN@_)+<&kRteyx zK4s?}YpPneyrN?X#IlY#lNO+sHC3<9Sl1Vwsi~4vE?C!B%XWQSLQeM$g|6|inTAoe zYXNa@FhJZ;Lr3_>@!ISJ!Z0YcGHq3-;&gcS{>4&t?LaUZB7uMIa}esS!}e?$bhn!U z|G3A#UD}We8@Kc0&0F_yg#|rO{ChqgZtz#>jVMs@T~!~&0AT#HC_=Jh=t7~=A5)1W zo3%dxh}x`|TK<+9yHxh76C@MZM+mpy1qE*K7w<`uDs=ZKgo|D-{v8ZPOQEH2r$Gtg z%{PU^K_wXNl%9Ipm0r=VSkI|eoQAdAaq-_>&q(VecL=6PvY%FJO@sou%drrf1PC_^ zd+LlNO0t)d3j{snu8p*B(n;rtPD-RNI*2jf)<5!i07H&Rx$K+j;TW&I|brNI|hDCzq89riz3rzSvmBs#*4fyytf$Z?Zo90Y2qw z`HRQc(0&CBXVM24nnQ05!4$SSqfO9ZIykavlU1u%^A5~y3)bYURcX%DW&!N1O`D`T z$TD0XAk<+HszFQ^{h{MC<%vcOMhzH-Yjp?ay+<8n*FA)q48|SC`7+@6Gx`9WIC0R& zyMYFPG^`c;EeCJFNwhV}X6`U%wZrzdmVZWw_F{50&g-?PL2;4a2a6tc(k<62i(q8~ zzvLPvnD2Ydx;jtwZ{SUj)*UuJPvAgmU1D9Z1N-1OjMx*_o!)E>1Q_32%6r!B)&T$= zD1ra%uo{hW?x<5QP0dbNlhtY&emGojI@?%BjlxV}H6v|TDpk*ptfl<(Z`!@ZgEi8G zwUsGk>z*CfZpmtn^~;166tTAM*#nb&w*1=Q_p=%beBBkXeV`qP&D&C@EB<0jni6~p z9q5&jMs$qw7axN;oW9y{?_rkWBKhWIvO~C&P{7S&DKM`)d8OO%AHMFod2VI_f#twt z0PJ^>zk>G%tdVi)7cN-*we40XRTTGAsIzwmLc}f3M*ZbrcVpmOjG(^~>9f9L-yKz* zx{mIT>d1X3K9Pb9F+rkI3`kGGCHMwkehs<(!xV0pA-9~>Wk?~7%a7Asu4P=}`fL2K>+XY_7Ek7Wu_Vb!3$)FPJ8bpa)RI7ucjx>nid#KmHCiUtsuC#m3Uvbs_ z1^mNIa~;za(yuiud9T@q7mFt(1Mn#%{b&m5T07}~P)WNd;F|>YBxLv*NyL2v{G0?0 zTtN5hDwU-Gvs@T($(mCs0Kn#s!`xKqDzReU0BdR}9LhVeM50EV!>JC%_9hBdm_$`t z{*u}(>=^+GfO8m&1c0(4o?V}IJlq)qLjH0n)2KQ5(iH6BoPgbr*$KWm{RAKvv3cfGCAQ0&SMWjO{HH7OayIJ;f zN9}Uc(Z%ymZ!~MQYTe5zyBTCONrXty6INQew@sSnF3w)7T~jU-@l*FiM}n3h&2-IfMR%asWz1yAk>wiJ&? zZ-k$q&rG!W5mF4&0RG={>H4kBM8Gn8?pbc}Wuy4tGAZARQ`cxLLfE8tC0U&_o+}i18)^ zc&w(WP$nX%{H`hs?=!Il&A)`8yOE}Kb5x@AA%?S{_p)kl`kI0mVxE++l#Lr+hQqSb zx7A0Xycg5*QuCqnp{n5^vzMkqL5ZMZV)KV+DwLfFD%v2^huZ~Adu}|$u-`*f7D)1H zm#eeh$l&5`01MM0hLPzIVs2r5q;C?C5R*aOcarjw5F@CVK#WgQp&%xMEN`Ky7?_R@ zF}TGf9j}jl3GL(qG_4LGh6~ye#F$iqb1;}-m*8-^;^cxQJ3p&tlj$$QBoXGt;bxJt z5dr|oqaI)zZTx7-IhKdehnBxue$3gGJZwNKYa20pOFXH=<7~Med~!~lJD(S>`@~0B zKte$XCvZOr?6G4N*rJ66rl`SoQ6Iv-P&wxd)=(?%3)uu14)GzZ0apGke;D^)UK3# z^A1<7cR&ap>`H9(=V6x>G=e=z?F9ovc=GFR0P%4@6RP|Z>XKVpaJK4i*%usYA1isq zxKr)m0Nbc+XaXCNv~t*|n}FJVg4uac-4b07L;f&3sZWgB>1RJHRxb}cf|}8N%;AG_ zBUS`yL6C&ChBDCU#)0 zQP`r}W{r(m*VXVi#V(g;ExuVd%j^RV%O;&VMg+(jUe#(g9IH{RHX-Z*BO@>x0uH-s z)k?u)hGkbEhyr#XhpX^2Mo+*Qa|6z6nhgub6F9rvIc{Bf94bH6?z8}h~K9+3SXm`S2-@}y@^;dkXwiV;A z?u^RcGO0qjI0zqv9RANpt2BqgPd~*tOfIVWsrynW%p5N=iAnI&KZWA%E8tI>dvZ1D zA}_v4$_k%CA-@65sj5rn9J@gXDcWyej_V}(wy)gbiR=OYQzwK^LM3tviPJi9j+Irr zk3rj=YnKNc0GchnS<&uqIuVj<7n@SS6`!gd6$h>{WnLvMT^atnLxz)gy$!M9fDiCs2R>lH68GyJiejRirsL@SDP6DQDBT{!^SW23x947kI_LAXlxe!Vix(X? zXmtlKDrfS=jUtQ=PUGs$$+{j7KX|PJfngBGFOgJ!4_)|@e%&%?7k(y|4%ZPd4?P$8 zIeY(^Z1K9rvmqeMuIKXAGDO2T?QufMu}poeyuaqijW61D$BWLtL;lN_`1_-D{mPt1 zvP@iX;lysc=~Wxe88~&Eg@9Cyk@Pnx`yk5CaAd7~%YhcOI~zBi4f}z^@SpAFywZ#_ zTJUb#Vc{g#o6R9y2VY8s9oG2x_|4mfho9|uY*3W}#?wv(Pmp0YjokN-hdp3uRPS1|EQ4<1} z3aWT;bp|ZP!+5oWH&}|07+@`>gI41R)g1d)f=rt#v3wA)t&ob*XADK)5+*yNHyQRD zFHVueNO7q-?xA?!Ct^EdCI{~AP1mc9NSn~q3_JHp&g`C2N#7jTOsHy;tvh1zt`zpxXs ztaII8z~+n8srv?0H{UrM6znMj+#letiTfs_?jitPzD^r}jWf`KzKMywAhyl!WBr*7 z>cN(3`?lG;psKQM#t+Q3b>ThArdiyY&s~Rnwnv|ea6#EG4B=To&&E>#>uh7}wM|eFAIn-8i2SP3{})##dtT5%(3WsQW7TN19OE67SM(M+`Yj z=)R$FdhuoCKhcuob^zypU}qNaMW*2lok4cB`!bY!#C-{C)qOeqqxah=-Ip&2U`B3u zC8L`t!O@M4^$gDnaWH3uY#B(#Alpw+a)E53CBAe)so4^(;yE2+Ii+B!RASTO)K#34gU$0)FNk`<+0VP6NZ7C$?c z_}0S~L!h%z0f~mafPiizFiP!$v~>^J`P~AY9ROXpav)}MVIeV@ivu}6K|hj%xm?05 zZlZIlF^KnU?0SxP!y$u;JMANFBMazVnbLU#=v@z0djWb|5~taU?57_0E@PSk+}lX3 z5N}rZ$gqa$!KB?Y&~vZ`2faOvT=Hn7c-1pmQ5y92NYLwSc`T8x+h#&|n~f-kl$2dK zK1K7mqggwG?B;IaEw2F$+kZ%&$f5sW5i@8bm#G(bMmGlB?#GVj;I>RMs6gAhNxR4b zZSP3wI0D)}1XX(hZJS7F!>(BXOVzh9Jpr(7CV)+BeJLG<)v}@6pJEM;ZhydNl0Gk2 zsx4NOMz_5Z-MZP3lNi^V#zLg~>xiOAsZS-+eJyLJ%qh~{6d;b+_)Nw*UVx+A5wV?` zc_Z%p?DS&L?N`{@9Nh*uTZ+s4J8217uAZNd5(zDh{tR$u-yb}=krS8`K!<&oDRCzL!6V`=IddCi5&C{m0&_=kmr;L zLOmh%k29x7rNJ&f+7X-rca*%st%BytDU>I#pbqUj7)tlU}o)UQ3{3?>_4nNX$w zi)2F`9JGi${fcp0s4Qdyh++qM&lqo#M6VtMv$PTSi>&kXvCp8llLuJcbHydbdl?n| zp8Od~2t|AUsZf?IsF+ytvSrj< zjJ#MUsA!hF6vhd{h}qAfBA-kW@7R7B6+PBlOWYBASw^wg4Zv1(ifPiTCi=dR6xl@I zCKnkmr>RgE88g_6k+GjmMx^hFZ=tcgfTq^LRYuN44}fN^zz${p6bCUw zK`|+$@+1`W7%eDuO}YV94F}4X(NrjS5mZdf{XUusWg>!#4lgh}rQijB4i))cl6dFv zf>gSImv^yF$}k{i(D&y^kx6(FR7~LIt27k~UNXq?Et-mf?P&0_c&GF__!Jt+4`?bK zzzP?!2e7gsehC%_Ei2TbQcnG0DDsjaa?Gay=C`0NLx5RBQ=tGxP%#0RvuP@nkq9a} zz+{@g>?DbI4lu|>7XY&Z*vd42$)NA&kRp=+BdC}F%#Ab^3SctGGDTA{upJFxmTct< z3s^Yd$I#zAnob80!-ebt#H@+#=EQ-^052qAMScwhd^If~1t=$=sv)4fm8L=gilAZw zC=bw7D5DTmbU?{8WBCk8ymLV5a>nwz+_PQEu_pOzz8ZP z08^oHA_@@p5wkA zw^RAipUnFW`8JyMik8u0hfMFD;k+t#yS|?_pkVd~NoAV4URzSg6(SobC)b4wz90Al zs5Akw&yk{#9wn&g``_^?LBC2QTOkFSNEInM?Wt94m^p=_|1;bSn3$}5v;j-IsEx9etHso3UcoI!9n&bTJA|~ zYmLtK=r$I#DblV;68RIAia=q0r{f0VQOL^_j~9tVrDJ;ShUMi7NpdwV~U+)#ZtaF43wrIA6En3ic*5N0Y=|7#1qui>l}PSuR7t{E^ry&~j~Qkr=|sv}d7`J{swR zWamLY6G-qOE`K!V7Cz2|1Or?%(xl|qkh_N>Ez;Zx6!>$-U2;(s1>9LE%w~ON`L@0c z#f?xPP?3fLQ4PhRKunnzWHlSexdes-8JEy>;0qWJe9_G(e5^o0lz6(&JdmPo^es$g zm+CXu2Iu`@qDqt-vQk0}WgfE9>In(ftQVq?&QE zB`GfPZ%hq%n4zVO#K&q|se>btB=WQsdRsJK!WmXUB?{8IafZ{OZ6jw0l%qLAR5x+X z5L0HN3!?}-Iofc#q5q;+hQ3cdebz>YE8vZW_E^KgOx`$kXk_ruXWS(h?Z)79 z(6*7m2P)DGKB}QOgO4e*GqYKQDvUOlZswPz=+79>Z{X*k3YbHD{TO8Bs+OB9;TcR} zcn;sAm@19WcP`k8Bi2RM=uD{sFRd@nZVQ0jDmAPN;(=YBu}Vu4C$OO!TA3_K*!k<2 zCfe*AA7`?20@5Fdw3TeOIMfJ8e;?y3xo9^Q{y}Kl$if5VXcivTO`L_tl)36~Z%iZX z@FqF7T;!yYI6&GoXIT)g>vNVKlmQ@ z;x8g?CfmH?9zSFJB^T|+J$?yo8@WfIB+WgdI*N0Tm@+rcndyY8j*?Axm~W=&S$7z^ zJ0tZ4eqi}v(=#5+-W{gC%*`AVGeo)L zC@!rI^PHG)E3FLa`Ge`CxV9z}epl-S*m>YD1}HfN$T@o5p<&pj#hYkW08hx^6`VEL zjR3~r9%pl=(lBH&nTKI)EXo51iR8Uo|K9CPZQB=+-Z;-e-!51dN8ML~lgPb%e^6*r z;&MMztTJjmKa(Gby}lcu65BlXVL#%&g<{%@RLGz@e$jx1Ngu~RYj8%s7O?9Ola2%g zwh3|_*TTL)*?rruJ0!ML14D6dLslSvfz~gusA+TWI1dJ=`|b=H|qI&>>Dt!u;ER-Swp_l zqnlJJA_MVgm#I`_BI9mTshku+S&}W5r#dN{3M4^UXlYii!NIA6EGvQjc#^R}`8^y^ zZv{J4=QcWqX3DZM9W*u9!Cq1f9{8(gS$WSBpl=z>kLp=1Rtvsi`;%>#h%(x}fPPj+ z4vpel*q1K}Iv{f@mOG&;V74B>8=t`9bu<+!fLBm42}XVgO@#{J6;w3Mg^^oqy&4r+Y4$*n(?FAH`HzVpFl)#;E8j^>LaCWv+rsPt0}6Y6{KOEA1Bl^5_5fmflR4lBB+?4 zONFLFS%{#bp-a}xL3felJI0r;GY8$y`Y8jzWKj8ANSVnQi=bixFdv|)PymxbmQT`D z49rIZn3T*xU!5Qd{Pr@Ql)(#Vvc5Immq;i zu)Y#k@hGW0Q&(%t6to=9^Wi9eoKfpyjqnJt2gqoGS-&JDAst9i(GPCo69x6JCFcPY z{$`Nnbeam~K!Qqa=MM$p=ZXbvB59dgz`P|2;_{ie8HN~%L_zTmHZO^SWK=+6qM(qs zwnRab00zBD6!dK9WS%JKI{2g{3X<$a69tLqdZHi+P7r}q5J!vPoOGg~9==#wgkScs z#c+@0dB$GALssYf4N|gWU@*YcL5Br@pzpa&9aPSu2zgDXgq1eR!3z<)yVOA+XCWo? zl|6_Pn}Y;GDUmU+$fRmCJ!{nmsA%E61LhpdK)f@1+w5aV zY7WqY2vYi9rp^|~agysSnqvhY_Z~U^J<@7294N@~Z;Zp_qAGH@AA`afQV;zGiW?zE zpe7ADqFRbWj+ip@f*eu0I&$=H2m1_gBNFX)&gpvRC+i-&NuWlQUXM{D+I%`{Jd$EJ z#;EbcNj$bUQ^yGexD+bI%pLG?CIpbVX2i@vehudhzZYqdHY+i2xPft(T(leSzX{ql z^8P?Yn)gRF6zBahW#%vOSd@6W&s>tCZDXHVFp0-rm&xdaOZZF;(4TtZF?^iKC5S9F z?~SyTY~jjK_-@8ma?x&_;r-CIkuwC!(VQWwn>c5PDbt(8W6_4w4gExlCXEe!0VN*$ zb|#Y&rv7(K5pAZ9k29INg!@GF|7oPfWGhw-{wIvPL55W6|c)&HQgt^k;153n}r~=sMjtlg$GyN!a;Qpi;~%2Onp$a{|&YiL^!YCFVC1 zjIZRP-B|duplu@y50s->cvLrW79LZk_ld`%MAGekQ;JrN?fwarc+AUWe!?wkOi^v{ zkB>9CMUZGr;D7Kvoc^DPw3%%4$^h_k#$R&LZrtNl(6*6#1WMA}BdVh~_lPMoABo4J zWYZmHCPmM>!_e(v;<4M(7vC~<2Obkd@2N*Ok$3TY98;`lPZE#)WhQGBiO0TzmC{Z$ zf@B>xUIe$*%Xl3c(t2HK=Zlt8c4pvyyUZX~ZF=z90iMnS5^>u66JCTj$W1n!l$#8) z9*WEn|8+ByePTQ6m1R77!YGzsEe)*0f5OTTNwGA*`$FEF?Zci?A_;zy$htmV{4#NdQPW6$R~l2D-5dOu}+(i|DF3RK9^&}F+0qCc3~&o zzmxSPn9?cCeTF=!c5Cc$XMmCI$YhMkO|#r*?iVo`l}LW3xb-6f6Ve@J#Qk;u?M;9;2K%zYaCVY$tM&eL+6Mf;8PS(e*O0L?}~GwDeXb2Ue~ z%{~vJWX^3S*$O8+=cVD6$ZaMg3&Yh{Ol~uF_#d0w%)JIRj=#It;-|j_?%e~yr|aO; z3HKoT`@8J#A@=ur_V+OR`&|5soi_(L$i@ryY|g1T_32r&G-O+9M=_yZ4if5(^N-^q zZCKb+tJ_RuH?=i6+Lmt&UNQl%%JXJ(n5u08U#?7x&s9%d<21-#MY<>T{mt*5C_@$!O-N$md?nhF&!FQ{l5 z>%+J)rplNwN|^cb-$PYiM3Pr`xU@~ow0vAEW%wF^2Jq9xHHuxV!!q}9@<0@ui|aqZ z!@w*w!f9pQWi7*p7bHj!tg$6`EQHSM9i{Jph{C zCO7&=T2SgT?{}f9;o$f)nhFIkf{F>eEP4_-&{HNNsOa#LDOJE)l6dFv(q*cERlrts zYla*&GU$5;DKZH!f{F>eOwd#)c*!8k)if0Y+tJ`9A-T~FG?flug^Sn`te8}4yTKbS zF5KVZIwR%=Z-2NNil0@A0^zi>Nvfq|-w|}Wm`=VB7>jz3%8oue6n8M=RWzq}Fi&e+ z*77X$u#9WD-+)x=xX6Eqr&JHwYrBT|81!gwu3^3v6vwY&z6U;q*D%$^ue^zQdK>fl zWlU*jum|)5v9yI@hrW!t=h^rcJ$&0#bEa8_cW57V;0W0Y&zG&KY8_6er{RYRyj*YA znyOc4SPfVc^Or=x`ls7wLKFX>v57-h;nvsuuHEtGy_63RwTMpmKB%z2~`dg?J6V8W^ z)gz!7Om$}AU?W=rbvr)D4|( z4`WmRGJUX-krg{EwON5T>54aTV*#;1Al@^3>2}5pf6r_u+^|!b zFi^z(KI#Ha5F-ImgMtn(4wE0g_zov7KhC6h8LJ4D*nl&^-@@9F03i=QjPO9)GsX>m z3M>!y7M6o)e~_e86iTDLkZJH?YJf;!onJvr~Y2g%NSWoRbW20LM-EeNEZb)vrJ#_>!Kq?-tY&ZT>S1o*G8qRBj=focFx7u~_{DahS{Aarhyf^e#!`OHB$A#)Nr&Q2TR zL=cYLQ3{8dm>?WBuP1_V@OK`B^K#&x2jQ?!r#c8{2Zo>29Q#(Y5S&e9qzAUsbpXy6 zl+8ZISeG#(5R!A;tJ~t$^g*=FR(Nl`Q!iD6IGqc2?qGxYRNbC|pq|NUwG7caSJ~x; z!yPpecW9?t^@I*T;nTyyVn( zpBRU7D`Yh|D4Dgac-`^rdCgDX;F@cvK&{QaR z$so%wX(|S`qrpo;lu-W&Ihc0CJVaBWj6zV+0VUIn z48lubPG!+V61Qio>IY?8XEJRSz&?W0D&?ZUp9pg*a zuRwbN>!%C=lR@RTlQNS4BdC}F%qwXs6u@MV5 zQriWJ@ZiS%Fz%DbT%g#|!C_SFYq0v+X_j&({t&4?Q)g>?3EB$r5;RV(i~AOT2K)gy zn!wgKNl{225>)hC-SKZhdyJ++L2w3HenC^Ad`M7PzPH*6>j+|>J-@gf&YrB8*MgWA~+`ridz0B|5?1E3>{hRPq zTHd}0>%Px|i7UU~Nhn+p;*DpzlK4o9;aIK62s zJc9onWAhimS@U_kj<;|w77T)#=k^xPfh?Mkw{Z4jrNAr@s~5m69QQjIEy%O0Xqi7s znM4%#5ge!#a~}a8tKnoZN8uT+;oK2vO`m6~D2%Ws!mn>*oFx}kPt&tr!+9~Zt%hGC zY{Xu}3Dl#7Uq`hQ7k(X6Ci69%XdB4`19#sMcQQq3SPla!bFAEdiEB821fr;>nrty> zT*B->#^sN`9|Rw(ZKaxh>NT8)BQ4V03Df^F<1V?VYWnWIP&mUioWFqLMy4OANHhJY zhT=>=rp)|Z!-*14_n8M%v~BD&3+5Wm;t2nH_mVdv~A=JfpRowi0UTJ8Dh%x<{D14;dDd)b*~J40lhNk+Ds-T(0?B@ zsWwx`$C*q$75yh8Ez*uC3_i!WOD@`t!55%yBZCiAq#1lvLvaQlQ>L3&=0uxIH}k7f z^k%!p`5oG|^_~_&AfD6OjI3q^)GL#i2%6_y-wZ$wj-d@Q*^5F|(JrdvN#vvS0g%j8tzuJlb%iEX>y$FH0( ztPTqg5RgxGOr${&Z+AZ%;0lg;PXj!B9utxT8MYaDm@6aYF8hm-71;LH@3PCMIGStk z!1?_M=Oi2Q3j5s#94kVe4np2xPz85f+l0Jp`$4->up3rzZpnQ23jXr22G8eKEjMQ> z4Y=Le$dw=|119M5N;6Jwdd9P$whoza3$)yXw~$q4wQHh~yL}ijrCKk*yUH3hCtm_= zEr_fRpt1wdwZw0*th+scfxGx)UtT@~T5b_HKRbn0PqU2l;$>Z*DL@WMoL{IfVY(r0q&*iGPJ`b(IC&eLAP6zw239@3K_@MDhhzZ?TmGUtDhY=yJ! zu{7Kg`CnvIQ@Eaw$^XI*l!^Q=_&d-4@*3ct=YL_JPIdm5?R=BKEc?qjiP>LxD_!S) zc~Hd238u2VWoe zXf|!5J}u!(w@EX;&pJt;=a6Y$GU$6?6EzPd!_Ng3lPetSXe!hdjtsJFrl}a%j(&xM zPMWckrq;m~4lZi)JSH|f&nKC2=-GLCn>1q|Ehu$K>`JI=2rtj0sZj7DsF=WuLsOwl zL{QP;CDRquV*@zF$v@Ou~zxVgfJkq^VHwl0lXa(^L#>M}wDy zq#2)~sdNA>KbP(~uCe0{O9i7icO5wxa_|QqqjC({wrj6fR^B0A&u6 zX8e$rmO_{BK~+O^`8S#hg)V}M3Azkyp=J!EwF@d5x@1k7aRy1gV|?j4X~sI>D|!Y= z?zm)7`T3;GCMq`pm`iCY6u@MV1DKSg8AoVp9l#7{q9d3wsnnJ<<2}I! zqx(nrabA;Vyogkvsk6;p(u`xkAAq9?Y`vBgh4djoMc?s`Pnz*|nhFKM8D#k&O@;Cy zLB%|2#-~VHrY10NNi(>7CZ2|e#v*A(ypPRk(u|ebfnajVjF7dqlo{^;IOt8vj7Ol4 zdCH8(;8U0~L!R-;gc&l^hd9ODrl!k~-~=b-_Y24Z&!p33TrAUN@CK=b8F8BHqPI1Bqqf8kzfxLIkyQh`kq3~=~O32uMu|v7GtH2a#TVb?k*w56X#{0 z=VVfsxM(y2m12@>;A1tyuKO$l7e-pt7roKW6u0npG47I!s;8G(6Kq@zZL8Oe5M*K# zYy>LOt{Fu&1QCsG@41aBGk;kIqQsL&AC4j;?infC#&Q_8x}KFIGIK1LECXfWR5jyd zOF{$@E>Yy-MY9axW3{bRmmsdB-W_R+=1Vxkos6&KqN+2v`=D@!lp8OF;zrI8C`WUK zsBYq%A*M`kvJ6BUPB(NXMU%#czJRg}{0YdUnrE_|D5n00Oc59-Z;dMP)%aL#E7jCf zvkZJS(jv{BF!+ZVcgaP&G5D`R+eQW-s7N#TsD|PUKBi1JSq7rbrJMQ3QuJqR<_jsy zK;Kh!+e|hO#m*N&rI=X`KF(z41f-uCX^ZAdSoj9US8~yAEPMpoHnQ+QIhut>brWad zF=cw6Wgto<-R^(WE4zOJWf?e_$^4$%2Zlf5Uc=0<4gT?QCbuxiGT=noOtyJ+Tj3s) zjKAcf-MGgzv~A=bfs!=$i0UZLJz~ntN0xyo*>s25m!fBVprG5sECXxP9Z=qA!sU9} z%>a>Q;J2_qgXR4BV7uGyZr#xuE%p}&@b=%R`*h`*KX}OTn)OO>WhwX`?y&riOx7rN z7T%AQ(smYtJ4`n|8&0eLJIg>L>1r>XW#GRv3()td=OFb&+y&6o%mNQ*awKtw?Mn=9 z05KPMW&z|=9S3RP!#lvg!L8A=_pb&F{BtH`^4KLY^>bVqDVYU+h^(|-be2zX1lKYP z{7Zy$k`0+z;70}=D?(!Wgzp0&AY8+pSUWuYgKy ziF67x3m^|2Iow*Xv1LpEQdYKm*=CEenFV$tD{T%ZpSC&NMG?+PHl)LyZ@{tQaF{+} z+@MOV!);5>380U)ZP^4yO>4#tASoFHZs;_N)QQnDH3_+tG-f$ms~n8t^CS&@1QIIC0H1$4+J+7iT+QvJD!M$ABGW4Y)Vb z7qq{KtN|fKInbT~h!xDZ{e_w};QolPU1bgUK%_BRb7IDY958Ti&l(VA?i6GV__VP| zbCflJtEcB#11`v#HQ-_FCh#ylYe3L>TGoJQzmY!6vIYpCIaBdnSWeGT)_{{BO6IHq z?GAo!8g7ZK0W!EFT%X5e4Pa+tMAiWOoo5aB6>!h92Cz@P$QnTQk1NDz!kz&iqTF}l zM;2D6*Bo_U3i#{y=gW4Z(Q?$G!M$b`u#G=+DF(JmDcGkDr6@ii5x)2tecz>c4sOD1 zy17-{0{=f1{@)7!Z@anW55gt&dI_?|;O0yfB=JR%&XvdWPR%P-D=mLhQg(x|OmX0V z*RpY?^y%UV@BuHok-WGbw5qc+>dq?9{B=B*DQInUrZK%u%u!yf7QFbT-CI28xHn;K zbtHRR_w2BC7o0{u*C$P{F+1qZjDsZ zv7L+tM0%93=vQv<1o;65Mgn?s{8F8u6Ivot^j&HPtZlahrd-f%+)v>)-tK_^xO@Sl z?uUVj`yl+$-DDCU=iv`x?fvktrV96&*eVZb{RI3djm%w-&!NwOtu|{8d3sI?PoG2L zpNBsLPamgvdPw2PUkXOebfw>$4j*e#?ZIOZfqf3y&XH`BA>%heRcgkno8H4*w&xjF zYKuJ%tyb--xr~csUGERnovA`K-*UgPl$*{&@ULb%ZNZQmK*}zHA&Ud^y3~0M6K~@l#L^(GaS<20t>3QWjm?FRNHVugTP%dCRM^ z?4W!Mwpgc#Y@QqZELB2;`n;entxY!rb^0M#pHGcqTx_VGxtdge4OEbMQZ3nnsqtU( zzFe2m?{YRO5d>;VT#42k<&LLJf%IXG%}BooWciHrG5mA@XQ}MdDV>o%WyUU5FcDX& zV$D`68d$#5X*r z)05Lc0Da`baYal|LVnt&C%=S#?!oi~$@A&S1b)J=VtV3BLq~qZ6h&$q5c5~U&Qhl+ zJFltQ1?!4y_E}Z7dc+LU1ov!?X9Bjxy2+pr$m9gi&VMRI`$2n+Gw2%oI@N zgUmF3VuK9(bV>)Av6@|PI5}ap>7z|d%15n*?uMP!T3Z6$Mtd~=+=bn)?9k}$l4<<8 zJ!opqZZ>I}kh>Dh)k~Lh^iQ`ZRvRuX1Q=a|UIMl4=LMorNlV(UY=_9yy4vZsn^pGdMVv zOBHyZ0Uxb`;fO2~+S2C*&G@NY+)`(*@{vY-;OzZ41bsGC$sC;?d<`gM9)cuWxX?ik z&4(b_$52!Dd?!QD_kgNc=in#4&cRPz4?*D(z-aMqf0!>x#_U=N4gkd7yL_6%r?%XQ z$EENv?47UR$Xpx;tqg0jO)@V-oAL+wGN{pBeW_A?3B7;Ps5a|)r&S#H*Liij(tt~} zu-%`l)vMF+n)wFCZTkIQ)w9d3{fqozS;i^A*Cw*N*k6@z*6VPBkP~ek@K?wu=vA!) z{<4PSc`(y!wEWXxORnja%8l`SdphT^E{8gn2C@AMt@>QHdxBQ`|H#PQ*F*yEc`Df`r z=A3%HTF(^$=E_bT)Qzm>y_Ub4t66EKpS9BRH%5MmG~sUA2FhH;+YNb;wa?Ojh*b91 zpbTJWjUuS13^KL+m1Vm!-L$72(0Bp9FLB_+>GZmTD}-FZsezdQ89bpn;19rCsHQ+n z&`7BOhU!d}j>A05Uu8GFD!kK1KJu58z_wNvnlrUrV1J-k_5cz=IrWNN#s*ijC(N?3 z`@=`IhSMxmbH``Up4K?WYgL#Vsx_IF>wQIKet7=Xy2TF0kC1Jebp=bDK6g{ujm^kk|c-$DT&3eUZWxQIS zKCk7k$C8WzD4Fw|8R#Alx?>qUAA9P~3qhZ&>Qnhh^Y|oe{%Nv#@KhU3_Ex7pUUIxC zMgzS6yrMT#24X{=Jqcb^@QSVd%lwUClQX%%Jp%#wVP5Nmzos!;@$BQdVrjZqhX28S z`^r@`{S}QF8yxM0P4?o8d;HVccm6e3uI6o_+Ku_54g5gIbAJOZGZjMZTbnf?u?o2J zN*?H+e>9D7`_7v6_g$^)9gi_Gv-$+NigSZKu)*5=w#@VTRo1@kcryuPtH zSOq*it?tRY-WIKW@~*d!D`#T&f-K34?e-PIi2GWoLCxHl#o2zpm|iUQ`}jFm-@XG^ zU58^lpVzUeH2@{f!}hO7|9LgC0xyqSD>-r<{CM{Mv%%b713$`xKH-;Pyxu9+;e(lV z_`x(CqF=V_(ER|^OV?ogJ5$bD;2QkjnKk&OGz}t(b*#bm_%V2`l;f`rree~w8PY5d f90fbsti| diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 89eaf0f..bd39747 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 971e8579e9e318c2d31a6c3345838f85 +config: d5c4fb8b6d44d4c8fa5f102585cf2a6c tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html index 46cb0fe..e62794d 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -1,22 +1,20 @@ - + Overview: module code — PV_Live API 1.2.2 documentation - - - - + + - - - - - + + + + + diff --git a/docs/build/html/_modules/pvlive_api/pvlive.html b/docs/build/html/_modules/pvlive_api/pvlive.html index d76e82d..ae463ca 100644 --- a/docs/build/html/_modules/pvlive_api/pvlive.html +++ b/docs/build/html/_modules/pvlive_api/pvlive.html @@ -1,22 +1,20 @@ - + - pvlive_api.pvlive — PV_Live API 1.1.0 documentation - - - - + pvlive_api.pvlive — PV_Live API 1.2.2 documentation + + - - - - - + + + + + @@ -34,7 +32,7 @@ PV_Live API
- 1.1.0 + 1.2.2
@@ -88,7 +86,7 @@

Source code for pvlive_api.pvlive

 import json
 from datetime import datetime, timedelta, date, time
 from time import sleep
-from typing import List, Union, Tuple, Dict, Optional
+from typing import List, Union, Tuple, Dict, Optional, Literal
 import inspect
 import argparse
 import re
@@ -97,10 +95,9 @@ 

Source code for pvlive_api.pvlive

 import requests
 from numpy import nan, int64
 import pandas as pd
+from bs4 import BeautifulSoup
 
-
-[docs] -class PVLiveException(Exception): +
[docs]class PVLiveException(Exception): """An Exception specific to the PVLive class.""" def __init__(self, msg): try: @@ -112,24 +109,22 @@

Source code for pvlive_api.pvlive

     def __str__(self):
         return self.msg
- -
-[docs] -class PVLive: +
[docs]class PVLive: """ Interface with the PV_Live web API. Parameters ---------- - `retries` : int + retries : int Optionally specify the number of retries to use should the API respond with anything other than status code 200. Exponential back-off applies inbetween retries. - `proxies` : Optional[Dict] + proxies : Optional[Dict] Optionally specify a Dict of proxies for http and https requests in the format: {"http": "<address>", "https": "<address>"} """ def __init__(self, retries: int = 3, proxies: Optional[Dict] = None, ssl_verify: bool = True): - self.base_url = "https://api.solar.sheffield.ac.uk/pvlive/api/v4" + self.domain_url = "https://api.solar.sheffield.ac.uk" + self.base_url = f"{self.domain_url}/pvlive/api/v4" self.max_range = {"national": timedelta(days=365), "regional": timedelta(days=30)} self.retries = retries self.proxies = proxies @@ -139,6 +134,7 @@

Source code for pvlive_api.pvlive

         self.pes_list = self._get_pes_list()
         self.gsp_ids = self.gsp_list.gsp_id.dropna().astype(int64).unique()
         self.pes_ids = self.pes_list.pes_id.dropna().astype(int64).unique()
+        self.deployment_releases = None
 
     def _get_gsp_list(self):
         """Fetch the GSP list from the API and convert to Pandas DataFrame."""
@@ -152,10 +148,96 @@ 

Source code for pvlive_api.pvlive

         response = self._fetch_url(url)
         return pd.DataFrame(response["data"], columns=response["meta"])
 
-
-[docs] - def latest(self, - entity_type: str = "gsp", + def _get_deployment_releases(self): + """Get a list of deployment releases as datestamps (YYYYMMDD).""" + if self.deployment_releases is None: + url = f"{self.domain_url}/capacity/" + response = self._fetch_url(url, parse_json=False) + soup = BeautifulSoup(response.content, "html.parser") + releases = [r["href"].strip("/") for r in soup.find_all("a", href=True) + if re.match(r"[0-9]{8}/", r["href"])] + self.deployment_releases = sorted(releases, reverse=True) + return self.deployment_releases + + def _get_deployment_filenames(self, release): + """Get a list of filenames for a given release.""" + url = f"{self.domain_url}/capacity/{release}/" + response = self._fetch_url(url, parse_json=False) + soup = BeautifulSoup(response.content, "html.parser") + filenames = [r["href"] for r in soup.find_all("a", href=True) + if re.match(r".+\.csv.gz", r["href"])] + return filenames + + def _validate_deployment_inputs(self, region, include_history, by_system_size, release): + """Validate input parameters to `deployment()`.""" + releases = self._get_deployment_releases() + if not isinstance(region, str): + raise TypeError("`region` must be a string.") + supported_regions = ["gsp", "llsoa"] + if region not in supported_regions: + raise ValueError(f"The region must be one of {supported_regions}") + if not isinstance(include_history, bool): + raise TypeError("`include_history` must be True or False.") + if not isinstance(by_system_size, bool): + raise TypeError("`by_system_size` must be True or False.") + if by_system_size and region != "gsp": + raise ValueError(f"`by_system_size` can only be True if `region`='gsp'") + if by_system_size and not include_history: + raise ValueError(f"`by_system_size` can only be True if `include_history`=True") + if not isinstance(release, (str, int)): + raise TypeError("`release` must be str or int.") + if isinstance(release, str) and release not in releases: + raise ValueError(f"The requested release ({release}) was not found on the API") + if isinstance(release, int) and release not in range(len(releases)): + raise ValueError("The requested release index ({release}) was not found on the API, " + f"release index must be between 0 and {len(releases)-1}") + +
[docs] def deployment(self, + region: Literal["gsp", "llsoa"] = "gsp", + include_history: bool = False, + by_system_size: bool = False, + release: Union[str, int] = 0) -> pd.DataFrame: + """ + Download deployment data from the `/capacity` endpoint. + + Parameters + ---------- + region : str + The aggregation region for the deployment data, either 'gsp' (default) or 'llsoa'. + include_history : bool + Set to True to include historical deployment data. Defaults to False. + by_system_size : bool + If `region` == "gsp", set to True to also include the breakdown by system size. + release : Union[str, int] + The datestamp (YYYYMMDD) of the capacity update you wish to download. Pass a string + (e.g. "20231116") to get a specific release, or pass an int to get the latest + (release=0), next-latest (release==1) etc. Defaults to 0. + + Returns + ------- + Pandas DataFrame + Columns vary depending on the input parameters, but shoudl include at least release, + GSPs/llsoa and dc_capacity_mwp. + """ + self._validate_deployment_inputs(region, include_history, by_system_size, release) + releases = self._get_deployment_releases() + release = releases[release] if isinstance(release, int) else release + filenames = self._get_deployment_filenames(release) + region_ = "20220314_GSP" if region == "gsp" else region + history_ = "_and_month" if include_history else "" + system_size_ = "_and_system_size" if by_system_size else "" + filename_ending = f"_capacity_by_{region_}{history_}{system_size_}.csv.gz" + filename = [f for f in filenames if f.endswith(filename_ending)][0] + url = f"{self.domain_url}/capacity/{release}/{filename}" + kwargs = dict(parse_dates=["install_month"]) if include_history else {} + deployment_data = pd.read_csv(url, **kwargs) + deployment_data.insert(0, "release", release) + deployment_data.rename(columns={"dc_capacity_MWp": "dc_capacity_mwp"}, inplace=True) + deployment_data.system_count = deployment_data.system_count.astype("Int64") + return deployment_data
+ +
[docs] def latest(self, + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -165,15 +247,15 @@

Source code for pvlive_api.pvlive

 
         Parameters
         ----------
-        `entity_type` : string
+        entity_type : string
             The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp".
-        `entity_id` : int
+        entity_id : int
             The numerical ID of the entity of interest. Defaults to 0.
-        `extra_fields` : string
+        extra_fields : string
             Comma-separated string listing any extra fields.
-        `period` : int
+        period : int
             Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30.
-        `dataframe` : boolean
+        dataframe : boolean
             Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple.
 
         Returns
@@ -206,12 +288,9 @@ 

Source code for pvlive_api.pvlive

             return data
         return None
- -
-[docs] - def at_time(self, +
[docs] def at_time(self, dt: datetime, - entity_type: str = "gsp", + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -221,18 +300,18 @@

Source code for pvlive_api.pvlive

 
         Parameters
         ----------
-        `dt` : datetime
+        dt : datetime
             A timezone-aware datetime object. Will be corrected to the END of the half hour in which
             *dt* falls, since Sheffield Solar use end of interval as convention.
-        `entity_type` : string
+        entity_type : string
             The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp".
-        `entity_id` : int
+        entity_id : int
             The numerical ID of the entity of interest. Defaults to 0.
-        `extra_fields` : string
+        extra_fields : string
             Comma-separated string listing any extra fields.
-        `period` : int
+        period : int
             Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30.
-        `dataframe` : boolean
+        dataframe : boolean
             Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple.
 
         Returns
@@ -256,13 +335,10 @@ 

Source code for pvlive_api.pvlive

             return result
         return tuple(result[0])
- -
-[docs] - def between(self, +
[docs] def between(self, start: datetime, end: datetime, - entity_type: str = "gsp", + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -272,21 +348,21 @@

Source code for pvlive_api.pvlive

 
         Parameters
         ----------
-        `start` : datetime
+        start : datetime
             A timezone-aware datetime object. Will be corrected to the END of the half hour in which
             *start* falls, since Sheffield Solar use end of interval as convention.
-        `end` : datetime
+        end : datetime
             A timezone-aware datetime object. Will be corrected to the END of the half hour in which
             *end* falls, since Sheffield Solar use end of interval as convention.
-        `entity_type` : string
+        entity_type : string
             The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp".
-        `entity_id` : int
+        entity_id : int
             The numerical ID of the entity of interest. Defaults to 0.
-        `extra_fields` : string
+        extra_fields : string
             Comma-separated string listing any extra fields.
-        `period` : int
+        period : int
             Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30.
-        `dataframe` : boolean
+        dataframe : boolean
             Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple.
 
         Returns
@@ -306,12 +382,9 @@ 

Source code for pvlive_api.pvlive

         """
         return self._between(start, end, entity_type, entity_id, extra_fields, period, dataframe)[0]
- -
-[docs] - def day_peak(self, +
[docs] def day_peak(self, d: date, - entity_type: str = "gsp", + entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0, extra_fields: str = "", period: int = 30, @@ -321,17 +394,17 @@

Source code for pvlive_api.pvlive

 
         Parameters
         ----------
-        `d` : date
+        d : date
             The day of interest as a date object.
-        `entity_type` : string
+        entity_type : string
             The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp".
-        `entity_id` : int
+        entity_id : int
             The numerical ID of the entity of interest. Defaults to 0.
-        `extra_fields` : string
+        extra_fields : string
             Comma-separated string listing any extra fields.
-        `period` : int
+        period : int
             Time-resolution to retrieve, either 30 or 5 (minutely). Default is 30.
-        `dataframe` : boolean
+        dataframe : boolean
             Set to True to return data as a Python DataFrame. Default is False, i.e. return a tuple.
 
         Returns
@@ -367,20 +440,17 @@ 

Source code for pvlive_api.pvlive

             return maxdata
         return None
- -
-[docs] - def day_energy(self, d: date, entity_type: str = "gsp", entity_id: int = 0) -> float: +
[docs] def day_energy(self, d: date, entity_type: Literal["gsp", "pes"] = "gsp", entity_id: int = 0) -> float: """ Get the cumulative PV generation for a given day from the API. Parameters ---------- - `d` : date + d : date The day of interest as a date object. - `entity_type` : string + entity_type : string The aggregation entity type of interest, either "pes" or "gsp". Defaults to "gsp". - `entity_id` : int + entity_id : int The numerical ID of the entity of interest. Defaults to 0. Returns @@ -402,7 +472,6 @@

Source code for pvlive_api.pvlive

             return pv_energy
         return None
- def _between(self, start, end, entity_type="gsp", entity_id=0, extra_fields="", period=30, dataframe=False): """ @@ -466,7 +535,7 @@

Source code for pvlive_api.pvlive

         url = base_url + "?" + "&".join(["{}={}".format(k, params[k]) for k in params])
         return url
 
-    def _fetch_url(self, url):
+    def _fetch_url(self, url, parse_json=True):
         """Fetch the URL with GET request."""
         success = False
         try_counter = 0
@@ -488,7 +557,10 @@ 

Source code for pvlive_api.pvlive

         if not success:
             raise PVLiveException("Error communicating with the PV_Live API.")
         try:
-            return json.loads(page.text)
+            if parse_json:
+                return json.loads(page.text)
+            else:
+                return page
         except Exception as e:
             raise PVLiveException("Error communicating with the PV_Live API.") from e
 
@@ -518,10 +590,7 @@ 

Source code for pvlive_api.pvlive

             raise ValueError("The period parameter must be one of: "
                              f"{', '.join(map(str, periods))}.")
- -
-[docs] -def parse_options(): +
[docs]def parse_options(): """Parse command line options.""" parser = argparse.ArgumentParser(description=("This is a command line interface (CLI) for the " "PV_Live API module"), @@ -596,10 +665,7 @@

Source code for pvlive_api.pvlive

         return options
     return handle_options(options)
- -
-[docs] -def main(): +
[docs]def main(): """Load CLI options and access the API accordingly.""" options = parse_options() pvl = PVLive(proxies=options.proxies) @@ -618,7 +684,6 @@

Source code for pvlive_api.pvlive

     if not options.quiet:
         print(data)
- if __name__ == "__main__": main()
diff --git a/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js index 8141580..8549469 100644 --- a/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +++ b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js @@ -1,9 +1,20 @@ -/* Compatability shim for jQuery and underscores.js. +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning * - * Copyright Sphinx contributors - * Released under the two clause BSD licence */ +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + /** * small helper function to urldecode strings * diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css index 30fee9d..0889677 100644 --- a/docs/build/html/_static/basic.css +++ b/docs/build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -237,10 +237,6 @@ a.headerlink { visibility: hidden; } -a:visited { - color: #551A8B; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -328,17 +324,17 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } - nav.contents, aside.topic, + div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ - nav.contents, aside.topic, + div.topic { border: 1px solid #ccc; padding: 7px; @@ -379,6 +375,7 @@ div.sidebar > :last-child, aside.sidebar > :last-child, nav.contents > :last-child, aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -388,6 +385,7 @@ div.sidebar::after, aside.sidebar::after, nav.contents::after, aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -613,6 +611,25 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +/* Docutils 0.18+ (footnotes & citations) */ aside.footnote > span, div.citation > span { float: left; @@ -637,6 +654,8 @@ div.citation > p:last-of-type:after { clear: both; } +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; @@ -649,6 +668,10 @@ dl.field-list > dt { padding-right: 5px; } +dl.field-list > dt:after { + content: ":"; +} + dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; @@ -674,16 +697,6 @@ dd { margin-left: 30px; } -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - dl > dd:last-child, dl > dd:last-child > :last-child { margin-bottom: 0; @@ -752,14 +765,6 @@ abbr, acronym { cursor: help; } -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - /* -- code displays --------------------------------------------------------- */ pre { diff --git a/docs/build/html/_static/css/theme.css b/docs/build/html/_static/css/theme.css index 19a446a..c03c88f 100644 --- a/docs/build/html/_static/css/theme.css +++ b/docs/build/html/_static/css/theme.css @@ -1,4 +1,4 @@ html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js index d06a71d..c3db08d 100644 --- a/docs/build/html/_static/doctools.js +++ b/docs/build/html/_static/doctools.js @@ -4,19 +4,12 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ "use strict"; -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - const _ready = (callback) => { if (document.readyState !== "loading") { callback(); @@ -25,11 +18,73 @@ const _ready = (callback) => { } }; +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + /** * Small JavaScript module for the documentation. */ const Documentation = { init: () => { + Documentation.highlightSearchWords(); Documentation.initDomainIndexTable(); Documentation.initOnKeyListeners(); }, @@ -71,6 +126,51 @@ const Documentation = { Documentation.LOCALE = catalog.locale; }, + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + }, + /** * helper function to focus on search bar */ @@ -110,11 +210,15 @@ const Documentation = { ) return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys if (!event.shiftKey) { switch (event.key) { @@ -136,6 +240,10 @@ const Documentation = { event.preventDefault(); } break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index 6b54cf4..cc4fb37 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,4 +1,5 @@ -const DOCUMENTATION_OPTIONS = { +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), VERSION: '1.2.2', LANGUAGE: 'en', COLLAPSE_INDEX: false, @@ -9,5 +10,5 @@ const DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/docs/build/html/_static/language_data.js b/docs/build/html/_static/language_data.js index 250f566..2e22b06 100644 --- a/docs/build/html/_static/language_data.js +++ b/docs/build/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/build/html/_static/pygments.css b/docs/build/html/_static/pygments.css index 0d49244..691aeb8 100644 --- a/docs/build/html/_static/pygments.css +++ b/docs/build/html/_static/pygments.css @@ -17,7 +17,6 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ diff --git a/docs/build/html/_static/searchtools.js b/docs/build/html/_static/searchtools.js index 7918c3f..ac4d586 100644 --- a/docs/build/html/_static/searchtools.js +++ b/docs/build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -57,14 +57,14 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, searchTerms, highlightTerms) => { +const _displayItem = (item, highlightTerms, searchTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const contentRoot = document.documentElement.dataset.content_root; - const [docName, title, anchor, descr, score, _filename] = item; + const [docName, title, anchor, descr] = item; let listItem = document.createElement("li"); let requestUrl; @@ -75,35 +75,29 @@ const _displayItem = (item, searchTerms, highlightTerms) => { if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; - requestUrl = contentRoot + dirname; + requestUrl = docUrlRoot + dirname; linkUrl = requestUrl; } else { // normal html builders - requestUrl = contentRoot + docName + docFileSuffix; + requestUrl = docUrlRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; + linkEl.href = linkUrl + "?" + params.toString() + anchor; linkEl.innerHTML = title; - if (descr) { - listItem.appendChild(document.createElement("span")).innerHTML = + if (descr) + listItem.appendChild(document.createElement("span")).innerText = " (" + descr + ")"; - // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, highlightTerms) ); - // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); }; @@ -122,15 +116,15 @@ const _finishSearch = (resultCount) => { const _displayNextItem = ( results, resultCount, - searchTerms, highlightTerms, + searchTerms ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), searchTerms, highlightTerms); + _displayItem(results.pop(), highlightTerms, searchTerms); setTimeout( - () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), 5 ); } @@ -161,8 +155,10 @@ const Search = { _pulse_status: -1, htmlToText: (htmlString) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); const docContent = htmlElement.querySelector('[role="main"]'); if (docContent !== undefined) return docContent.textContent; console.warn( @@ -243,12 +239,6 @@ const Search = { * execute search (requires search index to be loaded) */ query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -276,10 +266,6 @@ const Search = { } }); - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - // console.debug("SEARCH: searching for:"); // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); @@ -288,40 +274,6 @@ const Search = { let results = []; _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - // lookup as object objectTerms.forEach((term) => results.push(...Search.performObjectSearch(term, objectTerms)) @@ -368,7 +320,7 @@ const Search = { // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, searchTerms, highlightTerms); + _displayNextItem(results, results.length, highlightTerms, searchTerms); }, /** @@ -449,8 +401,8 @@ const Search = { // prepare search const terms = Search._index.terms; const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; const docNames = Search._index.docnames; + const filenames = Search._index.filenames; const titles = Search._index.titles; const scoreMap = new Map(); @@ -547,15 +499,16 @@ const Search = { /** * helper function to return a node containing the * search summary for a given text. keywords is a list - * of stemmed words. + * of stemmed words, highlightWords is the list of normal, unstemmed + * words. the first one is used to find the occurrence, the + * latter for highlighting it. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, highlightWords) => { + const text = Search.htmlToText(htmlText).toLowerCase(); if (text === "") return null; - const textLower = text.toLowerCase(); const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) + .map((k) => text.indexOf(k.toLowerCase())) .filter((i) => i > -1) .slice(-1)[0]; const startWithContext = Math.max(actualStartPosition - 120, 0); @@ -563,9 +516,13 @@ const Search = { const top = startWithContext === 0 ? "" : "..."; const tail = startWithContext + 240 < text.length ? "..." : ""; - let summary = document.createElement("p"); + let summary = document.createElement("div"); summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + summary.innerText = top + text.substr(startWithContext, 240).trim() + tail; + + highlightWords.forEach((highlightWord) => + _highlightText(summary, highlightWord, "highlighted") + ); return summary; }, diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index e15504e..b7c3e1f 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -1,22 +1,20 @@ - + Index — PV_Live API 1.2.2 documentation - - - - + + - - - - - + + + + + @@ -109,6 +107,8 @@

D

diff --git a/docs/build/html/index.html b/docs/build/html/index.html index 611fb11..9ab2b32 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -1,23 +1,21 @@ - + - + Welcome to PV_Live API’s documentation! — PV_Live API 1.2.2 documentation - - - - + + - - - - - + + + + + @@ -77,7 +75,7 @@
-

Welcome to PV_Live API’s documentation!

+

Welcome to PV_Live API’s documentation!

Contents:

    @@ -90,7 +88,7 @@

    Welcome to PV_Live API’s documentation! -

    Indices and tables

    +

    Indices and tables

    • Index

    • Module Index

    • diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html index b34458a..69c586e 100644 --- a/docs/build/html/modules.html +++ b/docs/build/html/modules.html @@ -1,23 +1,21 @@ - + - + Modules — PV_Live API 1.2.2 documentation - - - - + + - - - - - + + + + + @@ -50,20 +48,7 @@ @@ -93,7 +78,7 @@
      -

      Modules

      +

      Modules