From 1b57566e8ed80d5ca7ef481858e02b56a2f96cc2 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Fri, 28 Jul 2017 12:02:16 -0400 Subject: [PATCH 001/128] Support for Wink local control (#8607) * Support for Wink local control --- homeassistant/components/wink.py | 38 ++++++++++++++++++++++---------- requirements_all.txt | 2 +- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/wink.py b/homeassistant/components/wink.py index 1783d4bd79a..e6d60aa5568 100644 --- a/homeassistant/components/wink.py +++ b/homeassistant/components/wink.py @@ -25,7 +25,7 @@ from homeassistant.const import ( from homeassistant.helpers.entity import Entity import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['python-wink==1.3.1', 'pubnubsub-handler==1.0.2'] +REQUIREMENTS = ['python-wink==1.4.2', 'pubnubsub-handler==1.0.2'] _LOGGER = logging.getLogger(__name__) @@ -36,10 +36,10 @@ SUBSCRIPTION_HANDLER = None CONF_CLIENT_ID = 'client_id' CONF_CLIENT_SECRET = 'client_secret' CONF_USER_AGENT = 'user_agent' -CONF_OATH = 'oath' +CONF_OAUTH = 'oauth' +CONF_LOCAL_CONTROL = 'local_control' CONF_APPSPOT = 'appspot' -CONF_DEFINED_BOTH_MSG = 'Remove access token to use oath2.' -CONF_MISSING_OATH_MSG = 'Missing oath2 credentials.' +CONF_MISSING_OAUTH_MSG = 'Missing oauth2 credentials.' CONF_TOKEN_URL = "https://winkbearertoken.appspot.com/token" ATTR_ACCESS_TOKEN = 'access_token' @@ -64,15 +64,14 @@ SERVICE_KEEP_ALIVE = 'keep_pubnub_updates_flowing' CONFIG_SCHEMA = vol.Schema({ DOMAIN: vol.Schema({ vol.Inclusive(CONF_EMAIL, CONF_APPSPOT, - msg=CONF_MISSING_OATH_MSG): cv.string, + msg=CONF_MISSING_OAUTH_MSG): cv.string, vol.Inclusive(CONF_PASSWORD, CONF_APPSPOT, - msg=CONF_MISSING_OATH_MSG): cv.string, - vol.Inclusive(CONF_CLIENT_ID, CONF_OATH, - msg=CONF_MISSING_OATH_MSG): cv.string, - vol.Inclusive(CONF_CLIENT_SECRET, CONF_OATH, - msg=CONF_MISSING_OATH_MSG): cv.string, - vol.Exclusive(CONF_EMAIL, CONF_OATH, - msg=CONF_DEFINED_BOTH_MSG): cv.string, + msg=CONF_MISSING_OAUTH_MSG): cv.string, + vol.Inclusive(CONF_CLIENT_ID, CONF_OAUTH, + msg=CONF_MISSING_OAUTH_MSG): cv.string, + vol.Inclusive(CONF_CLIENT_SECRET, CONF_OAUTH, + msg=CONF_MISSING_OAUTH_MSG): cv.string, + vol.Optional(CONF_LOCAL_CONTROL, default=False): cv.boolean }) }, extra=vol.ALLOW_EXTRA) @@ -206,8 +205,11 @@ def setup(hass, config): client_secret = config[DOMAIN].get(ATTR_CLIENT_SECRET) email = config[DOMAIN].get(CONF_EMAIL) password = config[DOMAIN].get(CONF_PASSWORD) + local_control = config[DOMAIN].get(CONF_LOCAL_CONTROL) if None not in [client_id, client_secret]: _LOGGER.info("Using legacy oauth authentication") + if not local_control: + pywink.disable_local_control() hass.data[DOMAIN]["oauth"]["client_id"] = client_id hass.data[DOMAIN]["oauth"]["client_secret"] = client_secret hass.data[DOMAIN]["oauth"]["email"] = email @@ -216,11 +218,14 @@ def setup(hass, config): client_id, client_secret) elif None not in [email, password]: _LOGGER.info("Using web form authentication") + pywink.disable_local_control() hass.data[DOMAIN]["oauth"]["email"] = email hass.data[DOMAIN]["oauth"]["password"] = password _get_wink_token_from_web() else: _LOGGER.info("Using new oauth authentication") + if not local_control: + pywink.disable_local_control() config_path = hass.config.path(WINK_CONFIG_FILE) if os.path.isfile(config_path): config_file = _read_config_file(config_path) @@ -304,6 +309,15 @@ def setup(hass, config): hass.bus.listen(EVENT_HOMEASSISTANT_STOP, stop_subscription) + def save_credentials(event): + """Save currently set oauth credentials.""" + if hass.data[DOMAIN]["oauth"].get("email") is None: + config_path = hass.config.path(WINK_CONFIG_FILE) + _config = pywink.get_current_oauth_credentials() + _write_config_file(config_path, _config) + + hass.bus.listen(EVENT_HOMEASSISTANT_STOP, save_credentials) + def force_update(call): """Force all devices to poll the Wink API.""" _LOGGER.info("Refreshing Wink states from API") diff --git a/requirements_all.txt b/requirements_all.txt index 5bce15dbfd2..84e3618d2a0 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -768,7 +768,7 @@ python-velbus==2.0.11 python-vlc==1.1.2 # homeassistant.components.wink -python-wink==1.3.1 +python-wink==1.4.2 # homeassistant.components.zwave python_openzwave==0.4.0.31 From 61508deed3a0b581c4aa608f619a2a60d032dbd4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 29 Jul 2017 08:22:35 +0200 Subject: [PATCH 002/128] Upgrade pushbullet.py to 0.11.0 (#8691) * Upgrade pushbullet.py to 0.11.0 * Update sensor as well --- homeassistant/components/notify/pushbullet.py | 2 +- homeassistant/components/sensor/pushbullet.py | 2 +- requirements_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/notify/pushbullet.py b/homeassistant/components/notify/pushbullet.py index 18f74ac01ae..af58615f423 100644 --- a/homeassistant/components/notify/pushbullet.py +++ b/homeassistant/components/notify/pushbullet.py @@ -14,7 +14,7 @@ from homeassistant.components.notify import ( from homeassistant.const import CONF_API_KEY import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['pushbullet.py==0.10.0'] +REQUIREMENTS = ['pushbullet.py==0.11.0'] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/sensor/pushbullet.py b/homeassistant/components/sensor/pushbullet.py index b81ca1beb38..086698b06bf 100644 --- a/homeassistant/components/sensor/pushbullet.py +++ b/homeassistant/components/sensor/pushbullet.py @@ -13,7 +13,7 @@ from homeassistant.components.sensor import PLATFORM_SCHEMA import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity import Entity -REQUIREMENTS = ['pushbullet.py==0.10.0'] +REQUIREMENTS = ['pushbullet.py==0.11.0'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 84e3618d2a0..5b140580140 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -495,7 +495,7 @@ pubnubsub-handler==1.0.2 # homeassistant.components.notify.pushbullet # homeassistant.components.sensor.pushbullet -pushbullet.py==0.10.0 +pushbullet.py==0.11.0 # homeassistant.components.notify.pushetta pushetta==1.0.15 From 931f4d8161079e851bbd69bee09ce3e907831703 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 29 Jul 2017 08:22:56 +0200 Subject: [PATCH 003/128] Upgrade mypy to 0.521 (#8692) --- requirements_test.txt | 2 +- requirements_test_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements_test.txt b/requirements_test.txt index cc54c21c18b..5d22dbe13ba 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -3,7 +3,7 @@ # new version flake8==3.3 pylint==1.6.5 -mypy==0.520 +mypy==0.521 pydocstyle==1.1.1 coveralls>=1.1 pytest>=2.9.2 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 01f94812031..1bcd6a6eae2 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -4,7 +4,7 @@ # new version flake8==3.3 pylint==1.6.5 -mypy==0.520 +mypy==0.521 pydocstyle==1.1.1 coveralls>=1.1 pytest>=2.9.2 From 1749859cdfbd33b7398b2bd4fc14c5bfc1d7e02a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Jul 2017 08:48:09 -0700 Subject: [PATCH 004/128] Shopping List: edit name / complete status (#8666) * Shopping List: edit name / complete status * Change ID to be UUID based --- homeassistant/components/shopping_list.py | 72 ++++++++++++++++-- tests/components/test_shopping_list.py | 90 ++++++++++++++++++++++- 2 files changed, 154 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/shopping_list.py b/homeassistant/components/shopping_list.py index ac59c15572a..9922960da3f 100644 --- a/homeassistant/components/shopping_list.py +++ b/homeassistant/components/shopping_list.py @@ -1,9 +1,11 @@ """Component to manage a shoppling list.""" import asyncio import logging +import uuid import voluptuous as vol +from homeassistant.const import HTTP_NOT_FOUND, HTTP_BAD_REQUEST from homeassistant.core import callback from homeassistant.components import http from homeassistant.helpers import intent @@ -17,15 +19,20 @@ CONFIG_SCHEMA = vol.Schema({DOMAIN: {}}, extra=vol.ALLOW_EXTRA) EVENT = 'shopping_list_updated' INTENT_ADD_ITEM = 'HassShoppingListAddItem' INTENT_LAST_ITEMS = 'HassShoppingListLastItems' +ITEM_UPDATE_SCHEMA = vol.Schema({ + 'complete': bool, + 'name': str, +}) @asyncio.coroutine def async_setup(hass, config): """Initialize the shopping list.""" - hass.data[DOMAIN] = [] + hass.data[DOMAIN] = ShoppingData([]) intent.async_register(hass, AddItemIntent()) intent.async_register(hass, ListTopItemsIntent()) hass.http.register_view(ShoppingListView) + hass.http.register_view(UpdateShoppingListItemView) hass.components.conversation.async_register(INTENT_ADD_ITEM, [ 'Add {item} to my shopping list', ]) @@ -37,6 +44,37 @@ def async_setup(hass, config): return True +class ShoppingData: + """Class to hold shopping list data.""" + + def __init__(self, items): + """Initialize the shopping list.""" + self.items = items + + def add(self, name): + """Add a shopping list item.""" + self.items.append({ + 'name': name, + 'id': uuid.uuid4().hex, + 'complete': False + }) + + def update(self, item_id, info): + """Update a shopping list item.""" + item = next((itm for itm in self.items if itm['id'] == item_id), None) + + if item is None: + raise KeyError + + info = ITEM_UPDATE_SCHEMA(info) + item.update(info) + return item + + def clear_completed(self): + """Clear completed items.""" + self.items = [itm for itm in self.items if not itm['complete']] + + class AddItemIntent(intent.IntentHandler): """Handle AddItem intents.""" @@ -50,7 +88,7 @@ class AddItemIntent(intent.IntentHandler): """Handle the intent.""" slots = self.async_validate_slots(intent_obj.slots) item = slots['item']['value'] - intent_obj.hass.data[DOMAIN].append(item) + intent_obj.hass.data[DOMAIN].add(item) response = intent_obj.create_response() response.async_set_speech( @@ -70,16 +108,17 @@ class ListTopItemsIntent(intent.IntentHandler): @asyncio.coroutine def async_handle(self, intent_obj): """Handle the intent.""" - items = intent_obj.hass.data[DOMAIN][-5:] + items = intent_obj.hass.data[DOMAIN].items[-5:] response = intent_obj.create_response() - if len(items) == 0: + if not items: response.async_set_speech( "There are no items on your shopping list") else: response.async_set_speech( "These are the top {} items on your shopping list: {}".format( - min(len(items), 5), ', '.join(reversed(items)))) + min(len(items), 5), + ', '.join(itm['name'] for itm in reversed(items)))) return response @@ -92,4 +131,25 @@ class ShoppingListView(http.HomeAssistantView): @callback def get(self, request): """Retrieve if API is running.""" - return self.json(request.app['hass'].data[DOMAIN]) + return self.json(request.app['hass'].data[DOMAIN].items) + + +class UpdateShoppingListItemView(http.HomeAssistantView): + """View to retrieve shopping list content.""" + + url = '/api/shopping_list/{item_id}' + name = "api:shopping_list:id" + + @callback + def post(self, request, item_id): + """Retrieve if API is running.""" + data = yield from request.json() + + try: + item = request.app['hass'].data[DOMAIN].update(item_id, data) + request.app['hass'].bus.async_fire(EVENT) + return self.json(item) + except KeyError: + return self.json_message('Item not found', HTTP_NOT_FOUND) + except vol.Invalid: + return self.json_message('Item not found', HTTP_BAD_REQUEST) diff --git a/tests/components/test_shopping_list.py b/tests/components/test_shopping_list.py index c25ce593c54..e4a99ad39d4 100644 --- a/tests/components/test_shopping_list.py +++ b/tests/components/test_shopping_list.py @@ -42,7 +42,7 @@ def test_recent_items_intent(hass): @asyncio.coroutine -def test_api(hass, test_client): +def test_api_get_all(hass, test_client): """Test the API.""" yield from async_setup_component(hass, 'shopping_list', {}) @@ -58,4 +58,90 @@ def test_api(hass, test_client): assert resp.status == 200 data = yield from resp.json() - assert data == ['beer', 'wine'] + assert len(data) == 2 + assert data[0]['name'] == 'beer' + assert not data[0]['complete'] + assert data[1]['name'] == 'wine' + assert not data[1]['complete'] + + +@asyncio.coroutine +def test_api_update(hass, test_client): + """Test the API.""" + yield from async_setup_component(hass, 'shopping_list', {}) + + yield from intent.async_handle( + hass, 'test', 'HassShoppingListAddItem', {'item': {'value': 'beer'}} + ) + yield from intent.async_handle( + hass, 'test', 'HassShoppingListAddItem', {'item': {'value': 'wine'}} + ) + + beer_id = hass.data['shopping_list'].items[0]['id'] + wine_id = hass.data['shopping_list'].items[1]['id'] + + client = yield from test_client(hass.http.app) + resp = yield from client.post( + '/api/shopping_list/{}'.format(beer_id), json={ + 'name': 'soda' + }) + + assert resp.status == 200 + data = yield from resp.json() + assert data == { + 'id': beer_id, + 'name': 'soda', + 'complete': False + } + + resp = yield from client.post( + '/api/shopping_list/{}'.format(wine_id), json={ + 'complete': True + }) + + assert resp.status == 200 + data = yield from resp.json() + assert data == { + 'id': wine_id, + 'name': 'wine', + 'complete': True + } + + beer, wine = hass.data['shopping_list'].items + assert beer == { + 'id': beer_id, + 'name': 'soda', + 'complete': False + } + assert wine == { + 'id': wine_id, + 'name': 'wine', + 'complete': True + } + + +@asyncio.coroutine +def test_api_update_fails(hass, test_client): + """Test the API.""" + yield from async_setup_component(hass, 'shopping_list', {}) + + yield from intent.async_handle( + hass, 'test', 'HassShoppingListAddItem', {'item': {'value': 'beer'}} + ) + + client = yield from test_client(hass.http.app) + resp = yield from client.post( + '/api/shopping_list/non_existing', json={ + 'name': 'soda' + }) + + assert resp.status == 404 + + beer_id = hass.data['shopping_list'].items[0]['id'] + client = yield from test_client(hass.http.app) + resp = yield from client.post( + '/api/shopping_list/{}'.format(beer_id), json={ + 'name': 123, + }) + + assert resp.status == 400 From d1b73a96f4e45722abc0882ce4b3c41cf1b58bfa Mon Sep 17 00:00:00 2001 From: kfcook <809694+kfcook@users.noreply.github.com> Date: Sat, 29 Jul 2017 12:07:28 -0400 Subject: [PATCH 005/128] Added Lutron Caseta Scene Support (#8690) * added scene support * Updated pylutron_caseta version number * Updated pylutron_caseta version number * Fixed lint errors * fix style --- homeassistant/components/lutron_caseta.py | 8 ++- .../components/scene/lutron_caseta.py | 55 +++++++++++++++++++ requirements_all.txt | 2 +- 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 homeassistant/components/scene/lutron_caseta.py diff --git a/homeassistant/components/lutron_caseta.py b/homeassistant/components/lutron_caseta.py index e2ad733fb36..dcb3347e919 100644 --- a/homeassistant/components/lutron_caseta.py +++ b/homeassistant/components/lutron_caseta.py @@ -14,7 +14,7 @@ from homeassistant.const import CONF_HOST from homeassistant.helpers import discovery from homeassistant.helpers.entity import Entity -REQUIREMENTS = ['pylutron-caseta==0.2.6'] +REQUIREMENTS = ['pylutron-caseta==0.2.7'] _LOGGER = logging.getLogger(__name__) @@ -28,6 +28,10 @@ CONFIG_SCHEMA = vol.Schema({ }) }, extra=vol.ALLOW_EXTRA) +LUTRON_CASETA_COMPONENTS = [ + 'light', 'switch', 'cover', 'scene' +] + def setup(hass, base_config): """Set up the Lutron component.""" @@ -44,7 +48,7 @@ def setup(hass, base_config): _LOGGER.info("Connected to Lutron smartbridge at %s", config[CONF_HOST]) - for component in ('light', 'switch', 'cover'): + for component in LUTRON_CASETA_COMPONENTS: discovery.load_platform(hass, component, DOMAIN, {}, config) return True diff --git a/homeassistant/components/scene/lutron_caseta.py b/homeassistant/components/scene/lutron_caseta.py new file mode 100644 index 00000000000..b98f7f3e6ea --- /dev/null +++ b/homeassistant/components/scene/lutron_caseta.py @@ -0,0 +1,55 @@ +""" +Support for Lutron Caseta scenes. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/scene.lutron_caseta/ +""" +import logging + +from homeassistant.components.scene import Scene +from homeassistant.components.lutron_caseta import LUTRON_CASETA_SMARTBRIDGE + +_LOGGER = logging.getLogger(__name__) + +DEPENDENCIES = ['lutron_caseta'] + + +def setup_platform(hass, config, add_devices, discovery_info=None): + """Set up the Lutron Caseta lights.""" + devs = [] + bridge = hass.data[LUTRON_CASETA_SMARTBRIDGE] + scenes = bridge.get_scenes() + for scene in scenes: + dev = LutronCasetaScene(scenes[scene], bridge) + devs.append(dev) + + add_devices(devs, True) + + +class LutronCasetaScene(Scene): + """Representation of a Lutron Caseta scene.""" + + def __init__(self, scene, bridge): + """Initialize the Lutron Caseta scene.""" + self._scene_name = scene["name"] + self._scene_id = scene["scene_id"] + self._bridge = bridge + + @property + def name(self): + """Return the name of the scene.""" + return self._scene_name + + @property + def should_poll(self): + """Return that polling is not necessary.""" + return False + + @property + def is_on(self): + """There is no way of detecting if a scene is active (yet).""" + return False + + def activate(self, **kwargs): + """Activate the scene.""" + self._bridge.activate_scene(self._scene_id) diff --git a/requirements_all.txt b/requirements_all.txt index 5b140580140..7220bd0cfc2 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -624,7 +624,7 @@ pylitejet==0.1 pyloopenergy==0.0.17 # homeassistant.components.lutron_caseta -pylutron-caseta==0.2.6 +pylutron-caseta==0.2.7 # homeassistant.components.lutron pylutron==0.1.0 From 0bde0a6f3a6820e62c501dfad8af56a38d51046f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Jul 2017 12:22:38 -0700 Subject: [PATCH 006/128] Persist shopping list + clear completed (#8697) --- homeassistant/components/shopping_list.py | 71 +++++++++++++++++++---- tests/components/test_shopping_list.py | 53 ++++++++++++++++- 2 files changed, 111 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/shopping_list.py b/homeassistant/components/shopping_list.py index 9922960da3f..ad9fae67bc6 100644 --- a/homeassistant/components/shopping_list.py +++ b/homeassistant/components/shopping_list.py @@ -1,6 +1,8 @@ """Component to manage a shoppling list.""" import asyncio +import json import logging +import os import uuid import voluptuous as vol @@ -23,43 +25,55 @@ ITEM_UPDATE_SCHEMA = vol.Schema({ 'complete': bool, 'name': str, }) +PERSISTENCE = '.shopping_list.json' @asyncio.coroutine def async_setup(hass, config): """Initialize the shopping list.""" - hass.data[DOMAIN] = ShoppingData([]) + data = hass.data[DOMAIN] = ShoppingData(hass) + yield from data.async_load() + intent.async_register(hass, AddItemIntent()) intent.async_register(hass, ListTopItemsIntent()) + hass.http.register_view(ShoppingListView) hass.http.register_view(UpdateShoppingListItemView) + hass.http.register_view(ClearCompletedItemsView) + hass.components.conversation.async_register(INTENT_ADD_ITEM, [ 'Add {item} to my shopping list', ]) hass.components.conversation.async_register(INTENT_LAST_ITEMS, [ 'What is on my shopping list' ]) + hass.components.frontend.register_built_in_panel( 'shopping-list', 'Shopping List', 'mdi:cart') + return True class ShoppingData: """Class to hold shopping list data.""" - def __init__(self, items): + def __init__(self, hass): """Initialize the shopping list.""" - self.items = items + self.hass = hass + self.items = [] - def add(self, name): + @callback + def async_add(self, name): """Add a shopping list item.""" self.items.append({ 'name': name, 'id': uuid.uuid4().hex, 'complete': False }) + self.hass.async_add_job(self.save) - def update(self, item_id, info): + @callback + def async_update(self, item_id, info): """Update a shopping list item.""" item = next((itm for itm in self.items if itm['id'] == item_id), None) @@ -68,11 +82,33 @@ class ShoppingData: info = ITEM_UPDATE_SCHEMA(info) item.update(info) + self.hass.async_add_job(self.save) return item - def clear_completed(self): + @callback + def async_clear_completed(self): """Clear completed items.""" self.items = [itm for itm in self.items if not itm['complete']] + self.hass.async_add_job(self.save) + + @asyncio.coroutine + def async_load(self): + """Load items.""" + def load(): + """Load the items synchronously.""" + path = self.hass.config.path(PERSISTENCE) + if not os.path.isfile(path): + return [] + with open(path) as file: + return json.loads(file.read()) + + items = yield from self.hass.async_add_job(load) + self.items = items + + def save(self): + """Save the items.""" + with open(self.hass.config.path(PERSISTENCE), 'wt') as file: + file.write(json.dumps(self.items, sort_keys=True, indent=4)) class AddItemIntent(intent.IntentHandler): @@ -88,7 +124,7 @@ class AddItemIntent(intent.IntentHandler): """Handle the intent.""" slots = self.async_validate_slots(intent_obj.slots) item = slots['item']['value'] - intent_obj.hass.data[DOMAIN].add(item) + intent_obj.hass.data[DOMAIN].async_add(item) response = intent_obj.create_response() response.async_set_speech( @@ -137,8 +173,8 @@ class ShoppingListView(http.HomeAssistantView): class UpdateShoppingListItemView(http.HomeAssistantView): """View to retrieve shopping list content.""" - url = '/api/shopping_list/{item_id}' - name = "api:shopping_list:id" + url = '/api/shopping_list/item/{item_id}' + name = "api:shopping_list:item:id" @callback def post(self, request, item_id): @@ -146,10 +182,25 @@ class UpdateShoppingListItemView(http.HomeAssistantView): data = yield from request.json() try: - item = request.app['hass'].data[DOMAIN].update(item_id, data) + item = request.app['hass'].data[DOMAIN].async_update(item_id, data) request.app['hass'].bus.async_fire(EVENT) return self.json(item) except KeyError: return self.json_message('Item not found', HTTP_NOT_FOUND) except vol.Invalid: return self.json_message('Item not found', HTTP_BAD_REQUEST) + + +class ClearCompletedItemsView(http.HomeAssistantView): + """View to retrieve shopping list content.""" + + url = '/api/shopping_list/clear_completed' + name = "api:shopping_list:clear_completed" + + @callback + def post(self, request): + """Retrieve if API is running.""" + hass = request.app['hass'] + hass.data[DOMAIN].async_clear_completed() + hass.bus.async_fire(EVENT) + return self.json_message('Cleared completed items.') diff --git a/tests/components/test_shopping_list.py b/tests/components/test_shopping_list.py index e4a99ad39d4..449eab65016 100644 --- a/tests/components/test_shopping_list.py +++ b/tests/components/test_shopping_list.py @@ -1,10 +1,20 @@ """Test shopping list component.""" import asyncio +from unittest.mock import patch + +import pytest from homeassistant.bootstrap import async_setup_component from homeassistant.helpers import intent +@pytest.fixture(autouse=True) +def mock_shopping_list_save(): + """Stub out the persistence.""" + with patch('homeassistant.components.shopping_list.ShoppingData.save'): + yield + + @asyncio.coroutine def test_add_item(hass): """Test adding an item intent.""" @@ -82,7 +92,7 @@ def test_api_update(hass, test_client): client = yield from test_client(hass.http.app) resp = yield from client.post( - '/api/shopping_list/{}'.format(beer_id), json={ + '/api/shopping_list/item/{}'.format(beer_id), json={ 'name': 'soda' }) @@ -95,7 +105,7 @@ def test_api_update(hass, test_client): } resp = yield from client.post( - '/api/shopping_list/{}'.format(wine_id), json={ + '/api/shopping_list/item/{}'.format(wine_id), json={ 'complete': True }) @@ -140,8 +150,45 @@ def test_api_update_fails(hass, test_client): beer_id = hass.data['shopping_list'].items[0]['id'] client = yield from test_client(hass.http.app) resp = yield from client.post( - '/api/shopping_list/{}'.format(beer_id), json={ + '/api/shopping_list/item/{}'.format(beer_id), json={ 'name': 123, }) assert resp.status == 400 + + +@asyncio.coroutine +def test_api_clear_completed(hass, test_client): + """Test the API.""" + yield from async_setup_component(hass, 'shopping_list', {}) + + yield from intent.async_handle( + hass, 'test', 'HassShoppingListAddItem', {'item': {'value': 'beer'}} + ) + yield from intent.async_handle( + hass, 'test', 'HassShoppingListAddItem', {'item': {'value': 'wine'}} + ) + + beer_id = hass.data['shopping_list'].items[0]['id'] + wine_id = hass.data['shopping_list'].items[1]['id'] + + client = yield from test_client(hass.http.app) + + # Mark beer as completed + resp = yield from client.post( + '/api/shopping_list/item/{}'.format(beer_id), json={ + 'complete': True + }) + assert resp.status == 200 + + resp = yield from client.post('/api/shopping_list/clear_completed') + assert resp.status == 200 + + items = hass.data['shopping_list'].items + assert len(items) == 1 + + assert items[0] == { + 'id': wine_id, + 'name': 'wine', + 'complete': False + } From 80ab02c3e8fa0eb1f5cc4e0f1a002c421e14935e Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Sat, 29 Jul 2017 16:24:15 -0400 Subject: [PATCH 007/128] Correctly discover GE Fan Controllers (#8682) --- homeassistant/components/zwave/discovery_schemas.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/homeassistant/components/zwave/discovery_schemas.py b/homeassistant/components/zwave/discovery_schemas.py index c880aeb3b31..26a5d1c4758 100644 --- a/homeassistant/components/zwave/discovery_schemas.py +++ b/homeassistant/components/zwave/discovery_schemas.py @@ -110,6 +110,17 @@ DISCOVERY_SCHEMAS = [ const.COMMAND_CLASS_SWITCH_BINARY], const.DISC_GENRE: const.GENRE_USER, }})}, + {const.DISC_COMPONENT: 'fan', + const.DISC_GENERIC_DEVICE_CLASS: [ + const.GENERIC_TYPE_SWITCH_MULTILEVEL], + const.DISC_SPECIFIC_DEVICE_CLASS: [ + const.SPECIFIC_TYPE_FAN_SWITCH], + const.DISC_VALUES: dict(DEFAULT_VALUES_SCHEMA, **{ + const.DISC_PRIMARY: { + const.DISC_COMMAND_CLASS: [const.COMMAND_CLASS_SWITCH_MULTILEVEL], + const.DISC_INDEX: [const.INDEX_SWITCH_MULTILEVEL_LEVEL], + const.DISC_TYPE: const.TYPE_BYTE, + }})}, {const.DISC_COMPONENT: 'light', const.DISC_GENERIC_DEVICE_CLASS: [ const.GENERIC_TYPE_SWITCH_MULTILEVEL, From 78428b0acd1cbe1801dd2c0141c30bade6d507e6 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Jul 2017 13:33:52 -0700 Subject: [PATCH 008/128] Version bump to 0.51.0.dev0 --- homeassistant/const.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index 751aa316084..cbcd4da1640 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -1,8 +1,8 @@ # coding: utf-8 """Constants used by Home Assistant components.""" MAJOR_VERSION = 0 -MINOR_VERSION = 50 -PATCH_VERSION = '0' +MINOR_VERSION = 51 +PATCH_VERSION = '0.dev0' __short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION) __version__ = '{}.{}'.format(__short_version__, PATCH_VERSION) REQUIRED_PYTHON_VER = (3, 4, 2) From 750ea44b4b850cb9c3daf7e4bedeb6c70bb60ad6 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Sat, 29 Jul 2017 19:17:41 -0400 Subject: [PATCH 009/128] Remove deprecated host and ssl logic from Kodi (#8700) --- homeassistant/components/media_player/kodi.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/media_player/kodi.py b/homeassistant/components/media_player/kodi.py index 3764677c847..684e49ad4b5 100644 --- a/homeassistant/components/media_player/kodi.py +++ b/homeassistant/components/media_player/kodi.py @@ -25,12 +25,11 @@ from homeassistant.components.media_player import ( SUPPORT_TURN_ON) from homeassistant.const import ( STATE_IDLE, STATE_OFF, STATE_PAUSED, STATE_PLAYING, CONF_HOST, CONF_NAME, - CONF_PORT, CONF_SSL, CONF_PROXY_SSL, CONF_USERNAME, CONF_PASSWORD, + CONF_PORT, CONF_PROXY_SSL, CONF_USERNAME, CONF_PASSWORD, CONF_TIMEOUT, EVENT_HOMEASSISTANT_STOP) from homeassistant.core import callback from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers import script, config_validation as cv -from homeassistant.helpers.deprecation import get_deprecated from homeassistant.helpers.template import Template from homeassistant.util.yaml import dump @@ -161,16 +160,9 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): host = config.get(CONF_HOST) port = config.get(CONF_PORT) tcp_port = config.get(CONF_TCP_PORT) - encryption = get_deprecated(config, CONF_PROXY_SSL, CONF_SSL) + encryption = config.get(CONF_PROXY_SSL) websocket = config.get(CONF_ENABLE_WEBSOCKET) - if host.startswith('http://') or host.startswith('https://'): - host = host.lstrip('http://').lstrip('https://') - _LOGGER.warning( - "Kodi host name should no longer conatin http:// See updated " - "definitions here: " - "https://home-assistant.io/components/media_player.kodi/") - entity = KodiDevice( hass, name=name, From 8ba9e8016bc3c379dfe6e4532ac986e3f4d256f3 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Sat, 29 Jul 2017 19:18:06 -0400 Subject: [PATCH 010/128] Remove deprecated substitute interfaces (#8701) --- homeassistant/components/binary_sensor/__init__.py | 2 -- homeassistant/components/media_player/__init__.py | 2 -- 2 files changed, 4 deletions(-) diff --git a/homeassistant/components/binary_sensor/__init__.py b/homeassistant/components/binary_sensor/__init__.py index 8f2b6bc59b3..4ba29e9b2ba 100644 --- a/homeassistant/components/binary_sensor/__init__.py +++ b/homeassistant/components/binary_sensor/__init__.py @@ -14,7 +14,6 @@ from homeassistant.helpers.entity_component import EntityComponent from homeassistant.helpers.entity import Entity from homeassistant.const import (STATE_ON, STATE_OFF) from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa -from homeassistant.helpers.deprecation import deprecated_substitute DOMAIN = 'binary_sensor' SCAN_INTERVAL = timedelta(seconds=30) @@ -66,7 +65,6 @@ class BinarySensorDevice(Entity): return STATE_ON if self.is_on else STATE_OFF @property - @deprecated_substitute('sensor_class') def device_class(self): """Return the class of this device, from component DEVICE_CLASSES.""" return None diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index a53f7f1367a..870252cc55e 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -21,7 +21,6 @@ from homeassistant.loader import bind_hass from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity_component import EntityComponent from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa -from homeassistant.helpers.deprecation import deprecated_substitute from homeassistant.components.http import HomeAssistantView, KEY_AUTHENTICATED from homeassistant.helpers.aiohttp_client import async_get_clientsession import homeassistant.helpers.config_validation as cv @@ -589,7 +588,6 @@ class MediaPlayerDevice(Entity): return None @property - @deprecated_substitute('supported_media_commands') def supported_features(self): """Flag media player features that are supported.""" return 0 From 8ac63fd70cc65f2a94b0f1d0e7eb2b63c17185fc Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Sat, 29 Jul 2017 19:46:27 -0400 Subject: [PATCH 011/128] Remove deprecated sensor_class config options (#8702) --- homeassistant/components/binary_sensor/arest.py | 6 ++---- homeassistant/components/binary_sensor/command_line.py | 6 ++---- homeassistant/components/binary_sensor/digital_ocean.py | 4 ++-- homeassistant/components/binary_sensor/enocean.py | 6 ++---- homeassistant/components/binary_sensor/mqtt.py | 6 ++---- homeassistant/components/binary_sensor/ping.py | 4 ++-- homeassistant/components/binary_sensor/rest.py | 6 ++---- homeassistant/components/binary_sensor/template.py | 8 ++------ homeassistant/components/binary_sensor/threshold.py | 6 ++---- homeassistant/components/binary_sensor/trend.py | 8 ++------ homeassistant/components/binary_sensor/volvooncall.py | 2 +- homeassistant/const.py | 1 - 12 files changed, 21 insertions(+), 42 deletions(-) diff --git a/homeassistant/components/binary_sensor/arest.py b/homeassistant/components/binary_sensor/arest.py index 5b58a6cbf6a..73751ef14bb 100644 --- a/homeassistant/components/binary_sensor/arest.py +++ b/homeassistant/components/binary_sensor/arest.py @@ -13,10 +13,9 @@ import voluptuous as vol from homeassistant.components.binary_sensor import ( BinarySensorDevice, PLATFORM_SCHEMA, DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( - CONF_RESOURCE, CONF_PIN, CONF_NAME, CONF_SENSOR_CLASS, CONF_DEVICE_CLASS) + CONF_RESOURCE, CONF_PIN, CONF_NAME, CONF_DEVICE_CLASS) from homeassistant.util import Throttle import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -26,7 +25,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_RESOURCE): cv.url, vol.Optional(CONF_NAME): cv.string, vol.Required(CONF_PIN): cv.string, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -35,7 +33,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the aREST binary sensor.""" resource = config.get(CONF_RESOURCE) pin = config.get(CONF_PIN) - device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) + device_class = config.get(CONF_DEVICE_CLASS) try: response = requests.get(resource, timeout=10).json() diff --git a/homeassistant/components/binary_sensor/command_line.py b/homeassistant/components/binary_sensor/command_line.py index 6ed0e40409a..8c4c691e7d7 100644 --- a/homeassistant/components/binary_sensor/command_line.py +++ b/homeassistant/components/binary_sensor/command_line.py @@ -14,9 +14,8 @@ from homeassistant.components.binary_sensor import ( from homeassistant.components.sensor.command_line import CommandSensorData from homeassistant.const import ( CONF_PAYLOAD_OFF, CONF_PAYLOAD_ON, CONF_NAME, CONF_VALUE_TEMPLATE, - CONF_SENSOR_CLASS, CONF_COMMAND, CONF_DEVICE_CLASS) + CONF_COMMAND, CONF_DEVICE_CLASS) import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -31,7 +30,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string, vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_VALUE_TEMPLATE): cv.template, }) @@ -44,7 +42,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): command = config.get(CONF_COMMAND) payload_off = config.get(CONF_PAYLOAD_OFF) payload_on = config.get(CONF_PAYLOAD_ON) - device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) + device_class = config.get(CONF_DEVICE_CLASS) value_template = config.get(CONF_VALUE_TEMPLATE) if value_template is not None: value_template.hass = hass diff --git a/homeassistant/components/binary_sensor/digital_ocean.py b/homeassistant/components/binary_sensor/digital_ocean.py index d9a0ac6711b..140c84358c7 100644 --- a/homeassistant/components/binary_sensor/digital_ocean.py +++ b/homeassistant/components/binary_sensor/digital_ocean.py @@ -19,7 +19,7 @@ from homeassistant.components.digital_ocean import ( _LOGGER = logging.getLogger(__name__) DEFAULT_NAME = 'Droplet' -DEFAULT_SENSOR_CLASS = 'moving' +DEFAULT_DEVICE_CLASS = 'moving' DEPENDENCIES = ['digital_ocean'] PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ @@ -69,7 +69,7 @@ class DigitalOceanBinarySensor(BinarySensorDevice): @property def device_class(self): """Return the class of this sensor.""" - return DEFAULT_SENSOR_CLASS + return DEFAULT_DEVICE_CLASS @property def device_state_attributes(self): diff --git a/homeassistant/components/binary_sensor/enocean.py b/homeassistant/components/binary_sensor/enocean.py index 36574450e4d..d2ecd5e17e1 100644 --- a/homeassistant/components/binary_sensor/enocean.py +++ b/homeassistant/components/binary_sensor/enocean.py @@ -12,9 +12,8 @@ from homeassistant.components.binary_sensor import ( BinarySensorDevice, PLATFORM_SCHEMA, DEVICE_CLASSES_SCHEMA) from homeassistant.components import enocean from homeassistant.const import ( - CONF_NAME, CONF_ID, CONF_SENSOR_CLASS, CONF_DEVICE_CLASS) + CONF_NAME, CONF_ID, CONF_DEVICE_CLASS) import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -24,7 +23,6 @@ DEFAULT_NAME = 'EnOcean binary sensor' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_ID): vol.All(cv.ensure_list, [vol.Coerce(int)]), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -33,7 +31,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Binary Sensor platform for EnOcean.""" dev_id = config.get(CONF_ID) devname = config.get(CONF_NAME) - device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) + device_class = config.get(CONF_DEVICE_CLASS) add_devices([EnOceanBinarySensor(dev_id, devname, device_class)]) diff --git a/homeassistant/components/binary_sensor/mqtt.py b/homeassistant/components/binary_sensor/mqtt.py index fe19523c5b2..3702b32d586 100644 --- a/homeassistant/components/binary_sensor/mqtt.py +++ b/homeassistant/components/binary_sensor/mqtt.py @@ -15,10 +15,9 @@ from homeassistant.components.binary_sensor import ( BinarySensorDevice, DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( CONF_NAME, CONF_VALUE_TEMPLATE, CONF_PAYLOAD_ON, CONF_PAYLOAD_OFF, - CONF_SENSOR_CLASS, CONF_DEVICE_CLASS) + CONF_DEVICE_CLASS) from homeassistant.components.mqtt import (CONF_STATE_TOPIC, CONF_QOS) import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -31,7 +30,6 @@ PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string, vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -49,7 +47,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): async_add_devices([MqttBinarySensor( config.get(CONF_NAME), config.get(CONF_STATE_TOPIC), - get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS), + config.get(CONF_DEVICE_CLASS), config.get(CONF_QOS), config.get(CONF_PAYLOAD_ON), config.get(CONF_PAYLOAD_OFF), diff --git a/homeassistant/components/binary_sensor/ping.py b/homeassistant/components/binary_sensor/ping.py index 1919c7ab64d..0830d86dc2a 100644 --- a/homeassistant/components/binary_sensor/ping.py +++ b/homeassistant/components/binary_sensor/ping.py @@ -28,7 +28,7 @@ CONF_PING_COUNT = 'count' DEFAULT_NAME = 'Ping Binary sensor' DEFAULT_PING_COUNT = 5 -DEFAULT_SENSOR_CLASS = 'connectivity' +DEFAULT_DEVICE_CLASS = 'connectivity' SCAN_INTERVAL = timedelta(minutes=5) @@ -73,7 +73,7 @@ class PingBinarySensor(BinarySensorDevice): @property def device_class(self): """Return the class of this sensor.""" - return DEFAULT_SENSOR_CLASS + return DEFAULT_DEVICE_CLASS @property def is_on(self): diff --git a/homeassistant/components/binary_sensor/rest.py b/homeassistant/components/binary_sensor/rest.py index 6d1745700bd..ddd263894c1 100644 --- a/homeassistant/components/binary_sensor/rest.py +++ b/homeassistant/components/binary_sensor/rest.py @@ -14,11 +14,10 @@ from homeassistant.components.binary_sensor import ( from homeassistant.components.sensor.rest import RestData from homeassistant.const import ( CONF_PAYLOAD, CONF_NAME, CONF_VALUE_TEMPLATE, CONF_METHOD, CONF_RESOURCE, - CONF_SENSOR_CLASS, CONF_VERIFY_SSL, CONF_USERNAME, CONF_PASSWORD, + CONF_VERIFY_SSL, CONF_USERNAME, CONF_PASSWORD, CONF_HEADERS, CONF_AUTHENTICATION, HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION, CONF_DEVICE_CLASS) import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -35,7 +34,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PASSWORD): cv.string, vol.Optional(CONF_PAYLOAD): cv.string, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_USERNAME): cv.string, vol.Optional(CONF_VALUE_TEMPLATE): cv.template, @@ -53,7 +51,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) headers = config.get(CONF_HEADERS) - device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) + device_class = config.get(CONF_DEVICE_CLASS) value_template = config.get(CONF_VALUE_TEMPLATE) if value_template is not None: value_template.hass = hass diff --git a/homeassistant/components/binary_sensor/template.py b/homeassistant/components/binary_sensor/template.py index 989f8b358af..330e8eaea9d 100644 --- a/homeassistant/components/binary_sensor/template.py +++ b/homeassistant/components/binary_sensor/template.py @@ -15,11 +15,9 @@ from homeassistant.components.binary_sensor import ( DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( ATTR_FRIENDLY_NAME, ATTR_ENTITY_ID, CONF_VALUE_TEMPLATE, - CONF_SENSOR_CLASS, CONF_SENSORS, CONF_DEVICE_CLASS, - EVENT_HOMEASSISTANT_START, STATE_ON) + CONF_SENSORS, CONF_DEVICE_CLASS, EVENT_HOMEASSISTANT_START, STATE_ON) from homeassistant.exceptions import TemplateError import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.deprecation import get_deprecated from homeassistant.helpers.entity import async_generate_entity_id from homeassistant.helpers.event import async_track_state_change from homeassistant.helpers.restore_state import async_get_last_state @@ -30,7 +28,6 @@ SENSOR_SCHEMA = vol.Schema({ vol.Required(CONF_VALUE_TEMPLATE): cv.template, vol.Optional(ATTR_FRIENDLY_NAME): cv.string, vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -49,8 +46,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): entity_ids = (device_config.get(ATTR_ENTITY_ID) or value_template.extract_entities()) friendly_name = device_config.get(ATTR_FRIENDLY_NAME, device) - device_class = get_deprecated( - device_config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) + device_class = device_config.get(CONF_DEVICE_CLASS) if value_template is not None: value_template.hass = hass diff --git a/homeassistant/components/binary_sensor/threshold.py b/homeassistant/components/binary_sensor/threshold.py index b4891906a01..866e16ecbe2 100644 --- a/homeassistant/components/binary_sensor/threshold.py +++ b/homeassistant/components/binary_sensor/threshold.py @@ -13,10 +13,9 @@ import homeassistant.helpers.config_validation as cv from homeassistant.components.binary_sensor import ( BinarySensorDevice, PLATFORM_SCHEMA, DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( - CONF_NAME, CONF_ENTITY_ID, CONF_TYPE, STATE_UNKNOWN, CONF_SENSOR_CLASS, + CONF_NAME, CONF_ENTITY_ID, CONF_TYPE, STATE_UNKNOWN, ATTR_ENTITY_ID, CONF_DEVICE_CLASS) from homeassistant.core import callback -from homeassistant.helpers.deprecation import get_deprecated from homeassistant.helpers.event import async_track_state_change _LOGGER = logging.getLogger(__name__) @@ -38,7 +37,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_THRESHOLD): vol.Coerce(float), vol.Required(CONF_TYPE): vol.In(SENSOR_TYPES), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -50,7 +48,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): name = config.get(CONF_NAME) threshold = config.get(CONF_THRESHOLD) limit_type = config.get(CONF_TYPE) - device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) + device_class = config.get(CONF_DEVICE_CLASS) async_add_devices( [ThresholdSensor(hass, entity_id, name, threshold, limit_type, diff --git a/homeassistant/components/binary_sensor/trend.py b/homeassistant/components/binary_sensor/trend.py index 82585acfc38..88fdb448330 100644 --- a/homeassistant/components/binary_sensor/trend.py +++ b/homeassistant/components/binary_sensor/trend.py @@ -16,9 +16,7 @@ from homeassistant.components.binary_sensor import ( BinarySensorDevice, ENTITY_ID_FORMAT, PLATFORM_SCHEMA, DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( - ATTR_FRIENDLY_NAME, ATTR_ENTITY_ID, CONF_SENSOR_CLASS, - CONF_DEVICE_CLASS, STATE_UNKNOWN,) -from homeassistant.helpers.deprecation import get_deprecated + ATTR_FRIENDLY_NAME, ATTR_ENTITY_ID, CONF_DEVICE_CLASS, STATE_UNKNOWN) from homeassistant.helpers.entity import generate_entity_id from homeassistant.helpers.event import track_state_change @@ -32,7 +30,6 @@ SENSOR_SCHEMA = vol.Schema({ vol.Optional(CONF_ATTRIBUTE): cv.string, vol.Optional(ATTR_FRIENDLY_NAME): cv.string, vol.Optional(CONF_INVERT, default=False): cv.boolean, - vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -50,8 +47,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): entity_id = device_config[ATTR_ENTITY_ID] attribute = device_config.get(CONF_ATTRIBUTE) friendly_name = device_config.get(ATTR_FRIENDLY_NAME, device) - device_class = get_deprecated( - device_config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) + device_class = device_config.get(CONF_DEVICE_CLASS) invert = device_config[CONF_INVERT] sensors.append( diff --git a/homeassistant/components/binary_sensor/volvooncall.py b/homeassistant/components/binary_sensor/volvooncall.py index 471b3917054..39f520ddc6d 100644 --- a/homeassistant/components/binary_sensor/volvooncall.py +++ b/homeassistant/components/binary_sensor/volvooncall.py @@ -34,5 +34,5 @@ class VolvoSensor(VolvoEntity, BinarySensorDevice): @property def device_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + """Return the class of this sensor, from DEVICE_CLASSES.""" return 'safety' diff --git a/homeassistant/const.py b/homeassistant/const.py index cbcd4da1640..c5e2993f510 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -139,7 +139,6 @@ CONF_RESOURCES = 'resources' CONF_RGB = 'rgb' CONF_SCAN_INTERVAL = 'scan_interval' CONF_SENDER = 'sender' -CONF_SENSOR_CLASS = 'sensor_class' CONF_SENSOR_TYPE = 'sensor_type' CONF_SENSORS = 'sensors' CONF_SLAVE = 'slave' From a94e7ec25d204868d773845dd2ba853c6e323305 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Sun, 30 Jul 2017 00:40:56 -0400 Subject: [PATCH 012/128] Fix Z-Wave barrier discovery for new API (#8706) --- homeassistant/components/cover/zwave.py | 55 ++++++++++++------ homeassistant/components/zwave/const.py | 3 + .../components/zwave/discovery_schemas.py | 22 ++++++-- tests/components/cover/test_zwave.py | 56 +++++++++++++++++-- 4 files changed, 111 insertions(+), 25 deletions(-) diff --git a/homeassistant/components/cover/zwave.py b/homeassistant/components/cover/zwave.py index b8daab81503..3c038125616 100644 --- a/homeassistant/components/cover/zwave.py +++ b/homeassistant/components/cover/zwave.py @@ -27,10 +27,12 @@ def get_device(hass, values, node_config, **kwargs): zwave.const.COMMAND_CLASS_SWITCH_MULTILEVEL and values.primary.index == 0): return ZwaveRollershutter(hass, values, invert_buttons) - elif (values.primary.command_class in [ - zwave.const.COMMAND_CLASS_SWITCH_BINARY, - zwave.const.COMMAND_CLASS_BARRIER_OPERATOR]): - return ZwaveGarageDoor(values) + elif (values.primary.command_class == + zwave.const.COMMAND_CLASS_SWITCH_BINARY): + return ZwaveGarageDoorSwitch(values) + elif (values.primary.command_class == + zwave.const.COMMAND_CLASS_BARRIER_OPERATOR): + return ZwaveGarageDoorBarrier(values) return None @@ -104,8 +106,8 @@ class ZwaveRollershutter(zwave.ZWaveDeviceEntity, CoverDevice): self._network.manager.releaseButton(self._open_id) -class ZwaveGarageDoor(zwave.ZWaveDeviceEntity, CoverDevice): - """Representation of an Zwave garage door device.""" +class ZwaveGarageDoorBase(zwave.ZWaveDeviceEntity, CoverDevice): + """Base class for a Zwave garage door device.""" def __init__(self, values): """Initialize the zwave garage door.""" @@ -118,6 +120,37 @@ class ZwaveGarageDoor(zwave.ZWaveDeviceEntity, CoverDevice): self._state = self.values.primary.data _LOGGER.debug("self._state=%s", self._state) + @property + def device_class(self): + """Return the class of this device, from component DEVICE_CLASSES.""" + return 'garage' + + @property + def supported_features(self): + """Flag supported features.""" + return SUPPORT_GARAGE + + +class ZwaveGarageDoorSwitch(ZwaveGarageDoorBase): + """Representation of a switch based Zwave garage door device.""" + + @property + def is_closed(self): + """Return the current position of Zwave garage door.""" + return not self._state + + def close_cover(self): + """Close the garage door.""" + self.values.primary.data = False + + def open_cover(self): + """Open the garage door.""" + self.values.primary.data = True + + +class ZwaveGarageDoorBarrier(ZwaveGarageDoorBase): + """Representation of a barrier operator Zwave garage door device.""" + @property def is_opening(self): """Return true if cover is in an opening state.""" @@ -140,13 +173,3 @@ class ZwaveGarageDoor(zwave.ZWaveDeviceEntity, CoverDevice): def open_cover(self): """Open the garage door.""" self.values.primary.data = "Opened" - - @property - def device_class(self): - """Return the class of this device, from component DEVICE_CLASSES.""" - return 'garage' - - @property - def supported_features(self): - """Flag supported features.""" - return SUPPORT_GARAGE diff --git a/homeassistant/components/zwave/const.py b/homeassistant/components/zwave/const.py index 4b18ef46475..b72d9eb0cff 100644 --- a/homeassistant/components/zwave/const.py +++ b/homeassistant/components/zwave/const.py @@ -345,6 +345,9 @@ INDEX_ALARM_TYPE = 0 INDEX_ALARM_LEVEL = 1 INDEX_ALARM_ACCESS_CONTROL = 9 +# https://github.com/OpenZWave/open-zwave/blob/de1c0e60edf1d1bee81f1ae54b1f58e66c6fd8ed/cpp/src/command_classes/BarrierOperator.cpp#L69 +INDEX_BARRIER_OPERATOR_LABEL = 1 + # https://github.com/OpenZWave/open-zwave/blob/67f180eb565f0054f517ff395c71ecd706f6a837/cpp/src/command_classes/DoorLock.cpp#L77 INDEX_DOOR_LOCK_LOCK = 0 diff --git a/homeassistant/components/zwave/discovery_schemas.py b/homeassistant/components/zwave/discovery_schemas.py index 26a5d1c4758..f38bc308649 100644 --- a/homeassistant/components/zwave/discovery_schemas.py +++ b/homeassistant/components/zwave/discovery_schemas.py @@ -92,7 +92,7 @@ DISCOVERY_SCHEMAS = [ const.DISC_INDEX: [const.INDEX_SWITCH_MULTILEVEL_DIM], const.DISC_OPTIONAL: True, }})}, - {const.DISC_COMPONENT: 'cover', # Garage Door + {const.DISC_COMPONENT: 'cover', # Garage Door Switch const.DISC_GENERIC_DEVICE_CLASS: [ const.GENERIC_TYPE_SWITCH_MULTILEVEL, const.GENERIC_TYPE_ENTRY_CONTROL], @@ -105,11 +105,25 @@ DISCOVERY_SCHEMAS = [ const.SPECIFIC_TYPE_SECURE_DOOR], const.DISC_VALUES: dict(DEFAULT_VALUES_SCHEMA, **{ const.DISC_PRIMARY: { - const.DISC_COMMAND_CLASS: [ - const.COMMAND_CLASS_BARRIER_OPERATOR, - const.COMMAND_CLASS_SWITCH_BINARY], + const.DISC_COMMAND_CLASS: [const.COMMAND_CLASS_SWITCH_BINARY], const.DISC_GENRE: const.GENRE_USER, }})}, + {const.DISC_COMPONENT: 'cover', # Garage Door Barrier + const.DISC_GENERIC_DEVICE_CLASS: [ + const.GENERIC_TYPE_SWITCH_MULTILEVEL, + const.GENERIC_TYPE_ENTRY_CONTROL], + const.DISC_SPECIFIC_DEVICE_CLASS: [ + const.SPECIFIC_TYPE_CLASS_A_MOTOR_CONTROL, + const.SPECIFIC_TYPE_CLASS_B_MOTOR_CONTROL, + const.SPECIFIC_TYPE_CLASS_C_MOTOR_CONTROL, + const.SPECIFIC_TYPE_MOTOR_MULTIPOSITION, + const.SPECIFIC_TYPE_SECURE_BARRIER_ADDON, + const.SPECIFIC_TYPE_SECURE_DOOR], + const.DISC_VALUES: dict(DEFAULT_VALUES_SCHEMA, **{ + const.DISC_PRIMARY: { + const.DISC_COMMAND_CLASS: [const.COMMAND_CLASS_BARRIER_OPERATOR], + const.DISC_INDEX: [const.INDEX_BARRIER_OPERATOR_LABEL], + }})}, {const.DISC_COMPONENT: 'fan', const.DISC_GENERIC_DEVICE_CLASS: [ const.GENERIC_TYPE_SWITCH_MULTILEVEL], diff --git a/tests/components/cover/test_zwave.py b/tests/components/cover/test_zwave.py index fe9abe7172c..4b9be9f5e00 100644 --- a/tests/components/cover/test_zwave.py +++ b/tests/components/cover/test_zwave.py @@ -32,16 +32,30 @@ def test_get_device_detects_rollershutter(hass, mock_openzwave): assert isinstance(device, zwave.ZwaveRollershutter) -def test_get_device_detects_garagedoor(hass, mock_openzwave): +def test_get_device_detects_garagedoor_switch(hass, mock_openzwave): """Test device returns garage door.""" node = MockNode() - value = MockValue(data=0, node=node, + value = MockValue(data=False, node=node, + command_class=const.COMMAND_CLASS_SWITCH_BINARY) + values = MockEntityValues(primary=value, node=node) + + device = zwave.get_device(hass=hass, node=node, values=values, + node_config={}) + assert isinstance(device, zwave.ZwaveGarageDoorSwitch) + assert device.device_class == "garage" + assert device.supported_features == SUPPORT_OPEN | SUPPORT_CLOSE + + +def test_get_device_detects_garagedoor_barrier(hass, mock_openzwave): + """Test device returns garage door.""" + node = MockNode() + value = MockValue(data="Closed", node=node, command_class=const.COMMAND_CLASS_BARRIER_OPERATOR) values = MockEntityValues(primary=value, node=node) device = zwave.get_device(hass=hass, node=node, values=values, node_config={}) - assert isinstance(device, zwave.ZwaveGarageDoor) + assert isinstance(device, zwave.ZwaveGarageDoorBarrier) assert device.device_class == "garage" assert device.supported_features == SUPPORT_OPEN | SUPPORT_CLOSE @@ -158,7 +172,39 @@ def test_roller_reverse_open_close(hass, mock_openzwave): assert value_id == close_value.value_id -def test_garage_value_changed(hass, mock_openzwave): +def test_switch_garage_value_changed(hass, mock_openzwave): + """Test position changed.""" + node = MockNode() + value = MockValue(data=False, node=node, + command_class=const.COMMAND_CLASS_SWITCH_BINARY) + values = MockEntityValues(primary=value, node=node) + device = zwave.get_device(hass=hass, node=node, values=values, + node_config={}) + + assert device.is_closed + + value.data = True + value_changed(value) + assert not device.is_closed + + +def test_switch_garage_commands(hass, mock_openzwave): + """Test position changed.""" + node = MockNode() + value = MockValue(data=False, node=node, + command_class=const.COMMAND_CLASS_SWITCH_BINARY) + values = MockEntityValues(primary=value, node=node) + device = zwave.get_device(hass=hass, node=node, values=values, + node_config={}) + + assert value.data is False + device.open_cover() + assert value.data is True + device.close_cover() + assert value.data is False + + +def test_barrier_garage_value_changed(hass, mock_openzwave): """Test position changed.""" node = MockNode() value = MockValue(data="Closed", node=node, @@ -190,7 +236,7 @@ def test_garage_value_changed(hass, mock_openzwave): assert device.is_closing -def test_garage_commands(hass, mock_openzwave): +def test_barrier_garage_commands(hass, mock_openzwave): """Test position changed.""" node = MockNode() value = MockValue(data="Closed", node=node, From 418a8bab1136a76d67aa865c9a0d44127523dc82 Mon Sep 17 00:00:00 2001 From: Kevin Fronczak Date: Sun, 30 Jul 2017 00:50:02 -0400 Subject: [PATCH 013/128] Fixed sensor issue with Google Wifi routers in bridge mode (#8710) * Fixed issue with routers in bridge mode - Router in brdige mode apparently don't report all of the stats - Re-wrote the data_format function so it's a bit easier to follow and able to log keys that aren't supported by a router in a given mode - Changed config so that it properly ignores conditions when not explicitly listed - Added tests to check for the above and also to verify we log that a key doesn't exist rather than throwing an exception * Mistakenly was calling MONITORED_CONDITIONS in data_format - Changed to be the actual config values to prevent log error --- .../components/sensor/google_wifi.py | 85 +++++++++++-------- tests/components/sensor/test_google_wifi.py | 24 +++++- 2 files changed, 70 insertions(+), 39 deletions(-) diff --git a/homeassistant/components/sensor/google_wifi.py b/homeassistant/components/sensor/google_wifi.py index d878f4f8d20..ba3dbfeacc8 100644 --- a/homeassistant/components/sensor/google_wifi.py +++ b/homeassistant/components/sensor/google_wifi.py @@ -37,32 +37,32 @@ DEFAULT_HOST = 'testwifi.here' MONITORED_CONDITIONS = { ATTR_CURRENT_VERSION: [ - 'Current Version', + ['software', 'softwareVersion'], None, 'mdi:checkbox-marked-circle-outline' ], ATTR_NEW_VERSION: [ - 'New Version', + ['software', 'updateNewVersion'], None, 'mdi:update' ], ATTR_UPTIME: [ - 'Uptime', + ['system', 'uptime'], 'days', 'mdi:timelapse' ], ATTR_LAST_RESTART: [ - 'Last Network Restart', + ['system', 'uptime'], None, 'mdi:restart' ], ATTR_LOCAL_IP: [ - 'Local IP Address', + ['wan', 'localIpAddress'], None, 'mdi:access-point-network' ], ATTR_STATUS: [ - 'Status', + ['wan', 'online'], None, 'mdi:google' ] @@ -80,13 +80,14 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Google Wifi sensor.""" name = config.get(CONF_NAME) host = config.get(CONF_HOST) + conditions = config.get(CONF_MONITORED_CONDITIONS) - api = GoogleWifiAPI(host) + api = GoogleWifiAPI(host, conditions) + dev = [] + for condition in conditions: + dev.append(GoogleWifiSensor(hass, api, name, condition)) - sensors = [GoogleWifiSensor(hass, api, name, condition) - for condition in config[CONF_MONITORED_CONDITIONS]] - - add_devices(sensors, True) + add_devices(dev, True) class GoogleWifiSensor(Entity): @@ -141,13 +142,13 @@ class GoogleWifiSensor(Entity): class GoogleWifiAPI(object): """Get the latest data and update the states.""" - def __init__(self, host): + def __init__(self, host, conditions): """Initialize the data object.""" uri = 'http://' resource = "{}{}{}".format(uri, host, ENDPOINT) - self._request = requests.Request('GET', resource).prepare() self.raw_data = None + self.conditions = conditions self.data = { ATTR_CURRENT_VERSION: STATE_UNKNOWN, ATTR_NEW_VERSION: STATE_UNKNOWN, @@ -163,39 +164,49 @@ class GoogleWifiAPI(object): def update(self): """Get the latest data from the router.""" try: - _LOGGER.error("Before request") with requests.Session() as sess: response = sess.send( self._request, timeout=10) self.raw_data = response.json() - _LOGGER.error(self.raw_data) self.data_format() self.availiable = True except ValueError: - _LOGGER.error("Unable to fetch data from Google Wifi") + _LOGGER.error('Unable to fetch data from Google Wifi') self.availiable = False self.raw_data = None def data_format(self): """Format raw data into easily accessible dict.""" - for key, value in self.raw_data.items(): - if key == 'software': - self.data[ATTR_CURRENT_VERSION] = value['softwareVersion'] - if value['updateNewVersion'] == '0.0.0.0': - self.data[ATTR_NEW_VERSION] = 'Latest' - else: - self.data[ATTR_NEW_VERSION] = value['updateNewVersion'] - elif key == 'system': - self.data[ATTR_UPTIME] = value['uptime'] / (3600 * 24) - last_restart = dt.now() - timedelta(seconds=value['uptime']) - self.data[ATTR_LAST_RESTART] = \ - last_restart.strftime("%Y-%m-%d %H:%M:%S") - elif key == 'wan': - if value['online']: - self.data[ATTR_STATUS] = 'Online' - else: - self.data[ATTR_STATUS] = 'Offline' - if not value['ipAddress']: - self.data[ATTR_LOCAL_IP] = STATE_UNKNOWN - else: - self.data[ATTR_LOCAL_IP] = value['localIpAddress'] + for attr_key in self.conditions: + value = MONITORED_CONDITIONS[attr_key] + try: + primary_key = value[0][0] + sensor_key = value[0][1] + if primary_key in self.raw_data: + sensor_value = self.raw_data[primary_key][sensor_key] + # Format sensor for better readability + if (attr_key == ATTR_NEW_VERSION and + sensor_value == '0.0.0.0'): + sensor_value = 'Latest' + elif attr_key == ATTR_UPTIME: + sensor_value /= 3600 * 24 + elif attr_key == ATTR_LAST_RESTART: + last_restart = (dt.now() - + timedelta(seconds=sensor_value)) + sensor_value = last_restart.strftime(('%Y-%m-%d ' + '%H:%M:%S')) + elif attr_key == ATTR_STATUS: + if sensor_value: + sensor_value = 'Online' + else: + sensor_value = 'Offline' + elif attr_key == ATTR_LOCAL_IP: + if not self.raw_data['wan']['online']: + sensor_value = STATE_UNKNOWN + + self.data[attr_key] = sensor_value + except KeyError: + _LOGGER.error('Router does not support %s field. ' + 'Please remove %s from monitored_conditions.', + sensor_key, attr_key) + self.data[attr_key] = STATE_UNKNOWN diff --git a/tests/components/sensor/test_google_wifi.py b/tests/components/sensor/test_google_wifi.py index 978ec99236c..b45261b6daa 100644 --- a/tests/components/sensor/test_google_wifi.py +++ b/tests/components/sensor/test_google_wifi.py @@ -26,6 +26,10 @@ MOCK_DATA_NEXT = ('{"software": {"softwareVersion":"next",' '"wan": {"localIpAddress":"next", "online":false,' '"ipAddress":false}}') +MOCK_DATA_MISSING = ('{"software": {},' + '"system": {},' + '"wan": {}}') + class TestGoogleWifiSetup(unittest.TestCase): """Tests for setting up the Google Wifi switch platform.""" @@ -47,9 +51,11 @@ class TestGoogleWifiSetup(unittest.TestCase): mock_req.get(resource, status_code=200) self.assertTrue(setup_component(self.hass, 'sensor', { 'sensor': { - 'platform': 'google_wifi' + 'platform': 'google_wifi', + 'monitored_conditions': ['uptime'] } })) + assert_setup_component(1, 'sensor') @requests_mock.Mocker() def test_setup_get(self, mock_req): @@ -95,7 +101,9 @@ class TestGoogleWifiSensor(unittest.TestCase): now = datetime(1970, month=1, day=1) with patch('homeassistant.util.dt.now', return_value=now): mock_req.get(resource, text=data, status_code=200) - self.api = google_wifi.GoogleWifiAPI("localhost") + conditions = google_wifi.MONITORED_CONDITIONS.keys() + self.api = google_wifi.GoogleWifiAPI("localhost", + conditions) self.name = NAME self.sensor_dict = dict() for condition, cond_list in google_wifi.MONITORED_CONDITIONS.items(): @@ -188,6 +196,18 @@ class TestGoogleWifiSensor(unittest.TestCase): else: self.assertEqual('next', sensor.state) + @requests_mock.Mocker() + def test_when_api_data_missing(self, mock_req): + """Test state logs an error when data is missing.""" + self.setup_api(MOCK_DATA_MISSING, mock_req) + now = datetime(1970, month=1, day=1) + with patch('homeassistant.util.dt.now', return_value=now): + for name in self.sensor_dict: + sensor = self.sensor_dict[name]['sensor'] + self.fake_delay(2) + sensor.update() + self.assertEqual(STATE_UNKNOWN, sensor.state) + def test_update_when_unavailiable(self): """Test state updates when Google Wifi unavailiable.""" self.api.update = Mock('google_wifi.GoogleWifiAPI.update', From 22088d192aa115f83029d56ab8455aae2bcf550f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Jul 2017 21:52:26 -0700 Subject: [PATCH 014/128] Fix alexa cards (#8708) --- homeassistant/components/alexa.py | 9 +++------ tests/components/test_alexa.py | 14 +++++++++++++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/alexa.py b/homeassistant/components/alexa.py index c121268f93d..3547e86dad1 100644 --- a/homeassistant/components/alexa.py +++ b/homeassistant/components/alexa.py @@ -171,7 +171,7 @@ class AlexaIntentsView(http.HomeAssistantView): if 'simple' in intent_response.card: alexa_response.add_card( - 'simple', intent_response.card['simple']['title'], + CardType.simple, intent_response.card['simple']['title'], intent_response.card['simple']['content']) return self.json(alexa_response) @@ -208,8 +208,8 @@ class AlexaResponse(object): self.card = card return - card["title"] = title.async_render(self.variables) - card["content"] = content.async_render(self.variables) + card["title"] = title + card["content"] = content self.card = card def add_speech(self, speech_type, text): @@ -218,9 +218,6 @@ class AlexaResponse(object): key = 'ssml' if speech_type == SpeechType.ssml else 'text' - if isinstance(text, template.Template): - text = text.async_render(self.variables) - self.speech = { 'type': speech_type.value, key: text diff --git a/tests/components/test_alexa.py b/tests/components/test_alexa.py index eb8391c3e0d..4e082441064 100644 --- a/tests/components/test_alexa.py +++ b/tests/components/test_alexa.py @@ -86,7 +86,12 @@ def alexa_client(loop, hass, test_client): "CallServiceIntent": { "speech": { "type": "plain", - "text": "Service called", + "text": "Service called for {{ ZodiacSign }}", + }, + "card": { + "type": "simple", + "title": "Card title for {{ ZodiacSign }}", + "content": "Card content: {{ ZodiacSign }}", }, "action": { "service": "test.alexa", @@ -319,6 +324,13 @@ def test_intent_request_calling_service(alexa_client): assert call.data.get("entity_id") == ["switch.test"] assert call.data.get("hello") == "virgo" + data = yield from req.json() + assert data['response']['card']['title'] == 'Card title for virgo' + assert data['response']['card']['content'] == 'Card content: virgo' + assert data['response']['outputSpeech']['type'] == 'PlainText' + assert data['response']['outputSpeech']['text'] == \ + 'Service called for virgo' + @asyncio.coroutine def test_intent_session_ended_request(alexa_client): From 431a381c8dae9f5339ffb33dbeece8e4d6dd4870 Mon Sep 17 00:00:00 2001 From: Sean Gollschewsky Date: Sun, 30 Jul 2017 05:53:37 +0100 Subject: [PATCH 015/128] Move I/O outside of properties for light/tplink platform (#8699) * Add new component for TPLink light bulbs. * Update with result of gen_requirements_all. * Add new component light.tplink. * Move I/O outside of properties as per https://goo.gl/Nvioub. --- homeassistant/components/light/tplink.py | 29 ++++++++++++------------ 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/light/tplink.py b/homeassistant/components/light/tplink.py index 333661870d1..4fadb69468a 100644 --- a/homeassistant/components/light/tplink.py +++ b/homeassistant/components/light/tplink.py @@ -53,6 +53,8 @@ class TPLinkSmartBulb(Light): self._name = name self._state = None + self._color_temp = None + self._brightness = None _LOGGER.debug("Setting up TP-Link Smart Bulb") @property @@ -70,7 +72,6 @@ class TPLinkSmartBulb(Light): if ATTR_BRIGHTNESS in kwargs: brightness = kwargs.get(ATTR_BRIGHTNESS, self.brightness or 255) self.smartbulb.brightness = brightness_to_percentage(brightness) - self.smartbulb.state = self.smartbulb.BULB_STATE_ON def turn_off(self): @@ -80,33 +81,31 @@ class TPLinkSmartBulb(Light): @property def color_temp(self): """Return the color temperature of this light in mireds for HA.""" - if self.smartbulb.is_color: - if (self.smartbulb.color_temp is not None and - self.smartbulb.color_temp != 0): - return kelvin_to_mired(self.smartbulb.color_temp) - else: - return None - else: - return None + return self._color_temp @property def brightness(self): """Return the brightness of this light between 0..255.""" - return brightness_from_percentage(self.smartbulb.brightness) + return self._brightness @property def is_on(self): """True if device is on.""" - return self.smartbulb.state == \ - self.smartbulb.BULB_STATE_ON + return self._state def update(self): """Update the TP-Link Bulb's state.""" from pyHS100 import SmartPlugException try: - self._state = self.smartbulb.state == \ - self.smartbulb.BULB_STATE_ON - + self._state = ( + self.smartbulb.state == self.smartbulb.BULB_STATE_ON) + self._brightness = brightness_from_percentage( + self.smartbulb.brightness) + if self.smartbulb.is_color: + if (self.smartbulb.color_temp is not None and + self.smartbulb.color_temp != 0): + self._color_temp = kelvin_to_mired( + self.smartbulb.color_temp) except (SmartPlugException, OSError) as ex: _LOGGER.warning('Could not read state for %s: %s', self.name, ex) From e992527c687603a5568481fb371b05a6a3a98144 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Sun, 30 Jul 2017 00:55:08 -0400 Subject: [PATCH 016/128] Fix Kodi reconnection after websocket disconnect (#8704) --- homeassistant/components/media_player/kodi.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/media_player/kodi.py b/homeassistant/components/media_player/kodi.py index 684e49ad4b5..a51238e9aaf 100644 --- a/homeassistant/components/media_player/kodi.py +++ b/homeassistant/components/media_player/kodi.py @@ -353,7 +353,7 @@ class KodiDevice(MediaPlayerDevice): self._properties = {} self._item = {} self._app_properties = {} - self.hass.async_add_job(self.async_update_ha_state()) + self.hass.async_add_job(self._ws_server.close()) @asyncio.coroutine def _get_players(self): @@ -402,6 +402,8 @@ class KodiDevice(MediaPlayerDevice): # Kodi abruptly ends ws connection when exiting. We will try # to reconnect on the next poll. pass + # Update HA state after Kodi disconnects + self.hass.async_add_job(self.async_update_ha_state()) # Create a task instead of adding a tracking job, since this task will # run until the websocket connection is closed. From 6884965c807e557c8c3263a57a44de74e107c457 Mon Sep 17 00:00:00 2001 From: Nicholas Sielicki Date: Sun, 30 Jul 2017 03:17:56 -0500 Subject: [PATCH 017/128] directv: add configuration glue for Genie slaves (#8713) DirectPy, the third party library used for controlling directv boxes, has the ability to accept an ID in order to act as a remote for Genie slaves instead of just the master directv box. This commit adds glue such that one can configure home assistant to interface with these slave genie boxes. Signed-off-by: Nicholas Sielicki --- homeassistant/components/media_player/directv.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/media_player/directv.py b/homeassistant/components/media_player/directv.py index b46e256bab3..599b8fbbd71 100644 --- a/homeassistant/components/media_player/directv.py +++ b/homeassistant/components/media_player/directv.py @@ -12,11 +12,12 @@ from homeassistant.components.media_player import ( SUPPORT_NEXT_TRACK, SUPPORT_PREVIOUS_TRACK, SUPPORT_PLAY, MediaPlayerDevice) from homeassistant.const import ( - CONF_HOST, CONF_NAME, STATE_OFF, STATE_PLAYING, CONF_PORT) + CONF_DEVICE, CONF_HOST, CONF_NAME, STATE_OFF, STATE_PLAYING, CONF_PORT) import homeassistant.helpers.config_validation as cv REQUIREMENTS = ['directpy==0.1'] +DEFAULT_DEVICE = '0' DEFAULT_NAME = 'DirecTV Receiver' DEFAULT_PORT = 8080 @@ -30,6 +31,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, + vol.Optional(CONF_DEVICE, default=DEFAULT_DEVICE): cv.string, }) @@ -50,7 +52,8 @@ def setup_platform(hass, config, add_devices, discovery_info=None): elif CONF_HOST in config: hosts.append([ - config.get(CONF_NAME), config.get(CONF_HOST), config.get(CONF_PORT) + config.get(CONF_NAME), config.get(CONF_HOST), + config.get(CONF_PORT), config.get(CONF_DEVICE) ]) dtvs = [] @@ -67,10 +70,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None): class DirecTvDevice(MediaPlayerDevice): """Representation of a DirecTV reciever on the network.""" - def __init__(self, name, host, port): + def __init__(self, name, host, port, device): """Initialize the device.""" from DirectPy import DIRECTV - self.dtv = DIRECTV(host, port) + self.dtv = DIRECTV(host, port, device) self._name = name self._is_standby = True self._current = None From 05330ac76380d2f191ce3a313f3e61f52c8c4705 Mon Sep 17 00:00:00 2001 From: Eugenio Panadero Date: Sun, 30 Jul 2017 11:13:51 +0200 Subject: [PATCH 018/128] bump python-telegram-bot to 7.0.1 for fully support Bot API 3.2 (#8715) --- homeassistant/components/telegram_bot/__init__.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/telegram_bot/__init__.py b/homeassistant/components/telegram_bot/__init__.py index 6d9f43e2425..85a7ec8dc78 100644 --- a/homeassistant/components/telegram_bot/__init__.py +++ b/homeassistant/components/telegram_bot/__init__.py @@ -24,7 +24,7 @@ import homeassistant.helpers.config_validation as cv from homeassistant.exceptions import TemplateError from homeassistant.setup import async_prepare_setup_platform -REQUIREMENTS = ['python-telegram-bot==6.1.0'] +REQUIREMENTS = ['python-telegram-bot==7.0.1'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 7220bd0cfc2..fbb9e49fa4c 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -756,7 +756,7 @@ python-synology==0.1.0 python-tado==0.2.2 # homeassistant.components.telegram_bot -python-telegram-bot==6.1.0 +python-telegram-bot==7.0.1 # homeassistant.components.sensor.twitch python-twitch==1.3.0 From cee49f313f4320ce01d113880b96d74fe2e61fea Mon Sep 17 00:00:00 2001 From: Eugenio Panadero Date: Sun, 30 Jul 2017 11:14:28 +0200 Subject: [PATCH 019/128] Retry set_webhook up to three times, reduce timeout to 5s again (#8716) --- homeassistant/components/telegram_bot/webhooks.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/telegram_bot/webhooks.py b/homeassistant/components/telegram_bot/webhooks.py index 30d81930b44..055f68884a6 100644 --- a/homeassistant/components/telegram_bot/webhooks.py +++ b/homeassistant/components/telegram_bot/webhooks.py @@ -6,7 +6,6 @@ https://home-assistant.io/components/telegram_bot.webhooks/ """ import asyncio import datetime as dt -from functools import partial from ipaddress import ip_network import logging @@ -70,9 +69,18 @@ def async_setup_platform(hass, config): _LOGGER.error("Invalid telegram webhook %s must be https", handler_url) return False + def _try_to_set_webhook(): + retry_num = 0 + while retry_num < 3: + try: + return bot.setWebhook(handler_url, timeout=5) + except telegram.error.TimedOut: + retry_num += 1 + _LOGGER.warning("Timeout trying to set webhook (retry #%d)", + retry_num) + if current_status and current_status['url'] != handler_url: - result = yield from hass.async_add_job( - partial(bot.setWebhook, handler_url, timeout=10)) + result = yield from hass.async_add_job(_try_to_set_webhook) if result: _LOGGER.info("Set new telegram webhook %s", handler_url) else: From 37fef4016e5960f6a6972706e31f3ee149b3c497 Mon Sep 17 00:00:00 2001 From: Eugenio Panadero Date: Sun, 30 Jul 2017 12:08:19 +0200 Subject: [PATCH 020/128] Add proxy support for telegram_bot (#8717) * Add proxy support for telegram_bot New optional config parameters `proxy_url` and `proxy_params` (a dict) ```yaml telegram_bot: platform: polling api_key: !secret telegram_bot_api_key allowed_chat_ids: - !secret telegram_bot_chatid proxy_url: socks5://proxy_ip:proxy_port proxy_params: username: my-username password: my-secret-password ``` * change `ATTR_` for `CONF_` for config params --- .../components/telegram_bot/__init__.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/telegram_bot/__init__.py b/homeassistant/components/telegram_bot/__init__.py index 85a7ec8dc78..b58bdb8916b 100644 --- a/homeassistant/components/telegram_bot/__init__.py +++ b/homeassistant/components/telegram_bot/__init__.py @@ -59,6 +59,8 @@ ATTR_USER_ID = 'user_id' ATTR_USERNAME = 'username' CONF_ALLOWED_CHAT_IDS = 'allowed_chat_ids' +CONF_PROXY_URL = 'proxy_url' +CONF_PROXY_PARAMS = 'proxy_params' DOMAIN = 'telegram_bot' @@ -85,6 +87,8 @@ PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ vol.Required(CONF_ALLOWED_CHAT_IDS): vol.All(cv.ensure_list, [vol.Coerce(int)]), vol.Optional(ATTR_PARSER, default=PARSER_MD): cv.string, + vol.Optional(CONF_PROXY_URL): cv.string, + vol.Optional(CONF_PROXY_PARAMS): dict, }) BASE_SERVICE_SCHEMA = vol.Schema({ @@ -240,7 +244,9 @@ def async_setup(hass, config): hass, p_config.get(CONF_API_KEY), p_config.get(CONF_ALLOWED_CHAT_IDS), - p_config.get(ATTR_PARSER) + p_config.get(ATTR_PARSER), + p_config.get(CONF_PROXY_URL), + p_config.get(CONF_PROXY_PARAMS) ) @asyncio.coroutine @@ -303,10 +309,12 @@ def async_setup(hass, config): class TelegramNotificationService: """Implement the notification services for the Telegram Bot domain.""" - def __init__(self, hass, api_key, allowed_chat_ids, parser): + def __init__(self, hass, api_key, allowed_chat_ids, parser, + proxy_url=None, proxy_params=None): """Initialize the service.""" from telegram import Bot from telegram.parsemode import ParseMode + from telegram.utils.request import Request self.allowed_chat_ids = allowed_chat_ids self._default_user = self.allowed_chat_ids[0] @@ -314,7 +322,11 @@ class TelegramNotificationService: self._parsers = {PARSER_HTML: ParseMode.HTML, PARSER_MD: ParseMode.MARKDOWN} self._parse_mode = self._parsers.get(parser) - self.bot = Bot(token=api_key) + request = None + if proxy_url is not None: + request = Request(proxy_url=proxy_url, + urllib3_proxy_kwargs=proxy_params) + self.bot = Bot(token=api_key, request=request) self.hass = hass def _get_msg_ids(self, msg_data, chat_id): From 7156e4782ebc145a3d677208cace1061ef7630c0 Mon Sep 17 00:00:00 2001 From: David McNett Date: Mon, 31 Jul 2017 07:33:51 -0500 Subject: [PATCH 021/128] python-insteonplm module version bump (#8736) Requiring python-insteonplm v0.7.5 (up from 0.7.4) now --- homeassistant/components/insteon_plm.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/insteon_plm.py b/homeassistant/components/insteon_plm.py index b62a2e229ae..7cadbd0dd7f 100644 --- a/homeassistant/components/insteon_plm.py +++ b/homeassistant/components/insteon_plm.py @@ -15,7 +15,7 @@ from homeassistant.const import ( import homeassistant.helpers.config_validation as cv from homeassistant.helpers import discovery -REQUIREMENTS = ['insteonplm==0.7.4'] +REQUIREMENTS = ['insteonplm==0.7.5'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index fbb9e49fa4c..3c1f82ba2b8 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -334,7 +334,7 @@ influxdb==3.0.0 insteonlocal==0.52 # homeassistant.components.insteon_plm -insteonplm==0.7.4 +insteonplm==0.7.5 # homeassistant.components.verisure jsonpath==0.75 From 164e953e8c7b8eb18706666b0998bffb9a15f276 Mon Sep 17 00:00:00 2001 From: Martin Donlon Date: Mon, 31 Jul 2017 05:42:55 -0700 Subject: [PATCH 022/128] New media_player platform for Russound devices using the RIO protocol (#8448) * New media_player platform for Russound devices using the RIO protocol Auto discovers zones and sources Handles media metadata from sources that support it asyncio implementation Push updates for any zone or source changes so no polling required. * Fixed up linting issues * Addressing PR feedback Updated russound_rio dependency to 0.1.3 Use enumerate_zones and enumerate_sources methods instead of doing it in the platform. Register callbacks in async_added_to_hass coroutine Corrected behavior of async methods --- .coveragerc | 1 + .../components/media_player/russound_rio.py | 213 ++++++++++++++++++ requirements_all.txt | 3 + 3 files changed, 217 insertions(+) create mode 100644 homeassistant/components/media_player/russound_rio.py diff --git a/.coveragerc b/.coveragerc index c4051af5136..074e35a073d 100644 --- a/.coveragerc +++ b/.coveragerc @@ -351,6 +351,7 @@ omit = homeassistant/components/media_player/pioneer.py homeassistant/components/media_player/plex.py homeassistant/components/media_player/roku.py + homeassistant/components/media_player/russound_rio.py homeassistant/components/media_player/russound_rnet.py homeassistant/components/media_player/samsungtv.py homeassistant/components/media_player/snapcast.py diff --git a/homeassistant/components/media_player/russound_rio.py b/homeassistant/components/media_player/russound_rio.py new file mode 100644 index 00000000000..743fc4e262d --- /dev/null +++ b/homeassistant/components/media_player/russound_rio.py @@ -0,0 +1,213 @@ +""" +Support for Russound multizone controllers using RIO Protocol. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/media_player.russound_rio/ +""" + +import asyncio +import logging + +import voluptuous as vol + +from homeassistant.core import callback +from homeassistant.components.media_player import ( + SUPPORT_TURN_ON, SUPPORT_TURN_OFF, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, + SUPPORT_SELECT_SOURCE, MediaPlayerDevice, PLATFORM_SCHEMA, + MEDIA_TYPE_MUSIC) +from homeassistant.const import ( + CONF_HOST, CONF_PORT, STATE_OFF, STATE_ON, + CONF_NAME, EVENT_HOMEASSISTANT_STOP) +import homeassistant.helpers.config_validation as cv + +REQUIREMENTS = ['russound_rio==0.1.3'] + +_LOGGER = logging.getLogger(__name__) + +SUPPORT_RUSSOUND = SUPPORT_VOLUME_MUTE | SUPPORT_VOLUME_SET | \ + SUPPORT_TURN_ON | SUPPORT_TURN_OFF | SUPPORT_SELECT_SOURCE + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_HOST): cv.string, + vol.Required(CONF_NAME): cv.string, + vol.Optional(CONF_PORT, default=9621): cv.port, + }) + + +@asyncio.coroutine +def async_setup_platform(hass, config, async_add_devices, discovery_info=None): + """Set up the Russound RIO platform.""" + host = config.get(CONF_HOST) + port = config.get(CONF_PORT) + + from russound_rio import Russound + + russ = Russound(hass.loop, host, port) + + yield from russ.connect() + + # Discover sources + sources = yield from russ.enumerate_sources() + + # Discover zones + valid_zones = yield from russ.enumerate_zones() + + devices = [] + for zone_id, name in valid_zones: + yield from russ.watch_zone(zone_id) + dev = RussoundZoneDevice(russ, zone_id, name, sources) + devices.append(dev) + + @callback + def on_stop(event): + """Shutdown cleanly when hass stops.""" + hass.loop.create_task(russ.close()) + + hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, on_stop) + + async_add_devices(devices) + + +class RussoundZoneDevice(MediaPlayerDevice): + """Representation of a Russound Zone.""" + + def __init__(self, russ, zone_id, name, sources): + """Initialize the zone device.""" + super().__init__() + self._name = name + self._russ = russ + self._zone_id = zone_id + self._sources = sources + + def _zone_var(self, name, default=None): + return self._russ.get_cached_zone_variable(self._zone_id, + name, + default) + + def _source_var(self, name, default=None): + current = int(self._zone_var('currentsource', 0)) + if current: + return self._russ.get_cached_source_variable( + current, name, default) + return default + + def _source_na_var(self, name): + """Will replace invalid values with None.""" + current = int(self._zone_var('currentsource', 0)) + if current: + value = self._russ.get_cached_source_variable( + current, name, None) + if value in (None, "", "------"): + return None + return value + else: + return None + + def _zone_callback_handler(self, zone_id, *args): + if zone_id == self._zone_id: + self.schedule_update_ha_state() + + def _source_callback_handler(self, source_id, *args): + current = int(self._zone_var('currentsource', 0)) + if source_id == current: + self.schedule_update_ha_state() + + @asyncio.coroutine + def async_added_to_hass(self): + """Register callback handlers.""" + self._russ.add_zone_callback(self._zone_callback_handler) + self._russ.add_source_callback(self._source_callback_handler) + + @property + def should_poll(self): + """No polling needed.""" + return False + + @property + def name(self): + """Return the name of the zone.""" + return self._zone_var('name', self._name) + + @property + def state(self): + """Return the state of the device.""" + status = self._zone_var('status', "OFF") + if status == 'ON': + return STATE_ON + elif status == 'OFF': + return STATE_OFF + + @property + def supported_features(self): + """Flag media player features that are supported.""" + return SUPPORT_RUSSOUND + + @property + def source(self): + """Get the currently selected source.""" + return self._source_na_var('name') + + @property + def source_list(self): + """Return a list of available input sources.""" + return [x[1] for x in self._sources] + + @property + def media_content_type(self): + """Content type of current playing media.""" + return MEDIA_TYPE_MUSIC + + @property + def media_title(self): + """Title of current playing media.""" + return self._source_na_var('songname') + + @property + def media_artist(self): + """Artist of current playing media, music track only.""" + return self._source_na_var('artistname') + + @property + def media_album_name(self): + """Album name of current playing media, music track only.""" + return self._source_na_var('albumname') + + @property + def media_image_url(self): + """Image url of current playing media.""" + return self._source_na_var('coverarturl') + + @property + def volume_level(self): + """Volume level of the media player (0..1). + + Value is returned based on a range (0..50). + Therefore float divide by 50 to get to the required range. + """ + return float(self._zone_var('volume', 0)) / 50.0 + + def async_turn_off(self): + """Turn off the zone.""" + return self._russ.send_zone_event(self._zone_id, + "ZoneOff") + + def async_turn_on(self): + """Turn on the zone.""" + return self._russ.send_zone_event(self._zone_id, + "ZoneOn") + + def async_set_volume_level(self, volume): + """Set the volume level.""" + rvol = int(volume * 50.0) + return self._russ.send_zone_event(self._zone_id, + "KeyPress", + "Volume", + rvol) + + def async_select_source(self, source): + """Select the source input for this zone.""" + for source_id, name in self._sources: + if name.lower() != source.lower(): + continue + return self._russ.send_zone_event( + self._zone_id, "SelectSource", source_id) diff --git a/requirements_all.txt b/requirements_all.txt index 3c1f82ba2b8..e11739d0e87 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -830,6 +830,9 @@ ring_doorbell==0.1.4 # homeassistant.components.media_player.russound_rnet russound==0.1.7 +# homeassistant.components.media_player.russound_rio +russound_rio==0.1.3 + # homeassistant.components.media_player.yamaha rxv==0.4.0 From 53048f71a0da41c88af015016760e524c0ee101c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 31 Jul 2017 17:58:13 +0200 Subject: [PATCH 023/128] Supress exception if host is not available (fixes #8684) (#8732) --- homeassistant/components/media_player/pioneer.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/media_player/pioneer.py b/homeassistant/components/media_player/pioneer.py index ba08003b9bf..25424224c70 100644 --- a/homeassistant/components/media_player/pioneer.py +++ b/homeassistant/components/media_player/pioneer.py @@ -85,14 +85,13 @@ class PioneerDevice(MediaPlayerDevice): return None def telnet_command(self, command): - """Establish a telnet connection and sends `command`.""" + """Establish a telnet connection and sends command.""" try: try: - telnet = telnetlib.Telnet(self._host, - self._port, - self._timeout) - except ConnectionRefusedError: - _LOGGER.debug("Pioneer %s refused connection", self._name) + telnet = telnetlib.Telnet( + self._host, self._port, self._timeout) + except (ConnectionRefusedError, OSError): + _LOGGER.warning("Pioneer %s refused connection", self._name) return telnet.write(command.encode("ASCII") + b"\r") telnet.read_very_eager() # skip response @@ -105,8 +104,8 @@ class PioneerDevice(MediaPlayerDevice): """Get the latest details from the device.""" try: telnet = telnetlib.Telnet(self._host, self._port, self._timeout) - except ConnectionRefusedError: - _LOGGER.debug("Pioneer %s refused connection", self._name) + except (ConnectionRefusedError, OSError): + _LOGGER.warning("Pioneer %s refused connection", self._name) return False pwstate = self.telnet_request(telnet, "?P", "PWR") From ce67be2fff5fcc5ab768a6ca0108e5bc66dece2f Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Mon, 31 Jul 2017 17:58:47 +0200 Subject: [PATCH 024/128] Fix tradfri error spam (#8738) * Catch tradfri timout exception * Remove not needed return statement * Remove test logging * Log warning instead of error --- homeassistant/components/light/tradfri.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/light/tradfri.py b/homeassistant/components/light/tradfri.py index 28c42c5699c..b04640d7a8a 100644 --- a/homeassistant/components/light/tradfri.py +++ b/homeassistant/components/light/tradfri.py @@ -71,7 +71,7 @@ class TradfriGroup(Light): def turn_off(self, **kwargs): """Instruct the group lights to turn off.""" - return self._group.set_state(0) + self._group.set_state(0) def turn_on(self, **kwargs): """Instruct the group lights to turn on, or dim.""" @@ -82,7 +82,11 @@ class TradfriGroup(Light): def update(self): """Fetch new state data for this group.""" - self._group.update() + from pytradfri import RequestTimeout + try: + self._group.update() + except RequestTimeout: + _LOGGER.warning("Tradfri update request timed out") class Tradfri(Light): @@ -153,7 +157,7 @@ class Tradfri(Light): def turn_off(self, **kwargs): """Instruct the light to turn off.""" - return self._light_control.set_state(False) + self._light_control.set_state(False) def turn_on(self, **kwargs): """ @@ -181,7 +185,11 @@ class Tradfri(Light): def update(self): """Fetch new state data for this light.""" - self._light.update() + from pytradfri import RequestTimeout + try: + self._light.update() + except RequestTimeout: + _LOGGER.warning("Tradfri update request timed out") # Handle Hue lights paired with the gateway # hex_color is 0 when bulb is unreachable From e525d13a5d8a27bd9ce72138d3a6cd8af31040ea Mon Sep 17 00:00:00 2001 From: Nathan Henrie Date: Mon, 31 Jul 2017 10:00:09 -0600 Subject: [PATCH 025/128] Fix typo (#8754) --- homeassistant/scripts/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/scripts/__init__.py b/homeassistant/scripts/__init__.py index f6934aef8f6..be39540682c 100644 --- a/homeassistant/scripts/__init__.py +++ b/homeassistant/scripts/__init__.py @@ -51,7 +51,7 @@ def run(args: List) -> int: req, target=deps_dir, constraints=os.path.join( os.path.dirname(__file__), os.pardir, CONSTRAINT_FILE)) if not returncode: - print('Aborting scipt, could not install dependency', req) + print('Aborting script, could not install dependency', req) return 1 return script.run(args[1:]) # type: ignore From 9919eec5960797694c430f6db6d59fc18b44b82c Mon Sep 17 00:00:00 2001 From: Sean Gollschewsky Date: Mon, 31 Jul 2017 17:02:04 +0100 Subject: [PATCH 026/128] Fix brightness issue #8744. (#8755) --- homeassistant/components/light/tplink.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/light/tplink.py b/homeassistant/components/light/tplink.py index 4fadb69468a..beca5fc6aec 100644 --- a/homeassistant/components/light/tplink.py +++ b/homeassistant/components/light/tplink.py @@ -31,7 +31,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): def brightness_to_percentage(byt): """Convert brightness from absolute 0..255 to percentage.""" - return (byt*100.0)/255.0 + return int((byt*100.0)/255.0) def brightness_from_percentage(percent): From 91b062f9b70f174d2c642b10d7abada5d1c62569 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 31 Jul 2017 09:06:50 -0700 Subject: [PATCH 027/128] Update frontend --- homeassistant/components/frontend/__init__.py | 2 +- homeassistant/components/frontend/version.py | 7 ++++--- .../frontend/www_static/frontend.html | 2 +- .../frontend/www_static/frontend.html.gz | Bin 139501 -> 139562 bytes .../www_static/home-assistant-polymer | 2 +- .../www_static/panels/ha-panel-dev-mqtt.html | 1 + .../panels/ha-panel-dev-mqtt.html.gz | Bin 0 -> 8302 bytes .../panels/ha-panel-dev-service.html | 2 +- .../panels/ha-panel-dev-service.html.gz | Bin 23797 -> 23800 bytes .../panels/ha-panel-dev-template.html | 2 +- .../panels/ha-panel-dev-template.html.gz | Bin 11445 -> 11544 bytes .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2492 -> 2491 bytes 13 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html create mode 100644 homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html.gz diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py index 2674eb062a8..7dbe56f1fa4 100644 --- a/homeassistant/components/frontend/__init__.py +++ b/homeassistant/components/frontend/__init__.py @@ -211,7 +211,7 @@ def setup(hass, config): register_built_in_panel(hass, 'map', 'Map', 'mdi:account-location') for panel in ('dev-event', 'dev-info', 'dev-service', 'dev-state', - 'dev-template', 'kiosk'): + 'dev-template', 'dev-mqtt', 'kiosk'): register_built_in_panel(hass, panel) themes = config.get(DOMAIN, {}).get(ATTR_THEMES) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 469452f7e49..84f269c14b1 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -3,16 +3,17 @@ FINGERPRINTS = { "compatibility.js": "8e4c44b5f4288cc48ec1ba94a9bec812", "core.js": "d4a7cb8c80c62b536764e0e81385f6aa", - "frontend.html": "7d599996578579600f1000d6d25e649d", + "frontend.html": "0d492cc2c19056db4ef3e885e0b33f14", "mdi.html": "e91f61a039ed0a9936e7ee5360da3870", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", "panels/ha-panel-automation.html": "1982116c49ad26ee8d89295edc797084", "panels/ha-panel-config.html": "fafeac72f83dd6cc42218f8978f6a7af", "panels/ha-panel-dev-event.html": "77784d5f0c73fcc3b29b6cc050bdf324", "panels/ha-panel-dev-info.html": "24e888ec7a8acd0c395b34396e9001bc", - "panels/ha-panel-dev-service.html": "86a42a17f4894478b6b77bc636beafd0", + "panels/ha-panel-dev-mqtt.html": "13b0b98746233337f6863d4bf4929223", + "panels/ha-panel-dev-service.html": "9eb775f70396d5c1fb7d5a1182553880", "panels/ha-panel-dev-state.html": "31ef6ffe3347cdda5bb0cbbc54b62cde", - "panels/ha-panel-dev-template.html": "d1d76e20fe9622cddee33e67318abde8", + "panels/ha-panel-dev-template.html": "e309e5773be0eecc448e7bab09a976f4", "panels/ha-panel-hassio.html": "262d31efd9add719e0325da5cf79a096", "panels/ha-panel-history.html": "35177e2046c9a4191c8f51f8160255ce", "panels/ha-panel-iframe.html": "238189f21e670b6dcfac937e5ebd7d3b", diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 7dd7b17c987..cc06fa89201 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -2,4 +2,4 @@ this._useContent&&u.Logical.saveChildNodes(this)},_setupRoot:function(){this._useContent&&(this._createLocalRoot(),this.dataHost||l(u.Logical.getChildNodes(this)))},_createLocalRoot:function(){this.shadyRoot=this.root,this.shadyRoot._distributionClean=!1,this.shadyRoot._hasDistributed=!1,this.shadyRoot._isShadyRoot=!0,this.shadyRoot._dirtyRoots=[];var e=this.shadyRoot._insertionPoints=!this._notes||this._notes._hasContent?this.shadyRoot.querySelectorAll("content"):[];u.Logical.saveChildNodes(this.shadyRoot);for(var t,o=0;o0?~setTimeout(e,t):(this._twiddle.textContent=this._twiddleContent++,this._callbacks.push(e),this._currVal++)},cancel:function(e){if(e<0)clearTimeout(~e);else{var t=e-this._lastVal;if(t>=0){if(!this._callbacks[t])throw"invalid async handle: "+e;this._callbacks[t]=null}}},_atEndOfMicrotask:function(){for(var e=this._callbacks.length,t=0;t \ No newline at end of file +;return"matrix("+o(i[0])+" "+o(i[1])+" "+o(i[4])+" "+o(i[5])+" "+o(i[12])+" "+o(i[13])+")"}}(n),function(t,e){function i(t,e){e.concat([t]).forEach(function(e){e in document.documentElement.style&&(n[t]=e),r[e]=t})}var n={},r={};i("transform",["webkitTransform","msTransform"]),i("transformOrigin",["webkitTransformOrigin"]),i("perspective",["webkitPerspective"]),i("perspectiveOrigin",["webkitPerspectiveOrigin"]),t.propertyName=function(t){return n[t]||t},t.unprefixedPropertyName=function(t){return r[t]||t}}(n)}(),function(){if(void 0===document.createElement("div").animate([]).oncancel){var t;if(window.performance&&performance.now)var t=function(){return performance.now()};else var t=function(){return Date.now()};var e=function(t,e,i){this.target=t,this.currentTime=e,this.timelineTime=i,this.type="cancel",this.bubbles=!1,this.cancelable=!1,this.currentTarget=t,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()},i=window.Element.prototype.animate;window.Element.prototype.animate=function(n,r){var o=i.call(this,n,r);o._cancelHandlers=[],o.oncancel=null;var a=o.cancel;o.cancel=function(){a.call(this);var i=new e(this,null,t()),n=this._cancelHandlers.concat(this.oncancel?[this.oncancel]:[]);setTimeout(function(){n.forEach(function(t){t.call(i.target,i)})},0)};var s=o.addEventListener;o.addEventListener=function(t,e){"function"==typeof e&&"cancel"==t?this._cancelHandlers.push(e):s.call(this,t,e)};var u=o.removeEventListener;return o.removeEventListener=function(t,e){if("cancel"==t){var i=this._cancelHandlers.indexOf(e);i>=0&&this._cancelHandlers.splice(i,1)}else u.call(this,t,e)},o}}}(),function(t){var e=document.documentElement,i=null,n=!1;try{var r=getComputedStyle(e).getPropertyValue("opacity"),o="0"==r?"1":"0";i=e.animate({opacity:[o,o]},{duration:1}),i.currentTime=0,n=getComputedStyle(e).getPropertyValue("opacity")==o}catch(t){}finally{i&&i.cancel()}if(!n){var a=window.Element.prototype.animate;window.Element.prototype.animate=function(e,i){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&e[Symbol.iterator]&&(e=Array.from(e)),Array.isArray(e)||null===e||(e=t.convertToArrayForm(e)),a.call(this,e,i)}}}(i),function(t,e,i){function n(t){var i=e.timeline;i.currentTime=t,i._discardAnimations(),0==i._animations.length?o=!1:requestAnimationFrame(n)}var r=window.requestAnimationFrame;window.requestAnimationFrame=function(t){return r(function(i){e.timeline._updateAnimationsPromises(),t(i),e.timeline._updateAnimationsPromises()})},e.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},e.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){e.animationsWithPromises=e.animationsWithPromises.filter(function(t){return t._updatePromises()})},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter(function(t){return"finished"!=t.playState&&"idle"!=t.playState})},_play:function(t){var i=new e.Animation(t,this);return this._animations.push(i),e.restartWebAnimationsNextTick(),i._updatePromises(),i._animation.play(),i._updatePromises(),i},play:function(t){return t&&t.remove(),this._play(t)}};var o=!1;e.restartWebAnimationsNextTick=function(){o||(o=!0,requestAnimationFrame(n))};var a=new e.AnimationTimeline;e.timeline=a;try{Object.defineProperty(window.document,"timeline",{configurable:!0,get:function(){return a}})}catch(t){}try{window.document.timeline=a}catch(t){}}(0,r),function(t,e,i){e.animationsWithPromises=[],e.Animation=function(e,i){if(this.id="",e&&e._id&&(this.id=e._id),this.effect=e,e&&(e._animation=this),!i)throw new Error("Animation with null timeline is not supported");this._timeline=i,this._sequenceNumber=t.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState="idle",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},e.Animation.prototype={_updatePromises:function(){var t=this._oldPlayState,e=this.playState;return this._readyPromise&&e!==t&&("idle"==e?(this._rejectReadyPromise(),this._readyPromise=void 0):"pending"==t?this._resolveReadyPromise():"pending"==e&&(this._readyPromise=void 0)),this._finishedPromise&&e!==t&&("idle"==e?(this._rejectFinishedPromise(),this._finishedPromise=void 0):"finished"==e?this._resolveFinishedPromise():"finished"==t&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var t,i,n,r,o=!!this._animation;o&&(t=this.playbackRate,i=this._paused,n=this.startTime,r=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=e.newUnderlyingAnimationForKeyframeEffect(this.effect),e.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=e.newUnderlyingAnimationForGroup(this.effect),e.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&e.bindAnimationForCustomEffect(this),o&&(1!=t&&(this.playbackRate=t),null!==n?this.startTime=n:null!==r?this.currentTime=r:null!==this._holdTime&&(this.currentTime=this._holdTime),i&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&"idle"!=this.playState){var t=this.effect._timing.delay;this._childAnimations.forEach(function(i){this._arrangeChildren(i,t),this.effect instanceof window.SequenceEffect&&(t+=e.groupChildDuration(i.effect))}.bind(this))}},_setExternalAnimation:function(t){if(this.effect&&this._isGroup)for(var e=0;e \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index d41c459ae9b59c2f9233602083606c4a653c80d6..ffc622ccf1e35973d336f53be38477b655c8ab3d 100644 GIT binary patch delta 28275 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 diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 7f6aeaf2a2e..3092a4c0847 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 7f6aeaf2a2e8a91f59030300fbf47f0b8e3952f1 +Subproject commit 3092a4c08473df6b8643221e2740791fc6c8b03d diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html new file mode 100644 index 00000000000..66970227b04 --- /dev/null +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html.gz new file mode 100644 index 0000000000000000000000000000000000000000..8e17b8bda2032e0daae7d2011ef090f5555bdd05 GIT binary patch literal 8302 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 \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz index c479a26990fa287447a8722b88b4831855debd10..67fa10692b15ef97b0b29a9f2880f17090edd97c 100644 GIT binary patch delta 666 zcmV;L0%iU6xdHgO0kCaae>JF)j2wVkI5DmE|9Jn)&q<5l{$#V*@3NjhyA#!^T$f5W zhytA+@-oXyUeh#_GF`Q#&&Qii#5;@;TG4m?3l<@O5IDI7yQ?OVs(_yurCYQN)(w21 zZ=K-QbY}Fm4kX#32h$4y`7>cML0Sj;jRBB?|L4L46Kb`xkFf2df0+3aUbv~y z-r?5m)ti=lE~o&eBWLSfhAwj8l)>9rPnPp4BByLR<{M-oi_nSKcoMHpC%POJXxJR;9XBE$|C%_O9^9*K zt}eMv%XSfKmi)HgTZP*=uh7OS31){6L$LQx^V_cMw$ybUf27z3ZtU@XN644HSJyHO z5}YwwB6d=9N~K_%Is*;kmKaau`YONfPIEDvl*-P`w5MG*TG7f<>}9t7v`Us}rT2t3 z!Gg^def)<8fzN#iz}?*%P=y@{pE22Wv&~2~2O#2ZSuE)Vkt2gNoPi03OREWlNVYP# zx^^1^nJ_rBf0vEYvHU{M`-4q|BDXs!hK8X>WNz#iTfn}__kT6mrg)?nOp}?cEQ_w~ z%(V2_wwo6Zo>tNgiLf7nXEWf*?dW^d ziP8&1U?DARY0v@;$&g&Qth)wCZRJZ4d576o;%W=z5dL#l-On!m7b%Q8g6Mn!0FPfz A*#H0l delta 663 zcmV;I0%-mCxdHXL0kCaaf7R)_g;UUK|Bv^-{G7D-l}|Q{{l@E=vYS)Q%N3}!fGE1@ z!7a1Ap+qndN92ZkUtY96Qp&Z-xvTX_QXF3R+*j!>Rw5^X~Gf7{wJ_@mgoXZ=b)h!DQuQR6B8f6!8A=#9_X!(XQJ2nv3dh5|$a_vtzB;mv1XxtBNV6==DH&(?;) zC>Jv1n;%(CU)g zv}_l#X31~+y;Zo4^9pUOl3;fD*aN%#G{5c2ZcAO)L5gk4f5yJ;cZ7V?dvz@X9>Hm% zC1NKvr&J27sWZ?7Zi$gYuCMaz?lc#(NvSN#Ov~A2qrI#w#r|a5Ppf2!_IOWd{VUio z(Z_#i5csf%0NmZJ0ae(M@EMa`H`|OUC~~`#0%sU{MCQhRu?6g#y!=;#ZHh;V!894f%ChLh&iww4 zB;a~gZK$q`8xoag&^km{BP#w@UGEa5x-LBzY`b~!;AtftjtKk7cQyl_+>X9S?I*o8 x1Qyc5mIf`rkPNtk$0GVC9YmT?mu_c4gKume*yATkvr0S0RT?>R7?N> diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html index c1be1953639..35c72447981 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html.gz index d5877c44dc039c5abd0d54a552cf7154ad8ac25b..9811010bcc3d75323a5977d1fdda3ecbaefe1b66 100644 GIT binary patch literal 11544 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 literal 11445 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 PySe_q4i9-G0jmH2C~i9* diff --git a/homeassistant/components/frontend/www_static/service_worker.js b/homeassistant/components/frontend/www_static/service_worker.js index 173132fd3a9..a39d85e64db 100644 --- a/homeassistant/components/frontend/www_static/service_worker.js +++ b/homeassistant/components/frontend/www_static/service_worker.js @@ -1 +1 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}function notificationEventCallback(e,t){firePushCallback({action:t.action,data:t.notification.data,tag:t.notification.tag,type:e},t.notification.data.jwt)}function firePushCallback(e,t){delete e.data.jwt,0===Object.keys(e.data).length&&e.data.constructor===Object&&delete e.data,fetch("/api/notify.html5/callback",{method:"POST",headers:new Headers({"Content-Type":"application/json",Authorization:"Bearer "+t}),body:JSON.stringify(e)})}var precacheConfig=[["/","8238a6b76dc1d63c68a457d6cd4c923d"],["/frontend/panels/dev-event-77784d5f0c73fcc3b29b6cc050bdf324.html","eebf53a12ae770fea7c5429de2db810c"],["/frontend/panels/dev-info-24e888ec7a8acd0c395b34396e9001bc.html","7bb116813e8dbab7bcfabdf4de3ec83f"],["/frontend/panels/dev-service-86a42a17f4894478b6b77bc636beafd0.html","86888ff94a1958074cde156739687ba0"],["/frontend/panels/dev-state-31ef6ffe3347cdda5bb0cbbc54b62cde.html","38dc27f1f817045900f396a61c7e736f"],["/frontend/panels/dev-template-d1d76e20fe9622cddee33e67318abde8.html","2973bd8b33775239a4a05d6d569dd331"],["/frontend/panels/map-50501cd53eb4304e9e46eb719aa894b7.html","410d870df0226d08078d8dc45d02a8ef"],["/static/compatibility-8e4c44b5f4288cc48ec1ba94a9bec812.js","4704a985ad259e324c3d8a0a40f6d937"],["/static/core-d4a7cb8c80c62b536764e0e81385f6aa.js","37e34ec6aa0fa155c7d50e2883be1ead"],["/static/frontend-7d599996578579600f1000d6d25e649d.html","f0952d6690b5bb62c2254b6607b320c9"],["/static/mdi-e91f61a039ed0a9936e7ee5360da3870.html","5e587bc82719b740a4f0798722a83aee"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"],["static/webcomponents-lite.min.js","32b5a9b7ada86304bec6b43d3f2194f0"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,a){var c=new URL(e);return a&&c.pathname.match(a)||(c.search+=(c.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),c.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],a=new URL(t,self.location),c=createCacheKey(a,hashParamName,n,!1);return[a.toString(),c]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var a=new Request(n,{credentials:"same-origin"});return fetch(a).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^((?!(static|api|local|service_worker.js|manifest.json)).)*$"],e.request.url)&&(n=new URL("/",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),self.addEventListener("push",function(e){var t;e.data&&(t=e.data.json(),e.waitUntil(self.registration.showNotification(t.title,t).then(function(e){firePushCallback({type:"received",tag:t.tag,data:t.data},t.data.jwt)})))}),self.addEventListener("notificationclick",function(e){var t;notificationEventCallback("clicked",e),e.notification.close(),e.notification.data&&e.notification.data.url&&(t=e.notification.data.url)&&e.waitUntil(clients.matchAll({type:"window"}).then(function(e){var n,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 G761SN73}%| From e6be560e00a9ab5126ef64db54df06bb8851ee36 Mon Sep 17 00:00:00 2001 From: Alan Fischer Date: Mon, 31 Jul 2017 11:46:12 -0600 Subject: [PATCH 028/128] Add toggle to remotes (#8483) * Add toggle to remotes * Only include activity if specified, and add service description --- homeassistant/components/remote/__init__.py | 40 +++++++++++++++---- homeassistant/components/remote/apple_tv.py | 2 +- homeassistant/components/remote/harmony.py | 2 +- homeassistant/components/remote/itach.py | 2 +- homeassistant/components/remote/services.yaml | 8 ++++ 5 files changed, 44 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/remote/__init__.py b/homeassistant/components/remote/__init__.py index bec4adcaa7e..64a5c77e5dd 100755 --- a/homeassistant/components/remote/__init__.py +++ b/homeassistant/components/remote/__init__.py @@ -18,7 +18,8 @@ from homeassistant.helpers.entity_component import EntityComponent from homeassistant.helpers.entity import ToggleEntity import homeassistant.helpers.config_validation as cv from homeassistant.const import ( - STATE_ON, SERVICE_TURN_ON, SERVICE_TURN_OFF, ATTR_ENTITY_ID) + STATE_ON, SERVICE_TURN_ON, SERVICE_TURN_OFF, SERVICE_TOGGLE, + ATTR_ENTITY_ID) from homeassistant.components import group from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa @@ -51,7 +52,7 @@ REMOTE_SERVICE_SCHEMA = vol.Schema({ vol.Required(ATTR_ENTITY_ID): cv.entity_ids, }) -REMOTE_SERVICE_TURN_ON_SCHEMA = REMOTE_SERVICE_SCHEMA.extend({ +REMOTE_SERVICE_ACTIVITY_SCHEMA = REMOTE_SERVICE_SCHEMA.extend({ vol.Optional(ATTR_ACTIVITY): cv.string }) @@ -80,12 +81,31 @@ def turn_on(hass, activity=None, entity_id=None): @bind_hass -def turn_off(hass, entity_id=None): +def turn_off(hass, activity=None, entity_id=None): """Turn all or specified remote off.""" - data = {ATTR_ENTITY_ID: entity_id} if entity_id else None + data = {} + if activity: + data[ATTR_ACTIVITY] = activity + + if entity_id: + data[ATTR_ENTITY_ID] = entity_id + hass.services.call(DOMAIN, SERVICE_TURN_OFF, data) +@bind_hass +def toggle(hass, activity=None, entity_id=None): + """Toggle all or specified remote.""" + data = {} + if activity: + data[ATTR_ACTIVITY] = activity + + if entity_id: + data[ATTR_ENTITY_ID] = entity_id + + hass.services.call(DOMAIN, SERVICE_TOGGLE, data) + + @bind_hass def send_command(hass, device, command, entity_id=None, num_repeats=None, delay_secs=None): @@ -124,12 +144,14 @@ def async_setup(hass, config): for remote in target_remotes: if service.service == SERVICE_TURN_ON: yield from remote.async_turn_on(activity=activity_id) + elif service.service == SERVICE_TOGGLE: + yield from remote.async_toggle(activity=activity_id) elif service.service == SERVICE_SEND_COMMAND: yield from remote.async_send_command( device=device, command=command, num_repeats=num_repeats, delay_secs=delay_secs) else: - yield from remote.async_turn_off() + yield from remote.async_turn_off(activity=activity_id) update_tasks = [] for remote in target_remotes: @@ -152,11 +174,15 @@ def async_setup(hass, config): hass.services.async_register( DOMAIN, SERVICE_TURN_OFF, async_handle_remote_service, descriptions.get(SERVICE_TURN_OFF), - schema=REMOTE_SERVICE_SCHEMA) + schema=REMOTE_SERVICE_ACTIVITY_SCHEMA) hass.services.async_register( DOMAIN, SERVICE_TURN_ON, async_handle_remote_service, descriptions.get(SERVICE_TURN_ON), - schema=REMOTE_SERVICE_TURN_ON_SCHEMA) + schema=REMOTE_SERVICE_ACTIVITY_SCHEMA) + hass.services.async_register( + DOMAIN, SERVICE_TOGGLE, async_handle_remote_service, + descriptions.get(SERVICE_TOGGLE), + schema=REMOTE_SERVICE_ACTIVITY_SCHEMA) hass.services.async_register( DOMAIN, SERVICE_SEND_COMMAND, async_handle_remote_service, descriptions.get(SERVICE_SEND_COMMAND), diff --git a/homeassistant/components/remote/apple_tv.py b/homeassistant/components/remote/apple_tv.py index e89234c60ac..50f31f57a5b 100644 --- a/homeassistant/components/remote/apple_tv.py +++ b/homeassistant/components/remote/apple_tv.py @@ -68,7 +68,7 @@ class AppleTVRemote(remote.RemoteDevice): self._power.set_power_on(True) @asyncio.coroutine - def async_turn_off(self): + def async_turn_off(self, **kwargs): """Turn the device off. This method is a coroutine. diff --git a/homeassistant/components/remote/harmony.py b/homeassistant/components/remote/harmony.py index cdc6a7ac61f..9c551e5cbc6 100755 --- a/homeassistant/components/remote/harmony.py +++ b/homeassistant/components/remote/harmony.py @@ -202,7 +202,7 @@ class HarmonyRemote(remote.RemoteDevice): else: _LOGGER.error("No activity specified with turn_on service") - def turn_off(self): + def turn_off(self, **kwargs): """Start the PowerOff activity.""" import pyharmony pyharmony.ha_power_off(self._token, self.host, self._port) diff --git a/homeassistant/components/remote/itach.py b/homeassistant/components/remote/itach.py index 9feb2d1141d..5f6ee0c6ad7 100644 --- a/homeassistant/components/remote/itach.py +++ b/homeassistant/components/remote/itach.py @@ -102,7 +102,7 @@ class ITachIP2IRRemote(remote.RemoteDevice): self.itachip2ir.send(self._name, "ON", 1) self.schedule_update_ha_state() - def turn_off(self): + def turn_off(self, **kwargs): """Turn the device off.""" self._power = False self.itachip2ir.send(self._name, "OFF", 1) diff --git a/homeassistant/components/remote/services.yaml b/homeassistant/components/remote/services.yaml index ff9cc3d3b16..e59cd709a71 100644 --- a/homeassistant/components/remote/services.yaml +++ b/homeassistant/components/remote/services.yaml @@ -11,6 +11,14 @@ turn_on: description: Activity ID or Activity Name to start example: 'BedroomTV' +toggle: + description: Toggles a device + + fields: + entity_id: + description: Name(s) of entities to toggle + example: 'remote.family_room' + turn_off: description: Sends the Power Off Command From 455ac9724a8e85f5aeda9df65d716a1975d34a70 Mon Sep 17 00:00:00 2001 From: gwhiteCL Date: Mon, 31 Jul 2017 18:24:21 -0600 Subject: [PATCH 029/128] added invert_state optional parameter (#8695) * added invert_state optional parameter * removed superfluous parens * moved state inversion to the is_closed method * added relay_invert feature * fixed syntax to comply with houndci-bot rules * changed state_invert to invert_state and relay_invert to invert_relay --- homeassistant/components/cover/rpi_gpio.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/cover/rpi_gpio.py b/homeassistant/components/cover/rpi_gpio.py index 07be998035c..1ee3ea00476 100644 --- a/homeassistant/components/cover/rpi_gpio.py +++ b/homeassistant/components/cover/rpi_gpio.py @@ -24,9 +24,13 @@ CONF_RELAY_PIN = 'relay_pin' CONF_RELAY_TIME = 'relay_time' CONF_STATE_PIN = 'state_pin' CONF_STATE_PULL_MODE = 'state_pull_mode' +CONF_INVERT_STATE = 'invert_state' +CONF_INVERT_RELAY = 'invert_relay' DEFAULT_RELAY_TIME = .2 DEFAULT_STATE_PULL_MODE = 'UP' +DEFAULT_INVERT_STATE = False +DEFAULT_INVERT_RELAY = False DEPENDENCIES = ['rpi_gpio'] _COVERS_SCHEMA = vol.All( @@ -45,6 +49,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_STATE_PULL_MODE, default=DEFAULT_STATE_PULL_MODE): cv.string, vol.Optional(CONF_RELAY_TIME, default=DEFAULT_RELAY_TIME): cv.positive_int, + vol.Optional(CONF_INVERT_STATE, default=DEFAULT_INVERT_STATE): cv.boolean, + vol.Optional(CONF_INVERT_RELAY, default=DEFAULT_INVERT_RELAY): cv.boolean, }) @@ -53,13 +59,15 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the RPi cover platform.""" relay_time = config.get(CONF_RELAY_TIME) state_pull_mode = config.get(CONF_STATE_PULL_MODE) + invert_state = config.get(CONF_INVERT_STATE) + invert_relay = config.get(CONF_INVERT_RELAY) covers = [] covers_conf = config.get(CONF_COVERS) for cover in covers_conf: covers.append(RPiGPIOCover( cover[CONF_NAME], cover[CONF_RELAY_PIN], cover[CONF_STATE_PIN], - state_pull_mode, relay_time)) + state_pull_mode, relay_time, invert_state, invert_relay)) add_devices(covers) @@ -67,7 +75,7 @@ class RPiGPIOCover(CoverDevice): """Representation of a Raspberry GPIO cover.""" def __init__(self, name, relay_pin, state_pin, state_pull_mode, - relay_time): + relay_time, invert_state, invert_relay): """Initialize the cover.""" self._name = name self._state = False @@ -75,9 +83,11 @@ class RPiGPIOCover(CoverDevice): self._state_pin = state_pin self._state_pull_mode = state_pull_mode self._relay_time = relay_time + self._invert_state = invert_state + self._invert_relay = invert_relay rpi_gpio.setup_output(self._relay_pin) rpi_gpio.setup_input(self._state_pin, self._state_pull_mode) - rpi_gpio.write_output(self._relay_pin, True) + rpi_gpio.write_output(self._relay_pin, not self._invert_relay) @property def unique_id(self): @@ -96,13 +106,13 @@ class RPiGPIOCover(CoverDevice): @property def is_closed(self): """Return true if cover is closed.""" - return self._state + return self._state != self._invert_state def _trigger(self): """Trigger the cover.""" - rpi_gpio.write_output(self._relay_pin, False) + rpi_gpio.write_output(self._relay_pin, self._invert_relay) sleep(self._relay_time) - rpi_gpio.write_output(self._relay_pin, True) + rpi_gpio.write_output(self._relay_pin, not self._invert_relay) def close_cover(self): """Close the cover.""" From 775185896ae54973e9dc6233601b0240eab9989c Mon Sep 17 00:00:00 2001 From: mjj4791 Date: Tue, 1 Aug 2017 05:37:33 +0200 Subject: [PATCH 030/128] buienradar dates tz-aware (#8767) --- homeassistant/components/sensor/buienradar.py | 13 ++++++++++--- homeassistant/components/weather/buienradar.py | 2 +- requirements_all.txt | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/sensor/buienradar.py b/homeassistant/components/sensor/buienradar.py index 753782786d7..755d88bb443 100755 --- a/homeassistant/components/sensor/buienradar.py +++ b/homeassistant/components/sensor/buienradar.py @@ -23,10 +23,11 @@ from homeassistant.helpers.event import ( async_track_point_in_utc_time) from homeassistant.util import dt as dt_util -REQUIREMENTS = ['buienradar==0.7'] +REQUIREMENTS = ['buienradar==0.8'] _LOGGER = logging.getLogger(__name__) +MEASURED_LABEL = 'Measured' TIMEFRAME_LABEL = 'Timeframe' # Schedule next call after (minutes): SCHEDULE_OK = 10 @@ -40,7 +41,7 @@ SENSOR_TYPES = { 'symbol': ['Symbol', None, None], 'humidity': ['Humidity', '%', 'mdi:water-percent'], 'temperature': ['Temperature', TEMP_CELSIUS, 'mdi:thermometer'], - 'groundtemperature': ['Ground Temperature', TEMP_CELSIUS, + 'groundtemperature': ['Ground temperature', TEMP_CELSIUS, 'mdi:thermometer'], 'windspeed': ['Wind speed', 'm/s', 'mdi:weather-windy'], 'windforce': ['Wind force', 'Bft', 'mdi:weather-windy'], @@ -205,10 +206,16 @@ class BrSensor(Entity): return result - return { + result = { ATTR_ATTRIBUTION: self._attribution, SENSOR_TYPES['stationname'][0]: self._stationname, } + if self._measured is not None: + # convert datetime (Europe/Amsterdam) into local datetime + local_dt = dt_util.as_local(self._measured) + result[MEASURED_LABEL] = local_dt.strftime("%c") + + return result @property def unit_of_measurement(self): diff --git a/homeassistant/components/weather/buienradar.py b/homeassistant/components/weather/buienradar.py index c6563509e71..bca50182a16 100755 --- a/homeassistant/components/weather/buienradar.py +++ b/homeassistant/components/weather/buienradar.py @@ -16,7 +16,7 @@ from homeassistant.components.sensor.buienradar import ( BrData) import voluptuous as vol -REQUIREMENTS = ['buienradar==0.7'] +REQUIREMENTS = ['buienradar==0.8'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index e11739d0e87..4e5fd8a1424 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -124,7 +124,7 @@ broadlink==0.5 # homeassistant.components.sensor.buienradar # homeassistant.components.weather.buienradar -buienradar==0.7 +buienradar==0.8 # homeassistant.components.notify.ciscospark ciscosparkapi==0.4.2 From e57d6f679a725ca3e8d3b74562dc09523b2b9e28 Mon Sep 17 00:00:00 2001 From: emlt Date: Tue, 1 Aug 2017 05:41:45 +0200 Subject: [PATCH 031/128] Change units from KW to W (#8761) * Change units from KW to W Change power unit from KW to W to be consistent with other energy sensors. * Change units from kW to W --- homeassistant/components/sensor/efergy.py | 8 ++++---- tests/components/sensor/test_efergy.py | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/sensor/efergy.py b/homeassistant/components/sensor/efergy.py index da7181972cb..0f24905c5f5 100644 --- a/homeassistant/components/sensor/efergy.py +++ b/homeassistant/components/sensor/efergy.py @@ -33,11 +33,11 @@ CONF_CURRENT_VALUES = 'current_values' DEFAULT_PERIOD = 'year' SENSOR_TYPES = { - CONF_INSTANT: ['Energy Usage', 'kW'], + CONF_INSTANT: ['Energy Usage', 'W'], CONF_AMOUNT: ['Energy Consumed', 'kWh'], CONF_BUDGET: ['Energy Budget', None], CONF_COST: ['Energy Cost', None], - CONF_CURRENT_VALUES: ['Per-Device Usage', 'kW'] + CONF_CURRENT_VALUES: ['Per-Device Usage', 'W'] } TYPES_SCHEMA = vol.In(SENSOR_TYPES) @@ -120,7 +120,7 @@ class EfergySensor(Entity): if self.type == 'instant_readings': url_string = _RESOURCE + 'getInstant?token=' + self.app_token response = get(url_string, timeout=10) - self._state = response.json()['reading'] / 1000 + self._state = response.json()['reading'] elif self.type == 'amount': url_string = _RESOURCE + 'getEnergy?token=' + self.app_token \ + '&offset=' + self.utc_offset + '&period=' \ @@ -144,7 +144,7 @@ class EfergySensor(Entity): for sensor in response.json(): if self.sid == sensor['sid']: measurement = next(iter(sensor['data'][0].values())) - self._state = measurement / 1000 + self._state = measurement else: self._state = 'Unknown' except (RequestException, ValueError, KeyError): diff --git a/tests/components/sensor/test_efergy.py b/tests/components/sensor/test_efergy.py index 3ecedcd12f3..83309329a11 100644 --- a/tests/components/sensor/test_efergy.py +++ b/tests/components/sensor/test_efergy.py @@ -85,13 +85,13 @@ class TestEfergySensor(unittest.TestCase): 'sensor': ONE_SENSOR_CONFIG}) self.assertEqual('38.21', self.hass.states.get('sensor.energy_consumed').state) - self.assertEqual('1.58', + self.assertEqual('1580', self.hass.states.get('sensor.energy_usage').state) self.assertEqual('ok', self.hass.states.get('sensor.energy_budget').state) self.assertEqual('5.27', self.hass.states.get('sensor.energy_cost').state) - self.assertEqual('1.628', + self.assertEqual('1628', self.hass.states.get('sensor.efergy_728386').state) @requests_mock.Mocker() @@ -100,9 +100,9 @@ class TestEfergySensor(unittest.TestCase): mock_responses(mock) assert setup_component(self.hass, 'sensor', { 'sensor': MULTI_SENSOR_CONFIG}) - self.assertEqual('0.218', + self.assertEqual('218', self.hass.states.get('sensor.efergy_728386').state) - self.assertEqual('1.808', + self.assertEqual('1808', self.hass.states.get('sensor.efergy_0').state) - self.assertEqual('0.312', + self.assertEqual('312', self.hass.states.get('sensor.efergy_728387').state) From 33663f95026eb7a6fd3b9dcc716a7b88029c1a10 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Tue, 1 Aug 2017 05:52:39 +0200 Subject: [PATCH 032/128] Clean up remote component (#8728) * Clean up remote component * Don't have device be required in send_command service and method. * Don't have entity_id be required in the base service schema. * Don't always add activity in the data dict for a service call. * Update harmony remote platform according to new service schema. * Remove not needed properties and attributes from the Kira remote platform. * Add send_command method to demo platform. * Add tests and remove duplicate tests. * Break out required argument as positional argument --- homeassistant/components/remote/__init__.py | 36 +++++---- homeassistant/components/remote/apple_tv.py | 13 ++-- homeassistant/components/remote/demo.py | 13 ++++ homeassistant/components/remote/harmony.py | 20 +++-- homeassistant/components/remote/itach.py | 9 +-- homeassistant/components/remote/kira.py | 27 ++----- tests/components/remote/test_demo.py | 86 +++++---------------- 7 files changed, 85 insertions(+), 119 deletions(-) diff --git a/homeassistant/components/remote/__init__.py b/homeassistant/components/remote/__init__.py index 64a5c77e5dd..e975460be58 100755 --- a/homeassistant/components/remote/__init__.py +++ b/homeassistant/components/remote/__init__.py @@ -45,11 +45,11 @@ MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10) SERVICE_SEND_COMMAND = 'send_command' SERVICE_SYNC = 'sync' -DEFAULT_NUM_REPEATS = '1' -DEFAULT_DELAY_SECS = '0.4' +DEFAULT_NUM_REPEATS = 1 +DEFAULT_DELAY_SECS = 0.4 REMOTE_SERVICE_SCHEMA = vol.Schema({ - vol.Required(ATTR_ENTITY_ID): cv.entity_ids, + vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, }) REMOTE_SERVICE_ACTIVITY_SCHEMA = REMOTE_SERVICE_SCHEMA.extend({ @@ -57,10 +57,12 @@ REMOTE_SERVICE_ACTIVITY_SCHEMA = REMOTE_SERVICE_SCHEMA.extend({ }) REMOTE_SERVICE_SEND_COMMAND_SCHEMA = REMOTE_SERVICE_SCHEMA.extend({ - vol.Required(ATTR_DEVICE): cv.string, vol.Required(ATTR_COMMAND): vol.All(cv.ensure_list, [cv.string]), - vol.Optional(ATTR_NUM_REPEATS, default=DEFAULT_NUM_REPEATS): cv.string, - vol.Optional(ATTR_DELAY_SECS, default=DEFAULT_DELAY_SECS): cv.string + vol.Optional(ATTR_DEVICE): cv.string, + vol.Optional( + ATTR_NUM_REPEATS, default=DEFAULT_NUM_REPEATS): cv.positive_int, + vol.Optional( + ATTR_DELAY_SECS, default=DEFAULT_DELAY_SECS): vol.Coerce(float) }) @@ -74,9 +76,11 @@ def is_on(hass, entity_id=None): @bind_hass def turn_on(hass, activity=None, entity_id=None): """Turn all or specified remote on.""" - data = {ATTR_ACTIVITY: activity} - if entity_id: - data[ATTR_ENTITY_ID] = entity_id + data = { + key: value for key, value in [ + (ATTR_ACTIVITY, activity), + (ATTR_ENTITY_ID, entity_id), + ] if value is not None} hass.services.call(DOMAIN, SERVICE_TURN_ON, data) @@ -107,13 +111,16 @@ def toggle(hass, activity=None, entity_id=None): @bind_hass -def send_command(hass, device, command, entity_id=None, +def send_command(hass, command, entity_id=None, device=None, num_repeats=None, delay_secs=None): """Send a command to a device.""" - data = {ATTR_DEVICE: str(device), ATTR_COMMAND: command} + data = {ATTR_COMMAND: command} if entity_id: data[ATTR_ENTITY_ID] = entity_id + if device: + data[ATTR_DEVICE] = device + if num_repeats: data[ATTR_NUM_REPEATS] = num_repeats @@ -194,13 +201,14 @@ def async_setup(hass, config): class RemoteDevice(ToggleEntity): """Representation of a remote.""" - def send_command(self, **kwargs): + def send_command(self, command, **kwargs): """Send a command to a device.""" raise NotImplementedError() - def async_send_command(self, **kwargs): + def async_send_command(self, command, **kwargs): """Send a command to a device. This method must be run in the event loop and returns a coroutine. """ - return self.hass.async_add_job(ft.partial(self.send_command, **kwargs)) + return self.hass.async_add_job(ft.partial( + self.send_command, command, **kwargs)) diff --git a/homeassistant/components/remote/apple_tv.py b/homeassistant/components/remote/apple_tv.py index 50f31f57a5b..36eee4b284e 100644 --- a/homeassistant/components/remote/apple_tv.py +++ b/homeassistant/components/remote/apple_tv.py @@ -8,7 +8,6 @@ import asyncio from homeassistant.components.apple_tv import ( ATTR_ATV, ATTR_POWER, DATA_APPLE_TV) -from homeassistant.components.remote import ATTR_COMMAND from homeassistant.components import remote from homeassistant.const import (CONF_NAME, CONF_HOST) @@ -75,18 +74,18 @@ class AppleTVRemote(remote.RemoteDevice): """ self._power.set_power_on(False) - def async_send_command(self, **kwargs): + def async_send_command(self, command, **kwargs): """Send a command to one device. This method must be run in the event loop and returns a coroutine. """ # Send commands in specified order but schedule only one coroutine @asyncio.coroutine - def _send_commads(): - for command in kwargs[ATTR_COMMAND]: - if not hasattr(self._atv.remote_control, command): + def _send_commands(): + for single_command in command: + if not hasattr(self._atv.remote_control, single_command): continue - yield from getattr(self._atv.remote_control, command)() + yield from getattr(self._atv.remote_control, single_command)() - return _send_commads() + return _send_commands() diff --git a/homeassistant/components/remote/demo.py b/homeassistant/components/remote/demo.py index 6976c116be9..bc67c1646b2 100644 --- a/homeassistant/components/remote/demo.py +++ b/homeassistant/components/remote/demo.py @@ -25,6 +25,7 @@ class DemoRemote(RemoteDevice): self._name = name or DEVICE_DEFAULT_NAME self._state = state self._icon = icon + self._last_command_sent = None @property def should_poll(self): @@ -46,6 +47,12 @@ class DemoRemote(RemoteDevice): """Return true if remote is on.""" return self._state + @property + def device_state_attributes(self): + """Return device state attributes.""" + if self._last_command_sent is not None: + return {'last_command_sent': self._last_command_sent} + def turn_on(self, **kwargs): """Turn the remote on.""" self._state = True @@ -55,3 +62,9 @@ class DemoRemote(RemoteDevice): """Turn the remote off.""" self._state = False self.schedule_update_ha_state() + + def send_command(self, command, **kwargs): + """Send a command to a device.""" + for com in command: + self._last_command_sent = com + self.schedule_update_ha_state() diff --git a/homeassistant/components/remote/harmony.py b/homeassistant/components/remote/harmony.py index 9c551e5cbc6..19dcc10c545 100755 --- a/homeassistant/components/remote/harmony.py +++ b/homeassistant/components/remote/harmony.py @@ -15,8 +15,8 @@ import homeassistant.helpers.config_validation as cv from homeassistant.const import ( CONF_NAME, CONF_HOST, CONF_PORT, ATTR_ENTITY_ID) from homeassistant.components.remote import ( - PLATFORM_SCHEMA, DOMAIN, ATTR_DEVICE, ATTR_COMMAND, - ATTR_ACTIVITY, ATTR_NUM_REPEATS, ATTR_DELAY_SECS) + PLATFORM_SCHEMA, DOMAIN, ATTR_DEVICE, ATTR_ACTIVITY, ATTR_NUM_REPEATS, + ATTR_DELAY_SECS) from homeassistant.util import slugify from homeassistant.config import load_yaml_config_file @@ -207,13 +207,21 @@ class HarmonyRemote(remote.RemoteDevice): import pyharmony pyharmony.ha_power_off(self._token, self.host, self._port) - def send_command(self, **kwargs): + def send_command(self, command, **kwargs): """Send a set of commands to one device.""" import pyharmony + device = kwargs.pop(ATTR_DEVICE, None) + if device is None: + _LOGGER.error("Missing required argument: device") + return + num_repeats = kwargs.pop(ATTR_NUM_REPEATS, None) + if num_repeats is not None: + kwargs[ATTR_NUM_REPEATS] = num_repeats + delay_secs = kwargs.pop(ATTR_DELAY_SECS, None) + if delay_secs is not None: + kwargs[ATTR_DELAY_SECS] = delay_secs pyharmony.ha_send_commands( - self._token, self.host, self._port, kwargs[ATTR_DEVICE], - kwargs[ATTR_COMMAND], int(kwargs[ATTR_NUM_REPEATS]), - float(kwargs[ATTR_DELAY_SECS])) + self._token, self.host, self._port, device, command, **kwargs) def sync(self): """Sync the Harmony device with the web service.""" diff --git a/homeassistant/components/remote/itach.py b/homeassistant/components/remote/itach.py index 5f6ee0c6ad7..eefa1ed79af 100644 --- a/homeassistant/components/remote/itach.py +++ b/homeassistant/components/remote/itach.py @@ -14,8 +14,7 @@ import homeassistant.components.remote as remote from homeassistant.const import ( DEVICE_DEFAULT_NAME, CONF_NAME, CONF_MAC, CONF_HOST, CONF_PORT, CONF_DEVICES) -from homeassistant.components.remote import ( - PLATFORM_SCHEMA, ATTR_COMMAND) +from homeassistant.components.remote import PLATFORM_SCHEMA REQUIREMENTS = ['pyitachip2ir==0.0.6'] @@ -108,10 +107,10 @@ class ITachIP2IRRemote(remote.RemoteDevice): self.itachip2ir.send(self._name, "OFF", 1) self.schedule_update_ha_state() - def send_command(self, **kwargs): + def send_command(self, command, **kwargs): """Send a command to one device.""" - for command in kwargs[ATTR_COMMAND]: - self.itachip2ir.send(self._name, command, 1) + for single_command in command: + self.itachip2ir.send(self._name, single_command, 1) def update(self): """Update the device.""" diff --git a/homeassistant/components/remote/kira.py b/homeassistant/components/remote/kira.py index 6f167bfdd05..c1a04718d33 100755 --- a/homeassistant/components/remote/kira.py +++ b/homeassistant/components/remote/kira.py @@ -11,9 +11,7 @@ import homeassistant.components.remote as remote from homeassistant.helpers.entity import Entity from homeassistant.const import ( - STATE_UNKNOWN, - CONF_DEVICE, - CONF_NAME) + CONF_DEVICE, CONF_NAME) DOMAIN = 'kira' @@ -40,8 +38,6 @@ class KiraRemote(Entity): """Initialize KiraRemote class.""" _LOGGER.debug("KiraRemote device init started for: %s", name) self._name = name - self._state = STATE_UNKNOWN - self._kira = kira @property @@ -49,30 +45,21 @@ class KiraRemote(Entity): """Return the Kira device's name.""" return self._name - @property - def device_state_attributes(self): - """Add platform specific attributes.""" - return {} - - @property - def is_on(self): - """Return True. Power state doesn't apply to this device.""" - return True - def update(self): """No-op.""" - def send_command(self, **kwargs): + def send_command(self, command, **kwargs): """Send a command to one device.""" - for command in kwargs.get(remote.ATTR_COMMAND): - code_tuple = (command, + for singel_command in command: + code_tuple = (singel_command, kwargs.get(remote.ATTR_DEVICE)) _LOGGER.info("Sending Command: %s to %s", *code_tuple) self._kira.sendCode(code_tuple) - def async_send_command(self, **kwargs): + def async_send_command(self, command, **kwargs): """Send a command to a device. This method must be run in the event loop and returns a coroutine. """ - return self.hass.async_add_job(ft.partial(self.send_command, **kwargs)) + return self.hass.async_add_job(ft.partial( + self.send_command, command, **kwargs)) diff --git a/tests/components/remote/test_demo.py b/tests/components/remote/test_demo.py index 0c6fada4748..ed9968c2d10 100755 --- a/tests/components/remote/test_demo.py +++ b/tests/components/remote/test_demo.py @@ -4,12 +4,10 @@ import unittest from homeassistant.setup import setup_component import homeassistant.components.remote as remote -from homeassistant.const import ( - ATTR_ENTITY_ID, STATE_ON, STATE_OFF, CONF_PLATFORM, - SERVICE_TURN_ON, SERVICE_TURN_OFF) -from tests.common import get_test_home_assistant, mock_service +from homeassistant.const import STATE_ON, STATE_OFF +from tests.common import get_test_home_assistant -SERVICE_SEND_COMMAND = 'send_command' +ENTITY_ID = 'remote.remote_one' class TestDemoRemote(unittest.TestCase): @@ -29,71 +27,25 @@ class TestDemoRemote(unittest.TestCase): self.hass.stop() def test_methods(self): - """Test if methods call the services as expected.""" - self.assertTrue( - setup_component(self.hass, remote.DOMAIN, - {remote.DOMAIN: {CONF_PLATFORM: 'demo'}})) - - # Test is_on - self.hass.states.set('remote.demo', STATE_ON) - self.assertTrue(remote.is_on(self.hass, 'remote.demo')) - - self.hass.states.set('remote.demo', STATE_OFF) - self.assertFalse(remote.is_on(self.hass, 'remote.demo')) - - self.hass.states.set(remote.ENTITY_ID_ALL_REMOTES, STATE_ON) - self.assertTrue(remote.is_on(self.hass)) - - self.hass.states.set(remote.ENTITY_ID_ALL_REMOTES, STATE_OFF) - self.assertFalse(remote.is_on(self.hass)) - - def test_services(self): - """Test the provided services.""" - # Test turn_on - turn_on_calls = mock_service( - self.hass, remote.DOMAIN, SERVICE_TURN_ON) - - remote.turn_on( - self.hass, - entity_id='entity_id_val') - + """Test if services call the entity methods as expected.""" + remote.turn_on(self.hass, entity_id=ENTITY_ID) self.hass.block_till_done() + state = self.hass.states.get(ENTITY_ID) + self.assertEqual(state.state, STATE_ON) - self.assertEqual(1, len(turn_on_calls)) - call = turn_on_calls[-1] - - self.assertEqual(remote.DOMAIN, call.domain) - - # Test turn_off - turn_off_calls = mock_service( - self.hass, remote.DOMAIN, SERVICE_TURN_OFF) - - remote.turn_off( - self.hass, entity_id='entity_id_val') - + remote.turn_off(self.hass, entity_id=ENTITY_ID) self.hass.block_till_done() + state = self.hass.states.get(ENTITY_ID) + self.assertEqual(state.state, STATE_OFF) - self.assertEqual(1, len(turn_off_calls)) - call = turn_off_calls[-1] - - self.assertEqual(remote.DOMAIN, call.domain) - self.assertEqual(SERVICE_TURN_OFF, call.service) - self.assertEqual('entity_id_val', call.data[ATTR_ENTITY_ID]) - - # Test send_command - send_command_calls = mock_service( - self.hass, remote.DOMAIN, SERVICE_SEND_COMMAND) - - remote.send_command( - self.hass, entity_id='entity_id_val', - device='test_device', command=['test_command'], - num_repeats='2', delay_secs='0.8') - + remote.turn_on(self.hass, entity_id=ENTITY_ID) self.hass.block_till_done() + state = self.hass.states.get(ENTITY_ID) + self.assertEqual(state.state, STATE_ON) - self.assertEqual(1, len(send_command_calls)) - call = send_command_calls[-1] - - self.assertEqual(remote.DOMAIN, call.domain) - self.assertEqual(SERVICE_SEND_COMMAND, call.service) - self.assertEqual('entity_id_val', call.data[ATTR_ENTITY_ID]) + remote.send_command(self.hass, 'test', entity_id=ENTITY_ID) + self.hass.block_till_done() + state = self.hass.states.get(ENTITY_ID) + self.assertEqual( + state.attributes, + {'friendly_name': 'Remote One', 'last_command_sent': 'test'}) From cb292a0b18fadbfbdfffa4e33722d95b7f795761 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Mon, 31 Jul 2017 23:54:07 -0400 Subject: [PATCH 033/128] Wink discovery (#8739) * Support for Wink discovery * Switched try/except for if/else --- homeassistant/components/discovery.py | 2 ++ homeassistant/components/wink.py | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/discovery.py b/homeassistant/components/discovery.py index af4604cb7d7..3a55f6559c6 100644 --- a/homeassistant/components/discovery.py +++ b/homeassistant/components/discovery.py @@ -33,6 +33,7 @@ SERVICE_IKEA_TRADFRI = 'ikea_tradfri' SERVICE_HASSIO = 'hassio' SERVICE_AXIS = 'axis' SERVICE_APPLE_TV = 'apple_tv' +SERVICE_WINK = 'wink' SERVICE_HANDLERS = { SERVICE_HASS_IOS_APP: ('ios', None), @@ -42,6 +43,7 @@ SERVICE_HANDLERS = { SERVICE_HASSIO: ('hassio', None), SERVICE_AXIS: ('axis', None), SERVICE_APPLE_TV: ('apple_tv', None), + SERVICE_WINK: ('wink', None), 'philips_hue': ('light', 'hue'), 'google_cast': ('media_player', 'cast'), 'panasonic_viera': ('media_player', 'panasonic_viera'), diff --git a/homeassistant/components/wink.py b/homeassistant/components/wink.py index e6d60aa5568..316c939492b 100644 --- a/homeassistant/components/wink.py +++ b/homeassistant/components/wink.py @@ -201,11 +201,19 @@ def setup(hass, config): return False pywink.set_bearer_token(token) - client_id = config[DOMAIN].get(ATTR_CLIENT_ID) - client_secret = config[DOMAIN].get(ATTR_CLIENT_SECRET) - email = config[DOMAIN].get(CONF_EMAIL) - password = config[DOMAIN].get(CONF_PASSWORD) - local_control = config[DOMAIN].get(CONF_LOCAL_CONTROL) + if config.get(DOMAIN) is not None: + client_id = config[DOMAIN].get(ATTR_CLIENT_ID) + client_secret = config[DOMAIN].get(ATTR_CLIENT_SECRET) + email = config[DOMAIN].get(CONF_EMAIL) + password = config[DOMAIN].get(CONF_PASSWORD) + local_control = config[DOMAIN].get(CONF_LOCAL_CONTROL) + else: + client_id = None + client_secret = None + email = None + password = None + local_control = None + hass.data[DOMAIN]['configurator'] = True if None not in [client_id, client_secret]: _LOGGER.info("Using legacy oauth authentication") if not local_control: From e40388e7ad90c887cc795f86d17f31dc42d88a29 Mon Sep 17 00:00:00 2001 From: viswa-swami Date: Tue, 1 Aug 2017 02:14:34 -0400 Subject: [PATCH 034/128] Enable/Disable Motion detection for Foscam Cameras (#8582) * Added support to enable/disable motion detection for foscam cameras. This support was added in 0.48.1 as a generic service for cameras. Motion detection can be enabled/disabled for foscam cameras with this code-set. * Fixed the violation identified by hound-bot * Fixed the comment posted by HoundCI-Bot regarding using imperative mood statement for pydocstyle * Fixed the error that travis-ci bot found. * As per comment from @balloob, Instead of directly using the URL to talk to foscam, used a 3rd party foscam library to communicate with it. This library already has support to enable/disable motion detection and also APIs to change the motion detection schedule etc. Need to add more support in the pyfoscam 3rd party library for checking if motion was detected or even if sound was detected. Once that is done, we can add that into HASS as well. * Lint * Removed the requests library import which is not used anymore * Updating requirements_all.txt based on the code-base of home assistant that i have. Generated using the gen_requirements_all.py script * Updating requirements_all.txt and requirements_test_all.txt generated by gen_requirements_all.py after latest pull from origin/dev * Updated requirements_all.txt with script * Updated the foscam camera code to fix lint errors * Fixed houndci violation --- homeassistant/components/camera/foscam.py | 59 +++++++++++++++-------- requirements_all.txt | 3 ++ 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/homeassistant/components/camera/foscam.py b/homeassistant/components/camera/foscam.py index 86061aa3d1d..6e9f036074a 100644 --- a/homeassistant/components/camera/foscam.py +++ b/homeassistant/components/camera/foscam.py @@ -6,7 +6,6 @@ https://home-assistant.io/components/camera.foscam/ """ import logging -import requests import voluptuous as vol from homeassistant.components.camera import (Camera, PLATFORM_SCHEMA) @@ -16,11 +15,15 @@ from homeassistant.helpers import config_validation as cv _LOGGER = logging.getLogger(__name__) +REQUIREMENTS = ['pyfoscam==1.2'] + CONF_IP = 'ip' DEFAULT_NAME = 'Foscam Camera' DEFAULT_PORT = 88 +FOSCAM_COMM_ERROR = -8 + PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_IP): cv.string, vol.Required(CONF_PASSWORD): cv.string, @@ -33,46 +36,60 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ # pylint: disable=unused-argument def setup_platform(hass, config, add_devices, discovery_info=None): """Set up a Foscam IP Camera.""" - add_devices([FoscamCamera(config)]) + add_devices([FoscamCam(config)]) -class FoscamCamera(Camera): +class FoscamCam(Camera): """An implementation of a Foscam IP camera.""" def __init__(self, device_info): """Initialize a Foscam camera.""" - super(FoscamCamera, self).__init__() + super(FoscamCam, self).__init__() ip_address = device_info.get(CONF_IP) port = device_info.get(CONF_PORT) - - self._base_url = 'http://{}:{}/'.format(ip_address, port) - - uri_template = self._base_url \ - + 'cgi-bin/CGIProxy.fcgi?' \ - + 'cmd=snapPicture2&usr={}&pwd={}' - self._username = device_info.get(CONF_USERNAME) self._password = device_info.get(CONF_PASSWORD) - self._snap_picture_url = uri_template.format( - self._username, - self._password - ) self._name = device_info.get(CONF_NAME) + self._motion_status = False - _LOGGER.info("Using the following URL for %s: %s", - self._name, uri_template.format('***', '***')) + from foscam import FoscamCamera + + self._foscam_session = FoscamCamera(ip_address, port, self._username, + self._password) def camera_image(self): """Return a still image reponse from the camera.""" # Send the request to snap a picture and return raw jpg data # Handle exception if host is not reachable or url failed - try: - response = requests.get(self._snap_picture_url, timeout=10) - except requests.exceptions.ConnectionError: + result, response = self._foscam_session.snap_picture_2() + if result == FOSCAM_COMM_ERROR: return None + + return response + + @property + def motion_detection_enabled(self): + """Camera Motion Detection Status.""" + return self._motion_status + + def enable_motion_detection(self): + """Enable motion detection in camera.""" + ret, err = self._foscam_session.enable_motion_detection() + if ret == FOSCAM_COMM_ERROR: + _LOGGER.debug("Unable to communicate with Foscam Camera: %s", err) + self._motion_status = True else: - return response.content + self._motion_status = False + + def disable_motion_detection(self): + """Disable motion detection.""" + ret, err = self._foscam_session.disable_motion_detection() + if ret == FOSCAM_COMM_ERROR: + _LOGGER.debug("Unable to communicate with Foscam Camera: %s", err) + self._motion_status = True + else: + self._motion_status = False @property def name(self): diff --git a/requirements_all.txt b/requirements_all.txt index 4e5fd8a1424..81c3768ea1a 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -577,6 +577,9 @@ pyfido==1.0.1 # homeassistant.components.climate.flexit pyflexit==0.3 +# homeassistant.components.camera.foscam +pyfoscam==1.2 + # homeassistant.components.ifttt pyfttt==0.3 From 2b59b917c4a7393f907a71ac7bb39bcb912d0fdc Mon Sep 17 00:00:00 2001 From: Matt Colyer Date: Mon, 31 Jul 2017 23:16:05 -0700 Subject: [PATCH 035/128] Allow sonos to select playlists as a source (#8258) * Allow sonos to select playlists as a source Most of this was taken from https://github.com/home-assistant/home-assistant/issues/5598#issuecomment-278229895 however I made a few small improvements so that it works for other services than Spotify and it should properly switch to playing the queue if you had another song playing previously. /cc @PatBoud * Attempt to fix style issues * More indent changes * Fix misplaced period * Move playlist replacement to function * Privatize replace_queue_with_playlist and explain * Remove unneeded decorator * Fix doc formatting --- .../components/media_player/sonos.py | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/media_player/sonos.py b/homeassistant/components/media_player/sonos.py index 33decf35f89..e51f3d70f2c 100644 --- a/homeassistant/components/media_player/sonos.py +++ b/homeassistant/components/media_player/sonos.py @@ -893,7 +893,44 @@ class SonosDevice(MediaPlayerDevice): if len(fav) == 1: src = fav.pop() self._source_name = src['title'] - self._player.play_uri(src['uri'], src['meta'], src['title']) + + if 'object.container.playlistContainer' in src['meta']: + self._replace_queue_with_playlist(src) + self._player.play_from_queue(0) + else: + self._player.play_uri(src['uri'], src['meta'], + src['title']) + + def _replace_queue_with_playlist(self, src): + """Replace queue with playlist represented by src. + + Playlists can't be played directly with the self._player.play_uri + API as they are actually composed of mulitple URLs. Until soco has + suppport for playing a playlist, we'll need to parse the playlist item + and replace the current queue in order to play it. + """ + import soco + import xml.etree.ElementTree as ET + + root = ET.fromstring(src['meta']) + namespaces = {'item': + 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/', + 'desc': 'urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/'} + desc = root.find('item:item', namespaces).find('desc:desc', + namespaces).text + + res = [soco.data_structures.DidlResource(uri=src['uri'], + protocol_info="DUMMY")] + didl = soco.data_structures.DidlItem(title="DUMMY", + parent_id="DUMMY", + item_id=src['uri'], + desc=desc, + resources=res) + + self._player.stop() + self._player.clear_queue() + self._player.play_mode = 'NORMAL' + self._player.add_to_queue(didl) @property def source_list(self): From 342ec8ec99637f12246110ff4ff1d84e33d77d35 Mon Sep 17 00:00:00 2001 From: Steven Looman Date: Tue, 1 Aug 2017 08:18:26 +0200 Subject: [PATCH 036/128] mpd improvements (#8655) * Don't require the MPD device to online during HASS startup * Hide private variables * Keep tox/flake8 happy * Fix typo * Force direct update * Implement MpdDevice.available * Fix typo --- homeassistant/components/media_player/mpd.py | 205 ++++++++++--------- 1 file changed, 104 insertions(+), 101 deletions(-) diff --git a/homeassistant/components/media_player/mpd.py b/homeassistant/components/media_player/mpd.py index d8dafc2be10..793588a8d9f 100644 --- a/homeassistant/components/media_player/mpd.py +++ b/homeassistant/components/media_player/mpd.py @@ -5,20 +5,19 @@ For more details about this platform, please refer to the documentation at https://home-assistant.io/components/media_player.mpd/ """ import logging -import socket from datetime import timedelta import voluptuous as vol from homeassistant.components.media_player import ( MEDIA_TYPE_MUSIC, SUPPORT_NEXT_TRACK, SUPPORT_PAUSE, PLATFORM_SCHEMA, - SUPPORT_PREVIOUS_TRACK, SUPPORT_TURN_OFF, SUPPORT_TURN_ON, + SUPPORT_PREVIOUS_TRACK, SUPPORT_STOP, SUPPORT_VOLUME_SET, SUPPORT_PLAY_MEDIA, SUPPORT_PLAY, MEDIA_TYPE_PLAYLIST, SUPPORT_SELECT_SOURCE, SUPPORT_CLEAR_PLAYLIST, SUPPORT_SHUFFLE_SET, SUPPORT_SEEK, MediaPlayerDevice) from homeassistant.const import ( - STATE_OFF, STATE_PAUSED, STATE_PLAYING, CONF_PORT, CONF_PASSWORD, - CONF_HOST, CONF_NAME) + STATE_OFF, STATE_ON, STATE_PAUSED, STATE_PLAYING, + CONF_PORT, CONF_PASSWORD, CONF_HOST, CONF_NAME) import homeassistant.helpers.config_validation as cv from homeassistant.util import Throttle @@ -31,10 +30,11 @@ DEFAULT_PORT = 6600 PLAYLIST_UPDATE_INTERVAL = timedelta(seconds=120) -SUPPORT_MPD = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | SUPPORT_TURN_OFF | \ - SUPPORT_TURN_ON | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \ +SUPPORT_MPD = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | \ + SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \ SUPPORT_PLAY_MEDIA | SUPPORT_PLAY | SUPPORT_SELECT_SOURCE | \ - SUPPORT_CLEAR_PLAYLIST | SUPPORT_SHUFFLE_SET | SUPPORT_SEEK + SUPPORT_CLEAR_PLAYLIST | SUPPORT_SHUFFLE_SET | SUPPORT_SEEK | \ + SUPPORT_STOP PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, @@ -47,34 +47,13 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ # pylint: disable=unused-argument def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the MPD platform.""" - daemon = config.get(CONF_HOST) + host = config.get(CONF_HOST) port = config.get(CONF_PORT) name = config.get(CONF_NAME) password = config.get(CONF_PASSWORD) - import mpd - # pylint: disable=no-member - try: - mpd_client = mpd.MPDClient() - mpd_client.connect(daemon, port) - - if password is not None: - mpd_client.password(password) - - mpd_client.close() - mpd_client.disconnect() - except socket.error: - _LOGGER.error("Unable to connect to MPD") - return False - except mpd.CommandError as error: - - if "incorrect password" in str(error): - _LOGGER.error("MPD reported incorrect password") - return False - else: - raise - - add_devices([MpdDevice(daemon, port, password, name)]) + device = MpdDevice(host, port, password, name) + add_devices([device], True) class MpdDevice(MediaPlayerDevice): @@ -89,37 +68,64 @@ class MpdDevice(MediaPlayerDevice): self.port = port self._name = name self.password = password - self.status = None - self.currentsong = None - self.playlists = [] - self.currentplaylist = None - self.client = mpd.MPDClient() - self.client.timeout = 10 - self.client.idletimeout = None - self.update() + self._status = None + self._currentsong = None + self._playlists = [] + self._currentplaylist = None + self._is_connected = False + + # set up MPD client + self._client = mpd.MPDClient() + self._client.timeout = 5 + self._client.idletimeout = None + if password is not None: + self._client.password(password) + + def _connect(self): + """Connect to MPD.""" + import mpd + try: + self._client.connect(self.server, self.port) + except mpd.ConnectionError: + return + + self._is_connected = True + + def _disconnect(self): + """Disconnect from MPD.""" + import mpd + try: + self._client.disconnect() + except mpd.ConnectionError: + pass + self._is_connected = False + self._status = None + + def _fetch_status(self): + """Fetch status from MPD.""" + self._status = self._client.status() + self._currentsong = self._client.currentsong() + + self._update_playlists() + + @property + def available(self): + """True if MPD is available and connected.""" + return self._is_connected def update(self): """Get the latest data and update the state.""" import mpd + try: - self.status = self.client.status() - self.currentsong = self.client.currentsong() - self._update_playlists() + if not self._is_connected: + self._connect() + + self._fetch_status() except (mpd.ConnectionError, OSError, BrokenPipeError, ValueError): # Cleanly disconnect in case connection is not in valid state - try: - self.client.disconnect() - except mpd.ConnectionError: - pass - - self.client.connect(self.server, self.port) - - if self.password is not None: - self.client.password(self.password) - - self.status = self.client.status() - self.currentsong = self.client.currentsong() + self._disconnect() @property def name(self): @@ -129,17 +135,19 @@ class MpdDevice(MediaPlayerDevice): @property def state(self): """Return the media state.""" - if self.status['state'] == 'play': + if self._status is None: + return STATE_OFF + elif self._status['state'] == 'play': return STATE_PLAYING - elif self.status['state'] == 'pause': + elif self._status['state'] == 'pause': return STATE_PAUSED - return STATE_OFF + return STATE_ON @property def media_content_id(self): """Return the content ID of current playing media.""" - return self.currentsong.get('file') + return self._currentsong.get('file') @property def media_content_type(self): @@ -150,13 +158,13 @@ class MpdDevice(MediaPlayerDevice): def media_duration(self): """Return the duration of current playing media in seconds.""" # Time does not exist for streams - return self.currentsong.get('time') + return self._currentsong.get('time') @property def media_title(self): """Return the title of current playing media.""" - name = self.currentsong.get('name', None) - title = self.currentsong.get('title', None) + name = self._currentsong.get('name', None) + title = self._currentsong.get('title', None) if name is None and title is None: return "None" @@ -170,17 +178,17 @@ class MpdDevice(MediaPlayerDevice): @property def media_artist(self): """Return the artist of current playing media (Music track only).""" - return self.currentsong.get('artist') + return self._currentsong.get('artist') @property def media_album_name(self): """Return the album of current playing media (Music track only).""" - return self.currentsong.get('album') + return self._currentsong.get('album') @property def volume_level(self): """Return the volume level.""" - return int(self.status['volume'])/100 + return int(self._status['volume'])/100 @property def supported_features(self): @@ -190,98 +198,93 @@ class MpdDevice(MediaPlayerDevice): @property def source(self): """Name of the current input source.""" - return self.currentplaylist + return self._currentplaylist @property def source_list(self): """Return the list of available input sources.""" - return self.playlists + return self._playlists def select_source(self, source): """Choose a different available playlist and play it.""" self.play_media(MEDIA_TYPE_PLAYLIST, source) - def turn_off(self): - """Service to send the MPD the command to stop playing.""" - self.client.stop() - - def turn_on(self): - """Service to send the MPD the command to start playing.""" - self.client.play() - self._update_playlists(no_throttle=True) - @Throttle(PLAYLIST_UPDATE_INTERVAL) def _update_playlists(self, **kwargs): """Update available MPD playlists.""" - self.playlists = [] - for playlist_data in self.client.listplaylists(): - self.playlists.append(playlist_data['playlist']) + self._playlists = [] + for playlist_data in self._client.listplaylists(): + self._playlists.append(playlist_data['playlist']) def set_volume_level(self, volume): """Set volume of media player.""" - self.client.setvol(int(volume * 100)) + self._client.setvol(int(volume * 100)) def volume_up(self): """Service to send the MPD the command for volume up.""" - current_volume = int(self.status['volume']) + current_volume = int(self._status['volume']) if current_volume <= 100: - self.client.setvol(current_volume + 5) + self._client.setvol(current_volume + 5) def volume_down(self): """Service to send the MPD the command for volume down.""" - current_volume = int(self.status['volume']) + current_volume = int(self._status['volume']) if current_volume >= 0: - self.client.setvol(current_volume - 5) + self._client.setvol(current_volume - 5) def media_play(self): """Service to send the MPD the command for play/pause.""" - self.client.pause(0) + self._client.pause(0) def media_pause(self): """Service to send the MPD the command for play/pause.""" - self.client.pause(1) + self._client.pause(1) + + def media_stop(self): + """Service to send the MPD the command for stop.""" + self._client.stop() def media_next_track(self): """Service to send the MPD the command for next track.""" - self.client.next() + self._client.next() def media_previous_track(self): """Service to send the MPD the command for previous track.""" - self.client.previous() + self._client.previous() def play_media(self, media_type, media_id, **kwargs): """Send the media player the command for playing a playlist.""" - _LOGGER.info(str.format("Playing playlist: {0}", media_id)) + _LOGGER.debug(str.format("Playing playlist: {0}", media_id)) if media_type == MEDIA_TYPE_PLAYLIST: - if media_id in self.playlists: - self.currentplaylist = media_id + if media_id in self._playlists: + self._currentplaylist = media_id else: - self.currentplaylist = None + self._currentplaylist = None _LOGGER.warning(str.format("Unknown playlist name %s.", media_id)) - self.client.clear() - self.client.load(media_id) - self.client.play() + self._client.clear() + self._client.load(media_id) + self._client.play() else: - self.client.clear() - self.client.add(media_id) - self.client.play() + self._client.clear() + self._client.add(media_id) + self._client.play() @property def shuffle(self): """Boolean if shuffle is enabled.""" - return bool(self.status['random']) + return bool(self._status['random']) def set_shuffle(self, shuffle): """Enable/disable shuffle mode.""" - self.client.random(int(shuffle)) + self._client.random(int(shuffle)) def clear_playlist(self): """Clear players playlist.""" - self.client.clear() + self._client.clear() def media_seek(self, position): """Send seek command.""" - self.client.seekcur(position) + self._client.seekcur(position) From 075422e7ad4ff0f29d8fe4e5346515de0560078c Mon Sep 17 00:00:00 2001 From: Tsvi Mostovicz Date: Tue, 1 Aug 2017 15:55:46 +0300 Subject: [PATCH 037/128] Add support for file attachments in pushbullet (#8763) * Add support for file attachments in pishbullet * Check filepath is allowed --- homeassistant/components/notify/pushbullet.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/homeassistant/components/notify/pushbullet.py b/homeassistant/components/notify/pushbullet.py index af58615f423..f3bb5a119d0 100644 --- a/homeassistant/components/notify/pushbullet.py +++ b/homeassistant/components/notify/pushbullet.py @@ -19,6 +19,7 @@ REQUIREMENTS = ['pushbullet.py==0.11.0'] _LOGGER = logging.getLogger(__name__) ATTR_URL = 'url' +ATTR_FILE = 'file' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_API_KEY): cv.string, @@ -80,14 +81,21 @@ class PushBulletNotificationService(BaseNotificationService): title = kwargs.get(ATTR_TITLE, ATTR_TITLE_DEFAULT) data = kwargs.get(ATTR_DATA) url = None + filepath = None if data: url = data.get(ATTR_URL, None) + filepath = data.get(ATTR_FILE, None) refreshed = False if not targets: # Backward compatibility, notify all devices in own account if url: self.pushbullet.push_link(title, url, body=message) + if self.hass.config.is_allowed_path(filepath): + with open(filepath, "rb") as fileh: + filedata = self.pushbullet.upload_file(fileh, filepath) + self.pushbullet.push_file(title=title, body=message, + **filedata) else: self.pushbullet.push_note(title, message) _LOGGER.info("Sent notification to self") @@ -107,6 +115,11 @@ class PushBulletNotificationService(BaseNotificationService): if url: self.pushbullet.push_link( title, url, body=message, email=tname) + if self.hass.config.is_allowed_path(filepath): + with open(filepath, "rb") as fileh: + filedata = self.pushbullet.upload_file(fileh, filepath) + self.pushbullet.push_file(title=title, body=message, + **filedata) else: self.pushbullet.push_note(title, message, email=tname) _LOGGER.info("Sent notification to email %s", tname) From 365f21b2091849f9e052b0200d220635c0a77ab0 Mon Sep 17 00:00:00 2001 From: Dan Sarginson Date: Tue, 1 Aug 2017 15:18:14 +0100 Subject: [PATCH 038/128] Honeywell fixes and improvements (#8756) * Honeywell fixes and improvements Give the Honeywell device a state ('On', 'Off', etc) that can be displayed to user and understood by other components. Previously this was always 'Unknown'. Update also raises a state_changed event when a new temperature is polled. These two together fix an issue (#8688) where Honeywell climate data couldn't be logged in InfluxDB. * Roll back some changes These were not necessary to achieve the result I wanted. * Renamed RoundThermostat's 'device' member for greater clarity Now called 'client' * Improve and simplify discovering thermostat mode Per code review, this is a rather neater way to discover the thermostat mode * Update tests for compatibility with new component The tests previously relied upon the update() method being called in the constructor. This is no longer the case. * Address formatting review comment Parens not necessary * This system mode is not certain to apply to domestic hot water Moved the mode lookup to only happen on update of radiator devices, since hot water devices seem to be treated differently and I can't test. --- homeassistant/components/climate/honeywell.py | 28 +++++++++++-------- tests/components/climate/test_honeywell.py | 2 ++ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/climate/honeywell.py b/homeassistant/components/climate/honeywell.py index 65e30e3cb26..4ff87aa67ab 100644 --- a/homeassistant/components/climate/honeywell.py +++ b/homeassistant/components/climate/honeywell.py @@ -75,7 +75,8 @@ def _setup_round(username, password, config, add_devices): zones = evo_api.temperatures(force_refresh=True) for i, zone in enumerate(zones): add_devices( - [RoundThermostat(evo_api, zone['id'], i == 0, away_temp)] + [RoundThermostat(evo_api, zone['id'], i == 0, away_temp)], + True ) except socket.error: _LOGGER.error( @@ -115,9 +116,9 @@ def _setup_us(username, password, config, add_devices): class RoundThermostat(ClimateDevice): """Representation of a Honeywell Round Connected thermostat.""" - def __init__(self, device, zone_id, master, away_temp): + def __init__(self, client, zone_id, master, away_temp): """Initialize the thermostat.""" - self.device = device + self.client = client self._current_temperature = None self._target_temperature = None self._name = 'round connected' @@ -126,7 +127,6 @@ class RoundThermostat(ClimateDevice): self._is_dhw = False self._away_temp = away_temp self._away = False - self.update() @property def name(self): @@ -155,12 +155,12 @@ class RoundThermostat(ClimateDevice): temperature = kwargs.get(ATTR_TEMPERATURE) if temperature is None: return - self.device.set_temperature(self._name, temperature) + self.client.set_temperature(self._name, temperature) @property def current_operation(self: ClimateDevice) -> str: """Get the current operation of the system.""" - return getattr(self.device, ATTR_SYSTEM_MODE, None) + return getattr(self.client, ATTR_SYSTEM_MODE, None) @property def is_away_mode_on(self): @@ -169,8 +169,8 @@ class RoundThermostat(ClimateDevice): def set_operation_mode(self: ClimateDevice, operation_mode: str) -> None: """Set the HVAC mode for the thermostat.""" - if hasattr(self.device, ATTR_SYSTEM_MODE): - self.device.system_mode = operation_mode + if hasattr(self.client, ATTR_SYSTEM_MODE): + self.client.system_mode = operation_mode def turn_away_mode_on(self): """Turn away on. @@ -180,19 +180,19 @@ class RoundThermostat(ClimateDevice): it doesn't get overwritten when away mode is switched on. """ self._away = True - self.device.set_temperature(self._name, self._away_temp) + self.client.set_temperature(self._name, self._away_temp) def turn_away_mode_off(self): """Turn away off.""" self._away = False - self.device.cancel_temp_override(self._name) + self.client.cancel_temp_override(self._name) def update(self): """Get the latest date.""" try: # Only refresh if this is the "master" device, # others will pick up the cache - for val in self.device.temperatures(force_refresh=self._master): + for val in self.client.temperatures(force_refresh=self._master): if val['id'] == self._id: data = val @@ -210,6 +210,12 @@ class RoundThermostat(ClimateDevice): self._name = data['name'] self._is_dhw = False + # The underlying library doesn't expose the thermostat's mode + # but we can pull it out of the big dictionary of information. + device = self.client.devices[self._id] + self.client.system_mode = device[ + 'thermostat']['changeableValues']['mode'] + class HoneywellUSThermostat(ClimateDevice): """Representation of a Honeywell US Thermostat.""" diff --git a/tests/components/climate/test_honeywell.py b/tests/components/climate/test_honeywell.py index 3fcb6a1575c..b12c0c38f3a 100644 --- a/tests/components/climate/test_honeywell.py +++ b/tests/components/climate/test_honeywell.py @@ -275,8 +275,10 @@ class TestHoneywellRound(unittest.TestCase): self.device.temperatures.side_effect = fake_temperatures self.round1 = honeywell.RoundThermostat(self.device, '1', True, 16) + self.round1.update() self.round2 = honeywell.RoundThermostat(self.device, '2', False, 17) + self.round2.update() def test_attributes(self): """Test the attributes.""" From 50cd6c9a9ccc49c00e320b0222a15f0d42201edf Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 1 Aug 2017 19:30:26 +0200 Subject: [PATCH 039/128] Catch exception (fixes #8724) (#8731) --- .../components/sensor/google_wifi.py | 67 +++++++++---------- tests/components/sensor/test_google_wifi.py | 48 +++++++------ 2 files changed, 55 insertions(+), 60 deletions(-) diff --git a/homeassistant/components/sensor/google_wifi.py b/homeassistant/components/sensor/google_wifi.py index ba3dbfeacc8..9ae3571f7a6 100644 --- a/homeassistant/components/sensor/google_wifi.py +++ b/homeassistant/components/sensor/google_wifi.py @@ -1,5 +1,5 @@ """ -Support for retreiving status info from Google Wifi/OnHub routers. +Support for retrieving status info from Google Wifi/OnHub routers. For more details about this platform, please refer to the documentation at https://home-assistant.io/components/sensor.google_wifi/ @@ -12,28 +12,27 @@ import requests import homeassistant.util.dt as dt import homeassistant.helpers.config_validation as cv -from homeassistant.helpers.entity import Entity from homeassistant.components.sensor import PLATFORM_SCHEMA -from homeassistant.util import Throttle from homeassistant.const import ( - CONF_NAME, CONF_HOST, CONF_MONITORED_CONDITIONS, - STATE_UNKNOWN) - -MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=1) + CONF_NAME, CONF_HOST, CONF_MONITORED_CONDITIONS, STATE_UNKNOWN) +from homeassistant.helpers.entity import Entity +from homeassistant.util import Throttle _LOGGER = logging.getLogger(__name__) -ENDPOINT = '/api/v1/status' - ATTR_CURRENT_VERSION = 'current_version' -ATTR_NEW_VERSION = 'new_version' -ATTR_UPTIME = 'uptime' ATTR_LAST_RESTART = 'last_restart' ATTR_LOCAL_IP = 'local_ip' +ATTR_NEW_VERSION = 'new_version' ATTR_STATUS = 'status' +ATTR_UPTIME = 'uptime' -DEFAULT_NAME = 'google_wifi' DEFAULT_HOST = 'testwifi.here' +DEFAULT_NAME = 'google_wifi' + +ENDPOINT = '/api/v1/status' + +MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=1) MONITORED_CONDITIONS = { ATTR_CURRENT_VERSION: [ @@ -69,10 +68,10 @@ MONITORED_CONDITIONS = { } PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ - vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string, vol.Optional(CONF_MONITORED_CONDITIONS, default=MONITORED_CONDITIONS): vol.All(cv.ensure_list, [vol.In(MONITORED_CONDITIONS)]), + vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) @@ -85,7 +84,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): api = GoogleWifiAPI(host, conditions) dev = [] for condition in conditions: - dev.append(GoogleWifiSensor(hass, api, name, condition)) + dev.append(GoogleWifiSensor(api, name, condition)) add_devices(dev, True) @@ -93,9 +92,8 @@ def setup_platform(hass, config, add_devices, discovery_info=None): class GoogleWifiSensor(Entity): """Representation of a Google Wifi sensor.""" - def __init__(self, hass, api, name, variable): - """Initialize a Pi-Hole sensor.""" - self._hass = hass + def __init__(self, api, name, variable): + """Initialize a Google Wifi sensor.""" self._api = api self._name = name self._state = STATE_UNKNOWN @@ -108,7 +106,7 @@ class GoogleWifiSensor(Entity): @property def name(self): """Return the name of the sensor.""" - return "{}_{}".format(self._name, self._var_name) + return '{}_{}'.format(self._name, self._var_name) @property def icon(self): @@ -121,9 +119,9 @@ class GoogleWifiSensor(Entity): return self._var_units @property - def availiable(self): - """Return availiability of goole wifi api.""" - return self._api.availiable + def available(self): + """Return availability of Google Wifi API.""" + return self._api.available @property def state(self): @@ -133,7 +131,7 @@ class GoogleWifiSensor(Entity): def update(self): """Get the latest data from the Google Wifi API.""" self._api.update() - if self.availiable: + if self.available: self._state = self._api.data[self._var_name] else: self._state = STATE_UNKNOWN @@ -157,7 +155,7 @@ class GoogleWifiAPI(object): ATTR_LOCAL_IP: STATE_UNKNOWN, ATTR_STATUS: STATE_UNKNOWN } - self.availiable = True + self.available = True self.update() @Throttle(MIN_TIME_BETWEEN_UPDATES) @@ -165,14 +163,13 @@ class GoogleWifiAPI(object): """Get the latest data from the router.""" try: with requests.Session() as sess: - response = sess.send( - self._request, timeout=10) + response = sess.send(self._request, timeout=10) self.raw_data = response.json() self.data_format() - self.availiable = True - except ValueError: - _LOGGER.error('Unable to fetch data from Google Wifi') - self.availiable = False + self.available = True + except (ValueError, requests.exceptions.ConnectionError): + _LOGGER.warning("Unable to fetch data from Google Wifi") + self.available = False self.raw_data = None def data_format(self): @@ -191,10 +188,10 @@ class GoogleWifiAPI(object): elif attr_key == ATTR_UPTIME: sensor_value /= 3600 * 24 elif attr_key == ATTR_LAST_RESTART: - last_restart = (dt.now() - - timedelta(seconds=sensor_value)) - sensor_value = last_restart.strftime(('%Y-%m-%d ' - '%H:%M:%S')) + last_restart = ( + dt.now() - timedelta(seconds=sensor_value)) + sensor_value = last_restart.strftime( + '%Y-%m-%d %H:%M:%S') elif attr_key == ATTR_STATUS: if sensor_value: sensor_value = 'Online' @@ -206,7 +203,7 @@ class GoogleWifiAPI(object): self.data[attr_key] = sensor_value except KeyError: - _LOGGER.error('Router does not support %s field. ' - 'Please remove %s from monitored_conditions.', + _LOGGER.error("Router does not support %s field. " + "Please remove %s from monitored_conditions", sensor_key, attr_key) self.data[attr_key] = STATE_UNKNOWN diff --git a/tests/components/sensor/test_google_wifi.py b/tests/components/sensor/test_google_wifi.py index b45261b6daa..1004c20b314 100644 --- a/tests/components/sensor/test_google_wifi.py +++ b/tests/components/sensor/test_google_wifi.py @@ -2,6 +2,7 @@ import unittest from unittest.mock import patch, Mock from datetime import datetime, timedelta + import requests_mock from homeassistant import core as ha @@ -32,7 +33,7 @@ MOCK_DATA_MISSING = ('{"software": {},' class TestGoogleWifiSetup(unittest.TestCase): - """Tests for setting up the Google Wifi switch platform.""" + """Tests for setting up the Google Wifi sensor platform.""" def setUp(self): """Setup things to be run when tests are started.""" @@ -45,9 +46,8 @@ class TestGoogleWifiSetup(unittest.TestCase): @requests_mock.Mocker() def test_setup_minimum(self, mock_req): """Test setup with minimum configuration.""" - resource = '{}{}{}'.format('http://', - google_wifi.DEFAULT_HOST, - google_wifi.ENDPOINT) + resource = '{}{}{}'.format( + 'http://', google_wifi.DEFAULT_HOST, google_wifi.ENDPOINT) mock_req.get(resource, status_code=200) self.assertTrue(setup_component(self.hass, 'sensor', { 'sensor': { @@ -60,9 +60,8 @@ class TestGoogleWifiSetup(unittest.TestCase): @requests_mock.Mocker() def test_setup_get(self, mock_req): """Test setup with full configuration.""" - resource = '{}{}{}'.format('http://', - 'localhost', - google_wifi.ENDPOINT) + resource = '{}{}{}'.format( + 'http://', 'localhost', google_wifi.ENDPOINT) mock_req.get(resource, status_code=200) self.assertTrue(setup_component(self.hass, 'sensor', { 'sensor': { @@ -95,34 +94,33 @@ class TestGoogleWifiSensor(unittest.TestCase): def setup_api(self, data, mock_req): """Setup API with fake data.""" - resource = '{}{}{}'.format('http://', - 'localhost', - google_wifi.ENDPOINT) + resource = '{}{}{}'.format( + 'http://', 'localhost', google_wifi.ENDPOINT) now = datetime(1970, month=1, day=1) with patch('homeassistant.util.dt.now', return_value=now): mock_req.get(resource, text=data, status_code=200) conditions = google_wifi.MONITORED_CONDITIONS.keys() - self.api = google_wifi.GoogleWifiAPI("localhost", - conditions) + self.api = google_wifi.GoogleWifiAPI("localhost", conditions) self.name = NAME self.sensor_dict = dict() for condition, cond_list in google_wifi.MONITORED_CONDITIONS.items(): - sensor = google_wifi.GoogleWifiSensor(self.hass, self.api, - self.name, condition) + sensor = google_wifi.GoogleWifiSensor( + self.api, self.name, condition) name = '{}_{}'.format(self.name, condition) units = cond_list[1] icon = cond_list[2] - self.sensor_dict[condition] = {'sensor': sensor, - 'name': name, - 'units': units, - 'icon': icon} + self.sensor_dict[condition] = { + 'sensor': sensor, + 'name': name, + 'units': units, + 'icon': icon + } def fake_delay(self, ha_delay): """Fake delay to prevent update throttle.""" hass_now = dt_util.utcnow() shifted_time = hass_now + timedelta(seconds=ha_delay) - self.hass.bus.fire(ha.EVENT_TIME_CHANGED, - {ha.ATTR_NOW: shifted_time}) + self.hass.bus.fire(ha.EVENT_TIME_CHANGED, {ha.ATTR_NOW: shifted_time}) def test_name(self): """Test the name.""" @@ -135,8 +133,8 @@ class TestGoogleWifiSensor(unittest.TestCase): """Test the unit of measurement.""" for name in self.sensor_dict: sensor = self.sensor_dict[name]['sensor'] - self.assertEqual(self.sensor_dict[name]['units'], - sensor.unit_of_measurement) + self.assertEqual( + self.sensor_dict[name]['units'], sensor.unit_of_measurement) def test_icon(self): """Test the icon.""" @@ -208,8 +206,8 @@ class TestGoogleWifiSensor(unittest.TestCase): sensor.update() self.assertEqual(STATE_UNKNOWN, sensor.state) - def test_update_when_unavailiable(self): - """Test state updates when Google Wifi unavailiable.""" + def test_update_when_unavailable(self): + """Test state updates when Google Wifi unavailable.""" self.api.update = Mock('google_wifi.GoogleWifiAPI.update', side_effect=self.update_side_effect()) for name in self.sensor_dict: @@ -220,4 +218,4 @@ class TestGoogleWifiSensor(unittest.TestCase): def update_side_effect(self): """Mock representation of update function.""" self.api.data = None - self.api.availiable = False + self.api.available = False From 6ff340492b6acd60581f3afe098cec4ef08d373d Mon Sep 17 00:00:00 2001 From: Thomas Friedel Date: Tue, 1 Aug 2017 20:36:31 +0200 Subject: [PATCH 040/128] use updated osram lightify 1.0.6 component, including bugfix allowing more than 27 devices (#8774) --- homeassistant/components/light/osramlightify.py | 3 +-- requirements_all.txt | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/light/osramlightify.py b/homeassistant/components/light/osramlightify.py index b2c39ee2fc5..cef9f508952 100644 --- a/homeassistant/components/light/osramlightify.py +++ b/homeassistant/components/light/osramlightify.py @@ -23,8 +23,7 @@ from homeassistant.util.color import ( color_xy_brightness_to_RGB) import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['https://github.com/tfriedel/python-lightify/archive/' - '1bb1db0e7bd5b14304d7bb267e2398cd5160df46.zip#lightify==1.0.5'] +REQUIREMENTS = ['lightify==1.0.6'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 81c3768ea1a..fc06a89fab3 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -315,9 +315,6 @@ https://github.com/robbiet480/pygtfs/archive/00546724e4bbcb3053110d844ca44e22462 # homeassistant.components.binary_sensor.flic https://github.com/soldag/pyflic/archive/0.4.zip#pyflic==0.4 -# homeassistant.components.light.osramlightify -https://github.com/tfriedel/python-lightify/archive/1bb1db0e7bd5b14304d7bb267e2398cd5160df46.zip#lightify==1.0.5 - # homeassistant.components.media_player.lg_netcast https://github.com/wokar/pylgnetcast/archive/v0.2.0.zip#pylgnetcast==0.2.0 @@ -367,6 +364,9 @@ libsoundtouch==0.7.2 # homeassistant.components.light.lifx_legacy liffylights==0.9.4 +# homeassistant.components.light.osramlightify +lightify==1.0.6 + # homeassistant.components.light.limitlessled limitlessled==1.0.8 From 7dbcf635430b0ea958fb6ee83a1f0d7582915801 Mon Sep 17 00:00:00 2001 From: pezinek Date: Wed, 2 Aug 2017 06:26:27 +0200 Subject: [PATCH 041/128] flux_led: support for property "available" (#8764) * flux_led: support for property "available" * Implemented changes from code review * Implemented changes from code review * Implemented changes from code review --- homeassistant/components/light/flux_led.py | 159 +++++++++------------ 1 file changed, 70 insertions(+), 89 deletions(-) diff --git a/homeassistant/components/light/flux_led.py b/homeassistant/components/light/flux_led.py index 8fe60d5e19e..21012f81658 100644 --- a/homeassistant/components/light/flux_led.py +++ b/homeassistant/components/light/flux_led.py @@ -53,28 +53,32 @@ EFFECT_PURPLE_STROBE = 'purple_strobe' EFFECT_WHITE_STROBE = 'white_strobe' EFFECT_COLORJUMP = 'colorjump' +EFFECT_MAP = { + EFFECT_COLORLOOP: 0x25, + EFFECT_RED_FADE: 0x26, + EFFECT_GREEN_FADE: 0x27, + EFFECT_BLUE_FADE: 0x28, + EFFECT_YELLOW_FADE: 0x29, + EFFECT_CYAN_FADE: 0x2a, + EFFECT_PURPLE_FADE: 0x2b, + EFFECT_WHITE_FADE: 0x2c, + EFFECT_RED_GREEN_CROSS_FADE: 0x2d, + EFFECT_RED_BLUE_CROSS_FADE: 0x2e, + EFFECT_GREEN_BLUE_CROSS_FADE: 0x2f, + EFFECT_COLORSTROBE: 0x30, + EFFECT_RED_STROBE: 0x31, + EFFECT_GREEN_STROBE: 0x32, + EFFECT_BLUE_STOBE: 0x33, + EFFECT_YELLOW_STROBE: 0x34, + EFFECT_CYAN_STROBE: 0x35, + EFFECT_PURPLE_STROBE: 0x36, + EFFECT_WHITE_STROBE: 0x37, + EFFECT_COLORJUMP: 0x38 +} + FLUX_EFFECT_LIST = [ - EFFECT_COLORLOOP, EFFECT_RANDOM, - EFFECT_RED_FADE, - EFFECT_GREEN_FADE, - EFFECT_BLUE_FADE, - EFFECT_YELLOW_FADE, - EFFECT_CYAN_FADE, - EFFECT_PURPLE_FADE, - EFFECT_WHITE_FADE, - EFFECT_RED_GREEN_CROSS_FADE, - EFFECT_RED_BLUE_CROSS_FADE, - EFFECT_GREEN_BLUE_CROSS_FADE, - EFFECT_COLORSTROBE, - EFFECT_RED_STROBE, - EFFECT_GREEN_STROBE, - EFFECT_BLUE_STOBE, - EFFECT_YELLOW_STROBE, - EFFECT_CYAN_STROBE, - EFFECT_PURPLE_STROBE, - EFFECT_WHITE_STROBE, - EFFECT_COLORJUMP] + ].extend(EFFECT_MAP.keys()) DEVICE_SCHEMA = vol.Schema({ vol.Optional(CONF_NAME): cv.string, @@ -103,12 +107,11 @@ def setup_platform(hass, config, add_devices, discovery_info=None): device[CONF_PROTOCOL] = device_config[CONF_PROTOCOL] device[ATTR_MODE] = device_config[ATTR_MODE] light = FluxLight(device) - if light.is_valid: - lights.append(light) - light_ips.append(ipaddr) + lights.append(light) + light_ips.append(ipaddr) if not config.get(CONF_AUTOMATIC_ADD, False): - add_devices(lights) + add_devices(lights, True) return # Find the bulbs on the LAN @@ -122,11 +125,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None): device[ATTR_MODE] = 'rgbw' device[CONF_PROTOCOL] = None light = FluxLight(device) - if light.is_valid: - lights.append(light) - light_ips.append(ipaddr) + lights.append(light) - add_devices(lights) + add_devices(lights, True) class FluxLight(Light): @@ -134,32 +135,37 @@ class FluxLight(Light): def __init__(self, device): """Initialize the light.""" - import flux_led - self._name = device['name'] self._ipaddr = device['ipaddr'] self._protocol = device[CONF_PROTOCOL] self._mode = device[ATTR_MODE] - self.is_valid = True + self._bulb = None + self._error_reported = False + + def _connect(self): + """Connect to Flux light.""" + import flux_led + + self._bulb = flux_led.WifiLedBulb(self._ipaddr, timeout=5) + if self._protocol: + self._bulb.setProtocol(self._protocol) + + # After bulb object is created the status is updated. We can + # now set the correct mode if it was not explicitly defined. + if not self._mode: + if self._bulb.rgbwcapable: + self._mode = MODE_RGBW + else: + self._mode = MODE_RGB + + def _disconnect(self): + """Disconnect from Flux light.""" self._bulb = None - try: - self._bulb = flux_led.WifiLedBulb(self._ipaddr) - if self._protocol: - self._bulb.setProtocol(self._protocol) - - # After bulb object is created the status is updated. We can - # now set the correct mode if it was not explicitly defined. - if not self._mode: - if self._bulb.rgbwcapable: - self._mode = MODE_RGBW - else: - self._mode = MODE_RGB - - except socket.error: - self.is_valid = False - _LOGGER.error( - "Failed to connect to bulb %s, %s", self._ipaddr, self._name) + @property + def available(self) -> bool: + """Return True if entity is available.""" + return self._bulb is not None @property def unique_id(self): @@ -204,6 +210,7 @@ class FluxLight(Light): rgb = kwargs.get(ATTR_RGB_COLOR) brightness = kwargs.get(ATTR_BRIGHTNESS) effect = kwargs.get(ATTR_EFFECT) + if rgb is not None and brightness is not None: self._bulb.setRgb(*tuple(rgb), brightness=brightness) elif rgb is not None: @@ -218,46 +225,8 @@ class FluxLight(Light): self._bulb.setRgb(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) - elif effect == EFFECT_COLORLOOP: - self._bulb.setPresetPattern(0x25, 50) - elif effect == EFFECT_RED_FADE: - self._bulb.setPresetPattern(0x26, 50) - elif effect == EFFECT_GREEN_FADE: - self._bulb.setPresetPattern(0x27, 50) - elif effect == EFFECT_BLUE_FADE: - self._bulb.setPresetPattern(0x28, 50) - elif effect == EFFECT_YELLOW_FADE: - self._bulb.setPresetPattern(0x29, 50) - elif effect == EFFECT_CYAN_FADE: - self._bulb.setPresetPattern(0x2a, 50) - elif effect == EFFECT_PURPLE_FADE: - self._bulb.setPresetPattern(0x2b, 50) - elif effect == EFFECT_WHITE_FADE: - self._bulb.setPresetPattern(0x2c, 50) - elif effect == EFFECT_RED_GREEN_CROSS_FADE: - self._bulb.setPresetPattern(0x2d, 50) - elif effect == EFFECT_RED_BLUE_CROSS_FADE: - self._bulb.setPresetPattern(0x2e, 50) - elif effect == EFFECT_GREEN_BLUE_CROSS_FADE: - self._bulb.setPresetPattern(0x2f, 50) - elif effect == EFFECT_COLORSTROBE: - self._bulb.setPresetPattern(0x30, 50) - elif effect == EFFECT_RED_STROBE: - self._bulb.setPresetPattern(0x31, 50) - elif effect == EFFECT_GREEN_STROBE: - self._bulb.setPresetPattern(0x32, 50) - elif effect == EFFECT_BLUE_STOBE: - self._bulb.setPresetPattern(0x33, 50) - elif effect == EFFECT_YELLOW_STROBE: - self._bulb.setPresetPattern(0x34, 50) - elif effect == EFFECT_CYAN_STROBE: - self._bulb.setPresetPattern(0x35, 50) - elif effect == EFFECT_PURPLE_STROBE: - self._bulb.setPresetPattern(0x36, 50) - elif effect == EFFECT_WHITE_STROBE: - self._bulb.setPresetPattern(0x37, 50) - elif effect == EFFECT_COLORJUMP: - self._bulb.setPresetPattern(0x38, 50) + elif effect in EFFECT_MAP: + self._bulb.setPresetPattern(EFFECT_MAP[effect], 50) def turn_off(self, **kwargs): """Turn the specified or all lights off.""" @@ -265,4 +234,16 @@ class FluxLight(Light): def update(self): """Synchronize state with bulb.""" - self._bulb.refreshState() + if not self.available: + try: + self._connect() + self._error_reported = False + except socket.error: + self._disconnect() + if not self._error_reported: + _LOGGER.warning("Failed to connect to bulb %s, %s", + self._ipaddr, self._name) + self._error_reported = True + return + + self._bulb.update_state(retry=2) From 86c06ad76e38f8cea1d21bd95f77366d6c13df4d Mon Sep 17 00:00:00 2001 From: thrawnarn Date: Wed, 2 Aug 2017 07:41:51 +0200 Subject: [PATCH 042/128] New component: bluesound (#7192) * New component: bluesound * New component: bluesound * Removed response.release() Fixed update_sync_status bug Changed should_poll to True * Fix lint error * Changes to init * Fixed blank line * updated requirements * bump to xmltodict 0.11.0 --- .coveragerc | 1 + homeassistant/components/discovery.py | 1 + .../components/media_player/bluesound.py | 809 ++++++++++++++++++ requirements_all.txt | 1 + 4 files changed, 812 insertions(+) create mode 100644 homeassistant/components/media_player/bluesound.py diff --git a/.coveragerc b/.coveragerc index 074e35a073d..dbae8437223 100644 --- a/.coveragerc +++ b/.coveragerc @@ -322,6 +322,7 @@ omit = homeassistant/components/media_extractor.py homeassistant/components/media_player/anthemav.py homeassistant/components/media_player/aquostv.py + homeassistant/components/media_player/bluesound.py homeassistant/components/media_player/braviatv.py homeassistant/components/media_player/cast.py homeassistant/components/media_player/clementine.py diff --git a/homeassistant/components/discovery.py b/homeassistant/components/discovery.py index 3a55f6559c6..5e1dc8d6166 100644 --- a/homeassistant/components/discovery.py +++ b/homeassistant/components/discovery.py @@ -60,6 +60,7 @@ SERVICE_HANDLERS = { 'openhome': ('media_player', 'openhome'), 'harmony': ('remote', 'harmony'), 'bose_soundtouch': ('media_player', 'soundtouch'), + 'bluesound': ('media_player', 'bluesound'), } CONF_IGNORE = 'ignore' diff --git a/homeassistant/components/media_player/bluesound.py b/homeassistant/components/media_player/bluesound.py new file mode 100644 index 00000000000..c1b9bab6937 --- /dev/null +++ b/homeassistant/components/media_player/bluesound.py @@ -0,0 +1,809 @@ +""" +Bluesound. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/media_player.bluesound/ +""" +import logging +from datetime import timedelta +from asyncio.futures import CancelledError +import asyncio +import voluptuous as vol +from aiohttp.client_exceptions import ClientError +import aiohttp +import async_timeout +from homeassistant.helpers.event import async_track_time_interval +from homeassistant.core import callback +from homeassistant.util import Throttle +from homeassistant.helpers.aiohttp_client import async_get_clientsession +import homeassistant.util.dt as dt_util + +from homeassistant.components.media_player import ( + SUPPORT_NEXT_TRACK, SUPPORT_PAUSE, SUPPORT_PREVIOUS_TRACK, SUPPORT_SEEK, + SUPPORT_PLAY_MEDIA, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, SUPPORT_STOP, + SUPPORT_PLAY, MediaPlayerDevice, PLATFORM_SCHEMA, MEDIA_TYPE_MUSIC, + SUPPORT_CLEAR_PLAYLIST, SUPPORT_SELECT_SOURCE, SUPPORT_VOLUME_STEP) +from homeassistant.const import ( + EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, + STATE_PLAYING, STATE_PAUSED, STATE_IDLE, CONF_HOSTS, + CONF_HOST, CONF_PORT, CONF_NAME) +import homeassistant.helpers.config_validation as cv + +REQUIREMENTS = ['xmltodict==0.11.0'] + +STATE_OFFLINE = 'offline' +ATTR_MODEL = 'model' +ATTR_MODEL_NAME = 'model_name' +ATTR_BRAND = 'brand' + +DATA_BLUESOUND = 'bluesound' +DEFAULT_PORT = 11000 + +SYNC_STATUS_INTERVAL = timedelta(minutes=5) +UPDATE_CAPTURE_INTERVAL = timedelta(minutes=30) +UPDATE_SERVICES_INTERVAL = timedelta(minutes=30) +UPDATE_PRESETS_INTERVAL = timedelta(minutes=30) +NODE_OFFLINE_CHECK_TIMEOUT = 180 +NODE_RETRY_INITIATION = timedelta(minutes=3) + +_LOGGER = logging.getLogger(__name__) + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_HOSTS): vol.All(cv.ensure_list, [{ + vol.Required(CONF_HOST): cv.string, + vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, + vol.Optional(CONF_NAME): cv.string, + }]) +}) + + +def _add_player(hass, async_add_devices, host, port=None, name=None): + if host in [x.host for x in hass.data[DATA_BLUESOUND]]: + return + + @callback + def _init_player(event=None): + """Start polling.""" + hass.async_add_job(player.async_init()) + + @callback + def _start_polling(event=None): + """Start polling.""" + player.start_polling() + + @callback + def _stop_polling(): + """Stop polling.""" + player.stop_polling() + + @callback + def _add_player_cb(): + """Add player after first sync fetch.""" + async_add_devices([player]) + _LOGGER.info('Added Bluesound device with name: %s', player.name) + + if hass.is_running: + _start_polling() + else: + hass.bus.async_listen_once( + EVENT_HOMEASSISTANT_START, + _start_polling + ) + + hass.bus.async_listen_once( + EVENT_HOMEASSISTANT_STOP, + _stop_polling + ) + + player = BluesoundPlayer(hass, host, port, name, _add_player_cb) + hass.data[DATA_BLUESOUND].append(player) + + if hass.is_running: + _init_player() + else: + hass.bus.async_listen_once( + EVENT_HOMEASSISTANT_START, + _init_player + ) + + +@asyncio.coroutine +def async_setup_platform(hass, config, async_add_devices, discovery_info=None): + """Set up the Bluesound platforms.""" + if DATA_BLUESOUND not in hass.data: + hass.data[DATA_BLUESOUND] = [] + + if discovery_info: + _add_player(hass, async_add_devices, discovery_info.get('host'), + discovery_info.get('port', None)) + return + + hosts = config.get(CONF_HOSTS, None) + if hosts: + for host in hosts: + _add_player(hass, + async_add_devices, + host.get(CONF_HOST), + host.get(CONF_PORT, None), + host.get(CONF_NAME, None)) + + +class BluesoundPlayer(MediaPlayerDevice): + """Bluesound Player Object.""" + + def __init__(self, hass, host, port=None, name=None, init_callback=None): + """Initialize the media player.""" + self.host = host + self._hass = hass + self._port = port + self._polling_session = async_get_clientsession(hass) + self._polling_task = None # The actuall polling task. + self._name = name + self._brand = None + self._model = None + self._model_name = None + self._icon = None + self._capture_items = [] + self._services_items = [] + self._preset_items = [] + self._sync_status = {} + self._status = None + self._last_status_update = None + self._is_online = False + self._retry_remove = None + self._lastvol = None + self._init_callback = init_callback + if self._port is None: + self._port = DEFAULT_PORT + +# Internal methods + @staticmethod + def _try_get_index(string, seach_string): + try: + return string.index(seach_string) + except ValueError: + return -1 + + @asyncio.coroutine + def _internal_update_sync_status(self, on_updated_cb=None, + raise_timeout=False): + resp = None + try: + resp = yield from self.send_bluesound_command( + 'SyncStatus', + raise_timeout, raise_timeout) + except: + raise + + if not resp: + return None + self._sync_status = resp['SyncStatus'].copy() + + if not self._name: + self._name = self._sync_status.get('@name', self.host) + if not self._brand: + self._brand = self._sync_status.get('@brand', self.host) + if not self._model: + self._model = self._sync_status.get('@model', self.host) + if not self._icon: + self._icon = self._sync_status.get('@icon', self.host) + if not self._model_name: + self._model_name = self._sync_status.get('@modelName', self.host) + + if on_updated_cb: + on_updated_cb() + return True +# END Internal methods + +# Poll functionality + @asyncio.coroutine + def _start_poll_command(self): + """"Loop which polls the status of the player.""" + try: + while True: + yield from self.async_update_status() + + except (asyncio.TimeoutError, ClientError): + _LOGGER.info("Bluesound node %s is offline, retrying later", + self._name) + yield from asyncio.sleep(NODE_OFFLINE_CHECK_TIMEOUT, + loop=self._hass.loop) + self.start_polling() + + except CancelledError: + _LOGGER.debug("Stopping bluesound polling of node %s", self._name) + except: + _LOGGER.exception("Unexpected error in %s", self._name) + raise + + def start_polling(self): + """Start the polling task.""" + self._polling_task = self._hass.async_add_job( + self._start_poll_command()) + + def stop_polling(self): + """Stop the polling task.""" + self._polling_task.cancel() +# END Poll functionality + +# Initiator + @asyncio.coroutine + def async_init(self): + """Initiate the player async.""" + try: + if self._retry_remove is not None: + self._retry_remove() + self._retry_remove = None + + yield from self._internal_update_sync_status(self._init_callback, + True) + except (asyncio.TimeoutError, ClientError): + _LOGGER.info("Bluesound node %s is offline, retrying later", + self.host) + self._retry_remove = async_track_time_interval( + self._hass, + self.async_init, + NODE_RETRY_INITIATION) + except: + _LOGGER.exception("Unexpected when initiating error in %s", + self.host) + raise +# END Initiator + +# Status updates fetchers + @asyncio.coroutine + def async_update(self): + """Update internal status of the entity.""" + if not self._is_online: + return + + yield from self.async_update_sync_status() + yield from self.async_update_presets() + yield from self.async_update_captures() + yield from self.async_update_services() + + @asyncio.coroutine + def send_bluesound_command(self, method, raise_timeout=False, + allow_offline=False): + """Send command to the player.""" + import xmltodict + + if not self._is_online and not allow_offline: + return + + if method[0] == '/': + method = method[1:] + url = "http://{}:{}/{}".format(self.host, self._port, method) + + _LOGGER.info("calling URL: %s", url) + response = None + try: + websession = async_get_clientsession(self._hass) + with async_timeout.timeout(10, loop=self._hass.loop): + response = yield from websession.get(url) + + if response.status == 200: + result = yield from response.text() + if len(result) < 1: + data = None + else: + data = xmltodict.parse(result) + else: + _LOGGER.error("Error %s on %s", response.status, url) + return None + + except (asyncio.TimeoutError, aiohttp.ClientError): + if raise_timeout: + _LOGGER.info("Timeout with Bluesound: %s", self.host) + raise + else: + _LOGGER.debug("Failed communicating with Bluesound: %s", + self.host) + return None + + return data + + @asyncio.coroutine + def async_update_status(self): + """Using the poll session to always get the status of the player.""" + import xmltodict + response = None + + url = 'Status' + etag = '' + if self._status is not None: + etag = self._status.get('@etag', '') + + if etag != '': + url = 'Status?etag='+etag+'&timeout=60.0' + url = "http://{}:{}/{}".format(self.host, self._port, url) + + _LOGGER.debug("calling URL: %s", url) + + try: + + with async_timeout.timeout(65, loop=self._hass.loop): + response = yield from self._polling_session.get( + url, + headers={'connection': 'keep-alive'}) + + if response.status != 200: + _LOGGER.error("Error %s on %s", response.status, url) + + result = yield from response.text() + self._is_online = True + self._last_status_update = dt_util.utcnow() + self._status = xmltodict.parse(result)['status'].copy() + self.schedule_update_ha_state() + + except (asyncio.TimeoutError, ClientError): + self._is_online = False + self._last_status_update = None + self._status = None + self.schedule_update_ha_state() + _LOGGER.info("Client connection error, marking %s as offline", + self._name) + raise + + @asyncio.coroutine + @Throttle(SYNC_STATUS_INTERVAL) + def async_update_sync_status(self, on_updated_cb=None, + raise_timeout=False): + """Update sync status.""" + yield from self._internal_update_sync_status(on_updated_cb, + raise_timeout=False) + + @asyncio.coroutine + @Throttle(UPDATE_CAPTURE_INTERVAL) + def async_update_captures(self): + """Update Capture cources.""" + resp = yield from self.send_bluesound_command( + 'RadioBrowse?service=Capture') + if not resp: + return + self._capture_items = [] + + def _create_capture_item(item): + self._capture_items.append({ + 'title': item.get('@text', ''), + 'name': item.get('@text', ''), + 'type': item.get('@serviceType', 'Capture'), + 'image': item.get('@image', ''), + 'url': item.get('@URL', '') + }) + + if 'radiotime' in resp and 'item' in resp['radiotime']: + if isinstance(resp['radiotime']['item'], list): + for item in resp['radiotime']['item']: + _create_capture_item(item) + else: + _create_capture_item(resp['radiotime']['item']) + + return self._capture_items + + @asyncio.coroutine + @Throttle(UPDATE_PRESETS_INTERVAL) + def async_update_presets(self): + """Update Presets.""" + resp = yield from self.send_bluesound_command('Presets') + if not resp: + return + self._preset_items = [] + + def _create_preset_item(item): + self._preset_items.append({ + 'title': item.get('@name', ''), + 'name': item.get('@name', ''), + 'type': 'preset', + 'image': item.get('@image', ''), + 'is_raw_url': True, + 'url2': item.get('@url', ''), + 'url': 'Preset?id=' + item.get('@id', '') + }) + + if 'presets' in resp and 'preset' in resp['presets']: + if isinstance(resp['presets']['preset'], list): + for item in resp['presets']['preset']: + _create_preset_item(item) + else: + _create_preset_item(resp['presets']['preset']) + + return self._preset_items + + @asyncio.coroutine + @Throttle(UPDATE_SERVICES_INTERVAL) + def async_update_services(self): + """Update Services.""" + resp = yield from self.send_bluesound_command('Services') + if not resp: + return + self._services_items = [] + + def _create_service_item(item): + self._services_items.append({ + 'title': item.get('@displayname', ''), + 'name': item.get('@name', ''), + 'type': item.get('@type', ''), + 'image': item.get('@icon', ''), + 'url': item.get('@name', '') + }) + + if 'services' in resp and 'service' in resp['services']: + if isinstance(resp['services']['service'], list): + for item in resp['services']['service']: + _create_service_item(item) + else: + _create_service_item(resp['services']['service']) + + return self._services_items +# END Status updates fetchers + +# Media player (and core) properties + @property + def should_poll(self): + """No need to poll information.""" + return True + + @property + def media_content_type(self): + """Content type of current playing media.""" + return MEDIA_TYPE_MUSIC + + @property + def state(self): + """Return the state of the device.""" + if self._status is None: + return STATE_OFFLINE + + status = self._status.get('state', None) + if status == 'pause' or status == 'stop': + return STATE_PAUSED + elif status == 'stream' or status == 'play': + return STATE_PLAYING + else: + return STATE_IDLE + + @property + def media_title(self): + """Title of current playing media.""" + if self._status is None: + return None + + return self._status.get('title1', None) + + @property + def media_artist(self): + """Artist of current playing media (Music track only).""" + if self._status is None: + return None + + artist = self._status.get('artist', None) + if not artist: + artist = self._status.get('title2', None) + return artist + + @property + def media_album_name(self): + """Artist of current playing media (Music track only).""" + if self._status is None: + return None + + album = self._status.get('album', None) + if not album: + album = self._status.get('title3', None) + return album + + @property + def media_image_url(self): + """Image url of current playing media.""" + if self._status is None: + return None + + url = self._status.get('image', None) + if not url: + return + if url[0] == '/': + url = "http://{}:{}{}".format(self.host, self._port, url) + + return url + + @property + def media_position(self): + """Position of current playing media in seconds.""" + if self._status is None: + return None + + mediastate = self.state + if self._last_status_update is None or mediastate == STATE_IDLE: + return None + + position = self._status.get('secs', None) + if position is None: + return None + + position = float(position) + if mediastate == STATE_PLAYING: + position += (dt_util.utcnow() - + self._last_status_update).total_seconds() + + return position + + @property + def media_duration(self): + """Duration of current playing media in seconds.""" + if self._status is None: + return None + + duration = self._status.get('totlen', None) + if duration is None: + return None + return float(duration) + + @property + def media_position_updated_at(self): + """Last time status was updated.""" + return self._last_status_update + + @property + def volume_level(self): + """Volume level of the media player (0..1).""" + if self._status is None: + return None + + volume = self._status.get('volume', None) + if volume is not None: + return int(volume) / 100 + return None + + @property + def is_volume_muted(self): + """Boolean if volume is currently muted.""" + if not self._status: + return None + + volume = self.volume_level + if not volume: + return None + return volume < 0.001 and volume >= 0 + + @property + def name(self): + """Return the name of the device.""" + return self._name + + @property + def icon(self): + """Return the icon of the device.""" + return self._icon + + @property + def source_list(self): + """List of available input sources.""" + if self._status is None: + return None + + sources = [] + + for source in self._preset_items: + sources.append(source['title']) + + for source in [x for x in self._services_items + if x['type'] == 'LocalMusic' or + x['type'] == 'RadioService']: + sources.append(source['title']) + + for source in self._capture_items: + sources.append(source['title']) + + return sources + + @property + def source(self): + """Name of the current input source.""" + from urllib import parse + + if self._status is None: + return None + + current_service = self._status.get('service', '') + if current_service == '': + return '' + stream_url = self._status.get('streamUrl', '') + + if self._status.get('is_preset', '') == '1' and stream_url != '': + # this check doesn't work with all presets, for example playlists. + # But it works with radio service_items will catch playlists + items = [x for x in self._preset_items if 'url2' in x and + parse.unquote(x['url2']) == stream_url] + if len(items) > 0: + return items[0]['title'] + + # this could be a bit difficult to detect. Bluetooth could be named + # different things and there is not any way to match chooses in + # capture list to current playing. It's a bit of guesswork. + # This method will be needing some tweaking over time + title = self._status.get('title1', '').lower() + if title == 'bluetooth' or stream_url == 'Capture:hw:2,0/44100/16/2': + items = [x for x in self._capture_items + if x['url'] == "Capture%3Abluez%3Abluetooth"] + if len(items) > 0: + return items[0]['title'] + + items = [x for x in self._capture_items if x['url'] == stream_url] + if len(items) > 0: + return items[0]['title'] + + if stream_url[:8] == 'Capture:': + stream_url = stream_url[8:] + + idx = BluesoundPlayer._try_get_index(stream_url, ':') + if idx > 0: + stream_url = stream_url[:idx] + for item in self._capture_items: + url = parse.unquote(item['url']) + if url[:8] == 'Capture:': + url = url[8:] + idx = BluesoundPlayer._try_get_index(url, ':') + if idx > 0: + url = url[:idx] + if url.lower() == stream_url.lower(): + return item['title'] + + items = [x for x in self._capture_items + if x['name'] == current_service] + if len(items) > 0: + return items[0]['title'] + + items = [x for x in self._services_items + if x['name'] == current_service] + if len(items) > 0: + return items[0]['title'] + + if self._status.get('streamUrl', '') != '': + _LOGGER.debug("Couldn't find source of stream url: %s", + self._status.get('streamUrl', '')) + return None + + @property + def supported_features(self): + """Flag of media commands that are supported.""" + if self._status is None: + return None + + supported = SUPPORT_CLEAR_PLAYLIST + + if self._status.get('indexing', '0') == '0': + supported = supported | SUPPORT_PAUSE | SUPPORT_PREVIOUS_TRACK | \ + SUPPORT_NEXT_TRACK | SUPPORT_PLAY_MEDIA | \ + SUPPORT_STOP | SUPPORT_PLAY | SUPPORT_SELECT_SOURCE + + current_vol = self.volume_level + if current_vol is not None and current_vol >= 0: + supported = supported | SUPPORT_VOLUME_STEP | \ + SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE + + if self._status.get('canSeek', '') == '1': + supported = supported | SUPPORT_SEEK + + return supported + + @property + def device_state_attributes(self): + """Return the state attributes.""" + return { + ATTR_MODEL: self._model, + ATTR_MODEL_NAME: self._model_name, + ATTR_BRAND: self._brand, + } +# END Media player (and core) properties + +# Media player commands + @asyncio.coroutine + def async_select_source(self, source): + """Select input source.""" + items = [x for x in self._preset_items if x['title'] == source] + + if len(items) < 1: + items = [x for x in self._services_items if x['title'] == source] + if len(items) < 1: + items = [x for x in self._capture_items if x['title'] == source] + + if len(items) < 1: + return + + selected_source = items[0] + url = 'Play?url={}&preset_id&image={}'.format(selected_source['url'], + selected_source['image']) + + if 'is_raw_url' in selected_source and selected_source['is_raw_url']: + url = selected_source['url'] + + return self.send_bluesound_command(url) + + @asyncio.coroutine + def async_clear_playlist(self): + """Clear players playlist.""" + return self.send_bluesound_command('Clear') + + @asyncio.coroutine + def async_media_next_track(self): + """Send media_next command to media player.""" + cmd = 'Skip' + if self._status and 'actions' in self._status: + for action in self._status['actions']['action']: + if ('@name' in action and '@url' in action and + action['@name'] == 'skip'): + cmd = action['@url'] + + return self.send_bluesound_command(cmd) + + @asyncio.coroutine + def async_media_previous_track(self): + """Send media_previous command to media player.""" + cmd = 'Back' + if self._status and 'actions' in self._status: + for action in self._status['actions']['action']: + if ('@name' in action and '@url' in action and + action['@name'] == 'back'): + cmd = action['@url'] + + return self.send_bluesound_command(cmd) + + @asyncio.coroutine + def async_media_play(self): + """Send media_play command to media player.""" + return self.send_bluesound_command('Play') + + @asyncio.coroutine + def async_media_pause(self): + """Send media_pause command to media player.""" + return self.send_bluesound_command('Pause') + + @asyncio.coroutine + def async_media_stop(self): + """Send stop command.""" + return self.send_bluesound_command('Pause') + + @asyncio.coroutine + def async_media_seek(self, position): + """Send media_seek command to media player.""" + return self.send_bluesound_command('Play?seek=' + str(float(position))) + + @asyncio.coroutine + def async_volume_up(self): + """Volume up the media player.""" + current_vol = self.volume_level + if not current_vol or current_vol < 0: + return + return self.async_set_volume_level(((current_vol*100)+1)/100) + + @asyncio.coroutine + def async_volume_down(self): + """Volume down the media player.""" + current_vol = self.volume_level + if not current_vol or current_vol < 0: + return + return self.async_set_volume_level(((current_vol*100)-1)/100) + + @asyncio.coroutine + def async_set_volume_level(self, volume): + """Send volume_up command to media player.""" + if volume < 0: + volume = 0 + elif volume > 1: + volume = 1 + return self.send_bluesound_command( + 'Volume?level=' + str(float(volume) * 100)) + + @asyncio.coroutine + def async_mute_volume(self, mute): + """Send mute command to media player.""" + if mute: + volume = self.volume_level + if volume > 0: + self._lastvol = volume + return self.send_bluesound_command('Volume?level=0') + else: + return self.send_bluesound_command( + 'Volume?level=' + str(float(self._lastvol) * 100)) +# END Media player commands diff --git a/requirements_all.txt b/requirements_all.txt index fc06a89fab3..8b43ce7dfd9 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -968,6 +968,7 @@ xbee-helper==0.0.7 # homeassistant.components.sensor.xbox_live xboxapi==0.1.1 +# homeassistant.components.media_player.bluesound # homeassistant.components.sensor.swiss_hydrological_data # homeassistant.components.sensor.ted5000 # homeassistant.components.sensor.yr From 47dad547eb8cc0987152d0edac30bf9044bc2e7c Mon Sep 17 00:00:00 2001 From: Lukas Barth Date: Wed, 2 Aug 2017 07:42:51 +0200 Subject: [PATCH 043/128] Add 'forecast' ability to yr weather sensor (#8650) * Add forecast option to YR sensor * Fix some style issues * Fix linting --- homeassistant/components/sensor/yr.py | 93 +++++++++++++++++---------- tests/components/sensor/test_yr.py | 42 ++++++++++++ 2 files changed, 100 insertions(+), 35 deletions(-) diff --git a/homeassistant/components/sensor/yr.py b/homeassistant/components/sensor/yr.py index 16951f21c5d..e885363383f 100644 --- a/homeassistant/components/sensor/yr.py +++ b/homeassistant/components/sensor/yr.py @@ -50,12 +50,15 @@ SENSOR_TYPES = { 'dewpointTemperature': ['Dewpoint temperature', '°C'], } +CONF_FORECAST = 'forecast' + PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_MONITORED_CONDITIONS, default=['symbol']): vol.All( cv.ensure_list, vol.Length(min=1), [vol.In(SENSOR_TYPES.keys())]), vol.Optional(CONF_LATITUDE): cv.latitude, vol.Optional(CONF_LONGITUDE): cv.longitude, vol.Optional(CONF_ELEVATION): vol.Coerce(int), + vol.Optional(CONF_FORECAST): vol.Coerce(int) }) @@ -65,6 +68,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): latitude = config.get(CONF_LATITUDE, hass.config.latitude) longitude = config.get(CONF_LONGITUDE, hass.config.longitude) elevation = config.get(CONF_ELEVATION, hass.config.elevation or 0) + forecast = config.get(CONF_FORECAST, 0) if None in (latitude, longitude): _LOGGER.error("Latitude or longitude not set in Home Assistant config") @@ -79,7 +83,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): dev.append(YrSensor(sensor_type)) async_add_devices(dev) - weather = YrData(hass, coordinates, dev) + weather = YrData(hass, coordinates, forecast, dev) # Update weather on the hour, spread seconds async_track_utc_time_change( hass, weather.async_update, minute=randrange(1, 10), @@ -137,12 +141,13 @@ class YrSensor(Entity): class YrData(object): """Get the latest data and updates the states.""" - def __init__(self, hass, coordinates, devices): + def __init__(self, hass, coordinates, forecast, devices): """Initialize the data object.""" self._url = 'https://aa015h6buqvih86i1.api.met.no/'\ 'weatherapi/locationforecast/1.9/' self._urlparams = coordinates self._nextrun = None + self._forecast = forecast self.devices = devices self.data = {} self.hass = hass @@ -187,46 +192,64 @@ class YrData(object): return now = dt_util.utcnow() + forecast_time = now + dt_util.dt.timedelta(hours=self._forecast) + + # Find the correct time entry. Since not all time entries contain all + # types of data, we cannot just select one. Instead, we order them by + # distance from the desired forecast_time, and for every device iterate + # them in order of increasing distance, taking the first time_point + # that contains the desired data. + + ordered_entries = [] + + for time_entry in self.data['product']['time']: + valid_from = dt_util.parse_datetime(time_entry['@from']) + valid_to = dt_util.parse_datetime(time_entry['@to']) + + if now >= valid_to: + # Has already passed. Never select this. + continue + + average_dist = (abs((valid_to - forecast_time).total_seconds()) + + abs((valid_from - forecast_time).total_seconds())) + + ordered_entries.append((average_dist, time_entry)) + + ordered_entries.sort(key=lambda item: item[0]) - tasks = [] # Update all devices - for dev in self.devices: - # Find sensor - for time_entry in self.data['product']['time']: - valid_from = dt_util.parse_datetime(time_entry['@from']) - valid_to = dt_util.parse_datetime(time_entry['@to']) + tasks = [] + if len(ordered_entries) > 0: + for dev in self.devices: new_state = None - loc_data = time_entry['location'] + for (_, selected_time_entry) in ordered_entries: + loc_data = selected_time_entry['location'] - if dev.type not in loc_data or now >= valid_to: - continue + if dev.type not in loc_data: + continue + + if dev.type == 'precipitation': + new_state = loc_data[dev.type]['@value'] + elif dev.type == 'symbol': + new_state = loc_data[dev.type]['@number'] + elif dev.type in ('temperature', 'pressure', 'humidity', + 'dewpointTemperature'): + new_state = loc_data[dev.type]['@value'] + elif dev.type in ('windSpeed', 'windGust'): + new_state = loc_data[dev.type]['@mps'] + elif dev.type == 'windDirection': + new_state = float(loc_data[dev.type]['@deg']) + elif dev.type in ('fog', 'cloudiness', 'lowClouds', + 'mediumClouds', 'highClouds'): + new_state = loc_data[dev.type]['@percent'] - if dev.type == 'precipitation' and valid_from < now: - new_state = loc_data[dev.type]['@value'] - break - elif dev.type == 'symbol' and valid_from < now: - new_state = loc_data[dev.type]['@number'] - break - elif dev.type in ('temperature', 'pressure', 'humidity', - 'dewpointTemperature'): - new_state = loc_data[dev.type]['@value'] - break - elif dev.type in ('windSpeed', 'windGust'): - new_state = loc_data[dev.type]['@mps'] - break - elif dev.type == 'windDirection': - new_state = float(loc_data[dev.type]['@deg']) - break - elif dev.type in ('fog', 'cloudiness', 'lowClouds', - 'mediumClouds', 'highClouds'): - new_state = loc_data[dev.type]['@percent'] break - # pylint: disable=protected-access - if new_state != dev._state: - dev._state = new_state - tasks.append(dev.async_update_ha_state()) + # pylint: disable=protected-access + if new_state != dev._state: + dev._state = new_state + tasks.append(dev.async_update_ha_state()) - if tasks: + if len(tasks) > 0: yield from asyncio.wait(tasks, loop=self.hass.loop) diff --git a/tests/components/sensor/test_yr.py b/tests/components/sensor/test_yr.py index d0504db963c..4c2118f43f3 100644 --- a/tests/components/sensor/test_yr.py +++ b/tests/components/sensor/test_yr.py @@ -69,3 +69,45 @@ def test_custom_setup(hass, aioclient_mock): state = hass.states.get('sensor.yr_wind_speed') assert state.attributes.get('unit_of_measurement') == 'm/s' assert state.state == '3.5' + + +@asyncio.coroutine +def test_forecast_setup(hass, aioclient_mock): + """Test a custom setup with 24h forecast.""" + aioclient_mock.get('https://aa015h6buqvih86i1.api.met.no/' + 'weatherapi/locationforecast/1.9/', + text=load_fixture('yr.no.json')) + + config = {'platform': 'yr', + 'elevation': 0, + 'forecast': 24, + 'monitored_conditions': [ + 'pressure', + 'windDirection', + 'humidity', + 'fog', + 'windSpeed']} + hass.allow_pool = True + with patch('homeassistant.components.sensor.yr.dt_util.utcnow', + return_value=NOW), assert_setup_component(1): + yield from async_setup_component(hass, 'sensor', {'sensor': config}) + + state = hass.states.get('sensor.yr_pressure') + assert state.attributes.get('unit_of_measurement') == 'hPa' + assert state.state == '1008.3' + + state = hass.states.get('sensor.yr_wind_direction') + assert state.attributes.get('unit_of_measurement') == '°' + assert state.state == '148.9' + + state = hass.states.get('sensor.yr_humidity') + assert state.attributes.get('unit_of_measurement') == '%' + assert state.state == '77.4' + + state = hass.states.get('sensor.yr_fog') + assert state.attributes.get('unit_of_measurement') == '%' + assert state.state == '0.0' + + state = hass.states.get('sensor.yr_wind_speed') + assert state.attributes.get('unit_of_measurement') == 'm/s' + assert state.state == '3.6' From 1adb5040e7836e0d15df67da2e1f47f3403125dc Mon Sep 17 00:00:00 2001 From: Steve Rhoades Date: Tue, 1 Aug 2017 22:53:36 -0700 Subject: [PATCH 044/128] Feature alexa launch request (#8730) * Add support for LaunchRequest alexa intent * Support LaunchRequest for multiple skills * formatting * adding tests to cover launch request * formatting --- homeassistant/components/alexa.py | 15 +++++------ tests/components/test_alexa.py | 43 +++++++++++++++++++++++++++++-- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/alexa.py b/homeassistant/components/alexa.py index 3547e86dad1..25b6537e255 100644 --- a/homeassistant/components/alexa.py +++ b/homeassistant/components/alexa.py @@ -128,19 +128,18 @@ class AlexaIntentsView(http.HomeAssistantView): alexa_intent_info = req.get('intent') alexa_response = AlexaResponse(hass, alexa_intent_info) - if req_type == 'LaunchRequest': - alexa_response.add_speech( - SpeechType.plaintext, - "Hello, and welcome to the future. How may I help?") - return self.json(alexa_response) - - if req_type != 'IntentRequest': + if req_type != 'IntentRequest' and req_type != 'LaunchRequest': _LOGGER.warning('Received unsupported request: %s', req_type) return self.json_message( 'Received unsupported request: {}'.format(req_type), HTTP_BAD_REQUEST) - intent_name = alexa_intent_info['name'] + if req_type == 'LaunchRequest': + intent_name = data.get('session', {}) \ + .get('application', {}) \ + .get('applicationId') + else: + intent_name = alexa_intent_info['name'] try: intent_response = yield from intent.async_handle( diff --git a/tests/components/test_alexa.py b/tests/components/test_alexa.py index 4e082441064..3789e7ab615 100644 --- a/tests/components/test_alexa.py +++ b/tests/components/test_alexa.py @@ -100,6 +100,12 @@ def alexa_client(loop, hass, test_client): }, "entity_id": "switch.test", } + }, + APPLICATION_ID: { + "speech": { + "type": "plain", + "text": "LaunchRequest has been received.", + } } } })) @@ -140,8 +146,41 @@ def test_intent_launch_request(alexa_client): } req = yield from _intent_req(alexa_client, data) assert req.status == 200 - resp = yield from req.json() - assert "outputSpeech" in resp["response"] + data = yield from req.json() + text = data.get("response", {}).get("outputSpeech", + {}).get("text") + assert text == "LaunchRequest has been received." + + +@asyncio.coroutine +def test_intent_launch_request_not_configured(alexa_client): + """Test the launch of a request.""" + data = { + "version": "1.0", + "session": { + "new": True, + "sessionId": SESSION_ID, + "application": { + "applicationId": + 'amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00000' + }, + "attributes": {}, + "user": { + "userId": "amzn1.account.AM3B00000000000000000000000" + } + }, + "request": { + "type": "LaunchRequest", + "requestId": REQUEST_ID, + "timestamp": "2015-05-13T12:34:56Z" + } + } + req = yield from _intent_req(alexa_client, data) + assert req.status == 200 + data = yield from req.json() + text = data.get("response", {}).get("outputSpeech", + {}).get("text") + assert text == "This intent is not yet configured within Home Assistant." @asyncio.coroutine From 32b7f4d16f3c790d3370df3f4bcaf1a1462c8944 Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Wed, 2 Aug 2017 09:14:28 +0200 Subject: [PATCH 045/128] Fixes UnboundLocalError: local variable 'setting' referenced before assignment (#8782) --- homeassistant/components/climate/tado.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/climate/tado.py b/homeassistant/components/climate/tado.py index 459cbec0497..00bed936bd7 100644 --- a/homeassistant/components/climate/tado.py +++ b/homeassistant/components/climate/tado.py @@ -288,7 +288,7 @@ class TadoClimate(ClimateDevice): if 'setting' in overlay_data: setting_data = overlay_data['setting'] - setting = setting is not None + setting = setting_data is not None if setting: if 'mode' in setting_data: From cad1de790eee56b6a5da31ad8890fd7b91691e35 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 2 Aug 2017 01:46:08 -0700 Subject: [PATCH 046/128] Build frontend with polymer-build --- script/build_frontend | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/script/build_frontend b/script/build_frontend index f687c10a31c..7ce2dfb77e1 100755 --- a/script/build_frontend +++ b/script/build_frontend @@ -13,13 +13,14 @@ rm -rf homeassistant/components/frontend/www_static/core.js* \ homeassistant/components/frontend/www_static/webcomponents-lite.min.js* \ homeassistant/components/frontend/www_static/panels cd homeassistant/components/frontend/www_static/home-assistant-polymer -npm run clean # Build frontend -npm run frontend_prod +BUILD_DEV=0 gulp cp bower_components/webcomponentsjs/webcomponents-lite.min.js .. -cp -r build/* .. -BUILD_DEV=0 node script/gen-service-worker.js +cp build/*.js build/*.html .. +mkdir ../panels +cp build/panels/*.html ../panels +BUILD_DEV=0 gulp gen-service-worker cp build/service_worker.js .. cd .. From bc376f7045245acd7283f19e9665cf9b9a3c48c0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 2 Aug 2017 14:14:01 +0200 Subject: [PATCH 047/128] Upgrade pyasn1 to 0.3.1 and pyasn1-modules to 0.0.10 (#8787) --- homeassistant/components/notify/xmpp.py | 4 ++-- requirements_all.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/notify/xmpp.py b/homeassistant/components/notify/xmpp.py index f7cf20d2ebb..c642db77c79 100644 --- a/homeassistant/components/notify/xmpp.py +++ b/homeassistant/components/notify/xmpp.py @@ -15,8 +15,8 @@ from homeassistant.const import CONF_PASSWORD, CONF_SENDER, CONF_RECIPIENT REQUIREMENTS = ['sleekxmpp==1.3.2', 'dnspython3==1.15.0', - 'pyasn1==0.2.3', - 'pyasn1-modules==0.0.9'] + 'pyasn1==0.3.1', + 'pyasn1-modules==0.0.10'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 8b43ce7dfd9..96b48ee63d3 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -526,10 +526,10 @@ pyalarmdotcom==0.3.0 pyarlo==0.0.4 # homeassistant.components.notify.xmpp -pyasn1-modules==0.0.9 +pyasn1-modules==0.0.10 # homeassistant.components.notify.xmpp -pyasn1==0.2.3 +pyasn1==0.3.1 # homeassistant.components.apple_tv pyatv==0.3.4 From 8a626e1572fb950f8e81a261ba387845f6b9ce1d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 2 Aug 2017 14:15:00 +0200 Subject: [PATCH 048/128] Upgrade sphinx-autodoc-typehints to 1.2.1 (#8783) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- requirements_docs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements_docs.txt b/requirements_docs.txt index da5e4159de9..7a79d7bff6d 100644 --- a/requirements_docs.txt +++ b/requirements_docs.txt @@ -1,3 +1,3 @@ Sphinx==1.6.3 -sphinx-autodoc-typehints==1.2.0 +sphinx-autodoc-typehints==1.2.1 sphinx-autodoc-annotation==1.0.post1 From 39131d06bad334692cda324e4d960abb82b64ae9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 2 Aug 2017 14:51:09 +0200 Subject: [PATCH 049/128] Improvements (configuration and validation) (#8785) --- homeassistant/components/sensor/yr.py | 41 ++++++++++++++++----------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/homeassistant/components/sensor/yr.py b/homeassistant/components/sensor/yr.py index e885363383f..0b4c6919994 100644 --- a/homeassistant/components/sensor/yr.py +++ b/homeassistant/components/sensor/yr.py @@ -5,20 +5,21 @@ For more details about this platform, please refer to the documentation at https://home-assistant.io/components/sensor.yr/ """ import asyncio -from datetime import timedelta import logging + +from datetime import timedelta from random import randrange from xml.parsers.expat import ExpatError -import async_timeout import aiohttp +import async_timeout import voluptuous as vol import homeassistant.helpers.config_validation as cv from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.const import ( CONF_LATITUDE, CONF_LONGITUDE, CONF_ELEVATION, CONF_MONITORED_CONDITIONS, - ATTR_ATTRIBUTION) + ATTR_ATTRIBUTION, CONF_NAME) from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.entity import Entity from homeassistant.helpers.event import ( @@ -32,7 +33,6 @@ _LOGGER = logging.getLogger(__name__) CONF_ATTRIBUTION = "Weather forecast from yr.no, delivered by the Norwegian " \ "Meteorological Institute and the NRK." -# Sensor types are defined like so: SENSOR_TYPES = { 'symbol': ['Symbol', None], 'precipitation': ['Precipitation', 'mm'], @@ -52,35 +52,42 @@ SENSOR_TYPES = { CONF_FORECAST = 'forecast' +DEFAULT_FORECAST = 0 +DEFAULT_NAME = 'yr' + PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ - vol.Optional(CONF_MONITORED_CONDITIONS, default=['symbol']): vol.All( - cv.ensure_list, vol.Length(min=1), [vol.In(SENSOR_TYPES.keys())]), + vol.Optional(CONF_ELEVATION): vol.Coerce(int), + vol.Optional(CONF_FORECAST, default=DEFAULT_FORECAST): vol.Coerce(int), vol.Optional(CONF_LATITUDE): cv.latitude, vol.Optional(CONF_LONGITUDE): cv.longitude, - vol.Optional(CONF_ELEVATION): vol.Coerce(int), - vol.Optional(CONF_FORECAST): vol.Coerce(int) + vol.Optional(CONF_MONITORED_CONDITIONS, default=['symbol']): + vol.All(cv.ensure_list, vol.Length(min=1), [vol.In(SENSOR_TYPES)]), + vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) @asyncio.coroutine def async_setup_platform(hass, config, async_add_devices, discovery_info=None): """Set up the Yr.no sensor.""" + elevation = config.get(CONF_ELEVATION, hass.config.elevation or 0) + forecast = config.get(CONF_FORECAST) latitude = config.get(CONF_LATITUDE, hass.config.latitude) longitude = config.get(CONF_LONGITUDE, hass.config.longitude) - elevation = config.get(CONF_ELEVATION, hass.config.elevation or 0) - forecast = config.get(CONF_FORECAST, 0) + name = config.get(CONF_NAME) if None in (latitude, longitude): _LOGGER.error("Latitude or longitude not set in Home Assistant config") return False - coordinates = {'lat': str(latitude), - 'lon': str(longitude), - 'msl': str(elevation)} + coordinates = { + 'lat': str(latitude), + 'lon': str(longitude), + 'msl': str(elevation), + } dev = [] for sensor_type in config[CONF_MONITORED_CONDITIONS]: - dev.append(YrSensor(sensor_type)) + dev.append(YrSensor(name, sensor_type)) async_add_devices(dev) weather = YrData(hass, coordinates, forecast, dev) @@ -94,9 +101,9 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): class YrSensor(Entity): """Representation of an Yr.no sensor.""" - def __init__(self, sensor_type): + def __init__(self, name, sensor_type): """Initialize the sensor.""" - self.client_name = 'yr' + self.client_name = name self._name = SENSOR_TYPES[sensor_type][0] self.type = sensor_type self._state = None @@ -159,7 +166,7 @@ class YrData(object): def try_again(err: str): """Retry in 15 minutes.""" - _LOGGER.warning('Retrying in 15 minutes: %s', err) + _LOGGER.warning("Retrying in 15 minutes: %s", err) self._nextrun = None nxt = dt_util.utcnow() + timedelta(minutes=15) if nxt.minute >= 15: From 6ac8caa857db9fab7a7627a16fecb00d2b78431c Mon Sep 17 00:00:00 2001 From: Luuk Date: Wed, 2 Aug 2017 15:07:03 +0200 Subject: [PATCH 050/128] Fix referencing unset variable in tado climate component (causes update to fail when tado zone is in manual mode) (#8723) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… From 9dae1ca5c2ea93d799caf5c05969ec8049d817a5 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 2 Aug 2017 21:34:04 -0700 Subject: [PATCH 051/128] Update frontend --- homeassistant/components/frontend/version.py | 38 +- .../frontend/www_static/compatibility.js | 2 +- .../frontend/www_static/compatibility.js.gz | Bin 355 -> 336 bytes .../components/frontend/www_static/core.js | 2 +- .../components/frontend/www_static/core.js.gz | Bin 2681 -> 2610 bytes .../frontend/www_static/frontend.html | 129 ++++++- .../frontend/www_static/frontend.html.gz | Bin 139562 -> 158355 bytes .../www_static/home-assistant-polymer | 2 +- .../panels/ha-panel-automation.html | 5 +- .../panels/ha-panel-automation.html.gz | Bin 28583 -> 9236 bytes .../www_static/panels/ha-panel-config.html | 2 +- .../www_static/panels/ha-panel-config.html.gz | Bin 15061 -> 12487 bytes .../www_static/panels/ha-panel-dev-event.html | 2 +- .../panels/ha-panel-dev-event.html.gz | Bin 2730 -> 1142 bytes .../www_static/panels/ha-panel-dev-info.html | 3 +- .../panels/ha-panel-dev-info.html.gz | Bin 1203 -> 1186 bytes .../www_static/panels/ha-panel-dev-mqtt.html | 2 +- .../panels/ha-panel-dev-mqtt.html.gz | Bin 8302 -> 670 bytes .../panels/ha-panel-dev-service.html | 28 +- .../panels/ha-panel-dev-service.html.gz | Bin 23800 -> 14406 bytes .../www_static/panels/ha-panel-dev-state.html | 2 +- .../panels/ha-panel-dev-state.html.gz | Bin 2943 -> 1359 bytes .../panels/ha-panel-dev-template.html | 3 +- .../panels/ha-panel-dev-template.html.gz | Bin 11544 -> 1405 bytes .../www_static/panels/ha-panel-hassio.html | 2 +- .../www_static/panels/ha-panel-hassio.html.gz | Bin 378 -> 362 bytes .../www_static/panels/ha-panel-history.html | 2 +- .../panels/ha-panel-history.html.gz | Bin 12098 -> 1161 bytes .../www_static/panels/ha-panel-iframe.html | 2 +- .../www_static/panels/ha-panel-iframe.html.gz | Bin 407 -> 390 bytes .../www_static/panels/ha-panel-kiosk.html | 2 +- .../www_static/panels/ha-panel-kiosk.html.gz | Bin 226 -> 207 bytes .../www_static/panels/ha-panel-logbook.html | 2 +- .../panels/ha-panel-logbook.html.gz | Bin 20496 -> 1633 bytes .../www_static/panels/ha-panel-map.html | 52 ++- .../www_static/panels/ha-panel-map.html.gz | Bin 44202 -> 43383 bytes .../panels/ha-panel-shopping-list.html | 112 +----- .../panels/ha-panel-shopping-list.html.gz | Bin 15408 -> 1541 bytes .../www_static/panels/ha-panel-zwave.html | 2 +- .../www_static/panels/ha-panel-zwave.html.gz | Bin 10548 -> 4699 bytes .../frontend/www_static/service_worker.js | 347 +++++++++++++++++- .../frontend/www_static/service_worker.js.gz | Bin 2491 -> 5219 bytes 42 files changed, 585 insertions(+), 158 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 84f269c14b1..f1a06e67034 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,25 +1,25 @@ """DO NOT MODIFY. Auto-generated by script/fingerprint_frontend.""" FINGERPRINTS = { - "compatibility.js": "8e4c44b5f4288cc48ec1ba94a9bec812", - "core.js": "d4a7cb8c80c62b536764e0e81385f6aa", - "frontend.html": "0d492cc2c19056db4ef3e885e0b33f14", + "compatibility.js": "1686167ff210e001f063f5c606b2e74b", + "core.js": "2a7d01e45187c7d4635da05065b5e54e", + "frontend.html": "e4dcb1409ba0a62be183a7f0a057b7c0", "mdi.html": "e91f61a039ed0a9936e7ee5360da3870", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-automation.html": "1982116c49ad26ee8d89295edc797084", - "panels/ha-panel-config.html": "fafeac72f83dd6cc42218f8978f6a7af", - "panels/ha-panel-dev-event.html": "77784d5f0c73fcc3b29b6cc050bdf324", - "panels/ha-panel-dev-info.html": "24e888ec7a8acd0c395b34396e9001bc", - "panels/ha-panel-dev-mqtt.html": "13b0b98746233337f6863d4bf4929223", - "panels/ha-panel-dev-service.html": "9eb775f70396d5c1fb7d5a1182553880", - "panels/ha-panel-dev-state.html": "31ef6ffe3347cdda5bb0cbbc54b62cde", - "panels/ha-panel-dev-template.html": "e309e5773be0eecc448e7bab09a976f4", - "panels/ha-panel-hassio.html": "262d31efd9add719e0325da5cf79a096", - "panels/ha-panel-history.html": "35177e2046c9a4191c8f51f8160255ce", - "panels/ha-panel-iframe.html": "238189f21e670b6dcfac937e5ebd7d3b", - "panels/ha-panel-kiosk.html": "2ac2df41bd447600692a0054892fc094", - "panels/ha-panel-logbook.html": "7c45bd41c146ec38b9938b8a5188bb0d", - "panels/ha-panel-map.html": "50501cd53eb4304e9e46eb719aa894b7", - "panels/ha-panel-shopping-list.html": "1d7126efc9ff9a102df7465d803a11d1", - "panels/ha-panel-zwave.html": "422f95f820f8b6b231265351ffcf4dd1" + "panels/ha-panel-automation.html": "88e18b827b67027641f92e5dd099ca8c", + "panels/ha-panel-config.html": "1ff806daf588a2836260d9f600bc7caf", + "panels/ha-panel-dev-event.html": "d409e7ab537d9fe629126d122345279c", + "panels/ha-panel-dev-info.html": "b0e55eb657fd75f21aba2426ac0cedc0", + "panels/ha-panel-dev-mqtt.html": "94b222b013a98583842de3e72d5888c6", + "panels/ha-panel-dev-service.html": "a260b4ef948bbac503451f139c7f9e98", + "panels/ha-panel-dev-state.html": "7948d3dba058f31517d880df8ed0e857", + "panels/ha-panel-dev-template.html": "f47b6910d8e4880e22cc508ca452f9b6", + "panels/ha-panel-hassio.html": "b46e7619f3c355f872d5370741d89f6a", + "panels/ha-panel-history.html": "788d6324badd9f189a3c8f593f76301e", + "panels/ha-panel-iframe.html": "56930204d6e067a3d600cf030f4b34c8", + "panels/ha-panel-kiosk.html": "b40aa5cb52dd7675bea744afcf9eebf8", + "panels/ha-panel-logbook.html": "771afdcf48dc7e308b0282417d2e02d8", + "panels/ha-panel-map.html": "bbf9f28f3a9058e360867b79b1309eaa", + "panels/ha-panel-shopping-list.html": "d8cfd0ecdb3aa6214c0f6908c34c7141", + "panels/ha-panel-zwave.html": "48a71bd864f1f047ff74322be6430f00" } diff --git a/homeassistant/components/frontend/www_static/compatibility.js b/homeassistant/components/frontend/www_static/compatibility.js index 927b37e68ce..566f3310d9a 100644 --- a/homeassistant/components/frontend/www_static/compatibility.js +++ b/homeassistant/components/frontend/www_static/compatibility.js @@ -1 +1 @@ -!function(){"use strict";function e(e,t){if(void 0===e||null===e)throw new TypeError("Cannot convert first argument to object");for(var r=Object(e),n=1;n48_hMYNPCa^Oykrk&JEdG4ug=y;gwbXjoqWO2@D1aHkX9XJp-h-> zpNq@}hF0cmFES5zEAXct-^ta>Lc=RG1)16}1Shq~9{fCx^8|1)M>@9<$DGdkqTF(b zc_#2JA)}d(x@k;>DahK{p)}T}|2|@4-Zj&-rB^5oLa?wcBBQ%1lH(sX-5urf_NA%X iEkDSfj1O_AZ3`*PizSf+16<5pWKTcAWRd3)0ssJmMxOux literal 355 zcmV-p0i6CHiwFp3@DW)817mM(aA9<5Vrgt?ba^gna{xt`=v$QVZ|<>R72LaAX+9@aaN?d012Aa z;A(jd?j+X67#K(FyuU|^&lGL~;U+%&3%nBrlG&?83@oaES0EO(qn3rGruzY8!9j%b z3nE1ob(CK%2{QY?k_4sEYzo{ZdAss}4WA2KF4b_?2J`$o;IVi*TNo4a{O;@?sWjTn zqgUV1w{pe=rL;F|T^X0=`(0J|#IVL4{85*ww*lVY@Poo7F4Vt4TamkPBm`|$@#L3z zUakP6IkKgPJePE^M-$?srip+%LP68>xE#+u6KvbM2FGzuPf$CA1e|T_?4io^@DJH8 zHacFqc1<_uYkecfDZX0Y!4@Vp$>Gty1$_y=ubuZ>p42KOGD=kO@(WML7T^>D0092; Br^)~T diff --git a/homeassistant/components/frontend/www_static/core.js b/homeassistant/components/frontend/www_static/core.js index d1d4c5de1a0..3f71ce27a53 100644 --- a/homeassistant/components/frontend/www_static/core.js +++ b/homeassistant/components/frontend/www_static/core.js @@ -1 +1 @@ -!function(){"use strict";function e(e){return{type:"auth",api_password:e}}function t(){return{type:"get_states"}}function n(){return{type:"get_config"}}function i(){return{type:"get_services"}}function r(){return{type:"get_panels"}}function s(e,t,n){var i={type:"call_service",domain:e,service:t};return n&&(i.service_data=n),i}function o(e){var t={type:"subscribe_events"};return e&&(t.event_type=e),t}function c(e){return{type:"unsubscribe_events",subscription:e}}function u(){return{type:"ping"}}function a(e,t){return{type:"result",success:!1,error:{code:e,message:t}}}function d(t,n){function i(r,s,o){var c=new WebSocket(t),u=!1,a=function(){if(u)return void o(C);if(0===r)return void o(O);var e=-1===r?-1:r-1;setTimeout(function(){return i(e,s,o)},1e3)},d=function t(i){switch(JSON.parse(i.data).type){case"auth_required":"authToken"in n?c.send(JSON.stringify(e(n.authToken))):(u=!0,c.close());break;case"auth_invalid":u=!0,c.close();break;case"auth_ok":c.removeEventListener("message",t),c.removeEventListener("close",a),s(c)}};c.addEventListener("message",d),c.addEventListener("close",a)}return new Promise(function(e,t){return i(n.setupRetry||0,e,t)})}function f(e){return e.result}function v(e,t){return void 0===t&&(t={}),d(e,t).then(function(n){var i=new S(e,t);return i.setSocket(n),i})}function h(e,t){return e._subscribeConfig?e._subscribeConfig(t):new Promise(function(n,i){var r=null,s=null,o=[],c=null;t&&o.push(t);var u=function(e){r=Object.assign({},r,e);for(var t=0;tpa($L1CW!^1yrD0UA*5|8+B%=>RPi~Ru`Lrudo?iz z#7tmUXSg?JgqnsF@5z>n9x+<3Z16}+QjL;!2q>oWwZTJa%Crto$CN20Rk%xK#z5jH zSWT8Fu|rAuR$~rhnkp&_In!9M=aX-2elOEUW_&|v9s}JZc8tdteomx6ClOnN8R7Bb zG>&yafyM8}F+5$q8;APcIMU2K@Fym7<2xiuoq;|>+ zJJ*H@rhKmy$D@w@IoauFZqk+i+x^{but}6=U{kau2~bUBmnNE7N17@2pPVa}d4*#= z$VVnT4rabg!3#uI&_K5oOTKvVnJpvJF1w%;54Nx+Q@WR$y=APU{*)dwG<1!yzDQ5JBNcx5R?~8=vd_IHC4rjj3-l? z+V2qvA%jh>S3o4ft$7m?pc5V6&HrSn2>_<}Quw<))s&HFA(dYM$VFs+mBE^crCCMh z?2O2Xnfe-h-w7^Pq}<7};Pi%b(cOEbfO~DSH4I=}%a& zWTw;&q4w#IL_io;Pxs{|KACpSRwE;uTuiBekMWdp`1oZS0qdz$06cVK$%TT}qM#8$ z=tWC?47IB_YuMq-fQyX%b+>>QbWA9^P^GxhNcn&cebct6Ifz`^3@D)$5vE2X23p6E zY0Fa|8(4w!dt};A+Ud0ZtVj2Mf zH5%~~$O5XMAc66yl<<+gXkU>4qWC6(9Mf`HxRj%ZVc;qF2j-v&KnV)dk_HhRMaeLV zx?xlU563W)@G(Zr;TT4$9lrya0MbhK0yPey7_t)nQiu;wT0b2$TL+!qH$_+u4pTXR)_E7LC8D(iwBEiQtyPWI+n+;gIRGWK(^)hDgU>WtFoJ-+%zO#94j1qt z8pCNYoNf%Kt>Lsa9HIlBo~5fqEG;(ZBiJAa$t4_45~K85q3DunV%wGq72< zW}k~PJswyK=AbYiUy#<3Ya|%=R-EnoXc=sjG!i?PruL2dMHg;I$3$Y&dk_0>Q05^xh#S;1xd&H;e_ zk!ums>gLKx2+_N7QM`yMU2w<|9eHbo9Pqx#AHMbV6$BczX$37MBDt4YCv&Tv!3eyd zj)Padb(>I~S_fL6;xP32rN37xyBw#$(E`-9w=X?M4p1+P$DgEMo<4R%(SiLO{i5AE zM!nlE{Rs8co;^q%=WeBXTrahS(048|<-QKZPOK03zAk+6JLECh92h&Oc-O*@5OA}? z59nVVvOwt!=pY2?OIP zuS?3=-hu%)4hJV^}MNkwoP<(zw${>rr0VN`%nKfPve|s~RA;28QLB zH^kIu2fdd=bV~8C9T|R&G9!JQ5JN9o_~O9U{h$i2y8vCxdacDE&A1u8MUxz?`*6(A z++1-O3CK#m_TN(vkV>$!(v;d@=}GA6Kw>D}(aGQ$*J*JYi|gpX?8U7Z>8=@kh8KGh zojN}P;E;KEj15+Y>a#!7bQ{TLglPuraG-xSwyrm3@BjWeF{|K-!y^3$NbFxAI-meg zvA0w*-vk+3B;XLUEoaXjeW~PHD8~K^(R}me%k28<_V(^!c71nydvpB|ZYVB(y8U|f z`=<}HtA9Uy4Cgcj4>PP$a+uQ2OfAf5uX78x6f(iTkdb<6O|gnF|9r8_I_!tZ1P6po zhv0e(8}N{NCc-9s8Wm!D(7>+X&7~_cxmy-W!Bk?uvMdxBW6XR71J+6$D(n95o@(Jkk$1}7!z-R;Obj$z zw58|f6(N;1u;1gPH5=21t9KLI8r1YJ$70w{tI_Fgi$~dCMkT4$$guys)pbN`^3;+X z;{_WC>pr%(JnlEO20$ZE_;Z%&ERDlAJ6A2?hvL`BRrOrR^C=4ly{_!R+Z{N91pw4D ztjXu# zWt!loB2T1ped#@G?S=3k`18W^bMLIXbp;rH=A9=Se*VnnMeX1rEI7bBzNkIE`1J_d z6r2k=Kf~eAs;T`6v)|lRM{$6Z<3H^0Dn$u-1vDH6i{c)gx2(cgSSRmkAIVjmmTVb{yyWo|{GLLqUsPP)*T&@4OmCKNoNQ U1S5fBd=mZbf3uRiC6pfk0J+2LB>(^b literal 2681 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 diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index cc06fa89201..2eb05d6e132 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -1,5 +1,124 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index ffc622ccf1e35973d336f53be38477b655c8ab3d..bde7d8e8ae1881ceeb7f692b7f4ecdb8c7d22198 100644 GIT binary patch literal 158355 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 {e>Ad6-JU*Fs6e zkGP0!_^R@V14(o@VtdtHTUjQFno2# zNP3JR;hjy1n*&R2A56U|<#)w4C$gkxCmU6CJIdLyK!cYLx<7rbk-VVGT>PDwKpH4B zIDsB}BykLcQIKVr6o8pL&L3`XTx7$JHHtd@KW$v3`GK?rLb05Vt7;Ew7+c8S8h95h zyCfv-)Df~c-{glkKc#^#JO>iF-^i#b&;a<@GDpUB3yy@$ux`na1PyI4TiAX~HmJf( z;SuTP17aP6lwY4>wwWm^U}ozv4$6v>^yo2Zd@%9+R_3Rh#6v!tLa+~^zeSNPtFxm- z1s%^ZBozX{MyQ>jQJ4_!GX&f?qwK6o>|k2Ej#qaWzPd>%V4$w^&L(4TRn5{m(5hP{ zIH_o$=FbwD@&zN~Xrs+2t15a#GbSwCJD-up&Knjb9mvyYaS<3o^q5623&l)W?E;FE zUXxaHWZi~Uw+jhi95VY}AZI*yLyXq@aN|80*_nJ zun>)qFB`Psrh-VD8qxy~qqq&!U;Nylbmu|0g)i2v#FZ&QGf4Vk=WZ(@0QRtPTDXFj|}z`C`B( zYmuZ5xa+zZdUe#j(|J!fxB8@F=kyY)L_`i*XipVMM@THIY8_*(qoaWg;~|23h|S6A z4?n<8!s@{B+GM9AdWcvV87kyC|6E>8-CjZ?6OE5s-Kpwo@I>@z{tAN$cmsxGmE4x9 zSO?LfE@3LMk-8`<;vqdCRE;97buwnnJA!a`yu>(WonOyk^Bk6VF`lYDEUNf{0>T6b0dizp{k${r<}AXr|Mr)o8Qpbc^! ze5dqQ?2a=XjURo7VXXe8#LAqV>26~)GOj>EDr}UdW)m+HI_*Z#iDNSJ=a5SmXJQ<1 zUZk_o_RVjpGwRxMUxh}59>jNy$BoK;+zv4pz%{oUbE>*uM6NUGKmHtrhA-)vF^0jl z6?T=h$u%7DX|s;ke!bL?2{htKMjpOxVhg;Rb6l z11Wty*q^9K>)X_yvf{vN!a*NmV~o#Hv#|I|qug`yr=Fv zfPyaYw*}r@t}yIc)3pfzv%~$nosdQId~tl5)4kBdHe4EY7vTF}0Qi00{vu}51^(fe zfCsAH1^4?efZMl42-lCl6xn^yAKd>!l=K0A{P4?`6Jc*!(*66lL4MI7Y)qeR!8NiM znad+mr&vgJ$`BQT#T$CN19Xj+51-#VvQ$k|s zaJa#*5^Ik{c$#LHu*fWo2+2ebRS@taKhFBb0HX4V-e-?Ram`1UD{Ychm2{-D6*AhQ zcQ*QBgb^cP9DY*r$qZUr7l@x;h+_3hPX-D`d@J)Y+_>gYiJWXTRIGWcE*V1$jMZgy z%=B%mo~ddFmYBu49iDFIO>ghgTiTDQ(b-BV&pPa-tVaRSlYurA)8YkHXByP+p|Zxm z7C1|I64+}F6eI;zdWV?BPCLMvir-|gwQxaIM#MXFoxVyR43c|MXKs@r9Fr=&$JC93 zIwrjSUjTZp;&_R@3IIu(z{OiG-Hn4$)!}8895IZsDXzWwoFTi422>|74%>pyVq` ziV7Ff{2g`T8zc;k>|GpGQ>MWJK=D2Pi~++{naq6UgidVz)K{`?V(0b45sF@6VDDj+ z(3p}a$={yMLrUt%SE$j0qU4UagkgSCVmRabntCELgyFC?=Aj$RY$J($^<@7bzc<`B zs_e;j)BIaistRG8e$IY|Ngi0mQz46> z7WiyeNhW=V0BdwAXA>|Ivf6Q!lTOzYay@q~ z)Vx&eLaQpmqsPf$bENcdol%R?x0op^#-h93#DTdoF?r7;)@t|v_p{m~G13u*=ad%w#4*IiDE&VkB zYa!BSh5%zgoWJKCsEA<#Cf_%vlgSqV35=*MF3=lQl8TKmo%#tGR9eIPN)SWX%kj)^ zoHf>hDLY8pwe1c^CU`2m-7>1`0)1~#A3P9-t-T+8@B9Yna{l+B<&>|>!ciQ&d2Bp> zwqdAy_VSWqb|Zp(L~H`BHP+qG_syeiI_d8`5oMR!Kcg!-p+J|rPf>Ncajp&(^Ft@N z6Sk@8b>|KvEm`Llv%X3g>c*K`eV_~SAUI9C+Wcw`bJFzYeiO?8BSm?NX^r#Qe?u3y z#H75JMEcHY6m_3o##<+H?a!OA3rtASV*P(IiobS0>;ENZ_A$RYt+R`~8F-6&J^Ax> zCkfk+2g(um??XKEe};qbX!|Bq|GP&!)%TXeyQ}7xC&heplK)Y_D|3AR`(*t1elmXW zT{8abKJTOHXxC+_%zf+19ln6ug_ zJwiKA^DYdVXc!&=$L#U>+H8fs1X6n00U#U(*#Ij67+$@WFiR~ze;@iU*MTSKvZjU- zuW;}Y37WFoCZP%Xruo9}m9of2RzFdaOAi-k|HNjJd$o*4>ZzIqMW|ij!x8P(_u$x| z@5oH%m{Jf@S;EBigDP*JAM}o)9nk4q;16XO9ySTXUHn_aPMV}mviLgpC0u!&)P89l zlUS}uLoz35QUyQM!m$WNR`0ECJ}ly7!=(KEvbl|mh)T5ZV5NDIv0RSBc^J_!D4-4P z%(D6v#lqFr3YcM6fnAXFR)TF7CC#Qv+2<%huQB&v`5PesLbidujAx5;x_-1{ILiT3_I$MUvXSsIByk#H0CV zdf}q;VY`e-QbEA9*t(PB9_oBE%LQt`se}01+d#b0{h;vrT8>FH1Hati%1p`p*xMh+M=UJ{^0ao4*bXCsDAil+Juw9{ z&bG04_%~(}Hm6R+?ZxzB-f;jD8*QcI}kHmoC0OU8`8t(6we@ z&G{)7zJmoD?vEdNJQx@1i+&^Utv3dRL=9edTki=5A(pWJnhP9&>GULriRN1k8IZea z3$Aemw!x9=*tiP1STPP%0NdHV9UkcG!H8&0e|slkApbWBD4OdEjS7dOhmRKdSv=r1 zH>K6K4tlHVJ-BwSMzaQAkG&L6v4ep$2bxt362tA9(i(2P*>~PS)}HU&sW=2a*gFkk z%f&Ty9mD1k|cal?zTi&l0Yk*+hb>#8!QI%%~9Kd^+o)zk?s%GG5n()Ce9759m!qKRQe<55As zr`JBJ*KRO>v!}rORSI6hnQhePuXgt+L66T>ct>%Yi)a^k9gF#3F`SIQdxXYY_+MWT z;#bg!`M>{W<`NEJef>quq_0VIcAJQ!&#J<+yd|X$1}SNV5}(Ong-Ru2%acKIagi?y zX-F#+PJD`!f#lK!lIRTqUxh%%%amw|8#CrcU~!>p7~ z%O&)53{~>>Z?IbI=7M3;Q;gLAfr8sB7ZlmWHlFdg7A`jJXKS=gN@r2G7g7{d`8oym z?&7)Hz&^_P3oPO9UC<=T1RIl=3jyPUDtlQjg456kUaa+>f{Psr7Sgi>a#Ne(zmcGG zkVpJ08lW~fjY`r#`}?kMkJ>X3;5yGk&ki=?XNzb~^oc%v%&){^PzQg@uU^oCl$8jk zPQk)RpLEZdVOP9_Zq>g~adj#FpY88oLFbLs{U_$fS3vWfJQ|4=vj27Y@#+%0+Sx=oHf;#J*g z-(Z+j$U9)G%KDnvs``aBTuS0@P40Ks^@Me?hezwMdk|8afQt~{bnGdVM8{M?nqDw( zj>R_S<#)T3Dso=})kBSSug`8P4S9mhTrhBae}Er=JE%r)fan#8o2{Yl2 zl54UDXrMM6280mYf*vS&A`c9}s^zG!i>bRJc84&6F4E- z155IfK66NY%|-+q^~-s_e3733$3KS~D$-yh!y!yU+b7E(V<`ifgD?QAg_5D`!>4{C z1nI0#u6ZOyy z#~R!fA7@mH6HA%3{_fNu`sbvQir1S`Nnwfrb*JGT607_vwJ_(Tmr7)=r@qBFHW%#p za}r)jQA>OUw0=%Up%2+-+2B*)yS2GGvsmdJ{6dt8Gsp<_(IcCR&?V0Dh%6%XrD)!L z_~~G@Kiy9XHv<-q-SM8KiR%5Z`1~!LlbMB8F~7ZH#%6|F9#jT#PoU~s_R#4%{0&bc zOSd`4-`eQc3pw-7Ugo9gG7exc^_Jyz>ywIE-zs-y<+2xAZEZzxrB`j|eE|!k4LDoR zbW=u0=Nqc?(vvU8!0FQjov6dACehgoHdd3vBi$r=-Hme?Vyx z;OF_WfS%vwbL_TAhiYqn9xd<5J3jnmf32yoyVduN{|B zgiA(JBxo!d^}{21noa-tVw78s^V!oDRt!#joD8!klbf46Me~YWg@#!i)2E4Xek5=V zzCrI7tc51aIZTU$Z+R06A0VPR0ngt+DWG}T0tXW?J8cj1qjfAo?+?gi)e`IZucLvW zpvDM>*UF@w_mC6?;#-&_p~K6CAJB{odNQHlbs9MLPf``)Ks+Qlyah`Q)q~NxBFv|u zriUz1RF7f?BYq)qfT<4n7`ajXL3r_B7xMt?fv0-{WWTzQZ5QpAs6!0smG$ra_+ zfMfCS3Xl@M$;98rV+v{r_QHIEQL+p5YTE$LX*dmbg3kn_BycH<#l5*1%2b+)TETuh zaA`UQ`QSyCVAUx$4}a*elSy{I?O^DMx^XmeM=H2GjmD6P`GXPN$h2lGDA?wTGUaKT zGq820vb4@;M@CCc|2BxlUSF)1c0x;v$t6=x91{r+Sjyw51!>JojK(XoVXEL>vOt|F z9;%bxq&r)fVj%MvP?xiZ{1iWHD_2ua7P!C$Uw8F*#&0V=Uqs-!|?ToAi?M+z&tI z;Fk)wMX-YK&xlNRo0w$w5&8cElXV6r!$te=2~MVavJUjEgOp)=Gf>&>z}ay!jeuph z180TJ9B!ZUf`UW-D>GhrSuOsjq=qp1R6Tj22Tku^y%;)fEp|VH_S7dz|I3to{x;-@d#^m3uUY6=r`z&m7iq-OLVFQIE7qUEci4ac)&lXXs`Vjs2+ zO)$NsVDzU2CeEuuZFt1%q^#b;fm&uOCkIp_rEFHW!bD-6=w0-TcA%M%aGm^)BcF%A zEw0M!qL`bXRG%8^TM|QVRM^Xowyd6AwiRIcZTXBc4|eW`V?x|%JERTQ@wkS+-|!rnR4hpe*#LgsmIB7ppj^4z#ppB zSAq+imjEj~wSTcTtx^y8DH7SR@#kuxSXX@gk4q@{faXkTir>aB-ah~J&C8!Z9KU+^ z?0?fAKfitP5+wk@3?mZ-+@Ki2vOq(#4@T4p|F*@E3hgf)%m$u`64 z^w);k403H^)u|cIx9NxtZK`tVS6njE#wgd*CG^<$!=|Y}y)=<;nuG$sUT>5X1)(Ju?8o#^O-AlGw?^(u>)o z=>0x6uPUiP6!6n)&iqTYfwESssgXk%e%{UWTi44XS@qeSXi*WL@=D4IZEzZoc^8YI-g2uI1G22NC}panf0Ryln`Gu>+|UiGs9e^fjpo(COHU38t?5YX`^r9oTICF{8gsTsSkZ+^snm^dBnxT-6tps&hdf0~cqUz9~*hdw+^eo&YW8Q{6J7xmVIG z_DZG_i6959;0d7|rUU=wlLdUb(Z6Fu5@drCe~FSRDbOgfNzY~9_)oHg-`pAeH>tHz zOwMB)$uTy2V(@X2nYDz#TMjl^?#XGyvnEycG`ZEQYTqRF$VQo zKC&@u)ta3Pu0$M5EPespX4xRdi=-1X39%Z9WGs@1SDvOXVSi!%;JD#IQn*=KvsxlmblJUGSUlG#esKw-Q7Z zkB>i*kW>=w#}?K65=C}n`G*kU!GYG|7Gk>vOFR(_zj)?p!Ik6+%nyQ#ue}f4LU7`K zi#6~T9g8Jq_q?uFt9H|u@~l0dEuYl0<=!6elPon}m#6q1Yz~)4advoml;U6T?+o4wD5%Qf zb#pj5B2v^G?$aN8X(_L+=J3A!_JIBvncp5B2}bYmG5>`vX-4qzk^1-@|22{y*G07ow6aCP?A6`7D>OQT@y7`kSatCu&q~UE&-#)$k+QNP^j(cG zFuL!$z)9IHAa4KOdgx`|cGVHjGd;jN2Iq&Py18+6U`FLw_`+C2c9+Bo z{tO7nZ65`JWjRjb<1CC@?Sa7MF^_^V508#~+2q@(AZF2|5wdbMz84~X+TFX8JMclA zKY)(1lZRj?T%MmTweSm z-Jk4>B1vGx>w||ayZYZSWz0QJj(1%TmLzI3pihilRS8U6!4Veo4y1Lm0rNVOd3w!qwaa-6H|2(Aq@8xq z?;71ZpXFQITQxOVCe9LC$6ca)e;qKaFkj^P>KTRi)`L>Y4&75`Rsk-{Bx*Bws#R5M z6Jsum?S`{BPd8VRMy%*FhsG)bo6lNI6!G~(^$MohT6D}%1<4c$@;IOt2FP43d3XD( zV0lOTN<^>PWz?=zeqQI*<#O=@M)!dIB8D`qlM;BsY&1&l4D+XH7E8H;?JzpOtdYoz zR{u~5LFEaJi5cfISd@RjaG#{gC60I$)wV|7HGh)L;?|mFYW>{XKT7hwy_q+uv_{DV zoRYWoJGyNIVEbMXw2Dnxu(FtMF5G@T`lBgb$EpncjXW35um7a7K*W-dFzu@sqvl1o%L^xJi*-%TEPr9 zO;V3WrpU}5*DO4)!W-ARdXkpmeUc~2Z%p9=GaJow*g_K(h{C}kswca4#iq3!?ISy& zE_1inHrWsNiFWqZ0dbY1dDp46GWnW^!G-vbPDdv~Y~Ya6u-FCZjlgywv5UH5eFt$W zCno~B#`>q`_B|ucj#u=R^j5XdwgE@~UbN@N$r$ERbKqP8%8kk?7ZT4u=+0DjZbttHph^(c%9h032Iri%Bim0myw9I zd-r3F-q+z~=i8xlS<^~ak)X%i@{0%aTt z!}&0?!{EX0K`*rC$9%bhnO_4X0A!zF8Hy@G`w|YGMK|a0$VPFM*^CxK_>(tP-TrU| zpNT4vNBKG_8r63w%~i`@#IPI4={Xs2CZ}Y8UKnt>WXXV?7n4Cn*5b4WWg9nLE#?SQ zAG5>rIzK&11_(y}T~LC^WN;`$p+VW9h@SjX#$?2>2Sp?285}mtJJi(R6K*`w^ZylC=5z*a}%Nb)+s$O33V1DnqCx*z|(>^uO?npi5{;vH&A(w z5<4KC>gH+S=4qZ(^5$va<|)&<<4jbC%@LsQ=BAVjfYGTGUIIr=T&SXY#IA5GjMMJm zcke1=(N1!oh(G4B)POa$nuF;;BYl^E@w>!}i|&SiR94 z%8+B&fjP#{u48Sa*HNj~3SuMD$a}kTmJ})s%KNT4;EvXu1hH)y5;-}ir?lzh-?JE& z_dIKULZuBrdy6JSz-vrkY2iQdLB{(NIP3EQJv!oPCV5j?A_tzKCHXvSX$+VJ&;c7f zcBUvCW!tLHSTw90EJL6~$KF631Z}67stuJ?Z7ZYHzO`kjVjr;fC>VG2xgc;lD4LYG7(Y66oc--P zHJ|;>_9Z3u1!E%YtErEW^cj;jU-J)QmobRZSUR6^%p?lP6d1t79RM=kCD5b-iK6GPy zo!X+oJ2IkF@Huoa4B%0HPVkKu_mks^43QT6F465RrXIouYHu9|L14}0w5g3J=RX$m z*mpU=tKTwL=ARtz4zR&`>O&bEl7UO3ON@;u#!K!`N&|LUltptMsAjNNckhPPkjh(D z-Suh@tCI1_^0FSrT{oHx1<9eD`w+ncHIX&cjX2Cseb1n)>}TT4ZpaV@y6cTcGHw} z$gs5WIu7gpR4Ay!ju=sP0w~;=xX!_^0omwLukq*4c~$a6OqjMjHIoy4UX`cCnI9dl zzEZfbWSsUVTgoY;MCG50wxhNACD@qW(19+z?d{AU4HfG5pz~o&eWZuiCGIR46Vm84 zDJ79!A5n4_f81YtM9_sjAhS~C0NvZ0bqN1oa9c$Wje)4+vf4N58;Dy8QO;UMlP=cv|q z??w`21XmmEnd)@VT|E}L3$j{AH#j>TM##OYF~gJmmnG&99$;F$zc_&Y0tiI@Y5*Nw zRhRWZd({m7qEFLbgw_~qw|Ta}>J@Wl_-E0Mqu8*J&q>Xh76+lR9~MW`PKbcZP;M62=OgWDsM|+CaicW8)s|kQE6v6e48`c&<-ghw-N6Lm1AOSpY$n^?URFyFmss$m23H#kLqvpbP8 zIm?yt&vVZ=$Dp7EN-}dmeEvkP$t>q{74d@}uCF_=DEW~-u!N2Gob9PVUY;aeAcbu_z&#;R9NmX6bFa=$>v?JBwh`WoDBDp@fJfZivHgQg0(9h+^Cdy>V&&qTMI<(#)+2q}X7Md&s0_k;8mzvL&fK z+S!Qi8na0LeL6|--`_A@rEqOpq5*N49!8(e^Lz=E>Y{?y^2dv}Z{FbV_ay2<%}8}Q zKj)Ng;s?Hdq9e<~;RRfE=upJ1q-`Kt$PI*m=%;G_5jfxuz4g-i+8hQ;jrU=abJ^>L zdqn7tV#v4Rw1oHPjBkDLVZDQ=Bl%cWBXjt*Qa0P61D zmZf5M^iiTv^mQ(?iZm2BT3Q2IkO;i6j*&8_%d)#lf)N_=Z;heABhy8(c3pUyPJrLh z;WxvJA!Q)=l{1!H;-n~2TAQ9L!F()Qz7qWfs?)fn*7faJTu4UQrSeqNz zK3l@xfVUwkA6v4^^(Cyr$@&9c33(&=Zm0Ngg2sV#6{So5H{svEiQm7i#pd=me%PN! zT*jDFZ^3QE9Mi53Dz#h(atwD@#UZrm1a3;TYVDIHIiYm>)S?UmrWWWPO*=@2k5+f9 ztReXUu`NmGneX?L=^Yu<#ji2A@P_c{Z0VjUv;pP_VH6`;GYxqC(bJo+!jfENN|=p$ z(Q+@^6fEQ_5+`@$anxr(b;PVnDtodo_R8&vqKf76HGIeU3bQ41xg|X5f!S@dzso;< z6KVaN@mjdiTM20OGR-ahQkW@0^X0+@D;0T0|W96e37BH%lcC5U!pWv}y^A zi2Bh=a;$8qm9U@&1XL_vI9NWJ9MoD_`*bojem#+YbGWZjJ)TpDFBxCiXo~@1jmG#> zwWcUysxe2p6jQF(=A7-|*7D9uuX#UBTe-1#Tgl(Qt!YQ|w+J6AT1>@^`wQdKQUFOu z?b!I3i1Od;^4~P1>~qmLAXpWO9}Z;NKa9U7A>9vsRse&SLK(UgRDa@j7?t97P(6uj zLVWm5Zm6Yei5&_fv=Hx+?ZOAi+FOSWT7M&$gnzFwqDnoOPLW%HQ#1TFzLuwf!|Awn z<@>ul>uAL`X-bJZmuP@8p)`{78Od@Tp2tmJvU^+}h1x_$TLNCxd<#D3 zJV7KQO8Pw8`t(5Cyo-Ay{Z&Yp z8c3!>mi1b|+HJZH`$t$!F!AY5BSM_OTWMWj)qW-RLT?He!{d+}8%)&NF>4PCamc{k zTHaUuVXY!H!On_A=3ucuR7ht#?sPJ+BRCJ7-JrjVpm+l}_FWtukqNtaIp_zxzQ-%i z0DJtWu{dH~%s*V`z_2MHT=}Gx7kjnwVi(xPik-&r+CWL=sMoQ~CrSr>ikT{So!&ir zwJA828RJzv4$PuE{G3%`PmNEh%=uv9kooVvq!fB2yTdsJMIf3J0F(xC8A^Wb?XEf@j*Vy%rwBl0~SggIPnZF198WjS%^Y-iYCRUYThEN{uCFvTg0;ikc-WnD3*I5# zne7=gZ>zw#&3HdSTjy!7MYD51`UVx=`IFX6F1_By3dn5}chUY{lOS!hW(8!MN?2qS z>e42Z6nG@doUS4cjeG@)i$P9U-(sCry$E&2J-4Y5R#H}6x-aDf+7;K$=+g@BrORV~ zFxx_<93~;KG+I8j0d#MP*DdgvI`~MoL1XI9*QEWO=t!SwJ$ae>0pZE|8>FGP&c>7&Uc$usl-nMU)=lVUzP$^R&Tg_?{XCW8q^ z?Y*B2_TwlyE#OMQDB5qeK~`c*~Uo%1bj}C3{1kp2DV~06~AtuPA8DODY=X$)So>9Zlf9uYc`F zYoShcHwknmZ(D}km$cTHE^NoIHs4$twBPui`EurFIGUHEv%2~u z5-$I~Oh|1|GzYQm`aV$%*D?93r?oU>qTFQ}tA8JG(vc>kdl*Kp zjAS4x*KmyLD=&*i+=~h^2Ze1Z>K|p4VTIH-NAbX)G^auviBwRyVP~QU^MZ`_u>k*~ zKf0icL_NU{1mt}KvM3tuJH1iw>u*{(xo3GTw~5Hl5l{w-iqQZN&}J)~B}Pe+T0ut< zC~G^4Kx^v|Sgkk}0Y#!~5uIwijtr%Voc-aUqiH!hiUux<4i7Eu3|0||YIF@Va}8E7 zy5a>yWf?Bph!>EW^OMz7!E_3(?VtA>$}2h| zN5RN6X>=_7W5w%QMxKdyE8=bnD4Yi*UJYuZZ>_YpHtSAGY+(@n?B~~So_%=z_UGg0 zzy9$0`SA}g|MB|eJLjQ2evpj+`Y0JcO7NBa=Gotmb+Zqz-@H72^M3kpGFd0e>d9js z#1+-0AMaIzo67T}V8)vbk>Gl=+$8^E6}frD-Oy_8$rj%^>ZSlbG2`9YXMAIIb>!WS zw^FRbfKd=jR-(ND=<>HEIjqC#b=KQtDbOV)65f-cM|>+}O^X~Enf=KmQ4*#5uvdX; z;wX`5`)f!aj)@S3B5-Y#l8T&Xs#rxzP=gXHrxE4j6O{b3@(^bNg}(uB=&A zEBHO-C|rS%h?zK3Iw+z%WdMX~aLi-tm)}kX1SajsuT6E-O(a{ms z&eS^62A6t9{4nfF*d?C>LZ<#F#fz$D;b?Y7MbViGh#|{nkpLTHFk)k zOwFa+cLaJv&u^)KcK4iC%or(|3?DK+Ns7Oas&zDixuY_L1gi>FHEwf(-%tp;uKRoJ zwhC(?lHAdEI4BA8UjZxZT-am6_O$G#OVc7d5z8)K1o6zNiBD>6sEnQ%<48RZwYk{~@xNzn=kjnx8gLpPUh^nbmj+QTjr9+&q1P(;UE;H{T8RC(B0z z`2W$PKal6dFYwP94uwG6BXIZJv2+M2tWn`>x`sDBz1^BEg%%csFBV&nIDuYSQ)KOC zBUV4)n{jjw_sNp(6n?SSXD8WklFzm(WCkSx8xImSOtDpjJZsVqPD-+jHSR|lRS{AtJTBL}O1T_x^UAb^?#eH^`7C~= z(>Ex}`SNm+Z*$(C>Kv)7tQ`D*+`Zd!+eo%3_x^&5 zQdONjY6Uk$LK4~(!6raoT2{n)nTUCq515GaFcI@Gmza5&ZylR>0fLg< zz2ofOWt+&`%9WWb*IKzQ$ooXTkPfj7J|ZP5trJb)N)gCb>Xep>nYCIMhcbmw1Pl<8 z?B6V*t257D;SPU+8$6)?#qv_u@`$z3fJpTNvvE<0i&MqGf!P(Fi4Sgd6{~6t{xR~u zw<3kLB4zD|Qr4B!C0Z?Kk^#De%%8^D^C-!pkH^RNL`*P*M*NdOj;GmthCvK#7lasi z{K)7_riZZ2X)&=B_WLBc%w|Aiv5xT*OB1+Eal__$d_jHChu8d@RaF>4o#`IaK*leA zrM;pCvS}o5485hWhH5?&Z49Qs!#|woa9F}0vH}7?Yc0#mNJGE9< z)v3a?8mn^BZ|{lWqHlHjCMF|QcZ^y;jThPSO0dyR9o26fh|UaSV5_Pso61%dXXL3X(3QFYQDVQG2~gz!va8cJ%tj^St#iFZ!&!xVLzbufFoj z&YV3M5?@8+6AcYHPq0kluL_ssV1^_v>)0StIVpC8v_Xbf>$55aYTiDrEEYrtOWM zBmM18;^mYT2xF<4GVsrJ^3@gIh;8rj8*X(LPcM>dQj{?5F^tF9K+T~PD0L;8kal_R zzHURrvex9x7~kW6XJ>yQ8J*NJJ4Q9Bva(=NmTIM}3cjZZ7i}-0^0`)Ogtv5U zqC!t;g9OJ(cOGUc?MP4pg2mzpYHgHc|7M5cQ>j0>OkRpwJy`c;vPfdoz(GlFqM{e8 zTffKGeQrR6)%Qk~bV%Jg{683E|SJw)kBg6yY#)?4yT7a-t*%2t2lvdT%PvKZG{r=gb z2?pgERRjy@&-X1U-4%{?S6gDaw<@?yhs*2YC_hi3v5jf9uwMQkvb(L zjmtw)OG_2CU}zi>e{Ml6c-_Abu`ua@D2K0FT?%+~8uvj-{Ml79K;ukAr&VZci^Vq$ zk{+_E-oXVG*}oH$SipCo8o@<&)`&j`GP@Kkv#Sagh&sGERHZWIG1tGM`J%R%Qe0#y zuhO4j9RU)HEC~?x2=s^1rU$tr9m0%_x2Ho_2^_~UGBp1%I>a0rnOq1db-zIz13)z*j81=@BrF{XA&>c zf|AOcBb^lS2RYwUYw{0>^X%mba8*;;_r`$P%_V66SfXx>NuTYfU4Wg!^4DZS0$zuw7u9UMIL6yI*}k*ZE9c(C9A z(IHN7ldo}VT>UwbGtM^Ok~-xe$tM3$_DC4|xX!#dQ>FrGuiq#4CKLq4alZev_DW)V zqi%2SXG_}t$1zyKJVvrU(x~Hz(7ylV>G9!ju!$uDq@LLC!T|A-ey2@-6IxSPcS(jd z_qTx2$IUz@nW4=U-Fi=BjsI3R^<~^;oOIb3``?>jQPDf3=g{`NPT??#=OW28byc2S zJvf&%t&R2C82#xl{y{ zhF#Z2xxIcj39WbRT`rUJA1(S!|G-Y9fA9Eg79)nmUPmwf0d^`AV9HD77 zMv56}Eym)F?AH`@PD7FI_bE~AUk_hp@wB9zX2&ghczy{xwBzrUZ zRNlJO_9-+)6E}c055jU4Vd*F=t$w9Qd#s}ieUiJoPoKPh2566aMfNL3Cw&^D=~~D; ztI(Sz*BdLrv}sL5U0zSHMG4~;NyiWQZEya{Ezd~EuZ1y&jBz3CF<3Ju4K*G}Lyhut zV-H_?lcoE{z%r!jL6x?zQ*gSLvoZS-$I_Z0KMiZf!tBh+VA2P*H8$Z4DgO7-E*eOo>r$G;v56$^IJL8>;(D(en9-hucB?$}AG(iIld4r`4kBw41 zUxwXE?nT9cUp}n<&}UlU--PB~s17xfe2NixS|uqHRw=xLW%!T)lj*E&gN`dki>;yu zOOBar*&fzd9t_v-;GdF6G&vA|li72xB!C+I=pxg{8dt}_iSNk|!5x3}-zOZP!8L6?8IH{ip%n>a;?r>hA^3~GBD+qP6r`RFFL{VUPxtRyGh ztY+fkAvaQaNgJ2YEG>n?BF|K51Ff#^zPLX5;=**`@oZKS`$`XE$(3oQ^r#XBt0asG zI_B{?i~Qe{864xpdkKGR*_2qjS2f&1q-&WbR~eGj!sNajDa!jyJ8I3 zW%lGTP;U-Lo&`(n^S1pSGKPq-5W1GU-}Ae64M%5%seUiB48Oxr$MzRaU!NM|>miLB z@phxjIF8isPDPC0e=5omjuL7&ow#9@Ssmxe$2g@#bDpl|ePh&i*G<-mc&pK-5M3s- zg=@C?2d}uKxn8a2aFcjI!#%8Q%z0|uZ%wcFCBB-8L+-`%sr0ZVV7b0Y>t#)~WW8_5y;U!jwH#a(A+>&WF13j1oT_4e z7kr0{a3Is<9IgNrm9*|*wFi(E84ev5A?ArjKH;XWc4V^)N{=2Dp{3i2lAEyT_-XzY z7=f@7_KEm|$Z4K;6L7=BDe7RWEmQp7-1Id*Ogq|ob{m6{N%Qf?Y__^e##h)@cJz)P z-W^bgC;4VL-pLnyM|)AUZX$U)aW%i9f=Xl4;)!en#N9l`<&~Wt|8@kM&(&-35x3>7 zx`jPJdqudwIC`f9&kn1G&|l3z%+Vk8)K1G;vYO&?c$JRGMCvy-jH)j4px^&P?F_^^ z&ytVHjQhk%!!fx4jv#k**AWR9#A*tMH@P{05%q-~hH#4T)B258sVvexOvfPdHnd|v zg}*}stlpZ1lf&NYJj1X^fc8$%MY9Y1*=gC>fH??u2FZPa#?=C~nv540Z2hgMGuW;j zM6`!~&y$#ZG6TEg-+1klqOS7?ckUc1M_uoa?$A4C?oG2*e!Pq)A8K*)@D3xqNj?{i zz2D!xL+{7X%K$t;!@t{kE#SM4?%KEWmY~je_wIrgJhViZ>bl<>?B03Tus>j4i=O`O zgF8;4e#_i{bep~ni?>@)kpeY2U%xh~j96f|`jOKzE#|Dj({o8`>D~+40R!wa@USD@ znC~~~guSM9o-Bby;~94*dch z37>#Q@&Xn_jAby&g2^YwB@q8?o&%e<0KJtB=56ZFu{uNi40yHXCSqn3wyAczrX#G#hR5z-T*^V*aUR8qd5&yCVK3 zIYDIP-4PEe4#Mn3n*J>j!Su>W3o1#sduK7Gn0ELYSMnRMbGYcU$QGngwK5{;q9v!A z*JW}b>2qvPM0yqbzUh1}HMgir-Fx`ch#nmoN~6f@J<3)0z-t4vFv)8Jd^I=m$RQkX zjT&%GUnIlTa@L_|sC2SJU-BJX*0H(r zfoHC+a380Ym0sopJ@+)naD94WvP$2cbWEOvH80&<7>ue&sYOS5QAPAnkN@9zkId}KkuXqnQEQOGtuZt-zg90Fk*`$wrw_YvK--{Zesf zqfSmwf}uT!<(JBHD;-H;AK|jl)?p6xt`adiucqm6ff9zcow6NDLCkG7>gMhQPO+?&S=aaQz%*R@RcG37GWq^H^pYHzLfF&aH}6$ zop2@sG3DS^kh0--kzOTmy^Yi9_V#3!#LHv;&?y&J8$@|h$lAtaNw?Z&!j2vZ$Z#*Y z9|+Jhp?zDAJpFPglcq>PfXF1hDAp9?B;L)fC;GGH9CQSw=xDGh0tq{ zQ>i9#QUQ^clgi3xK0-$VH#n6Oyl|dfePxthK9x@SAysBQs4~A5tPgbHPX|j$EAD%53-FU&an`w5<9de1) z%GibV(l;!BIX`c5;x|o+8=d&EqSaCP-l+jno*)esJv1CJJ4>4UA+stN(t22^=XqXf zd&!MXpj*)gKC)3FB76e*cCJ&JwQ1**s<*s)66vUJOg^Svck4`o8v@5Tna52hVZRIM znMhW9)Bdct8r|Ko>*1tbkH(uzXRRBLKHRp7-LMw?jxM}C4E2wm0?RKRhXA_PiFtPW z9REdvn3f#%-GN=IL2X=4z(Ueg>~$Nj4e1-e+H@U(R|)r_cb?AR&dJGtfy9~^S}GKm z5_ssT3uv@EvX+4DHXo8Ns4YNepxB5Ptwso3!CpApQneX};MTx9dZ|bWMz_YYSlR(8 z^F7h!cEm%4$(kCQ#F}ZB(Zb&6b~*{SfC8In8NcAwbmkfG(K%l)w&}Q16)s*FH9Kb4 zW+WN2QXAs@>g}HnpK@%S@ss1@_lLjydi?z8UZ=p@U@=R9JrCgyJ~`FbQ)TO#_uW!o zPX}iDHPbyJ=<%dGRrtCC;2M@jcDEZG8?a<=I`?(xaItZ1))KfP-ns$b$?{b4MTAGV z9|h8bgQWMDES&>VJmgH+qI*6`vU87Td+;BR-oEMOw94r@M&}_$a2F~o1R6VbZM;Y0 ze6)D+`~Nr_ID$<%s3dD!o(y0h$)S@jH7jLMK- zHVaUz3yj^DYDaQTUNOBkKoW0RcCM=770{enqMlj1pVdQaLGOH1?4??&zI+)9#m}hi zP<$`-f0By!-QEL?^rDCJfM#9m_Zt0L!yYkR{Gi=A>0h{{|G6_ruJCaJpBE=_j`JS^ zqm#q>T&A;WRaySSbUH27pBI;0yR$pLcRz5nNfKNSR9}T&u?!JCB2anX$k--y|CmIN zKio)J1t-~hS#FAHZ}DlIU!h|QExv&lfj3=4JZS9h8Mu8|s)Q|fD(eZmiszv~h@hbeC~D2LayyxBvP-0?QgNi`f_1=fC~e{{cQ_ zh$A(_rn}00RQ+uFzPD)QvDshhw{}NEC1X7{9k;ED8Y6AZ>USZx*stC z%^Xu+pPc%@3{Mhz+Kd74tu6FNj!yhHQ2WiB=lCc7@tps}|Bmoa{)7LdfBlYs;vc{B zpZMP!{FDFSKmF4R=WcOEw|Z|d-U=p{$>hU(&g?@OlKpyTayMIdzDyGk(7%vzDJ8sm z2Ai^& zVg;;XPO+4VF=Y}2KJDAPi8o3j-K)F{QjU);(e5v6BDg?Jc1MO%IIO>R_;S|zMeuhPjf zgRS*}@?rc%hmxv~Q1#ku;(dy9GUuMrxII6((Ha%(reWx3$$7k*6_p^9 zPZnv%fA;*<^JBc_IfBbh+08>~;9CSk6K4a&*euJ-0idx2DQNB0F3QbZAND6byEwRx zRT#Hcv9w-3p%_{d5sb?YrghJ!C|iCQuhq8`o&A2Q_VajBWXrn5NzNR8DtdB0s993Eh9nh zlz;0@10~!)UwV8d9T2%gjv7syb^moSjk>12UW*qM0*Y~;%jXjQS=PYdH;=aXpygu? zworZIC294jc8RZ81W9%%XhWAcHvwZU!pvs%5wt2F?)0)@#zxTBDTb8D4ziQtl#-OF zN{RK7jU+vVwJW}K6ZKDB*|?78QKw$)!Ix)E*MSzk!pBAtSTK+5EF`6tNo`B1xt~AI z54wZld_O-J42`Me6an$tdYcG(SMj3b%J2$e$xYD9;d+O!C<#1|CzqY_Q))~;rC4bW zkkhNh4d2Fa-@v^T4+6(jOVu(0%H>|zl_E2hj8yljiJp( zu6s9c731U3hzwF2f>fMomoeOKDcGB`3B)=5#v1u@&hC$C^2u3b4v8~p3VF&n#&DW> zN5Ch;1;XE@nT4JSPv{vCAbV@{Wd{?Thk2L=*C3UqLNJ{sXBpH;Iwk;?moUHI8^ei~ z#+XuqrAf*x!pu?9d}wHpDov}iLEqpzZAcN$%m}j*Yx|-;X%Z&z_vG*?vZ!n z>|}EKcrUn4qRHqCSj!JL^koKz4Gn>!NgzFU@zcEsz|!Y;C7@)_!Y~V0;bhd`iXt5^ zt%IrzI6UyjD(Z)c^V~9=z?cOie8%(AgO1cj1mWslgc^xp*vX7<_s~-tiZU_Mem|T< zac32T`pfqAR9;0eCvMDVU=d2TZ|KXYhQ8dynH8pR{`D*DMO2TtAa5}MPD_hx=+zl8 zMVf?*NU`7HG`dC(05*Qem-g`FR2@2ecAZI`5U*rHOQ^=@!B0+uaK``a2cyhHK-}32 zYH?u32J)S8f95@877?dgf(*TUa&$C)_Wbo*;E!=Smys&?{fOVIfB8Z|{Bk74=h5{| zc!hs_fj{KUV3PjJ-fB*m2YIuKY;}tn)nHq|<+OzEQRn8z7|l<_{!P&wwgXaO4jT%D zuk3OE;A)sX9`p~+hhKuPUpwhZehN4z;yKJid3VC{i+un{2k8rH$yZoy45gUfqL z%pA&~c+H%L_O9S1q!v9=v~=XRP+n32HN3JK!hsUuVy$YI98ocEI6NlqFOuRaH)y(Z$5(w%E6s|rLy!LWX51FPC`k=~oNCI-O1$is?F*QviyXP(A0hseb| zYqJY+NxCxpgMk$kvX~I7$|^3(yzA0$aY0$RMPF}V-MbKKRn;V z|0&n8B0kIQz`*D~CzW_uDu6&u(phZz`ITZ1uTb2b0HbE;)(~bGANX+k6O#|pKQQ?q zU>a6&9{D>%yvKZx8ER1jrE;vrK8fn{>$sR)!gpYaRo^^}g&JhWG0{dgo0067T%dui zFCyK`R1UhCmz?e^EeTAcj;)hKR$=@Jd`TTC*_1nZ8i_1!I@PBO}^?Gr>6LxIU-> z)7DY62VsMEKW4xvN|2mFO0}LqubLQw0&?5r!xuz>VapXSlVjKfxxvw)1nYloOhGifJz}Mnmn%WfI?TvsLR-fe6!Tf=5`F_oQ=LF0hqql^$SH%6?{&DNs^A}HkeRVwk?eO{UIQ_qhdkJGB$#25GcsiB` zDuRu6iP^Y2gRtldQywM^(lSMm0i3hNP&>WNwxp1Yc?#%>UNS8;;Q!cTqAL@~h!zy{ zI!vOHb~4qo+KJMzJO4xRhfdMm4er5UbDj*yd_c21L6}B5rfL|YPoRKi5oS@p8%s>^ zu75I5ujmXPPNR8fsO=ftrO{b89WD1^3mzC@K zN^;%e#gbxfnA^6kDa#A6Dgteuk#{-MY7wezrETjBU%}=wk!7OnYeEUG-*e(`lMNm4*o7 zIxj+7(@V!ju|MU&hfduh`8rK#Pv#w^_ZuaK(mgqWi>USD@`H-HQKJN?YkFSD$dP7| zcH^dNKT5Qvr@pZ(dzH1pNLli5Nw9>g$Wni*S&-r8_VyOELPdLy+UhjwkJ860`EHV; z1!lB5Nl(L07Rjb3@o8Wg+S6_D^=k)9qDDQ7q+pwP~Wk8r6>I#}X$y@wBgEpq#t8r}WfpbW z)+Jw%iJ8*f>IgHUWFtF=(nEB0IV~~mb`qDaK&Ys3=xp3*QgmdA88hw7C?Z&^y|#bC zNBmS-V4=?69j2_MPMzSWQK}=)qCOtOkBUaUNyQ}QHWiA9%7SdZLn~can*v=l1d3@& zrYo@pi*n{@zn^MWZH?rw1$2I~*Z#8WWd7!+Yj$UI;}#M>F7*a8k;tt*EM(pKidU|- z5}TqlOUQyXeTP*=Bqu{IH$ypL4by|h;@|NOo<4dyDO`!WB;VKasd=%~yfw9QMUZOA-+4xHsZIO+^U~SqWR|JCI zJG>e>vFQ2G-|c+d<3=)&S-E>vVDcGSxs^CPf zpQp1d2a@)lQdv-*z2%j){xWpFSud)7!ua@M^)uf_*kzQ$nAVZ829fDQnc9FvWzx7b z=pkh1&U zN1@kI}f4T%v1zb;8#lP$h9!?kKhCJZth7jQGd&42x*#L{! z`9pARByq(&>N*sKw@cx-tBo)szo->xr$blG%iX{crCi{=@0=ee&T&pal)0v1hU>7W zR5OP^43T9iH4vUJwew~vKX=W^407>fR2OoxoCVS8E9>MG5RZ z?}giU_Bk!6FDJy6PBQ|W)xl$)?t5cKQXOm+F?^k1z1gU_QDX19QD*Y+MLpCWaz znGSR?;RN>zNS0SQmpGGZ{kVy5W>+YGRA2BbbN~0oRfkhR-5GXwf z7*ISx!vcoUpm6|Vd=3(DGlVJy$Q^*}Y3yH@E|W5rxn>Qu*WF;KrBr#rtJd(Xr0&HH zWbPRmncMi3Nz_F`DRV@>=sm(O)1ZwtsCB#75+J!)gfuR@%wXbh^9{L_L+?ieyS1WU zGS64|(#`E9dkm<+mwU7ppn%I_ZSdU3MU5>$xhwZmuMsEMz@}|(P${mAWd(#bj+=-V zZ6Za#MDOuJHKwOQp^K&32FKJ6ZuIrnNU7c4?TO)+`ngQ64)<6JM*<6GQ+N|9a zRX>UJvQ`}Juv$&JOPSw#>c(s?Rf5qP5g^!)`a+zyd&<+lVH^%l6kfrH1G{=Rvudm3 zpW_WC-yt0nt7%S$f!f|qy@Z0$e*{Tv@hUxA0>`FArEBxV&$zHL)I&%HbYF&BeLB`} z=QI5GO(@z@+Pc?Co@4qh#|sMED>%C-X`Dodzb=*9Nq<3wQ?-KLb4y7V()>Nr9)Vol zLdyR5;vi6hF%HHC2A;;V*_o9YaY=SD2WtEL66YZAeu|gCnuty)oP&2Br+EMR;j(wd zsE}dA;XJ*nBC4b7N%cxyO~hZdGw~L`C8-P}`1wb@ugEl{Tn6)@NoypS$9CCUa?G7h z33+082d*kMWfM_AZV9y)fmkJ_a$2`eHzPI`x{ep=>v%D|z6k}W=3*%??DOHckh z{PWJAfBN&mpSSPqN3Ke)51u!(=gkNSb>B@l*7% z)awQ`Zd61|m=DJ{@nJ%#LO~TobO)zYuTV!QB!Xk!?`5$k$IbB92kb=uh88 z_V?-o4Og*;RJd-agD zniUbp`&HYam(S8k!Zv?!aYT-3*vAST2!jK3XCGbcv1HUwPOuSfRf+p5=gNvCA)+TvYhz~(v_|t5KbLO9rZa4 z9V`k`S!v~MU|D`M?l|#jeORH3ECc4bJ4-I&$rmz3KpTK>0jSH6`?)Lj`0~8kq$;PWI3{|_-V;2Jm&eC~Vv}}mbG&Q3$g(G9%5RG>r`VR z&nat!UM2ELvEnxfml_0m37on@MM)uN8KV{Xk^^SRA7(W(E(@7jPvxzWRO6eEV!X-T zXP-JJz^h^9Q+D%D!We(Sw=A56mz5W9jIW|13mPfnFX>>R-6|0#Y{Ey$)7(K;4} z+5shm=Tac(o#|%1$Di%qrTuJo;20(df_+&R7ElirV0gKg!>cPl?98Ihv^x)W9zA@J z>;?Px`@O*dl)irb+MD{r+5Ub0{rvg!&{H1=y#aJ+eGWb9kZeR2=2c;XKCw`Jv3^x_9rv?jL~h6Q^u= zjaDi^I9|nP$t)krqq;u;#_Y*wAlBEMIboRHVCay|lnOQtQ)?$R_wu%cnH53Q?q| zD@AYP)7s176;xvQ1ow-SVrEi`hC>4^UNVOTQtt{rCeI@G#$>t3P>22o_E?SzDtgOR z>Dzp?$o0dIPd?*@>cc{jrEq>zK2}UY#i~Am^#g_wpDO%^eT=1zE^_`K_mHPcJ}&?| z*bmn+p%!&tfbfgs?7z=YW$V-123dq0XYZ3dDc~Ddco)z8)9^!*EDq)b#g+zi;);e6ObyDqUJ=6)vg4@OH*VkHujje9g*ysX$-oCtK>Q&a2V%%TT<>l+iM z$bZ!T$+rps)zO}HbIQ9>1hrxMUl%<_wJIvNClE5YG?(R$Lh~M7iF>rZj=EH{2$Sk`(x^H&Gjx}s4FlAT;{7Gw zdT`xsZ%;&|rpwqr?smDWDzOf#b`y${0en zv7rhEnjgiT6McaB(DF+juv2tLorWvSHMI#|j0t|r*%_tlz-FMsLUFTMP&)+#*5}BM z=(9N6-abLNi`w{J3_k~ib^)UJ+&O~*5>e-5>7WpS-lD*9=A8*f-3kJ6+z(QqHp5iY zlk#Cn43g4xhAE2&CFerv*FRt3tLe!}KkT2vG&=*}mtg@pWWn2W#!rqZ3$QG9mjQE= zlE6@AK$!K;0JLDODTssnY!|y3Skw>R3tU$`{dmFtqx4OM9j9UQor{m@ z-*yJQ{>}t=haI7{=}mGNc$v%)CNx^QOn_VPNbl{V#oi89XfiLk=}8wHG`|2!oGcxw zoD3r}-9oy$nem)eG-stYaw*x+)f1{W@QWKcXeUSM*js&{5<7oevEU(-yayKescYEgXY2q?%W2HU>LIJ%1h?;IJy zp5;2#pqBGw0Ar)yo-7ppR1MAB#H%rTR=w6qY#z!FDu@mKK)*2wBz?pm6gVmG=ETBw zISj6iE#_{um{7)>dtN-Jnjlmg*w;8og6&VH;i(HKgVLnfB}TQ9K#8siu{Vbx7a+yr=PJHB-vfD|y!b8(QA_jup*)99FXA6Q0IiV-V{2eJ&10mbaf=a zw@hs(RSeTLOESGYC(E6wk}eMYBJP8DDz1*2ml)w#@>i z=i~Q>fBMt&_mxZccGs;&_wAC&$&GCR=?G$2*;vNFlKQ|-R~vFzvr%u_ZY0j*vcV=| z^@))Rirg|WejIkxg^hHPh7^y)%oEHWzl9vThmu(eOA>=294VwD48=u~=X zE)$K2=*6r)p{|7HgcTT$pucuH!`p2Ifv{WV6jadHNwrW#&t%w!+BZaqOV$NRGwcV< zY$)aeSOn921)-b`2mTKJweu-C1H|j# zKE3B36xoLaI?X%hClmGPOmnZmt zPd`Qe+6;62h|v|a`upXYBhBHJNQ&vmHm7rjN_Qz}r94SH4p&k~p>iZezb@9~cMU~* zb&x!nor{Q7g3fcwc@EwskRphsnb?jh7#dM}oRxVLFwC~RR>U3g0Cl8H1?Zp7uwPYx zF&-Bkh0{~-*4q}e z-L~Tk2Qa|Qn(@>5O=zOHYME^eq0(yt@xdooIGdKqmJtlrHk#Uxc9Z)Q!-wwz{_LaG zlr;tNm$?ad`vW!vFYyCSF6PEvCtiHNn|944h%ScI2)Cf}vXDMYzhm(4;dLn?%LJ~U z0+pu8=tfXBu8y(-2DM4T|KQR8nPscbs~W^tS;x>hzqP}W1$6pu#v<} zBep2njl$C!?8(=@y5T*QbE09P8Y>x~sA@75_wKGp`|b6;zPvm!@DAlt#`u61<1Ds2 z;Qo5DT4LtHMV4|xS@8xpL&t8bO%DYI&nlMZhJSL_n50_`cabfTa&#Z``}(YjHae+N zwb>aGQ)+b6qb>IL9Q*>~CCbq!z)Rn5bfcTw&RlHz)z{Q&c|0tj4t5Fd2rs5WMKlXdpv@YBS60e zy9c~O-3U-bhBZ_z{#;uv{;aC02N$ zLRui-zN>tfNR+EbJnLTJw@Ki>GPI@i z%M?Y?U2hf9OaX9sBZC#T(kdfKx=={O5|j*eJy*^qF&p*U!buB+%Nu_qq`rvf-fMgV zz70-c#Jgfs0$sx6w?�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

wg;*q+Yv75d> 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 S=c2h>Jo{gELJqQt&6zUD1#=YHp7u^`XDy|t zdntwkk&uW91*icqwwmNT%RbBZWM5s*9S4-0PETJf0yx(?b?Q{rsms}-yioX?B|mT5y0}@jc^It9 zI&Z4wFZn!(wx5b}UVR$;dwz3K-9J<%RBJ}reE#|u`1O6!w0W7=VPJj#2t$1g;yg-% zqHOazgRXzcgEUQ5&ovggY_m4sY=RloT;^?Gi4lxB>2~?*!@G+Lnum8)HiyANhubiU z#fX2XmXG&&ovttQwk^uLCNaSAOIGjYsa$ETCcX8$A_)_J?CVYvpMva-EgWH8V)Xy`A3DId(M`#2vg zvPOLTuBw)KR)(*aIl=FtuG*@7e8>kg0A-tVv5!^NMo_QJa7jc}qnU$)eE}7I1|TDN zZj0p-YONYwMUU&?z-WNS^q!i33kXrSjT%}|&MSJ{DC#OMl za3H63d3kUE{|uVd13}1s3WJ;K^N~QJI5^qE{{m)*M@P3+6$KX9?eX*t6hX4g{`&Ya zzr&4Lc?5Zw+q_sE>*vQ-Xi48k+cDgE_N9#a7z-GZsP~Gn3xX)lB zYGXh*n+?2LZ{b(kLbV}wQ>Qs?uvt|$ZM~Y|P*t6g^*$+AurG>qt-dGuc9;+H&p?*u z0GzOpzf<)#ip78jZH}nX){lc}P4KH>E68C~CMjg#%3Xqxj0;60fO1t^s?%C9;5V|f z@3JP>R7H=_E-{$iMjh%!6B}}VK7Pds;&XEn63u#Ixhk9>g;BjC;KNc%>A~wTd8M25pxv0G@(M*sc7wz*pSUe(|Y?o ztkIzQ1ZVjxQDD2((D;ZLSmXJ>YSQ(TxPfHa_ok?umZxb$ z^DnEsY0t~zo|g1Yo!#f5QNRbGfu0EvPMleG3pn{6b}bkCKdXF|6K;RX3S?{aCxog~ z+JI&ZT#p3FCmgme1-psg`}$%akE#9y1_Z|kf6eDz+}SfgzKz{}%<{;e$-y}D(4%xd z;3Dz@J_*I!C5+mf;dW>ulYeb;fnf?65w~C(PGepE6Kf5D%fBk_^J>+ai=2zGa8*f2 z8=!YyXd~72egJ&KPac?@5}NorvG$V5{GJT!vs_|)P0TD(?HIY%K?YpOV~A`lJbwdR ztb}lx)d&u8SpVVb-S>ih8yUY1;61rW?(RX1Po7&;5g6`R5Ex%=Z%G;_%NuF$cbbRE zy#&DO>;a7~W^Eu)QC5~x#?U-ef#6MxM!b0o2Uu3l^63<5?-T@~H^4HlYR>_4Uwke~ zBK;@}#qK%mY^2~m`^>V0$-yxhyUAhUbIsLxUIKB;mrX8q-8^qrcUk>iz5xENsvG#~ zqK;@o6tMBg{zgdE9fR{`fK-)cE6D7#2EA1$BfSu?Y>-E>;IP?H!Mto%y84@z zSqqIt+XX3VECAgMcovhm?rgN$zcXR4`G-yehaEn>r57Kay@*@A=aVt)DsEudjc?cu z47;+1-Av+Ypjq{U1M^7^ci37*%%?E&2>Vb37XcO%3$uj8)VIYGFKb)i#QhY)U;w-) zm-jeCnd4kEYI3IfZ0@11xl3B*&~V)HH$wrW&)oQ|e=}b>&;PD-I{h2wB!`A`lD~~P z>CgH%&nc5+_+pWjcfPqJMV#c zZeZI9cokYh zbXk2zLV6RQNQQ!E6VfOMAEr2p->Oxb5jRUS`mNe!@NmQM?zUGPg^xefu#lfoi3E}a z^D%JL%I9bHkKnd-Y^vq7+qaODW{bMIhkdkvoX_v_;{uqarVTyH(`d6fzAd1&>hrEr zqjB&Lv++MPN%9ZPBnjf+wkq4BPkC{-Xp_C0YB?Y7A^pyk&njj02~=k7W%f6l zj)(zkf%@-0*&y~x9%@K{rGx2xHP4sl4~1LIBc9kB!1xk-WRNJXos$lz=hl07Gm;HU z5u&U!{(RbIn7E_2kGpTi;q^XmQxmU^`WxfBj-c~Bpn4y%{x z308+pIq~;mqL1Kt)~;w@YQy~`ioHeSs%%HqtQeCd@)GM6!4F zKD88zm%s&SrG;HGLKect^R4lpps(L@@-8augZ}14iys&i0G{hOr%_jy`tG81>_!x)w7@XVC;MM zMbi}J-5&h>{mJk5gzbk71Pfff_YOOx#~jUV03pljd^XFQ28JfYNyq+1ijy`T%kgV7 zg>gF(v=ulaQ{+TOI|NX{Cny78ZzqXYHf>|(X$U)!PW0~u`uv7Lo6mdET(r|I*n=-8 zu}0xxdsdTXRClP*6XzhMBkP0IPu^#Bv&fd-33#qWJIW4yE9$i5%n(i~ISyYz4*}{f zT)JLVjiz=Do*1@P65nWz9zH#&+W1u6fVA{WUem);*qPCTIM(r}REObjsYVj-E%ux{ zqf6_P*hEh}y>^`}KKqNr#}5&>jM99-88#cZf~EbkNr1iDQOQF%xgWP3STVAdLn+5$ zog`z@9gnSY-m$Aq@I0X&>Jiw0D57kG`W~|cJV!$xLsFn7s!#fpw*Vd>z%i=HS$ERD zh12s^#o!F-VOaC0PG8!%7luhvhsFp4ne+Ni9Ie8XXEZjSVsZ3?q%VJUFU>8~6YXkM zhrBFz2xlOAKsz;UNMsGAk4YrX)yo~`CO7DEifGSeaQ4^=9=JSS4~qL?FSKS#HtIlA zF~#)7utO5+SL2Pm9ghK>Ei;$0x^cD-9;3S!obiU>^R~RLdUvc-E);^cCV7$Az?$vZ zeMyTV!S1$Ag}m93y314mGpqxu8>UD-lZu5H!h$Q39d5&8;8zoAAdzQHo392y(@TL@ zsMdft;yCqps84476}3NKcHF^&Spe#`8Fx-VYiYi$8KY+WWi{2S*SEKTgmmgVb-U_) zxg>F+FXLFj4txh)X22@IAK)8N%T$d|fEX8K(fy%ZJ`x>(?;}_kTqhvZ{39&}EN0iL zEPay?snJH1U=w1YJ;+duiiDesWt~J<*T=O|38Ad>E_)cv-~?J;Rj;yULE=w^cSN{l zJL>244goc`E$EnNt+(4@&ky_oUG?CsjKP& zXP6uxjkBY_PLA(lW5&sGI6go6zmw?rZW|k=vB`cWM07(6n$UfPGOCc1f} zhJ|=oX0u$HDSjRpoy9)8Pc$)Vs~;a8q*S^^{@PirUq8goc#M|g;OMKEQm1HCwRe&N7P9o8PZDv% z(T{^rpbIMZXu-=YPoJmTxVPb+>uGy5sLZ0ZqOGciUySOGvsW7>^`NnUOgGgAbp5y0 zE#E-zy&JDT{_o2V?@|3pVA+!0 zCho1RQJ(Z#JBq`Qgc+PP)+aqyAeJFX3?i^Mt5(Z-`5*1xJfFdi=EnE3W)E8qBD3FD zXv_~S=bz}OGsR126EJP7Eed>)({K~cDB=SDh5-~Lvic|p5?(QCKBx#tL4vm`rjidw z5-F#Mw&G!g5xZF+kin@Hmw1> zbMhX!YS6AqEkybL>{z&LKH<7)T~R8YB{LYNxQNTRQH6@b;OpS93QJY^cpQ9dY!#6!IW!jzR;78dHCVt&0lYW=*lcp$T44dcrr|4{L4m%j_>28Q zS&GN&LwUU#25o--0N{oRy4R66xW!T4LGNBv66EFlVo@yT;T+C}IghE0aXPgzJ=-IS zym+V6RlWSke!Dd}Ms;7Ox!Zphm{4o1W}DRwla26%Orx9jt>oj6gXr)y+OiOc_;4IT zH`ielj(>_KFQV`|0tq5srfWcfWE|i$f;edE8U9P_7Y9%yn8bit_fR5Z@olmNtU3;V zx;~CJ;ZMKAf5z9Jj;`mE7fEy+uhQe|_4RslJ-!|v8%BmSy&vl(`f}0li>66X@S_LZ zg-z1RM<|yR@k7=w-qh7SJ~f(^N1Njx;8VvwUwzqZ8m+9u_51PTTjf`(+=Fq(&$&aq z0@PSq&SFBkL^`fcZo#LDvUK4t+kI8tzoQ$%0bj5vBc<4`l#)?`eMcL}kK}Qy?-cD@ zLtw%47QuyAia`)pX&3MV4O>)l+4cnzN>Z!A1GS)Rv}7y{%HHT=u-B;<1Va}l_OoMN zUy$~(?{dpr2tdrXdN^9fZgTY4^&i-Mh*6vOPS@k4S}yCt|#Ji>6b7 z1Nb<22OJk3-37224UvnzGx_!9Ac)+h0(RJ$%#8iqm7gz?7dc?Dmk$m+F9*on)YRmz zuc6%?o`Aq-+ym4o6+Zs0Ykmx*Cm=|H^fV`#DT7ZSK&1=%x=c@1 zOZdEiXIWCJ9rM4evSowD9EWr;6yx%62|pt08{2}v@I1z^?6QfSuGH%Z%wU#sVR&(P zI+PVxXS2~NnMs&s+qj`+`2aFE#~VOStq*dhNs6|p0(z0d9QAWSwlsKORHBtu`|@P7 zsa~E8ae^oNX)FE;eQATXE#npkUg2!#>S+SYz%AiCn{S3cQnQzBv%u4F11N-vJLixG&1EII80Mh_7-%P^b$n)vlbO-Q6^;;@h-|?_rDHpRMGHa}WDZ zDD+n2`-#wno+Jpv8P8`C#j?pLo*o{?w}*$O-taU5Q8GlROc^RrexL~#RKQ9dAl*(P zx212M(~?=?TVDl#KXU8C#PqyoKnD!Oa)_l~a&{}N$ct3nDJXJPV4#3vqO>xFQpL#T z83A`RFR2Pp4vEpiDOBDysNRl_sK2A55^yX6RFl0my!}?lp>_74srOM>Buc?YQjBo7 zEj-9Epl2NQ>u(6d3$@#AjHg0t9(?oa{%r|@GsPC)x&W zZkklXZUv|v&f`^TINLOEGD5%UYCM|^XE2(@VH)fOhZxr4K0o|A4Zc2XrEW4h1Zc`Z zV!@XIoc8m{Xpt-q5nsyaFgQDgP7dMIP>=8G^`FGxa9~r6?gj#gYzg@3<+#uzos6bQ z6;30gfr}6C^aRDSU4Q;|wtsYlp^C7z!{F!$Ugg11YWv$oU47b0P<73Ce(i7obaGOfhE#5NN02M zG-$|(k1Uc7(-IB^9EXAxD<#w8@xk@#A?OTi}13$`2_FPu?uacQp86_?K`D?NU`RnfXq)me^1s_Msq|kbu*bYwj7+JFdFRIBD! zb@yOb9`(G(rLy1X^)d<0uU_efP|pBx;< z+Kjt<+2XF^4!WlXagLupO*`kP#i)q^wZ?$j&dHYMasN>pdyvWQCGG)d+IFZgx?j(# zdj8g6csq&)5qry-Hr={tIWrYY`|88RkF>ULKA!)pTI9%7R_tbF`9>OK3A*eoXb3~& z`dfYC(P8uw@uo9y-}3ubphAI4ysz~8DDFY(v>H`C2VLu8PhT741mykVS>9X^#e7|D zHewYz-;Cysw>{G_nm3RTKsc(%!Png|c zqf>hBQs-YXArA{|HK1l`)Hlh77uqtcb zK4y9srYoLN{(~l;r|TyLA-AeWFedlSXGjpHBrpSMt?ubLAE4quBuq$yfXpyFq>q&1 zM*Dnyhc9{0VZ1c012B=XGSqz>c8#c1-HW=)@=lb-xKyS(^i_3_YJ)F}qiR@o268@Qa5bRk0LoO==PT=p6@!PvNKw!;VMvArTvwfiLhaW?- zye4bcHY>`;>t=vsCw&^0&{mCRJU}#KOdTsMVo3Jsjz~r=q^6J!F?DcO6pGEJCG%Lt zkfcVyFcnG+P_W)e|g$F_6y znp_n|cBFIyc_Z!IBo3ohX(_o0brVOs%rl-oGX&Bb@m+vcRTebpN`=j&LFZ|u(tc1- z9Hqg9ftQLin5Vdk2o(d85+qrAGR)5Avf+&8Pg9tWvx(#nWJGg=Zxqh#Uam2>g3C&` zcWJgGpY=l910SIls~Wh2{UEA|yM8XD;OZ$NOf6)0cw?oKyCCsfmA!MYDvFyP)eaLJ ztEsYTi`z%peaBj%uO+TV)+vPP7PUhvSs^E)cM=&)BU@~_o>5h~GvK%sYP^B1@xlX( zZZhyb*sjwtMlj5?#dgW+Agr(#aZR2@adER}>Z+cG4f0W@hP@`zkdD!Y&L$MYmmT2>`dp?IDuqh{mMM46}#J@LU> zGd|c9<1%Z?>2PS6ndcGh0#RYF9tP97tNs3l-+_JF7$${yE{U4b7>-|lKt}CSt|vlIyI{i738}w~qIF5sy|hl`W+crj zQGydvh=62Lve-2@PV;HesJ=$}HS&3hKFrFI7HRCo1<@YHk{F*Y#}&NcHxZ))j+|o* zbTk*P<0nCd&1A`(h`*PqbfkK`$Ls1as0MVWn07<$js5gS>^{0v3Z z(9%Ig#tIrzT8K(GT`bZjgSZt`jqYB+NqZZt4U}m5BtoJJ{abA}NifKPuw&Xq29mwt zFc;xZJX_NYqw)nC24$li@act4`>YM4huDqy0wS6jbVN7nUFE1dH3bK1vWNp`#yLriBFAl4PJdHRJ zFZ@fY_Ye%pTcj&2D!(wNg6*Ov1HT%31*7z9>QU`FNLyAdn;Wf4c1@&;DEZztG^1(C zACiSLwIr+rX-2PGDi7&-@1Cg9UpPgtO|<1kMbJ*R2Zn*eD>s|W&}>at5A&?e9U|JJohwsI zrYIcBTbUw%-f$ABDCGzBZHKRk?c(Z#+^=AGo4ldsU_83c6?;Q7}5bTXkvJ-)&6Hv-Jb6kBMXH zW8PbDv%z$to<)74L8mk~Go|Z8_u6CVTy;n!iMo8QT@drsU@V;0AG^r7h_mAlX(qZ) z(vT9QuVJ%UH`Y=9WV`+^PL%g286v~T*3RPR2YBuF=DM8c8u2)%Q;$+Zz`* zx_dX((9Q*J;$%42hx45BP*q_$o=+mJ;S4cCW@9OI3iDb?>pFd0nwFWZP(^|(*P^qQ zn(aGE7^_HeRmN&|W+tg@7o9~WOfg(KEDfcwgNa6FECCEsgP{ZBr8U<>eg5=2#F{ zZCKykS*5um9F3qi#IUIh&gf=LUZ|{{tjeqtSE7wom{r%25w1z3|K8vCYb}Q6G9GovJsQlglB`=#dwnyPQL!IM03EIl3^_x9~GM*SqY+h4(@Ua21Zs2E|7 zNuCtuwe%=w$*>a@IM$n@2ikqe)s=JX^jvuao%+o<%rn40Amr!P-jv#VPb(TnZVsy3 zVrivDH7SADfMnOz;5O>a3biyl=VaKaKRGLhDcjYoVVC}#X0=89?q;EZfoKX=!gwcLxSm=D@dTh2k8Zy<~=;@UxbUk3pL*KO1Iv-0yq9=36rv-9vy!7AEqUp8^?JZi;cGNph=W26QCd!X{`!`uFXahvs zj)9e#hT*|eX~mu;sA_l`{98v&M-jOCE)aB(d(EKbL!sG!uHu{dLmg`o&29}V)g3Yf zR|)?{A;RMG$wcP)!neC6cUBa%;pu{!jm<~qGUZY74EfzRCa1VNl8%aJSN}W2mFi2y z6=6_oX#4TX#FkyOX|d8bMx*vu@a$d0|E>7$_Dh-GT_^LdGqp>nca=`_FFId3O{t>K z=++?GJ~BIG5zlPGKo*RtzhfXeC9xKqjVvT&+!*QTA7(pBu zCk6TI>nmD#G*njfq_26=9pBJIsj}u9i=LwIJs)P~c%RO92%G7Nr2+_bp&mUSFr@~J zCcT*SSBXU!w;E7JtfQde_dtu zJUNM{Z@&NW@(IFoxrUs_oJN?5;F%1i#X0)*kA4_1g8kXP<+xHJ;azoj*x)*dC;8=HhzC%+V z+igH7WX%tpb`Y~wV+aol=V!&=lO3}Cj`0Mt}v38TJ65dW^O0937KF84JjxiufG^a$_m@~l*g&@x;sh(kE9j17fUp2 zD{V@>#jMISqG%hNk9~eI#z0bLR$SZYXF3Qm>rF=428%AKgyu@9*{;V>{);$(Tg|wS zL}}B>2MGHfM#H^=11)bI(w=katX+&xnDN^q(}W#`Tl&Ohv7*fo>IVB1layM0N1}SN zbKh>0UpEzVboNXfQG$z$Y`0tpS;K<^C;X4C{gs|JI6)CFMf=$By`)*6+-;mD$TUgn z6yUoBNgb4ohBw96=Fs5?5L-^efv%c!mV{5tq@{Uk#R9jDFsG)%sLNT33>3O%=;Q9UUdG<3r#GV3p zd%$Npa!=jQum#Nwi1w^Pc9(PB_K=gfa${ebeT62(J=kJglua`<2;{uu7b27`X6V9{ z=D48cmw{d|+79rgBfA&)l@HX&1q<#7ia1QF?c9ymKE4*_Iq4s`5lp<*_&_S+ok~|= zG*{6U-<12IXDgU){SJMSlE>5x4j}C%MdU^eAUGivfGj7qJ8TTLlk8q(ORl0}Sdy7~ zw)~VmHoU5eG?)V>*O{$I+HMV`kLM7(uP@31HPszeH_LC{hgjW!6BP$05Q ziJ{%aXw>h;IV}VA%jc~T1=fiDKXAh`Q)V*9n%Rj6t70mMzzLNKYpsgUQ}vP}C}2p1 za$pWg#8+Ug5C);Gc6XSi74rksA^ke6i~!uC3k?IokWlwJx*2l_ZETg~PJwFKBjnek zGEt_$CeHMPogUnlt^pxlj^!naC@e(j{Gb@L)=AZ}wUi&yTk~nQPcU+XBTttVyot}1 z`swQNy2~SJH$NHJ!Bn9LmFWG7^SAvWE9Xm-D@H?AN?<2eKlh#7cJm}6z7q{vF)up( z$Wt7dh&k!OOl?*!RH@j7!-p7J!q9CZa>gUi6=U7kbT*Tkn=TeABTdIH{!ldu(i70z z5*8zjI@8x_X)Fn_YRxVZJo28!OYpC&jM4c)^aj93hdL`D!4W>qM`JB80>^q zDAF$P2F8;~embIpndL`+AW}ijYT(l$(2H9roX+d8IrS5 zZn1^UGYFygUhO$O`6#HLB0Mc>{5r0sYrVi`J?iAqi1{1LZTIQ$j15E<>PF;(p+gP* zo2bL%S3Vx!B??`<)(+7k;UV8mqnP=tcP|U|y0IsWQH(T;4V4cxSA$R@2bu7AJRVFA zk9$s+zma4)(uA{~zVk_>oZ69Qx9$4Ls4!b9kYT@T&Jg{Xh2kmMSuzD0W~SCK9j@IG z*!~bKCAVg>44Drcgyo&1Lpyw_qACn+*5PSfXzMpOpDuU0>UZO=(5ln$wOn|7EsX+^ zRooxwrg}2aO>38^Tly(htBRsdB44ptcLGRC*Dyl!&IN@_ZysJl{4}LcJGU;!;5ay- zH0cp)_~+~(sy2+SP`etDRlnzp|7xtI_;az5eEHzOl#-1PI+M5bSySre`QhdaxIgH^9@xM28Iy3AeRQyO??k-kUFHdAcs1fR=rwZqMa z6?je~JAkZihhzIgAFXl<0ahD)i?4*?#ib5=FTKOSgT^_!!A%tU(|BM;`U15+t4C}_@?V9N+Q*car?Hz{*(A9x6G4ccGb5$NN;QjGavBNAlpAx z3J^E*Z0G9sl|uB;F-0bx2X+U1oR7>1D zRDg+$Z*Du))81__vKX~?{@t8dK)x^Wh4l+NJH)0W$~empNTmePu=H#lFAY42p8@ko z!i>Cc@rVUj&pWh)3}8In+EmpNFJzm_<4_t!ihD1caG@JNb+XbiDx4_WCdQjCD(+Z! zk8!ifdbW;xLYx3C5V1l;jLn|#RH?9H0C@KXM5Z7Z4p#deLUx{+K2k0u5v1qCVi&8; zQQUXPM>2_K85Vd&0{9?p zAx>q)R$0OpB#(>kcqmZ`N->2_G-aEvSYxz;!4wqGrvnRbtdGKo_2E)9XQLJvo}t1& zf;;OgX@!)xhXq_tV+YK}gs|8-h8e+;C?zfYYv&YMn>2GK{pr0zcL+ugkugk+F|zVgEShkxGy;m3PC)T?hZv4`siqtuqqgf` zx@*b*b!X$7N@PH#Ki&+-Nbi+b&CYY_?^l`rej?f=E-kKR8P<`po^^Ml_!g2HS*Ey} z!y>HXC1MqCr=_6k;;}ZOz{MR%^z1LZ^ITbhjohd|&%e{;-C(*s(lw*rl5ELy{K-Qs6F-*t03 zPw}QSUiCzyg`vXI>cM952@IaDAiA`}A8&TI7IVJ>X?Gu{QVpQUJuq*8wpPe)mFaYU z|M;gc0a5BYj7H-ZgWrv_qraXX{om}C%P3GG;I9~ z$S$rzM!N8r4ntiNVCQ1MQNs8Y61xS4ozfyze(L)!F8UdY2L8^|Gu0W5dedb(Q5zxS zkSZ00u3-95oHvgp;LQ{b^Z%GF(ZLG6y2MXp6K}HF&+H%7ek$hkrJCl6dXw~d#0NnX z*Q>IJKYe*J`Y&KTuZsJ;T2bKUNV?yPhArPm>x+1KcxYI`(MTO<6)`WMBADeHw(GJJ z-t_DwB92~;2L3frS+CFVhqA;z)Il>Ou-l90+-LFGKk5E$9lGq7Dzc zRm6P+h8=8Qm-7#|?}}MnwORA?4%cjB#xempt2IfVX$I1^`rJvkqjg*ghyOz84GH^z3o<837U>Qm6NxL7;|oy>6OzU?Hm+BNYMaWI_!=iuEYY$ zwMAzsghPj>aTijp!cUT}iSD)PTD2yUPsz#ov=Lm{68B|wA%3&HaBhZ2VhGcpvUx}+4>m{l2tv8a9BCAm8(<*!N z_(#Arkb6?BD#}s|>jfFfmPOk?H#vKXcrFJcua=am(_ofDOGS&-$V?zsE~fY0=>k8Z z3hJPXHSi!yX9B7nduxSGtuFZC4EvZ9K#A42N?D)-Bsx204)o=j_`B~pI?AlpHz*w* z6WBathJWOn!PjI$p)=f{m%#JW;RGB10S1#BZ@hsL(FzvTGczfpb2tnmK89EbYz&zx zqd|~m%b2PNGYu)Xz^{j+Pm2No`;g6G8*nlyUmG?_DtE+#Q!#-?#)u?~r(0zH%_t)F zr8#cy3OQ~#(E+R<^Sk_WS6~UkQ6dGWuO{Q`>raE^tLy8d7n2uJ0DKO92UhAZ*kHk< z!^voTa`exW7uVMV{&k4&^Vbvo?JyceSQ`HKHGcf*>udPWWP|?>q8DG&$7|~Nr|ZD_ zb`4;>zHXpv6<8b2bQt>U&ktb`USGoi$D8$<3Sk%fTznML7{%M`>rj5j!MBIlSB$Ud zA%gNyP1KCw+hno<%njn;E+9)42I_YVxc(5{VyhbPjcburZ-^)8ewt!r-$DL4pP}#X z5YKlKykCOcRWtj%UIGf$AOi?b;SkOqE)>bgA8|!d&)f0oWPCD-XQ{fY9)B~z7@Y0+ z+li2uhrv2X(EL|vDlORa|vM*0aORyL;s~f~$pcvWVH`svr>Lkw4$N}SZ${~^x z3fPag*jyrYyD_lct2|l6_o$p&0{eIebSas|UL)uf+l%}2B8Ga@K zHUU%0?sNWqAv3i-5D>~3ZP|DYlT$!TsWsXfetc3r7uQ=k*DhJ zj#*j_vx9@Izw9t-%w2MrX67Tva+#HxJh#-V8Qwfpm@#SJYDExCN>yT(2jQ_eIwA^V zMT{0I?j5W`Lkl`Y;=2?zL2zF(6;45-Ytkw%4i7mTz7J@~ zJX1P0pt+BHStUfSNlYyhgJE-)&>~`n z15yEc;QhoIr3j(H>Pm`ezLMKjE_@+k`6hKt=#sSC$YLiw^sF~CMZGf!iLu^zCf7O$ zMw!-l3)BGmuLb7;M+L2M20v((he1^yAtkQ_zj6|P3;b6%0zA1H3Tnx)q4P;r`!*8% zL$-~gBrMXW2{@%c&7x@3YQijTY?Gjv)1c^3DduSwZJz+2d1p$5*vt%PAKW!(S(T_% z0$6~IvOF0KgRh|Ha$IV|RgpJP!sqA|@2CR>_JH}itnai3t_SF$QJxb?+qiWoJ;SV)LjN5TU0D}VWt%D0{6EqD@3CB9vN^iO`IS+lsRE?^)_ zd1&k4qnNYXwQw$p~_TZ54lhNlGl>c z`azfI?;xI`mQO-;u~(FPODX0DqLXQGxERg^hrp~)DJ&IOwpFJF9}z42h**guV!S3T zM6eD>9kEQ5dIDtJXsg%LSX$)XW?37~*bi&R6nj-b>#aa2CxU}?SyzSG$_VWrWbcL( z2?LF-H&-wEq}>>tTA;e{Y0Lok!gZ8nY80vvvq;PUObC| zP#SYx>SKPJ!>ne$JA=;kfT;aeWe~GoTV3^kHKNwART?c5JZ^}s?`x%#`p>~8);P^%faeYtnoYZ% z_X%6jjNH*rNzbHF(EO_zjSvH}NGW3>u^2xr#5oWXNA_bl)AggI z#TNDRcB`+C-gaZJ)9QZ(lN(x2>PpehUNiD&7e<=KC$tD*$8`_@<@Wh%j8BtPIWaig zy>=<0VEz7W)svL0Rl(q`v6;I@uZ*Xh<$`a|4rhVpDo+o)0|31<$*7~B6!eA#_;QGo z4wGelG;FhUq((-u=2^=iPDNY<&Qn_Zw>>zc_T$9#{Dn{utQ0QxrD6_VD({Wz7MGpTTD8MlP5bW z9MFoiLguVoC?=Ius66l0Dd0s|-+PsahhN2M>-_ua`D zTBJq}788EzyhS^QKoqpQq&tuW_MD{wfTMVX|3FD#=khiyfKJ0QQ-p9_?&=PZ+S3Qd zpclj0V`gvfKZ3*ZF!&D&8P3+K^8kpb%Iaq!il@8UyPGvXo#03cqKzrhYr+>>n0 zkI@w9v8THnZKJ6N6&_67sP~RgDnUK9w*BEyOyf3Ny0{-=(3 zcg&BNC{f#u`iDq`%*Y7HlLOnnLQWh1eS23{b^gDro6Uw2SGvgN*m1Un`yPlm2pmU8~56B_LI5t;ozodbC@uIcmk2C$eUA6 z3pXPxtDLw@m}3ZpiGVFK0ErNT0E<PNnf+4SW$2d*^RLhEa0NxspyCHK$*Qu+ ze6y&^JldR>^BO44aTGtMzPpH~TGg}sB74Yg3Sf2%4w*v+u4vyX*ObQC&_z4SgX`w! z;(@X$b?A~QR{OVj=LAGuC>(*%hJBIQT24qw?3CKuGg2<>ZZvQcgbmYw$g=U=-N>j#l zHoL(`INEEvg#`)ul+l?>X}R?meuY=l75oDOFK!Erm!&`Kr}ig-!DxnN^s-OA@Ef9p z`*iDdH(=-)R21{v(7}gOjQ86CZahOd3`F*BV4xLH+mqq#*-CD&Ti9NUbTz)6#Km|) z()9#GUFhG7!R-<~!T9fh2B`1)cu&7PI>iFy`L2G5EI`m< zj{yMh1!`v*6<+z)Gm^{m8Cahg@jHJ~OZKSV{aL-U$N(M_GHimeV$?9=ptq7-_nsC{ zgb|>KMFnzImA=DEqU@$o4SqgSqebhd&i6<4{m*DL#Lfd~3;+NQN+A9?#(IQSpa~pY z<eAZePQHTqW7N9KxJ5m_zPznliEe`Y+Ovz5dTHi|L`=HO~6a> zi$CCcc?DAtZ4LfQC??V8&!h-;Ay3MY-*h?10q%KF7eIw$1z`YaWdh_hI`RXAKDYq) zaYjCvBP4s}^;r6DbX`LXlBt3ex);#-ebHLlTpNa>0KjsBo?CcwepIb~_sAyGeRqy{ z+tL|`WyYMkpYi0=#wy4}we}DND<$4CL!|=Mwd#J2*dH6G9M)q=_LLoQ00ibZhjmU{ z%6r~LI3v3hX=||%X+_tRem0M9RyRPOC;+b}SHvwLvyJ5D2c|SK1`QhJ2;!617}T5D zRe~)uJvO!Kz9GI)yy|nP@-7`^DghdDE6ma0hisa)sB{RD2y#Jlv2=KSikE`}|9jg9 z5s!4nTw!n*pzMTl67JZ1nu9{$CLV;a533_P!BM0F+72{vIBz=ktuP(IYjBPdJ8jdig>xU|= zxl>Hs*QtSM(pO+0HLT z;?dZ6rIK8FcbbAc$f(^-r_gsm!%gLIt@pJVK9OEh#}uncz4|P(veMI|^`wX)aIe-b zUt|qJVE($SR(FeTo{UZtmX5YFNL#U4YDU-?<`K~c&lg~lwRrn7{m0FwhJXJalt|te z$sJUv-+vy~0~;pjmx01}ZLU&n&3dHJQ>j))0ivkfH3|s>CFz*W9UPc!d-i~lCHS*I z&=7FC0h~ssE=5I6q#@0QrlWDKNQG)jq0vc)%-SUm4oK8_lE@0A(@->#PrfNP%~#D7&fkboQ}lNp%ThRclz) zW@{c>BwBQ+f~3A(s&LYG2>l8W3_I=1d%X^_d1vE2lib;{;fI$gwX7C2of|vP((wNq zv=n`2*;9<#RiL1*kqfp#fmBB$7FqGg>r}FSz$y(CT~g6z@EFD79L{68Dr-Jz96-gN zlh%NTR$a_LCsjOuOtN@BM+}(5@1=Eex5mj`#tSr(^rRNJ8`w(8(AX;4=kV18#U4zO(s}>^@D_PlWxlH(0b31%0R*KZRbWKV->M$0#`V1fLOkL0D4hgFG zl>7>t2)8xXxabD^H83!%OV)h?$bGs79d-52RdluS5955Y*)Z@dV=x7UyInbITz!NE z@UOn|i7jsIH;xTv$MP1t4U_6pp5YF-O6kH9pQfqGPiq>N@0Xq=x8$(gj?5vHk)50v ziX^??<*KOBDMzngH$uzh*gH1M$t*`FGk0{Z#~D*J81WmxiRzOFc6PP`{{-W1MiUoI zTb=Of`CWBK>*=XGX-bjq$sOo9U%jyfd(sYezSMd7H#G@#Z`qo0!15hoOkRKg`rYgI z?7O{nMsuY-uy@Aa?i)xf;<=m*G3<6dA=RZG!oC>7#fNul2nPqkJJ-2WwxTgeL2vM% zRZ)htGPHAdfKf5ET`*ErBb2nt*_x}K(1!~SL($Foa=E*w-WA)?6+vFi&>Lg5ZvuYO z1>{t_n#);?92EB^m7>Ix&RBXTC>OsoY+SLw1qrarwi+lEqLWz*HXW)9W_lof4PmwIFw>M_6A%TI-7)}4q^yBE72pl z!6S#!s=#UIPP=ZDLlKpa&IUB+f0f&D@$^8Db71fLqG8K_R0^S8OldmMMiB@bF76+yy8T0)-}Yi#Ul_V&QT`0H z2=BUcY+y@(v_9sBDVXwR)5IJMB%Y;Sdc;;O zutAXU%)hTPRF1^zz1Mzg38g5e@9tuGT~~DwqX!8iGnsqEi{}jFHP-z*jHEP1VjOXq z$M{LLUHZT4MypX+nGnPjW;SipG=!T)D}HOLJF9R{5e1--tDB-9m!v{yF^4| zD4@Uywi%=u90Wa{fwVHldP!CfR_BqOd5(Ne+K9~DnB!3qDTgTtSC;#I?$<}gk6cNzi)o_Kl)93T0q_CQeE_XVBiJ9|4+wHtKX*}ub{_o*HD z1HDh25ZE;aJ4E9hCLoTQ-=DxtdWus16uGid>~HxbR#7C3G|}ePv0{+|AHc4UR?Jj5 z57ITdyJmI%j(nbd=a-qbQ#yxY;q!-r{N2RwWIg57Zk&PK!zgJchk^^hVV{&S9Vl)D zkQv7QxT;=d&4MC;npk2YYkI{)`it^57cSg}Y+2QT=tK5H}jzS-=1 z-F-Najxfc=FFSm8WI{G*b2>Ho8D{@*AED3RK0SqQX<*HQiVT3YowN$oK!LB(oj)`q zCeWZ5=5txnc}-(%h+2w>pCl--xF7;O0<) z47eZOBe4dw--3pyskv~G6>GtX3u2_ClIz?~RO&rUW!K=yC17>tW1oU0pMug03@w`KK?5XRtPcKkW}qC(sqga{2F9q!)gJ+X zu5_MC-4Ll1{t`7|fS@{h)Tw;PDJr*!m!5nR!wEy#FTRbLpeDbMWj5U8A4N#*&oZuh z@=rTaDTPm8KgS-QD)=X19$+ zus1WdGFsp{uR@HRggJ2W^!rdQA4kPNz;uo~0Wb(?76=B|)e2ZB=m6a<(J>J|07K^Y zs$iGCZA?|Xw&vrL$)K%%#P4(xMTcf|QS$zStC?TkH^>`~kVm0_}C1r_a>VJX446FsyJYt%{g}COAkJ>sZu$Qzn%N z*P78WSv15Me^=eDdQzRS;XbaiFyKe34>f%g^&LMBhO>@iO_ri-+X0CnqXbA1&RzMp zD&?ots+=dLRA&Y;xc8@WLSf6p22lAT@Wf$I0;2)Q6S%62pKgav=8Cu=K{pXv^@!(!4!2DuT)lR zVZvA2P*YR?a;OzLk{m;=2B-{s2}$LJST~A8|75=$aKhCrURF&eD9m zLN}7dfU|{wV1rg;Gh0hUw0wo8UwAd5s?VhJ74`V3Sk7lzJ(m&E9F|Q*n8eru!v;o- z`6y8A9F@sRgrB<|)yXWrfj*O&STrg*lRg#A?m#uur$jl4rxwz6Dru^X(J_d1d&AcY zB)-*jd>#fkGbP7~SZZCd$m+^eK$%%}4aQnwogENT=3wc_gia5(=%_N)cjnl1(v3xy z(4R}aYc7&=l`>70y3B$$ZIX);m?}j|ZXvgz`>T>?RIYez;6juz8jzJRN63IrVWUTP zrQ(2#1o4_#^QUBi)|3U%Bv*0}2It_SNq<|zfWkZ1z%GsYh;SG7Kv3kHJ-XuAn-TTd zyUF*&X!7}9TkR?C1&Y;&U&HrVhK4uL>t4|i-O2Vip&J>b!I~R&kQ@y5e#H2Kd&}xm zUe93AdlY+jZ%MN09;`V?wfUYDdMNY;D(AnBB#+?*x)>!uU3Hh#6gpBavyt);@zSp~ zVSYyP*)}rl2-w{X5h{F|HO=HGq&1ONZEl0Hrtpm&70WZll7lcR!VeQ=at~5A|A?`j zgqw>21b262?@9KVd8`J42ExOpAAwbKU)mEoC-^#JQ0`#gjGRr*SaQuW=}{O0aV}fG z@G)GwD2fyIP{jQ#VG&Am5xnhEWZ&Mey}7$g?BGkH{g!heQkopP?h1o<*%I$wVYew} zG5?H79~ulY@-^MUejOMY01*2OG~@6oZ3oTxjgz|i2{be2W`N&9g4RVhz4WmAhV>3Y zY2n$g=nC=8>djII=~HW`CuR=QJa3fZXfg4I% zvItK6YDv5slXCkaRO|F9d}4a9oJ8cKaQxGCGdUbZ*I_umZmusUFQV({SlD3*sX?77 z@*XkXhrl<36`U${EDKN=D|=f4_%BU8EQyDoSolHY{K*Vpm! zT^t+$xbL%J5XnHJv0;;`xdqZX(CMMf4G@f}nTn=VnNm8!y`ko%Y6!81(1oOx?F`y5 zj9g2DHn)1(bV(_MMWb`?8Zj_50L07@2ry?8FySD=w_lwGXeG>kMJ)zsM?2eL^Qpka z7SatJy)DIItzV|WNkF0Lf`1O^L-0HFd5qR5T>!I`;NP!MY===cc+xwMNJZ; zvrtUAAyxccpenpy-QUo)mQ{G`fl}F<0DvlMrAF$zL2}9vvPm^Y8Vp{bU4j_<(KlFD zex#BJG4=fEkXsb8zvuis)O_}q=e-BDe@`Tp0ODwz6t)QXozPIJ7}QJ1HDJ?gxW zfx*$rObVJ(3+2(7;?O!)F3swJ7<{24q060O#sTR$v&pUr`*YGs3QfHKK82StLzn9i zx1I3hs9kBs&VevVL6A%vZCx*N0-2XOX)R-n2jr50j0^d)vi!l<{4)TAFsC998p_=g z#i5n=kgau8cBI^!9I53PW>WcAjsn=P0^c!ZCk*P62$l!i?OSnWIOBai(0qvBg2!f5 zR5tD%?YQw|dlKmaSBmd$i{*kJzTBA=7!k(dn*RZeEr z@l~a^J4FkL%?SIuvW=Q#C7%pSBsP+!D04Ld7-^$*lLI*O3q8umE?87jgwRTnu%n#XbZYPR)`{2L#GNr95P}f-N+=?rpW1ZZ**(d!5pv}&Eq^8 z?x-nk3@F*&bZS&gL|Rd!q1c#9-kquqp;VR-IHWBJ3(MtBW$2M;Nwqs@y94Y#Pb|Yw z&LKq6zO*G?WQ{>SLc>_j%n89s3UC+3bMl+mlh5X;e50||q=piobBo}?sdm2%{4X6; zWV%Axm^R65NW8P|pG{C96JBDpcaapxf@;5V&W6$d@K~?qmh~Flv%2YlYL#8;tYRTl z$)6ZQ&`<}YG9`zdWQuv8MwmoO7HFBOH%FYrb)ihW0Jm^`=6YEHYNRLf-5Xqe)lJ|Z7~ga3T162KUY6o%Z`;puMk zj);vrm^y8D*JozBRasuhZH<-$fsAo+z24#t<(bd)L1x(Y@rPK%7FMMrJk{zMrYh@b)tMI9<-TK^t>_J7lof8}UZE_!oLD)jTO0Q(BA*9m|GnSd^)U zncDkgn4Rf@+Q?%`CLXjdAd>wK4xc4z=Cx+(qFOFF>I3CTsmW95ZJXbR%P7I)8$+-{ zUD6%BEnA?}rza6KgVvvDVX?Cz%&5|!a$~=d!nRDBEElYaMh%B1)D}^*7^5clwmhVX zR5+1vkydcLuGFZ}n=RFOgJw~@LUjj!!+_d}nn}eosmN@l8CMfHidS;fP?4s$aO-ce zWZL>r7S@L4Zpua!Ni&q3!g1c^J*iu*T^up8cM!(9=Xw%pPKK4j26F14Q$Z~Oqf7zw z7)q?jo{JTkz=~{wjxr`9`DK`QM?WridpHNeY0I3^)UY-@gb>m^ls zP5LFe1gR~GEXNsuszFi3ypL=sc@0B5pwbGz zzw1Dh9j0#pzH6nw+i3bN9X&%suW>?TuMvsH|I~d!j^I+@*RP3?vLJ(DkVNCe0UFO9 zj?vs|hGguttvDaO109-TdkQ-(*gL^!8Ayq{eEB9W4J!ORmYJo| zGZKje2J5dy@cVhv#O$@3K-tF!jL}PVgDq;PkhS(`eMsHdS*}(y4x|sn=J-C1>5!6u z;?v0R_yP3g5JkfLn~pn~m&(!enX^Nu62=3}e<|8RAJ78ET|Io+uyvFgxlGNor$Xbe z9@Ov~J^bC{RuDLeQPYJ3Z@TOII!*>`5oN_!vdb7> zVne}U71Hln2zk!UvCEm=Sm$$Ju^%5CQO7Q5e(I4H98Hs_$S&5}uH9Si zNnX@Dik`wg&bm7e>$``4^FdU9cJxY}6^)7h*|ItKfHcF z{qE!W#p|RT)GG=K7m8oXO&n>pBcLM%#f&YgRg)B4Wi0+`rQ0@^uSoj` zr=Yey;vrmo|Kakr8Usuy#V$%btErpKMrjF^8P-MPXHQ$haX#m8+`!O5n@6XlUL`x; z1~yI8V2DQySS)^(!i0;hgfS|PHvJWo9O<6}hC7$!euj4Mbu9WP+pAPwojhda{KvAG z0Wp8w%(4ey{mO_Y+d+i;)v_&sR$M;7Ye1I0fD7tA;2h1G_N`3vJq#%Gk~DhZnaaS3 zm!cBOjB0+sOyAZZBQ@AIC0^`Q|F_qFe)IAC-Rnzg0tTY$;KiUZC809zfn9`L zUl>J+X99mb|F~oLZ~yf6JrBS8@$%}=-@m4hTd9>HL}yn?xmPQX7a`2GBF%C{s%D3{ zRIv{9nUj@I7io4=8niMTpB(*jc62*gpT_^Rjjo&HyCU{o?dazg6qdhtr zMmd@t9_C^|!Syvfpb*I@h>=6Q(JF&L1gQ)H-gjc3Z8ic*+Bi!At-&OE;$EnEhujQe zMuVD8Hv&)NM&QxPM8SHi@qtL)D!m+h9I3G+!jB!rD~^DLmxhfVY!p+LNnz;9HkW(k z5f)sR$~tVX=4?^|6;a`OXrSg{uqT3sXj;qlV<<;t!m8=gL@bM?+2qTDj1LPaV=~^o zsjbn2?lP;IG4mZqpASTD*DESFK zT_0UH+sR=xIy!=<^>*@Nl#G8`Z=ucz)9enf%gN@eh^i|XKdbh7{1ZNJjaEjw8D5a% ze<301x_NOOj>bPlQ13b#!DFYA1bT7|9VOfk_5$yL()~mgJC&^SB{}}-U&wy`g?fD) z+ouFTw>dn%+s0~-B*D>95F1Ba68y`3J}9!&}RE~l5Tzkhvk_2DDt&4Dq*d#KbM zW6V)Tg~=GP^}kXeZj*Sg%|Q;y(CzW<`-|^?eD!*Iesu+Pi*mMH%`rE4C72}dy;~>K zcFywY zNPqRMiWOEISv*}Fqh`Rhd=bX+`aKbHzw&wEy8oTnaaRgOo=6wNKFz%9W zO~Hdw7n0?fs)u1|(AFo~QVhb-2#DEYMv<03b?~sF0M>P6jmmFquB`Srk5^4l_fA+- ze0^i5&SQfOhVz7rzB|9V_yffs3q|I1D)kPDO<14i{no}t}a#yM1nOV36KGkO2D zjoA#WX?8~ie$ z3U@$0-7LiRL21yu}$AE zV2wiJ5W14=qo?P=!K^Bq3WKeq$8m6hPTAxpj2Vh}9ry4m3~z7msdtKVF%QsSoHoZ) z$#_AarXxD)^-c$vp>9H?Yyk1lxJkt*#pe&jfP&dyR1c3~ZD)Hp7nkM(KPQCwzAaaF zX`QJ2gyzeoLsXJyMw^P)l~`g=iaT8xXNWoz_JZCGu-AoU*Vj zlNSSV){qEo#DrrD&j7T`ME_jC;X>uq0K!C<33wpW-Vx#u#rtka>J;)CsZdFuX%Yuu z1}cnoEn`IsORQEP8{mrgHMptfkH!$K28|+COmCUe`E@*ySkVOYUx!9u2OKf^;ao zTmsd-oK0)a#tDPgp$-_1-N1D_EDCe9#th52k-TR#781w|5*gH$}PlEv_lt3Hi_ zhW^qfPw3&1eiH?xc94Gp&b33>-MltFvQGXPZqgZ}T?*3Tyz}$wHb`M?M>kl3E*g-; zzeD~Kj@KWuIxl+Tdq-taW)4EXgTZsbJ-47!REer5KZMY4qX zK7$VAd(2UcdLvY1oL^qP{nz)bv)PP?*Ufrz-MomxqoeWlr=!V>Q3Q_(D_u~PvYxz% zHtUeoHy|+K+fj=3wv&ieK|+N^B8zDE`ri*DQ<)Q@Hs`ve00pRwA(hI-hxeC1g17^9 zMCXUtcQ{VsVImBN*|DU-xZEoAx5{AD&ze2)HJb(#Oq-#rRz%!5xy&9Stz~scMknLOQl-@L(Quy85k)7BC-V-~$@vF319pU} zJU10yjjXT5J)t3>BIVkM)fh4hAGBdU%G7-|C8&2x(Qw|XjVb(`s#s*wjyA^Das&&H zU&3WRqf5~m`6Vh{h2*-n<=FVtndxO57PA7mvjkobgwBF82k=6=axYUtgTVus%>$eW z;DPxONSZ_!66POr?@WLqbx&r9wAb7id!$Y6(C&ub@(MayS8a=FTE(qyC|)8%m14?U zDADC!g5Wm3fa`6eHFXz{H{_;Q%r6!IsglwBWkc=m>HNp0Q4P3V{OH+f%`iIZ?t;VX;SO{JwunnU zLlB3*QZsgTMmWvL2J(<4KGX)7Swu#Q??9*rt25@m=0`e$7`e<29fx z3aMijR|X8L2>x|c!9vI?XJl8QL!qqEo!FWoMGcXQTE&HkPK(}o>rvBI8<<{$zj16d z^p7nd#WkAwoEK$=z*MEe8B`waVo>ertc2!xFJfy6Y3n7Z3#42QnnA(n8GhG;22&2^ z?yi_)?iHUR=w>z0>}N>d9#5v4p59{az8Msb6J5Bb!rX;uI-@H4CWc5KbN(TinoMn= zD!(oeWQ^))qfaSLJZTmC09?Px!5tT_sXRQxG zx-;-I=G@>}G&_7FVX9Rbi?R1SDb5hb;Ud(-77)+l%^-L}NOT{+{_(e$&(B^w{q?!f zCJ$MYfR^p$NWTT#2V8#DhI6utSw!?Oq6grZiWGQUIG!gV@KMYu4Wba(s<-peVD@&g zLzO&~rf=tqXn=9ivh-vQeAPeQU!1_D#RxyZ2oMQ6+63_xv_*x;nZ6CFEoAXR zPflWtWfsKOX~2u~|G{E>N`X*`-$OG&e3^0psUUtyNoHT=m(M?L!r<>=FxcSoMe*x2 z;OMAme0xTK62#9_WV)e0-rhSb#AW;=3>7DgwVL}+kW0T0oVgakx}4>6rc>|0RZ1&{ ztE>?p`QS{N{^ySR^ZDQ2Jb&>FWA}Tq!5RqDCb-Ee-=vyeYdcoF`+Lo8)nr|mZs{L zX3=zyWL8A^Ocf_V##-%}PT z{fJrM;<}4JQKaSd{U`BmT+Um8p%!Vbflo*v2?9Dz6{p?SunZL$HdxK1*rVb9dvwR7@K z8K*04^%4+>c9uy5b3`SIX)K-#IVK;C+ z&nI>oQquCizACQMz5pY#{3w_6QJ3ioU1x91h*|L}->^$*liWa0>f_e3oU~fdl`L9t z!#JijHMo>iYqFSKlOM&;WziPdnj-xG2Goh=q9h=h>#%`|4U6(BuZtF;MR!%(nzNd- zwJU-aO~&EMz1bs!2wb6N5aG;*4fBU=Un{>z;0ql@gT`7=0y~~5kO!EsOhz7!M9hH% z6=WI4xvRC}FVo{}v^L}#g-6@E*3tYpDqxwi>am$xj>P#$??r^sQ%V9cT{y27LPbgd z@N-E)uaRTW-4`ekiK{r{9B=pTEf2}{Ew&O3o?%>J84*Vvuo#>;HC$cH6r8Cnx>J^N ztufjC7ESp@4AWBU1cpOgs*AKn?qHK%02P5`DUcDXd-qmGoVMxpEZjJU?ixSwWHj5v z7bx@#i+IDN@2B`Z&>w)CULxa%3yK*ijyBQz^kV*L5v#~b?_pLzt`rP|u=mH;yB*bq zzu`+_ye>rw&B58=(;!G-?wV10iQ=FYoB(LY9DTZ>oHik>0 z231m~Agm8b-$Oat`4{GCkBs^mODIjhiVLLzlIefY83k?i@ot0qc%^Y^q-AS8&`7HJ z!i2I4AajvcLaY|A<0UOCnM)ML#G@sK^{p`i$U2>8F{~F&0r$P~gS23Q(#vw2iTJdKuQ%@dw)GN>DT=B{N1!h6ox=i9~>ik#hzHP%==%0M=A4 z{1caHt{}KVfR>MI2H+(^V-_|5eA7IgFXK(TU8teQSK508THQz|Cgu4+p=>-_jH`4> zhI3jA1zl5-)^{PHKZU#D@^@4-2@sBUp}>@Qcl`4SQ1QXp@GO9H259g)y*azi zGfbHx4Oht82uY}91uPZ1Vv=Ox%tx>q0UCTz0~g_Paj*5?b>3!y9F+adhC;HuKp^vq8G~4X|C=N*4d2P=o?Mw ze~}&|@1)L2qpW7ra^$sH4aImPjrhd0P}kuz&rx5Vmq{fmta8>1+QY*+@B0oCg9Nu<}3zZ z=J~4WyafUl7gbuLhmAf2GkZm)*<4~oN7pba%_z+^pD!o|ma)j)#O@eloULSqUn5i# zR-krtUg;ZIyS|aN@{Mc<4EKf|GD^I=rScR^Stn-CQ|^MAx3;3>bYIrn-ENH}ZLu1) z)i0O~k8_+$2rtm1!5o3IqjjKFvdqg{&Ec1pse2n!1ZaU;L+fS4u{{k)U6L~lQQ6CA zZ+hW!FHcu153S(AU^xZChu^FlpE=J!j3vU>CRt~HOZa&zf;>R9%K;Rp0{;w z3B=g1>9{rHmd3Vi28j+aY~34n86iX3=f6Dv6+?Nv`0d$qO)@&>ha~t$2lU2M9@qX9 z3TPgqjZ9H~)HO0i)o>?&S!w1k>zJ2{!Nlcf45p-DmXueANW)SZ=%6J3R}qgx2KflT zAT=8W6{a{)WCUeIU1j@U{mL{2Zmf^c7E|j13z;GmW5keo71|vo$K$vWn}0k;78nCb zM;(QLMu~S8p$P$(jBuHsJUB%G(d6;t{F?`-Q;J_6;=jAyINH_wjx{XW{tLG!rEC0b z0;|m47njJg;Z;*Vy<|}_CE0mX7b~*nHwZ4*IdhdSt6H8bU(gA@IiUq$A1lPx?C)Q@ z7C9{)Ln-luP4+Q%M)P%a(~M;AES6P@@-!O^0Ihwv%1i9vw;J`KRHuzG-<)cuw#56= zv#a#FstLBStoSOTQB%Yplz)++2a~H{e>!@-EB-&iR8Q4)9`<>r8`cD9wZ@XH@2%-)uUrBcFY@{3gd!f7?-`)9sT zSm=txJJFIqxl(6sxsT1Q^XOZQk!Z!fSvobsQr+w=|FX^;30u?t84|WK7HTu%>`}CC zI|6YdYH{e^Gx`_)P;OT}1`XE8@!GJX?izlamY62%2oq|c2}wqkMboHB!+L%S_@Tz2 z;mR;tin@iJNjtCSlZ8?&HDt~*R%mZeNt6uc3cqq((@+uLB}Y%Nc+8YFhdRx?tMoU0^A?@y@mg*N_E| zC9C7qAP_90sO$j(Mgt3LyQ&%J8gd*@k zw%_9<*;m+&%|sWkjEgnX%AesRN+@DZN0uK*SLIvKZxBpv3@rHfF7@EM0CnCnAN2e0 zOpY0#VrPkAN+VQ7fc4!LvYA@{rd0QEPa%zf&X>~5gEhuhiGmKtSp+z{hSfLD2ZCNP zyO6g!;hi^?8ZpX?``(!sf5GWQP;pXV@;(mZb<8;%OA71L*No7XMJy0d2Z5qyL8gwUW zMIDH&Y;Y{4J67p4o8Ik8$H;I>QWy&uH-@-~j3G$)h!K7fb9$(xk~9sWKnZacA&F-y z_6rOelVoU+QkxcrC!~?sk=8-kPo2bPKzuIWA?@uqS&>FhtsVNzXc@!2vPmKm$E4qu z7=sNJpP*k{m(KS)wzSTY19g63uR7VD^em#h!O)z1)?r_;RGV=`36Bqvq-zZ-#YJjy zLR75B%k+4C?;bJ%nSqkYzK_tdb_tQeOGuE2kYI>UVQ1HAhPUG&K>g1s7{Ej`&$4+t ztN=Nzce|zZH>sveQsg>fe3WPUz>-L8pOt^@G4XHX`hb4{ttSrWDsBBIz+G4vIZzG~ zSdcpSj8B{JM)GRORm^N$vV0=2y1OHw@%pFKfclPW9TzYZ9e4&=qaB12 zrmF_xH9$z-m1>p|yB_tU8VaEQzlEI)^M275D zEdxb)jO%%2hqM$7&Y2av%#ddxiK-)p^j7onk{)Mvt%G+WYrgszTi#6nX}+Y)2=;6` zc9c$QCiprp%Ne=DFC6gH zj3er;jcF5SWMXdE<&(8JItl^$2;hz^02O4WjqVkIELzP7SiO3@C2n&$zgk4oE8y7h zS6WHJC7NlMsWM(i$(nqSs;RM_OTo6pifu9d{(2Wj5}W9gYsux!`Jl(DS7=WT$#BwU zg)zQ1N-Td?I#Yi$R|oy4ro}N|qu6uP*E9Oy_h>1q$en06qEsELo2!B~G;~ima(3r% zt`zI&7(J%ehJMa|vLeH*J-B>kj{rTM z&1Xx`mXTel`8rB60xCm!ie81BGese8t{Nq{JbGw&A7B1~3*PD)bvH(s zuZr_iyFGYEXJ%t;6CeC*6AM7n_r*)Et!nR=u24poPb-rE6C^xrS8J|s!8jq8K({#oy!YeKB0fW zRQm-;nb{K#YW4JQnE#9NNrV*E7BEo$K0lOKQa0R8+*|AXhQ$+<&<%$umgD5TF(|IapChp0wZvsAu_uqhb%zE1j=)@sHFm$AO&8qVuV(n5@uiIPD4a~uZT zijFsmBDR?|&ex=d1Y}I(B`P0hRm;I1PXq=%c5`0hh0BY>k-9`QeQ(2uvJhGemK(XI zoRvfps-s|imS1Gsb$gr3l@b26O}k)g>PHVpkCh5eLG>o{MSNz6LI^J!Co#D}GDr23 zAVt?I8ar{cwjb(j6Dm6m`9sjTBEA3w4um7ldw`+=+Ra;=PG_l}^>DyGp>y zXHD;w(3MZQEn*fck1>?lgihXfdq2j)zBItKv0gm@R)sPFtv-}y zJys)HduN*rianmSx1$5XfT%+?a3H~=t4L0Tvo4Gc2CI^%ShB5;F)dras0TsCIKm?wwNvO+Y{hBdZQj+3=tZhaCtKtGL@8 zw9Qp`pyzXpJHr)>yT)uldXLZxl8O6rq{O_|)7%PD#y$_fVW?Ena-eYpY>%u`z#y77 zD@m3_5eu}P4?a#?K{xCTfu47m9h+bkLD?EQUO^sQQyxGxrFoty@soAFfyC=lm@16o z$gfEZONXo~Qn|-|(=Cd6UL$j1VVuszo~PFEMv@(p#>z3ZVNr3BjB=&I4@A>!=0{n1 zrzkmyrfbVm$g28V2eY9$0aBq9dB_=dA2#&OWNpj@&Q7Kz{D%93p}dFLLa)no34G*i zX$L$_maw8X)H?ihB$%F~8uu(uhph8&r@TOzYU{lB(7X0-6Ys6oEcb3Us`e_UX2&c2 zj>~-q`ZiZSlz+xy6vxUQZ?_G~#eNrlV`?rp+Q3US7RAUS9pRnM@5p6JWRr3&br*`m zK`nEK#i>1e+zOtij(P}*TJJ;mRP`ZivYABN>f3L4vbB~mt-KY=+ZAZ#(~cXpe82(>6nA&3wR&};iR4^o!PUZ5yM^0Od_I=lG=8glVJfn-T5U? zikooOjM4{(?W|Q=kW6PH1NaDC$eH0=R_kepH)e2p(4i}=Evg1EFptMa8jHy;XM~A`c9YHi%4jh^!QL= zYTC>?!Ew)s#t*#~!wT+5jYv#6K2f}$v60OiBX^5XBPhiuL)($L!Dx+SK8IFXRr8JI z6J)=_8`oy^I}5W?c?Lv689&{rwqfHODi zbP0Up<+B`}(U*Dcl#4|ZMH1+kUW{EQOVN2p{-C!3SOFO;RhFGYn`BCbHp!Z(%C5V> zl$R^F;&oO7##n1udX-<~bq+IW!pNy4xmy>&#Op4Mi5Jesxm|bPwDqS~xdb++btlrp z8rKu}aV6a0f?s5DXjCC=*5R!0EG~5%&r}firbl#I^h;YSkGFrO{on*F0Y>W!01)03 zO%gC(9J0J87FJ~5(LkeD5@ps>4~}&2ShLp!8d=Mbo&vy3%ZdOl=OJfC zQgIXvTMHxqPfwfZw8XMM@4P8cdXF$&3&Myp`iprvllyZQT{R=Ag`*sexow-mWETTQ zWQZ70a-iKS7zof4;-J?n8iTJ2ASufdPz4@rqqRM9$~~T`Y?gZFCp)!-)uB=Zo8^gI z)4Q(bbUSj=(oMc()vr63vGCK_@kf zj4JR0ZQ3nQQ#Ks6YjDIqgP2#tHTY}#R2w$Mxr~Et3mr{9Nd``l$)jyXqm6TmgXnZh z@BNI3Zc)BzRb7jC^m8X&)?|eGh2rAV%dEZn%SIdvvk190tk#jNnDREWTztSJV`@^A zswoGGWJ^x5tbS%#zx`Ghm-5&f#cnlE6>M#43JRB+?WCUS)D{()c^xRW>(qb(^z$AW zEs*b;4P2=d-O_Ikc7_c6Gbt$RG5L^!G(jxMM|OddA3H)flze$suP2M1^fcm%QtE5U zcIE9mFBem-J2_T*6twE_ql<|27;bcvH_!jZp-pD_j6UA*X?dfO>e*RpX+~pPPZ|Um zqsT1jYbL2#u8LUO>g-w3z+gX7M{HKP;*!{TPJ^;4bL!A8_caz_gonP>NOMGxE*N@@ zA!`bM-O~zC$;QM3@_7sMH1N+~MYnU$jhQ}WCHNz6(nv#YhUBi|%R}KG%a38uX$7;I zMv|bAgH-4gVo9J-1C7aFW9+3%Lfq`r%koc33^?wMh4%fpFWyi88wznS3jYlC%b8k_v zEw||1Xv={rMSK7-e8}pRZWTS3Zln>M^%aM<#Z74#$<}>9w941OwH%@7cp+pVh z4tsa`u)mznA?6!-8R@27Y}_k?aA9=ncB*qQYO2X#Bj)WOU!=9}*@vfZn-wRRY8(Pg z&C+aA(vCb?dxyOE=|GT|mO?y9&_r2g&f$HXvb0kx>e%m=I(S-54ww-!?Z5*FUGUHS=Pmd^x>GSPgGiAa9izS zgVDUQNW^15PE*SD=qyWEV+^akhjO+c0I3;gXW^`LoJl;@pf_JNm$&M_s3dF|0(1O~ z^qeS{C`Z1bG1tO20mQe&jP9+AjuOusC&OgC$qq-m5*Nxx$`Am{0*1eZg#XeX=u@oYk?C0-#IBRo199^hR|nEa&*H+A$GhG5kEW znEF`jq>PxB7(P%2Kf5Qa?rHEjY@WssflZo3n9A~H@C$elW$r-XXY1O zpore5h|_YA1MXmJX}=V39Ez)_N(4jI zE3c)@VPxd67b0lItn7<9ngE4I8q`h{KeX3ShVjPn^cra6Idgcu&UY#>HpT%ZSI=^h zw(}mkwp^(AUF3}=MKnTG4NF5y2lP%S61bHXBA-&U(KPRZkq9dz@i%L=lr(aR5gC=> zhQb@?sTmGfdsecF5;bJ4=CGxTQWrT|%5y0POy(Y`@1jRjsTZ8JjHcO&jJ8a1q;S># znrH8T@KzOmRPR%tAi?||eOcvNGZ0XOQFJOyg|>ifQB__HQ48%7pi4YP-Cj+MF%vn1zEy(@mWOXe0adf6 zJCuAP-6i1j4M$kgk9f*&8R;diwY}2Pb3rUOcjR-u5j5;Ocxxw5DUC{JomvMbQNLlV zRJ*XwJ;CUn*2@`X?-{qmp)de7`IbVuI=9IXJC)?sO*AagCcq~zi zbuKgcIZyA&SfzJT0YT?CViA%ore2fvezEu74KSJ1!_<2(CqBo!ooP*}n<6(rPY)(! zq&^brKwlOuWi|wJP1uL8Lk-mV2I#=M&;pjl5}k${Je3J;JX|{RnXQ;OfN2t7%>a0L zgo>vx6b_6Usn;-~%q?uqPE@?v{^ zjt;qG`jD>>4X`r-wn; znB0-SNM9lN_NS6mtXl73(0sX1Zw~|qUjjhfz_}t@u|^B$(LCxWK*z803&1N^Y8G^A zBrWACQx(aLpv^|`26FuDdGXi(Z_dm`PCgm@uO!>di*-23ADraURNcm_9cVQ1v*KbH z&vf2P6)v{L5v=;EV32C+5(k^Y1&fA$2(qKH`oKObB=%8AsXH!neP}$7b-A6lN$cAU zEEg!L;Qws%rZu`^j>|2zx0c?jNYAwFp&!q3Yu;uUZFVLfD+!K$Go6I_(6f5VR7$V< zuPn!ffrRe6`xr!gVqO=6)UD&)BWZ_tD=69&MHjn?_b4_NVmeVGc1t{|xO&0peh>#E z%m#53(5c!3w78DA#SCJifNrQ>-+|ndv>L-59PZIrG_?9C&HjX$;BG`oldSX=HWf6Jqa__F)yz ziC3cH!#hisv`1=jX)~Zpy~v#*x&>(M1tegYv$5q!zlnTv=@z*SnD0Jg5=J^vI3~>1 zf2)wZ&|~m1)91=lj-r8Y4jj0Q_L0W%Lp! zm|y$s&Y&AdON30g#o+sZgL3-`WC`^D%!@ZQ%EYHwSC{6wkb)BS>LFV zZli?Meydg5N$bcc@2NYWj;SNX#c$qJNVWdF`bdEkQa`0ToJ?B`?bi;6w#GwMoVSZ9 zx*brC%qz-~3E2LzaSP3iZ-Cv_)*Wa@#RPDa9CzDzk{XTZloDsF>O*;1XRF-XQWWQN z^@I{#r(ur%ZpMr>iRiec40f6UlTrM}S_ApY<(xzR+8NRK?!-LH$TbdED=7JkqR#pH zVcVU+(xI6gUfcn$#N(9a+(p{Di$NSC7|dEB>q1v&03yP$C?PaWh3U$;L%2_tP$@AT zdI(2*?QX!rFYBa`9cMn`N1tc1QI}iB9YLArUY!k|422WG!)fOt)Xi`;tC3hgQ1oxX z5au0a1{;OQWK_n%s29^}hCyE$7Skd=u3R9mA6qb9`9L#kjIk7$LJCL;>%*D%e4!0T zV!knYW&;noVOjs_&z_|9G=tM`^7t4hganMLuZ#lx0RvPQOGJbI$O1s*I-+8UHV=r5 z9YB@&0Z@eN2$5wzMkfJEM`~P&oQ+aaTrFZmV`<|GiskntLv_EVLeIC8KB;aK4JQ~A z6>4G}Vm=TZY>XaJv96~@yKuxZiCM7Cj6qu5WqRo`JW}R~%qm=^GFYamGX7a=Hq^hd zOFpDmd`QV(P>kWGb6VHw`oL+uGEQslp4N5ee75F?;(VH)#rgq5X0YGMHXR!h{Z!^vK%_zTi7 z6lnw0XxxV=3QEb~99vD8Bwvt-^v2CR>YUHo5h-?|QY5tz7Q1HtQqr$<+UZV9v@if# zSAR&^P00bk6zcU#lk`S$bmZgKM(-xPFg33XXMFx7`Yn2vSmH>s-HA}v1UEegSFe?& z1}X#{Ipm>u&i1ftmpa0Q!NvMF3c3eJjzX)Kky@6{ZuG8CM<6_HRcH$&tz?X9_oy)c z2}7Sm>P#AA^jeU4z8=Rn*4!{JtrWPnq$DOA9PgS*V)sUWpmb4MD(fHt69JTtY*uM; zp~tY)^E%kOxmMK%1AxuKvX4aQ9}C)Bxt|4MVgXaU7}(l~?4b7ybKms<&tL*~A7&>z zc7TXdJxNd=FA|Z>_MjABWfblT^D&=-^51XLB68X)EWv*4yt1IVWN2bn~ za#sy|VAX>f57r#CLii-U7W;trY-y~Yw)*c+h3TF_&%lug7~S0F2_zDjL%dAZJey5EaD7phxFNA6K<$WEikqnVd4J9_zTxh~3gEY1#8 zEdX92_wTPHMNHn8IP*Y;1jS{ZS;LUREN56Us*Ehw5=&Wv>Y0PO8odgM)0P<`+-yzw z3Yv9s^dbm&AriW)Gq%Bt0`Oj#F)O@$-e@^88h`Lfo4GvF94e4W+rex?jr zjdT>nHFT-Qk3H6YpN*Q0Fb&Zw4!E%6~`U+DkNU9O0 z4KJ7e(6uIb3nazFSQs608L%NDJV5PPCndJ`R|T8Zp`CQh-#;f7xsDoeYantbFrXd# zz=T1)y6%M3v3pbJIi{~94*kb!^NE&<{rnZ=N4EOapdr65tq2#*;}eb<^5n7js{=;B z8ob^VCE#hfqIOWsY>5F|`*^lGzd%0I%&GxM)8ORJ_(m*X z&k6~@XFxXf%iGSREj?a2SpgHHQ=a>A#T?gd7Vs!B-$e{h*bmZX_`DF=$=PVxo{pCW zz=QgqeQL##c4MOy=VUXsa=1p*f0MMeja2kw8C+F3Nye2TIN_6Hpu|7Hpo;;Qq3Jwgm z@Fc-30XHHDVp5>+D<7W2ef(~^shWZ$yLG;%;KtJr#R}-d)9*JQr&oD#dDZgo;m{u2 zQo`r37Fch%+Sc?VnLPUT`|GCjN&az@l`HzPh9xrUKX~xKQ~v_!zv1%Ja-Hj{j~+ZY z^;DHGuPZ(rkFT5kKZy$JG~Mv@Cgbrpa(eW81&D`5-0QaPekQi`X80jLe^<1_O!{6V z&N}2ra21B1u~^X&?grZEm6#->&8J_n?ft*X3B1ccU7%-2bL4h%(^hJlDhPJM@4^S) zj#v35Amx8O+(7?_BROsWMc57nf7y9ct>KVOdp4-rWXq!cl#Hhzu3#oG{S4U7vcjCp z)AI`Ld|)ZoRh{@3X^qi>>CI(TU9J)SxB2kV7?oQi8q08Ub89=I;@#Riy=!}?zV_;T zWjFWWuFXC0HTNlBud5Gsix2PG;zM7Hmq0d@vOzu{N6zkcj?1vj&^xSvgS{>355vc_ zTT`86->^KWA@a1*7T17whY~+0%k6ow9G>UD7eF(P9>(K%bQ({5Ujm46voLdX4ep-K z-l_bNDSZCW?=WO}bS6F9q`?2q+ZD@mZ~+YQuqcPsww->_SBHmm`q@J|{h}eA-hD_9 zK6^+HzGz4f?mnc4pFO09Uo<4^E8kVp{qkmVI(qa?|9vuf@QAL3(?gX`zvH{(!FLDS zdN}5`9*qxFdi0Rn`u6a+zWt8d`tDGr?pK{UelR!UAJt>u zTu=LY9`7fQ%qM#skF35PP0X4`&tuPAzkZK>bA8a?^F!;&?&~{i9N&HW8FT&mJ@(D@ zVSmrxTB~gL)eA$u*?omRM$4i`vSqn0HbBvQ9%K2)rR(44^#xF-3A5EUDPNRVd0n&) z(~u-?fk9zOa;u?*kHuiI+F%yR-vMX_>6EECSMPGJ5I@*_jJ&gzg>|+nwhb;=&-j6QZ`dslO$iYbu?=AE|y<1 zjDo)W6Nd2%wtlA(JorirK_mE#m3Z)#R^nBDxm{=VoyPF+E3L(6EW^XEv<$!Iz=vMn zX$X(L(kk!}K4UE&eWkVdH=t7PG=T5E(n{a}K4Tre`&#R;&X(`)G=d+#))2du)f+2^yNeP zS{KrnkLYXNPk(eoU+cR1@^O8g+v|^w=MP_IitXjhtV8i6SY~8gjPl^gReQa@k7uVn*_{P0~~m-xvIrXe1(^)o(K8TjqARhX}VU2KZRX;x^A9ws;cN+Fw$`Zi>G;Jp|CuL@?N zpG;0SA3JDzP1yoz&^YDcX#DVDemx~sl~hEXjyE6uLwxY(4)M{q&IliRM|k?JGs16s z2Y7n>0Co2dAKj_@$@fn855Mp0e)2ipKX`bz?%m$IlfTNd6;}D2-cRq?`>E6YgVRp; zZPBjtKNm6(1Uq+vIgHcp9yHr?T!_zEgozgb&2Aocx;d{_p9f}>hquke-^t_;b<&wh z7i^ZaBHfAZKKe8Em^+xAaiBQHdB*2u*>bY$s9(W;j% ziXWFSfX-F5$`3;+);Kh#@9qFV(8S~qb@IsDiJ@+=$rwk=P}I=H#XA3ZtA;_AXJ$oOrTs9;=^7x!zLkCBf?6g zuPx*C)G;ivTGnH}kwY75BmTPjFf~W#yy_P1I}`V`x~$gQ>$0z5@zz_an#XgYnpz``L1JQAeBqG#ZQlCg|2;ELJj^ zia*v80H)ThvdRU1EvTl`OTML<1$9Vch^e*&kDh`t{kWN{t%o9Fsxi zUkRDW<~vA5zW9U4rQ1^vDv+-apafN=|JA;C8oj9EwvL@z2j5yKq}#PZ68=8Bul>b; z0GR09qhIo$3QkR%)vb$!sL+dps1m>S7ysjt9&p=kdr;IrdVJ|CR1G5aMc1m+sx0?5 ztzP;H_tt9nVq$yQU5sliegCWf&8tA~M{ft_#&{=z75ZMN9x_UP)Y}OlGvQI%+ZTyg zhTP8d&`Z^4UuWXuTY5Ur+YfnOP7l7_V{osFp+1oeN?2%az72iuTW_go**JVgHSggw z-*ieubMoN1U3O2O{mxUSre5dm^2%*h6#E*LuewE|N$W5hwR#S-{mxV79A&Cu0tHdh z=4n>ldd{)kx2Hni3+u2Q7z1sEe+1oK>b&+ByC~*B_Y$-^Bk;nU^U_zSaWo&9L!GOW z+3DRrlm0>2bq>69vC@GNnTV-pPy!_#8k4Bf|LPCW7#A7FqiOye3IpHAOmR>C!7Re5 z?(fv@;FLQ!6%`-oiVy6H54hq3QSqU!_|UHSkSjhE6(8w}kL-$%xZ)#G@mpQ-Tf5@7 zT=82`@jG4dJG&VhWOBJt+!Q_S=d6%fsAA+5O<#|q zd|x!h`8vO$zoh;VS{$>Q^xwJZc=W(Z741!*Hw>H6qr-@BQeg*@Jqmh9===;l0~)%{ z>dT^p*V-xQJ>HGWx>~Q5?X*-V4Y?e}g>AKkdsS(g1p8ck%vZwGB^FQEul!Aek`FLW zJ$fqI8*g|P!s|s$W^XogOf?x zXI25awx$6BrcCaqd_i6#8KEkw;wF_rRivS~s)Im&4%gT#jLoEKNp2duK`plICW(l4^adKn$aG=wbNL=FyVVhUzQFQqwrvx{!RdJN?Qr~H zI6j33jE?#oQ*|EYAD20)A)2EPF#n@-47^)cA4&>WQIYb24=# zhKLMsmiXztdzhr^g9@+DHI0gD({=4P{k2WF;SVOb8c+>miP~GOa_(|auQ#;gBdZ14 z_lI!V3{Ss@hrcxWk^0K2skd7V2iJ*u-tVKt*vLGtG&p3TivQF-xD@x27qE?HH_Dr9 zyifE)i|LKKsia^l-%`IXS08X8$u6;b-?b;_3*hc(S zJekZs>HtZ#fqg3eR(<*4etSQh42wwoTMQoD&*g7;D)8SuhE08(j`=WT81qx~`(!-J z()^@NFgR851k*-kX?apaady9^&z__c{;biT6^|#gCJoEsBsvKT_&1pl2(*tU6mvDq z=}im&M)73O+z)H`sj|{-0sAb|$#na8DNd$JQzY0z6^o`FXdg*TZ2wx zK!^yiZA3`%2(g{Qonbo&j*8}}tlFdOh_NmOPouoXjJ$)$b0e+gO()Pj92mJwAH}fV zjq;EAQe?5q<=d@Ho=)KjMaGm#G`h|<;R`x^5y#Rk(%)1A61HYbQ70_slSLHY5O173 zkFSBsTIb2r7;ePm<$hkwPZx_Q`R{oP=+C%xuJlnqQUHVzFi%d6 z+lj0(>Mos)6aD(W`9`<5lBX1d90S#cao9xjuLXb=oQ8MM4vLYy;?*8Jrg6hIhoTzb zirJ4z{v>r@3^23J>{;@Y?tCNB3*LUshoW6#lA;^b{vQ392pouufYEI!88qB7bPZzM zxiLkMol@wEX`T?J=20|XFf zy8ZJmhK3KGQG9>u1O7*xmliYH5Fn=EoB@uQB-XQT@x6oy5%iOetst&2^TfS-fz&JE zqYQ_gPlF6oD3t)OO7WCZ{jeV3s0|toBV)tB01V0l|C!5amFLjt*`^>Wmt8} zeP1ev$GAz)L#ILpFcELl_t?86YGNqXIL4(}!!2jS{E+H{v6CRaL*U*Ky)Dz(?|?ph zqt4nj-=A}{5U#eqWWi~spp;A@->ny1PjIQ`5XN~e^Zg&4EsAiljK&5K~tAoWVxPNZ@djU zZJnvxO~%pgyugsO=i6ev`U@Iju0KH|ibM=Ch9wZ-M<#v`?cl%`tAhzk+9LwuP=)bS z3lCQ}z5)J5G|Ls8_Nb5>k_g<}mVBw3Q`MaoWjQyBr_I|Sk@TuDs^&C=W!#8;l*EM| zN?I3)&d1}ZpK=K7&yTLRO^d8o2E;@;Eb~heX&f;@9UsA2%i(#I90dd3X7`9sJCm_1 z=xI3vcP41R6}ze6&El}|bliEqvJEv;Yo0(ZVWZAOJ(E&An}#4cI2VXSxtM}PSAL*W z9GY%cec-k$UkCstbf;T&SoU>@4l+Yzo!f9c{+)orlUvkOJGp`JH5%#xP2RrP9MdiNsNEszQrZM$Up(Ud3YL+X!l$wj&;ysegt@)ov`w$l;O$#r zu!gg@Z&!o2Z%6p|{th2USQ6peAbv*zkXQNT^N*V_FoOiVeH#XYR|8f1#l>E4P&HcOWvm?5<=Qcl%3=_DA9||g{W@9ARb5F z8f5EP$SS4?4vDy$j^Z))DM@Y$K@WvMKW~{y#n|+@5?N+A_)2CMujbhzzDQ-wUrgDw7e!DDcQ0SJP}Th-#AWj<}Ch_Jw1awW1UW`)W2xvXihH ziX)68D=6b(SdWAhv=u)hbEK-0Dni0Y{svMSg;gakX3p8kbh_uem5;#Vamo)gnN{$oavY&8?SG%HNd8*sU4>k{jO3WApko6 zxM+T&P$}@>zgGTJgfKbc7LCh=8fiuW@i7%j-l`{)&ul~}jE}}gS-Cozi~@NYa1I(S zkxYUcGt#?CklgS22Z5 z3SLz0>+J?LPWg%k8N}Cs-m*)02b~eJe_v%M-0qc|wq->>yIumn48Mroa%#6$(NHOtTCfcxVCANT4eo$y zI64T-VUJw!@fgne5ZGUl!?uvANE(@meVZ2ZW+8f*Dv;XJzHA?7hc~`C%Icg}5qSG1 zUw=AkXep1*KM9x^9leGUBodoVzAP?eIRRLfZh5sRmc8UdQ{t)NkcB?RPz?16vhwob zaXP{2?siTB61Y=U>Ulx}#k?I(7RJ(=&nP%(pG@xElXb^dP4$$H^;yp0S})D2ah*=4 z_2ZUuMTyf}%tRmFxR~dIO!ZX`0N<9;eZad=A)4lC4INhd{XWD^ zW*PJia&VVq5s}OT{qXZO06yFqy5waguS28oHGrj6@G9TrS!)$NrBo_plW7+JRu`9r z-P(`qVq+IzK)qlQbC5k8ApLk#ZTL;B3tp3FrBU!#3`eL6UZDom{)md~`$@ZU%w zYJbUP_NQECfBQ>*;q-|m_IFsqU&(25OKP&dhWiI#uNXb`FPmpkeACs_knLiLYF5wS z@GR{nUU6VaV{BN5OU-ShF*?OO$o@A*OR784fY1B)xeprbQNw`DA=^#(pwRxD>i0L$ z3x3_@l^{bVAoBqK{5xPBt*KR=P{FTRHdafa!q7(V{~ zFU&JSXBMCSN`?{efY-!-@WUb&b`$e}f53#G2LFB~>hlv%Lp|aQ;B(;N$bWJkh+h)! z#G@RJc$9PAz;%qq7xO^;;(o=0>{vXip2ahFy^ps&YNi*j!{DlIH_6G#hYue{A0CXV z`toG*!w)~4d_=cxXo>Vt@iIl;zf6M3<|C2{=xv__5AXrXm+z9`5&Yf*k$=f6A25)V4s7wG9f7sk>YaxvYS$D=+g}6UjW9y}chq zEUJ?ze~7avbhIk>^=#qyC+!)e$af=G4f5U3%e2QIesrmQ2vUG__xRlh9$sB z?x)C45>vU`!D{0V#dph5RR#l^LEVZN(D8AaX<~P`o8WV%)6R+)e=6Vh5;m{M)<^F; zOozd`?Yo-#I#fzKL&kz(M2`x!_)MKkX^5H#QR2eFBZF%u8%$!9_b65gZiH&SRZr`5 z8DFIrQvjF@fMv~07d&AKC57|PMl6T>T39JmGchZ59Mp)q#QX) z*!rXbu20&I#HHE`_-SnuOcPdqO8m5iTC(V_NCh(|FV}g7;!#BMfaT$Dd>GBC?G%EO z@MIW{qLa(myX!gJZ+}6*`yaC=r#!ZfP!`&6P#oBh0Uux|{K4m94(}J1HKQDmI?Ur~ zrG*?7iZ-bZzzZO-C^ChEg=r>HOizXLft{^Li8a6>cq1}agBx{VYPPg-HVSEFCf>t10tVI#a zv_=q`FOr7E(&H&$mW#(rxf~Y~r2(> za2;P!?Q4FqO7oG08w9+PHs;!M{7l25c2=Wwxt&!BCe#M7)52dH;Q$o?6p&9U1mD*C zNQy)Dcwkm5owfEqfZ|%`by`hX=5^ypCz8Mj*zhKFxW{TND{&J_*qz@ zhV7RI=j(aP6gYDt4)^WvQ8OXtN1FTfe`PQ#=4Y=(AdTQumq|X@-;l-nTl2BmfA^K$ zH_1#`M;&8$;3PnWZ3v&lN7g?PyywB3WAw&A^HhR8GPoV)a)eWWXq*h=)o%l3wcab z*p+61;3Rw5%@`dWM0Yx%OAy4;qy8!RF>`~4Q%WElRf3okororY1zU9h;CE6ZiYkaw zyi^eJrnlUZO2N}_4wR#~-lQSawc4+=#ePw(I91fvSzEQ)TIqaqVGdaga%E0Ql$E5E zn6xseD!dcpOi;c+_rh%a_E1%X!V@2jhL_5PnU;GA%{F?J7o)T7W`&*=9z@RcSc>#8 zYGwB^)Fz6=ZIE;!^!h4mUc*%0ptPg)wOJq&M^#&{Q_yc~rM6B1)+km$`d|2npy)2Nll3oD_NVK+1TVc{v17hbN1%xtABs~Mvv=tn_X{G6o~;M z`T!gQAYvtAOHCa*eS)5mL7XEeb4E}uOX*n~b6KnBF6Uq%6WkkXC7r{RFo|uAgc&7@ zqV&Z49%Kc2DbPZrAWs@4;sWQZpVrx>Dy>Q`HhbU_LC7`;#->TA+)3y|;B?zylre5N zmJ3j<*2W-=X}*Me0yW9UlYML~v}KE%m(8}$;f8&mcM_JH6MsCucaJ1!4%p4^GE{V+ zxl28_@u;)dyWO$fkhG>X*BMzPif+T;CT0=9zo(<6~}33m6dI> z31F=pIoWRDz4L9~o*##RdcFX|Ld~MeU9W#W>r1O?-9nDtJ zv@#vEv9@*$^AV6PY`tooo!ySr?#>}o`=XDXn5WzqqrYK$(p{P85RiA@v2Cng1?#~$ z;Nrlm1$KY{_8#8}!OgP*+0d0X&1TpU`=F-g?t*&3E34~u*VSH1a}&Gk*E8bq(8Ahn zME5&~{kFM&i7C2On+<2xX|np3CxV-ZF2op}zNGYK)UDCxg~?nG9OfqkX%ct&a<`7a|8;+_lE ztTlAoKX|F$b`vn;;F*ge&_ajwbGCZiLw4(JyM@BOJ7w>Xn+%M%O;G5h4^qeX)1eqP zG2QT0wptMz^h?pSd1<=35g{4KM}z-`>q)R^(YvMAqk_{%f58TZw(eK^dpL* z%=1y*O?uCw|bi$?nTcE=b-Q;a!+zV_n05sE?6XU&5`%iHox+KzL#Vd#zH zx3u!;=5%!LqzUGextuOZI`Q~y<* zm6I);zc_>Gty9)uIyz=Uxb8@ThPhi}YMbRr%*?&+3e|*wc9YkXg$A0sch7i0G1km^ z4x?mj>ZYTcl^@ff#ynn00q59^ywb7+dV_b|HQ&NMRt^}TD|kCKq@i=Pe?d(<+Q}$g zf_Hft6Oj2toa_5}7FOb#k;jK#YnTk9C<$v{9TRfHh>Fz7Co36XqlIwO=y10)>rHb@ zZd1nPER)w>qAx&PIs7e@)2q1dlvGiCb?;t{AkgTe@)OF!&3gcv+Taq;v$$F8S*I+v z-TQ4!M*>yyhiU*xK(@c7T?5C9!N3RtAyxVJ?rl*jycA{;aN#Y`^C=dMGkJBO?Pbr| z880}90-mDOnl4^wl_dnUseZJkxy^;X7zri8mY-`z*Y}dP-3Wz;yDm@!I$GH`tv_m(q$=R|ZUtf>Xy5zf*LBiX@!bnj;$U2Pm>gw-_TKhYRrqAgp|) z8eSS0SI7&w-d}6Df%BDHUB0G9FFH0B#?@q-H<*?@#{A(%D9R>pPvHKsFD^9FML$lU z9Ez#)=`Xa-ztu1E8e@Kkolkiq#IY#&FuRSA<(G-OW^hc&HZJ9hD@p_t#2|e`<4NF} z7Of|ExXFBsB9g^*+Sxa_yHEapBBoXYeT>(yzyKPs0Di5jR>$?~w3kDB@rl4^Xoiel z()vO>Dxm}OW>v>>nyW?Ozal7H_Azwd#D!B3O{3gi(wogk;Jf&Oo)&+o<-*@G1^^Tg zfYvr8ITIfr=VFJ_`M{5f6h z6$z7h5fcVWpk5J#l*}=Z%@{XC9U$KA*!Ktf@m#3m>GrWa-@Dyb&txlia|s7xyV&ij zutv`c8UtRpwJ0rhsk}v(>I%J39vEJ9N%PInC{K8bnb}lcrB;_6I3y}zJ44w zWTF|w0cF(_PXHx{&BF}YOI!Vffvdv@ktVFigMTKvT9>>XafwZ6o6%lX^v66_M-~MX zwrc?~T12?dhl9l|e7m~;b`;GpK2UT2p9KZn%J{iQB9=xQb;wWwur!8+MO_LBI_e=+ z&`+RwQHRIzU;H#AHRZ8eq{)yKdRT@NY$itO=)#Ga>#-z5zXs7Z+H-nL%!;s7CT0se zB&=i$VT0f%4Re2IuEqn z`Cag0t4>_ZVc5xWJ`Mh9jP46&kqm!ql(E>r{OaQ3!ucxBQ}dJPh96#$hlL2)CaB8_ zy`Cw0$g`}?)Z5Vto~9LBF?YYiKqwCuC#R1dO%2h>{gQ+y^yd`+lqSL{&4}U1Gg}NE zQXJ4^WXLdpLwUfg33`bcII<6e;&m{N)g=L=BQ#3U+fS%<&Dg+G>VjA(FaVylnCr(u zeR-aR!5|kHB@Texh!84R=JCZ*36@#;K5H=W^oWoFT+NIJ(#cfb)vz@`VlJGIZ5W)c z4qeq{Y(|3_F0FtdBCUj5ik>lU8F_cOg>AJ_Me;8P;S4a+ukLP*U&BJG0^y0Go*T0% zMx>IgSmnz~SRil(LL4URllnPIgQ6)EGsxs=THbmV4gODFhmDHKou&B}Z%2#4ZvHlW8@;{%_GA&AT$(EfgK)?{UcNDO5TY6?kx0MFrIr{>-`)Ss;3mkF_0^O!Nb5h`}up?%+w*VNRR} zr07}_5U6g6#4X788K0;zl@gq?UgDO)(y8URjgK^Kn|iejyIn_nfj-VBmWawwuvsdY za4t19q1}p!PXCT>`zLf?++G(bt0;xY*ex6Eot}B?YV}0dUz!$TwcE3nGGJGpf zmLZtt;0WY#3cRPVDmb9_GS;a=EGy)^bp8BW^^rte^ff$S(6v4!QIgCE<1>7Qythk; z=!9E+v<&8#xd2`Z*!=~j8r$#vp=Yd}6wb#OazJtiCR-qQg-C~kR>Fn2Oiw7D`-edU z6z=@*(c(VQxUq5@E-;3VuutJMSxnCzYawQpin2kW;chCz%%I|Jca_|Tg^TMBExQAs~oaW zCa%Je3Mz8`l?W8$`U5Fl7ayOQwQv~;hvPY5RY`Ow0g(N0_{c@hBdhrr$vm4 z64N#e6`HxJ&=mYH1|t|@ygB-@0un!HfIdL%w$z4IkD}Qm8A}ZcoQ)-(jSgZxn4)!k zI7RDP+kc=vC|x*LjCRQKZ@yr4H&5X>)zhae3nr>NOZh}i;rlb#c534c4G6Fuj6{p8 z9K=v|x`6-oR#dazwF3MmR_i=1_{V#>Y@fJf6@LKqd%1|;z@Kv(vCneIqUksjnO%ZD zS8|xFQ{aaOEApJdl%(oyZoh>yA6~}iQO~-}almNGh<{*(ct_7jJ-?CbQ|_g;&V24O4fq=WxADvn5aQaa1cs^{t*G~IsWq$|9J^;@bd9{2?sAF z9Q=3Mf${hAmy4OLP3lrwa7+Goh&AI+@J}@T2>+%ygZMfB0@UT;b58;Gm)W|d#!uj}-N+e+ra z3;GWL;3B>tTMGG?wMp_BZA36SHIG1jr~eD^eO;k15WIaF$cK;C(HBU&r#b)1#w`+RKKdmM{sY+|n z1pl-u{Z6aMZ`^k@!8dPy!3plCy&B^suo)`47fUVFS%xZ<&9elqcR;6{Vbvr&`d%m~(>YFi_y1J%Cm@?|3xGDg zdxSJ2T6)1wyyRnq#nWnZ##1z7E>&vNQN}{CLP?xjf{tTu6`QLU=4QAT=-{*B5=-ElTg?o-SYrevpKMCm~nR;Arws367W(P)w<{uK%{TGJY4wdy+6jvz;ZR%Mt2@?1@MRlJYwNkO<}HcAloyeu>fXaJKu4qJ%a1bVK0=c>zO`bsU${0qRdY z$EG>xKQ_CYNc5ajo;P1g3;NE$0fd?N`%b<@zdJSVpTy78!tvuRFrz6DjP=TL>ZaUa zrpF$W^|K0KEAhK8mXR=AI^>>uci&Zc;aUk5%us3^OhbmIBW|$9$#Cg%WH4&04K+6cSkxttHLo89rt@?XSOc^9^e19Xs=|QwC}~i z{Ar>~dl|dK?nY-hv}x`#cV^r>A{|xf7|xF`?v^g3k=l;O>YTXV#7uo?VWZb=xG>y? z|C*ocxxL6gwj6r`Pno-7v3b5k_!fUXH#(BB5g22EZ!aAQkF#Y9huX^WN%juU1a%A@ zU-f$^W9U{vt~g62VcqoC&FB*1e6vWwL7Bw+lE#%cSRBZ&g7{{MQB*GBUIDT&fw4H@ zD8$^eJ?x~uE3hl4QDY=V#eFzNpM4i?_MQ*SZQ>0UDunrWj~J?=Y$D@j#)2eB$Ap`m zG&;dkJM0$T6i0Ge-Q<%p-j&Sneu^+Wgx8nwDfNGiav-`|N z>zIGC>xVt<=#eY*j7?cX?=)pqZaWbYduCw4ki9paC6xh*oJJ`QUmwKvU1b`=*yNU- zz<`K8K6W5_e{@yJZ%3n1mL zn!D%hotn0Yd}m~2WJF|Sguda-EgMF{MOGr5qG%r!djy*XIZO~&)2nywd9Q91r0nF2 z2ZF%JdR&6{Yd0=vS+JorEO@tle8+;Yz1(UxM9jWvDpYgR4C+FmaRvyXP&$bM5*c4F z7j%5sO*~(fRer65AVNGEYA$9?*QC<g2(SK)u71A!xs62;UEQL@A2ae%_f!_B&_UG4GHA&%2=q4 z2!;UK13W?dza=%J{FkN@F~T()%?QVS0EjZFUVa5u7Q|Z*fvH@07>94D1r8o3PjzU_ z#6;wERgZ*NXdB}aY?%zjS{^q`*ApXDV`Xd+C) zF|FMFulsfOH~}10b@d&)y**C_oJHUA9@<(#c=(emYD>^EeS?EwwHj0V;8aycOpCao z3)^9`ToXa(rhaw>q^cg-#W#rBmS4Wca<#j@2966Q2gyqL{6G4+E<@QN-2t{Re0uq$ z>xs~K^rv_4KWLE|kIq3pVVA&Y^r7QqWbk{Id+c^ru>lC-sA~pPtz{?)$PS9PX_0jP zE&d!I&x&+e$-IuDYUsaMhKRwnCk}Gc!kcX7AGGQQFTdrI>oUT|^=>Ns&o8zVO?Eac zwkgv1CjLh)vvlFwNGg<*SN1Qj%2$r2u#Umux!0(src*?D#YPtZx~kWp;iF29QnLKb zqvR5Dl%l+Ml;XnacORu09HLEZnm7`T=7Hasp`#zG{2?P63O9E%Q7^lya9WM%(NdXS zBD3>=)g=A5M}Iy0^U=>AUn+dO#QUP6mVlZ0pwqQ$M`$t*(O$Z4=9F6lI@E)24ehYq z{Ocq4kDk4DxbJP6ds~DD^N4Pb_0WQGNmHN)fBT9>ZkQv^&@8`Jf|yr|N}3_y_l4iE zl(vG-Q7PjQWCi8$x@r_IftyQujv=-FaCUu()9Sd!K%GhPf=u%fVl09jx5;!SEf~|_ ze%}u;UjQAY^=yg*qybeh`1jfYbXhKHuI+^zG|sEZTmQyQEf27!QMz3izY9sH1{S0{57GbK9m-|?Mc0>YbN`JM-v3J9epP-Yq4?%Q-Ks%C@sLt)xREmTEJfoAoQ-dpld_t4iZk25xcfrgEY zw@;^*`E)QI#q(Hd5Gkf~Yh2OhFr`@-73jn@5|IZ0Z8!#15r(xG;H4YuwQ^8>q-kl@ z?=?L|-w;Ms5CV$w?hpN*H2TKa8ID&9M_2vwD!r%xBQ4b?;s8+gvEi#Cw>>uN+92sj zdMlOo21T}|9`q^&^RA%`q=<+N^S7%-WfG#gy^~X)e@}@)C+X=p!-Ea6Wh!J}$zP}p zl5|wr3&yBM~;`&qf7%W>g6;tCT?LdP<=P^9%a7bC}mss z5!4;VX)wyGD^9z4mEm5%nB`h;J!yLMmVp-{F&wR8lzUm9uRNQA^rBk_&Ba?sxALsj znl)Gpc4?Fp>5Sd6f5`b_A03D*rct_SN6N6sGsAPcRj$dwyDX+k;e#nI&@Cdt<{D*G z_)4OpJ~z74F4`X~i)2QQ3j@AWvDPz)f`h^EQE%|LcW?k7AIrol(UlsHZ*^be)l>fqBmUT1Nfnt*VOC;G~ILN=jfK8=(( z_p5EYRS2`RjhsM*lnR_T?i1_ANU=3 z9$UO9--ryzz<#odeX27huWDMeX@^ypESXQG$x}ROwg%n847A!V;I(s^#0F8mpx2cM zdM)gtzuB)FJsucueZB6m8=6y2TH?FAGNR}Z3fMlug#6gkGgJA5RbPHM@Kf~10_(q4 z4-Jw@87UW@(p*b~M@cZgLUu}rQ~QO#B@C&nVbA7JjH?H`HeaeMGx3wtv8~831|e_9 z`da+RO5J7xoCcH0N{I=66S_iqrLQDP%%sJvZ7e-*vz?0qyST@6E}=79etkx3YjYcI zVF&{9~bY9W)sUUGJ}n-t?;bjQiaTlq}G5$u5Z;E0MnnLcQRHLWFfUh z@)Kl0<10vrrzt+iisU525q`_BC~>VY*w@>7JTuI`qM3znm|)q^=6id{xG0O(S(J5W z$~>C9w3F$z$LO?f+&s1=uur07q8!lg49H8V z6j?;#ur`;qRlBuneq4>i8jyVt5IqpI!51MWh~CHltVE`8b7bmab$LPyx8+fHRitGR z8-bu7NrCKUnYx-U?j^dVUSIQgkSth_lvK^ zzLhK8thsMD+(9_iYoA4Fs4Q0EIB0<~UTgmZS&;?&ljA->O za6PWGyla5o)BTbx4xc?0e|L1ppTVk3Ixw_!Rt00lcUNToZCX~ zF>}{>R$Wb2q2U2t%_*A*hu_T8-Q69GGj-!W4l{H-u$QTLTOuYhKslf6&u@p(!}Z-; z{`0rLb*H1h{Vkl{9Yez5`tC)3_n-fH*FAZC^|pL*eH#9KIK4ZGk52D`lm7}%9|U** za`IpQa{Az3_AddO_y0cs`+T|&C*JWT>Oi zr`1VtyvpV=2Hts_iyt3=@8Vy7N#>dS{o!g=h@Y>Dlz$w@04)4T9@2t;i?dZ+P>JNc z5I^4{HwS-@mPNXtZ%qBS6~4BGKMVXiT3xP6yaYQ24lyCeXHoEOR^|Nb7oZR#@kKJ@ zpBT@x>dvD>3@KK1ui?jd)lY{{vdJxs2wmuu$5(j)XGbKzN7oVIh?Y6iQbzMAzW()k zbP~kmLHQawd6B=;o+;F*ob8_$$l6Po*hmHqi)v2-#e4xAbfzo zPQ?wu)#Ubtw?$N;ydayyb@akp1dzBcgr#z=RHTdFIBcu%yrt6{>~lVE?em6PF-jSI z8c;u}Yn@W9jn&K=ZyQJZ7S{{t0f>Na-?ofcl?$=p+otXI*%s@k>w_BY?a zB>f>>8604LOX326D(Tumh!y=+tvc)IsammbXY$f9!#q~QZAJ9#IGS>;n6+ong?#( zl9|4a{_{Uawj1$kLaie6^BV|b@5n#A3jfoso(-l!FBk=TLAVDe_+apW0ES_f1nlB- z^n|O$0>uC}kDpA7-f&ce zdpMIT-w>`~5;V_i?*M6|P=4vlXOyCRA}}YwgWNt`?>hx)P+07k%Itf3QW!eHRiv_9 z`1WAEsk|sI${%hhkA>$ro${29os$%QAw7m)NjI=4cMzU3wYGCHBgRy{GieZuVw1s5 zj*AJsn&K@n&H8Ei>oxfus?&$3WM9QOgg3AyPWCAh)G4xeqbdHo@52*7k8ZVx0e`N^ zD~Jdnb$W+2!u?B(@J)`J9uFR1K;k`xqXqhuMnaO2G*j=h3CF1-$JoiJm!L1x@uEMU zPZsEHxsRvsg#N(Cix=?o1^l?ah9B4P!;= z3dUT1D$yk>dBht9&}Ii<-g)t&gP7HUvjIqYSq4#wYx06F+TQNJ*#Fz#P=_~9SJxs9 zD@9Z(h!%Nvsgkwy3)nrJj#G#_W-j$W*E|7rD?8AVXe8LWnbrp!4Aw9m@>W<){D_g< z-7!Ns_W7LV>m<49(J(FwPIA(BP|7L3G86ib`tGF?QHR*_HVdWksiL0f*Wa)De?RG-{MYG&Y54ck{mbjf zdt}sizrl1GtXU~8Tgbg0fN`8x(<>Mf`6$FUxnxo~j4Gu)Bt?uilIhe z_em>u#J|;|l>}@wJC=^Z8)3`Ptf5Pt1QdhAf^U?mpis%7yrmclAY+tt@?DA+wtfgf z)&d=;igN>hlZ-9GyrC0$6ltfKs!x99z2UTmr|2~R6$2Tzz$eUVPl6crT;V9jD`x2- z9eSGvLF01l#O91jh2rBK^evha)!W_W`h{#nySqWy+p~*;WUIC&`QH5a;W<>n^X=}gG*9Lz zB&^M|uH&)@wr39jeq z=seFqUB|_zz$yFg)vL4P4@Vzf9#2k!9AotcvqfGes0vwSi+uJ8exABrynB1}=9lBM zzr6YI`t149`xg@m#Div#6o&P4!r@qjDOp7!Ra4YtpOwjiO{K*rkZmfA$9_zDUHU9% z3F(#?3o-swa=xHg(CveH`|kbAvp2uIdIuwl7jbco3f!v57iY^jLnp#?mwYX*C4yOu z#%(m~di2JqZ8B7-c0)%{n7lSTWScy&5icLfR<=xrqH^(2|z5g3RQw_`< z4#UN5>GhizFOA7t(01TyfZuKJ=Xd|>&2vVLv!f3m-oN?NM@Et)tJ3P`Y?;mgMX|+; zB2BXS;^qu77aN`tWLH^Qo#hv2*GXJL!D|jKmR!@7#Qf}Pl~|v${#6X8bbNM|&gV&1 zf6LtbIyo=W`DLP&sMAC#WvhI4k)U=n!4Pk81>5j^C0CwIs?JvFS&0`qXXthkjj)o> zaH5{g761qzSdM=AUmuVD*UL#3e@-uPP5KMiz^nK&DW{$^y0mqY@9yffRhbk&i*%PTRwv1+H7R#SvpD;ZUtZ$LWI69u zPCT6|Y$N*u=thd5mG*{A4Jf*BK!-3J_TtG;#I#NrHI70wO73{04W)d8jp7M;@&_UT ztVV&@i!81(JD)I(!l6w0=Sa{rPRf@_cE$;#0IQtg_K0_PDdtY>j%j`an=GAC?C-4l z$h6HEnKXZofuH>~U)%sC>(9w`@t8wo(XALhs!|{QD!wF#`8cL{qUDUbRvqoGQP0A# z!3{q1t598H6DFnpa0f94Fi7Da@pu=bO841r5AJw~Oqa-$0) zT(4e|Sl>}_(3_{1X@w44M)x170U0h1m=)B(#htwcU)Tbqb^vLN~Zb|BmX05y8( z0BB)L8vw8wLo~j%835nB_V-+OwQYO^y+{@mY}aX1c+;FHRkY;Jdr7ztV!yCTz?5gn zH29(H#FsfxL7;m-lxQW_))R#mFUgJ#4OyzE>VCc2n;dXZ#-|t{Bvh1G)0U@bT&|-1 zVQ)h|MutEZpw`~-bd(Z};E%naL^a0#1Y2C+v&An-0#qNH!(Zhl81l>}CyxgJc#>6v z2!HeH2GPMoWVu$rjs6Jy65Siy&C!|n95|{EXj|lP48R=5pW~FGc4&vBWD@3SiLA8b z6}CK$d&8Z{WTT*>Y!uRPnvU9e0~+t{ZXg&6zA?#`b2G+pJ0XB^6@sEG`qT zBsQu&kR#xr06B0&o`hu9WU=Up2+1%8nG}qK4Bt?&&j+uON$vkIH8u2OlI@AFovKK zWf_v=^b(&z=Sn{$|#*7Gj& z9JZAJdD(;QaE(G`n#if5+y|JLqK#-}RK*-oh@zpNEsGrZ;u7`9dN~f2&aaSq{Mb)c zBk}k=&lia`9s=h)Cjm)@*nXXNdy1Dnx1z zV}VjABP9k|%pej}EV)q~rD%$HMzqW*qR}N(_~=<*u2Nt(&Y?~=gL$p8Op+z0kmiU$ zn2{S(>WmC9F7nm9w^}apSfY~Dis{90rF&`C1KviI`t3{n89>A@c;R0<2`WYGgBJ-j zD5D(ntO3BN$mz{7YwW3WyhxHI?gOJ z7ephiU;0*c^i!g)v5?1Kv6AFDpUqZqZqJ+v5~&@jpX$gK)c_YYqAM%SihS8C|FMb- zSvUEb(&+>QKyDDU!?7z~ugY}R0}_*HQ>qh1)z9g95&Nb_{i1+W#2}uG#Bq#;W!1~L z3`R_#(40X027;8}+VaPB{>cF|tYvzUDtag=orU+`z-f3en$GOas4UL$d*bqCTmad$ zXUD1f86wIx%y1Leux{Xxomr83F*Jok@6P9#&)VFOjD$+6wKB#MT3WhCVI8HLnQ|nm z0B&(|OehFDia7tz|NWef;JZ8c`HFt(gp&EY>x4EVmVXN?;gq`0S7p+J!KTRJsDR2A zPfMLPz{nGki|cP^RYp@vV)J;(QpZ0nM*=IOC=;ewq9&VgLH*FUNgg zUV*u+B;5Pr8X}#OTL4j`v1bzJ%z&JA=PKkTw8PE5U^$Ls>=;QV${1H4cXyugvfA;@ z+!%3fEOEAf8KIV%=3sQ>*&sl+{$xcJ-K?`#Gw0l&hGr*T5klvO& zOSf(cD?mf5jDDlX=6<+3qf}w(1gPmKO=309Do8+cpz6 z)RmIbwBj%@@a9 z4DB}7T#0F?FW?FG5~5X!?Tt}$!YIvOPm%e>;BnOP`JBKp?N%guHOA zhqJ>6#W*l@0%VP)?waCx55`5^e<0IO{dk$~2Ya~|1^e~U@$uPHN`BbcdpiBGQF0FWTu%qhG(bcOb2Nk2ft%=QLz z>9_^+|N8dl*HyI??T)iPQu=Ng73?^pAFryb4{$z__slY>M8Vey(Bh&S{I&P`s29&r zD;Mac(K0&EP{lEE_AFlhmOz)whEd&uR+^RgA0bobuA|Jk@^L&0YssPF| z<=OD3p9nhi_4IHsm?8%@s=JZ1=(AvgYm@z&HMLYM8A71sIV89G$Bb#?EDiw$1dzG>fA!~xb20K8Ifye`S zz(1X|oCJD$@CFFFyd6=Is?#DXkvfBor+*w0x{UYi$%?#&D+f=1H>b=3b@lTrziyy&fuT9vS@67OghX0v`>BU673RH#0g3P zp@sg2YiC31!;I8HP@b^h}%FcGV!OHOaPA#T& zi*V|v^teXW&rY?UWVg&VR@HQ#;N@5+1CD-#|4b_3NeA!FG=7-8k$4OP)d*#w(?(0d zN-KnhUXh4gb$;{j$<4@DL9InpgB>_#Y1a0p$g{Ue6;BeOQnWL8Y^H3HLSFA0GEJ$1 zBnSSN4R3_}pxwX2NQ@F|QN*al7jUDU0j}2KLS+7luQH?joNpdR0p40(JikJ+KZmx@ z&TvRpX(8awq4b&fjkD^~a(56n85=@W>0ae!b)*y|ASRIk0S&~cJu*1>Ob?xIgHJ>Y zOK9f6eT)sA9XkX>*L^9k%vAiHWTSey>TGlKh(rpHuA!UZwuxXOJ%rImAB#}{P6a#z zajZ@@Ay~_#>wSfjPu8KtKChspH}YqE3`NxDtcCDE=E| zBCA`+!Jsg!(;5()HH$oRaNoq3hK%silI$$868Z%fNr{cpw6R!D&+Le9qK`MS z_r;9rQfvBB82;*95+|R}YDwsEyFU7HnL~?LY*>+#4b*1Sp&f0vVNP51;(mu>Nqxyk z;SBJeU43gu7V4DCc$NgC3q36%d%js4NYnutNIi`z(0p1=a(p>- z#hsxayrlLjQr}JnANQcw!Pg*+hL7?2yl?|>QRLTvGsW|Kj`E%5*lbkUaKZ=OW;`i- zZ0sN!a>yTk@@(?>5lCWBCqE6QzCI5R_TU(WV#DD9l^Y%$PJ@eJubcEBiLxF(p`1rQ ziWVU2;SM15_u)D7odT_d^NLm`SOZQlp6);a24IcqCd-%Vg2L_k@^O3 z_~Ztp=~MP?sDlOFos7B!vk97Q&{!~rni@`sF;nD-wGK5G4r<1+`Fx~Eue+hF(g_+x zaSD+Z3a9zEu(bw*!4v2M^-xSPB2N4X-=)Rp;&b>X_(bZ#p9cf@)QkW4itex%aB9yd zw@-}rei9804@dZn6*-ZEA4O}2kcI}M_`3J-A^#>&M2C;CG@ML_k4I#348IOkr-#tM zBDtvG7j#Cop__uA2R|IZSg4VQk9kzlZ~(s^!02u!w**XRNnm6UAp(v9frdd8qjMI< zJ#>o#f^#4c4*i}?_D|y8Z-d@X4^H=^tI7Vyzwhlwv&sH{5qaE?KEqEMWcNHS!s&i= z0SPeIc$s{^Kh_V7qu~(6hSJa50!~oG#t+Q1c`i5`JXq5G<`Nn{&*Oq4NTT=H_>wLK znmONdR6;_v*KsyqAQ!|XkBTC`Y3lLhbd5sY^^*Lce#St2e@e-3Yq`~k@jBLFyns*n zcQJVxuCnZ!;D|cTaFH?lq<7yW(F)cXP8V&o7~Rfyz6jMbW;!@9~Fx;Z1C1unEk&Vx^B z_S47>pdlLOYe`+y`bitMUkgIoWFDG1PHC$zw-t^Jrx^J936ShDvNMkL6J7IcPY|iMGC8kj-;;M`I zYimY6Bu;hI=OT;>XVhp`vgD5!oJFCJH(VS%=NFo6&TDXi7x@f>%{OV+^lN~4{w`bG zv?#`;T4{4*nvzUbl6tbH#?SJ_{6l>H2G2#&fe1M!ILlW!lRqt1gCNctYj;%Vvrf$=Q*lGEQPGYq_XO2uCH5HELGHz zAVZE6m*vLQj@jfVpvvM7+7GWfE|OdOe1XrxH&mvW>(&}rrsLMM4I5N$9ZsoNJWn}h zVu$FCnBRiPPK;hc}!kNgxZue zkKAc=%Z_cCY@*Dap#>Ig>+{w5IVzo#zWAk+f}~%6tO@h1{o&)|J$hGJD~OUQYhFje zMZ7?#iIE`MHw$1S^AzP}8fJ-+h_aksWn(n~FKyciivaNzIiRQDdwP*ckApJz5r68i z5mL9Rw=F4nW%Q+&V5P9LEnF66rsWE#Nmj*^)!lSY@uyW)D#$(r$P2)ehrK#3Rmmu!n!p};pwpg*PvuZsLyvI5PuVT^#I9KNLP z+;^cuxGdmeT&;K-&@NgQik-SeH4UCJ@JG<3AX+UUWwlh_Rg4MnuS~IsF;NtWE`kb& zK?I|q5y%|=iaMULIl2SZQ;nov4rf%}WV7dsl>E+-en-!x1c2-deI9i&d|_V~`lwCh zjGmeaYB$>dFZ$e%wAnfvNT8hv-i?0DXf}8R?Pzx|;wnd6#E@*P18U^TIs61g;s+rN zzFtb?6)upHUwN&&6m`p2!P6|6tTrH_7_o-bAU_iau1(8rlP9$^nJB9dG0jB3WRmww zG}L-w{6qY;9zs{0w8oV6#FhyWWLAx<=kzu7^+k<%kZR<6dRlAwYfcv=2>qz6wmK^5 z2B>oQ*NA0=H`nB~ph`?(!3QXP^dFc1gJUOT;&G_>f@_j|LBdiGxu)t4REACX+TF0kffay3)d;W++g)@?P3j)Pqg}eawkLO$<(jXYY>C zWm)`}#!dC*Dm1{v!vi>LBH5>@Z#_rt%{$5N7Co;sEe6HS>DpJ#07*c$zgo-Y{j#m@ zk6O4G?Zz0kK#x5TchdPJV8dX@S}u~H6T_sdWn5iNf_{Jh9Pc{M>Nj-zdg1-x+0!b4 zw$bet+wngeq3PhQaGx|fM+YV2WnQLqQ4pV(`2yB!e4ZC*R=P5vJfbY2VjK(u> zV@6-nd37}!4hBDruM(Oa{x-U#UT%Rl&d|7Hu-1ogYk_O+AD9X1N6-NSsn2c+!j9gb zokiVkZo=-<9+|SQo~NG)VA!1`!(9$!|0*vO0p!(m*h0E?Y#Z!hegjkjSmS_q;Fdi~RmruvwRC+G#b?GT2o>){s zj2&RqN@Hv;0RqF70KbcibZeBPdr}$7}J+5q{e;xBI9hN{LM3+B_ zQowN#I9iqDiH4v3! zja+YS>h>*ijHa|XsX$z}-bsm4=w;J4l$P46j8#|Ps$2CfO6_@?7FpbSiazDy#XCMO z8`y!deH-AomXKAkPE6R=V@o2uzQ6%ndf(Mg8{0A+0QPNP8_sN5{%qW`- z`$G=pb)9D2nvPX__&7q_M&aHg*x69Jm+kB65BdkNrE5UDYqejZv(*RPVUL<$0PSz;#M4rAf&oW(bk61#Ek5lJhEnPxM0z%NpduE_GY{@a^5z&BSRiEA3>An27RqOy$i9EC zAj9_HV87lR2XeW-{(_X#82#6mnGgxT(hQgec?R>KtIGGZ@&XC@gL}Dgd%01)+-%j$ zjq2q_@8w48B`x1dD%wO{#p$!-EEB4DJuHTCN$PK!OEO)Dq8^r-$IH^~2Pwl&f?B!__R_sz`88s{i_5QJ(A-SrX#k{PyNReX z&|7I5Ly4|)+0SDnygfRVDyum4rYc0k5bZtzm5yl5My@-VcGzZMc-jfG`{x9RVGcTF$Qxh+~MWq;F^kmp*c>`I~K; zN2NwPu$7=DxNxarr=6Z^JN&kEo`W+D@&T|ucOt{v!lh~uZ}EkqWpAE6O- z#G`7cb+7!y+t7|i%EWWjs)#)`o`ajrmSM^wu08t)kJgcoiS-tK!gsK=l^Tt&IlnQR zC$zmqwo<9KToL>4yX!u$^2OY9%j|ngEQ{7x<5`|&pPEh08^$M1g_uiC?qwmwO(uq2 zkYGmX-l*&N7SQYg*PCvC^Xw%i{kur<+yKLIBrd${5`6hv=fk(()_gb=h8Oh)=%ZZ< zdiI%mMm@3jQHZ*wcVA#*pczv)?4#m$oHWOajE?>n-z zkbHwZ4O60!t<}y#$LZ67y`cCi4*1bD8ivZGTFM3{@@l3o+IYxDK&-6KV`ROEN?6qb z6g85KiA6LprY(rR-Db#2c{lCrO0g*QYiV|OcT%sC#xNKVTQn8+^&Ucacc)AO&1uMs zlY%|cDQtgLkW1s*9910XLi6F-7j%nmowDvxp%JvMK?+5-qz-J9VV=kvS~JS8mY&id zHS%h6Jof#JG^0dUOhS*Q5kLWknqG$+e9QcbTrICtgC7hJyQT4Gl&yIj;#E{T*>-f{ zv2t+TTdIhJ zmX$ABWsyiP!KcflK4``o4YI*0Xh;Dp7+OT9wFeobuc_yHRJ0JvNbH%z*)?>6&qgeZ zXzW(7Zdo5a42mjcZ73usW$b`N^2_eIVce`3D{TOY+}$+R7HDZs80~R1sC%k4U4t8f z9=4<7xNCr=t-X4SVk~XaW@b$L?@jjUhRx~?S17I}s_rwS!AcPAO|8PVGpj~uw@gJ+ zrAaGf`KG;vw%A)id2Z;V$p?nL!I%SvQTt51>ki0;yk$QiLTcax$l6rO4^z`(N}~`_ z({q`qWg^k$1w3tE^fo6rEiO>Da|_b9TBwO$^HPf%Q)At&wcsM`sKY4dxOI_5$p*5W z>bK&HTh*CM?bF72rfAG;qMI<=__E23i+`QB@X``(x$2wj@?$i?e)?OBmVT*Y>y*evC<*Szo3Wg*{Ue>VkC^+#=Rb_$&AI#p4op7Repx& zQ6nen44*8&hOI526W8WeWNy^y4Y8$vC0F|$S?(ey&#>3mc}C7n$22ivXEzuttH5~K zyMi=!vC1w&N%Ub&hBPQ-JGRqM0SfK=cG7DMKoqNDBci|Itq7bn8m#+V(WtimPR>Cc zy?*#B^FbNXQ&>!R13Qpr{)OSZNGLtSF^0iQp}}4ZKyIjG zmWi$bYH*g1TRqvT%0N+gcR8MKBW)?e^>=_Ww|<*UoNsrq{MzYtx|<*%5if+oTR|(_ z?;M0|^!Y!~&vwhG8s8RA>Iz$}1QzEdFdgn{E_%bUv}^4@ZZ_s6D?zB#J(;J)q^K6B zVTTry?ScQN77nA75(1rw8J^y@z+n><1ORGEaO>`MF$&aZ3;SD0(G7)#5%mbr7-YkP z)sB2@K~Vp{WzLe zc8Z*?oF6`#Czs(G*R`?yFdEwB*ZCahmSfBwxld$wWskl!#~~3CcqI| zFzC>IdpLG*te3-t;7I@J#~(UR07#7)8eNisI3THoSi8H^Y5URO2iRnuPDMtIdq2nL z$-+Y|y$qDac`#QoUV;P(qvsX%f^31E5aWvvQ;APCdEw$ZUKk9eNNQOIZgV5mwYXTb zy5vUX5hQ`D;Ig@Y-!A%=fo>S7>}V5O)GI0$rO=p>&8uQ8<-o!c$+Vlyw*aA(9rcl@ zcQ*Y;zw1%z^yyo`+xzmm+jCcs+9u85uQ{Y#6u+QUwdc- zLzJi&IY{yQ;*b4)$y5gE#wBWsKJ$_m^}(s*r@zSI9IHVV@pF2qlR+DcDn6&1Eqo22 z>-+EZK3_Jt_FEmup}$X{r{b7G5cT5=;2nPf1m#rL#G5x?0ZQ_L@blrkf%-GWstC5> z@PklzuQc4VeM5srW9U$+e@(%p_D_y_{~7mwJKg(!AA^qF-H~xr%)Vw{E%LbPCed&Z zM#bdG{^5go9Eh3i?sf|{u)bL2dC`Ua@Wa8*B>v%GcemKv6UGR75WL%(-p?YnDPdjb@ASdh>5tX zbg04>%2!j-tf>qEMzx~NcuIJ$XjE{HfCw;BXG-t7>|HF9uPB?TG{NRzx=O^4^;kC0 zV?M=fNANC9&1u;-yJIze1>Dnb2(-oMRvpuvHWjBRPp4OD1q^MKW zFRQvWi2gwQADm0pV8kfQ`Jcxnoa#ochID(_2U^buW>*K?)q!2*P^)riRypJPuAL&7Q|NLoa}8~WVuONtHAv^O+s4pXfe~5 zsI`d~Jba#74a*E~>nhWiXv4Vo-@p!_7g&AtAT@omfX&5jdO|m%1H3uQ0eW+97WC~l zMYccLT!rR7^yTml8VfXKXr06?&NlXg&pKGtXzY$OE~24vTc*}+V}GLlhR)8D>PwPj zl`?Td6@^D@g#vKu!EiB`UWkeGR%G>42(83Q$mgV!mE>e)j> z%y1X^>ecQ$?kq>8-c_?XAoZ0v@(5(`dPsnxV3*pD4YS9B*H%q zvrJ2#ODfw2rBlm>aS1xvHY`!3IZFo>YSBlgGbcla{hXF5`Y^qvAL#;Bh%EbSwh?s& zsjVNm3VfXtN~_Urlj|hM3zSg(YTIm9i2B@m=9B9Vdj7FE6iYM`7H*Xhv7+NruJKCYpb zVGFzF;BLtx`K*Tx5l`FvZ^v{OqPD+eskD138+6?zM;+;*Q<(ZjofZSiD3E$Cna0}S zR+~$|29~YYf?C@e3<7EHKWFFG?)Y7c%Hi1bO_xjtx(iNW_$KBCxerI`ovnAk7$<9T zsJ)P=VV7tsL}U7{-nL-=Z8+u5B>8} zJr4&BT_1=c;}y&{T|aiZe%#P}-FMrxAKjzxCr;l_WZ!lR+&iu4LxB!%|Bqz z5IwWUQIq#mo!7MnsjaN0LGaPI*2)KMl^<@XeArg`@rKF|+bTcVQ29|?*!%yM~}AY=+Sl^J<Hc4GA0Vp$k z!yz74h=C3)8|6d1q`S_4>!GKARKtNhDJ}r7OHZO0nv>xqSg&4w>j?`QX@55A|Cn5N z`j6n>jn7c5e8v-Lp!F>T$E~_G3301#O%&X!TW@o>>ed_gUaxUZiZ}(a__S||sOW+N z*5r#c0v`C6q{p>;W@Y)%2QA`c`{6fsZ~^<#-@In1rPs+5#r(SrWa=! zV9qQlHlA9ZI-9-w`(LZEDsi?*mm{=S5iI<`GW#Su!Udd1WQPf(Pte%%D!%+g)R5{WN2Db9Z;$ z&4oDpS)|^tpXc)%Pvkb9p{OlGxaAqOD^fL=R^*0+Q|lpT(whO!6!?@jA32H+ZIn%J_Wq0}sd0rTm!I$> zUXxj`u|3yff8GlH_I#u?{cHoQs-e@-c(DMe%zuq5I7&0CAv|WqD4GJU*%uY6ap}WB zB}APwny-wF2ttk)$BeSb&D$FW3h)Y~>Zi1S7azerDUN3&D5o13r76u2CzQ20qtvfR>v za7fPbON!R>e2avUI&V>|3o^O_3`WUh|76hnsUIc1)BUxyC`UgM))sO@S#{Y#62<_X zifPjFjWDE}1t1q96A2T2dka8+7N1=MY&fDG)$Pq>7~5N>0LeNO=b*j%e&9(D-2N?A zhx>w0QG-TE8&`94#~b_&o9zRf(4#T310sd^r0lYjUvy?Nv+RHz(;+=UGVe==h92-V zk%w^Y!#E!uX=r&PaXCxNUt!!t@;%Yso?y&Zpo`C8JKx>?WPA+|jn9K0wa+M>49(I9 z1LO1IBlGjI+4RGQ*0)(){d{(Ku)C|io<1DvdBfpQ&m0~+lx`fm)!iM92bT&ncX#Xf z+mV8meTTYLfZftVe+<=YUq<;~(E@VJf&6fbA6 zC42*?QgOt3R7ggSE#`%_6$r{THBCGy4%tdtdh1GTZ5$&#N_`8&G`_SuVJfw1^`M>Qv?%o0udz_P_!8fgROV+5%ASH- z2o`el=Y>ZqnMr@JKE*_SaS?Da(la*ubyP)a-;T7a9IePYx(4}=D4Jo&1?llue|l=K z5R|l1K=@f&Nm+bt_Y6YhEJ4q7NztH&A;Ym84ab^5Nsgt=0TLABWm*B0fAhnUf~8A% z7pUIa0PZsWoH%${!ckV*ozG^;(njoSD462QN!zD6YR@oIZIPZQ^FQ4*L4nE<-Yr^+ z8PT(Y7)eM^3U%yfoXCpwt`^v?&C9FwqS^y`ZaFW<G$52jxh`d3<`ks#| zA(#+)BK7eXHl;C-Y%H`^0EzO$Rb0J>75acGtdoFFjfnnK>9zi|N8y4Y;X2Q%EBGt& zza$9;@4iSENpRXG3iFHJBV##$o7s_Mx>>l}-R%vfuUvQ3wVPt+G$(FP1+%v35U^G6j1YfGt1EI>Ye`q~a0AII0Y)m=t40;^q6SuYnDb^gqR43W(|IVEITM-1RJ}v% zdTT_~7>Stji8J3JFhc+s-2;>k_O>}X_x8rv+9ZyCufb6WLm%7LgteN;DI=`^X|XCc zStjbHe|@K#$0|`d+!gX?DK_k{X0&U2zcr?qw1{QI67y?q#RwwE;NM zZe>yhb|d7${0xB@Bxoc=prhL|Ulp^2?r=cN zh;A`F2Z>S9`Re=}L$oA)@hh64;(tN95R{bU2MH%O=jK&B$udoQSgwn@m|#P5kvm39 z6~2AQFFLP3y!}~`1XQybw;5KF{2?kxr}&LDWW8>YU`$hJugP<3bacN=bh^n|GnA)8 zqIQ_x=KKUux_`02kOYR}&|))Ia4zEwGUaTFAnvg|@Bp{b3cyUMthfnoOUi( z!t~ekP;IQ7`;M(w396TY@HI$IIsryK?b9-&6D~a2%FMB+u?Hx>H#q)M&;Ni)jSC8W zP90Doeitt-?JN&@{PN4Y$;;LG70A@?LuDDjRdiLJMjQx6y%~yWgpLvnRdr z|F>p-Pplqph1L4xOA5xl$!TUIT6z2++M{+yIFCzU)W%yc+V42tnym3DOpcV6It_BX za5Y$i`)E+zEfjH=OZsJUT2v>Yd9+y#c1EL;jUc4Sz9x2sQDb4w-}wGpysXwvR>Ok) zcUh*bw@pOD*sz22LXC77r`3U(j+=8@49rE4hL+=d6Y3H4x7h2(>h<}MOwnUOPT{@o zwfL>o1v7G4tFjod#s7HU z+~=l!cw4`W9IUsX7DYm)1>~oqFRmUXlkMTc%@Y0veegRSA8ud%L-@h(asZp}eaPqf zBxuyD1pFe1kD5tP6{{rZ$gh(V-Pi^n3hid+<#Md~V;Aika#FzBVVTFcCj7K_(5^&F zlW!DQX{=f_yu_2T_c=q4-QVcLa%_Df>5oV(O~i)Zuj5j*f&S%55lYZF%I2yA=>%UJ z=|VV}7X#ID_|1gncwV14Bf8m~N;4;J0o0iOM=6)`+^yNw-u6YWreqyFa~I2--!_7y z`TSjGEP!_q+B6yEgJ!S%_q!8NOB0!~a(`D#u&OFv<%RoIUVp*&&-^D zxQv4=ddE5%i&xd2_p{3UF;r37ByM{zqtNHbc+P=&c!-mru^_)qz&bY@L_Sk9FgW z9t%yZ2R~$9MDJ;=XC3?VbVziowvcMD@ z$bM+*rHoO@he%nJOa|l3*yAV3={VWj3p3FP&$CIi(VC5*wJ42ZUWAntvgG@2vgQqA zpc|{bNzkzri$NHrGOHGD1I=1@!J}-j`2(zur&h~S?=6V-_kF+o)F<(?FNJQ9c`B$j z3!-#t4`-BkhOb29APh&{g(QqycPEAXCJ=;c?SU2L3T7KBtm>sP#V%uAq`6+8t_)RZ zr)-+obF73}Psg4ey_0GZvHTsHs)TRtbxYeIQe*sq25ye3d;ELc&EMNpj;fE{n@`J& zw6d_F0h}6|df||Jv)`S2iMO!sG>Uu z(v)j9XupSfgXo1E=KVo!|Iv+?46jWPmgUrp%RdUF3lW{zjb*P0vbSyJFGpCwX1Q*2 z;L(3~SewZCT-MN&TDr!rqng&HPFiT>x0QZ|bgnuFjwPfm5@jk2DpX(#CK!_CnRMz^ zvUf1aRk_pXg{q$#-=P#5m3t)s9In)Oi}r+K{NzMbd%90QgbEx7CMmda-=I|9u2Nhy zY^%tXCr|W#j^|5y0kglrA?r_xY4*E*OHc&+$brPYE_o_=9ctzn-8x9rwsz1A@OR`N8MDqK`3jxc4%Nhc>FLoh1D zCGpm!2k$-cYMu6)@dh3Xsh8fEtv+bDz#{Qz;Rhy&b|`IGw;-RtQ@Z?+TU|aDS36xM z$O6R4s9gHuy)NE@f6v=pd|{S)4$cn!MOW1l*>S zfIn#R^^Rr$)ZYvQeg-apz#o`_T5L+hAJkR)8@G%<6qwX&@ETAmsfHyz1lK@G-CHHork?~t@n)RiC_Xrl zb<^e?;^tIavJv|mHfqc2ZiVXpUDdb&6di#Y8S%(({`V7%|FbFo&!+swO<8ZeZx+xu zi001wN7QV-%8P3!ocwtL>{aqUxx~wn!hNpW>fVxvf>F`~SuvPQa6{x5oy7I&H$}oT zLe?P4)I;DG`Sn|xbe~1zt~pP|%Aro}-j%)!_Np+-Cs|*bz*tJh@4TF1IL>!>^FDhj zN5_HvBB6YC)tSoHqCDK_qQdg`Fm)egpP8C<*QJGi0qc10GjCSkQ<|yGe(${+{8o<> z-}f~dyxHZ1=MlQ{@FX#K zN8_>%{gO%>)JQ+8HE)`-h@AfS$m{=zjr7+VhFXsm+3~)5g7SFzRTQS1jPv}f2umlz z$30Q`Lf;^ANo)Ay!IBKzU^mCJNeHLgo+8HzDXgw2w|5k?VB8ZEE#FUPFr zu>~oiSuD#hc`+AUh>*p96{*Y`)TIn@*^(MNtUng;^%YP|nQRU?B~uvlLBD<-Bml2w zAu)=jYKC3`3yhbDKO;1PXYa+Q>_t|QO)%2c@MCZ1!854dd6PXg!eO{3Uc`RZXlMX_ z#}9d-aubpLgjzrWLF7JrdR`cyu#gu;ZJ{gqIge3|`nJ66rqXR4e229Ua`)eR9Mc-% zF_hw0c(uY-Iq%N@8_u6~1ZbYIKaO9E{5mZYBfmDU()@KXeSB_Ltetl?`Z&|PMCsFR z^bDpKQZ{3nJ1tl%0m){UTlIQcWop07;@5Fqw5v58b&Mqn(DfT{gl$|~3GY-RwHZZ_ zLEsQH)a_UC64?@gFlr6L#0hTuBKLolrnkHU52AeZ3?UEP)ia_NAojRH}+ zgU%5H)rJNOt&ym9JD8Ej70&{h&ew&#kl#1X_kDwo^{u;X$Nliu<&{Sd&5SG>qP2&$ z3dUg3cPp@I!Zqr&YxvWVOVSOa%yAGZ>}hnomkf!XhE8H?uS~KjparGhp zlw^|(Ee6^Ng#r5%t$;M&r(Ky z8`6oaI<-e`FQ0&s%lOD1b%H&FvcZ5hy12hi=4sp`$-_JnDCsRaVM@v-$C>&Ss%CFX zRZSXLlWxkaj|7Zw+-!PFc5`q4LpmF~ZM77omZgI+(**VUAF?jG;a;~G{;}DF;DIOX zVlk?lmtON*oxU^uCEsK5+>?L(4{3>Y{SPz&w2TPNNn8+vt_%3s4fc|~APltr1jb(@LcK+t>n6&5)qE~V zmA-^sSr^Ur^bG$E{C{Zpiaw+HSJ<)(Nb_(ky^c*>PgyGKwXd zj)A<&iPgTnOsXb)CC$s!?5bZb(iwn!WF`Y-;RMEO!%_1vWnG~D#Y;fVu5OFf-62ol zN?Z<~4rKISG+zK7l82A4hoT+yGsl|;PI8&yb24m=KsKL*&n7?!td=boZAjVyeRd`& zY)cWp?hYDZ3%tVsn;3 zTTKp0-A%+Q0t$3Pn4j7-4!~8ZNEwvcWfC-4##N!VeOTa>_rOzk<<+Yi3~; zt=7}S<}zI=y(P3GLKeU=n}S8dnL+{NS z?>q3Ml*NL2^tH86BP1>a`Y7ViTr>q(7>`u^uxNTNadL_$UGkOGLi3-I{rV-oPE5J3 zsq(E9B1glB?r!n?4CF_8p?((05|~E#T(9lWGQtkj#F4IrGZfgKOR6HJo=1GC0I7|6S2gqd#)FyrGJ?Cu3YZ9D-8bv3fvOeW=8Z8T94>)bOHK zn}F8!Rt@o0Tro?IL6E)z#05wqetlee9m8tq;<*N@3ksV<&=;n;ezemr&o#_r|NCJ!=M} zk$c@4S2z}zWoH^wDK=>xFjM9bcOev3K*SEzPl9+C2(Ny}Qx zv{cL%WfL}7FeS(Bq(%Lh{U;?)uPo?Dcsx>}e<@Lx+d`dk#^gZLV~iY8LWhi3KPdMn z6_g+rS&_;2N>GJZe`s_5A?R1CnoM2X*A(iPBE=LBr(MHZhRYjDcUt z1Q_d+Q*lJ={6@*_5;DtJVl#+PL8xAC!*MkB^O04}`YeF)Sv;+zpt%5^$K^^bUE|5( z6jg~TcB+RT-SHl3q8GWP9NySvKMmyUw(zJer>-9L&>GNKTkEd(bS}FZgJ7Q9G63Qf zZ!Jgx2dL>=hsLIX*K2GXpXfGKYplhCz=-Y!y=w|sV-XZh=UqJ=F!Gb8JTMCaA0X)` zYr&oTio?tpNW78hPugjSjxCA0TrlrX8cs_yzJ{A0ZF%CJZgCr03ggShnBNWUpKiEi zdXH|{n)T{u%+IJ&rpi{+XPC$(D5hA}^iEqvIntJl^h5H~K`u>hl3+lT^hJdt5i;6HCp=5p5|>Zh z3BwX~kl|pd&$+^j2?(Y6GltrBk z+OgnlM-LJ4pdQ*;B?e*cnp3t)4_U{)85J}YtQrXF?t%qdAfj!Fdh0!dJ5Z2;b7uq)%DcTuZ?Rtg<=JGGp*&6{ixSqcjO z!Etxj6*%LY<~B!>xys?j2w?Lf{sMoNah5E$^k|`1**bDkLmUP-{(^j4fWKk6ii<`5 zMS2eZj=R3y(3;*v?YTn4-1zR|;$ln=1;`Ob`Wu=Wt8g7($Np5yHGmER`BBF%>T8h> z#E4sCKO}LP^wJD{NOby#GQxwMTDxb#Pk(@jZ)s`WN3e;3K9eABo3K`1pEbQBvD={~ zq4*y%y<9xKgYP8+gK9ik)sxpW0%4G_zWJ z+RtxwwLSXNJiKi=vXNdtx-QQ(9h0uw`*~E9(M;3 z{?|VYTbGt*v+iecfxgc9(Tc*uFX>_-6zcVUX(-$`tcGqihdCHP3;*{J{-=*@_$ahi z`JN5;T3hxuX0EGn$ulr^v%lg9&WNr#6i=9jaZ9X}zXDqa2;_~BBJ;L^hj%13#kl8~ zT81P>q=N?jTwcPiY8y*r)L16Tr;QbiNpIJOQDuuxe2%(o_%gwio}Jp)LL*hmIhZzd zA~H-WB41VC5Jh>G>Tx}<6mfYWT+fS+&uY>gb>!;9co2#&XnmrNK+aG+ zf3ItRRl5uq7RBVJB|*&;6!ZY}V?FXS$KW8-Q(I{!fG`uK7^5Cfa5?hL2$ z#?l(E1O+F*qX}Ta3WOB2AevRdSjjy}t#Lj%RhJHFCxxsq!GNvrzTjIM@&rw?cXE=R z?(SAn&Q`V%{r}F>tQ&NKaLw(JS%b%efFVdUDPbLLs_EfRT-vr-Df4QsBjHHn<@_=^ z{*o@6eb$SD8wv@0zvpuqZLz&$J$UqZ`4wMJ%26ICv^_o}0ptp76(cGf4unY{Q-j9g z!uows$DFT_bI}{9V=+jj?LS3LqQ?FL%#paj*{-!Os)Ey8CWgM*G2=$?3UYJLMX@NT zcVT{f{Dc-pqan@DO%*o!r&M3EH<^bsn$Y{cwqOMR5})Av^HVxdPoyJ}NzfYxr(uLa z3EJ}6DII0iaVh;p#m)UzWo0~s?Mn0e?Cr{?7X?s3f1XNcnCyvgmGN?((rwNJUvK-% z{tI5q)l$heH!E-;(9OvQe3t-qXP-vmaGQM!B7XaOhJU0rX|%!$tEK$5Oe(Z3EnlG- zXTC-D$e5mQ5(#IN3aGZWKW*~NU(ZxMu4Gk_(UQ=-&C|IZlL8-)gAkbXzr;l*ReMp8 zmN3X=k<9R-sNeZ@fr48Hj~wwx(rePfy+W*V-X-gXZGoen2_gxs@B5r$nYpR6dTqWR&_?*b zVN84!nj^BAF#CSOQreTLC~NJdo?dphyW0(rl@9POy)VN?pjqkeZa{?7%@H>hma17h zd?s#N-QNjXLkn64U?RDIa+bB}ziBv(#+4v@iZB6ar-tSV$Qj88=$f;0o0-;qT&GbH zWl^kd)06J4;xdXTFl3rwR7HU80}<{M#WNfHpXks`?|)6dTy}-*0RzI z&v8)KQmnOMffuC=7^|m;s$bfA0mZk)*J*Psf;o7nSEghd+&}6lEBt{%Vy-@L`sg58IP0 z5%ID`@+`I;js8%U&x@{YgDdXcDU(U5%}3LF5!k%(JGk2LI=oIU?~9X^WyI-Wz+XGmZ*!(*>&3i|YY z|N0+&{h2)3iD?jMdicvzlXh0RXo1G8#3ftY{OMq`9A8 zT);{ae=8qq=bzOb0Y* zcm}36-`BDJ*u)mOC1_33A;GGnS@n$ZS3}!2%zHX%Mn2}|1qJqzNoO$BSdFqT1j2Nc z8@WcD(M#(%tRiL^I3-%E5wd%a?W^DAezM1lRUUV9fgX9t1iUzN40)E#0a>M1@i(V0QZTJtQ%K6a*6NW|6xwAmJpP8rsKEPzyT2sgQ-Rkd{0$ zYMgfE1ewc*see##Xtw{H5T`|BGIT)GK)X31ZgKfFgf3O;;anz1odNtmv1avT-Ce0h zrmvDSQpMQREPRCg_zR^t^&HFgt4dWF%ZF%gtUa*gH##BtD}&Ysa8nvai!@u0^RW{cW*9t*8OBQ^4hP~;B8Z#ahb zCQ&izrm!xNAC_bCBwD{pDnfKuZUI*LTg<7zJiy+@3}|YM##4`unKe!rN5uZ}bErTs#@d zGdbB`VPH~wrYpjH1@x7UWn4(|SLdiFOgBS5H;j$9Ee7yV4_06h7}FOQB{le8MAvoX z(c1vUIzqR7+qwQ&uN~)Izs5y;U4Bb-JnpuuhiJ|+CCA|4-)Cp~0K`(-eqihihFW>9 zY4c&{YE98&t~P&=XM79W?7PvxCpdg=KIA0#b!l~&{zy;jqM0a?+rvYn2_8<+Mk%mB<285Yc7>$6c7o*}Oce@GN{o4uYxkg* z$iCU(XNM%eA9=(XBv(JF|B zv+3R4PFM5?(}zl|KU$-@Dm58m&pedQpI~ADBbNNCw;Eo6G@+mwu2RgLmQ(+2FORW0 zUM!=qksdsD!(;OLsn>0u8TdL2_A1`mRjouq4H3u@HG%fM5~l~riLRAk`Xc3dje_`0 zp{aj^BhtuBEIok|u|cjV7P`pLeL-!Hwp(LRI;rRh1k86ILm*CK{jNNT@nEBY)`Q0<|leQt2 z$&ICULB8ZSGFHEzuf~g4{?&-f%Km&|okHACl4OnMZV> z+9zn!-dcyzSszcLiPUP~$D8b9vA}st3|S%-DMPEo$?|kk!avfrkp|Xj*F!9|?J%hQ z+i7cYCOzezVOf5xdqx4?og>m8pqE-_q=d~OJrl@P7-KwG05+gTT%!=A#k2%K)zZC5 z97gu`M~I>+KaInGnm6uUv1@12~V;(~0^-&nad>Q2;Zv=N5wUnAF000;+@~+PW2pWu!-oPpW#~ z0?5UCGO28e#YTv0e8(#xZQnp|6I@4?U$5v?&+r!U=z6z3{h)Ro?+fb zIa4$%@Xp(?C}=j#VD~nRSwT&u{Ebo}6qrrP_ddpE5uakU?;|))k%fYjk`Vfey!3s1 z|8qAu2QKlds+ObueSp#Uik6e@;buP^4CVm_evt+CISE?4>Z9!oD&hf;MD~|2U;3AM zez{2cAZqVVFY+9UpU0#lQ5`lH?qJc78eY#xAb{<@UMn|1vI(5tsG9-h&g$n(DaKU7 zUopS%XOG+;-v0bTl;{SlVnOj`GCR)AIo<}M*Kv$TiVhNzY%YSph`2Il`Iuj@QFMwp z%K3*1AJg6M>|aI!OdZON>;{<6?U2u2h3%5*M?YLa-IvA2NC5(?z0xvY(!G6aVYP$L^Z88_%wSbNVTH>@ejYF0WzQ)= zl1c;6(ib*t8`NIoi@tuAf9Zxjq285P(K{H_w@dYE)HYf5=vtq+t4GaSgVCw69Uz@* z?Vwb}?*~i+6sWn;Cg98+^CtJ*qO0?g_E?uM(f(id-h{ht^I8=BD>Tx&LQr=>%akc49j-~pgmj>P}|_VCRENGa~=xof@E#v;CX+~1zJ9=T8H zE$gcLMILUwGscjll`Ns|w}5trXY@PgVGB{f6I*2Z@<@K#31tap<*VrUy^hUviM_>7-y|Oj%Wi!jRfXXrjWvN_*h}5;Ora zcCXv3l#?K5g370#y+TUBug{i5hH%<<^4sj3Ab)78x`n>Y6E$!mH|o+qw!T6dZF&YI z`>@NrA)_Rw*YNvJm3)b_r9@$cI@_ip{FIoej}X7Lf5BF?v4WyoG%ad;PX4Ps<9) zupeNV$O#XepO6kn;2_}2Lg_7&>ux$ZmRxRBr-eZV=3MYE zEe56F%HLpHl?NYcVbc+m86?$!!xW1O&bgX*H+X56C)M=SQ;y;ZJiQ zY~~b3qu=^DvaXa-U9iAjk|%qCoCd%cFT@aE1IHTgF0s7KjR_3?YBMWxRMSo@G;dGw z3iRCaLh=Le5vzageO^}>7_?}@F53D<@KK?;EvAq07F_AF1bq5pDw^4l-qMh4i7?9ovVrCj z>yo>Qk$;E8w_nt|n~c|)yEh15W+-GL3R(BXsxmjwr-T}mrGzPfZqatBHbYVsOPYe} z_r`w2hOJ48nB>UVI@#v`vx9WgYTukX3JI)-&{01k(<{l%+oph|^iyp8Ba02?68_D2YX3@{yy3BN&}j7`q!>IuyPmd9lQAx&xWB9?=2F8ysy`gE_MUotoZQ^$-JE@1}W(CF6>R z%Bc=pqm9Z6V1F@lldWjm+M`!ftSEH*Oh)Gx@xIRieO(o^lM+Y+cJ`r$GCCn|Jm}yj zTU<0q%h5+VgX>s-D!lTXENY;xV=7#RxdkaTyZ>-~nMyZcZV^rvWz-y1J}X`h4;lMD zvQ;d#V&yKnl(at<_`nqBE_P?ddEunB&BDFLNXg4cnDVlH545Qe6%A!fP?Sz`)r10{ z7hOWkk^oQtHRKPeVT^~Y{P*cFUsQm`=M{hvDrL-O;bmjjG9Q221&*@g7cXBu`{lT>8yu$6nRR)tO`Xn9jc^Kn z6fyG1nF>{J7B8xbX_h3~F{fC(18dP#H~cAMQ!j+cpj7)XmRN-}Ee!Fw$j^1w_~Vzq z7GH*5b!XEK>=NupUUi?@Ll-h`JgYH@hPsl_*k}%ydugBaL~63!yq@wIzT?tmY9AyL zi@!A|$`SuUUSiY{k#5Sh&d((~7xI{()!V36v&iMK%pwQLlvC@2v|WMP z^1@wI7x7>kCu}mnp(PEJ#7I{$<4x}$7IGwl;b7qpWw&x+t8`1TJ!Z$TEUHi;xUlbE zK7054hvRoI0cIS3c>U((+h0B$zj;61FCJvaYY`Cd!~7%1N1Av{od&v_Ca|v;Nf0QL z4vP-`H6$nb2r>=-6to=VlHwIxY^aFzkn~snon)a%GRh%1xrWy$9yIVh9Cvg(JiWSL z?-#$Up(*9=qOLHwI;9ltf)ZY~3;Iq-Q*aN)I~4=re%@m;ECp6f`u%^yCHX*ZJ21G& zuqO!NvEb>`#Gj!`zXUYwU-g;R^7o4>UX`0coZxg83m{eq4*-_YWg<^UlB!D#(|Dzi zDh7(%(Zjv41~y`4Wb@{ffB}1TaF!?%XW=HXMlg7SmpU^7nuTH!cc{u{tbz2kf=WAN zPd0(AAMGbP2yysW+m4duh|QMgO*tQ(+qFA0&Yj$82~BJmU#%+UDF+FZs9A(@OB!wCg3HOEc6Q%29J z6~V~`lQ0AH_4Aw^>m+QDRUKVlmv+FhDrFQ5zR!hruu}4S(x!LsHbPNmlC{AZv36MK zzLcqy7P-rtcS7Y(Y)xQi#NBq1MQQ|Ulj{t-LP#TAje=Bm=rDyspDOMCVE9ur6sZcX z#qJ5z3ZRx(zCSCU6npy=2Tz3KGB$b$WUnQI$hV*28F^QuVcqq$ z#5t6muDdC1YT*NQDijn2c9Q3<5IvEYgC^q!WBqShn7#6U?6UMn;{)gr0DdZJwSsy@ z1mvlbX|^pylM@U%_}<8Ev=A<{>Q}|*jG`P4#u77cJq-_1$8QLsxo~_$(*QWy*3<-Z&Xr*(-oLztQKKKY zHS$I~_{jD_?r%7vkiaxO9g7<^7x8;x#ElqACsfzhT9tU*32a&%nX>(nEa-KZhA!2? zBYfO0yii{sYYOjVaS+Uuk(^4=s63Yneqsay(gG2PcmNf)9wPEvB2N7$6U*@wSvZsl zBlEFVc?36Vk*R^$tuX)!DP#R?f4|IB#qYMVy33`vHe|X7^}t zs(*wZL>>!=Xpr;{e_>kRwKi_bnAB;%*3JH14O4KSZ;<->> zXHUo+U2-Y?jM3o4q6EMWwSC}$py}@ib#m2r=~Q;&Ed_s=-R z&W$oIM7HJZA8iR9L-G{XJ=`&Nj8VgsN0AtIJ^FkG?;#12fz%2+$6(pi$cZYWWKh!O z{deojS$)xAS#$v}!Un+kmoCytoWs811F5Z_=p`&JnznAH>zd+K&3+q|41#AgK5AJm zUGp0SVS=B82u_q}%JX^iWrTbK&PY?`-+%mAO476=;4SUTg4Ces!%9<~h(%|=@~yQW z6geV3Th*W#9sK)i(WF;BHK@c!i2<%Wc_W7%@MVk~WyKCBfY~g;CE+dd-O&|(vp}Ev zn1-MD7r*DLjvURyUn33x=57^0`WH09ik7+Zk)Hy!6%_6Nj4i&dK7AoPHtgZW7hDD; zo-muJ@&V+T+;;tGx>i+ccmaZp2;$ZJW3d8~thsx)xRW4c?Q#MWA^!PsM3Eqj4HZp>=VSG0qI^to(U)Y0- z;e@9zUMEYK1VGLcynG2^2(N`Ou8qk*Ss*5ur#y13^Jb0`TcN%B2_HkFblMx9mb9A_ z^l7U&&Pq-g3Mg+#;tFZ5A{mD;4;Il0B-&ViNuIH;`D?<1ij=sYRnV&yQMK3Cg|d!D z-&Jr3y6=mVx+#WLR*n}aNh9V2s!9TSaSTTZN03(=Lz^2t+RH&ZTnv{R75$Itxy60P3C$IwEE-F|H5;P=!v{E6ck&$PG=BNx%Qr87`f&Wy+ZQjfOkS|E zdgeEglSk=(Y_c#=$xs^@E>T~t@O5B6AeM(dOobDdtHYFe#kI6K%xy7(13FS-s_B@m z5X;#-`MxMeTm+%m!J?^%w>!tl+%q6Slf!a(l%zrNO>x+bAvf9<5j-3zRULqtj5|9biyTQ{#V`p#hp0$`8*zc{6B57ZSgnF{Tbk;Y37<daRPbQOl1gjJL7pKZJ1Aztbm$He2+vRHOye2t!II_a7o5@arj1AjL`h^vNk9Pw+1NO4_98 zpZ@6+q&fzW{AT~r_~HKGTlnY4{fC3ctI^{D|8F0XM*EaL8GrX+uz&wI#HX+#{5f^o zW%u@G!;`_|AHN$v`U^Ea*ncqI{}viqjUJ94eK&xA{sIjT_P<*_9zAwizQ+T4^ISb7CcR>kFrFzz@h2Fr3EsWCg2r%OJCl?NTH z{G_gs1~@-Qtajdd`LGrettVPJy;3xwBt}rH9S9L4G#XSIiEtujbi_~~xqlx{(!LmU zlphFzINomui;IutV)U{2tpqG`{4kqjbYa~UJp+8>Hw;g?+M<6M-wJ+d2O<{7>+=jl~^d4jYV2Kl0BX?bEanYa!#IY8Gglowv$m={fyu>~tc#-q8|;X)Zj`@eoOYh(!TYGbROb%vK;Aq5H!s96!NL{e*O)4vy2O)MHdq3`D7| zNNE9S5Ti6&r%}2eM`!Ku58#+kQ|XjYJ6^|BCckq>e_UUSFSCE&FT3HC3YXLp5fPTf zZgon5PD4xNn1$rcg>=nFR=1sur=pSz$#LDp3C-9$(Ec+Xg4hcnSyaeBquWXp>i$Fd zDK77$$;1QbH{hj3`Ek*bUyDuV1GAPv7hm~HVplaepkYTo4AHQ8ggoD-EjHg^3(sXZ z;Vb_YG+z{AZ?d5b%hy#%vlPEqx@h0d?AH7h#thZGyWJ|;0e9sZPWORQ;8hi8 z&`!0!He=pr+o%8?5|2cD)GHlJSzt&)qP_7rdRKzA{GGvC#@`aRA+$?INyWgzn{QgF z`SJZc6h&RM;)i_Jp`Zn8nX)lnG1LS?!FjdYk?IJJRAV!Z{bzg@qjV-dnG-_5M#4Ov zv^@jGJ{%OG$b~jj`ts# zq25Pb2`Be-Bp?{@EjLQ>zS9*i5~dMUShPwklF3ghyQv*3Q~ z1)f?|ULcq)M>1lhi35WjV^NL>l@0Vg&IWMptm3VVVSBNrz_n)HFKfy{GGXO8uYib4AHTNgD zutvU!5?sU2Y(U5QdpgMRAiz-4jsq+a=MXMU|K8v%FlD~mVW6^K`!tX^`BukaSGwW0 z?)M!5u1zHnCcJ~q1C`SP3flLmC2Li`2k0LUtE<;MTEsl0+hX`)^p$u_Tz5~SC5=P8 zCFrX$a@%#ErtzRT0O$f`jrORDyeRP14@i6_6hEt2hw}C@^Q>MiqqWhOng)GwPx;1; zh!--{du+So9=Z{UMw@nIj(9^s77{@*etb_7YGuO{HBpHb})iGG&rJl<^DF& z;G4sF4lHsA8%?KfqA_w8iHPx}C+=i>$ z3tO>2(JJTf9lJDT%3`)5^~4ac`6`pCpOgoxc(zEymy~We)qo^~^M|At#jNQshB0yz zmh}&q1=IVzO0-+=`4**7SHm`Dtk5EOxmXptY3HQ%LFaB8V0MEC^#bRtV8=}1Tvya9 z&B%fyn|-}Eg+lxGM-fj=66=K?eOH}7?g9^|cJ5I434L zk9ElL8Ei$_&WhLNJB|D2+5bv-W{l7uR(J)GMX;B5W}t<5LFq_U;p;itxk$|u14YjZ zbxOh;t#qngdUP6j@;=m9T0MLchlMSEjf^oM0)~EZ52e(!h@oM<`w*!34aPv_w+_Ol z+0EX`!qaJ6^y&^mMEEgh@6W?J!Xp{`w^*k}O&ar-s&-BN4ExthM+Xu|%VzH(a)s!< zKqrR@GZYgQPIF6f$sbHaSP21`1bZ0jAm5L*d0?+wmlPi)a>PM@$FqeqzrebU0BzbUS}Hy2ISUQ_Ol?>&;%lj=3n z4?5pX87KMm$xlVG1hiM4rPjQ`ZmEC*GCXjjZLq$4GCA1#aFo+w3D3v&Czzs7ZEubd zH?=Tf!fSsr`Ez#<-w^MbET?i=}gL?dS*B1P5~q`ku=ZdMQ_l6j^$b&W34r{KYAuUQ@evi%Lc9VItb- zBH~gd(1C%9XkWC9idvuJIdn%uebu0Mt)X^lyk^CZlu5?fC zAiT4woz3a!5P<$c&&5*Rn}CO#LRkr5v(5Xn`T{ldu}{d8ZMlO$13Y1TusQ1W){5bt zibhUp7niME^qyCF$0*VPwM=EFw)qCtG1f&h(Bj)e{E>4{0R@a}WRU$rt; z0XP6%i8tvDNcmfwwp~mL2z&9BiMCr|__2i~pRd=>dNu^lG#ok-zYr zQWY9~nOf>5DqVFk?dprg*{vq$4<$OQ6Tqe68j)R}J6@^HI}1!CP+tuu>&e?;nd059 zip$Lob2Dy-r5cJCSPUbPdZOmK2}MyV$L9e9*C#@&ol_De`j#!a<4Jl%~W(sfH<_5nHhW<9X-y6wPTq9EIZe$eZHRde#{r9EGU|X7Nc+3(j;UJ>YIXzr!`U zA(Al!$I`+@n6?P-V}&3JejwmDi}iypb;xjokn|+U-0jR7RLAsPvc7ajS5o4}K(-tXgu8rPdxjXqCGOuH!pfIL)fUo~OK6SC zF{{XZsMom|NI4cNbeM*#G_+DwDP0i-emC-i`QA7u;jjhfNfOr(qf3gFjm9*zIGkoL z8`lZ2*@5!qYovKTds{+>ewhDSNLez93_|UgRHPBc{kUE&%^@kLJzafzx)P#JC8t)A z&zxFmIGK64&>hAVlIM_o+@=OUz`U8qP)Y@#PT1=_#=C{3u1^Lwp$Xgh1IFd?nP&Y8qK9A>|C)x{x)7ewUfzt@WO!@WNo!33E)eGB+NSic@E7 z$887oBfS%;)FyLa%T33%`hCO5`j&2$+6SBR>GAuDXREB>V*Q)uid$nbc!kah=K_o{ zeC^S2tI^?z>vvT8e&?*Uvk9zm3v1R$StLKup#0;8XPH(c^_g} z0wgM@zJ6A2@{I0eoA!by&_xQ9{-*I zf)sVVrRb8}OS!(j($0-ks$6_F$!ha$1tP78@sY;+D>3O@&A!fxY?U?YSl0LQCL68( zT>p7kkM5`Fa>8#C>1$YohC8+zBSeT}4sILoVSNNxOH+Rypa+ka%)KlqZ}1<)tCa$+&f&V^u%=JfVg`ScLz#vuwn`Xhsc>(hn4Cz%1%ll<;33= zL8HQbou>AZugr(1&Q``lQ*0=DW_u13K0_S09!qK;(cdPOg<*n(;nMyr^4)Gg*5)sO zWER0;=k{Pt{K^;0d}ae{1w5jkIcY-W z2svpssaUpeap{Yq@)rsxTuLR8?+dhY4VIB3dv{U2s@M~iOyVy>V;8IW`MQv(qe(Nm zN^Y8(>Qz7Qig|;IO5#|dBuluFp@e|EzuNw8ckF+>GG6a@#R+UATxNd8byV*PNbIsI zmT%fqbYV;{&`EA!Y~1Lu$_jj;loOy6gd)G7$DI?scp=>(bf6QNYX&bVx{c~&D5XKf zWf0AKmSCV@qoGWQ9Q?K^0>(&VG~1gFp+ad_8a4;?=62cf?bjHyzv(c*ASN} z;myT)ciN?PBsK_hljno9>FfjV-+nc=?Ss(kflj%z9p(ZFX#a8HcW>yUn=J%q=8Xle zGqCDt~FaZ5fa$41+gxW{y?tSo{s$usuw=2jn_AlPPdFO<# zx2}Am3jr4NALMt72%HNE0!XjKfeBW7!Y470f1pVvuch(eMY$XRq!_^Z;>*(219p=- za0KqWz$39I_vBw{b9~mFuLcK+CGn3@wGL4@Og_W%HYan$`K~MgAo*ED&IoNj^}?zP zU_YuuTcs$fc5pj=gSeuBFFdtX4|;6M(IwN|G{YYWMD0tjJ-#lba#@%>oqi;@iUF4f zjqTB3^k{u4of;UvTZNVZW(u*=6yx~>JUKmVgU)BQ*9LOLOZzuPkB{A8GJs|WkKw=3 z1Nf&o{WvE(`bjo^h+!--5+*&~vJ)-6Hl(`Tq?DcW*HNk_u6!(QzWF#`d^&CLVe3^R z5FSU&@~;4oMu{!D-_WV=V5=xG*qrHWB(yNP9d;$NAZNP4POn1qHtL^XN$lHhK#xyv z!j_f*&1+;sJ17PC2gOuJ(e8~iFJ%y3-QIF)K7O(3bbiw542$~G-8;$sW9TXD4a6xc zMq_xDpe@% z^E5;v`W)1Vqqc_;J=HgP&s?vQ;cD(#S{p3UNl7)Wy6Y&uyH9O9Lr8&ju6!`nIp(jAt z@tytb7fdD$?@a>(thuam5VT#J~(I72>G_+HBGy4&7 zWQ8j!6>m7SgDIKRLJ%NwW|r~0$^6yQmc6nKj6hXNSH3>-KS2)w(i!sn%Nta8O6{YW z+ua(E@^JTYRiBBB0(0;;tSR3CLIbbNi?Jl&t9S92ilpw>Z~pH1)Z z$IVvIel~=?-f>>tQ**Z7Ct(&AT~>3OhwZ3N?;XS5qPS%*fdyyYeXGyvtT3RL7{x*N zbaJo{_r1MmZ)>SQx^)Z%W$>&*MI=JdXXtvOH=;A@YzOEsy6`)jarOels zw~AjgEHcGrRHP=~wPDL)*~FcQu^H7K$#CzqN1F`Ez2_n?uD!>rq}VO0v3`F0z=bO+ zYC*kzVy16r%MbKcLgj<-d-YVpaW`Y+!>6Y?s((0Z=_?v2v#|$Dc!5Sj(^A1-3ID~! z?9%StP#4H}Rs@(SRged{*6GMAOMOp~PPel-Xe?rQCSW%V>r@|w=G~S;>kh_t(G=gG zDjFfcn*6A9wGxU>i-w5@nnIbc8Rf@FerT#rX^Wg9eYay{Sk!4pQHM#OOFvXRx1n1k zN_5BGsjSnzret^RpK7GB;PzH@4zIy1qH~<4Q3hxGx$MyIPs}@xsh}DO#!4;8(Um74U3KMNVsg$e}j?zh=sCES$bDyr@7&3~)2_*v8;@#BYvr`XA0|1o|B z_;=a~G`nv##yL`X+5O4-G8KWuEHAlEljQu=E#|pOM0F$C>%=SW?YQ9Ym_>{O=8b`- z6*Lg?nqj6fIj9SnkGafc=`PoA2u@JE6?P9R+lnJj#QSx&KE)9a`3F-A_K440qP z99{fmgZ8ZcjCsmQ>3p3htf`2}+Z}Xn4FTq?g%bb_N72I=obff zHsIqyyM1RduUNO#+|M%-eRBG9bg%z)wly#<*GjGpDGKp(qeklNuGrG$G!eg^%Ys8} zFirHftDHa>u7t&7@7G1KID1zt>eGs#3F;rRcGumzLdy%A{iQ>na_w`u6+hNk*XK@|*#?ZNn;6cdsI#)$XM2_u6q z_t+T0R-vVGmrf?OEcoGv&z_2S_QsEj^E5CF@yKqiX@&~jTG)Mxouc|R-skedS$i{I zmKW{x(d3UJWjfw3&Mn97PD|{rUB~z2sGBp6rtr?^BhQWd-+1j@O$6_<^g1^9Y+~5hc4=S-(t;%&2ppuu00EB} zd>07vK})KA@L!-EEaK}suD!L*&LsQ|ckcXPOc9xt ze`1W6z7xdS%qcC!-Irc9RRol#FBm|su6jVEW8vg zuCzzu>iT+RmH(TqQ*9x#P+UyRliO)qeA)rQwbl^jHP*_DgXE%FvBRm95aE8*WLcco zH^xku5)T94={L*y;xCh>h5>dd1Ji}BI}QO&`FZjJQj&qO;}in@p54HWkF7Dqt;jq) z=Q|*4@DC7g@s+XT`fcp-$JVVm{W!dT|3NnR_Hj0NFhP3_eC}hbJbCb!kHw?S_!Jr8 z@lr3IO&)NmFR?;qOd2dVf=4fnZeJ7_)9Mki$uVPf35Jt8UqWb+O`zDwrE_d#-eZrFLbId`}@z9e`NaUB%pkW1!vJt8dOoH0jdmdW)yRdy5OjD^5>0- z+w;0XbmOE>vMWBwub0AZ6?-3Z+Htu=4ci`ADVV!1r6t$9M*b59h!(uxvI2bUxGgHU z8OfB=SWK)Kx9F6=NM^$5UM3n4+Xb9oV+_mUSD@gIDHu)R4UE3pi%R^OujbA9@q$Aa z9>co~ulUs9v@#o4w(m^jqWV-}m=rV-~^A%jG(V}b?$l!6Oxup4t(B*PR?IY1oRROp2fqMZ&+~CZFhC!TVJXb+UAfO)eM zCUTS6%`Tj~%%ZWX?)<~>3{Q}}4YOOFO-zfO$m{FaDWv4+(Zf{8L@kQu+}j&#(J!j9 zJFZWT&w-$WRYxhFSb4Sd#w!%s!^pCd)aEC&Ped|5E8FD&n`T50QXTX4u^qViae$|5F{&Sv$&=&|>qA|hpAOn)K~yBI z;VW3e_ss$y62X5n*4F025f#g#CLym|!AG8`^!FEw1t5HsMXs5RyjOsT!7*EP1_7&) z0D3gw1<~;=)nI7LkmuJ|$$wVM6L?Zj0^@!wdA zKD<1B{nLk+@Ba4e$LW6YaHnSzK4N4vV?oc&JwukA`5odV^0dPu>B%OGfFl8Tq7DdL z8Xjl;0hP0seXhkjaus0)1PP;h)+C3TjK{6scmYG4wT}1(2m}kE;UGUi4Zcq{x`o96 zW3#yofvH&NvGn+J@+_B8pAk0H*QuU1-uRbO;r>E}jxm<>K9 zn1#SNo%K94#U+q-Exd~(AR{Zdu&FXOWzu3fZ$2rRpUBb=!hMwNA(UqoFGrpSP_yjN ze{Io2cxVVITwOb$SGqUW`2qX3+u}%ai*2yT>cfsFms^3TtrQ2V(u5RT;&`i7$2^7u zw5nQLVOj-!e0#B_~QvDdJgr1C!h~>So&`!lS%3Yc#l`p zv!~36LLb_COH@!S2r5a61)-lI{S0M0J{j!8okh#>iDfeWIPHyIZ!S#MyK12@_q*3N z&DOQ4{_S>x6L>QM@|bk@&7lNmf5yvZetHTJ;>ubqZP7b(zUAEztsYTGd*i001M~Q+ z^ZMu}v-eM-C~K*1Y?-)uCVd-fbCCYiG(r6cIrRPe?wpP4e8|0nHdV$KLwr~;K3GrQ z4c3(VyUkh#&e5%wlTT64ibjU`&BrDFZ>D`Q$Qot!DF!C?A4)jEKO2)UCCbszL?a5< zq;`$d7XqfcUqTpRaODVJ*lGE!w&Ldrmtxl)jScEX+lix*oo`VmjCp=|@K`T9ZIaLu zB-9G|1)_OJY0OhGv^sM%70-cwUKJ8;W9{zv3NgDDF$mQBfRm8kYX7;JZTl`av#fqa z=e^rtOT0VLfCu%61+YVJHwF!=LmxEk*yk?CRrcZ@SG$XlT9|t*6YWcav%a6}cq4kv z6H^(=C@fG^r#z>|wWy4<8wo(tZ%GhBlSBS0e#Uao`Bn-;FYTBD*Iyy#fZ;dws+cCS zwFG6Pa5jNRC2`fseAO07*3Cc4Xe}0bVDlYN05`?J;PflPcaVd8S5z2Z1nAF;c1-R~ zeuA68sq9ZJQ0adcEfUulI2`DUi^bWqg$fs(!TMCAFCu=G7(^(XornNFOGvrel*1`I z)WxUwmZS;YDi0SD!gG(8>MyPp}Y zitQD4%KVYp)fp*s!cR&ZEm0$~jcd(ix)k0IE^}?nsRx^R-XP6^9T+9|ifJKD_)SYv z(Yi1_%_gDoOKZ4`wrE6HW@$Be`PAs+-hDM8H;Q5Zs>lE{dSSc}i%D=`Xq-y6l08xZIq)uw$!}p>j>hR+<0^VQ`MG+ooXBv?V{cS?3-Bq1})r z8uDVX%?*r`nAash(QWnDe7*LKXH#N73I3C5k`zMM`BCdP!xG#P#bhszf{k)}n*fY; z6zyg^APPW=DmlRerY%zL(W<8)C4dg$%Ic>nsO2RB(1Ym?+l+!m`7!M}k=TtHH2 znF|XDCIl)>ddt^aYR#$fTkZcIfxdmEZY7(L)@Wh^QL{MQgKb7ruc3?<=Om`0GvxFr z57rfH4$@y64*P0@8*;Av#pm+Z&4PK;+|w}Cb924#>IaLx#>>}mR!FZMIN}4rvtO;= z!#v7GF+}e)cM9d`@vU?XYL&q_^~Qt)eiY0V&tVJPq5Coyt45w1{SN~L?)Yi)g|fSr z&A>|0#HPI>s4E#g@RJ11Uah@Q*FtL1sc^xT&GgO}e0g!KWCz8Os z>#ob)y9q0ccZxk>&Y?N|cuXfUmJT%X@?v4cE$Iv&OdUpNnxs#@eK0xjM@{wf1g(yo zmD8>NC(uumndpU zXs<Q~-3d zDiFWijyaGn(=8E)kX{Q0NZL5=j$U7#x>td3PsYCuCU>))sPcwR>H(>k+!Bi(SQ zy0_qKO{{uj#iGwNsYI({mMnm_+DgF*B?C2eW|mYhcpZ+mYFn}Zp@(Z?wq@IP^NO); zg9SYY@&;On13H5|X0FIm;SW~5fH35izHBiajHa}CrlCKM>Pb5OUx z59C;i&*MiM#yc!XqLt*BAR%%5M(}X9v3)n=#YNM=(5|-M+c9oB+f%?=3eP4&N&8#h z@kU5d&s4!v3Soo)grzJ`%3?WSjj%*Q1w3tW++AI9?^fQ^)vZ1$*}1i}Ou~F<`Y3{cf3O9 zRMFfsIQj?3FOApUO9rEXgRr|zKpCe*VBx2B6MAA8YB!H%?$mUe6}tjUa#4@&mh0wU z1Th&z_Q&|YNqD&tQ}26Vg0x?xhb zuYj=o@)nutneX!&StQzrcHdJV`Jo5<6Xhs-m-16)=3}p4)^ayTNc%ezu2wfo)gXt(c(&{{wKy^Gz~`h)wwb4mIdfBf+G zZ6~(9ZA-)8a47Td8bI!J<1_DHu^ zH%6=Kt08Z%u7|B_7adiW=h0Uwuv-9>n;TfG1FWTl-NtCqJmovLY5{I&+WO}9!;*SL z1DGIbDSWTt(kYL~v?Bs>DSxMUtI*-F-wY88kA%CH_9l*QnFkTzejX~H&PTr2>@EH# zC2iiP8%0j4M;B|Y9#vO#o#$)Bu|?mkfW?bNNPuziNsuRlA8C0XX1x%}iagH-s*Utk zs$6(z&7l$~*=eX)@>X5)3N6ubmC-T7ww-#WqLEc%^yYT!bUVXy`-t9BmrIS#mOOcy zS}$cea&Mgtw9=O5E2uKlpbQTsGX9gm0g$u6SqnsLuk$;EC`NViX3Ck7fzra`R2%N! z%zgSQeQ=Z9i@I~$l+qYX=`*HY8x$nzQ+d;7^s~e5h--DzX4LEBI9_r>BEN3x>K*dv zr6O^D74xNPneR?A4$p^fOTvb{*?C!QsR?D~mqFv;iB+oYignnA*eFEI%5aCMJczg# z4p!H2LR+%vPddp*>HrSR~XoP7$sDu@Hg_?Q)|dc zB29zgurubNE6i*?h+_R@|Dd=x+&7Bs$$Hb`&ni_V!Z^uDXYP4Y48&v?ft5TJYzV4>6uSx!=&R*hqf^m#0EwV8FoYxeXTAKKW(*K6 z-4-);8P;Y;3wBw2S65lmta(Ca-LAHn8*^I7PlY4xG~4D<`x`kN9i`c^{gVZ>EmgpK zm)}fADxh7_z!AZ15fP0okNi#toR>XBXKmjIKIzXgX3#fE*rSrdJp@8&?>;=OnG+tO zS_8`*?X<2@C!DORF^r$IdQ-vws?&7f%_vmHn`FSW`qmNMXMwhsA}C>ax`Bcj8mXIR z7`JXBFd8?S{k9gJ@)_zRT4Vb<4TjdOz{|9C##kzwIO}z@s=Hi;VElORbd2hzM2i#@ z#}0%(Xm6%(n%)A8EdD;UOwx5)&~(w9bAonT1VV)jq(;g-uNpBxeRaGE6X8_SCpU0FMO+tLCa zPTpXmRneT#P;zzm-7UjqiV#jUV67#t**D#(&vQH#owp9uVvdZu<(!9qC=B z@wbnhg}VO;7V5#x>)dz&9^NN6JlXiWbn};+^v6T&U$1bT&HvhRoOVA(yB(kH$L4n( zmtBs@F3000$70vxaNA>WlkMMi+bzy6k#a79U^tBMUSi89=P~>)-n&JHsuEF@g5hYn zmT+E& z$s>$35ca}rG%Fi0>{uI)nf~}OksffL8Z48qP?u> z1Vr`p{hXKFC}rL z`Fezkon%)gJU-EBUC&X+XVy!YTO=qin@#EtEUFWO@Ql7is&lrDEDyEpQnZ1_AA}nZ z(&3>l!UX%kbDQ{ZOFuizCQ7KsdqX&Nf#-2)Hx=NgS~=O^zKS0na5qZn#MLY=iF$4F zrdtvFfm+dA;V5D~+7B>;AW`!){yA-~y5>f0hML?*Hj>jo%vGJ~-5z&i_yF$fU{7pW z|Ng)hnx+s`egDz!)$a}Nr?wjKt(x#A%Ll?Z4{m{Ru`D}0t5&Gc`&ubkcv9Ra=l<+{ z&Ra+)9J>?JUAgmjMHyqX)_m$Ts@LzP%V!v|6OVJe{~a5#b4TOiay_q>%BQK@vFpmz ztVFDz@w%+i_;A0w-Bx{%et@NCA@W&kIsWZ)*e4p*E&&bL9sppDXd~2=EB)9RI9gC@ z%j`E}@eL>J6QJjjbHo?mp|PqV=!d|McK;?Lun*>FpBxHbqQ3;(1r<&r>}5IbP}-T8 z&$C|@mrfbMBg~v739t@Bv9?FT`Kk7etPKlxTZn)kK!Iedm<>uCJo|AlyR`vT|~AlA2Mz@P&&3!1yhQ9Q&JW zB(G5v_F7H*yVg@m-M+F~UvwgL8~F)w2rz}lQ$Yjyr|;>Nx569OZM@l$Pg+VYNH9K% z%Ka+Oh+?>S2!Tht?DD4Ept;BfK3Jk;D#QPLzJ!&jSK|NTSCtdkKl0V@K>B>SopY!X zBar;@Y0;4g1wC!FL%EFEV2vUi!ke=}d466jOQ{_y#5;UPvw=jUvw_C#Ay=?Oyg+#t z>90&gBoVAE6=-luPXw*5)jY^4J@Lq;H8Zitaa33d{$Tm@`6YeLFFE#Xv1W7U0&Ou^ zPDR$(*3_t|VmHb`QAL;8E*#;abw-{X!>p8@#s&0r3`L6Wudr8ax`7_Jb94g#f&8W` zvkKY8E{5K?7w&4>#ALEd*j`b#x1}T~V09Ag)5UYO8~Y^ZFIEY^Z?a4xP2eL%wG?f9 zP-!o#WpEn$u8Y0?LvXW0o-cZ~Kptw-y)=Stc20=Dk^#zI^Q0nauYd0P&Zs>D(OmRC z^qgSBKeKR2L|K&asrVu`gF5(Y@#O_=NL348-Q?(s#5ebh8OF^2B}o*1q7@2iSY3f#RTMrdBwV{b||%*LV#gAVhG#4 zy4p{kJZ5oM)z+5Z#0msWP~Hgs*fwhwK?6s%2@C}W`3CG%SU(dx6+gFzOM$wr$^Giu zQ?TUo@MsgZc|m9suzTT`j?G`PunQy03LGDW|^-!<6*JoTOLf#-V z%m`fH@8JX14vGKxJpUJtXKf5_?J==yz7JY90rL$&}VakiXO#+y~S{$i!~L2 zKNzrMilD*BNA(o(>6wifwkToKl|5}BgU%Fh-Ok8t$Jj{A9xf}hHml+ybuGFtb`jl| zTMCh;KqoaABvD4kD`+l5)=K8NiiC0H2{YhMvMUn5w@?}`1GW%6f?iYdMjjXqtD2*} zE~f5|*d4+MVxY?#gs-F#-eRvD&Xd89y~$E<2DaoSWwXn6jYb3v&#OhTdQp4?WPbrK zRHB?QP!9OQTQM%a{ zr3hWnt2YhLkl5wVxwUdmUXBXO8oYYi z!H&U=PqSh5WO99dr)*!51e1T{u5yiy9}e1;?|5NTm{;SH1v6VSXC zL^2`2bsD($PjY3qF9=C?*}z;wMKD@Vgh?7|c*q<@MHF*0;tPQTOm)E5$n{buPt38p zW#(s|G~LRG6o5-6+=#qKcqts8FX434;>jK5+OWog@Ctwue#yjdgP4L60=+OvFbdM3 zsJ1Q5ITfeDPLND6QUZ^%*xc*up^Va~pcS0A0~e;F=L+6r*{r(7=H(Avc2a;Yb{!0n zs9Q%PPo!%1Mx!x!V*X%6H!^G%GYWQjqD+3;_6T3mD2dknj08*6@NWxS?DhG2WyeY+ zA5$_`!ZCs1fL=O|T7cG~Lf5h~(4ulyB@@)0;-NZWIl6-+nR0B8%qn(Pua>w_xf45R zON2%CA%xzzZsF@{C%?53uijt7Kh}0vPjF0FbJg>S1v4g>PhHuqV7QnzAm3@bdCJ22 z|9Wp(auPdv%#uSEGsYyI@ooKRu|_Qk#eH{L&iYc~t_!SM_-A<9x{Z%5`+ofYj<%wX zws6z_dz@|Qo~#RfYo}XS-*minyXI`4kA?%T+cjsofE?}|w1NB_{wqT^xN#Z&r$jg~ z`cyr6j`U0`TfG(911ok-KB*xe|FSeZ8k)sx-{{hUD`vlUzGlZ(FJC7p0ejNi0tavD zgZzIApxo`U3B>GQblrrr(Vh?~+hQYajg{g@Px>Dguf&d6^n&*z5VYubop`y;Uo{Me zIp7-vBBW~cj~gg7;GFSQ*@ay*vO+mW0Z`_yycf_eqJujEY+uO^(`?Uw~FayM>`gu zUvxFB^4sbe12Q=7en^OsTo=Hois8|Cvz0+I>JL|Ld4n(i_@Q1jvT7We31cr_u@j`?LA-%Zs;f?%tKZ z#wV+b_DnO{keL>VkSX}2Fsq_ziX{vmhD~8JuahJr?8ZpPZ_3af=yj${!vgSxm%rgOjXuujmj=u=$0iz(1*ix3FyUpmIG3RE zAM4BaZ0Z#&uS)O$<#3DT_g|)0^6grEnI?G96ZBGx>u``D1IbKe_RT@Ue-n<8s;{@* z0z~XjC{MGc&VqFvHriE#X|h^vf||>XTt!ghvitNW&4x# z`g($8#G=}TMB`kF6x~iq?GR3dD%g!V86FJTTw^ySOT050%Y^y3SLl06m!;^Sd1dg? zlY>GXI+FFivag`&vsj#Mig$2Qqm@cCC;>qpbYu58rjb)}SRUnmX-IV&EWNgL_0q0s zUp(IIrZ|bt!yeTFsLvIxL>bM7J(&rQGrU3;aLoEzRS}|st>&e^C=R>|y=vkWu`o^v zgiX+=#$*AGJUJ;Z(a+4*8=NQFo-@fD0F@_`wVev*m=kBlD#yj;0{laPpX%nEVofe7 zGw^PvS+S+OK%3I6vQMcv;~9WrzSJG#nR^w@Vy|K#kqKzf36v1hVLI?HUo1e=js6|Q zksub7`CF9LS&5p6ZGI;E#y{B#zPU5_H*2&eOu=It$uYKjV(@7;H%kdlw;XJ?+LO~r zXKk*OXbP)WRlm)ek-cOBL@KzJrZ7gM89i9l$SRx18~H(4gJ;{GB;83fYO^haVs)9V z&z5d;K3Zkl#%MOGk9s@eC&tUgBflEa3r2ZFJPW)ehtRkw*8s$qurV|mnmZ$Boin{me5g6NTtwf#^m<_P{;r{C^XvcPv=7$ zJ2ZlecxE4ytlbrOu5vMApf>7*mKS2$ip2)lR6<4t(5E?oV}Dp3O;HskJIT)koIPv~ zifMI}!OpTSRkBxS917|1^l0QA2uPg8aD)W4viIsExM3%w`Dn>EEMq+Xzu|US+dQLA ztQ&Txv-V!XM5VE1y|_S*-B|t*96Y$t zn%hEHx4?)e0^b)@p5|Lgtia3=NPOdEa1DWo`!zOzTSPWX%A)?NQns&X02Z1%GE}<25pc ziG8l>g2NqoUXRF$*sNa97pRCfFsp{(&LD`(!$$zRik>K_|q>HHA8?W7cG0IU3AIJ5|@V0fF&{IK}@g0p0l^Q>E`N& zH|gpjSl~DQzIFv*M&VSLzgR2i;cy*>AN%YR9lh0&8f>#(0 z!7HxBHuj;Ew7%kK+Mj+U(PvZq*G18GPN&GFc=2DB0QmHqN& zUd>O7hFZ?Ou?P^-=7&ex0Ixj1IRE#2f3h!&}ntu*|3G9lbT8dHYonkczcfu&|hQA?$n_v+5AlqjjOJ z8$*$`F5lwILmTuopQQFRh;BN@PbDo0X_dA3^u0LLf>##V=fEzHV2RxA;ysvqyOh@s^?v+%e|Z(N%?dRmH18H%a3z@R~kV%TI8<$1zc zLljNMPQ|vp9PJ}Apq_HK*Dl)+_le5&)-`bjqeblQTJdPj`{1_t?@`MpzI6UorD3tn z(HpVafw(E^h4n4MDV;0_=oRaqn%nn`@H*bnSJFJyTDC1~^lxQ%X55TnA*BY+8=&l_ zoOHqM{EaT3efCEJmvC!HB>7Ge&Q}N~n@Y;jSw^Ay;Xx!O2h#CLaO-E?-ku8uyQA@E zW7fEU#E0>UrN#pz2f51u39l`z2V&TMR(M_$fZ*XN0k}?;f|_xbty!h<6HgNH zAgtTFpX$|pUHuH#%zmkIIN66I5og`Nh^N7eYan#r{diS(b zM6Ef*p@rk1hGTb@GH~o%beLXG2f4jb_bz7aH0W7^Zf|nf=O7IYVL#UMhOumbdqBUn zSOB&wDcVJn9+*RV*)9-kxOI!&{9}^Zv-~jsI4sD3Hu&;7=ZUxZPBEUZKEqXciyBPW zp7FWq!})VGcG!a3d&FCm^TR+ugG50|0IWmR0Gj#rwfgy<;sDhRCDp&Z38c1x#5$11 z{w|!1neFTj4iDO!wLcWAHB9^p006A@M@&QRMCe$;)w3Yd0_bYwP?^RA|@T6@2#@3#Eohv0_lxyd*aRS}RO)3zS8?M7-rwOXo$^8>=K_|gE zJ!_%ubnX{|SEZ|cN9bz5{PCsI&_;o@Hzfgm@9Ybty-*0cKht4@YFYEAli3_d1zbZR zUttd!fGj6scTmL9j7jea{Y_k7C&;IDQV&ev+@!cRFUnRd&XP~823S;xsMPCgD7-+< z8~{x9;MDNo)K4n;;MDlw_fxgs4n!!>slWmq zU;|05wDBT^8Z8Mn{D{1_3(vDsIXQVBn**L?xup$4H9485bl~J~NqV2n+aFOX11-Hp zJt4p_Ca|sWPkPV@v~%2^m1wn*PDM(gQskf;)D~aNJL(^!={e0h12ooAD7=Y@WD~7< zhct+pF*5@2H7voJAIzUN)8^@Xvk7q?w}~yxSI~6uU>izFnMG6%k!^Kr%8Xy95t*o( zF@11GY=}$@+G@Om#PNRBT0lI^(MYb1wd(pM!Qed00;wX(M ztJ8PIysaz8+_NcKc)=Ovd&}0>(RK`6$2IekSaHZMEsph=E;|4qy0%${e2ICIFj#=- z3CWkpGcJE`c43N&0gi**OCAP-R=1itK40jPj{obTXue29XqX(LFp%mT;j>6adqxi$ zfU9o$aHp}0I!R#;9@Z}bQCiswQA2f_-;vCEf!{KpP690>`=o5z?v*(_Dd+~I)XC7| ziR0tO5?34_n@7nl%q)=iFlFKn{caJTWJ!rT7%&GDS$f$J^`|dxFJkNCH*`^jni3s* z1928;H}O+r2%Z{SfMrBMhoa8~fYaX2Bxl9=h)6Q~>qq6A{nhp*B=#9# z!k?=tc98HHV;^7f2VuzQooFoW%h(wbd0Gk#VB!t{aqS9VQi+b##Z!`4}wm^I9G6(=`Zl?`xJbwPM;JdynpuOfTV`cu$ z@!kNtSx-tRy*_f|Qn3=99*XgjiIb9dos?DCo&|~-=+)i3VQHf>h*fXBI>Rbu{Bd>B z4Aa<)CVf1zkLJFG;DMTpHPn^ZhfaSbE<=_4w!Es0?J_zvG#vZ+*gyc(3f%&?tH>xr zaL9yEf+NGEDZ zw+}M7qP_YiH=EooCKj1g|JWp7-r+!N=90kR+-oZ(ODFDSV@0Cgi)te21_lB0cVTn6=9+1oR3lGFqC2 zH&AwDCp?(A&%xXPZ}g~7#q+14u6Q11lQuhbF6a5Yu1?BR-}hVdMJk!IJ(Sjb5`#!syKr1#R)i{k2B~ zUDyLM`*g;$sMi=&MsBAXNr`cSl=1@F6IE$>*d65+t0e<oq!=btS25cvYg)*NT`c zt{m3vZ&+avp^9}xp4szwR{*-x!h2*5N=WuX6OU%FkLtU36WLG#?-`tw`eYC-72>+BmF_(yUIE zE>Jc{ZJ@kHo3Xi2R1qyv#7gsH+_!Tm34(RLzUGZ1moWt!K#)9nl@KaXbWAuyFg1=TZ#qK#C`$UP{oWJTk*I{95SqNrDTJ~#&)!^c!fy= zN!S@jw6=>ef)G+Etzl=Z;c?YDlPUo2uI70?R>LD9uDWb@gx$d+p&kN*D zj>*sC9G>k3DudvBxP9^vQ6o8t_b+*l%&4jxu>Zznm}ETAEJ?=+K&{RE?%k4?{;D#^ zJgqYx;S^4|N}R*POXtJtMKH7WlBsSUP`|+mT9e&LlxkV2lzpCi_BRFqEs>AOI(C(# zR+lh253ko9Jk>|~%F=?o=O9icV)AUhXY{=2?{hLMb$2CnR{>lYTWg|CUnq~)N1xznbGdB}} zuz?o$KuC=qhmqE7M<{!AQyut7H#N|SvNPV$5<1lUF0|}qx$Wm^20dE|d3~?=~2#ES{1Hl{mv0i)v>^CB^ zURk;AVKCJo4YPvNUboyMw(iJ;e3eam2zZmU|43WCY9*e^u zO8io-oHB6wS2?tF_io4husixPkcauEkby#4@(7)+4)pw0OVqqX6$EePqKX&E(ElR- z)+-dCFWn{9)(KDZ37|XLxn_7XB>Mw%xue%;Fg#x{z>;{7TUm}VHcxGm7n&mED!Yrw z>`X`+pQCGm;g<9aF>W)|Y}Ym9`k_@sj)7Bm3JnKF!`>BxLlIfwvmDjO3>`w_kdV@2 z?C{4M4IW&#+0X?ED0r>V8%fsCQ$1d&i=;FrC-kVTT%NC`&hl)v8cLnWj8q`ef(f6% zm3#vC_Lvf>tcF&IM29sZff|_18jYmv?KOy3Rfo-y=c?CK|CGle2p_O^X3kB*EyVZS zlk>y8TCPl`I6fo;$ZuS-j^9-V7w(46cfv187e+pWJL^&VP;sG;0vj+;3pkn!f`WMM2fT6 z2vC!QSoWx7x1P7eFFW=ooJ ztE?Uae%j6dE`R((gywU`YpsnosR7u$$_q=B6h=bO%jINNJ;_(IN?P7j{op}4;X-V= z0qT~OofAImxa7?krOGF(`t#kp%7?C*IBcR?&NZy|?oGixF6`!YRCl3}MEBXD84V`GtOOQO# zTq#D>Ul>^{(MUe(#ztl)(*I$n|3kMlzbsp)36^?d#(@mohwjv5OZP+Bs=?qxP=y`> z)t`6~MwNIGR8Qh*5E=iF2WsW$T!$P2Ed}|pn_*4TNe0OL$rCx5kxbXVcHB55H+Qn5 z)-{t(lK}5D>AvS2?T45_S)a*TpSWii68Ojt0@M@0L#Sd4Pi#R4Kz%VjWOZ^Z7paY6 z$7j9bB~s_IKv)z~px12FxQ03$AE6wVqL%CwWnu2{=-;Yu^7JJ0j^fTgDg#HpH$MEwnlT>-bY=mc1=R8h|as#LsBv3 zwOjIu5;dP-%n9D7ch6pJ^E73;YZb(RnRJIqSLMOf$jW8(25Su&_3jHV;V|fihAWy7 zHY>3a6Qgy`a++=BMU7oaK|g4CrW?Xs3tkm> z45{1DM(Wkg!xFX~iDp5Fq)LgbC672CRNz>`pxtW6wPpwDscITPV+x3;E zMs3|-ZanPh+=6e2cV~MB&BrP*Zqt2FP^Ed=tGMjEkG|rBcmJf)k_)eQQTB1`q%qjv ztNEjK(=6|5Q`r_Nf4Z;sKsV)N?myymQ+sVIifgrTbE* zo-r?NMxU0eE}fqGgW0uJ3P%!ZmPX6BHn7|~uImo#m^n4_J?G+A7HEEl7X z#cw5GP?Pb)Y%qcUkMC!L{WQr=N_bJw?e`gb(05c`kdYg3Icwhx9&2%ZZR@Q3R1ZEE z9|u~lJpi;Fh7WJ>-~%k)K*(7KpJ5CGQZx}g3{dC1zUT&Xw}myVAP#wqb~YU?&8wz9 z52!Pt2Kbmuq?T-6rP?=u*BKQRWC8eXsqr~QHyKcSKjRyBSuBMf))!B0Pu=>g$gh;W z2#}+WnFvsgD)((uV#u$<Po4;$+mQfgwLo9V6^L zH?FG1tecbh5~J8^Dm=)(2_EpHOsSoCif09^dS%9(WOL_}6F4vA^XIR{7jgvil9Gl+ zcBuSKCljFb_1Au~5fTdbd_ZUNo#mE$;?5egg@gFjrdvpTwcD9gaA`Fa5;qM!)RMxvP9M0fh zwJ_BCP1c1S%Nxrg629K5v}a9Oefqz2U7S@J!9q>G`qKQ*xJ(rF#ag1kD+X(mbl$@= z8B7v;*4wV3h=itIJ#G{Q2LBjNQuBI>lNl*Hx<6T8rndxij!ehc81_@PRj%XJh|6|_ zb?20WPL4jJEPkd0K1~5N%3q7wdcMRxntr#woCzld(}|9K;B_b>Ef{{&u22iRZa8Ry z85BYm8KFBijsTJNw5-Z+ESbzzUky=aGj_#8x>kEOhl~**c)v2M{{C_uSO*c-t(h-N z!1M3JYD7X^#7AMoyU0Y@2Ch%@#S4Uy_O64Nf?R3IJ9$+7bR)2Zox}l2YL-B)Jlfr#73!5R{0SCx?fQbmizM892)Wg)E5- z77GlD;`nlQUo5DxI@85$`3@GUYGFyg#(WiJ2eWW?hCqtJG?ofb&sd(Q z=3s>oJuNyn6oaXM&1A&_M8J+j&trPZ5?O4&g|c)Qp&Kfn|NpA(j^Gq7k=@ zqr|ac`G6%jtwJ>lI-SXrV`2I#C~E0cCgG!qrzs$09uP}4D1E-QpxQdDHxgV6h398K zy?*oT!|S&{9Y6o&``6Epzkm7fuV21%sO#~AZ2Xr;+4xb0r1hI;e?QjMKD>VO^7zgB z>BGrnlPN7H4_OdzQcNb^EBZDC=10MhHCvp#^@OR({>5T(^NPD()7+aa^4W)`XnbP2 zva|2_*5c~QyB+T&Ooss@^OclAdwt6lZ!5Azhuw>o+ol~5V+{$*$PoG72?o=$K+I)- zGRYJh={}rQK+?GCRuZVEq5VgSA61OQS1I0+k2v=Y`P)a^dqVT?ty&a2Ev3U7Py;h2 z9-LT=TvC43cv+}j$v+y z(_v^{cCR&W*Yz5{r|e)W;O%fO?v(a-C~p}wLM7OPvCikaD*PczSHppDEH~HUs7T{h zDI8W$y4_VXm521|DC)7!lr+)-m$F677{(%QNg6=#(f^<@QB^JMsLm)TI#a$b1i15T zLQG&N+4fFV1p~dx4v>_wwRHW64>z>xmO^Lu%xPha5md>r6XTnt@CzwUN5z*rD%eM` zs1Q%%F&FC_@-7#9zsGK^u+$+d92tkRBw_q3pmkjc{YyBWmY#HFYG7w#+XY3C&YY4+ zLu1^=JV98$J3BQBKT(Kc_epYT_O>ch4P5gehT-3TfyD=y)RC+8vn` zRtvwIO+hRKBC@84+08~QdO(tKbOz7Kik=jv(}`QdvGaB>C+Ki;BtMekJMler^;l=0 z&&m#{m-T#6Oso2HGhg!vRk>odD%Wk<0%3ePGGb|dtS?8bTsGB#@o+er3^4& z`ig6=il|pXC!c`E=dy5G*Q-M90(vUb1xKs-$6_^t3C%mV22%Rp0io|D?j!F+1Q8W1 z0^}`m_~}XS)I>8Ij|NfW6URgFthTf!7*@u{_OBEb*{BP0byHrJ(;76P*&VTfpxZCs zSGsP4vRbSzmc=d?{HYFVx}H}9#C7sSP=lBUi3oa}O`-{$D}cBY`(#H(%vLT-fO$eo z1PBj;=)YM+*08F7#Do0`&vi=ei`}KB<-OX4<007%jJD+t)~2!nR<8i8Vj1HTa|?Jq@xZq2{FK_Dgg5-ntSNMc&ftzg zAFnT_(pga**`SdRhCWhQLRDXhItCUnz<+}GaO%GBgZAR&q(tAFVhi{?F&}cZ?6lC5 z&9pOnD#rTKY%A}k-`?6H1m9x(B?cqD$wkx_<5k_93$!`NllmL`lry~&*sLkRgzY)@0F=o0B}q<^ad5F75Ga_k{&ZHf zi>c5zjfD4CNAHqZ{cqm3~wEISqRY)hy8W*SoO9?91$j!!IcoL%+6YkUl}kh2Uj3%0!gj&H}KBJ0Kbd6GI4ZiQh$=o?v~u+}#)D%eF!d z7}TCe?umMu#uMn0_|uCa1&|`Ss4;YiSWOCT2?KuF#!VD}iI0UB!}fI-?x0=^hP{YU zKstY$EZSCndyFnPuA?owGzj``#jV1Mp%XgR*;(+kdYr2BvJw&w>y**RbYAul&UdOg z8H4@D>&uPNo6D*=fi)Vn7az|6KNQL;#H}%uc8t67&B@8h%wRh?>@%~YLuP3mWrFP^ zK2wV)bf<*%YPxx4RUI3&@Bi1`n=QAIWs73JlFX`NBbx~jq(rp}5Xhs_(BieGE3&F? zo6W#U0!cDkAQFvCYG?`(=fx3z@CP{JJ~+Y;*LK(s{sw=_`2v4}*Rbc@nMhKq>Jx5t zNo4M6?P={buXHLpus`Ap4S;{FSrA!GREW=juB}`&tEL6IVhv-DRZ``mQ$I?OV_tWk zbjJ^dlBOA842a1VAn-5IP4!^ZT31oWB6@eV-@#c5L{4gVFFxu+0vm<;zw@j#kAaBA z@dPI{6i>t84}Ta+i(N7MWceN@_8~)Yq$q-;$->Ak3Cs&VYYl*R8KOH%ys)RQyQ!{x z%Yz9Fv6k`rxJ#&chM`+D!PG>{Vbjg@tWfI*!t*H5y7*p%3U)kQwS2-0#IoHfvf+G9{_;C`!Y#Y_2c*=rAS)n<}5W+xVDmqv~ymO;O25;zLMB$y1{0Qoj zUNuZF+L53{1dH|R*V-S+{>=`>C#OHTML~uVJlOMPx=0h0wn0f@E=4a{hsp?h8C&C3H<6Lj9BwDRVwcKLzS1rlPK-gw%Xb_zExx zHzpDz+Rn0k6@qsC)&ze82(t4mod*2agc7G^^YgqGr2(k$a^vx5VLD$06W3vLd9@j| z0H{!`4gX*dSIH;(E%{^!*l%u_BL#d`l<9&;P07x5fvrikF`*MSQg?*-Zh1v&F{#28 z42>s#&mB+&Z~Je9Doku3%HgXPjKVs4&Gw)q`Q$6vL9tqJGnB=mRV6Omy>`QyB#W%14DiM{CuQ

1H~(&l=HI@2{FlSme;ywlKR$kTG&rGD9~j3Z2F?ii z&G0mKo&xLc{Z>??nydXp2qJDux)=QEt*qCIUto>NvrE1=WWRZGwV)g;V3| z&j^WeUifx6sQ|V${il*d!idLr-Nj8eg+zP(J~=7@=Qk8r`QD$jixC?Vb$fe%GFj_? z9#JKXUnIFBO*W2b)%PDiIX?Uaj<6(plmh*0h#ub2-{^?1VrvTP9>%!l%@#0*c$CM) zCA4{#+n#8w@&D5!eVKH5MY?QQ{U3~zsE8S|b7*^BCtsK(bCC*~x^gF156&e`>*NIg zWhmUX*7a!sYoi5R-m8qJ)JJ^O>hH06gTLxZ(>T_hzVijvfUje&>u)cE^P5~>;ok zKS)BlodlQ5^!$4ZG1Cv&iS*GOpUo0nU2)8DjY8T2TJ-&9A@-x~zvR%~vDYJ@S3Fvbxu61`dNpp%RWiyHAXl2JrF>xoJF2Fb`hxzzRv zG)1d5fVGHXw~8=c6vk6OQ-C}c#>FAA+TACQ-#vw8PkLqkGX@oXlAtwO%qOeVho#U5 zE5+nw4d`6HOK?JI!7XHtABwxa_?6e4*Pyr&b`>&41shke2uzw>++TbmqYKyhriXgm zbm@I6un6&aRK@D+WLa`pjE+I$2IwdwM+@3MPqG1;IVNzdxLv)VY(2RnI)n{dG7(a% zV}-tOw+zDQdqXXGoRzcm34ZO6TPzDIBH<-L1T{l)jKONBw%CfuH+p^c?GE|90d!;c zDJYvJX5=#e_-AZ$O!GEj5*Vw9{49w>SlKVJ(M=1kq$)h4f!k|q3)eM+MSgWFT74cW zvoZS-x6zs)>wPsfVRq&vDCvVb8n+<_DtKYtQ^rdoK2iqVRcvgC`+%9}$im@Z?9z;<>Q1_iR~PT24prvw7Q;& zr-r;g<$J83omu8YtU_l}X})}8+eHfFNKDC{%w~?YkfZ5JuS|=hhm~+uHpeCKR>1da z6#kmd;M%6a3;1ip#=P1us^QfkNy;?6$`OSg=Yas3`U@Tx1>B%yUdF-ldOmn`w%mU- zffFxB5S7FIMYg!7nqETFM7G2>I7ZMV_y6v7_GlZsFcI&IbeRST{8!+h%e2U^my@&z z$~-_93cxM_SOO z`=Gp}sa{>r;oS%Tc?Ve8*w{6f1z(sK*)%=WCsAMl&c;BVApx;=K|0M!b2b@1v*HcB|8XTY z6OjcYubtg0;)aJ)l&@A>X866i=_}MWd)fwe8-sqyit&ehc72tOuduD`=q+p0Jx~Ze zdovtwrCQ$8UKFjHNRdr^&9A7S(%3X!B89(rm&drhveV;Vj^OP1dM!WTsk~FSa0ckC z2yYcn@04ZPW2z8`*Yo#tbmBazj(_33Ps_T_?|*gYh&k$dfA|%>V>;a|zb=lK$>e?Q+C2D*5niXC%EsRB z?S4h?$I#20c`e|(55Kl=?<+x_@9urgvf!m9#8lV)-p=kSJLdr>=JfOrN9cBmWk`zAf7 z*R(FuB~WNQqhY%N3*b0&%3{4W3WK9?t5yAYO|5j16+oYgZlA5~Rn*6T>Z^5dCyT`x z<;MqWYYf5=c1aMB$QxYD+YpX7SF(_hzbD(HVLqWv5ywOVpg3?Yu~(a>Sb1C$u8Y{{ z5WV^Y<#GG57bb3Q)m${tFrZ&OVS=hM&uTAdj{={t8Tir(`ZhrH+2<}W`lTFvEpK~ig7;>bu5 z*%Tu{iZ`oap@p!c8grmJ(<0kU7qyhGw|Z5KX|}nI3ek26#l%p{ESUw37DN0^5`sv_ z@3(XOW*cINx~6QhO<#&_+|aSP=i{@B-eP_cnXOr2Hh`h|r`miCwp?0*Eau)tmp_{UHw&^g5F+HT@5km3bffAdP!!LlT2UQ2ykPtgxTVc0h^}!J9xTg_2ZOFRQUJJ7^`Ih&zvLMk4!#-w3247Ea z=!a~EtH@8I5o@GsifdY&{6zPQRO@NcQJy)GYcoN3D-^*HKXCRK*Dyoe(X}RzMiaWt zYh9MMpwE*Cf_XK~1`Ff{v`x!pGM~=UW6dZ~z)(Iel__93%O?D@DAL)v zh}#jU<=0a(0HRqn16sV#7G232xlozzbv}`p8)sHmC%(tDlj0SSt!tpI0;)ES4q+$& zSL^lG<{}R#l{IrF)Vkg6re$~6dUnn>%w;6m<}FY%!&}4on!Fpmz-_NRDbu_xx-z1q z+cTzGe+2~OAsVXO<)Gf)tl!H+wKBK*EnFZCk9yUa_NQM|&zl{c!#h&_2{pP@NuX`V zdzBl`>#biCs&wT`Moc^}>ki&JV~!fijKuWD`uZYxkS$l7OJgJFSrE+kBAcKjbeJD> zQk_Vi!Ihyi!^2m94x>2j<#V)^9#vyf(p$+%dVBh*KfI#o$;h>ZTlrQ9yNP{}@%2dc zhLI%Ud$F91La0E$uZ&q5ZEiWRi1WyDBsMn?(!l zZJbRvHz%_+SswF;j$2%9Fe=hg);1qkGGwKt;5kXk)-x*`?K^ay1QealA~RZ zhJK{8&Z$PE)dD-|G4#X*G}^wKV0 zgni2GWDS1q1kTVhdCt4(jp84of4tso)0?EqSv)stcFeBLI4)+THkkS4n?D~u;m9`Q z$H&L-4uAUj_}S4`r^KgVG0T8BkKqA6In{4d<>;D^-BQ0z2WB!e(|sZ8@uWLd__{kl zGAxZ;X)7EXR>?ke{CK2UCz!iHV#pNyHHszpmAc?Mp!iN$9mP|M?f`~x6w-OH#<3e zCCV(9Jsb~HoduYuN%XNyrjen| z0)7;tvJC5?o(le1!hcgGJQcGDIrrJVU;K{uCS8)b+3D&3^MA{fXxrtK`da26@xv(G z4UK+j?z-Q3{t>9yDZZL^>svu`d3{BhC{9m*u=?4iX?dr%&^_YI^b>H~aC%rB;U5I6 zjf+K^u7_52{!3O|C$suKwc5w&lOW#~o3l-uxlfuBYhUGEs@+uMTufULiAdEEUf^iT z?B;9)LKZ}g<2b>~tW-h*^|l{SworqLospwj3)3_#;K$pI3Jtz$&?(0rY&qhT1CQKx zIQJaf(ubv%$YjIGo5?J{o_-#L|L_0uKmDH}5H1(;$IB!G&ie)Y9mbS0bWW+Lq456z z+Dv`vE|Y8yjC%O*|MhNHuFv(K{6fB&!l1ANNKPm5aquVGBp>6ia4j0?a3{LBB2 zK~3>D)!)%OD8HU#<$wR5|1G3A4qW&Dg1You_XB2fnPaZ#lhY9B-bqR-%me`6*g${a z(Mk9kYQKK{4FATzp7G!K-x2=JfAQb+)35k9{`D*WjsLyIzxglzJ3Orr=@u1qC%uB9 z6PR44llSj9MGmDF4(pw{{S@5!GE0FG|4as-lsW1t972acm%{X{-hftOnV~l1Yp5lx zc~4I1cqOBg(|C@5E%C1c{vwaybkrZFk20BcD&5+OlHTIFxa=q=h3q6fr5l4HU(Q~I zpQ9+Ab4{vXJVH^tbPC{hM{&U)%M<#HxQ#W!(t-E}#~36rmJEtm;-bMk7F`T50&!(K zD&kVPD4U!0P9bYoPm06EyErOOJT5Y)EH5$Mt&#iTI7jVzy`zUwRY+eDL2)SdsQiDs{5A>?;3HJ39mA`yp!X?n8IqL-Un`XsT zRumW;YX9ls(W}Fwqe?u#yShga9 zA(Vs}m1=J6LFuSa!5aopqm90;ARN_)czTshmN^`*_h^0{d`t?mmYz{Ry)ar0t1+g8 zf$5dmvimn3_{q=%h{f|*KWC^x%P~_Os!lQ)x56Ay?l0zk30uZ*>*iIl%Rcm05Wks zfOpOF!i}?xC5S(3A9hi0rqQrJ>B%M0O`;;FwTfT$;xWaonuq{cb^xobkRn@!ak5UT zPFVK06R4jjlQLh{B_r~t!c&nfsy@A|Aj3HQ&h9bZHbME+A2Qe2oZ3iLaQksb1b{G>dkydSDkYH6tvk7uxV<>zjye$ zqFw<{Gkitr|5-A*?6_*ugnT=((i|WsrNoM#V0dNVHA)8eW7DE-a4)W*zy|$TaHoU& zKrD@JbcBt3Iq2^8Ya4cV_JqO65;_5Pe6SNwQ}kkDw>bE`8z-}5c{LVRu;WECPiFv2 zkEse!n1-TUjI`g6C!?fu9mV>~=H^sBMKC9B%y(cBOJZ*j%1DBtJjA&b z8gTyQ3!Ft1iTEIIF#t|W^J(Z^88Jqh#EX#*);1m8AO(OK?)lLkoSdplhg#K{lmqcj zrnH4>d>;JdG>T{ZV?P?^<^m+0y{L8#%n&`HH~h}LheRT->4rcKsCf7!d9)5-&*SzT=PiW$}5Sis}7 zgziz!7A9!IR!G-PsSw8l_5wIDs3jj87Qx|pEIQ}0eL8q6sY;KfEb?0{A1iKnWi^D0 zCE~PN)h;=jVbO4j%sseB%Rj4=3@5w;y+uRpTl?CY8<0A0uPLZ1an>cn`ne6P>g0{| z8LhP>05V2iT5P&T^o8Q`ESY&2E+$=@U3wkf%JA0(icoN3f~j%^T$IYzC*9%#SG0v+ zSFr0{5qy)O^J#4N@Q)CImC0FQ2irwgHYuFLQqeyOiOv$!;m!>ve~oPH1V}N>^dLAe zHW1qMHzw?(A24AbtRZaAd=zdE@SzF=rkF(yWVW#u`v$7duaa_d3EzR{Rekd?)~u1* z##|NoY(|V-dV$ulp@471`aeGj0%n@XV5xpCq*_lbubLQw0*u+@{byVP!xk%9rpItb zUeFf_5Karfnh9j_Bn7-9s3N14G;_wX{`(i`fOsw-|GRLgy1I_EW&=z@jw*DWWC|eZ zvV!ephEj9rz-TS9LUPha0_ZqD&KJ!L^~RJ1R{}uT33JtP(Oczsae8T4)e4U`;c$JA zX#V(HK*!^IZz^A-6ZV`Eu2$fxwcZSUtoNgp)w6w_W{OoZB-%P79#%B#fH z3iwfojk>~?O3PV_K=nvy1Tm^fQkskIaAh51P)rS>OIW(keA*K#1jgMZu`E~sC&8x?UuQ4H`UuqJ@ zp($VyX&P->uUVQQLWm) z6-8xzAX-W_9XE(vb}-S1dsm#HD>li8l@{b+iGGge+vzucu6Fm*XrnqZu5+F56J`m5FHyY^P_Y2yTr?mSY&N9ZS3Fn4hbvU_IP2g|nP?yv|$Y zR?4f97OS`~f?&xDHG+e7i5aXrJ8{_+_Bo6gq`8Se12|`kp!T|oZAk7F^8k?YT@o!d z;D6s^q$^Xhh!zxD+SFgO_%YM7+8$+bcmBunkDao+8*Ra0bDj*ae1Nk%QJjr*@X|Oz zhdu$#BF;zsZX#ELPyOS0c13sia5|dDhFqS(U7DR;kCxqRc)btD@WAMH)F0G#IT}$Y zK%;WnxsH=KkD-$&UZ#J)P7B@Q`I3TWm`4sRP=NK59?n&s!s9E6(VfdA6X_seNwwFE z#j`|TzTi`VqN7wM-ZHR(lsB;nKw7Zwe!c}C!Y#NPP#vDB&m`O7h>rB|@L!hOnnbQ5 z@BI|hb;TYm==Vb`4^omFoBn(anMq1G!b+HO5ZZCxL&LGbrNkVmw+ehrexWD}{_>@d zJ4%AUsGVz}A!(91ZJ ztTj=u>L>*ao1K?3Oru$({jlljAEnxaQ@`4kv&zC<#4JU;99cq51wNT#ZfB_6CIfqdmMX2L(*P+o+rYO21$sP&>({%n7B3v!8 z?U6g#Wj@0cY%;401>qB7SMd#=lSu~)f^P8OJ`hD-gAk*$-(RFiKWfi`irmk3Xf-T1 zgvkc~qeL#nf~>}r;8w?m5hb^>VsO;V)y=ecw7aoex&kdljW=e~DU)m?bIX{@W=5gB zS{=0g6Tac6%Bl(_`M&64Ev4xMMU6NeDHZkc7=Ee9(wl@!VrEkzf~f4q?T=@r3+qIn z$Aws6nv&@RY{8;@Guj`fnmt>?^J~_emGRosbse|g+;q*+Y;N3w*T=2C#Z2Vl*4`Ad zaDB-;S6hj#OqzLPL6E-1sv-cB!I7I0n6QRvky&kT+9#A2Ma!ZdwvmAMjDI*CaC{oG z=YgpK#wR?r6ui=s7Fz(OFUlwA8!6a0`JGu%DyeA@2^LW<^9XjBKA6j@J{ktXY43VD zGfh9*8=guiVzL6KLl2BaPZ^C8)hhF+Dmwvjqz#@`A61KY6^D?gB~P3<0hE};p0900 z?eh2bGT3!DbbK72o4F(~#a%~Tu{Hfj?*egHsmPh5)7Xi5j?6iyYMvu|)+tYRWY0TV zmnX;>!tM@A2MzoM z_%E5&UeECuExNO|Hv41hO(s{SU*bUZfksVkdh2m6Qtv*QWs~<|odx-r!nnWApP;w= z?9KcQyp!29rAA^Gyk)Vs^|NB~-=&}3cKp?B@oQFI{*+AKPhq{JbB_KZYl_+7A&jjB z(6h*p9VSD28L8?&?0o#=j$|}4w|iA!_Jr0ggHBU-4P^pTHmy(%DBiC%-Iy4_PFd%(g{mgF@b~(ymOzX;6gUB?U zHg3zJ9uk-+Zi`Fcx6Hgv(J+5h4s*1^>-YY^^fvo#R1 zG6L@6GFhfm<_T@npk8nL3@ww#hEs;s^h^v`?XOI#NcLEzV=3Jk4VJU4yq1)x&#&q$ds-MVA<8S=Ww}=yEO(vE&0H~`5l%&wr>olJ$?Zvxml%>cz7VQ16r(9^sK5@W-vJYF{D6aDE<|l;R|s0 z&OT)&_2q@Q(rHeBv*35k(|u>mND6+fB8IOMt+oC%4~nv1yB)IE?b@Py_YTQh%^0AA z*&Vo3SmJqJ+Gr*k$kZP)bIKq7Fl?FSL&`FJFU&OifXNvl3hGI=5dkX zvyD%=T(^-B!5q~m{jY2CrK7(^}>afe;s7tF$K>WZDDbl)3mTg%#|^Wqvc z+T31Jcd!(wp+~C#ii#|D25)>)*694*uKem;BbcwTnzmU%rMNPd6}8#8Y9gq!xhPuO zyx)&JF`xDA@HNiQ&jE|Pp!58wu5T{(bzZ${jSy}%1F%0@0|DS;a}z4dW}T){^^?fg zY6ZKFtJS36lliTu-pb}u#s93K@uU4wU$Ef&++Y& zx<=2$YMRq!ptg6C9wDRipMcp~yv)v)K&dHK=*GP8GcIh5)ew`N+~)ys|9Gq4%xC!X zDi&=i4cx1=C@?FQM_0lo3EnOofs*L(=cSS==`Scxs#efPZYj}1R=h*hBi2^8kgPqb z7sQfafP%5H0#B0J?99qExFqwJ19f_SN{X~M{+KL*CJ~)b{D$B>$?)k7<7MxPmqLd6 zhU@gQx=K@~)F=c*i-Q5mxaIkQ11dUR8^aDl zb7Eo4z#^7YJy@H`&f9g#C>R-s5e$gw3}D|>rUt{(kQUp3ScGv?ox;IderA(0+!WdA zmoKUYicf~6cqw1!Q;5 znK9WaUalNHi9Q)~24zl&G_=s!BM!@}jzh1Q zWs{W6`ryT-gM~2_3LR4+ z9T~|<#9978VRN&85bNDL7Uw{Km#l4o)*Z(bG@2IS30cZ__zZ*`Asy%mpszVB0%k&A zQ<0@6{(2MwR@PdUYim85PqEH?q#|85oBy+ce}*4b3$j?nWgQDM?1*x!b1C5R>FqjC zKG~g1Iw*6a6F?jJ?qcuz(rNabfA%eUnI`EPeHcDFJP*lO^ z@N8kcDN%JJD_$qBVcRx0vjTv6?r=m`FurB5knQmwtr zonNb%pnf*Lpv|*|tp6e3F?nB?^afqa_Xd{^PP%@3oRL+KAw6BmbQ_=6J`OLT62m9x zUPKf#6HzqW86fY{Ic$*9CWM&Uiu@PTAH)6uF^CF^@IfCVV51LQ_~RbZbLpoAKnLgHCZVN8sTVBx#c}@M z=P0WUNuxog9>@8+v`9<%#ueTs^YAo&pQek$`A;}ef;jm^cF;O`PYf>u_H{TP^w3~S z?1*`uam9MPEIqj@BQe>eN7Kc(iY>wkKPNpkwI0rFbiZ$XW4ts9ANGF;tpZr;(Vq2i z%BN9;qha)47xzWADl3mC;ISxPy8R}fZrg8J_ipk4=Bv3hUd`)KXQ>~{Ykn+YA@E%E z_*kfy^O{~xx6ph>uf;Q3U&nY;tFtnrZW#hFShHcWzr@!Lp1IAv3HWwgOc$uF3Chi!J3asrcdV@E12sEn4#Hw11Q7G^=~}XnxNck+MbA% z@6Xgv)Zx3ygdNhUNZExLX74J;rv?4ZW?#O9lNsufQu_4(W9BwHd}16zGx9JA^T(*3 z8)Im4qHJo)XZgofys?8Zi!`|5ocyif&EE`~fTgzP`JlYLaFfRNs>73}R%h#24cR)tb z<8&HdV-~2}tcx+hZ#g@obRF0XbX+PbHjiqjfWU?vlo34(CH^uXZZhH*TmpnC?;Jpj)>(ge zh|hL0mw`fkA6zce^O2GSC4YnGif5lJ*f*5EshHn1Y_WauA^XSnPOrZ`0n%YxNNjqO z0tQ~DGlU7vlrGa0Ls->XkgR&ruLeyl0R5&*Po^cqMocx3u4{c2by>z-R`MaAC=JaS zq=2q{179=xxTFDcFg0Asil6O?SYg)Tl zI}UtJGm&1m#j~qL`MD#YASV}W`#R@9EegDIB>8%lFI0p4Es(*6jedKwP&i06G;b4n z#_U=3TF09O$SJ6JH24dpwHH9rNBo6iAQjz$h}ABKthHB*=~&GWxa;Ph7tg6Cp42T& zXuP-Ib`aC>)WwEDzEPYKqng7yqIW?e?@GPHhU%#{_KIFQQL|%>9tV0DN)1`N)B{gU zWFRUL`=@jO#1jBrI9Gj8bx#sFA8&0Zv@k#LJ3C=~vjBcBp(v!GmMMpb0BO}R5ky5- zFICHGLXM{phWMx~hu=jE*wl^EtWCGHW(oSV1QJZemi8+v)8H_wvI=)Saha_LM%BD? zP=CXqwaJ}VVbE+2YY@y(wuJB76gs6Nh;F0wYNSA?Ol_xA47fE-pA#R0x0)2O;Q~hb zm}7PrJ9{g}dWA7`6sZ87E+piqc7b&6Li18`6aNpA2&Hm!@w9IqcSXXf!}X2?&IZEfK6^O^5c)mXWz*9{gxwRlS)FG zTN@}g-+`}9&LzvW5Y9NebqRMp`(KNUeVf))xw6g;vCr)bvc96YD2)~Qa@NgU?Q!kP z@&QZHvj=K+jJ1pd-8(%gW<>|xvZMlel6UFFvrh{x5DtV?9T;m&`&VGleZ9$5=UnVf z2Q^m!*jzV$AG2^JRu#>a9SOaF(~DDCtnMgG(1&S!3A-K=vM2Dqd=cLh*kJoRA163` z*4ITkCu3LZBfxxdflF$9mZp)FGkJSRZaJp!Y>#}?QPnG_+glxYF=2R;6rbmlj{BB# z03&+2mMI4Q3GImVd;Pu&%cM}a$HibaI|4L-JZZ?dg<%0g12>fo9n7apbt=$vn=bJ` z+JLp43e4NKQ`)_TPK{>X>s6wo;V?16<EYhulk_3D_b1?d6@9eWe@S_d<;56a_!a4T zLF`f>1&S2R!jra-q%5if6@|s>1gV+ExB8gd!=YIq>wNs~@XvpK_O9~e-tDo~t9`e0 zZ}M1MKzf1^R*sc1u*5xZ&ed@o)Ev`Q%VWg(R&H^GSZZQqY(l?Ei~xuIbm0_Tq#}*W9A_OrDPN*v(Ghxw%CvvZy zZSZdAKrGiCQ~oLF>-bryqGvK_gXkMVyrt`+oEatpX3i3G11wx=Dm*A>!$G)>|7?Fu z&tPGCe_LFH19+}>Ef8m zSSviBb=khi&WC47kv_N|zw6Kb{O0NG^6`Iu{L^Fn-;&D{ zN~EmxWP(%KJf$NPG?Lz-9glZtwM@B&!duVs`mP~PuMAM6vvU!1N?>u^XxB+i4*SNLZhyfc4IWwdU~tOq`o}zwdW31(dV~u9 zSC^I1Ik*=7VeDZAAl4im720+jg=5HZmCdczD^!m=Uy3qa_+uQSk$^ehYET&t6o_Rq zGiAD9BM4KuVumqIABhmM$)^L|dL$@2{zX>6fVXYO@3tLZICa6wtQkL>uVQnFtLE0m z5Gvy(ARSby!o{?Vu`~o-+Z<|tw42_eusi$&@aGWip{yy86U-{!?eDO4w@m{y`HLGb zoKWfhX5usx5Bf+@BT9nGs6qlPt+(Lc2RBYCl?gmLB??K?)sV3o*G{fKjW1K+P|a_^ zFJNez)ckm!%*W^wZhpJGzRITXT$$f;LS3+HmD&aD@I~dTiJ8rCbt`<56?lOcWU3*7 z4g52}IuiE4J0GkeXA*d4hc)bZ1r0N%OfhP%LCp$aEmKv#W=Vt!t_pvkGCI`ng1?Rd zqbiq~t9N%rlI)-#^u?owQEVuCFoxbU=~!_N0qmQ}^%B$lEpoDs5+%h99jMI~JtW-& zt5hCm{+08vq}^&jiF}FoxqBZN_o36KNHM{VV%4l>XNcmk(W*!1>GvG_0>coB!6!i0 z-feK*%U$O!&U5P#RogobDAaJv{Ns%oI;4*rk;Fy~c&bVvnb}XsVHpYZ!jmf9Ad4zj zDzrP)K*oWe0oQj4F^U?)kb29g)@Fw_p$8Ew38^ipZ3OswJOlt0kXQH5Ex* zQoP3ak{lChK^<4tG z74CRZv~Ee8xDy78j53im9vZV@W&Pzc9MQ~;Eif0P#p2tqPUvG%3Z+J~o)gv%0y&hU z*Phssugy8mVXjS(^MZK>W7&R=;lU&bBL}<6qk0rSwb@gz~PN-P}oXKZY1VH zrVUGwQ`7Z)`H#eG)bG}sv{-OS1l(#-pC|L+6>4GcvZgTN*RG}n+F8eMyJ+6!(iG3F z7VHR{-F?Yu)URDM4f^lDY>Jw8ZZwHZf@+4x*UZ>iV-H4>Et~t zi*fK{4pG7%9SmlcJ9x|Lv&C(ajK#N^=JluG1$5SOme-#eC#j3u&+%&%=#ta@_DXXb zDf{Fm-JMFlD)kQFDb#&QWYn@3Kzw$4eKTA3K$yVpqjEmoOyTaJsplV?%Z+i3j$q968)&QRiFSVqn;L_7Bp(kNO9z}_ zV+}u{)**ZzMh82C-kt{0VTe5NZPZ!4Z*Fch+446Pqc?zp0TY2E1n=;2F@d`tjISK4 z?J#<_TE(Q;T2J#Tf)2thSAnGlFgWBgJ_+?J9*63si$jw$jy1OvhYm3xhl<#YLxYey zg%erF#d(ukab=bi4^`r-HH@yfHir85MLL7RPFSRtD@7RJ7{3k3zM%r1aTb~&6`mT$ z2EebfIb|jD6(ygB>8NQs?x{-J*2Y67LT61^~9?(ZwNPM)LYebcAy zM*heauM)JGjPUzxlup!y1C@oU7(Zi?j3<{L=T*~n)=cEzvy7_2=qcTJ)Vg*W%narv`6%2c69LWE{DR!VCXAv`lwZd&Ho4F5GQ0J-<0FLcp}$b zrg~mjw&T9zJ56~vGnsUJZKdE*vbI-rrW;=`XOy6teCld!?~Hnkq(|ZSY?jR5*MUMU zFs>g8WD;SQCzp%1GF%HCRV(VJE6eT9Mb@<2tmv35hd9st)rGV+Yu^aRzoQH=OJ~!< z6lIw{BEqAKmoW_RU-glbkh438_=LYW0u$=LA}o=<9{OUd)#Ll*`gkmptU$)u_FvEk znH}|%bqjYw(HCe~zXPGC1Ku;*vPv15>>1yxK8CQwJa8heK*g?e;mCo$LNH{aPD?se zW7o%VD!g6-0=-b!E)zAZ%>!=L)|x7-qoy=s)^gRQ`Id%&W?gG6I%9{z+M?pAX9h(j z=Iw@3jCiNuWA)@hr!2Cefwe`WHGy?pKTmf&;p$($ghy!^=#516ikM9uagr$_btnWC za_T1;U(->>Y=K%_z68|-(l=^iRSR9q(?Zu`*hCUBJ@iUOi!rub#cuQv8rI1*);BI| z=nkjnoyH7fO_f`dC2o$#-+&%b@dsq&mbh1DGqzf;_0uM66}MsF>B_8!-5QngS798J zdJ9buek3|1n|}}S59b_l2q#s5rx?k@iux zWv-gc@6f@~RoYs9aZD`ZO(?DxIJ*LFs_e*l;XH$^QQVq_rm);n6AnKH3wxrf}L}9 zs?wxVk)BdDV2`|^S`>cMZENP@Z*L(xcxqD?l4?=!&Cc#a%0^tpjbS^{@JU-Sa0S)H zp%={XG>Y9mD}Z-|XJe%xI_2Oi7?#v~NNRV+xQ=Q0#BA8H1&~qgsk%kqX5&i#tsZTW z`@Pk(4cJbfjx}geSG+6QkdU>Y(%Vh-JemLY)QQr@PqSq@VXDHgFe)b5Y({}sEK}A+ znoda^=CL7G9R>d0$+}nf8`KR)*HaA?G!M`Ay7iW^-_p2I4}Uwe7HoDmixzD8)fO!Z z>fhg@#n{(xV(jro^w-j+MGc?No2))O)xOfgMV)$k63*xSr}B4eI(|Q&Wlm@eqdICq z2<99WUA&|Mjs+R=FDCh=_~Cch4=gfPaorI;K0+-(B8jFKrgvN-fD*qoLPd32fc35H zZxGdfdxB5j+qL#CRMoKBsX4KCF=naj%Q5sYP;cqS8^TgUO=?tAuf|dX%cYTq?&I4U zX|z@6!+zgFm2aZ2I5g0IY+Pkj%$vLTwHhZi%36&R))Y%v6~oZU4srTpBtF-BYx5*n z4^@W|ecI|;1)p)SGQaXQTLZo9B5eh~G2kGhS=iXIg{M0Yi@br}-!?<5+Jle~v@<$k zwclrWM#ihikbs&P-*-C*V%J_xb?NEInU3y>2e0p{74?hJp%=FZ2GFC#l-)_PoH~hj zDK?@mHPTo*75mi;kOT$B#vn<_(-a(I_1XNWrDT@!>C$5cF^@ z9+8gu9C;`17-xVNKzyXsJ|3Ar)#>Qa3fMh`A~LhhaZgeytt<0)OgCqB z=RAcn`8uWKO6-%VZ%{Vs53@&!2mm+CWaf31C!jb>HHg+)aM~e9jMDYK9bW@BlK?0QW>cNXxWEb*sH})wi2g{uP|rLpZX>aM)lby)yrK0cZ9}Ldobg zGro-J04wy1A&B!znwC01qBz(2RyH?tD<6wd)U1cNOuEDvV%};JqqGkJ;Y~O!T>d03 zLub+z$AovV9F`38MKVF*zR0rO-=ce1GSQK)5cwlJ;Ji_vKhZi`LWXKif`0+tcfzI)kG55r z?aStX9{S|uCnxZa;fV(S;BQJ|{y~Vw>!j7Uz{}NhV`1irN6Wg3aaMN-wcrWopz?yQ z)&)303!3f%)snY4+LL7dAt|KzX0ptS;xfq$0S;FP$hroXntq@+Q6x2hSCM|A;Ivb8 z6vGC%^!(GUm)n|&z1U2Czl20LBh|+_#0vV{I@H(@ztATsk_KLMd2u$-byu}% zgXJJ2>$gfS*qZ&1jeQ&mij04Y&BbuH`w4&Ugu5y`DJBf~^D>#@n#-g~^7o3(46J4f z1b4@Di!vA zbCxL#?wu^vMEY?bV8zNJ_XM0DI8E?9gbnKK?(IQ^eiT+J^mZPYRp4)5rF*+vsb62^ z{zF*>d#b7Q;J#VO3(rFhPF#iO%$Z~ z-wp!f)a&heD)yTy@`%1FJ64UIhN)+3rru8SGGhV#Z>)Jt&(8rg*5Y}2mopM0%>miR zjAqE4CN>+!y^oh!nU0B0Z8WJGQpgj|6Q=70y}cqxfjflBt&Bl#{Jh4X`!PLxpK*SI z1VhA#(?XEOfjpnV&Vzm&^rN8vLmUu_kwvEf0~?quQ_(W9mO} z=WbNr?e`UD_}eITjal4Em-~#`-AS3tLw>C`*8u$YQs?TU5|U|!&4mVn@f?Le>3W8e zP`B>x2{sunfWac`3XV0Ip`mr_*wJfjfV_%Xd7ztTK&aP@9Ar*}Gml-RWcOiy!o%fOMewxC%>kSb@YEj(8c zYIw7o?vD8ApML+FXz6{Hm~4k>JTB{$`OFQsH^9_LKejMnY`y+pX?{8MJA#mbb2=T1 z7Mz+LXu!=i^`cF?hQcJMFCw*5Xi-rVf7P%6wXWY+S|S*$w9XWPtJZ4s1!B6DH3E0Z z<_I;D#?w1W2hyj`gK!8e?{o-fWn(wOmUC;km#)Ypsm z$a&@eBY_u&I9M2Pau?3GDj?{C9TB))$IQv6dn`7jD(> zv&9o#ClYAnL!M1LTEHe2bF=|VWQyo|Q_@HxdWeOD&7E0CEo9v2Db7)jW6zjEsOvzg z#dG-WX?g|>@+2Mk!bzKA#V0cS^fv^z0@+UW>1ikUz!dGb&0s=Ku8L#N<|rHJvN^KF zpRV&0HgX-+`RTUK<+i?mH^H0hv)ho{S5pvQsPC zJ*GIB%Q*L|-Um#;oK|hdRMT(U>AJ5Vc=`7Ggsg5awk21vQ75VjYk_sFvgIfPd zN6|ntl$|{#B(y|Wc4O1vWT!UjhT-Mi;y`+59s@n{X72oce!k8o-)|qOqmxKmz03ULTUZVh zvI{G#LP7xNTa6Vc3rA7FbePByg_R=2PERc_L{!=)(T6S*Qpx(!WBgdJRlP21a*Eu zb?5aLYR(6?a8ImNSa)jd$#N5-K=jfuj9p~?TCeL=PL1q$l#`3Np07|{ERKOP`LSVm zs`B?JGap}t3Y7RJTwmP*(4QA~0rTfYBalD)77`EYI-Fsjk9Ox`!`}F#w7l(}8=ZL% z5t)+NHyziA>(Gr9i?+^zN(kEP*1Oi{{^W!g#1P3j&TD45Bp#jjWL=a36?35SJOwJn zSKWnVyOkq)aozi9mhl2gbjrolhNJ6)_9+cW5m8C_IKI zBPjErfF*fvpG(cpLaSG4Q6v{qbM!v_%$NsC$Z73)j&TRb2G_@~*1T{CqmCH`zrmDm zmkR9`T%g4qSlpmmKXaz)VC5K0-tG9|@JU$w~diM12@%ZTY@$s{x!AZE_10TlW0#Cve zez=~$pCf&B+BS1JU8+%tG@_eSTivLU8p*BVKtE!243@ayDs7%l#7+7C+)FV6s^O1T z4t0~`mVnVkwo|QV#aPt5!a^Zgr5&;>@;6a#-lP$!wl>o>nk~Dfx?R-z{+(LmY^eFe zTQ;|D;YeuaZr6pnn$-N>?k$`1edVEdAKs-goIY&5yLVg2)!nA{dpo;#T6=Nhc?SL6 z+iswV2zVa-`w#Ch5wUsq9<~4gbt?hX_Z@2@#N^#Jo~+usTFb6mL=iyv+xoQE=Tr8n z!PEF8G|>S0sw;P1d$4^vI0- z&Cq5+HS-8ks!<~Y8+9L4(Hzf?UJNm@qRbcJpmHWfMU1#Pz-*}2oDG4So!7cB)^Vd8 zY!p^A>*4fGIY_^J+0b)75)4bFg^@jb&B69mi0lju$451*Z-Jty+BT;cqdN*OF+mEa zF>(Q+(oPsc%|;D{ex(nT_I99k`l>(q7Bs6n1a&X!j!VS+Mj!SGYtDSpY~GgvXrc+>Y-90C43_oq!IM*&`N_1ldN(FwY}mDSDx>CQUEs; z#Gr2UYrcGsu4iHxbiYsIjlR>h?a}A$9ILGDo^po!2H<)X1l1|z!C~v6vL{p{I9ep1 zPjdm&M)xldXgJcwPW4rcY(}v5ptF_9a}@Ug2D9SKp=-^4|DfCkQhCrH)^2u@V!8+O z-5eB@#lsOsScC7}qc`(?`uT}Y0U%@!9Wp(kA1k|t3p+COlN8%l+D8;U7&E?>Q30Uy zqEke0A(rUKhVJ@6J`c-B*V0|TWOsdHC$3M*Q=KztT)=Y_0Ruzdg?ql@W~#bT#JO-X zT3Fd!38tIM4N;ERdHrP+3O~y4ds0r+JI^QAMJHOT?Jb11x465u*A~#EanVxi%N2fK zeQ#sve>0$1QYKw!y8J9z6z;!FiZXaSv18FH89W<`*96|jWbYhoTshZ& zz4S~h@;3{iSONPU1mRrIf8QNjF9jCl(3>Toug)^VKzC13AP@kMrTC?yFuwB!KPnc< zT!@loP<8w{!cC(xw4hn07%%BV+AXuIG{8_C_=B{g!TJc5Y$z;dtVa6{#|N8{a6*sl zKPcZ~!p{IxCwDl{sccsd-fhnD^}JQIe!c%|VgkRTidH;)8s5!R@l7;zFWOAGSz2wL9`<6M&{-Z=aI8ak&Yq>1TMKRdkzRUqDV0@thO=Nmm zzJ0;d?~)EUoo*9I@L{`}z=dP{1c&pYTwc@S6r8f2%xJO=Tr^lO3>0FF+Y*#V?$-0E5y*gHBNi=O#~ z^>VbaL4m}Y6NkpjgC!6&!Tex;vOHxkk}?|LFC*Xu2ATX6tuRJ`$!yG{-c_>jKzM`W zz#iap4Ly~ouz>Lmnm}U`L_lryV+Py8A5Tv8*AuAB94o9JF5=J)yu;SKuz_X1{M^Mc z)?5rriC7dy=3+AZ#iQj!L89A=I9PlqQjFC`EVDy?t+5!{jl-!=*T^+8()!jaR{In= z15-KR&pNsiFR3Td4fa~o#*UZAbC&V)^a{j*1e#*!@$~T{O%&tk8EfYzo)eB4cHhP) z8o&ttemGTj{9+(c$b-q9@r@SG(Gf#BN{}j?ZqO0~=OKZ}sd}giE(-iI|MErrlnGCY zp$I(!*qPo|>~odQiWFOg%akl%8B}tKlFf9VX|<f0H!y%%f<<=-X;LR9o-a6b$Ic#7uvf1g!i>wp=`Pp$8FWqcD2GQ1` z9j?gO5peV?p$ifX&967|nbI@jn~<#HgqFi5)98%wwC3<+93H*lE7*y)!UH&EV?;MF zjm$2TW2S)ozI^H6KeZEdmTNoQy2F%d1T|&AukbtI%2lUT&VwwO8G<0>k9G%vUxho?OCZE^cJ%ih<+= zhyUo3plPr()EO6fuxfZx$G{we01j(lv*N&CFqo zHC1f_Li;Lr^J7+CQg9J8*g~5$c-ZD_TgFx1!0%`YW$cYOwFYD38dgBs2ihdzsxGkI_dR{! zdkoRD8L?SX|HdDc)Pb?JSKe^Y97`E^v``yN$b;;cT!}cp-0~JVG&8@w;nPX6cQ8hmG(>JdkAHF^s z|9W`*V*L8e_{HJT@tb#lQJS&lJ;9fiENTf_SrS z9W?dq-VI-5&B2DWSdz1pIzhHo!gc8?fVcdF)Kkep*CaWNX))Zqj$ z&T;^R;^olJP9+=N7&Xjf-`-gV)LpgrUu-LwKjBTqSh z5Zy8P%F87C?hlP{+ooSAIhCof;OrhcG%Ls=8cn*7N+9vX*xO=2Nuk7TnDEnDkQ#s? zAnbAt3@3H3>GUGcDc4jw?V^dn`d;b8RddJF_n_ica3c@Wu42ION2rdiva4hCoTcj_ z1@p;|_@^c>{5q!SpUwF=7mwIS@5OrX@WbV|0*|GwB$tyVW?FPa^@uag%cF_sNb4M3$H@jh3;3z)Sy{NMVq;p>uK}VC zsTIDt5nZ7CIbog^zXwz-TUJgf0xuhiLZwU&{{7$nTMO+j-VV!?%$!S;FAsaW=ahnP za%p(=pm>oZc3Uai>z#Y<&Z5-4S?f5JucdLt8r8~#b?Y%-MREL!pXla757r^JQnJ+K zP(Qi(c$u>-J&bYf2jPqSV=#f!aTr{tv&BKUI$fNg@Gi&VtWv~`N(5@VOL{Iw4KVhSGd8{wMoGqq ze3^ut+_@)13pCob5QW$UDy2r@qZj#A8a$R-#bBCEgLz)UN}~jJ{ux@&FZN~lUk(Fi z?J3Y@v|)71dBcjBCPTWhwbPzY%}EOx_=Yt-Wrub5Dc=TqNm<%*S$L#M&MB`NZ;Qb2 z(1~p62x$wkjSV9k2c7e(O)h(Y7P7hc#aTj6wDZo1+cV4g&2Pd=ue%e6v^U`?Szg+b z|21313pz3$C*51S!+S`%Q-Fzg!l25~M{z&hZFdUq3ZAI$i$@~;Jx97OG2iexh z{C?6u?Um|97^F?5_6fL=*D#IwW|n+T@uHwU!Yzz)nQwIprpOP%fNuco#ai9F`v_kzXI)(V zJL-g24QfuQbOhoaSYEWpf1&DDnS5U@V)scY?@D4w_wRm0X1nt7KuAakW0Bm4@G?Gw+GcX>t)W#&Z`n^a9uBb$azqu?b@tMd_^ zdQ;W3?6+C*Xpqjx|5(D9UT^yheQw4^7AGB^z-v@1O=xwsZgH6)w@np_N_;EMZuT$9 zVln$1bh~W-+0|B`L$`?eZ~d7^V&Ts98BkACw+x}Ee3KJaEG&zbZVw1^zCvQ5XH5fe z8j!sQ$ZLCmqDs{?lmehb;+t$1ms%i8Hv>u$F#xbvvLjkr_%68~@w52H*eMU2!${oTb-H zNNPH8qOX!Uyvs{8Dr2+)=vde|B40AiC)cRcFrJxZUgnb=hYd*U^{EH!&>=Y5Bd06 z%PcK$uw*!glYf!Gvnt(n*oCP_iX)F95OpOM9<7OvuFv><(16tjSx>5|;Zb5EJzk>G z#s;~#nb49&(OVN%vMP#HkVt*J^(@iM%E`+t9bXBwGiqh7Yta#bj<4rUbufrSU8(B= zb%)i=ls+i47F7+}xj|l17DKFDx^)$ z^G{*4-`zP-zYW64rd!QWK?Ns=jHagItqAvxU59%hcp0yrkB44KnEV5~OmfRv&XiM)b z{wDPrBpzl8vnz)rEzjU)jcSXvg&&obnQN_PYx}fb1T`ST?p4u6RMKT%Wm4q~Wjd*9 z!Bzf`>Q|`}Bmj067~yP|O#_j7H~S#+)RK-0C`+Iv@)^wT#)SJmz`bssmR@enK##yU50r-s%(h*IV!IO==gog6*36u`xmc#3ySu1O zl;iKLhVJBgbTZ{&H?{Nd4&TskK)yt@r-FOw*k?UzhQw^IhjE+C@{3#t)}=_il($VB z5UKXuL1nhPRJ1cfH+i3Q-=1xfC(TGB%|14Dlj;d>4+i(wP#SgtY5IXKNufdu_k)M6 zlUge#&A4mKv7yOGmr_upv7;^27o1p=k_$+%54atuXtlIt^91nqM>C8pvkR}%`E{Mn z%L2}ha)|CCz$GucI;~ahF+rFP&q1*UQ-$A1o)h zWz7slBX8pInrVtAbf&cDZgsj9yU<%~5#MJW>ydwLxnt?4j1;r5bM0pIGQSAkT$c?~ zaiUwUQ-`|@zwJ)Us3hFCuOF_9s8I?`KYR8xhi zLZb$2BFYB2w#WV2_@E8*H|Ha9X1MoAR!5=fP?Xtfg>7Qbphj4$nBX}H7VtG}0}8T)jtK?ner ziCl~>^w^hx{MCOxK2|{UFYV#=!|G% zWMC#(#63)$j`Ehr(ucWY5~I;@zPY)P52F%lEs`aGCd}>Ew2SB6F18i+8F*@GYdbkc za#Gauz#pNJc=uRp~Cc|lzG^2qLKmoZfytQ%gmsXRq92%mGAnR(Dy-JkS+uqXf)A4ZV^jtGB(NH$T~i;A z;TJs)eQG;MA?XXzAOHTYw$~ct!>S)2<#&LJY>O{e%-2*9_?%Pd@7L+_b3lKOLc_E; zc=#u@Ee^Q|cD)29wLpLw&5~W628y!;(Zvy*;s_9 zP7nfC80PWyNOcqxjby?*JelqKjaUA1JRp|)7{X(CB@H7{p^04x9YTG^9<{l0F zlz#5$sI973J3(F#Lkqu!?Mf~Z)20!ldn(-SxQ@m4gloV$u%W^QlRynzvH-V8vkf=+ zE9+5XXW=|vlD=6BUomqp#VV~ElyreUExlzEbvVz;SH%Sk1mxAInY5CW)iQ-kH%VRM zNfHW8SuBkK>qY^{Vgt5iIew-KR>FJC0O)y>TJ%Hx|U*dd)9oI0wQgqdLw zYr`Y%pXJlfZiop>1G3j2e0QGUpP{Q68GM)0|As=sZmBm0-}QGNK76_}>{h`ftm5G@s;GF z^Yi3SyAOtbHQ%5QCtR0_YoZJ9Jsj5Qd)vr<*J?(fMGW zmz@*2!KYE|Zy-%S&QfL!7cvjhEvAC>8i_oM)vlGm36ZZ+NvoeP=P1g-Ty`VQxFJ zOp!K^X`X1mW|HQOAw@af3Cfum?%$9jqw>mLXS{Dp2GE5vD9U9vDZ?R)36Px`dJO#e z>iLZO510A;4KVv~o0NIKB|CrxJ)D=h&orI+F;iZU&!2O3Ei=%{%!!e11Hi18$v=9q!++)1rL*A<5vtXEV4(WH5ed@zrpa3)&=Lng_e!`V zSwZdjTSK^0g7-$nA9cgZP%)<_W>OQ60I5JY{7MKnv&$#5%k~?H{JRsx{;VnSJPWoX z7<5}54S2=*F^?!u3#qAi_$N@xdYS-sr|bpjzRsWK7ytfm|4oOwIXT(L3V5y3<+(@av-)s;bJA!@Gd>LHeq1wBgEzihGRTKGRUT54jQNPJ>+)hGK9# zw0591$9J*rSz|%>uSC@d58;~cmADOKQi%Rt2Bag^DdpYlSPIs?AAdvztKA51wQ}yQ z8L-Lgxmvqpc31tkAq75>+gHCa|YI7=^}bjN#Z<=%bw6LD{Y6mMy*>i zAz@l)4!qI0>7=P}+!8))+p*0cge_!~F@%Mj&}4I&o_A5bfT0h33VKl{Ej*3t`;UB= zw1O-PU#M1J%e4V}UnSYx4btmT9-@hw?S?PiW@Y+@P*pKCIIg(4dkW20_0U~J$NiQ9Gea-#4!Y$7>op=E^rD!jMQ@`Dt| zD(tYbctArt83n%5E~WuvvNaSbG(QGDW!cElE6=so44!jgYxUFT!zrrg zx)^GuTf9$aX$jjy##wXQEKBrGIW{_TxQ-2K=`cp_S{ZNwPN$hl|7PP|sw_=C?@7LR z`hn%}r{@Oe@+iud>+4^+o;#{tKeUC)FPW8|j@1m?_ zM$$KuHsOA8 z09?jgoEWCeOL4Hm7l21Qthmi4+gH=98*b_5TOs*jhVi@-zNx0Usy{~`#<;TM&Jv=- zxa1?qH&UN5srq(43w~i^UJa*0n1+gn+O-v)DeDmsypImDB6GLk4ZE0kjB7KP$BNp) zPyoCse5iR>1|mdPdL_Tx78)Bnu^YlgH1{QLEaTkBXgs$w^I{ohbF8|u()P!RndT9B zJ#w#=$I|-s#He`+tDlT&;`x$-AGzR8efubi;T@96f`PHiH#d#)gAfz1r&D;9f^e&o zeEDJ&MsU8&{K5^b&(CX{izR~catlpF^DTH}VCl%OI_tTl4I$WS&IwON>9kws)L&4z z0|DErT#fMzb@Uh_>vQ`hMm`$ z(ycvv)z_|vOfzhk3_qqV;SBcX8;x#1zG`Uvyoy}phyMx_Hl0k~%L308LvF`usJ<+6 zL>au;@FvJ@Z-ObZ18G2EfsO=33bzlLqGOq(+QFgoySbyoa{2kjDd(-`uof_d)m%%+ s{b?E$aS01

\ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-automation.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-automation.html.gz index 051b7e0552a7065c41904a7bcd46576a865a0247..42f65e6a7491dadc5d6709d38ccbcb25009d03a2 100644 GIT binary patch literal 9236 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index 104b090ed61..b1952f40eca 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz index 8e8ba12d1b4532597551ce2009b91bf186ce2a58..dd1def9b1bd6c9638625211678420fb8985990e9 100644 GIT binary patch literal 12487 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 RSWVL1{|!35XeDc<007h+2^0VT literal 15061 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

\ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-event.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-event.html.gz index 2f78956badfd8a3fe5ac4488af922636ad13de64..18406f9cad6b8015b7ece6de5b898269b0e11507 100644 GIT binary patch literal 1142 zcmV-+1d00}iwFP!000021C>@wkJ~m7{woaIgM>BZZVx@kw$g30DNrEY0GnG76tpz9 z*riC7q`d10`tKc*l3(kz=tUCe&6#gzw5(kti)9VGDwgy3TI*_GEGw}iwWumkD@w_F z&sr__4H&lWR3*V66@_%e8eMe~h^ST+cA%VPQdoyf2Td!vgJNmjUP95yzTsvoRQ|)F zMwaItfB#c$uJh9dYw6yD(Pm`R#ASf_@mb!}yCqiW6+H|7NeIWB=0_Xlx zr{`nh(MV}T>xz%DK1nZZepZQDYjg|739xxzbBj;6Zy|qJ|Ap5XW>Iz|-WkL9!!YB{ z@v??0-*l>ULaQY0T`g?p4P+&k@~#yL{q6n}osHgTnz(Mi@wN7EMe-z z?iFxr&M@yFSp_>bf#Cwb0ZV0P9jXQbqDhsqt03r)G6pfTk?<0~T5W~D6ha*hP6&;! zyw=wBtg)=K*jDjAxlpLU<$^uK`boI!yheY$${4azD}<8kf97o~_XL}zRK|1q| zeVZP7@Ajwm1ywNijW*5Lo6Ll+n|L@7z+AWHgp+XEcqqi80+W2NJ4X;J4D+rfHuM&I zaEqx3bK@vVtkez@7!H(d#0yjh5vR3WbA$7Vvj$X$v&T8Dh~mcRXWz#0%eS$u^>YyN zWPkX8-^lP|?Myq4wua+f!xg-@`+(398}l>Q^JA=0vy|8Y-+M2mZraYld(7Uio(MLH z@ub1;L3l+yB9PJ+?-9X-D-tk<^Mzo?jE8k+v*o-!(;I8!RYT&1LWe~1HOLhWK@*RA z9Acf*8;$7n!`i^#9s2QkBs(rUykdWBl40;UIk7hxcktr40e)`(9e120zdt_wF(bP5 zVCFKtwCjaV?M|j9(_`JRBOGrr9T;7(j<25V?|Blc((Lax4{tE5?Z$Mv}IR7=LBeq83FNjazY8L8{ zzquV|6Xw4ua2%6S;?Wsw%Ta*RQNWk-8v_3}vX6t_dssnMfy0U%NyF?=_0ye#8=b(y znSBqdqYWR#TaUS{<;FsC&Pnrr7)tKS+Iu$OI-|%=i;8gkF>wjK$3z+8RWW|z?c{{s zKssF6U>_eIk1K3WZ_Y0=gUh8hUNx>FZ;C1H#71B|$i{8dfVF&!35)%6Y4HX}RacfM zwCN=AW~w(7m(=-gd_7vuvOV4z-qLa4qajE0(-WCyur}f=lDVW8i!lD@&BGtyKSBV} I-3ST*0FE0q6#xJL literal 2730 zcmV;b3RU$ViwFP!000021GO1zliRlOukaZ6N{&TJmvk~M^>A&+Zqu<7PwnQ*^~M8< zkc1pWFd(QqS>b>0?gF4lNq4TBbjIT&_Jze_pU`A&HgYyubC%C08*W&zSTkL5GY$Xs z;dS!oa5foQ|c`bP$@@XivDiT&3 zwbJS?G5p>z%~=?*3U(-&Sx>_>9m2o4y5sueLTyS_@WNEX^PEH2!thNgnc=fZWpR*RV9p2MW#7$h%F!AiQKHSKaED^{dlf)&UJQG-UpSE zA|ID5&qcAyz6K8+i{3VE@gww;tFZfzXINAO)GP<+}d34#oS<3Gu zCfQWK@m!OkjSLD_3`6UNVX%-8cz#K|5QYO%CJ z6qyQAj%93Di0asckexN6LC0Jbaz{A7u!vu3p?U5Qc7X^;GHfm#!Y_zJ-C5P}0|6Vz zL%dj-H9^}Iq1b&F8Fz0Kw z6-rmxwWCkJ2hyJ)_;P0O3@;qTpo@PAm#me1Z(#SEL8(>AwGq6^_FE=vp6%7V;u6OS<74^P0>3;R340ljDSjz|YT3#X9l%LbsR42NijbCAMd5LJASUvS73H-Y!1 zDBf#sYFz|oEvocM+NNeAtGMI~tUTZ|+B`^{_UVpzUlsX(!3k8&pgP@?$NR^3oAM(* z-0v|iz#|VchP)$N)&;>q$pV6A#f;Kv4W9IT1&vF(VP>(8hT>iHEW1|hCjWH}^)(*G zmzUAW9+;(pL$5^fhA*MzO1>%Y!?-~Y!r0{9-L^~ze0nT{D50mYA7f`X?sxNkb9ott z)2Zbq_k6~u7grgr*Q|26K>FYIDJ?i+IM(w~(mqHr?T!&w+V4KKgC`gSx9{gt)Wdcd{Y zI}=MdU^fjIb<2wiZ;yKywtvCNDW68e%i(G>2rt>D9Eb4%99r-%wK6^UA1(Z=Z~oE) zPb^sWiDwqNA}Gun!bIV}i!jct(a9g$ONu%gqf>P2OZVW9yVnEaniv{9TmO&et&%~J z{-Qa{a!@#aez>Bksv%f(ZF|O>xW(ciaUnpmHmooWl^PgEL}6eDzQyf`=Fp#ZHt+P5 zg|aMaC=jN5<8%U!b-=E5kVz)PB^-N+2tdp8O&4ef=&jQzTn3yxUG{3 zj%5AveXcs!a&M=HY}7tpjv6WU$es|5ectOnz$a%3cys96G&}JTa`Nm7C|wauwbn@MCn&H2SICj>j>V{hy`9W+wTdG z(*F(Y&1S)*Dp@g$Ko9(DSDwxftRE>{k)cBrwBu~-;X_oU8?Jb$FA3l7t@MHpW+(5| zKhA%K<1_=;=~&=%t=X zF6Z0C`@)g$k}E;f7+@s;*64+-b58t@28+{D@_YN`AGX2GF?l-&?KZ0Tc8asOJ5DAF zU|_O+v_Ff(SKBj)CdFJ2%DcB$2o#&e>4h7A4Y`WjsJr^Myl>z#0jW1GC=+ep$t?;R zh4vY@FUklbc_-q4B(db~c|QOrNxPnkkKtn0+dESy3rR1DJ z$pQr-Kh+6jG@}Y=eW1$T+1>}gFn+5w^Z`hOU|hU~Z~Hje=eAG78z_eM1i0HPa!vns z+1q+}(6#fZOl^v5+p)sEL?Evst4~b(c3z;-7qGt1UW4lftO&@vAhAHA zkI!99zcmQl;6O?T=cN!yr&4 zx-paSv0NnT%02XBcJ1yBV!^Ny%mLbwbkLQF%HBAchM-=Gzb|(!{#n0oA?rA^=UXNu zma?FCmz@NNyZ3X(aXv?XrK*5`t?P97`+5vdy#32E^O;=pxdd%}>%li$@AD559P;D2 zr{T~M;8i|A@K~-sWO&?R%F~=fzbOx(X3*aH$rH-h=-u8uq_j#rL!V1a{82aRW8!Sz zGz)sL9d&K(BOE&D>FK z4MI@~z4Z&w2hdQ4Hg+(`T>KnMd38)10AP \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html.gz index dfdd56f87e118499331477574126a21d00d3a025..d534814718118a1b035a7798ba2dad48d967dc63 100644 GIT binary patch literal 1186 zcmV;T1YP?diwFP!000021D#ggYUDN;z3)?~x>#mlY&Tmd)bW^R$+9i%wt-!G6GD)! z&$b#_5|TWV*;&IrM4zD#wolSewkMPM36uuH*wXp_kB*!*zLj~_0ONU^#X zjatn+2}JNEZCGTO0vT~wMM71Y=9!1qNai8WoZkeTDrLuENrlxaGTI3*v=XW&Xgxq^ zo;KR~ZPdD`b6_I}5=x&6g-|9hqcs!{!k^!3_2;u2eOzkgLHVs=oMX83;wSTn%dF6y z-+FlT5tE`;X^9}Pmr^K*8W45k)7Q`*s@5f*DOQiYDA(3M~^M<7-Y zQk(NY*A)Rf--RY@TWYCox?&cQoY{xSSkW@OiH41U1Z%a8q^_~6-s&yx)2lO6qduw2Ykkj z!1DuZ%Zl#DqOP*chmQOJ=t)ku8)& z8VeN`>%DPlk~F%72rau$DH$3GA$P!=47#(dPBMJkh%Tx;Q* zuD~+eqqL7+Pt!%c!rq2#$hWV5|9{UYr*hMV6LB1&vIFyY)QM+Bzv+bZq;o-iPlB%3 z>)333gCo_pruohAOnwaZix=QycvKtx7mDv-caqA@2ttNT@IUvo3Z8!p)D3ex8=}^_ zmN2w}gG0TZsD2vf-GCgL$`n8K_5m*?i&w+-;AV&#+@3mm0T?{TLnB88cw+OBSkwFy zlBhyC)9cXaVcVg~t$-8&iXgH^-uXs2;=qMoq}hoclkmKxEf*=4VZk+&;HGD0NvDOk z!Sj1vhhu$WKhFG_ic>yln28l?weq$j0qX>-Y7o#*!i*Ha*fvLrc$qv%*FZ#t!qF)3Ya%zHo^cFim zp{4|PYSu4ywVwl1+V>0QeGmekR;VLE<7V@1m{xq$_u0H(94+llV7`S{uOP-NaD`XE zHB_vVel}kWo_0Ab>3hxi6HNj)zJ2|Nj-XLdnUq&X%;>wfpXg$o;(eInJVwn@v*!U1 zUBj0z^ml#AKMO`%4?L!QTnNQy!E8S7`}rl_(&JRKWc=VuhEKtN0dVY^4iO3f0PL|u A761SM literal 1203 zcmV;k1WfxMiwFqW#zt8J1889_aA9s`Y%OGEb}eacW^XQNbZu+^omSm$+cp?|6^<8$ z4VcoB0Yj(A#!{r~2DDp%X1fW3fRa8*Tq%+uDLbAjpbxQU*n{;+_ED0P_$R=y3&Rq5 zzW>8RrL}M5Dy@MRtF!^nNnUg7z%S|VH$So0bd|>AW~PhnDlK%w8eOy!h$xn{=FD&f zk`=IKLX{fv9vUOLhgItQHsDk)+X9wUSgn}RPI#e}P!&Pz0YXoCvmM{bPV&KMSIFiMGDS?EYGnD-GD4pN(wFxO@QIiI2u-sM_q zo28uYsrW|+{g|G>=CG{w9t$j`=035(`dR#LQwtBw8J8;}*HdSp%w_(j$svN}DCU zy&a$K?kI7!-VC6y99}-)Gj0U3?pY&Y#hNrcv`}~nA=+h_MH=GBJ;V*wej@VXU}hb_)|}LP?~yP-3y(8<)g!ts7v75zcevBN0xDXe#1tzNFYy?nNGl zvADS8>tQ};Kb$|{FEXm4WTfVj;zB5sr+VVyweeEY$x*JA@O7JEnax4k2d~HJqUd06LpJ2=m%snNXVgTwZNiB-j8NKv zc?E05v!dU$LVD7=AfZP=H=9jlw!X%ZYFp9O_3%u-3-*f_;A41{4*e%8=wNr0%Jm3B zhD`83o@f<3{}QMh=5{hfrFA7?Xhi`IWp|?bah!Jpa%d`7#j&>!c(Yj4_p8Cp5H+|x zcJu-;c#eifjtcO|<^$!Ws~aRyiE^elq0z&(LzPBv^(8S5tzUo|`3|7TyNW?{yW9^^yHJ^JkLtm?p)u4wGpZ!l-9Ysx4^A-0BPD24?03xTFgbk#v4*Ao(o|jOiDnG*63fP)~uY#hS|& zl5fuX#ZIDM1nhHaf_?NBJ3pbO1b1rIFLt$`0#n-e3+{aof+8tVM}o%9=3SUpbkO(N zyk8tFJ(<9~gIBL0!W(dnSHKmNyp?`7UksjhIV|aW&5K8x1a5r&@(&$BqoQ&tFO8Vd zcW-a#Vw~cAnBqJ_%~G@H0ry?Q=g;(4eat@#Mq3X>MEfWcs+a|{`MmGvcu9{#P2=&S REgnAd{sqFQnUw1Z003mYPXhn| diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html index 66970227b04..80201efa386 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-mqtt.html.gz index 8e17b8bda2032e0daae7d2011ef090f5555bdd05..28a28a9647dba0506f1c2d5d46d14517ee147806 100644 GIT binary patch literal 670 zcmV;P0%83hiwFP!000021C>-wZ`&{o{VRe_2@o|wH|*fpKI~qsLwhTVg0|FHi!5mp zosSv$@1wt(qzEwVWQ%-yBp)fJ71kzCD+Mx7m&2!U@|dU6)uMK?F^XxK@d|_otBjCp zC+gpbJWo;8-TNpslCY8z_{?_$a~-Ort)jaDkq#qB*()niKFDfAfPD zJRe1wc&D)%=jSYAemPQCFN197MX@}u71|nQ&>r(gXO6WBvsTCC#-3UD;3x`e6_b`; zSxkNuzi1&WhWC(sr}PehWWgs%7DHo`9^L;=$zKrpsZ!F8j^<7jf^=B7g+| E0Cht~uK)l5 literal 8302 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 \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz index 67fa10692b15ef97b0b29a9f2880f17090edd97c..7b6037014490b6159b779e65e8c6d2cf8a5e6f5d 100644 GIT binary patch literal 14406 zcmV-MIJw6kiwFP!000021J!+NciTpm;P?F%6gsU2B7h?8B%LM&u^l^}_DmA{#O}=Y z(Qx5gY)tt(N%T_ug9%)C(YGdv|BLb1b6Xb?erBSJm07xh>AmRxDedpPlkQ zSLO2V{A`)OAFT4_lC9Gq7+l>Yo3gmOWmR&uT`vn(LF)Ngy{Pg{bN(S;FUt?Z_gS{g z*QxRK@NmD2`OhIM*ezQ(b!vV4$_y9f?NxbIeoVVEdTR||ROJRnvHpRrviEserS}_1 zVO5i}dU6lH)@(VsZ|*j1@wOx$ePp-G?MU$87 zFuHG6c|DY4czB>s+4jRjNZ)+O>Cq_K#fze>nbUwQF^2iDCR?mvK6V+Z8A1~#2-+^H@v)sU+>CrSuVD?>_f!Z zDCW&%%jN5BQ|C+eyvP^7|CHAa^jL)=zip){w~N&a_C8-Q0jYew*)~6NR2p7G=!CHwgLng$k~jgF7aq;?9FX(HDcd+%6^9$08=G7IIX{)N@e zwqo@V+EZ&D2TisK;`O#DqF5mUl=$&I{7``6r3AKl#xlHuDe)P`up^>LPg4u5_=v^; z0^Lja$w1&u?tud@^rb-IZSB#}*iFw)1;6+&%r~Cnj~~j9l5f1a-4rJ8$QyQB3qt*@ zs%~wb!M5$l4w^ytZ zg%Sk=bEZ5uXlDkU)eMKgVI@kxzWNVH(hK2Y{FGg>;tkL&Z<__?2D~KAzq2I$!IB!S z7X|+cj2(vxwL0ABt`Ds(w>3+-bl|C4ets z=$j&I@_*`yIH7kuqg{*34b;xdZT&)Q-Zy0qZB?{+Yti9OVOBl42rl`82;>U+S3EG_ z#Xl9GqaY5b|610fkKxw`R5P}K*{Mi8s2PEZvH|f)Svum#d_64+=5Zm26l}sS-i^}T z`ZfO@cQIKi^ql{We`j}?M`{1Y?q0xeAduOH65avz<$~UwPW!opl!AnWgp^QF@>2Q$ zF=1V@%Zl9dR;;{kW#V#+yeJ__CCvDGvr0y+_}<_%kDVHV3f&1 z(j7tUd6l;=m^G45(g$I*!|6KET}WD*V7Y$HdqO}OQcE|(JU(W_CaZ2(b0k387W--l zY^N+hcaae87zxP6u`BgmK_LmZ&Wd9`a9C`2z}>w~yT!0%j1w^hFN3^9Gc65-X>SFC zO34~Lv7?GU^$0{iC9glL@79a`a3C;DjK&ooL(GC zwGD9Y=jtJh&mKw%Bs91Hz=BiDspzhyow%W)HthY9vpB$NBAkSV3SBxh-I=YC5jRsr zLKkXMfXZrko3BG}ongV&H_a*;$8Ob=u|yU?2w-@{OOdHSBr$`l#qH4lzUdmcXN2d; zc-A@Y>|;3c3@sUpo)3dT|I{Bn%Z`FB->{~s2ImM?z%=fv4)NNDjB2l8KUMPzM@mCfh_=W;3@Td75^*r6 zYmO>v6p@ncdx?gar-jkPi=BG944R_C9(w`bA^vstdbwl`wEJwme3921B-&gW!;$c* zyF1B-)w@!F>>yFomD9L6RqIBwnd@R(ua1w6PgnR9cIG4AIVh^62lz=WpcpSFM1H$1 zwyw7oqXvFufFYn&xE*dcOVFBr%h`ubSv5a^puEf~(C$5Qaf=qZu>2peUT;a7d{fpr zPWrH#Ty_1G)u7A8I;red+ET;JIjozz0(O;NBHmjf4c6tF1&6FIEhyJ$^aahY{d`A0>+n@p&q%c(*2j;Yc&RE+{V{ zz$HMQgRTL`_k1g&VIBvQqk=Agg*;r(>*jL*1%=+K53Lj zT^?ERezZIQ{ddA}@|$J>Gk6(kFCNvYSDy)cfn;!9jphmC#mlO^CECe(ik0XxS^<$x z6rAaeON)h8Gxi9>DycP#OvI#MuT{Wqb0EntdCyXD5d-PM(a!2)g9i!TZ*seCVF$KM z>#4~g^}SR?B}DX*JUsN4jSiBF45HKt?=GQfGMXMDdofT*c53;3{;xRKJYYcLbZ?mY zoy!^N^0r|QOLg?nI3v}7LEsvg<}d>VnO}%c#@s<+3Ih7V1%b4o@UCaQdq$Xb50fvv z2XV=uAK)M&t7G7@7wDH(}3;4}!*N{bb&$Q8u>=0L#6 zzX_9m*e(^7+QT=g3~@Sx=jh5g41U^{)g8Ek*Z4+pGzQ5XDffQDg7BwGD2p_@=qHI_ZNU?6^{qZ8Q{M)|dtFM;UPYmcch9 zzwOGeN(#GED~)mov)2NQW>Q`#^qFweX4YtCRQUN*`2pmcj4Te)ux3;8&Kj*09swfl zbPv&laXXp5LVa!?K4BDfL*adtd)m>xq1CnwJJjCb7PMik%KEI|xy@-{V@4!Jh~cb-nH+uYM%%uz>l+e@ zHU2_NK&PwET_{_nA7boSUJ%vrtM_^dL&FddX^n`$pf+!+a+BR;d^2!g0?jFJ?!1Ny z#57d5Nt(pXmZQxl(p?oDWw3c@eE@4%H>kE_*L5g?MG+tvB|%G!KjgIVw;&`uKJSuS zquy!$d&d^1IrkOa($ZS5lkV_06kgg+!~fi}N~~0g(LSQ2k{9*r0>EuIp<4#2$)aLe z;~VrQtI$PME?JRM90VZihpbxut*je_)^ATNoR?IVO1+`lSdKDdUnXvI;dXLrb?ztA z+bdvULgrafsE|2|`bnaGu%{VQ)1l55PJSGTdal)5R}3^R^1}gH=*@P zpvv)aM+VU(nvgpsj7a(KI3Fvx1yp(s73!EksA z|6QRJa|tbP$~AU!stTV5=Vy|>o}ZCn^L(-b(s#cE#RazNp!uhZESn;l)jrFXvG- z;0+GW2a`!%l&A)UUq{gW5=hf{H2ULo=P!Yj2Bag53cM<-C7ur`KTdD6>Ly=LMs4re zRb3X_hD`yhAiZN=uucTbvka+LBFP;smHY@O8mvx(dmf6p+XVy3fH6^*F^o(Cja>o? zoS&VV-SNW@gdQY8!V<%Tp_upsx$tj`0H-ZdsnFIVJ;sZa{WahtY$YJxs7pM%LCeN1 zD!Jil{wAEkqO93Nww%Jx!QZFRZ1DWe-=o3nw}bG1El;A;D9%wsYA(j}^Yr_erCdxi zJZo{CvYAXFH|H>0=eM+fUsl;In~dU>QzTy&>6 zH`ruW{Jd>Ye0q^JncQ$7!yHg5y$9V}lnd|kdZO*bcu%w~Y??Q#yE+FB_PpGx7)>M4 z^xF{#C0Xr_^CZT&x+jv|;Bv@xh1#bh>=#C`Or(;IqpFIH~Pkf^}BAJ=_nNe+yV zHMT=%saxO)xiZLh_ed_!*VorTDt%z5Gbws(sV_)W3({;SX$ESx=~UPpoh)jmidIRR zye`TQAs_2I3I>b^`p7W=^hzKijMB%6bnZp!9}dRhU6}h;>&7Y2vjgTJZ4j{^ehZvf z1SY=8mT1O*hcr^AN(VEhYy{rFg+c1y&tTHojW3Ds5G`G_{XVant=vHH&7?p3Z!EuA zHEs9p_j}cX$8e^7e*LhVpzvXpKx) z0Zg%;Jc;$_9N7m?`HfGMhomQCl`ct0n^6LC5RZQ8Z|jF_@jC`8Y3YQ~Ks$deKLG8d zPX&vr{Ln&5GK=THc?nRh{)DuEv`q=9AAq@nR%b@l>Fal5rXXO2!pfJ--++ltq78FR zMJoa~eq1l@HblF;-d|iHlb&)mzKr*q#L0h%JVQm`k$WC4%QHb&Vq}F7M&z*{@B_L#6FOEjot-p+0;TVIpt3Df;tZmBQaiu0CK=#^T*UT zKYkL;mv!=}(HkA=!#79Lu}6&w7}fMW6?!W9H&ygUPqGCXN(+^x#Ypx|fS2!>fUMO{ zpxiWXv|VUb)V4G13EauA))-x7@8_=-T5-ay4nA0$W;Q+@O?(+v19IEff~x1GSsT*Fv!=?EYuao))LJJ1Q|0<=fJrwzTCKIlH?cCzhWSbB zI@K58)f!k8>b|h#(YcSp&)St?33E|>BHZ76Ke$9C8KX71qpon-MSvi2H+TT)B$jX( z+q~QYv4_B6bGWld@fleXvq!FIv&!UNn>mu!mW48Zm^rtj%fi%3Kk zrNS1w+cHR2_sI0c@=Hd#^vze;Iu6#u(p}NP zEgroZ%77aDh^22(vk%5xbFRoog*p)b^|y>}X$X83#5pxAEPkreJtzJRtK?z5T2*@c z)pfVFZ^_Si@F2IE$xYTkke#ei!taTd~A%O+(cwoOMDD8W@&z&j;6|^XlAF)fymK` zTQtn!F5GP0z*$b9|0ptQV;*(!5Y+Jh3FOLr)G6w4~SfLH+6;Y)T8dzKG8V! z$*^`wL{J(TY{Ie%-L^es`)lv$V;w)jHo)7%3J_EXlvT@Ge`Q;`83jH4Q#K3TQLcvC zS9};;M4&N~C!h`nlU-2-@b2j``P3erijfIVl^wGgBIraVM16EFM=2$%*&84qudaV# zY^k3Fj)BM&6d9zifI;C&%!)xuiuq#2MS3xhWt_5ON{~tgTF>Ir1E6?qCW6uxXFi=U zUK}Lc#g|qwF1`6mZc~fC#LLu``=%J$(agf!w@TJ(;^0}jO%{M2c6rS6wZPKLWEoAT zBr(^3)!l++9>pw40ptQD&eQDSft{sQbOnq0I}tw~uzDhkoQ%)0Ny7l43NKFTa~SQ) zgp0^8h8sNp1AQ(|pwB!7^#+vNjP@~hQYNyKvvj04x-#itQlF(ux6yl3%?_w4!<^5o6+ewV%DYPyBShMKuXQok z%w!VfbJqee#jucso%!$`)LNy{8n!hMUD!?_t>TM?lGYUuQ0PBdaj-f|0yg!nQRL!mcpkSOk}M&69L#bhk+8Lih6>6N6; z9n#*$1=2F9(~L&Is_x!UHv(weo|{>^tDJed4G$LdECE7(>fVkt>{^zjj85x=mV9Tk z^Yheaui^x_Qc-mJZV#iGyMSl%S_^|pN+^Dcu%qu*ZC>AwPF=`E@i?vkZC33;-p6-X zp>##GnX8+=P{_P~Caeuws3})SFp_k1$hXQfHAFr<&osA;(j-6hL>o?xxAzR)e8}_KG(iPfQ6pa##8XrVUu0)koz{uRgbxqI<^z2s!xv> zxoutST-#`4Dr_-MKV(34%`orSh^d)bXV)j13$Z=V-ebAwK0d+)>-JPg!_R(rcFxG7 zQI9-qzvGCAJl816lX9`A`q4uRZL{30gaRG7J1jr-`eSt0VJf`y!f z%?#jo($Eb~Y__6fTyJ0sQ1T5A4ZM3@@kNXC_-KqCmB~tvMyGTD64WIU{YFI;!g!oC zI=H%4a<8d)<22*P>dFzn{?^`ire8yb;)fPPkQc5lRRNt)(E4&mlGrq79$il;kIE)a z_t~`NMqC!7-&}A zYsG`pF{wITFr2Yd7RRKcz`oG12%VbOG@ z#D80+oY@H|GUC03rm!eaKna2#uH>oLxQ_aZv`R#5@BX}&M-?@LOh+?0A1>Ic+TKv1{ytD z%@N|>D27cK+tRWgZ!Dzw??3HsDQXd01GXDVqvEksuY-8z!<^9^=@nUa@IoEZKYm4lA{z43P)|k@ z6BW!J*SwCHT5CESt>Mo+-g7Mu@>GT=Hd_5|RP>LQd?xhrn|)?<b$BJUvz-RwOg{}h?j?NDqLr)9WldFT$a;|A!C9)^bJZW9tq8e#c& z@;niATHF;hs%vGcQx(!=M><(CQ;PcPTCdxs85ORdlrUj0qfa|dfB5TKu^6qU+vN-O zN!>=&$fzsmC=8pF|JUd~e*Jt@Bn?w0dB4=B3(+lE(<&m5w&AlOa{8^~Lj2^-Uc8O6d2MVPsQv5+F(f_qTzp1?Z=5PZ8C>^7?=n5K})@MNWR%dB3jaDaV z-WzL=atg!9q}&crs83F&oo2uG{yV>=&_}}$i9b78?eSZFri(@K5P6K$z3#=5)<->J zemdgKwc+4*y>zCEfmIvzvLO833?CE$2~BQ;x2=|AM6%rT)?;XegpJq{o*@I zq9P8WZxKAjdzYi5ywQH>+9#=yG*Zs?=dMzhi#^uAY z#*ZC47YA&jp>Ec7?uW3zJJSv~O^hQ)5x4xSpe*rDqIU6wdG^Rm?25y5rY#KHD2P?P#Tc0`Bjp7?XusyBCpMZ-1G?uG zo#U%vQ9{9AvRih199(Tdsam_~98OL;`jS*APu%`Ylko^G#nr4*X?WFwR)WRV@o{-X zPT_JWt}Uv=3g{D7Mw_9~jQsmqPAaSCJPgizSBR^d`uUWGlhh8Lnl|ZJ9|`eMybkK& z7M&a(D-q57p6VVl-65A!h&8`3IM$T_*I?4=|Cn-9LUZPFpIPVlm3)M^tr-s0i5`jj z(!O>hwA^YcI?ro>wcXAJSbC0LbbF}{eZz4Z_v}TZn>pQ@-xYz~g9u&=u}FD%7;6p* z%?r@2a~aAYMaLTp)$113A%Uy!oVaP*6EbsObB?^v->02)$wP9hWQ6 zy86Qn_?o}bmN^vnR9eZ86t=r}MciW)@YqU(r!Hpc!?F92bfncchFzVZgagG;KiZ{4-Dl$aBw8s%=d_htw z7FuJ)yeWQsq`RhE4qu*eYS<=UPG(0PYs&U>awZ)kt9J*z+(XBWhQyhs&Y4+He(58W zXEBaC=55GO+TosQ7o76W^FHpH=|_HeJ$YWhyFMLJ5j|3^7X@5owVO;kCfB!?P3-ai z&>k6$bRUp+NW1m|(~ixcPNDht!%^73!alp;bRSy9c?ZaKk=ajn@~Dd-^*~|D^x&;p zeHf3&naCD1ow)Tcr#Ia4utjsXg*x%u9RuvAA$uv%4v|4#KJjR6CT8h@fpV}w;=1r2 z@T_{I$DFhWjG-}DoV?Fx<>zoK4RRiCNh*oHrjf34;2oHjD%3-KSMgpM(qW~m=uyI< zuW8`L@==>!?j;YlP)LM%tA?@c^@kj<8g1~6*XMY>+5IA`+2EVeq;akWjyt8C&QML~ zRyX5jyeOLTv%1vh)4#YE4?Vsw?#!PhW2gD=Cy#D3dDQs-`~}B9#>g?F`SH`okH3AJ z#k6CD+(ArECnJuuy>!i1`ag68vvCI?yxF zp^VPVBYF10I_5RaQyIdqUU4EK2aH(0tf7VI8=WZLsk#xTH-Zxi&}8xgiMJ>`vZXxu z<~hUdSqJSbhn%~8o&#r2_Xe1+24?jM9_0`K*B>B}!&ArLu;589&Vq=_>cRw?LGP{q z|AmmqJx9@^P|s5g{~u-$c1!`qwHEPr(GKL)_6m6MR~$>`H_4~Q*TciTbJu-pef!F& zYv|LijNV#9@e+=HcYS)V--a#icieet+~y3;VkrQ6-}TJ#WmbUn&X&)vK;Z1U=XnHFql{6AHu!640@rF^ z&w$UrQ0I10^BV-x-+{3%%4%72PK7$ayV8-?g)rV;O*^%m3%Ul(PX@IQx$U1M#XAh~ zNdRp!>Ku!j9Yz7YlQ;EiH|UDGLv{GQUI4y6uj}9P35 zC(TmxO=Tg+$Omc-e9dc#t}pYC(&uJw!)O*mBa9dS>y zx}ilt5mu+~61<^BDbSyy7Ubc9wO1UN3&%t(tlsy;IeEv88_-`-HtMM;BUS7}fshmj zZ6>wVO06pq<>|Nu)t+u25gXIRtK=4Z2jm%F6+?`k@jnywS|SMQB2Ll;wG!$DDDyQS ziU{zxo@Lg<1btZ;@Hy?q5ABFyQ*M&)PgK_(jp2o05Xa?Pp3(ng~T!Ot?ludF_4KYp$t{GHeGml$d4>iBamaq zFRbxY>N(^W0xWe_67Bq)Md!pJ@ql@O6`{ z>5o)@+x&+IMe|hRKcEt#(;EMEs{8}1$Q$epIux#BG00j{5π8+=~pSL8Pj4`X+T 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 M0EO{nK_BM;0L*sykN^Mx literal 23800 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html index 75d9dfa9d6e..5f4337b0171 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html.gz index e28e4ae8f301e798d009882fbd31708b939cd57a..686dd7b7cc298ac401babfe67acee198c3962fbe 100644 GIT binary patch literal 1359 zcmV-V1+e-biwFP!000021C3T)kDN9X{VR?Wtw0MiSyk!-14P>Ep$@{p&cs^eOftpLKy zj8-gem;@1*u#b&p7HFPYs2hQ|d1~yz0c9cD5v0Yr7xHX_-0|E-0aLFxa zViP~Y_JP~;wp#st*3hpCB`rwXHLNVTyicxvY@To#mkPrD4pz?4&vCdt$R@_2t8dgBkXow#*Yc`Kcm+@8udr16$ z>=x!;ST|3m(Y$8*FvP@Y>DqTTPg&E%PB7RY!49gmq+%vEg;qjfQ(_JGT*-{mIg}Wo zEb7BQP_pAsP#z&xDY0c5<;db1WE*c=Yn3FDX(S_~x3|OH-5n*SLV6s?ExU)`@E#3L z#f!I5$$U?0#$}B432@PFoPJHZMhoH>q1UHehc^qsjLGOIIqDblw8?M4qRxP5KxPe^ zuuGV$+7U)@kMIJ>BexZo zmWk2TDqS}ilr=~;mkn|)*cL=aKe(nH$jA4Tu-2-bDq2jIVpe~(TzhWGo{1LA?z(Tj z#fOh&-#eaW?#}x5EWPB)kAN5bxZTH4Tnkr(S*tmA1vM7@dh_Y`h^WSq#zgp?>+2(S z9%S-6#Tf;nu(zynV@H+(urpKYjGIAUu3LU_@-&HK&_H#S|J-Vg{E%rIppLF^!nv(D zX<#zB$u|s1iz2aAK6D{n) znBe&kX6+Lhr!nD}s~g`aO<l+*c^?d6!ztqWbUb-}7SBWf*1o^_d=e~1+VZ8-k%$Lgp?PET&q^F>&_Tyd za_)?b8m$_4*nmkooR9c#4-F)rwtpg>eKZs~F8+i=2$+ogR!Cl5_0crgUIZMs^oSUk z7y*$HqIEgVDOujH&_t*K_sfx_aAOyHt`R)+F>NKDt*$NR+ zLTDJ-6;60OukCx-u~yh1?4#wRIpsT~Ya>kfT*wt}Nr9(vu>Rw#x%>xzZ`St_rQycv zLuWI1=W}Y9HV{CVbbXJfLQy#$G}u;4vRAw$OrWL$`T@nGi9=%v#J!pjdTGPn2Y2MI z@FPcDH$0%9Kizzx5%md~HKG;_M%|#3S=P~sjl}j?^RwnHnlvUi$a?hv2NT$VdlRl| z)&xf|9KjRd7Vi3RWfWF)av9BW$L6N9M!$=%l9?%=o34_#vy7L6B{>)5mA$xtK6*A$ zzSm*IBh*Hu@l4t5lnx+!8}V#e_KCM}11Vn#koUIQz~yCVGLF?oGMl4r&0X}$@01lc z{u;>e;zHu*wEJQx0KX}Q2p1QDe6CtKlWG|0%gkI-rviCNze>6pIn;e0Zt&A>m|E$2 R9Dn}n|6hVd%7X+9005Jwn~?wj literal 2943 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html index 35c72447981..d55e008d907 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html @@ -1 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-template.html.gz index 9811010bcc3d75323a5977d1fdda3ecbaefe1b66..9d8f4d9f5eb8e9586d9ab482c983d4042657c719 100644 GIT binary patch literal 1405 zcmV-@1%mn?iwFP!000021BF-HZsRr(eeYLriDuUVbV(N2Vxib>(*=sQK(UK%UWz0z zXlZOQp-6$G?08lEQ@^2K)**GVoy4ghY>_i_=E5^Wd0N;~%%=sgd_GOOpQXxo^J%Wi zs8o3^fbe`q3l>#Of{1e1L>9_QFbi}(9UkXXV|Py1%xG2{i`IUF5-u}Q=iniF9j#=v z67bkPRmyP7mE>}bfQi@X;pS@z80O{Rp>>4xb^6y;1mM3v@fvx~eS zK&Z88c|zM%TuRV;1GY3u)D|wS zs?v`bY!~-OA9iO1dGiyiDzPINam6ZxSz&Y-Zw?p1cclMh0+>$8QrY5iTW|~LjAf8k z8ltUc)d5}%S}WaG0@s)Acyj0{a!f)eg6&joNx@8HGOdKbaz`5081{_PLsepgvd9s? zpk&1#AsQJGv<5eC{tyHNAQc%b|aw;l?s)iK!st zE1nT}M2;IQw27xlHJ{el=7M8ANugndmA1A@ljPpv$Cb*Iij`g`xynp}J)R66O+tyq zegHh3#ZoZ&K<7_`LZcchYnkICmI+JcTs?JX&|iV!Mr;T-<|;wfa`f4QVcst|e3In8 z8e@`suZhdFRTG_UOZixRsM^rYb?Ju&b@bc#`14km4|t?}FLDo8&s?{UVqVMqFY^Ji=v zU^4W@PTyR#;n0sK6?}dtrDFk4Y7Bw)3SX_$?&a@(E4g*7VH?Jg5qJ~f2q_?s; zBL*xfcMBxFUECWSFf-EJNY_ikQyAGjL0u)p|R{@1uq*_n-@$Q+B*g@QAf2&F0<4h+cv-O;Xa*W=;)NDmwv zoE^CBQy|3QAc!-KS6my5cOMR7-r-*?>;z&;p+d zCfAVDHXH}VOI<-}+lJ4tuXI(*%#HI21dRryswD6u?O&bnen#dWuE=oJk1sxSgncr^ zPC)zCAFn_}A0PK^-RHDN2pU^()4hzmeLLANW^XQn&@XdXDpbcF=qK}jn0a}(J6sL% zlFQuV1mTDC^I#Y{gZ!E6aVE{)oOgh3EXElV;;P~k`sMT2YZ}tM)A7nlz4mwk1u+sx zP7aIX6~@z>LHN|;MSB?UYo@V#tB*@uv2~Br*XjIq)SzvHOMJKMu83*U{X0nf|Azkn L-c=8;J`4Z=<(9Ov literal 11544 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html b/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html index f339403019b..68bcffbb13d 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html.gz index 6a1c2905cf0087ed1d383c04a1cd8ff53c21f228..4c6d52d64484200e3d2230b6efa772580b0f21b3 100644 GIT binary patch literal 362 zcmV-w0hRtAiwFP!0000217%XnYQr!P{1wHg1nihz9mUYnmRw2;fnGu=YP3NrlGaG; z1mpPME7?s`=xJwXAIz-86Orb;w8nc=c z*v1Hgng{9()H|i61h?;{4zbWx4jr(Wwhej`j#dLNr%pcYD6G(qCA`jdyA=2Pj5*;w zo)a^n#07=t!h&lPosyS`Q^8|PkjN24CYiV`kJ(LSd2Yv5D z@z{VT4Wa52SG|6I!GZEgSoMHtK)C!W=$9D9T$>FF39{;`Yv8xzBuop{>~0uxK_m_; zb{t!GAdPOm=+D|oJTEu*+wI5W)BEK@N{8ii$&H8OJS#<`f1H-1=qz`wG5Mb*!bI)! z>{)07k`c0`gpmTaiE~ShY#d}qkCuftIz8!tewi(X#V{;Z@wKKS@pAeR<@i^=0gtrT I<1zvO0NJpv00000 literal 378 zcmV-=0fqh_iwFP!0000217%XdYTPgo{S`&0U9i{W7L3=>(uTc+1k(1hEM;QNA_Ylf zq;VGG_}?qpO}5aJX5PFR-WyG$+1a+y2&!!yGKfw?h{${S^T&O8C)=i4i!Y?cwo&9t zM{2MrjM_^LWe*;0sUb!~iOuMG3yf_Od9>IbwNVQFX;LPp!dQFqcw<~ofx+|KR4cDp zCzKA17dhU`<1xRdlN268pi4&9C}UC6rF7_r4Cmw_#kmk@V9ekWBqUq74o}%tV|DeD z1b4yo+&+;V9fr+hV*Q`Nq7T$#V1u!qGFCsnykf`2Dy;rWWD$JvA?OoW#C(t~fkIVJ zJofm>cmq3NeRDg{1u#RW6XQJijt%+EcDfj^=(0O}d4B%=?fb9ych)BE)9f`yHPw0!)p9<60L~?vHbnve055p9ga7~l diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-history.html b/homeassistant/components/frontend/www_static/panels/ha-panel-history.html index 810673d49d3..48633f6c80e 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-history.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-history.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-history.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-history.html.gz index 8c21bb232bd3bec580ec4a1277471ad8a0aaad17..e99cd87148156b061f469f1234230569f7d3be93 100644 GIT binary patch literal 1161 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
QH`>mGruU{20zxy1L>g?yod%GbMO0yC#~6TX;rr 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-iframe.html b/homeassistant/components/frontend/www_static/panels/ha-panel-iframe.html index 7e7c2afd61a..68bd07459e7 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-iframe.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-iframe.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-iframe.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-iframe.html.gz index afa1e40bf9d16e54864d7f0ac4ae47beeb6ec8db..949d08e0674133996c406f57b19cdde9a93cfcaa 100644 GIT binary patch literal 390 zcmV;10eSu(iwFP!0000219eitZsQ;j{S|~%sg**Vl~#Lj2#4OQ?mfx@n@LOy48r54 z*~tIC7+OW$ZBNX+dBe=(AqVnK$pN%cvZ+Uh=B%VaFFcyb0kdYy2Q8uw;DkLS?SU&v z;G@$7N{)11SfO{5fkG_^SCxC|Fd0bgdULXdhW5vLeX|+B9tUcB?fTmVV1oVn8Q<WWbFo|v=!oY$~2~S(T+tp~l=WHDCR7eZFB#$}Hg+?kvu} zGOukAWXa`~x!UcDy!!&|_p-^9-1upSDu<1!UnW$3kKtgC_fv9Z1szO>Z(FXN%gY=v z`H|H)Vw~bNv4J27hyBYtH0G-XCVRBu1L>2EH1e7rCg(B&5VoAs1e~3qd$IIQ(c_=5 zD_K<4k%Oy+&DHMgXBn)1qdR*@w--CM|M|a)2_q!3Ft(RcX)kn+&^~p~(9^uCzPy7E k`3XUXdG%q-KlnV~ZL;rmu59WLY|7vK3&ml?DWU=Z0Drf{6#xJL literal 407 zcmV;I0cidoiwFP!0000219ei%Zrd;r{1t*gfdnuk7buECp?K&ax1c?=C&LGdTw84T z0=cT=8v6HAWCA07+;(SXwL2Q}37r*u0;vUefRd<5rVKdH@82HSCn|W?$T8@%;5s%ap=tpu1hG_Ipb5 z6i!vN!fW$b>O!o(-b@#7<|lE|c!maTxtNOGuDZLcz<$rWA}ND!ZfI^uPHNrI^eXs+ zIo{35))S=HV|X5@w6+{`2+3vA>KNi2uZ{5tiP@l@UZ7k)%|bFq<6jY#OvFrEdzh^) z2!J0brWq(X!T4nGKcox4{>>Cq%||J&33k`COPqDF_!{ilLAtq^-2WB-CZ-S}p@H0A zD$`%^9HIX*{s4u`rseVielEWdq+d3#vHXEA%Wa9ht>s;Ne_egAzX26DNJh2-001~t B#c%)s diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-kiosk.html b/homeassistant/components/frontend/www_static/panels/ha-panel-kiosk.html index 54698b63987..803c3696726 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-kiosk.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-kiosk.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-kiosk.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-kiosk.html.gz index c2d53ec9d4a5f707e9f8b94590c009440d3b5fa0..632796868662407df4302ff77889cb3b594e4849 100644 GIT binary patch literal 207 zcmV;=05Ja_iwFP!0000216`283c@fDM1Q5^q+rOsZu1Lzmmbn)A<@KyY^sR#-%Znk z=xKJDW!|u0vUd^;DlI{*G6emSpo8Z==*eMYb;pe2QQgt;n+I8|u_lEnc9ITM zhBF3r@`+AW%ouY3Mx!$n_7Kzp#Znh{jUuj?q;Nnq$-|+|<53E7>7pW@*GWoI(#qIq zUmD(Qemwa(RMK+&aj5sxdw9k)nwH`-n~xN(5zEWX)A&F4K9`iSenT2>EztNrf8)aY cZvQy$_njUd&-Ad>G4%R=0d(@hLPY@p0QE_35dZ)H diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html b/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html index 67676543b1f..fc9aa01d0b1 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html.gz index 8e4c63b72ad9e793c867b824a6a85737135a34c6..904aecb6acb36f62536bb30d9d27528113501b1c 100644 GIT binary patch literal 1633 zcmV-n2A=sJiwFP!000021C>~9Z`(Ey{woSs6cQ%Maj*`7{DO7uIs|Cf0!=>*Mi9`_ z+2Tr*0!2G zVn&F!+((7v`wggQxfK})g}W#uH_=9BTMiz}W(1d%iHN0A5RaB6=z{8eM&fvcf2B%C zsoWG&fY9X#)irDiPBqM@Oi8EbnU5J+ER5tGq354m;C{u*WDsIlC|Q8g49cW(FOo{{3rId|#l$+?QND$QkUF%UpLkh^y;zgg zR-~F?&?00(r9f|$@E(}RIUQp&G`jFozC z1j-pnx1~lEyFolAQohY#Mr?vs93D-!?8`=Jp5(IBRmMs*wNI8@re7y@j73rV>JM5J zeDC>DR8Y)Kw30$c1`*?6!kK_52e!_2as?aI(QE_N1Iu)tyn0nUPONmvzCjXSqd+RT zRLPDiG*<$iHlu1EX?WC;eHBdVUOlP}RckE4rFUICdY9h#ceL0yQ7E=KF%WN{Ea@7m zA4<}*BJJBlj@lI4+?raj6=rp1FnM8eglLI5h_%iQ5dV>0Qys5)>8&K*khqV^6O#%G zpc>8Mo6=ZrbS<>a%}Y5#1#2%A`-VBC+{04It+r0~Lm^WHGG8oKQf;Wd#g%XD#t%6N zyexPp*v_J=O|<8pjbAJ1mgu{+Xm5wROs&qqW0P{?8F<-7@LbZY4~(1X{XNU<5zB&# z)|j9!d@E)aCS)Tpe>R1kgERK2mn*=RzYq^Efu_ZbIDt2urC%W<&pM|A&rK-y%X6zn zzDYwbUYqIWv)7bo^5se?n;liqSf+JQ=Jgl}>x)`$m87vmb# z+mklm$#)W+7AxONnxR~y^rw^@sA%eNaTzM4)Q^Ji&9ji2t<2ML?V8Y>lGt+ogjyZ; zV(x08L#)OHynNZDzYX(bqtWz_wuAoZPpt=)l{cxP%N-r}!gIF9K^-plKLP}g%cyBLS2JavFVxJJa*ejl`lR(nL?*d2gBN8>GN zqpaicd5le0BTTA-W)@(M5FIPlj-1Pa2?44qWXVjl30;7M8zqmTK>8?($jriMsi9pAD8eF3jx*32>3hx0luG)dUdg4# z3fhH<-(vr}?_oxeYK<5q8(7^y!9>puLvw1vZ-o)q1`@(U1{{`iE{$_nV6`AM< z*5}hx*MbPdIx;< zhqM0KkIZ+b=KbUkVD!_Yz_4%pXdrM9I?qI7{0-AU=}CcpqR;)-Iig~iwUff6>5+%Y z!FX2$p)4b1bCx@{_@*;K^iIJUr!p7GkE-2E2ksxR20qTa%&M3Os z>PWMr9+>Iy{5aN-DY8s>+Q|ld$X4dl4M@-?FCxL@z+U6KnLWUb(7ss(5pr2uFO5kK f%`Sdi-5u4U9u8(B_y2*B{m;Swl7SFYKo9@`0c$u* literal 20496 zcmV(xK{O4TOw{KfENI5D-`$ax9q3wmuyw_yU`%2OlBYF z>^v-@-(6i@Rb5?GeKxOe7w2blmd?)4Zdsjnrt`F{Se*oa`S>b+8l0aU^USMac6WX@ z%RY7H*=)x0BnUcJck!pyVw&dJZw$WA&#GyeE$j22ipAY6D|@fYB7c?D&)Gcvloe&N zUY5m@m379d;kwFx%krC#X?ery;kv$Cvf;a{e`nJ=`jjqKY~{ruk*U_)%l#|v*Pn6%8PfOSh+}-qR{iASgoR^MG;SE|<^SGQNJ6a(+W zkn8OFZg|kw9qm~>UDX9Z`Cb03uG8tJZkHw6Qs}5CA7RO1B$(HG`R>JE-hTh%$IDmmpZzQS`0?G#?+*{VbyD}{ zMOBB9oYw$|nBB5sRd2~a*MoE0leHiO~Au%|#^N;#5d z3DK^VmgK9&A|x8#XkG$R4rp5BRb8f;P5|U)CCo3n1W-&1pp!(;jD`TQ4tTGE*vZYZ z6|zybHNR)Fs&HhrpRBWdk>!j^17$6ie3MuBja&KtJ_sVjbu%5mDMQZL%#>+ZU=u;# zI8CFE+w_Y;bIq}d24n&10X|H6=`YSpQ2DFk%LgjcT3(gl1C+yMv*&liwd7rkyJ3Kc z9vr|XL^xao@K0bSUKMp+++GCyZ!kpEFqoy?0z&M9(+o422*ib;6Vw8S7>$L~{vqF8 zP(0I9jffRFSp>A`Hp@A9mnaAUrS3weNQ(yj@czD!Wdu;|LZWeAY6Gw@Z?c?Yg(_J0 zcrq{y*<5KiB}=?F8jCoTnuVTIx-3PA)+mEaPYw$H6O{}|$SZpb@@-<__Wk{OGrBIy zF6L#O3@C8VMaQrOOUBtGX_kgmx52E@mad-JHSLYZ7rSKFt@E%)H7$$9f*_H#X2Y8B zUL=Gp;uvjfHL0U5ttOe?C=R{yaW%n3EQwPRVUzT!Fztd7Cb9Us9%rZ-x=uQC^5mVU*igDsVgk zQp`7X&E?FaoMr)kXnRG18q`80gmjn={L42Mi0MZEl5GpF=9Pk?<`P9kltnCzs$?$v z#y`;lzIkWxZ&W64(|V5NqRaT$VmZd@NDMxVQnM5vV=M<7Eso?g!cip(reC_u>Q&XR zqB6EYCP<{BYheguG@8+aRgEm7w7n5d_rfsR#gcR}ET$VHT2#KgfU52&Y-OT2=Ivy%@G5BA;4BM%84)jgBH_B4CFzwhqe`u47c z<*{2cneG1VY1$AzkiyUmv#n%fRI4?c3!y}8OH6(V!e(9}#IvXsG7(7{k(4WZ6T>!NW^_1 z?~7BO)>}!bz|0UreA&q0HH0AEtg!*vqGhqf>|T_`a>-`TN|ri1Tds*>xBZBCPIzRb zC^?|Z`H@9erbiNM+CL?)-Q9Ac!Sb7WKB~?Zqw460BS@JThszYtg7a}T z3CnRhN$?l^9nE`7R8W=SWm^R!w`;Tm{wAEu~hD`$E`^BE}~X5JM@ z2Bv^_cz9!TGwdG|omIsl0HBkb(G^gWUpLs%EIH_AjRsJ=0ff=h25L}3wSMNX?(b*V z`1Sq$O?1eoNFx;t3rHjeqm?bVK~{o3mqa#dJ0UB)%;jD(J*Bbpxx?C>qIxSsoXhPjyv1B0sglpNww$X_)QSV9U_J|u} zM~^Y@3Kx+edR8q8Sjl7YM+5v=FRr>%JTSz;U{$dWoWZhb9gM^^NOzr8!xl7%%zH;Z zh#|-m*9&0IAB$%-v~;zq+3)~(r|<48Dy}M4LaW2zl2?B*PxBj)`ao`3WK|7GB{Z$q zhUGIXn}0M@P_zYvuDz;t-tPPKS}3-B*BVrm7d$-V^{nA^jRGKZEK7zrLai-u(xWep z4iC*MB_(9x&2QL)m4zw1m}d)dv#^P=sbL8nU}2x@Qo<001E9@~a(wbtIrH$4P>m1#zoB5I3R26p)8g z2U}EZpDTz_(65B9T#fJLs!Z|k;bH#(GQ{Q+P%*|t-&yrcV2rxx(l`Z4qW5W2%i?;LX*=&CPt+S-0)L5(RY%z$(rlcR?`|- zsRQnLui zS|&{!!BMR!YMU1Gw9u|N3R$wdkbnsT%5{adDgv6%>eu;87g^iMy!vcX|1twq{7eI8TGs_&W^uEXifpB$}wYb(8~fJ}XCIW1@|z9}OlEJ31OQ zrk2#GxPVRau6$3tMl^486+x-EAqy53vu5E?+%*|hA(gl2Y00-Ry$qM}9daI8p!1|3 z+S{OY(E&UW8A@+f&=zM{nLaAhp8?SRo=vwCjqj4qQG2M!Mi<#IXcLgD!vZ9W_KVO9ksm@3S#$1R$wm8pT3`!N@`G zgCKs`0z6Q{Zf5!C)dvdhpAwMkP}!&%xNOZTY{z&SY3qiS7&#(|U$8`Opb1>qTf^BAV zssu25tSvM+&M*^AaKeZjm$zIR6XzreNz9`|mMNpQfw8eqYjvnKhuF1b95iyQ=OHJK zwJQ!2_jH8Y2X*gC#!iDm%6&+aT~m~OHW=JN8(DxYW`2LKetux6?kP%2Dt>$GNv%AIg(vMZyZSY& zos5xX^^VAsUM*Pl16wR%;%guP0P8DEL+ykQEn(|f6ln_QYSd7f)o2|q#J(=d`uQDX z6EOgBZV2=st5n}s7qaCZ-T@*qWI0fys8iAKqfX7f)WA{FsB^Wd>mrXj1sRAF3d%ae zyr{e5Sw_vzCSd?ws?2meFWL1Z>R>bScXo}3{irhr+#~S@(#CMotML##%W7QGD_IFY8+2@a*-I4 za-}lFqdD(1KdzmU8tbL|6RuKoR+@0F1@-bpv6B&hGfKnU$j z3Fyt4c1yI(O3(YF6pjiALvh7Ib#oAw1F<@I%Te~o^yx=f!u$IG^|Vgvg-M*t5MlE& zs|0Xn9Ah=XqC#{^y}yUTQ`F1>!Bh;V0ESbX<&xnP$Z(P^dm$eeAlU%mGYR+%;H*I7 z*Q!C!tzzha$ji>9o*~;7F|u@>&X&`Z8EZIjp>4AMC)4B`uMv z$;q4(!pYzA=si!XH+U-pExkiiA&@Zou&nS;cu@+mvscYCbleDsB890GIp`7%#;0jb z{lggDW}N{Va1=IgVj@vr8{gp>#LSR=;bm3HFR{{#^t>FF=jmqS(>(6FwlKM%36BFk^yv$QI5+Xo5_qJe{Rk?&ppg6=Ka z+A(Au*V9W%#Xi@xcBuzFv#?{vZ&zIREaQHO>m*^YK+yxbU&7Yj^Y6_*N>MSuo>zOx zhk>Nkt!9p|dFc}N{$s_;J1GctgE3wPQk@C1Me^G-de8)1b+b)&>batmyv#vlz4Kh9 zWtF&U$ZwJZsjL_BE!WdYqGe=XXJu8tGKVMcx6P!IEYY`s+l^w5<6mG8Jz z*4#M_9$+`yxFr;W7L7~WN?1U7#YJ9D>b~nb%d=|kDQ1XQhll>#M&%Q$c)h}5mD0Of ztjccK#?gA$T#1hGD7ONF57Y!!S63n_YeywshAK7NYE*}r8f-{SE_(#Px_#*`LOSG%cQ3?#nY zJ**R_Z>B7i@bf@h(WCc3%0_9eP~sN~@W0*xh+Z-PM*9bZBvW=;E=L;3w-n57vhJ+sHU$ z?`@%JYC0IdcLBT&{kMH8;M2Gz5|mYm5EIwgo9oeyPPUnN{>X})&%p#b<9U`lb_X)i8siL_PU<>$22Q4DUby8()?YSeHh|7ih73D#Mz>dv2?M*j>T zL;CfV(7)#eIoni5Ui)Q#Ut9wDn=}&=-y-2bP-xS8#Wavwe zo|R>Kho^M>+bzQTduU@^Ov0!Ll`T+|qBT%bpxam~3{^x+NC!gmqqlA4@Foc0e1Fdu zj)ad6wU*7~tx-P4ugR#q=$1W!HZUrYEN?6|w&A6#swD}(gH>h3fRo53*oOKQx3etd zVcMKA`;Zv+7v8ujbF0>Ais`AVSH4|Dhj_87Zv#!Yt5#|YUA$kRGpv1!1=GZSLD*2m zj2)Zvac4MWfN`$w291TSX<=~-lLeA+HEyxmW<4Y!WKvqd%2>nWRa1Uc0dlualcJ}F zN0+#2vmMCImI}@aVpgguonQ;+N6hv83+A3H^)3IB0j<)V7N+5f$j1HOqPHvoB4M0Ql&(!p!6^_%GluCMH{A+f;Mr5cj=IldW#P=5%z*2b5SFn5M$DHoh_YyX zwYs7sz`<>v z>?6}4s7hZ}KtLeO|)3TNyc<>1(mT|*N z;Bn|O#A``IK(vSJ2;I<|V)`pczb#kR3oEx8dsB_0VZ?aa>x%b?tvh!@O_NP~2)L7U z2ua(#Y9ZL-!GW?~c|n&4ydTAgLUlk^CH|5xoHBs@iv(IaJgm7s>_Be@JP>{?8Hx~f z3ZhlFMn8kag`U4^iJF(9g3zt3^7bMThG4|s8bY4)r3+&1op7G?LEO>tHT{br)gPG4 zJ9>={!|9Y0EGY-MmE{=Q=BZusd{cy6<#*9CJCl;O&(Zb3a7#8EF@DcbqkUn>>-(UH z8Uv^95E}N3h6h;m4n<`7akP1|)S>Fcn7$RU*!d{&br-0mieLUGhK0<`2Hl|35SEz^qh1t_j;qSk%h;{URB zRGbL@K?Cz6L4&U5?p8u$Umo*|f<9{@0r?%Bv^np~$-p)T2}B)Tc`w@P%jX9YMh6R9 z-UYl@9dXelkv-Xryl{J>IAKg4dk>skm@QexEux|a@@bv^P5$^LSBmjqcVP~+7uT|RpzlPrBU+6 zoUW8 zpqV&+>>Ue8R@gTN(B>;49Q?J!7%63EI7BG{woUh&a4ok3#m8}r$|G}r(^83>pXq=( z`1}UW%x)&&k#x+Qpo99KB#@JdWx5Wx18rGBcOD*RM}anyag#vwG>?8LngHIDJ}BDe zwYKfXXP;B>#ES5s{O2>S?5d)l7`Awl4sv?H)ezY@5x^+^`Pn~+zwlrFXbyI*fZrtH@8zTz1h z6?q9TE4W-O@qSz2hl zJ+Z~wME)AYwH$b|^rk(_rAKXn9<^Kfx`1{;_gF1v@7feenx7iM$@}WI`5IrI;Oq4M z*{fZ_rp%zN;yhp`9q`kuieqYICGrgi3x-_!-uB3ZqoeB@(P(@EtrSR1q1M6WFxsh( z>bVL79WQDRBLe{#=@xlm8tF*mfabKsX_rvi)h^52DwTu!$$1<@nm23-)w2&|xRl$Z z7CQV)JIrhal6r3B|J-tgy9@^$Uy2@?V^G})aF#}0Z8d9^!5TFM7HjWb$6`Mh4q=c? ze~Mnt2oVYm6(|`%8ZTRy521PaC=C#<{GlIe%XdBFQgN)A{)A^X^rn!#eYMugNjg3&fMrhdKRq;iX==4sWR-NhU zDx1bv?6(XAq~7DGAN5Y6LAV*IhR_*exYqS3ysweZ7VHy0P@T+{R>6MfWch{u-|v(+ zS82B&;eUIB$6?g(3?TiqnRkMDk02fMW2|gupM>6?A2oW$79MZu`RSIPANhKI?C<$; zqvyx|d8wWU{g$pz#E|2`eqBFlbp52IdENK6X`eoz@28EvpUS@77I^QpqK^eSH2Xi5 z{Xg2T|3MSi2H5i8N$Uux^AoYW%@JV5Z*c^V_Z&eJ{M7l0cao1~7mxa4rp*y32*#)T z4dJATeAN4+r@mRz5WYhkdm`|^IfMZr2`$98o-t@$;ITuJIMos|-KR92WqD$KkwFsw z*%LMrRpNa6%Jh&QEVJpatW4UocGT>>gr7grPZ<#j_2RETy!$I-zw&rF-Y_VrOd-D^ zx+$k0jk z)oQW$g{5UT$BODJl)*1^-CmsO-}0#}iqhUKkDoqy%uelxG_Dr~-YXw}do-ZeD$zpm zKUV3Y^2XEZFfyG*iN3g|K?2)rCNX=IqQP=46=IwT$-IHWU_UT!tb*r6*pgW)TyX7{{-vab+*8_J3Y7l+|UNE12-75d$yVy zo(IMNI_X7yp{{?7wT@H$J3P}DL`Dgtba;^t>mmFfoflfK4mcu13cxPL$KUc%MRl`)UX#l!f+D1P&$R?Wml!Zil>&GI=bvsy>z zU#74DW6XM}Kj+Um zjh5*QpT!v>>FayPQmwA=t?|9a5z{a>U(pKvYnjayG_M!z%LxC8Kf?iki2oSHI7B|EJ5#0rX+yxm`Yv3f2{k^S(+SFXRq z73zSdi2f!VDh6kfnF|R4I1zY5t@zW{6-RptAY=Q1Pz=xqMLBp5$jFn)VP;`NUtzBp zXw09q8uU(1|KxNqt_x^>qOUef2J{M`@5PRXAO_ARrq=ykjybskd{{rQy;#iZN5gfy#B`!1>PU03k_2M;)6k_EEX&YkbR=s z`g}aTB#8&|x-@~PlMSBcJ^GD-8>?_K5jFs_B{k8Y0}?@lSE1M%rj}K&ur6nO!o}kcGvL#EQfedmWi4Ppl1R(X(K)W<>K>#Z; z5Bd3FUX&QbbY6Vc=LlJde2k%)ch{H)6At)fN#UOaq74^z9SZ!jNUzx9Ya9;_jQWF? zun9Yb2B1J`m{aUAQJeq`s!=w(hH}?bNKWkoIxwdgUTvSrLL$YM_RX22)6Qv2Fi$2O zy(l8EDb6A4&;&vbldT1s(7_?mcBZ~Av+5&$P&I6@BRBci0#Ne&BpR04c;cY)f{?Wo z7rCl57LZFz-(s^<^#k)TBpSHQa;ywL(l4qNgx}W^W8cGv9=-!ha>RqAH<;p-vig<< zUy8&n-3yr02~M=w1aq5_k7di_KkHZ)HIyf8LTDu19z>q0H<7s@W;r7OrLhP+&%xtX z0~N$X#|8!@_X0y+EGt$1GDkzxS3428*`JU2yRcO*N3^?fT zDvP+fTd=Wg_*|G}(BgnV#`xQdoCT9e(fDQ4FIvxcTUi(XF^94W2t@@aQ#NkFtm{k~FZ%x291`eM@<>X4&aUszZ` zekfdJEZtgN@#qk|{3g#~ZjQ1A9oSntF@C4U?_71Bm_a72d58y0wiLkka3V&5)0c*p zMyp@eg5eEWWU{_tJx(W^O&GzD&|EY}J<}@Z!Fg4kAh0V10n}g|9FEpVE5$C16&g|$ zDgSoyy?MYxLK+d`%tLe#F+SKjG#XV5wnYKfk(CY)(?5NiBz+1sO?<1}nZ;m5l33C+ zCX#;ajbPGu+0tU-g=A`JGTkj3Q8wSv=H?a|)YKpxrAp0;oyow=Vh458C?05Mh#XDW zvm`ZIi;Bc-e3aU1$m0IqNy$cG&aK1Uq8Dn0rdDrg#sbyD8Yr!6zR`QDp-kRy>)zjY zVFxudkk-2ghllk=J!Bhz--F1XtLf&ko0M?fbiUIJPWr28B6oj(AfG9uUhzc&@o5KU zl%fU3;FXaXHJeVXMoi~gI*8ztbD;<@XGr?a(^jtgkE2R{Fpm%wBPmk(2}8i2C-y2xMZ_ND(399qad>C$|K5H z-(fiKJ4mUQ{6OoY#A$%!V?cU6DJd2IQy5s9f}H|UZ@CNi z>&i27`UcG5Ru$}@tS)zKyoAnOf>vM5ivN=pSDG7acm zt*)=l*{4@ku>hiAzEQkYjV$1328lC>8F4V_h)6|A2+_O%-ywBj=PMSk0P9dh?B}GNFjUUvBp2WnqAmv}( z>e8Y^e3V2ba!tPuq;DOPC=*{z?($-E@==MFKUJ+f=#5@4!n&7780FJ#Mr()9*RR zeS&1GthkXw)v&%cgg^s`%6@dzl}{#`(*uk@_hLlcEUV+&m~=MzZ~u*(!wdEtSz9PH z-!lFBYXebx1vx08Wh)$2&TS}oRz+{8qYUG*o^9F3%^LL3Wu<4}AXB%peOM?88V01$ z(aar=A&D42Wk~ZS;Sj>*R6Bl;3eah>l0>~};ORqQz>J}D36L})69|v8Xy@wVbDDUo z213vaa_D^zdsv0}(eG}#u%w5mwig=kLS1X|6YC4`^n~DhC8`&#nBO4B-8y#L3y-#-)362YBM-M&<(%uf)J%DsM}gS8fg;t-As;36 zp9bGJ^{gH1H(i^pFznkZYXRv^V&mMlDW zNr1cJ+!KK{<&-~W1rrZV-6nb@`_bTN3!U8ErB~9D{Qfy`=k5H>&(Ok+N2ZcItTEgM zbF&DpqK2B{2~UQ_f)}xf-XGPiAXE?CU>LhciQz4*csm7dU6;)JG_a<26di^7soKIv z25`s&5v{VtKX+T8;1^-6C@wT(&`nbS%tG`pfI|a?6<2K1+4D8V7;LZ$NR(lB_7Kpc z3Q!3HP|5DO=NbCjqm#pR%}R_U%~QLT^?V4PH!M+K$ol#fAG>EaQqV!oFQjCcCY-Ah zDiv%-`lozk0b1>@H=zZx+6I}f#D({W-}~X)wiSZ6vGk}m)pd}yuqYd|36D^1A?~nw z6w(9^I8?X0h2q2>a?v20k}sO9Pl|LGdrBKaE)MNNc@|Ydu_Nwkep}4gf^G{h0S2Gba`r<})fkTV=aZptkBU-1QEe;cZ_eHZ3xj@gQ6QTJ2DIz%j&rLbYoxfQ|N6g z)P)hb95ZFWau7}1R85cJs9!JMW@TAm3vD<0TUO_m)oJ6A=(mvAs;bdpNXkM!a8r$W!I)mM(NPGN3~l-aAKI=Bc}EPsaUaD z-)$zB0WlZjQ<*PeP>^ZL5MquAe~EAWn&)-({^J{bEtmo$Nm6YE)e=whsu)Aguz>V?6+8+i6j4K(9%GU-y zMy?Ed?&gzLnA~8jN8_c~aVV;nEwbm2AG*Q3u9w5(~*a8f~v zDP(40^Buu#h7~P3W^z@RgLV)llHlaA47b(1&cxVUpKi|2X6(8;KfB>Ey5{T?J>)Ac znDBvA3O~*p~SZ;dq7Dr3j9sU1O7k$ zo2Q?62SWH}4Fo4Lk550H&QCwZr@y@&Jn0NRo&50h=fMw8;P2@)9`pu-P9Oe!_g(Kh z`qMdi^9VYe!kl}9-c$I-|IP=Gr|=D^eiHW}Ek61Abc*!`@EM=rf9LVw=fONa`Rx|! zKmFnK=ciEV(_r9?^_Z{9F|E+CySi-`-KL$kc%$#1b=9qXnG_otPK(9rHn*;^%}d=j zPlBeqfaM#e@4ol;67xBqZ#8Ncz}kFOgG6ZFS<^KCeN~~YsEkxMtd{AN#aFEU%vi2` zZP0=FA(Q+qCi#1K;`hiRJCYq!BKTKxkf?ses}e=Q)UojI-G2Cc{bU3v6ikGV6svxP z^UTEc)l$Ve3R&0J*<#`ESHesTnp*;>@#B3vV9sI@Px+%`DrXeOs`;4X)(M$F7|8W5jr=l4tbevcTYgleGpbPw5Vx_Gj!S^wr^J6cgLzK^aF>TX#=cd~Vx1O;Zs! z4x{d)^A(yWtR41B+|@QyF;Erv7eL|$U5ZfI^c_wx+JV3kIh357o<{QjeURY!s8132 zO%o4udJ_EyKD_-KuwN*&9YNKUW1O)80)?ak7XH)$9RwdX)fUmU2p6$wt0tA8x7JkOUqy5 zdJZz2hx(XA!6>M`3vI_j>5ET}?qO)6 z2vVJFiWUvRCQQUBVqvEZ@MeUZbg>|7Fw>q4Z8M-O$O33a_7%DPRPPVAC z%h^&>BZ`(n5=WDzD1ksM-jm0zp5c4>x<6Q&;SXzHRY&rRe2>;G((8*6$H&=E)g;N6A1(z$s9zav@tp!(65Olv24D&E{dA{F6sF3 z@=I&vfs@}SHe0c6C^k_urqk(G@z>ri+fbTMe8UIMWpmVXT@`6LKzjt_RM@6mLTEr%#eim9XE4@ohe{D!D2tvNT|5ZZaHkM%jr3Fl=< z>xN8vn|_J?r#s{yoW}6#7GS)XFTbH&)EezUV>aqa(vq(JIBILLNFEwxBxRAzH|yv& zlc$C~!+dNRZqve7t(SCQO@VpT(&Z8#VGEYP_G(6+x@bo)T^bt>&zv;v@@%Gt`2ir| zmhq_8@QnEUjHoVjOMkIDo*?u_SenPB$6rAQK6S#xm(^#j*;jQXgF?2 zcR*f5x`Uqa_R-X`$QSrReFu%k<+Ex@P+VUJO3Q&|4SklOJQBmIKn%*h7@puF7fbsz zAwyYP61A_D_woz;?7A+yrox4kGG2(Z%6$2!1hyJ}-hm3n&gf!yEX&k<&=kz5K-QJL&Va@Xj_S$j`mfAKL6f-nnWE zyuXqEaQj*~3dZ)?D-nD5{7axc2m$;X7^d>Dhm?_gn{a2_=3{e~^`DLxAfA?M3n%bF zm!5fYTG zyv(fyRv!1tJw4`*=IgbI{F{w(SC6G5y5Sp53rpT#h;lqofc6HX)?rV@ravQ=aa<#5 zr~)f6Teu=qGO!et%pH>(9`rIW32jp^U~E^2wsqfu5qH);Qk$&E5&LD(i6*A#z2QR? zo!g2hPhB)QIo%&m5b-(Z5ngEaZpZF5E*RU5_!#ULVu5&rj*%coBx*?CB|O0C;3Zzl z@<0Fk|M0k?w8P)=Yasz^7sunXlY~)nJ3d=MGiT}Db3S_&Jb}kf5I$|vv&KOv3>~ahZg0EOVem0xqP$8;#%Vq#%x{&P9ze&*55=`gOx2MZ5 zVZgKETYTl0Rk)>15(!&c5?Q0UeFHD}?h{Nu6p(;10zN&G@o)Th5W#dI0d~d`ZBEh~ z@tik5(_l#v0+-_52GP}GRhr4q;XBwwc)nKGUl{8^xDO12KIEF_ArB1j;45Jolo(~T zU5QL3dP>a*^Acx6nynjcI;D(u3t)sY6oebOqREz(3zMm$;NjZnTqhg-n)HpH zg;K6peQ#Kctr0QMX6j*KF9<*~$OU~!2&Na(jNy%evl ziCECQY!`zcj3=Yt8Po#9CkTw9K%3;+-tgo_YZ4I_V(jq~uCkZQrxoSZ~TK6IA{dP{mT|>f zdXN4QXlx?;K-Yw_e>GIMv*NX4h2n)3U2a=z7L4|5?w=N;DB3YN7fRa((grV#$6-v) z<6x}v$dSzUBN5Mz&_UGWL}Jz*sJKgx>dK+PMDU~yH{W^s6wu_@lBdJb(NZFnQ(t(w(x2@+cjWJ1IFgw2 ziZXQ4ke+|XNd7FgbpXzN zT@2v%B~mX>F-#Pp=R~+E)ZaEpMArzLFDSt53t&|J{dDci`x2hF91)Kn z3F)x)lsGaaVSVO2GMgW@oJa{efO+d%4AhS2-eJo)xKmi|1%zNG`s5#0pR;;8*E6h8 zO&_i?WO%?I7$0t%)F2#Pl`Q>rL>0L9Tnx-u5a`}4#`4+rR+aRi!EoMoGCw}KFc_Ro zWyDDEeI-Y5KnOK1J3R7(_ogEJJv~N^#I1UWK6eGE*xohT&>`~AqSYTrH+j|yax?hG z-&&6$CZfr>06ur(zjcEn<$>SmEkuvhu%SlT5`F{QtL<85t2=7OPF1`DA`0VZ!5iU5 zwA|BeNM_ox&x~idgl0gXtGmjp(msutp$?q{Ydl;c^hr=gG&J)vhd<+MwdR)j{nHa+ z7bB*FGwzzGira`P%ciXB=L!Sl`1U+v7i_WF{E?|vayoLCG-|}U^hw}M98;&Z1S^l> zrW_swwjeI|_t5XVBpwgNQhp7QDQ`D=Yjo8X<`B24FU%n&{2RNoN^1Y}alrNT!D- zA#B?l>&lXb!iK!%HyQs%ev2TKNrATF>KSp*;6d@NI#i*RQo!kQd6~wKVLw9*tYlqT z$TPU@TBMEr0$?Q#@DIDKDnK?9j$U8)j9V(1htBmqicJfHlLXh_3?7n}qiq`V^ z9mTc&R!)NJRZZapkh7&yyrmZ30z>Hmji45|(^YYE-1cnQi8jx}8i)suScUs;dlP~p znAP|;9rCT_uEp=ZGN_^kQSz!MBv~}cStSt3Dp;9gCX(VV)9V~x7#7ihqd?pf1uddy zdp&-oWY<&Fs)-wt8R$JTI2jHawY_-NtQ$jRjBZ9T3XLUf6W6?iKoJSw)<>4&p>J&+ z7z-nsHJ3#sIg07~d*cSu!PQ>Eh2Q*5*j^f28_*kn!MfTAL54pqN(l5 zB8$MO``yN7(*4SFf)l2;z1RA@@9Ehrvvm-nj5&a|*39nPTGN7CdutE9PcvTG15k`x zVWHyVJp|k~8nz0!{~HhyFmA+2ZDz(4*VyTwoQjayn6)`g>{T~obsOA8n)l%+gV3zEM|Mw8p`eD6d zf{KXX?;EoJc?eYh6A;Mz_$evY_2Z|=$Ilar)P9h`@3SNe^#c&T+Ah{bm4krt#AV@O z=Hg+c5h}9~uTtog8PoCL6$qN#Y{5ARIA`3(IiWoO{Qo;|4Vy2(Cu{rd9YaWy5AR%V zx3kAUcAwHkhF!hJ6P;V(QrSCRsyBZkpS4@pO!If-v1oE?p}LgKpf7&4CvBuKKDKGP zciCdQXB)DZ?;o{=fudY(-v(#)pN;a;rp$OHNtWnRO_)~6u5m0M3w78h(?Qq3Pjqcs zr$v0WPG8>kOrykICUsiVAZ_yw29}|s$~Wy4RpMJT_x#Uj?J27VUG1~ed5r$?Vbq~C z8CZoU2BctLP3J%HBRfouhgxsg1&T#!oIcjt91QUJKc)F9E$;wxUa_lE{Cu01(>eTo zwk)#+ePil>T4C^U__M&TXRDi4g<7c(Y*{mU8ZHXnP3waH`VqLRNPNkr{O2T+Mr+XV zhgCkKX5SX#$Hx_`_^-dRSuTHnoUcmp^HrJgA0JYf2>#S9@&|&bS>7gZkT=Gg;Vtm$ zP}4SJ8}_NGVSpb&B<pbZL3qg~gvqAqN==b}<5dH!A4+iiJ=%8hZ!GojVSUfT! zj$-%?I7_Nx|A=4&tXC};S>1)grbHg4mN+fr21RXd5!svir%%QRWz97*t{Z;-y7H?i(pU2^4;U?r|!jYj&B&Gvl0C4 z{ACngbYA@Qm$38hL#O*+W=G+1sEnH>6I0Z9fnvv)ba@e;?{LVOyx^45b8WOI*f2#E&wo)|W~CnB%8KEKEaxONdJmwIB! zNHaCX(nS7QKI381f`~Gx)xQ9UX~_c5(+YeKNV6ycqBKAf?uB?~g0pA`+)~XQko|t5Ia2fEVtcj-tJhoQ_%{88_2ubu*hs?L zs&*cb9RF9?RO`o^`*D0UfnQHHVT>s!`tR4rJ@$o7F`A^dK+gTtGHUm7J~eA(Ka!OPT+ z;D9OXB;A8AsNzB0u+ST`2~srk$qc!BK{dnQ@9`lNA(?#80Y^eQ0rQmP zi{{#xYS%uD29XFesl|nTn~^#z)q;{E_HIGk?Z_6|iF-2ysIod!5iaEqNd~z&DEAi< zbT7+uVa9TQ-&eMQij+&sxsPOOm$=m6qOB{Un&Neyea9tyAk2Zu7hn1$+;0g^j~1}! z_3??k0&gpZmzYO_oheuxpPaMflg8X-cm;xfl3xTozydzdS1gtFjVcZYr|dU$ofj1v zutH%`udi>wV`f)G3XBsXovv&Cn1lq zzehLFM5F!?I14opT4(jPD7%haqb}gL3O1%+$~&%^XzYguHS$~p>Q{L^mxf>WggIpMH z=TmMH-o}&P-|wz&2a+(QGj783Mx0E#>X{AC(MFq!8gFz&-21L%=!cHF#&%2(!YIHi zkgX49h>ghu$Gj6k6FBuTh>vY64>_T9_`3a0*p%o6Xjl|Ye5@^3{CQ1Q|u)!DdwASgSWTV!pqpq zwMl@9YFGqV9^M*&>}wYTyf^$k8_9a?=wVyQw+~vjhxc^|CMoF-5VM{Q%Zw z@5a_GyJ1iIX&>Nho~e%!_xEW3lz3|3;Z?m#f|oKv;=gFJQ{YowPpT18-#oXNUM80w zKQ5mRV-d-fxQsDc1CRSSBU!e$t9u0nfe`jk6 zdB^pyB#h)vFb9&Nh^c7uE2247U0GC_+U=091ij;$_;>jW8A|)vbjqsAqxi62li=L z%WIq2S(ew*)S6XOWk;PS{ZW2aOFQaZ+EK&NZJhrDcGPGvATkR0z4Tu)ojhyqgHcaM6#g)DIQqE z3rg>H?UQ4OG1)9EE z;bv^1MHF@e&)!EmsQ?;mtN zUT+vs3^70E0ZAuoBgD3dg-kKF+d}5YJS;bjnSP7+Ebym%!@>wSO%aqE4*;|b%Xx#t zjEH>lq!HBrfsblfap&dZ1u_(|h>z|c7EcBATrQZ1muv-VejK`J(-NI~?-1Ji2E*Q~ zTMgD|M?N(734@5cz~6g@yPJCYBosJ1&I?|B;(PT&#`zW@%%9>0q7(y3wne_Cvf_~x z9eZ@Ys-ifrZHCOBrxgz=OcC>`i%7slUiD8fLp0#cGb>4h0AD35uNm^3N_EB*TUhR7 ziy-~~c-enUylieIGQ<})JjX}4?#8Jt=r@gUN%lnyC6ET#w!%%jzES@3HfI+cE7 zvP2_FS2#6MVY^{6_(TLM#yaWZb9z_B*NY;pW3u|BFtox<=^5p|!pt|A*M$j9*}Pc5 zV)9VZRE365zhn?=@zD&U+5xI0LvL@7*KGyqCip;}CuaA0?Ffz-=2w6X`x=kchXFIJ zCw@{4(MF8$W(e;NswrR^fL#>#lt^$Q%!T+nbOdqyfjt?pqIBaMvw7HboHpeONWdbo z|5#)_+tqn>Yzuq_E?BZ&B3V^N{&MLzqoOo97~FwOW7B&2>X z61$w+h5HU(KGN45JpWe;pq&g53 zZZ^BB9r>N|?9j&B0>jG_906K>z~)w0z9O2nemVx>hzHOZ_zF4;sj$+tJk+R=jAIVW zByjI}nbVHi+O(_>azEk3cI){qJ;gstAj%enWE#b^Bjdym$1c<3Oy5~t8=IDXKn)%FN6Ie6P6-I1i=Ed|4b(zcojjn$mCHF={nu)we{4hd9S(1Q*iIx7hGXLu1EoS1`W4+8Fyy zb1p>K7h#7zp=PsfrlVi?l*ERU@Jp0F?YzL;F2%`1^I*NiN;_%648=ilg(wV)jT-i# z{Pi}G%h9)w%kVX6_tkS0RPdQ*oY{LcQ&l-VHuO@K63P`Q#$y3YdVZd_8+CYewC4LR z21oaJ5?XZ69HK?Gc!upXpcgF#m!Yw{Az>Lqr@XoO1@};33wEkE><(fPZlvAh7oq+oYt=S>%j_@cS1AJZM^n1 z2(70jPT1|HS7*0uE#9&`U49wqrzm<)*{yXV)-P0=kHr})v*!9K{$yvT-x=WB6~4#0 z%=*1sPR-Z53a0D!_r&xec8h#^fY1S?5qEruk3SY2u}U4039`v5pY=@SY&2OiIMs{y zLr63cbqT{!#-CznKEMHGdyY7XU?I=}>gby4Y^-^PJ_zV<8&K9sZjn zH!R3MQQioYByddHQ4`}C=}Iuf^DbiJkZ;wOE)-SfVoZakN)c&xK&J98q&W4v3S zV|i9VK4ApuG9`N8$zE(7Ocy`t=`%uLePkDc*(-(DT^U};cqz~s1+b0fQapeg3wDc_ z9hEeI1h##H=I6-pbWx$Bkk3BSi=L{8c_#6Oqiv>ibv^)?(vQnj3TdTf}6~i?a`lAm38SF@lTc!P6m^n7DipIph2I?vNGKDg8 z?oRW%sdE$f78*TR1h6T_EnC3B62jJOd3cyXY0Fyp}_vAknQi}U{lqIGlw;Wq&Qk4y4A diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-map.html b/homeassistant/components/frontend/www_static/panels/ha-panel-map.html index 33e972c2349..c6bcf738d2a 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-map.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-map.html @@ -1,5 +1,47 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-map.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-map.html.gz index 7f5a96d3c93b0a2722969ced358fd1fe9dd3163e..fe209e3015c80b5103327fd9820a723d659950a3 100644 GIT binary patch literal 43383 zcmV($K;yq3iwFP!000021GIe!TN_7{@Lz%1e7rNz5)zIRXT(^KuQ=od+cCCt@UlFE z)S!;Vj50GaD8PUJs;cif0B3jK-55>ZM|E{|ox8K@V*Ye@#?$H3-EH~jG@q`X?oP#* zwV9Ysd6oph+Ucsd$mgpIUi40v*>uheNPW6nP71N8p01xQvq>fLEUcJ_u7mvaPd=%F zB&k*lo}aDpt3_T^<;F$;b@`dd_%vA8nHTwVIp<>$s!~xL=;mw-vew3i{M%12repat zJPK63;28RjMOgLs6Zr4u=K40e4Xc?bnH?SsZdvlRvMK}&aHKQV1ZI6ni#5SG%UI6J zBrVRD7d)%V(OF)EJQ=dgruFAMJFjLVzMGBs)>d?#C*=`8rlMj^WNUd;9f{*4hktGh zUM-7kt-3Ycak)^~Ay1waMY`%QioD8kw*7K0CVV8$U?!&`n?|}ief87DV!ndvygy0j z^U#cl4Wnp;4Q5FrYbP41M$Ae?*QQz7qF|Yt)Hv%;@@$e;VZEU!itX=PI~`hB)85IP zr)P6sorr1Tecjw_ZGBTQFU>ZRVvr8`LYTN*b~^~^?^IL(i>JHj)uq3mpB?6Ltj}h*F&t5 zB*`{5__&J0u6vyf+#e9Aw*-+Pf?EbRw0i|N_`p((0nMSi)K@yoSWMFF!6-sEdv()p6F z0k-%erhK{vlZT{2q^EPf7Hm~|$SpV&pfk)8m`nsve(MZ$DhFydB^dx-s|<<*^oGa? z_Xbu#qa&_5>N$|SZ~*BNRw}|7BWn zrVhtNdKC`X@Vj0pdR&-2TH_)STb#)z`_8e(HMUKk5&UFkoUkgHfQemN216{$&bK8ocC-f&=0PxDeT7zMS$k*mu89yoOgI z0uY^E*r)k??Ub(-{38EC72%SAmBAE1(>|=DeQ>e={#C-qE=mJT#VBLtXW*4?+ql$i=tD)Fr`ZJI`wCW3t|krx zxe*l58YV*3NEe{fQ9^|Vc3Dab8$G% zgYNH0Zz!DZ@e!0bhFRvx0B;Vxx%qB6%3*_fpI=oRW}G4Bu`QpvSY#c>@6Gug%mPOw z`?s||{GW~IZy&3rf}LUfceVQ3a1Wt z{XEYAN@2DR$cr)crYhFp_79oj;6r(WCet#VT$r(DVxC)N74QRI3@N%+|4D;k9irLp0G&pevEXH z3=UBSMbe}=%8uD=D+#l4un*M20Z|%N)EHWX7+424DwD-`My`WzaU;uAcd{T6Gi{${!E0q4OFeKw=5Ir7LD% z!2Oc(BK$Yp+YG4u#<<#x|LzyJqYc~3|E9{b_UxZkc72j>H9H=^5OS)uTBo$ems2j&~nt*diaecQ2`#{ zox}0Z`J42DN4tYaQE#JfU~sp8N<0mS)Y%wkE4DItz#=}GP8%DM%a!6l@|y#wf2bqa zTJJrB=M{T+71+d=Us(nA@y%CO`B_(~I6eQ&=Dx>G{6!p@J=mKb16~tw{%xU`ErkHe z8r7V3@d~`20)bWWwOTo7yw|fO|J1K83B;xQ;-Tl$FZg~^neyrL3qB=aSNoG$nw|6M z2VJv*#zS`)zxoH%h1~F=;MoD+H#Y-HI$c&3zWX*d6u32^jSezkgCt|^5J2b7j{2wW zQFr!%r@ylc=j6A6My>lFb@x91g9vvdv)%}K7O&v_t`;Y$Esj2h@MPh)e2%nrVmDEf z{dk_mQ@}Wij>A__Kg%yedU$WAh7cZ6NK^Bzro5_swoHgG-9vddwCY zWV*4jUcmbW2%q`$IY}@*oloXs@;LwiEh3~xfo8eA#m4C}MwZVk*?BxLoPnd9Z*i`+6hAWh$mNG^ z5EDh)#&X`h=^57uu9@eKRhIFtgO48Ntwt%1S(fNg3S=PFM=2bhN89ZKqvdy8PMMwz z?pS*fXWV(qxIbC4057dN5h@~&%_5?|pnT2*JPzO}j0lExi4tg{A_+yZMDkvPbGciL zN}!3bqBts#sV_5WZ!E9BaxDLDjs>3@(ZdGxZ*M?Y+pt1XVksS!fKIVg%INn|3fNU4 zZ%S|u)?aGqxdeeS5nEZvqpdI>2SD^>VGi^Nyj_T+0#)I9rzXqe$XN|%+)PW(p$Fb0mH|5RUankJWsOPHQ z3A~nIcYSpAyT^Yot9*gH@f2QXkUMUq5LZ4g#JR}QIdwO#efLkW%7RaU7>z6MdWIB+ z?CCoC{>>Q!;vjD=e|M;tpPhoAOhGtMFm^-wui3le_lQw@>XSEm{>GdAqM&p6lAoo^ zIZn(^P!b6&{0SM^c(41-{o*u-O|##dlda^TClbXlq&1%o1`7TC#`Le>rC5vuxWi-U zIdT<6cK(9$-ow2TnoFqGLXX2uaaQ$&O4x@F+bZP39+}J!`NCObQ8}}?!c#yy@siK0 z^!M$Z7=aCc%5$i`4)Q4<_jJ~F!JT5mTCttMrYY$Z+o=`%uBF&-NFdO!KgI}Mc4Xtw z8z+{tpOG4Nm5TYs261T9(=yaa(e9(2@4tI&28L;-{8<0k?op}D?*_5Mk>IpiDTike z-tfl&2N^A{Nup@TT_qwlTutPX>Kp@gaSS9rb(d&o~byT2*rIPX}1Hdg#)bt zipH~Zhx<4-&uHjQy`Z13_9V~Vkz&?nURJ9)KN80{)XB2Il{~~GoVWW8MQ}S{Kj8XL zmsO5Po5O`}U+)rid=mUpKl$47aCj)cTf(%dWf%{k>k&_~aR&Vm+f{9x?MkvoU2$sV zzc1SvjA3Q*2H=3SERn}TL=0d_eDI`z!L#X$nV3(*3`K5M;OfA1<$&1;c3r3&Pu6oE z>vO6_a9Z`xL{U~$W)xL^6(`TBJ?ZST4}+J*5teZT?#SH{oOHKg`_zqytmH-YoWp=g zcGfKpQ4X)^WdierIf6vcfT`j^O{O_Cp z{HKgadJw{|n{T2Z>Q@|&tjiH!+%q66CB?@C%ZNA3E#o&Q#;-eGAQD3k&tUs9Sy!{x zG@Km&877A1xJ2eK5^-C?m7iVc1J*LCvD=>n29%spi?c99W;6AHEk{NW9Y|5iTEH;b z#Rz9!Uy11pLA-yOmK-kcapi)2+)^TO@bMS-Mto?qZH+q8)k>=yEz*goq_|Gvow54c zS6MK=;7rUbMW)Kkjg3`RlT@udB({z!Kf%l2_Ab(M{-H>-5;p&$e;_7BUgl?2|Ji&o zO9Q$-5ar1p%D$-h1)O+$X~32b9ohMh%Np(k zbSSB+0UIDkQr-$nxUR!Ppv)^=RJ^D{m;*{h7FP^^t?*X_hrkqgG;J#ajlwYr`8ZfB z;a!Z)aGZSX>9_1xnult5f{PqpPHaz%<$zIWrB)Y7KA;z-Bw2zHmwWo11kFkM=?!HM!6b_nX3MVttlMAFN7V)zv@#sA`g5I*H|9Km)y3Sttl_ zrIIzmMven81MF|8h@_7qtDcY^-@2ONRuGJBYE1t|aM6siqX9f4k9co*oDA6^Hl9JR z0|qH_GN^p0nEW}M#eA2OKpy4r8ykwnPwGi}!p_U+P|qPV90DcF98iNrl5Gt~#cq=K z;19GKrU}mbs6f$lhX3Tpv;a?Ms9~2BP&JK4v!}Sb$R*Q*mYtN5{VJhLSE^do)ryW# zn2emzp;9`i>hjXJI21LC=qd7ExSlWEpHRzk4D;QxH$*Z^<--@0aLBmlolB98PkH=I z!N@X!UkDJiKBsW4k48$CHoIABff*@FAe}nfSn7AfaFk-*BH5EYmC5YpW=XsmY`BCY zIfEyaTEaLK@M{UboI8E5eT;~IdZ=+SL!<-0R!}kPUx*X)q{3Yh^$ox6r<|)(l&r&ZBJ@^l*a{7%bfaOIv_RB!{EU zoxOkNof*rt?_cc-oJRj@%x{t*TxnNN1>yWdr3$UE(6>-%r3$TNp(oxx zzpcIWXi{>!!IZsZO)?YW%P82E6b@xj%%G$jdBZG${F0>vrRZJ&{3s2qRK2AtBzu` zw9dl5bS|8ARMmhJ6~U9EO-%*QCZfAoL+3g==8rcfTbxLs(#*oFJY-rA>tZLfc>j2npLPlbjSM zsHGWlF^^d)JJ^_yXZqL8O*p}WH-iz+X&P)|hcO{dUWpne$ka9UU$#ZQ3N&+STc{(P6x!8~xdB z^tIZ+7x{e7rEaaWIECI|VI{bFod`T82>{ErfdaQYf;x5`8^B>oKNB)zt#5#DQMQ?~;0@xg&IHEMT-sPm6JKhnxSDxOX0NQkUaZ3DuEfpM#_&esj zj?;NHK1xH0}3KvjmyKXKcJQ0Vo)PWZy_5w49H`O;4K*KLpvi+aywaxJ8 zKbI%}=^bxHYn%VM-9BfPP-Z@&q`ywrc5ja4iCm)+$G8btf_k;QCw=d_jXTLmq{_NSy?Po78pV9y5``L?UFUurgT)?<9 zktnHZ!T(zFvU-+5b2z*oi}V5(Y7qwS+j7w60aQS zT^RL#wE7WAsMhMN;QVjsQ+`I_wNzt{1(TZ||6DQDL5Vp-zUSUF{-$Cjvfbm1AVXX(7;KW1^kko}WZn3^)QuZd@jOl5w>dpTaBEzw(PuM*GUWK{1` zn1tN0c)}`vu|QTve8LnI#Fb!51RGBoWLGQVHGM4Ru@Fq{1$3Rk=xLSUcWyFpt!SCz zGiDcFrhK`LM(0X}+Y?_~m2j51wo;^#D>6|DxFr5YHoc#q4bQNmV?ITt5E%EMj0>teF7WBn6)f_FfL6;Fg-XS#v>rFZue z*RC?E|LaoW+Eji4)%Y~J&iw}PCh`&#p26j3txY8B1J`VY!PYrtj4InMCo2{=??@aQ zEOyH>xJvX2B~9FjA}b$?v``qTUGUqlvaLQuCj(xGnI-(BDv19*frX9l(ZGZG|dpA zhN0aFRL+@x^R?-KRS6mwHdL-;RY@En>&4XqWBJ+HJ!7k)2M_SXRHTGrJqowy&Uj+r-Gh5!kKk#3q5*MyE)E? z$>Oj!g-GjdT-(P}!}*=ZE+e$8p zep1tSflP=qfmiv9e2L=wF!lBYdQco`sWY^ekr^!{k<22 z20TK>2fCKoq5_34LV%0QQxeTJp`mKNBk@Uz=Y;!72%C0~L}VK@0x<@J0QZkeW3yWj zn0a585`*P^YzOat!b3iylsoI#o2U&XyhRx&yG=-frs*m z47Azx9NBcS*2%d=!h*aAj0(}v5ltX12dpgGR2wmqUN_I?b1$Q$YG-Fmw)i&V`2J~W zc*3y=j*l`E^?`{%J~!J`fK0e06^VW`gats`l|zwVPv&{X1Ff>GyQ zQcGdfKS9liOVUMRCwEo2+Daj%S@!F1cU-e%d(%1L+HS-I`3oOENu4K+wbiy+Swuu10m%&Qlq zjo*FjohfcPBi`O&HfOcvi~({Ghmp#5Rpl3`eSP=sLyf!BpxPhu#d~o+yRR;e#$6^| zx1(EK(ivb^FS>mydMN(pca-UyYf5(zb({j_t7>G`G%tczs7;*UaTZJ@=^bXcKqO&B@Mtvct{F6`p?xol*BP zIqqIA1=VV#TbUf|7HVR(q2-!vx4tmcMs3_QNQ0-{vd~YXEDU>lNA`WFOLieV+ZL67 zqg&}LZ~C$2JK9&GYpkV9>KhEcu~Ha0qwMI_Z-q)atzaeH%EP9K%VRrzNcmJw^o+gAr z@B)HAyGbs;=#)@ic20TOIpyI>b>2*W*Di;9j&)+E_swYUbGy5DuP^kPT5nj5Ld=_=RC$;*d=<5Pf z2KGYoWl-$ig1MkL=BObME0f?0pYbh(aWZ@|*sQj{9SpvIJQ#ithd^x0cW++G)q1zL zO=Z+X3}f`~@W?EpFkZ!a{Fs^aEt|f@kC8yXgEMyEtd&_I<&q2;gd~L!$@QFO_93Sy zXD6o{q2y1gqoaQ!ASgsDO(1+Oalg`bE2LG?KQZ4Sxzu7t(GdIZ?pU|2`>Hj&%xt?= zO`_)xdYS2AQ{VD;Cv&QGw#a4rii);JQWU{yv{l=A{N1MUy(*ucf9Lr{TTv=D&jAd# zp;jaTYyZs-UA^yQXMEZMnp!p^vNIIVa!+T|!QRg3PpK8=Z9?VgRK5$__QURmkWU+h z{O&3S&m2z3ObstyA2NIBx=3Csk)4lArA6l^A`?8W+>60E5~^ugQ6CSLs4F6Qt{mFk zI%DZP_Jo}!%_}Jer%gm01iudPjh=ih!HqAQfpp`Ge{%DJQG&O|JyA5S%{GF)R0MnJ z6YPabE>tpJ14|*Ldo#hV)f&b}JwQ|p{yS#x>UknBkTFpl->t;)z@4};A#d;N9V61}cDvWMNf4Jm^ zK?1E5hk7(P=-n^`(c#L;J+;YW%Mj<0h)wMo5(Nk9>3B*8A2x4-k_44Eg*;s6hjpR( zjQy)^(bJ7@s~#Dxu}+`r^ohQLCxV>_I96;S*o8WTOE`pR7!U`q-W|Sl!DMP%#X2Rdg+Z zx%xX|mm+x{YFEz@+o#Von-)N0!uLD(du<1`I-T!FP~uc1>+4Fp6SezN_JQh5W<`!_ zpzLq@Jm-_oc>vTol!bpz@t^elz3N9+YvSj^I_$}iyi518FsGU64a zo(1FoBG@aD5XLvoG*Ls7tbC1YoL@x-)eq(JNrP0kh0oCLul)4iqIz+72zy_5YQ&+)mk{s*qb3&Ea2LoHDj@&dh-5SY^9U*xA^jtl!%B+sDgrC{&nug`+Lw0*vl z9^aJ93YBKOR+&|qZym@=_;qAv4KfwgvptFQLb39I(g)?5BUMd(P zABNT`gv%~yD;cq0}SATAb}~}=_TYw~!xKN#zkZd2d+UEg z+4qoAsuK~v6ioR~jNic3fnXZ{sjIxD(f_JHU(?8cLRIfdWNG{(DS!ho#UEidU(VxC zf_=G|$FBuk4F49%OEC`2seFm{)N!CXlh)P0*UB8A&rMT?JaDq#YGpnyY>DL}U_aOL zrQ*IVBX!UN_Kir6g1tBIK7I&TaQJHf)eHRb_T7iQw{L=D_6tygx8!Mc2rG^{!@O<$ zZy?E?LhO18hTFb5R;R{t5jbvtS01pfv8v8nTq* zyk@)`wt+`B|XDu^7;~C|_N{5@zXKdP|D)3e|Zuod8pi zic2QpHNfDKCs$Q?6c~yKc3d8V4^GNk_XDmw_w%B(U&ruXPz_$%M&z~2+&h?gce-s; zf2&62C$u_&oo}=V1i&2apx)Ng#&f>FS9y%Mt;Oy0j~9TrTf<@XA90Q?l@H+-amVD_~YC6 z2l0|K`q)EE6VKhRlUHwE#uJW*ATH=EkdLT1t+ZXxtWt0tFDq$_6VKtrl>b=3%^gqh z=ks*(IXT==$>WqC#^Z`TLAIl)t}J(oBe)wZ!MpEH9C3w1}@L z#~gzAlD^Fe-ls;)=etUyg%3bh$gRY5c*gLonLHJ`I9V9IEYkD%v{FTF(uYc;l(*7> zNBlQV3$RMTb;?17uN9u8LW_v6i)CHy9o1bW&k7KXX5XLixd{p&(2nOEnl90$p?a4s z3qouOY;S+(v96Ss*!MehZJ!Lc%^M#GS$IPAcMM-2j|;3%@~*PXe!#Y{h>56aR+z$G zWmKtj0?tqlX?h0oDC)u~8L4s9!XkWI*T8iqrz2262YeBdi*fn#%r6$G!Wv5DN7-Pr zAHKcive^srl;v()-&1Ie&^;PAI)H3n?rRw=sl=JsY*FSG7PbF~GifCq|hd#n+Ppa0O6zQc$nl;}Gjv{k{;{ zAMR&*<$jXpaTy;SV}|03s;mM!;)UO+F|Ul*YY87_F!@UfAP}$@}RF?Lf_m&twmY23(!M>Sk;*AQCdN`eyNz;17WBKqrMxc4Q6A zMIWbT&NqH2c%I{0;9`Zc4BGGY_1SlSrR7e?@@ z5gnbj`qq*AC?`=#6-e-^hN`=Epd(8%$MV6u`{p^EDp-&8tWP@%zYq*CDw~0ctgkRU z8cxyLB2Q4?4kq`O$xL!kl4h-Cn8xUkq<`MZ@{zm8>vkQgVx_n34-1<0WVxQQ|F}`& zU5X2?x*3PQrM3Y_x)$A*eJum%I6gFNbTerscwpy>q0s1&l1HV%N0I@LrC+ z6RSJIuf43J9}LkH?ul^&^c7}P3#ta|w7*3T4XAPd^7vnAy(e2&8P94e@eR{STo5dH zsAajiNk+ZYFzOqFg&kA?37g^7lq{P>)dn3)HEC4kHbhn)xp()lH{8xhTt@iDtEWZJ zVNTb78Tmpby`cq6M(!ZL#p_tRaxUc#x4;OA1@I_JA)PEec7BJBx)M(=0rM_k1Olf< zYQHx(CgtYlXu!}nN9LAu^nTmQ+SQf)slx;01*fT^7ZCJ(o45Ef>8opg>}W!&B$i{` zNKMYupgttdONGa|yDHi~K^b}+2Sk2->d)(PI z)ItnK)jcB{wMf#$psy)peFWAkR9s$13kZLlNZ{g=m55w2K$Vnwc4x?wKYWR3aKPUejAhlYek0S$g6S zau_OBx8?%1ajVG<(a&;ZlOE#pL|JRtCDSj$^`X0B(e*;#a~J6Xn&vD}jK&^}uZP8& z@OU7L!V@TTaH!qLkw3u#9p!j^a2Tw<aZi9fKk(PghcO{N1ZiUhlS)p)_H}~7 zT+k`L*iO;!IpkeSu)!ycCK+XKfVSjMICsb#K~w&9^ko}z9B+NoM8~|Y}cA9W=W9(*9=@OnPLKUksPKYS+0Fr z=6c<2t26c=87jz)+OLOoF3a81`O~&K9i5x?XoX6}Xv@y>Vj{FwAUY&+z||#)vzGTf zcj+sFJR3(qseEUVy8MY|BZrWzqiYq+h6(9v5ykgDb4!x4?(%pJJ}UPq53M1+hm5jy za+W`~S%ceHy#29+`7BswL}#(FWKos>MU!*6}^3~iFO&?XE6exMHAgdfO*^AHY$laM%J;nihF z&Jl>$XlWj{GZ^TbszwfZqbi867_jSnKBbM$Pz#NI<@%~?iU?|#nDeH$+$Rf^Q4Muz z)~ZL4eu0aSDDWWiSWmZXo=-f%f>J})CxLR`8V6+8m0TRSLB3^|$cT&4nF+eHK;^5P z$}8O`qcc@|2}thbYg<^p&7@A-fL-viOwV~7I3?(@RxTF{cv5nBuqjTbf^W^oZ8ZFz zmkSiaDl#VTE=fbEc|hsY{Kn2gK*3)zZExx*ggLX8HM9gSM8`+yUb3|);vE^~rdFO= zpxCeNO-pQNr^$_t_MYef(75j}5w_0Oawr{WFpOI-Ra0Gw2_VTjR=ZU@8(~1&7)vOC z2i;J{Xj|~&LX;(igyEUs(||&#lSYSJzqKXIE){bWSfW5)LaGh}-#$$Jfc38;{eTa> z!>mWoarA-G!4&QAN@e0TiZ+4Z+O`TBI$IV(2XU7Uospp?s^t__m32yD)wDT7(j@7tOuM>T_}Xt!GhW|;5MOs)#qTxkL zQU~O?3-&@f2=pmfBW3X%=xH8VN3c1TgJ_qcnNrPH)=oMF+UpB-o4%jR+OjPU_L2xOo%O@p3 zs`M}PPpLvFMfI{ku<$a%@vGlZxCTB-Bxgi)R1818HPs9pFHs9_wO1IDoMExnSJ_Od zd3uZ{9w6T(SkpcFC zFF@b8r_Sf>d#*|}53^oEyCVrBHO|J%t|dxV=W9(tnQG(aW)QcPmHpHoargD3t^q$+ zcc?Ol+k?0zJ#K5sS?`9lhTLRI8(oyda4ka_HHB9pyv7EOY(>qT9xf(L_E@vfQsRu% zvEx$Wi&tz5`BfZjG~lf5%W^eb6(^;q2@`OG*2l+Op;muY8wNpoWQRY{93Uo z5ITl|G+`%EY;IrtGJuyfxolG$&72%Y#Zkx4d*n9O<4I=a7UoQNO(@W%F`c_GZ7& z+MDKXeFQo_AKN>>?Xqs}I$@3>vE!|v(l~8=JHNX-4?`Cn-acaGXw}o)>~x%E zW|2@d>XCf5-}BZ*wjuEV`civAeC0zqox{^=x>~b(sMOM@P_UpRJDk8Ml}fuDPh#pm zX)}T}M<2E0O<^l3zLnLr@bF-9gY>k_=gW%Xb)exOMP^5P zSM_}cNP4P1OjK6gKw^u#n!H4agmqnEpMBt`hI+ReG>p4h^3i^MYZWl~d-XVXlxo$3 zSs^U*S`P!25i}0D)m_&N02?e;$5e6Jsl=Rq1uc2yES=_;UAfX<)T%36>UDSJR(X!1 z{;uprzF2yh_QBWC7KaxA0&m}TXyKSN8E0aO?NA{*rPe}ZRlr-+eBrXZYh4xN&*KP> z+z%9#iKY&>$0bHd%L2Av3R}GB4N99$IoDv4-H8>{9+$G*AV@Jp9417ZeEdpN~*71?AK zHD(sn>^-FUD%W#*)!~1)(T)`MwTb!2oTgQ5_obmp6Z!gQjt&87YdK2b2)IhV=?$;} zwfAa%6xkZMwHD-3r<^BwvQWQ60sd1K$s&=-X_ zZtO!|tzF=)O<=T^X45s?w>7d;?*|%(OK!UF6Hh9plL4!Ps#U^KR_8xpPy#I+0H`0o zjz5h=y$}l~Xo9;oJ)O%RMEIa}vi!AN$iIkn)vskGe;{NL@xiYufV<_|XTDmXxl!O5 zb-a9gAbl!0bcSA3$9iUCLl|38Erf10cG;`jYt&74@Qxj8eH6vF1AJw4gIHZfCC?7z z5u=zes<$@#Dmg9{)=i%gFEKd_n*qpN#fk8`ChjK{vRkdPZ>X{+%v#2gq~kv1i=@d^ zl6lDRNe0y1K^=Sep%-q?<#_Zoxn~1f6=*%%1z$H7UC+bbOL|+vbL|#1 zA-5Hulmd!lTv`p2Xx@y@Hw?5=0ag>e=DRbBGW*MKD^u`E{ms03djp3^KbGg*Pe-Wc%+*f`2XVOM)v`P z3oITk;&H^Rv|FFkR{w5}sSn|5BmPEi+9)tcLsPs46|B?Z{f#tG+cxM!gm;x5fQ*<) z7oUEEmGP0<3>Iiig*M-2ubG7dz-SgH1;@;5`<`G$cE>9fXxNEQRAGES@-Jm!p>6m8 zn=*<@CY3)csk*Wt%dsp$O5o@?GJ*9}13vVV!H@~zr9&QNM}y;$H$55NsW3pr5vVpc zzR^Y?X>y$t4U)>(D{*y8^K|#eohn8`GJ*U8F_C&PCT*0~-sXwYHt8^+L8XmKJ*&0$ z(VdTXmO3x;d)X!R(a7p3!-sKseRm4o-2S3ljb)a}V6@yd0k)PhwpezwRAF*BOL3v0 zJ8yN(M#Eu4B@n8hvE=FU^mGm+$AN|Fjg20v+E2s0?*cn+y*$Hs3Vf{6u3uX9sgyw9 zwf47?<&zMS79eUbrX-b$3OdcN98)>w<~EcyY|9|#YV@K9v!UGx{i|Ew3lBC!TGK(&A+*^k1s`; zKlo;~B>TE?y(>k6awM*trghR`<(k@#J0BZRBW`C8-_ICrw%091u(HJyM~Sk{O{#h& zy4G4J-TYKHB#y=_Fs4?%VZ$DM#4Ib z(;i&fl?6Yr?e@|dJnKpcok4x>;oY`Fjn~Or@|17~%eKL+Zsqy6s!_O_(vAJZ+nW0> zQnRE1GWXe-O1Wz0T8^@eJ6xv?Z@i|Nl7s_)bO|G$g zO`WltI=QD3f(GAGGEDJLq%|Ak6#GP(wpoQ!?-YCU$)p?cdV0qhs_7$$I#BW&)QW~H z{V1Xk%{XKW3KVXJ)W7{mG!&hr#aAjkSxEH{F61lLvmvIO^cAMB6vytgVV-P3bxS-Q zjNQmwJrQm1#O8rDU{2U7?IhL7kSYwq0&T-!!4WoiS|hwgYb3ive`92$R)&=qOl&)g zHZw-&@~!so){Ag)4I&U725n^A+~YkP z3JkcQO(E~F9!26Hbj$$oG$V@^DJI`fL?>q+Guw3EFn!JA8msY41ILb%Baez!4C64v zijdPoV-SfH5Z0vyWKA$yazm|AhsuSOI38VAo>z<7?V-$}D&@VQX&okW&}Xs<^IPvi zGYsUkfFyN&HRJ@=9=L>>VZuD(Zq4v@I+foH147g^uKrE$qVjlH!~w)cl+Df?JQU*2i7+G#T8p z^e3o%OHKuzHJv=E(^Kb5Vblxx!m{`+VstwB3oOd1%4)+p(;x*1&*sFoOXIJAnc6)RmU-RYVgj{ zbPu-3v|0M=)%T#8TErJBqBZHQ$ULb= z?Fu03ntG;aX-jx(Ln<Ora(#D$0Si*QAp!o1Cmr!T&rz51 zcJu`ob248}d3bHXr}Zt`C%Et+%Y)GNN*>fWx zB^IFs1)6Rdlcb7i?qd6TIEF`>)#%u-_)}GeEVc857A+q5x|5EYra`u9N1jFzx02g_ z1!$GG_(RO+7~qVftdF%IS(YxV{Et06!&m}ULJr|FnDggpNjB3Zyo9BLIQ{jbT9y_U zrN+xhhE7VdT|OShgWFEeggzf@r0_bATsM4bKlZZ4vTC~MbH2+;PQwT$iMtDPAwSP3 zann1O)6PYib$%CCNBJ?jUBV)iExc?&*^(q7RN8TGj5^&YE{P2A5jH$r^vlSR2$OvO zrQ}8{*L=#<*2p1~!HDm=>!5kt9EAnO;))+j0R!~{b6Jz;KVSk04{BN}``4M2cV9rN zBtV;qdLq%0Bjz^3HGT!p!|C4Hn;bBW0>zM4@%>%aeHNdRUx%+=A^}SzT9-(%{;g4( zS|aSmU8AbLMwK*+#B)K(cL@h9Tv_i1c!Bw_pl%;1{8s9fJ+w(?4IMjMRZhigBZV8S zWvYr4^=3=U>Ed&eXyE`dmkp;CBJ?Vk3pj21-c@OuLV%?h-aBpyFfLdus;1&djT-66 zo_ew}H)=>H6njMKJkH42#d>O}67SMhua;G>VM-&N=YGf+TR@VVbF%An;9Ap+Lo;5? z>l~_7mN-p|JH`sP?cyqk;){RSV#_%(m%qLkS_rO-f4t!LsO)yM60j!KYN!AkkI!i9 zYdkU%XlebdstR$s1P}_+LZrP}T9PVdK&Rwqgu34_il1Y(P3uSiGCW#K9Zf;P!`I-c%j)kRM7O4vka|Sf$RoBlU9SF@iEc+t+ zOe0I>u&VqVF5>_(blHbD{aF(HSAar(QO$v#+E)wsrx=Hy!jkFH{(}Bs?Wa2^*>z0W zM4h%|L*?95cDAwg1xr^mU9#r6t{?81;%UgX&Fy!pacGG_51hS*31eP>UJRA(8DFFY zx?u22nPjJ^QqFB@Q|C}&;XOZcB`0ViN_&+^s^soVS8B`adv{|a3!C>adYP;u6A8v< zBXdKc_of}E^8#sHkua4UxBi!$w0zMD# zH>z<-MT$uXZBT6C6|rn_6zCHWH9l`Wm&CdOOPSJRi&y$1tdo3OTg)lY$d2wKM${eD z?P;LSQuG`k%r(07!8&3l!-dQ{iCY`%8K}(?AP#{rgTGlT={yD*`V1~JhY+~o`??HysoGVjx=$Q5h4Rbce5U4fvnCN;kbEFP>)kb|9cQUMgB z0ubXG9<3z!7rfd31^3J!)Q{j_WQh`NKg9?6-BGVJzrqQA#XZiB#9|0~ z&DRmEb64y0^pqnzDR<~GxWg5(t1#!NGP@Lt&ZcOw(D#B;m7`gn=2!UQnP|TM{VRvw zKV<}<7izt7jE(L(UUzrS3K9?q3{8`FpLB_kMWoRo89eE!GP0NQRQ#HEtfCyc7NP_^ z7a+x8_X_zo66=nnLf?aS+n49T;EFo)&QE}wC$wAD#C~xrru3TNcT=yNkb+&02GW+i z2zhDeN!J!=9bUk>t=xivc}k`jo}KV*Z#YVy0y0i}y{Jm^qx2XsYUW^;N^fVRt~rj` z9zf%Bu&++v#>P4y8(@gnoeWZ}R2ejq6#LyRH0DnM^Q)$vhhA8~nB4MZOL_B>WKMM(e%I3N>1Fxzt%Fc#zRKk5+0Ro+V5&nm!`NZoo_ks z-68qVm+hQFk2y$uQsu-SBOk@Vmife&M;zc9tcfhp&iG}ijsLpZ*%|JPY_d}tHKe=w zXAQKhOp`1rFSe|Cq*VOo8tb_JoQJTm8t5ZdFy)kdf;$ez-%z=tz<`W9FU1WGA10Bc&Jzl z^Fgq(#(#lRi=MDfsW&*DWgCA+(tF4k{W&asHbsqVksD@2jg#TsOR7+5o^cvLx^$gj z@tA{d^sWRW!}oGg2M*NBFh?JALVst`z(iVYCekgE*-O~W#XoOF!)Lt}XOJWZ;{6K_ z4;$sSFr)|{S|UghkG>GAUWX@Y$n0I1QuXw6+esoF%}a&9YI1J38~~ssRQK<@ailO# zUOI5UlG~zqI6(KN06Y_vOo@vH2k@bJJp2wJw=w=Da`&wP(;=;x5|v1aEtqj>AKNF) zE@G6(vzP&^KOO5lDswcYNRUP#pqu{-3C z#z+QT1hLqL5BT}{B52Og+fdZ*-gdgxLuq@ahC-mJbCoP51Z8}fBG0c@YS7f z<1fZrMkjpg#T|lBL%=}`I7!l0hSgBC_o~s%>Bka7*^mCBlKHSlk9E zn>->}3v*+83&|SR18mtR8%kopLPvADg4T>8VQ)xkH`_J{N5Y>b!@+nsh~dZM@nih+ z2(E1Svoqd_hfHj8q}1O%3~wq){sL}AaTWh-H(ir=^{lEE@%FaDiGSid;38O4l7nY! zKOe5m#c7cit2KDHtx=%obb`)6&`7)tp6<(vyW8p0f8DQ)rS-zpbx$s^uW#>@m-n6W z`g)NKb_s+UINoU?K%%0dA!6j_(qnGZH7P$vob=4LqZGKDl<ex6BtfeP|wjG2FWUe=d;ES36;aIH7rk~#H z)w=Ziyq8^XwZ0Ur9Ua$zpwTNrgEtBk;s|XAt#oHKv&i40jg3r}Ysn)PA7KGgO7#DP zn=1_1no%Qlgv}QFWUAcS4HUd>CGVPN=c}l^W_2_YM*ABcxe8{`HJ~9C`|=8dKKDsk z^pbu`QedBcJ8+P^<7~xM9Lc1Pon7-6t`cvtJdwQ}YI2vPCWobntm`VaZ;Ck+>?-_D zsoufD1$1WSxi9VbzxnddRO+IB*PKH!C|Tdg;!-pTSvdTqw; zi@SxRw7%{&g?G>2Jh@i(?*&|h2OQgf!4q_iMIN!p@r`xaK}4wj&HjMe=2PXMNZ!_r zWhUzv<$Zle@8@!H&(4+(}jqg!FXT1A(k;4<-25sK90czJlU~A37#u-rp z&eRhUTYzkbJ+BmCi2eRcZ5FQlPKfMWS=Sh!K$$3KSPUTW_5Wl{u0A^Xq$T!0?N%cU zjOP=hK5D-iwm!AtuBB6sHXZqmjrH(=liLWzSh=|wlG}pInZO7U@=cy+PekYh5QBA%;D4?m8yznr*wo#P&99@uaa@hOK;Y=jK-w7! zrK$8A)4zU4?uwQK!Ld4$^2}q;JB?w(n1X*a3w~6Lm|Nrd7eRR{;YGtr$8WyVW6iq-%mBj6ckJKVS@E{PhEQQF#VKcprcF==&$bN8hveCkK0P z-s1P;@4kP$(|yyA8$SN_hwmPLKj?q|=!frj zpodz4;gj#b`}VuX-}QGM4Ie!@j#%3)9NyHsz3rjp*}W%AFIa$0p@r{iq}!a8PT1IC zFW=13Uqrbn6X7A6VXO!G0>}w<>)-aW?VV`bFv6f}5p9RVts-LO_Kp*4p~p8($XR35 zpRytE4be-hvq_s`lN?xeY?3+HFfEwewi=3N>%Xs0Eo+~e6QQ=h+P1TUN$vD@HwoC`QP@456Z zwiGHtSMciH;p_O(qaPjz8n*BpLkq@CJ8i$X`j59YRBS%u{r6_;UjfGGKW07rH@bye zBVsSxyZ!dj&Uaq7dyQ^ig+qeqA)FQZfo(?YjcRZP4c=FuVF+HzG&+3EB*zDEcAi{T!2)*h_thIhdXl#qouuh~?Q&_2i(}V20vrzS+xWncz*YAK zrXs*aBY|>S?z`xiP;gPn@o^pIl7!VrO64ENT-tHGQI`$0a8BD&8$yI;bD{4`0M&|- zX{>xz#-$GD%mBP)1)A;e@eF8kbsBB ze7J`2j*z==;6lrVqHcq<`-fR`16uj!-6#~U?~r7ywro;IM!zA(2&NQcq<(fMQX_tcjX&q>iP_|9QF0}3T;lRs1|?kmhp5lYqM9h$H%;s zvXA6GF3K0;@t+Kgs5Q}(NlRW3hPDhw!a zAP2wxdsRjOs_M#_5gf;Qj?~04o{|W;kaw_sH8F{3J;@XGN}6$@^16ll)jk#nj@vsx zUqhh>Ld_C)_FhkIe{uuiIow8)zlVPuLA&;D9!51w=(e$F#jvV5%G~%BbptrrPSU)=?9S`ue&ioEhN}o;Z?ts;k6av{7EMk5yB%Jb>%p6kI~o6u5ZRaf zGjG>7(v}*}iXvS(E(J<7B$xLO(2>NNE7>sWh%+0KsfF!dMihpB(Y9ocF7fi(nC{d| zY0(xibGBX~9F>r$LyPZ$ZMy4NYxe*A0&lf`Z97`ku`S$v`Lyd=sPQO`3RjuNx)LDu z80CwkYb+9y!oZXav>zx1rcYr{4pHasA)7}9 z<=&kZ)oDxbxpTyVCz0leM7K2s$$U~x;I)elVRmQ+yTqlb&UhdBf~w(Y-sqg z^E*WMSFT_BTLb(6pFci8{lsy8CUyJwCLKywj$sOx38hPYr{*CAhI&|C8AM9SjaoZy zadV0#J{EHwfKGZ$l*1rX_(p&lAuCWMx{`#5YuLt`qJh@JlH>iz*QWWTjQWmMD!i3$ zU6>a$O;2HfYJx420pi-rn$d9-y$4tP98sO-B0%I4s$@hjfg)5C8 ziLC&2oP*<0kS#AxDI|!B{+dxJhNFyS$J#5!Wk{}qFU>m3fKgn;9QUjH9Z}&{c*B>jhha+;@fC7P`5?VCAI~8x9Jei;SYUpci7T7VBnW_!sm< zEZvi^+^H?qZS#6P<jF#Khj_VRl>SF(uQR5x3u z*aj#p^wG{^_U-VP**%YshC7r*4o*xO>pl7w$V3@l&ZK_FdOJ^!RcErnZ--d>-qrdD zaCVWN^LHr*a0%VdL_3zP_=K9kL}ZPGH7$5k-K`yM{pemf&M>?yhaA+p9W+sNQyW-W zY|E8iK&60rf@c)S$mofua08r^E_jbd7DP8U^_)GKp|OM4lJ*6uT^tMI)W}FZ(tgyq zL|g(GMd;K39Y`+b>4b;d{|$-%36K60{O4cC<86j|;wI05mj56$s8aulzM+B$ke_(+ zfj?A75nDqwMXh7lZJB{3`zP4($ZBhmj+bGWm=wAh4^eHiBBaA=`N)C2HVQ1UQS#FI zUkvlSWTu4UUgE24s+h7Wm`E7aLUyXfQK78{?T~t3W?cAh-f>e~#^J%U{KA%b|#D@WgIPoV!Y69;N@t|AFdi=wt+LG!2 z4j-%7FuCA3k!T98&UffwpH>H5LJ0Y6ZV8@~Md)2)zY0-Q%;?QT!FO^g;@3axvozm^ z$FB57qc-&zwZ+~HyjQwy&ReURclf#nhJC6rU3i_NV zrtM%b~4!K`PnJCwGh7r{bMvyMkHA`*C{g7!Y(V;U@l_XyRp?ntA z!#`@oL)N6Rvp&oOS#?uy)oa`jecj+FAXw0o@$P`-s^qApHUX8tU(G0{*XD%Ag2{TZ zH-yOHI@}Zd#aPEWg*CI$LX3JW+}jGCbDvci-VKZ6;9U==z4T+PTJhzr4x7p!MO18|2?Pi)*DDq;=uD3v&0)IY0X1r0s!`l(j~@K;JD5s(BlkUmYa9qujD7NM8Qq zU17%2gEOxVy^pp9Kwu$`2=jKPNdxL_H2vxA_I61%B~NU7q-COJE59C5XKsQmATcO_ z-D;~7v$Dp*IIj9yxWslKiszs^aeCaUI^#$*-2eC61HgGmO@*FeIuuO@k`p?zvICZF znAKbjc9Z29au(U3J*SX9R&8oV9(;V_Q5!b3q{*m8+GvJyle(!U7C!?v+ zPAs8cBD^=%nZNhyR4AiO&{szup2cXR{no`$t&h&{2JZ6)a6>;`ylhXb?|7;7FbILY zL^&;jkk&>9%6;iOhaq&20vDYS8@0mJySbq_Z#p2P%S`&37CknUZWB=2U+u3Qj6?L9 z9ygPG4qXNR_2|))Cue5?yCjxj{K$E|py||$bP)%1$^!cS84jgMn5N~7TT`bC0n|`S*%@GFujieNA9J@0?j?sfx+sL1t@@pXPeq+ z-^V%f==p*9&?|c%`QaqFe%!FG@GfM){2&2 z`uY5q%YN4lwTOGoT>6ZZ;o0g@jU5I3hD92!MYQWJ{#N_4BhL7p zC;z@jR3VMzQ7T-QlF~a`8g*psTHzOtrf|(LG4|Lit*PQ4>=pNPvXT9}2RFM<8wdj@hEJ*!3E zhT`wHb55(XeZ_-_GIELDQMcMACY+pWo^LZSw!QW%dXQ2JPoDE6#gnV za}|ge4afw1S#z=_d_~)~tj)zQ%8j=3Q7FNG9^Kra`sf^4(DS6+HYJ@YZ;Hr6ammcF z8*heh_it$3&v;Sazs{Mvq_j)oBRh6l6TO@bi zuoKQRYOm+g2%=2hS8x^waP%~VTvW!lb+Ma{imk0kSD(3sj*4SAgz$6(_*UhYyYtZ! z$}6xcaaohu(Xux@Mn{oH%VU&kk0!fPQD*|9D3#H(VOAq=Gq?D~TJ2>R3tWbIti^fn zh$(?ysv1|*!LqE@Fwh4f+O;Z2k8Er5dAYU(jBvi@1Qgc(Ky=&)Ruy-)A4gdioUNT-*(4S%?^ABX%XKgRWfKP1)nR|#{YD5gT9IY-PjP8M(Ppe~5;A2|oa1`v0F{I^tiITA<5x+*d67ur;R!0quB zDVhvzLy=UlbB=SC14OD0VkqR!<#M|)@=Pk@%p7IM$sI2|)GKG^hRaFKT!DNpukke- z%tkiZvf3EJMtYYxkzO7|O%&}t25S!<>-vvSzq6-m!Sn-7e|s;asL6+y*Kv#IA=$nI z4R>K+Dr|6HM)=REYSw-?Cv+&IH@L`K9FzH6nWWZ$rUc}PCNyD@Jg>s^h#xcf2XQC9 zsZc8m;Aw_?hX35$z*^uBxgiB&V^$muj{$+pY8x9U^DKKiH#ebM5O6)iy&~T=+Mh^s zTTI{wcg~t-Hw-6-*kK(eL1+h*yr{??NQTO}^T8dO!>3@yu*Lkb*0^O#Yw;@|=je09 zJk7h_&qgP>1rq8w!XX1RNZ#Dk5^NlGfKU_5T^m)EZ3GcO2d$+GNs<`ibfy6bXh;H3 zEC7pTjb}2?bP4PtUCNmq|UJnMz+n;&zTQ_^~YY9cO2==Zq zBxEaP^?yN586Ww26M=%NkyP_!>5^3Q21!*Wu+$ik7XA~-99Fsl;uDSq5?9IcsKWhN z;sMX$MY7t=fKtieFYjNmVk<$XVq1_FZRY3`1igyE=L$c|t>n>Wt}nY;LROXIC3-eH zDz;0OZkNY*KiFr{-S@Y=+0w>ZUHAet@^9=B$GdIjjndXjJOnlIna$& z58V-NLz?`x1sQNCU^YubE-!Cx8b{r(jC;ap!;_!xVIyU1u|M&GEliW? zI85~@lGpTBN_8+g<@OowZmk5TUW}TZie9HM*!Qb+GW$`sfnmhF1ia3zwum$)Oe5>f z`%W7^-LYiLSG9q83@K<=Nos4sMKSRqa$yBvwsugd zHV^L4L-`Z*Cy~iX{OV1DYIWQfX#9K+{Gt)0ax33AD*_D|Jmevs+xoZz+r2+lf#U1C zmRQQbHCk}LOxGRBcV$Aw9N|guS~Y?Z^0+>CiD20S)=CiJA?!M7 z(T(ty4u{4gM!naYZcCXn#)4c$+Y5yBlmiz_J_^ef9%Bn*tV-HU`X~-r;UY1gBgP$Cq zKyRh*HZnQX)*;YytEJN%d%&9h=|RPGf2@o!WRFap_5JtnfVGlpcO35h9TEqKm- zs=)PFI~{70*z`Zvlf=rAb^O(>aZCk$MXYvJt7X+vrF9Mu(etG?{zux9)WqHTlJ`*o zRN6X}(bY}XSE*(ZBWKdGNDouNqUtBD)nRBICaz6@R;%JRBh8DQ#_E!Ss#R3brk3hz z>U9{|DEH6S$VOJG8`;Rz+h(jwYZVkqtz^`5P8tS5FouWt+3+>8>u#}>I<}q817#== zu|C0-*Xq*vyNmlv1<4Q?t-+o1j_EQA^IC^hNW;^=G7$knAgnoUcg^G}3UwyKM3a$Y zQczep6MjN{qbIn8TR(8p19*VRfea)^NLd%r0g~Tl#I91MsYp=677lKwZFat`afQEi z{z11pCxKfZ18Je+^BW-HE41acZ!HMuk#y7ck8 z3Z&jpl5Bto6P}*eof>LNKm&7mlNZ(OS6)_OP4VU4nuqzan!QS?rsRs5cz2_H@}7;; ziJ0#(fp>UJ;L2mdT{`UN{>ro=|8C0(?~2~oFj0_OK?xa~U3os{Y*=9U#mT(Z1N+8^ zq`Ia$2BQ`|{TgL6vH|xB8l)Lg1I;VMjt(`u#01TBH~INnV%$q)hm&#`@ySqItI9c z1*&Ibn)ORXLO;{4=FDVT2_vVqD)VJAL8lA3+#f1S0zr@b$|Vt=cTmSt-T!Ft|Ev4< z=eCWc!QZdy{s$V_Re%VjNZGO-(vU8RKPTDP8*l75$*EK-h=e306u<>QNsO%j{rWL) z3`okk{jP4awuyN^dV0Eh`Vl`nvFKZ2+)M@!Wc9UK#YUTa(8w?z;C2?wKF_r}#+OtR z!0rK$0Jy~d_Ux8QN;|KAgagcyeT6H>ivmC5Jy|#OfwaDfJ9FWZmZ=gk0A7_~LtLMBK*|SMOXSIo&6MyJ z7ny;0+1f5NJr66a`?`&E8xi^_8s|waw6#Uj#B!o0YkW;{W|MwCSSjTdmC3Hc+z7im zp91Xe?MJ)$;CA9a+8oC=DFg}ZErZd)lah&HHd5@ePE8~qPpw8o_W1Z9J~)a0$g;)v#Rot< zB(X!SSPtYa`=SszWEE+N=t=;{AB!%jOjc-D5c1@<36`=jp7|)-F#wX$rLZk*G>Gr$ zw{Sjh(M0NE;Lr6{@#WB}Z3YSZcP8l~(G>b`SyUP6%mndoQ5Tir%!f;?nG&t`C(g-J z_koi_cP-AW*4$dw+*CO|Ir+{J`q?%b?vKSc*x6BM&R8QOE1Q5xlws{eIdG-U1f?9I zgNAI@XJi*hiE~@i)yVbNT2kSd48K$Ic~4W$?IlzE6YWu;crs5U>4v=_u95ga0Y5vY zvF}ZV*M!|_U)&FUkr|*0sC!f5CFHFYplQ=TP~G#_b`1=}n8kbn-8MklEfI1eiMLq)A$K350BVM2K2|t7aJtzNKJb&nA1fNP*uA ziV`<45Kmc+xOwTimk^=cptuJ}jnyUX1ZWv4mS{jJBc2fIN z!n8fUfE}qawE);;G(?*%ZN%ySe znG7TieM50jVFTVMilXMwrZ%;MwsLC=2tw-PM~bnwwx~f^QSl`^QeeSqJWqgBN`@13 zSX=B~4sH*Zq~kPCD5VcymSr-R!ULz#_Vn6cW;pv($tt{`igPzuysVJa2q zPoeCJYEm|SMR7R)_;E_Q{33)8O2*PcI!1(_U$4UBc|1K4!Es$2=8-26T7-H1iw!r{ z5WBsb&?a6idc*MzaWuE1K>4Y@i5gk!^aiG<~H>DT)y&A`&)h?zF66V#+HPwL-J% z@W#fWNtNcC6+J;v?69W48*8c@y!ow;oE1F^=alWvN{KL;i?)~SQLf~_VvxKg9F@y< zJLhhak@a0#%;s5D14E&M8KZNusX=5a5JC5q3q+mDo$3$S>MbV75OB^`#X6Dvn^NL^ z_XrY6mtz=7&nmh;H+U^V?Y-;&)v!lCfMH(Fd%mnl5J+U2An`kDUE~M?iQo#&-0!le zJ9NYyK0fK75tFkjOaHhx^r~{kz^pcZWc&t1(pXOJJ&p@4sUm}xf>8_LY}by0OEEcJ zdCYPpWc8g`|8`s5OPtG%H08y`e9gIULyc?)hIrJ%Gcqio8o3&6UNcr*D<<@emnDnB z<0Lh)QCjS2#X8SM48+Z=hgX>gAa(dZ0v(JXuHyju;Xta9{fo>bZT^|VIJt}Gwyk{r zMq@KRyem)@T}RHw3%E;?eDl8Lx+}bx)sgnx;c9`UhXh%XhyaN|;pH){-3}6V*P~89mT;VTA z!%S+R4Zi#&`I4(NnkaT0)Tnb!4onR0oP3v9!h_4M*M+5r(FS;3kizT{ zIk5%a@h0q7d;7>*#r+idq+Q^b$Yf_6uuxx@SEflfA=K$pol8}k8T_u&)I$oj1Un`w zRX7K#1Asy(41c4w#_fw@aC;Qii6|565kpfj%G-E}3>-Dh%>i9Z5|eXL+8hB^=o@2D z1CQb>^y2G6bf0_e%B4=aGI5c+^3J5dVByUUc7enrpZEqm``)A;`U++FGtC8%cWR-o zRXnpj;x5ZS8l3TIWm1e7}zrt3#oUkCP z+e5Kf;RkTFzDadW$>D1SxOa25qJYKQ%1UBo9PU=+`uSVD%fxUE55C%{Tvqm6uUowG ztI$MhqeGi>ZLO3;j;q;*>xZjes;mp!T~w3f>}tx|ex&P_#kOe0;%U{vJqqAPwe4m4o$cG%IPh6WQX5hn{iWpdq#R^a)>m(uCKWs;rwcOIOxi zChKQy%UBdD8@Dj2DQ6LBeo2enqb*$#6*tOP9QgL$DO$#|<(3OMi*K#EBrV;it+hV+ zS_F3_Wfo&rFpwgT&cSd%Ur}kY9(Ou&4zj`3r~69z)^0OAc17FFU}}}MDB3(y?`Iu8 zF)|-LpaM=wX-isk#suUzd!zk$w0{y`Hdo|s{OkhbCXhCeq0XZM*X7p~@Ga;J=&79h z1~0$=K#?<56w7AZ6(SM2+Q@MsLGB`qm-a`aM+x9~9On`LgNoAGfCeld_HRO&Fv+F5 zmWq=nY3QV1umJfZXJJ>8!5GI!kpOm1@3To}Xvcc)vq!-3kob zWrYb9)lpJc28X>ThYUjP1NKLMl4dOG^LQMNclf)fXJwq`>-;Kjy1mdFzVR{RtNHvr z_8l7WPfSfzScbq@D{F7a>fx*QO1-)M*Khzgjk>u%wa-9?^rfZNt+Cb&(gY z5;;}bMzQ-Z*otw_ksWxr`Ao|V|O;-o~O45ywB-(XbkVrFZY%ayZ{mEvN#mh+jEq0?sUX-i@>#rO^k zu7ztx@uz9IGXlqz_Uz5t8;U6*iLciOW|3%p;u8|w!d)noU`*jxm${ok{QhN=H&;`6 zz1f>}xV!w{vOSrgRsg9g)ORS^M-W^1VuSX5fWZxn}l zU*+zh)e(jVst4IT2CQAZ7#(3$$1$WZBXooj;eZK-a|KKA?NX|nK&K8HA6_4~###L;S18Yu*LN=af z6Gg?^CXF5T)7`hg)-E6(V&7&w=@5;x!D>?y3$EWaLERy&C{&T_(`pJ%sGF#fztE3n zHdm)sc{eQRtvPhdS=b|Ei;DCNXyrbc3&RHftY?Eh-Nxavaa%D6C4!%?$SgaQEierx zTTqckjW$$FKx0bip|IAhlSIHJfJUnzl8z+|!~-O_!deZvL$$hXuBP%A(N&qoqUkBoL4M{DlB<1y~JaAK3}~rjYnRRTv(V;A$1RajC1xX z()9rCG%MbeJF|fo%030uzq$B5hY}Pg9Pl!9L zgcr?`lQM3YEpb-ZK2cIPNX*EL*MclVhXtCrU0{zpZk>*5eEC2%|D{CiiV#UlQw2Zs zEaZC7lG4(a2xWrQcdg%tC7vmzZTVSQH9|BYkEfaD8nqKT3oVym-&W|^KUR}0ZK@WZ z1C)iJMe`LYlPEBj-O@}Fz@Ufn-`*v%ruNu&Ew(839Q=Sb`RYK#~d;$ z%jaFiN4oebIx$A`n;cErJa9Cs9{N@vQuC`dqtV4jW^ot|5!yl$)}g)l$N((H_Hd#F zu64s|iVdI9R(gEEwRQb+r_m#22dHwg_a%W#ZmQ>Jbh0nBCu4SyRqA6`Q^@w&EUdjj53Na?&u{FC(=iE^S4L(`RddscaMhG#w$`J4 zGw69)_mO9741LIsvjeoB&EBQx5dAV~88Y*m3lKWIK2(YA(9mivG{cQu#{J6^!6?2j z7i6avvQq_-$I%`_C0nE041gOhXgg`;B&D~lQjoNYJRuFgY8ng~nawc90n%K(6p{Qn zRqSzy#U8rdz-uPZuG!~aQQ0(649Q$FB$FwzB)Q%YB=3|1bS5FEz*$Xkgs3E9Ho>f1 z@@N#@!(u1_N6~lo_;BRmI~CalCtZ#FG!ct7Ien3cm6@Cx)b30axSh;o0r)A2-i07~ zXYpw?S-{kciDCF55uJyaB(xjQ)5+U3@gh3;_%UTyv5SbNm=0a$Y5l5dNk3d{w0vB#q}4oh3t9CKYA|mno;$ zJX(PCcyNIYK7M>;Tu0~(UzA&6xs@ol(ti8zm4AOZHh%NfaZgO-W`cl1KN73{8T#58 zu;05yjT!~<=^xojR$Zf5;^~GmsP=o6%NC2C;@jw^x9FNdjrR^*6&YSNg)pg(Mbt4k z3PwCeB)91o24sUH&$|s zb<6CjGrpsL$9YVx7e?#WyFz>QCt;D;^ThkM5TYaFrO%+;TkZu5JUBxj9{<{N*%%s9 z?{smSKL<<)7w|&#XTNXocmwas%SA8D^L-y_exKTZU!sH|Gy)gNJAUNe@zBjGSIXDz zHBly)YVbV6vE^XVUnbr^Km(V1%>khrn->wwi=vHPTC6;i4b1c-!0EH)L93=$3*vN- zYP{-A-WOGk&4k~m$jVH?A}bvd0 z*jSTw7{zes;8IxI|4@NGkuAncg?Ou0;fN&pf~FYDBDwVWMQbUvjh@Fa&RKbd#Qiu( z&!zzf6u^PXXaZ31N46@3qjFWFHXEk>1RGt|WH35|`)}I(lmR=OwnG%Gal~r+?+x=r z#S#KG)@X8P=T$DmoH**kA<^kdXk$wLRVqFK3%E_y!oobizQ+|PvZKpOBxQ*x#${i z=tavLdO<$T1N1J1N;eH`!r2lS=%6ZrB8t%uTMffb$t5KgS1!@TVTTpO3%^iGN^Ud( zW>M~{@vHnO_+R_C=%zWABpb?HYStbs2<_S7n8LMfa{sjF(e#c%;J5 zBQayshu$W(7S&ZvHYuwF2#f4E=&yp4q>#G0r`i*AoI75t6mP*>=s?CQKe8_s-Z!FU za^PhF3y0!EHRE{xZVQhsU*BQ}P;Q^&USW(%K0UB+NF{~BDZF_W9Mx3pSGwpI4~o_v zbcu(xP{8}Z;p&VSh$SxCS&T;%pF!fUypP5Ky9JL(L5}A>QgRdIfbeSjyKQf%(T5$6 zv7;2+7Dz@LFB`2zh^0yz-9Jt1tzYvs>fM@k%(RdQ(6?C(=pX5-TzD<#m0e< zp5{%u2x2y9qJv7R==clYFj6Q(?%DT#Ut|}6R`GFT!OzTaXW?Fwr-ab}{v%(U;@X50 z$qM01^z}DQ>CWrA)GY9x7?@a4#~fJ=lii7FnOBYLpGEXfAvY9NagOVgB!j=ANtURf zJaH*FyHdv#khkC$fCt>0^k{!9)%tE^-$~i+`W&Y3c%7_jl&zQ#DS{Zgsz2~5vTw9k zu=|26R6PyEI@`gub00yp7t#32>4yB{(u%9f)X_=Euj6clVtp7;U9Wzfp#*fW7cI5bW?v`UwF5PHo#tBrksHL{I_@;) zkXHZb;C4fGkv@a-QI#uW@|)H1TiW)frhQ5Dwxedxy;Ct$_Z~~ObniFny_e+qQK`Kf z-yX!sJ?n>bM_q&o6}xU{)om46^kbd>ZQhouw_fIR1N;zid0a!f@7v;8(RjWe9PHZ8 zW~4JnLxWU5TXOTfFnOfH16yTKb<=#BOyMpwI_zhWh;mH-lt$r7sRcOaCk50q_Bakr zHv|=$_>N4+e#!0DOX}61V{7Y1nOXz$t^>+xPypp%WM|ey) z1T4h44~Vw5*2;{j=Wq1f|8TTWY$7R#JGI z?&AA31_Z9lWi}e<5*kd?;yT6G=nwd6p&k-~*tBYbL{#XAAMYD?2#O9G;Uc;>JDc+l zYGGF16#Q$s=vm&fwI^xiK04Mt14$-}T#^e0>iWlJV_jX-=2rMV;FiN+e->~YdHYT? zSH*e11j^DPE?0VX)Z;NAW#42w?fVRHG9sODy8en7|eEKJ5L!se~+w}n{Dc07w z+@*A*B-rAO^iD%s@md88w}4ahU>+J1>_jBFmiKqWF$Tsd5@vYNhcvqOqsVO1C3o=! z64uH^HhyBbD{t7g+#j|rew8Z%zPV*NdAJ|%8-O$*Mstn}*=I@eZ7hDQtVaYh+DPk$ zve$;P+b7op1cviU4~iJINw`owJK|?2+4C~3FTbj)bfqIENlzk>aw7O$e2hH>t_rZj z9c7Q37_i;-SnvO9;E&=0&KU97(g%#pQNx!B11y^4Ca%I{W$J+muQ19>;(SXrOj(0p z7CYuBgbF_~z&BbQzg6CzC8>tt2uZsOXFAD_GWwAe&ZLtfE{+PGPd0W(pBaku+_Z%z z#9F@ws7$ZW3&u&@IdZ+Zo|*D(_LG4kXhRKp0zVvbsI!xHP}vPI)7g?L+j2#uz2M0r z$|xrBWJ(b`^2!vGnruLl;Us?{Uu!4%?yd|k{ZG=N3NtiKp?IL8y;Id-Qt$ya2JV@$ zX{y|@#s*IPiCarNX&*nHhi0-g_=`Qww%1C%fJsO-*6$``XY0dgcQo-_744*tABpCQ z+c}adGI}Hor(ePH7*}-Ls_8AO)^ROfaMv{4w}6Ik0J9InYTW1;2Y9Mp@;v!4ic@~h zQ}`U?^My906n9*+WFP>=yC^5K0=)}pY@#EI>T87B`ib}@af^sc1nwrh#a7Wh#=`3P zY7FC6Y(2iq;Xa>_1XbU{Ewo zc^Z|f$*A5();#K_tW3V?Z8={#oVr>y(S%sAxQNLv2rrdIS~WGW!S49 zkBg&V4p8#G48{Sw2?|ca8n&m#_jjO#E`@Jp>P2kNc|M=N1ETqlEWAW9(hK7KTcWOJE@hPbsNBnb9`~7#E|oTTB84nAOj|~ zoRNqTVYD{f`YYXAYfo~5Hn@foT?;`3em-u(FS_ymawd)TEKGD6lb zg6QTBNkt9EA!i~7k43*p7my-;iL`%|WPvJws`^aR`l4|dE*XRz-;#fsPO3}?q*~Uc zF-$$FlbSIM&=)nMn8@#`EmtVFma$d<(hI>lL7NvB=!XqCVl=-(m;{=4f)9yVqlpLP z8)$SP9MQNDvsBEq|75uj&(s?nHS`ujR!?h;C)x_WohvkHG1=dtVk}GRVVpMi-T5$c ziIp<;Qc7xf)K83M9&|k*_MZRRo1RJfj3!Sjz7FDLD z7+`9-L7|sFzTviVd@0HY$op~=en(GRv15eanISXzugu~!1rLUz0xIgTt6r8g=B`W< zw8fpe?2a)P+o9ApQ(>hT9)E1GnMI3fP6{;>*3jTu&U{@Cnk%#!>+Z?iNAavkOcK3X zwY&rs=~Y%^@H29#83yy~t2uCIP-a|DFSDz(?qB7o>QkOK{V7_$LVgr`^b)%SjxVrD zR2bj=yhk2N67J;ia~R?@ZKjt-BM)hpo4mc67to}4zymqpcE|T{|1XN!G#+HY(8OBr!Yu?ry&3?!l1rP7pRTCz*B3Dn{qaKkjaID2`cslquwYW zSp;-Wt>cd%a+IJ&0sF0nNQN%iREO-RJ*8GSTRUWM+;li%^}CAAw~-_1zDXq}ZaTfN z=8;z>L~~ptkx@M{ZA4NNqCbg*7V{y?U1KbzprmHWBOp^m&63DRk;W~EtfNr+4;H;J zY|zhuT&y??nG2E+STp`1rLIKsK`N7expH7vD9W+WvYw-yelxk)7kN7IVN$;a=GLBJO<=?OnuF#%z@WHp0lKKz$364c! zBuk+|v~RaUQ`1JvwPFw5yrf4Vs!6FmqIJX{?N!W>ZkNkt(EM`kGGpxwW+9@h&mK)i zqoMvJJ=Dpu*({mzz$4UhMZjpujG+k5mkvx?W_s>N7K@y}3(oH-cr)w`f$RM0HDC}j zVTtkI6-9W>=&OL=z=AzK_;Ua0a2NW3KRAUS9-JJ1V!OQcJs=RsD>{1nXUt zg(f1avTVMEJzY?HzSi1mDyq(=ceTItjAkdRKGnlJEm@a>M#sDNgI>Bm?NQ6~XzpH0 zuxnUCMXTV?0T5;B93@st14-ln-Ih6^%OX3su*Ck-< z;|{^(iN?2`4_@nO3?cxo6aiq!; zO^4@sk>5>JEE}_tPH*nA$YyGyJHtlE6^9W zT%a$!&Y}YTrM#)L9Nyeh)Gby5r?o{9+GSa~@Zq;fqj)P~ffNe_W@#iogx{<+HDm{@ zcD}9$c54?{X7>i|CY$hAQL2uTaE~p*e8i>uOpT*_s}F&{DrIKJd-6`vdpo6 zEMmlKKoE)+S&OH zaNoy|zc%WXP=)`=W!EasQcnKx-2uCT+JIdMtjJY7`cIL5wD7k!`7`CD3!^zQQMX)< zp+^rg(Ks)5c3`9&IkLHj@tqbl1CKV!pQf!NdBSqtUImy{*f7^k1k~@rW<6B z4AMZ4<2jqSZSb3*f;UKa3GJ2$IPFw#bIG6B?Qx^@_F20>ZX9)gBY`#hO|=qY^W^siQ>VfPfrpy>;z_KN?3Syox{ffCYMet+A zjH!Sks|NVi7Ip8e@o%ZZ7lb z<<1U&py;J6v{8M>oWk}nAn7!Rzs?$!NxU_^$7~t0M)U!-nc3AO&V!ww9>)v`K%w%qIhTL3>!Cv>WM5eiy zX|5lQaKV_(gVvO|A~1r5KVWeu+Fiig(5TJ)TKelHyJizT<#cmEl!rxX2KE~f|+N{oNr;3X6Wc(-xbKsd0Xry#yyBHF&fXXWy2 zo{_$TeU-1QtK4^68Yby**-EW@eY3sPO>ejM3HHlu-lT>D zQWzZhq`#l(nAtXpu_k6CK!sT3?Fetadx*fta)x3y{eoDPC`<=sZ1n}K1g zuz8@n#*g0S^7qSZ3e-SF4i3hTpA1!@H|g!WMF#W+Mi9x;IzuI$w4$Ky`|%BWEB&Ti ztp2gQqTp0lsnB`*kk?a;__Z2Kc)8sOFIpO^^j2D)S0_#ZI=SyM4AFe+J3tIwLNXg;}b z(IR?B(+xsFg+UzqMOEnLGAqb$Q|K)b-7hR(x}Lk{qDs$tI-vA&dfBJ3wbvpm@So7I zDxer}HG0vM=F(Rges&)Ht8GRT7?)#LxwQkG}!4cra|wn=jSSZb76;HDJvTu<>7Gu5rL>T^np+U7KX>>Nv6tPCdcy zIrh5Yzb{YOX*Y|&*(sB7V-{(DV_1T9QrG+Zj*L;=!bAvYmo>pyhmWRy*!1)03kS$) z5zK4HxoMr^5RARac(I* zpj$F|e%oLe7oFR7i%RW9Ki|!wzc;&iKZ|Sl-sSH;eplLWPzk9o)K?8(N9DMlbRde( zKBx1t$imL$g3YNEdb18~2eB@7i;Cn?Cb6BwQj9aC_e>6CtMLPqMnL38xq(D5HJTu1 zw|s^Ryy!x@!d8IAP=7nL5v+sfqPns})%EHzt6 zm&cb;Jcn9FOUpe-nL@%#C)aZXdxom; zG|oK~L3|#XxCNg|pwZL#ZnhL0#nfRPs<(5OX(vE}4`Yi%Ah2bv?eDXXnlM`0=xoxI!5Y{QUAHCRxbw zli^9cTtLe66Y?GMJ*17EKZ{4hXYtcfJbE_bbkt3Uj4vVM%lP04WIR6U^di$1fzy*4 z57&5=a%bWM|8R>dcD6&l?cR{4s>q;8&nTwai-az2^_>L6fDPmC&dcetR*cds{EE-! z%St7E4Ii-*a*tawZkwqRq64d0Ic&3CgLSyyN|In?hFS&4;T--WvpGNiwCVVT+9uCT zt;&d$jrO5%R?gtY(%@^N%?30GSkjxk zfF)5)g+-i+JCByJy(41uTBxk4Jjx1q4RFQRR35cO#!x|P@QLHz5sY3wg#3`L$cuou z1|$}c_P#M0V!#q8qu&=98~z@1`f+}8k{tI(Uo?Qety+XUeAOs}>$NH&Z29V7I#+=; zv#Tr@z6#5QERJJ4(b0J}uL>fLZI*=*ps#bzp#e0lDu5fi>OdA%>I?lS&zqbQaR)*` zt%V;#T&hk{=S$oJ+VBfuDP%{3enjb6sToY0YA$|WWlah{Bh$QGET0*DkwT(qM;ZbW zsp*0~(S_8`j{c35-`lFZsIpo{9hl@c9FsYh5>?X6{S8W-jobe*dY%)Pc8)(i;seV6 zzNnE)Vn)SNOz_6`EF|Pag%W%gTG)!3D@u;~cs!D9jI0I27jzl4y8jGq2tR&A^R`8~ zST5w83t=pZX<>B#FCwrv(F^kG4B{Ify}+pJm&+`h3%PfEgC8$5R05dNGsF0aNPK(y zHmfMwJjLRCD#?l08)cp!I;2)~t5Dk-5NR;)Xk3naG&sJ=aN|4kC-p%9Z=`x?^PEk_ zJi$6zD>gAkysPYgkaDKmP4f_&UrCL(7;IT9smc^B=#UQOm9VGihbpu0RHIiR&nq<2 z^OY%>sC-XMi>yMwUgTbm_o$5Gf3ZIbBX3h|G5s2md6pGV$GZZaXc?C!u`E)v`b&v?IP6Cg^LLOw@06^|G5v0Pj;lkZIydj^hGu< z+1#9%2AV;>8yZ7893Iuqd}0BwyPa%ah9-)}tBNLMozr>LDCCmwR_Mjuc~@zH zS&Zd2Kdw0a1o3Mhu4sUNN5Umtyf2Z>0$?AH4g?N(`^h+fB-SDXgMR4RTCL=v&56&p z>kq1!@kR7E+h&-aorq|YrNlk1<1)1hk66LMbHpyo`An*KD6c=FT@1Q{FLMp48c(d3 zScx=*@P%Um9n&$QUbU_i0Li45DSPZ!pKWiC&ox}Bv_JY^!_RMrjMhc^hSw`98jv9sYW%?|dy10y0A=WJ7-R!gD{E zh)6{^^y=wqa}UpsNQB z;oHA71S@f!=y+n@W;;9kL{Zq+7A$|>3iJ6$^Ca524n|L2L!TNai#1BNDm+pzOHA~z z-k=$j^VEE*GEjj~^Uc?*AsMYku_UY>nd&ME7WLa42F!l9O&^)`t!oZ4vWEFGM{fuw zIxDPvij86_rvmx5+)}Lzm$;&hCLGA8O6hF$XP=z+8Qh+(1VJSX56K#U6E6T8ubh^*UgNmLsE8;fC->_4 z2hE;Og@0%hl%cNu5M&-FTtsSaX9tZWDtvb2A1f)Qum)oWK+GK{*Y1%s9YdQQtIhO# zTTwUXpVUbBXy_ayBkmdEI^pw<@0T>mWbHVQJN#3}cQi)idWgfqI2ICh87(H~VamZ> zuuJC@Ij{3=Eq3S39EHy5A9*KXQl4uOfv2Pw2e3kR=x4*(2RwWpwd{B^17fWOq%vNZ zjvx8dP$at_jg9)G%gRx1AJPN-Z){9QujOW5Se>jOK4UWGYt|f1E(-j5X)7WoD^9J_ zi{zGm{vaf7$qjwJvw7>}HKhVYoV?{B%z2aLv-{} zAWA%kp)^Sw#8ln)g$QER3=o6DaFPquADoJh6@GkOl{YmU*ngu*FyUJ`K`DN`$#3%_ z`4bEM+~o75#>8*PTMHc7fmk`9*5HHbHI#S_&Y=4wBbQ?7)gmG1Vp$`o!DJ4fFUu?H zD7nn|i<-Z}4~y_l94p783@BAF8m!< zJ~vZ3s(&Y|e~%G>eq?K-B*S6lW{T^P%4i~!iP+2sxLrzFslaBg&6G9G6lOCo^J`h9 zENH72Fo(LJy(wnsU19tse@*cpyJBRjdrstH;GlrKX%}Ra#fME4)l?!iVmzaB@ zK08KpDM$0}!?(#f9o_4T)_?L%zzg}3}{uJ{F)Jnh_B9Gf7QKW)r%4hH$}}0YxkUr|IiiD zfoxh_z$mW^@**HVJ1bvn5PJjn!Zq*x8koEmy}@1fVh@=7e9;`fn3Y%kt8%uSXT5xu z1ea+aaBJSI`V2P7y zQFhg<%XvQQ!6h5^`>;Mdg+9Cc>Gk^}!dQP%0gkIyoDogvpK*0@7Cw6#_xMjVIZLO1 zTo6^r<;FLcd6P}ad5**s! zFZT4tZfxQ$5DS3(v6UBks6ALiB#?qBIWm+ZJI|Y-hXLoj)%SG$Lvsv!FgGVbfhK?t zgDW1dtE>v|@_O8c)%dckwRL?xzT@ogXB=2g&))nNV`IPgG4L7-giWk{39}jBp;`6# z$1}Xk?_<>bBr15n+UuNSVxHr4-l;AGxZo7)z$8+F5vjT(c(Hlx|md-9Rpa7v8 z`O|R{g3LaU9gFlLWulHLUO8wh)-+BIR=3Lfd2wE1z-c)(tIoZHE_j#PNCQn|=dcfp zKpk}{&BCnsfBuhw8Q$6a7Uu~sM^AEnnWBW!sjuDhnK{@~@305Ajwh8b8Z$#0VVY?K zmwonIZ6s5|okCIR8Q=r}u?eZZ4JWYf@b|qcu10r<2jhHR-i$fax>4p+mf@~{L$TcZ z%No-teEb-FY)oJ~{%ohVi<$Mwnun70sOt1Qt@55V$~#^ZcG7^>8?qJT!L9&}(tNA5 zZZ!$Fn!3-XWq|t4HQs8y>?_2xL3)6~HlD%70U=Lu(GQi* zuQrwD;cQ!))@prO$ne4J-Bo(a{&r|%dyn#~MOgtQ(fB4mXbYV0`d791ObN4$VI2M2 z9{#tqnJS z8Xk<|-sm~}wZH#m+#3#_L=FbHJJ07pv5fQL63$jLxz6kSET5wuuoq+WIUxC+QBGF9 zZy`2u%7*fQ4H->9PM>e?v7j{|W#Ui$6Rw9@b~}DPG|!%UR_^@h=ib7>ce1S~R$B_# zRsMcwUmZ;tr%RPM7;uY-z&zxR3Tii9O)W}~77tTLt<;Ydy zNdrm3Pbdf_?#{By^g0JnTUPTh_)O5DpM7}qI*1hUoEJp@G6HO0U^ZM=<@~Nqhnp~9 zJ186z7|ye|DW=ZcT%y#?C0>}w?5u2nhwxmg#9b-0YKEd&5F5Uim9n~n)9&o!Tvo@FqbLRcE#@ty$%*CmML+z|W z({w6y%s|xOm2|3{0~VrqsSc@dgRa6@KyXU#OZ z-byT6N$&UN?EaVu_#uV z*jqOMRmywYx)dR)VCgrk0#O~+R zftqK!{j=fl+4HZS`^yY$?YBGG{QTUI2r|pC ze{c}XKf}R6B1@pB9h0ylX+pGjFUP>w{{ znfqg85e2tq@5ZS7ZMVof)77ZRZMAD}tAkFcD~(avsmM&?O~JiPI+sCwot>RopT{;e>uYA4b>3gI&ik8t*lOAL*Dt%>jRadlI(gxPXvzY-#W>`w zoX>ir=WqZ&f4!XMv$Xe3S-@G$K975E$|9YXaqp@uN(v>zCkmOfLNTKL`MKlhZB$dV8Z|dq6c@mh3&=Du8~rvoF~HVE+WYSrRDb_gjLT?{mmWsd+kd*v4%;K+2|jtE zC-~&anpN&>4&Of3pyTWosE8Tdpc{rG@vcYw_mI|bG>#~_EhX95{M{m*%}~6Ci;L`Z z?MeU!0;ztjMOZ-2OLSbRFQi_F7z1&|$q=a_zs;ssnQtRkUyGpv?2d zSY8(h1CIQ~Bb{&aS@xOOw@GUj21&?n6KSLU?&id49FHF3 zA^Fmw@kfIvT@`x^RTW9!_9G9z1i6pZPYi~FCfT75fXtwYUiwtnJ)P@CFKQI>0qB|W z0))TK1r$@^s}ZFkyPp`L43=<6&D%getRiI+ zNha-2d;i2k{I3__h@qfsgg!f4_Q5(mEy<@Ox#rjz{y_n}IBYDeZJi9UdC!f_dm?c8 zc=QydH`vbm^s>B4yU*u2Z;!v|KlpXFU1NXSw^X(n2A~FoQwDO zU{RG9`E301S5jS8D&B)PD(2{$6fS_<@XctH0G&2`HX1&C_8hq6(Z2n?KT7&`f>|I6 zCZfyUe_NMZERuok%xl*ssGQ0s?`|IAj$-Z0Yny%ESe}ptpF#tmY;c|B*F?tO`2_-I z#ivi7wzUF0sKH?7ChKIJX4`EM#A8jI@9*#XsJaJgd?840Rs-{0J}rUD1e zG;J{-Lgb^;CY=CQyFh3=%K-dsRY8#}P)TDTjML@HSJX;aN6=qtRe5@A@N0>S=)dhH(m24GY2S zE39mc%a(Vp?SOPQwwM@eg_s5Xme_`gj8p=cAdp~FB~a!431U}4UF$`! zS1pgrGeFYUNQq#a_y0omYbY7q$GkYA@YgV>EG_P1xi)sXP#}Lay1$QsUrnc%wzu~D zJQOqg?yGn2PGA1lhn7b~Cm1_0RDVz;P$z6@m7NE%S_PnAvp!6T45{&ArbXBwWfLER zX}Y@npRCYI|C-W&Y+>Xe^=iRF6QM~Iv>>a zd~lxD&3rW|V1lFwdYaDXdv|}{@7>+PpVd7H5#u{UkTCvyXId^+lirK8hfA8MzHV-A z1^_Na-Bd7nGI*^n_OLLW=HT#0$b3hc1or7+kLWCHxCAPz*VV9?!~k|>&lpJ^9Daj2 zFTcjNKF3%URtPxo zFuEs`&rmq+iSA?0X!!t}P*gs-x!=R_mEHpk<6^n5XziqS(sc5GBSj0=^ZWw-sVI_L z-T=mnJF?5-g7RT(Poi4}Mlh?dF7I z{W_6lj#KnaC6){q7)@>w{1!`$TMI?dTqdl^Nx-8JKu8(z3|LmOvlIM@aYP>_UCq2K z@g{&aK7I@k7opdKn){ESw%p_(FM4MCm?byZ&Esj5I4JHt+1xuJSZe|cM2gp$baKEB z6o5Pwz)&StX=G830%2eUzk6gb`gyS1DzzJYt}LnG^Dr0}aj7w$FdGf;E}N_QxQek1 z9=`GM{*!qB$w{oDHlx)NMwF#M1O~>$myht+>Q@~VJ5?^=NqmRhjLX>2t^rTOq)?e3V)2|j!E>dWWDVGs*W%c{<4=7{L_SlZjcHc+Pvw$uX93gT%} z4C=)^Zz#-m_ZhF3XMnkZa{`POiMZTwjdpHP@WM4_>xnNQTnGTfVDcGkz050M12K1M zq>0gD@{*y%ZTT=T;Ni(Z{N&(23=a$dTVMbSM66aX7WHX51^uFz%Ke-dzp`_G@h j9Qgsq9ESxy_v}>FFqA{r(zyDty@&q?urA6l(NY2c7>=;h literal 44202 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 \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-shopping-list.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-shopping-list.html.gz index 687f39056836d14629c45edd06169259406744f6..4af82c430637dec559b9a9143eec32d3c9491c5c 100644 GIT binary patch literal 1541 zcmV+g2KxCQiwFP!000021D#iGZ`(Ey{wpkj1vVzhcDuHKY#Hmiekk_R04W9xK@d>V z+2TTz0!cac1poIPDao?zq|5dt5y|7dJonrky(sKPEEff^e7Tr3|5BCjmy29&!i~x+ z0fgrXEm&AG2_iIwDoZZcq2R{S<-)?I6wJbMVeH-s%S==`_#1wQF5^NOTNl9Bg^g#^ z>38!(lqqRJ+PY+Uj@shaKa@K%C2wAryZMIg!bhIlB7QfW`n6tj8BYnTtePK6R)P*Q zrt>=I2959IRH*D>-s%cdWv$x8vv+v+5IH|X7a8dKM^=_%Pr|U#u|g;Ok>C0J9Trt?e*rQA8=s97kO1tkMQ;l!_x*x{KT&bs@L~#*tM9^0-b}_ORBfl6m7p{8*sC{BQ)V zfb7AU?_i(J5cc=ZhgO{|E898OWXke#kfpf~kqN$*aR%P87eKL?crq*(n1MFZ5HqJL zOA2N}lW8S{OP+=`f}T)%DoTt{7AfTyl&ts;@}r1VN~BC9i&?kBjS{Da$A0DMa}jLXn+E5KR1X{k?s#dIwuDBx`x%d`!* zif7Q7#*mD&;Qk-AU&`VBAb?39abrIdUQt^tsHf-tPyjc=R*IaE>D=d&E2msPDn5m; zP@4aZDw$}KolwtwdU~K%D+8FA@GT`<(3WSz%}y^z-#WeSJE5DL$GNg5?5@!^$GKKz zt{xF~G`DskEG8F9I=yW*onJl2%M}U1%a)Z1z0U+N{ZV1t0t-1^espV+bsI->cKKiulb$+=)DJS>v{B5DSEuSHwWFAD zY>O$**_BYty5lVq6*y$Qy+7Qlh4lgUj_xjDc=8MEuhFdj(0rbUqezVA1 zPKO5Rd_sm5m)sObiV-F-*c(TA=iDmXc@lp~|ANd0%}|Sf!r=i-2Hh|_ZumNnYr8KY{-8D62cAjs?cE{h z^VkafUTsp)twcC$B|O<$i5u+4a@|T$dN>5mJ&>T$NXx_+o2#qcPbQ;>fLY6Mna8V2 zW^T@m#B0(fAPL@LWVEdakZ6w%pxb)5Yy3 zNG8OGl8@*bFzLfMp7pO;rT)J5U;CT+mSwFX;hr6a4dQtg@o-`d z+`n`+fTTw+@_p>fYQ)ELc$Kt_Jl4n6)u`X`^^kBsIf6661U&LgW*{#8=tAhl!&z{y z7^^BcYm6^V#87z`V6QtcCn4YRyZMXU2^=8Chuh(RFT2sLAN_^~JfQB3-UTqI*O%nq z`24%;@&8Eqxb0Bg&>P@1dxONb5jLfdnDee4hrptoOIO>i2G?J|f9m=$v%aE-56OQi r>+3H!UoWum8t#uzPdYvv#&i6s)QpG4q?yqZ|0De$m)u-js}BGGN{AGA literal 15408 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 a-db5{VlL>5>-r{p^}hifAaDR^=KuhUXDcB9 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html b/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html index 884618cd34c..ab32683f5e8 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-zwave.html.gz index 9c93970e3362608d6013993438de8f079b7cd37f..2f5a4185b31b1a4f8793d4a8c7a15b2d1ce8bd8e 100644 GIT binary patch literal 4699 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 C7>K<9 diff --git a/homeassistant/components/frontend/www_static/service_worker.js b/homeassistant/components/frontend/www_static/service_worker.js index a39d85e64db..0be4be44cc0 100644 --- a/homeassistant/components/frontend/www_static/service_worker.js +++ b/homeassistant/components/frontend/www_static/service_worker.js @@ -1 +1,346 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}function notificationEventCallback(e,t){firePushCallback({action:t.action,data:t.notification.data,tag:t.notification.tag,type:e},t.notification.data.jwt)}function firePushCallback(e,t){delete e.data.jwt,0===Object.keys(e.data).length&&e.data.constructor===Object&&delete e.data,fetch("/api/notify.html5/callback",{method:"POST",headers:new Headers({"Content-Type":"application/json",Authorization:"Bearer "+t}),body:JSON.stringify(e)})}var precacheConfig=[["/","9737865a921f23ea23a73735f1b51270"],["/frontend/panels/dev-event-77784d5f0c73fcc3b29b6cc050bdf324.html","eebf53a12ae770fea7c5429de2db810c"],["/frontend/panels/dev-info-24e888ec7a8acd0c395b34396e9001bc.html","7bb116813e8dbab7bcfabdf4de3ec83f"],["/frontend/panels/dev-service-9eb775f70396d5c1fb7d5a1182553880.html","d8a30fddd7d82a08b86b1f06b2797378"],["/frontend/panels/dev-state-31ef6ffe3347cdda5bb0cbbc54b62cde.html","38dc27f1f817045900f396a61c7e736f"],["/frontend/panels/dev-template-e309e5773be0eecc448e7bab09a976f4.html","21fa8b4435c3ac0047a53b5bf56975c9"],["/frontend/panels/map-50501cd53eb4304e9e46eb719aa894b7.html","410d870df0226d08078d8dc45d02a8ef"],["/static/compatibility-8e4c44b5f4288cc48ec1ba94a9bec812.js","4704a985ad259e324c3d8a0a40f6d937"],["/static/core-d4a7cb8c80c62b536764e0e81385f6aa.js","37e34ec6aa0fa155c7d50e2883be1ead"],["/static/frontend-0d492cc2c19056db4ef3e885e0b33f14.html","2314aea01acb3692e524ea91f8997ca3"],["/static/mdi-e91f61a039ed0a9936e7ee5360da3870.html","5e587bc82719b740a4f0798722a83aee"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"],["static/webcomponents-lite.min.js","32b5a9b7ada86304bec6b43d3f2194f0"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var a=new URL(e);return"/"===a.pathname.slice(-1)&&(a.pathname+=t),a.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,a,n){var c=new URL(e);return n&&c.pathname.match(n)||(c.search+=(c.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(a)),c.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var a=new URL(t).pathname;return e.some(function(e){return a.match(e)})},stripIgnoredUrlParameters=function(e,t){var a=new URL(e);return a.search=a.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),a.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],a=e[1],n=new URL(t,self.location),c=createCacheKey(n,hashParamName,a,!1);return[n.toString(),c]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(a){if(!t.has(a)){var n=new Request(a,{credentials:"same-origin"});return fetch(n).then(function(t){if(!t.ok)throw new Error("Request for "+a+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(a,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(a){return Promise.all(a.map(function(a){if(!t.has(a.url))return e.delete(a)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,a=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(a);t||(a=addDirectoryIndex(a,"index.html"),t=urlsToCacheKeys.has(a));!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^((?!(static|api|local|service_worker.js|manifest.json)).)*$"],e.request.url)&&(a=new URL("/",self.location).toString(),t=urlsToCacheKeys.has(a)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(a)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),self.addEventListener("push",function(e){var t;e.data&&(t=e.data.json(),e.waitUntil(self.registration.showNotification(t.title,t).then(function(e){firePushCallback({type:"received",tag:t.tag,data:t.data},t.data.jwt)})))}),self.addEventListener("notificationclick",function(e){var t;notificationEventCallback("clicked",e),e.notification.close(),e.notification.data&&e.notification.data.url&&(t=e.notification.data.url)&&e.waitUntil(clients.matchAll({type:"window"}).then(function(e){var a,n;for(a=0;a active state + return self.skipWaiting(); + + }) + ); +}); + +self.addEventListener('activate', function(event) { + var setOfExpectedUrls = new Set(urlsToCacheKeys.values()); + + event.waitUntil( + caches.open(cacheName).then(function(cache) { + return cache.keys().then(function(existingRequests) { + return Promise.all( + existingRequests.map(function(existingRequest) { + if (!setOfExpectedUrls.has(existingRequest.url)) { + return cache.delete(existingRequest); + } + }) + ); + }); + }).then(function() { + + return self.clients.claim(); + + }) + ); +}); + + +self.addEventListener('fetch', function(event) { + if (event.request.method === 'GET') { + // Should we call event.respondWith() inside this fetch event handler? + // This needs to be determined synchronously, which will give other fetch + // handlers a chance to handle the request if need be. + var shouldRespond; + + // First, remove all the ignored parameters and hash fragment, and see if we + // have that URL in our cache. If so, great! shouldRespond will be true. + var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching); + shouldRespond = urlsToCacheKeys.has(url); + + // If shouldRespond is false, check again, this time with 'index.html' + // (or whatever the directoryIndex option is set to) at the end. + var directoryIndex = 'index.html'; + if (!shouldRespond && directoryIndex) { + url = addDirectoryIndex(url, directoryIndex); + shouldRespond = urlsToCacheKeys.has(url); + } + + // If shouldRespond is still false, check to see if this is a navigation + // request, and if so, whether the URL matches navigateFallbackWhitelist. + var navigateFallback = '/'; + if (!shouldRespond && + navigateFallback && + (event.request.mode === 'navigate') && + isPathWhitelisted(["^((?!(static|api|local|service_worker.js|manifest.json)).)*$"], event.request.url)) { + url = new URL(navigateFallback, self.location).toString(); + shouldRespond = urlsToCacheKeys.has(url); + } + + // If shouldRespond was set to true at any point, then call + // event.respondWith(), using the appropriate cache key. + if (shouldRespond) { + event.respondWith( + caches.open(cacheName).then(function(cache) { + return cache.match(urlsToCacheKeys.get(url)).then(function(response) { + if (response) { + return response; + } + throw Error('The cached response that was expected is missing.'); + }); + }).catch(function(e) { + // Fall back to just fetch()ing the request if some unexpected error + // prevented the cached response from being valid. + console.warn('Couldn\'t serve response for "%s" from cache: %O', event.request.url, e); + return fetch(event.request); + }) + ); + } + } +}); + + + + + + + + +self.addEventListener("push", function(event) { + var data; + if (event.data) { + data = event.data.json(); + event.waitUntil( + self.registration.showNotification(data.title, data) + .then(function(notification){ + firePushCallback({ + type: "received", + tag: data.tag, + data: data.data + }, data.data.jwt); + }) + ); + } +}); +self.addEventListener('notificationclick', function(event) { + var url; + + notificationEventCallback('clicked', event); + + event.notification.close(); + + if (!event.notification.data || !event.notification.data.url) { + return; + } + + url = event.notification.data.url; + + if (!url) return; + + event.waitUntil( + clients.matchAll({ + type: 'window', + }) + .then(function (windowClients) { + var i; + var client; + for (i = 0; i < windowClients.length; i++) { + client = windowClients[i]; + if (client.url === url && 'focus' in client) { + return client.focus(); + } + } + if (clients.openWindow) { + return clients.openWindow(url); + } + return undefined; + }) + ); +}); +self.addEventListener('notificationclose', function(event) { + notificationEventCallback('closed', event); +}); + +function notificationEventCallback(event_type, event){ + firePushCallback({ + action: event.action, + data: event.notification.data, + tag: event.notification.tag, + type: event_type + }, event.notification.data.jwt); +} +function firePushCallback(payload, jwt){ + // Don't send the JWT in the payload.data + delete payload.data.jwt; + // If payload.data is empty then just remove the entire payload.data object. + if (Object.keys(payload.data).length === 0 && payload.data.constructor === Object) { + delete payload.data; + } + fetch('/api/notify.html5/callback', { + method: 'POST', + headers: new Headers({'Content-Type': 'application/json', + 'Authorization': 'Bearer '+jwt}), + body: JSON.stringify(payload) + }); +} diff --git a/homeassistant/components/frontend/www_static/service_worker.js.gz b/homeassistant/components/frontend/www_static/service_worker.js.gz index 541a56e6835a3272708d5bc3070f2f8013160194..05cf45162f1eea496d2acf74f291ba79f9d19b32 100644 GIT binary patch literal 5219 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 Date: Thu, 3 Aug 2017 06:18:18 +0100 Subject: [PATCH 052/128] mqtt switch: add voluptuous for availability topic (#8797) --- homeassistant/components/switch/mqtt.py | 1 + 1 file changed, 1 insertion(+) diff --git a/homeassistant/components/switch/mqtt.py b/homeassistant/components/switch/mqtt.py index 1169e5a3d5d..95f9a779327 100644 --- a/homeassistant/components/switch/mqtt.py +++ b/homeassistant/components/switch/mqtt.py @@ -34,6 +34,7 @@ PLATFORM_SCHEMA = mqtt.MQTT_RW_PLATFORM_SCHEMA.extend({ vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string, vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string, vol.Optional(CONF_OPTIMISTIC, default=DEFAULT_OPTIMISTIC): cv.boolean, + vol.Optional(CONF_AVAILABILITY_TOPIC): mqtt.valid_subscribe_topic, }) From 7c92f7e1adf7c43dfc2e64de21b832b14e6b38c4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 3 Aug 2017 10:08:09 +0200 Subject: [PATCH 053/128] Upgrade aiohttp to 2.2.4 --- homeassistant/package_constraints.txt | 2 +- requirements_all.txt | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt index 9414bc98dc8..63fcdc351eb 100644 --- a/homeassistant/package_constraints.txt +++ b/homeassistant/package_constraints.txt @@ -5,7 +5,7 @@ pip>=8.0.3 jinja2>=2.9.5 voluptuous==0.10.5 typing>=3,<4 -aiohttp==2.2.3 +aiohttp==2.2.4 async_timeout==1.2.1 chardet==3.0.4 astral==1.4 diff --git a/requirements_all.txt b/requirements_all.txt index 96b48ee63d3..bf3f91211e6 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -6,7 +6,7 @@ pip>=8.0.3 jinja2>=2.9.5 voluptuous==0.10.5 typing>=3,<4 -aiohttp==2.2.3 +aiohttp==2.2.4 async_timeout==1.2.1 chardet==3.0.4 astral==1.4 diff --git a/setup.py b/setup.py index d19a074889a..ebe7f893bcd 100755 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ REQUIRES = [ 'jinja2>=2.9.5', 'voluptuous==0.10.5', 'typing>=3,<4', - 'aiohttp==2.2.3', + 'aiohttp==2.2.4', 'async_timeout==1.2.1', 'chardet==3.0.4', 'astral==1.4', From d8cded637cd2003819c9ca7366a82df35f0fa3a1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 3 Aug 2017 10:11:32 +0200 Subject: [PATCH 054/128] Revert "Upgrade aiohttp to 2.2.4" This reverts commit 7c92f7e1adf7c43dfc2e64de21b832b14e6b38c4. --- homeassistant/package_constraints.txt | 2 +- requirements_all.txt | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt index 63fcdc351eb..9414bc98dc8 100644 --- a/homeassistant/package_constraints.txt +++ b/homeassistant/package_constraints.txt @@ -5,7 +5,7 @@ pip>=8.0.3 jinja2>=2.9.5 voluptuous==0.10.5 typing>=3,<4 -aiohttp==2.2.4 +aiohttp==2.2.3 async_timeout==1.2.1 chardet==3.0.4 astral==1.4 diff --git a/requirements_all.txt b/requirements_all.txt index bf3f91211e6..96b48ee63d3 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -6,7 +6,7 @@ pip>=8.0.3 jinja2>=2.9.5 voluptuous==0.10.5 typing>=3,<4 -aiohttp==2.2.4 +aiohttp==2.2.3 async_timeout==1.2.1 chardet==3.0.4 astral==1.4 diff --git a/setup.py b/setup.py index ebe7f893bcd..d19a074889a 100755 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ REQUIRES = [ 'jinja2>=2.9.5', 'voluptuous==0.10.5', 'typing>=3,<4', - 'aiohttp==2.2.4', + 'aiohttp==2.2.3', 'async_timeout==1.2.1', 'chardet==3.0.4', 'astral==1.4', From 57dfe378a1ed6d45026cb189a36798c1ab22c5bb Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 3 Aug 2017 04:51:01 -0400 Subject: [PATCH 055/128] Add mochad light component (#8476) * Add mochad light component This commit adds a new component to control x10 dimmers/lights with mochad. * Create comm_type and address constants The comm_type and address conf constants are shared between all mochad devices because they are required information used for configuring a device. This commit moves the definition into const.py so they're consistent between all component types. --- homeassistant/components/light/mochad.py | 99 +++++++++++++++++++++++ homeassistant/components/mochad.py | 2 + homeassistant/components/switch/mochad.py | 9 +-- homeassistant/const.py | 1 + tests/components/light/test_mochad.py | 88 ++++++++++++++++++++ 5 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 homeassistant/components/light/mochad.py create mode 100644 tests/components/light/test_mochad.py diff --git a/homeassistant/components/light/mochad.py b/homeassistant/components/light/mochad.py new file mode 100644 index 00000000000..fffaa293188 --- /dev/null +++ b/homeassistant/components/light/mochad.py @@ -0,0 +1,99 @@ +""" +Contains functionality to use a X10 dimmer over Mochad. + +For more details about this platform, please refer to the documentation at +https://home.assistant.io/components/light.mochad/ +""" + +import logging + +import voluptuous as vol + +from homeassistant.components.light import ( + ATTR_BRIGHTNESS, SUPPORT_BRIGHTNESS, Light, PLATFORM_SCHEMA) +from homeassistant.components import mochad +from homeassistant.const import (CONF_NAME, CONF_PLATFORM, CONF_DEVICES, + CONF_ADDRESS) +from homeassistant.helpers import config_validation as cv + +DEPENDENCIES = ['mochad'] +_LOGGER = logging.getLogger(__name__) + + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_PLATFORM): mochad.DOMAIN, + CONF_DEVICES: [{ + vol.Optional(CONF_NAME): cv.string, + vol.Required(CONF_ADDRESS): cv.x10_address, + vol.Optional(mochad.CONF_COMM_TYPE): cv.string, + }] +}) + + +def setup_platform(hass, config, add_devices, discovery_info=None): + """Set up X10 dimmers over a mochad controller.""" + devs = config.get(CONF_DEVICES) + add_devices([MochadLight( + hass, mochad.CONTROLLER.ctrl, dev) for dev in devs]) + return True + + +class MochadLight(Light): + """Representation of a X10 dimmer over Mochad.""" + + def __init__(self, hass, ctrl, dev): + """Initialize a Mochad Light Device.""" + from pymochad import device + + self._controller = ctrl + self._address = dev[CONF_ADDRESS] + self._name = dev.get(CONF_NAME, + 'x10_light_dev_{}'.format(self._address)) + self._comm_type = dev.get(mochad.CONF_COMM_TYPE, 'pl') + self.device = device.Device(ctrl, self._address, + comm_type=self._comm_type) + self._brightness = 0 + self._state = self._get_device_status() + + @property + def brightness(self): + """Return the birghtness of this light between 0..255.""" + return self._brightness + + def _get_device_status(self): + """Get the status of the light from mochad.""" + status = self.device.get_status().rstrip() + return status == 'on' + + @property + def name(self): + """Return the display name of this light.""" + return self._name + + @property + def is_on(self): + """Return true if the light is on.""" + return self._state + + @property + def supported_features(self): + """Return supported features.""" + return SUPPORT_BRIGHTNESS + + @property + def assumed_state(self): + """X10 devices are normally 1-way so we have to assume the state.""" + return True + + def turn_on(self, **kwargs): + """Send the command to turn the light on.""" + self._brightness = kwargs.get(ATTR_BRIGHTNESS, 255) + self.device.send_cmd("xdim {}".format(self._brightness)) + self._controller.read_data() + self._state = True + + def turn_off(self, **kwargs): + """Send the command to turn the light on.""" + self.device.send_cmd('off') + self._controller.read_data() + self._state = False diff --git a/homeassistant/components/mochad.py b/homeassistant/components/mochad.py index a42d142112d..165c43f488f 100644 --- a/homeassistant/components/mochad.py +++ b/homeassistant/components/mochad.py @@ -19,6 +19,8 @@ _LOGGER = logging.getLogger(__name__) CONTROLLER = None +CONF_COMM_TYPE = 'comm_type' + DOMAIN = 'mochad' CONFIG_SCHEMA = vol.Schema({ diff --git a/homeassistant/components/switch/mochad.py b/homeassistant/components/switch/mochad.py index 21df1898fd2..a67b27a6a91 100644 --- a/homeassistant/components/switch/mochad.py +++ b/homeassistant/components/switch/mochad.py @@ -11,21 +11,20 @@ import voluptuous as vol from homeassistant.components import mochad from homeassistant.components.switch import SwitchDevice -from homeassistant.const import (CONF_NAME, CONF_PLATFORM) +from homeassistant.const import (CONF_NAME, CONF_DEVICES, + CONF_PLATFORM, CONF_ADDRESS) from homeassistant.helpers import config_validation as cv DEPENDENCIES = ['mochad'] _LOGGER = logging.getLogger(__name__) -CONF_ADDRESS = 'address' -CONF_DEVICES = 'devices' PLATFORM_SCHEMA = vol.Schema({ vol.Required(CONF_PLATFORM): mochad.DOMAIN, CONF_DEVICES: [{ vol.Optional(CONF_NAME): cv.string, vol.Required(CONF_ADDRESS): cv.x10_address, - vol.Optional('comm_type'): cv.string, + vol.Optional(mochad.CONF_COMM_TYPE): cv.string, }] }) @@ -48,7 +47,7 @@ class MochadSwitch(SwitchDevice): self._controller = ctrl self._address = dev[CONF_ADDRESS] self._name = dev.get(CONF_NAME, 'x10_switch_dev_%s' % self._address) - self._comm_type = dev.get('comm_type', 'pl') + self._comm_type = dev.get(mochad.CONF_COMM_TYPE, 'pl') self.device = device.Device(ctrl, self._address, comm_type=self._comm_type) self._state = self._get_device_status() diff --git a/homeassistant/const.py b/homeassistant/const.py index c5e2993f510..fadd85e6b72 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -56,6 +56,7 @@ SUN_EVENT_SUNRISE = 'sunrise' # #### CONFIG #### CONF_ABOVE = 'above' CONF_ACCESS_TOKEN = 'access_token' +CONF_ADDRESS = 'address' CONF_AFTER = 'after' CONF_ALIAS = 'alias' CONF_API_KEY = 'api_key' diff --git a/tests/components/light/test_mochad.py b/tests/components/light/test_mochad.py new file mode 100644 index 00000000000..b1644effd57 --- /dev/null +++ b/tests/components/light/test_mochad.py @@ -0,0 +1,88 @@ +"""The tests for the mochad light platform.""" +import unittest +import unittest.mock as mock + +import pytest + +from homeassistant.components import light +from homeassistant.components.light import mochad +from homeassistant.setup import setup_component + +from tests.common import get_test_home_assistant + + +@pytest.fixture(autouse=True) +def pymochad_mock(): + """Mock pymochad.""" + with mock.patch.dict('sys.modules', { + 'pymochad': mock.MagicMock(), + }): + yield + + +class TestMochadSwitchSetup(unittest.TestCase): + """Test the mochad light.""" + + PLATFORM = mochad + COMPONENT = light + THING = 'light' + + def setUp(self): + """Setup things to be run when tests are started.""" + self.hass = get_test_home_assistant() + + def tearDown(self): + """Stop everyhing that was started.""" + self.hass.stop() + + @mock.patch('homeassistant.components.light.mochad.MochadLight') + def test_setup_adds_proper_devices(self, mock_light): + """Test if setup adds devices.""" + good_config = { + 'mochad': {}, + 'light': { + 'platform': 'mochad', + 'devices': [ + { + 'name': 'Light1', + 'address': 'a1', + }, + ], + } + } + self.assertTrue(setup_component(self.hass, light.DOMAIN, good_config)) + + +class TestMochadLight(unittest.TestCase): + """Test for mochad light platform.""" + + def setUp(self): + """Setup things to be run when tests are started.""" + self.hass = get_test_home_assistant() + controller_mock = mock.MagicMock() + dev_dict = {'address': 'a1', 'name': 'fake_light'} + self.light = mochad.MochadLight(self.hass, controller_mock, + dev_dict) + + def teardown_method(self, method): + """Stop everything that was started.""" + self.hass.stop() + + def test_name(self): + """Test the name.""" + self.assertEqual('fake_light', self.light.name) + + def test_turn_on_with_no_brightness(self): + """Test turn_on.""" + self.light.turn_on() + self.light.device.send_cmd.assert_called_once_with('xdim 255') + + def test_turn_on_with_brightness(self): + """Test turn_on.""" + self.light.turn_on(brightness=45) + self.light.device.send_cmd.assert_called_once_with('xdim 45') + + def test_turn_off(self): + """Test turn_off.""" + self.light.turn_off() + self.light.device.send_cmd.assert_called_once_with('off') From 8e51e66c9bca208712b25c03d3e4245434e92d03 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 3 Aug 2017 11:36:50 +0200 Subject: [PATCH 056/128] Update numpy 1.13.1 (#8806) * Update opencv.py * Update requirements_all.txt --- homeassistant/components/image_processing/opencv.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/image_processing/opencv.py b/homeassistant/components/image_processing/opencv.py index 0de209639a8..9cf3749de6b 100644 --- a/homeassistant/components/image_processing/opencv.py +++ b/homeassistant/components/image_processing/opencv.py @@ -17,7 +17,7 @@ from homeassistant.components.image_processing import ( ImageProcessingEntity) import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['numpy==1.13.0'] +REQUIREMENTS = ['numpy==1.13.1'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 96b48ee63d3..ba177d487f0 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -416,7 +416,7 @@ netdisco==1.1.0 neurio==0.3.1 # homeassistant.components.image_processing.opencv -numpy==1.13.0 +numpy==1.13.1 # homeassistant.components.google oauth2client==4.0.0 From 6de38cb941097c2ec3480658072e119f3b2f073e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 3 Aug 2017 11:37:02 +0200 Subject: [PATCH 057/128] Upgrade aiohttp to 2.2.4 (#8805) --- homeassistant/package_constraints.txt | 2 +- requirements_all.txt | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt index 9414bc98dc8..63fcdc351eb 100644 --- a/homeassistant/package_constraints.txt +++ b/homeassistant/package_constraints.txt @@ -5,7 +5,7 @@ pip>=8.0.3 jinja2>=2.9.5 voluptuous==0.10.5 typing>=3,<4 -aiohttp==2.2.3 +aiohttp==2.2.4 async_timeout==1.2.1 chardet==3.0.4 astral==1.4 diff --git a/requirements_all.txt b/requirements_all.txt index ba177d487f0..c3b9bc437e7 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -6,7 +6,7 @@ pip>=8.0.3 jinja2>=2.9.5 voluptuous==0.10.5 typing>=3,<4 -aiohttp==2.2.3 +aiohttp==2.2.4 async_timeout==1.2.1 chardet==3.0.4 astral==1.4 diff --git a/setup.py b/setup.py index d19a074889a..ebe7f893bcd 100755 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ REQUIRES = [ 'jinja2>=2.9.5', 'voluptuous==0.10.5', 'typing>=3,<4', - 'aiohttp==2.2.3', + 'aiohttp==2.2.4', 'async_timeout==1.2.1', 'chardet==3.0.4', 'astral==1.4', From f3e16ca30490b31e6a29d51c52acabe8f8ab6518 Mon Sep 17 00:00:00 2001 From: John Mihalic Date: Thu, 3 Aug 2017 09:58:40 -0400 Subject: [PATCH 058/128] Catch divide by zero errors when a sleep type is 0 (#8809) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- homeassistant/components/sensor/eight_sleep.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sensor/eight_sleep.py b/homeassistant/components/sensor/eight_sleep.py index f7d42a9f5bd..e6f4addf003 100644 --- a/homeassistant/components/sensor/eight_sleep.py +++ b/homeassistant/components/sensor/eight_sleep.py @@ -197,10 +197,16 @@ class EightUserSensor(EightSleepUserEntity): sleep_time = sum(self._attr['breakdown'].values()) - \ self._attr['breakdown']['awake'] state_attr[ATTR_SLEEP_DUR] = sleep_time - state_attr[ATTR_LIGHT_PERC] = round(( - self._attr['breakdown']['light'] / sleep_time) * 100, 2) - state_attr[ATTR_DEEP_PERC] = round(( - self._attr['breakdown']['deep'] / sleep_time) * 100, 2) + try: + state_attr[ATTR_LIGHT_PERC] = round(( + self._attr['breakdown']['light'] / sleep_time) * 100, 2) + except ZeroDivisionError: + state_attr[ATTR_LIGHT_PERC] = 0 + try: + state_attr[ATTR_DEEP_PERC] = round(( + self._attr['breakdown']['deep'] / sleep_time) * 100, 2) + except ZeroDivisionError: + state_attr[ATTR_DEEP_PERC] = 0 if self._units == 'si': room_temp = round(self._attr['room_temp'], 2) From 944af9cd7d71b00ea1ef519f690e0373da720d39 Mon Sep 17 00:00:00 2001 From: Haim Gelfenbeyn Date: Thu, 3 Aug 2017 10:26:01 -0400 Subject: [PATCH 059/128] InfluxDB component improvements (#8633) * Allow reporting some state attributes as tags to InfluxDB Some state attributes should really be tags in InfluxDB. E.g. it is helpful to be able to group by friendly_name, or add a custom attribute like "location" and group by that. Graphs in Grafana are much easier to read when friendly names are used, and not node ids. This commit adds an optional setting to InfluxDB config: 'tags_attributes'. Any attribute on this list will be reported as tag and not as field to InfluxDB. * Allow overriding InfluxDB measurement for each reported item separately Bundling all items with the same "unit of measurement" together does not always makes sense. For example, both "relatively humidity" and "battery level" are reported as "%", but I'd rather see them as separate measurements in InfluxDB. This commit allows for 'influxdb_measurement' attribute. When set on node, it will take precedence over the global 'override_measurement' and component-specific 'unit_of_measurement'. * Minor updates to InfluxDB component improvements, as suggested by @MartinHjelmare. * Moved per-component config from 'customize' into 'influxdb' configuration section. The following three sub-sections were added: 'component_config', 'component_config_domain' and 'component_config_glob'. The sole supported per-component attribute at this point is 'override_measurement'. * Lint * Fixed mocked entity_ids in InfluxDB tests to be in domain.entity_id format, to satisfy EntityValues requirements. * Added tests for new InfluxDB configuration parameters * Fixes to some docstrings --- homeassistant/components/influxdb.py | 48 +++++++--- tests/components/test_influxdb.py | 125 +++++++++++++++++++++++++-- 2 files changed, 153 insertions(+), 20 deletions(-) diff --git a/homeassistant/components/influxdb.py b/homeassistant/components/influxdb.py index 6b8cd6734dd..36a58fa8165 100644 --- a/homeassistant/components/influxdb.py +++ b/homeassistant/components/influxdb.py @@ -15,6 +15,7 @@ from homeassistant.const import ( CONF_PORT, CONF_SSL, CONF_VERIFY_SSL, CONF_USERNAME, CONF_PASSWORD, CONF_EXCLUDE, CONF_INCLUDE, CONF_DOMAINS, CONF_ENTITIES) from homeassistant.helpers import state as state_helper +from homeassistant.helpers.entity_values import EntityValues import homeassistant.helpers.config_validation as cv REQUIREMENTS = ['influxdb==3.0.0'] @@ -25,13 +26,20 @@ CONF_DB_NAME = 'database' CONF_TAGS = 'tags' CONF_DEFAULT_MEASUREMENT = 'default_measurement' CONF_OVERRIDE_MEASUREMENT = 'override_measurement' -CONF_BLACKLIST_DOMAINS = "blacklist_domains" +CONF_TAGS_ATTRIBUTES = 'tags_attributes' +CONF_COMPONENT_CONFIG = 'component_config' +CONF_COMPONENT_CONFIG_GLOB = 'component_config_glob' +CONF_COMPONENT_CONFIG_DOMAIN = 'component_config_domain' DEFAULT_DATABASE = 'home_assistant' DEFAULT_VERIFY_SSL = True DOMAIN = 'influxdb' TIMEOUT = 5 +COMPONENT_CONFIG_SCHEMA_ENTRY = vol.Schema({ + vol.Optional(CONF_OVERRIDE_MEASUREMENT): cv.string, +}) + CONFIG_SCHEMA = vol.Schema({ DOMAIN: vol.Schema({ vol.Optional(CONF_HOST): cv.string, @@ -54,7 +62,15 @@ CONFIG_SCHEMA = vol.Schema({ vol.Optional(CONF_OVERRIDE_MEASUREMENT): cv.string, vol.Optional(CONF_TAGS, default={}): vol.Schema({cv.string: cv.string}), + vol.Optional(CONF_TAGS_ATTRIBUTES, default=[]): + vol.All(cv.ensure_list, [cv.string]), vol.Optional(CONF_VERIFY_SSL, default=DEFAULT_VERIFY_SSL): cv.boolean, + vol.Optional(CONF_COMPONENT_CONFIG, default={}): + vol.Schema({cv.entity_id: COMPONENT_CONFIG_SCHEMA_ENTRY}), + vol.Optional(CONF_COMPONENT_CONFIG_GLOB, default={}): + vol.Schema({cv.string: COMPONENT_CONFIG_SCHEMA_ENTRY}), + vol.Optional(CONF_COMPONENT_CONFIG_DOMAIN, default={}): + vol.Schema({cv.string: COMPONENT_CONFIG_SCHEMA_ENTRY}), }), }, extra=vol.ALLOW_EXTRA) @@ -96,8 +112,13 @@ def setup(hass, config): blacklist_e = set(exclude.get(CONF_ENTITIES, [])) blacklist_d = set(exclude.get(CONF_DOMAINS, [])) tags = conf.get(CONF_TAGS) + tags_attributes = conf.get(CONF_TAGS_ATTRIBUTES) default_measurement = conf.get(CONF_DEFAULT_MEASUREMENT) override_measurement = conf.get(CONF_OVERRIDE_MEASUREMENT) + component_config = EntityValues( + conf[CONF_COMPONENT_CONFIG], + conf[CONF_COMPONENT_CONFIG_DOMAIN], + conf[CONF_COMPONENT_CONFIG_GLOB]) try: influx = InfluxDBClient(**kwargs) @@ -128,15 +149,18 @@ def setup(hass, config): _state = state.state _state_key = "state" - if override_measurement: - measurement = override_measurement - else: - measurement = state.attributes.get('unit_of_measurement') - if measurement in (None, ''): - if default_measurement: - measurement = default_measurement - else: - measurement = state.entity_id + measurement = component_config.get(state.entity_id).get( + CONF_OVERRIDE_MEASUREMENT) + if measurement in (None, ''): + if override_measurement: + measurement = override_measurement + else: + measurement = state.attributes.get('unit_of_measurement') + if measurement in (None, ''): + if default_measurement: + measurement = default_measurement + else: + measurement = state.entity_id json_body = [ { @@ -153,7 +177,9 @@ def setup(hass, config): ] for key, value in state.attributes.items(): - if key != 'unit_of_measurement': + if key in tags_attributes: + json_body[0]['tags'][key] = value + elif key != 'unit_of_measurement': # If the key is already in fields if key in json_body[0]['fields']: key = key + "_" diff --git a/tests/components/test_influxdb.py b/tests/components/test_influxdb.py index 896ee4699cc..f117b62fddb 100644 --- a/tests/components/test_influxdb.py +++ b/tests/components/test_influxdb.py @@ -129,7 +129,8 @@ class TestInfluxDB(unittest.TestCase): 'multi_periods': '0.120.240.2023873' } state = mock.MagicMock( - state=in_, domain='fake', object_id='entity', attributes=attrs) + state=in_, domain='fake', entity_id='fake.entity-id', + object_id='entity', attributes=attrs) event = mock.MagicMock(data={'new_state': state}, time_fired=12345) if isinstance(out, str): body = [{ @@ -198,11 +199,11 @@ class TestInfluxDB(unittest.TestCase): else: attrs = {} state = mock.MagicMock( - state=1, domain='fake', entity_id='entity-id', + state=1, domain='fake', entity_id='fake.entity-id', object_id='entity', attributes=attrs) event = mock.MagicMock(data={'new_state': state}, time_fired=12345) body = [{ - 'measurement': 'entity-id', + 'measurement': 'fake.entity-id', 'tags': { 'domain': 'fake', 'entity_id': 'entity', @@ -227,8 +228,8 @@ class TestInfluxDB(unittest.TestCase): self._setup() state = mock.MagicMock( - state=1, domain='fake', entity_id='entity-id', object_id='entity', - attributes={}) + state=1, domain='fake', entity_id='fake.entity-id', + object_id='entity', attributes={}) event = mock.MagicMock(data={'new_state': state}, time_fired=12345) mock_client.return_value.write_points.side_effect = \ influx_client.exceptions.InfluxDBClientError('foo') @@ -240,11 +241,11 @@ class TestInfluxDB(unittest.TestCase): for state_state in (1, 'unknown', '', 'unavailable'): state = mock.MagicMock( - state=state_state, domain='fake', entity_id='entity-id', + state=state_state, domain='fake', entity_id='fake.entity-id', object_id='entity', attributes={}) event = mock.MagicMock(data={'new_state': state}, time_fired=12345) body = [{ - 'measurement': 'entity-id', + 'measurement': 'fake.entity-id', 'tags': { 'domain': 'fake', 'entity_id': 'entity', @@ -424,7 +425,7 @@ class TestInfluxDB(unittest.TestCase): mock_client.return_value.write_points.reset_mock() def test_event_listener_invalid_type(self, mock_client): - """Test the event listener when an attirbute has an invalid type.""" + """Test the event listener when an attribute has an invalid type.""" self._setup() valid = { @@ -442,7 +443,8 @@ class TestInfluxDB(unittest.TestCase): 'invalid_attribute': ['value1', 'value2'] } state = mock.MagicMock( - state=in_, domain='fake', object_id='entity', attributes=attrs) + state=in_, domain='fake', entity_id='fake.entity-id', + object_id='entity', attributes=attrs) event = mock.MagicMock(data={'new_state': state}, time_fired=12345) if isinstance(out, str): body = [{ @@ -529,3 +531,108 @@ class TestInfluxDB(unittest.TestCase): else: self.assertFalse(mock_client.return_value.write_points.called) mock_client.return_value.write_points.reset_mock() + + def test_event_listener_tags_attributes(self, mock_client): + """Test the event listener when some attributes should be tags.""" + config = { + 'influxdb': { + 'host': 'host', + 'username': 'user', + 'password': 'pass', + 'tags_attributes': ['friendly_fake'] + } + } + assert setup_component(self.hass, influxdb.DOMAIN, config) + self.handler_method = self.hass.bus.listen.call_args_list[0][0][1] + + attrs = { + 'friendly_fake': 'tag_str', + 'field_fake': 'field_str', + } + state = mock.MagicMock( + state=1, domain='fake', + entity_id='fake.something', + object_id='something', attributes=attrs) + event = mock.MagicMock(data={'new_state': state}, time_fired=12345) + body = [{ + 'measurement': 'fake.something', + 'tags': { + 'domain': 'fake', + 'entity_id': 'something', + 'friendly_fake': 'tag_str' + }, + 'time': 12345, + 'fields': { + 'value': 1, + 'field_fake_str': 'field_str' + }, + }] + self.handler_method(event) + self.assertEqual( + mock_client.return_value.write_points.call_count, 1 + ) + self.assertEqual( + mock_client.return_value.write_points.call_args, + mock.call(body) + ) + mock_client.return_value.write_points.reset_mock() + + def test_event_listener_component_override_measurement(self, mock_client): + """Test the event listener with overrided measurements.""" + config = { + 'influxdb': { + 'host': 'host', + 'username': 'user', + 'password': 'pass', + 'component_config': { + 'sensor.fake_humidity': { + 'override_measurement': 'humidity' + } + }, + 'component_config_glob': { + 'binary_sensor.*motion': { + 'override_measurement': 'motion' + } + }, + 'component_config_domain': { + 'climate': { + 'override_measurement': 'hvac' + } + } + } + } + assert setup_component(self.hass, influxdb.DOMAIN, config) + self.handler_method = self.hass.bus.listen.call_args_list[0][0][1] + + test_components = [ + {'domain': 'sensor', 'id': 'fake_humidity', 'res': 'humidity'}, + {'domain': 'binary_sensor', 'id': 'fake_motion', 'res': 'motion'}, + {'domain': 'climate', 'id': 'fake_thermostat', 'res': 'hvac'}, + {'domain': 'other', 'id': 'just_fake', 'res': 'other.just_fake'}, + ] + for comp in test_components: + state = mock.MagicMock( + state=1, domain=comp['domain'], + entity_id=comp['domain'] + '.' + comp['id'], + object_id=comp['id'], attributes={}) + event = mock.MagicMock(data={'new_state': state}, time_fired=12345) + body = [{ + 'measurement': comp['res'], + 'tags': { + 'domain': comp['domain'], + 'entity_id': comp['id'] + }, + 'time': 12345, + 'fields': { + 'value': 1, + }, + }] + self.handler_method(event) + self.assertEqual( + mock_client.return_value.write_points.call_count, 1 + ) + self.assertEqual( + mock_client.return_value.write_points.call_args, + mock.call(body) + ) + mock_client.return_value.write_points.reset_mock() From c895f1f1db26697fcd096f57cf3ce39662b739a7 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 3 Aug 2017 17:39:11 +0300 Subject: [PATCH 060/128] When Sonos gets a tts source - dont't show an image (#8777) --- homeassistant/components/media_player/sonos.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/homeassistant/components/media_player/sonos.py b/homeassistant/components/media_player/sonos.py index e51f3d70f2c..63d27299aa7 100644 --- a/homeassistant/components/media_player/sonos.py +++ b/homeassistant/components/media_player/sonos.py @@ -695,6 +695,9 @@ class SonosDevice(MediaPlayerDevice): if url in ('', 'NOT_IMPLEMENTED', None): if fallback_uri in ('', 'NOT_IMPLEMENTED', None): return None + if fallback_uri.find('tts_proxy') > 0: + # If the content is a tts don't try to fetch an image from it. + return None return 'http://{host}:{port}/getaa?s=1&u={uri}'.format( host=self._player.ip_address, port=1400, From d4dfb4d80c64692bd7de531c9ef1c1232e3948ed Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 3 Aug 2017 23:46:57 -0700 Subject: [PATCH 061/128] Polymer 2 (#8815) * Update build for Polymer 2 * Update webcomponents polyfills/helpers * Load ES5 class adapter when not in dev mode * Update frontend --- homeassistant/components/frontend/__init__.py | 3 +- .../components/frontend/templates/index.html | 5 +- homeassistant/components/frontend/version.py | 10 +- .../www_static/custom-elements-es5-adapter.js | 16 + .../custom-elements-es5-adapter.js.gz | Bin 0 -> 703 bytes .../frontend/www_static/frontend.html | 22 +- .../frontend/www_static/frontend.html.gz | Bin 158355 -> 148753 bytes .../www_static/home-assistant-polymer | 2 +- .../www_static/images/leaflet/leaflet.css | 631 ++++++++++++++++++ .../panels/ha-panel-automation.html | 4 +- .../panels/ha-panel-automation.html.gz | Bin 9236 -> 9241 bytes .../www_static/panels/ha-panel-config.html | 2 +- .../www_static/panels/ha-panel-config.html.gz | Bin 12487 -> 12564 bytes .../panels/ha-panel-dev-service.html | 4 +- .../panels/ha-panel-dev-service.html.gz | Bin 14406 -> 14367 bytes .../www_static/panels/ha-panel-map.html | 48 +- .../www_static/panels/ha-panel-map.html.gz | Bin 43383 -> 40675 bytes .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 5219 -> 5191 bytes .../frontend/www_static/webcomponents-lite.js | 191 ++++++ .../www_static/webcomponents-lite.js.gz | Bin 0 -> 25865 bytes .../www_static/webcomponents-lite.min.js | 12 - .../www_static/webcomponents-lite.min.js.gz | Bin 12334 -> 0 bytes homeassistant/components/group.py | 2 +- script/build_frontend | 6 +- 25 files changed, 873 insertions(+), 87 deletions(-) create mode 100644 homeassistant/components/frontend/www_static/custom-elements-es5-adapter.js create mode 100644 homeassistant/components/frontend/www_static/custom-elements-es5-adapter.js.gz create mode 100644 homeassistant/components/frontend/www_static/images/leaflet/leaflet.css create mode 100644 homeassistant/components/frontend/www_static/webcomponents-lite.js create mode 100644 homeassistant/components/frontend/www_static/webcomponents-lite.js.gz delete mode 100644 homeassistant/components/frontend/www_static/webcomponents-lite.min.js delete mode 100644 homeassistant/components/frontend/www_static/webcomponents-lite.min.js.gz diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py index 7dbe56f1fa4..29f6ef577e5 100644 --- a/homeassistant/components/frontend/__init__.py +++ b/homeassistant/components/frontend/__init__.py @@ -361,7 +361,8 @@ class IndexView(HomeAssistantView): core_url=core_url, ui_url=ui_url, compatibility_url=compatibility_url, no_auth=no_auth, icons_url=icons_url, icons=FINGERPRINTS['mdi.html'], - panel_url=panel_url, panels=hass.data[DATA_PANELS]) + panel_url=panel_url, panels=hass.data[DATA_PANELS], + dev_mode=request.app[KEY_DEVELOPMENT]) return web.Response(text=resp, content_type='text/html') diff --git a/homeassistant/components/frontend/templates/index.html b/homeassistant/components/frontend/templates/index.html index f385d89c9aa..6420bb79739 100644 --- a/homeassistant/components/frontend/templates/index.html +++ b/homeassistant/components/frontend/templates/index.html @@ -89,6 +89,9 @@ } + {% if not dev_mode %} + + {% endif %} {% if panel_url -%} @@ -103,7 +106,7 @@ var e = document.createElement('script'); e.async = true; e.onerror = initError; - e.src = '/static/webcomponents-lite.min.js'; + e.src = '/static/webcomponents-lite.js'; document.head.appendChild(e); } diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index f1a06e67034..52bb5d9c1b5 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -3,15 +3,15 @@ FINGERPRINTS = { "compatibility.js": "1686167ff210e001f063f5c606b2e74b", "core.js": "2a7d01e45187c7d4635da05065b5e54e", - "frontend.html": "e4dcb1409ba0a62be183a7f0a057b7c0", + "frontend.html": "da3a65fd69361319864767a3ce0b4b9d", "mdi.html": "e91f61a039ed0a9936e7ee5360da3870", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-automation.html": "88e18b827b67027641f92e5dd099ca8c", - "panels/ha-panel-config.html": "1ff806daf588a2836260d9f600bc7caf", + "panels/ha-panel-automation.html": "6c3a3345b63f3a36d32f43cff3e10c53", + "panels/ha-panel-config.html": "59ca4cda820260616e9de5324edf6d05", "panels/ha-panel-dev-event.html": "d409e7ab537d9fe629126d122345279c", "panels/ha-panel-dev-info.html": "b0e55eb657fd75f21aba2426ac0cedc0", "panels/ha-panel-dev-mqtt.html": "94b222b013a98583842de3e72d5888c6", - "panels/ha-panel-dev-service.html": "a260b4ef948bbac503451f139c7f9e98", + "panels/ha-panel-dev-service.html": "61b164e0c0964782a539cba7008bb716", "panels/ha-panel-dev-state.html": "7948d3dba058f31517d880df8ed0e857", "panels/ha-panel-dev-template.html": "f47b6910d8e4880e22cc508ca452f9b6", "panels/ha-panel-hassio.html": "b46e7619f3c355f872d5370741d89f6a", @@ -19,7 +19,7 @@ FINGERPRINTS = { "panels/ha-panel-iframe.html": "56930204d6e067a3d600cf030f4b34c8", "panels/ha-panel-kiosk.html": "b40aa5cb52dd7675bea744afcf9eebf8", "panels/ha-panel-logbook.html": "771afdcf48dc7e308b0282417d2e02d8", - "panels/ha-panel-map.html": "bbf9f28f3a9058e360867b79b1309eaa", + "panels/ha-panel-map.html": "c2544fff3eedb487d44105cf94b335ec", "panels/ha-panel-shopping-list.html": "d8cfd0ecdb3aa6214c0f6908c34c7141", "panels/ha-panel-zwave.html": "48a71bd864f1f047ff74322be6430f00" } diff --git a/homeassistant/components/frontend/www_static/custom-elements-es5-adapter.js b/homeassistant/components/frontend/www_static/custom-elements-es5-adapter.js new file mode 100644 index 00000000000..4bcb525b475 --- /dev/null +++ b/homeassistant/components/frontend/www_static/custom-elements-es5-adapter.js @@ -0,0 +1,16 @@ +(function () { +'use strict'; + +(()=>{'use strict';if(!window.customElements)return;const a=window.HTMLElement,b=window.customElements.define,c=window.customElements.get,d=new Map,e=new Map;let f=!1,g=!1;window.HTMLElement=function(){if(!f){const a=d.get(this.constructor),b=c.call(window.customElements,a);g=!0;const e=new b;return e}f=!1;},window.HTMLElement.prototype=a.prototype;Object.defineProperty(window,'customElements',{value:window.customElements,configurable:!0,writable:!0}),Object.defineProperty(window.customElements,'define',{value:(c,h)=>{const i=h.prototype,j=class extends a{constructor(){super(),Object.setPrototypeOf(this,i),g||(f=!0,h.call(this)),g=!1;}},k=j.prototype;j.observedAttributes=h.observedAttributes,k.connectedCallback=i.connectedCallback,k.disconnectedCallback=i.disconnectedCallback,k.attributeChangedCallback=i.attributeChangedCallback,k.adoptedCallback=i.adoptedCallback,d.set(h,c),e.set(c,h),b.call(window.customElements,c,j);},configurable:!0,writable:!0}),Object.defineProperty(window.customElements,'get',{value:(a)=>e.get(a),configurable:!0,writable:!0});})(); + +/** +@license +Copyright (c) 2017 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ + +}()); diff --git a/homeassistant/components/frontend/www_static/custom-elements-es5-adapter.js.gz b/homeassistant/components/frontend/www_static/custom-elements-es5-adapter.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..42759b325adb4bd156681e24d05261608cc01083 GIT binary patch literal 703 zcmV;w0zmyAiwFP!000021FclsPUA2Tea}}6PmPh4mVH@?D61{qYC!^8LHPj3nItZ$ z9oY^g>h|B)xfCcZh?Vvwvc}_c&YYQypH`Avp(OYOHr}8z2*zr`?I83#-zU+J&0bKX z{>fU%M6Cl}8LL*)0#_)lAsTI^WyqB@7Fg6LT`q2}`xF{SM_&dBra~g+A6#c>X%b0X z!woAb?oMHW7SibCjArf=9`Z%I+I+HUWT#}a6PGlgzRiUR+K{feRhl@3Jm9P-{G&=J zBcbCO^)+@%;;<_maNCFpxAag+P-p7goOXRjMf38)D+SWZa9qe-t=;nzP z6`mhg<`ktOt2B!XJUG{#pQCM!aCg06trk zi2=5G%H~R&0LDcDZN34GT{{DB;f4XY zN)T481|^FcVg$F55~yV2V620@xc}uAR9ztS+>k1F3(P`pZFxQ%mK|x337c1OAk^^s zYBIgOp9c2XdW|fuR;Al0ZqvE7qEcX;td=(Z3gGx*aXGuY{}9j_*iFYjp-yJEi@U3f zhs6$h(s-8XOOh3E lHQ)K4X(sI#)Xm3>>FuHub~^ODtxwz-`~_huOJ-FD008P9Q``Um literal 0 HcmV?d00001 diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 2eb05d6e132..36805081438 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -1,4 +1,4 @@ - \ No newline at end of file + :host-context([dir="rtl"]) iron-icon{left:0;right:auto;}:host([no-label-float]) iron-icon{margin-top:0px;}.error{display:inline-block;visibility:hidden;color:var(--paper-dropdown-error-color, var(--error-color));@apply --paper-font-caption;position:absolute;left:0;right:0;bottom:-12px;}:host([invalid]) .error{visibility:visible;} \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 1507b30d12d04126e590bca124674db6fd25deb1..de0fba914bf2564578ec80c856eba49b11cd854e 100644 GIT binary patch delta 126400 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 delta 121536 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 \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-automation.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-automation.html.gz deleted file mode 100644 index 6be71ce9b340285dc95e040ecc8593cc3f67ffeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9241 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

TUpH~n zCH}J(kZ^#|Ee~8ujLj;J0;GahJnI#<2_3;vJ>LLp>8xppk_fQW?Q*p5&7us zUR7S7Rv0^nJmeu-e?Kvcq+@qId9r_Kj-k=HjvvNw;_x-7>zUk*YS`&F#+v5k~bj7_d z2ITkH*0He;)mq6w!yp)oCu`L6o*mebrlV_bD(F>yN7P2X|LhfgM})jN2&0y~Hq~+1 zq0$KPKBd#Hptd#I<-3(>iynmj$ydpLl9{eaZ>X63#Lu;&)qs9_V6fz6nOxKTx2~Rl z@&fp(HvAvG1HScJFY;#-4st6*;ymj&e#D`bTD|Q0u>g~ybOk3{d&2qOTETAt+r>Tk zFU4H)fnu%|o^=v*DIsM#_3b|zS z#|}&P^1Cn{Q8|DpH>Q^uHR=C-P0Ld9-`EfA@4I=YC-f6#p|9%br<>r)O9D+nr~=uB z^GL|g|M2^VAz$GC2*Mv4;A1~4LcyW3C^Gu);`)<*WyW1=@A&Ny9gjD{arMJA2g5ev z<&R9EF$1sQa7fFQOqIIClyWbL82xSH+eG&vY&|0+eMk@0xKh(K8#Qh-`hQv?aGaxxx;9&4?Wvjr@mU#{+^+JPLsr(eYi@IfSfWJfe zP^KL&3T{*_m~(;gNJPAD+vUD>d-@c;+U<@+=&a7!`@!RrVe-QKir6qw*I8EMWO5L# zyW4{X7Bw6;R{ah+-*9v4d)9H?$vya{e~qLJ4+C;;u0%C$5O)vV-zNfo5BSYjf|fdh zgg$^z=X5Vc;!LgA(?24SP#7=N!8@0PCKCu6d4>#~>DSll52V7@W!6a?h>jlO!5;Od v`-^1MKaKdyWON$QXTt12grX*bx}yL-t-wJ2QtYw(4cY$(dzfPFN_GGMIH@!b diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index 65b79bebba5..8613e4a7f6a 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1 +1,4 @@ -

\ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz index c0775a559c9ce95012b6f3f68aba3dc323b30a19..ba6beba798dfaa1e6a0ff152725451ab6fddb604 100644 GIT binary patch literal 17764 zcmV(sK<&RDiwFP!000021MPilcjLyf;P?F%5Kf{1J0K;E?Rye(AlfEHG>aw@D`!ys%LUEC1yU23^RncoP<(%;Eor=(u>cLtMjIbvRDS@^`U6 z7!32P$+TjJyl;n?&dMMye@;g%JUQ`=^1!i#JftD-#8T+H8ygbX3VzjfV{Nqz6g*vn0v?%kU zH_3rxSYdE`V+g&p#EHR>FFDzX4@+Pl4|zs&^dZ%o7R>uTzhd6=vP{b=$tr*ih4($P zj?JjwGpLkS(3CgHq1qYrq{_Xa0tlonJRFQXgYhZ7BpcNl>3VNr7BHaoZFLEAy&cwh zkzaW*WZs8Y-Yu&l?+k|RhW!DuZt~(I*2P{|U4i#APPQRXT+P$i%J-0} zCDLe;T(FWz)F_*tL%DM-bSfC@bq=H(1voJx0>LM_9wPq$%J@SfTj5lW14560&eZ1FBoS=v$&Z3wYK)35o4u8BoX`*`&Xm1H@sxm zm`uVH<&G+3L9m61@o7?cr@?`Dl|jb*StW*+%ae%4ROCJ{isV-04Q7B%0!D(5Ho}!? zYsd-T^Pd}uBTeF-e^@Z&3*=%p0>0O^%PvSA1$CGg%z!5+7?teaCRgJc+&4)En9A8= z6!y;3F>enUzhni>ldd0)iT!$8yGEP8-Xzy%qyOmqObM+G@d94PDx5xm{|N|So58i< z%%e=n-mJ^ppU-d7Yy<`a4$Oxt9e306P|kHRL!e%lV;E}Sg2N5y3U=NV9nhr>CU@5` zdI+`Te6z}4g0RVp+wNpqULIAD8)Vb*IHG_29ZvEc|4H5j4rR~};9H4y1Y)V|o~H#1 ze6W*fSUSVYB)edvwN-+W{STxO>K3uIkc2IImKP&solzpODp<=rM;70Mj4~gmBd@qP zOM>0V6aRJho`y}!T3c(XftrP=)Df6{9j;$GLcs!)bbwCzc#QZK>>@=e{Rjq>)sllJKv>x>0xE#Lc4hT?Mb^(x%+y5?2abW$~>vvA0E=^D!8P+*!QH z^NTU-TojCD9q^07J~>u590DXrFG|V*b_Eax5z>r6OX&f5AUEo{-~+Nx&PEG1ayQuk z!L0{A5ohP1Q>q>rB4+2t`Niz!66A3QY`P)qO$yezDU!*2-_?w2UhdlvoV%x^>e&Y1w-lX9`Vx5khj{BmN)9^^oG1V&= zvLCSJ6;RBhK5^YwBF>I_Xsg_SU9Y-SqU~N?CY5j$66i7wZ+DrYy(Kx|b$(IzpPSQa zxzR3R0i9Yw@k!*9JP_YtXUps#DMcCACgXZVl9r^Vl*un^@gec|!O9+f6l9V%vs6EZ zpkC60S_e3Ya*}4ycP{~6x+cvffs34)8mI*YRyXIOy*-8HtP+_h5^DO>6D4cB`!KXq z;Sn4)UItM18-oi%#2iiPmMcnPI8NNBSv}EyWM~UR#KM4})mzyZ$BYyK|@je?+n zIH)esR4Uj%r)hygCV_7#R)CxQJ%|HLQe|NtO*8riU6;ZK!4|}{C;DK>aU*C2 zV!TibQb&}zgj{RRq=xogHis}I2+jjnIkhRo{o?=ozyA-95!C`r%b6XNRgv-e+d@cD zNtV0AB%m3LU?0A%NsQ_y}GaV`iU9AU<7W#pjbW@ZY~XI`$)>!*|HrBF!(gMu`4g z7AS10aF$xQ>_tH;{0p*bh4%O3IIgooDcfAQv3=kVpBGHsVw)a4Xh z*drPs_Yy;6IYIn*69$gT>zB`eeCxe= z_v6dD8?j{AB)*sV%`46!dK$Em zCXZEKXjKfjgI=9ZP}GWIbroZ4hVNb)ia{c`L(P;fwLl;YEaD2}RuQ23VW=j`*bEm| zVU)(Z{q$KW0)_qb$&)ZW4}2jU(BMKHGAIY>$qC6=7R~_DZvU)c$;SoT-lis#@-`a= z^lA1k`i6ZKF1lx+gefybL!hb>&~Bqf&&`T)BgFs`H8O)x#Zr~X=$Uj8)_~plZkZRA zCLfE+aK;sNqyJ2FKFXSTrO4|8;nMBxEbOy!$!7Q~OLzEI(t2~ zUmooBb{DlyI9GnENC$-pEo=G5lx42|SHK%*WmN>b(H?M5{sE?BahQ}W2%o6Dy&4{M zMkN%GPNhK@urgrQ4Oy^rx)b@HANEC)<&q{#SCb%Z)@o5SU=GJt9GBbMewJ6KA{7J< zCR)&iEOXMdR@WMPF}-ckYI3nCV2ZmH)7v)uYV&&s1W-onnmYm`IpZ7rzp16hmj_nZ zY4?gOR~QGzR@R9r=XuGzKM1?)4`{edA>rl{&_F|k;E-W-mJC0#Y~&58N{J@QBprT~ zZFwN;JS2`cV(8yF_d>Lr2fWk>1V6Y887-7~_GdHsO^_FhwX7mOY|{LpU)H{geNhBWhqnC-7N+XA)#=aV z4+|!|o2KQJt<4Q$ijQ!ejf+7l!vi?r@>&!ZHQ!FJ&R79D8MN8x);(LTdP3icWj0Vr z?9;pRprvrQzk9$nvY8rh0-@KEF`owx$h#m%^D}P0m%V|{bD=|re8paD*|D4OPa=z8 z?q$q@|1F<<9a$R$mzc8t2|Ay{qzaZUMv}S>!`|RT4u;08XRG0Ie|LMkd}dOLTPO$2 z?lMSsqY&s~F+hCB0!TMLOCq~a*xQY{u0Zv`oI_lP;IF;i;epmq|3BX3AcPlCKspq9 z*A}7I8ME_BubZ5rVvr7ol6|_md!qw};2&XsgBkDJe20TsdmZo0-aDY9)ux`~L+MMo z-X@Cgjx4Xg?gE>_T*f`_g}bzx?vA~L;BrDAYCP z12l60b!l0E##FKh&%P+wE$x8{mob+*aR?}ZJjC|^a}F+oSX$%2Arp22nxZ+zqGbd4AIWu z_9<8%@R!>e#$f^qeHgG;fZm_YhMTzV{N0xe!#pafQsYWuC?3L-a7T3V!oOX zxY7-%t=I=^Qi4zL#`exyJb3?SM0GkIWq+uE9Wz`azon+o_OM6`jJ3`#(?&?wfFa|$ z#s(KFxV!8Co#J*~S+Tse`204xVu3DXuQJ!p**T8cxoSS*VY^iUXeGGhl>43S{p;o@ z<7o+e%O^N)b}&x4Y2uAW&rRZMckMwU0Zj$*Nau_VrZOYsEwOa7eBBeS);v5`6B0ZA z6TU305gAnSbQx-$lWrn)ciBxxtB#pP*2uUV^>wk!*p0ukHDj*0R#EE_4Y{_6&C~p< zGz|A5u3B#N?-YR$e{n_h6o)bg0Vk{aam2bz+>Ou4xWqp^SP*~bHfNYo`L)~lKQfIA9q>=X$-aUNf3tH z+Z;WhQ;JC;M>93hQ@Evs6YewEqVn6@TYLC-J_mq^V;BXA!4z9^lrm_BrU(>1NI}l` z{EXJX^gv=dH_n4J?D-{qY6#F4fZo~*!zkI_E)McRE->uuoji%tUJir);UJF(=}9ja z=!P&ZNuMv_<2HPzw+Cb(6>!$XSyU=2#X0=YA|mD(R|lLzy$W){Pi`b*Vx*|}OZOUq zZ*Pl_pbVo@Gfo8#Ko-vA{uta52jpRc>LkwKABiE;HFBH;TdaFJN{i|i=paAitzDq& zUL60*`^%8ZzjR0J3>^0%`;mdnLn_Ya;13+9R}9og7!;ufT?CwknPk>1{*`#{*LZN! z2jXxh>4&=YPtc48kYaDNLnDVxjcPWZH%2-;P_$xQ@H5itn0=~x&AMuk4zTwso_VMz z`u28$2&jT#ubR(W$^w7rg1QF@9}ne_WqEOxjMHD)=&fWCsEANy-ENh?#t19lPC{U< z6b*YEh#e$ZTm`d5#0=&N`zq8P1-)z0^zvrF92qllM>l8FjrqCDg|h|r)o z!3hU{;vD`_+hQ_}Tgm%PJQ!yOV04q%>2gc{<(Li!ygdrYPzO8x=H{k*^Hn!5E_R;o z?(XiC*B5>S1b0`2j`!8>9|uXn3D&4gkW8%0W07xZ?wG&21-r_x*&$NMV!kP7z9^51 z5H~*gWKbh~+(Lsw63j441Lf<(B&B37z&tDujtEZz5nBaZfaTlUIN@|54q%IzprCDP z+*PKE*ldoA(`74=?|I`@%xcTaFP z6@BiVa1I^E84LgnXQp?2;e`g^%l&Q#*T`Wu)u*A@<%J66DNy);Bm-DkT{p? z5g212W*BiDp9`IuBeonT9dDAG{J2I#a1E;b*C+7JKK`%Xfg}rWV?L*G%n!_{}OxT((L%;|Qm^)%rVTp>O`Nv6-f?kZSpu1q70S(f@wWA)@ zK{G4*0s0zpR_-(OR?CWd1%87y-ew+%r8|&jflM#~PeTKWrZG|r{Rt!*$ku2WYdcA> zq{8k|I^ zhk$syK(5_r6ej|)=n{UOgL#*Ugx+p+Ep7c<`Ee#c4yD`zu0v9dlvQyW@Aglhjrylg zo^T{?;$(1o5`BzsV4$K;@%i@l$AcSV&RIV|-Glkn`-q+rok!?%%6vKqrca(k<>1pv zd;>K72qUis>P8RL!B#P!-{>*u0==$+uvZW#j|Z1eo*;mQ!24X`{TA?k`|P~`7V$nL zsYhb&T^yW&eew1rM3kfm+KS(WQ-f8?!8;uML;8sDA4#ccr=#tbtwUgiXP3Ouc-X&w zcGKPA*_;Arq?x3@1l9r}Sh_T-5;^#FKW1cy)+ z1q1Z^5Je!M_jW%Xfpjw`=V92x+ypvE_|xZ;y_17UfN7{t)2w7g^({j&0#GrT^D9UP zq~lc4@Cfxo85&eM0;pF3{*AyRC!4ZAd=_8!bs=aJhNaUv39;xQmeVYKW%?ebpzc=( z?}7>#L8vF-Es!SgFG!Jd{UuCwGL$ko#~BF@^d+KO_{V4tf0950zoQGrf)Hq|FP$@x zR|UIHVSWl3&=(>q0?l9;3TM)w;7*zm*U7ont&qtExgaO*<;QPyR`LkH=^r`dKZLq| z7Wz`sp|nS9CN=G7NZ{>2D+mIp>{IwvmZsyI`~X3Iz@SJEn+ltaV|8d+_v}!6s#YYe zi&tg#gTI6E1XC0LfV2ri8E?=4PHocs9SkR|dZHp@ILDZd!I6@XKVVETRB;d#JWNBe zwdjaWECdC?1)dPON0b{{@jez60tQHdNIS-9oU1cN7{@|y4LqS*tPrg~(g5Fry%|#h z`76pv2!UmtM!@NOB1)r3_x{EXgK#U-XoMDhb@7ivq?6r7p%vOz!d(mT11$#pd5WuL zXyBj2OcHTD`pI)C9)&W@%*A*V7(i#xf%!Z=Fzm>m)A6`zU8>XoC4-gxBO9{xno;zj zQOC@LQ7OU*%|f!wXgv!xY``biA^%NXG=A%n+y>@}1^&QN1X9t0Y#Th6-599^LQ--zGvH8J($TRb{0oEdt`!WT52^a63% zf;pWZeAk_3U=HqdElS{+NGdg$MAK*(Mk3B2i&{TXs)?u*3?82bhoEtB z?XL`l16WU2t4NM4iga+L&BFd)!Rw|dfMGys$5xTFh^Y&P{7T~jMQ212u62U>AX33` zg87q$eW9DJN`K8}pV zjdy6){n9-nEB`}wC4)~^0uGim{jir(h4+_nETqGuys5 zrFS&JD9ja5v_r;!a!ted53X$V=X`EP3Xf}c-Z`G) zjX*PiKFMq!=Y_VY|BSjrH-*mY#Rc9j34SbXY3h;{e~=AS0@=>7o!^u8U9Ff2TApkR zj5ON%0JPA!y*KV;7nc(GDIM;>$?P48Bz|)M_Td){FFeOU!w3B5b-WwBjQ659@lz0o zUq#=>{^=>`-DFr{DC5+RevWtWwS+nQ6dd%*`Nce&Pv*Z1=f&i5p5K)7t86&Ws+)P5 zvBB{2Wd3WO&;KhgMmuSQOOMg_>uoI%`w)WK-h$Azxj-$dFl$jof&gdcbL~1 zHuj71Wu~ow?{>qhRVX4FR+o5W4t=6ysQD7F&k0}zvnF97^s zVq?35vBSY$nvQq-)iW76>Q^%Klk&EBP`x=ny&MB;G=eNQVn(4zgAe8%1qSX(&O#hX=Xz zqeW9=7V|}!gEkzpXvXIs%yret9`wlUA^w&r<=Qog&%WG}c$jkX6oX;qv?b$1p;9JeZ^4Ew5&Xq(yI?=AiJP8o}bt37&zdGf4L%J7-{{3?=>O8UYwP-1>RO7;rO6nt?DRTbiR2AJtHh9B z8X?zews6ZuE*AyXpsFe0^gti5Ubcw7Ls|S+koG^I$3!bTe+O02uYx0!*gy&LzIt|N zxp}8`XV>#>Ijs-Wn{t;W^z}P1g&R%f+e(G=%sD z$EQGZWoX3uli!t-p|}-I{SHLVQ5gLN{tRXq`uAm7U+fz-yDn`|)8>gP=|!t>D=y|% z97(Y6OIn@Fp%;2-7k=$6L|?D=_g2anL^Yjg$H) zMWQU=_X6PV)eAh=fTl9|QHd|rU>?z)kseIZJfr29jyyiY?~Ra@#IBscWJcx7SUjVJ z^Ii+L*O{H&nb|d~GtH(iICs)gJK^ynsS<&9+)UD?+j+TO$HfzCndUA2LBt7m3Nk6_ z0WnuIhF(&UAdp2k6q3}1`iVf5L#|- z@CR?xjS~FGi_Hdzpn0!GYJ4R4HHN1R=$`=_3GbY~IjD4VP{+9hROJ#((GDg7gAO3! z^#y!e{hz^-^ZckLLK7)MO+K+MuJ{WX3kD&- zA|iur(}4d9Ttdd{IiRp!YL*Ym=pAyGUS= zwO1|1U|m_yWO?w9v__VlX<&yp8Gvh9T%m8wALmm~b?|uJfgi5fG>>quZv^mKxgjWu zSPLN#3XBbM)&CQWJ~MSSn9d0G5f(8(<2XHV%MI&Bw+>x5VQ2u3g)k!gEbk;)Dh_J- zbW&Tv5jVv_T|AN6Yu;+7?o|U}0n{gxl_v=!)L}TAl#2h~BVpfpPRK zNTV4)tz1Qdf~F2Fpj6Kyga07|4;}Bv0B>FK2`DX1%*aw|HD#7-Wu{3nq_?3YnW?cE zh4p&;DKjfSKL_^(@;cu@hPs2$Og36Ijy6N9 zbby~uK#uaNR2Rd*sM(__sOp=7edW-bt)YT{7JzLggi5Z23Nws?+K7RU*+3S^TjudHb}DPk6*W1HIiSZHW&xg0mJ>3x z?CAoW_uA6Xm$92!E!adnFIKQ@hrXG(4(~4uPuiXVBD%GXt+!#o@D3sZ!Dn}T^rQ4+E68l|>rUue@l`L}6r znfC9429t+;Z}7jaO)utS&7^-HCgtw$RJZ%+kv(^0mFt`?LP07JI`YR+sc_W~8t3S~qTerkp|3EMGC>Hg82T^MLqDhC-R^N*R1PrFoRth&2~oU4holJ)9!}|C3bge$na|E zuO^Eu>Lmq#@x-H7GD~{yM7*DkRLalsc{bzDyJ9+KUGEh=Dm}@e5Z*`!L@g(52&RyC zH62&!1k+>-{BacKl|T$p{T)6Im&hWb>8O4uA3e4!UkD@+imRY-ikRI-bmJiHb;JUk z(YoAP(<6v$HhAe^Z-Yw*1#&xn#3eva-Z}`>d(9Hy<14&qKRLr&CS_;4J|D%L>FHee z8|&d6xzc%$fmfd7Izz7u)8NDK%0(}FE!jQfg3R>N`V_aK!I0y&EnL#a(&9n_ddn++4Cuk_LpiXS6)d^N;wf&8=6aSLqm~Os-i5v>@R|1xD#PZIP?G-gCt=#2W+z zSeMW!jfQbYBy!ws3DzT^kzxll_jq|WzNOkFR=><|%;G$q3~P@bkJqgt0mQ|z{AS6- zD{se~%p(j}|rZdG%8^>L5|C2gukGkFn->QjE^ z<2~*CukCa_4h$zms(uPN|Mh;?8jHte<*PQmr+78J`L^m=J|0=G z23+L%#h7(qTS=Jb zT1JiuK-8B$h5gK|jZpI*dGSOoMj-Sp&dFJskEgh47r^g|+n9Ha`S3RzV0@(Od^vSnAC!%VNUgQG=5DX8 zyJ45n7xU{9>T>>w4tv1tc*|=2G3ps*bVYK-tQP6GIxHMijsKS{z*i#1^80f|oM~|}x zKX*zA_W8pbHtmi<2@LaYztZVAl=?h?c18^Re39AK6gBB3g(l3+tjcV zM2i2U2E_54@jym*I3RA+!ncULo#58omoOf>QmW#tgY=}2XME}E>uy@oUw$(y=EVbc zg3&^gYI~7`#0?tS4;uIMjjloM&g%wGMM&Og7ssGEH!K!VL*T@0Mv;u350%Y(%+)T2 zfwB36HrM)#6B#@mm~rNlMOz<3Ip-YDZ0MiUb zIKK0WjhEoUiN(FLzRCxJ;2IbC=JVQx*-;&t_8A+u*x-Bwe%D3a70nDeY4p5i=v$Lo zN-fIa-;1ar2W(|kUoa36e1lyMeE-P{JR<}?aUk9Y)wtPHs_&SVV5Y5_mnO5-XQerI znlCkaz_`orWOrN@zv4o6Yr;kLbLR!c474Pyy7&Y^_llKea)Ec-+K-Q~xY@l@!h7lE z?(01RYP{pHw#T&ZdL}?R9xj_>rZ+VIzGl-FAd;9z|Dq{HA81Me8es2(HO1-QGx5Zo zBlJQMmBuX<_|y@Kj%!BgSOrJ=`Dm19^lb5tYHQtQ@eY0yrolZ8h|3=IK*Nd8RQUpD zgLL9WL@ds~5EHCN-VnXtB&;ubeM85m9dC2EUv=4WHM{Ohm{t$Gf`PEUnvfge8teLF zmIl5yx^38clF}U*0?aW<@9GV2*S3uB^!la2W36vs3hP)}cgif53B(cZ2Qwqhud)D7 zd4nerp&?byv|Cl8#ndXfPI2UvE0&{K6tKJ(+v=$Hk4vr5QMLgipmw>>g;lU~P^p*H@Q?gkMuKEK&3eH~yfd`{r^x|X75EVyYk5f#?CiUszk7KM);;G6D2mwCP58V9I=7AFWgJLw!Fs4}^5Wxfk`KEk zk92R6f)*mt5&;S+xgg^4%a<9d`~p*mPw9bKcSv3bxOe-@BIRzeRO=lFfN$Tny!*Ri zrv0PyGdj?3`3QM$k__CSEAgIPBN{EHRlTEn3Skm>?`Hg!N)6Luh~w89q;^kO_b@c< zS}u?UPx(>}(EDtsc!}F-$%fMcn#WyOc;TRTL<#(jxMl;?u!Ht@ZdgC&D%=o5K`1-g z(cptoKzIGo`~2lP%U`w-{r!=CJZ_iG2JhbMrCQ4q66yYvVTjj{jqy6at0Wuw`-k+~ zJLJC~jYhR*ABjx&Cl5%(@u^f)``^PaDHNBI<~~i*_9@-w5&m4O(ff>t-RKvat0ibc zv+McfGxXeO^2>ERKd(-~cw?YpkKo(;5x*a=)4I7Y)@6KwN{{t1{Cf1Uwwk=J%(=6< zZ(F~sjQ$#CZ40!ENElho7tU<}@s=xf9djM@StreKJ*XLuerUVBt6GzJxWz$ii@B>& zZ#r!QZmpIl10F&?nc<4hMUhXlQIF0?T@=Z!VJ15_JGg9TvLs&_bXwc@6eywdsol^l zPqUBsp+ntB8*Jb?rC_id<1lWgv^8w(0<*?T)AD>5_7dOkQtwUk6+)}8Y78M6w*`T3 zPNmQ@r{B$u9<9$dHwvyf%j!&PO*hQ7qq2H40Osla24=TKg}3y)o|u81y|t_^$YcaF`OeT}@tp^@C-{{lPXY|5;Ba`pM6Mw?K z++s*VjL?!P#%{CvK141EReWo<7LdCNte^NmSk){7sLIw+QjZQu#QfqVUslAiQRT%! zLb27Yag5ND41^*{eiOJgB@$;LDTe5Pq4nUsdV&6kfa5ch6nBL@3JEWNHC|w^ep|g? zDP+O25RJbosZU3ugMro4u)ZhGsU_%4ig!NFld5Bq-J{bf^w@Sx*IM}=zxWenJiDPX zSmYJf$AwsWNZ~Rc(|wVOJm0ZO6?LJvV_@+BPC4%2I^|bLd&)zoUmD=wVxaj596yB*C~= z$bxCc)s_evSiVU<;rT!{=_PWW1P)@+%&!M9+Aa5G6wY!J=4+5=as%SM7Ia9_o*FW& z)xM_YP21WU+{oMh=QOYSAYJ(fjW#YA9_JpFSYl{v>i^cd!&m2w9*HGEycv6Cw;siR z5ZeC^{sXVMvHzfjX^RsPS(IBD@3Knkz*lYFT5&c7rLoiSon5OYZ~$y=F1mNaG~vFn zt2N;^r=vU8zU$b1S*zFp{+sg32&t7`S%VlYwl@=}c51^Sjqe&0h)tcUmD;G(yUAM! zWpjNayvccA`)1I-DJ9gkLDhUd0Anm;{)uX}#$)TXDmPR9tUPEZgJC&Tgx|Q z1_;aOxUXm3q91B6ur&NhKDrW2TQm1_C=HImOR0%)r>mf8`Z{59`>MvEFlc&*AeR7l ziZO7AUoghN5va!)Ow|)KbLue$S2c?qw4Tz0BNtlaxw^X0TT3!UF2T65cnQ~CvgJF9 z{~cWT;=u(z5aN2C70$s;@{w`Qxa-ou&ji7Hh13D|k?R8)S#ib+0dHyb+5m?~;jO?j z92A1(^!z;igy)V*hR1A6d!xj|EF1t2pK_F2{Q!=s=?EBoBy^8hk29VP|*ht`Mm_ZW*mYu;l^=@T4SFrIFy#PmK%YHT7KmH;Wf1Rhx>$y#F$+- z*EH?vF`L1J8%Y%On&o}Rbd%N37Bc)~Es8paSp`f!TTJOLgZb?(fI0$2P@yRM!zL@G zVl-Q43^=r$OeptSq@#OaJkVsAJG23UGeemux0;!$IOu9g!$&6{_^#f!B+~vpCBD>@ zSQdJe5}C039=Gs8W<9?6cue8h^UHI~&WGJojVhdX`qWU1Ey^5Jb)$pL2%o_uO2G@3 zRrNl1SkE-RH;(Pqc9WI&*okJ;wJz~7196S3-3BKM-BfJ=){Y0(>ecZu8KP-&g85!O4MPEJ$d)rr{aU8+Vk zL;$sWp>klrqoD>zu-8btGk9ZXi0zCzK%KZ<$Q813_hp@uJ%5^g%s}_+Flxj7 zbYOVT9Vob~BytO{rLk;rdb~0(UDDwtv`uPJa}U$dT=9}?m^1jggB87ABA%RxthG<4 zE_Q2ic)BY>^oJWRWW#{<;&(;-stlF^L}5+$cg6JHI8?+Z3wFaW@(s&qV_?fl{UkS% zK^tgd`78R2P&Wa3cYab9n0fQmU|F+#a}(#os$G4wMpaet)S(#Tj<^b{p<7hWQewn| zlV}xP-ONwVX&X7FapJB4KA^h-*u3rvY1Y;`XL+=Q%@!=%rhN)W_nZ|=$|#ed9pO`Q z!=ly!b`#)!Q*RBn@Q;frK5q2qWL$y>i(2tNXc-|6px2hm;mXE2Uvaf(# zE-06>LAdGN8dI==huGnNuluyF``mFE2TAL3+TJ~y25>M4_He5K9{{Vv_4kBMMe)sd zB+7=$&$tF4+ib+PWX2uB!XM-?u8jT4M$G6h-_n7lBqhO4c+D~u|J`i~^*&fs4d+=c zs3s?UYcNgIu^B?MdMP){J-7D$VN~sdXyd`IKdAL%2=0IJFg=l-;Lpk#{on~}bmegZ zgIYGI%|)t>H@ItsUf(6`B!Bi=)2maiwxuc&C)%9YeIWM0lE_ zs4e`!+!m2)Vl!K)h1g9WyB_$E73>qjrS^QOwBj6X)**x9^A%S?D4r3t*(h$S$R#6C z>TU8iD8mCMI>Ku9drNXl9piA!cGIdYmj)QNm@9%1jjTWd2s-r1F+ewp!A_3v?okiv zh9`WT#@V?@PXFErA1fAbUW&FKv0b!Dl~L_x!=*zd?j2lhbu01qIEHtH6IL7El`_05 z!|+yo8P{CV+5`%mnHyN!pgH*EnR2CPL)&`EGcz05$nI@Tcee2e|4bA#rre&3$r)(7V7u^0^ePLbGoYMCD-7NFLfIjG!V{?&P zK5a_}H)zCDwV9c0&%0ahFNuHFwA*FVU-&qeL0sZ8>>yZkMBOEpym4#nd(D>tf;bZB z`Ay&k3$G3SZT^A=y{rL$n|qRk-Z|d&vgP$U!I~Q|4ERSAdaS&TIwx7lGu4ePFjV6T z0jSdEfqGGT-^y;DU#jgVFfT7M@cJ`=u#qA$g(>RY9P{5bZ>BMy#NqsEPl>e#_UQRf zFYA}oETJ~&7QCVe)uTaM`^rgq4W2@fKi7U|6koi2{qnehWOFR;di7I7T`czi409Xv zw2951C3UUKa<<1;kp-K#>?)Ai8m2+-)>nXRnYGeK;Cd3%41S}z0Sd^0syPG&eIc-OH?{AGRFk1YpbG=fv##} ze#@}WgUBd0{oI07|H;+#RQ?AJdT%*xTm#? zI0^lax6=#9DvjB|!2&1xhV=+Mr|vln5#3P{xR^i}hJK`AeUfLB9XJ5TyS=RL^6{Md zx`HU5g$p(=ndgMn*I8<&#`d(dxZR?vypT$gPAs>Jxne$BFH3;M-shyNH!0bt&uL1& zyE#sn&yhwKq5iT=YJ!q1vB2x7BCWri5=7Jy>}sr)Tdiv#f#X@5w#Jt`5oG8HpP=!Y z3%BIyG{~J|<;p?m{c-Zi6HiNOnB4YlLPpEC^E9-}c9p$X^fcPW^Cku(2b<( zWk|~kwQ&$@4V^zh-^>RY+w^h^@p){HbNam(O}zS$I+hwVf%Iy_B^!Q3|A9WZo4{w> ztBWiz*a*YRb-Nocm)L*#iE!ahHrwyrDr-dmZ?oZTRBZ3a(Wb{8BjGo_=dWCPxGx5u z-mDp4RwwT0FL4;6p;xjUV|OumG%s>`sCWX!ykIx9y&dBl;owWt#jRJRK(1hKt+I4# zOVoH;t8vHO!Rr`}O%7cZI%cMYW+#eas6Qa-rmr1i=9~WN5>)C`4k4~gv29v5u9%Tn zqvex~_wCep+RuEMr2ed5+O_%vdNt)=^ZC|ZBy;N>f?^Y%bgGzjKBq@b+}eR_fti5a zGkPi-jvDaHLJfvpLX!9Ij#kq|gEp*+YVG5I^7z>b5!ZOEyXE03+@@~7V!O{D53sJ# z5GAbFxcJMVl&@sjp*%;$?+Lbm@+6ylciurR$7|JucfM_E zy#DHP2OB$~Uy4%d0V=bzuE$?z%AIPHQ|tOZYq%|V(%pZu{7oe+g%>X9#RJ(VSEKHy zp01Kf;JOk{zw@*R!G<5>LAWN+E$dY#9;eyf_C>@SAA2$j03^CCwcaaC{Pq?*zV1VT z;+Vykx|Dh2Q?&oRH;+8jGb|7NJj`$LJ@V5#JV-8-1Alp@Sp61xQ)0T`F09FWfYPkl zvLnd4x83!QQ7dd-z!h^{y4^^=!h^eo?)wA}&%xcJcYcLu!^`i=huhrruXx#=^O`$- zpnk=3pE!{E;62WGWF`~~9*G-Idi>tr)5#~?x&cxJt@?uvc$v7A@H%BT9^y|4g6)^y z#=d%4WM!8g?LeVe)D|!9wCosq+p=3o;V0g9d+fJ?OjPSHP^eLTQ)516gTn@T5n#HYDZ`A<$eK ztRCV~BN0-y-Xr4V@t&(_$;NLSxu9-vg$PIBk>5Gm>HWh7P$8jbMADsrC9Y!+xKGfn?h6*~3}v!)xN7Zrq8ez2K> z*ROd>Y4zaLCvN-hL}Ajj-z8(Ro9hIQb@;%&9#k2}b;Np5*?EsPZFel=O^=)OAASW*m%Gl>k%wFCTo+nzZwGFY znoDeE0VH-43_o$RwR9ZT8wiI4Y96bp&k8Vpqh;4&sH5L&U3}3fL>CLI)Wz^BTK+b-q?wVgR4R@T^` zGf6TwZap8mPkV4CFkj1=IAyuFyZigvP7cs2;MCH;=;P4`dY2OzMpk68ztckyzQ==- zv)L&X!O^1Ijgxe&Q;*>nzl&Ib-hW1DT(MD_bV!DH^l$73S7|0T;COqxU++#ng+9;g zkiCR1?`(z}EjY+JoHZdo#iONdkdNShXGyWN0ivK07at5X3A&g`0X$%O+@#jgL!+Tq+X#?;(>mkW+FOW)9zw#EtH0!AVQ))Zj|aBtG0Yuwu!G*1$?e zyQ`FAi-PeD%cd%U#<}eTA?E@eBGJ=BmeqVBQ*O*SjxiHense7_Bf#*AN(B<%$TL9k zAM{3+RocAZA&(5N`ylUC5_^}s<>T=$*2OK5;1dcDN2C?(JpBX?mlWe-X`GCgfUbq0 ve`Kv4J!|D@!L(oj-dRJ8&>0G9)^7>eIm<`4$R*X)c>n(aAA!hG2|57)^_1gY literal 3784 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 \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz index ba6beba798dfaa1e6a0ff152725451ab6fddb604..775e05b4a0207047491e526b6172a078c99639a2 100644 GIT binary patch literal 20661 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html index e7a94c1fcdc..c65c92d1b4f 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html @@ -1,27 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz index a284a9e930c7e09883703b3a72aeca5cfca878ae..9a5e3896a8281a039e9d4c5962a88cc2b026a28b 100644 GIT binary patch literal 1465 zcmV;q1xETGiwFP!000021FcwXZ`(Ey{wu5o1QIIR&ARP_V!P|wec7HR>7pq>Z$!zp*yP5Y z74XO(L}v2j=QnRU*$nGci^>R9_VPwm$&WwL=|e6I^16Z)lS(6h&`??P%kYZCN64z#QuA3cdBT|rFh8T=RlG5Zn z&4tWDm1R-0g7ki))waxds-)7%4m43Qu#(8Ndf;P$_y@!@W<#^M!}0}oK^oL07_q~b zVPpf0w^4J^sSiqLe5DcYlkSt-jhmLveNd7&H|=cN<WQFU?|FJsSIUgw+Pr;JYsebF-pl5Xet5V1(sV*+>I((37Xz{9xRvc>FzFI zbxvNeLU!9O{-S3(u$6P7P1PfItN@!*HZ3gLt*e=OHl;JtI02s?**aQMQBKrGY1kmo zRJtYWhTY?S9-NgS6&h6_Nm;;vWnf?)G>u!gZQ#vcH2Eyra+#{4qIi1#f8suLmLuzu z9?Vnu-e}hR5iw>S<`VQrT0RSJ!;(s<>v`Zi2q{#H4Q6r&qVQ434zH|1)UKwxNc#QWQeTs<@cN0x1UbnLIk6_6t*ygeIgfM| zonKSM+Mz><;Ijj($}c} zGa%IS|D=XANsGY_gtRl}Tby@p`t4%8OZMKr*xqq$O(d2ZllO%Grn#K4FQB178h^E8 z*$u_M8yt15L)`7jP#-t>;-E)7@^0tjFi3vy_eUUR=+@Itbxc)bgxMag}EI&4IpT)v*hl~$F#UtygzbWxyBv#&7uy!w}lsEyrZ_nW`bEJi5f zt}i98uG_eu@J|Z3a`DHv@3n?~>}Nri1pev$L9P>cVmKTpuC+Z#j#Kw_$RiRDv~lPI0rzC95RZCuGl z8(%z5*4r}eXkgT6G+SLVw7(wKVl(lu^+9*!l!0<=Vi7fB9lpZInOWZ5*kx$wHxI*T zv@5#ZrMVj%(0!Wex!qifyUALh%<3D@$-S&C&pOo6q<|{Cz}!pG8`E!vuxVqx#Jjj5 ztpwYM{^E20UwR3=x^lFyu8u@|?|6QLU?0ss?bP85U^J5F6usg>Dm(y*B`rk@v*9&Q9p$;1B=+G-%;) literal 14375 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-mailbox.html b/homeassistant/components/frontend/www_static/panels/ha-panel-mailbox.html new file mode 100644 index 00000000000..62948d65f07 --- /dev/null +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-mailbox.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-mailbox.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-mailbox.html.gz new file mode 100644 index 0000000000000000000000000000000000000000..d96d49785acf3e96f41336a620eb0fd1e6b21bed GIT binary patch literal 1694 zcmV;P24VRhiwFP!000021C3W(Z`(E${wu6@fwW3;(sq52Y_DAt>}A0MEPEJ&AfTmV zi>*WoBo)VX_1||$>gpszUmTG^bO$mhM zE3cqYO*xcNMOnEKkKTHzp{h%&VZBuPV8nPXyW_2sLMVNVDit*fWTc>kOec&p z&1jiMd)Rzo`uVd;e0}zyjWfYDaDA+4o-@8n&fnLMX+$*G;KZ>0276C+> z=@J4Il43vD+?Mc|er}Xz+e6ghOjJ!Xh&G`20K9jYV=Q8K+z5#tB1v=BsN@X-Z-1!j zx9*g5*w9e4X|xvnxGe?MiDbJ%r|pLdP>|5FB$VgGA2}fJenk?3SHEK%-jQ&m?QmoSObx(hX^w*8chnSA{QY-i6rch zs+H$WMTshf#)hy9k60cD5iLZyp%S}~Miua;%Q4|pVoj~Q+gtZ_cjpmRh`kju+h%cv z-*{k}cBYMu%N__eDR&iWyj{7LT`uql6=uE{BUq=Jl~k#f*O876#?~2Io-h!bLAWqHJ^&W*feZ$Eq~nBn;#firRHJh| zQO5t^-ufN8nqc#2TCY4&1HZa{dtsYlCK8#6M{J%~-q;)-(R&eLaxIC|P%tTOV|{yT z48+(wCCIzG4){bAi_`0+@R?7Q3{}&rHvWv% z8auW->qr=oEKZ`F?aUZnO!GXclv&O9tabBg&vX%OX!a$S0vYz~O)-ow&rr`K{+NM) z2BNGK$~3?|%6zil7-#WjedSP-YZNl(mQM!XEQ=R-BWUOnNsJVF%~_J$eQ%6$)Hi+d z#<6TLYDqb^F595AY4}owvjAQD1Xhp|cCM%55app)M9d$0edi_xX!9)?&bRT;h*F+2A zxFNb=s_(Pk5X7uj9aU=RjgESU3c;z0DI53&WTq|pAbN_Q)9PTGD9q&EimWjvhI~3) zf7?6Wl*7j?gIb?jewMRo@s6(*%nBy9*6V9g9x9Ojk*VbA^Chg2TacQ8N{%?m@z>-m z`D^nTk+h*3z1`;TI4yzl@PU>MB(KifuphxM3K(EpA*V%#&h572H|jK?otlcMy#5RYk|uL zbgleT1EJS(b>Gxx{^VW|>jJnxpnwj>eZ$e1GqZwr;<q`R6BFXegZ6eX8E)=-W4czOlN!>mu4gpRAXI8P(tf`Rpo6ri%Cy zA$kQd)-sf_9qBzMsiSgMDKklj?8kT*z_Ib;2a|oAPO+U(INI5w%kRQIBNyIl{o2Fd znR8XpUVWUIF~cH~H#j%vNV|9^{$evaX9!F<2a|#E4tSD)PLSgB-|yI(j{Ilj$Klw; zY^q~ASf)CLV^}@IW;*E;ywE?^%=a!X|Gd1p^oC|wIJ=goJ~JI{$W`z(2lmc0fF>pL z0-B-v9Lh@cC|@Cqa;6IE^a& zn(_eU6|~)LC6q& ocsetuHS@jYFcg#*v~7^$Ytdbe%SHDVwEzA82Z#>ub_5Ur08%wU+W-In literal 0 HcmV?d00001 diff --git a/homeassistant/components/frontend/www_static/service_worker.js b/homeassistant/components/frontend/www_static/service_worker.js index 294c78be298..793219ebcec 100644 --- a/homeassistant/components/frontend/www_static/service_worker.js +++ b/homeassistant/components/frontend/www_static/service_worker.js @@ -37,7 +37,7 @@ /* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */ 'use strict'; -var precacheConfig = [["/","eed923f1a5a5b99ebb16c3a529c8c579"],["/frontend/panels/dev-event-d409e7ab537d9fe629126d122345279c.html","936814991f2a5e23d61d29f0d40f81b8"],["/frontend/panels/dev-info-b0e55eb657fd75f21aba2426ac0cedc0.html","1fa953b0224470f70d4e87bbe4dff191"],["/frontend/panels/dev-mqtt-94b222b013a98583842de3e72d5888c6.html","dc3ddfac58397feda97317358f0aecbb"],["/frontend/panels/dev-service-94790b45e4b05e8722dba192940b16f6.html","f59d4cd23fd188420a37959086641493"],["/frontend/panels/dev-state-7948d3dba058f31517d880df8ed0e857.html","ff8156bb1a52490fcc07466556fce0e1"],["/frontend/panels/dev-template-f47b6910d8e4880e22cc508ca452f9b6.html","9aa0675e01373c6bc2737438bb84a9ec"],["/frontend/panels/map-c2544fff3eedb487d44105cf94b335ec.html","113c5bf9a68a74c62e50cd354034e78b"],["/static/compatibility-1686167ff210e001f063f5c606b2e74b.js","6ee7b5e2dd82b510c3bd92f7e215988e"],["/static/core-2a7d01e45187c7d4635da05065b5e54e.js","90a0a8a6a6dd0ca41b16f40e7d23924d"],["/static/frontend-3579bb550f8a407d452f70eb11c04b21.html","72fb9d8c000ba9585f1bfd556b8c9bcc"],["/static/mdi-e91f61a039ed0a9936e7ee5360da3870.html","5e587bc82719b740a4f0798722a83aee"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"]]; +var precacheConfig = [["/","ac95485aa7eafc661d515253bbba1b6d"],["/frontend/panels/dev-event-d409e7ab537d9fe629126d122345279c.html","936814991f2a5e23d61d29f0d40f81b8"],["/frontend/panels/dev-info-b0e55eb657fd75f21aba2426ac0cedc0.html","1fa953b0224470f70d4e87bbe4dff191"],["/frontend/panels/dev-mqtt-94b222b013a98583842de3e72d5888c6.html","dc3ddfac58397feda97317358f0aecbb"],["/frontend/panels/dev-service-422b2c181ee0713fa31d45a64e605baf.html","ae7d26b1c8c3309fd3c65944f89ea03f"],["/frontend/panels/dev-state-7948d3dba058f31517d880df8ed0e857.html","ff8156bb1a52490fcc07466556fce0e1"],["/frontend/panels/dev-template-f47b6910d8e4880e22cc508ca452f9b6.html","9aa0675e01373c6bc2737438bb84a9ec"],["/frontend/panels/map-c2544fff3eedb487d44105cf94b335ec.html","113c5bf9a68a74c62e50cd354034e78b"],["/static/compatibility-1686167ff210e001f063f5c606b2e74b.js","6ee7b5e2dd82b510c3bd92f7e215988e"],["/static/core-2a7d01e45187c7d4635da05065b5e54e.js","90a0a8a6a6dd0ca41b16f40e7d23924d"],["/static/frontend-fb225cfababf965f8e19a8eb5c5a2a7e.html","429b61684b027ffe2a50de3d04dd3db6"],["/static/mdi-e91f61a039ed0a9936e7ee5360da3870.html","5e587bc82719b740a4f0798722a83aee"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"]]; var cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : ''); diff --git a/homeassistant/components/frontend/www_static/service_worker.js.gz b/homeassistant/components/frontend/www_static/service_worker.js.gz index 1800a8ba50b18e6ffb4ccc689c210a529945555a..1e89747bdd304613255b0782ac318a1cc680903b 100644 GIT binary patch delta 5130 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 delta 5090 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 Date: Wed, 9 Aug 2017 23:22:08 +0200 Subject: [PATCH 115/128] Fix for Neato D3 Connected state obtaining (#8817) --- homeassistant/components/sensor/neato.py | 2 +- homeassistant/components/switch/neato.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/neato.py b/homeassistant/components/sensor/neato.py index eb1524e1748..5179816eb35 100644 --- a/homeassistant/components/sensor/neato.py +++ b/homeassistant/components/sensor/neato.py @@ -105,7 +105,7 @@ class NeatoConnectedSensor(Entity): self._status_state = ERRORS.get(self._state['error']) if self.type == SENSOR_TYPE_BATTERY: self._battery_state = self._state['details']['charge'] - if self._mapdata is None: + if not self._mapdata.get(self.robot.serial, {}).get('maps', []): return self.clean_time_start = ( (self._mapdata[self.robot.serial]['maps'][0]['start_at'] diff --git a/homeassistant/components/switch/neato.py b/homeassistant/components/switch/neato.py index 739e4e03fed..f29dc31eaf0 100644 --- a/homeassistant/components/switch/neato.py +++ b/homeassistant/components/switch/neato.py @@ -72,7 +72,7 @@ class NeatoConnectedSwitch(ToggleEntity): self._clean_state = STATE_ON else: self._clean_state = STATE_OFF - _LOGGER.debug("Schedule state: %s", self._schedule_state) + _LOGGER.debug("Clean state: %s", self._clean_state) if self.type == SWITCH_TYPE_SCHEDULE: _LOGGER.debug("State: %s", self._state) if self.robot.schedule_enabled: From 1cb42087f9b84c66f554c96734871293560a16f4 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Thu, 10 Aug 2017 01:58:39 -0400 Subject: [PATCH 116/128] Update simplisafe-python version (#8908) --- homeassistant/components/alarm_control_panel/simplisafe.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/alarm_control_panel/simplisafe.py b/homeassistant/components/alarm_control_panel/simplisafe.py index a600a01fcfd..5eb2e9fe7d3 100644 --- a/homeassistant/components/alarm_control_panel/simplisafe.py +++ b/homeassistant/components/alarm_control_panel/simplisafe.py @@ -16,7 +16,7 @@ from homeassistant.const import ( EVENT_HOMEASSISTANT_STOP) import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['simplisafe-python==1.0.3'] +REQUIREMENTS = ['simplisafe-python==1.0.4'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 453bc0e49e5..f7ca7146dec 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -872,7 +872,7 @@ sense-hat==2.2.0 sharp_aquos_rc==0.3.2 # homeassistant.components.alarm_control_panel.simplisafe -simplisafe-python==1.0.3 +simplisafe-python==1.0.4 # homeassistant.components.notify.slack slacker==0.9.50 From 317bc10ccb1329fae1e97020d8b23ebbed92b323 Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Thu, 10 Aug 2017 10:29:04 +0200 Subject: [PATCH 117/128] LIFX: improve performance of multi-light transitions (#8873) * LIFX: improve performance of multi-light transitions To avoid hub overload, the light.turn_on call will change each light sequentially. As LIFX has no hub we can safely increase performance by starting all light transitions concurrently. * Improve state updates after light changes The light.turn_on call will set a new state and then immediately read it back. However, reading the state of a LIFX light right after a state change can still return the old value. To handle this situation we have previously delayed the update request a little while to allow a potential state change to settle. Because light updates are now run in parallel, this delay might be too short when many lights are set at once. This commit introduces a per-light Lock to make it explicit when the state cannot yet be trusted. We must then do the state update ourselves. This was already done at the end of a long transition and that code can be reused for also doing the update at the start of a transition. --- homeassistant/components/light/lifx.py | 130 ++++++++++++++----------- 1 file changed, 75 insertions(+), 55 deletions(-) diff --git a/homeassistant/components/light/lifx.py b/homeassistant/components/light/lifx.py index 908a9d24e04..a7301c24a88 100644 --- a/homeassistant/components/light/lifx.py +++ b/homeassistant/components/light/lifx.py @@ -406,6 +406,7 @@ class LIFXLight(Light): self.effects_conductor = effects_conductor self.registered = True self.postponed_update = None + self.lock = asyncio.Lock() @property def available(self): @@ -452,81 +453,96 @@ class LIFXLight(Light): return None @asyncio.coroutine - def update_after_transition(self, now): - """Request new status after completion of the last transition.""" + def update_hass(self, now=None): + """Request new status and push it to hass.""" self.postponed_update = None yield from self.async_update() yield from self.async_update_ha_state() - def update_later(self, when): - """Schedule an update requests when a transition is over.""" + @asyncio.coroutine + def update_during_transition(self, when): + """Update state at the start and end of a transition.""" if self.postponed_update: self.postponed_update() - self.postponed_update = None + + # Transition has started + yield from self.update_hass() + + # Transition has ended if when > 0: self.postponed_update = async_track_point_in_utc_time( - self.hass, self.update_after_transition, + self.hass, self.update_hass, util.dt.utcnow() + timedelta(milliseconds=when)) @asyncio.coroutine def async_turn_on(self, **kwargs): """Turn the device on.""" kwargs[ATTR_POWER] = True - yield from self.async_set_state(**kwargs) + self.hass.async_add_job(self.async_set_state(**kwargs)) @asyncio.coroutine def async_turn_off(self, **kwargs): """Turn the device off.""" kwargs[ATTR_POWER] = False - yield from self.async_set_state(**kwargs) + self.hass.async_add_job(self.async_set_state(**kwargs)) @asyncio.coroutine def async_set_state(self, **kwargs): """Set a color on the light and turn it on/off.""" - yield from self.effects_conductor.stop([self.device]) + with (yield from self.lock): + bulb = self.device - if ATTR_EFFECT in kwargs: - yield from self.default_effect(**kwargs) - return + yield from self.effects_conductor.stop([bulb]) - if ATTR_INFRARED in kwargs: - self.device.set_infrared(convert_8_to_16(kwargs[ATTR_INFRARED])) + if ATTR_EFFECT in kwargs: + yield from self.default_effect(**kwargs) + return - if ATTR_TRANSITION in kwargs: - fade = int(kwargs[ATTR_TRANSITION] * 1000) - else: - fade = 0 + if ATTR_INFRARED in kwargs: + bulb.set_infrared(convert_8_to_16(kwargs[ATTR_INFRARED])) - # These are both False if ATTR_POWER is not set - power_on = kwargs.get(ATTR_POWER, False) - power_off = not kwargs.get(ATTR_POWER, True) + if ATTR_TRANSITION in kwargs: + fade = int(kwargs[ATTR_TRANSITION] * 1000) + else: + fade = 0 - hsbk = find_hsbk(**kwargs) + # These are both False if ATTR_POWER is not set + power_on = kwargs.get(ATTR_POWER, False) + power_off = not kwargs.get(ATTR_POWER, True) - # Send messages, waiting for ACK each time - ack = AwaitAioLIFX().wait - bulb = self.device + hsbk = find_hsbk(**kwargs) - if not self.is_on: - if power_off: - yield from ack(partial(bulb.set_power, False)) - if hsbk: - yield from self.send_color(ack, hsbk, kwargs, duration=0) - if power_on: - yield from ack(partial(bulb.set_power, True, duration=fade)) - else: - if power_on: - yield from ack(partial(bulb.set_power, True)) - if hsbk: - yield from self.send_color(ack, hsbk, kwargs, duration=fade) - if power_off: - yield from ack(partial(bulb.set_power, False, duration=fade)) + # Send messages, waiting for ACK each time + ack = AwaitAioLIFX().wait - # Schedule an update when the transition is complete - self.update_later(fade) + if not self.is_on: + if power_off: + yield from self.set_power(ack, False) + if hsbk: + yield from self.set_color(ack, hsbk, kwargs) + if power_on: + yield from self.set_power(ack, True, duration=fade) + else: + if power_on: + yield from self.set_power(ack, True) + if hsbk: + yield from self.set_color(ack, hsbk, kwargs, duration=fade) + if power_off: + yield from self.set_power(ack, False, duration=fade) + + # Avoid state ping-pong by holding off updates as the state settles + yield from asyncio.sleep(0.3) + + # Update when the transition starts and ends + yield from self.update_during_transition(fade) @asyncio.coroutine - def send_color(self, ack, hsbk, kwargs, duration): + def set_power(self, ack, pwr, duration=0): + """Send a power change to the device.""" + yield from ack(partial(self.device.set_power, pwr, duration=duration)) + + @asyncio.coroutine + def set_color(self, ack, hsbk, kwargs, duration=0): """Send a color change to the device.""" hsbk = merge_hsbk(self.device.color, hsbk) yield from ack(partial(self.device.set_color, hsbk, duration=duration)) @@ -544,9 +560,7 @@ class LIFXLight(Light): def async_update(self): """Update bulb status.""" _LOGGER.debug("%s async_update", self.who) - if self.available: - # Avoid state ping-pong by holding off updates as the state settles - yield from asyncio.sleep(0.3) + if self.available and not self.lock.locked(): yield from AwaitAioLIFX().wait(self.device.get_color) @@ -619,16 +633,18 @@ class LIFXStrip(LIFXColor): """Representation of a LIFX light strip with multiple zones.""" @asyncio.coroutine - def send_color(self, ack, hsbk, kwargs, duration): + def set_color(self, ack, hsbk, kwargs, duration=0): """Send a color change to the device.""" bulb = self.device num_zones = len(bulb.color_zones) # Zone brightness is not reported when powered off if not self.is_on and hsbk[2] is None: - yield from ack(partial(bulb.set_power, True)) - yield from self.async_update() - yield from ack(partial(bulb.set_power, False)) + yield from self.set_power(ack, True) + yield from asyncio.sleep(0.3) + yield from self.update_color_zones() + yield from self.set_power(ack, False) + yield from asyncio.sleep(0.3) zones = kwargs.get(ATTR_ZONES, None) if zones is None: @@ -651,12 +667,16 @@ class LIFXStrip(LIFXColor): @asyncio.coroutine def async_update(self): """Update strip status.""" - if self.available: + if self.available and not self.lock.locked(): yield from super().async_update() + yield from self.update_color_zones() - ack = AwaitAioLIFX().wait - bulb = self.device + @asyncio.coroutine + def update_color_zones(self): + """Get updated color information for each zone.""" + ack = AwaitAioLIFX().wait + bulb = self.device - # Each get_color_zones returns the next 8 zones - for zone in range(0, len(bulb.color_zones), 8): - yield from ack(partial(bulb.get_color_zones, start_index=zone)) + # Each get_color_zones returns the next 8 zones + for zone in range(0, len(bulb.color_zones), 8): + yield from ack(partial(bulb.get_color_zones, start_index=zone)) From e84ff61d4ac4e839caed7fe2e969cd616c2477bd Mon Sep 17 00:00:00 2001 From: Erik Eriksson Date: Thu, 10 Aug 2017 16:56:34 +0200 Subject: [PATCH 118/128] Support media position and media duration (will display progressbar in ui) (#8904) --- .../components/media_player/squeezebox.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/media_player/squeezebox.py b/homeassistant/components/media_player/squeezebox.py index f9099fe24d2..859d596f98f 100644 --- a/homeassistant/components/media_player/squeezebox.py +++ b/homeassistant/components/media_player/squeezebox.py @@ -23,6 +23,7 @@ from homeassistant.const import ( STATE_PAUSED, STATE_PLAYING, STATE_UNKNOWN, CONF_PORT) import homeassistant.helpers.config_validation as cv from homeassistant.helpers.aiohttp_client import async_get_clientsession +from homeassistant.util.dt import utcnow _LOGGER = logging.getLogger(__name__) @@ -154,6 +155,7 @@ class SqueezeBoxDevice(MediaPlayerDevice): self._id = player_id self._status = {} self._name = name + self._last_update = None _LOGGER.debug("Creating SqueezeBox object: %s, %s", name, player_id) @property @@ -199,7 +201,7 @@ class SqueezeBoxDevice(MediaPlayerDevice): if response is False: return - self._status = response.copy() + self._status = {} try: self._status.update(response["playlist_loop"][0]) @@ -210,6 +212,9 @@ class SqueezeBoxDevice(MediaPlayerDevice): except KeyError: pass + self._status.update(response) + self._last_update = utcnow() + @property def volume_level(self): """Volume level of the media player (0..1).""" @@ -239,6 +244,17 @@ class SqueezeBoxDevice(MediaPlayerDevice): if 'duration' in self._status: return int(float(self._status['duration'])) + @property + def media_position(self): + """Duration of current playing media in seconds.""" + if 'time' in self._status: + return int(float(self._status['time'])) + + @property + def media_position_updated_at(self): + """Last time status was updated.""" + return self._last_update + @property def media_image_url(self): """Image url of current playing media.""" From d195fd47f723521e1d8fcc4d38742755c5d85fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ab=C3=ADlio=20Costa?= Date: Thu, 10 Aug 2017 16:01:52 +0100 Subject: [PATCH 119/128] Add new device tracker for Huawei Routers. (#8488) * Add new device tracker for Huawei Routers. This was tested with the HG8247H model, used by Vodafone Portugal for the Fiber service. * add to .coveragerc; remove import and space * add comments and fix lint * rename methods * huawei_router: add constants to scanner class * huawei_router: remove lock; use format() in string * huawei_router: use tupple instead of member only class * huawei_router: reduce min scan time * huawei_router: lint * huawei_router: lint * huawei_router: add missing lines in imports * huawei_router: correctly decode string after router firmware update * Remove things that is done on core now --- .coveragerc | 1 + .../device_tracker/huawei_router.py | 145 ++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 homeassistant/components/device_tracker/huawei_router.py diff --git a/.coveragerc b/.coveragerc index 7cf0a78dc31..56ccb37d169 100644 --- a/.coveragerc +++ b/.coveragerc @@ -272,6 +272,7 @@ omit = homeassistant/components/device_tracker/cisco_ios.py homeassistant/components/device_tracker/fritz.py homeassistant/components/device_tracker/gpslogger.py + homeassistant/components/device_tracker/huawei_router.py homeassistant/components/device_tracker/icloud.py homeassistant/components/device_tracker/linksys_ap.py homeassistant/components/device_tracker/linksys_smart.py diff --git a/homeassistant/components/device_tracker/huawei_router.py b/homeassistant/components/device_tracker/huawei_router.py new file mode 100644 index 00000000000..b78683696cf --- /dev/null +++ b/homeassistant/components/device_tracker/huawei_router.py @@ -0,0 +1,145 @@ +""" +Support for HUAWEI routers. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/device_tracker.huawei/ +""" +import base64 +import logging +import re +from collections import namedtuple + +import requests +import voluptuous as vol + +import homeassistant.helpers.config_validation as cv +from homeassistant.components.device_tracker import ( + DOMAIN, PLATFORM_SCHEMA, DeviceScanner) +from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME + +_LOGGER = logging.getLogger(__name__) + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_HOST): cv.string, + vol.Required(CONF_PASSWORD): cv.string, + vol.Required(CONF_USERNAME): cv.string +}) + + +# pylint: disable=unused-argument +def get_scanner(hass, config): + """Validate the configuration and return a HUAWEI scanner.""" + scanner = HuaweiDeviceScanner(config[DOMAIN]) + + return scanner + + +Device = namedtuple('Device', ['name', 'ip', 'mac', 'state']) + + +class HuaweiDeviceScanner(DeviceScanner): + """This class queries a router running HUAWEI firmware.""" + + ARRAY_REGEX = re.compile(r'var UserDevinfo = new Array\((.*),null\);') + DEVICE_REGEX = re.compile(r'new USERDevice\((.*?)\),') + DEVICE_ATTR_REGEX = re.compile( + '"(?P.*?)","(?P.*?)",' + '"(?P.*?)","(?P.*?)",' + '"(?P.*?)","(?P.*?)",' + '"(?P.*?)","(?P.*?)",' + '"(?P

*!D2fdAnhP? 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 diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 1ea7137c78b..e81326cb650 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 1ea7137c78b3df577f5df72a6c9bbe91bb5f7cd0 +Subproject commit e81326cb6507d15ab94b4d69de87b909ef3e383e diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-automation.html b/homeassistant/components/frontend/www_static/panels/ha-panel-automation.html deleted file mode 100644 index 6e03db64c35..00000000000 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-automation.html +++ /dev/null @@ -1,4 +0,0 @@ -