From e84ef2d2d704a0d4e99d605409b7f794c10e2ba4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 14:08:01 -0800 Subject: [PATCH 01/12] API to fetch Error log is no longer cached. --- homeassistant/components/api.py | 11 ++--- homeassistant/components/http.py | 10 ++-- tests/components/test_api.py | 81 ++++++++++++++++++++------------ 3 files changed, 60 insertions(+), 42 deletions(-) diff --git a/homeassistant/components/api.py b/homeassistant/components/api.py index 7ccc1f745e9..157593ab8dc 100644 --- a/homeassistant/components/api.py +++ b/homeassistant/components/api.py @@ -21,7 +21,7 @@ from homeassistant.const import ( URL_API_CONFIG, URL_API_BOOTSTRAP, URL_API_ERROR_LOG, EVENT_TIME_CHANGED, EVENT_HOMEASSISTANT_STOP, MATCH_ALL, HTTP_OK, HTTP_CREATED, HTTP_BAD_REQUEST, HTTP_NOT_FOUND, - HTTP_UNPROCESSABLE_ENTITY, CONTENT_TYPE_TEXT_PLAIN) + HTTP_UNPROCESSABLE_ENTITY) DOMAIN = 'api' @@ -36,10 +36,6 @@ _LOGGER = logging.getLogger(__name__) def setup(hass, config): """ Register the API with the HTTP interface. """ - if 'http' not in hass.config.components: - _LOGGER.error('Dependency http is not loaded') - return False - # /api - for validation purposes hass.http.register_path('GET', URL_API, _handle_get_api) @@ -347,9 +343,8 @@ def _handle_get_api_components(handler, path_match, data): def _handle_get_api_error_log(handler, path_match, data): """ Returns the logged errors for this session. """ - error_path = handler.server.hass.config.path(ERROR_LOG_FILENAME) - with open(error_path, 'rb') as error_log: - handler.write_file_pointer(CONTENT_TYPE_TEXT_PLAIN, error_log) + handler.write_file(handler.server.hass.config.path(ERROR_LOG_FILENAME), + False) def _services_json(hass): diff --git a/homeassistant/components/http.py b/homeassistant/components/http.py index 88392ed3fe4..2dcf5e9c6a2 100644 --- a/homeassistant/components/http.py +++ b/homeassistant/components/http.py @@ -307,18 +307,19 @@ class RequestHandler(SimpleHTTPRequestHandler): json.dumps(data, indent=4, sort_keys=True, cls=rem.JSONEncoder).encode("UTF-8")) - def write_file(self, path): + def write_file(self, path, cache_headers=True): """ Returns a file to the user. """ try: with open(path, 'rb') as inp: - self.write_file_pointer(self.guess_type(path), inp) + self.write_file_pointer(self.guess_type(path), inp, + cache_headers) except IOError: self.send_response(HTTP_NOT_FOUND) self.end_headers() _LOGGER.exception("Unable to serve %s", path) - def write_file_pointer(self, content_type, inp): + def write_file_pointer(self, content_type, inp, cache_headers=True): """ Helper function to write a file pointer to the user. Does not do error handling. @@ -328,7 +329,8 @@ class RequestHandler(SimpleHTTPRequestHandler): self.send_response(HTTP_OK) self.send_header(HTTP_HEADER_CONTENT_TYPE, content_type) - self.set_cache_header() + if cache_headers: + self.set_cache_header() self.set_session_cookie_header() if do_gzip: diff --git a/tests/components/test_api.py b/tests/components/test_api.py index b267e6b3c1c..56694289303 100644 --- a/tests/components/test_api.py +++ b/tests/components/test_api.py @@ -8,14 +8,13 @@ Tests Home Assistant HTTP component does what it should do. import unittest import json from unittest.mock import patch +import tempfile import requests +from homeassistant import bootstrap, const import homeassistant.core as ha -import homeassistant.bootstrap as bootstrap -import homeassistant.remote as remote import homeassistant.components.http as http -from homeassistant.const import HTTP_HEADER_HA_AUTH API_PASSWORD = "test1234" @@ -26,7 +25,7 @@ SERVER_PORT = 8120 HTTP_BASE_URL = "http://127.0.0.1:{}".format(SERVER_PORT) -HA_HEADERS = {HTTP_HEADER_HA_AUTH: API_PASSWORD} +HA_HEADERS = {const.HTTP_HEADER_HA_AUTH: API_PASSWORD} hass = None @@ -68,20 +67,20 @@ class TestAPI(unittest.TestCase): # TODO move back to http component and test with use_auth. def test_access_denied_without_password(self): req = requests.get( - _url(remote.URL_API_STATES_ENTITY.format("test"))) + _url(const.URL_API_STATES_ENTITY.format("test"))) self.assertEqual(401, req.status_code) def test_access_denied_with_wrong_password(self): req = requests.get( - _url(remote.URL_API_STATES_ENTITY.format("test")), - headers={HTTP_HEADER_HA_AUTH: 'wrongpassword'}) + _url(const.URL_API_STATES_ENTITY.format("test")), + headers={const.HTTP_HEADER_HA_AUTH: 'wrongpassword'}) self.assertEqual(401, req.status_code) def test_api_list_state_entities(self): """ Test if the debug interface allows us to list state entities. """ - req = requests.get(_url(remote.URL_API_STATES), + req = requests.get(_url(const.URL_API_STATES), headers=HA_HEADERS) remote_data = [ha.State.from_dict(item) for item in req.json()] @@ -91,7 +90,7 @@ class TestAPI(unittest.TestCase): def test_api_get_state(self): """ Test if the debug interface allows us to get a state. """ req = requests.get( - _url(remote.URL_API_STATES_ENTITY.format("test.test")), + _url(const.URL_API_STATES_ENTITY.format("test.test")), headers=HA_HEADERS) data = ha.State.from_dict(req.json()) @@ -105,7 +104,7 @@ class TestAPI(unittest.TestCase): def test_api_get_non_existing_state(self): """ Test if the debug interface allows us to get a state. """ req = requests.get( - _url(remote.URL_API_STATES_ENTITY.format("does_not_exist")), + _url(const.URL_API_STATES_ENTITY.format("does_not_exist")), headers=HA_HEADERS) self.assertEqual(404, req.status_code) @@ -115,7 +114,7 @@ class TestAPI(unittest.TestCase): hass.states.set("test.test", "not_to_be_set") - requests.post(_url(remote.URL_API_STATES_ENTITY.format("test.test")), + requests.post(_url(const.URL_API_STATES_ENTITY.format("test.test")), data=json.dumps({"state": "debug_state_change2"}), headers=HA_HEADERS) @@ -130,7 +129,7 @@ class TestAPI(unittest.TestCase): new_state = "debug_state_change" req = requests.post( - _url(remote.URL_API_STATES_ENTITY.format( + _url(const.URL_API_STATES_ENTITY.format( "test_entity.that_does_not_exist")), data=json.dumps({'state': new_state}), headers=HA_HEADERS) @@ -146,7 +145,7 @@ class TestAPI(unittest.TestCase): """ Test if API sends appropriate error if we omit state. """ req = requests.post( - _url(remote.URL_API_STATES_ENTITY.format( + _url(const.URL_API_STATES_ENTITY.format( "test_entity.that_does_not_exist")), data=json.dumps({}), headers=HA_HEADERS) @@ -165,7 +164,7 @@ class TestAPI(unittest.TestCase): hass.bus.listen_once("test.event_no_data", listener) requests.post( - _url(remote.URL_API_EVENTS_EVENT.format("test.event_no_data")), + _url(const.URL_API_EVENTS_EVENT.format("test.event_no_data")), headers=HA_HEADERS) hass.pool.block_till_done() @@ -186,7 +185,7 @@ class TestAPI(unittest.TestCase): hass.bus.listen_once("test_event_with_data", listener) requests.post( - _url(remote.URL_API_EVENTS_EVENT.format("test_event_with_data")), + _url(const.URL_API_EVENTS_EVENT.format("test_event_with_data")), data=json.dumps({"test": 1}), headers=HA_HEADERS) @@ -206,7 +205,7 @@ class TestAPI(unittest.TestCase): hass.bus.listen_once("test_event_bad_data", listener) req = requests.post( - _url(remote.URL_API_EVENTS_EVENT.format("test_event_bad_data")), + _url(const.URL_API_EVENTS_EVENT.format("test_event_bad_data")), data=json.dumps('not an object'), headers=HA_HEADERS) @@ -217,7 +216,7 @@ class TestAPI(unittest.TestCase): # Try now with valid but unusable JSON req = requests.post( - _url(remote.URL_API_EVENTS_EVENT.format("test_event_bad_data")), + _url(const.URL_API_EVENTS_EVENT.format("test_event_bad_data")), data=json.dumps([1, 2, 3]), headers=HA_HEADERS) @@ -226,9 +225,31 @@ class TestAPI(unittest.TestCase): self.assertEqual(422, req.status_code) self.assertEqual(0, len(test_value)) + def test_api_get_config(self): + req = requests.get(_url(const.URL_API_CONFIG), + headers=HA_HEADERS) + self.assertEqual(hass.config.as_dict(), req.json()) + + def test_api_get_components(self): + req = requests.get(_url(const.URL_API_COMPONENTS), + headers=HA_HEADERS) + self.assertEqual(hass.config.components, req.json()) + + def test_api_get_error_log(self): + test_content = 'Test String' + with tempfile.NamedTemporaryFile() as log: + log.write(test_content.encode('utf-8')) + log.flush() + + with patch.object(hass.config, 'path', return_value=log.name): + req = requests.get(_url(const.URL_API_ERROR_LOG), + headers=HA_HEADERS) + self.assertEqual(test_content, req.text) + self.assertIsNone(req.headers.get('expires')) + def test_api_get_event_listeners(self): """ Test if we can get the list of events being listened for. """ - req = requests.get(_url(remote.URL_API_EVENTS), + req = requests.get(_url(const.URL_API_EVENTS), headers=HA_HEADERS) local = hass.bus.listeners @@ -241,7 +262,7 @@ class TestAPI(unittest.TestCase): def test_api_get_services(self): """ Test if we can get a dict describing current services. """ - req = requests.get(_url(remote.URL_API_SERVICES), + req = requests.get(_url(const.URL_API_SERVICES), headers=HA_HEADERS) local_services = hass.services.services @@ -262,7 +283,7 @@ class TestAPI(unittest.TestCase): hass.services.register("test_domain", "test_service", listener) requests.post( - _url(remote.URL_API_SERVICES_SERVICE.format( + _url(const.URL_API_SERVICES_SERVICE.format( "test_domain", "test_service")), headers=HA_HEADERS) @@ -283,7 +304,7 @@ class TestAPI(unittest.TestCase): hass.services.register("test_domain", "test_service", listener) requests.post( - _url(remote.URL_API_SERVICES_SERVICE.format( + _url(const.URL_API_SERVICES_SERVICE.format( "test_domain", "test_service")), data=json.dumps({"test": 1}), headers=HA_HEADERS) @@ -296,24 +317,24 @@ class TestAPI(unittest.TestCase): """ Test setting up event forwarding. """ req = requests.post( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), headers=HA_HEADERS) self.assertEqual(400, req.status_code) req = requests.post( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({'host': '127.0.0.1'}), headers=HA_HEADERS) self.assertEqual(400, req.status_code) req = requests.post( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({'api_password': 'bla-di-bla'}), headers=HA_HEADERS) self.assertEqual(400, req.status_code) req = requests.post( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({ 'api_password': 'bla-di-bla', 'host': '127.0.0.1', @@ -323,7 +344,7 @@ class TestAPI(unittest.TestCase): self.assertEqual(422, req.status_code) req = requests.post( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({ 'api_password': 'bla-di-bla', 'host': '127.0.0.1', @@ -334,7 +355,7 @@ class TestAPI(unittest.TestCase): # Setup a real one req = requests.post( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({ 'api_password': API_PASSWORD, 'host': '127.0.0.1', @@ -345,13 +366,13 @@ class TestAPI(unittest.TestCase): # Delete it again.. req = requests.delete( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({}), headers=HA_HEADERS) self.assertEqual(400, req.status_code) req = requests.delete( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({ 'host': '127.0.0.1', 'port': 'abcd' @@ -360,7 +381,7 @@ class TestAPI(unittest.TestCase): self.assertEqual(422, req.status_code) req = requests.delete( - _url(remote.URL_API_EVENT_FORWARD), + _url(const.URL_API_EVENT_FORWARD), data=json.dumps({ 'host': '127.0.0.1', 'port': SERVER_PORT From ef394b8af7083772e124b4506890f56f8f09ac0d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 15:41:30 -0800 Subject: [PATCH 02/12] Pushbullet tweaks --- homeassistant/components/notify/pushbullet.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/notify/pushbullet.py b/homeassistant/components/notify/pushbullet.py index 5dc97a399b5..941a78ac709 100644 --- a/homeassistant/components/notify/pushbullet.py +++ b/homeassistant/components/notify/pushbullet.py @@ -100,7 +100,7 @@ class PushBulletNotificationService(BaseNotificationService): # This also seems works to send to all devices in own account if ttype == 'email': self.pushbullet.push_note(title, message, email=tname) - _LOGGER.info('Sent notification to self') + _LOGGER.info('Sent notification to email %s', tname) continue # Refresh if name not found. While awaiting periodic refresh @@ -108,18 +108,21 @@ class PushBulletNotificationService(BaseNotificationService): if ttype not in self.pbtargets: _LOGGER.error('Invalid target syntax: %s', target) continue - if tname.lower() not in self.pbtargets[ttype] and not refreshed: + + tname = tname.lower() + + if tname not in self.pbtargets[ttype] and not refreshed: self.refresh() refreshed = True # Attempt push_note on a dict value. Keys are types & target # name. Dict pbtargets has all *actual* targets. try: - self.pbtargets[ttype][tname.lower()].push_note(title, message) + self.pbtargets[ttype][tname].push_note(title, message) + _LOGGER.info('Sent notification to %s/%s', ttype, tname) except KeyError: _LOGGER.error('No such target: %s/%s', ttype, tname) continue except self.pushbullet.errors.PushError: _LOGGER.error('Notify failed to: %s/%s', ttype, tname) continue - _LOGGER.info('Sent notification to %s/%s', ttype, tname) From 99aa4307efcb98bf1edba2ac54ff4c1cd81d8480 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 15:55:01 -0800 Subject: [PATCH 03/12] Add locks to entity component --- homeassistant/helpers/entity_component.py | 57 ++++++++++++----------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/homeassistant/helpers/entity_component.py b/homeassistant/helpers/entity_component.py index d3c0514dcad..ec22181bf5a 100644 --- a/homeassistant/helpers/entity_component.py +++ b/homeassistant/helpers/entity_component.py @@ -4,6 +4,8 @@ homeassistant.helpers.entity_component Provides helpers for components that manage entities. """ +from threading import Lock + from homeassistant.bootstrap import prepare_setup_platform from homeassistant.helpers import ( generate_entity_id, config_per_platform, extract_entity_ids) @@ -37,6 +39,7 @@ class EntityComponent(object): self.is_polling = False self.config = None + self.lock = Lock() def setup(self, config): """ @@ -61,8 +64,11 @@ class EntityComponent(object): Takes in a list of new entities. For each entity will see if it already exists. If not, will add it, set it up and push the first state. """ - for entity in new_entities: - if entity is not None and entity not in self.entities.values(): + with self.lock: + for entity in new_entities: + if entity is None or entity in self.entities.values(): + continue + entity.hass = self.hass if getattr(entity, 'entity_id', None) is None: @@ -74,23 +80,33 @@ class EntityComponent(object): entity.update_ha_state() - if self.group is None and self.group_name is not None: - self.group = group.Group(self.hass, self.group_name, - user_defined=False) + if self.group is None and self.group_name is not None: + self.group = group.Group(self.hass, self.group_name, + user_defined=False) - if self.group is not None: - self.group.update_tracked_entity_ids(self.entities.keys()) + if self.group is not None: + self.group.update_tracked_entity_ids(self.entities.keys()) - self._start_polling() + if self.is_polling or \ + not any(entity.should_poll for entity + in self.entities.values()): + return + + self.is_polling = True + + track_utc_time_change( + self.hass, self._update_entity_states, + second=range(0, 60, self.scan_interval)) def extract_from_service(self, service): """ Takes a service and extracts all known entities. Will return all if no entity IDs given in service. """ - if ATTR_ENTITY_ID not in service.data: - return self.entities.values() - else: + with self.lock: + if ATTR_ENTITY_ID not in service.data: + return list(self.entities.values()) + return [self.entities[entity_id] for entity_id in extract_entity_ids(self.hass, service) if entity_id in self.entities] @@ -99,9 +115,10 @@ class EntityComponent(object): """ Update the states of all the entities. """ self.logger.info("Updating %s entities", self.domain) - for entity in self.entities.values(): - if entity.should_poll: - entity.update_ha_state(True) + with self.lock: + for entity in self.entities.values(): + if entity.should_poll: + entity.update_ha_state(True) def _entity_discovered(self, service, info): """ Called when a entity is discovered. """ @@ -110,18 +127,6 @@ class EntityComponent(object): self._setup_platform(self.discovery_platforms[service], {}, info) - def _start_polling(self): - """ Start polling entities if necessary. """ - if self.is_polling or \ - not any(entity.should_poll for entity in self.entities.values()): - return - - self.is_polling = True - - track_utc_time_change( - self.hass, self._update_entity_states, - second=range(0, 60, self.scan_interval)) - def _setup_platform(self, platform_type, platform_config, discovery_info=None): """ Tries to setup a platform for this component. """ From 78cfed1fb0237e6f3e5a7613a79e63a8fb45a795 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 17:18:35 -0800 Subject: [PATCH 04/12] Clean up HTTP sessions and allow log out --- homeassistant/components/api.py | 11 +- homeassistant/components/frontend/__init__.py | 3 +- homeassistant/components/http.py | 212 ++++++++---------- homeassistant/const.py | 1 + 4 files changed, 108 insertions(+), 119 deletions(-) diff --git a/homeassistant/components/api.py b/homeassistant/components/api.py index 157593ab8dc..a81c0f3227f 100644 --- a/homeassistant/components/api.py +++ b/homeassistant/components/api.py @@ -18,7 +18,7 @@ from homeassistant.bootstrap import ERROR_LOG_FILENAME from homeassistant.const import ( URL_API, URL_API_STATES, URL_API_EVENTS, URL_API_SERVICES, URL_API_STREAM, URL_API_EVENT_FORWARD, URL_API_STATES_ENTITY, URL_API_COMPONENTS, - URL_API_CONFIG, URL_API_BOOTSTRAP, URL_API_ERROR_LOG, + URL_API_CONFIG, URL_API_BOOTSTRAP, URL_API_ERROR_LOG, URL_API_LOG_OUT, EVENT_TIME_CHANGED, EVENT_HOMEASSISTANT_STOP, MATCH_ALL, HTTP_OK, HTTP_CREATED, HTTP_BAD_REQUEST, HTTP_NOT_FOUND, HTTP_UNPROCESSABLE_ENTITY) @@ -89,6 +89,8 @@ def setup(hass, config): hass.http.register_path('GET', URL_API_ERROR_LOG, _handle_get_api_error_log) + hass.http.register_path('POST', URL_API_LOG_OUT, _handle_post_api_log_out) + return True @@ -347,6 +349,13 @@ def _handle_get_api_error_log(handler, path_match, data): False) +def _handle_post_api_log_out(handler, path_match, data): + """ Log user out. """ + handler.send_response(HTTP_OK) + handler.destroy_session() + handler.end_headers() + + def _services_json(hass): """ Generate services data to JSONify. """ return [{"domain": key, "services": value} diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py index 5a8fbed34e9..9bc46f86023 100644 --- a/homeassistant/components/frontend/__init__.py +++ b/homeassistant/components/frontend/__init__.py @@ -54,8 +54,7 @@ def setup(hass, config): def _handle_get_root(handler, path_match, data): - """ Renders the debug interface. """ - + """ Renders the frontend. """ handler.send_response(HTTP_OK) handler.send_header('Content-type', 'text/html; charset=utf-8') handler.end_headers() diff --git a/homeassistant/components/http.py b/homeassistant/components/http.py index 2dcf5e9c6a2..33290a159fa 100644 --- a/homeassistant/components/http.py +++ b/homeassistant/components/http.py @@ -12,10 +12,7 @@ import logging import time import gzip import os -import random -import string from datetime import timedelta -from homeassistant.util import Throttle from http.server import SimpleHTTPRequestHandler, HTTPServer from http import cookies from socketserver import ThreadingMixIn @@ -44,40 +41,34 @@ CONF_SESSIONS_ENABLED = "sessions_enabled" DATA_API_PASSWORD = 'api_password' # Throttling time in seconds for expired sessions check -MIN_SEC_SESSION_CLEARING = timedelta(seconds=20) +SESSION_CLEAR_INTERVAL = timedelta(seconds=20) SESSION_TIMEOUT_SECONDS = 1800 SESSION_KEY = 'sessionId' _LOGGER = logging.getLogger(__name__) -def setup(hass, config=None): +def setup(hass, config): """ Sets up the HTTP API and debug interface. """ - if config is None or DOMAIN not in config: - config = {DOMAIN: {}} - - api_password = util.convert(config[DOMAIN].get(CONF_API_PASSWORD), str) + conf = config[DOMAIN] + api_password = util.convert(conf.get(CONF_API_PASSWORD), str) no_password_set = api_password is None if no_password_set: api_password = util.get_random_string() # If no server host is given, accept all incoming requests - server_host = config[DOMAIN].get(CONF_SERVER_HOST, '0.0.0.0') - - server_port = config[DOMAIN].get(CONF_SERVER_PORT, SERVER_PORT) - - development = str(config[DOMAIN].get(CONF_DEVELOPMENT, "")) == "1" - - sessions_enabled = config[DOMAIN].get(CONF_SESSIONS_ENABLED, True) + server_host = conf.get(CONF_SERVER_HOST, '0.0.0.0') + server_port = conf.get(CONF_SERVER_PORT, SERVER_PORT) + development = str(conf.get(CONF_DEVELOPMENT, "")) == "1" try: server = HomeAssistantHTTPServer( (server_host, server_port), RequestHandler, hass, api_password, - development, no_password_set, sessions_enabled) + development, no_password_set) except OSError: - # Happens if address already in use + # If address already in use _LOGGER.exception("Error setting up HTTP server") return False @@ -102,8 +93,7 @@ class HomeAssistantHTTPServer(ThreadingMixIn, HTTPServer): # pylint: disable=too-many-arguments def __init__(self, server_address, request_handler_class, - hass, api_password, development, no_password_set, - sessions_enabled): + hass, api_password, development, no_password_set): super().__init__(server_address, request_handler_class) self.server_address = server_address @@ -112,7 +102,7 @@ class HomeAssistantHTTPServer(ThreadingMixIn, HTTPServer): self.development = development self.no_password_set = no_password_set self.paths = [] - self.sessions = SessionStore(sessions_enabled) + self.sessions = SessionStore() # We will lazy init this one if needed self.event_forwarder = None @@ -161,7 +151,8 @@ class RequestHandler(SimpleHTTPRequestHandler): def __init__(self, req, client_addr, server): """ Contructor, call the base constructor and set up session """ - self._session = None + # Track if this was an authenticated request + self.authenticated = False SimpleHTTPRequestHandler.__init__(self, req, client_addr, server) def log_message(self, fmt, *arguments): @@ -201,18 +192,18 @@ class RequestHandler(SimpleHTTPRequestHandler): "Error parsing JSON", HTTP_UNPROCESSABLE_ENTITY) return - self._session = self.get_session() if self.server.no_password_set: - api_password = self.server.api_password - else: + _LOGGER.warning('NO PASSWORD SET') + self.authenticated = True + elif HTTP_HEADER_HA_AUTH in self.headers: api_password = self.headers.get(HTTP_HEADER_HA_AUTH) if not api_password and DATA_API_PASSWORD in data: api_password = data[DATA_API_PASSWORD] - if not api_password and self._session is not None: - api_password = self._session.cookie_values.get( - CONF_API_PASSWORD) + self.authenticated = api_password == self.server.api_password + else: + self.authenticated = self.verify_session() if '_METHOD' in data: method = data.pop('_METHOD') @@ -245,18 +236,13 @@ class RequestHandler(SimpleHTTPRequestHandler): # Did we find a handler for the incoming request? if handle_request_method: - # For some calls we need a valid password - if require_auth and api_password != self.server.api_password: + if require_auth and not self.authenticated: self.write_json_message( "API password missing or incorrect.", HTTP_UNAUTHORIZED) + return - else: - if self._session is None and require_auth: - self._session = self.server.sessions.create( - api_password) - - handle_request_method(self, path_match, data) + handle_request_method(self, path_match, data) elif path_matched_but_not_method: self.send_response(HTTP_METHOD_NOT_ALLOWED) @@ -369,63 +355,62 @@ class RequestHandler(SimpleHTTPRequestHandler): self.date_time_string(time.time()+cache_time)) def set_session_cookie_header(self): - """ Add the header for the session cookie """ - if self.server.sessions.enabled and self._session is not None: - existing_sess_id = self.get_current_session_id() + """ Add the header for the session cookie. """ + if not self.authenticated: + return - if existing_sess_id != self._session.session_id: - self.send_header( - 'Set-Cookie', - SESSION_KEY+'='+self._session.session_id) + current = self.get_cookie_session_id() - def get_session(self): - """ Get the requested session object from cookie value """ - if self.server.sessions.enabled is not True: - return None + if current is not None: + self.server.sessions.extend_validation(current) + return - session_id = self.get_current_session_id() - if session_id is not None: - session = self.server.sessions.get(session_id) - if session is not None: - session.reset_expiry() - return session + self.send_header( + 'Set-Cookie', + '{}={}'.format(SESSION_KEY, self.server.sessions.create()) + ) - return None + def verify_session(self): + """ Verify that we are in a valid session. """ + return self.get_cookie_session_id() is not None - def get_current_session_id(self): + def get_cookie_session_id(self): """ Extracts the current session id from the - cookie or returns None if not set + cookie or returns None if not set or invalid """ + if 'Cookie' not in self.headers: + return None + cookie = cookies.SimpleCookie() + try: + cookie.load(self.headers["Cookie"]) + except cookies.CookieError: + return None - if self.headers.get('Cookie', None) is not None: - cookie.load(self.headers.get("Cookie")) + morsel = cookie.get(SESSION_KEY) - if cookie.get(SESSION_KEY, False): - return cookie[SESSION_KEY].value + if morsel is None: + return None - return None + current = cookie[SESSION_KEY].value + + return current if self.server.sessions.is_valid(current) else None + + def destroy_session(self): + """ Destroys session. """ + current = self.get_cookie_session_id() + + if current is None: + return + + self.send_header('Set-Cookie', '') + self.server.sessions.destroy(current) -class ServerSession: - """ A very simple session class """ - def __init__(self, session_id): - """ Set up the expiry time on creation """ - self._expiry = 0 - self.reset_expiry() - self.cookie_values = {} - self.session_id = session_id - - def reset_expiry(self): - """ Resets the expiry based on current time """ - self._expiry = date_util.utcnow() + timedelta( - seconds=SESSION_TIMEOUT_SECONDS) - - @property - def is_expired(self): - """ Return true if the session is expired based on the expiry time """ - return self._expiry < date_util.utcnow() +def session_valid_time(): + """ Time till when a session will be valid. """ + return date_util.utcnow() + timedelta(seconds=SESSION_TIMEOUT_SECONDS) class SessionStore(object): @@ -433,47 +418,42 @@ class SessionStore(object): def __init__(self, enabled=True): """ Set up the session store """ self._sessions = {} - self.enabled = enabled - self.session_lock = threading.RLock() + self.lock = threading.RLock() - @Throttle(MIN_SEC_SESSION_CLEARING) - def remove_expired(self): + @util.Throttle(SESSION_CLEAR_INTERVAL) + def _remove_expired(self): """ Remove any expired sessions. """ - if self.session_lock.acquire(False): - try: - keys = [] - for key in self._sessions.keys(): - keys.append(key) + now = date_util.utcnow() + for key in [key for key, valid_time in self._sessions.items() + if valid_time < now]: + self._sessions.pop(key) - for key in keys: - if self._sessions[key].is_expired: - del self._sessions[key] - _LOGGER.info("Cleared expired session %s", key) - finally: - self.session_lock.release() + def is_valid(self, key): + """ Return True if a valid session is given. """ + with self.lock: + self._remove_expired() - def add(self, key, session): - """ Add a new session to the list of tracked sessions """ - self.remove_expired() - with self.session_lock: - self._sessions[key] = session + return (key in self._sessions and + self._sessions[key] > date_util.utcnow()) - def get(self, key): - """ get a session by key """ - self.remove_expired() - session = self._sessions.get(key, None) - if session is not None and session.is_expired: - return None - return session + def extend_validation(self, key): + """ Extend a session validation time. """ + with self.lock: + self._sessions[key] = session_valid_time() - def create(self, api_password): - """ Creates a new session and adds it to the sessions """ - if self.enabled is not True: - return None + def destroy(self, key): + """ Destroy a session by key. """ + with self.lock: + self._sessions.pop(key, None) - chars = string.ascii_letters + string.digits - session_id = ''.join([random.choice(chars) for i in range(20)]) - session = ServerSession(session_id) - session.cookie_values[CONF_API_PASSWORD] = api_password - self.add(session_id, session) - return session + def create(self): + """ Creates a new session. """ + with self.lock: + session_id = util.get_random_string(20) + + while session_id in self._sessions: + session_id = util.get_random_string(20) + + self._sessions[session_id] = session_valid_time() + + return session_id diff --git a/homeassistant/const.py b/homeassistant/const.py index 1513c188cc2..af2fa86838b 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -164,6 +164,7 @@ URL_API_EVENT_FORWARD = "/api/event_forwarding" URL_API_COMPONENTS = "/api/components" URL_API_BOOTSTRAP = "/api/bootstrap" URL_API_ERROR_LOG = "/api/error_log" +URL_API_LOG_OUT = "/api/log_out" HTTP_OK = 200 HTTP_CREATED = 201 From 64ebe8c6d0f9d1fcbfb27e0770f5882b67fc8dd2 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 18:20:17 -0800 Subject: [PATCH 05/12] Update frontend splash screen --- .../components/frontend/index.html.template | 11 +- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/favicon-384x384.png | Bin 0 -> 19825 bytes .../frontend/www_static/frontend.html | 911 +++++++++--------- .../www_static/home-assistant-polymer | 2 +- .../frontend/www_static/manifest.json | 10 +- .../www_static/webcomponents-lite.min.js | 6 +- 7 files changed, 469 insertions(+), 473 deletions(-) create mode 100644 homeassistant/components/frontend/www_static/favicon-384x384.png diff --git a/homeassistant/components/frontend/index.html.template b/homeassistant/components/frontend/index.html.template index 409ea6752db..533fc43ac4e 100644 --- a/homeassistant/components/frontend/index.html.template +++ b/homeassistant/components/frontend/index.html.template @@ -8,6 +8,8 @@ + @@ -32,17 +34,14 @@ left: 0; right: 0; bottom: 0; - } - #init div { - line-height: 34px; - margin-bottom: 89px; + margin-bottom: 123px; }
- -
Initializing
+ +
diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index ed954909e66..7e957562bba 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "c90d40a0240cc1feec791ee820d928b3" +VERSION = "c1df3a08faa4a9978b25639ca0fd63cd" diff --git a/homeassistant/components/frontend/www_static/favicon-384x384.png b/homeassistant/components/frontend/www_static/favicon-384x384.png new file mode 100644 index 0000000000000000000000000000000000000000..51f67770790077d5e271231ebeadf09a08feb52c GIT binary patch literal 19825 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 CBmXY| literal 0 HcmV?d00001 diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 73b2ac1b7dd..cf19d314f24 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -1,6 +1,6 @@ -
\ No newline at end of file + } \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 62e494bd045..f29b1062b30 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 62e494bd04509e8d9b73354b0e17d3381955e0c8 +Subproject commit f29b1062b30c76ceeea87fd426a042d98358394a diff --git a/homeassistant/components/frontend/www_static/manifest.json b/homeassistant/components/frontend/www_static/manifest.json index 69143ce5179..3d0eb5fa443 100644 --- a/homeassistant/components/frontend/www_static/manifest.json +++ b/homeassistant/components/frontend/www_static/manifest.json @@ -5,10 +5,14 @@ "display": "standalone", "icons": [ { - "src": "\/static\/favicon-192x192.png", + "src": "/static/favicon-192x192.png", "sizes": "192x192", - "type": "image\/png", - "density": "4.0" + "type": "image/png", + }, + { + "src": "/static/favicon-384x384.png", + "sizes": "384x384", + "type": "image/png", } ] } diff --git a/homeassistant/components/frontend/www_static/webcomponents-lite.min.js b/homeassistant/components/frontend/www_static/webcomponents-lite.min.js index 3a3fd4e8564..4f8af01fd15 100644 --- a/homeassistant/components/frontend/www_static/webcomponents-lite.min.js +++ b/homeassistant/components/frontend/www_static/webcomponents-lite.min.js @@ -7,6 +7,6 @@ * 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 */ -// @version 0.7.17 -!function(){window.WebComponents=window.WebComponents||{flags:{}};var e="webcomponents-lite.js",t=document.querySelector('script[src*="'+e+'"]'),n={};if(!n.noOpts){if(location.search.slice(1).split("&").forEach(function(e){var t,r=e.split("=");r[0]&&(t=r[0].match(/wc-(.+)/))&&(n[t[1]]=r[1]||!0)}),t)for(var r,o=0;r=t.attributes[o];o++)"src"!==r.name&&(n[r.name]=r.value||!0);if(n.log&&n.log.split){var i=n.log.split(",");n.log={},i.forEach(function(e){n.log[e]=!0})}else n.log={}}n.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=n.register),WebComponents.flags=n}(),function(e){"use strict";function t(e){return void 0!==h[e]}function n(){s.call(this),this._isInvalid=!0}function r(e){return""==e&&n.call(this),e.toLowerCase()}function o(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,63,96].indexOf(t)?e:encodeURIComponent(e)}function i(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,96].indexOf(t)?e:encodeURIComponent(e)}function a(e,a,s){function c(e){g.push(e)}var d=a||"scheme start",u=0,l="",_=!1,w=!1,g=[];e:for(;(e[u-1]!=p||0==u)&&!this._isInvalid;){var b=e[u];switch(d){case"scheme start":if(!b||!m.test(b)){if(a){c("Invalid scheme.");break e}l="",d="no scheme";continue}l+=b.toLowerCase(),d="scheme";break;case"scheme":if(b&&v.test(b))l+=b.toLowerCase();else{if(":"!=b){if(a){if(p==b)break e;c("Code point not allowed in scheme: "+b);break e}l="",u=0,d="no scheme";continue}if(this._scheme=l,l="",a)break e;t(this._scheme)&&(this._isRelative=!0),d="file"==this._scheme?"relative":this._isRelative&&s&&s._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==b?(this._query="?",d="query"):"#"==b?(this._fragment="#",d="fragment"):p!=b&&" "!=b&&"\n"!=b&&"\r"!=b&&(this._schemeData+=o(b));break;case"no scheme":if(s&&t(s._scheme)){d="relative";continue}c("Missing scheme."),n.call(this);break;case"relative or authority":if("/"!=b||"/"!=e[u+1]){c("Expected /, got: "+b),d="relative";continue}d="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=s._scheme),p==b){this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._username=s._username,this._password=s._password;break e}if("/"==b||"\\"==b)"\\"==b&&c("\\ is an invalid code point."),d="relative slash";else if("?"==b)this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query="?",this._username=s._username,this._password=s._password,d="query";else{if("#"!=b){var y=e[u+1],E=e[u+2];("file"!=this._scheme||!m.test(b)||":"!=y&&"|"!=y||p!=E&&"/"!=E&&"\\"!=E&&"?"!=E&&"#"!=E)&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password,this._path=s._path.slice(),this._path.pop()),d="relative path";continue}this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._fragment="#",this._username=s._username,this._password=s._password,d="fragment"}break;case"relative slash":if("/"!=b&&"\\"!=b){"file"!=this._scheme&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password),d="relative path";continue}"\\"==b&&c("\\ is an invalid code point."),d="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=b){c("Expected '/', got: "+b),d="authority ignore slashes";continue}d="authority second slash";break;case"authority second slash":if(d="authority ignore slashes","/"!=b){c("Expected '/', got: "+b);continue}break;case"authority ignore slashes":if("/"!=b&&"\\"!=b){d="authority";continue}c("Expected authority, got: "+b);break;case"authority":if("@"==b){_&&(c("@ already seen."),l+="%40"),_=!0;for(var L=0;L>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=n}(),function(e){function t(e){b.push(e),g||(g=!0,m(r))}function n(e){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e}function r(){g=!1;var e=b;b=[],e.sort(function(e,t){return e.uid_-t.uid_});var t=!1;e.forEach(function(e){var n=e.takeRecords();o(e),n.length&&(e.callback_(n,e),t=!0)}),t&&r()}function o(e){e.nodes_.forEach(function(t){var n=v.get(t);n&&n.forEach(function(t){t.observer===e&&t.removeTransientObservers()})})}function i(e,t){for(var n=e;n;n=n.parentNode){var r=v.get(n);if(r)for(var o=0;o0){var o=n[r-1],i=f(o,e);if(i)return void(n[r-1]=i)}else t(this.observer);n[r]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=v.get(e);t||v.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=v.get(e),n=0;n":return">";case" ":return" "}}function t(t){return t.replace(a,e)}var n="template",r=document.implementation.createHTMLDocument("template"),o=!0;HTMLTemplateElement=function(){},HTMLTemplateElement.prototype=Object.create(HTMLElement.prototype),HTMLTemplateElement.decorate=function(e){e.content||(e.content=r.createDocumentFragment());for(var n;n=e.firstChild;)e.content.appendChild(n);if(o)try{Object.defineProperty(e,"innerHTML",{get:function(){for(var e="",n=this.content.firstChild;n;n=n.nextSibling)e+=n.outerHTML||t(n.data);return e},set:function(e){for(r.body.innerHTML=e,HTMLTemplateElement.bootstrap(r);this.content.firstChild;)this.content.removeChild(this.content.firstChild);for(;r.body.firstChild;)this.content.appendChild(r.body.firstChild)},configurable:!0})}catch(i){o=!1}},HTMLTemplateElement.bootstrap=function(e){for(var t,r=e.querySelectorAll(n),o=0,i=r.length;i>o&&(t=r[o]);o++)HTMLTemplateElement.decorate(t)},document.addEventListener("DOMContentLoaded",function(){HTMLTemplateElement.bootstrap(document)});var i=document.createElement;document.createElement=function(){"use strict";var e=i.apply(document,arguments);return"template"==e.localName&&HTMLTemplateElement.decorate(e),e};var a=/[&\u00A0<>]/g}(),function(e){"use strict";if(!window.performance){var t=Date.now();window.performance={now:function(){return Date.now()-t}}}window.requestAnimationFrame||(window.requestAnimationFrame=function(){var e=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return e?function(t){return e(function(){t(performance.now())})}:function(e){return window.setTimeout(e,1e3/60)}}()),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){clearTimeout(e)}}());var n=function(){var e=document.createEvent("Event");return e.initEvent("foo",!0,!0),e.preventDefault(),e.defaultPrevented}();if(!n){var r=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(r.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}}))}}var o=/Trident/.test(navigator.userAgent);if((!window.CustomEvent||o&&"function"!=typeof window.CustomEvent)&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n},window.CustomEvent.prototype=window.Event.prototype),!window.Event||o&&"function"!=typeof window.Event){var i=window.Event;window.Event=function(e,t){t=t||{};var n=document.createEvent("Event");return n.initEvent(e,Boolean(t.bubbles),Boolean(t.cancelable)),n},window.Event.prototype=i.prototype}}(window.WebComponents),window.HTMLImports=window.HTMLImports||{flags:{}},function(e){function t(e,t){t=t||p,r(function(){i(e,t)},t)}function n(e){return"complete"===e.readyState||e.readyState===_}function r(e,t){if(n(t))e&&e();else{var o=function(){("complete"===t.readyState||t.readyState===_)&&(t.removeEventListener(w,o),r(e,t))};t.addEventListener(w,o)}}function o(e){e.target.__loaded=!0}function i(e,t){function n(){c==d&&e&&e({allImports:s,loadedImports:u,errorImports:l})}function r(e){o(e),u.push(this),c++,n()}function i(e){l.push(this),c++,n()}var s=t.querySelectorAll("link[rel=import]"),c=0,d=s.length,u=[],l=[];if(d)for(var h,f=0;d>f&&(h=s[f]);f++)a(h)?(c++,n()):(h.addEventListener("load",r),h.addEventListener("error",i));else n()}function a(e){return l?e.__loaded||e["import"]&&"loading"!==e["import"].readyState:e.__importParsed}function s(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)c(t)&&d(t)}function c(e){return"link"===e.localName&&"import"===e.rel}function d(e){var t=e["import"];t?o({target:e}):(e.addEventListener("load",o),e.addEventListener("error",o))}var u="import",l=Boolean(u in document.createElement("link")),h=Boolean(window.ShadowDOMPolyfill),f=function(e){return h?window.ShadowDOMPolyfill.wrapIfNeeded(e):e},p=f(document),m={get:function(){var e=window.HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return f(e)},configurable:!0};Object.defineProperty(document,"_currentScript",m),Object.defineProperty(p,"_currentScript",m);var v=/Trident/.test(navigator.userAgent),_=v?"complete":"interactive",w="readystatechange";l&&(new MutationObserver(function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.addedNodes&&s(t.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var e,t=document.querySelectorAll("link[rel=import]"),n=0,r=t.length;r>n&&(e=t[n]);n++)d(e)}()),t(function(e){window.HTMLImports.ready=!0,window.HTMLImports.readyTime=(new Date).getTime();var t=p.createEvent("CustomEvent");t.initCustomEvent("HTMLImportsLoaded",!0,!0,e),p.dispatchEvent(t)}),e.IMPORT_LINK_TYPE=u,e.useNative=l,e.rootDocument=p,e.whenReady=t,e.isIE=v}(window.HTMLImports),function(e){var t=[],n=function(e){t.push(e)},r=function(){t.forEach(function(t){t(e)})};e.addModule=n,e.initializeModules=r}(window.HTMLImports),window.HTMLImports.addModule(function(e){var t=/(url\()([^)]*)(\))/g,n=/(@import[\s]+(?!url\())([^;]*)(;)/g,r={resolveUrlsInStyle:function(e,t){var n=e.ownerDocument,r=n.createElement("a");return e.textContent=this.resolveUrlsInCssText(e.textContent,t,r),e},resolveUrlsInCssText:function(e,r,o){var i=this.replaceUrls(e,o,r,t);return i=this.replaceUrls(i,o,r,n)},replaceUrls:function(e,t,n,r){return e.replace(r,function(e,r,o,i){var a=o.replace(/["']/g,"");return n&&(a=new URL(a,n).href),t.href=a,a=t.href,r+"'"+a+"'"+i})}};e.path=r}),window.HTMLImports.addModule(function(e){var t={async:!0,ok:function(e){return e.status>=200&&e.status<300||304===e.status||0===e.status},load:function(n,r,o){var i=new XMLHttpRequest;return(e.flags.debug||e.flags.bust)&&(n+="?"+Math.random()),i.open("GET",n,t.async),i.addEventListener("readystatechange",function(e){if(4===i.readyState){var n=null;try{var a=i.getResponseHeader("Location");a&&(n="/"===a.substr(0,1)?location.origin+a:a)}catch(e){console.error(e.message)}r.call(o,!t.ok(i)&&i,i.response||i.responseText,n)}}),i.send(),i},loadDocument:function(e,t,n){this.load(e,t,n).responseType="document"}};e.xhr=t}),window.HTMLImports.addModule(function(e){var t=e.xhr,n=e.flags,r=function(e,t){this.cache={},this.onload=e,this.oncomplete=t,this.inflight=0,this.pending={}};r.prototype={addNodes:function(e){this.inflight+=e.length;for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)this.require(t);this.checkDone()},addNode:function(e){this.inflight++,this.require(e),this.checkDone()},require:function(e){var t=e.src||e.href;e.__nodeUrl=t,this.dedupe(t,e)||this.fetch(t,e)},dedupe:function(e,t){if(this.pending[e])return this.pending[e].push(t),!0;return this.cache[e]?(this.onload(e,t,this.cache[e]),this.tail(),!0):(this.pending[e]=[t],!1)},fetch:function(e,r){if(n.load&&console.log("fetch",e,r),e)if(e.match(/^data:/)){var o=e.split(","),i=o[0],a=o[1];a=i.indexOf(";base64")>-1?atob(a):decodeURIComponent(a),setTimeout(function(){this.receive(e,r,null,a)}.bind(this),0)}else{var s=function(t,n,o){this.receive(e,r,t,n,o)}.bind(this);t.load(e,s)}else setTimeout(function(){this.receive(e,r,{error:"href must be specified"},null)}.bind(this),0)},receive:function(e,t,n,r,o){this.cache[e]=r;for(var i,a=this.pending[e],s=0,c=a.length;c>s&&(i=a[s]);s++)this.onload(e,i,r,n,o),this.tail();this.pending[e]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},e.Loader=r}),window.HTMLImports.addModule(function(e){var t=function(e){this.addCallback=e,this.mo=new MutationObserver(this.handler.bind(this))};t.prototype={handler:function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)"childList"===t.type&&t.addedNodes.length&&this.addedNodes(t.addedNodes)},addedNodes:function(e){this.addCallback&&this.addCallback(e);for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.children&&t.children.length&&this.addedNodes(t.children)},observe:function(e){this.mo.observe(e,{childList:!0,subtree:!0})}},e.Observer=t}),window.HTMLImports.addModule(function(e){function t(e){return"link"===e.localName&&e.rel===u}function n(e){var t=r(e);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(t)}function r(e){return e.textContent+o(e)}function o(e){var t=e.ownerDocument;t.__importedScripts=t.__importedScripts||0;var n=e.ownerDocument.baseURI,r=t.__importedScripts?"-"+t.__importedScripts:"";return t.__importedScripts++,"\n//# sourceURL="+n+r+".js\n"}function i(e){var t=e.ownerDocument.createElement("style");return t.textContent=e.textContent,a.resolveUrlsInStyle(t),t}var a=e.path,s=e.rootDocument,c=e.flags,d=e.isIE,u=e.IMPORT_LINK_TYPE,l="link[rel="+u+"]",h={documentSelectors:l,importsSelectors:[l,"link[rel=stylesheet]:not([type])","style:not([type])","script:not([type])",'script[type="application/javascript"]','script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var e=this.nextToParse();e&&this.parse(e)},parse:function(e){if(this.isParsed(e))return void(c.parse&&console.log("[%s] is already parsed",e.localName));var t=this[this.map[e.localName]];t&&(this.markParsing(e),t.call(this,e))},parseDynamic:function(e,t){this.dynamicElements.push(e),t||this.parseNext()},markParsing:function(e){c.parse&&console.log("parsing",e),this.parsingElement=e},markParsingComplete:function(e){e.__importParsed=!0,this.markDynamicParsingComplete(e),e.__importElement&&(e.__importElement.__importParsed=!0,this.markDynamicParsingComplete(e.__importElement)),this.parsingElement=null,c.parse&&console.log("completed",e)},markDynamicParsingComplete:function(e){var t=this.dynamicElements.indexOf(e);t>=0&&this.dynamicElements.splice(t,1)},parseImport:function(e){if(e["import"]=e.__doc,window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(e),e["import"]&&(e["import"].__importParsed=!0),this.markParsingComplete(e),e.__resource&&!e.__error?e.dispatchEvent(new CustomEvent("load",{bubbles:!1})):e.dispatchEvent(new CustomEvent("error",{bubbles:!1})),e.__pending)for(var t;e.__pending.length;)t=e.__pending.shift(),t&&t({target:e});this.parseNext()},parseLink:function(e){t(e)?this.parseImport(e):(e.href=e.href,this.parseGeneric(e))},parseStyle:function(e){var t=e;e=i(e),t.__appliedElement=e,e.__importElement=t,this.parseGeneric(e)},parseGeneric:function(e){this.trackElement(e),this.addElementToDocument(e)},rootImportForElement:function(e){for(var t=e;t.ownerDocument.__importLink;)t=t.ownerDocument.__importLink;return t},addElementToDocument:function(e){var t=this.rootImportForElement(e.__importElement||e);t.parentNode.insertBefore(e,t)},trackElement:function(e,t){var n=this,r=function(o){e.removeEventListener("load",r),e.removeEventListener("error",r),t&&t(o),n.markParsingComplete(e),n.parseNext()};if(e.addEventListener("load",r),e.addEventListener("error",r),d&&"style"===e.localName){var o=!1;if(-1==e.textContent.indexOf("@import"))o=!0;else if(e.sheet){o=!0;for(var i,a=e.sheet.cssRules,s=a?a.length:0,c=0;s>c&&(i=a[c]);c++)i.type===CSSRule.IMPORT_RULE&&(o=o&&Boolean(i.styleSheet))}o&&setTimeout(function(){e.dispatchEvent(new CustomEvent("load",{bubbles:!1}))})}},parseScript:function(t){var r=document.createElement("script");r.__importElement=t,r.src=t.src?t.src:n(t),e.currentScript=t,this.trackElement(r,function(t){r.parentNode&&r.parentNode.removeChild(r),e.currentScript=null}),this.addElementToDocument(r)},nextToParse:function(){return this._mayParse=[],!this.parsingElement&&(this.nextToParseInDoc(s)||this.nextToParseDynamic())},nextToParseInDoc:function(e,n){if(e&&this._mayParse.indexOf(e)<0){this._mayParse.push(e);for(var r,o=e.querySelectorAll(this.parseSelectorsForNode(e)),i=0,a=o.length;a>i&&(r=o[i]);i++)if(!this.isParsed(r))return this.hasResource(r)?t(r)?this.nextToParseInDoc(r.__doc,r):r:void 0}return n},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===s?this.documentSelectors:this.importsSelectors},isParsed:function(e){return e.__importParsed},needsDynamicParsing:function(e){return this.dynamicElements.indexOf(e)>=0},hasResource:function(e){return t(e)&&void 0===e.__doc?!1:!0}};e.parser=h,e.IMPORT_SELECTOR=l}),window.HTMLImports.addModule(function(e){function t(e){return n(e,a)}function n(e,t){return"link"===e.localName&&e.getAttribute("rel")===t}function r(e){return!!Object.getOwnPropertyDescriptor(e,"baseURI")}function o(e,t){var n=document.implementation.createHTMLDocument(a);n._URL=t;var o=n.createElement("base");o.setAttribute("href",t),n.baseURI||r(n)||Object.defineProperty(n,"baseURI",{value:t});var i=n.createElement("meta");return i.setAttribute("charset","utf-8"),n.head.appendChild(i),n.head.appendChild(o),n.body.innerHTML=e,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(n),n}var i=e.flags,a=e.IMPORT_LINK_TYPE,s=e.IMPORT_SELECTOR,c=e.rootDocument,d=e.Loader,u=e.Observer,l=e.parser,h={documents:{},documentPreloadSelectors:s,importsPreloadSelectors:[s].join(","),loadNode:function(e){f.addNode(e)},loadSubtree:function(e){var t=this.marshalNodes(e);f.addNodes(t)},marshalNodes:function(e){return e.querySelectorAll(this.loadSelectorsForNode(e))},loadSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===c?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(e,n,r,a,s){if(i.load&&console.log("loaded",e,n),n.__resource=r,n.__error=a,t(n)){var c=this.documents[e];void 0===c&&(c=a?null:o(r,s||e),c&&(c.__importLink=n,this.bootDocument(c)),this.documents[e]=c),n.__doc=c}l.parseNext()},bootDocument:function(e){this.loadSubtree(e),this.observer.observe(e),l.parseNext()},loadedAll:function(){l.parseNext()}},f=new d(h.loaded.bind(h),h.loadedAll.bind(h));if(h.observer=new u,!document.baseURI){var p={get:function(){var e=document.querySelector("base");return e?e.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",p),Object.defineProperty(c,"baseURI",p)}e.importer=h,e.importLoader=f}),window.HTMLImports.addModule(function(e){var t=e.parser,n=e.importer,r={added:function(e){for(var r,o,i,a,s=0,c=e.length;c>s&&(a=e[s]);s++)r||(r=a.ownerDocument,o=t.isParsed(r)),i=this.shouldLoadNode(a),i&&n.loadNode(a),this.shouldParseNode(a)&&o&&t.parseDynamic(a,i)},shouldLoadNode:function(e){return 1===e.nodeType&&o.call(e,n.loadSelectorsForNode(e))},shouldParseNode:function(e){return 1===e.nodeType&&o.call(e,t.parseSelectorsForNode(e))}};n.observer.addCallback=r.added.bind(r);var o=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector}),function(e){function t(){window.HTMLImports.importer.bootDocument(r)}var n=e.initializeModules;e.isIE;if(!e.useNative){n();var r=e.rootDocument;"complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?t():document.addEventListener("DOMContentLoaded",t)}}(window.HTMLImports),window.CustomElements=window.CustomElements||{flags:{}},function(e){var t=e.flags,n=[],r=function(e){n.push(e)},o=function(){n.forEach(function(t){t(e)})};e.addModule=r,e.initializeModules=o,e.hasNative=Boolean(document.registerElement),e.isIE=/Trident/.test(navigator.userAgent),e.useNative=!t.register&&e.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||window.HTMLImports.useNative)}(window.CustomElements),window.CustomElements.addModule(function(e){function t(e,t){n(e,function(e){return t(e)?!0:void r(e,t)}),r(e,t)}function n(e,t,r){var o=e.firstElementChild;if(!o)for(o=e.firstChild;o&&o.nodeType!==Node.ELEMENT_NODE;)o=o.nextSibling;for(;o;)t(o,r)!==!0&&n(o,t,r),o=o.nextElementSibling;return null}function r(e,n){for(var r=e.shadowRoot;r;)t(r,n),r=r.olderShadowRoot}function o(e,t){i(e,t,[])}function i(e,t,n){if(e=window.wrap(e),!(n.indexOf(e)>=0)){n.push(e);for(var r,o=e.querySelectorAll("link[rel="+a+"]"),s=0,c=o.length;c>s&&(r=o[s]);s++)r["import"]&&i(r["import"],t,n);t(e)}}var a=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";e.forDocumentTree=o,e.forSubtree=t}),window.CustomElements.addModule(function(e){function t(e,t){return n(e,t)||r(e,t)}function n(t,n){return e.upgrade(t,n)?!0:void(n&&a(t))}function r(e,t){b(e,function(e){return n(e,t)?!0:void 0})}function o(e){T.push(e),L||(L=!0,setTimeout(i))}function i(){L=!1;for(var e,t=T,n=0,r=t.length;r>n&&(e=t[n]);n++)e();T=[]}function a(e){E?o(function(){s(e)}):s(e)}function s(e){e.__upgraded__&&!e.__attached&&(e.__attached=!0,e.attachedCallback&&e.attachedCallback())}function c(e){d(e),b(e,function(e){d(e)})}function d(e){E?o(function(){u(e)}):u(e)}function u(e){e.__upgraded__&&e.__attached&&(e.__attached=!1,e.detachedCallback&&e.detachedCallback())}function l(e){for(var t=e,n=window.wrap(document);t;){if(t==n)return!0;t=t.parentNode||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&t.host}}function h(e){if(e.shadowRoot&&!e.shadowRoot.__watched){g.dom&&console.log("watching shadow-root for: ",e.localName);for(var t=e.shadowRoot;t;)m(t),t=t.olderShadowRoot}}function f(e,n){if(g.dom){var r=n[0];if(r&&"childList"===r.type&&r.addedNodes&&r.addedNodes){for(var o=r.addedNodes[0];o&&o!==document&&!o.host;)o=o.parentNode;var i=o&&(o.URL||o._URL||o.host&&o.host.localName)||"";i=i.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",n.length,i||"")}var a=l(e);n.forEach(function(e){"childList"===e.type&&(M(e.addedNodes,function(e){e.localName&&t(e,a)}),M(e.removedNodes,function(e){e.localName&&c(e)}))}),g.dom&&console.groupEnd()}function p(e){for(e=window.wrap(e),e||(e=window.wrap(document));e.parentNode;)e=e.parentNode;var t=e.__observer;t&&(f(e,t.takeRecords()),i())}function m(e){if(!e.__observer){var t=new MutationObserver(f.bind(this,e));t.observe(e,{childList:!0,subtree:!0}),e.__observer=t}}function v(e){e=window.wrap(e),g.dom&&console.group("upgradeDocument: ",e.baseURI.split("/").pop());var n=e===window.wrap(document); -t(e,n),m(e),g.dom&&console.groupEnd()}function _(e){y(e,v)}function w(e){HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(e),t(e)}var g=e.flags,b=e.forSubtree,y=e.forDocumentTree,E=window.MutationObserver._isPolyfilled&&g["throttle-attached"];e.hasPolyfillMutations=E,e.hasThrottledAttached=E;var L=!1,T=[],M=Array.prototype.forEach.call.bind(Array.prototype.forEach),N=Element.prototype.createShadowRoot;N&&(Element.prototype.createShadowRoot=function(){var e=N.call(this);return window.CustomElements.watchShadow(this),e}),e.watchShadow=h,e.upgradeDocumentTree=_,e.upgradeDocument=v,e.upgradeSubtree=r,e.upgradeAll=w,e.attached=a,e.takeRecords=p}),window.CustomElements.addModule(function(e){function t(t,r){if(!t.__upgraded__&&t.nodeType===Node.ELEMENT_NODE){var o=t.getAttribute("is"),i=e.getRegisteredDefinition(t.localName)||e.getRegisteredDefinition(o);if(i&&(o&&i.tag==t.localName||!o&&!i["extends"]))return n(t,i,r)}}function n(t,n,o){return a.upgrade&&console.group("upgrade:",t.localName),n.is&&t.setAttribute("is",n.is),r(t,n),t.__upgraded__=!0,i(t),o&&e.attached(t),e.upgradeSubtree(t,o),a.upgrade&&console.groupEnd(),t}function r(e,t){Object.__proto__?e.__proto__=t.prototype:(o(e,t.prototype,t["native"]),e.__proto__=t.prototype)}function o(e,t,n){for(var r={},o=t;o!==n&&o!==HTMLElement.prototype;){for(var i,a=Object.getOwnPropertyNames(o),s=0;i=a[s];s++)r[i]||(Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(o,i)),r[i]=1);o=Object.getPrototypeOf(o)}}function i(e){e.createdCallback&&e.createdCallback()}var a=e.flags;e.upgrade=t,e.upgradeWithDefinition=n,e.implementPrototype=r}),window.CustomElements.addModule(function(e){function t(t,r){var c=r||{};if(!t)throw new Error("document.registerElement: first argument `name` must not be empty");if(t.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(t)+"'.");if(o(t))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(t)+"'. The type name is invalid.");if(d(t))throw new Error("DuplicateDefinitionError: a type with name '"+String(t)+"' is already registered");return c.prototype||(c.prototype=Object.create(HTMLElement.prototype)),c.__name=t.toLowerCase(),c.lifecycle=c.lifecycle||{},c.ancestry=i(c["extends"]),a(c),s(c),n(c.prototype),u(c.__name,c),c.ctor=l(c),c.ctor.prototype=c.prototype,c.prototype.constructor=c.ctor,e.ready&&_(document),c.ctor}function n(e){if(!e.setAttribute._polyfilled){var t=e.setAttribute;e.setAttribute=function(e,n){r.call(this,e,n,t)};var n=e.removeAttribute;e.removeAttribute=function(e){r.call(this,e,null,n)},e.setAttribute._polyfilled=!0}}function r(e,t,n){e=e.toLowerCase();var r=this.getAttribute(e);n.apply(this,arguments);var o=this.getAttribute(e);this.attributeChangedCallback&&o!==r&&this.attributeChangedCallback(e,r,o)}function o(e){for(var t=0;t=0&&b(r,HTMLElement),r)}function p(e,t){var n=e[t];e[t]=function(){var e=n.apply(this,arguments);return w(e),e}}var m,v=e.isIE,_=e.upgradeDocumentTree,w=e.upgradeAll,g=e.upgradeWithDefinition,b=e.implementPrototype,y=e.useNative,E=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],L={},T="http://www.w3.org/1999/xhtml",M=document.createElement.bind(document),N=document.createElementNS.bind(document);m=Object.__proto__||y?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;for(var n=e;n;){if(n===t.prototype)return!0;n=n.__proto__}return!1},p(Node.prototype,"cloneNode"),p(document,"importNode"),v&&!function(){var e=document.importNode;document.importNode=function(){var t=e.apply(document,arguments);if(t.nodeType==t.DOCUMENT_FRAGMENT_NODE){var n=document.createDocumentFragment();return n.appendChild(t),n}return t}}(),document.registerElement=t,document.createElement=f,document.createElementNS=h,e.registry=L,e["instanceof"]=m,e.reservedTagList=E,e.getRegisteredDefinition=d,document.register=document.registerElement}),function(e){function t(){i(window.wrap(document)),window.CustomElements.ready=!0;var e=window.requestAnimationFrame||function(e){setTimeout(e,16)};e(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})})}var n=e.useNative,r=e.initializeModules;e.isIE;if(n){var o=function(){};e.watchShadow=o,e.upgrade=o,e.upgradeAll=o,e.upgradeDocumentTree=o,e.upgradeSubtree=o,e.takeRecords=o,e["instanceof"]=function(e,t){return e instanceof t}}else r();var i=e.upgradeDocumentTree,a=e.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(e){e["import"]&&a(wrap(e["import"]))}),"complete"===document.readyState||e.flags.eager)t();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var s=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(s,t)}else t()}(window.CustomElements),function(e){var t=document.createElement("style");t.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var n=document.querySelector("head");n.insertBefore(t,n.firstChild)}(window.WebComponents); \ No newline at end of file +// @version 0.7.18 +!function(){window.WebComponents=window.WebComponents||{flags:{}};var e="webcomponents-lite.js",t=document.querySelector('script[src*="'+e+'"]'),n={};if(!n.noOpts){if(location.search.slice(1).split("&").forEach(function(e){var t,r=e.split("=");r[0]&&(t=r[0].match(/wc-(.+)/))&&(n[t[1]]=r[1]||!0)}),t)for(var r,o=0;r=t.attributes[o];o++)"src"!==r.name&&(n[r.name]=r.value||!0);if(n.log&&n.log.split){var i=n.log.split(",");n.log={},i.forEach(function(e){n.log[e]=!0})}else n.log={}}n.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=n.register),WebComponents.flags=n}(),function(e){"use strict";function t(e){return void 0!==h[e]}function n(){s.call(this),this._isInvalid=!0}function r(e){return""==e&&n.call(this),e.toLowerCase()}function o(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,63,96].indexOf(t)?e:encodeURIComponent(e)}function i(e){var t=e.charCodeAt(0);return t>32&&127>t&&-1==[34,35,60,62,96].indexOf(t)?e:encodeURIComponent(e)}function a(e,a,s){function c(e){g.push(e)}var d=a||"scheme start",u=0,l="",w=!1,_=!1,g=[];e:for(;(e[u-1]!=p||0==u)&&!this._isInvalid;){var b=e[u];switch(d){case"scheme start":if(!b||!m.test(b)){if(a){c("Invalid scheme.");break e}l="",d="no scheme";continue}l+=b.toLowerCase(),d="scheme";break;case"scheme":if(b&&v.test(b))l+=b.toLowerCase();else{if(":"!=b){if(a){if(p==b)break e;c("Code point not allowed in scheme: "+b);break e}l="",u=0,d="no scheme";continue}if(this._scheme=l,l="",a)break e;t(this._scheme)&&(this._isRelative=!0),d="file"==this._scheme?"relative":this._isRelative&&s&&s._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==b?(this._query="?",d="query"):"#"==b?(this._fragment="#",d="fragment"):p!=b&&" "!=b&&"\n"!=b&&"\r"!=b&&(this._schemeData+=o(b));break;case"no scheme":if(s&&t(s._scheme)){d="relative";continue}c("Missing scheme."),n.call(this);break;case"relative or authority":if("/"!=b||"/"!=e[u+1]){c("Expected /, got: "+b),d="relative";continue}d="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=s._scheme),p==b){this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._username=s._username,this._password=s._password;break e}if("/"==b||"\\"==b)"\\"==b&&c("\\ is an invalid code point."),d="relative slash";else if("?"==b)this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query="?",this._username=s._username,this._password=s._password,d="query";else{if("#"!=b){var y=e[u+1],E=e[u+2];("file"!=this._scheme||!m.test(b)||":"!=y&&"|"!=y||p!=E&&"/"!=E&&"\\"!=E&&"?"!=E&&"#"!=E)&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password,this._path=s._path.slice(),this._path.pop()),d="relative path";continue}this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._fragment="#",this._username=s._username,this._password=s._password,d="fragment"}break;case"relative slash":if("/"!=b&&"\\"!=b){"file"!=this._scheme&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password),d="relative path";continue}"\\"==b&&c("\\ is an invalid code point."),d="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=b){c("Expected '/', got: "+b),d="authority ignore slashes";continue}d="authority second slash";break;case"authority second slash":if(d="authority ignore slashes","/"!=b){c("Expected '/', got: "+b);continue}break;case"authority ignore slashes":if("/"!=b&&"\\"!=b){d="authority";continue}c("Expected authority, got: "+b);break;case"authority":if("@"==b){w&&(c("@ already seen."),l+="%40"),w=!0;for(var L=0;L>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return t&&t[0]===e?(t[0]=t[1]=void 0,!0):!1},has:function(e){var t=e[this.name];return t?t[0]===e:!1}},window.WeakMap=n}(),function(e){function t(e){b.push(e),g||(g=!0,m(r))}function n(e){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e}function r(){g=!1;var e=b;b=[],e.sort(function(e,t){return e.uid_-t.uid_});var t=!1;e.forEach(function(e){var n=e.takeRecords();o(e),n.length&&(e.callback_(n,e),t=!0)}),t&&r()}function o(e){e.nodes_.forEach(function(t){var n=v.get(t);n&&n.forEach(function(t){t.observer===e&&t.removeTransientObservers()})})}function i(e,t){for(var n=e;n;n=n.parentNode){var r=v.get(n);if(r)for(var o=0;o0){var o=n[r-1],i=f(o,e);if(i)return void(n[r-1]=i)}else t(this.observer);n[r]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=v.get(e);t||v.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=v.get(e),n=0;n":return">";case" ":return" "}}function t(t){return t.replace(a,e)}var n="template",r=document.implementation.createHTMLDocument("template"),o=!0;HTMLTemplateElement=function(){},HTMLTemplateElement.prototype=Object.create(HTMLElement.prototype),HTMLTemplateElement.decorate=function(e){if(!e.content){e.content=r.createDocumentFragment();for(var n;n=e.firstChild;)e.content.appendChild(n);if(o)try{Object.defineProperty(e,"innerHTML",{get:function(){for(var e="",n=this.content.firstChild;n;n=n.nextSibling)e+=n.outerHTML||t(n.data);return e},set:function(e){for(r.body.innerHTML=e,HTMLTemplateElement.bootstrap(r);this.content.firstChild;)this.content.removeChild(this.content.firstChild);for(;r.body.firstChild;)this.content.appendChild(r.body.firstChild)},configurable:!0})}catch(i){o=!1}HTMLTemplateElement.bootstrap(e.content)}},HTMLTemplateElement.bootstrap=function(e){for(var t,r=e.querySelectorAll(n),o=0,i=r.length;i>o&&(t=r[o]);o++)HTMLTemplateElement.decorate(t)},document.addEventListener("DOMContentLoaded",function(){HTMLTemplateElement.bootstrap(document)});var i=document.createElement;document.createElement=function(){"use strict";var e=i.apply(document,arguments);return"template"==e.localName&&HTMLTemplateElement.decorate(e),e};var a=/[&\u00A0<>]/g}(),function(e){"use strict";if(!window.performance){var t=Date.now();window.performance={now:function(){return Date.now()-t}}}window.requestAnimationFrame||(window.requestAnimationFrame=function(){var e=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return e?function(t){return e(function(){t(performance.now())})}:function(e){return window.setTimeout(e,1e3/60)}}()),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){clearTimeout(e)}}());var n=function(){var e=document.createEvent("Event");return e.initEvent("foo",!0,!0),e.preventDefault(),e.defaultPrevented}();if(!n){var r=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(r.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var o=/Trident/.test(navigator.userAgent);if((!window.CustomEvent||o&&"function"!=typeof window.CustomEvent)&&(window.CustomEvent=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,Boolean(t.bubbles),Boolean(t.cancelable),t.detail),n},window.CustomEvent.prototype=window.Event.prototype),!window.Event||o&&"function"!=typeof window.Event){var i=window.Event;window.Event=function(e,t){t=t||{};var n=document.createEvent("Event");return n.initEvent(e,Boolean(t.bubbles),Boolean(t.cancelable)),n},window.Event.prototype=i.prototype}}(window.WebComponents),window.HTMLImports=window.HTMLImports||{flags:{}},function(e){function t(e,t){t=t||p,r(function(){i(e,t)},t)}function n(e){return"complete"===e.readyState||e.readyState===w}function r(e,t){if(n(t))e&&e();else{var o=function(){("complete"===t.readyState||t.readyState===w)&&(t.removeEventListener(_,o),r(e,t))};t.addEventListener(_,o)}}function o(e){e.target.__loaded=!0}function i(e,t){function n(){c==d&&e&&e({allImports:s,loadedImports:u,errorImports:l})}function r(e){o(e),u.push(this),c++,n()}function i(e){l.push(this),c++,n()}var s=t.querySelectorAll("link[rel=import]"),c=0,d=s.length,u=[],l=[];if(d)for(var h,f=0;d>f&&(h=s[f]);f++)a(h)?(c++,n()):(h.addEventListener("load",r),h.addEventListener("error",i));else n()}function a(e){return l?e.__loaded||e["import"]&&"loading"!==e["import"].readyState:e.__importParsed}function s(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)c(t)&&d(t)}function c(e){return"link"===e.localName&&"import"===e.rel}function d(e){var t=e["import"];t?o({target:e}):(e.addEventListener("load",o),e.addEventListener("error",o))}var u="import",l=Boolean(u in document.createElement("link")),h=Boolean(window.ShadowDOMPolyfill),f=function(e){return h?window.ShadowDOMPolyfill.wrapIfNeeded(e):e},p=f(document),m={get:function(){var e=window.HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return f(e)},configurable:!0};Object.defineProperty(document,"_currentScript",m),Object.defineProperty(p,"_currentScript",m);var v=/Trident/.test(navigator.userAgent),w=v?"complete":"interactive",_="readystatechange";l&&(new MutationObserver(function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.addedNodes&&s(t.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var e,t=document.querySelectorAll("link[rel=import]"),n=0,r=t.length;r>n&&(e=t[n]);n++)d(e)}()),t(function(e){window.HTMLImports.ready=!0,window.HTMLImports.readyTime=(new Date).getTime();var t=p.createEvent("CustomEvent");t.initCustomEvent("HTMLImportsLoaded",!0,!0,e),p.dispatchEvent(t)}),e.IMPORT_LINK_TYPE=u,e.useNative=l,e.rootDocument=p,e.whenReady=t,e.isIE=v}(window.HTMLImports),function(e){var t=[],n=function(e){t.push(e)},r=function(){t.forEach(function(t){t(e)})};e.addModule=n,e.initializeModules=r}(window.HTMLImports),window.HTMLImports.addModule(function(e){var t=/(url\()([^)]*)(\))/g,n=/(@import[\s]+(?!url\())([^;]*)(;)/g,r={resolveUrlsInStyle:function(e,t){var n=e.ownerDocument,r=n.createElement("a");return e.textContent=this.resolveUrlsInCssText(e.textContent,t,r),e},resolveUrlsInCssText:function(e,r,o){var i=this.replaceUrls(e,o,r,t);return i=this.replaceUrls(i,o,r,n)},replaceUrls:function(e,t,n,r){return e.replace(r,function(e,r,o,i){var a=o.replace(/["']/g,"");return n&&(a=new URL(a,n).href),t.href=a,a=t.href,r+"'"+a+"'"+i})}};e.path=r}),window.HTMLImports.addModule(function(e){var t={async:!0,ok:function(e){return e.status>=200&&e.status<300||304===e.status||0===e.status},load:function(n,r,o){var i=new XMLHttpRequest;return(e.flags.debug||e.flags.bust)&&(n+="?"+Math.random()),i.open("GET",n,t.async),i.addEventListener("readystatechange",function(e){if(4===i.readyState){var n=null;try{var a=i.getResponseHeader("Location");a&&(n="/"===a.substr(0,1)?location.origin+a:a)}catch(e){console.error(e.message)}r.call(o,!t.ok(i)&&i,i.response||i.responseText,n)}}),i.send(),i},loadDocument:function(e,t,n){this.load(e,t,n).responseType="document"}};e.xhr=t}),window.HTMLImports.addModule(function(e){var t=e.xhr,n=e.flags,r=function(e,t){this.cache={},this.onload=e,this.oncomplete=t,this.inflight=0,this.pending={}};r.prototype={addNodes:function(e){this.inflight+=e.length;for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)this.require(t);this.checkDone()},addNode:function(e){this.inflight++,this.require(e),this.checkDone()},require:function(e){var t=e.src||e.href;e.__nodeUrl=t,this.dedupe(t,e)||this.fetch(t,e)},dedupe:function(e,t){if(this.pending[e])return this.pending[e].push(t),!0;return this.cache[e]?(this.onload(e,t,this.cache[e]),this.tail(),!0):(this.pending[e]=[t],!1)},fetch:function(e,r){if(n.load&&console.log("fetch",e,r),e)if(e.match(/^data:/)){var o=e.split(","),i=o[0],a=o[1];a=i.indexOf(";base64")>-1?atob(a):decodeURIComponent(a),setTimeout(function(){this.receive(e,r,null,a)}.bind(this),0)}else{var s=function(t,n,o){this.receive(e,r,t,n,o)}.bind(this);t.load(e,s)}else setTimeout(function(){this.receive(e,r,{error:"href must be specified"},null)}.bind(this),0)},receive:function(e,t,n,r,o){this.cache[e]=r;for(var i,a=this.pending[e],s=0,c=a.length;c>s&&(i=a[s]);s++)this.onload(e,i,r,n,o),this.tail();this.pending[e]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},e.Loader=r}),window.HTMLImports.addModule(function(e){var t=function(e){this.addCallback=e,this.mo=new MutationObserver(this.handler.bind(this))};t.prototype={handler:function(e){for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)"childList"===t.type&&t.addedNodes.length&&this.addedNodes(t.addedNodes)},addedNodes:function(e){this.addCallback&&this.addCallback(e);for(var t,n=0,r=e.length;r>n&&(t=e[n]);n++)t.children&&t.children.length&&this.addedNodes(t.children)},observe:function(e){this.mo.observe(e,{childList:!0,subtree:!0})}},e.Observer=t}),window.HTMLImports.addModule(function(e){function t(e){return"link"===e.localName&&e.rel===u}function n(e){var t=r(e);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(t)}function r(e){return e.textContent+o(e)}function o(e){var t=e.ownerDocument;t.__importedScripts=t.__importedScripts||0;var n=e.ownerDocument.baseURI,r=t.__importedScripts?"-"+t.__importedScripts:"";return t.__importedScripts++,"\n//# sourceURL="+n+r+".js\n"}function i(e){var t=e.ownerDocument.createElement("style");return t.textContent=e.textContent,a.resolveUrlsInStyle(t),t}var a=e.path,s=e.rootDocument,c=e.flags,d=e.isIE,u=e.IMPORT_LINK_TYPE,l="link[rel="+u+"]",h={documentSelectors:l,importsSelectors:[l,"link[rel=stylesheet]:not([type])","style:not([type])","script:not([type])",'script[type="application/javascript"]','script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var e=this.nextToParse();e&&this.parse(e)},parse:function(e){if(this.isParsed(e))return void(c.parse&&console.log("[%s] is already parsed",e.localName));var t=this[this.map[e.localName]];t&&(this.markParsing(e),t.call(this,e))},parseDynamic:function(e,t){this.dynamicElements.push(e),t||this.parseNext()},markParsing:function(e){c.parse&&console.log("parsing",e),this.parsingElement=e},markParsingComplete:function(e){e.__importParsed=!0,this.markDynamicParsingComplete(e),e.__importElement&&(e.__importElement.__importParsed=!0,this.markDynamicParsingComplete(e.__importElement)),this.parsingElement=null,c.parse&&console.log("completed",e)},markDynamicParsingComplete:function(e){var t=this.dynamicElements.indexOf(e);t>=0&&this.dynamicElements.splice(t,1)},parseImport:function(e){if(e["import"]=e.__doc,window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(e),e["import"]&&(e["import"].__importParsed=!0),this.markParsingComplete(e),e.__resource&&!e.__error?e.dispatchEvent(new CustomEvent("load",{bubbles:!1})):e.dispatchEvent(new CustomEvent("error",{bubbles:!1})),e.__pending)for(var t;e.__pending.length;)t=e.__pending.shift(),t&&t({target:e});this.parseNext()},parseLink:function(e){t(e)?this.parseImport(e):(e.href=e.href,this.parseGeneric(e))},parseStyle:function(e){var t=e;e=i(e),t.__appliedElement=e,e.__importElement=t,this.parseGeneric(e)},parseGeneric:function(e){this.trackElement(e),this.addElementToDocument(e)},rootImportForElement:function(e){for(var t=e;t.ownerDocument.__importLink;)t=t.ownerDocument.__importLink;return t},addElementToDocument:function(e){var t=this.rootImportForElement(e.__importElement||e);t.parentNode.insertBefore(e,t)},trackElement:function(e,t){var n=this,r=function(o){e.removeEventListener("load",r),e.removeEventListener("error",r),t&&t(o),n.markParsingComplete(e),n.parseNext()};if(e.addEventListener("load",r),e.addEventListener("error",r),d&&"style"===e.localName){var o=!1;if(-1==e.textContent.indexOf("@import"))o=!0;else if(e.sheet){o=!0;for(var i,a=e.sheet.cssRules,s=a?a.length:0,c=0;s>c&&(i=a[c]);c++)i.type===CSSRule.IMPORT_RULE&&(o=o&&Boolean(i.styleSheet))}o&&setTimeout(function(){e.dispatchEvent(new CustomEvent("load",{bubbles:!1}))})}},parseScript:function(t){var r=document.createElement("script");r.__importElement=t,r.src=t.src?t.src:n(t),e.currentScript=t,this.trackElement(r,function(t){r.parentNode&&r.parentNode.removeChild(r),e.currentScript=null}),this.addElementToDocument(r)},nextToParse:function(){return this._mayParse=[],!this.parsingElement&&(this.nextToParseInDoc(s)||this.nextToParseDynamic())},nextToParseInDoc:function(e,n){if(e&&this._mayParse.indexOf(e)<0){this._mayParse.push(e);for(var r,o=e.querySelectorAll(this.parseSelectorsForNode(e)),i=0,a=o.length;a>i&&(r=o[i]);i++)if(!this.isParsed(r))return this.hasResource(r)?t(r)?this.nextToParseInDoc(r.__doc,r):r:void 0}return n},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===s?this.documentSelectors:this.importsSelectors},isParsed:function(e){return e.__importParsed},needsDynamicParsing:function(e){return this.dynamicElements.indexOf(e)>=0},hasResource:function(e){return t(e)&&void 0===e.__doc?!1:!0}};e.parser=h,e.IMPORT_SELECTOR=l}),window.HTMLImports.addModule(function(e){function t(e){return n(e,a)}function n(e,t){return"link"===e.localName&&e.getAttribute("rel")===t}function r(e){return!!Object.getOwnPropertyDescriptor(e,"baseURI")}function o(e,t){var n=document.implementation.createHTMLDocument(a);n._URL=t;var o=n.createElement("base");o.setAttribute("href",t),n.baseURI||r(n)||Object.defineProperty(n,"baseURI",{value:t});var i=n.createElement("meta");return i.setAttribute("charset","utf-8"),n.head.appendChild(i),n.head.appendChild(o),n.body.innerHTML=e,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(n),n}var i=e.flags,a=e.IMPORT_LINK_TYPE,s=e.IMPORT_SELECTOR,c=e.rootDocument,d=e.Loader,u=e.Observer,l=e.parser,h={documents:{},documentPreloadSelectors:s,importsPreloadSelectors:[s].join(","),loadNode:function(e){f.addNode(e)},loadSubtree:function(e){var t=this.marshalNodes(e);f.addNodes(t)},marshalNodes:function(e){return e.querySelectorAll(this.loadSelectorsForNode(e))},loadSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===c?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(e,n,r,a,s){if(i.load&&console.log("loaded",e,n),n.__resource=r,n.__error=a,t(n)){var c=this.documents[e];void 0===c&&(c=a?null:o(r,s||e),c&&(c.__importLink=n,this.bootDocument(c)),this.documents[e]=c),n.__doc=c}l.parseNext()},bootDocument:function(e){this.loadSubtree(e),this.observer.observe(e),l.parseNext()},loadedAll:function(){l.parseNext()}},f=new d(h.loaded.bind(h),h.loadedAll.bind(h));if(h.observer=new u,!document.baseURI){var p={get:function(){var e=document.querySelector("base");return e?e.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",p),Object.defineProperty(c,"baseURI",p)}e.importer=h,e.importLoader=f}),window.HTMLImports.addModule(function(e){var t=e.parser,n=e.importer,r={added:function(e){for(var r,o,i,a,s=0,c=e.length;c>s&&(a=e[s]);s++)r||(r=a.ownerDocument,o=t.isParsed(r)),i=this.shouldLoadNode(a),i&&n.loadNode(a),this.shouldParseNode(a)&&o&&t.parseDynamic(a,i)},shouldLoadNode:function(e){return 1===e.nodeType&&o.call(e,n.loadSelectorsForNode(e))},shouldParseNode:function(e){return 1===e.nodeType&&o.call(e,t.parseSelectorsForNode(e))}};n.observer.addCallback=r.added.bind(r);var o=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector}),function(e){function t(){window.HTMLImports.importer.bootDocument(r)}var n=e.initializeModules;e.isIE;if(!e.useNative){n();var r=e.rootDocument;"complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?t():document.addEventListener("DOMContentLoaded",t)}}(window.HTMLImports),window.CustomElements=window.CustomElements||{flags:{}},function(e){var t=e.flags,n=[],r=function(e){n.push(e)},o=function(){n.forEach(function(t){t(e)})};e.addModule=r,e.initializeModules=o,e.hasNative=Boolean(document.registerElement),e.isIE=/Trident/.test(navigator.userAgent),e.useNative=!t.register&&e.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||window.HTMLImports.useNative)}(window.CustomElements),window.CustomElements.addModule(function(e){function t(e,t){n(e,function(e){return t(e)?!0:void r(e,t)}),r(e,t)}function n(e,t,r){var o=e.firstElementChild;if(!o)for(o=e.firstChild;o&&o.nodeType!==Node.ELEMENT_NODE;)o=o.nextSibling;for(;o;)t(o,r)!==!0&&n(o,t,r),o=o.nextElementSibling;return null}function r(e,n){for(var r=e.shadowRoot;r;)t(r,n),r=r.olderShadowRoot}function o(e,t){i(e,t,[])}function i(e,t,n){if(e=window.wrap(e),!(n.indexOf(e)>=0)){n.push(e);for(var r,o=e.querySelectorAll("link[rel="+a+"]"),s=0,c=o.length;c>s&&(r=o[s]);s++)r["import"]&&i(r["import"],t,n);t(e)}}var a=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";e.forDocumentTree=o,e.forSubtree=t}),window.CustomElements.addModule(function(e){function t(e,t){return n(e,t)||r(e,t)}function n(t,n){return e.upgrade(t,n)?!0:void(n&&a(t))}function r(e,t){g(e,function(e){return n(e,t)?!0:void 0})}function o(e){L.push(e),E||(E=!0,setTimeout(i))}function i(){E=!1;for(var e,t=L,n=0,r=t.length;r>n&&(e=t[n]);n++)e();L=[]}function a(e){y?o(function(){s(e)}):s(e)}function s(e){e.__upgraded__&&!e.__attached&&(e.__attached=!0,e.attachedCallback&&e.attachedCallback())}function c(e){d(e),g(e,function(e){d(e)})}function d(e){y?o(function(){u(e)}):u(e)}function u(e){e.__upgraded__&&e.__attached&&(e.__attached=!1,e.detachedCallback&&e.detachedCallback())}function l(e){for(var t=e,n=window.wrap(document);t;){if(t==n)return!0;t=t.parentNode||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&t.host}}function h(e){if(e.shadowRoot&&!e.shadowRoot.__watched){_.dom&&console.log("watching shadow-root for: ",e.localName);for(var t=e.shadowRoot;t;)m(t),t=t.olderShadowRoot}}function f(e,n){if(_.dom){var r=n[0];if(r&&"childList"===r.type&&r.addedNodes&&r.addedNodes){for(var o=r.addedNodes[0];o&&o!==document&&!o.host;)o=o.parentNode;var i=o&&(o.URL||o._URL||o.host&&o.host.localName)||"";i=i.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",n.length,i||"")}var a=l(e);n.forEach(function(e){"childList"===e.type&&(T(e.addedNodes,function(e){e.localName&&t(e,a)}),T(e.removedNodes,function(e){e.localName&&c(e)}))}),_.dom&&console.groupEnd()}function p(e){for(e=window.wrap(e),e||(e=window.wrap(document));e.parentNode;)e=e.parentNode;var t=e.__observer;t&&(f(e,t.takeRecords()),i())}function m(e){if(!e.__observer){var t=new MutationObserver(f.bind(this,e));t.observe(e,{childList:!0,subtree:!0}),e.__observer=t}}function v(e){e=window.wrap(e),_.dom&&console.group("upgradeDocument: ",e.baseURI.split("/").pop()); +var n=e===window.wrap(document);t(e,n),m(e),_.dom&&console.groupEnd()}function w(e){b(e,v)}var _=e.flags,g=e.forSubtree,b=e.forDocumentTree,y=window.MutationObserver._isPolyfilled&&_["throttle-attached"];e.hasPolyfillMutations=y,e.hasThrottledAttached=y;var E=!1,L=[],T=Array.prototype.forEach.call.bind(Array.prototype.forEach),M=Element.prototype.createShadowRoot;M&&(Element.prototype.createShadowRoot=function(){var e=M.call(this);return window.CustomElements.watchShadow(this),e}),e.watchShadow=h,e.upgradeDocumentTree=w,e.upgradeDocument=v,e.upgradeSubtree=r,e.upgradeAll=t,e.attached=a,e.takeRecords=p}),window.CustomElements.addModule(function(e){function t(t,r){if("template"===t.localName&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(t),!t.__upgraded__&&t.nodeType===Node.ELEMENT_NODE){var o=t.getAttribute("is"),i=e.getRegisteredDefinition(t.localName)||e.getRegisteredDefinition(o);if(i&&(o&&i.tag==t.localName||!o&&!i["extends"]))return n(t,i,r)}}function n(t,n,o){return a.upgrade&&console.group("upgrade:",t.localName),n.is&&t.setAttribute("is",n.is),r(t,n),t.__upgraded__=!0,i(t),o&&e.attached(t),e.upgradeSubtree(t,o),a.upgrade&&console.groupEnd(),t}function r(e,t){Object.__proto__?e.__proto__=t.prototype:(o(e,t.prototype,t["native"]),e.__proto__=t.prototype)}function o(e,t,n){for(var r={},o=t;o!==n&&o!==HTMLElement.prototype;){for(var i,a=Object.getOwnPropertyNames(o),s=0;i=a[s];s++)r[i]||(Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(o,i)),r[i]=1);o=Object.getPrototypeOf(o)}}function i(e){e.createdCallback&&e.createdCallback()}var a=e.flags;e.upgrade=t,e.upgradeWithDefinition=n,e.implementPrototype=r}),window.CustomElements.addModule(function(e){function t(t,r){var c=r||{};if(!t)throw new Error("document.registerElement: first argument `name` must not be empty");if(t.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(t)+"'.");if(o(t))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(t)+"'. The type name is invalid.");if(d(t))throw new Error("DuplicateDefinitionError: a type with name '"+String(t)+"' is already registered");return c.prototype||(c.prototype=Object.create(HTMLElement.prototype)),c.__name=t.toLowerCase(),c.lifecycle=c.lifecycle||{},c.ancestry=i(c["extends"]),a(c),s(c),n(c.prototype),u(c.__name,c),c.ctor=l(c),c.ctor.prototype=c.prototype,c.prototype.constructor=c.ctor,e.ready&&w(document),c.ctor}function n(e){if(!e.setAttribute._polyfilled){var t=e.setAttribute;e.setAttribute=function(e,n){r.call(this,e,n,t)};var n=e.removeAttribute;e.removeAttribute=function(e){r.call(this,e,null,n)},e.setAttribute._polyfilled=!0}}function r(e,t,n){e=e.toLowerCase();var r=this.getAttribute(e);n.apply(this,arguments);var o=this.getAttribute(e);this.attributeChangedCallback&&o!==r&&this.attributeChangedCallback(e,r,o)}function o(e){for(var t=0;t=0&&b(r,HTMLElement),r)}function p(e,t){var n=e[t];e[t]=function(){var e=n.apply(this,arguments);return _(e),e}}var m,v=e.isIE,w=e.upgradeDocumentTree,_=e.upgradeAll,g=e.upgradeWithDefinition,b=e.implementPrototype,y=e.useNative,E=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],L={},T="http://www.w3.org/1999/xhtml",M=document.createElement.bind(document),N=document.createElementNS.bind(document);m=Object.__proto__||y?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;for(var n=e;n;){if(n===t.prototype)return!0;n=n.__proto__}return!1},p(Node.prototype,"cloneNode"),p(document,"importNode"),v&&!function(){var e=document.importNode;document.importNode=function(){var t=e.apply(document,arguments);if(t.nodeType==t.DOCUMENT_FRAGMENT_NODE){var n=document.createDocumentFragment();return n.appendChild(t),n}return t}}(),document.registerElement=t,document.createElement=f,document.createElementNS=h,e.registry=L,e["instanceof"]=m,e.reservedTagList=E,e.getRegisteredDefinition=d,document.register=document.registerElement}),function(e){function t(){i(window.wrap(document)),window.CustomElements.ready=!0;var e=window.requestAnimationFrame||function(e){setTimeout(e,16)};e(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})})}var n=e.useNative,r=e.initializeModules;e.isIE;if(n){var o=function(){};e.watchShadow=o,e.upgrade=o,e.upgradeAll=o,e.upgradeDocumentTree=o,e.upgradeSubtree=o,e.takeRecords=o,e["instanceof"]=function(e,t){return e instanceof t}}else r();var i=e.upgradeDocumentTree,a=e.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(e){e["import"]&&a(wrap(e["import"]))}),"complete"===document.readyState||e.flags.eager)t();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var s=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(s,t)}else t()}(window.CustomElements),function(e){var t=document.createElement("style");t.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var n=document.querySelector("head");n.insertBefore(t,n.firstChild)}(window.WebComponents); \ No newline at end of file From 0df39b4df57be3681e041a5fd4e7f905fa567902 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 18:32:15 -0800 Subject: [PATCH 06/12] Remove no password set boolean --- homeassistant/components/frontend/__init__.py | 2 +- homeassistant/components/http.py | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py index 9bc46f86023..dac2041fa56 100644 --- a/homeassistant/components/frontend/__init__.py +++ b/homeassistant/components/frontend/__init__.py @@ -65,7 +65,7 @@ def _handle_get_root(handler, path_match, data): app_url = "frontend-{}.html".format(version.VERSION) # auto login if no password was set, else check api_password param - auth = ('no_password_set' if handler.server.no_password_set + auth = ('no_password_set' if handler.server.api_password is None else data.get('api_password', '')) with open(INDEX_PATH) as template_file: diff --git a/homeassistant/components/http.py b/homeassistant/components/http.py index 33290a159fa..5e8332e283a 100644 --- a/homeassistant/components/http.py +++ b/homeassistant/components/http.py @@ -53,10 +53,6 @@ def setup(hass, config): conf = config[DOMAIN] api_password = util.convert(conf.get(CONF_API_PASSWORD), str) - no_password_set = api_password is None - - if no_password_set: - api_password = util.get_random_string() # If no server host is given, accept all incoming requests server_host = conf.get(CONF_SERVER_HOST, '0.0.0.0') @@ -66,7 +62,7 @@ def setup(hass, config): try: server = HomeAssistantHTTPServer( (server_host, server_port), RequestHandler, hass, api_password, - development, no_password_set) + development) except OSError: # If address already in use _LOGGER.exception("Error setting up HTTP server") @@ -93,14 +89,13 @@ class HomeAssistantHTTPServer(ThreadingMixIn, HTTPServer): # pylint: disable=too-many-arguments def __init__(self, server_address, request_handler_class, - hass, api_password, development, no_password_set): + hass, api_password, development): super().__init__(server_address, request_handler_class) self.server_address = server_address self.hass = hass self.api_password = api_password self.development = development - self.no_password_set = no_password_set self.paths = [] self.sessions = SessionStore() @@ -157,7 +152,7 @@ class RequestHandler(SimpleHTTPRequestHandler): def log_message(self, fmt, *arguments): """ Redirect built-in log to HA logging """ - if self.server.no_password_set: + if self.server.api_password is None: _LOGGER.info(fmt, *arguments) else: _LOGGER.info( @@ -192,8 +187,7 @@ class RequestHandler(SimpleHTTPRequestHandler): "Error parsing JSON", HTTP_UNPROCESSABLE_ENTITY) return - if self.server.no_password_set: - _LOGGER.warning('NO PASSWORD SET') + if self.server.api_password is None: self.authenticated = True elif HTTP_HEADER_HA_AUTH in self.headers: api_password = self.headers.get(HTTP_HEADER_HA_AUTH) From 546377e80a7104805cb94400612f6439e8a2cb83 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 18:59:59 -0800 Subject: [PATCH 07/12] Throttle camera stream to 2fps --- homeassistant/components/camera/__init__.py | 37 ++++++++++----------- homeassistant/components/camera/demo.py | 4 +-- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/homeassistant/components/camera/__init__.py b/homeassistant/components/camera/__init__.py index ae5fe28beac..e63665230ca 100644 --- a/homeassistant/components/camera/__init__.py +++ b/homeassistant/components/camera/__init__.py @@ -19,6 +19,7 @@ from homeassistant.const import ( ) from homeassistant.helpers.entity_component import EntityComponent +import homeassistant.util.dt as dt_util DOMAIN = 'camera' @@ -80,19 +81,21 @@ def setup(hass, config): def _proxy_camera_image(handler, path_match, data): """ Proxies the camera image via the HA server. """ entity_id = path_match.group(ATTR_ENTITY_ID) + camera = component.entities.get(entity_id) - camera = None - if entity_id in component.entities.keys(): - camera = component.entities[entity_id] - - if camera: - response = camera.camera_image() - if response is not None: - handler.wfile.write(response) - else: - handler.send_response(HTTP_NOT_FOUND) - else: + if camera is None: handler.send_response(HTTP_NOT_FOUND) + handler.end_headers() + return + + response = camera.camera_image() + + if response is None: + handler.send_response(HTTP_NOT_FOUND) + handler.end_headers() + return + + handler.wfile.write(response) hass.http.register_path( 'GET', @@ -108,12 +111,9 @@ def setup(hass, config): stream even with only a still image URL available. """ entity_id = path_match.group(ATTR_ENTITY_ID) + camera = component.entities.get(entity_id) - camera = None - if entity_id in component.entities.keys(): - camera = component.entities[entity_id] - - if not camera: + if camera is None: handler.send_response(HTTP_NOT_FOUND) handler.end_headers() return @@ -131,7 +131,6 @@ def setup(hass, config): # MJPEG_START_HEADER.format() while True: - img_bytes = camera.camera_image() if img_bytes is None: continue @@ -148,12 +147,12 @@ def setup(hass, config): handler.request.sendall( bytes('--jpgboundary\r\n', 'utf-8')) + time.sleep(0.5) + except (requests.RequestException, IOError): camera.is_streaming = False camera.update_ha_state() - camera.is_streaming = False - hass.http.register_path( 'GET', re.compile( diff --git a/homeassistant/components/camera/demo.py b/homeassistant/components/camera/demo.py index fc3ec263143..fd79bc3ce82 100644 --- a/homeassistant/components/camera/demo.py +++ b/homeassistant/components/camera/demo.py @@ -24,12 +24,10 @@ class DemoCamera(Camera): def camera_image(self): """ Return a faked still image response. """ - image_path = os.path.join(os.path.dirname(__file__), 'demo_{}.png'.format(randint(1, 5))) with open(image_path, 'rb') as file: - output = file.read() - return output + return file.read() @property def name(self): From e67732b4f85820d71d9bbb14b1b6de3014bfda7a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 19:12:42 -0800 Subject: [PATCH 08/12] Remove no longer needed image --- .../components/frontend/www_static/splash.png | Bin 51901 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 homeassistant/components/frontend/www_static/splash.png diff --git a/homeassistant/components/frontend/www_static/splash.png b/homeassistant/components/frontend/www_static/splash.png deleted file mode 100644 index 582140a2bc35f598fc227782ff06039759b39fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51901 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 Date: Sat, 28 Nov 2015 22:14:40 -0800 Subject: [PATCH 09/12] Streaming API will keep session alive --- homeassistant/components/api.py | 3 +++ homeassistant/components/http.py | 43 +++++++++++++++++++------------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/homeassistant/components/api.py b/homeassistant/components/api.py index a81c0f3227f..1e6e66baee0 100644 --- a/homeassistant/components/api.py +++ b/homeassistant/components/api.py @@ -106,6 +106,7 @@ def _handle_get_api_stream(handler, path_match, data): wfile = handler.wfile write_lock = threading.Lock() block = threading.Event() + session_id = None restrict = data.get('restrict') if restrict: @@ -119,6 +120,7 @@ def _handle_get_api_stream(handler, path_match, data): try: wfile.write(msg.encode("UTF-8")) wfile.flush() + handler.server.sessions.extend_validation(session_id) except IOError: block.set() @@ -138,6 +140,7 @@ def _handle_get_api_stream(handler, path_match, data): handler.send_response(HTTP_OK) handler.send_header('Content-type', 'text/event-stream') + session_id = handler.set_session_cookie_header() handler.end_headers() hass.bus.listen(MATCH_ALL, forward_events) diff --git a/homeassistant/components/http.py b/homeassistant/components/http.py index 5e8332e283a..81965179afe 100644 --- a/homeassistant/components/http.py +++ b/homeassistant/components/http.py @@ -337,26 +337,28 @@ class RequestHandler(SimpleHTTPRequestHandler): def set_cache_header(self): """ Add cache headers if not in development """ - if not self.server.development: - # 1 year in seconds - cache_time = 365 * 86400 + if self.server.development: + return - self.send_header( - HTTP_HEADER_CACHE_CONTROL, - "public, max-age={}".format(cache_time)) - self.send_header( - HTTP_HEADER_EXPIRES, - self.date_time_string(time.time()+cache_time)) + # 1 year in seconds + cache_time = 365 * 86400 + + self.send_header( + HTTP_HEADER_CACHE_CONTROL, + "public, max-age={}".format(cache_time)) + self.send_header( + HTTP_HEADER_EXPIRES, + self.date_time_string(time.time()+cache_time)) def set_session_cookie_header(self): - """ Add the header for the session cookie. """ + """ Add the header for the session cookie and return session id. """ if not self.authenticated: return - current = self.get_cookie_session_id() + session_id = self.get_cookie_session_id() - if current is not None: - self.server.sessions.extend_validation(current) + if session_id is not None: + self.server.sessions.extend_validation(session_id) return self.send_header( @@ -364,6 +366,8 @@ class RequestHandler(SimpleHTTPRequestHandler): '{}={}'.format(SESSION_KEY, self.server.sessions.create()) ) + return session_id + def verify_session(self): """ Verify that we are in a valid session. """ return self.get_cookie_session_id() is not None @@ -387,19 +391,22 @@ class RequestHandler(SimpleHTTPRequestHandler): if morsel is None: return None - current = cookie[SESSION_KEY].value + session_id = cookie[SESSION_KEY].value - return current if self.server.sessions.is_valid(current) else None + if self.server.sessions.is_valid(session_id): + return session_id + + return None def destroy_session(self): """ Destroys session. """ - current = self.get_cookie_session_id() + session_id = self.get_cookie_session_id() - if current is None: + if session_id is None: return self.send_header('Set-Cookie', '') - self.server.sessions.destroy(current) + self.server.sessions.destroy(session_id) def session_valid_time(): From f76edf0ed94469afcda4657c6aeaf772c93b6e6c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 22:15:11 -0800 Subject: [PATCH 10/12] Tweak manifest and frontend index --- .../components/frontend/index.html.template | 19 +++++-------------- .../frontend/www_static/manifest.json | 1 + 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/homeassistant/components/frontend/index.html.template b/homeassistant/components/frontend/index.html.template index 533fc43ac4e..87c5f6638a7 100644 --- a/homeassistant/components/frontend/index.html.template +++ b/homeassistant/components/frontend/index.html.template @@ -4,18 +4,13 @@ Home Assistant - - - - + + + href='/static/favicon-apple-180x180.png'> - + -
- -
-
+
diff --git a/homeassistant/components/frontend/www_static/manifest.json b/homeassistant/components/frontend/www_static/manifest.json index 3d0eb5fa443..3767a4b1c5b 100644 --- a/homeassistant/components/frontend/www_static/manifest.json +++ b/homeassistant/components/frontend/www_static/manifest.json @@ -3,6 +3,7 @@ "short_name": "Assistant", "start_url": "/", "display": "standalone", + "theme_color": "#03A9F4", "icons": [ { "src": "/static/favicon-192x192.png", From 286299c4c9716d41c059145b8391de714c37c68d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 22:19:34 -0800 Subject: [PATCH 11/12] update frontend --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 18 +++++++++--------- .../frontend/www_static/home-assistant-polymer | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 7e957562bba..04ccb720f6b 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "c1df3a08faa4a9978b25639ca0fd63cd" +VERSION = "36df87bb6c219a2ee59adf416e3abdfa" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index cf19d314f24..e600c4c5583 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -6052,12 +6052,12 @@ case"touchend":return this.addPointerListenerEnd(t,e,i,n);case"touchmove":return font-weight: 300; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; - } \ No newline at end of file + } \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index f29b1062b30..33124030f6d 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit f29b1062b30c76ceeea87fd426a042d98358394a +Subproject commit 33124030f6d119ad3a58cb520062f2aa58022c6d From 70698f7ab09d487ea994b76bac575aa7f80aa8bb Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 Nov 2015 23:16:20 -0800 Subject: [PATCH 12/12] Update demo camera images --- homeassistant/components/camera/__init__.py | 1 - homeassistant/components/camera/demo.py | 6 ++++-- homeassistant/components/camera/demo_0.jpg | Bin 0 -> 43574 bytes homeassistant/components/camera/demo_1.jpg | Bin 0 -> 44897 bytes homeassistant/components/camera/demo_1.png | Bin 9772 -> 0 bytes homeassistant/components/camera/demo_2.jpg | Bin 0 -> 44535 bytes homeassistant/components/camera/demo_2.png | Bin 9667 -> 0 bytes homeassistant/components/camera/demo_3.jpg | Bin 0 -> 44897 bytes homeassistant/components/camera/demo_3.png | Bin 9595 -> 0 bytes homeassistant/components/camera/demo_4.png | Bin 9906 -> 0 bytes homeassistant/components/camera/demo_5.png | Bin 9699 -> 0 bytes 11 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 homeassistant/components/camera/demo_0.jpg create mode 100644 homeassistant/components/camera/demo_1.jpg delete mode 100644 homeassistant/components/camera/demo_1.png create mode 100644 homeassistant/components/camera/demo_2.jpg delete mode 100644 homeassistant/components/camera/demo_2.png create mode 100644 homeassistant/components/camera/demo_3.jpg delete mode 100644 homeassistant/components/camera/demo_3.png delete mode 100644 homeassistant/components/camera/demo_4.png delete mode 100644 homeassistant/components/camera/demo_5.png diff --git a/homeassistant/components/camera/__init__.py b/homeassistant/components/camera/__init__.py index e63665230ca..169c97595af 100644 --- a/homeassistant/components/camera/__init__.py +++ b/homeassistant/components/camera/__init__.py @@ -19,7 +19,6 @@ from homeassistant.const import ( ) from homeassistant.helpers.entity_component import EntityComponent -import homeassistant.util.dt as dt_util DOMAIN = 'camera' diff --git a/homeassistant/components/camera/demo.py b/homeassistant/components/camera/demo.py index fd79bc3ce82..0ad992db86d 100644 --- a/homeassistant/components/camera/demo.py +++ b/homeassistant/components/camera/demo.py @@ -4,8 +4,8 @@ homeassistant.components.camera.demo Demo platform that has a fake camera. """ import os -from random import randint from homeassistant.components.camera import Camera +import homeassistant.util.dt as dt_util def setup_platform(hass, config, add_devices, discovery_info=None): @@ -24,8 +24,10 @@ class DemoCamera(Camera): def camera_image(self): """ Return a faked still image response. """ + now = dt_util.utcnow() + image_path = os.path.join(os.path.dirname(__file__), - 'demo_{}.png'.format(randint(1, 5))) + 'demo_{}.jpg'.format(now.second % 4)) with open(image_path, 'rb') as file: return file.read() diff --git a/homeassistant/components/camera/demo_0.jpg b/homeassistant/components/camera/demo_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ff87d5179f8364d86acf3a875e374741c5285bcb GIT binary patch literal 43574 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
UY%bB%f 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 HsonqC*w#h! literal 0 HcmV?d00001 diff --git a/homeassistant/components/camera/demo_1.png b/homeassistant/components/camera/demo_1.png deleted file mode 100644 index fc681fccecd69fb91801a6ecad8cd28454cae278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9772 zcmZ{KWl$Vlur?6f0>Od@cee!=hXBFdEx5C=!GbL$Xn^4E794`REbgw0dvKQkx%+de&4RCS-zr%(6O5}~dtkAq2uiGYBBqo^RO34cz)$22-B{O)M7Uk`sEdq^v4 zqr)#hbgOXqJBFKrfd>Ktirjw#(FteO3;vN5ET<3FaD{H&R1U}L?3Vm_Sw%Fc7>BsKZzhWUVq`xf8A~>x z8lkK>sD$^M=KKp`C|IQkzkMUiE}HddKhE7>JuYcSf_Uex#1@xIAtcR?@LKk5}vY51!UE4E7C6q;kjZ(HQ!$2w}>9E6?F=Q1{!;?NWYM~8GpiLic6*J zk&+`=^!IdG@5=9}lwI{+7?gLB`gQ)HKd#=2A5**jJ~YsM_s-5$ehvtg5C)>C0JEOr z;dDcSNON*l|J2qvfBB*B?VTCvE$Y`MODjbn{rq(8akYO;9vq)pThkbY^3NexWZow)z*HXjU0k0`ClY|y1T%sjYdC^Tha*mb zOnwCZIU-S>HiCd9R`wl}CRGHzY9a8QVy1!*eLNuUN`W3kyBDXh-IsoZq(CcN)bTw+ z?37Rhr5v{mcw3P1;=(c8AODSJj|U$qb!Ks*sHkzXkq?U_v0-?tN{2I`LYGeuposi? z+2$Rxo03EUK;)D%*fwn6O;z5fnvXz}iXa!gxpJ(BA&ahmx|Ypt5dlrlvpkSm(KqhO z>U~G4r-kB9LnH#@?Qai%S7FC>Yy}_QaD?K!IwAcX*`3HL!Q$Jx(fTUVk0S{*U=XKE zK0t)Ts}W?B_C}5@k*5$y`auH(=47vR*9$}=W>Nq6b4|$p<2l89qs&Y#iLwGBn$5fh zmuGio=E|XTrf76?hmGBc0>0lvBNdR}sGo#1v-xR)>|ZF1=Y$24UM{3r)LY}O3L)B2 z1#~E%xHPi~>4NO7OG)JAF%!iLfh_dQs@QLGhh;Gnso-zY_}q1YPyN$zNJUgEYMAQC zFw--0aLHH<@*$EzktB=MNP^WEZOp`lG~2xbL^C*%DI!&cf|5nu;pY`SMqT88Jj6A# z>CHVs;6lk^xsikqkwIw&A7Ww%nSB&|-bs=iJhS8f$D5)M2#T-VK2(6blOG{Kiwu&m zss)HZu_|H0lB&O=NLbVeG>~B$XPYo~5_wyzxTLSBLki!#e_rt;nq*$5M*u|VA}hw2 zQv}qt;;#A>Jc#6N!AxvTqnYR`(jx?K#!V=)ru%h^l^~x#j?AL_9!Pq?$tc$*tv(4` z8J53?(+T2K^*EvkPpW0mWxP*{AR?C;(R$0FLy-k45@fuOLlXFw$b`uOr!(5R^w2^0 z%d`+^p#b_}yxu<$%`4=oy-V~iSPog2_PqhUni4ZX>&mZN$LC36*Rg-IJo4O)O9P<0 zhc+sH^IIv2sJjPsmDDK>Q-;Bx+x%kl8KY1X*(+knQjj)RMIi%5H;oMy3#9H`@3aq%=Boh*K z(1zZji28%wyi=DqdZrqa3n|#hh!K4_=yP=H{P$}yn_bOq=+N3(VJ*Cxnd*&{I%$nC zxgycaw%Y-RB$iPJy1wbh0i4hBbG#N=aRMq84g&UJ_aT_UU~ZlD3+0x z#)b|BLk3=6Rba>V3$4$PSaF;)v*Q7xZMjYrH$TXCPntZA0G!w6iE(_hQ9Hw;c$-D1 z*?!?V?k_3{`e|KIlIOM#nTvx2_uv`hjnRp*Bu-sQY~xe7mNd6iX9njN^v)^k+^bR`gen>GBMm#0P$v2FaL}yBG!f`R;SxPWQ-115@PcHDyOnEvVFF? zly`xjGV}6Y^ZP{3vQELrET5LsUu0hb75%I_fUN*qFn25fL72EFNbrkwdehqIcE^`V zNeN0_pFe0#7XPjUF9XA*2IpVSsZs_un!M3(ZF@MWk7d%o=lxaMrYjf4cKVcCn(PGf zGu*6-KdevO@T{x#way*5EOR?|5Ry}UiyLJ=s4?#bYWf|lH@}^YG@VTpa(qu`?4iBseeLG;q4n=6!=~n}9~jwnoO+>4h&|)Ad+0vJZ{R z!s|NU$@RzP<0}V}nVsBT&ss>h5Q*%etGc=tsRb+u>Bk4Z@4Qf05EF*8ZU}pZ)s2kz z_)_JI?xRzYo)j9H&T^6Aq&AI@{&Tw2B=`J+MJwKNU_6- zS^DAyQ36ejtTGlSIfkWiKzpaXeR3f7_-^}zo{0DDqOpd{l9EyF7)))$#^u^&ka0q3Yxx8mihNn znH$UNuY#QRXrZZR)rn2}rjTwq?5>0D&yreMAL7HHpsPBC812jWtcSOSK5lhRvg3QZ zmzrLA9V{xY5lkOV8eBXl=_BK{ahF4jIyN`Crq=ZRaJ2$jIj=6ojuYc~u~x}>8l+PX zM_4<%z_wlY)z6_2EG4JV?iJdS&AY4C^nvQ0do&}L!r-Gl#Uud28TVU5`IfsYXk&}! zl6&eBU#sM-9y0O@+=8^itnE6{H}~no->C1*Vnd2v@^{USQ>x#)aQ{uf!^y5pZ7ml` z+C~6ll28Bh&B?(qNeXusi42OtkVWk4?aPLwpWXgMyNeFfDdzOjI1XEDh}(V^QDn(= zXGbdku*4sI_d^4pxMM1wj!4<)y3mj!h|?$1;@!$Ahl(*HGoDySe`+KK9dD0<+ z1~cxp$|v>*LKgUwMlrwex0Mz10eH>AH*X_=4+pr^8PWq0FjgQ@GM}$GR*W{c^>_j< z2wZh+zXK6~aFfPj2Ci)GUsA*D(m~iC@!d>fZ@yn_Os&SKL}crmkT4M`qH&!%;ix76 z{>(Om>^Vvrn`TBZM{ysPkIO{aO6r@YSmYOg#XZH{At5t#xZOjvY$@OOOm#!H=S-Lh zzOIlO|6Ff7Irm*@$u}zeQ2Gwd+&eC5izWfRgVnEgaWIh84;8esgskxeMne^Ta88T@P#Vv!0jlQe8W@V~T~HuIbOVG& z#~tQM9z@w>+l7{7j#(`JZv<-7xK%(-n6RAUVnhA`Vk4jH8)Imri%)Qq>g4zX_)Oh> z*3I_>6Apkj9~0bZrQ=`qyhH;f1O~a+6L3Qt>bU=Umy{y&%4vW>s-qY6!50b%#^nlt z-y#_-js@HofE@;RLo}rsE$jY~;Zyc8vdyujOXzSj&<0;Vo-)(G&SF6l4TRjnl=WkT zu0O61YVciG3q7%Rpj`z5Ux={4c-EWJzVcqCt_OY1BikIMehd7>J+>d5jWYr&NUoRtFv8 z^V_;p{cqljx|mQb4nldwPx07(U+*==yf_<1lk*nl%#T-+7AyyT3b|Wp#(H?h5k&_{ zrs;Eto?h|GgW&$M#kz%!)-oohtjB1zy;)n6w=Cm`g zK75KKegX41d4y7{$5QY(ZTx%K+0FK0%-ZlHFgln}6kQLeWpg2-GRX;m%&a8a#cU%0 z8+$DAN`_e8uMLk(H4@9HT(9H0y4{G+|00964fIQR$wt0`gdYZ;UGO?Ku-TKWbuQN} z`(KaaZy(P2Ju(=niQ;T-asp@`uK>66?#eqb;=Vqh+4wGVk3)y7kgN zGZ)kONu9>kRq$%NsHZw;CmMsAD-$cSQdzA|(mqc9ZHv9jHbQ8+EWVqgM3_`E!Kz{N z2dn84yT{e|=#S=_8LH$)ALh?TnGPt$g%H-Q$Mpc-Fg&qBr@&6v0b6)E~5zru6$2039xRWALtz&-rC3RpB&OB=h&|f3NkuE=8XDw}W)j+q zCaKP+w0jaKkebqIYYoPR@2*OAni*x=t4&-FytYF>!%a>)d@Wd*(K}V|Jk*#;lJ(PI zi`iG#nY=!~O(@V|Jz~+YpJCtF35yWlR(p`|-v;V$Sx!@#&An*JdC&Z`YZ!^C(bmBj z*U}^md4GmOPV0H8qrE8sW`0GXddjDo;{xyzq~mF)4vp&j+jxSnMW+-`hoSjWhG zu4GY5B#rcEm86^vKNBd&sEP553Pt>KLhnaW-q6$L_ zq&QI?r4(G&Pm9T*ENkRe9r~_eMbd zYuJB=>W@lxwk;8Cg{#9O815wrZ^P9rx46WKU$>(aE*|#8C5&SGHY{oei+DQbS^PlL zg{{$LBXQrcN_|fSLIBCZNReiKJZF~u&~H_OP(y`bTKg-jHUQi=!LbH9q;qwnM)JFA z51&jHjDlFoO&aoDNNsW}f8q#d-_3CIk{~k^4|=l58aq(QX8cScGqUamw>vJTx}#hT zWY;dfKfV(b=dn!39v!ZxxI~dyp3j#L4=N^Nm^d4+(zPHl?2$NgZXX^ZA^O#~omm7P z@j$3V)(y_%PdcFK)?$V%Ag-iT=D}qYHEht8b5YLZ-9xZDcwCDajK1%3jmo!2af3W# zCDt72HT`j->qr!riBvX4^hXjH(C8Vd7nKcy?bX z^2+&y3n-VH~-=e;y zQns+5frjE(zSd4(x!pwV=f@u+`DEltZtd&x;jb68gS{XqJigcJ1DvAEKX=@G339KbyxMY43nUHScj4b4eosufjnZszcqLQYFhd#)e-jNOMB@VCER!&fui@zu+v<8~qZ9!}rP z{DXjYE_M01-tF9jfIGWN24)@>_<(hX|J1QpA}Kc^7rbEUDjl=ijrP&7Keq33(FcwLGEPnp(p>h=9vL zfGIR}(gAQVTcB*Zzg@7_nd(8DIkVn7RdbP@PzTf$PfI=1TbwbUG;-}AdTuK${8ruh z6d7!JtuX=E!5$eMC6x#O;(2qnJ}=)Nitabz1lSmbZAvEENHV%dj>GXER|XJO@tLfm z@~WNG~!wz4nkf@2)cud9Z7$p1$~NjrKfddc42YGl6=az^@$T)L2TB@Y_iPiRe3? zekIL4k-+Og%crIhcu)&9%qh)Zs3z^xko{0TM)^W%ya;tU3^&j`5@IK{_xy&z)=kW! zmLu*T9N2X|Av!lV_kP{1*^P#Xh^S|=rO035n-1E`nDJ4*V83%SLs9^g@Pftvv`1>p z(Ra!F74Ac|PN8eV5u7fisa4C#F}B&4JA>E#BxVRTKG!xAV)w>2li4cv_AF7v9G~~c z(t7-}RGD&=spTy+O#P`zAgIre@^7&`=S?!pai3Z&i!$U z&Tmun{EA67Ki^af8(-v0Rryb5+@NjQZ2vn0K^GW$x6ptMHo3HQSkZNu{)hT#za|QKY{6uS1Sx= ztco>Ul<73XGL_hg8z5fx`&IoV3(-fnCnO|uSI|uv$NLIRXf=i`5YLN|xR-~e*s)PS z4-Dx|fv9;BOxQz8LU+0I%A@Ukc`Ri4iaO`%${Hs1kK zgdsEQ1R*S;*<~5Vi^fPiB-|?g&>!)3HY+(<{rZrferk*#W9}#5ts;o54_s2*B60mK zK@mbmFsMwbG5%i1xwSK4j!R^T`_FWNca!rQxt{e7(cUe)=bU%4Bno)?d4{%d{L-e^ zqUAp3^lq?XNDGX8ztZ5;b)y+zw-}@H^0%(E;s^CggXN;Y;^uOzz~10uo&Kvx1*&0A zFn)keh%gJGJRRQF%iel-W}cmriXfV@{&iuF%=Lclak}G_@qjwgVw`$Xeq$MRd~}NC8VMAP!Jzh0W>!m&ZL%G}=2u&r+uMPo(kkje<&^u4lG~-) zp3~PdRyh17TI6ZG;F#nMHL`=UKk+0?jO7xX^M({qgfE!|qLQUpK{{6sl+pk>uiK8` zW!!2q{R=?0T>Y3rluM(J*V*o2Eol(~%A%RtB^DR5SrZjs=qZUw-`4#G+UCXA^Sl;g zblZ~%KH^JkR}VG^ebYAR$(|*ZrLe09AN5oOFZ3@`Dr_;vj1M(|QTpLIn*fttnacwn z)c-0y2>dKXr+$36l-SKnMHf}k{6gmHdXLf-BL7{l(YwXV{Ez5o&FG_DMW(acW1Q2z zMxiw;m=yZTy0@h|RYNiAWHJX}WYqHMS?4**N7=as4J5JZ9a9T~e#+b>fBV*WV>O%K zr}yzSH)pi#lWfM}f2l(29-S@}t-s5qcMj|#3sy#&N6>N+GUcNToYblZd;k4Qa>q9o z(e7Lrqg4fumd7uemwd5CA=~K4(3UtBzi#?hDZNnS`${XeoC~YDNyWm-oKl`Te2wI6 z()n7Kj8V1TQkU_d$6dvp+7ti3WTtu@cZPl9VW$294^3`>n)^fiSzFgVBi7Pm^XAmB z2ad_voM~)pB)*6Ei8+pvSF?3Hhf8wV`OPfC+a-aI^}-Tcm%b{MU&fX!%v)`Y4EK(v zLo#V(eu*XfHn~qwsO!YEJvs1Kr@WbzP@6xlM!Sa}TQUZ&Ms|@lee!3c5AS=dpnnD3 z0U;63AuI?dmIS88OA0{zys{qX@mdA8(vNIcf*bovSrzPfbk44UKV_{4r9P{E%BOlw zSM_Rqo*g7ha=qoh(-3Ee6VA>W^W~|w4z4HBbWn7P+$S=FWG%c;RZZUql6WmRgvyfN z=Dk}fXQ+AC@}osSmJo*{UyFtc3?dG_Ez5#U^oFqfpm=zhS=l_9e-!P|_7V6ymKhpb(4eeTBmofAAKH*ht_vSbT@EuzmHyLyaKbgsxFlI1OyT?D!_j8>o`)-+ zQzJig#H-!jTcW12s#I6fmZC44oRbVEBH_o`VQ6zpZ0(!PYccUNgVSwzp(g|YuRfKx zTDu58T74Gr;gxD*(K>8&qY;LNl5XGyukd}m>YL4}c|HLloPg|kFy=Dq>{P-wkA+$y z)O^xkoGeAzyyHffhqgEWGVyZeolm6#O3#*A9Shv_0_8(Amf+OG&_ri{ziNtbo78b= z`E&cw$-D}_gdEB;C^VnASnRUR$L`3PjLR8scYzEGivwin4~_Tw{s-P zoSh!gS#u68j9QLKWWqMGXK9?#gf`X=CaXJ@N!o(Mh${B@vdiziRj*ngUc)7p#(M%$ z0Fj~=Os}_Yo3lt!{|sewLvkOPwZb0Lozogis0NbtTPky)7rEq01ZP6P(R1$*q=piU zwkdY(Z9Ukq=98PJu{Cc7AWt6!?1t<+4^NkTaLi`pY3##9qS~0MC$oFsRaA2)^qe!# zR&(GYb$j6cX&nPL*F=BzJJldFIrvDmHf;~_y^+&iC4L~?jD_88_j6Wqtcwl6xrZ2lGzQfw=kODRxB zI7pv*2DXh5MffosB$>z71tDZgNIgrmO#uERg@7km>x-=swBJ$AX5Bd@pz+d8!E;3L zq6!|=;bI(#FFD|ie)bG@e*rN8kP4YOtBo06;A8kZCM zQAZzl1@{yuwI;w{7#WtQFWjn(AU1u3h}C@Vt^VZ1gEB0r2lu1J*NyW}0#v34TTvYY zVONv_HQ=tCK&R`g%@0f+M)G9ZIg(l_ZK_zPHW;!oLN7zTuk@4;Cm4Z;N==n+a^rY!5Fs|-1h(#4`S&ZXW!Jh&!NXcJ zj1z-x{?GOu8ky?ttiYye=vUHoaEkpHlN##j;{yrxzcn+Vk^y_jwTJl}d&~ z_3x6^8+hkH)_=VK16mSuTu>AZx%}=9@ zY9l2&8MPogxGiEdz>Bvlh*r6PDSp9{TFdRNnCDE^M%{gK>B>>_{A+g{{#r*YjFRG2 z%j4RXV#kK>J6jLj@*o#$-X8LLxzumj(0UKNb{>|+j%)EtYcXI}A-p;QX>0Xb6 zudK?pFYPa6zL@;o{mm%|#dHv4a6{xMt-x`~=-_+>&KxNOUEXt0t*@P_JY;$fYrQAA zGxm_GO+pdvZ~}NvEa*N$k{M#*noTO=60OEJheug(L;Gb!as6mTzjEO(ED`&)aTyAa zSxL}x6Zm|sz@VY=y_!k-wL<$ozbmUlAv-Q7rDtFl^OK)_daPC^drBbYpjO}c@b?gtp+I}$+AGzXy=NoC!fp37V zd1r_#W!-f$BV->|ZQfRYkI+glfhWO4eN+yM zjeNT&l_XF)&!u7qpvN#}E-b&$(YI><4h6?7MM_OZjTlzpqWXQ+m7fvqdiOZ}%SdH& zZ=A}|0Apn}p7dn;U@yEc>jRVze$-pShog0_Ri-(8_Mzz4R z=}%iw6LC+9a#D%a9ZSWcSk4wqQAd7gz7Zuwu!m^+ndT?q;&MkmmdPMN;;K^%im?i? zyS083 zc`D6ssG{vhO@P9Eii_<_F$t_7uy4KQ!)OhKF4axlc5V(Uyke@t-Q3*^uXEbOwR6Mk zGPhGBtbpo-q-&9)v-c60i4GtzAtF;_gWKoTv3YKHGEeOK`srXh6@W=@D1425M+rzE z`dhj^9z-~Lfvq7!{tz7Su&5gHM_!?u6jmfTh8!-j`UQ$zd7 zBf^xGFaq5--)EW3EGFOuu7;oVs2ithrp6Y(xwC*9x=%jVQ9`u+no5?kaY>?o<#87< zk+y-$Na+p;@WK_B%hg2zhHKg9hh934zpP2{?hdd(tZY2T|LXaW{Xd&Sm?fX>xftS; zl`4@aM!+oe@$7|$QacC#zuTmqBQi)JjWbj>{(FTEzkcSCrULzPXy}9S<*(O3I#C?@ z_~Ol4j9WVE;X^?*{=UCyoYAuJ0_d03YLmko)d+Tx-u$!hmXqHoc~{I7zP!)Tz660;FT>MH{PkUV8b4QlE7BM5A(S->whv5~dVT6WIM^L0A-2Yo zZqI6k|J#@CHqK#0U0|B1^(Q+xiH*gbCv=gY|EemuVz)JSinMFaWlsYr;-%k{83%;PI15uaX!}>pRAm}@3X~qz{O*DaB7(2t3)P= W=7Q<<3J~7eg`g;>DqAIO9{fKAR1o+8 diff --git a/homeassistant/components/camera/demo_2.jpg b/homeassistant/components/camera/demo_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71356479ab08c00a17ec0e09c9198714154f85d2 GIT binary patch literal 44535 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 IF~h+B0sj)foB#j- diff --git a/homeassistant/components/camera/demo_3.jpg b/homeassistant/components/camera/demo_3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06166fffa859d9fdccf1fc89a563cd6574319d42 GIT binary patch literal 44897 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
UY%bB%f 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 HsonqC*w#h! literal 0 HcmV?d00001 diff --git a/homeassistant/components/camera/demo_3.png b/homeassistant/components/camera/demo_3.png deleted file mode 100644 index b54c1ffb57c97644426efae5950dcf47e8c70031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9595 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 diff --git a/homeassistant/components/camera/demo_5.png b/homeassistant/components/camera/demo_5.png deleted file mode 100644 index 874b95ef6a50b1638d27374aca0c42689506d76f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9699 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 C*Y+I%