diff --git a/.coveragerc b/.coveragerc index cccd815df2d56c188afcb1ed8eaa459fd6dec51b..f41886aaa0ff677d4f674f6d72e322a15c3a70cc 100644 --- a/.coveragerc +++ b/.coveragerc @@ -27,6 +27,7 @@ omit = homeassistant/components/device_tracker/tomato.py homeassistant/components/device_tracker/netgear.py homeassistant/components/device_tracker/nmap_tracker.py + homeassistant/components/device_tracker/ddwrt.py [report] diff --git a/README.md b/README.md index f848d551adb281b50c93fe7ec5505e466330c27f..43c4d58a33d4f96af3d506aaa9e42745e3f58abe 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Home Assistant is a home automation platform running on Python 3. The goal of Ho It offers the following functionality through built-in components: - * Track if devices are home by monitoring connected devices to a wireless router (supporting [OpenWrt](https://openwrt.org/), [Tomato](http://www.polarcloud.com/tomato), [Netgear](http://netgear.com)) + * Track if devices are home by monitoring connected devices to a wireless router (supporting [OpenWrt](https://openwrt.org/), [Tomato](http://www.polarcloud.com/tomato), [Netgear](http://netgear.com), [DD-WRT](http://www.dd-wrt.com/site/index)) * Track and control [Philips Hue](http://meethue.com) lights * Track and control [WeMo switches](http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) * Track and control [Google Chromecasts](http://www.google.com/intl/en/chrome/devices/chromecast) diff --git a/homeassistant/__init__.py b/homeassistant/__init__.py index b93a8ee99beacd024bac65837e98fc045938067b..5e54cbd5d0a66f26b4cc3821b196365f1de312a8 100644 --- a/homeassistant/__init__.py +++ b/homeassistant/__init__.py @@ -22,7 +22,7 @@ from homeassistant.const import ( SERVICE_HOMEASSISTANT_STOP, EVENT_TIME_CHANGED, EVENT_STATE_CHANGED, EVENT_CALL_SERVICE, ATTR_NOW, ATTR_DOMAIN, ATTR_SERVICE, MATCH_ALL, EVENT_SERVICE_EXECUTED, ATTR_SERVICE_CALL_ID, EVENT_SERVICE_REGISTERED, - TEMP_CELCIUS, TEMP_FAHRENHEIT) + TEMP_CELCIUS, TEMP_FAHRENHEIT, ATTR_FRIENDLY_NAME) import homeassistant.util as util DOMAIN = "homeassistant" @@ -325,19 +325,23 @@ class EventOrigin(enum.Enum): class Event(object): """ Represents an event within the Bus. """ - __slots__ = ['event_type', 'data', 'origin'] + __slots__ = ['event_type', 'data', 'origin', 'time_fired'] - def __init__(self, event_type, data=None, origin=EventOrigin.local): + def __init__(self, event_type, data=None, origin=EventOrigin.local, + time_fired=None): self.event_type = event_type self.data = data or {} self.origin = origin + self.time_fired = util.strip_microseconds( + time_fired or dt.datetime.now()) def as_dict(self): """ Returns a dict representation of this Event. """ return { 'event_type': self.event_type, 'data': dict(self.data), - 'origin': str(self.origin) + 'origin': str(self.origin), + 'time_fired': util.datetime_to_str(self.time_fired), } def __repr__(self): @@ -459,7 +463,9 @@ class State(object): __slots__ = ['entity_id', 'state', 'attributes', 'last_changed', 'last_updated'] - def __init__(self, entity_id, state, attributes=None, last_changed=None): + # pylint: disable=too-many-arguments + def __init__(self, entity_id, state, attributes=None, last_changed=None, + last_updated=None): if not ENTITY_ID_PATTERN.match(entity_id): raise InvalidEntityFormatError(( "Invalid entity id encountered: {}. " @@ -468,7 +474,7 @@ class State(object): self.entity_id = entity_id.lower() self.state = state self.attributes = attributes or {} - self.last_updated = dt.datetime.now() + self.last_updated = last_updated or dt.datetime.now() # Strip microsecond from last_changed else we cannot guarantee # state == State.from_dict(state.as_dict()) @@ -482,6 +488,18 @@ class State(object): """ Returns domain of this state. """ return util.split_entity_id(self.entity_id)[0] + @property + def object_id(self): + """ Returns object_id of this state. """ + return util.split_entity_id(self.entity_id)[1] + + @property + def name(self): + """ Name to represent this state. """ + return ( + self.attributes.get(ATTR_FRIENDLY_NAME) or + self.object_id.replace('_', ' ')) + def copy(self): """ Creates a copy of itself. """ return State(self.entity_id, self.state, @@ -494,7 +512,8 @@ class State(object): return {'entity_id': self.entity_id, 'state': self.state, 'attributes': self.attributes, - 'last_changed': util.datetime_to_str(self.last_changed)} + 'last_changed': util.datetime_to_str(self.last_changed), + 'last_updated': util.datetime_to_str(self.last_updated)} @classmethod def from_dict(cls, json_dict): @@ -511,8 +530,13 @@ class State(object): if last_changed: last_changed = util.str_to_datetime(last_changed) + last_updated = json_dict.get('last_updated') + + if last_updated: + last_updated = util.str_to_datetime(last_updated) + return cls(json_dict['entity_id'], json_dict['state'], - json_dict.get('attributes'), last_changed) + json_dict.get('attributes'), last_changed, last_updated) def __eq__(self, other): return (self.__class__ == other.__class__ and diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index ac0c8d483ff34b879898cae68ffcb28a6fa5b22d..6d4db7ad7ed1deacb630fe1a736dc32ea46dd577 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -157,7 +157,8 @@ class DeviceTracker(object): def update_devices(self, now): """ Update device states based on the found devices. """ - self.lock.acquire() + if not self.lock.acquire(False): + return found_devices = set(dev.upper() for dev in self.device_scanner.scan_devices()) diff --git a/homeassistant/components/device_tracker/ddwrt.py b/homeassistant/components/device_tracker/ddwrt.py new file mode 100644 index 0000000000000000000000000000000000000000..3d63c49209cd41d1274b4ecc57da85bede6ad3e7 --- /dev/null +++ b/homeassistant/components/device_tracker/ddwrt.py @@ -0,0 +1,161 @@ +""" Supports scanning a DD-WRT router. """ +import logging +from datetime import timedelta +import re +import threading +import requests + +from homeassistant.const import CONF_HOST, CONF_USERNAME, CONF_PASSWORD +from homeassistant.helpers import validate_config +from homeassistant.util import Throttle +from homeassistant.components.device_tracker import DOMAIN + +# Return cached results if last scan was less then this time ago +MIN_TIME_BETWEEN_SCANS = timedelta(seconds=5) + +_LOGGER = logging.getLogger(__name__) + +_DDWRT_DATA_REGEX = re.compile(r'\{(\w+)::([^\}]*)\}') + + +# pylint: disable=unused-argument +def get_scanner(hass, config): + """ Validates config and returns a DdWrt scanner. """ + if not validate_config(config, + {DOMAIN: [CONF_HOST, CONF_USERNAME, CONF_PASSWORD]}, + _LOGGER): + return None + + scanner = DdWrtDeviceScanner(config[DOMAIN]) + + return scanner if scanner.success_init else None + + +# pylint: disable=too-many-instance-attributes +class DdWrtDeviceScanner(object): + """ This class queries a wireless router running DD-WRT firmware + for connected devices. Adapted from Tomato scanner. + """ + + def __init__(self, config): + self.host = config[CONF_HOST] + self.username = config[CONF_USERNAME] + self.password = config[CONF_PASSWORD] + + self.lock = threading.Lock() + + self.last_results = {} + + self.mac2name = None + + # Test the router is accessible + url = 'http://{}/Status_Wireless.live.asp'.format(self.host) + data = self.get_ddwrt_data(url) + self.success_init = data is not None + + def scan_devices(self): + """ Scans for new devices and return a + list containing found device ids. """ + + self._update_info() + + return self.last_results + + def get_device_name(self, device): + """ Returns the name of the given device or None if we don't know. """ + + with self.lock: + # if not initialised and not already scanned and not found + if self.mac2name is None or device not in self.mac2name: + url = 'http://{}/Status_Lan.live.asp'.format(self.host) + data = self.get_ddwrt_data(url) + + if not data: + return + + dhcp_leases = data.get('dhcp_leases', None) + if dhcp_leases: + # remove leading and trailing single quotes + cleaned_str = dhcp_leases.strip().strip('"') + elements = cleaned_str.split('","') + num_clients = int(len(elements)/5) + self.mac2name = {} + for idx in range(0, num_clients): + # this is stupid but the data is a single array + # every 5 elements represents one hosts, the MAC + # is the third element and the name is the first + mac_index = (idx * 5) + 2 + if mac_index < len(elements): + mac = elements[mac_index] + self.mac2name[mac] = elements[idx * 5] + + return self.mac2name.get(device, None) + + @Throttle(MIN_TIME_BETWEEN_SCANS) + def _update_info(self): + """ Ensures the information from the DdWrt router is up to date. + Returns boolean if scanning successful. """ + if not self.success_init: + return False + + with self.lock: + _LOGGER.info("Checking ARP") + + url = 'http://{}/Status_Wireless.live.asp'.format(self.host) + data = self.get_ddwrt_data(url) + + if not data: + return False + + if data: + self.last_results = [] + active_clients = data.get('active_wireless', None) + if active_clients: + # This is really lame, instead of using JSON the ddwrt UI + # uses it's own data format for some reason and then + # regex's out values so I guess I have to do the same, + # LAME!!! + + # remove leading and trailing single quotes + clean_str = active_clients.strip().strip("'") + elements = clean_str.split("','") + + num_clients = int(len(elements)/9) + for idx in range(0, num_clients): + # get every 9th element which is the MAC address + index = idx * 9 + if index < len(elements): + self.last_results.append(elements[index]) + + return True + + return False + + def get_ddwrt_data(self, url): + """ Retrieve data from DD-WRT and return parsed result """ + try: + response = requests.get( + url, + auth=(self.username, self.password), + timeout=4) + except requests.exceptions.Timeout: + _LOGGER.exception("Connection to the router timed out") + return + if response.status_code == 200: + return _parse_ddwrt_response(response.text) + elif response.status_code == 401: + # Authentication error + _LOGGER.exception( + "Failed to authenticate, " + "please check your username and password") + return + else: + _LOGGER.error("Invalid response from ddwrt: %s", response) + + +def _parse_ddwrt_response(data_str): + """ Parse the awful DD-WRT data format, why didn't they use JSON????. + This code is a python version of how they are parsing in the JS """ + return { + key: val for key, val in _DDWRT_DATA_REGEX + .findall(data_str)} diff --git a/homeassistant/components/device_tracker/nmap_tracker.py b/homeassistant/components/device_tracker/nmap_tracker.py index 860ba3b45fb666fc11769bc19485d50dca98463a..b221a815fb8e0acdce3ffdd6ec484591c46a20bc 100644 --- a/homeassistant/components/device_tracker/nmap_tracker.py +++ b/homeassistant/components/device_tracker/nmap_tracker.py @@ -1,7 +1,6 @@ """ Supports scanning using nmap. """ import logging from datetime import timedelta, datetime -import threading from collections import namedtuple import subprocess import re @@ -54,7 +53,6 @@ class NmapDeviceScanner(object): def __init__(self, config): self.last_results = [] - self.lock = threading.Lock() self.hosts = config[CONF_HOSTS] minutes = convert(config.get(CONF_HOME_INTERVAL), int, 0) self.home_interval = timedelta(minutes=minutes) @@ -116,28 +114,27 @@ class NmapDeviceScanner(object): if not self.success_init: return False - with self.lock: - _LOGGER.info("Scanning") - - options = "-F" - exclude_targets = set() - if self.home_interval: - now = datetime.now() - for host in self.last_results: - if host.last_update + self.home_interval > now: - exclude_targets.add(host) - if len(exclude_targets) > 0: - target_list = [t.ip for t in exclude_targets] - options += " --exclude {}".format(",".join(target_list)) - - nmap = NmapProcess(targets=self.hosts, options=options) - - nmap.run() - - if nmap.rc == 0: - if self._parse_results(nmap.stdout): - self.last_results.extend(exclude_targets) - else: - self.last_results = [] - _LOGGER.error(nmap.stderr) - return False + _LOGGER.info("Scanning") + + options = "-F --host-timeout 5" + exclude_targets = set() + if self.home_interval: + now = datetime.now() + for host in self.last_results: + if host.last_update + self.home_interval > now: + exclude_targets.add(host) + if len(exclude_targets) > 0: + target_list = [t.ip for t in exclude_targets] + options += " --exclude {}".format(",".join(target_list)) + + nmap = NmapProcess(targets=self.hosts, options=options) + + nmap.run() + + if nmap.rc == 0: + if self._parse_results(nmap.stdout): + self.last_results.extend(exclude_targets) + else: + self.last_results = [] + _LOGGER.error(nmap.stderr) + return False diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index f580952cfeb4bc075328828a6057d271f0b15dfe..095769c9c28c248bb3730b3261acce97e0042526 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 = "a063d1482fd49e9297d64e1329324f1c" +VERSION = "1e004712440afc642a44ad927559587e" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index aaf95520da66d95a3748ba00273aaa9d40143c77..10ac2336a3ccbea14bb258c05bad2d563671c2e3 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -4,7 +4,30 @@ var ab=H,bb=L;a.esprima={parse:R}}(this),function(a){"use strict";function b(a,b b.events&&Object.keys(a).length>0&&console.log("[%s] addHostListeners:",this.localName,a);for(var c in a){var d=a[c];PolymerGestures.addEventListener(this,c,this.element.getEventHandler(this,this,d))}},dispatchMethod:function(a,c,d){if(a){b.events&&console.group("[%s] dispatch [%s]",a.localName,c);var e="function"==typeof c?c:a[c];e&&e[d?"apply":"call"](a,d),b.events&&console.groupEnd(),Polymer.flush()}}};a.api.instance.events=d,a.addEventListener=function(a,b,c,d){PolymerGestures.addEventListener(wrap(a),b,c,d)},a.removeEventListener=function(a,b,c,d){PolymerGestures.removeEventListener(wrap(a),b,c,d)}}(Polymer),function(a){var b={copyInstanceAttributes:function(){var a=this._instanceAttributes;for(var b in a)this.hasAttribute(b)||this.setAttribute(b,a[b])},takeAttributes:function(){if(this._publishLC)for(var a,b=0,c=this.attributes,d=c.length;(a=c[b])&&d>b;b++)this.attributeToProperty(a.name,a.value)},attributeToProperty:function(b,c){var b=this.propertyForAttribute(b);if(b){if(c&&c.search(a.bindPattern)>=0)return;var d=this[b],c=this.deserializeValue(c,d);c!==d&&(this[b]=c)}},propertyForAttribute:function(a){var b=this._publishLC&&this._publishLC[a];return b},deserializeValue:function(b,c){return a.deserializeValue(b,c)},serializeValue:function(a,b){return"boolean"===b?a?"":void 0:"object"!==b&&"function"!==b&&void 0!==a?a:void 0},reflectPropertyToAttribute:function(a){var b=typeof this[a],c=this.serializeValue(this[a],b);void 0!==c?this.setAttribute(a,c):"boolean"===b&&this.removeAttribute(a)}};a.api.instance.attributes=b}(Polymer),function(a){function b(a,b){return a===b?0!==a||1/a===1/b:f(a)&&f(b)?!0:a!==a&&b!==b}function c(a,b){return void 0===b&&null===a?b:null===b||void 0===b?a:b}var d=window.WebComponents?WebComponents.flags.log:{},e={object:void 0,type:"update",name:void 0,oldValue:void 0},f=Number.isNaN||function(a){return"number"==typeof a&&isNaN(a)},g={createPropertyObserver:function(){var a=this._observeNames;if(a&&a.length){var b=this._propertyObserver=new CompoundObserver(!0);this.registerObserver(b);for(var c,d=0,e=a.length;e>d&&(c=a[d]);d++)b.addPath(this,c),this.observeArrayValue(c,this[c],null)}},openPropertyObserver:function(){this._propertyObserver&&this._propertyObserver.open(this.notifyPropertyChanges,this)},notifyPropertyChanges:function(a,b,c){var d,e,f={};for(var g in b)if(d=c[2*g+1],e=this.observe[d]){var h=b[g],i=a[g];this.observeArrayValue(d,i,h),f[e]||(void 0!==h&&null!==h||void 0!==i&&null!==i)&&(f[e]=!0,this.invokeMethod(e,[h,i,arguments]))}},invokeMethod:function(a,b){var c=this[a]||a;"function"==typeof c&&c.apply(this,b)},deliverChanges:function(){this._propertyObserver&&this._propertyObserver.deliver()},observeArrayValue:function(a,b,c){var e=this.observe[a];if(e&&(Array.isArray(c)&&(d.observe&&console.log("[%s] observeArrayValue: unregister observer [%s]",this.localName,a),this.closeNamedObserver(a+"__array")),Array.isArray(b))){d.observe&&console.log("[%s] observeArrayValue: register observer [%s]",this.localName,a,b);var f=new ArrayObserver(b);f.open(function(a){this.invokeMethod(e,[a])},this),this.registerNamedObserver(a+"__array",f)}},emitPropertyChangeRecord:function(a,c,d){if(!b(c,d)&&(this._propertyChanged(a,c,d),Observer.hasObjectObserve)){var f=this._objectNotifier;f||(f=this._objectNotifier=Object.getNotifier(this)),e.object=this,e.name=a,e.oldValue=d,f.notify(e)}},_propertyChanged:function(a){this.reflect[a]&&this.reflectPropertyToAttribute(a)},bindProperty:function(a,b,d){if(d)return void(this[a]=b);var e=this.element.prototype.computed;if(e&&e[a]){var f=a+"ComputedBoundObservable_";return void(this[f]=b)}return this.bindToAccessor(a,b,c)},bindToAccessor:function(a,c,d){function e(b,c){j[f]=b;var d=j[h];d&&"function"==typeof d.setValue&&d.setValue(b),j.emitPropertyChangeRecord(a,b,c)}var f=a+"_",g=a+"Observable_",h=a+"ComputedBoundObservable_";this[g]=c;var i=this[f],j=this,k=c.open(e);if(d&&!b(i,k)){var l=d(i,k);b(k,l)||(k=l,c.setValue&&c.setValue(k))}e(k,i);var m={close:function(){c.close(),j[g]=void 0,j[h]=void 0}};return this.registerObserver(m),m},createComputedProperties:function(){if(this._computedNames)for(var a=0;a<this._computedNames.length;a++){var b=this._computedNames[a],c=this.computed[b];try{var d=PolymerExpressions.getExpression(c),e=d.getBinding(this,this.element.syntax);this.bindToAccessor(b,e)}catch(f){console.error("Failed to create computed property",f)}}},registerObserver:function(a){return this._observers?void this._observers.push(a):void(this._observers=[a])},closeObservers:function(){if(this._observers){for(var a=this._observers,b=0;b<a.length;b++){var c=a[b];c&&"function"==typeof c.close&&c.close()}this._observers=[]}},registerNamedObserver:function(a,b){var c=this._namedObservers||(this._namedObservers={});c[a]=b},closeNamedObserver:function(a){var b=this._namedObservers;return b&&b[a]?(b[a].close(),b[a]=null,!0):void 0},closeNamedObservers:function(){if(this._namedObservers){for(var a in this._namedObservers)this.closeNamedObserver(a);this._namedObservers={}}}};a.api.instance.properties=g}(Polymer),function(a){var b=window.WebComponents?WebComponents.flags.log:{},c={instanceTemplate:function(a){HTMLTemplateElement.decorate(a);for(var b=this.syntax||!a.bindingDelegate&&this.element.syntax,c=a.createInstance(this,b),d=c.bindings_,e=0;e<d.length;e++)this.registerObserver(d[e]);return c},bind:function(a,b,c){var d=this.propertyForAttribute(a);if(d){var e=this.bindProperty(d,b,c);return Platform.enableBindingsReflection&&e&&(e.path=b.path_,this._recordBinding(d,e)),this.reflect[d]&&this.reflectPropertyToAttribute(d),e}return this.mixinSuper(arguments)},_recordBinding:function(a,b){this.bindings_=this.bindings_||{},this.bindings_[a]=b},bindFinished:function(){this.makeElementReady()},asyncUnbindAll:function(){this._unbound||(b.unbind&&console.log("[%s] asyncUnbindAll",this.localName),this._unbindAllJob=this.job(this._unbindAllJob,this.unbindAll,0))},unbindAll:function(){this._unbound||(this.closeObservers(),this.closeNamedObservers(),this._unbound=!0)},cancelUnbindAll:function(){return this._unbound?void(b.unbind&&console.warn("[%s] already unbound, cannot cancel unbindAll",this.localName)):(b.unbind&&console.log("[%s] cancelUnbindAll",this.localName),void(this._unbindAllJob&&(this._unbindAllJob=this._unbindAllJob.stop())))}},d=/\{\{([^{}]*)}}/;a.bindPattern=d,a.api.instance.mdv=c}(Polymer),function(a){function b(a){return a.hasOwnProperty("PolymerBase")}function c(){}var d={PolymerBase:!0,job:function(a,b,c){if("string"!=typeof a)return Polymer.job.call(this,a,b,c);var d="___"+a;this[d]=Polymer.job.call(this,this[d],b,c)},"super":Polymer["super"],created:function(){},ready:function(){},createdCallback:function(){this.templateInstance&&this.templateInstance.model&&console.warn("Attributes on "+this.localName+" were data bound prior to Polymer upgrading the element. This may result in incorrect binding types."),this.created(),this.prepareElement(),this.ownerDocument.isStagingDocument||this.makeElementReady()},prepareElement:function(){return this._elementPrepared?void console.warn("Element already prepared",this.localName):(this._elementPrepared=!0,this.shadowRoots={},this.createPropertyObserver(),this.openPropertyObserver(),this.copyInstanceAttributes(),this.takeAttributes(),void this.addHostListeners())},makeElementReady:function(){this._readied||(this._readied=!0,this.createComputedProperties(),this.parseDeclarations(this.__proto__),this.removeAttribute("unresolved"),this.ready())},attributeChangedCallback:function(a){"class"!==a&&"style"!==a&&this.attributeToProperty(a,this.getAttribute(a)),this.attributeChanged&&this.attributeChanged.apply(this,arguments)},attachedCallback:function(){this.cancelUnbindAll(),this.attached&&this.attached(),this.hasBeenAttached||(this.hasBeenAttached=!0,this.domReady&&this.async("domReady"))},detachedCallback:function(){this.preventDispose||this.asyncUnbindAll(),this.detached&&this.detached(),this.leftView&&this.leftView()},parseDeclarations:function(a){a&&a.element&&(this.parseDeclarations(a.__proto__),a.parseDeclaration.call(this,a.element))},parseDeclaration:function(a){var b=this.fetchTemplate(a);if(b){var c=this.shadowFromTemplate(b);this.shadowRoots[a.name]=c}},fetchTemplate:function(a){return a.querySelector("template")},shadowFromTemplate:function(a){if(a){var b=this.createShadowRoot(),c=this.instanceTemplate(a);return b.appendChild(c),this.shadowRootReady(b,a),b}},lightFromTemplate:function(a,b){if(a){this.eventController=this;var c=this.instanceTemplate(a);return b?this.insertBefore(c,b):this.appendChild(c),this.shadowRootReady(this),c}},shadowRootReady:function(a){this.marshalNodeReferences(a)},marshalNodeReferences:function(a){var b=this.$=this.$||{};if(a)for(var c,d=a.querySelectorAll("[id]"),e=0,f=d.length;f>e&&(c=d[e]);e++)b[c.id]=c},onMutation:function(a,b){var c=new MutationObserver(function(a){b.call(this,c,a),c.disconnect()}.bind(this));c.observe(a,{childList:!0,subtree:!0})}};c.prototype=d,d.constructor=c,a.Base=c,a.isBase=b,a.api.instance.base=d}(Polymer),function(a){function b(a){return a.__proto__}function c(a,b){var c="",d=!1;b&&(c=b.localName,d=b.hasAttribute("is"));var e=WebComponents.ShadowCSS.makeScopeSelector(c,d);return WebComponents.ShadowCSS.shimCssText(a,e)}var d=(window.WebComponents?WebComponents.flags.log:{},window.ShadowDOMPolyfill),e="element",f="controller",g={STYLE_SCOPE_ATTRIBUTE:e,installControllerStyles:function(){var a=this.findStyleScope();if(a&&!this.scopeHasNamedStyle(a,this.localName)){for(var c=b(this),d="";c&&c.element;)d+=c.element.cssTextForScope(f),c=b(c);d&&this.installScopeCssText(d,a)}},installScopeStyle:function(a,b,c){var c=c||this.findStyleScope(),b=b||"";if(c&&!this.scopeHasNamedStyle(c,this.localName+b)){var d="";if(a instanceof Array)for(var e,f=0,g=a.length;g>f&&(e=a[f]);f++)d+=e.textContent+"\n\n";else d=a.textContent;this.installScopeCssText(d,c,b)}},installScopeCssText:function(a,b,e){if(b=b||this.findStyleScope(),e=e||"",b){d&&(a=c(a,b.host));var g=this.element.cssTextToScopeStyle(a,f);Polymer.applyStyleToScope(g,b),this.styleCacheForScope(b)[this.localName+e]=!0}},findStyleScope:function(a){for(var b=a||this;b.parentNode;)b=b.parentNode;return b},scopeHasNamedStyle:function(a,b){var c=this.styleCacheForScope(a);return c[b]},styleCacheForScope:function(a){if(d){var b=a.host?a.host.localName:a.localName;return h[b]||(h[b]={})}return a._scopeStyles=a._scopeStyles||{}}},h={};a.api.instance.styles=g}(Polymer),function(a){function b(a,b){if("string"!=typeof a){var c=b||document._currentScript;if(b=a,a=c&&c.parentNode&&c.parentNode.getAttribute?c.parentNode.getAttribute("name"):"",!a)throw"Element name could not be inferred."}if(f(a))throw"Already registered (Polymer) prototype for element "+a;e(a,b),d(a)}function c(a,b){i[a]=b}function d(a){i[a]&&(i[a].registerWhenReady(),delete i[a])}function e(a,b){return j[a]=b||{}}function f(a){return j[a]}function g(a,b){if("string"!=typeof b)return!1;var c=HTMLElement.getPrototypeForTag(b),d=c&&c.constructor;return d?CustomElements["instanceof"]?CustomElements["instanceof"](a,d):a instanceof d:!1}var h=a.extend,i=(a.api,{}),j={};a.getRegisteredPrototype=f,a.waitingForPrototype=c,a.instanceOfType=g,window.Polymer=b,h(Polymer,a),WebComponents.consumeDeclarations&&WebComponents.consumeDeclarations(function(a){if(a)for(var c,d=0,e=a.length;e>d&&(c=a[d]);d++)b.apply(null,c)})}(Polymer),function(a){var b={resolveElementPaths:function(a){Polymer.urlResolver.resolveDom(a)},addResolvePathApi:function(){var a=this.getAttribute("assetpath")||"",b=new URL(a,this.ownerDocument.baseURI);this.prototype.resolvePath=function(a,c){var d=new URL(a,c||b);return d.href}}};a.api.declaration.path=b}(Polymer),function(a){function b(a,b){var c=new URL(a.getAttribute("href"),b).href;return"@import '"+c+"';"}function c(a,b){if(a){b===document&&(b=document.head),i&&(b=document.head);var c=d(a.textContent),e=a.getAttribute(h);e&&c.setAttribute(h,e);var f=b.firstElementChild;if(b===document.head){var g="style["+h+"]",j=document.head.querySelectorAll(g);j.length&&(f=j[j.length-1].nextElementSibling)}b.insertBefore(c,f)}}function d(a,b){b=b||document,b=b.createElement?b:b.ownerDocument;var c=b.createElement("style");return c.textContent=a,c}function e(a){return a&&a.__resource||""}function f(a,b){return q?q.call(a,b):void 0}var g=(window.WebComponents?WebComponents.flags.log:{},a.api.instance.styles),h=g.STYLE_SCOPE_ATTRIBUTE,i=window.ShadowDOMPolyfill,j="style",k="@import",l="link[rel=stylesheet]",m="global",n="polymer-scope",o={loadStyles:function(a){var b=this.fetchTemplate(),c=b&&this.templateContent();if(c){this.convertSheetsToStyles(c);var d=this.findLoadableStyles(c);if(d.length){var e=b.ownerDocument.baseURI;return Polymer.styleResolver.loadStyles(d,e,a)}}a&&a()},convertSheetsToStyles:function(a){for(var c,e,f=a.querySelectorAll(l),g=0,h=f.length;h>g&&(c=f[g]);g++)e=d(b(c,this.ownerDocument.baseURI),this.ownerDocument),this.copySheetAttributes(e,c),c.parentNode.replaceChild(e,c)},copySheetAttributes:function(a,b){for(var c,d=0,e=b.attributes,f=e.length;(c=e[d])&&f>d;d++)"rel"!==c.name&&"href"!==c.name&&a.setAttribute(c.name,c.value)},findLoadableStyles:function(a){var b=[];if(a)for(var c,d=a.querySelectorAll(j),e=0,f=d.length;f>e&&(c=d[e]);e++)c.textContent.match(k)&&b.push(c);return b},installSheets:function(){this.cacheSheets(),this.cacheStyles(),this.installLocalSheets(),this.installGlobalStyles()},cacheSheets:function(){this.sheets=this.findNodes(l),this.sheets.forEach(function(a){a.parentNode&&a.parentNode.removeChild(a)})},cacheStyles:function(){this.styles=this.findNodes(j+"["+n+"]"),this.styles.forEach(function(a){a.parentNode&&a.parentNode.removeChild(a)})},installLocalSheets:function(){var a=this.sheets.filter(function(a){return!a.hasAttribute(n)}),b=this.templateContent();if(b){var c="";if(a.forEach(function(a){c+=e(a)+"\n"}),c){var f=d(c,this.ownerDocument);b.insertBefore(f,b.firstChild)}}},findNodes:function(a,b){var c=this.querySelectorAll(a).array(),d=this.templateContent();if(d){var e=d.querySelectorAll(a).array();c=c.concat(e)}return b?c.filter(b):c},installGlobalStyles:function(){var a=this.styleForScope(m);c(a,document.head)},cssTextForScope:function(a){var b="",c="["+n+"="+a+"]",d=function(a){return f(a,c)},g=this.sheets.filter(d);g.forEach(function(a){b+=e(a)+"\n\n"});var h=this.styles.filter(d);return h.forEach(function(a){b+=a.textContent+"\n\n"}),b},styleForScope:function(a){var b=this.cssTextForScope(a);return this.cssTextToScopeStyle(b,a)},cssTextToScopeStyle:function(a,b){if(a){var c=d(a);return c.setAttribute(h,this.getAttribute("name")+"-"+b),c}}},p=HTMLElement.prototype,q=p.matches||p.matchesSelector||p.webkitMatchesSelector||p.mozMatchesSelector;a.api.declaration.styles=o,a.applyStyleToScope=c}(Polymer),function(a){var b=(window.WebComponents?WebComponents.flags.log:{},a.api.instance.events),c=b.EVENT_PREFIX,d={};["webkitAnimationStart","webkitAnimationEnd","webkitTransitionEnd","DOMFocusOut","DOMFocusIn","DOMMouseScroll"].forEach(function(a){d[a.toLowerCase()]=a});var e={parseHostEvents:function(){var a=this.prototype.eventDelegates;this.addAttributeDelegates(a)},addAttributeDelegates:function(a){for(var b,c=0;b=this.attributes[c];c++)this.hasEventPrefix(b.name)&&(a[this.removeEventPrefix(b.name)]=b.value.replace("{{","").replace("}}","").trim())},hasEventPrefix:function(a){return a&&"o"===a[0]&&"n"===a[1]&&"-"===a[2]},removeEventPrefix:function(a){return a.slice(f)},findController:function(a){for(;a.parentNode;){if(a.eventController)return a.eventController;a=a.parentNode}return a.host},getEventHandler:function(a,b,c){var d=this;return function(e){a&&a.PolymerBase||(a=d.findController(b));var f=[e,e.detail,e.currentTarget];a.dispatchMethod(a,c,f)}},prepareEventBinding:function(a,b){if(this.hasEventPrefix(b)){var c=this.removeEventPrefix(b);c=d[c]||c;var e=this;return function(b,d,f){function g(){return"{{ "+a+" }}"}var h=e.getEventHandler(void 0,d,a);return PolymerGestures.addEventListener(d,c,h),f?void 0:{open:g,discardChanges:g,close:function(){PolymerGestures.removeEventListener(d,c,h)}}}}}},f=c.length;a.api.declaration.events=e}(Polymer),function(a){var b=["attribute"],c={inferObservers:function(a){var b,c=a.observe;for(var d in a)"Changed"===d.slice(-7)&&(b=d.slice(0,-7),this.canObserveProperty(b)&&(c||(c=a.observe={}),c[b]=c[b]||d))},canObserveProperty:function(a){return b.indexOf(a)<0},explodeObservers:function(a){var b=a.observe;if(b){var c={};for(var d in b)for(var e,f=d.split(" "),g=0;e=f[g];g++)c[e]=b[d];a.observe=c}},optimizePropertyMaps:function(a){if(a.observe){var b=a._observeNames=[];for(var c in a.observe)for(var d,e=c.split(" "),f=0;d=e[f];f++)b.push(d)}if(a.publish){var b=a._publishNames=[];for(var c in a.publish)b.push(c)}if(a.computed){var b=a._computedNames=[];for(var c in a.computed)b.push(c)}},publishProperties:function(a,b){var c=a.publish;c&&(this.requireProperties(c,a,b),this.filterInvalidAccessorNames(c),a._publishLC=this.lowerCaseMap(c));var d=a.computed;d&&this.filterInvalidAccessorNames(d)},filterInvalidAccessorNames:function(a){for(var b in a)this.propertyNameBlacklist[b]&&(console.warn('Cannot define property "'+b+'" for element "'+this.name+'" because it has the same name as an HTMLElement property, and not all browsers support overriding that. Consider giving it a different name.'),delete a[b])},requireProperties:function(a,b){b.reflect=b.reflect||{};for(var c in a){var d=a[c];d&&void 0!==d.reflect&&(b.reflect[c]=Boolean(d.reflect),d=d.value),void 0!==d&&(b[c]=d)}},lowerCaseMap:function(a){var b={};for(var c in a)b[c.toLowerCase()]=c;return b},createPropertyAccessor:function(a,b){var c=this.prototype,d=a+"_",e=a+"Observable_";c[d]=c[a],Object.defineProperty(c,a,{get:function(){var a=this[e];return a&&a.deliver(),this[d]},set:function(c){if(b)return this[d];var f=this[e];if(f)return void f.setValue(c);var g=this[d];return this[d]=c,this.emitPropertyChangeRecord(a,c,g),c},configurable:!0})},createPropertyAccessors:function(a){var b=a._computedNames;if(b&&b.length)for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)this.createPropertyAccessor(c,!0);var b=a._publishNames;if(b&&b.length)for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)a.computed&&a.computed[c]||this.createPropertyAccessor(c)},propertyNameBlacklist:{children:1,"class":1,id:1,hidden:1,style:1,title:1}};a.api.declaration.properties=c}(Polymer),function(a){var b="attributes",c=/\s|,/,d={inheritAttributesObjects:function(a){this.inheritObject(a,"publishLC"),this.inheritObject(a,"_instanceAttributes")},publishAttributes:function(a){var d=this.getAttribute(b);if(d)for(var e,f=a.publish||(a.publish={}),g=d.split(c),h=0,i=g.length;i>h;h++)e=g[h].trim(),e&&void 0===f[e]&&(f[e]=void 0)},accumulateInstanceAttributes:function(){for(var a,b=this.prototype._instanceAttributes,c=this.attributes,d=0,e=c.length;e>d&&(a=c[d]);d++)this.isInstanceAttribute(a.name)&&(b[a.name]=a.value)},isInstanceAttribute:function(a){return!this.blackList[a]&&"on-"!==a.slice(0,3)},blackList:{name:1,"extends":1,constructor:1,noscript:1,assetpath:1,"cache-csstext":1}};d.blackList[b]=1,a.api.declaration.attributes=d}(Polymer),function(a){var b=a.api.declaration.events,c=new PolymerExpressions,d=c.prepareBinding;c.prepareBinding=function(a,e,f){return b.prepareEventBinding(a,e,f)||d.call(c,a,e,f)};var e={syntax:c,fetchTemplate:function(){return this.querySelector("template")},templateContent:function(){var a=this.fetchTemplate();return a&&a.content},installBindingDelegate:function(a){a&&(a.bindingDelegate=this.syntax)}};a.api.declaration.mdv=e}(Polymer),function(a){function b(a){if(!Object.__proto__){var b=Object.getPrototypeOf(a);a.__proto__=b,d(b)&&(b.__proto__=Object.getPrototypeOf(b))}}var c=a.api,d=a.isBase,e=a.extend,f=window.ShadowDOMPolyfill,g={register:function(a,b){this.buildPrototype(a,b),this.registerPrototype(a,b),this.publishConstructor()},buildPrototype:function(b,c){var d=a.getRegisteredPrototype(b),e=this.generateBasePrototype(c);this.desugarBeforeChaining(d,e),this.prototype=this.chainPrototypes(d,e),this.desugarAfterChaining(b,c)},desugarBeforeChaining:function(a,b){a.element=this,this.publishAttributes(a,b),this.publishProperties(a,b),this.inferObservers(a),this.explodeObservers(a)},chainPrototypes:function(a,c){this.inheritMetaData(a,c);var d=this.chainObject(a,c);return b(d),d},inheritMetaData:function(a,b){this.inheritObject("observe",a,b),this.inheritObject("publish",a,b),this.inheritObject("reflect",a,b),this.inheritObject("_publishLC",a,b),this.inheritObject("_instanceAttributes",a,b),this.inheritObject("eventDelegates",a,b)},desugarAfterChaining:function(a,b){this.optimizePropertyMaps(this.prototype),this.createPropertyAccessors(this.prototype),this.installBindingDelegate(this.fetchTemplate()),this.installSheets(),this.resolveElementPaths(this),this.accumulateInstanceAttributes(),this.parseHostEvents(),this.addResolvePathApi(),f&&WebComponents.ShadowCSS.shimStyling(this.templateContent(),a,b),this.prototype.registerCallback&&this.prototype.registerCallback(this)},publishConstructor:function(){var a=this.getAttribute("constructor");a&&(window[a]=this.ctor)},generateBasePrototype:function(a){var b=this.findBasePrototype(a);if(!b){var b=HTMLElement.getPrototypeForTag(a);b=this.ensureBaseApi(b),h[a]=b}return b},findBasePrototype:function(a){return h[a]},ensureBaseApi:function(a){if(a.PolymerBase)return a;var b=Object.create(a);return c.publish(c.instance,b),this.mixinMethod(b,a,c.instance.mdv,"bind"),b},mixinMethod:function(a,b,c,d){var e=function(a){return b[d].apply(this,a)};a[d]=function(){return this.mixinSuper=e,c[d].apply(this,arguments)}},inheritObject:function(a,b,c){var d=b[a]||{};b[a]=this.chainObject(d,c[a])},registerPrototype:function(a,b){var c={prototype:this.prototype},d=this.findTypeExtension(b);d&&(c["extends"]=d),HTMLElement.register(a,this.prototype),this.ctor=document.registerElement(a,c)},findTypeExtension:function(a){if(a&&a.indexOf("-")<0)return a;var b=this.findBasePrototype(a);return b.element?this.findTypeExtension(b.element["extends"]):void 0}},h={};g.chainObject=Object.__proto__?function(a,b){return a&&b&&a!==b&&(a.__proto__=b),a}:function(a,b){if(a&&b&&a!==b){var c=Object.create(b);a=e(c,a)}return a},c.declaration.prototype=g}(Polymer),function(a){function b(a){return document.contains(a)?j:i}function c(){return i.length?i[0]:j[0]}function d(a){f.waitToReady=!0,Polymer.endOfMicrotask(function(){HTMLImports.whenReady(function(){f.addReadyCallback(a),f.waitToReady=!1,f.check()})})}function e(a){if(void 0===a)return void f.ready();var b=setTimeout(function(){f.ready()},a);Polymer.whenReady(function(){clearTimeout(b)})}var f={wait:function(a){a.__queue||(a.__queue={},g.push(a))},enqueue:function(a,c,d){var e=a.__queue&&!a.__queue.check;return e&&(b(a).push(a),a.__queue.check=c,a.__queue.go=d),0!==this.indexOf(a)},indexOf:function(a){var c=b(a).indexOf(a);return c>=0&&document.contains(a)&&(c+=HTMLImports.useNative||HTMLImports.ready?i.length:1e9),c},go:function(a){var b=this.remove(a);b&&(a.__queue.flushable=!0,this.addToFlushQueue(b),this.check())},remove:function(a){var c=this.indexOf(a);if(0===c)return b(a).shift()},check:function(){var a=this.nextElement();return a&&a.__queue.check.call(a),this.canReady()?(this.ready(),!0):void 0},nextElement:function(){return c()},canReady:function(){return!this.waitToReady&&this.isEmpty()},isEmpty:function(){for(var a,b=0,c=g.length;c>b&&(a=g[b]);b++)if(a.__queue&&!a.__queue.flushable)return;return!0},addToFlushQueue:function(a){h.push(a)},flush:function(){if(!this.flushing){this.flushing=!0;for(var a;h.length;)a=h.shift(),a.__queue.go.call(a),a.__queue=null;this.flushing=!1}},ready:function(){var a=CustomElements.ready;CustomElements.ready=!1,this.flush(),CustomElements.useNative||CustomElements.upgradeDocumentTree(document),CustomElements.ready=a,Polymer.flush(),requestAnimationFrame(this.flushReadyCallbacks)},addReadyCallback:function(a){a&&k.push(a)},flushReadyCallbacks:function(){if(k)for(var a;k.length;)(a=k.shift())()},waitingFor:function(){for(var a,b=[],c=0,d=g.length;d>c&&(a=g[c]);c++)a.__queue&&!a.__queue.flushable&&b.push(a);return b},waitToReady:!0},g=[],h=[],i=[],j=[],k=[];a.elements=g,a.waitingFor=f.waitingFor.bind(f),a.forceReady=e,a.queue=f,a.whenReady=a.whenPolymerReady=d}(Polymer),function(a){function b(a){return Boolean(HTMLElement.getPrototypeForTag(a))}function c(a){return a&&a.indexOf("-")>=0}var d=a.extend,e=a.api,f=a.queue,g=a.whenReady,h=a.getRegisteredPrototype,i=a.waitingForPrototype,j=d(Object.create(HTMLElement.prototype),{createdCallback:function(){this.getAttribute("name")&&this.init()},init:function(){this.name=this.getAttribute("name"),this["extends"]=this.getAttribute("extends"),f.wait(this),this.loadResources(),this.registerWhenReady()},registerWhenReady:function(){this.registered||this.waitingForPrototype(this.name)||this.waitingForQueue()||this.waitingForResources()||f.go(this)},_register:function(){c(this["extends"])&&!b(this["extends"])&&console.warn("%s is attempting to extend %s, an unregistered element or one that was not registered with Polymer.",this.name,this["extends"]),this.register(this.name,this["extends"]),this.registered=!0},waitingForPrototype:function(a){return h(a)?void 0:(i(a,this),this.handleNoScript(a),!0)},handleNoScript:function(a){this.hasAttribute("noscript")&&!this.noscript&&(this.noscript=!0,Polymer(a))},waitingForResources:function(){return this._needsResources},waitingForQueue:function(){return f.enqueue(this,this.registerWhenReady,this._register)},loadResources:function(){this._needsResources=!0,this.loadStyles(function(){this._needsResources=!1,this.registerWhenReady()}.bind(this))}});e.publish(e.declaration,j),g(function(){document.body.removeAttribute("unresolved"),document.dispatchEvent(new CustomEvent("polymer-ready",{bubbles:!0}))}),document.registerElement("polymer-element",{prototype:j})}(Polymer),function(a){function b(a,b){a?(document.head.appendChild(a),d(b)):b&&b()}function c(a,c){if(a&&a.length){for(var d,e,f=document.createDocumentFragment(),g=0,h=a.length;h>g&&(d=a[g]);g++)e=document.createElement("link"),e.rel="import",e.href=d,f.appendChild(e);b(f,c)}else c&&c()}var d=a.whenReady;a["import"]=c,a.importElements=b}(Polymer),function(){var a=document.createElement("polymer-element");a.setAttribute("name","auto-binding"),a.setAttribute("extends","template"),a.init(),Polymer("auto-binding",{createdCallback:function(){this.syntax=this.bindingDelegate=this.makeSyntax(),Polymer.whenPolymerReady(function(){this.model=this,this.setAttribute("bind",""),this.async(function(){this.marshalNodeReferences(this.parentNode),this.fire("template-bound")})}.bind(this))},makeSyntax:function(){var a=Object.create(Polymer.api.declaration.events),b=this;a.findController=function(){return b.model};var c=new PolymerExpressions,d=c.prepareBinding;return c.prepareBinding=function(b,e,f){return a.prepareEventBinding(b,e,f)||d.call(c,b,e,f)},c}})}();</script></div> <div hidden><link href="//fonts.googleapis.com/css?family=RobotoDraft:regular,bold,italic,thin,light,bolditalic,black,medium&lang=en" rel="stylesheet" type="text/css"></div> -<div hidden><polymer-element name="core-style" hidden assetpath="polymer/bower_components/core-style/"><script>(function(){window.CoreStyle=window.CoreStyle||{g:{},list:{},refMap:{}};Polymer("core-style",{publish:{ref:""},g:CoreStyle.g,refMap:CoreStyle.refMap,list:CoreStyle.list,ready:function(){if(this.id){this.provide()}else{this.registerRef(this.ref);if(!window.ShadowDOMPolyfill){this.require()}}},attached:function(){if(!this.id&&window.ShadowDOMPolyfill){this.require()}},provide:function(){this.register();if(this.textContent){this._completeProvide()}else{this.async(this._completeProvide)}},register:function(){var i=this.list[this.id];if(i){if(!Array.isArray(i)){this.list[this.id]=[i]}this.list[this.id].push(this)}else{this.list[this.id]=this}},_completeProvide:function(){this.createShadowRoot();this.domObserver=new MutationObserver(this.domModified.bind(this)).observe(this.shadowRoot,{subtree:true,characterData:true,childList:true});this.provideContent()},provideContent:function(){this.ensureTemplate();this.shadowRoot.textContent="";this.shadowRoot.appendChild(this.instanceTemplate(this.template));this.cssText=this.shadowRoot.textContent},ensureTemplate:function(){if(!this.template){this.template=this.querySelector("template:not([repeat]):not([bind])");if(!this.template){this.template=document.createElement("template");var n=this.firstChild;while(n){this.template.content.appendChild(n.cloneNode(true));n=n.nextSibling}}}},domModified:function(){this.cssText=this.shadowRoot.textContent;this.notify()},notify:function(){var s$=this.refMap[this.id];if(s$){for(var i=0,s;s=s$[i];i++){s.require()}}},registerRef:function(ref){this.refMap[this.ref]=this.refMap[this.ref]||[];this.refMap[this.ref].push(this)},applyRef:function(ref){this.ref=ref;this.registerRef(this.ref);this.require()},require:function(){var cssText=this.cssTextForRef(this.ref);if(cssText){this.ensureStyleElement();if(this.styleElement._cssText===cssText){return}this.styleElement._cssText=cssText;if(window.ShadowDOMPolyfill){this.styleElement.textContent=cssText;cssText=WebComponents.ShadowCSS.shimStyle(this.styleElement,this.getScopeSelector())}this.styleElement.textContent=cssText}},cssTextForRef:function(ref){var s$=this.byId(ref);var cssText="";if(s$){if(Array.isArray(s$)){var p=[];for(var i=0,l=s$.length,s;i<l&&(s=s$[i]);i++){p.push(s.cssText)}cssText=p.join("\n\n")}else{cssText=s$.cssText}}if(s$&&!cssText){console.warn("No styles provided for ref:",ref)}return cssText},byId:function(id){return this.list[id]},ensureStyleElement:function(){if(!this.styleElement){this.styleElement=window.ShadowDOMPolyfill?this.makeShimStyle():this.makeRootStyle()}if(!this.styleElement){console.warn(this.localName,"could not setup style.")}},makeRootStyle:function(){var style=document.createElement("style");this.appendChild(style);return style},makeShimStyle:function(){var host=this.findHost(this);if(host){var name=host.localName;var style=document.querySelector("style["+name+"="+this.ref+"]");if(!style){style=document.createElement("style");style.setAttribute(name,this.ref);document.head.appendChild(style)}return style}},getScopeSelector:function(){if(!this._scopeSelector){var selector="",host=this.findHost(this);if(host){var typeExtension=host.hasAttribute("is");var name=typeExtension?host.getAttribute("is"):host.localName;selector=WebComponents.ShadowCSS.makeScopeSelector(name,typeExtension)}this._scopeSelector=selector}return this._scopeSelector},findHost:function(node){while(node.parentNode){node=node.parentNode}return node.host||wrap(document.documentElement)},cycle:function(rgb,amount){if(rgb.match("#")){var o=this.hexToRgb(rgb);if(!o){return rgb}rgb="rgb("+o.r+","+o.b+","+o.g+")"}function cycleChannel(v){return Math.abs((Number(v)-amount)%255)}return rgb.replace(/rgb\(([^,]*),([^,]*),([^,]*)\)/,function(m,a,b,c){return"rgb("+cycleChannel(a)+","+cycleChannel(b)+", "+cycleChannel(c)+")"})},hexToRgb:function(hex){var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:null}})})();</script></polymer-element><core-style id="ha-animations"> +<div hidden><polymer-element name="core-style" hidden assetpath="polymer/bower_components/core-style/"><script>(function(){window.CoreStyle=window.CoreStyle||{g:{},list:{},refMap:{}};Polymer("core-style",{publish:{ref:""},g:CoreStyle.g,refMap:CoreStyle.refMap,list:CoreStyle.list,ready:function(){if(this.id){this.provide()}else{this.registerRef(this.ref);if(!window.ShadowDOMPolyfill){this.require()}}},attached:function(){if(!this.id&&window.ShadowDOMPolyfill){this.require()}},provide:function(){this.register();if(this.textContent){this._completeProvide()}else{this.async(this._completeProvide)}},register:function(){var i=this.list[this.id];if(i){if(!Array.isArray(i)){this.list[this.id]=[i]}this.list[this.id].push(this)}else{this.list[this.id]=this}},_completeProvide:function(){this.createShadowRoot();this.domObserver=new MutationObserver(this.domModified.bind(this)).observe(this.shadowRoot,{subtree:true,characterData:true,childList:true});this.provideContent()},provideContent:function(){this.ensureTemplate();this.shadowRoot.textContent="";this.shadowRoot.appendChild(this.instanceTemplate(this.template));this.cssText=this.shadowRoot.textContent},ensureTemplate:function(){if(!this.template){this.template=this.querySelector("template:not([repeat]):not([bind])");if(!this.template){this.template=document.createElement("template");var n=this.firstChild;while(n){this.template.content.appendChild(n.cloneNode(true));n=n.nextSibling}}}},domModified:function(){this.cssText=this.shadowRoot.textContent;this.notify()},notify:function(){var s$=this.refMap[this.id];if(s$){for(var i=0,s;s=s$[i];i++){s.require()}}},registerRef:function(ref){this.refMap[this.ref]=this.refMap[this.ref]||[];this.refMap[this.ref].push(this)},applyRef:function(ref){this.ref=ref;this.registerRef(this.ref);this.require()},require:function(){var cssText=this.cssTextForRef(this.ref);if(cssText){this.ensureStyleElement();if(this.styleElement._cssText===cssText){return}this.styleElement._cssText=cssText;if(window.ShadowDOMPolyfill){this.styleElement.textContent=cssText;cssText=WebComponents.ShadowCSS.shimStyle(this.styleElement,this.getScopeSelector())}this.styleElement.textContent=cssText}},cssTextForRef:function(ref){var s$=this.byId(ref);var cssText="";if(s$){if(Array.isArray(s$)){var p=[];for(var i=0,l=s$.length,s;i<l&&(s=s$[i]);i++){p.push(s.cssText)}cssText=p.join("\n\n")}else{cssText=s$.cssText}}if(s$&&!cssText){console.warn("No styles provided for ref:",ref)}return cssText},byId:function(id){return this.list[id]},ensureStyleElement:function(){if(!this.styleElement){this.styleElement=window.ShadowDOMPolyfill?this.makeShimStyle():this.makeRootStyle()}if(!this.styleElement){console.warn(this.localName,"could not setup style.")}},makeRootStyle:function(){var style=document.createElement("style");this.appendChild(style);return style},makeShimStyle:function(){var host=this.findHost(this);if(host){var name=host.localName;var style=document.querySelector("style["+name+"="+this.ref+"]");if(!style){style=document.createElement("style");style.setAttribute(name,this.ref);document.head.appendChild(style)}return style}},getScopeSelector:function(){if(!this._scopeSelector){var selector="",host=this.findHost(this);if(host){var typeExtension=host.hasAttribute("is");var name=typeExtension?host.getAttribute("is"):host.localName;selector=WebComponents.ShadowCSS.makeScopeSelector(name,typeExtension)}this._scopeSelector=selector}return this._scopeSelector},findHost:function(node){while(node.parentNode){node=node.parentNode}return node.host||wrap(document.documentElement)},cycle:function(rgb,amount){if(rgb.match("#")){var o=this.hexToRgb(rgb);if(!o){return rgb}rgb="rgb("+o.r+","+o.b+","+o.g+")"}function cycleChannel(v){return Math.abs((Number(v)-amount)%255)}return rgb.replace(/rgb\(([^,]*),([^,]*),([^,]*)\)/,function(m,a,b,c){return"rgb("+cycleChannel(a)+","+cycleChannel(b)+", "+cycleChannel(c)+")"})},hexToRgb:function(hex){var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:null}})})();</script></polymer-element><core-style id="ha-main"> +/* Palette generated by Material Palette - materialpalette.com/light-blue/orange */ + +.dark-primary-color { background: #0288D1; } +.default-primary-color { background: #03A9F4; } +.light-primary-color { background: #B3E5FC; } +.text-primary-color { color: #FFFFFF; } +.accent-color { background: #FF9800; } +.primary-text-color { color: #212121; } +.secondary-text-color { color: #727272; } +.divider-color { border-color: #B6B6B6; } + +/* extra */ +.accent-text-color { color: #FF9800; } + +body { + color: #212121; +} + +a { + color: #FF9800; + text-decoration: none; +} +</core-style><core-style id="ha-animations"> @-webkit-keyframes ha-spin { 0% { -webkit-transform: rotate(0deg); @@ -122,11 +145,11 @@ b.events&&Object.keys(a).length>0&&console.log("[%s] addHostListeners:",this.loc background-color: #039be5; } </core-style></div> -<div hidden><script>!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=r(n(1)),o=e.hass={callApi:n(4),dispatcher:i,constants:n(2),util:n(26),authActions:n(27),componentActions:n(23),eventActions:n(24),serviceActions:n(11),stateActions:n(12),syncActions:n(13),stateHistoryActions:n(28),streamActions:n(25),voiceActions:n(29),authStore:n(7),componentStore:n(15),eventStore:n(16),serviceStore:n(8),stateStore:n(19),syncStore:n(21),stateHistoryStore:n(20),streamStore:n(9),preferenceStore:n(18),notificationStore:n(17),voiceStore:n(22),stateModel:n(14),storeListenerMixIn:n(30)};"hass"in window||(window.hass=o),Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";var r=n(32),i=r.Dispatcher;t.exports=new i},function(t,e,n){"use strict";var r=n(6),i=["ACTION_LOG_OUT","ACTION_VALIDATING_AUTH_TOKEN","ACTION_VALID_AUTH_TOKEN","ACTION_INVALID_AUTH_TOKEN","ACTION_FETCH_ALL","ACTION_NEW_LOADED_COMPONENTS","ACTION_NEW_EVENTS","ACTION_NEW_SERVICES","ACTION_NEW_STATES","ACTION_NEW_STATE_HISTORY","ACTION_NEW_NOTIFICATION","ACTION_SET_PREFERENCE","ACTION_EVENT_FIRED","ACTION_INITIAL_LOAD_DONE","ACTION_STREAM_START","ACTION_STREAM_STOP","ACTION_STREAM_ERROR","ACTION_REMOTE_EVENT_RECEIVED","ACTION_LISTENING_START","ACTION_LISTENING_TRANSMITTING","ACTION_LISTENING_DONE","ACTION_LISTENING_ERROR","ACTION_LISTENING_RESULT"];t.exports=r.merge({REMOTE_EVENT_HOMEASSISTANT_START:"homeassistant_start",REMOTE_EVENT_HOMEASSISTANT_STOP:"homeassistant_stop",REMOTE_EVENT_STATE_CHANGED:"state_changed",REMOTE_EVENT_TIME_CHANGED:"time_changed",REMOTE_EVENT_CALL_SERVICE:"call_service",REMOTE_EVENT_SERVICE_EXECUTED:"service_executed",REMOTE_EVENT_PLATFORM_DISCOVERED:"platform_discovered",REMOTE_EVENT_SERVICE_REGISTERED:"service_registered",REMOTE_EVENT_COMPONENT_LOADED:"component_loaded",UNIT_TEMP_C:"°C",UNIT_TEMP_F:"°F"},r.zipObject(i,i))},function(t,e,n){"use strict";var r=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},i=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},u=n(36).EventEmitter,a="change",s=function(t){function e(){o(this,e),null!=t&&t.apply(this,arguments)}return i(e,t),r(e,null,{emitChange:{value:function(){this.emit(a)},writable:!0,configurable:!0},addChangeListener:{value:function(t){this.on(a,t)},writable:!0,configurable:!0},removeChangeListener:{value:function(t){this.removeListener(a,t)},writable:!0,configurable:!0}}),e}(u);t.exports=s},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=r(n(7)),o=function(t,e){var n=void 0===arguments[2]?null:arguments[2],r=void 0===arguments[3]?{}:arguments[3],o=r.authToken||i.authToken,u="/api/"+e;return new Promise(function(e,r){var i=new XMLHttpRequest;i.open(t,u,!0),i.setRequestHeader("X-HA-access",o),i.onload=function(){if(i.status>199&&i.status<300)e(JSON.parse(i.responseText));else try{r(JSON.parse(i.responseText))}catch(t){r({})}},i.onerror=function(){return r({})},n?i.send(JSON.stringify(n)):i.send()})};t.exports=o},function(t){!function(e,n){t.exports=n()}(this,function(){"use strict";function t(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function e(t){return t.value=!1,t}function n(t){t&&(t.value=!0)}function r(){}function i(t,e){e=e||0;for(var n=Math.max(0,t.length-e),r=new Array(n),i=0;n>i;i++)r[i]=t[i+e];return r}function o(t){return void 0===t.size&&(t.size=t.__iterate(a)),t.size}function u(t,e){return e>=0?+e:o(t)+ +e}function a(){return!0}function s(t,e,n){return(0===t||void 0!==n&&-n>=t)&&(void 0===e||void 0!==n&&e>=n)}function c(t,e){return l(t,e,0)}function f(t,e){return l(t,e,e)}function l(t,e,n){return void 0===t?n:0>t?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function h(t){return y(t)?t:C(t)}function p(t){return d(t)?t:D(t)}function _(t){return g(t)?t:x(t)}function v(t){return y(t)&&!m(t)?t:R(t)}function y(t){return!(!t||!t[pr])}function d(t){return!(!t||!t[_r])}function g(t){return!(!t||!t[vr])}function m(t){return d(t)||g(t)}function w(t){return!(!t||!t[yr])}function T(t){this.next=t}function E(t,e,n,r){var i=0===t?e:1===t?n:[e,n];return r?r.value=i:r={value:i,done:!1},r}function b(){return{value:void 0,done:!0}}function O(t){return!!A(t)}function I(t){return t&&"function"==typeof t.next}function S(t){var e=A(t);return e&&e.call(t)}function A(t){var e=t&&(wr&&t[wr]||t[Tr]);return"function"==typeof e?e:void 0}function N(t){return t&&"number"==typeof t.length}function C(t){return null===t||void 0===t?q():y(t)?t.toSeq():W(t)}function D(t){return null===t||void 0===t?q().toKeyedSeq():y(t)?d(t)?t.toSeq():t.fromEntrySeq():P(t)}function x(t){return null===t||void 0===t?q():y(t)?d(t)?t.entrySeq():t.toIndexedSeq():U(t)}function R(t){return(null===t||void 0===t?q():y(t)?d(t)?t.entrySeq():t:U(t)).toSetSeq()}function M(t){this._array=t,this.size=t.length}function k(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function j(t){this._iterable=t,this.size=t.length||t.size}function z(t){this._iterator=t,this._iteratorCache=[]}function L(t){return!(!t||!t[br])}function q(){return Or||(Or=new M([]))}function P(t){var e=Array.isArray(t)?new M(t).fromEntrySeq():I(t)?new z(t).fromEntrySeq():O(t)?new j(t).fromEntrySeq():"object"==typeof t?new k(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function U(t){var e=V(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function W(t){var e=V(t)||"object"==typeof t&&new k(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function V(t){return N(t)?new M(t):I(t)?new z(t):O(t)?new j(t):void 0}function G(t,e,n,r){var i=t._cache;if(i){for(var o=i.length-1,u=0;o>=u;u++){var a=i[n?o-u:u];if(e(a[1],r?a[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,n)}function K(t,e,n,r){var i=t._cache;if(i){var o=i.length-1,u=0;return new T(function(){var t=i[n?o-u:u];return u++>o?b():E(e,r?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,n)}function $(){throw TypeError("Abstract")}function H(){}function F(){}function B(){}function J(t,e){return t===e||t!==t&&e!==e?!0:t&&e?("function"==typeof t.valueOf&&"function"==typeof e.valueOf&&(t=t.valueOf(),e=e.valueOf()),"function"==typeof t.equals&&"function"==typeof e.equals?t.equals(e):t===e||t!==t&&e!==e):!1}function Y(t,e){return e?X(e,t,"",{"":t}):Z(t)}function X(t,e,n,r){return Array.isArray(e)?t.call(r,n,x(e).map(function(n,r){return X(t,n,r,e)})):Q(e)?t.call(r,n,D(e).map(function(n,r){return X(t,n,r,e)})):e}function Z(t){return Array.isArray(t)?x(t).map(Z).toList():Q(t)?D(t).map(Z).toMap():t}function Q(t){return t&&(t.constructor===Object||void 0===t.constructor)}function te(t){return t>>>1&1073741824|3221225471&t}function ee(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)t/=4294967295,n^=t;return te(n)}return"string"===e?t.length>Dr?ne(t):re(t):"function"==typeof t.hashCode?t.hashCode():ie(t)}function ne(t){var e=Mr[t];return void 0===e&&(e=re(t),Rr===xr&&(Rr=0,Mr={}),Rr++,Mr[t]=e),e}function re(t){for(var e=0,n=0;n<t.length;n++)e=31*e+t.charCodeAt(n)|0;return te(e)}function ie(t){var e=Ar&&Ar.get(t);if(e)return e;if(e=t[Cr])return e;if(!Sr){if(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[Cr])return e;if(e=oe(t))return e}if(Object.isExtensible&&!Object.isExtensible(t))throw new Error("Non-extensible objects are not allowed as keys.");if(e=++Nr,1073741824&Nr&&(Nr=0),Ar)Ar.set(t,e);else if(Sr)Object.defineProperty(t,Cr,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[Cr]=e;else{if(!t.nodeType)throw new Error("Unable to set a non-enumerable property on object.");t[Cr]=e}return e}function oe(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ue(t,e){if(!t)throw new Error(e)}function ae(t){ue(1/0!==t,"Cannot perform this action with an infinite size.")}function se(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ce(t){this._iter=t,this.size=t.size}function fe(t){this._iter=t,this.size=t.size}function le(t){this._iter=t,this.size=t.size}function he(t){var e=Me(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.contains(e)},e.contains=function(e){return t.has(e)},e.cacheResult=ke,e.__iterateUncached=function(e,n){var r=this;return t.__iterate(function(t,n){return e(n,t,r)!==!1},n)},e.__iteratorUncached=function(e,n){if(e===mr){var r=t.__iterator(e,n);return new T(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===gr?dr:gr,n)},e}function pe(t,e,n){var r=Me(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,i){var o=t.get(r,fr);return o===fr?i:e.call(n,o,r,t)},r.__iterateUncached=function(r,i){var o=this;return t.__iterate(function(t,i,u){return r(e.call(n,t,i,u),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=t.__iterator(mr,i);return new T(function(){var i=o.next();if(i.done)return i;var u=i.value,a=u[0];return E(r,a,e.call(n,u[1],a,t),i)})},r}function _e(t,e){var n=Me(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=he(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.contains=function(e){return t.contains(e)},n.cacheResult=ke,n.__iterate=function(e,n){var r=this;return t.__iterate(function(t,n){return e(t,n,r)},!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function ve(t,e,n,r){var i=Me(t);return r&&(i.has=function(r){var i=t.get(r,fr);return i!==fr&&!!e.call(n,i,r,t)},i.get=function(r,i){var o=t.get(r,fr);return o!==fr&&e.call(n,o,r,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,a=0;return t.__iterate(function(t,o,s){return e.call(n,t,o,s)?(a++,i(t,r?o:a-1,u)):void 0},o),a},i.__iteratorUncached=function(i,o){var u=t.__iterator(mr,o),a=0;return new T(function(){for(;;){var o=u.next();if(o.done)return o;var s=o.value,c=s[0],f=s[1];if(e.call(n,f,c,t))return E(i,r?c:a++,f,o)}})},i}function ye(t,e,n){var r=Le().asMutable();return t.__iterate(function(i,o){r.update(e.call(n,i,o,t),0,function(t){return t+1})}),r.asImmutable()}function de(t,e,n){var r=d(t),i=(w(t)?On():Le()).asMutable();t.__iterate(function(o,u){i.update(e.call(n,o,u,t),function(t){return t=t||[],t.push(r?[u,o]:o),t})});var o=Re(t);return i.map(function(e){return Ce(t,o(e))})}function ge(t,e,n,r){var i=t.size;if(s(e,n,i))return t;var o=c(e,i),a=f(n,i);if(o!==o||a!==a)return ge(t.toSeq().cacheResult(),e,n,r);var l=a-o;0>l&&(l=0);var h=Me(t);return h.size=0===l?l:t.size&&l||void 0,!r&&L(t)&&l>=0&&(h.get=function(e,n){return e=u(this,e),e>=0&&l>e?t.get(e+o,n):n}),h.__iterateUncached=function(e,n){var i=this;if(0===l)return 0;if(n)return this.cacheResult().__iterate(e,n);var u=0,a=!0,s=0;return t.__iterate(function(t,n){return a&&(a=u++<o)?void 0:(s++,e(t,r?n:s-1,i)!==!1&&s!==l)}),s},h.__iteratorUncached=function(e,n){if(l&&n)return this.cacheResult().__iterator(e,n);var i=l&&t.__iterator(e,n),u=0,a=0;return new T(function(){for(;u++!==o;)i.next();if(++a>l)return b();var t=i.next();return r||e===gr?t:e===dr?E(e,a-1,void 0,t):E(e,a-1,t.value[1],t)})},h}function me(t,e,n){var r=Me(t);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var u=0;return t.__iterate(function(t,i,a){return e.call(n,t,i,a)&&++u&&r(t,i,o)}),u},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var u=t.__iterator(mr,i),a=!0;return new T(function(){if(!a)return b();var t=u.next();if(t.done)return t;var i=t.value,s=i[0],c=i[1];return e.call(n,c,s,o)?r===mr?t:E(r,s,c,t):(a=!1,b())})},r}function we(t,e,n,r){var i=Me(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var a=!0,s=0;return t.__iterate(function(t,o,c){return a&&(a=e.call(n,t,o,c))?void 0:(s++,i(t,r?o:s-1,u))}),s},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var a=t.__iterator(mr,o),s=!0,c=0;return new T(function(){var t,o,f;do{if(t=a.next(),t.done)return r||i===gr?t:i===dr?E(i,c++,void 0,t):E(i,c++,t.value[1],t);var l=t.value;o=l[0],f=l[1],s&&(s=e.call(n,f,o,u))}while(s);return i===mr?t:E(i,o,f,t)})},i}function Te(t,e){var n=d(t),r=[t].concat(e).map(function(t){return y(t)?n&&(t=p(t)):t=n?P(t):U(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===r.length)return t;if(1===r.length){var i=r[0];if(i===t||n&&d(i)||g(t)&&g(i))return i}var o=new M(r);return n?o=o.toKeyedSeq():g(t)||(o=o.toSetSeq()),o=o.flatten(!0),o.size=r.reduce(function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}},0),o}function Ee(t,e,n){var r=Me(t);return r.__iterateUncached=function(r,i){function o(t,s){var c=this;t.__iterate(function(t,i){return(!e||e>s)&&y(t)?o(t,s+1):r(t,n?i:u++,c)===!1&&(a=!0),!a},i)}var u=0,a=!1;return o(t,0),u},r.__iteratorUncached=function(r,i){var o=t.__iterator(r,i),u=[],a=0;return new T(function(){for(;o;){var t=o.next();if(t.done===!1){var s=t.value;if(r===mr&&(s=s[1]),e&&!(u.length<e)||!y(s))return n?t:E(r,a++,s,t);u.push(o),o=s.__iterator(r,i)}else o=u.pop()}return b()})},r}function be(t,e,n){var r=Re(t);return t.toSeq().map(function(i,o){return r(e.call(n,i,o,t))}).flatten(!0)}function Oe(t,e){var n=Me(t);return n.size=t.size&&2*t.size-1,n.__iterateUncached=function(n,r){var i=this,o=0;return t.__iterate(function(t){return(!o||n(e,o++,i)!==!1)&&n(t,o++,i)!==!1},r),o},n.__iteratorUncached=function(n,r){var i,o=t.__iterator(gr,r),u=0;return new T(function(){return(!i||u%2)&&(i=o.next(),i.done)?i:u%2?E(n,u++,e):E(n,u++,i.value,i)})},n}function Ie(t,e,n){e||(e=je);var r=d(t),i=0,o=t.toSeq().map(function(e,r){return[r,e,i++,n?n(e,r,t):e]}).toArray();return o.sort(function(t,n){return e(t[3],n[3])||t[2]-n[2]}).forEach(r?function(t,e){o[e].length=2}:function(t,e){o[e]=t[1]}),r?D(o):g(t)?x(o):R(o)}function Se(t,e,n){if(e||(e=je),n){var r=t.toSeq().map(function(e,r){return[e,n(e,r,t)]}).reduce(function(t,n){return Ae(e,t[1],n[1])?n:t});return r&&r[0]}return t.reduce(function(t,n){return Ae(e,t,n)?n:t})}function Ae(t,e,n){var r=t(n,e);return 0===r&&n!==e&&(void 0===n||null===n||n!==n)||r>0}function Ne(t,e,n){var r=Me(t);return r.size=new M(n).map(function(t){return t.size}).min(),r.__iterate=function(t,e){for(var n,r=this.__iterator(gr,e),i=0;!(n=r.next()).done&&t(n.value,i++,this)!==!1;);return i},r.__iteratorUncached=function(t,r){var i=n.map(function(t){return t=h(t),S(r?t.reverse():t)}),o=0,u=!1;return new T(function(){var n;return u||(n=i.map(function(t){return t.next()}),u=n.some(function(t){return t.done})),u?b():E(t,o++,e.apply(null,n.map(function(t){return t.value})))})},r}function Ce(t,e){return L(t)?e:t.constructor(e)}function De(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function xe(t){return ae(t.size),o(t)}function Re(t){return d(t)?p:g(t)?_:v}function Me(t){return Object.create((d(t)?D:g(t)?x:R).prototype)}function ke(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):C.prototype.cacheResult.call(this)}function je(t,e){return t>e?1:e>t?-1:0}function ze(t){var e=S(t);if(!e){if(!N(t))throw new TypeError("Expected iterable or array-like: "+t);e=S(h(t))}return e}function Le(t){return null===t||void 0===t?Be():qe(t)?t:Be().withMutations(function(e){var n=p(t);ae(n.size),n.forEach(function(t,n){return e.set(n,t)})})}function qe(t){return!(!t||!t[kr])}function Pe(t,e){this.ownerID=t,this.entries=e}function Ue(t,e,n){this.ownerID=t,this.bitmap=e,this.nodes=n}function We(t,e,n){this.ownerID=t,this.count=e,this.nodes=n}function Ve(t,e,n){this.ownerID=t,this.keyHash=e,this.entries=n}function Ge(t,e,n){this.ownerID=t,this.keyHash=e,this.entry=n}function Ke(t,e,n){this._type=e,this._reverse=n,this._stack=t._root&&He(t._root)}function $e(t,e){return E(t,e[0],e[1])}function He(t,e){return{node:t,index:0,__prev:e}}function Fe(t,e,n,r){var i=Object.create(jr);return i.size=t,i._root=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Be(){return zr||(zr=Fe(0))}function Je(t,n,r){var i,o;if(t._root){var u=e(lr),a=e(hr);if(i=Ye(t._root,t.__ownerID,0,void 0,n,r,u,a),!a.value)return t;o=t.size+(u.value?r===fr?-1:1:0)}else{if(r===fr)return t;o=1,i=new Pe(t.__ownerID,[[n,r]])}return t.__ownerID?(t.size=o,t._root=i,t.__hash=void 0,t.__altered=!0,t):i?Fe(o,i):Be()}function Ye(t,e,r,i,o,u,a,s){return t?t.update(e,r,i,o,u,a,s):u===fr?t:(n(s),n(a),new Ge(e,i,[o,u]))}function Xe(t){return t.constructor===Ge||t.constructor===Ve}function Ze(t,e,n,r,i){if(t.keyHash===r)return new Ve(e,r,[t.entry,i]);var o,u=(0===n?t.keyHash:t.keyHash>>>n)&cr,a=(0===n?r:r>>>n)&cr,s=u===a?[Ze(t,e,n+ar,r,i)]:(o=new Ge(e,r,i),a>u?[t,o]:[o,t]);return new Ue(e,1<<u|1<<a,s)}function Qe(t,e,n,i){t||(t=new r);for(var o=new Ge(t,ee(n),[n,i]),u=0;u<e.length;u++){var a=e[u];o=o.update(t,0,void 0,a[0],a[1])}return o}function tn(t,e,n,r){for(var i=0,o=0,u=new Array(n),a=0,s=1,c=e.length;c>a;a++,s<<=1){var f=e[a];void 0!==f&&a!==r&&(i|=s,u[o++]=f)}return new Ue(t,i,u)}function en(t,e,n,r,i){for(var o=0,u=new Array(sr),a=0;0!==n;a++,n>>>=1)u[a]=1&n?e[o++]:void 0;return u[r]=i,new We(t,o+1,u)}function nn(t,e,n){for(var r=[],i=0;i<n.length;i++){var o=n[i],u=p(o);y(o)||(u=u.map(function(t){return Y(t)})),r.push(u)}return on(t,e,r)}function rn(t){return function(e,n){return e&&e.mergeDeepWith&&y(n)?e.mergeDeepWith(t,n):t?t(e,n):n}}function on(t,e,n){return n=n.filter(function(t){return 0!==t.size}),0===n.length?t:0===t.size&&1===n.length?t.constructor(n[0]):t.withMutations(function(t){for(var r=e?function(n,r){t.update(r,fr,function(t){return t===fr?n:e(t,n)})}:function(e,n){t.set(n,e)},i=0;i<n.length;i++)n[i].forEach(r)})}function un(t,e,n,r){var i=t===fr,o=e.next();if(o.done){var u=i?n:t,a=r(u);return a===u?t:a}ue(i||t&&t.set,"invalid keyPath");var s=o.value,c=i?fr:t.get(s,fr),f=un(c,e,n,r);return f===c?t:f===fr?t.remove(s):(i?Be():t).set(s,f)}function an(t){return t-=t>>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function sn(t,e,n,r){var o=r?t:i(t);return o[e]=n,o}function cn(t,e,n,r){var i=t.length+1;if(r&&e+1===i)return t[e]=n,t;for(var o=new Array(i),u=0,a=0;i>a;a++)a===e?(o[a]=n,u=-1):o[a]=t[a+u];return o}function fn(t,e,n){var r=t.length-1;if(n&&e===r)return t.pop(),t;for(var i=new Array(r),o=0,u=0;r>u;u++)u===e&&(o=1),i[u]=t[u+o];return i}function ln(t){var e=yn();if(null===t||void 0===t)return e;if(hn(t))return t;var n=_(t),r=n.size;return 0===r?e:(ae(r),r>0&&sr>r?vn(0,r,ar,null,new pn(n.toArray())):e.withMutations(function(t){t.setSize(r),n.forEach(function(e,n){return t.set(n,e)})}))}function hn(t){return!(!t||!t[Ur])}function pn(t,e){this.array=t,this.ownerID=e}function _n(t,e){function n(t,e,n){return 0===e?r(t,n):i(t,e,n)}function r(t,n){var r=n===a?s&&s.array:t&&t.array,i=n>o?0:o-n,c=u-n;return c>sr&&(c=sr),function(){if(i===c)return Gr;var t=e?--c:i++;return r&&r[t]}}function i(t,r,i){var a,s=t&&t.array,c=i>o?0:o-i>>r,f=(u-i>>r)+1;return f>sr&&(f=sr),function(){for(;;){if(a){var t=a();if(t!==Gr)return t;a=null}if(c===f)return Gr;var o=e?--f:c++;a=n(s&&s[o],r-ar,i+(o<<r))}}}var o=t._origin,u=t._capacity,a=bn(u),s=t._tail;return n(t._root,t._level,0)}function vn(t,e,n,r,i,o,u){var a=Object.create(Wr);return a.size=e-t,a._origin=t,a._capacity=e,a._level=n,a._root=r,a._tail=i,a.__ownerID=o,a.__hash=u,a.__altered=!1,a}function yn(){return Vr||(Vr=vn(0,0,ar))}function dn(t,n,r){if(n=u(t,n),n>=t.size||0>n)return t.withMutations(function(t){0>n?Tn(t,n).set(0,r):Tn(t,0,n+1).set(n,r)});n+=t._origin;var i=t._tail,o=t._root,a=e(hr);return n>=bn(t._capacity)?i=gn(i,t.__ownerID,0,n,r,a):o=gn(o,t.__ownerID,t._level,n,r,a),a.value?t.__ownerID?(t._root=o,t._tail=i,t.__hash=void 0,t.__altered=!0,t):vn(t._origin,t._capacity,t._level,o,i):t}function gn(t,e,r,i,o,u){var a=i>>>r&cr,s=t&&a<t.array.length;if(!s&&void 0===o)return t;var c;if(r>0){var f=t&&t.array[a],l=gn(f,e,r-ar,i,o,u);return l===f?t:(c=mn(t,e),c.array[a]=l,c)}return s&&t.array[a]===o?t:(n(u),c=mn(t,e),void 0===o&&a===c.array.length-1?c.array.pop():c.array[a]=o,c)}function mn(t,e){return e&&t&&e===t.ownerID?t:new pn(t?t.array.slice():[],e)}function wn(t,e){if(e>=bn(t._capacity))return t._tail;if(e<1<<t._level+ar){for(var n=t._root,r=t._level;n&&r>0;)n=n.array[e>>>r&cr],r-=ar;return n}}function Tn(t,e,n){var i=t.__ownerID||new r,o=t._origin,u=t._capacity,a=o+e,s=void 0===n?u:0>n?u+n:o+n;if(a===o&&s===u)return t;if(a>=s)return t.clear();for(var c=t._level,f=t._root,l=0;0>a+l;)f=new pn(f&&f.array.length?[void 0,f]:[],i),c+=ar,l+=1<<c;l&&(a+=l,o+=l,s+=l,u+=l);for(var h=bn(u),p=bn(s);p>=1<<c+ar;)f=new pn(f&&f.array.length?[f]:[],i),c+=ar;var _=t._tail,v=h>p?wn(t,s-1):p>h?new pn([],i):_;if(_&&p>h&&u>a&&_.array.length){f=mn(f,i);for(var y=f,d=c;d>ar;d-=ar){var g=h>>>d&cr;y=y.array[g]=mn(y.array[g],i)}y.array[h>>>ar&cr]=_}if(u>s&&(v=v&&v.removeAfter(i,0,s)),a>=p)a-=p,s-=p,c=ar,f=null,v=v&&v.removeBefore(i,0,a);else if(a>o||h>p){for(l=0;f;){var m=a>>>c&cr;if(m!==p>>>c&cr)break;m&&(l+=(1<<c)*m),c-=ar,f=f.array[m]}f&&a>o&&(f=f.removeBefore(i,c,a-l)),f&&h>p&&(f=f.removeAfter(i,c,p-l)),l&&(a-=l,s-=l)}return t.__ownerID?(t.size=s-a,t._origin=a,t._capacity=s,t._level=c,t._root=f,t._tail=v,t.__hash=void 0,t.__altered=!0,t):vn(a,s,c,f,v)}function En(t,e,n){for(var r=[],i=0,o=0;o<n.length;o++){var u=n[o],a=_(u);a.size>i&&(i=a.size),y(u)||(a=a.map(function(t){return Y(t)})),r.push(a)}return i>t.size&&(t=t.setSize(i)),on(t,e,r)}function bn(t){return sr>t?0:t-1>>>ar<<ar}function On(t){return null===t||void 0===t?An():In(t)?t:An().withMutations(function(e){var n=p(t);ae(n.size),n.forEach(function(t,n){return e.set(n,t)})})}function In(t){return qe(t)&&w(t)}function Sn(t,e,n,r){var i=Object.create(On.prototype);return i.size=t?t.size:0,i._map=t,i._list=e,i.__ownerID=n,i.__hash=r,i}function An(){return Kr||(Kr=Sn(Be(),yn()))}function Nn(t,e,n){var r,i,o=t._map,u=t._list,a=o.get(e),s=void 0!==a;if(n===fr){if(!s)return t;u.size>=sr&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&a!==e}),r=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=i.__ownerID=t.__ownerID)):(r=o.remove(e),i=a===u.size-1?u.pop():u.set(a,void 0))}else if(s){if(n===u.get(a)[1])return t;r=o,i=u.set(a,[e,n])}else r=o.set(e,u.size),i=u.set(u.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=i,t.__hash=void 0,t):Sn(r,i)}function Cn(t){return null===t||void 0===t?Rn():Dn(t)?t:Rn().unshiftAll(t)}function Dn(t){return!(!t||!t[$r])}function xn(t,e,n,r){var i=Object.create(Hr);return i.size=t,i._head=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Rn(){return Fr||(Fr=xn(0))}function Mn(t){return null===t||void 0===t?Ln():kn(t)?t:Ln().withMutations(function(e){var n=v(t);ae(n.size),n.forEach(function(t){return e.add(t)})})}function kn(t){return!(!t||!t[Br])}function jn(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function zn(t,e){var n=Object.create(Jr);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function Ln(){return Yr||(Yr=zn(Be()))}function qn(t){return null===t||void 0===t?Wn():Pn(t)?t:Wn().withMutations(function(e){var n=v(t);ae(n.size),n.forEach(function(t){return e.add(t)})})}function Pn(t){return kn(t)&&w(t)}function Un(t,e){var n=Object.create(Xr);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function Wn(){return Zr||(Zr=Un(An()))}function Vn(t,e){var n=function(t){return this instanceof n?void(this._map=Le(t)):new n(t)},r=Object.keys(t),i=n.prototype=Object.create(Qr);i.constructor=n,e&&(i._name=e),i._defaultValues=t,i._keys=r,i.size=r.length;try{r.forEach(function(t){Object.defineProperty(n.prototype,t,{get:function(){return this.get(t)},set:function(e){ue(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})})}catch(o){}return n}function Gn(t,e,n){var r=Object.create(Object.getPrototypeOf(t));return r._map=e,r.__ownerID=n,r}function Kn(t){return t._name||t.constructor.name}function $n(t,e){if(t===e)return!0;if(!y(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||d(t)!==d(e)||g(t)!==g(e)||w(t)!==w(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!m(t);if(w(t)){var r=t.entries();return e.every(function(t,e){var i=r.next().value;return i&&J(i[1],t)&&(n||J(i[0],e))})&&r.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)t.cacheResult();else{i=!0;var o=t;t=e,e=o}var u=!0,a=e.__iterate(function(e,r){return(n?t.has(e):i?J(e,t.get(r,fr)):J(t.get(r,fr),e))?void 0:(u=!1,!1)});return u&&t.size===a}function Hn(t,e,n){if(!(this instanceof Hn))return new Hn(t,e,n);if(ue(0!==n,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),t>e&&(n=-n),this._start=t,this._end=e,this._step=n,this.size=Math.max(0,Math.ceil((e-t)/n-1)+1),0===this.size){if(ti)return ti;ti=this}}function Fn(t,e){if(!(this instanceof Fn))return new Fn(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(ei)return ei;ei=this}}function Bn(t,e){var n=function(n){t.prototype[n]=e[n]};return Object.keys(e).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(n),t}function Jn(t,e){return e}function Yn(t,e){return[e,t]}function Xn(t){return function(){return!t.apply(this,arguments)}}function Zn(t){return function(){return-t.apply(this,arguments)}}function Qn(t){return"string"==typeof t?JSON.stringify(t):t}function tr(){return i(arguments)}function er(t,e){return e>t?1:t>e?-1:0}function nr(t){if(1/0===t.size)return 0;var e=w(t),n=d(t),r=e?1:0,i=t.__iterate(n?e?function(t,e){r=31*r+ir(ee(t),ee(e))|0}:function(t,e){r=r+ir(ee(t),ee(e))|0}:e?function(t){r=31*r+ee(t)|0}:function(t){r=r+ee(t)|0});return rr(i,r)}function rr(t,e){return e=Ir(e,3432918353),e=Ir(e<<15|e>>>-15,461845907),e=Ir(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=Ir(e^e>>>16,2246822507),e=Ir(e^e>>>13,3266489909),e=te(e^e>>>16)}function ir(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var or=Array.prototype.slice,ur="delete",ar=5,sr=1<<ar,cr=sr-1,fr={},lr={value:!1},hr={value:!1};t(p,h),t(_,h),t(v,h),h.isIterable=y,h.isKeyed=d,h.isIndexed=g,h.isAssociative=m,h.isOrdered=w,h.Keyed=p,h.Indexed=_,h.Set=v;var pr="@@__IMMUTABLE_ITERABLE__@@",_r="@@__IMMUTABLE_KEYED__@@",vr="@@__IMMUTABLE_INDEXED__@@",yr="@@__IMMUTABLE_ORDERED__@@",dr=0,gr=1,mr=2,wr="function"==typeof Symbol&&Symbol.iterator,Tr="@@iterator",Er=wr||Tr;T.prototype.toString=function(){return"[Iterator]"},T.KEYS=dr,T.VALUES=gr,T.ENTRIES=mr,T.prototype.inspect=T.prototype.toSource=function(){return this.toString()},T.prototype[Er]=function(){return this},t(C,h),C.of=function(){return C(arguments)},C.prototype.toSeq=function(){return this},C.prototype.toString=function(){return this.__toString("Seq {","}")},C.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},C.prototype.__iterate=function(t,e){return G(this,t,e,!0)},C.prototype.__iterator=function(t,e){return K(this,t,e,!0)},t(D,C),D.prototype.toKeyedSeq=function(){return this},t(x,C),x.of=function(){return x(arguments)},x.prototype.toIndexedSeq=function(){return this},x.prototype.toString=function(){return this.__toString("Seq [","]")},x.prototype.__iterate=function(t,e){return G(this,t,e,!1)},x.prototype.__iterator=function(t,e){return K(this,t,e,!1)},t(R,C),R.of=function(){return R(arguments)},R.prototype.toSetSeq=function(){return this},C.isSeq=L,C.Keyed=D,C.Set=R,C.Indexed=x;var br="@@__IMMUTABLE_SEQ__@@";C.prototype[br]=!0,t(M,x),M.prototype.get=function(t,e){return this.has(t)?this._array[u(this,t)]:e},M.prototype.__iterate=function(t,e){for(var n=this._array,r=n.length-1,i=0;r>=i;i++)if(t(n[e?r-i:i],i,this)===!1)return i+1;return i},M.prototype.__iterator=function(t,e){var n=this._array,r=n.length-1,i=0;return new T(function(){return i>r?b():E(t,i,n[e?r-i++:i++])})},t(k,D),k.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},k.prototype.has=function(t){return this._object.hasOwnProperty(t)},k.prototype.__iterate=function(t,e){for(var n=this._object,r=this._keys,i=r.length-1,o=0;i>=o;o++){var u=r[e?i-o:o];if(t(n[u],u,this)===!1)return o+1}return o},k.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,i=r.length-1,o=0;return new T(function(){var u=r[e?i-o:o];return o++>i?b():E(t,u,n[u])})},k.prototype[yr]=!0,t(j,x),j.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var n=this._iterable,r=S(n),i=0;if(I(r))for(var o;!(o=r.next()).done&&t(o.value,i++,this)!==!1;);return i},j.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterable,r=S(n);if(!I(r))return new T(b);var i=0;return new T(function(){var e=r.next();return e.done?e:E(t,i++,e.value)})},t(z,x),z.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var n=this._iterator,r=this._iteratorCache,i=0;i<r.length;)if(t(r[i],i++,this)===!1)return i;for(var o;!(o=n.next()).done;){var u=o.value;if(r[i]=u,t(u,i++,this)===!1)break}return i},z.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterator,r=this._iteratorCache,i=0;return new T(function(){if(i>=r.length){var e=n.next();if(e.done)return e;r[i]=e.value}return E(t,i,r[i++])})};var Or;t($,h),t(H,$),t(F,$),t(B,$),$.Keyed=H,$.Indexed=F,$.Set=B;var Ir="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){t=0|t,e=0|e;var n=65535&t,r=65535&e;return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0},Sr=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),Ar="function"==typeof WeakMap&&new WeakMap,Nr=0,Cr="__immutablehash__";"function"==typeof Symbol&&(Cr=Symbol(Cr));var Dr=16,xr=255,Rr=0,Mr={};t(se,D),se.prototype.get=function(t,e){return this._iter.get(t,e)},se.prototype.has=function(t){return this._iter.has(t)},se.prototype.valueSeq=function(){return this._iter.valueSeq()},se.prototype.reverse=function(){var t=this,e=_e(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},se.prototype.map=function(t,e){var n=this,r=pe(this,t,e);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(t,e)}),r},se.prototype.__iterate=function(t,e){var n,r=this;return this._iter.__iterate(this._useKeys?function(e,n){return t(e,n,r)}:(n=e?xe(this):0,function(i){return t(i,e?--n:n++,r)}),e)},se.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var n=this._iter.__iterator(gr,e),r=e?xe(this):0;return new T(function(){var i=n.next();return i.done?i:E(t,e?--r:r++,i.value,i)})},se.prototype[yr]=!0,t(ce,x),ce.prototype.contains=function(t){return this._iter.contains(t)},ce.prototype.__iterate=function(t,e){var n=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,n) -},e)},ce.prototype.__iterator=function(t,e){var n=this._iter.__iterator(gr,e),r=0;return new T(function(){var e=n.next();return e.done?e:E(t,r++,e.value,e)})},t(fe,R),fe.prototype.has=function(t){return this._iter.contains(t)},fe.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return t(e,e,n)},e)},fe.prototype.__iterator=function(t,e){var n=this._iter.__iterator(gr,e);return new T(function(){var e=n.next();return e.done?e:E(t,e.value,e.value,e)})},t(le,D),le.prototype.entrySeq=function(){return this._iter.toSeq()},le.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return e?(De(e),t(e[1],e[0],n)):void 0},e)},le.prototype.__iterator=function(t,e){var n=this._iter.__iterator(gr,e);return new T(function(){for(;;){var e=n.next();if(e.done)return e;var r=e.value;if(r)return De(r),t===mr?e:E(t,r[0],r[1],e)}})},ce.prototype.cacheResult=se.prototype.cacheResult=fe.prototype.cacheResult=le.prototype.cacheResult=ke,t(Le,H),Le.prototype.toString=function(){return this.__toString("Map {","}")},Le.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Le.prototype.set=function(t,e){return Je(this,t,e)},Le.prototype.setIn=function(t,e){return this.updateIn(t,fr,function(){return e})},Le.prototype.remove=function(t){return Je(this,t,fr)},Le.prototype.deleteIn=function(t){return this.updateIn(t,function(){return fr})},Le.prototype.update=function(t,e,n){return 1===arguments.length?t(this):this.updateIn([t],e,n)},Le.prototype.updateIn=function(t,e,n){n||(n=e,e=void 0);var r=un(this,ze(t),e,n);return r===fr?void 0:r},Le.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Be()},Le.prototype.merge=function(){return nn(this,void 0,arguments)},Le.prototype.mergeWith=function(t){var e=or.call(arguments,1);return nn(this,t,e)},Le.prototype.mergeIn=function(t){var e=or.call(arguments,1);return this.updateIn(t,Be(),function(t){return t.merge.apply(t,e)})},Le.prototype.mergeDeep=function(){return nn(this,rn(void 0),arguments)},Le.prototype.mergeDeepWith=function(t){var e=or.call(arguments,1);return nn(this,rn(t),e)},Le.prototype.mergeDeepIn=function(t){var e=or.call(arguments,1);return this.updateIn(t,Be(),function(t){return t.mergeDeep.apply(t,e)})},Le.prototype.sort=function(t){return On(Ie(this,t))},Le.prototype.sortBy=function(t,e){return On(Ie(this,e,t))},Le.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Le.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},Le.prototype.asImmutable=function(){return this.__ensureOwner()},Le.prototype.wasAltered=function(){return this.__altered},Le.prototype.__iterator=function(t,e){return new Ke(this,t,e)},Le.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],n)},e),r},Le.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Fe(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Le.isMap=qe;var kr="@@__IMMUTABLE_MAP__@@",jr=Le.prototype;jr[kr]=!0,jr[ur]=jr.remove,jr.removeIn=jr.deleteIn,Pe.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(J(n,i[o][0]))return i[o][1];return r},Pe.prototype.update=function(t,e,r,o,u,a,s){for(var c=u===fr,f=this.entries,l=0,h=f.length;h>l&&!J(o,f[l][0]);l++);var p=h>l;if(p?f[l][1]===u:c)return this;if(n(s),(c||!p)&&n(a),!c||1!==f.length){if(!p&&!c&&f.length>=Lr)return Qe(t,f,o,u);var _=t&&t===this.ownerID,v=_?f:i(f);return p?c?l===h-1?v.pop():v[l]=v.pop():v[l]=[o,u]:v.push([o,u]),_?(this.entries=v,this):new Pe(t,v)}},Ue.prototype.get=function(t,e,n,r){void 0===e&&(e=ee(n));var i=1<<((0===t?e:e>>>t)&cr),o=this.bitmap;return 0===(o&i)?r:this.nodes[an(o&i-1)].get(t+ar,e,n,r)},Ue.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=ee(r));var a=(0===e?n:n>>>e)&cr,s=1<<a,c=this.bitmap,f=0!==(c&s);if(!f&&i===fr)return this;var l=an(c&s-1),h=this.nodes,p=f?h[l]:void 0,_=Ye(p,t,e+ar,n,r,i,o,u);if(_===p)return this;if(!f&&_&&h.length>=qr)return en(t,h,c,a,_);if(f&&!_&&2===h.length&&Xe(h[1^l]))return h[1^l];if(f&&_&&1===h.length&&Xe(_))return _;var v=t&&t===this.ownerID,y=f?_?c:c^s:c|s,d=f?_?sn(h,l,_,v):fn(h,l,v):cn(h,l,_,v);return v?(this.bitmap=y,this.nodes=d,this):new Ue(t,y,d)},We.prototype.get=function(t,e,n,r){void 0===e&&(e=ee(n));var i=(0===t?e:e>>>t)&cr,o=this.nodes[i];return o?o.get(t+ar,e,n,r):r},We.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=ee(r));var a=(0===e?n:n>>>e)&cr,s=i===fr,c=this.nodes,f=c[a];if(s&&!f)return this;var l=Ye(f,t,e+ar,n,r,i,o,u);if(l===f)return this;var h=this.count;if(f){if(!l&&(h--,Pr>h))return tn(t,c,h,a)}else h++;var p=t&&t===this.ownerID,_=sn(c,a,l,p);return p?(this.count=h,this.nodes=_,this):new We(t,h,_)},Ve.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(J(n,i[o][0]))return i[o][1];return r},Ve.prototype.update=function(t,e,r,o,u,a,s){void 0===r&&(r=ee(o));var c=u===fr;if(r!==this.keyHash)return c?this:(n(s),n(a),Ze(this,t,e,r,[o,u]));for(var f=this.entries,l=0,h=f.length;h>l&&!J(o,f[l][0]);l++);var p=h>l;if(p?f[l][1]===u:c)return this;if(n(s),(c||!p)&&n(a),c&&2===h)return new Ge(t,this.keyHash,f[1^l]);var _=t&&t===this.ownerID,v=_?f:i(f);return p?c?l===h-1?v.pop():v[l]=v.pop():v[l]=[o,u]:v.push([o,u]),_?(this.entries=v,this):new Ve(t,this.keyHash,v)},Ge.prototype.get=function(t,e,n,r){return J(n,this.entry[0])?this.entry[1]:r},Ge.prototype.update=function(t,e,r,i,o,u,a){var s=o===fr,c=J(i,this.entry[0]);return(c?o===this.entry[1]:s)?this:(n(a),s?void n(u):c?t&&t===this.ownerID?(this.entry[1]=o,this):new Ge(t,this.keyHash,[i,o]):(n(u),Ze(this,t,e,ee(i),[i,o])))},Pe.prototype.iterate=Ve.prototype.iterate=function(t,e){for(var n=this.entries,r=0,i=n.length-1;i>=r;r++)if(t(n[e?i-r:r])===!1)return!1},Ue.prototype.iterate=We.prototype.iterate=function(t,e){for(var n=this.nodes,r=0,i=n.length-1;i>=r;r++){var o=n[e?i-r:r];if(o&&o.iterate(t,e)===!1)return!1}},Ge.prototype.iterate=function(t){return t(this.entry)},t(Ke,T),Ke.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var n,r=e.node,i=e.index++;if(r.entry){if(0===i)return $e(t,r.entry)}else if(r.entries){if(n=r.entries.length-1,n>=i)return $e(t,r.entries[this._reverse?n-i:i])}else if(n=r.nodes.length-1,n>=i){var o=r.nodes[this._reverse?n-i:i];if(o){if(o.entry)return $e(t,o.entry);e=this._stack=He(o,e)}continue}e=this._stack=this._stack.__prev}return b()};var zr,Lr=sr/4,qr=sr/2,Pr=sr/4;t(ln,F),ln.of=function(){return this(arguments)},ln.prototype.toString=function(){return this.__toString("List [","]")},ln.prototype.get=function(t,e){if(t=u(this,t),0>t||t>=this.size)return e;t+=this._origin;var n=wn(this,t);return n&&n.array[t&cr]},ln.prototype.set=function(t,e){return dn(this,t,e)},ln.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},ln.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=ar,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):yn()},ln.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations(function(n){Tn(n,0,e+t.length);for(var r=0;r<t.length;r++)n.set(e+r,t[r])})},ln.prototype.pop=function(){return Tn(this,0,-1)},ln.prototype.unshift=function(){var t=arguments;return this.withMutations(function(e){Tn(e,-t.length);for(var n=0;n<t.length;n++)e.set(n,t[n])})},ln.prototype.shift=function(){return Tn(this,1)},ln.prototype.merge=function(){return En(this,void 0,arguments)},ln.prototype.mergeWith=function(t){var e=or.call(arguments,1);return En(this,t,e)},ln.prototype.mergeDeep=function(){return En(this,rn(void 0),arguments)},ln.prototype.mergeDeepWith=function(t){var e=or.call(arguments,1);return En(this,rn(t),e)},ln.prototype.setSize=function(t){return Tn(this,0,t)},ln.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:Tn(this,c(t,n),f(e,n))},ln.prototype.__iterator=function(t,e){var n=0,r=_n(this,e);return new T(function(){var e=r();return e===Gr?b():E(t,n++,e)})},ln.prototype.__iterate=function(t,e){for(var n,r=0,i=_n(this,e);(n=i())!==Gr&&t(n,r++,this)!==!1;);return r},ln.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?vn(this._origin,this._capacity,this._level,this._root,this._tail,t,this.__hash):(this.__ownerID=t,this)},ln.isList=hn;var Ur="@@__IMMUTABLE_LIST__@@",Wr=ln.prototype;Wr[Ur]=!0,Wr[ur]=Wr.remove,Wr.setIn=jr.setIn,Wr.deleteIn=Wr.removeIn=jr.removeIn,Wr.update=jr.update,Wr.updateIn=jr.updateIn,Wr.mergeIn=jr.mergeIn,Wr.mergeDeepIn=jr.mergeDeepIn,Wr.withMutations=jr.withMutations,Wr.asMutable=jr.asMutable,Wr.asImmutable=jr.asImmutable,Wr.wasAltered=jr.wasAltered,pn.prototype.removeBefore=function(t,e,n){if(n===e?1<<e:0||0===this.array.length)return this;var r=n>>>e&cr;if(r>=this.array.length)return new pn([],t);var i,o=0===r;if(e>0){var u=this.array[r];if(i=u&&u.removeBefore(t,e-ar,n),i===u&&o)return this}if(o&&!i)return this;var a=mn(this,t);if(!o)for(var s=0;r>s;s++)a.array[s]=void 0;return i&&(a.array[r]=i),a},pn.prototype.removeAfter=function(t,e,n){if(n===e?1<<e:0||0===this.array.length)return this;var r=n-1>>>e&cr;if(r>=this.array.length)return this;var i,o=r===this.array.length-1;if(e>0){var u=this.array[r];if(i=u&&u.removeAfter(t,e-ar,n),i===u&&o)return this}if(o&&!i)return this;var a=mn(this,t);return o||a.array.pop(),i&&(a.array[r]=i),a};var Vr,Gr={};t(On,Le),On.of=function(){return this(arguments)},On.prototype.toString=function(){return this.__toString("OrderedMap {","}")},On.prototype.get=function(t,e){var n=this._map.get(t);return void 0!==n?this._list.get(n)[1]:e},On.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):An()},On.prototype.set=function(t,e){return Nn(this,t,e)},On.prototype.remove=function(t){return Nn(this,t,fr)},On.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},On.prototype.__iterate=function(t,e){var n=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],n)},e)},On.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},On.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),n=this._list.__ensureOwner(t);return t?Sn(e,n,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=n,this)},On.isOrderedMap=In,On.prototype[yr]=!0,On.prototype[ur]=On.prototype.remove;var Kr;t(Cn,F),Cn.of=function(){return this(arguments)},Cn.prototype.toString=function(){return this.__toString("Stack [","]")},Cn.prototype.get=function(t,e){var n=this._head;for(t=u(this,t);n&&t--;)n=n.next;return n?n.value:e},Cn.prototype.peek=function(){return this._head&&this._head.value},Cn.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,n=arguments.length-1;n>=0;n--)e={value:arguments[n],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):xn(t,e)},Cn.prototype.pushAll=function(t){if(t=_(t),0===t.size)return this;ae(t.size);var e=this.size,n=this._head;return t.reverse().forEach(function(t){e++,n={value:t,next:n}}),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):xn(e,n)},Cn.prototype.pop=function(){return this.slice(1)},Cn.prototype.unshift=function(){return this.push.apply(this,arguments)},Cn.prototype.unshiftAll=function(t){return this.pushAll(t)},Cn.prototype.shift=function(){return this.pop.apply(this,arguments)},Cn.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Rn()},Cn.prototype.slice=function(t,e){if(s(t,e,this.size))return this;var n=c(t,this.size),r=f(e,this.size);if(r!==this.size)return F.prototype.slice.call(this,t,e);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):xn(i,o)},Cn.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?xn(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Cn.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var n=0,r=this._head;r&&t(r.value,n++,this)!==!1;)r=r.next;return n},Cn.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new T(function(){if(r){var e=r.value;return r=r.next,E(t,n++,e)}return b()})},Cn.isStack=Dn;var $r="@@__IMMUTABLE_STACK__@@",Hr=Cn.prototype;Hr[$r]=!0,Hr.withMutations=jr.withMutations,Hr.asMutable=jr.asMutable,Hr.asImmutable=jr.asImmutable,Hr.wasAltered=jr.wasAltered;var Fr;t(Mn,B),Mn.of=function(){return this(arguments)},Mn.fromKeys=function(t){return this(p(t).keySeq())},Mn.prototype.toString=function(){return this.__toString("Set {","}")},Mn.prototype.has=function(t){return this._map.has(t)},Mn.prototype.add=function(t){return jn(this,this._map.set(t,!0))},Mn.prototype.remove=function(t){return jn(this,this._map.remove(t))},Mn.prototype.clear=function(){return jn(this,this._map.clear())},Mn.prototype.union=function(){var t=or.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0===this.size&&1===t.length?this.constructor(t[0]):this.withMutations(function(e){for(var n=0;n<t.length;n++)v(t[n]).forEach(function(t){return e.add(t)})})},Mn.prototype.intersect=function(){var t=or.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return v(t)});var e=this;return this.withMutations(function(n){e.forEach(function(e){t.every(function(t){return t.contains(e)})||n.remove(e)})})},Mn.prototype.subtract=function(){var t=or.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return v(t)});var e=this;return this.withMutations(function(n){e.forEach(function(e){t.some(function(t){return t.contains(e)})&&n.remove(e)})})},Mn.prototype.merge=function(){return this.union.apply(this,arguments)},Mn.prototype.mergeWith=function(){var t=or.call(arguments,1);return this.union.apply(this,t)},Mn.prototype.sort=function(t){return qn(Ie(this,t))},Mn.prototype.sortBy=function(t,e){return qn(Ie(this,e,t))},Mn.prototype.wasAltered=function(){return this._map.wasAltered()},Mn.prototype.__iterate=function(t,e){var n=this;return this._map.__iterate(function(e,r){return t(r,r,n)},e)},Mn.prototype.__iterator=function(t,e){return this._map.map(function(t,e){return e}).__iterator(t,e)},Mn.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t);return t?this.__make(e,t):(this.__ownerID=t,this._map=e,this)},Mn.isSet=kn;var Br="@@__IMMUTABLE_SET__@@",Jr=Mn.prototype;Jr[Br]=!0,Jr[ur]=Jr.remove,Jr.mergeDeep=Jr.merge,Jr.mergeDeepWith=Jr.mergeWith,Jr.withMutations=jr.withMutations,Jr.asMutable=jr.asMutable,Jr.asImmutable=jr.asImmutable,Jr.__empty=Ln,Jr.__make=zn;var Yr;t(qn,Mn),qn.of=function(){return this(arguments)},qn.fromKeys=function(t){return this(p(t).keySeq())},qn.prototype.toString=function(){return this.__toString("OrderedSet {","}")},qn.isOrderedSet=Pn;var Xr=qn.prototype;Xr[yr]=!0,Xr.__empty=Wn,Xr.__make=Un;var Zr;t(Vn,H),Vn.prototype.toString=function(){return this.__toString(Kn(this)+" {","}")},Vn.prototype.has=function(t){return this._defaultValues.hasOwnProperty(t)},Vn.prototype.get=function(t,e){if(!this.has(t))return e;var n=this._defaultValues[t];return this._map?this._map.get(t,n):n},Vn.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var t=Object.getPrototypeOf(this).constructor;return t._empty||(t._empty=Gn(this,Be()))},Vn.prototype.set=function(t,e){if(!this.has(t))throw new Error('Cannot set unknown key "'+t+'" on '+Kn(this));var n=this._map&&this._map.set(t,e);return this.__ownerID||n===this._map?this:Gn(this,n)},Vn.prototype.remove=function(t){if(!this.has(t))return this;var e=this._map&&this._map.remove(t);return this.__ownerID||e===this._map?this:Gn(this,e)},Vn.prototype.wasAltered=function(){return this._map.wasAltered()},Vn.prototype.__iterator=function(t,e){var n=this;return p(this._defaultValues).map(function(t,e){return n.get(e)}).__iterator(t,e)},Vn.prototype.__iterate=function(t,e){var n=this;return p(this._defaultValues).map(function(t,e){return n.get(e)}).__iterate(t,e)},Vn.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map&&this._map.__ensureOwner(t);return t?Gn(this,e,t):(this.__ownerID=t,this._map=e,this)};var Qr=Vn.prototype;Qr[ur]=Qr.remove,Qr.deleteIn=Qr.removeIn=jr.removeIn,Qr.merge=jr.merge,Qr.mergeWith=jr.mergeWith,Qr.mergeIn=jr.mergeIn,Qr.mergeDeep=jr.mergeDeep,Qr.mergeDeepWith=jr.mergeDeepWith,Qr.mergeDeepIn=jr.mergeDeepIn,Qr.setIn=jr.setIn,Qr.update=jr.update,Qr.updateIn=jr.updateIn,Qr.withMutations=jr.withMutations,Qr.asMutable=jr.asMutable,Qr.asImmutable=jr.asImmutable,t(Hn,x),Hn.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(this._step>1?" by "+this._step:"")+" ]"},Hn.prototype.get=function(t,e){return this.has(t)?this._start+u(this,t)*this._step:e},Hn.prototype.contains=function(t){var e=(t-this._start)/this._step;return e>=0&&e<this.size&&e===Math.floor(e)},Hn.prototype.slice=function(t,e){return s(t,e,this.size)?this:(t=c(t,this.size),e=f(e,this.size),t>=e?new Hn(0,0):new Hn(this.get(t,this._end),this.get(e,this._end),this._step))},Hn.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step===0){var n=e/this._step;if(n>=0&&n<this.size)return n}return-1},Hn.prototype.lastIndexOf=function(t){return this.indexOf(t)},Hn.prototype.__iterate=function(t,e){for(var n=this.size-1,r=this._step,i=e?this._start+n*r:this._start,o=0;n>=o;o++){if(t(i,o,this)===!1)return o+1;i+=e?-r:r}return o},Hn.prototype.__iterator=function(t,e){var n=this.size-1,r=this._step,i=e?this._start+n*r:this._start,o=0;return new T(function(){var u=i;return i+=e?-r:r,o>n?b():E(t,o++,u)})},Hn.prototype.equals=function(t){return t instanceof Hn?this._start===t._start&&this._end===t._end&&this._step===t._step:$n(this,t)};var ti;t(Fn,x),Fn.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Fn.prototype.get=function(t,e){return this.has(t)?this._value:e},Fn.prototype.contains=function(t){return J(this._value,t)},Fn.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:new Fn(this._value,f(e,n)-c(t,n))},Fn.prototype.reverse=function(){return this},Fn.prototype.indexOf=function(t){return J(this._value,t)?0:-1},Fn.prototype.lastIndexOf=function(t){return J(this._value,t)?this.size:-1},Fn.prototype.__iterate=function(t){for(var e=0;e<this.size;e++)if(t(this._value,e,this)===!1)return e+1;return e},Fn.prototype.__iterator=function(t){var e=this,n=0;return new T(function(){return n<e.size?E(t,n++,e._value):b()})},Fn.prototype.equals=function(t){return t instanceof Fn?J(this._value,t._value):$n(t)};var ei;h.Iterator=T,Bn(h,{toArray:function(){ae(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate(function(e,n){t[n]=e}),t},toIndexedSeq:function(){return new ce(this)},toJS:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJS?t.toJS():t}).__toJS()},toJSON:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJSON?t.toJSON():t}).__toJS()},toKeyedSeq:function(){return new se(this,!0)},toMap:function(){return Le(this.toKeyedSeq())},toObject:function(){ae(this.size);var t={};return this.__iterate(function(e,n){t[n]=e}),t},toOrderedMap:function(){return On(this.toKeyedSeq())},toOrderedSet:function(){return qn(d(this)?this.valueSeq():this)},toSet:function(){return Mn(d(this)?this.valueSeq():this)},toSetSeq:function(){return new fe(this)},toSeq:function(){return g(this)?this.toIndexedSeq():d(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Cn(d(this)?this.valueSeq():this)},toList:function(){return ln(d(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){var t=or.call(arguments,0);return Ce(this,Te(this,t))},contains:function(t){return this.some(function(e){return J(e,t)})},entries:function(){return this.__iterator(mr)},every:function(t,e){ae(this.size);var n=!0;return this.__iterate(function(r,i,o){return t.call(e,r,i,o)?void 0:(n=!1,!1)}),n},filter:function(t,e){return Ce(this,ve(this,t,e,!0))},find:function(t,e,n){var r=this.findEntry(t,e);return r?r[1]:n},findEntry:function(t,e){var n;return this.__iterate(function(r,i,o){return t.call(e,r,i,o)?(n=[i,r],!1):void 0}),n},findLastEntry:function(t,e){return this.toSeq().reverse().findEntry(t,e)},forEach:function(t,e){return ae(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){ae(this.size),t=void 0!==t?""+t:",";var e="",n=!0;return this.__iterate(function(r){n?n=!1:e+=t,e+=null!==r&&void 0!==r?r.toString():""}),e},keys:function(){return this.__iterator(dr)},map:function(t,e){return Ce(this,pe(this,t,e))},reduce:function(t,e,n){ae(this.size);var r,i;return arguments.length<2?i=!0:r=e,this.__iterate(function(e,o,u){i?(i=!1,r=e):r=t.call(n,r,e,o,u)}),r},reduceRight:function(){var t=this.toKeyedSeq().reverse();return t.reduce.apply(t,arguments)},reverse:function(){return Ce(this,_e(this,!0))},slice:function(t,e){return Ce(this,ge(this,t,e,!0))},some:function(t,e){return!this.every(Xn(t),e)},sort:function(t){return Ce(this,Ie(this,t))},values:function(){return this.__iterator(gr)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(t,e){return o(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return ye(this,t,e)},equals:function(t){return $n(this,t)},entrySeq:function(){var t=this;if(t._cache)return new M(t._cache);var e=t.toSeq().map(Yn).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(Xn(t),e)},findLast:function(t,e,n){return this.toKeyedSeq().reverse().find(t,e,n)},first:function(){return this.find(a)},flatMap:function(t,e){return Ce(this,be(this,t,e))},flatten:function(t){return Ce(this,Ee(this,t,!0))},fromEntrySeq:function(){return new le(this)},get:function(t,e){return this.find(function(e,n){return J(n,t)},void 0,e)},getIn:function(t,e){for(var n,r=this,i=ze(t);!(n=i.next()).done;){var o=n.value;if(r=r&&r.get?r.get(o,fr):fr,r===fr)return e}return r},groupBy:function(t,e){return de(this,t,e)},has:function(t){return this.get(t,fr)!==fr},hasIn:function(t){return this.getIn(t,fr)!==fr},isSubset:function(t){return t="function"==typeof t.contains?t:h(t),this.every(function(e){return t.contains(e)})},isSuperset:function(t){return t.isSubset(this)},keySeq:function(){return this.toSeq().map(Jn).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},max:function(t){return Se(this,t)},maxBy:function(t,e){return Se(this,e,t)},min:function(t){return Se(this,t?Zn(t):er)},minBy:function(t,e){return Se(this,e?Zn(e):er,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return Ce(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return Ce(this,we(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(Xn(t),e)},sortBy:function(t,e){return Ce(this,Ie(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return Ce(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return Ce(this,me(this,t,e))},takeUntil:function(t,e){return this.takeWhile(Xn(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=nr(this))}});var ni=h.prototype;ni[pr]=!0,ni[Er]=ni.values,ni.__toJS=ni.toArray,ni.__toStringMapper=Qn,ni.inspect=ni.toSource=function(){return this.toString()},ni.chain=ni.flatMap,function(){try{Object.defineProperty(ni,"length",{get:function(){if(!h.noLengthWarning){var t;try{throw new Error}catch(e){t=e.stack}if(-1===t.indexOf("_wrapObject"))return console&&console.warn&&console.warn("iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. "+t),this.size}}})}catch(t){}}(),Bn(p,{flip:function(){return Ce(this,he(this))},findKey:function(t,e){var n=this.findEntry(t,e);return n&&n[0]},findLastKey:function(t,e){return this.toSeq().reverse().findKey(t,e)},keyOf:function(t){return this.findKey(function(e){return J(e,t)})},lastKeyOf:function(t){return this.findLastKey(function(e){return J(e,t)})},mapEntries:function(t,e){var n=this,r=0;return Ce(this,this.toSeq().map(function(i,o){return t.call(e,[o,i],r++,n)}).fromEntrySeq())},mapKeys:function(t,e){var n=this;return Ce(this,this.toSeq().flip().map(function(r,i){return t.call(e,r,i,n)}).flip())}});var ri=p.prototype;ri[_r]=!0,ri[Er]=ni.entries,ri.__toJS=ni.toObject,ri.__toStringMapper=function(t,e){return e+": "+Qn(t)},Bn(_,{toKeyedSeq:function(){return new se(this,!1)},filter:function(t,e){return Ce(this,ve(this,t,e,!1))},findIndex:function(t,e){var n=this.findEntry(t,e);return n?n[0]:-1},indexOf:function(t){var e=this.toKeyedSeq().keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){return this.toSeq().reverse().indexOf(t)},reverse:function(){return Ce(this,_e(this,!1))},slice:function(t,e){return Ce(this,ge(this,t,e,!1))},splice:function(t,e){var n=arguments.length;if(e=Math.max(0|e,0),0===n||2===n&&!e)return this;t=c(t,this.size);var r=this.slice(0,t);return Ce(this,1===n?r:r.concat(i(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.toKeyedSeq().findLastKey(t,e);return void 0===n?-1:n},first:function(){return this.get(0)},flatten:function(t){return Ce(this,Ee(this,t,!1))},get:function(t,e){return t=u(this,t),0>t||1/0===this.size||void 0!==this.size&&t>this.size?e:this.find(function(e,n){return n===t},void 0,e)},has:function(t){return t=u(this,t),t>=0&&(void 0!==this.size?1/0===this.size||t<this.size:-1!==this.indexOf(t))},interpose:function(t){return Ce(this,Oe(this,t))},interleave:function(){var t=[this].concat(i(arguments)),e=Ne(this.toSeq(),x.of,t),n=e.flatten(!0);return e.size&&(n.size=e.size*t.length),Ce(this,n)},last:function(){return this.get(-1)},skipWhile:function(t,e){return Ce(this,we(this,t,e,!1))},zip:function(){var t=[this].concat(i(arguments));return Ce(this,Ne(this,tr,t))},zipWith:function(t){var e=i(arguments);return e[0]=this,Ce(this,Ne(this,t,e))}}),_.prototype[vr]=!0,_.prototype[yr]=!0,Bn(v,{get:function(t,e){return this.has(t)?t:e},contains:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}}),v.prototype.has=ni.contains,Bn(D,p.prototype),Bn(x,_.prototype),Bn(R,v.prototype),Bn(H,p.prototype),Bn(F,_.prototype),Bn(B,v.prototype);var ii={Iterable:h,Seq:C,Collection:$,Map:Le,OrderedMap:On,List:ln,Stack:Cn,Set:Mn,OrderedSet:qn,Record:Vn,Range:Hn,Repeat:Fn,is:J,fromJS:Y};return ii})},function(t,e,n){var r;(function(t,i){(function(){function o(t,e){if(t!==e){var n=t===t,r=e===e;if(t>e||!n||"undefined"==typeof t&&r)return 1;if(e>t||!r||"undefined"==typeof e&&n)return-1}return 0}function u(t,e,n){if(e!==e)return d(t,n);for(var r=(n||0)-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}function a(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}function s(t){return"string"==typeof t?t:null==t?"":t+""}function c(t){return t.charCodeAt(0)}function f(t,e){for(var n=-1,r=t.length;++n<r&&e.indexOf(t.charAt(n))>-1;);return n}function l(t,e){for(var n=t.length;n--&&e.indexOf(t.charAt(n))>-1;);return n}function h(t,e){return o(t.criteria,e.criteria)||t.index-e.index}function p(t,e){for(var n=-1,r=t.criteria,i=e.criteria,u=r.length;++n<u;){var a=o(r[n],i[n]);if(a)return a}return t.index-e.index}function _(t){return Ge[t]}function v(t){return Ke[t]}function y(t){return"\\"+Fe[t]}function d(t,e,n){for(var r=t.length,i=n?e||r:(e||0)-1;n?i--:++i<r;){var o=t[i];if(o!==o)return i}return-1}function g(t){return t&&"object"==typeof t||!1}function m(t){return 160>=t&&t>=9&&13>=t||32==t||160==t||5760==t||6158==t||t>=8192&&(8202>=t||8232==t||8233==t||8239==t||8287==t||12288==t||65279==t)}function w(t,e){for(var n=-1,r=t.length,i=-1,o=[];++n<r;)t[n]===e&&(t[n]=$,o[++i]=n);return o}function T(t,e){for(var n,r=-1,i=t.length,o=-1,u=[];++r<i;){var a=t[r],s=e?e(a,r,t):a;r&&n===s||(n=s,u[++o]=a)}return u}function E(t){for(var e=-1,n=t.length;++e<n&&m(t.charCodeAt(e)););return e}function b(t){for(var e=t.length;e--&&m(t.charCodeAt(e)););return e}function O(t){return $e[t]}function I(t){function e(t){if(g(t)&&!Va(t)){if(t instanceof n)return t;if(Hu.call(t,"__wrapped__"))return new n(t.__wrapped__,t.__chain__,Ye(t.__actions__))}return new n(t)}function n(t,e,n){this.__actions__=n||[],this.__chain__=!!e,this.__wrapped__=t}function r(t){this.actions=null,this.dir=1,this.dropCount=0,this.filtered=!1,this.iteratees=null,this.takeCount=Ea,this.views=null,this.wrapped=t}function i(){var t=this.actions,e=this.iteratees,n=this.views,i=new r(this.wrapped);return i.actions=t?Ye(t):null,i.dir=this.dir,i.dropCount=this.dropCount,i.filtered=this.filtered,i.iteratees=e?Ye(e):null,i.takeCount=this.takeCount,i.views=n?Ye(n):null,i}function m(){if(this.filtered){var t=new r(this);t.dir=-1,t.filtered=!0}else t=this.clone(),t.dir*=-1;return t}function Z(){var t=this.wrapped.value();if(!Va(t))return Fn(t,this.actions);var e=this.dir,n=0>e,r=yr(0,t.length,this.views),i=r.start,o=r.end,u=o-i,a=this.dropCount,s=ya(u,this.takeCount-a),c=n?o:i-1,f=this.iteratees,l=f?f.length:0,h=0,p=[];t:for(;u--&&s>h;){c+=e;for(var _=-1,v=t[c];++_<l;){var y=f[_],d=y.iteratee,g=d(v,c,t),m=y.type;if(m==V)v=g;else if(!g){if(m==W)continue t;break t}}a?a--:p[h++]=v}return p}function ne(){this.__data__={}}function ie(t){return this.has(t)&&delete this.__data__[t]}function Ge(t){return"__proto__"==t?S:this.__data__[t]}function Ke(t){return"__proto__"!=t&&Hu.call(this.__data__,t)}function $e(t,e){return"__proto__"!=t&&(this.__data__[t]=e),this}function He(t){var e=t?t.length:0;for(this.data={hash:ha(null),set:new oa};e--;)this.push(t[e])}function Fe(t,e){var n=t.data,r="string"==typeof e||To(e)?n.set.has(e):n.hash[e];return r?0:-1}function Je(t){var e=this.data;"string"==typeof t||To(t)?e.set.add(t):e.hash[t]=!0}function Ye(t,e){var n=-1,r=t.length;for(e||(e=xu(r));++n<r;)e[n]=t[n];return e}function Xe(t,e){for(var n=-1,r=t.length;++n<r&&e(t[n],n,t)!==!1;);return t}function Qe(t,e){for(var n=t.length;n--&&e(t[n],n,t)!==!1;);return t}function tn(t,e){for(var n=-1,r=t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function en(t,e){for(var n=-1,r=t.length,i=-1,o=[];++n<r;){var u=t[n];e(u,n,t)&&(o[++i]=u)}return o}function nn(t,e){for(var n=-1,r=t.length,i=xu(r);++n<r;)i[n]=e(t[n],n,t);return i}function rn(t){for(var e=-1,n=t.length,r=Ta;++e<n;){var i=t[e];i>r&&(r=i)}return r}function on(t){for(var e=-1,n=t.length,r=Ea;++e<n;){var i=t[e];r>i&&(r=i)}return r}function un(t,e,n,r){var i=-1,o=t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function an(t,e,n,r){var i=t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function sn(t,e){for(var n=-1,r=t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function cn(t,e){return"undefined"==typeof t?e:t}function fn(t,e,n,r){return"undefined"!=typeof t&&Hu.call(r,n)?t:e}function ln(t,e,n){var r=Ha(e);if(!n)return pn(e,t,r);for(var i=-1,o=r.length;++i<o;){var u=r[i],a=t[u],s=n(a,e[u],u,t,e);(s===s?s===a:a!==a)&&("undefined"!=typeof a||u in t)||(t[u]=s)}return t}function hn(t,e){for(var n=-1,r=t.length,i=br(r),o=e.length,u=xu(o);++n<o;){var a=e[n];i?(a=parseFloat(a),u[n]=Tr(a,r)?t[a]:S):u[n]=t[a]}return u}function pn(t,e,n){n||(n=e,e={});for(var r=-1,i=n.length;++r<i;){var o=n[r];e[o]=t[o]}return e}function _n(t,e){for(var n=-1,r=e.length;++n<r;){var i=e[n]; -t[i]=cr(t[i],N,t)}return t}function vn(t,e,n){var r=typeof t;return"function"==r?"undefined"!=typeof e&&wr(t)?Yn(t,e,n):t:null==t?Tu:"object"==r?zn(t):Pn(t+"")}function yn(t,e,n,r,i,o,u){var a;if(n&&(a=i?n(t,r,i):n(t)),"undefined"!=typeof a)return a;if(!To(t))return t;var s=Va(t);if(s){if(a=dr(t),!e)return Ye(t,a)}else{var c=Bu.call(t),f=c==X;if(c!=te&&c!=H&&(!f||i))return We[c]?mr(t,c,e):i?t:{};if(a=gr(f?{}:t),!e)return pn(t,a,Ha(t))}o||(o=[]),u||(u=[]);for(var l=o.length;l--;)if(o[l]==t)return u[l];return o.push(t),u.push(a),(s?Xe:Nn)(t,function(r,i){a[i]=yn(r,e,n,i,t,o,u)}),a}function dn(t,e,n,r){if(!wo(t))throw new Uu(K);return ua(function(){t.apply(S,Gn(n,r))},e)}function gn(t,e){var n=t?t.length:0,r=[];if(!n)return r;var i=-1,o=vr(),a=o==u,s=a&&e.length>=200&&Ra(e),c=e.length;s&&(o=Fe,a=!1,e=s);t:for(;++i<n;){var f=t[i];if(a&&f===f){for(var l=c;l--;)if(e[l]===f)continue t;r.push(f)}else o(e,f)<0&&r.push(f)}return r}function mn(t,e){var n=t?t.length:0;if(!br(n))return Nn(t,e);for(var r=-1,i=Rr(t);++r<n&&e(i[r],r,i)!==!1;);return t}function wn(t,e){var n=t?t.length:0;if(!br(n))return Cn(t,e);for(var r=Rr(t);n--&&e(r[n],n,r)!==!1;);return t}function Tn(t,e){var n=!0;return mn(t,function(t,r,i){return n=!!e(t,r,i)}),n}function En(t,e){var n=[];return mn(t,function(t,r,i){e(t,r,i)&&n.push(t)}),n}function bn(t,e,n,r){var i;return n(t,function(t,n,o){return e(t,n,o)?(i=r?n:t,!1):void 0}),i}function On(t,e,n,r){for(var i=(r||0)-1,o=t.length,u=-1,a=[];++i<o;){var s=t[i];if(g(s)&&br(s.length)&&(Va(s)||ho(s))){e&&(s=On(s,e,n));var c=-1,f=s.length;for(a.length+=f;++c<f;)a[++u]=s[c]}else n||(a[++u]=s)}return a}function In(t,e,n){for(var r=-1,i=Rr(t),o=n(t),u=o.length;++r<u;){var a=o[r];if(e(i[a],a,i)===!1)break}return t}function Sn(t,e,n){for(var r=Rr(t),i=n(t),o=i.length;o--;){var u=i[o];if(e(r[u],u,r)===!1)break}return t}function An(t,e){return In(t,e,Ko)}function Nn(t,e){return In(t,e,Ha)}function Cn(t,e){return Sn(t,e,Ha)}function Dn(t,e){for(var n=-1,r=e.length,i=-1,o=[];++n<r;){var u=e[n];wo(t[u])&&(o[++i]=u)}return o}function xn(t,e,n){var r=-1,i="function"==typeof e,o=t?t.length:0,u=br(o)?xu(o):[];return mn(t,function(t){var o=i?e:null!=t&&t[e];u[++r]=o?o.apply(t,n):S}),u}function Rn(t,e,n,r,i,o){if(t===e)return 0!==t||1/t==1/e;var u=typeof t,a=typeof e;return"function"!=u&&"object"!=u&&"function"!=a&&"object"!=a||null==t||null==e?t!==t&&e!==e:Mn(t,e,Rn,n,r,i,o)}function Mn(t,e,n,r,i,o,u){var a=Va(t),s=Va(e),c=F,f=F;a||(c=Bu.call(t),c==H?c=te:c!=te&&(a=Co(t))),s||(f=Bu.call(e),f==H?f=te:f!=te&&(s=Co(e)));var l=c==te,h=f==te,p=c==f;if(p&&!a&&!l)return lr(t,e,c);var _=l&&Hu.call(t,"__wrapped__"),v=h&&Hu.call(e,"__wrapped__");if(_||v)return n(_?t.value():t,v?e.value():e,r,i,o,u);if(!p)return!1;o||(o=[]),u||(u=[]);for(var y=o.length;y--;)if(o[y]==t)return u[y]==e;o.push(t),u.push(e);var d=(a?fr:hr)(t,e,n,r,i,o,u);return o.pop(),u.pop(),d}function kn(t,e,n,r,i){var o=e.length;if(null==t)return!o;for(var u=-1,a=!i;++u<o;)if(a&&r[u]?n[u]!==t[e[u]]:!Hu.call(t,e[u]))return!1;for(u=-1;++u<o;){var s=e[u];if(a&&r[u])var c=Hu.call(t,s);else{var f=t[s],l=n[u];c=i?i(f,l,s):S,"undefined"==typeof c&&(c=Rn(l,f,i,!0))}if(!c)return!1}return!0}function jn(t,e){var n=[];return mn(t,function(t,r,i){n.push(e(t,r,i))}),n}function zn(t){var e=Ha(t),n=e.length;if(1==n){var r=e[0],i=t[r];if(Or(i))return function(t){return null!=t&&i===t[r]&&Hu.call(t,r)}}for(var o=xu(n),u=xu(n);n--;)i=t[e[n]],o[n]=i,u[n]=Or(i);return function(t){return kn(t,e,o,u)}}function Ln(t,e,n,r,i){var o=br(e.length)&&(Va(e)||Co(e));return(o?Xe:Nn)(e,function(e,u,a){if(g(e))return r||(r=[]),i||(i=[]),qn(t,a,u,Ln,n,r,i);var s=t[u],c=n?n(s,e,u,t,a):S,f="undefined"==typeof c;f&&(c=e),!o&&"undefined"==typeof c||!f&&(c===c?c===s:s!==s)||(t[u]=c)}),t}function qn(t,e,n,r,i,o,u){for(var a=o.length,s=e[n];a--;)if(o[a]==s)return void(t[n]=u[a]);var c=t[n],f=i?i(c,s,n,t,e):S,l="undefined"==typeof f;l&&(f=s,br(s.length)&&(Va(s)||Co(s))?f=Va(c)?c:c?Ye(c):[]:Ka(s)||ho(s)?f=ho(c)?Ro(c):Ka(c)?c:{}:l=!1),o.push(s),u.push(f),l?t[n]=r(f,s,i,o,u):(f===f?f!==c:c===c)&&(t[n]=f)}function Pn(t){return function(e){return null==e?S:e[t]}}function Un(t,e){var n=e.length,r=hn(t,e);for(e.sort(o);n--;){var i=parseFloat(e[n]);if(i!=u&&Tr(i)){var u=i;aa.call(t,i,1)}}return r}function Wn(t,e){return t+ea(wa()*(e-t+1))}function Vn(t,e,n,r,i){return i(t,function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)}),n}function Gn(t,e,n){var r=-1,i=t.length;e=null==e?0:+e||0,0>e&&(e=-e>i?0:i+e),n="undefined"==typeof n||n>i?i:+n||0,0>n&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=xu(i);++r<i;)o[r]=t[r+e];return o}function Kn(t,e){var n;return mn(t,function(t,r,i){return n=e(t,r,i),!n}),!!n}function $n(t,e){var n=-1,r=vr(),i=t.length,o=r==u,a=o&&i>=200,s=a&&Ra(),c=[];s?(r=Fe,o=!1):(a=!1,s=e?[]:c);t:for(;++n<i;){var f=t[n],l=e?e(f,n,t):f;if(o&&f===f){for(var h=s.length;h--;)if(s[h]===l)continue t;e&&s.push(l),c.push(f)}else r(s,l)<0&&((e||a)&&s.push(l),c.push(f))}return c}function Hn(t,e){for(var n=-1,r=e.length,i=xu(r);++n<r;)i[n]=t[e[n]];return i}function Fn(t,e){var n=t;n instanceof r&&(n=n.value());for(var i=-1,o=e.length;++i<o;){var u=[n],a=e[i];ra.apply(u,a.args),n=a.func.apply(a.thisArg,u)}return n}function Bn(t,e,n){var r=0,i=t?t.length:r;if("number"==typeof e&&e===e&&Ia>=i){for(;i>r;){var o=r+i>>>1,u=t[o];(n?e>=u:e>u)?r=o+1:i=o}return i}return Jn(t,e,Tu,n)}function Jn(t,e,n,r){e=n(e);for(var i=0,o=t?t.length:0,u=e!==e,a="undefined"==typeof e;o>i;){var s=ea((i+o)/2),c=n(t[s]),f=c===c;if(u)var l=f||r;else l=a?f&&(r||"undefined"!=typeof c):r?e>=c:e>c;l?i=s+1:o=s}return ya(o,Oa)}function Yn(t,e,n){if("function"!=typeof t)return Tu;if("undefined"==typeof e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 3:return function(n,r,i){return t.call(e,n,r,i)};case 4:return function(n,r,i,o){return t.call(e,n,r,i,o)};case 5:return function(n,r,i,o,u){return t.call(e,n,r,i,o,u)}}return function(){return t.apply(e,arguments)}}function Xn(t){return Zu.call(t,0)}function Zn(t,e,n){for(var r=n.length,i=-1,o=va(t.length-r,0),u=-1,a=e.length,s=xu(o+a);++u<a;)s[u]=e[u];for(;++i<r;)s[n[i]]=t[i];for(;o--;)s[u++]=t[i++];return s}function Qn(t,e,n){for(var r=-1,i=n.length,o=-1,u=va(t.length-i,0),a=-1,s=e.length,c=xu(u+s);++o<u;)c[o]=t[o];for(var f=o;++a<s;)c[f+a]=e[a];for(;++r<i;)c[f+n[r]]=t[o++];return c}function tr(t,e){return function(n,r,i){var o=e?e():{};if(r=_r(r,i,3),Va(n))for(var u=-1,a=n.length;++u<a;){var s=n[u];t(o,s,r(s,u,n),n)}else mn(n,function(e,n,i){t(o,e,r(e,n,i),i)});return o}}function er(t){return function(){var e=arguments.length,n=arguments[0];if(2>e||null==n)return n;if(e>3&&Er(arguments[1],arguments[2],arguments[3])&&(e=2),e>3&&"function"==typeof arguments[e-2])var r=Yn(arguments[--e-1],arguments[e--],5);else e>2&&"function"==typeof arguments[e-1]&&(r=arguments[--e]);for(var i=0;++i<e;){var o=arguments[i];o&&t(n,o,r)}return n}}function nr(t,e){function n(){return(this instanceof n?r:t).apply(e,arguments)}var r=ir(t);return n}function rr(t){return function(e){for(var n=-1,r=du(eu(e)),i=r.length,o="";++n<i;)o=t(o,r[n],n);return o}}function ir(t){return function(){var e=Da(t.prototype),n=t.apply(e,arguments);return To(n)?n:e}}function or(t,e){return function(n,r,i){i&&Er(n,r,i)&&(r=null);var o=_r(),u=null==r;if(o===vn&&u||(u=!1,r=o(r,i,3)),u){var a=Va(n);if(a||!No(n))return t(a?n:xr(n));r=c}return pr(n,r,e)}}function ur(t,e,n,r,i,o,u,a,s,c){function f(){for(var m=arguments.length,T=m,E=xu(m);T--;)E[T]=arguments[T];if(r&&(E=Zn(E,r,i)),o&&(E=Qn(E,o,u)),_||y){var b=f.placeholder,O=w(E,b);if(m-=O.length,c>m){var I=a?Ye(a):null,S=va(c-m,0),A=_?O:null,D=_?null:O,x=_?E:null,R=_?null:E;e|=_?M:k,e&=~(_?k:M),v||(e&=~(N|C));var j=ur(t,e,n,x,A,R,D,I,s,S);return j.placeholder=b,j}}var z=h?n:this;return p&&(t=z[g]),a&&(E=Nr(E,a)),l&&s<E.length&&(E.length=s),(this instanceof f?d||ir(t):t).apply(z,E)}var l=e&z,h=e&N,p=e&C,_=e&x,v=e&D,y=e&R,d=!p&&ir(t),g=t;return f}function ar(t,e,n){var r=t.length;if(e=+e,r>=e||!pa(e))return"";var i=e-r;return n=null==n?" ":n+"",cu(n,Qu(i/n.length)).slice(0,i)}function sr(t,e,n,r){function i(){for(var e=-1,a=arguments.length,s=-1,c=r.length,f=xu(a+c);++s<c;)f[s]=r[s];for(;a--;)f[s++]=arguments[++e];return(this instanceof i?u:t).apply(o?n:this,f)}var o=e&N,u=ir(t);return i}function cr(t,e,n,r,i,o,u,a){var s=e&C;if(!s&&!wo(t))throw new Uu(K);var c=r?r.length:0;if(c||(e&=~(M|k),r=i=null),c-=i?i.length:0,e&k){var f=r,l=i;r=i=null}var h=!s&&Ma(t),p=[t,e,n,r,i,f,l,o,u,a];if(h&&h!==!0&&(Ir(p,h),e=p[1],a=p[9]),p[9]=null==a?s?0:t.length:va(a-c,0)||0,e==N)var _=nr(p[0],p[2]);else _=e!=M&&e!=(N|M)||p[4].length?ur.apply(null,p):sr.apply(null,p);var v=h?xa:ka;return v(_,p)}function fr(t,e,n,r,i,o,u){var a=-1,s=t.length,c=e.length,f=!0;if(s!=c&&!(i&&c>s))return!1;for(;f&&++a<s;){var l=t[a],h=e[a];if(f=S,r&&(f=i?r(h,l,a):r(l,h,a)),"undefined"==typeof f)if(i)for(var p=c;p--&&(h=e[p],!(f=l&&l===h||n(l,h,r,i,o,u))););else f=l&&l===h||n(l,h,r,i,o,u)}return!!f}function lr(t,e,n){switch(n){case B:case J:return+t==+e;case Y:return t.name==e.name&&t.message==e.message;case Q:return t!=+t?e!=+e:0==t?1/t==1/e:t==+e;case ee:case re:return t==e+""}return!1}function hr(t,e,n,r,i,o,u){var a=Ha(t),s=a.length,c=Ha(e),f=c.length;if(s!=f&&!i)return!1;for(var l,h=-1;++h<s;){var p=a[h],_=Hu.call(e,p);if(_){var v=t[p],y=e[p];_=S,r&&(_=i?r(y,v,p):r(v,y,p)),"undefined"==typeof _&&(_=v&&v===y||n(v,y,r,i,o,u))}if(!_)return!1;l||(l="constructor"==p)}if(!l){var d=t.constructor,g=e.constructor;if(d!=g&&"constructor"in t&&"constructor"in e&&!("function"==typeof d&&d instanceof d&&"function"==typeof g&&g instanceof g))return!1}return!0}function pr(t,e,n){var r=n?Ea:Ta,i=r,o=i;return mn(t,function(t,u,a){var s=e(t,u,a);((n?i>s:s>i)||s===r&&s===o)&&(i=s,o=t)}),o}function _r(t,n,r){var i=e.callback||mu;return i=i===mu?vn:i,r?i(t,n,r):i}function vr(t,n,r){var i=e.indexOf||$r;return i=i===$r?u:i,t?i(t,n,r):i}function yr(t,e,n){for(var r=-1,i=n?n.length:0;++r<i;){var o=n[r],u=o.size;switch(o.type){case"drop":t+=u;break;case"dropRight":e-=u;break;case"take":e=ya(e,t+u);break;case"takeRight":t=va(t,e-u)}}return{start:t,end:e}}function dr(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Hu.call(t,"index")&&(n.index=t.index,n.input=t.input),n}function gr(t){var e=t.constructor;return"function"==typeof e&&e instanceof e||(e=Lu),new e}function mr(t,e,n){var r=t.constructor;switch(e){case oe:return Xn(t);case B:case J:return new r(+t);case ue:case ae:case se:case ce:case fe:case le:case he:case pe:case _e:var i=t.buffer;return new r(n?Xn(i):i,t.byteOffset,t.length);case Q:case re:return new r(t);case ee:var o=new r(t.source,Se.exec(t));o.lastIndex=t.lastIndex}return o}function wr(t){var n=e.support,r=!(n.funcNames?t.name:n.funcDecomp);if(!r){var i=Ku.call(t);n.funcNames||(r=!Ae.test(i)),r||(r=ke.test(i)||Oo(t),xa(t,r))}return r}function Tr(t,e){return t=+t,e=null==e?Aa:e,t>-1&&t%1==0&&e>t}function Er(t,e,n){if(!To(n))return!1;var r=typeof e;if("number"==r)var i=n.length,o=br(i)&&Tr(e,i);else o="string"==r&&e in n;return o&&n[e]===t}function br(t){return"number"==typeof t&&t>-1&&t%1==0&&Aa>=t}function Or(t){return t===t&&(0===t?1/t>0:!To(t))}function Ir(t,e){var n=t[1],r=e[1],i=n|r,o=z|j,u=N|C,a=o|u|D|R,s=n&z&&!(r&z),c=n&j&&!(r&j),f=(c?t:e)[7],l=(s?t:e)[8],h=!(n>=j&&r>u||n>u&&r>=j),p=i>=o&&a>=i&&(j>n||(c||s)&&f.length<=l);if(!h&&!p)return t;r&N&&(t[2]=e[2],i|=n&N?0:D);var _=e[3];if(_){var v=t[3];t[3]=v?Zn(v,_,e[4]):Ye(_),t[4]=v?w(t[3],$):Ye(e[4])}return _=e[5],_&&(v=t[5],t[5]=v?Qn(v,_,e[6]):Ye(_),t[6]=v?w(t[5],$):Ye(e[6])),_=e[7],_&&(t[7]=Ye(_)),r&z&&(t[8]=null==t[8]?e[8]:ya(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i,t}function Sr(t,e){t=Rr(t);for(var n=-1,r=e.length,i={};++n<r;){var o=e[n];o in t&&(i[o]=t[o])}return i}function Ar(t,e){var n={};return An(t,function(t,r,i){e(t,r,i)&&(n[r]=t)}),n}function Nr(t,e){for(var n=t.length,r=ya(e.length,n),i=Ye(t);r--;){var o=e[r];t[r]=Tr(o,n)?i[o]:S}return t}function Cr(t){{var n;e.support}if(!g(t)||Bu.call(t)!=te||!Hu.call(t,"constructor")&&(n=t.constructor,"function"==typeof n&&!(n instanceof n)))return!1;var r;return An(t,function(t,e){r=e}),"undefined"==typeof r||Hu.call(t,r)}function Dr(t){for(var n=Ko(t),r=n.length,i=r&&t.length,o=e.support,u=i&&br(i)&&(Va(t)||o.nonEnumArgs&&ho(t)),a=-1,s=[];++a<r;){var c=n[a];(u&&Tr(c,i)||Hu.call(t,c))&&s.push(c)}return s}function xr(t){return null==t?[]:br(t.length)?To(t)?t:Lu(t):Xo(t)}function Rr(t){return To(t)?t:Lu(t)}function Mr(t,e,n){e=(n?Er(t,e,n):null==e)?1:va(+e||1,1);for(var r=0,i=t?t.length:0,o=-1,u=xu(Qu(i/e));i>r;)u[++o]=Gn(t,r,r+=e);return u}function kr(t){for(var e=-1,n=t?t.length:0,r=-1,i=[];++e<n;){var o=t[e];o&&(i[++r]=o)}return i}function jr(){for(var t=-1,e=arguments.length;++t<e;){var n=arguments[t];if(Va(n)||ho(n))break}return gn(n,On(arguments,!1,!0,++t))}function zr(t,e,n){var r=t?t.length:0;return r?((n?Er(t,e,n):null==e)&&(e=1),Gn(t,0>e?0:e)):[]}function Lr(t,e,n){var r=t?t.length:0;return r?((n?Er(t,e,n):null==e)&&(e=1),e=r-(+e||0),Gn(t,0,0>e?0:e)):[]}function qr(t,e,n){var r=t?t.length:0;if(!r)return[];for(e=_r(e,n,3);r--&&e(t[r],r,t););return Gn(t,0,r+1)}function Pr(t,e,n){var r=t?t.length:0;if(!r)return[];var i=-1;for(e=_r(e,n,3);++i<r&&e(t[i],i,t););return Gn(t,i)}function Ur(t,e,n){var r=-1,i=t?t.length:0;for(e=_r(e,n,3);++r<i;)if(e(t[r],r,t))return r;return-1}function Wr(t,e,n){var r=t?t.length:0;for(e=_r(e,n,3);r--;)if(e(t[r],r,t))return r;return-1}function Vr(t){return t?t[0]:S}function Gr(t,e,n){var r=t?t.length:0;return n&&Er(t,e,n)&&(e=!1),r?On(t,e):[]}function Kr(t){var e=t?t.length:0;return e?On(t,!0):[]}function $r(t,e,n){var r=t?t.length:0;if(!r)return-1;if("number"==typeof n)n=0>n?va(r+n,0):n||0;else if(n){var i=Bn(t,e),o=t[i];return(e===e?e===o:o!==o)?i:-1}return u(t,e,n)}function Hr(t){return Lr(t,1)}function Fr(){for(var t=[],e=-1,n=arguments.length,r=[],i=vr(),o=i==u;++e<n;){var a=arguments[e];(Va(a)||ho(a))&&(t.push(a),r.push(o&&a.length>=120&&Ra(e&&a)))}n=t.length;var s=t[0],c=-1,f=s?s.length:0,l=[],h=r[0];t:for(;++c<f;)if(a=s[c],(h?Fe(h,a):i(l,a))<0){for(e=n;--e;){var p=r[e];if((p?Fe(p,a):i(t[e],a))<0)continue t}h&&h.push(a),l.push(a)}return l}function Br(t){var e=t?t.length:0;return e?t[e-1]:S}function Jr(t,e,n){var r=t?t.length:0;if(!r)return-1;var i=r;if("number"==typeof n)i=(0>n?va(r+n,0):ya(n||0,r-1))+1;else if(n){i=Bn(t,e,!0)-1;var o=t[i];return(e===e?e===o:o!==o)?i:-1}if(e!==e)return d(t,i,!0);for(;i--;)if(t[i]===e)return i;return-1}function Yr(){var t=arguments[0];if(!t||!t.length)return t;for(var e=0,n=vr(),r=arguments.length;++e<r;)for(var i=0,o=arguments[e];(i=n(t,o,i))>-1;)aa.call(t,i,1);return t}function Xr(t){return Un(t||[],On(arguments,!1,!1,1))}function Zr(t,e,n){var r=-1,i=t?t.length:0,o=[];for(e=_r(e,n,3);++r<i;){var u=t[r];e(u,r,t)&&(o.push(u),aa.call(t,r--,1),i--)}return o}function Qr(t){return zr(t,1)}function ti(t,e,n){var r=t?t.length:0;return r?(n&&"number"!=typeof n&&Er(t,e,n)&&(e=0,n=r),Gn(t,e,n)):[]}function ei(t,e,n,r){var i=_r(n);return i===vn&&null==n?Bn(t,e):Jn(t,e,i(n,r,1))}function ni(t,e,n,r){var i=_r(n);return i===vn&&null==n?Bn(t,e,!0):Jn(t,e,i(n,r,1),!0)}function ri(t,e,n){var r=t?t.length:0;return r?((n?Er(t,e,n):null==e)&&(e=1),Gn(t,0,0>e?0:e)):[]}function ii(t,e,n){var r=t?t.length:0;return r?((n?Er(t,e,n):null==e)&&(e=1),e=r-(+e||0),Gn(t,0>e?0:e)):[]}function oi(t,e,n){var r=t?t.length:0;if(!r)return[];for(e=_r(e,n,3);r--&&e(t[r],r,t););return Gn(t,r+1)}function ui(t,e,n){var r=t?t.length:0;if(!r)return[];var i=-1;for(e=_r(e,n,3);++i<r&&e(t[i],i,t););return Gn(t,0,i)}function ai(){return $n(On(arguments,!1,!0))}function si(t,e,n,r){var i=t?t.length:0;if(!i)return[];"boolean"!=typeof e&&null!=e&&(r=n,n=Er(t,e,r)?null:e,e=!1);var o=_r();return(o!==vn||null!=n)&&(n=o(n,r,3)),e&&vr()==u?T(t,n):$n(t,n)}function ci(t){for(var e=-1,n=(t&&t.length&&rn(nn(t,$u)))>>>0,r=xu(n);++e<n;)r[e]=nn(t,Pn(e));return r}function fi(t){return gn(t,Gn(arguments,1))}function li(){for(var t=-1,e=arguments.length;++t<e;){var n=arguments[t];if(Va(n)||ho(n))var r=r?gn(r,n).concat(gn(n,r)):n}return r?$n(r):[]}function hi(){for(var t=arguments.length,e=xu(t);t--;)e[t]=arguments[t];return ci(e)}function pi(t,e){var n=-1,r=t?t.length:0,i={};for(!r||e||Va(t[0])||(e=[]);++n<r;){var o=t[n];e?i[o]=e[n]:o&&(i[o[0]]=o[1])}return i}function _i(t){var n=e(t);return n.__chain__=!0,n}function vi(t,e,n){return e.call(n,t),t}function yi(t,e,n){return e.call(n,t)}function di(){return _i(this)}function gi(){var t=this.__wrapped__;return t instanceof r?(this.__actions__.length&&(t=new r(this)),new n(t.reverse())):this.thru(function(t){return t.reverse()})}function mi(){return this.value()+""}function wi(){return Fn(this.__wrapped__,this.__actions__)}function Ti(t){var e=t?t.length:0;return br(e)&&(t=xr(t)),hn(t,On(arguments,!1,!1,1))}function Ei(t,e,n){var r=t?t.length:0;return br(r)||(t=Xo(t),r=t.length),r?(n="number"==typeof n?0>n?va(r+n,0):n||0:0,"string"==typeof t||!Va(t)&&No(t)?r>n&&t.indexOf(e,n)>-1:vr(t,e,n)>-1):!1}function bi(t,e,n){var r=Va(t)?tn:Tn;return("function"!=typeof e||"undefined"!=typeof n)&&(e=_r(e,n,3)),r(t,e)}function Oi(t,e,n){var r=Va(t)?en:En;return e=_r(e,n,3),r(t,e)}function Ii(t,e,n){if(Va(t)){var r=Ur(t,e,n);return r>-1?t[r]:S}return e=_r(e,n,3),bn(t,e,mn)}function Si(t,e,n){return e=_r(e,n,3),bn(t,e,wn)}function Ai(t,e){return Ii(t,zn(e))}function Ni(t,e,n){return"function"==typeof e&&"undefined"==typeof n&&Va(t)?Xe(t,e):mn(t,Yn(e,n,3))}function Ci(t,e,n){return"function"==typeof e&&"undefined"==typeof n&&Va(t)?Qe(t,e):wn(t,Yn(e,n,3))}function Di(t,e){return xn(t,e,Gn(arguments,2))}function xi(t,e,n){var r=Va(t)?nn:jn;return e=_r(e,n,3),r(t,e)}function Ri(t,e){return xi(t,Pn(e+""))}function Mi(t,e,n,r){var i=Va(t)?un:Vn;return i(t,_r(e,r,4),n,arguments.length<3,mn)}function ki(t,e,n,r){var i=Va(t)?an:Vn;return i(t,_r(e,r,4),n,arguments.length<3,wn)}function ji(t,e,n){var r=Va(t)?en:En;return e=_r(e,n,3),r(t,function(t,n,r){return!e(t,n,r)})}function zi(t,e,n){if(n?Er(t,e,n):null==e){t=xr(t);var r=t.length;return r>0?t[Wn(0,r-1)]:S}var i=Li(t);return i.length=ya(0>e?0:+e||0,i.length),i}function Li(t){t=xr(t);for(var e=-1,n=t.length,r=xu(n);++e<n;){var i=Wn(0,e);e!=i&&(r[e]=r[i]),r[i]=t[e]}return r}function qi(t){var e=t?t.length:0;return br(e)?e:Ha(t).length}function Pi(t,e,n){var r=Va(t)?sn:Kn;return("function"!=typeof e||"undefined"!=typeof n)&&(e=_r(e,n,3)),r(t,e)}function Ui(t,e,n){var r=-1,i=t?t.length:0,o=br(i)?xu(i):[];return n&&Er(t,e,n)&&(e=null),e=_r(e,n,3),mn(t,function(t,n,i){o[++r]={criteria:e(t,n,i),index:r,value:t}}),a(o,h)}function Wi(t){var e=arguments;e.length>3&&Er(e[1],e[2],e[3])&&(e=[t,e[1]]);var n=-1,r=t?t.length:0,i=On(e,!1,!1,1),o=br(r)?xu(r):[];return mn(t,function(t){for(var e=i.length,r=xu(e);e--;)r[e]=null==t?S:t[i[e]];o[++n]={criteria:r,index:n,value:t}}),a(o,p)}function Vi(t,e){return Oi(t,zn(e))}function Gi(t,e){if(!wo(e)){if(!wo(t))throw new Uu(K);var n=t;t=e,e=n}return t=pa(t=+t)?t:0,function(){return--t<1?e.apply(this,arguments):void 0}}function Ki(t,e,n){return n&&Er(t,e,n)&&(e=null),e=t&&null==e?t.length:va(+e||0,0),cr(t,z,null,null,null,null,e)}function $i(t,e){var n;if(!wo(e)){if(!wo(t))throw new Uu(K);var r=t;t=e,e=r}return function(){return--t>0?n=e.apply(this,arguments):e=null,n}}function Hi(t,e){var n=N;if(arguments.length>2){var r=Gn(arguments,2),i=w(r,Hi.placeholder);n|=M}return cr(t,n,e,r,i)}function Fi(t){return _n(t,arguments.length>1?On(arguments,!1,!1,1):Wo(t))}function Bi(t,e){var n=N|C;if(arguments.length>2){var r=Gn(arguments,2),i=w(r,Bi.placeholder);n|=M}return cr(e,n,t,r,i)}function Ji(t,e,n){n&&Er(t,e,n)&&(e=null);var r=cr(t,x,null,null,null,null,null,e);return r.placeholder=Ji.placeholder,r}function Yi(t,e,n){n&&Er(t,e,n)&&(e=null);var r=cr(t,R,null,null,null,null,null,e);return r.placeholder=Yi.placeholder,r}function Xi(t,e,n){function r(){h&&ta(h),s&&ta(s),s=h=p=S}function i(){var n=e-(Wa()-f);if(0>=n||n>e){s&&ta(s);var r=p;s=h=p=S,r&&(_=Wa(),c=t.apply(l,a),h||s||(a=l=null))}else h=ua(i,n)}function o(){h&&ta(h),s=h=p=S,(y||v!==e)&&(_=Wa(),c=t.apply(l,a),h||s||(a=l=null))}function u(){if(a=arguments,f=Wa(),l=this,p=y&&(h||!d),v===!1)var n=d&&!h;else{s||d||(_=f);var r=v-(f-_),u=0>=r||r>v;u?(s&&(s=ta(s)),_=f,c=t.apply(l,a)):s||(s=ua(o,r))}return u&&h?h=ta(h):h||e===v||(h=ua(i,e)),n&&(u=!0,c=t.apply(l,a)),!u||h||s||(a=l=null),c}var a,s,c,f,l,h,p,_=0,v=!1,y=!0;if(!wo(t))throw new Uu(K);if(e=0>e?0:e,n===!0){var d=!0;y=!1}else To(n)&&(d=n.leading,v="maxWait"in n&&va(+n.maxWait||0,e),y="trailing"in n?n.trailing:y);return u.cancel=r,u}function Zi(t){return dn(t,1,arguments,1)}function Qi(t,e){return dn(t,e,arguments,2)}function to(){var t=arguments,e=t.length;if(!e)return function(){};if(!tn(t,wo))throw new Uu(K);return function(){for(var n=0,r=t[n].apply(this,arguments);++n<e;)r=t[n].call(this,r);return r}}function eo(){var t=arguments,e=t.length-1;if(0>e)return function(){};if(!tn(t,wo))throw new Uu(K);return function(){for(var n=e,r=t[n].apply(this,arguments);n--;)r=t[n].call(this,r);return r}}function no(t,e){if(!wo(t)||e&&!wo(e))throw new Uu(K);var n=function(){var r=n.cache,i=e?e.apply(this,arguments):arguments[0];if(r.has(i))return r.get(i);var o=t.apply(this,arguments);return r.set(i,o),o};return n.cache=new no.Cache,n}function ro(t){if(!wo(t))throw new Uu(K);return function(){return!t.apply(this,arguments)}}function io(t){return $i(t,2)}function oo(t){var e=Gn(arguments,1),n=w(e,oo.placeholder);return cr(t,M,null,e,n)}function uo(t){var e=Gn(arguments,1),n=w(e,uo.placeholder);return cr(t,k,null,e,n)}function ao(t){var e=On(arguments,!1,!1,1);return cr(t,j,null,null,null,e)}function so(t,e,n){var r=!0,i=!0;if(!wo(t))throw new Uu(K);return n===!1?r=!1:To(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Ve.leading=r,Ve.maxWait=+e,Ve.trailing=i,Xi(t,e,Ve)}function co(t,e){return e=null==e?Tu:e,cr(e,M,null,[t],[])}function fo(t,e,n,r){return"boolean"!=typeof e&&null!=e&&(r=n,n=Er(t,e,r)?null:e,e=!1),n="function"==typeof n&&Yn(n,r,1),yn(t,e,n)}function lo(t,e,n){return e="function"==typeof e&&Yn(e,n,1),yn(t,!0,e)}function ho(t){var e=g(t)?t.length:S;return br(e)&&Bu.call(t)==H||!1}function po(t){return t===!0||t===!1||g(t)&&Bu.call(t)==B||!1}function _o(t){return g(t)&&Bu.call(t)==J||!1}function vo(t){return t&&1===t.nodeType&&g(t)&&Bu.call(t).indexOf("Element")>-1||!1}function yo(t){if(null==t)return!0;var e=t.length;return br(e)&&(Va(t)||No(t)||ho(t)||g(t)&&wo(t.splice))?!e:!Ha(t).length}function go(t,e,n,r){if(n="function"==typeof n&&Yn(n,r,3),!n&&Or(t)&&Or(e))return t===e;var i=n?n(t,e):S;return"undefined"==typeof i?Rn(t,e,n):!!i}function mo(t){return g(t)&&"string"==typeof t.message&&Bu.call(t)==Y||!1}function wo(t){return"function"==typeof t||!1}function To(t){var e=typeof t;return"function"==e||t&&"object"==e||!1}function Eo(t,e,n,r){var i=Ha(e),o=i.length;if(n="function"==typeof n&&Yn(n,r,3),!n&&1==o){var u=i[0],a=e[u];if(Or(a))return null!=t&&a===t[u]&&Hu.call(t,u)}for(var s=xu(o),c=xu(o);o--;)a=s[o]=e[i[o]],c[o]=Or(a);return kn(t,i,s,c,n)}function bo(t){return So(t)&&t!=+t}function Oo(t){return null==t?!1:Bu.call(t)==X?Yu.test(Ku.call(t)):g(t)&&Ce.test(t)||!1}function Io(t){return null===t}function So(t){return"number"==typeof t||g(t)&&Bu.call(t)==Q||!1}function Ao(t){return g(t)&&Bu.call(t)==ee||!1}function No(t){return"string"==typeof t||g(t)&&Bu.call(t)==re||!1}function Co(t){return g(t)&&br(t.length)&&Ue[Bu.call(t)]||!1}function Do(t){return"undefined"==typeof t}function xo(t){var e=t?t.length:0;return br(e)?e?Ye(t):[]:Xo(t)}function Ro(t){return pn(t,Ko(t))}function Mo(t,e,n){var r=Da(t);return n&&Er(t,e,n)&&(e=null),e?pn(e,r,Ha(e)):r}function ko(t){if(null==t)return t;var e=Ye(arguments);return e.push(cn),$a.apply(S,e)}function jo(t,e,n){return e=_r(e,n,3),bn(t,e,Nn,!0)}function zo(t,e,n){return e=_r(e,n,3),bn(t,e,Cn,!0)}function Lo(t,e,n){return("function"!=typeof e||"undefined"!=typeof n)&&(e=Yn(e,n,3)),In(t,e,Ko)}function qo(t,e,n){return e=Yn(e,n,3),Sn(t,e,Ko)}function Po(t,e,n){return("function"!=typeof e||"undefined"!=typeof n)&&(e=Yn(e,n,3)),Nn(t,e)}function Uo(t,e,n){return e=Yn(e,n,3),Sn(t,e,Ha)}function Wo(t){return Dn(t,Ko(t))}function Vo(t,e){return t?Hu.call(t,e):!1}function Go(t,e,n){n&&Er(t,e,n)&&(e=null);for(var r=-1,i=Ha(t),o=i.length,u={};++r<o;){var a=i[r],s=t[a];e?Hu.call(u,s)?u[s].push(a):u[s]=[a]:u[s]=a}return u}function Ko(t){if(null==t)return[];To(t)||(t=Lu(t));var e=t.length;e=e&&br(e)&&(Va(t)||Ca.nonEnumArgs&&ho(t))&&e||0;for(var n=t.constructor,r=-1,i="function"==typeof n&&n.prototype==t,o=xu(e),u=e>0;++r<e;)o[r]=r+"";for(var a in t)u&&Tr(a,e)||"constructor"==a&&(i||!Hu.call(t,a))||o.push(a);return o}function $o(t,e,n){var r={};return e=_r(e,n,3),Nn(t,function(t,n,i){r[n]=e(t,n,i)}),r}function Ho(t,e,n){if(null==t)return{};if("function"!=typeof e){var r=nn(On(arguments,!1,!1,1),Pu);return Sr(t,gn(Ko(t),r))}return e=Yn(e,n,3),Ar(t,function(t,n,r){return!e(t,n,r)})}function Fo(t){for(var e=-1,n=Ha(t),r=n.length,i=xu(r);++e<r;){var o=n[e];i[e]=[o,t[o]]}return i}function Bo(t,e,n){return null==t?{}:"function"==typeof e?Ar(t,Yn(e,n,3)):Sr(t,On(arguments,!1,!1,1))}function Jo(t,e,n){var r=null==t?S:t[e];return"undefined"==typeof r&&(r=n),wo(r)?r.call(t):r}function Yo(t,e,n,r){var i=Va(t)||Co(t);if(e=_r(e,r,4),null==n)if(i||To(t)){var o=t.constructor;n=i?Va(t)?new o:[]:Da("function"==typeof o&&o.prototype)}else n={};return(i?Xe:Nn)(t,function(t,r,i){return e(n,t,r,i)}),n}function Xo(t){return Hn(t,Ha(t))}function Zo(t){return Hn(t,Ko(t))}function Qo(t,e,n){n&&Er(t,e,n)&&(e=n=null);var r=null==t,i=null==e;if(null==n&&(i&&"boolean"==typeof t?(n=t,t=1):"boolean"==typeof e&&(n=e,i=!0)),r&&i&&(e=1,i=!1),t=+t||0,i?(e=t,t=0):e=+e||0,n||t%1||e%1){var o=wa();return ya(t+o*(e-t+parseFloat("1e-"+((o+"").length-1))),e)}return Wn(t,e)}function tu(t){return t=s(t),t&&t.charAt(0).toUpperCase()+t.slice(1)}function eu(t){return t=s(t),t&&t.replace(De,_)}function nu(t,e,n){t=s(t),e+="";var r=t.length;return n=("undefined"==typeof n?r:ya(0>n?0:+n||0,r))-e.length,n>=0&&t.indexOf(e,n)==n}function ru(t){return t=s(t),t&&Te.test(t)?t.replace(me,v):t}function iu(t){return t=s(t),t&&Me.test(t)?t.replace(Re,"\\$&"):t}function ou(t,e,n){t=s(t),e=+e;var r=t.length;if(r>=e||!pa(e))return t;var i=(e-r)/2,o=ea(i),u=Qu(i);return n=ar("",u,n),n.slice(0,o)+t+n}function uu(t,e,n){return t=s(t),t&&ar(t,e,n)+t}function au(t,e,n){return t=s(t),t&&t+ar(t,e,n)}function su(t,e,n){return n&&Er(t,e,n)&&(e=0),ma(t,e)}function cu(t,e){var n="";if(t=s(t),e=+e,1>e||!t||!pa(e))return n;do e%2&&(n+=t),e=ea(e/2),t+=t;while(e);return n}function fu(t,e,n){return t=s(t),n=null==n?0:ya(0>n?0:+n||0,t.length),t.lastIndexOf(e,n)==n}function lu(t,n,r){var i=e.templateSettings;r&&Er(t,n,r)&&(n=r=null),t=s(t),n=ln(ln({},r||n),i,fn);var o,u,a=ln(ln({},n.imports),i.imports,fn),c=Ha(a),f=Hn(a,c),l=0,h=n.interpolate||xe,p="__p += '",_=qu((n.escape||xe).source+"|"+h.source+"|"+(h===Oe?Ie:xe).source+"|"+(n.evaluate||xe).source+"|$","g"),v="//# sourceURL="+("sourceURL"in n?n.sourceURL:"lodash.templateSources["+ ++Pe+"]")+"\n";t.replace(_,function(e,n,r,i,a,s){return r||(r=i),p+=t.slice(l,s).replace(je,y),n&&(o=!0,p+="' +\n__e("+n+") +\n'"),a&&(u=!0,p+="';\n"+a+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),l=s+e.length,e}),p+="';\n";var d=n.variable;d||(p="with (obj) {\n"+p+"\n}\n"),p=(u?p.replace(ve,""):p).replace(ye,"$1").replace(de,"$1;"),p="function("+(d||"obj")+") {\n"+(d?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(u?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var g=gu(function(){return ku(c,v+"return "+p).apply(S,f)});if(g.source=p,mo(g))throw g;return g}function hu(t,e,n){var r=t;return(t=s(t))?(n?Er(r,e,n):null==e)?t.slice(E(t),b(t)+1):(e+="",t.slice(f(t,e),l(t,e)+1)):t}function pu(t,e,n){var r=t;return t=s(t),t?t.slice((n?Er(r,e,n):null==e)?E(t):f(t,e+"")):t}function _u(t,e,n){var r=t;return t=s(t),t?(n?Er(r,e,n):null==e)?t.slice(0,b(t)+1):t.slice(0,l(t,e+"")+1):t}function vu(t,e,n){n&&Er(t,e,n)&&(e=null);var r=L,i=q;if(null!=e)if(To(e)){var o="separator"in e?e.separator:o;r="length"in e?+e.length||0:r,i="omission"in e?s(e.omission):i}else r=+e||0;if(t=s(t),r>=t.length)return t;var u=r-i.length;if(1>u)return i;var a=t.slice(0,u);if(null==o)return a+i;if(Ao(o)){if(t.slice(u).search(o)){var c,f,l=t.slice(0,u);for(o.global||(o=qu(o.source,(Se.exec(o)||"")+"g")),o.lastIndex=0;c=o.exec(l);)f=c.index;a=a.slice(0,null==f?u:f)}}else if(t.indexOf(o,u)!=u){var h=a.lastIndexOf(o);h>-1&&(a=a.slice(0,h))}return a+i}function yu(t){return t=s(t),t&&we.test(t)?t.replace(ge,O):t}function du(t,e,n){return n&&Er(t,e,n)&&(e=null),t=s(t),t.match(e||ze)||[]}function gu(t){try{return t()}catch(e){return mo(e)?e:Mu(e)}}function mu(t,e,n){return n&&Er(t,e,n)&&(e=null),g(t)?Eu(t):vn(t,e)}function wu(t){return function(){return t}}function Tu(t){return t}function Eu(t){return zn(yn(t,!0))}function bu(t,e,n){if(null==n){var r=To(e),i=r&&Ha(e),o=i&&i.length&&Dn(e,i);(o?o.length:r)||(o=!1,n=e,e=t,t=this)}o||(o=Dn(e,Ha(e)));var u=!0,a=-1,s=wo(t),c=o.length;n===!1?u=!1:To(n)&&"chain"in n&&(u=n.chain);for(;++a<c;){var f=o[a],l=e[f];t[f]=l,s&&(t.prototype[f]=function(e){return function(){var n=this.__chain__;if(u||n){var r=t(this.__wrapped__);return(r.__actions__=Ye(this.__actions__)).push({func:e,args:arguments,thisArg:t}),r.__chain__=n,r}var i=[this.value()];return ra.apply(i,arguments),e.apply(t,i)}}(l))}return t}function Ou(){return t._=Ju,this}function Iu(){}function Su(t){return Pn(t+"")}function Au(t){return function(e){return null==t?S:t[e]}}function Nu(t,e,n){n&&Er(t,e,n)&&(e=n=null),t=+t||0,n=null==n?1:+n||0,null==e?(e=t,t=0):e=+e||0;for(var r=-1,i=va(Qu((e-t)/(n||1)),0),o=xu(i);++r<i;)o[r]=t,t+=n;return o}function Cu(t,e,n){if(t=+t,1>t||!pa(t))return[];var r=-1,i=xu(ya(t,ba));for(e=Yn(e,n,1);++r<t;)ba>r?i[r]=e(r):e(r);return i}function Du(t){var e=++Fu;return s(t)+e}t=t?Ze.defaults(Be.Object(),t,Ze.pick(Be,qe)):Be;var xu=t.Array,Ru=t.Date,Mu=t.Error,ku=t.Function,ju=t.Math,zu=t.Number,Lu=t.Object,qu=t.RegExp,Pu=t.String,Uu=t.TypeError,Wu=xu.prototype,Vu=Lu.prototype,Gu=(Gu=t.window)&&Gu.document,Ku=ku.prototype.toString,$u=Pn("length"),Hu=Vu.hasOwnProperty,Fu=0,Bu=Vu.toString,Ju=t._,Yu=qu("^"+iu(Bu).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Xu=Oo(Xu=t.ArrayBuffer)&&Xu,Zu=Oo(Zu=Xu&&new Xu(0).slice)&&Zu,Qu=ju.ceil,ta=t.clearTimeout,ea=ju.floor,na=Oo(na=Lu.getPrototypeOf)&&na,ra=Wu.push,ia=Vu.propertyIsEnumerable,oa=Oo(oa=t.Set)&&oa,ua=t.setTimeout,aa=Wu.splice,sa=Oo(sa=t.Uint8Array)&&sa,ca=(Wu.unshift,Oo(ca=t.WeakMap)&&ca),fa=function(){try{var e=Oo(e=t.Float64Array)&&e,n=new e(new Xu(10),0,1)&&e}catch(r){}return n}(),la=Oo(la=xu.isArray)&&la,ha=Oo(ha=Lu.create)&&ha,pa=t.isFinite,_a=Oo(_a=Lu.keys)&&_a,va=ju.max,ya=ju.min,da=Oo(da=Ru.now)&&da,ga=Oo(ga=zu.isFinite)&&ga,ma=t.parseInt,wa=ju.random,Ta=zu.NEGATIVE_INFINITY,Ea=zu.POSITIVE_INFINITY,ba=ju.pow(2,32)-1,Oa=ba-1,Ia=ba>>>1,Sa=fa?fa.BYTES_PER_ELEMENT:0,Aa=ju.pow(2,53)-1,Na=ca&&new ca,Ca=e.support={};!function(){Ca.funcDecomp=!Oo(t.WinRTError)&&ke.test(I),Ca.funcNames="string"==typeof ku.name;try{Ca.dom=11===Gu.createDocumentFragment().nodeType}catch(e){Ca.dom=!1}try{Ca.nonEnumArgs=!ia.call(arguments,1)}catch(e){Ca.nonEnumArgs=!0}}(0,0),e.templateSettings={escape:Ee,evaluate:be,interpolate:Oe,variable:"",imports:{_:e}};var Da=function(){function e(){}return function(n){if(To(n)){e.prototype=n;var r=new e;e.prototype=null}return r||t.Object()}}(),xa=Na?function(t,e){return Na.set(t,e),t}:Tu;Zu||(Xn=Xu&&sa?function(t){var e=t.byteLength,n=fa?ea(e/Sa):0,r=n*Sa,i=new Xu(e);if(n){var o=new fa(i,0,n);o.set(new fa(t,0,n))}return e!=r&&(o=new sa(i,r),o.set(new sa(t,r))),i}:wu(null));var Ra=ha&&oa?function(t){return new He(t)}:wu(null),Ma=Na?function(t){return Na.get(t)}:Iu,ka=function(){var t=0,e=0;return function(n,r){var i=Wa(),o=U-(i-e);if(e=i,o>0){if(++t>=P)return n}else t=0;return xa(n,r)}}(),ja=tr(function(t,e,n){Hu.call(t,n)?++t[n]:t[n]=1 -}),za=tr(function(t,e,n){Hu.call(t,n)?t[n].push(e):t[n]=[e]}),La=tr(function(t,e,n){t[n]=e}),qa=or(rn),Pa=or(on,!0),Ua=tr(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]}),Wa=da||function(){return(new Ru).getTime()},Va=la||function(t){return g(t)&&br(t.length)&&Bu.call(t)==F||!1};Ca.dom||(vo=function(t){return t&&1===t.nodeType&&g(t)&&!Ka(t)||!1});var Ga=ga||function(t){return"number"==typeof t&&pa(t)};(wo(/x/)||sa&&!wo(sa))&&(wo=function(t){return Bu.call(t)==X});var Ka=na?function(t){if(!t||Bu.call(t)!=te)return!1;var e=t.valueOf,n=Oo(e)&&(n=na(e))&&na(n);return n?t==n||na(t)==n:Cr(t)}:Cr,$a=er(ln),Ha=_a?function(t){if(t)var e=t.constructor,n=t.length;return"function"==typeof e&&e.prototype===t||"function"!=typeof t&&n&&br(n)?Dr(t):To(t)?_a(t):[]}:Dr,Fa=er(Ln),Ba=rr(function(t,e,n){return e=e.toLowerCase(),t+(n?e.charAt(0).toUpperCase()+e.slice(1):e)}),Ja=rr(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()});8!=ma(Le+"08")&&(su=function(t,e,n){return(n?Er(t,e,n):null==e)?e=0:e&&(e=+e),t=hu(t),ma(t,e||(Ne.test(t)?16:10))});var Ya=rr(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}),Xa=rr(function(t,e,n){return t+(n?" ":"")+(e.charAt(0).toUpperCase()+e.slice(1))});return n.prototype=e.prototype,ne.prototype["delete"]=ie,ne.prototype.get=Ge,ne.prototype.has=Ke,ne.prototype.set=$e,He.prototype.push=Je,no.Cache=ne,e.after=Gi,e.ary=Ki,e.assign=$a,e.at=Ti,e.before=$i,e.bind=Hi,e.bindAll=Fi,e.bindKey=Bi,e.callback=mu,e.chain=_i,e.chunk=Mr,e.compact=kr,e.constant=wu,e.countBy=ja,e.create=Mo,e.curry=Ji,e.curryRight=Yi,e.debounce=Xi,e.defaults=ko,e.defer=Zi,e.delay=Qi,e.difference=jr,e.drop=zr,e.dropRight=Lr,e.dropRightWhile=qr,e.dropWhile=Pr,e.filter=Oi,e.flatten=Gr,e.flattenDeep=Kr,e.flow=to,e.flowRight=eo,e.forEach=Ni,e.forEachRight=Ci,e.forIn=Lo,e.forInRight=qo,e.forOwn=Po,e.forOwnRight=Uo,e.functions=Wo,e.groupBy=za,e.indexBy=La,e.initial=Hr,e.intersection=Fr,e.invert=Go,e.invoke=Di,e.keys=Ha,e.keysIn=Ko,e.map=xi,e.mapValues=$o,e.matches=Eu,e.memoize=no,e.merge=Fa,e.mixin=bu,e.negate=ro,e.omit=Ho,e.once=io,e.pairs=Fo,e.partial=oo,e.partialRight=uo,e.partition=Ua,e.pick=Bo,e.pluck=Ri,e.property=Su,e.propertyOf=Au,e.pull=Yr,e.pullAt=Xr,e.range=Nu,e.rearg=ao,e.reject=ji,e.remove=Zr,e.rest=Qr,e.shuffle=Li,e.slice=ti,e.sortBy=Ui,e.sortByAll=Wi,e.take=ri,e.takeRight=ii,e.takeRightWhile=oi,e.takeWhile=ui,e.tap=vi,e.throttle=so,e.thru=yi,e.times=Cu,e.toArray=xo,e.toPlainObject=Ro,e.transform=Yo,e.union=ai,e.uniq=si,e.unzip=ci,e.values=Xo,e.valuesIn=Zo,e.where=Vi,e.without=fi,e.wrap=co,e.xor=li,e.zip=hi,e.zipObject=pi,e.backflow=eo,e.collect=xi,e.compose=eo,e.each=Ni,e.eachRight=Ci,e.extend=$a,e.iteratee=mu,e.methods=Wo,e.object=pi,e.select=Oi,e.tail=Qr,e.unique=si,bu(e,e),e.attempt=gu,e.camelCase=Ba,e.capitalize=tu,e.clone=fo,e.cloneDeep=lo,e.deburr=eu,e.endsWith=nu,e.escape=ru,e.escapeRegExp=iu,e.every=bi,e.find=Ii,e.findIndex=Ur,e.findKey=jo,e.findLast=Si,e.findLastIndex=Wr,e.findLastKey=zo,e.findWhere=Ai,e.first=Vr,e.has=Vo,e.identity=Tu,e.includes=Ei,e.indexOf=$r,e.isArguments=ho,e.isArray=Va,e.isBoolean=po,e.isDate=_o,e.isElement=vo,e.isEmpty=yo,e.isEqual=go,e.isError=mo,e.isFinite=Ga,e.isFunction=wo,e.isMatch=Eo,e.isNaN=bo,e.isNative=Oo,e.isNull=Io,e.isNumber=So,e.isObject=To,e.isPlainObject=Ka,e.isRegExp=Ao,e.isString=No,e.isTypedArray=Co,e.isUndefined=Do,e.kebabCase=Ja,e.last=Br,e.lastIndexOf=Jr,e.max=qa,e.min=Pa,e.noConflict=Ou,e.noop=Iu,e.now=Wa,e.pad=ou,e.padLeft=uu,e.padRight=au,e.parseInt=su,e.random=Qo,e.reduce=Mi,e.reduceRight=ki,e.repeat=cu,e.result=Jo,e.runInContext=I,e.size=qi,e.snakeCase=Ya,e.some=Pi,e.sortedIndex=ei,e.sortedLastIndex=ni,e.startCase=Xa,e.startsWith=fu,e.template=lu,e.trim=hu,e.trimLeft=pu,e.trimRight=_u,e.trunc=vu,e.unescape=yu,e.uniqueId=Du,e.words=du,e.all=bi,e.any=Pi,e.contains=Ei,e.detect=Ii,e.foldl=Mi,e.foldr=ki,e.head=Vr,e.include=Ei,e.inject=Mi,bu(e,function(){var t={};return Nn(e,function(n,r){e.prototype[r]||(t[r]=n)}),t}(),!1),e.sample=zi,e.prototype.sample=function(t){return this.__chain__||null!=t?this.thru(function(e){return zi(e,t)}):zi(this.value())},e.VERSION=A,Xe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){e[t].placeholder=e}),Xe(["filter","map","takeWhile"],function(t,e){var n=e==W;r.prototype[t]=function(t,r){var i=this.clone(),o=i.filtered,u=i.iteratees||(i.iteratees=[]);return i.filtered=o||n||e==G&&i.dir<0,u.push({iteratee:_r(t,r,3),type:e}),i}}),Xe(["drop","take"],function(t,e){var n=t+"Count",i=t+"While";r.prototype[t]=function(r){r=null==r?1:va(+r||0,0);var i=this.clone();if(i.filtered){var o=i[n];i[n]=e?ya(o,r):o+r}else{var u=i.views||(i.views=[]);u.push({size:r,type:t+(i.dir<0?"Right":"")})}return i},r.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()},r.prototype[t+"RightWhile"]=function(t,e){return this.reverse()[i](t,e).reverse()}}),Xe(["first","last"],function(t,e){var n="take"+(e?"Right":"");r.prototype[t]=function(){return this[n](1).value()[0]}}),Xe(["initial","rest"],function(t,e){var n="drop"+(e?"":"Right");r.prototype[t]=function(){return this[n](1)}}),Xe(["pluck","where"],function(t,e){var n=e?"filter":"map",i=e?zn:Pn;r.prototype[t]=function(t){return this[n](i(e?t:t+""))}}),r.prototype.dropWhile=function(t,e){var n,r,i=this.dir<0;return t=_r(t,e,3),this.filter(function(e,o,u){return n=n&&(i?r>o:o>r),r=o,n||(n=!t(e,o,u))})},r.prototype.reject=function(t,e){return t=_r(t,e,3),this.filter(function(e,n,r){return!t(e,n,r)})},r.prototype.slice=function(t,e){t=null==t?0:+t||0;var n=0>t?this.takeRight(-t):this.drop(t);return"undefined"!=typeof e&&(e=+e||0,n=0>e?n.dropRight(-e):n.take(e-t)),n},Nn(r.prototype,function(t,i){var o=e[i],u=/^(?:first|last)$/.test(i);e.prototype[i]=function(){var i=this.__wrapped__,a=arguments,s=this.__chain__,c=!!this.__actions__.length,f=i instanceof r,l=f&&!c;if(u&&!s)return l?t.call(i):o.call(e,this.value());var h=function(t){var n=[t];return ra.apply(n,a),o.apply(e,n)};if(f||Va(i)){var p=l?i:new r(this),_=t.apply(p,a);if(!u&&(c||_.actions)){var v=_.actions||(_.actions=[]);v.push({func:yi,args:[h],thisArg:e})}return new n(_,s)}return this.thru(h)}}),Xe(["concat","join","pop","push","shift","sort","splice","unshift"],function(t){var n=Wu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",i=/^(?:join|pop|shift)$/.test(t);e.prototype[t]=function(){var t=arguments;return i&&!this.__chain__?n.apply(this.value(),t):this[r](function(e){return n.apply(e,t)})}}),r.prototype.clone=i,r.prototype.reverse=m,r.prototype.value=Z,e.prototype.chain=di,e.prototype.reverse=gi,e.prototype.toString=mi,e.prototype.toJSON=e.prototype.valueOf=e.prototype.value=wi,e.prototype.collect=e.prototype.map,e.prototype.head=e.prototype.first,e.prototype.select=e.prototype.filter,e.prototype.tail=e.prototype.rest,e}var S,A="3.1.0",N=1,C=2,D=4,x=8,R=16,M=32,k=64,j=128,z=256,L=30,q="...",P=150,U=16,W=0,V=1,G=2,K="Expected a function",$="__lodash_placeholder__",H="[object Arguments]",F="[object Array]",B="[object Boolean]",J="[object Date]",Y="[object Error]",X="[object Function]",Z="[object Map]",Q="[object Number]",te="[object Object]",ee="[object RegExp]",ne="[object Set]",re="[object String]",ie="[object WeakMap]",oe="[object ArrayBuffer]",ue="[object Float32Array]",ae="[object Float64Array]",se="[object Int8Array]",ce="[object Int16Array]",fe="[object Int32Array]",le="[object Uint8Array]",he="[object Uint8ClampedArray]",pe="[object Uint16Array]",_e="[object Uint32Array]",ve=/\b__p \+= '';/g,ye=/\b(__p \+=) '' \+/g,de=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ge=/&(?:amp|lt|gt|quot|#39|#96);/g,me=/[&<>"'`]/g,we=RegExp(ge.source),Te=RegExp(me.source),Ee=/<%-([\s\S]+?)%>/g,be=/<%([\s\S]+?)%>/g,Oe=/<%=([\s\S]+?)%>/g,Ie=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Se=/\w*$/,Ae=/^\s*function[ \n\r\t]+\w/,Ne=/^0[xX]/,Ce=/^\[object .+?Constructor\]$/,De=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,xe=/($^)/,Re=/[.*+?^${}()|[\]\/\\]/g,Me=RegExp(Re.source),ke=/\bthis\b/,je=/['\n\r\u2028\u2029\\]/g,ze=function(){var t="[A-Z\\xc0-\\xd6\\xd8-\\xde]",e="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(t+"{2,}(?="+t+e+")|"+t+"?"+e+"|"+t+"+|[0-9]+","g")}(),Le=" \f \n\r\u2028\u2029áš€á Žâ€€â€â€‚         âŸã€€",qe=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","document","isFinite","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","window","WinRTError"],Pe=-1,Ue={};Ue[ue]=Ue[ae]=Ue[se]=Ue[ce]=Ue[fe]=Ue[le]=Ue[he]=Ue[pe]=Ue[_e]=!0,Ue[H]=Ue[F]=Ue[oe]=Ue[B]=Ue[J]=Ue[Y]=Ue[X]=Ue[Z]=Ue[Q]=Ue[te]=Ue[ee]=Ue[ne]=Ue[re]=Ue[ie]=!1;var We={};We[H]=We[F]=We[oe]=We[B]=We[J]=We[ue]=We[ae]=We[se]=We[ce]=We[fe]=We[Q]=We[te]=We[ee]=We[re]=We[le]=We[he]=We[pe]=We[_e]=!0,We[Y]=We[X]=We[Z]=We[ne]=We[ie]=!1;var Ve={leading:!1,maxWait:0,trailing:!1},Ge={"À":"A","Ã":"A","Â":"A","Ã":"A","Ä":"A","Ã…":"A","à ":"a","á":"a","â":"a","ã":"a","ä":"a","Ã¥":"a","Ç":"C","ç":"c","Ã":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","ÃŒ":"I","Ã":"I","ÃŽ":"I","Ã":"I","ì":"i","Ã":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ã’":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ãœ":"U","ù":"u","ú":"u","û":"u","ü":"u","Ã":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Ke={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},$e={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},He={"function":!0,object:!0},Fe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Be=He[typeof window]&&window!==(this&&this.window)?window:this,Je=He[typeof e]&&e&&!e.nodeType&&e,Ye=He[typeof t]&&t&&!t.nodeType&&t,Xe=Je&&Ye&&"object"==typeof i&&i;!Xe||Xe.global!==Xe&&Xe.window!==Xe&&Xe.self!==Xe||(Be=Xe);var Ze=(Ye&&Ye.exports===Je&&Je,I());Be._=Ze,r=function(){return Ze}.call(e,n,e,t),!(r!==S&&(t.exports=r))}).call(this)}).call(e,n(35)(t),function(){return this}())},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(1)),s=r(n(2)),c=r(n(3)),f=!1,l=!1,h="",p=!1,_="",v=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{isValidating:{get:function(){return f},configurable:!0},isLoggedIn:{get:function(){return l},configurable:!0},authToken:{get:function(){return h},configurable:!0},lastAttemptInvalid:{get:function(){return p},configurable:!0},lastAttemptMessage:{get:function(){return _},configurable:!0}}),e}(c),y=new v;y.dispatchToken=a.register(function(t){switch(t.actionType){case s.ACTION_VALIDATING_AUTH_TOKEN:f=!0,y.emitChange();break;case s.ACTION_VALID_AUTH_TOKEN:f=!1,l=!0,h=t.authToken,p=!1,_="",y.emitChange();break;case s.ACTION_INVALID_AUTH_TOKEN:f=!1,l=!1,h="",p=!0,_=t.message||"Unexpected result from API",y.emitChange();break;case s.ACTION_LOG_OUT:f=!1,l=!1,h="",p=!1,_="",y.emitChange()}}),t.exports=y},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(5),s=a.Map,c=a.List,f=r(n(1)),l=r(n(2)),h=r(n(3)),p=new s,_=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{all:{get:function(){return p},configurable:!0},has:{value:function(t,e){var t=p.get(t);return t&&t.contains(e)},writable:!0,configurable:!0},getServices:{value:function(t){return p.get(t)||new c},writable:!0,configurable:!0}}),e}(h),v=new _;v.dispatchToken=f.register(function(t){switch(t.actionType){case l.ACTION_NEW_SERVICES:p=(new s).withMutations(function(e){t.services.forEach(function(t){e.set(t.domain,new c(t.services))})}),v.emitChange();break;case l.ACTION_REMOTE_EVENT_RECEIVED:if(t.event.event_type!==l.REMOTE_EVENT_SERVICE_REGISTERED)break;var e=t.event.data,n=e.domain,r=e.service;if(v.has(n,r))break;var i=v.getServices(n);p=p.set(n,i.push(r)),v.emitChange();break;case l.ACTION_LOG_OUT:p=new s,v.emitChange()}}),t.exports=v},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(1)),s=r(n(2)),c=r(n(3)),f="STATE_CONNECTED",l="STATE_DISCONNECTED",h="STATE_ERROR",p=l,_=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{state:{get:function(){return p},configurable:!0},isStreaming:{get:function(){return p===this.STATE_CONNECTED},configurable:!0},hasError:{get:function(){return p===this.STATE_ERROR},configurable:!0}}),e}(c),v=new _;v.STATE_CONNECTED=f,v.STATE_DISCONNECTED=l,v.STATE_ERROR=h,v.dispatchToken=a.register(function(t){switch(t.actionType){case s.ACTION_STREAM_START:p=f,v.emitChange();break;case s.ACTION_STREAM_STOP:p=l,v.emitChange();break;case s.ACTION_STREAM_ERROR:p=h,v.emitChange()}}),t.exports=v},function(t,e,n){"use strict";function r(t){i.dispatch({actionType:u,message:t})}e.notify=r;var i=n(1),o=n(2),u=o.ACTION_NEW_NOTIFICATION;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){t.length>0&&f.dispatch({actionType:l.ACTION_NEW_SERVICES,services:t})}function i(t){return u("homeassistant","turn_on",{entity_id:t})}function o(t){return u("homeassistant","turn_off",{entity_id:t})}function u(t,e){var n=void 0===arguments[2]?{}:arguments[2];return c("POST","services/"+t+"/"+e,n).then(function(r){h("turn_on"==e&&n.entity_id?"Turned on "+n.entity_id+".":"turn_off"==e&&n.entity_id?"Turned off "+n.entity_id+".":"Service "+t+"/"+e+" called."),p(r)})}function a(){return c("GET","services").then(r)}var s=function(t){return t&&t.__esModule?t["default"]:t};e.newServices=r,e.callTurnOn=i,e.callTurnOff=o,e.callService=u,e.fetchAll=a;var c=s(n(4)),f=s(n(1)),l=s(n(2)),h=n(10).notify,p=n(12).newStates;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t,e){(t.length>0||e)&&c.dispatch({actionType:f,states:t,replace:!!e})}function i(t,e){var n=void 0===arguments[2]?!1:arguments[2],i={state:e};n&&(i.attributes=n),s("POST","states/"+t,i).then(function(n){l("State of "+t+" set to "+e+"."),r([n])})}function o(t){s("GET","states/"+t).then(function(t){r([t])})}function u(){s("GET","states").then(function(t){r(t,!0)})}var a=function(t){return t&&t.__esModule?t["default"]:t};e.newStates=r,e.set=i,e.fetch=o,e.fetchAll=u;var s=a(n(4)),c=a(n(1)),f=n(2).ACTION_NEW_STATES,l=n(10).notify;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(){c.dispatch({actionType:f.ACTION_FETCH_ALL}),l.fetchAll(),h.fetchAll(),p.fetchAll(),_.fetchAll(),y&&d()}function i(){y=!0,r()}function o(){y=!1,d.cancel()}var u=function(t){return t&&t.__esModule?t:{"default":t}},a=function(t){return t&&t.__esModule?t["default"]:t};e.fetchAll=r,e.start=i,e.stop=o;var s=a(n(6)),c=a(n(1)),f=a(n(2)),l=u(n(24)),h=u(n(12)),p=u(n(11)),_=u(n(23)),v=3e4,y=!1,d=s.debounce(r,v);Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,r=[],i=t[Symbol.iterator]();!(n=i.next()).done&&(r.push(n.value),!e||r.length!==e););return r}throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},u=function _(t,e,n){var r=Object.getOwnPropertyDescriptor(t,e);if(void 0===r){var i=Object.getPrototypeOf(t);return null===i?void 0:_(i,e,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},a=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},c=n(5).Record,f=r(n(8)),l=n(26).parseDateTime,h=new c({entityId:null,domain:null,object_id:null,state:null,entityDisplay:null,stateDisplay:null,lastChanged:null,lastChangedAsDate:null,attributes:{},isCustomGroup:null},"State"),p=function(t){function e(t,n,r){var o=void 0===arguments[3]?{}:arguments[3];s(this,e);var a=t.split("."),c=i(a,2),f=c[0],h=c[1],p=n.replace(/_/g," ");o.unit_of_measurement&&(p+=" "+o.unit_of_measurement),u(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,{entityId:t,domain:f,objectId:h,state:n,stateDisplay:p,lastChanged:r,attributes:o,entityDisplay:o.friendly_name||h.replace(/_/g," "),lastChangedAsDate:l(r),isCustomGroup:"group"===f&&!o.auto})}return a(e,t),o(e,{fromJSON:{value:function(t){var n=t.entity_id,r=t.state,i=t.last_changed,o=t.attributes;return new e(n,r,i,o)},writable:!0,configurable:!0}},{canToggle:{get:function(){return"group"===this.domain&&("on"===this.state||"off"===this.state)||f.has(this.domain,"turn_on")},configurable:!0}}),e}(h);t.exports=p},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(5).List,s=r(n(1)),c=r(n(2)),f=r(n(3)),l=new a,h=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{loaded:{get:function(){return l},configurable:!0},isLoaded:{value:function(t){return l.contains(t)},writable:!0,configurable:!0}}),e}(f),p=new h;p.dispatchToken=s.register(function(t){switch(t.actionType){case c.ACTION_NEW_LOADED_COMPONENTS:l=new a(t.components),p.emitChange();break;case c.ACTION_REMOTE_EVENT_RECEIVED:if(t.event.event_type!==c.REMOTE_EVENT_COMPONENT_LOADED)break;var e=t.event.data.component;if(p.isLoaded(e))break;l=l.push(e),p.emitChange();break;case c.ACTION_LOG_OUT:l=new a,p.emitChange()}}),t.exports=p},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(5).List,s=r(n(1)),c=r(n(2)),f=r(n(3)),l=new a,h=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{all:{get:function(){return l},configurable:!0}}),e}(f),p=new h;p.dispatchToken=s.register(function(t){switch(t.actionType){case c.ACTION_NEW_EVENTS:l=new a(t.events),p.emitChange();break;case c.ACTION_LOG_OUT:l=new a,p.emitChange()}}),t.exports=p},function(t,e,n){"use strict";function r(){return p.size}var i=function(t){return t&&t.__esModule?t["default"]:t},o=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},u=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},a=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=n(5).List,c=i(n(1)),f=i(n(2)),l=i(n(3)),h=i(n(31)),p=new s,_=function(t){function e(){a(this,e),null!=t&&t.apply(this,arguments)}return u(e,t),o(e,null,{hasNewNotifications:{value:function(t){return!t||t+1<p.size},writable:!0,configurable:!0},lastNotification:{get:function(){return p.last()},configurable:!0}}),e}(l),v=new _;v.dispatchToken=c.register(function(t){switch(t.actionType){case f.ACTION_NEW_NOTIFICATION:p=p.push(new h(r(),t.message)),v.emitChange();break;case f.ACTION_LOG_OUT:p=new s,v.emitChange()}}),t.exports=v},function(t,e,n){"use strict";function r(t,e){p[t]=JSON.stringify(e)}function i(t,e){return t in p?JSON.parse(p[t]):e}function o(t){return t in p?(p.removeItem(t),!0):!1}var u=function(t){return t&&t.__esModule?t["default"]:t},a=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},s=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},f=u(n(1)),l=u(n(2)),h=u(n(3)),p=localStorage,_="PREF_AUTH_TOKEN",v=null,y="PREF_USE_STREAMING",d=!0,g=function(t){function e(){c(this,e),null!=t&&t.apply(this,arguments)}return s(e,t),a(e,null,{useStreaming:{get:function(){return i(y,d)},configurable:!0},hasAuthToken:{get:function(){return null!==this.authToken},configurable:!0},authToken:{get:function(){return i(_,v)},configurable:!0}}),e}(h),m=new g;m.dispatchToken=f.register(function(t){switch(t.actionType){case l.ACTION_VALID_AUTH_TOKEN:t.rememberLogin&&(r(_,t.authToken),m.emitChange());break;case l.ACTION_LOG_OUT:o(_)&&m.emitChange();break;case l.ACTION_STREAM_START:r(y,!0),m.emitChange();break;case l.ACTION_STREAM_STOP:r(y,!1),m.emitChange()}}),t.exports=m},function(t,e,n){"use strict";function r(t){return t.entityId}function i(t){y=y.set(t.entity_id,v.fromJSON(t))}function o(t,e){var n=e?new f:y;y=n.withMutations(function(e){return t.forEach(function(t){return e.set(t.entity_id,v.fromJSON(t))}),e})}var u=function(t){return t&&t.__esModule?t["default"]:t},a=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},s=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},f=n(5).Map,l=u(n(1)),h=u(n(2)),p=u(n(3)),_=u(n(9)),v=u(n(14)),y=new f,d=function(t){function e(){c(this,e),null!=t&&t.apply(this,arguments)}return s(e,t),a(e,null,{all:{get:function(){return y.valueSeq().sortBy(r)},configurable:!0},get:{value:function(t){return t=t.toLowerCase(),y.get(t)||null},writable:!0,configurable:!0},gets:{value:function(t){return t=t.map(function(t){return t.toLowerCase()}),y.valueSeq().filter(function(e){return-1!==t.indexOf(e.entityId)}).sortBy(r)},writable:!0,configurable:!0},entityIDs:{get:function(){return y.keySeq().sort()},configurable:!0},domains:{get:function(){return y.keySeq().map(function(t){return t.split(".")[0]}).sort().toOrderedSet()},configurable:!0}}),e}(p),g=new d;g.dispatchToken=l.register(function(t){switch(t.actionType){case h.ACTION_NEW_STATES:(!_.isStreaming||t.replace)&&(o(t.states,t.replace),g.emitChange());break;case h.ACTION_REMOTE_EVENT_RECEIVED:t.event.event_type===h.REMOTE_EVENT_STATE_CHANGED&&(i(t.event.data.new_state),g.emitChange());break;case h.ACTION_LOG_OUT:y={},g.emitChange()}}),t.exports=g},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(6)),s=r(n(1)),c=r(n(2)),f=r(n(3)),l=6e4,h=null,p={},_={},v=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{isStale:{value:function(){var t=void 0===arguments[0]?null:arguments[0],e=null===t?h:p[t]||null;return null===e||(new Date).getTime()-e.getTime()>l},writable:!0,configurable:!0},get:{value:function(t){return _[t]||null},writable:!0,configurable:!0},all:{get:function(){return a.values(_)},configurable:!0}}),e}(f),y=new v;y.dispatchToken=s.register(function(t){switch(t.actionType){case c.ACTION_NEW_STATE_HISTORY:a.forEach(t.stateHistory,function(t){if(0!==t.length){var e=t[0].entityId;_[e]=t,p[e]=new Date}}),t.isFetchAll&&(h=new Date),y.emitChange();break;case c.ACTION_LOG_OUT:h=null,p={},_={},y.emitChange()}}),t.exports=y},function(t,e,n){"use strict";function r(t){return-1!==_.indexOf(t)}function i(){return _.length===h}var o=function(t){return t&&t.__esModule?t["default"]:t},u=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},a=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},c=o(n(1)),f=o(n(2)),l=o(n(3)),h=4,p=!1,_=[],v=function(t){function e(){s(this,e),null!=t&&t.apply(this,arguments)}return a(e,t),u(e,null,{isFetching:{get:function(){return!i()},configurable:!0},initialLoadDone:{get:function(){return p},configurable:!0},componentsLoaded:{get:function(){return r(f.ACTION_NEW_LOADED_COMPONENTS)},configurable:!0},eventsLoaded:{get:function(){return r(f.ACTION_NEW_EVENTS)},configurable:!0},servicesLoaded:{get:function(){return r(f.ACTION_NEW_SERVICES)},configurable:!0},statesLoaded:{get:function(){return r(f.ACTION_NEW_STATES)},configurable:!0}}),e}(l),y=new v;y.dispatchToken=c.register(function(t){switch(t.actionType){case f.ACTION_FETCH_ALL:_=[],y.emitChange();break;case f.ACTION_NEW_LOADED_COMPONENTS:case f.ACTION_NEW_EVENTS:case f.ACTION_NEW_SERVICES:case f.ACTION_NEW_STATES:r(t.actionType)||(_.push(t.actionType),p=p||i(),y.emitChange());break;case f.ACTION_LOG_OUT:p=!1,_=[],y.emitChange()}}),t.exports=y},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(1)),s=r(n(2)),c=r(n(3)),f="STATE_LISTENING",l="STATE_TRANSMITTING",h="STATE_IDLE",p="STATE_ERROR",_=h,v="",y="",d=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{state:{get:function(){return _},configurable:!0},isListening:{get:function(){return _===f},configurable:!0},isTransmitting:{get:function(){return _===l},configurable:!0},hasError:{get:function(){return _===p},configurable:!0},interimTranscript:{get:function(){return v},configurable:!0},finalTranscript:{get:function(){return y},configurable:!0}}),e}(c),g=new d;g.STATE_LISTENING=f,g.STATE_TRANSMITTING=l,g.STATE_IDLE=h,g.STATE_ERROR=p,g.dispatchToken=a.register(function(t){switch(t.actionType){case s.ACTION_LISTENING_START:_=f,v="",y="",g.emitChange();break;case s.ACTION_LISTENING_TRANSMITTING:_=l,v="",y=t.finalTranscript,g.emitChange();break;case s.ACTION_LISTENING_DONE:_=h,g.emitChange();break;case s.ACTION_LISTENING_ERROR:_=p,g.emitChange();break;case s.ACTION_LISTENING_RESULT:v=t.interimTranscript,y=t.finalTranscript,g.emitChange()}}),t.exports=g},function(t,e,n){"use strict";function r(t){a.dispatch({actionType:s.ACTION_NEW_LOADED_COMPONENTS,components:t})}function i(){return u("GET","components").then(r)}var o=function(t){return t&&t.__esModule?t["default"]:t};e.newLoaded=r,e.fetchAll=i;var u=o(n(4)),a=o(n(1)),s=o(n(2));Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){s.dispatch({actionType:c.ACTION_NEW_EVENTS,events:t})}function i(){a("GET","events").then(r)}function o(t){var e=void 0===arguments[1]?{}:arguments[1];return a("POST","events/"+t,e).then(function(){f("Event "+t+" successful fired!"),s.dispatch({actionType:c.ACTION_EVENT_FIRED,eventType:t,eventData:e})})}var u=function(t){return t&&t.__esModule?t["default"]:t};e.newEvents=r,e.fetchAll=i,e.fire=o;var a=u(n(4)),s=u(n(1)),c=u(n(2)),f=n(10).notify;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(){return"EventSource"in window}function i(t){null!==p&&y();var e="/api/stream";t&&(e+="?api_password="+t),p=new EventSource(e),_=t,p.addEventListener("open",function(){v(),c.dispatch({actionType:f.ACTION_STREAM_START}),l.stop(),l.fetchAll()},!1),p.addEventListener("message",function(t){v(),"ping"!==t.data&&c.dispatch({actionType:f.ACTION_REMOTE_EVENT_RECEIVED,event:JSON.parse(t.data)})},!1),p.addEventListener("error",function(){p.readyState!==EventSource.CLOSED&&c.dispatch({actionType:f.ACTION_STREAM_ERROR})},!1)}function o(){y(),c.dispatch({actionType:f.ACTION_STREAM_STOP}),l.start()}var u=function(t){return t&&t.__esModule?t:{"default":t}},a=function(t){return t&&t.__esModule?t["default"]:t};e.isSupported=r,e.start=i,e.stop=o;var s=a(n(6)),c=a(n(1)),f=a(n(2)),l=u(n(13)),h=6e4,p=null,_=null,v=s.debounce(function(){i(_)},h),y=function(){p.close(),p=null,_=null,v.cancel()};Object.defineProperty(e,"__esModule",{value:!0})},function(t,e){"use strict";function n(t){var e=t.split(" "),n=r(e,2),i=n[0],o=n[1],u=i.split(":"),a=r(u,3),s=a[0],c=a[1],f=a[2],l=o.split("-"),h=r(l,3),p=h[0],_=h[1],v=h[2];return new Date(v,parseInt(_)-1,p,s,c,f)}var r=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,r=[],i=t[Symbol.iterator]();!(n=i.next()).done&&(r.push(n.value),!e||r.length!==e););return r}throw new TypeError("Invalid attempt to destructure non-iterable instance")};e.parseDateTime=n,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t,e){var n=e.useStreaming,r=void 0===n?l.isSupported:n,i=e.rememberLogin,o=void 0===i?!1:i;s.dispatch({actionType:c.ACTION_VALIDATING_AUTH_TOKEN}),a("GET","",!1,{authToken:t}).then(function(){s.dispatch({actionType:c.ACTION_VALID_AUTH_TOKEN,authToken:t,rememberLogin:o}),r?l.start(t):f.start()},function(t){s.dispatch({actionType:c.ACTION_INVALID_AUTH_TOKEN,message:t.message}) -})}function i(){s.dispatch({actionType:c.ACTION_LOG_OUT})}var o=function(t){return t&&t.__esModule?t:{"default":t}},u=function(t){return t&&t.__esModule?t["default"]:t};e.validate=r,e.logOut=i;var a=u(n(4)),s=u(n(1)),c=u(n(2)),f=o(n(13)),l=o(n(25));Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t,e){(t||e.length>0)&&s.dispatch({actionType:c.ACTION_NEW_STATE_HISTORY,stateHistory:e.map(function(t){return t.map(f.fromJSON)}),isFetchAll:t})}function i(){a("GET","history/period").then(r.bind(null,!0))}function o(t){a("GET","history/period?filter_entity_id="+t).then(this.newStateHistory.bind(null,!1))}var u=function(t){return t&&t.__esModule?t["default"]:t};e.newStateHistory=r,e.fetchAll=i,e.fetch=o;var a=u(n(4)),s=u(n(1)),c=u(n(2)),f=u(n(14));Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(){return"webkitSpeechRecognition"in window}function i(){var t=v||_;c.dispatch({actionType:f.ACTION_LISTENING_TRANSMITTING,finalTranscript:t}),l("conversation","process",{text:t}).then(function(){c.dispatch({actionType:f.ACTION_LISTENING_DONE,finalTranscript:t})},function(){c.dispatch({actionType:f.ACTION_LISTENING_ERROR})})}function o(){null!==p&&(p.onstart=null,p.onresult=null,p.onerror=null,p.onend=null,p.stop(),p=null,i()),_="",v=""}function u(){o(),window.r=p=new webkitSpeechRecognition,p.interimResults=!0,p.onstart=function(){c.dispatch({actionType:f.ACTION_LISTENING_START})},p.onresult=function(t){_="";for(var e=t.resultIndex;e<t.results.length;++e)t.results[e].isFinal?v+=t.results[e][0].transcript:_+=t.results[e][0].transcript;c.dispatch({actionType:f.ACTION_LISTENING_RESULT,interimTranscript:_,finalTranscript:v}),y()},p.onerror=function(){c.dispatch({actionType:f.ACTION_LISTENING_ERROR})},p.onend=o,p.start()}var a=function(t){return t&&t.__esModule?t["default"]:t};e.isSupported=r,e.stop=o,e.listen=u;var s=a(n(6)),c=a(n(1)),f=a(n(2)),l=n(11).callService,h=3e3,p=null,_="",v="",y=s.debounce(o,h);Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){var e=[];u.forEach(function(n,r){if(this[n]){var i=a[r],o=this[n].bind(this,i);i.addChangeListener(o),e.push({store:i,listener:o}),t&&o()}}.bind(this)),this._storeListeners=e}function i(){this._storeListeners.forEach(function(t){var e=t.store,n=t.listener;e.removeChangeListener(n)})}e.listenToStores=r,e.stopListeningToStores=i;var o=["auth","component","event","service","state","stateHistory","stream","sync","notification","voice"],u=o.map(function(t){return t+"StoreChanged"}),a=o.map(function(t){var e=t.replace(/([A-Z])/g,function(t){return"_"+t.toLowerCase()});return n(37)("./"+e)});Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";var r=function c(t,e,n){var r=Object.getOwnPropertyDescriptor(t,e);if(void 0===r){var i=Object.getPrototypeOf(t);return null===i?void 0:c(i,e,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},i=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},u=n(5).Record,a=new u({id:null,message:null},"Notification"),s=function(t){function e(t,n){o(this,e),r(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,{id:t,message:n})}return i(e,t),e}(a);t.exports=s},function(t,e,n){t.exports.Dispatcher=n(33)},function(t,e,n){"use strict";function r(){this.$Dispatcher_callbacks={},this.$Dispatcher_isPending={},this.$Dispatcher_isHandled={},this.$Dispatcher_isDispatching=!1,this.$Dispatcher_pendingPayload=null}var i=n(34),o=1,u="ID_";r.prototype.register=function(t){var e=u+o++;return this.$Dispatcher_callbacks[e]=t,e},r.prototype.unregister=function(t){i(this.$Dispatcher_callbacks[t],"Dispatcher.unregister(...): `%s` does not map to a registered callback.",t),delete this.$Dispatcher_callbacks[t]},r.prototype.waitFor=function(t){i(this.$Dispatcher_isDispatching,"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(var e=0;e<t.length;e++){var n=t[e];this.$Dispatcher_isPending[n]?i(this.$Dispatcher_isHandled[n],"Dispatcher.waitFor(...): Circular dependency detected while waiting for `%s`.",n):(i(this.$Dispatcher_callbacks[n],"Dispatcher.waitFor(...): `%s` does not map to a registered callback.",n),this.$Dispatcher_invokeCallback(n))}},r.prototype.dispatch=function(t){i(!this.$Dispatcher_isDispatching,"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this.$Dispatcher_startDispatching(t);try{for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]||this.$Dispatcher_invokeCallback(e)}finally{this.$Dispatcher_stopDispatching()}},r.prototype.isDispatching=function(){return this.$Dispatcher_isDispatching},r.prototype.$Dispatcher_invokeCallback=function(t){this.$Dispatcher_isPending[t]=!0,this.$Dispatcher_callbacks[t](this.$Dispatcher_pendingPayload),this.$Dispatcher_isHandled[t]=!0},r.prototype.$Dispatcher_startDispatching=function(t){for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]=!1,this.$Dispatcher_isHandled[e]=!1;this.$Dispatcher_pendingPayload=t,this.$Dispatcher_isDispatching=!0},r.prototype.$Dispatcher_stopDispatching=function(){this.$Dispatcher_pendingPayload=null,this.$Dispatcher_isDispatching=!1},t.exports=r},function(t){"use strict";var e=function(t,e,n,r,i,o,u,a){if(!t){var s;if(void 0===e)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,i,o,u,a],f=0;s=new Error("Invariant Violation: "+e.replace(/%s/g,function(){return c[f++]}))}throw s.framesToPop=1,s}};t.exports=e},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t){function e(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(t){return"function"==typeof t}function r(t){return"number"==typeof t}function i(t){return"object"==typeof t&&null!==t}function o(t){return void 0===t}t.exports=e,e.EventEmitter=e,e.prototype._events=void 0,e.prototype._maxListeners=void 0,e.defaultMaxListeners=10,e.prototype.setMaxListeners=function(t){if(!r(t)||0>t||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},e.prototype.emit=function(t){var e,r,u,a,s,c;if(this._events||(this._events={}),"error"===t&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(e=arguments[1],e instanceof Error)throw e;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[t],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:for(u=arguments.length,a=new Array(u-1),s=1;u>s;s++)a[s-1]=arguments[s];r.apply(this,a)}else if(i(r)){for(u=arguments.length,a=new Array(u-1),s=1;u>s;s++)a[s-1]=arguments[s];for(c=r.slice(),u=c.length,s=0;u>s;s++)c[s].apply(this,a)}return!0},e.prototype.addListener=function(t,r){var u;if(!n(r))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,n(r.listener)?r.listener:r),this._events[t]?i(this._events[t])?this._events[t].push(r):this._events[t]=[this._events[t],r]:this._events[t]=r,i(this._events[t])&&!this._events[t].warned){var u;u=o(this._maxListeners)?e.defaultMaxListeners:this._maxListeners,u&&u>0&&this._events[t].length>u&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace())}return this},e.prototype.on=e.prototype.addListener,e.prototype.once=function(t,e){function r(){this.removeListener(t,r),i||(i=!0,e.apply(this,arguments))}if(!n(e))throw TypeError("listener must be a function");var i=!1;return r.listener=e,this.on(t,r),this},e.prototype.removeListener=function(t,e){var r,o,u,a;if(!n(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(r=this._events[t],u=r.length,o=-1,r===e||n(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(i(r)){for(a=u;a-->0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=a;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},e.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[t],n(r))this.removeListener(t,r);else for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},e.prototype.listeners=function(t){var e;return e=this._events&&this._events[t]?n(this._events[t])?[this._events[t]]:this._events[t].slice():[]},e.listenerCount=function(t,e){var r;return r=t._events&&t._events[e]?n(t._events[e])?1:t._events[e].length:0}},function(t,e,n){function r(t){return n(i(t))}function i(t){return o[t]||function(){throw new Error("Cannot find module '"+t+"'.")}()}var o={"./auth":7,"./auth.js":7,"./component":15,"./component.js":15,"./event":16,"./event.js":16,"./notification":17,"./notification.js":17,"./preference":18,"./preference.js":18,"./service":8,"./service.js":8,"./state":19,"./state.js":19,"./state_history":20,"./state_history.js":20,"./store":3,"./store.js":3,"./stream":9,"./stream.js":9,"./sync":21,"./sync.js":21,"./voice":22,"./voice.js":22};r.keys=function(){return Object.keys(o)},r.resolve=i,t.exports=r,r.id=37}]);</script><script>(function(){var DOMAINS_WITH_CARD=["thermostat","configurator","scene"];var DOMAINS_WITH_MORE_INFO=["light","group","sun","configurator","thermostat","script"];PolymerExpressions.prototype.HATimeToDate=function(timeString){if(!timeString)return;return window.hass.util.parseDateTime(timeString)};PolymerExpressions.prototype.HATimeStripDate=function(timeString){return(timeString||"").split(" ")[0]};Object.defineProperties(window.hass.stateModel.prototype,{cardType:{get:function(){if(DOMAINS_WITH_CARD.indexOf(this.domain)!==-1){return this.domain}else if(this.canToggle){return"toggle"}else{return"display"}}},moreInfoType:{get:function(){if(DOMAINS_WITH_MORE_INFO.indexOf(this.domain)!==-1){return this.domain}else{return"default"}}}});var dispatcher=window.hass.dispatcher,constants=window.hass.constants,preferenceStore=window.hass.preferenceStore,authActions=window.hass.authActions;window.hass.uiConstants={ACTION_SHOW_DIALOG_MORE_INFO:"ACTION_SHOW_DIALOG_MORE_INFO",STATE_FILTERS:{group:"Groups",script:"Scripts",scene:"Scenes"}};window.hass.uiActions={showMoreInfoDialog:function(entityId){dispatcher.dispatch({actionType:this.ACTION_SHOW_DIALOG_MORE_INFO,entityId:entityId})},validateAuth:function(authToken,rememberLogin){authActions.validate(authToken,{useStreaming:preferenceStore.useStreaming,rememberLogin:rememberLogin})}};window.hass.uiUtil={}})();</script></div> +<div hidden><script>!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=r(n(1)),o=e.hass={callApi:n(5),dispatcher:i,constants:n(2),util:n(24),authActions:n(28),componentActions:n(25),eventActions:n(26),serviceActions:n(11),stateActions:n(12),syncActions:n(13),stateHistoryActions:n(30),streamActions:n(27),voiceActions:n(31),logbookActions:n(29),authStore:n(7),componentStore:n(15),eventStore:n(16),serviceStore:n(8),stateStore:n(20),syncStore:n(22),stateHistoryStore:n(21),streamStore:n(9),preferenceStore:n(19),notificationStore:n(18),voiceStore:n(23),logbookStore:n(17),stateModel:n(14),storeListenerMixIn:n(32)};"hass"in window||(window.hass=o),Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";var r=n(35),i=r.Dispatcher;t.exports=new i},function(t,e,n){"use strict";var r=n(6),i=["ACTION_LOG_OUT","ACTION_VALIDATING_AUTH_TOKEN","ACTION_VALID_AUTH_TOKEN","ACTION_INVALID_AUTH_TOKEN","ACTION_FETCH_ALL","ACTION_NEW_LOADED_COMPONENTS","ACTION_NEW_EVENTS","ACTION_NEW_SERVICES","ACTION_NEW_STATES","ACTION_NEW_STATE_HISTORY","ACTION_NEW_LOGBOOK","ACTION_NEW_NOTIFICATION","ACTION_SET_PREFERENCE","ACTION_EVENT_FIRED","ACTION_INITIAL_LOAD_DONE","ACTION_STREAM_START","ACTION_STREAM_STOP","ACTION_STREAM_ERROR","ACTION_REMOTE_EVENT_RECEIVED","ACTION_LISTENING_START","ACTION_LISTENING_TRANSMITTING","ACTION_LISTENING_DONE","ACTION_LISTENING_ERROR","ACTION_LISTENING_RESULT"];t.exports=r.merge({REMOTE_EVENT_HOMEASSISTANT_START:"homeassistant_start",REMOTE_EVENT_HOMEASSISTANT_STOP:"homeassistant_stop",REMOTE_EVENT_STATE_CHANGED:"state_changed",REMOTE_EVENT_TIME_CHANGED:"time_changed",REMOTE_EVENT_CALL_SERVICE:"call_service",REMOTE_EVENT_SERVICE_EXECUTED:"service_executed",REMOTE_EVENT_PLATFORM_DISCOVERED:"platform_discovered",REMOTE_EVENT_SERVICE_REGISTERED:"service_registered",REMOTE_EVENT_COMPONENT_LOADED:"component_loaded",UNIT_TEMP_C:"°C",UNIT_TEMP_F:"°F"},r.zipObject(i,i))},function(t,e,n){"use strict";var r=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},i=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},u=n(39).EventEmitter,a="change",s=function(t){function e(){o(this,e),null!=t&&t.apply(this,arguments)}return i(e,t),r(e,null,{emitChange:{value:function(){this.emit(a)},writable:!0,configurable:!0},addChangeListener:{value:function(t){this.on(a,t)},writable:!0,configurable:!0},removeChangeListener:{value:function(t){this.removeListener(a,t)},writable:!0,configurable:!0}}),e}(u);t.exports=s},function(t){!function(e,n){t.exports=n()}(this,function(){"use strict";function t(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function e(t){return t.value=!1,t}function n(t){t&&(t.value=!0)}function r(){}function i(t,e){e=e||0;for(var n=Math.max(0,t.length-e),r=new Array(n),i=0;n>i;i++)r[i]=t[i+e];return r}function o(t){return void 0===t.size&&(t.size=t.__iterate(a)),t.size}function u(t,e){return e>=0?+e:o(t)+ +e}function a(){return!0}function s(t,e,n){return(0===t||void 0!==n&&-n>=t)&&(void 0===e||void 0!==n&&e>=n)}function c(t,e){return l(t,e,0)}function f(t,e){return l(t,e,e)}function l(t,e,n){return void 0===t?n:0>t?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function h(t){return y(t)?t:C(t)}function p(t){return d(t)?t:D(t)}function _(t){return g(t)?t:x(t)}function v(t){return y(t)&&!m(t)?t:M(t)}function y(t){return!(!t||!t[pr])}function d(t){return!(!t||!t[_r])}function g(t){return!(!t||!t[vr])}function m(t){return d(t)||g(t)}function w(t){return!(!t||!t[yr])}function T(t){this.next=t}function b(t,e,n,r){var i=0===t?e:1===t?n:[e,n];return r?r.value=i:r={value:i,done:!1},r}function E(){return{value:void 0,done:!0}}function O(t){return!!A(t)}function I(t){return t&&"function"==typeof t.next}function S(t){var e=A(t);return e&&e.call(t)}function A(t){var e=t&&(wr&&t[wr]||t[Tr]);return"function"==typeof e?e:void 0}function N(t){return t&&"number"==typeof t.length}function C(t){return null===t||void 0===t?P():y(t)?t.toSeq():W(t)}function D(t){return null===t||void 0===t?P().toKeyedSeq():y(t)?d(t)?t.toSeq():t.fromEntrySeq():q(t)}function x(t){return null===t||void 0===t?P():y(t)?d(t)?t.entrySeq():t.toIndexedSeq():U(t)}function M(t){return(null===t||void 0===t?P():y(t)?d(t)?t.entrySeq():t:U(t)).toSetSeq()}function R(t){this._array=t,this.size=t.length}function k(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function j(t){this._iterable=t,this.size=t.length||t.size}function L(t){this._iterator=t,this._iteratorCache=[]}function z(t){return!(!t||!t[Er])}function P(){return Or||(Or=new R([]))}function q(t){var e=Array.isArray(t)?new R(t).fromEntrySeq():I(t)?new L(t).fromEntrySeq():O(t)?new j(t).fromEntrySeq():"object"==typeof t?new k(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function U(t){var e=V(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function W(t){var e=V(t)||"object"==typeof t&&new k(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function V(t){return N(t)?new R(t):I(t)?new L(t):O(t)?new j(t):void 0}function G(t,e,n,r){var i=t._cache;if(i){for(var o=i.length-1,u=0;o>=u;u++){var a=i[n?o-u:u];if(e(a[1],r?a[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,n)}function K(t,e,n,r){var i=t._cache;if(i){var o=i.length-1,u=0;return new T(function(){var t=i[n?o-u:u];return u++>o?E():b(e,r?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,n)}function $(){throw TypeError("Abstract")}function H(){}function F(){}function B(){}function J(t,e){return t===e||t!==t&&e!==e?!0:t&&e?("function"==typeof t.valueOf&&"function"==typeof e.valueOf&&(t=t.valueOf(),e=e.valueOf()),"function"==typeof t.equals&&"function"==typeof e.equals?t.equals(e):t===e||t!==t&&e!==e):!1}function Y(t,e){return e?X(e,t,"",{"":t}):Z(t)}function X(t,e,n,r){return Array.isArray(e)?t.call(r,n,x(e).map(function(n,r){return X(t,n,r,e)})):Q(e)?t.call(r,n,D(e).map(function(n,r){return X(t,n,r,e)})):e}function Z(t){return Array.isArray(t)?x(t).map(Z).toList():Q(t)?D(t).map(Z).toMap():t}function Q(t){return t&&(t.constructor===Object||void 0===t.constructor)}function te(t){return t>>>1&1073741824|3221225471&t}function ee(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)t/=4294967295,n^=t;return te(n)}return"string"===e?t.length>Dr?ne(t):re(t):"function"==typeof t.hashCode?t.hashCode():ie(t)}function ne(t){var e=Rr[t];return void 0===e&&(e=re(t),Mr===xr&&(Mr=0,Rr={}),Mr++,Rr[t]=e),e}function re(t){for(var e=0,n=0;n<t.length;n++)e=31*e+t.charCodeAt(n)|0;return te(e)}function ie(t){var e=Ar&&Ar.get(t);if(e)return e;if(e=t[Cr])return e;if(!Sr){if(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[Cr])return e;if(e=oe(t))return e}if(Object.isExtensible&&!Object.isExtensible(t))throw new Error("Non-extensible objects are not allowed as keys.");if(e=++Nr,1073741824&Nr&&(Nr=0),Ar)Ar.set(t,e);else if(Sr)Object.defineProperty(t,Cr,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[Cr]=e;else{if(!t.nodeType)throw new Error("Unable to set a non-enumerable property on object.");t[Cr]=e}return e}function oe(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ue(t,e){if(!t)throw new Error(e)}function ae(t){ue(1/0!==t,"Cannot perform this action with an infinite size.")}function se(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ce(t){this._iter=t,this.size=t.size}function fe(t){this._iter=t,this.size=t.size}function le(t){this._iter=t,this.size=t.size}function he(t){var e=Re(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.contains(e)},e.contains=function(e){return t.has(e)},e.cacheResult=ke,e.__iterateUncached=function(e,n){var r=this;return t.__iterate(function(t,n){return e(n,t,r)!==!1},n)},e.__iteratorUncached=function(e,n){if(e===mr){var r=t.__iterator(e,n);return new T(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===gr?dr:gr,n)},e}function pe(t,e,n){var r=Re(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,i){var o=t.get(r,fr);return o===fr?i:e.call(n,o,r,t)},r.__iterateUncached=function(r,i){var o=this;return t.__iterate(function(t,i,u){return r(e.call(n,t,i,u),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=t.__iterator(mr,i);return new T(function(){var i=o.next();if(i.done)return i;var u=i.value,a=u[0];return b(r,a,e.call(n,u[1],a,t),i)})},r}function _e(t,e){var n=Re(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=he(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.contains=function(e){return t.contains(e)},n.cacheResult=ke,n.__iterate=function(e,n){var r=this;return t.__iterate(function(t,n){return e(t,n,r)},!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function ve(t,e,n,r){var i=Re(t);return r&&(i.has=function(r){var i=t.get(r,fr);return i!==fr&&!!e.call(n,i,r,t)},i.get=function(r,i){var o=t.get(r,fr);return o!==fr&&e.call(n,o,r,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,a=0;return t.__iterate(function(t,o,s){return e.call(n,t,o,s)?(a++,i(t,r?o:a-1,u)):void 0},o),a},i.__iteratorUncached=function(i,o){var u=t.__iterator(mr,o),a=0;return new T(function(){for(;;){var o=u.next();if(o.done)return o;var s=o.value,c=s[0],f=s[1];if(e.call(n,f,c,t))return b(i,r?c:a++,f,o)}})},i}function ye(t,e,n){var r=ze().asMutable();return t.__iterate(function(i,o){r.update(e.call(n,i,o,t),0,function(t){return t+1})}),r.asImmutable()}function de(t,e,n){var r=d(t),i=(w(t)?On():ze()).asMutable();t.__iterate(function(o,u){i.update(e.call(n,o,u,t),function(t){return t=t||[],t.push(r?[u,o]:o),t})});var o=Me(t);return i.map(function(e){return Ce(t,o(e))})}function ge(t,e,n,r){var i=t.size;if(s(e,n,i))return t;var o=c(e,i),a=f(n,i);if(o!==o||a!==a)return ge(t.toSeq().cacheResult(),e,n,r);var l=a-o;0>l&&(l=0);var h=Re(t);return h.size=0===l?l:t.size&&l||void 0,!r&&z(t)&&l>=0&&(h.get=function(e,n){return e=u(this,e),e>=0&&l>e?t.get(e+o,n):n}),h.__iterateUncached=function(e,n){var i=this;if(0===l)return 0;if(n)return this.cacheResult().__iterate(e,n);var u=0,a=!0,s=0;return t.__iterate(function(t,n){return a&&(a=u++<o)?void 0:(s++,e(t,r?n:s-1,i)!==!1&&s!==l)}),s},h.__iteratorUncached=function(e,n){if(l&&n)return this.cacheResult().__iterator(e,n);var i=l&&t.__iterator(e,n),u=0,a=0;return new T(function(){for(;u++!==o;)i.next();if(++a>l)return E();var t=i.next();return r||e===gr?t:e===dr?b(e,a-1,void 0,t):b(e,a-1,t.value[1],t)})},h}function me(t,e,n){var r=Re(t);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var u=0;return t.__iterate(function(t,i,a){return e.call(n,t,i,a)&&++u&&r(t,i,o)}),u},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var u=t.__iterator(mr,i),a=!0;return new T(function(){if(!a)return E();var t=u.next();if(t.done)return t;var i=t.value,s=i[0],c=i[1];return e.call(n,c,s,o)?r===mr?t:b(r,s,c,t):(a=!1,E())})},r}function we(t,e,n,r){var i=Re(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var a=!0,s=0;return t.__iterate(function(t,o,c){return a&&(a=e.call(n,t,o,c))?void 0:(s++,i(t,r?o:s-1,u))}),s},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var a=t.__iterator(mr,o),s=!0,c=0;return new T(function(){var t,o,f;do{if(t=a.next(),t.done)return r||i===gr?t:i===dr?b(i,c++,void 0,t):b(i,c++,t.value[1],t);var l=t.value;o=l[0],f=l[1],s&&(s=e.call(n,f,o,u))}while(s);return i===mr?t:b(i,o,f,t)})},i}function Te(t,e){var n=d(t),r=[t].concat(e).map(function(t){return y(t)?n&&(t=p(t)):t=n?q(t):U(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===r.length)return t;if(1===r.length){var i=r[0];if(i===t||n&&d(i)||g(t)&&g(i))return i}var o=new R(r);return n?o=o.toKeyedSeq():g(t)||(o=o.toSetSeq()),o=o.flatten(!0),o.size=r.reduce(function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}},0),o}function be(t,e,n){var r=Re(t);return r.__iterateUncached=function(r,i){function o(t,s){var c=this;t.__iterate(function(t,i){return(!e||e>s)&&y(t)?o(t,s+1):r(t,n?i:u++,c)===!1&&(a=!0),!a},i)}var u=0,a=!1;return o(t,0),u},r.__iteratorUncached=function(r,i){var o=t.__iterator(r,i),u=[],a=0;return new T(function(){for(;o;){var t=o.next();if(t.done===!1){var s=t.value;if(r===mr&&(s=s[1]),e&&!(u.length<e)||!y(s))return n?t:b(r,a++,s,t);u.push(o),o=s.__iterator(r,i)}else o=u.pop()}return E()})},r}function Ee(t,e,n){var r=Me(t);return t.toSeq().map(function(i,o){return r(e.call(n,i,o,t))}).flatten(!0)}function Oe(t,e){var n=Re(t);return n.size=t.size&&2*t.size-1,n.__iterateUncached=function(n,r){var i=this,o=0;return t.__iterate(function(t){return(!o||n(e,o++,i)!==!1)&&n(t,o++,i)!==!1},r),o},n.__iteratorUncached=function(n,r){var i,o=t.__iterator(gr,r),u=0;return new T(function(){return(!i||u%2)&&(i=o.next(),i.done)?i:u%2?b(n,u++,e):b(n,u++,i.value,i)})},n}function Ie(t,e,n){e||(e=je);var r=d(t),i=0,o=t.toSeq().map(function(e,r){return[r,e,i++,n?n(e,r,t):e]}).toArray();return o.sort(function(t,n){return e(t[3],n[3])||t[2]-n[2]}).forEach(r?function(t,e){o[e].length=2}:function(t,e){o[e]=t[1]}),r?D(o):g(t)?x(o):M(o)}function Se(t,e,n){if(e||(e=je),n){var r=t.toSeq().map(function(e,r){return[e,n(e,r,t)]}).reduce(function(t,n){return Ae(e,t[1],n[1])?n:t});return r&&r[0]}return t.reduce(function(t,n){return Ae(e,t,n)?n:t})}function Ae(t,e,n){var r=t(n,e);return 0===r&&n!==e&&(void 0===n||null===n||n!==n)||r>0}function Ne(t,e,n){var r=Re(t);return r.size=new R(n).map(function(t){return t.size}).min(),r.__iterate=function(t,e){for(var n,r=this.__iterator(gr,e),i=0;!(n=r.next()).done&&t(n.value,i++,this)!==!1;);return i},r.__iteratorUncached=function(t,r){var i=n.map(function(t){return t=h(t),S(r?t.reverse():t)}),o=0,u=!1;return new T(function(){var n;return u||(n=i.map(function(t){return t.next()}),u=n.some(function(t){return t.done})),u?E():b(t,o++,e.apply(null,n.map(function(t){return t.value})))})},r}function Ce(t,e){return z(t)?e:t.constructor(e)}function De(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function xe(t){return ae(t.size),o(t)}function Me(t){return d(t)?p:g(t)?_:v}function Re(t){return Object.create((d(t)?D:g(t)?x:M).prototype)}function ke(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):C.prototype.cacheResult.call(this)}function je(t,e){return t>e?1:e>t?-1:0}function Le(t){var e=S(t);if(!e){if(!N(t))throw new TypeError("Expected iterable or array-like: "+t);e=S(h(t))}return e}function ze(t){return null===t||void 0===t?Be():Pe(t)?t:Be().withMutations(function(e){var n=p(t);ae(n.size),n.forEach(function(t,n){return e.set(n,t)})})}function Pe(t){return!(!t||!t[kr])}function qe(t,e){this.ownerID=t,this.entries=e}function Ue(t,e,n){this.ownerID=t,this.bitmap=e,this.nodes=n}function We(t,e,n){this.ownerID=t,this.count=e,this.nodes=n}function Ve(t,e,n){this.ownerID=t,this.keyHash=e,this.entries=n}function Ge(t,e,n){this.ownerID=t,this.keyHash=e,this.entry=n}function Ke(t,e,n){this._type=e,this._reverse=n,this._stack=t._root&&He(t._root)}function $e(t,e){return b(t,e[0],e[1])}function He(t,e){return{node:t,index:0,__prev:e}}function Fe(t,e,n,r){var i=Object.create(jr);return i.size=t,i._root=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Be(){return Lr||(Lr=Fe(0))}function Je(t,n,r){var i,o;if(t._root){var u=e(lr),a=e(hr);if(i=Ye(t._root,t.__ownerID,0,void 0,n,r,u,a),!a.value)return t;o=t.size+(u.value?r===fr?-1:1:0)}else{if(r===fr)return t;o=1,i=new qe(t.__ownerID,[[n,r]])}return t.__ownerID?(t.size=o,t._root=i,t.__hash=void 0,t.__altered=!0,t):i?Fe(o,i):Be()}function Ye(t,e,r,i,o,u,a,s){return t?t.update(e,r,i,o,u,a,s):u===fr?t:(n(s),n(a),new Ge(e,i,[o,u]))}function Xe(t){return t.constructor===Ge||t.constructor===Ve}function Ze(t,e,n,r,i){if(t.keyHash===r)return new Ve(e,r,[t.entry,i]);var o,u=(0===n?t.keyHash:t.keyHash>>>n)&cr,a=(0===n?r:r>>>n)&cr,s=u===a?[Ze(t,e,n+ar,r,i)]:(o=new Ge(e,r,i),a>u?[t,o]:[o,t]);return new Ue(e,1<<u|1<<a,s)}function Qe(t,e,n,i){t||(t=new r);for(var o=new Ge(t,ee(n),[n,i]),u=0;u<e.length;u++){var a=e[u];o=o.update(t,0,void 0,a[0],a[1])}return o}function tn(t,e,n,r){for(var i=0,o=0,u=new Array(n),a=0,s=1,c=e.length;c>a;a++,s<<=1){var f=e[a];void 0!==f&&a!==r&&(i|=s,u[o++]=f)}return new Ue(t,i,u)}function en(t,e,n,r,i){for(var o=0,u=new Array(sr),a=0;0!==n;a++,n>>>=1)u[a]=1&n?e[o++]:void 0;return u[r]=i,new We(t,o+1,u)}function nn(t,e,n){for(var r=[],i=0;i<n.length;i++){var o=n[i],u=p(o);y(o)||(u=u.map(function(t){return Y(t)})),r.push(u)}return on(t,e,r)}function rn(t){return function(e,n){return e&&e.mergeDeepWith&&y(n)?e.mergeDeepWith(t,n):t?t(e,n):n}}function on(t,e,n){return n=n.filter(function(t){return 0!==t.size}),0===n.length?t:0===t.size&&1===n.length?t.constructor(n[0]):t.withMutations(function(t){for(var r=e?function(n,r){t.update(r,fr,function(t){return t===fr?n:e(t,n)})}:function(e,n){t.set(n,e)},i=0;i<n.length;i++)n[i].forEach(r)})}function un(t,e,n,r){var i=t===fr,o=e.next();if(o.done){var u=i?n:t,a=r(u);return a===u?t:a}ue(i||t&&t.set,"invalid keyPath");var s=o.value,c=i?fr:t.get(s,fr),f=un(c,e,n,r);return f===c?t:f===fr?t.remove(s):(i?Be():t).set(s,f)}function an(t){return t-=t>>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function sn(t,e,n,r){var o=r?t:i(t);return o[e]=n,o}function cn(t,e,n,r){var i=t.length+1;if(r&&e+1===i)return t[e]=n,t;for(var o=new Array(i),u=0,a=0;i>a;a++)a===e?(o[a]=n,u=-1):o[a]=t[a+u];return o}function fn(t,e,n){var r=t.length-1;if(n&&e===r)return t.pop(),t;for(var i=new Array(r),o=0,u=0;r>u;u++)u===e&&(o=1),i[u]=t[u+o];return i}function ln(t){var e=yn();if(null===t||void 0===t)return e;if(hn(t))return t;var n=_(t),r=n.size;return 0===r?e:(ae(r),r>0&&sr>r?vn(0,r,ar,null,new pn(n.toArray())):e.withMutations(function(t){t.setSize(r),n.forEach(function(e,n){return t.set(n,e)})}))}function hn(t){return!(!t||!t[Ur])}function pn(t,e){this.array=t,this.ownerID=e}function _n(t,e){function n(t,e,n){return 0===e?r(t,n):i(t,e,n)}function r(t,n){var r=n===a?s&&s.array:t&&t.array,i=n>o?0:o-n,c=u-n;return c>sr&&(c=sr),function(){if(i===c)return Gr;var t=e?--c:i++;return r&&r[t]}}function i(t,r,i){var a,s=t&&t.array,c=i>o?0:o-i>>r,f=(u-i>>r)+1;return f>sr&&(f=sr),function(){for(;;){if(a){var t=a();if(t!==Gr)return t;a=null}if(c===f)return Gr;var o=e?--f:c++;a=n(s&&s[o],r-ar,i+(o<<r))}}}var o=t._origin,u=t._capacity,a=En(u),s=t._tail;return n(t._root,t._level,0)}function vn(t,e,n,r,i,o,u){var a=Object.create(Wr);return a.size=e-t,a._origin=t,a._capacity=e,a._level=n,a._root=r,a._tail=i,a.__ownerID=o,a.__hash=u,a.__altered=!1,a}function yn(){return Vr||(Vr=vn(0,0,ar))}function dn(t,n,r){if(n=u(t,n),n>=t.size||0>n)return t.withMutations(function(t){0>n?Tn(t,n).set(0,r):Tn(t,0,n+1).set(n,r)});n+=t._origin;var i=t._tail,o=t._root,a=e(hr);return n>=En(t._capacity)?i=gn(i,t.__ownerID,0,n,r,a):o=gn(o,t.__ownerID,t._level,n,r,a),a.value?t.__ownerID?(t._root=o,t._tail=i,t.__hash=void 0,t.__altered=!0,t):vn(t._origin,t._capacity,t._level,o,i):t}function gn(t,e,r,i,o,u){var a=i>>>r&cr,s=t&&a<t.array.length;if(!s&&void 0===o)return t;var c;if(r>0){var f=t&&t.array[a],l=gn(f,e,r-ar,i,o,u);return l===f?t:(c=mn(t,e),c.array[a]=l,c)}return s&&t.array[a]===o?t:(n(u),c=mn(t,e),void 0===o&&a===c.array.length-1?c.array.pop():c.array[a]=o,c)}function mn(t,e){return e&&t&&e===t.ownerID?t:new pn(t?t.array.slice():[],e)}function wn(t,e){if(e>=En(t._capacity))return t._tail;if(e<1<<t._level+ar){for(var n=t._root,r=t._level;n&&r>0;)n=n.array[e>>>r&cr],r-=ar;return n}}function Tn(t,e,n){var i=t.__ownerID||new r,o=t._origin,u=t._capacity,a=o+e,s=void 0===n?u:0>n?u+n:o+n;if(a===o&&s===u)return t;if(a>=s)return t.clear();for(var c=t._level,f=t._root,l=0;0>a+l;)f=new pn(f&&f.array.length?[void 0,f]:[],i),c+=ar,l+=1<<c;l&&(a+=l,o+=l,s+=l,u+=l);for(var h=En(u),p=En(s);p>=1<<c+ar;)f=new pn(f&&f.array.length?[f]:[],i),c+=ar;var _=t._tail,v=h>p?wn(t,s-1):p>h?new pn([],i):_;if(_&&p>h&&u>a&&_.array.length){f=mn(f,i);for(var y=f,d=c;d>ar;d-=ar){var g=h>>>d&cr;y=y.array[g]=mn(y.array[g],i)}y.array[h>>>ar&cr]=_}if(u>s&&(v=v&&v.removeAfter(i,0,s)),a>=p)a-=p,s-=p,c=ar,f=null,v=v&&v.removeBefore(i,0,a);else if(a>o||h>p){for(l=0;f;){var m=a>>>c&cr;if(m!==p>>>c&cr)break;m&&(l+=(1<<c)*m),c-=ar,f=f.array[m]}f&&a>o&&(f=f.removeBefore(i,c,a-l)),f&&h>p&&(f=f.removeAfter(i,c,p-l)),l&&(a-=l,s-=l)}return t.__ownerID?(t.size=s-a,t._origin=a,t._capacity=s,t._level=c,t._root=f,t._tail=v,t.__hash=void 0,t.__altered=!0,t):vn(a,s,c,f,v)}function bn(t,e,n){for(var r=[],i=0,o=0;o<n.length;o++){var u=n[o],a=_(u);a.size>i&&(i=a.size),y(u)||(a=a.map(function(t){return Y(t)})),r.push(a)}return i>t.size&&(t=t.setSize(i)),on(t,e,r)}function En(t){return sr>t?0:t-1>>>ar<<ar}function On(t){return null===t||void 0===t?An():In(t)?t:An().withMutations(function(e){var n=p(t);ae(n.size),n.forEach(function(t,n){return e.set(n,t)})})}function In(t){return Pe(t)&&w(t)}function Sn(t,e,n,r){var i=Object.create(On.prototype);return i.size=t?t.size:0,i._map=t,i._list=e,i.__ownerID=n,i.__hash=r,i}function An(){return Kr||(Kr=Sn(Be(),yn()))}function Nn(t,e,n){var r,i,o=t._map,u=t._list,a=o.get(e),s=void 0!==a;if(n===fr){if(!s)return t;u.size>=sr&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&a!==e}),r=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=i.__ownerID=t.__ownerID)):(r=o.remove(e),i=a===u.size-1?u.pop():u.set(a,void 0))}else if(s){if(n===u.get(a)[1])return t;r=o,i=u.set(a,[e,n])}else r=o.set(e,u.size),i=u.set(u.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=i,t.__hash=void 0,t):Sn(r,i)}function Cn(t){return null===t||void 0===t?Mn():Dn(t)?t:Mn().unshiftAll(t)}function Dn(t){return!(!t||!t[$r])}function xn(t,e,n,r){var i=Object.create(Hr);return i.size=t,i._head=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Mn(){return Fr||(Fr=xn(0))}function Rn(t){return null===t||void 0===t?zn():kn(t)?t:zn().withMutations(function(e){var n=v(t);ae(n.size),n.forEach(function(t){return e.add(t)})})}function kn(t){return!(!t||!t[Br])}function jn(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function Ln(t,e){var n=Object.create(Jr);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function zn(){return Yr||(Yr=Ln(Be()))}function Pn(t){return null===t||void 0===t?Wn():qn(t)?t:Wn().withMutations(function(e){var n=v(t);ae(n.size),n.forEach(function(t){return e.add(t)})})}function qn(t){return kn(t)&&w(t)}function Un(t,e){var n=Object.create(Xr);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function Wn(){return Zr||(Zr=Un(An()))}function Vn(t,e){var n=function(t){return this instanceof n?void(this._map=ze(t)):new n(t)},r=Object.keys(t),i=n.prototype=Object.create(Qr);i.constructor=n,e&&(i._name=e),i._defaultValues=t,i._keys=r,i.size=r.length;try{r.forEach(function(t){Object.defineProperty(n.prototype,t,{get:function(){return this.get(t)},set:function(e){ue(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})})}catch(o){}return n}function Gn(t,e,n){var r=Object.create(Object.getPrototypeOf(t));return r._map=e,r.__ownerID=n,r}function Kn(t){return t._name||t.constructor.name}function $n(t,e){if(t===e)return!0;if(!y(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||d(t)!==d(e)||g(t)!==g(e)||w(t)!==w(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!m(t);if(w(t)){var r=t.entries();return e.every(function(t,e){var i=r.next().value;return i&&J(i[1],t)&&(n||J(i[0],e))})&&r.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)t.cacheResult();else{i=!0;var o=t;t=e,e=o}var u=!0,a=e.__iterate(function(e,r){return(n?t.has(e):i?J(e,t.get(r,fr)):J(t.get(r,fr),e))?void 0:(u=!1,!1)});return u&&t.size===a}function Hn(t,e,n){if(!(this instanceof Hn))return new Hn(t,e,n);if(ue(0!==n,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),t>e&&(n=-n),this._start=t,this._end=e,this._step=n,this.size=Math.max(0,Math.ceil((e-t)/n-1)+1),0===this.size){if(ti)return ti;ti=this}}function Fn(t,e){if(!(this instanceof Fn))return new Fn(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(ei)return ei;ei=this}}function Bn(t,e){var n=function(n){t.prototype[n]=e[n]};return Object.keys(e).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(n),t}function Jn(t,e){return e}function Yn(t,e){return[e,t]}function Xn(t){return function(){return!t.apply(this,arguments)}}function Zn(t){return function(){return-t.apply(this,arguments)}}function Qn(t){return"string"==typeof t?JSON.stringify(t):t}function tr(){return i(arguments)}function er(t,e){return e>t?1:t>e?-1:0}function nr(t){if(1/0===t.size)return 0;var e=w(t),n=d(t),r=e?1:0,i=t.__iterate(n?e?function(t,e){r=31*r+ir(ee(t),ee(e))|0}:function(t,e){r=r+ir(ee(t),ee(e))|0}:e?function(t){r=31*r+ee(t)|0}:function(t){r=r+ee(t)|0});return rr(i,r)}function rr(t,e){return e=Ir(e,3432918353),e=Ir(e<<15|e>>>-15,461845907),e=Ir(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=Ir(e^e>>>16,2246822507),e=Ir(e^e>>>13,3266489909),e=te(e^e>>>16)}function ir(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var or=Array.prototype.slice,ur="delete",ar=5,sr=1<<ar,cr=sr-1,fr={},lr={value:!1},hr={value:!1};t(p,h),t(_,h),t(v,h),h.isIterable=y,h.isKeyed=d,h.isIndexed=g,h.isAssociative=m,h.isOrdered=w,h.Keyed=p,h.Indexed=_,h.Set=v;var pr="@@__IMMUTABLE_ITERABLE__@@",_r="@@__IMMUTABLE_KEYED__@@",vr="@@__IMMUTABLE_INDEXED__@@",yr="@@__IMMUTABLE_ORDERED__@@",dr=0,gr=1,mr=2,wr="function"==typeof Symbol&&Symbol.iterator,Tr="@@iterator",br=wr||Tr;T.prototype.toString=function(){return"[Iterator]"},T.KEYS=dr,T.VALUES=gr,T.ENTRIES=mr,T.prototype.inspect=T.prototype.toSource=function(){return this.toString()},T.prototype[br]=function(){return this},t(C,h),C.of=function(){return C(arguments)},C.prototype.toSeq=function(){return this},C.prototype.toString=function(){return this.__toString("Seq {","}")},C.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},C.prototype.__iterate=function(t,e){return G(this,t,e,!0)},C.prototype.__iterator=function(t,e){return K(this,t,e,!0)},t(D,C),D.prototype.toKeyedSeq=function(){return this},t(x,C),x.of=function(){return x(arguments)},x.prototype.toIndexedSeq=function(){return this},x.prototype.toString=function(){return this.__toString("Seq [","]")},x.prototype.__iterate=function(t,e){return G(this,t,e,!1)},x.prototype.__iterator=function(t,e){return K(this,t,e,!1)},t(M,C),M.of=function(){return M(arguments)},M.prototype.toSetSeq=function(){return this},C.isSeq=z,C.Keyed=D,C.Set=M,C.Indexed=x;var Er="@@__IMMUTABLE_SEQ__@@";C.prototype[Er]=!0,t(R,x),R.prototype.get=function(t,e){return this.has(t)?this._array[u(this,t)]:e},R.prototype.__iterate=function(t,e){for(var n=this._array,r=n.length-1,i=0;r>=i;i++)if(t(n[e?r-i:i],i,this)===!1)return i+1;return i},R.prototype.__iterator=function(t,e){var n=this._array,r=n.length-1,i=0;return new T(function(){return i>r?E():b(t,i,n[e?r-i++:i++])})},t(k,D),k.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},k.prototype.has=function(t){return this._object.hasOwnProperty(t)},k.prototype.__iterate=function(t,e){for(var n=this._object,r=this._keys,i=r.length-1,o=0;i>=o;o++){var u=r[e?i-o:o];if(t(n[u],u,this)===!1)return o+1}return o},k.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,i=r.length-1,o=0;return new T(function(){var u=r[e?i-o:o];return o++>i?E():b(t,u,n[u])})},k.prototype[yr]=!0,t(j,x),j.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var n=this._iterable,r=S(n),i=0;if(I(r))for(var o;!(o=r.next()).done&&t(o.value,i++,this)!==!1;);return i},j.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterable,r=S(n);if(!I(r))return new T(E);var i=0;return new T(function(){var e=r.next();return e.done?e:b(t,i++,e.value)})},t(L,x),L.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var n=this._iterator,r=this._iteratorCache,i=0;i<r.length;)if(t(r[i],i++,this)===!1)return i;for(var o;!(o=n.next()).done;){var u=o.value;if(r[i]=u,t(u,i++,this)===!1)break}return i},L.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterator,r=this._iteratorCache,i=0;return new T(function(){if(i>=r.length){var e=n.next();if(e.done)return e;r[i]=e.value}return b(t,i,r[i++])})};var Or;t($,h),t(H,$),t(F,$),t(B,$),$.Keyed=H,$.Indexed=F,$.Set=B;var Ir="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){t=0|t,e=0|e;var n=65535&t,r=65535&e;return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0},Sr=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),Ar="function"==typeof WeakMap&&new WeakMap,Nr=0,Cr="__immutablehash__";"function"==typeof Symbol&&(Cr=Symbol(Cr));var Dr=16,xr=255,Mr=0,Rr={};t(se,D),se.prototype.get=function(t,e){return this._iter.get(t,e)},se.prototype.has=function(t){return this._iter.has(t)},se.prototype.valueSeq=function(){return this._iter.valueSeq()},se.prototype.reverse=function(){var t=this,e=_e(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},se.prototype.map=function(t,e){var n=this,r=pe(this,t,e);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(t,e)}),r},se.prototype.__iterate=function(t,e){var n,r=this;return this._iter.__iterate(this._useKeys?function(e,n){return t(e,n,r)}:(n=e?xe(this):0,function(i){return t(i,e?--n:n++,r)}),e)},se.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var n=this._iter.__iterator(gr,e),r=e?xe(this):0;return new T(function(){var i=n.next();return i.done?i:b(t,e?--r:r++,i.value,i)})},se.prototype[yr]=!0,t(ce,x),ce.prototype.contains=function(t){return this._iter.contains(t)},ce.prototype.__iterate=function(t,e){var n=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,n)},e)},ce.prototype.__iterator=function(t,e){var n=this._iter.__iterator(gr,e),r=0;return new T(function(){var e=n.next();return e.done?e:b(t,r++,e.value,e)})},t(fe,M),fe.prototype.has=function(t){return this._iter.contains(t)},fe.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return t(e,e,n)},e)},fe.prototype.__iterator=function(t,e){var n=this._iter.__iterator(gr,e);return new T(function(){var e=n.next();return e.done?e:b(t,e.value,e.value,e) +})},t(le,D),le.prototype.entrySeq=function(){return this._iter.toSeq()},le.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return e?(De(e),t(e[1],e[0],n)):void 0},e)},le.prototype.__iterator=function(t,e){var n=this._iter.__iterator(gr,e);return new T(function(){for(;;){var e=n.next();if(e.done)return e;var r=e.value;if(r)return De(r),t===mr?e:b(t,r[0],r[1],e)}})},ce.prototype.cacheResult=se.prototype.cacheResult=fe.prototype.cacheResult=le.prototype.cacheResult=ke,t(ze,H),ze.prototype.toString=function(){return this.__toString("Map {","}")},ze.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},ze.prototype.set=function(t,e){return Je(this,t,e)},ze.prototype.setIn=function(t,e){return this.updateIn(t,fr,function(){return e})},ze.prototype.remove=function(t){return Je(this,t,fr)},ze.prototype.deleteIn=function(t){return this.updateIn(t,function(){return fr})},ze.prototype.update=function(t,e,n){return 1===arguments.length?t(this):this.updateIn([t],e,n)},ze.prototype.updateIn=function(t,e,n){n||(n=e,e=void 0);var r=un(this,Le(t),e,n);return r===fr?void 0:r},ze.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Be()},ze.prototype.merge=function(){return nn(this,void 0,arguments)},ze.prototype.mergeWith=function(t){var e=or.call(arguments,1);return nn(this,t,e)},ze.prototype.mergeIn=function(t){var e=or.call(arguments,1);return this.updateIn(t,Be(),function(t){return t.merge.apply(t,e)})},ze.prototype.mergeDeep=function(){return nn(this,rn(void 0),arguments)},ze.prototype.mergeDeepWith=function(t){var e=or.call(arguments,1);return nn(this,rn(t),e)},ze.prototype.mergeDeepIn=function(t){var e=or.call(arguments,1);return this.updateIn(t,Be(),function(t){return t.mergeDeep.apply(t,e)})},ze.prototype.sort=function(t){return On(Ie(this,t))},ze.prototype.sortBy=function(t,e){return On(Ie(this,e,t))},ze.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},ze.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},ze.prototype.asImmutable=function(){return this.__ensureOwner()},ze.prototype.wasAltered=function(){return this.__altered},ze.prototype.__iterator=function(t,e){return new Ke(this,t,e)},ze.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],n)},e),r},ze.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Fe(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},ze.isMap=Pe;var kr="@@__IMMUTABLE_MAP__@@",jr=ze.prototype;jr[kr]=!0,jr[ur]=jr.remove,jr.removeIn=jr.deleteIn,qe.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(J(n,i[o][0]))return i[o][1];return r},qe.prototype.update=function(t,e,r,o,u,a,s){for(var c=u===fr,f=this.entries,l=0,h=f.length;h>l&&!J(o,f[l][0]);l++);var p=h>l;if(p?f[l][1]===u:c)return this;if(n(s),(c||!p)&&n(a),!c||1!==f.length){if(!p&&!c&&f.length>=zr)return Qe(t,f,o,u);var _=t&&t===this.ownerID,v=_?f:i(f);return p?c?l===h-1?v.pop():v[l]=v.pop():v[l]=[o,u]:v.push([o,u]),_?(this.entries=v,this):new qe(t,v)}},Ue.prototype.get=function(t,e,n,r){void 0===e&&(e=ee(n));var i=1<<((0===t?e:e>>>t)&cr),o=this.bitmap;return 0===(o&i)?r:this.nodes[an(o&i-1)].get(t+ar,e,n,r)},Ue.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=ee(r));var a=(0===e?n:n>>>e)&cr,s=1<<a,c=this.bitmap,f=0!==(c&s);if(!f&&i===fr)return this;var l=an(c&s-1),h=this.nodes,p=f?h[l]:void 0,_=Ye(p,t,e+ar,n,r,i,o,u);if(_===p)return this;if(!f&&_&&h.length>=Pr)return en(t,h,c,a,_);if(f&&!_&&2===h.length&&Xe(h[1^l]))return h[1^l];if(f&&_&&1===h.length&&Xe(_))return _;var v=t&&t===this.ownerID,y=f?_?c:c^s:c|s,d=f?_?sn(h,l,_,v):fn(h,l,v):cn(h,l,_,v);return v?(this.bitmap=y,this.nodes=d,this):new Ue(t,y,d)},We.prototype.get=function(t,e,n,r){void 0===e&&(e=ee(n));var i=(0===t?e:e>>>t)&cr,o=this.nodes[i];return o?o.get(t+ar,e,n,r):r},We.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=ee(r));var a=(0===e?n:n>>>e)&cr,s=i===fr,c=this.nodes,f=c[a];if(s&&!f)return this;var l=Ye(f,t,e+ar,n,r,i,o,u);if(l===f)return this;var h=this.count;if(f){if(!l&&(h--,qr>h))return tn(t,c,h,a)}else h++;var p=t&&t===this.ownerID,_=sn(c,a,l,p);return p?(this.count=h,this.nodes=_,this):new We(t,h,_)},Ve.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(J(n,i[o][0]))return i[o][1];return r},Ve.prototype.update=function(t,e,r,o,u,a,s){void 0===r&&(r=ee(o));var c=u===fr;if(r!==this.keyHash)return c?this:(n(s),n(a),Ze(this,t,e,r,[o,u]));for(var f=this.entries,l=0,h=f.length;h>l&&!J(o,f[l][0]);l++);var p=h>l;if(p?f[l][1]===u:c)return this;if(n(s),(c||!p)&&n(a),c&&2===h)return new Ge(t,this.keyHash,f[1^l]);var _=t&&t===this.ownerID,v=_?f:i(f);return p?c?l===h-1?v.pop():v[l]=v.pop():v[l]=[o,u]:v.push([o,u]),_?(this.entries=v,this):new Ve(t,this.keyHash,v)},Ge.prototype.get=function(t,e,n,r){return J(n,this.entry[0])?this.entry[1]:r},Ge.prototype.update=function(t,e,r,i,o,u,a){var s=o===fr,c=J(i,this.entry[0]);return(c?o===this.entry[1]:s)?this:(n(a),s?void n(u):c?t&&t===this.ownerID?(this.entry[1]=o,this):new Ge(t,this.keyHash,[i,o]):(n(u),Ze(this,t,e,ee(i),[i,o])))},qe.prototype.iterate=Ve.prototype.iterate=function(t,e){for(var n=this.entries,r=0,i=n.length-1;i>=r;r++)if(t(n[e?i-r:r])===!1)return!1},Ue.prototype.iterate=We.prototype.iterate=function(t,e){for(var n=this.nodes,r=0,i=n.length-1;i>=r;r++){var o=n[e?i-r:r];if(o&&o.iterate(t,e)===!1)return!1}},Ge.prototype.iterate=function(t){return t(this.entry)},t(Ke,T),Ke.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var n,r=e.node,i=e.index++;if(r.entry){if(0===i)return $e(t,r.entry)}else if(r.entries){if(n=r.entries.length-1,n>=i)return $e(t,r.entries[this._reverse?n-i:i])}else if(n=r.nodes.length-1,n>=i){var o=r.nodes[this._reverse?n-i:i];if(o){if(o.entry)return $e(t,o.entry);e=this._stack=He(o,e)}continue}e=this._stack=this._stack.__prev}return E()};var Lr,zr=sr/4,Pr=sr/2,qr=sr/4;t(ln,F),ln.of=function(){return this(arguments)},ln.prototype.toString=function(){return this.__toString("List [","]")},ln.prototype.get=function(t,e){if(t=u(this,t),0>t||t>=this.size)return e;t+=this._origin;var n=wn(this,t);return n&&n.array[t&cr]},ln.prototype.set=function(t,e){return dn(this,t,e)},ln.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},ln.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=ar,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):yn()},ln.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations(function(n){Tn(n,0,e+t.length);for(var r=0;r<t.length;r++)n.set(e+r,t[r])})},ln.prototype.pop=function(){return Tn(this,0,-1)},ln.prototype.unshift=function(){var t=arguments;return this.withMutations(function(e){Tn(e,-t.length);for(var n=0;n<t.length;n++)e.set(n,t[n])})},ln.prototype.shift=function(){return Tn(this,1)},ln.prototype.merge=function(){return bn(this,void 0,arguments)},ln.prototype.mergeWith=function(t){var e=or.call(arguments,1);return bn(this,t,e)},ln.prototype.mergeDeep=function(){return bn(this,rn(void 0),arguments)},ln.prototype.mergeDeepWith=function(t){var e=or.call(arguments,1);return bn(this,rn(t),e)},ln.prototype.setSize=function(t){return Tn(this,0,t)},ln.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:Tn(this,c(t,n),f(e,n))},ln.prototype.__iterator=function(t,e){var n=0,r=_n(this,e);return new T(function(){var e=r();return e===Gr?E():b(t,n++,e)})},ln.prototype.__iterate=function(t,e){for(var n,r=0,i=_n(this,e);(n=i())!==Gr&&t(n,r++,this)!==!1;);return r},ln.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?vn(this._origin,this._capacity,this._level,this._root,this._tail,t,this.__hash):(this.__ownerID=t,this)},ln.isList=hn;var Ur="@@__IMMUTABLE_LIST__@@",Wr=ln.prototype;Wr[Ur]=!0,Wr[ur]=Wr.remove,Wr.setIn=jr.setIn,Wr.deleteIn=Wr.removeIn=jr.removeIn,Wr.update=jr.update,Wr.updateIn=jr.updateIn,Wr.mergeIn=jr.mergeIn,Wr.mergeDeepIn=jr.mergeDeepIn,Wr.withMutations=jr.withMutations,Wr.asMutable=jr.asMutable,Wr.asImmutable=jr.asImmutable,Wr.wasAltered=jr.wasAltered,pn.prototype.removeBefore=function(t,e,n){if(n===e?1<<e:0||0===this.array.length)return this;var r=n>>>e&cr;if(r>=this.array.length)return new pn([],t);var i,o=0===r;if(e>0){var u=this.array[r];if(i=u&&u.removeBefore(t,e-ar,n),i===u&&o)return this}if(o&&!i)return this;var a=mn(this,t);if(!o)for(var s=0;r>s;s++)a.array[s]=void 0;return i&&(a.array[r]=i),a},pn.prototype.removeAfter=function(t,e,n){if(n===e?1<<e:0||0===this.array.length)return this;var r=n-1>>>e&cr;if(r>=this.array.length)return this;var i,o=r===this.array.length-1;if(e>0){var u=this.array[r];if(i=u&&u.removeAfter(t,e-ar,n),i===u&&o)return this}if(o&&!i)return this;var a=mn(this,t);return o||a.array.pop(),i&&(a.array[r]=i),a};var Vr,Gr={};t(On,ze),On.of=function(){return this(arguments)},On.prototype.toString=function(){return this.__toString("OrderedMap {","}")},On.prototype.get=function(t,e){var n=this._map.get(t);return void 0!==n?this._list.get(n)[1]:e},On.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):An()},On.prototype.set=function(t,e){return Nn(this,t,e)},On.prototype.remove=function(t){return Nn(this,t,fr)},On.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},On.prototype.__iterate=function(t,e){var n=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],n)},e)},On.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},On.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),n=this._list.__ensureOwner(t);return t?Sn(e,n,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=n,this)},On.isOrderedMap=In,On.prototype[yr]=!0,On.prototype[ur]=On.prototype.remove;var Kr;t(Cn,F),Cn.of=function(){return this(arguments)},Cn.prototype.toString=function(){return this.__toString("Stack [","]")},Cn.prototype.get=function(t,e){var n=this._head;for(t=u(this,t);n&&t--;)n=n.next;return n?n.value:e},Cn.prototype.peek=function(){return this._head&&this._head.value},Cn.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,n=arguments.length-1;n>=0;n--)e={value:arguments[n],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):xn(t,e)},Cn.prototype.pushAll=function(t){if(t=_(t),0===t.size)return this;ae(t.size);var e=this.size,n=this._head;return t.reverse().forEach(function(t){e++,n={value:t,next:n}}),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):xn(e,n)},Cn.prototype.pop=function(){return this.slice(1)},Cn.prototype.unshift=function(){return this.push.apply(this,arguments)},Cn.prototype.unshiftAll=function(t){return this.pushAll(t)},Cn.prototype.shift=function(){return this.pop.apply(this,arguments)},Cn.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Mn()},Cn.prototype.slice=function(t,e){if(s(t,e,this.size))return this;var n=c(t,this.size),r=f(e,this.size);if(r!==this.size)return F.prototype.slice.call(this,t,e);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):xn(i,o)},Cn.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?xn(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Cn.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var n=0,r=this._head;r&&t(r.value,n++,this)!==!1;)r=r.next;return n},Cn.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new T(function(){if(r){var e=r.value;return r=r.next,b(t,n++,e)}return E()})},Cn.isStack=Dn;var $r="@@__IMMUTABLE_STACK__@@",Hr=Cn.prototype;Hr[$r]=!0,Hr.withMutations=jr.withMutations,Hr.asMutable=jr.asMutable,Hr.asImmutable=jr.asImmutable,Hr.wasAltered=jr.wasAltered;var Fr;t(Rn,B),Rn.of=function(){return this(arguments)},Rn.fromKeys=function(t){return this(p(t).keySeq())},Rn.prototype.toString=function(){return this.__toString("Set {","}")},Rn.prototype.has=function(t){return this._map.has(t)},Rn.prototype.add=function(t){return jn(this,this._map.set(t,!0))},Rn.prototype.remove=function(t){return jn(this,this._map.remove(t))},Rn.prototype.clear=function(){return jn(this,this._map.clear())},Rn.prototype.union=function(){var t=or.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0===this.size&&1===t.length?this.constructor(t[0]):this.withMutations(function(e){for(var n=0;n<t.length;n++)v(t[n]).forEach(function(t){return e.add(t)})})},Rn.prototype.intersect=function(){var t=or.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return v(t)});var e=this;return this.withMutations(function(n){e.forEach(function(e){t.every(function(t){return t.contains(e)})||n.remove(e)})})},Rn.prototype.subtract=function(){var t=or.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return v(t)});var e=this;return this.withMutations(function(n){e.forEach(function(e){t.some(function(t){return t.contains(e)})&&n.remove(e)})})},Rn.prototype.merge=function(){return this.union.apply(this,arguments)},Rn.prototype.mergeWith=function(){var t=or.call(arguments,1);return this.union.apply(this,t)},Rn.prototype.sort=function(t){return Pn(Ie(this,t))},Rn.prototype.sortBy=function(t,e){return Pn(Ie(this,e,t))},Rn.prototype.wasAltered=function(){return this._map.wasAltered()},Rn.prototype.__iterate=function(t,e){var n=this;return this._map.__iterate(function(e,r){return t(r,r,n)},e)},Rn.prototype.__iterator=function(t,e){return this._map.map(function(t,e){return e}).__iterator(t,e)},Rn.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t);return t?this.__make(e,t):(this.__ownerID=t,this._map=e,this)},Rn.isSet=kn;var Br="@@__IMMUTABLE_SET__@@",Jr=Rn.prototype;Jr[Br]=!0,Jr[ur]=Jr.remove,Jr.mergeDeep=Jr.merge,Jr.mergeDeepWith=Jr.mergeWith,Jr.withMutations=jr.withMutations,Jr.asMutable=jr.asMutable,Jr.asImmutable=jr.asImmutable,Jr.__empty=zn,Jr.__make=Ln;var Yr;t(Pn,Rn),Pn.of=function(){return this(arguments)},Pn.fromKeys=function(t){return this(p(t).keySeq())},Pn.prototype.toString=function(){return this.__toString("OrderedSet {","}")},Pn.isOrderedSet=qn;var Xr=Pn.prototype;Xr[yr]=!0,Xr.__empty=Wn,Xr.__make=Un;var Zr;t(Vn,H),Vn.prototype.toString=function(){return this.__toString(Kn(this)+" {","}")},Vn.prototype.has=function(t){return this._defaultValues.hasOwnProperty(t)},Vn.prototype.get=function(t,e){if(!this.has(t))return e;var n=this._defaultValues[t];return this._map?this._map.get(t,n):n},Vn.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var t=Object.getPrototypeOf(this).constructor;return t._empty||(t._empty=Gn(this,Be()))},Vn.prototype.set=function(t,e){if(!this.has(t))throw new Error('Cannot set unknown key "'+t+'" on '+Kn(this));var n=this._map&&this._map.set(t,e);return this.__ownerID||n===this._map?this:Gn(this,n)},Vn.prototype.remove=function(t){if(!this.has(t))return this;var e=this._map&&this._map.remove(t);return this.__ownerID||e===this._map?this:Gn(this,e)},Vn.prototype.wasAltered=function(){return this._map.wasAltered()},Vn.prototype.__iterator=function(t,e){var n=this;return p(this._defaultValues).map(function(t,e){return n.get(e)}).__iterator(t,e)},Vn.prototype.__iterate=function(t,e){var n=this;return p(this._defaultValues).map(function(t,e){return n.get(e)}).__iterate(t,e)},Vn.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map&&this._map.__ensureOwner(t);return t?Gn(this,e,t):(this.__ownerID=t,this._map=e,this)};var Qr=Vn.prototype;Qr[ur]=Qr.remove,Qr.deleteIn=Qr.removeIn=jr.removeIn,Qr.merge=jr.merge,Qr.mergeWith=jr.mergeWith,Qr.mergeIn=jr.mergeIn,Qr.mergeDeep=jr.mergeDeep,Qr.mergeDeepWith=jr.mergeDeepWith,Qr.mergeDeepIn=jr.mergeDeepIn,Qr.setIn=jr.setIn,Qr.update=jr.update,Qr.updateIn=jr.updateIn,Qr.withMutations=jr.withMutations,Qr.asMutable=jr.asMutable,Qr.asImmutable=jr.asImmutable,t(Hn,x),Hn.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(this._step>1?" by "+this._step:"")+" ]"},Hn.prototype.get=function(t,e){return this.has(t)?this._start+u(this,t)*this._step:e},Hn.prototype.contains=function(t){var e=(t-this._start)/this._step;return e>=0&&e<this.size&&e===Math.floor(e)},Hn.prototype.slice=function(t,e){return s(t,e,this.size)?this:(t=c(t,this.size),e=f(e,this.size),t>=e?new Hn(0,0):new Hn(this.get(t,this._end),this.get(e,this._end),this._step))},Hn.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step===0){var n=e/this._step;if(n>=0&&n<this.size)return n}return-1},Hn.prototype.lastIndexOf=function(t){return this.indexOf(t)},Hn.prototype.__iterate=function(t,e){for(var n=this.size-1,r=this._step,i=e?this._start+n*r:this._start,o=0;n>=o;o++){if(t(i,o,this)===!1)return o+1;i+=e?-r:r}return o},Hn.prototype.__iterator=function(t,e){var n=this.size-1,r=this._step,i=e?this._start+n*r:this._start,o=0;return new T(function(){var u=i;return i+=e?-r:r,o>n?E():b(t,o++,u)})},Hn.prototype.equals=function(t){return t instanceof Hn?this._start===t._start&&this._end===t._end&&this._step===t._step:$n(this,t)};var ti;t(Fn,x),Fn.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Fn.prototype.get=function(t,e){return this.has(t)?this._value:e},Fn.prototype.contains=function(t){return J(this._value,t)},Fn.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:new Fn(this._value,f(e,n)-c(t,n))},Fn.prototype.reverse=function(){return this},Fn.prototype.indexOf=function(t){return J(this._value,t)?0:-1},Fn.prototype.lastIndexOf=function(t){return J(this._value,t)?this.size:-1},Fn.prototype.__iterate=function(t){for(var e=0;e<this.size;e++)if(t(this._value,e,this)===!1)return e+1;return e},Fn.prototype.__iterator=function(t){var e=this,n=0;return new T(function(){return n<e.size?b(t,n++,e._value):E()})},Fn.prototype.equals=function(t){return t instanceof Fn?J(this._value,t._value):$n(t)};var ei;h.Iterator=T,Bn(h,{toArray:function(){ae(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate(function(e,n){t[n]=e}),t},toIndexedSeq:function(){return new ce(this)},toJS:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJS?t.toJS():t}).__toJS()},toJSON:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJSON?t.toJSON():t}).__toJS()},toKeyedSeq:function(){return new se(this,!0)},toMap:function(){return ze(this.toKeyedSeq())},toObject:function(){ae(this.size);var t={};return this.__iterate(function(e,n){t[n]=e}),t},toOrderedMap:function(){return On(this.toKeyedSeq())},toOrderedSet:function(){return Pn(d(this)?this.valueSeq():this)},toSet:function(){return Rn(d(this)?this.valueSeq():this)},toSetSeq:function(){return new fe(this)},toSeq:function(){return g(this)?this.toIndexedSeq():d(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Cn(d(this)?this.valueSeq():this)},toList:function(){return ln(d(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){var t=or.call(arguments,0);return Ce(this,Te(this,t))},contains:function(t){return this.some(function(e){return J(e,t)})},entries:function(){return this.__iterator(mr)},every:function(t,e){ae(this.size);var n=!0;return this.__iterate(function(r,i,o){return t.call(e,r,i,o)?void 0:(n=!1,!1)}),n},filter:function(t,e){return Ce(this,ve(this,t,e,!0))},find:function(t,e,n){var r=this.findEntry(t,e);return r?r[1]:n},findEntry:function(t,e){var n;return this.__iterate(function(r,i,o){return t.call(e,r,i,o)?(n=[i,r],!1):void 0}),n},findLastEntry:function(t,e){return this.toSeq().reverse().findEntry(t,e)},forEach:function(t,e){return ae(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){ae(this.size),t=void 0!==t?""+t:",";var e="",n=!0;return this.__iterate(function(r){n?n=!1:e+=t,e+=null!==r&&void 0!==r?r.toString():""}),e},keys:function(){return this.__iterator(dr)},map:function(t,e){return Ce(this,pe(this,t,e))},reduce:function(t,e,n){ae(this.size);var r,i;return arguments.length<2?i=!0:r=e,this.__iterate(function(e,o,u){i?(i=!1,r=e):r=t.call(n,r,e,o,u)}),r},reduceRight:function(){var t=this.toKeyedSeq().reverse();return t.reduce.apply(t,arguments)},reverse:function(){return Ce(this,_e(this,!0))},slice:function(t,e){return Ce(this,ge(this,t,e,!0))},some:function(t,e){return!this.every(Xn(t),e)},sort:function(t){return Ce(this,Ie(this,t))},values:function(){return this.__iterator(gr)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(t,e){return o(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return ye(this,t,e)},equals:function(t){return $n(this,t)},entrySeq:function(){var t=this;if(t._cache)return new R(t._cache);var e=t.toSeq().map(Yn).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(Xn(t),e)},findLast:function(t,e,n){return this.toKeyedSeq().reverse().find(t,e,n)},first:function(){return this.find(a)},flatMap:function(t,e){return Ce(this,Ee(this,t,e))},flatten:function(t){return Ce(this,be(this,t,!0))},fromEntrySeq:function(){return new le(this)},get:function(t,e){return this.find(function(e,n){return J(n,t)},void 0,e)},getIn:function(t,e){for(var n,r=this,i=Le(t);!(n=i.next()).done;){var o=n.value;if(r=r&&r.get?r.get(o,fr):fr,r===fr)return e}return r},groupBy:function(t,e){return de(this,t,e)},has:function(t){return this.get(t,fr)!==fr},hasIn:function(t){return this.getIn(t,fr)!==fr},isSubset:function(t){return t="function"==typeof t.contains?t:h(t),this.every(function(e){return t.contains(e)})},isSuperset:function(t){return t.isSubset(this)},keySeq:function(){return this.toSeq().map(Jn).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},max:function(t){return Se(this,t)},maxBy:function(t,e){return Se(this,e,t)},min:function(t){return Se(this,t?Zn(t):er)},minBy:function(t,e){return Se(this,e?Zn(e):er,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return Ce(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return Ce(this,we(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(Xn(t),e)},sortBy:function(t,e){return Ce(this,Ie(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return Ce(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return Ce(this,me(this,t,e))},takeUntil:function(t,e){return this.takeWhile(Xn(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=nr(this))}});var ni=h.prototype;ni[pr]=!0,ni[br]=ni.values,ni.__toJS=ni.toArray,ni.__toStringMapper=Qn,ni.inspect=ni.toSource=function(){return this.toString()},ni.chain=ni.flatMap,function(){try{Object.defineProperty(ni,"length",{get:function(){if(!h.noLengthWarning){var t;try{throw new Error}catch(e){t=e.stack}if(-1===t.indexOf("_wrapObject"))return console&&console.warn&&console.warn("iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. "+t),this.size}}})}catch(t){}}(),Bn(p,{flip:function(){return Ce(this,he(this))},findKey:function(t,e){var n=this.findEntry(t,e);return n&&n[0]},findLastKey:function(t,e){return this.toSeq().reverse().findKey(t,e)},keyOf:function(t){return this.findKey(function(e){return J(e,t)})},lastKeyOf:function(t){return this.findLastKey(function(e){return J(e,t)})},mapEntries:function(t,e){var n=this,r=0;return Ce(this,this.toSeq().map(function(i,o){return t.call(e,[o,i],r++,n)}).fromEntrySeq())},mapKeys:function(t,e){var n=this;return Ce(this,this.toSeq().flip().map(function(r,i){return t.call(e,r,i,n)}).flip())}});var ri=p.prototype;ri[_r]=!0,ri[br]=ni.entries,ri.__toJS=ni.toObject,ri.__toStringMapper=function(t,e){return e+": "+Qn(t)},Bn(_,{toKeyedSeq:function(){return new se(this,!1)},filter:function(t,e){return Ce(this,ve(this,t,e,!1))},findIndex:function(t,e){var n=this.findEntry(t,e);return n?n[0]:-1},indexOf:function(t){var e=this.toKeyedSeq().keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){return this.toSeq().reverse().indexOf(t)},reverse:function(){return Ce(this,_e(this,!1))},slice:function(t,e){return Ce(this,ge(this,t,e,!1))},splice:function(t,e){var n=arguments.length;if(e=Math.max(0|e,0),0===n||2===n&&!e)return this;t=c(t,this.size);var r=this.slice(0,t);return Ce(this,1===n?r:r.concat(i(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.toKeyedSeq().findLastKey(t,e);return void 0===n?-1:n},first:function(){return this.get(0)},flatten:function(t){return Ce(this,be(this,t,!1))},get:function(t,e){return t=u(this,t),0>t||1/0===this.size||void 0!==this.size&&t>this.size?e:this.find(function(e,n){return n===t},void 0,e)},has:function(t){return t=u(this,t),t>=0&&(void 0!==this.size?1/0===this.size||t<this.size:-1!==this.indexOf(t))},interpose:function(t){return Ce(this,Oe(this,t))},interleave:function(){var t=[this].concat(i(arguments)),e=Ne(this.toSeq(),x.of,t),n=e.flatten(!0);return e.size&&(n.size=e.size*t.length),Ce(this,n)},last:function(){return this.get(-1)},skipWhile:function(t,e){return Ce(this,we(this,t,e,!1))},zip:function(){var t=[this].concat(i(arguments));return Ce(this,Ne(this,tr,t))},zipWith:function(t){var e=i(arguments);return e[0]=this,Ce(this,Ne(this,t,e))}}),_.prototype[vr]=!0,_.prototype[yr]=!0,Bn(v,{get:function(t,e){return this.has(t)?t:e},contains:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}}),v.prototype.has=ni.contains,Bn(D,p.prototype),Bn(x,_.prototype),Bn(M,v.prototype),Bn(H,p.prototype),Bn(F,_.prototype),Bn(B,v.prototype);var ii={Iterable:h,Seq:C,Collection:$,Map:ze,OrderedMap:On,List:ln,Stack:Cn,Set:Rn,OrderedSet:Pn,Record:Vn,Range:Hn,Repeat:Fn,is:J,fromJS:Y};return ii})},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=r(n(7)),o=function(t,e){var n=void 0===arguments[2]?null:arguments[2],r=void 0===arguments[3]?{}:arguments[3],o=r.authToken||i.authToken,u="/api/"+e;return new Promise(function(e,r){var i=new XMLHttpRequest;i.open(t,u,!0),i.setRequestHeader("X-HA-access",o),i.onload=function(){if(i.status>199&&i.status<300)e(JSON.parse(i.responseText));else try{r(JSON.parse(i.responseText))}catch(t){r({})}},i.onerror=function(){return r({})},n?i.send(JSON.stringify(n)):i.send()})};t.exports=o},function(t,e,n){var r;(function(t,i){(function(){function o(t,e){if(t!==e){var n=t===t,r=e===e;if(t>e||!n||"undefined"==typeof t&&r)return 1;if(e>t||!r||"undefined"==typeof e&&n)return-1}return 0}function u(t,e,n){if(e!==e)return d(t,n);for(var r=(n||0)-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}function a(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}function s(t){return"string"==typeof t?t:null==t?"":t+""}function c(t){return t.charCodeAt(0)}function f(t,e){for(var n=-1,r=t.length;++n<r&&e.indexOf(t.charAt(n))>-1;);return n}function l(t,e){for(var n=t.length;n--&&e.indexOf(t.charAt(n))>-1;);return n}function h(t,e){return o(t.criteria,e.criteria)||t.index-e.index}function p(t,e){for(var n=-1,r=t.criteria,i=e.criteria,u=r.length;++n<u;){var a=o(r[n],i[n]);if(a)return a}return t.index-e.index}function _(t){return Ge[t]}function v(t){return Ke[t]}function y(t){return"\\"+Fe[t]}function d(t,e,n){for(var r=t.length,i=n?e||r:(e||0)-1;n?i--:++i<r;){var o=t[i];if(o!==o)return i}return-1}function g(t){return t&&"object"==typeof t||!1}function m(t){return 160>=t&&t>=9&&13>=t||32==t||160==t||5760==t||6158==t||t>=8192&&(8202>=t||8232==t||8233==t||8239==t||8287==t||12288==t||65279==t)}function w(t,e){for(var n=-1,r=t.length,i=-1,o=[];++n<r;)t[n]===e&&(t[n]=$,o[++i]=n);return o}function T(t,e){for(var n,r=-1,i=t.length,o=-1,u=[];++r<i;){var a=t[r],s=e?e(a,r,t):a;r&&n===s||(n=s,u[++o]=a)}return u}function b(t){for(var e=-1,n=t.length;++e<n&&m(t.charCodeAt(e)););return e}function E(t){for(var e=t.length;e--&&m(t.charCodeAt(e)););return e}function O(t){return $e[t]}function I(t){function e(t){if(g(t)&&!Va(t)){if(t instanceof n)return t;if(Hu.call(t,"__wrapped__"))return new n(t.__wrapped__,t.__chain__,Ye(t.__actions__))}return new n(t)}function n(t,e,n){this.__actions__=n||[],this.__chain__=!!e,this.__wrapped__=t}function r(t){this.actions=null,this.dir=1,this.dropCount=0,this.filtered=!1,this.iteratees=null,this.takeCount=ba,this.views=null,this.wrapped=t}function i(){var t=this.actions,e=this.iteratees,n=this.views,i=new r(this.wrapped);return i.actions=t?Ye(t):null,i.dir=this.dir,i.dropCount=this.dropCount,i.filtered=this.filtered,i.iteratees=e?Ye(e):null,i.takeCount=this.takeCount,i.views=n?Ye(n):null,i}function m(){if(this.filtered){var t=new r(this);t.dir=-1,t.filtered=!0}else t=this.clone(),t.dir*=-1;return t}function Z(){var t=this.wrapped.value();if(!Va(t))return Fn(t,this.actions);var e=this.dir,n=0>e,r=yr(0,t.length,this.views),i=r.start,o=r.end,u=o-i,a=this.dropCount,s=ya(u,this.takeCount-a),c=n?o:i-1,f=this.iteratees,l=f?f.length:0,h=0,p=[];t:for(;u--&&s>h;){c+=e;for(var _=-1,v=t[c];++_<l;){var y=f[_],d=y.iteratee,g=d(v,c,t),m=y.type;if(m==V)v=g;else if(!g){if(m==W)continue t;break t}}a?a--:p[h++]=v}return p}function ne(){this.__data__={}}function ie(t){return this.has(t)&&delete this.__data__[t]}function Ge(t){return"__proto__"==t?S:this.__data__[t]}function Ke(t){return"__proto__"!=t&&Hu.call(this.__data__,t)}function $e(t,e){return"__proto__"!=t&&(this.__data__[t]=e),this}function He(t){var e=t?t.length:0;for(this.data={hash:ha(null),set:new oa};e--;)this.push(t[e])}function Fe(t,e){var n=t.data,r="string"==typeof e||To(e)?n.set.has(e):n.hash[e];return r?0:-1}function Je(t){var e=this.data;"string"==typeof t||To(t)?e.set.add(t):e.hash[t]=!0}function Ye(t,e){var n=-1,r=t.length;for(e||(e=xu(r));++n<r;)e[n]=t[n];return e}function Xe(t,e){for(var n=-1,r=t.length;++n<r&&e(t[n],n,t)!==!1;);return t}function Qe(t,e){for(var n=t.length;n--&&e(t[n],n,t)!==!1;);return t}function tn(t,e){for(var n=-1,r=t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function en(t,e){for(var n=-1,r=t.length,i=-1,o=[];++n<r;){var u=t[n];e(u,n,t)&&(o[++i]=u)}return o}function nn(t,e){for(var n=-1,r=t.length,i=xu(r);++n<r;)i[n]=e(t[n],n,t);return i}function rn(t){for(var e=-1,n=t.length,r=Ta;++e<n;){var i=t[e];i>r&&(r=i)}return r}function on(t){for(var e=-1,n=t.length,r=ba;++e<n;){var i=t[e];r>i&&(r=i)}return r}function un(t,e,n,r){var i=-1,o=t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function an(t,e,n,r){var i=t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function sn(t,e){for(var n=-1,r=t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function cn(t,e){return"undefined"==typeof t?e:t}function fn(t,e,n,r){return"undefined"!=typeof t&&Hu.call(r,n)?t:e}function ln(t,e,n){var r=Ha(e);if(!n)return pn(e,t,r);for(var i=-1,o=r.length;++i<o;){var u=r[i],a=t[u],s=n(a,e[u],u,t,e);(s===s?s===a:a!==a)&&("undefined"!=typeof a||u in t)||(t[u]=s)}return t}function hn(t,e){for(var n=-1,r=t.length,i=Er(r),o=e.length,u=xu(o);++n<o;){var a=e[n];i?(a=parseFloat(a),u[n]=Tr(a,r)?t[a]:S):u[n]=t[a]}return u}function pn(t,e,n){n||(n=e,e={});for(var r=-1,i=n.length;++r<i;){var o=n[r]; +e[o]=t[o]}return e}function _n(t,e){for(var n=-1,r=e.length;++n<r;){var i=e[n];t[i]=cr(t[i],N,t)}return t}function vn(t,e,n){var r=typeof t;return"function"==r?"undefined"!=typeof e&&wr(t)?Yn(t,e,n):t:null==t?Tu:"object"==r?Ln(t):qn(t+"")}function yn(t,e,n,r,i,o,u){var a;if(n&&(a=i?n(t,r,i):n(t)),"undefined"!=typeof a)return a;if(!To(t))return t;var s=Va(t);if(s){if(a=dr(t),!e)return Ye(t,a)}else{var c=Bu.call(t),f=c==X;if(c!=te&&c!=H&&(!f||i))return We[c]?mr(t,c,e):i?t:{};if(a=gr(f?{}:t),!e)return pn(t,a,Ha(t))}o||(o=[]),u||(u=[]);for(var l=o.length;l--;)if(o[l]==t)return u[l];return o.push(t),u.push(a),(s?Xe:Nn)(t,function(r,i){a[i]=yn(r,e,n,i,t,o,u)}),a}function dn(t,e,n,r){if(!wo(t))throw new Uu(K);return ua(function(){t.apply(S,Gn(n,r))},e)}function gn(t,e){var n=t?t.length:0,r=[];if(!n)return r;var i=-1,o=vr(),a=o==u,s=a&&e.length>=200&&Ma(e),c=e.length;s&&(o=Fe,a=!1,e=s);t:for(;++i<n;){var f=t[i];if(a&&f===f){for(var l=c;l--;)if(e[l]===f)continue t;r.push(f)}else o(e,f)<0&&r.push(f)}return r}function mn(t,e){var n=t?t.length:0;if(!Er(n))return Nn(t,e);for(var r=-1,i=Mr(t);++r<n&&e(i[r],r,i)!==!1;);return t}function wn(t,e){var n=t?t.length:0;if(!Er(n))return Cn(t,e);for(var r=Mr(t);n--&&e(r[n],n,r)!==!1;);return t}function Tn(t,e){var n=!0;return mn(t,function(t,r,i){return n=!!e(t,r,i)}),n}function bn(t,e){var n=[];return mn(t,function(t,r,i){e(t,r,i)&&n.push(t)}),n}function En(t,e,n,r){var i;return n(t,function(t,n,o){return e(t,n,o)?(i=r?n:t,!1):void 0}),i}function On(t,e,n,r){for(var i=(r||0)-1,o=t.length,u=-1,a=[];++i<o;){var s=t[i];if(g(s)&&Er(s.length)&&(Va(s)||ho(s))){e&&(s=On(s,e,n));var c=-1,f=s.length;for(a.length+=f;++c<f;)a[++u]=s[c]}else n||(a[++u]=s)}return a}function In(t,e,n){for(var r=-1,i=Mr(t),o=n(t),u=o.length;++r<u;){var a=o[r];if(e(i[a],a,i)===!1)break}return t}function Sn(t,e,n){for(var r=Mr(t),i=n(t),o=i.length;o--;){var u=i[o];if(e(r[u],u,r)===!1)break}return t}function An(t,e){return In(t,e,Ko)}function Nn(t,e){return In(t,e,Ha)}function Cn(t,e){return Sn(t,e,Ha)}function Dn(t,e){for(var n=-1,r=e.length,i=-1,o=[];++n<r;){var u=e[n];wo(t[u])&&(o[++i]=u)}return o}function xn(t,e,n){var r=-1,i="function"==typeof e,o=t?t.length:0,u=Er(o)?xu(o):[];return mn(t,function(t){var o=i?e:null!=t&&t[e];u[++r]=o?o.apply(t,n):S}),u}function Mn(t,e,n,r,i,o){if(t===e)return 0!==t||1/t==1/e;var u=typeof t,a=typeof e;return"function"!=u&&"object"!=u&&"function"!=a&&"object"!=a||null==t||null==e?t!==t&&e!==e:Rn(t,e,Mn,n,r,i,o)}function Rn(t,e,n,r,i,o,u){var a=Va(t),s=Va(e),c=F,f=F;a||(c=Bu.call(t),c==H?c=te:c!=te&&(a=Co(t))),s||(f=Bu.call(e),f==H?f=te:f!=te&&(s=Co(e)));var l=c==te,h=f==te,p=c==f;if(p&&!a&&!l)return lr(t,e,c);var _=l&&Hu.call(t,"__wrapped__"),v=h&&Hu.call(e,"__wrapped__");if(_||v)return n(_?t.value():t,v?e.value():e,r,i,o,u);if(!p)return!1;o||(o=[]),u||(u=[]);for(var y=o.length;y--;)if(o[y]==t)return u[y]==e;o.push(t),u.push(e);var d=(a?fr:hr)(t,e,n,r,i,o,u);return o.pop(),u.pop(),d}function kn(t,e,n,r,i){var o=e.length;if(null==t)return!o;for(var u=-1,a=!i;++u<o;)if(a&&r[u]?n[u]!==t[e[u]]:!Hu.call(t,e[u]))return!1;for(u=-1;++u<o;){var s=e[u];if(a&&r[u])var c=Hu.call(t,s);else{var f=t[s],l=n[u];c=i?i(f,l,s):S,"undefined"==typeof c&&(c=Mn(l,f,i,!0))}if(!c)return!1}return!0}function jn(t,e){var n=[];return mn(t,function(t,r,i){n.push(e(t,r,i))}),n}function Ln(t){var e=Ha(t),n=e.length;if(1==n){var r=e[0],i=t[r];if(Or(i))return function(t){return null!=t&&i===t[r]&&Hu.call(t,r)}}for(var o=xu(n),u=xu(n);n--;)i=t[e[n]],o[n]=i,u[n]=Or(i);return function(t){return kn(t,e,o,u)}}function zn(t,e,n,r,i){var o=Er(e.length)&&(Va(e)||Co(e));return(o?Xe:Nn)(e,function(e,u,a){if(g(e))return r||(r=[]),i||(i=[]),Pn(t,a,u,zn,n,r,i);var s=t[u],c=n?n(s,e,u,t,a):S,f="undefined"==typeof c;f&&(c=e),!o&&"undefined"==typeof c||!f&&(c===c?c===s:s!==s)||(t[u]=c)}),t}function Pn(t,e,n,r,i,o,u){for(var a=o.length,s=e[n];a--;)if(o[a]==s)return void(t[n]=u[a]);var c=t[n],f=i?i(c,s,n,t,e):S,l="undefined"==typeof f;l&&(f=s,Er(s.length)&&(Va(s)||Co(s))?f=Va(c)?c:c?Ye(c):[]:Ka(s)||ho(s)?f=ho(c)?Mo(c):Ka(c)?c:{}:l=!1),o.push(s),u.push(f),l?t[n]=r(f,s,i,o,u):(f===f?f!==c:c===c)&&(t[n]=f)}function qn(t){return function(e){return null==e?S:e[t]}}function Un(t,e){var n=e.length,r=hn(t,e);for(e.sort(o);n--;){var i=parseFloat(e[n]);if(i!=u&&Tr(i)){var u=i;aa.call(t,i,1)}}return r}function Wn(t,e){return t+ea(wa()*(e-t+1))}function Vn(t,e,n,r,i){return i(t,function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)}),n}function Gn(t,e,n){var r=-1,i=t.length;e=null==e?0:+e||0,0>e&&(e=-e>i?0:i+e),n="undefined"==typeof n||n>i?i:+n||0,0>n&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=xu(i);++r<i;)o[r]=t[r+e];return o}function Kn(t,e){var n;return mn(t,function(t,r,i){return n=e(t,r,i),!n}),!!n}function $n(t,e){var n=-1,r=vr(),i=t.length,o=r==u,a=o&&i>=200,s=a&&Ma(),c=[];s?(r=Fe,o=!1):(a=!1,s=e?[]:c);t:for(;++n<i;){var f=t[n],l=e?e(f,n,t):f;if(o&&f===f){for(var h=s.length;h--;)if(s[h]===l)continue t;e&&s.push(l),c.push(f)}else r(s,l)<0&&((e||a)&&s.push(l),c.push(f))}return c}function Hn(t,e){for(var n=-1,r=e.length,i=xu(r);++n<r;)i[n]=t[e[n]];return i}function Fn(t,e){var n=t;n instanceof r&&(n=n.value());for(var i=-1,o=e.length;++i<o;){var u=[n],a=e[i];ra.apply(u,a.args),n=a.func.apply(a.thisArg,u)}return n}function Bn(t,e,n){var r=0,i=t?t.length:r;if("number"==typeof e&&e===e&&Ia>=i){for(;i>r;){var o=r+i>>>1,u=t[o];(n?e>=u:e>u)?r=o+1:i=o}return i}return Jn(t,e,Tu,n)}function Jn(t,e,n,r){e=n(e);for(var i=0,o=t?t.length:0,u=e!==e,a="undefined"==typeof e;o>i;){var s=ea((i+o)/2),c=n(t[s]),f=c===c;if(u)var l=f||r;else l=a?f&&(r||"undefined"!=typeof c):r?e>=c:e>c;l?i=s+1:o=s}return ya(o,Oa)}function Yn(t,e,n){if("function"!=typeof t)return Tu;if("undefined"==typeof e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 3:return function(n,r,i){return t.call(e,n,r,i)};case 4:return function(n,r,i,o){return t.call(e,n,r,i,o)};case 5:return function(n,r,i,o,u){return t.call(e,n,r,i,o,u)}}return function(){return t.apply(e,arguments)}}function Xn(t){return Zu.call(t,0)}function Zn(t,e,n){for(var r=n.length,i=-1,o=va(t.length-r,0),u=-1,a=e.length,s=xu(o+a);++u<a;)s[u]=e[u];for(;++i<r;)s[n[i]]=t[i];for(;o--;)s[u++]=t[i++];return s}function Qn(t,e,n){for(var r=-1,i=n.length,o=-1,u=va(t.length-i,0),a=-1,s=e.length,c=xu(u+s);++o<u;)c[o]=t[o];for(var f=o;++a<s;)c[f+a]=e[a];for(;++r<i;)c[f+n[r]]=t[o++];return c}function tr(t,e){return function(n,r,i){var o=e?e():{};if(r=_r(r,i,3),Va(n))for(var u=-1,a=n.length;++u<a;){var s=n[u];t(o,s,r(s,u,n),n)}else mn(n,function(e,n,i){t(o,e,r(e,n,i),i)});return o}}function er(t){return function(){var e=arguments.length,n=arguments[0];if(2>e||null==n)return n;if(e>3&&br(arguments[1],arguments[2],arguments[3])&&(e=2),e>3&&"function"==typeof arguments[e-2])var r=Yn(arguments[--e-1],arguments[e--],5);else e>2&&"function"==typeof arguments[e-1]&&(r=arguments[--e]);for(var i=0;++i<e;){var o=arguments[i];o&&t(n,o,r)}return n}}function nr(t,e){function n(){return(this instanceof n?r:t).apply(e,arguments)}var r=ir(t);return n}function rr(t){return function(e){for(var n=-1,r=du(eu(e)),i=r.length,o="";++n<i;)o=t(o,r[n],n);return o}}function ir(t){return function(){var e=Da(t.prototype),n=t.apply(e,arguments);return To(n)?n:e}}function or(t,e){return function(n,r,i){i&&br(n,r,i)&&(r=null);var o=_r(),u=null==r;if(o===vn&&u||(u=!1,r=o(r,i,3)),u){var a=Va(n);if(a||!No(n))return t(a?n:xr(n));r=c}return pr(n,r,e)}}function ur(t,e,n,r,i,o,u,a,s,c){function f(){for(var m=arguments.length,T=m,b=xu(m);T--;)b[T]=arguments[T];if(r&&(b=Zn(b,r,i)),o&&(b=Qn(b,o,u)),_||y){var E=f.placeholder,O=w(b,E);if(m-=O.length,c>m){var I=a?Ye(a):null,S=va(c-m,0),A=_?O:null,D=_?null:O,x=_?b:null,M=_?null:b;e|=_?R:k,e&=~(_?k:R),v||(e&=~(N|C));var j=ur(t,e,n,x,A,M,D,I,s,S);return j.placeholder=E,j}}var L=h?n:this;return p&&(t=L[g]),a&&(b=Nr(b,a)),l&&s<b.length&&(b.length=s),(this instanceof f?d||ir(t):t).apply(L,b)}var l=e&L,h=e&N,p=e&C,_=e&x,v=e&D,y=e&M,d=!p&&ir(t),g=t;return f}function ar(t,e,n){var r=t.length;if(e=+e,r>=e||!pa(e))return"";var i=e-r;return n=null==n?" ":n+"",cu(n,Qu(i/n.length)).slice(0,i)}function sr(t,e,n,r){function i(){for(var e=-1,a=arguments.length,s=-1,c=r.length,f=xu(a+c);++s<c;)f[s]=r[s];for(;a--;)f[s++]=arguments[++e];return(this instanceof i?u:t).apply(o?n:this,f)}var o=e&N,u=ir(t);return i}function cr(t,e,n,r,i,o,u,a){var s=e&C;if(!s&&!wo(t))throw new Uu(K);var c=r?r.length:0;if(c||(e&=~(R|k),r=i=null),c-=i?i.length:0,e&k){var f=r,l=i;r=i=null}var h=!s&&Ra(t),p=[t,e,n,r,i,f,l,o,u,a];if(h&&h!==!0&&(Ir(p,h),e=p[1],a=p[9]),p[9]=null==a?s?0:t.length:va(a-c,0)||0,e==N)var _=nr(p[0],p[2]);else _=e!=R&&e!=(N|R)||p[4].length?ur.apply(null,p):sr.apply(null,p);var v=h?xa:ka;return v(_,p)}function fr(t,e,n,r,i,o,u){var a=-1,s=t.length,c=e.length,f=!0;if(s!=c&&!(i&&c>s))return!1;for(;f&&++a<s;){var l=t[a],h=e[a];if(f=S,r&&(f=i?r(h,l,a):r(l,h,a)),"undefined"==typeof f)if(i)for(var p=c;p--&&(h=e[p],!(f=l&&l===h||n(l,h,r,i,o,u))););else f=l&&l===h||n(l,h,r,i,o,u)}return!!f}function lr(t,e,n){switch(n){case B:case J:return+t==+e;case Y:return t.name==e.name&&t.message==e.message;case Q:return t!=+t?e!=+e:0==t?1/t==1/e:t==+e;case ee:case re:return t==e+""}return!1}function hr(t,e,n,r,i,o,u){var a=Ha(t),s=a.length,c=Ha(e),f=c.length;if(s!=f&&!i)return!1;for(var l,h=-1;++h<s;){var p=a[h],_=Hu.call(e,p);if(_){var v=t[p],y=e[p];_=S,r&&(_=i?r(y,v,p):r(v,y,p)),"undefined"==typeof _&&(_=v&&v===y||n(v,y,r,i,o,u))}if(!_)return!1;l||(l="constructor"==p)}if(!l){var d=t.constructor,g=e.constructor;if(d!=g&&"constructor"in t&&"constructor"in e&&!("function"==typeof d&&d instanceof d&&"function"==typeof g&&g instanceof g))return!1}return!0}function pr(t,e,n){var r=n?ba:Ta,i=r,o=i;return mn(t,function(t,u,a){var s=e(t,u,a);((n?i>s:s>i)||s===r&&s===o)&&(i=s,o=t)}),o}function _r(t,n,r){var i=e.callback||mu;return i=i===mu?vn:i,r?i(t,n,r):i}function vr(t,n,r){var i=e.indexOf||$r;return i=i===$r?u:i,t?i(t,n,r):i}function yr(t,e,n){for(var r=-1,i=n?n.length:0;++r<i;){var o=n[r],u=o.size;switch(o.type){case"drop":t+=u;break;case"dropRight":e-=u;break;case"take":e=ya(e,t+u);break;case"takeRight":t=va(t,e-u)}}return{start:t,end:e}}function dr(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Hu.call(t,"index")&&(n.index=t.index,n.input=t.input),n}function gr(t){var e=t.constructor;return"function"==typeof e&&e instanceof e||(e=zu),new e}function mr(t,e,n){var r=t.constructor;switch(e){case oe:return Xn(t);case B:case J:return new r(+t);case ue:case ae:case se:case ce:case fe:case le:case he:case pe:case _e:var i=t.buffer;return new r(n?Xn(i):i,t.byteOffset,t.length);case Q:case re:return new r(t);case ee:var o=new r(t.source,Se.exec(t));o.lastIndex=t.lastIndex}return o}function wr(t){var n=e.support,r=!(n.funcNames?t.name:n.funcDecomp);if(!r){var i=Ku.call(t);n.funcNames||(r=!Ae.test(i)),r||(r=ke.test(i)||Oo(t),xa(t,r))}return r}function Tr(t,e){return t=+t,e=null==e?Aa:e,t>-1&&t%1==0&&e>t}function br(t,e,n){if(!To(n))return!1;var r=typeof e;if("number"==r)var i=n.length,o=Er(i)&&Tr(e,i);else o="string"==r&&e in n;return o&&n[e]===t}function Er(t){return"number"==typeof t&&t>-1&&t%1==0&&Aa>=t}function Or(t){return t===t&&(0===t?1/t>0:!To(t))}function Ir(t,e){var n=t[1],r=e[1],i=n|r,o=L|j,u=N|C,a=o|u|D|M,s=n&L&&!(r&L),c=n&j&&!(r&j),f=(c?t:e)[7],l=(s?t:e)[8],h=!(n>=j&&r>u||n>u&&r>=j),p=i>=o&&a>=i&&(j>n||(c||s)&&f.length<=l);if(!h&&!p)return t;r&N&&(t[2]=e[2],i|=n&N?0:D);var _=e[3];if(_){var v=t[3];t[3]=v?Zn(v,_,e[4]):Ye(_),t[4]=v?w(t[3],$):Ye(e[4])}return _=e[5],_&&(v=t[5],t[5]=v?Qn(v,_,e[6]):Ye(_),t[6]=v?w(t[5],$):Ye(e[6])),_=e[7],_&&(t[7]=Ye(_)),r&L&&(t[8]=null==t[8]?e[8]:ya(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i,t}function Sr(t,e){t=Mr(t);for(var n=-1,r=e.length,i={};++n<r;){var o=e[n];o in t&&(i[o]=t[o])}return i}function Ar(t,e){var n={};return An(t,function(t,r,i){e(t,r,i)&&(n[r]=t)}),n}function Nr(t,e){for(var n=t.length,r=ya(e.length,n),i=Ye(t);r--;){var o=e[r];t[r]=Tr(o,n)?i[o]:S}return t}function Cr(t){{var n;e.support}if(!g(t)||Bu.call(t)!=te||!Hu.call(t,"constructor")&&(n=t.constructor,"function"==typeof n&&!(n instanceof n)))return!1;var r;return An(t,function(t,e){r=e}),"undefined"==typeof r||Hu.call(t,r)}function Dr(t){for(var n=Ko(t),r=n.length,i=r&&t.length,o=e.support,u=i&&Er(i)&&(Va(t)||o.nonEnumArgs&&ho(t)),a=-1,s=[];++a<r;){var c=n[a];(u&&Tr(c,i)||Hu.call(t,c))&&s.push(c)}return s}function xr(t){return null==t?[]:Er(t.length)?To(t)?t:zu(t):Xo(t)}function Mr(t){return To(t)?t:zu(t)}function Rr(t,e,n){e=(n?br(t,e,n):null==e)?1:va(+e||1,1);for(var r=0,i=t?t.length:0,o=-1,u=xu(Qu(i/e));i>r;)u[++o]=Gn(t,r,r+=e);return u}function kr(t){for(var e=-1,n=t?t.length:0,r=-1,i=[];++e<n;){var o=t[e];o&&(i[++r]=o)}return i}function jr(){for(var t=-1,e=arguments.length;++t<e;){var n=arguments[t];if(Va(n)||ho(n))break}return gn(n,On(arguments,!1,!0,++t))}function Lr(t,e,n){var r=t?t.length:0;return r?((n?br(t,e,n):null==e)&&(e=1),Gn(t,0>e?0:e)):[]}function zr(t,e,n){var r=t?t.length:0;return r?((n?br(t,e,n):null==e)&&(e=1),e=r-(+e||0),Gn(t,0,0>e?0:e)):[]}function Pr(t,e,n){var r=t?t.length:0;if(!r)return[];for(e=_r(e,n,3);r--&&e(t[r],r,t););return Gn(t,0,r+1)}function qr(t,e,n){var r=t?t.length:0;if(!r)return[];var i=-1;for(e=_r(e,n,3);++i<r&&e(t[i],i,t););return Gn(t,i)}function Ur(t,e,n){var r=-1,i=t?t.length:0;for(e=_r(e,n,3);++r<i;)if(e(t[r],r,t))return r;return-1}function Wr(t,e,n){var r=t?t.length:0;for(e=_r(e,n,3);r--;)if(e(t[r],r,t))return r;return-1}function Vr(t){return t?t[0]:S}function Gr(t,e,n){var r=t?t.length:0;return n&&br(t,e,n)&&(e=!1),r?On(t,e):[]}function Kr(t){var e=t?t.length:0;return e?On(t,!0):[]}function $r(t,e,n){var r=t?t.length:0;if(!r)return-1;if("number"==typeof n)n=0>n?va(r+n,0):n||0;else if(n){var i=Bn(t,e),o=t[i];return(e===e?e===o:o!==o)?i:-1}return u(t,e,n)}function Hr(t){return zr(t,1)}function Fr(){for(var t=[],e=-1,n=arguments.length,r=[],i=vr(),o=i==u;++e<n;){var a=arguments[e];(Va(a)||ho(a))&&(t.push(a),r.push(o&&a.length>=120&&Ma(e&&a)))}n=t.length;var s=t[0],c=-1,f=s?s.length:0,l=[],h=r[0];t:for(;++c<f;)if(a=s[c],(h?Fe(h,a):i(l,a))<0){for(e=n;--e;){var p=r[e];if((p?Fe(p,a):i(t[e],a))<0)continue t}h&&h.push(a),l.push(a)}return l}function Br(t){var e=t?t.length:0;return e?t[e-1]:S}function Jr(t,e,n){var r=t?t.length:0;if(!r)return-1;var i=r;if("number"==typeof n)i=(0>n?va(r+n,0):ya(n||0,r-1))+1;else if(n){i=Bn(t,e,!0)-1;var o=t[i];return(e===e?e===o:o!==o)?i:-1}if(e!==e)return d(t,i,!0);for(;i--;)if(t[i]===e)return i;return-1}function Yr(){var t=arguments[0];if(!t||!t.length)return t;for(var e=0,n=vr(),r=arguments.length;++e<r;)for(var i=0,o=arguments[e];(i=n(t,o,i))>-1;)aa.call(t,i,1);return t}function Xr(t){return Un(t||[],On(arguments,!1,!1,1))}function Zr(t,e,n){var r=-1,i=t?t.length:0,o=[];for(e=_r(e,n,3);++r<i;){var u=t[r];e(u,r,t)&&(o.push(u),aa.call(t,r--,1),i--)}return o}function Qr(t){return Lr(t,1)}function ti(t,e,n){var r=t?t.length:0;return r?(n&&"number"!=typeof n&&br(t,e,n)&&(e=0,n=r),Gn(t,e,n)):[]}function ei(t,e,n,r){var i=_r(n);return i===vn&&null==n?Bn(t,e):Jn(t,e,i(n,r,1))}function ni(t,e,n,r){var i=_r(n);return i===vn&&null==n?Bn(t,e,!0):Jn(t,e,i(n,r,1),!0)}function ri(t,e,n){var r=t?t.length:0;return r?((n?br(t,e,n):null==e)&&(e=1),Gn(t,0,0>e?0:e)):[]}function ii(t,e,n){var r=t?t.length:0;return r?((n?br(t,e,n):null==e)&&(e=1),e=r-(+e||0),Gn(t,0>e?0:e)):[]}function oi(t,e,n){var r=t?t.length:0;if(!r)return[];for(e=_r(e,n,3);r--&&e(t[r],r,t););return Gn(t,r+1)}function ui(t,e,n){var r=t?t.length:0;if(!r)return[];var i=-1;for(e=_r(e,n,3);++i<r&&e(t[i],i,t););return Gn(t,0,i)}function ai(){return $n(On(arguments,!1,!0))}function si(t,e,n,r){var i=t?t.length:0;if(!i)return[];"boolean"!=typeof e&&null!=e&&(r=n,n=br(t,e,r)?null:e,e=!1);var o=_r();return(o!==vn||null!=n)&&(n=o(n,r,3)),e&&vr()==u?T(t,n):$n(t,n)}function ci(t){for(var e=-1,n=(t&&t.length&&rn(nn(t,$u)))>>>0,r=xu(n);++e<n;)r[e]=nn(t,qn(e));return r}function fi(t){return gn(t,Gn(arguments,1))}function li(){for(var t=-1,e=arguments.length;++t<e;){var n=arguments[t];if(Va(n)||ho(n))var r=r?gn(r,n).concat(gn(n,r)):n}return r?$n(r):[]}function hi(){for(var t=arguments.length,e=xu(t);t--;)e[t]=arguments[t];return ci(e)}function pi(t,e){var n=-1,r=t?t.length:0,i={};for(!r||e||Va(t[0])||(e=[]);++n<r;){var o=t[n];e?i[o]=e[n]:o&&(i[o[0]]=o[1])}return i}function _i(t){var n=e(t);return n.__chain__=!0,n}function vi(t,e,n){return e.call(n,t),t}function yi(t,e,n){return e.call(n,t)}function di(){return _i(this)}function gi(){var t=this.__wrapped__;return t instanceof r?(this.__actions__.length&&(t=new r(this)),new n(t.reverse())):this.thru(function(t){return t.reverse()})}function mi(){return this.value()+""}function wi(){return Fn(this.__wrapped__,this.__actions__)}function Ti(t){var e=t?t.length:0;return Er(e)&&(t=xr(t)),hn(t,On(arguments,!1,!1,1))}function bi(t,e,n){var r=t?t.length:0;return Er(r)||(t=Xo(t),r=t.length),r?(n="number"==typeof n?0>n?va(r+n,0):n||0:0,"string"==typeof t||!Va(t)&&No(t)?r>n&&t.indexOf(e,n)>-1:vr(t,e,n)>-1):!1}function Ei(t,e,n){var r=Va(t)?tn:Tn;return("function"!=typeof e||"undefined"!=typeof n)&&(e=_r(e,n,3)),r(t,e)}function Oi(t,e,n){var r=Va(t)?en:bn;return e=_r(e,n,3),r(t,e)}function Ii(t,e,n){if(Va(t)){var r=Ur(t,e,n);return r>-1?t[r]:S}return e=_r(e,n,3),En(t,e,mn)}function Si(t,e,n){return e=_r(e,n,3),En(t,e,wn)}function Ai(t,e){return Ii(t,Ln(e))}function Ni(t,e,n){return"function"==typeof e&&"undefined"==typeof n&&Va(t)?Xe(t,e):mn(t,Yn(e,n,3))}function Ci(t,e,n){return"function"==typeof e&&"undefined"==typeof n&&Va(t)?Qe(t,e):wn(t,Yn(e,n,3))}function Di(t,e){return xn(t,e,Gn(arguments,2))}function xi(t,e,n){var r=Va(t)?nn:jn;return e=_r(e,n,3),r(t,e)}function Mi(t,e){return xi(t,qn(e+""))}function Ri(t,e,n,r){var i=Va(t)?un:Vn;return i(t,_r(e,r,4),n,arguments.length<3,mn)}function ki(t,e,n,r){var i=Va(t)?an:Vn;return i(t,_r(e,r,4),n,arguments.length<3,wn)}function ji(t,e,n){var r=Va(t)?en:bn;return e=_r(e,n,3),r(t,function(t,n,r){return!e(t,n,r)})}function Li(t,e,n){if(n?br(t,e,n):null==e){t=xr(t);var r=t.length;return r>0?t[Wn(0,r-1)]:S}var i=zi(t);return i.length=ya(0>e?0:+e||0,i.length),i}function zi(t){t=xr(t);for(var e=-1,n=t.length,r=xu(n);++e<n;){var i=Wn(0,e);e!=i&&(r[e]=r[i]),r[i]=t[e]}return r}function Pi(t){var e=t?t.length:0;return Er(e)?e:Ha(t).length}function qi(t,e,n){var r=Va(t)?sn:Kn;return("function"!=typeof e||"undefined"!=typeof n)&&(e=_r(e,n,3)),r(t,e)}function Ui(t,e,n){var r=-1,i=t?t.length:0,o=Er(i)?xu(i):[];return n&&br(t,e,n)&&(e=null),e=_r(e,n,3),mn(t,function(t,n,i){o[++r]={criteria:e(t,n,i),index:r,value:t}}),a(o,h)}function Wi(t){var e=arguments;e.length>3&&br(e[1],e[2],e[3])&&(e=[t,e[1]]);var n=-1,r=t?t.length:0,i=On(e,!1,!1,1),o=Er(r)?xu(r):[];return mn(t,function(t){for(var e=i.length,r=xu(e);e--;)r[e]=null==t?S:t[i[e]];o[++n]={criteria:r,index:n,value:t}}),a(o,p)}function Vi(t,e){return Oi(t,Ln(e))}function Gi(t,e){if(!wo(e)){if(!wo(t))throw new Uu(K);var n=t;t=e,e=n}return t=pa(t=+t)?t:0,function(){return--t<1?e.apply(this,arguments):void 0}}function Ki(t,e,n){return n&&br(t,e,n)&&(e=null),e=t&&null==e?t.length:va(+e||0,0),cr(t,L,null,null,null,null,e)}function $i(t,e){var n;if(!wo(e)){if(!wo(t))throw new Uu(K);var r=t;t=e,e=r}return function(){return--t>0?n=e.apply(this,arguments):e=null,n}}function Hi(t,e){var n=N;if(arguments.length>2){var r=Gn(arguments,2),i=w(r,Hi.placeholder);n|=R}return cr(t,n,e,r,i)}function Fi(t){return _n(t,arguments.length>1?On(arguments,!1,!1,1):Wo(t))}function Bi(t,e){var n=N|C;if(arguments.length>2){var r=Gn(arguments,2),i=w(r,Bi.placeholder);n|=R}return cr(e,n,t,r,i)}function Ji(t,e,n){n&&br(t,e,n)&&(e=null);var r=cr(t,x,null,null,null,null,null,e);return r.placeholder=Ji.placeholder,r}function Yi(t,e,n){n&&br(t,e,n)&&(e=null);var r=cr(t,M,null,null,null,null,null,e);return r.placeholder=Yi.placeholder,r}function Xi(t,e,n){function r(){h&&ta(h),s&&ta(s),s=h=p=S}function i(){var n=e-(Wa()-f);if(0>=n||n>e){s&&ta(s);var r=p;s=h=p=S,r&&(_=Wa(),c=t.apply(l,a),h||s||(a=l=null))}else h=ua(i,n)}function o(){h&&ta(h),s=h=p=S,(y||v!==e)&&(_=Wa(),c=t.apply(l,a),h||s||(a=l=null))}function u(){if(a=arguments,f=Wa(),l=this,p=y&&(h||!d),v===!1)var n=d&&!h;else{s||d||(_=f);var r=v-(f-_),u=0>=r||r>v;u?(s&&(s=ta(s)),_=f,c=t.apply(l,a)):s||(s=ua(o,r))}return u&&h?h=ta(h):h||e===v||(h=ua(i,e)),n&&(u=!0,c=t.apply(l,a)),!u||h||s||(a=l=null),c}var a,s,c,f,l,h,p,_=0,v=!1,y=!0;if(!wo(t))throw new Uu(K);if(e=0>e?0:e,n===!0){var d=!0;y=!1}else To(n)&&(d=n.leading,v="maxWait"in n&&va(+n.maxWait||0,e),y="trailing"in n?n.trailing:y);return u.cancel=r,u}function Zi(t){return dn(t,1,arguments,1)}function Qi(t,e){return dn(t,e,arguments,2)}function to(){var t=arguments,e=t.length;if(!e)return function(){};if(!tn(t,wo))throw new Uu(K);return function(){for(var n=0,r=t[n].apply(this,arguments);++n<e;)r=t[n].call(this,r);return r}}function eo(){var t=arguments,e=t.length-1;if(0>e)return function(){};if(!tn(t,wo))throw new Uu(K);return function(){for(var n=e,r=t[n].apply(this,arguments);n--;)r=t[n].call(this,r);return r}}function no(t,e){if(!wo(t)||e&&!wo(e))throw new Uu(K);var n=function(){var r=n.cache,i=e?e.apply(this,arguments):arguments[0];if(r.has(i))return r.get(i);var o=t.apply(this,arguments);return r.set(i,o),o};return n.cache=new no.Cache,n}function ro(t){if(!wo(t))throw new Uu(K);return function(){return!t.apply(this,arguments)}}function io(t){return $i(t,2)}function oo(t){var e=Gn(arguments,1),n=w(e,oo.placeholder);return cr(t,R,null,e,n)}function uo(t){var e=Gn(arguments,1),n=w(e,uo.placeholder);return cr(t,k,null,e,n)}function ao(t){var e=On(arguments,!1,!1,1);return cr(t,j,null,null,null,e)}function so(t,e,n){var r=!0,i=!0;if(!wo(t))throw new Uu(K);return n===!1?r=!1:To(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Ve.leading=r,Ve.maxWait=+e,Ve.trailing=i,Xi(t,e,Ve)}function co(t,e){return e=null==e?Tu:e,cr(e,R,null,[t],[])}function fo(t,e,n,r){return"boolean"!=typeof e&&null!=e&&(r=n,n=br(t,e,r)?null:e,e=!1),n="function"==typeof n&&Yn(n,r,1),yn(t,e,n)}function lo(t,e,n){return e="function"==typeof e&&Yn(e,n,1),yn(t,!0,e)}function ho(t){var e=g(t)?t.length:S;return Er(e)&&Bu.call(t)==H||!1}function po(t){return t===!0||t===!1||g(t)&&Bu.call(t)==B||!1}function _o(t){return g(t)&&Bu.call(t)==J||!1}function vo(t){return t&&1===t.nodeType&&g(t)&&Bu.call(t).indexOf("Element")>-1||!1}function yo(t){if(null==t)return!0;var e=t.length;return Er(e)&&(Va(t)||No(t)||ho(t)||g(t)&&wo(t.splice))?!e:!Ha(t).length}function go(t,e,n,r){if(n="function"==typeof n&&Yn(n,r,3),!n&&Or(t)&&Or(e))return t===e;var i=n?n(t,e):S;return"undefined"==typeof i?Mn(t,e,n):!!i}function mo(t){return g(t)&&"string"==typeof t.message&&Bu.call(t)==Y||!1}function wo(t){return"function"==typeof t||!1}function To(t){var e=typeof t;return"function"==e||t&&"object"==e||!1}function bo(t,e,n,r){var i=Ha(e),o=i.length;if(n="function"==typeof n&&Yn(n,r,3),!n&&1==o){var u=i[0],a=e[u];if(Or(a))return null!=t&&a===t[u]&&Hu.call(t,u)}for(var s=xu(o),c=xu(o);o--;)a=s[o]=e[i[o]],c[o]=Or(a);return kn(t,i,s,c,n)}function Eo(t){return So(t)&&t!=+t}function Oo(t){return null==t?!1:Bu.call(t)==X?Yu.test(Ku.call(t)):g(t)&&Ce.test(t)||!1}function Io(t){return null===t}function So(t){return"number"==typeof t||g(t)&&Bu.call(t)==Q||!1}function Ao(t){return g(t)&&Bu.call(t)==ee||!1}function No(t){return"string"==typeof t||g(t)&&Bu.call(t)==re||!1}function Co(t){return g(t)&&Er(t.length)&&Ue[Bu.call(t)]||!1}function Do(t){return"undefined"==typeof t}function xo(t){var e=t?t.length:0;return Er(e)?e?Ye(t):[]:Xo(t)}function Mo(t){return pn(t,Ko(t))}function Ro(t,e,n){var r=Da(t);return n&&br(t,e,n)&&(e=null),e?pn(e,r,Ha(e)):r}function ko(t){if(null==t)return t;var e=Ye(arguments);return e.push(cn),$a.apply(S,e)}function jo(t,e,n){return e=_r(e,n,3),En(t,e,Nn,!0)}function Lo(t,e,n){return e=_r(e,n,3),En(t,e,Cn,!0)}function zo(t,e,n){return("function"!=typeof e||"undefined"!=typeof n)&&(e=Yn(e,n,3)),In(t,e,Ko)}function Po(t,e,n){return e=Yn(e,n,3),Sn(t,e,Ko)}function qo(t,e,n){return("function"!=typeof e||"undefined"!=typeof n)&&(e=Yn(e,n,3)),Nn(t,e)}function Uo(t,e,n){return e=Yn(e,n,3),Sn(t,e,Ha)}function Wo(t){return Dn(t,Ko(t))}function Vo(t,e){return t?Hu.call(t,e):!1}function Go(t,e,n){n&&br(t,e,n)&&(e=null);for(var r=-1,i=Ha(t),o=i.length,u={};++r<o;){var a=i[r],s=t[a];e?Hu.call(u,s)?u[s].push(a):u[s]=[a]:u[s]=a}return u}function Ko(t){if(null==t)return[];To(t)||(t=zu(t));var e=t.length;e=e&&Er(e)&&(Va(t)||Ca.nonEnumArgs&&ho(t))&&e||0;for(var n=t.constructor,r=-1,i="function"==typeof n&&n.prototype==t,o=xu(e),u=e>0;++r<e;)o[r]=r+"";for(var a in t)u&&Tr(a,e)||"constructor"==a&&(i||!Hu.call(t,a))||o.push(a);return o}function $o(t,e,n){var r={};return e=_r(e,n,3),Nn(t,function(t,n,i){r[n]=e(t,n,i)}),r}function Ho(t,e,n){if(null==t)return{};if("function"!=typeof e){var r=nn(On(arguments,!1,!1,1),qu);return Sr(t,gn(Ko(t),r))}return e=Yn(e,n,3),Ar(t,function(t,n,r){return!e(t,n,r)})}function Fo(t){for(var e=-1,n=Ha(t),r=n.length,i=xu(r);++e<r;){var o=n[e];i[e]=[o,t[o]]}return i}function Bo(t,e,n){return null==t?{}:"function"==typeof e?Ar(t,Yn(e,n,3)):Sr(t,On(arguments,!1,!1,1))}function Jo(t,e,n){var r=null==t?S:t[e];return"undefined"==typeof r&&(r=n),wo(r)?r.call(t):r}function Yo(t,e,n,r){var i=Va(t)||Co(t);if(e=_r(e,r,4),null==n)if(i||To(t)){var o=t.constructor;n=i?Va(t)?new o:[]:Da("function"==typeof o&&o.prototype)}else n={};return(i?Xe:Nn)(t,function(t,r,i){return e(n,t,r,i)}),n}function Xo(t){return Hn(t,Ha(t))}function Zo(t){return Hn(t,Ko(t))}function Qo(t,e,n){n&&br(t,e,n)&&(e=n=null);var r=null==t,i=null==e;if(null==n&&(i&&"boolean"==typeof t?(n=t,t=1):"boolean"==typeof e&&(n=e,i=!0)),r&&i&&(e=1,i=!1),t=+t||0,i?(e=t,t=0):e=+e||0,n||t%1||e%1){var o=wa();return ya(t+o*(e-t+parseFloat("1e-"+((o+"").length-1))),e)}return Wn(t,e)}function tu(t){return t=s(t),t&&t.charAt(0).toUpperCase()+t.slice(1)}function eu(t){return t=s(t),t&&t.replace(De,_)}function nu(t,e,n){t=s(t),e+="";var r=t.length;return n=("undefined"==typeof n?r:ya(0>n?0:+n||0,r))-e.length,n>=0&&t.indexOf(e,n)==n}function ru(t){return t=s(t),t&&Te.test(t)?t.replace(me,v):t}function iu(t){return t=s(t),t&&Re.test(t)?t.replace(Me,"\\$&"):t}function ou(t,e,n){t=s(t),e=+e;var r=t.length;if(r>=e||!pa(e))return t;var i=(e-r)/2,o=ea(i),u=Qu(i);return n=ar("",u,n),n.slice(0,o)+t+n}function uu(t,e,n){return t=s(t),t&&ar(t,e,n)+t}function au(t,e,n){return t=s(t),t&&t+ar(t,e,n)}function su(t,e,n){return n&&br(t,e,n)&&(e=0),ma(t,e)}function cu(t,e){var n="";if(t=s(t),e=+e,1>e||!t||!pa(e))return n;do e%2&&(n+=t),e=ea(e/2),t+=t;while(e);return n}function fu(t,e,n){return t=s(t),n=null==n?0:ya(0>n?0:+n||0,t.length),t.lastIndexOf(e,n)==n}function lu(t,n,r){var i=e.templateSettings;r&&br(t,n,r)&&(n=r=null),t=s(t),n=ln(ln({},r||n),i,fn);var o,u,a=ln(ln({},n.imports),i.imports,fn),c=Ha(a),f=Hn(a,c),l=0,h=n.interpolate||xe,p="__p += '",_=Pu((n.escape||xe).source+"|"+h.source+"|"+(h===Oe?Ie:xe).source+"|"+(n.evaluate||xe).source+"|$","g"),v="//# sourceURL="+("sourceURL"in n?n.sourceURL:"lodash.templateSources["+ ++qe+"]")+"\n";t.replace(_,function(e,n,r,i,a,s){return r||(r=i),p+=t.slice(l,s).replace(je,y),n&&(o=!0,p+="' +\n__e("+n+") +\n'"),a&&(u=!0,p+="';\n"+a+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),l=s+e.length,e}),p+="';\n";var d=n.variable;d||(p="with (obj) {\n"+p+"\n}\n"),p=(u?p.replace(ve,""):p).replace(ye,"$1").replace(de,"$1;"),p="function("+(d||"obj")+") {\n"+(d?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(u?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var g=gu(function(){return ku(c,v+"return "+p).apply(S,f)});if(g.source=p,mo(g))throw g;return g}function hu(t,e,n){var r=t;return(t=s(t))?(n?br(r,e,n):null==e)?t.slice(b(t),E(t)+1):(e+="",t.slice(f(t,e),l(t,e)+1)):t}function pu(t,e,n){var r=t;return t=s(t),t?t.slice((n?br(r,e,n):null==e)?b(t):f(t,e+"")):t}function _u(t,e,n){var r=t;return t=s(t),t?(n?br(r,e,n):null==e)?t.slice(0,E(t)+1):t.slice(0,l(t,e+"")+1):t}function vu(t,e,n){n&&br(t,e,n)&&(e=null);var r=z,i=P;if(null!=e)if(To(e)){var o="separator"in e?e.separator:o;r="length"in e?+e.length||0:r,i="omission"in e?s(e.omission):i}else r=+e||0;if(t=s(t),r>=t.length)return t;var u=r-i.length;if(1>u)return i;var a=t.slice(0,u);if(null==o)return a+i;if(Ao(o)){if(t.slice(u).search(o)){var c,f,l=t.slice(0,u);for(o.global||(o=Pu(o.source,(Se.exec(o)||"")+"g")),o.lastIndex=0;c=o.exec(l);)f=c.index;a=a.slice(0,null==f?u:f)}}else if(t.indexOf(o,u)!=u){var h=a.lastIndexOf(o);h>-1&&(a=a.slice(0,h))}return a+i}function yu(t){return t=s(t),t&&we.test(t)?t.replace(ge,O):t}function du(t,e,n){return n&&br(t,e,n)&&(e=null),t=s(t),t.match(e||Le)||[]}function gu(t){try{return t()}catch(e){return mo(e)?e:Ru(e)}}function mu(t,e,n){return n&&br(t,e,n)&&(e=null),g(t)?bu(t):vn(t,e)}function wu(t){return function(){return t}}function Tu(t){return t}function bu(t){return Ln(yn(t,!0))}function Eu(t,e,n){if(null==n){var r=To(e),i=r&&Ha(e),o=i&&i.length&&Dn(e,i);(o?o.length:r)||(o=!1,n=e,e=t,t=this)}o||(o=Dn(e,Ha(e)));var u=!0,a=-1,s=wo(t),c=o.length;n===!1?u=!1:To(n)&&"chain"in n&&(u=n.chain);for(;++a<c;){var f=o[a],l=e[f];t[f]=l,s&&(t.prototype[f]=function(e){return function(){var n=this.__chain__;if(u||n){var r=t(this.__wrapped__);return(r.__actions__=Ye(this.__actions__)).push({func:e,args:arguments,thisArg:t}),r.__chain__=n,r}var i=[this.value()];return ra.apply(i,arguments),e.apply(t,i)}}(l))}return t}function Ou(){return t._=Ju,this}function Iu(){}function Su(t){return qn(t+"")}function Au(t){return function(e){return null==t?S:t[e]}}function Nu(t,e,n){n&&br(t,e,n)&&(e=n=null),t=+t||0,n=null==n?1:+n||0,null==e?(e=t,t=0):e=+e||0;for(var r=-1,i=va(Qu((e-t)/(n||1)),0),o=xu(i);++r<i;)o[r]=t,t+=n;return o}function Cu(t,e,n){if(t=+t,1>t||!pa(t))return[];var r=-1,i=xu(ya(t,Ea));for(e=Yn(e,n,1);++r<t;)Ea>r?i[r]=e(r):e(r);return i}function Du(t){var e=++Fu;return s(t)+e}t=t?Ze.defaults(Be.Object(),t,Ze.pick(Be,Pe)):Be;var xu=t.Array,Mu=t.Date,Ru=t.Error,ku=t.Function,ju=t.Math,Lu=t.Number,zu=t.Object,Pu=t.RegExp,qu=t.String,Uu=t.TypeError,Wu=xu.prototype,Vu=zu.prototype,Gu=(Gu=t.window)&&Gu.document,Ku=ku.prototype.toString,$u=qn("length"),Hu=Vu.hasOwnProperty,Fu=0,Bu=Vu.toString,Ju=t._,Yu=Pu("^"+iu(Bu).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Xu=Oo(Xu=t.ArrayBuffer)&&Xu,Zu=Oo(Zu=Xu&&new Xu(0).slice)&&Zu,Qu=ju.ceil,ta=t.clearTimeout,ea=ju.floor,na=Oo(na=zu.getPrototypeOf)&&na,ra=Wu.push,ia=Vu.propertyIsEnumerable,oa=Oo(oa=t.Set)&&oa,ua=t.setTimeout,aa=Wu.splice,sa=Oo(sa=t.Uint8Array)&&sa,ca=(Wu.unshift,Oo(ca=t.WeakMap)&&ca),fa=function(){try{var e=Oo(e=t.Float64Array)&&e,n=new e(new Xu(10),0,1)&&e}catch(r){}return n}(),la=Oo(la=xu.isArray)&&la,ha=Oo(ha=zu.create)&&ha,pa=t.isFinite,_a=Oo(_a=zu.keys)&&_a,va=ju.max,ya=ju.min,da=Oo(da=Mu.now)&&da,ga=Oo(ga=Lu.isFinite)&&ga,ma=t.parseInt,wa=ju.random,Ta=Lu.NEGATIVE_INFINITY,ba=Lu.POSITIVE_INFINITY,Ea=ju.pow(2,32)-1,Oa=Ea-1,Ia=Ea>>>1,Sa=fa?fa.BYTES_PER_ELEMENT:0,Aa=ju.pow(2,53)-1,Na=ca&&new ca,Ca=e.support={};!function(){Ca.funcDecomp=!Oo(t.WinRTError)&&ke.test(I),Ca.funcNames="string"==typeof ku.name;try{Ca.dom=11===Gu.createDocumentFragment().nodeType}catch(e){Ca.dom=!1}try{Ca.nonEnumArgs=!ia.call(arguments,1)}catch(e){Ca.nonEnumArgs=!0}}(0,0),e.templateSettings={escape:be,evaluate:Ee,interpolate:Oe,variable:"",imports:{_:e}};var Da=function(){function e(){}return function(n){if(To(n)){e.prototype=n;var r=new e;e.prototype=null}return r||t.Object()}}(),xa=Na?function(t,e){return Na.set(t,e),t}:Tu;Zu||(Xn=Xu&&sa?function(t){var e=t.byteLength,n=fa?ea(e/Sa):0,r=n*Sa,i=new Xu(e);if(n){var o=new fa(i,0,n);o.set(new fa(t,0,n))}return e!=r&&(o=new sa(i,r),o.set(new sa(t,r))),i}:wu(null));var Ma=ha&&oa?function(t){return new He(t)}:wu(null),Ra=Na?function(t){return Na.get(t)}:Iu,ka=function(){var t=0,e=0;return function(n,r){var i=Wa(),o=U-(i-e); +if(e=i,o>0){if(++t>=q)return n}else t=0;return xa(n,r)}}(),ja=tr(function(t,e,n){Hu.call(t,n)?++t[n]:t[n]=1}),La=tr(function(t,e,n){Hu.call(t,n)?t[n].push(e):t[n]=[e]}),za=tr(function(t,e,n){t[n]=e}),Pa=or(rn),qa=or(on,!0),Ua=tr(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]}),Wa=da||function(){return(new Mu).getTime()},Va=la||function(t){return g(t)&&Er(t.length)&&Bu.call(t)==F||!1};Ca.dom||(vo=function(t){return t&&1===t.nodeType&&g(t)&&!Ka(t)||!1});var Ga=ga||function(t){return"number"==typeof t&&pa(t)};(wo(/x/)||sa&&!wo(sa))&&(wo=function(t){return Bu.call(t)==X});var Ka=na?function(t){if(!t||Bu.call(t)!=te)return!1;var e=t.valueOf,n=Oo(e)&&(n=na(e))&&na(n);return n?t==n||na(t)==n:Cr(t)}:Cr,$a=er(ln),Ha=_a?function(t){if(t)var e=t.constructor,n=t.length;return"function"==typeof e&&e.prototype===t||"function"!=typeof t&&n&&Er(n)?Dr(t):To(t)?_a(t):[]}:Dr,Fa=er(zn),Ba=rr(function(t,e,n){return e=e.toLowerCase(),t+(n?e.charAt(0).toUpperCase()+e.slice(1):e)}),Ja=rr(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()});8!=ma(ze+"08")&&(su=function(t,e,n){return(n?br(t,e,n):null==e)?e=0:e&&(e=+e),t=hu(t),ma(t,e||(Ne.test(t)?16:10))});var Ya=rr(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}),Xa=rr(function(t,e,n){return t+(n?" ":"")+(e.charAt(0).toUpperCase()+e.slice(1))});return n.prototype=e.prototype,ne.prototype["delete"]=ie,ne.prototype.get=Ge,ne.prototype.has=Ke,ne.prototype.set=$e,He.prototype.push=Je,no.Cache=ne,e.after=Gi,e.ary=Ki,e.assign=$a,e.at=Ti,e.before=$i,e.bind=Hi,e.bindAll=Fi,e.bindKey=Bi,e.callback=mu,e.chain=_i,e.chunk=Rr,e.compact=kr,e.constant=wu,e.countBy=ja,e.create=Ro,e.curry=Ji,e.curryRight=Yi,e.debounce=Xi,e.defaults=ko,e.defer=Zi,e.delay=Qi,e.difference=jr,e.drop=Lr,e.dropRight=zr,e.dropRightWhile=Pr,e.dropWhile=qr,e.filter=Oi,e.flatten=Gr,e.flattenDeep=Kr,e.flow=to,e.flowRight=eo,e.forEach=Ni,e.forEachRight=Ci,e.forIn=zo,e.forInRight=Po,e.forOwn=qo,e.forOwnRight=Uo,e.functions=Wo,e.groupBy=La,e.indexBy=za,e.initial=Hr,e.intersection=Fr,e.invert=Go,e.invoke=Di,e.keys=Ha,e.keysIn=Ko,e.map=xi,e.mapValues=$o,e.matches=bu,e.memoize=no,e.merge=Fa,e.mixin=Eu,e.negate=ro,e.omit=Ho,e.once=io,e.pairs=Fo,e.partial=oo,e.partialRight=uo,e.partition=Ua,e.pick=Bo,e.pluck=Mi,e.property=Su,e.propertyOf=Au,e.pull=Yr,e.pullAt=Xr,e.range=Nu,e.rearg=ao,e.reject=ji,e.remove=Zr,e.rest=Qr,e.shuffle=zi,e.slice=ti,e.sortBy=Ui,e.sortByAll=Wi,e.take=ri,e.takeRight=ii,e.takeRightWhile=oi,e.takeWhile=ui,e.tap=vi,e.throttle=so,e.thru=yi,e.times=Cu,e.toArray=xo,e.toPlainObject=Mo,e.transform=Yo,e.union=ai,e.uniq=si,e.unzip=ci,e.values=Xo,e.valuesIn=Zo,e.where=Vi,e.without=fi,e.wrap=co,e.xor=li,e.zip=hi,e.zipObject=pi,e.backflow=eo,e.collect=xi,e.compose=eo,e.each=Ni,e.eachRight=Ci,e.extend=$a,e.iteratee=mu,e.methods=Wo,e.object=pi,e.select=Oi,e.tail=Qr,e.unique=si,Eu(e,e),e.attempt=gu,e.camelCase=Ba,e.capitalize=tu,e.clone=fo,e.cloneDeep=lo,e.deburr=eu,e.endsWith=nu,e.escape=ru,e.escapeRegExp=iu,e.every=Ei,e.find=Ii,e.findIndex=Ur,e.findKey=jo,e.findLast=Si,e.findLastIndex=Wr,e.findLastKey=Lo,e.findWhere=Ai,e.first=Vr,e.has=Vo,e.identity=Tu,e.includes=bi,e.indexOf=$r,e.isArguments=ho,e.isArray=Va,e.isBoolean=po,e.isDate=_o,e.isElement=vo,e.isEmpty=yo,e.isEqual=go,e.isError=mo,e.isFinite=Ga,e.isFunction=wo,e.isMatch=bo,e.isNaN=Eo,e.isNative=Oo,e.isNull=Io,e.isNumber=So,e.isObject=To,e.isPlainObject=Ka,e.isRegExp=Ao,e.isString=No,e.isTypedArray=Co,e.isUndefined=Do,e.kebabCase=Ja,e.last=Br,e.lastIndexOf=Jr,e.max=Pa,e.min=qa,e.noConflict=Ou,e.noop=Iu,e.now=Wa,e.pad=ou,e.padLeft=uu,e.padRight=au,e.parseInt=su,e.random=Qo,e.reduce=Ri,e.reduceRight=ki,e.repeat=cu,e.result=Jo,e.runInContext=I,e.size=Pi,e.snakeCase=Ya,e.some=qi,e.sortedIndex=ei,e.sortedLastIndex=ni,e.startCase=Xa,e.startsWith=fu,e.template=lu,e.trim=hu,e.trimLeft=pu,e.trimRight=_u,e.trunc=vu,e.unescape=yu,e.uniqueId=Du,e.words=du,e.all=Ei,e.any=qi,e.contains=bi,e.detect=Ii,e.foldl=Ri,e.foldr=ki,e.head=Vr,e.include=bi,e.inject=Ri,Eu(e,function(){var t={};return Nn(e,function(n,r){e.prototype[r]||(t[r]=n)}),t}(),!1),e.sample=Li,e.prototype.sample=function(t){return this.__chain__||null!=t?this.thru(function(e){return Li(e,t)}):Li(this.value())},e.VERSION=A,Xe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){e[t].placeholder=e}),Xe(["filter","map","takeWhile"],function(t,e){var n=e==W;r.prototype[t]=function(t,r){var i=this.clone(),o=i.filtered,u=i.iteratees||(i.iteratees=[]);return i.filtered=o||n||e==G&&i.dir<0,u.push({iteratee:_r(t,r,3),type:e}),i}}),Xe(["drop","take"],function(t,e){var n=t+"Count",i=t+"While";r.prototype[t]=function(r){r=null==r?1:va(+r||0,0);var i=this.clone();if(i.filtered){var o=i[n];i[n]=e?ya(o,r):o+r}else{var u=i.views||(i.views=[]);u.push({size:r,type:t+(i.dir<0?"Right":"")})}return i},r.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()},r.prototype[t+"RightWhile"]=function(t,e){return this.reverse()[i](t,e).reverse()}}),Xe(["first","last"],function(t,e){var n="take"+(e?"Right":"");r.prototype[t]=function(){return this[n](1).value()[0]}}),Xe(["initial","rest"],function(t,e){var n="drop"+(e?"":"Right");r.prototype[t]=function(){return this[n](1)}}),Xe(["pluck","where"],function(t,e){var n=e?"filter":"map",i=e?Ln:qn;r.prototype[t]=function(t){return this[n](i(e?t:t+""))}}),r.prototype.dropWhile=function(t,e){var n,r,i=this.dir<0;return t=_r(t,e,3),this.filter(function(e,o,u){return n=n&&(i?r>o:o>r),r=o,n||(n=!t(e,o,u))})},r.prototype.reject=function(t,e){return t=_r(t,e,3),this.filter(function(e,n,r){return!t(e,n,r)})},r.prototype.slice=function(t,e){t=null==t?0:+t||0;var n=0>t?this.takeRight(-t):this.drop(t);return"undefined"!=typeof e&&(e=+e||0,n=0>e?n.dropRight(-e):n.take(e-t)),n},Nn(r.prototype,function(t,i){var o=e[i],u=/^(?:first|last)$/.test(i);e.prototype[i]=function(){var i=this.__wrapped__,a=arguments,s=this.__chain__,c=!!this.__actions__.length,f=i instanceof r,l=f&&!c;if(u&&!s)return l?t.call(i):o.call(e,this.value());var h=function(t){var n=[t];return ra.apply(n,a),o.apply(e,n)};if(f||Va(i)){var p=l?i:new r(this),_=t.apply(p,a);if(!u&&(c||_.actions)){var v=_.actions||(_.actions=[]);v.push({func:yi,args:[h],thisArg:e})}return new n(_,s)}return this.thru(h)}}),Xe(["concat","join","pop","push","shift","sort","splice","unshift"],function(t){var n=Wu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",i=/^(?:join|pop|shift)$/.test(t);e.prototype[t]=function(){var t=arguments;return i&&!this.__chain__?n.apply(this.value(),t):this[r](function(e){return n.apply(e,t)})}}),r.prototype.clone=i,r.prototype.reverse=m,r.prototype.value=Z,e.prototype.chain=di,e.prototype.reverse=gi,e.prototype.toString=mi,e.prototype.toJSON=e.prototype.valueOf=e.prototype.value=wi,e.prototype.collect=e.prototype.map,e.prototype.head=e.prototype.first,e.prototype.select=e.prototype.filter,e.prototype.tail=e.prototype.rest,e}var S,A="3.1.0",N=1,C=2,D=4,x=8,M=16,R=32,k=64,j=128,L=256,z=30,P="...",q=150,U=16,W=0,V=1,G=2,K="Expected a function",$="__lodash_placeholder__",H="[object Arguments]",F="[object Array]",B="[object Boolean]",J="[object Date]",Y="[object Error]",X="[object Function]",Z="[object Map]",Q="[object Number]",te="[object Object]",ee="[object RegExp]",ne="[object Set]",re="[object String]",ie="[object WeakMap]",oe="[object ArrayBuffer]",ue="[object Float32Array]",ae="[object Float64Array]",se="[object Int8Array]",ce="[object Int16Array]",fe="[object Int32Array]",le="[object Uint8Array]",he="[object Uint8ClampedArray]",pe="[object Uint16Array]",_e="[object Uint32Array]",ve=/\b__p \+= '';/g,ye=/\b(__p \+=) '' \+/g,de=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ge=/&(?:amp|lt|gt|quot|#39|#96);/g,me=/[&<>"'`]/g,we=RegExp(ge.source),Te=RegExp(me.source),be=/<%-([\s\S]+?)%>/g,Ee=/<%([\s\S]+?)%>/g,Oe=/<%=([\s\S]+?)%>/g,Ie=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Se=/\w*$/,Ae=/^\s*function[ \n\r\t]+\w/,Ne=/^0[xX]/,Ce=/^\[object .+?Constructor\]$/,De=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,xe=/($^)/,Me=/[.*+?^${}()|[\]\/\\]/g,Re=RegExp(Me.source),ke=/\bthis\b/,je=/['\n\r\u2028\u2029\\]/g,Le=function(){var t="[A-Z\\xc0-\\xd6\\xd8-\\xde]",e="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(t+"{2,}(?="+t+e+")|"+t+"?"+e+"|"+t+"+|[0-9]+","g")}(),ze=" \f \n\r\u2028\u2029áš€á Žâ€€â€â€‚         âŸã€€",Pe=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","document","isFinite","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","window","WinRTError"],qe=-1,Ue={};Ue[ue]=Ue[ae]=Ue[se]=Ue[ce]=Ue[fe]=Ue[le]=Ue[he]=Ue[pe]=Ue[_e]=!0,Ue[H]=Ue[F]=Ue[oe]=Ue[B]=Ue[J]=Ue[Y]=Ue[X]=Ue[Z]=Ue[Q]=Ue[te]=Ue[ee]=Ue[ne]=Ue[re]=Ue[ie]=!1;var We={};We[H]=We[F]=We[oe]=We[B]=We[J]=We[ue]=We[ae]=We[se]=We[ce]=We[fe]=We[Q]=We[te]=We[ee]=We[re]=We[le]=We[he]=We[pe]=We[_e]=!0,We[Y]=We[X]=We[Z]=We[ne]=We[ie]=!1;var Ve={leading:!1,maxWait:0,trailing:!1},Ge={"À":"A","Ã":"A","Â":"A","Ã":"A","Ä":"A","Ã…":"A","à ":"a","á":"a","â":"a","ã":"a","ä":"a","Ã¥":"a","Ç":"C","ç":"c","Ã":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","ÃŒ":"I","Ã":"I","ÃŽ":"I","Ã":"I","ì":"i","Ã":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ã’":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ãœ":"U","ù":"u","ú":"u","û":"u","ü":"u","Ã":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Ke={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},$e={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},He={"function":!0,object:!0},Fe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Be=He[typeof window]&&window!==(this&&this.window)?window:this,Je=He[typeof e]&&e&&!e.nodeType&&e,Ye=He[typeof t]&&t&&!t.nodeType&&t,Xe=Je&&Ye&&"object"==typeof i&&i;!Xe||Xe.global!==Xe&&Xe.window!==Xe&&Xe.self!==Xe||(Be=Xe);var Ze=(Ye&&Ye.exports===Je&&Je,I());Be._=Ze,r=function(){return Ze}.call(e,n,e,t),!(r!==S&&(t.exports=r))}).call(this)}).call(e,n(38)(t),function(){return this}())},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(1)),s=r(n(2)),c=r(n(3)),f=!1,l=!1,h="",p=!1,_="",v=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{isValidating:{get:function(){return f},configurable:!0},isLoggedIn:{get:function(){return l},configurable:!0},authToken:{get:function(){return h},configurable:!0},lastAttemptInvalid:{get:function(){return p},configurable:!0},lastAttemptMessage:{get:function(){return _},configurable:!0}}),e}(c),y=new v;y.dispatchToken=a.register(function(t){switch(t.actionType){case s.ACTION_VALIDATING_AUTH_TOKEN:f=!0,y.emitChange();break;case s.ACTION_VALID_AUTH_TOKEN:f=!1,l=!0,h=t.authToken,p=!1,_="",y.emitChange();break;case s.ACTION_INVALID_AUTH_TOKEN:f=!1,l=!1,h="",p=!0,_=t.message||"Unexpected result from API",y.emitChange();break;case s.ACTION_LOG_OUT:f=!1,l=!1,h="",p=!1,_="",y.emitChange()}}),t.exports=y},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(4),s=a.Map,c=a.List,f=r(n(1)),l=r(n(2)),h=r(n(3)),p=new s,_=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{all:{get:function(){return p},configurable:!0},has:{value:function(t,e){var t=p.get(t);return t&&t.contains(e)},writable:!0,configurable:!0},getServices:{value:function(t){return p.get(t)||new c},writable:!0,configurable:!0}}),e}(h),v=new _;v.dispatchToken=f.register(function(t){switch(t.actionType){case l.ACTION_NEW_SERVICES:p=(new s).withMutations(function(e){t.services.forEach(function(t){e.set(t.domain,new c(t.services))})}),v.emitChange();break;case l.ACTION_REMOTE_EVENT_RECEIVED:if(t.event.event_type!==l.REMOTE_EVENT_SERVICE_REGISTERED)break;var e=t.event.data,n=e.domain,r=e.service;if(v.has(n,r))break;var i=v.getServices(n);p=p.set(n,i.push(r)),v.emitChange();break;case l.ACTION_LOG_OUT:p=new s,v.emitChange()}}),t.exports=v},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(1)),s=r(n(2)),c=r(n(3)),f="STATE_CONNECTED",l="STATE_DISCONNECTED",h="STATE_ERROR",p=l,_=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{state:{get:function(){return p},configurable:!0},isStreaming:{get:function(){return p===this.STATE_CONNECTED},configurable:!0},hasError:{get:function(){return p===this.STATE_ERROR},configurable:!0}}),e}(c),v=new _;v.STATE_CONNECTED=f,v.STATE_DISCONNECTED=l,v.STATE_ERROR=h,v.dispatchToken=a.register(function(t){switch(t.actionType){case s.ACTION_STREAM_START:p=f,v.emitChange();break;case s.ACTION_STREAM_STOP:p=l,v.emitChange();break;case s.ACTION_STREAM_ERROR:p=h,v.emitChange()}}),t.exports=v},function(t,e,n){"use strict";function r(t){i.dispatch({actionType:u,message:t})}e.notify=r;var i=n(1),o=n(2),u=o.ACTION_NEW_NOTIFICATION;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){t.length>0&&f.dispatch({actionType:l.ACTION_NEW_SERVICES,services:t})}function i(t){return u("homeassistant","turn_on",{entity_id:t})}function o(t){return u("homeassistant","turn_off",{entity_id:t})}function u(t,e){var n=void 0===arguments[2]?{}:arguments[2];return c("POST","services/"+t+"/"+e,n).then(function(r){h("turn_on"==e&&n.entity_id?"Turned on "+n.entity_id+".":"turn_off"==e&&n.entity_id?"Turned off "+n.entity_id+".":"Service "+t+"/"+e+" called."),p(r)})}function a(){return c("GET","services").then(r)}var s=function(t){return t&&t.__esModule?t["default"]:t};e.newServices=r,e.callTurnOn=i,e.callTurnOff=o,e.callService=u,e.fetchAll=a;var c=s(n(5)),f=s(n(1)),l=s(n(2)),h=n(10).notify,p=n(12).newStates;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t,e){(t.length>0||e)&&c.dispatch({actionType:f,states:t,replace:!!e})}function i(t,e){var n=void 0===arguments[2]?!1:arguments[2],i={state:e};n&&(i.attributes=n),s("POST","states/"+t,i).then(function(n){l("State of "+t+" set to "+e+"."),r([n])})}function o(t){s("GET","states/"+t).then(function(t){r([t])})}function u(){s("GET","states").then(function(t){r(t,!0)})}var a=function(t){return t&&t.__esModule?t["default"]:t};e.newStates=r,e.set=i,e.fetch=o,e.fetchAll=u;var s=a(n(5)),c=a(n(1)),f=n(2).ACTION_NEW_STATES,l=n(10).notify;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(){c.dispatch({actionType:f.ACTION_FETCH_ALL}),l.fetchAll(),h.fetchAll(),p.fetchAll(),_.fetchAll(),y&&d()}function i(){y=!0,r()}function o(){y=!1,d.cancel()}var u=function(t){return t&&t.__esModule?t:{"default":t}},a=function(t){return t&&t.__esModule?t["default"]:t};e.fetchAll=r,e.start=i,e.stop=o;var s=a(n(6)),c=a(n(1)),f=a(n(2)),l=u(n(26)),h=u(n(12)),p=u(n(11)),_=u(n(25)),v=3e4,y=!1,d=s.debounce(r,v);Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,r=[],i=t[Symbol.iterator]();!(n=i.next()).done&&(r.push(n.value),!e||r.length!==e););return r}throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},u=function _(t,e,n){var r=Object.getOwnPropertyDescriptor(t,e);if(void 0===r){var i=Object.getPrototypeOf(t);return null===i?void 0:_(i,e,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},a=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},c=n(4).Record,f=r(n(8)),l=n(24).parseDateTime,h=new c({entityId:null,domain:null,objectId:null,state:null,entityDisplay:null,stateDisplay:null,lastChanged:null,lastChangedAsDate:null,attributes:{},isCustomGroup:null},"State"),p=function(t){function e(t,n,r){var o=void 0===arguments[3]?{}:arguments[3];s(this,e);var a=t.split("."),c=i(a,2),f=c[0],h=c[1],p=n.replace(/_/g," ");o.unit_of_measurement&&(p+=" "+o.unit_of_measurement),u(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,{entityId:t,domain:f,objectId:h,state:n,stateDisplay:p,lastChanged:r,attributes:o,entityDisplay:o.friendly_name||h.replace(/_/g," "),lastChangedAsDate:l(r),isCustomGroup:"group"===f&&!o.auto})}return a(e,t),o(e,{fromJSON:{value:function(t){var n=t.entity_id,r=t.state,i=t.last_changed,o=t.attributes;return new e(n,r,i,o)},writable:!0,configurable:!0}},{canToggle:{get:function(){return"group"===this.domain&&("on"===this.state||"off"===this.state)||f.has(this.domain,"turn_on")},configurable:!0}}),e}(h);t.exports=p},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(4).List,s=r(n(1)),c=r(n(2)),f=r(n(3)),l=new a,h=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{loaded:{get:function(){return l},configurable:!0},isLoaded:{value:function(t){return l.contains(t)},writable:!0,configurable:!0}}),e}(f),p=new h;p.dispatchToken=s.register(function(t){switch(t.actionType){case c.ACTION_NEW_LOADED_COMPONENTS:l=new a(t.components),p.emitChange();break;case c.ACTION_REMOTE_EVENT_RECEIVED:if(t.event.event_type!==c.REMOTE_EVENT_COMPONENT_LOADED)break;var e=t.event.data.component;if(p.isLoaded(e))break;l=l.push(e),p.emitChange();break;case c.ACTION_LOG_OUT:l=new a,p.emitChange()}}),t.exports=p},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(4).List,s=r(n(1)),c=r(n(2)),f=r(n(3)),l=new a,h=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{all:{get:function(){return l},configurable:!0}}),e}(f),p=new h;p.dispatchToken=s.register(function(t){switch(t.actionType){case c.ACTION_NEW_EVENTS:l=new a(t.events),p.emitChange();break;case c.ACTION_LOG_OUT:l=new a,p.emitChange()}}),t.exports=p},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(4).List,s=r(n(1)),c=r(n(2)),f=r(n(3)),l=r(n(33)),h=6e4,p=null,_=new a,v=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{isStale:{value:function(){return null===p||(new Date).getTime()-p.getTime()>h},writable:!0,configurable:!0},all:{get:function(){return _},configurable:!0}}),e}(f),y=new v;y.dispatchToken=s.register(function(t){switch(t.actionType){case c.ACTION_NEW_LOGBOOK:_=new a(t.logbookEntries.map(function(t){return l.fromJSON(t)})),p=new Date,y.emitChange();break;case c.ACTION_LOG_OUT:p=null,_=new a,y.emitChange()}}),t.exports=y},function(t,e,n){"use strict";function r(){return p.size}var i=function(t){return t&&t.__esModule?t["default"]:t},o=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},u=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},a=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=n(4).List,c=i(n(1)),f=i(n(2)),l=i(n(3)),h=i(n(34)),p=new s,_=function(t){function e(){a(this,e),null!=t&&t.apply(this,arguments)}return u(e,t),o(e,null,{hasNewNotifications:{value:function(t){return!t||t+1<p.size},writable:!0,configurable:!0},lastNotification:{get:function(){return p.last()},configurable:!0}}),e}(l),v=new _;v.dispatchToken=c.register(function(t){switch(t.actionType){case f.ACTION_NEW_NOTIFICATION:p=p.push(new h(r(),t.message)),v.emitChange();break;case f.ACTION_LOG_OUT:p=new s,v.emitChange()}}),t.exports=v},function(t,e,n){"use strict";function r(t,e){p[t]=JSON.stringify(e)}function i(t,e){return t in p?JSON.parse(p[t]):e}function o(t){return t in p?(p.removeItem(t),!0):!1}var u=function(t){return t&&t.__esModule?t["default"]:t},a=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},s=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},f=u(n(1)),l=u(n(2)),h=u(n(3)),p=localStorage,_="PREF_AUTH_TOKEN",v=null,y="PREF_USE_STREAMING",d=!0,g=function(t){function e(){c(this,e),null!=t&&t.apply(this,arguments)}return s(e,t),a(e,null,{useStreaming:{get:function(){return i(y,d)},configurable:!0},hasAuthToken:{get:function(){return null!==this.authToken},configurable:!0},authToken:{get:function(){return i(_,v)},configurable:!0}}),e}(h),m=new g;m.dispatchToken=f.register(function(t){switch(t.actionType){case l.ACTION_VALID_AUTH_TOKEN:t.rememberLogin&&(r(_,t.authToken),m.emitChange());break;case l.ACTION_LOG_OUT:o(_)&&m.emitChange();break;case l.ACTION_STREAM_START:r(y,!0),m.emitChange();break;case l.ACTION_STREAM_STOP:r(y,!1),m.emitChange()}}),t.exports=m},function(t,e,n){"use strict";function r(t){return t.entityId}function i(t){y=y.set(t.entity_id,v.fromJSON(t))}function o(t,e){var n=e?new f:y;y=n.withMutations(function(e){return t.forEach(function(t){return e.set(t.entity_id,v.fromJSON(t))}),e})}var u=function(t){return t&&t.__esModule?t["default"]:t},a=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},s=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},f=n(4).Map,l=u(n(1)),h=u(n(2)),p=u(n(3)),_=u(n(9)),v=u(n(14)),y=new f,d=function(t){function e(){c(this,e),null!=t&&t.apply(this,arguments)}return s(e,t),a(e,null,{all:{get:function(){return y.valueSeq().sortBy(r)},configurable:!0},get:{value:function(t){return t=t.toLowerCase(),y.get(t)||null},writable:!0,configurable:!0},gets:{value:function(t){return t=t.map(function(t){return t.toLowerCase()}),y.valueSeq().filter(function(e){return-1!==t.indexOf(e.entityId)}).sortBy(r)},writable:!0,configurable:!0},entityIDs:{get:function(){return y.keySeq().sort()},configurable:!0},domains:{get:function(){return y.keySeq().map(function(t){return t.split(".")[0]}).sort().toOrderedSet()},configurable:!0}}),e}(p),g=new d;g.dispatchToken=l.register(function(t){switch(t.actionType){case h.ACTION_NEW_STATES:(!_.isStreaming||t.replace)&&(o(t.states,t.replace),g.emitChange());break;case h.ACTION_REMOTE_EVENT_RECEIVED:t.event.event_type===h.REMOTE_EVENT_STATE_CHANGED&&(i(t.event.data.new_state),g.emitChange());break;case h.ACTION_LOG_OUT:y={},g.emitChange()}}),t.exports=g},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(6)),s=r(n(1)),c=r(n(2)),f=r(n(3)),l=6e4,h=null,p={},_={},v=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{isStale:{value:function(){var t=void 0===arguments[0]?null:arguments[0],e=null===t?h:p[t]||null;return null===e||(new Date).getTime()-e.getTime()>l},writable:!0,configurable:!0},get:{value:function(t){return _[t]||null},writable:!0,configurable:!0},all:{get:function(){return a.values(_)},configurable:!0}}),e}(f),y=new v;y.dispatchToken=s.register(function(t){switch(t.actionType){case c.ACTION_NEW_STATE_HISTORY:a.forEach(t.stateHistory,function(t){if(0!==t.length){var e=t[0].entityId;_[e]=t,p[e]=new Date}}),t.isFetchAll&&(h=new Date),y.emitChange();break;case c.ACTION_LOG_OUT:h=null,p={},_={},y.emitChange()}}),t.exports=y},function(t,e,n){"use strict";function r(t){return-1!==_.indexOf(t)}function i(){return _.length===h}var o=function(t){return t&&t.__esModule?t["default"]:t},u=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},a=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},c=o(n(1)),f=o(n(2)),l=o(n(3)),h=4,p=!1,_=[],v=function(t){function e(){s(this,e),null!=t&&t.apply(this,arguments)}return a(e,t),u(e,null,{isFetching:{get:function(){return!i()},configurable:!0},initialLoadDone:{get:function(){return p},configurable:!0},componentsLoaded:{get:function(){return r(f.ACTION_NEW_LOADED_COMPONENTS)},configurable:!0},eventsLoaded:{get:function(){return r(f.ACTION_NEW_EVENTS)},configurable:!0},servicesLoaded:{get:function(){return r(f.ACTION_NEW_SERVICES)},configurable:!0},statesLoaded:{get:function(){return r(f.ACTION_NEW_STATES)},configurable:!0}}),e}(l),y=new v;y.dispatchToken=c.register(function(t){switch(t.actionType){case f.ACTION_FETCH_ALL:_=[],y.emitChange();break;case f.ACTION_NEW_LOADED_COMPONENTS:case f.ACTION_NEW_EVENTS:case f.ACTION_NEW_SERVICES:case f.ACTION_NEW_STATES:r(t.actionType)||(_.push(t.actionType),p=p||i(),y.emitChange());break;case f.ACTION_LOG_OUT:p=!1,_=[],y.emitChange()}}),t.exports=y},function(t,e,n){"use strict";var r=function(t){return t&&t.__esModule?t["default"]:t},i=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=r(n(1)),s=r(n(2)),c=r(n(3)),f="STATE_LISTENING",l="STATE_TRANSMITTING",h="STATE_IDLE",p="STATE_ERROR",_=h,v="",y="",d=function(t){function e(){u(this,e),null!=t&&t.apply(this,arguments)}return o(e,t),i(e,null,{state:{get:function(){return _},configurable:!0},isListening:{get:function(){return _===f},configurable:!0},isTransmitting:{get:function(){return _===l},configurable:!0},hasError:{get:function(){return _===p},configurable:!0},interimTranscript:{get:function(){return v},configurable:!0},finalTranscript:{get:function(){return y},configurable:!0}}),e}(c),g=new d;g.STATE_LISTENING=f,g.STATE_TRANSMITTING=l,g.STATE_IDLE=h,g.STATE_ERROR=p,g.dispatchToken=a.register(function(t){switch(t.actionType){case s.ACTION_LISTENING_START:_=f,v="",y="",g.emitChange();break;case s.ACTION_LISTENING_TRANSMITTING:_=l,v="",y=t.finalTranscript,g.emitChange();break;case s.ACTION_LISTENING_DONE:_=h,g.emitChange();break;case s.ACTION_LISTENING_ERROR:_=p,g.emitChange();break;case s.ACTION_LISTENING_RESULT:v=t.interimTranscript,y=t.finalTranscript,g.emitChange()}}),t.exports=g},function(t,e){"use strict";function n(t){var e=t.split(" "),n=r(e,2),i=n[0],o=n[1],u=i.split(":"),a=r(u,3),s=a[0],c=a[1],f=a[2],l=o.split("-"),h=r(l,3),p=h[0],_=h[1],v=h[2];return new Date(v,parseInt(_)-1,p,s,c,f)}var r=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,r=[],i=t[Symbol.iterator]();!(n=i.next()).done&&(r.push(n.value),!e||r.length!==e););return r}throw new TypeError("Invalid attempt to destructure non-iterable instance")};e.parseDateTime=n,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){a.dispatch({actionType:s.ACTION_NEW_LOADED_COMPONENTS,components:t})}function i(){return u("GET","components").then(r)}var o=function(t){return t&&t.__esModule?t["default"]:t};e.newLoaded=r,e.fetchAll=i;var u=o(n(5)),a=o(n(1)),s=o(n(2));Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){s.dispatch({actionType:c.ACTION_NEW_EVENTS,events:t})}function i(){a("GET","events").then(r)}function o(t){var e=void 0===arguments[1]?{}:arguments[1];return a("POST","events/"+t,e).then(function(){f("Event "+t+" successful fired!"),s.dispatch({actionType:c.ACTION_EVENT_FIRED,eventType:t,eventData:e})})}var u=function(t){return t&&t.__esModule?t["default"]:t};e.newEvents=r,e.fetchAll=i,e.fire=o;var a=u(n(5)),s=u(n(1)),c=u(n(2)),f=n(10).notify;Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(){return"EventSource"in window}function i(t){null!==p&&y();var e="/api/stream";t&&(e+="?api_password="+t),p=new EventSource(e),_=t,p.addEventListener("open",function(){v(),c.dispatch({actionType:f.ACTION_STREAM_START}),l.stop(),l.fetchAll() +},!1),p.addEventListener("message",function(t){v(),"ping"!==t.data&&c.dispatch({actionType:f.ACTION_REMOTE_EVENT_RECEIVED,event:JSON.parse(t.data)})},!1),p.addEventListener("error",function(){p.readyState!==EventSource.CLOSED&&c.dispatch({actionType:f.ACTION_STREAM_ERROR})},!1)}function o(){y(),c.dispatch({actionType:f.ACTION_STREAM_STOP}),l.start()}var u=function(t){return t&&t.__esModule?t:{"default":t}},a=function(t){return t&&t.__esModule?t["default"]:t};e.isSupported=r,e.start=i,e.stop=o;var s=a(n(6)),c=a(n(1)),f=a(n(2)),l=u(n(13)),h=6e4,p=null,_=null,v=s.debounce(function(){i(_)},h),y=function(){p.close(),p=null,_=null,v.cancel()};Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t,e){var n=e.useStreaming,r=void 0===n?l.isSupported:n,i=e.rememberLogin,o=void 0===i?!1:i;s.dispatch({actionType:c.ACTION_VALIDATING_AUTH_TOKEN}),a("GET","",!1,{authToken:t}).then(function(){s.dispatch({actionType:c.ACTION_VALID_AUTH_TOKEN,authToken:t,rememberLogin:o}),r?l.start(t):f.start()},function(t){s.dispatch({actionType:c.ACTION_INVALID_AUTH_TOKEN,message:t.message})})}function i(){s.dispatch({actionType:c.ACTION_LOG_OUT})}var o=function(t){return t&&t.__esModule?t:{"default":t}},u=function(t){return t&&t.__esModule?t["default"]:t};e.validate=r,e.logOut=i;var a=u(n(5)),s=u(n(1)),c=u(n(2)),f=o(n(13)),l=o(n(27));Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){a.dispatch({actionType:s.ACTION_NEW_LOGBOOK,logbookEntries:t})}function i(){u("GET","logbook").then(r)}var o=function(t){return t&&t.__esModule?t["default"]:t};e.fetch=i;var u=o(n(5)),a=o(n(1)),s=o(n(2));Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t,e){(t||e.length>0)&&s.dispatch({actionType:c.ACTION_NEW_STATE_HISTORY,stateHistory:e.map(function(t){return t.map(f.fromJSON)}),isFetchAll:t})}function i(){a("GET","history/period").then(function(t){return r(!0,t)})}function o(t){a("GET","history/period?filter_entity_id="+t).then(function(t){return r(!1,t)})}var u=function(t){return t&&t.__esModule?t["default"]:t};e.fetchAll=i,e.fetch=o;var a=u(n(5)),s=u(n(1)),c=u(n(2)),f=u(n(14));Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(){return"webkitSpeechRecognition"in window}function i(){var t=v||_;c.dispatch({actionType:f.ACTION_LISTENING_TRANSMITTING,finalTranscript:t}),l("conversation","process",{text:t}).then(function(){c.dispatch({actionType:f.ACTION_LISTENING_DONE,finalTranscript:t})},function(){c.dispatch({actionType:f.ACTION_LISTENING_ERROR})})}function o(){null!==p&&(p.onstart=null,p.onresult=null,p.onerror=null,p.onend=null,p.stop(),p=null,i()),_="",v=""}function u(){o(),window.r=p=new webkitSpeechRecognition,p.interimResults=!0,p.onstart=function(){c.dispatch({actionType:f.ACTION_LISTENING_START})},p.onresult=function(t){_="";for(var e=t.resultIndex;e<t.results.length;++e)t.results[e].isFinal?v+=t.results[e][0].transcript:_+=t.results[e][0].transcript;c.dispatch({actionType:f.ACTION_LISTENING_RESULT,interimTranscript:_,finalTranscript:v}),y()},p.onerror=function(){c.dispatch({actionType:f.ACTION_LISTENING_ERROR})},p.onend=o,p.start()}var a=function(t){return t&&t.__esModule?t["default"]:t};e.isSupported=r,e.stop=o,e.listen=u;var s=a(n(6)),c=a(n(1)),f=a(n(2)),l=n(11).callService,h=3e3,p=null,_="",v="",y=s.debounce(o,h);Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";function r(t){var e=[];u.forEach(function(n,r){if(this[n]){var i=a[r],o=this[n].bind(this,i);i.addChangeListener(o),e.push({store:i,listener:o}),t&&o()}}.bind(this)),this._storeListeners=e}function i(){this._storeListeners.forEach(function(t){var e=t.store,n=t.listener;e.removeChangeListener(n)})}e.listenToStores=r,e.stopListeningToStores=i;var o=["auth","component","event","service","state","stateHistory","stream","sync","notification","voice","logbook"],u=o.map(function(t){return t+"StoreChanged"}),a=o.map(function(t){var e=t.replace(/([A-Z])/g,function(t){return"_"+t.toLowerCase()});return n(40)("./"+e)});Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,n){"use strict";var r=function(t,e,n){e&&Object.defineProperties(t,e),n&&Object.defineProperties(t.prototype,n)},i=function l(t,e,n){var r=Object.getOwnPropertyDescriptor(t,e);if(void 0===r){var i=Object.getPrototypeOf(t);return null===i?void 0:l(i,e,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},o=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},a=n(4).Record,s=n(24).parseDateTime,c=new a({when:null,name:null,message:null,domain:null,entityId:null},"LogbookEntry"),f=function(t){function e(t,n,r,o,a){u(this,e),i(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,{when:t,name:n,message:r,domain:o,entityId:a})}return o(e,t),r(e,{fromJSON:{value:function(t){var n=t.when,r=t.name,i=t.message,o=t.domain,u=t.entity_id;return new e(s(n),r,i,o,u)},writable:!0,configurable:!0}}),e}(c);t.exports=f},function(t,e,n){"use strict";var r=function c(t,e,n){var r=Object.getOwnPropertyDescriptor(t,e);if(void 0===r){var i=Object.getPrototypeOf(t);return null===i?void 0:c(i,e,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},i=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},u=n(4).Record,a=new u({id:null,message:null},"Notification"),s=function(t){function e(t,n){o(this,e),r(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,{id:t,message:n})}return i(e,t),e}(a);t.exports=s},function(t,e,n){t.exports.Dispatcher=n(36)},function(t,e,n){"use strict";function r(){this.$Dispatcher_callbacks={},this.$Dispatcher_isPending={},this.$Dispatcher_isHandled={},this.$Dispatcher_isDispatching=!1,this.$Dispatcher_pendingPayload=null}var i=n(37),o=1,u="ID_";r.prototype.register=function(t){var e=u+o++;return this.$Dispatcher_callbacks[e]=t,e},r.prototype.unregister=function(t){i(this.$Dispatcher_callbacks[t],"Dispatcher.unregister(...): `%s` does not map to a registered callback.",t),delete this.$Dispatcher_callbacks[t]},r.prototype.waitFor=function(t){i(this.$Dispatcher_isDispatching,"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(var e=0;e<t.length;e++){var n=t[e];this.$Dispatcher_isPending[n]?i(this.$Dispatcher_isHandled[n],"Dispatcher.waitFor(...): Circular dependency detected while waiting for `%s`.",n):(i(this.$Dispatcher_callbacks[n],"Dispatcher.waitFor(...): `%s` does not map to a registered callback.",n),this.$Dispatcher_invokeCallback(n))}},r.prototype.dispatch=function(t){i(!this.$Dispatcher_isDispatching,"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this.$Dispatcher_startDispatching(t);try{for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]||this.$Dispatcher_invokeCallback(e)}finally{this.$Dispatcher_stopDispatching()}},r.prototype.isDispatching=function(){return this.$Dispatcher_isDispatching},r.prototype.$Dispatcher_invokeCallback=function(t){this.$Dispatcher_isPending[t]=!0,this.$Dispatcher_callbacks[t](this.$Dispatcher_pendingPayload),this.$Dispatcher_isHandled[t]=!0},r.prototype.$Dispatcher_startDispatching=function(t){for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]=!1,this.$Dispatcher_isHandled[e]=!1;this.$Dispatcher_pendingPayload=t,this.$Dispatcher_isDispatching=!0},r.prototype.$Dispatcher_stopDispatching=function(){this.$Dispatcher_pendingPayload=null,this.$Dispatcher_isDispatching=!1},t.exports=r},function(t){"use strict";var e=function(t,e,n,r,i,o,u,a){if(!t){var s;if(void 0===e)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,i,o,u,a],f=0;s=new Error("Invariant Violation: "+e.replace(/%s/g,function(){return c[f++]}))}throw s.framesToPop=1,s}};t.exports=e},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t){function e(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(t){return"function"==typeof t}function r(t){return"number"==typeof t}function i(t){return"object"==typeof t&&null!==t}function o(t){return void 0===t}t.exports=e,e.EventEmitter=e,e.prototype._events=void 0,e.prototype._maxListeners=void 0,e.defaultMaxListeners=10,e.prototype.setMaxListeners=function(t){if(!r(t)||0>t||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},e.prototype.emit=function(t){var e,r,u,a,s,c;if(this._events||(this._events={}),"error"===t&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(e=arguments[1],e instanceof Error)throw e;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[t],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:for(u=arguments.length,a=new Array(u-1),s=1;u>s;s++)a[s-1]=arguments[s];r.apply(this,a)}else if(i(r)){for(u=arguments.length,a=new Array(u-1),s=1;u>s;s++)a[s-1]=arguments[s];for(c=r.slice(),u=c.length,s=0;u>s;s++)c[s].apply(this,a)}return!0},e.prototype.addListener=function(t,r){var u;if(!n(r))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,n(r.listener)?r.listener:r),this._events[t]?i(this._events[t])?this._events[t].push(r):this._events[t]=[this._events[t],r]:this._events[t]=r,i(this._events[t])&&!this._events[t].warned){var u;u=o(this._maxListeners)?e.defaultMaxListeners:this._maxListeners,u&&u>0&&this._events[t].length>u&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace())}return this},e.prototype.on=e.prototype.addListener,e.prototype.once=function(t,e){function r(){this.removeListener(t,r),i||(i=!0,e.apply(this,arguments))}if(!n(e))throw TypeError("listener must be a function");var i=!1;return r.listener=e,this.on(t,r),this},e.prototype.removeListener=function(t,e){var r,o,u,a;if(!n(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(r=this._events[t],u=r.length,o=-1,r===e||n(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(i(r)){for(a=u;a-->0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=a;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},e.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[t],n(r))this.removeListener(t,r);else for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},e.prototype.listeners=function(t){var e;return e=this._events&&this._events[t]?n(this._events[t])?[this._events[t]]:this._events[t].slice():[]},e.listenerCount=function(t,e){var r;return r=t._events&&t._events[e]?n(t._events[e])?1:t._events[e].length:0}},function(t,e,n){function r(t){return n(i(t))}function i(t){return o[t]||function(){throw new Error("Cannot find module '"+t+"'.")}()}var o={"./auth":7,"./auth.js":7,"./component":15,"./component.js":15,"./event":16,"./event.js":16,"./logbook":17,"./logbook.js":17,"./notification":18,"./notification.js":18,"./preference":19,"./preference.js":19,"./service":8,"./service.js":8,"./state":20,"./state.js":20,"./state_history":21,"./state_history.js":21,"./store":3,"./store.js":3,"./stream":9,"./stream.js":9,"./sync":22,"./sync.js":22,"./voice":23,"./voice.js":23};r.keys=function(){return Object.keys(o)},r.resolve=i,t.exports=r,r.id=40}]);</script><script>(function(){var DOMAINS_WITH_CARD=["thermostat","configurator","scene"];var DOMAINS_WITH_MORE_INFO=["light","group","sun","configurator","thermostat","script"];PolymerExpressions.prototype.HATimeToDate=function(timeString){if(!timeString)return;return window.hass.util.parseDateTime(timeString)};PolymerExpressions.prototype.HATimeStripDate=function(timeString){return(timeString||"").split(" ")[0]};Object.defineProperties(window.hass.stateModel.prototype,{cardType:{get:function(){if(DOMAINS_WITH_CARD.indexOf(this.domain)!==-1){return this.domain}else if(this.canToggle){return"toggle"}else{return"display"}}},moreInfoType:{get:function(){if(DOMAINS_WITH_MORE_INFO.indexOf(this.domain)!==-1){return this.domain}else{return"default"}}}});var dispatcher=window.hass.dispatcher,constants=window.hass.constants,preferenceStore=window.hass.preferenceStore,authActions=window.hass.authActions;window.hass.uiConstants={ACTION_SHOW_DIALOG_MORE_INFO:"ACTION_SHOW_DIALOG_MORE_INFO",STATE_FILTERS:{group:"Groups",script:"Scripts",scene:"Scenes"}};window.hass.uiActions={showMoreInfoDialog:function(entityId){dispatcher.dispatch({actionType:this.ACTION_SHOW_DIALOG_MORE_INFO,entityId:entityId})},validateAuth:function(authToken,rememberLogin){authActions.validate(authToken,{useStreaming:preferenceStore.useStreaming,rememberLogin:rememberLogin})}};window.hass.uiUtil={}})();</script></div> <div hidden><style>html /deep/ core-label{cursor:default}</style><polymer-element name="core-label" assetpath="polymer/bower_components/core-label/"><script>(function(){var ID=0;function generate(node){if(!node.id){node.id="core-label-"+ID++}return node.id}Polymer("core-label",{publish:{"for":{reflect:true,value:""}},eventDelegates:{tap:"tapHandler"},created:function(){generate(this);this._forElement=null},ready:function(){if(!this.for){this._forElement=this.querySelector("[for]");this._tie()}},tapHandler:function(ev){if(!this._forElement){return}if(ev.target===this._forElement){return}this._forElement.focus();this._forElement.click();this.fire("tap",null,this._forElement)},_tie:function(){if(this._forElement){this._forElement.setAttribute("aria-labelledby",this.id)}},_findScope:function(){var n=this.parentNode;while(n&&n.parentNode){n=n.parentNode}return n},forChanged:function(oldFor,newFor){if(this._forElement){this._forElement.removeAttribute("aria-labelledby")}var scope=this._findScope();if(!scope){return}this._forElement=scope.querySelector(newFor);if(this._forElement){this._tie()}}})})();</script></polymer-element><polymer-element name="paper-ripple" attributes="initialOpacity opacityDecayVelocity" assetpath="polymer/bower_components/paper-ripple/"><template><style>:host{display:block;position:relative;border-radius:inherit;overflow:hidden}:host-context([noink]){pointer-events:none}#bg,#waves,.wave-container,.wave{pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%}#bg,.wave{opacity:0}#waves,.wave{overflow:hidden}.wave-container,.wave{border-radius:50%}:host(.circle) #bg,:host(.circle) #waves{border-radius:50%}:host(.circle) .wave-container{overflow:hidden}</style><div id="bg"></div><div id="waves"></div></template><script>(function(){var waveMaxRadius=150;function waveRadiusFn(touchDownMs,touchUpMs,anim){var touchDown=touchDownMs/1e3;var touchUp=touchUpMs/1e3;var totalElapsed=touchDown+touchUp;var ww=anim.width,hh=anim.height;var waveRadius=Math.min(Math.sqrt(ww*ww+hh*hh),waveMaxRadius)*1.1+5;var duration=1.1-.2*(waveRadius/waveMaxRadius);var tt=totalElapsed/duration;var size=waveRadius*(1-Math.pow(80,-tt));return Math.abs(size)}function waveOpacityFn(td,tu,anim){var touchDown=td/1e3;var touchUp=tu/1e3;var totalElapsed=touchDown+touchUp;if(tu<=0){return anim.initialOpacity}return Math.max(0,anim.initialOpacity-touchUp*anim.opacityDecayVelocity)}function waveOuterOpacityFn(td,tu,anim){var touchDown=td/1e3;var touchUp=tu/1e3;var outerOpacity=touchDown*.3;var waveOpacity=waveOpacityFn(td,tu,anim);return Math.max(0,Math.min(outerOpacity,waveOpacity))}function waveDidFinish(wave,radius,anim){var waveOpacity=waveOpacityFn(wave.tDown,wave.tUp,anim);return waveOpacity<.01&&radius>=Math.min(wave.maxRadius,waveMaxRadius)}function waveAtMaximum(wave,radius,anim){var waveOpacity=waveOpacityFn(wave.tDown,wave.tUp,anim);return waveOpacity>=anim.initialOpacity&&radius>=Math.min(wave.maxRadius,waveMaxRadius)}function drawRipple(ctx,x,y,radius,innerAlpha,outerAlpha){if(outerAlpha!==undefined){ctx.bg.style.opacity=outerAlpha}ctx.wave.style.opacity=innerAlpha;var s=radius/(ctx.containerSize/2);var dx=x-ctx.containerWidth/2;var dy=y-ctx.containerHeight/2;ctx.wc.style.webkitTransform="translate3d("+dx+"px,"+dy+"px,0)";ctx.wc.style.transform="translate3d("+dx+"px,"+dy+"px,0)";ctx.wave.style.webkitTransform="scale("+s+","+s+")";ctx.wave.style.transform="scale3d("+s+","+s+",1)"}function createWave(elem){var elementStyle=window.getComputedStyle(elem);var fgColor=elementStyle.color;var inner=document.createElement("div");inner.style.backgroundColor=fgColor;inner.classList.add("wave");var outer=document.createElement("div");outer.classList.add("wave-container");outer.appendChild(inner);var container=elem.$.waves;container.appendChild(outer);elem.$.bg.style.backgroundColor=fgColor;var wave={bg:elem.$.bg,wc:outer,wave:inner,waveColor:fgColor,maxRadius:0,isMouseDown:false,mouseDownStart:0,mouseUpStart:0,tDown:0,tUp:0};return wave}function removeWaveFromScope(scope,wave){if(scope.waves){var pos=scope.waves.indexOf(wave);scope.waves.splice(pos,1);wave.wc.remove()}}var pow=Math.pow;var now=Date.now;if(window.performance&&performance.now){now=performance.now.bind(performance)}function cssColorWithAlpha(cssColor,alpha){var parts=cssColor.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(typeof alpha=="undefined"){alpha=1}if(!parts){return"rgba(255, 255, 255, "+alpha+")"}return"rgba("+parts[1]+", "+parts[2]+", "+parts[3]+", "+alpha+")"}function dist(p1,p2){return Math.sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2))}function distanceFromPointToFurthestCorner(point,size){var tl_d=dist(point,{x:0,y:0});var tr_d=dist(point,{x:size.w,y:0});var bl_d=dist(point,{x:0,y:size.h});var br_d=dist(point,{x:size.w,y:size.h});return Math.max(tl_d,tr_d,bl_d,br_d)}Polymer("paper-ripple",{initialOpacity:.25,opacityDecayVelocity:.8,backgroundFill:true,pixelDensity:2,eventDelegates:{down:"downAction",up:"upAction"},ready:function(){this.waves=[]},downAction:function(e){var wave=createWave(this);this.cancelled=false;wave.isMouseDown=true;wave.tDown=0;wave.tUp=0;wave.mouseUpStart=0;wave.mouseDownStart=now();var rect=this.getBoundingClientRect();var width=rect.width;var height=rect.height;var touchX=e.x-rect.left;var touchY=e.y-rect.top;wave.startPosition={x:touchX,y:touchY};if(this.classList.contains("recenteringTouch")){wave.endPosition={x:width/2,y:height/2};wave.slideDistance=dist(wave.startPosition,wave.endPosition)}wave.containerSize=Math.max(width,height);wave.containerWidth=width;wave.containerHeight=height;wave.maxRadius=distanceFromPointToFurthestCorner(wave.startPosition,{w:width,h:height});wave.wc.style.top=(wave.containerHeight-wave.containerSize)/2+"px";wave.wc.style.left=(wave.containerWidth-wave.containerSize)/2+"px";wave.wc.style.width=wave.containerSize+"px";wave.wc.style.height=wave.containerSize+"px";this.waves.push(wave);if(!this._loop){this._loop=this.animate.bind(this,{width:width,height:height});requestAnimationFrame(this._loop)}},upAction:function(){for(var i=0;i<this.waves.length;i++){var wave=this.waves[i];if(wave.isMouseDown){wave.isMouseDown=false;wave.mouseUpStart=now();wave.mouseDownStart=0;wave.tUp=0;break}}this._loop&&requestAnimationFrame(this._loop)},cancel:function(){this.cancelled=true},animate:function(ctx){var shouldRenderNextFrame=false;var deleteTheseWaves=[];var longestTouchDownDuration=0;var longestTouchUpDuration=0;var lastWaveColor=null;var anim={initialOpacity:this.initialOpacity,opacityDecayVelocity:this.opacityDecayVelocity,height:ctx.height,width:ctx.width};for(var i=0;i<this.waves.length;i++){var wave=this.waves[i];if(wave.mouseDownStart>0){wave.tDown=now()-wave.mouseDownStart}if(wave.mouseUpStart>0){wave.tUp=now()-wave.mouseUpStart}var tUp=wave.tUp;var tDown=wave.tDown;longestTouchDownDuration=Math.max(longestTouchDownDuration,tDown);longestTouchUpDuration=Math.max(longestTouchUpDuration,tUp);var radius=waveRadiusFn(tDown,tUp,anim);var waveAlpha=waveOpacityFn(tDown,tUp,anim);var waveColor=cssColorWithAlpha(wave.waveColor,waveAlpha);lastWaveColor=wave.waveColor;var x=wave.startPosition.x;var y=wave.startPosition.y;if(wave.endPosition){var translateFraction=Math.min(1,radius/wave.containerSize*2/Math.sqrt(2));x+=translateFraction*(wave.endPosition.x-wave.startPosition.x);y+=translateFraction*(wave.endPosition.y-wave.startPosition.y)}var bgFillColor=null;if(this.backgroundFill){var bgFillAlpha=waveOuterOpacityFn(tDown,tUp,anim);bgFillColor=cssColorWithAlpha(wave.waveColor,bgFillAlpha)}drawRipple(wave,x,y,radius,waveAlpha,bgFillAlpha);var maximumWave=waveAtMaximum(wave,radius,anim);var waveDissipated=waveDidFinish(wave,radius,anim);var shouldKeepWave=!waveDissipated||maximumWave;var shouldRenderWaveAgain=wave.mouseUpStart?!waveDissipated:!maximumWave;shouldRenderNextFrame=shouldRenderNextFrame||shouldRenderWaveAgain;if(!shouldKeepWave||this.cancelled){deleteTheseWaves.push(wave)}}if(shouldRenderNextFrame){requestAnimationFrame(this._loop)}for(var i=0;i<deleteTheseWaves.length;++i){var wave=deleteTheseWaves[i];removeWaveFromScope(this,wave)}if(!this.waves.length&&this._loop){this.$.bg.style.backgroundColor=null;this._loop=null;this.fire("core-transitionend")}}})})();</script></polymer-element><style shim-shadowdom="">html /deep/ core-a11y-keys{display:none}</style><polymer-element name="core-a11y-keys" assetpath="polymer/bower_components/core-a11y-keys/"><script>(function(){var KEY_IDENTIFIER={"U+0009":"tab","U+001B":"esc","U+0020":"space","U+002A":"*","U+0030":"0","U+0031":"1","U+0032":"2","U+0033":"3","U+0034":"4","U+0035":"5","U+0036":"6","U+0037":"7","U+0038":"8","U+0039":"9","U+0041":"a","U+0042":"b","U+0043":"c","U+0044":"d","U+0045":"e","U+0046":"f","U+0047":"g","U+0048":"h","U+0049":"i","U+004A":"j","U+004B":"k","U+004C":"l","U+004D":"m","U+004E":"n","U+004F":"o","U+0050":"p","U+0051":"q","U+0052":"r","U+0053":"s","U+0054":"t","U+0055":"u","U+0056":"v","U+0057":"w","U+0058":"x","U+0059":"y","U+005A":"z","U+007F":"del"};var KEY_CODE={9:"tab",13:"enter",27:"esc",33:"pageup",34:"pagedown",35:"end",36:"home",32:"space",37:"left",38:"up",39:"right",40:"down",46:"del",106:"*"};var KEY_CHAR=/[a-z0-9*]/;function transformKey(key){var validKey="";if(key){var lKey=key.toLowerCase();if(lKey.length==1){if(KEY_CHAR.test(lKey)){validKey=lKey}}else if(lKey=="multiply"){validKey="*"}else{validKey=lKey}}return validKey}var IDENT_CHAR=/U\+/;function transformKeyIdentifier(keyIdent){var validKey="";if(keyIdent){if(IDENT_CHAR.test(keyIdent)){validKey=KEY_IDENTIFIER[keyIdent]}else{validKey=keyIdent.toLowerCase()}}return validKey}function transformKeyCode(keyCode){var validKey="";if(Number(keyCode)){if(keyCode>=65&&keyCode<=90){validKey=String.fromCharCode(32+keyCode)}else if(keyCode>=112&&keyCode<=123){validKey="f"+(keyCode-112)}else if(keyCode>=48&&keyCode<=57){validKey=String(48-keyCode)}else if(keyCode>=96&&keyCode<=105){validKey=String(96-keyCode)}else{validKey=KEY_CODE[keyCode]}}return validKey}function keyboardEventToKey(ev){var normalizedKey=transformKey(ev.key)||transformKeyIdentifier(ev.keyIdentifier)||transformKeyCode(ev.keyCode)||transformKey(ev.detail.key)||"";return{shift:ev.shiftKey,ctrl:ev.ctrlKey,meta:ev.metaKey,alt:ev.altKey,key:normalizedKey}}function stringToKey(keyCombo){var keys=keyCombo.split("+");var keyObj=Object.create(null);keys.forEach(function(key){if(key=="shift"){keyObj.shift=true}else if(key=="ctrl"){keyObj.ctrl=true}else if(key=="alt"){keyObj.alt=true}else{keyObj.key=key}});return keyObj}function keyMatches(a,b){return Boolean(a.alt)==Boolean(b.alt)&&Boolean(a.ctrl)==Boolean(b.ctrl)&&Boolean(a.shift)==Boolean(b.shift)&&a.key===b.key}function processKeys(ev){var current=keyboardEventToKey(ev);for(var i=0,dk;i<this._desiredKeys.length;i++){dk=this._desiredKeys[i];if(keyMatches(dk,current)){ev.preventDefault();ev.stopPropagation();this.fire("keys-pressed",current,this,false);break}}}function listen(node,handler){if(node&&node.addEventListener){node.addEventListener("keydown",handler)}}function unlisten(node,handler){if(node&&node.removeEventListener){node.removeEventListener("keydown",handler)}}Polymer("core-a11y-keys",{created:function(){this._keyHandler=processKeys.bind(this)},attached:function(){if(!this.target){this.target=this.parentNode}listen(this.target,this._keyHandler)},detached:function(){unlisten(this.target,this._keyHandler)},publish:{keys:"",target:null},keysChanged:function(){var normalized=this.keys.replace("*","* shift+*");this._desiredKeys=normalized.toLowerCase().split(" ").map(stringToKey)},targetChanged:function(oldTarget){unlisten(oldTarget,this._keyHandler);listen(this.target,this._keyHandler)}})})();</script></polymer-element><polymer-element name="paper-radio-button" role="radio" tabindex="0" aria-checked="false" assetpath="polymer/bower_components/paper-radio-button/"><template><style>:host{display:inline-block;white-space:nowrap}:host(:focus){outline:0}#radioContainer{position:relative;width:16px;height:16px;cursor:pointer}#radioContainer.labeled{display:inline-block;vertical-align:middle}#ink{position:absolute;top:-16px;left:-16px;width:48px;height:48px;color:#5a5a5a}#ink[checked]{color:#0f9d58}#offRadio{position:absolute;top:0;left:0;width:12px;height:12px;border-radius:50%;border:solid 2px;border-color:#5a5a5a;transition:border-color .28s}:host([checked]) #offRadio{border-color:#009688}#onRadio{position:absolute;top:4px;left:4px;width:8px;height:8px;border-radius:50%;background-color:#009688;-webkit-transform:scale(0);transform:scale(0);transition:-webkit-transform ease .28s;transition:transform ease .28s}:host([checked]) #onRadio{-webkit-transform:scale(1);transform:scale(1)}#radioLabel{position:relative;display:inline-block;vertical-align:middle;margin-left:10px;white-space:normal;pointer-events:none}#radioLabel[hidden]{display:none}:host([disabled]){pointer-events:none}:host([disabled]) #offRadio,:host([disabled]) #onRadio{opacity:.33}:host([disabled]) #offRadio{border-color:#5a5a5a}:host([disabled][checked]) #onRadio{background-color:#5a5a5a}</style><core-a11y-keys target="{{}}" keys="space" on-keys-pressed="{{tap}}"></core-a11y-keys><div id="radioContainer" class="{{ {labeled: label} | tokenList }}"><div id="offRadio"></div><div id="onRadio"></div><paper-ripple id="ink" class="circle recenteringTouch" checked?="{{!checked}}"></paper-ripple></div><div id="radioLabel" aria-hidden="true" hidden?="{{!label}}">{{label}}<content></content></div></template><script>Polymer("paper-radio-button",{publish:{checked:{value:false,reflect:true},label:"",toggles:false,disabled:{value:false,reflect:true}},eventDelegates:{tap:"tap"},tap:function(){if(this.disabled){return}var old=this.checked;this.toggle();if(this.checked!==old){this.fire("change")}},toggle:function(){this.checked=!this.toggles||!this.checked},checkedChanged:function(){this.setAttribute("aria-checked",this.checked?"true":"false");this.fire("core-change")},labelChanged:function(){this.setAttribute("aria-label",this.label)}});</script></polymer-element><polymer-element name="paper-checkbox" extends="paper-radio-button" role="checkbox" assetpath="polymer/bower_components/paper-checkbox/"><template><style>:host{display:inline-block;white-space:nowrap}:host(:focus){outline:0}.hidden{display:none}#checkboxContainer{position:relative;width:18px;height:18px;cursor:pointer;-webkit-transform:translateZ(0);transform:translateZ(0)}#checkboxContainer.labeled{display:inline-block;vertical-align:middle}#ink{position:absolute;top:-15px;left:-15px;width:48px;height:48px;color:#5a5f5a}#ink[checked]{color:#B2DFDB}#checkbox{position:relative;box-sizing:border-box;height:100%;border:solid 2px #5a5a5a;border-radius:2px;pointer-events:none;-webkit-transition:background-color 140ms,border-color 140ms;transition:background-color 140ms,border-color 140ms}:host([checked]) #checkmark{-webkit-animation:checkmark-expand 140ms ease-out forwards;animation:checkmark-expand 140ms ease-out forwards}@-webkit-keyframes checkmark-expand{0%{top:9px;left:6px;width:0;height:0}100%{top:-1px;left:4px;width:5px;height:10px}}@keyframes checkmark-expand{0%{top:9px;left:6px;width:0;height:0}100%{top:-1px;left:4px;width:5px;height:10px}}#checkbox.checked{background-color:#009688;border-color:#009688}#checkmark{-webkit-transform:rotate(45deg);transform:rotate(45deg);position:absolute;top:-1px;left:4px;width:5px;height:10px;border-style:solid;border-top:none;border-left:none;border-right-width:2px;border-bottom-width:2px;border-color:#fff}#checkboxLabel{position:relative;display:inline-block;vertical-align:middle;padding-left:8px;white-space:normal;pointer-events:none}#checkboxLabel[hidden]{display:none}:host([disabled]){pointer-events:none}:host([disabled]) #checkbox{opacity:.33;border-color:#5a5a5a}:host([disabled][checked]) #checkbox{background-color:#5a5a5a}</style><div id="checkboxContainer" class="{{ {labeled: label} | tokenList }}"><paper-ripple id="ink" class="circle recenteringTouch" checked?="{{!checked}}"></paper-ripple><div id="checkbox" class="{{ {checked: checked} | tokenList }}"><div id="checkmark" class="{{ {hidden: !checked} | tokenList }}"></div></div></div><div id="checkboxLabel" hidden?="{{!label}}">{{label}}<content></content></div></template><script>Polymer("paper-checkbox",{toggles:true,checkedChanged:function(){this.setAttribute("aria-checked",this.checked?"true":"false");this.fire("core-change")}});</script></polymer-element><style shim-shadowdom="">html /deep/ paper-shadow,html /deep/ paper-animated-shadow{display:block;position:relative}html /deep/ paper-shadow::shadow #shadow-bottom,html /deep/ paper-shadow::shadow #shadow-top{border-radius:inherit;pointer-events:none}html /deep/ paper-shadow::shadow #shadow-bottom[animated],html /deep/ paper-shadow::shadow #shadow-top[animated]{transition:box-shadow .28s cubic-bezier(0.4,0,.2,1)}html /deep/ .paper-shadow-top-z-1{box-shadow:none}html /deep/ .paper-shadow-bottom-z-1{box-shadow:0 1px 4px 0 rgba(0,0,0,.37)}html /deep/ .paper-shadow-top-z-2{box-shadow:0 2px 2px 0 rgba(0,0,0,.2)}html /deep/ .paper-shadow-bottom-z-2{box-shadow:0 6px 10px 0 rgba(0,0,0,.3)}html /deep/ .paper-shadow-top-z-3{box-shadow:0 11px 7px 0 rgba(0,0,0,.19)}html /deep/ .paper-shadow-bottom-z-3{box-shadow:0 13px 25px 0 rgba(0,0,0,.3)}html /deep/ .paper-shadow-top-z-4{box-shadow:0 14px 12px 0 rgba(0,0,0,.17)}html /deep/ .paper-shadow-bottom-z-4{box-shadow:0 20px 40px 0 rgba(0,0,0,.3)}html /deep/ .paper-shadow-top-z-5{box-shadow:0 17px 17px 0 rgba(0,0,0,.15)}html /deep/ .paper-shadow-bottom-z-5{box-shadow:0 27px 55px 0 rgba(0,0,0,.3)}</style><polymer-element name="paper-shadow" assetpath="polymer/bower_components/paper-shadow/"><template><div id="shadow-bottom" fit="" animated?="[[animated]]" class="paper-shadow-bottom-z-[[z]]"></div><div id="shadow-top" fit="" animated?="[[animated]]" class="paper-shadow-top-z-[[z]]"></div><content></content></template><script>Polymer("paper-shadow",{publish:{z:1,animated:false},setZ:function(newZ){if(this.z!==newZ){this.$["shadow-bottom"].classList.remove("paper-shadow-bottom-z-"+this.z);this.$["shadow-bottom"].classList.add("paper-shadow-bottom-z-"+newZ);this.$["shadow-top"].classList.remove("paper-shadow-top-z-"+this.z);this.$["shadow-top"].classList.add("paper-shadow-top-z-"+newZ);this.z=newZ}}});</script></polymer-element><script>Polymer.mixin2=function(prototype,mixin){if(mixin.mixinPublish){prototype.publish=prototype.publish||{};Polymer.mixin(prototype.publish,mixin.mixinPublish)}if(mixin.mixinDelegates){prototype.eventDelegates=prototype.eventDelegates||{};for(var e in mixin.mixinDelegates){if(!prototype.eventDelegates[e]){prototype.eventDelegates[e]=mixin.mixinDelegates[e]}}}if(mixin.mixinObserve){prototype.observe=prototype.observe||{};for(var o in mixin.mixinObserve){if(!prototype.observe[o]&&!prototype[o+"Changed"]){prototype.observe[o]=mixin.mixinObserve[o]}}}Polymer.mixin(prototype,mixin);delete prototype.mixinPublish;delete prototype.mixinDelegates;delete prototype.mixinObserve;return prototype};</script><script>Polymer.CoreFocusable={mixinPublish:{active:{value:false,reflect:true},focused:{value:false,reflect:true},pressed:{value:false,reflect:true},disabled:{value:false,reflect:true},toggle:false},mixinDelegates:{contextMenu:"_contextMenuAction",down:"_downAction",up:"_upAction",focus:"_focusAction",blur:"_blurAction"},mixinObserve:{disabled:"_disabledChanged"},_disabledChanged:function(){if(this.disabled){this.style.pointerEvents="none";this.removeAttribute("tabindex");this.setAttribute("aria-disabled","")}else{this.style.pointerEvents="";this.setAttribute("tabindex",0);this.removeAttribute("aria-disabled")}},_downAction:function(){this.pressed=true;if(this.toggle){this.active=!this.active}else{this.active=true}},_contextMenuAction:function(e){this._upAction(e);this._focusAction()},_upAction:function(){this.pressed=false;if(!this.toggle){this.active=false}},_focusAction:function(){if(!this.pressed){this.focused=true}},_blurAction:function(){this.focused=false}};</script><polymer-element name="paper-button-base" tabindex="0" assetpath="polymer/bower_components/paper-button/"><script>(function(){var p={eventDelegates:{down:"downAction",up:"upAction"},toggleBackground:function(){if(this.active){if(!this.$.bg){var bg=document.createElement("div");bg.setAttribute("id","bg");bg.setAttribute("fit","");bg.style.opacity=.25;this.$.bg=bg;this.shadowRoot.insertBefore(bg,this.shadowRoot.firstChild)}this.$.bg.style.backgroundColor=getComputedStyle(this).color}else{if(this.$.bg){this.$.bg.style.backgroundColor=""}}},activeChanged:function(){this.super();if(this.toggle&&(!this.lastEvent||this.matches(":host-context([noink])"))){this.toggleBackground()}},pressedChanged:function(){this.super();if(!this.lastEvent){return}if(this.$.ripple&&!this.hasAttribute("noink")){if(this.pressed){this.$.ripple.downAction(this.lastEvent)}else{this.$.ripple.upAction()}}this.adjustZ()},focusedChanged:function(){this.adjustZ()},disabledChanged:function(){this._disabledChanged();this.adjustZ()},recenteringTouchChanged:function(){if(this.$.ripple){this.$.ripple.classList.toggle("recenteringTouch",this.recenteringTouch)}},fillChanged:function(){if(this.$.ripple){this.$.ripple.classList.toggle("fill",this.fill)}},adjustZ:function(){if(!this.$.shadow){return}if(this.active){this.$.shadow.setZ(2)}else if(this.disabled){this.$.shadow.setZ(0)}else if(this.focused){this.$.shadow.setZ(3)}else{this.$.shadow.setZ(1)}},downAction:function(e){this._downAction();if(this.hasAttribute("noink")){return}this.lastEvent=e;if(!this.$.ripple){var ripple=document.createElement("paper-ripple");ripple.setAttribute("id","ripple");ripple.setAttribute("fit","");if(this.recenteringTouch){ripple.classList.add("recenteringTouch")}if(!this.fill){ripple.classList.add("circle")}this.$.ripple=ripple;this.shadowRoot.insertBefore(ripple,this.shadowRoot.firstChild)}},upAction:function(){this._upAction();if(this.toggle){this.toggleBackground();if(this.$.ripple){this.$.ripple.cancel()}}}};Polymer.mixin2(p,Polymer.CoreFocusable);Polymer(p)})();</script></polymer-element><polymer-element name="paper-button" extends="paper-button-base" attributes="raised recenteringTouch fill" role="button" assetpath="polymer/bower_components/paper-button/"><template><style>:host{display:inline-block;position:relative;box-sizing:border-box;min-width:5.14em;margin:0 .29em;background:0 0;text-align:center;font:inherit;text-transform:uppercase;outline:0;border-radius:3px;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;cursor:pointer;z-index:0}:host([disabled]){background:#eaeaea;color:#a8a8a8;cursor:auto;pointer-events:none}::content *{text-transform:inherit}#bg,#shadow{border-radius:inherit}#ripple{pointer-events:none;z-index:-1}.button-content{padding:.7em .57em}polyfill-next-selector{content:'.button-content > a'}::content>a{height:100%;padding:.7em .57em;margin:-.7em -.57em;-ms-flex:1 1 0;-webkit-flex:1;flex:1;-webkit-flex-basis:0;flex-basis:0}</style><template if="{{raised}}"><paper-shadow id="shadow" fit="" animated=""></paper-shadow></template><div class="button-content" relative="" layout="" horizontal="" center-center=""><content></content></div><core-a11y-keys keys="space enter" target="{{}}" on-keys-pressed="{{_activate}}"></core-a11y-keys></template><script>Polymer("paper-button",{publish:{raised:false,recenteringTouch:false,fill:true},_activate:function(){this.click();this.fire("tap");if(!this.pressed){var bcr=this.getBoundingClientRect();var x=bcr.left+bcr.width/2;var y=bcr.top+bcr.height/2;this.downAction({x:x,y:y});var fn=function fn(){this.upAction();this.removeEventListener("keyup",fn)}.bind(this);this.addEventListener("keyup",fn)}}});</script></polymer-element><polymer-element name="core-meta" attributes="label type" hidden assetpath="polymer/bower_components/core-meta/"><script>(function(){var SKIP_ID="meta";var metaData={},metaArray={};Polymer("core-meta",{type:"default",alwaysPrepare:true,ready:function(){this.register(this.id)},get metaArray(){var t=this.type;if(!metaArray[t]){metaArray[t]=[]}return metaArray[t]},get metaData(){var t=this.type;if(!metaData[t]){metaData[t]={}}return metaData[t]},register:function(id,old){if(id&&id!==SKIP_ID){this.unregister(this,old);this.metaData[id]=this;this.metaArray.push(this)}},unregister:function(meta,id){delete this.metaData[id||meta.id];var i=this.metaArray.indexOf(meta);if(i>=0){this.metaArray.splice(i,1)}},get list(){return this.metaArray},byId:function(id){return this.metaData[id]}})})();</script></polymer-element><polymer-element name="core-iconset" extends="core-meta" attributes="src width icons iconSize" assetpath="polymer/bower_components/core-iconset/"><script>Polymer("core-iconset",{src:"",width:0,icons:"",iconSize:24,offsetX:0,offsetY:0,type:"iconset",created:function(){this.iconMap={};this.iconNames=[];this.themes={}},ready:function(){if(this.src&&this.ownerDocument!==document){this.src=this.resolvePath(this.src,this.ownerDocument.baseURI)}this.super();this.updateThemes()},iconsChanged:function(){var ox=this.offsetX;var oy=this.offsetY;this.icons&&this.icons.split(/\s+/g).forEach(function(name,i){this.iconNames.push(name);this.iconMap[name]={offsetX:ox,offsetY:oy};if(ox+this.iconSize<this.width){ox+=this.iconSize}else{ox=this.offsetX;oy+=this.iconSize}},this)},updateThemes:function(){var ts=this.querySelectorAll("property[theme]");ts&&ts.array().forEach(function(t){this.themes[t.getAttribute("theme")]={offsetX:parseInt(t.getAttribute("offsetX"))||0,offsetY:parseInt(t.getAttribute("offsetY"))||0}},this)},getOffset:function(icon,theme){var i=this.iconMap[icon];if(!i){var n=this.iconNames[Number(icon)];i=this.iconMap[n]}var t=this.themes[theme];if(i&&t){return{offsetX:i.offsetX+t.offsetX,offsetY:i.offsetY+t.offsetY}}return i},applyIcon:function(element,icon,scale){var offset=this.getOffset(icon);scale=scale||1;if(element&&offset){var icon=element._icon||document.createElement("div");var style=icon.style;style.backgroundImage="url("+this.src+")";style.backgroundPosition=-offset.offsetX*scale+"px"+" "+(-offset.offsetY*scale+"px");style.backgroundSize=scale===1?"auto":this.width*scale+"px";if(icon.parentNode!==element){element.appendChild(icon)}return icon}}});</script></polymer-element><style shim-shadowdom="">html /deep/ core-icon{display:inline-block;vertical-align:middle;background-repeat:no-repeat;fill:currentcolor;position:relative;height:24px;width:24px}</style><polymer-element name="core-icon" attributes="src icon alt" assetpath="polymer/bower_components/core-icon/"><script>(function(){var meta;Polymer("core-icon",{src:"",icon:"",alt:null,observe:{icon:"updateIcon",alt:"updateAlt"},defaultIconset:"icons",ready:function(){if(!meta){meta=document.createElement("core-iconset")}if(this.hasAttribute("aria-label")){if(!this.hasAttribute("role")){this.setAttribute("role","img")}return}this.updateAlt()},srcChanged:function(){var icon=this._icon||document.createElement("div");icon.textContent="";icon.setAttribute("fit","");icon.style.backgroundImage="url("+this.src+")";icon.style.backgroundPosition="center";icon.style.backgroundSize="100%";if(!icon.parentNode){this.appendChild(icon)}this._icon=icon},getIconset:function(name){return meta.byId(name||this.defaultIconset)},updateIcon:function(oldVal,newVal){if(!this.icon){this.updateAlt();return}var parts=String(this.icon).split(":");var icon=parts.pop();if(icon){var set=this.getIconset(parts.pop());if(set){this._icon=set.applyIcon(this,icon);if(this._icon){this._icon.setAttribute("fit","")}}}if(oldVal){if(oldVal.split(":").pop()==this.getAttribute("aria-label")){this.updateAlt()}}},updateAlt:function(){if(this.getAttribute("aria-hidden")){return}if(this.alt===""){this.setAttribute("aria-hidden","true");if(this.hasAttribute("role")){this.removeAttribute("role")}if(this.hasAttribute("aria-label")){this.removeAttribute("aria-label")}}else{this.setAttribute("aria-label",this.alt||this.icon.split(":").pop());if(!this.hasAttribute("role")){this.setAttribute("role","img")}if(this.hasAttribute("aria-hidden")){this.removeAttribute("aria-hidden")}}}})})();</script></polymer-element><polymer-element name="core-iconset-svg" extends="core-meta" attributes="iconSize" assetpath="polymer/bower_components/core-iconset-svg/"><script>Polymer("core-iconset-svg",{iconSize:24,type:"iconset",created:function(){this._icons={}},ready:function(){this.super();this.updateIcons()},iconById:function(id){return this._icons[id]||(this._icons[id]=this.querySelector('[id="'+id+'"]'))},cloneIcon:function(id){var icon=this.iconById(id);if(icon){var content=icon.cloneNode(true);content.removeAttribute("id");var svg=document.createElementNS("http://www.w3.org/2000/svg","svg");svg.setAttribute("viewBox","0 0 "+this.iconSize+" "+this.iconSize);svg.style.pointerEvents="none";svg.appendChild(content);return svg}},get iconNames(){if(!this._iconNames){this._iconNames=this.findIconNames()}return this._iconNames},findIconNames:function(){var icons=this.querySelectorAll("[id]").array();if(icons.length){return icons.map(function(n){return n.id})}},applyIcon:function(element,icon){var root=element;var old=root.querySelector("svg");if(old){old.remove()}var svg=this.cloneIcon(icon);if(!svg){return}svg.setAttribute("height","100%");svg.setAttribute("width","100%");svg.setAttribute("preserveAspectRatio","xMidYMid meet");svg.style.display="block";root.insertBefore(svg,root.firstElementChild);return svg},updateIcons:function(selector,method){selector=selector||"[icon]";method=method||"updateIcon";var deep=window.ShadowDOMPolyfill?"":"html /deep/ ";var i$=document.querySelectorAll(deep+selector);for(var i=0,e;e=i$[i];i++){if(e[method]){e[method].call(e)}}}});</script></polymer-element><core-iconset-svg id="icons" iconsize="24"><svg><defs><g id="3d-rotation"><path d="M7.52 21.48C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08-.16-.06-.29-.13-.4-.24-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56-.05-.18-.12-.35-.23-.51-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31.2-.09.37-.2.52-.33.15-.13.27-.27.37-.42.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96-.12-.28-.29-.51-.51-.69-.2-.19-.47-.33-.77-.43C9.1 8.05 8.76 8 8.39 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49-.05.15-.14.27-.25.37-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09H7.5v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z"/></g><g id="accessibility"><path d="M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z"/></g><g id="account-balance"><path d="M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z"/></g><g id="account-balance-wallet"><path d="M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-1.1.89-2 2-2h14c1.1 0 2 .9 2 2v1h-9c-1.11 0-2 .9-2 2v8c0 1.1.89 2 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="account-box"><path d="M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.11 0-2 .9-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z"/></g><g id="account-child"><circle cx="12" cy="13.49" r="1.5"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 2.5c1.24 0 2.25 1.01 2.25 2.25S13.24 9 12 9 9.75 7.99 9.75 6.75 10.76 4.5 12 4.5zm5 10.56v2.5c-.45.41-.96.77-1.5 1.05v-.68c0-.34-.17-.65-.46-.92-.65-.62-1.89-1.02-3.04-1.02-.96 0-1.96.28-2.65.73l-.17.12-.21.17c.78.47 1.63.72 2.54.82l1.33.15c.37.04.66.36.66.75 0 .29-.16.53-.4.66-.28.15-.64.09-.95.09-.35 0-.69-.01-1.03-.05-.5-.06-.99-.17-1.46-.33-.49-.16-.97-.38-1.42-.64-.22-.13-.44-.27-.65-.43l-.31-.24c-.04-.02-.28-.18-.28-.23v-4.28c0-1.58 2.63-2.78 5-2.78s5 1.2 5 2.78v1.78z"/></g><g id="account-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/></g><g id="add"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></g><g id="add-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></g><g id="add-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></g><g id="add-circle-outline"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="add-shopping-cart"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z"/></g><g id="alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g><g id="alarm-add"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"/></g><g id="alarm-off"><path d="M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92 0-4.97-4.03-9-9-9-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8C3.83 8.69 3 10.75 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.71 1.42 1.42.86-.71z"/></g><g id="alarm-on"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z"/></g><g id="android"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48C13.85 1.23 12.95 1 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31C6.97 3.26 6 5.01 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V4h1v1zm5 0h-1V4h1v1z"/></g><g id="announcement"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"/></g><g id="apps"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"/></g><g id="archive"><path d="M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"/></g><g id="arrow-back"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></g><g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"/></g><g id="arrow-drop-down-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z"/></g><g id="arrow-drop-up"><path d="M7 14l5-5 5 5z"/></g><g id="arrow-forward"><path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/></g><g id="aspect-ratio"><path d="M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"/></g><g id="assessment"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></g><g id="assignment"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/></g><g id="assignment-ind"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z"/></g><g id="assignment-late"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 15h-2v-2h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></g><g id="assignment-return"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm4 12h-4v3l-5-5 5-5v3h4v4z"/></g><g id="assignment-returned"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l-5-5h3V9h4v4h3l-5 5z"/></g><g id="assignment-turned-in"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 14l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"/></g><g id="attachment"><path d="M7.5 18C4.46 18 2 15.54 2 12.5S4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v1.5H9.5c-.55 0-1 .45-1 1s.45 1 1 1H18c1.38 0 2.5-1.12 2.5-2.5S19.38 8.5 18 8.5H7.5c-2.21 0-4 1.79-4 4s1.79 4 4 4H17V18H7.5z"/></g><g id="autorenew"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"/></g><g id="backspace"><path d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z"/></g><g id="backup"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"/></g><g id="block"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"/></g><g id="book"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"/></g><g id="bookmark"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/></g><g id="bookmark-outline"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"/></g><g id="bug-report"><path d="M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"/></g><g id="cached"><path d="M19 8l-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"/></g><g id="cancel"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></g><g id="check"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></g><g id="check-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></g><g id="check-box-outline-blank"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g><g id="check-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></g><g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></g><g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></g><g id="class"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"/></g><g id="clear"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></g><g id="close"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></g><g id="cloud"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"/></g><g id="cloud-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01C8.58 8.28 10.13 7 12 7c2.21 0 4 1.79 4 4h.5c1.38 0 2.5 1.12 2.5 2.5S17.88 16 16.5 16z"/></g><g id="cloud-done"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L10 17z"/></g><g id="cloud-download"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"/></g><g id="cloud-off"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z"/></g><g id="cloud-queue"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z"/></g><g id="cloud-upload"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"/></g><g id="content-copy"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></g><g id="content-cut"><path d="M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z"/></g><g id="content-paste"><path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"/></g><g id="create"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></g><g id="credit-card"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></g><g id="dashboard"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/></g><g id="delete"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></g><g id="description"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"/></g><g id="dns"><path d="M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="done"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></g><g id="done-all"><path d="M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"/></g><g id="drafts"><path d="M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13L3.74 7.84 12 3l8.26 4.84L12 13z"/></g><g id="error"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></g><g id="event"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"/></g><g id="exit-to-app"><path d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g><g id="expand-less"><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"/></g><g id="expand-more"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></g><g id="explore"><path d="M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z"/></g><g id="extension"><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"/></g><g id="face"><path d="M14.69 17.1c-.74.58-1.7.9-2.69.9s-1.95-.32-2.69-.9c-.22-.17-.53-.13-.7.09-.17.22-.13.53.09.7.91.72 2.09 1.11 3.3 1.11s2.39-.39 3.31-1.1c.22-.17.26-.48.09-.7-.17-.23-.49-.26-.71-.1z"/><circle cx="8.5" cy="12.5" r="1"/><path d="M12 0C5.37 0 0 5.37 0 12s5.37 12 12 12 12-5.37 12-12S18.63 0 12 0zm7.96 14.82c-1.09 3.74-4.27 6.46-8.04 6.46-3.78 0-6.96-2.72-8.04-6.47-1.19-.11-2.13-1.18-2.13-2.52 0-1.27.85-2.31 1.97-2.5 2.09-1.46 3.8-3.49 4.09-5.05v-.01c1.35 2.63 6.3 5.19 11.83 5.06l.3-.03c1.28 0 2.31 1.14 2.31 2.54 0 1.38-1.02 2.51-2.29 2.52z"/><circle cx="15.5" cy="12.5" r="1"/></g><g id="favorite"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></g><g id="favorite-outline"><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"/></g><g id="file-download"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/></g><g id="file-upload"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"/></g><g id="filter-list"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/></g><g id="find-in-page"><path d="M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"/></g><g id="find-replace"><path d="M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z"/></g><g id="flag"><path d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/></g><g id="flip-to-back"><path d="M9 7H7v2h2V7zm0 4H7v2h2v-2zm0-8c-1.11 0-2 .9-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2V3zM9 17v-2H7c0 1.1.89 2 2 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zM5 7H3v12c0 1.1.89 2 2 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2v2z"/></g><g id="flip-to-front"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3c0 1.1.89 2 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9c-1.11 0-2 .9-2 2v10c0 1.1.89 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z"/></g><g id="folder"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></g><g id="folder-open"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></g><g id="folder-shared"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z"/></g><g id="forward"><path d="M12 8V4l8 8-8 8v-4H4V8z"/></g><g id="fullscreen"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></g><g id="fullscreen-exit"><path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"/></g><g id="gesture"><path d="M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z"/></g><g id="get-app"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/></g><g id="grade"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></g><g id="group-work"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8 17.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zM9.5 8c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5S9.5 9.38 9.5 8zm6.5 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></g><g id="help"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></g><g id="highlight-remove"><path d="M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="history"><path opacity=".9" d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/></g><g id="home"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></g><g id="https"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></g><g id="inbox"><path d="M19 3H4.99c-1.1 0-1.98.9-1.98 2L3 19c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.34 3-3 3s-3-1.34-3-3H4.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z"/></g><g id="info"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></g><g id="info-outline"><path d="M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"/></g><g id="input"><path d="M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2zM11 16l4-4-4-4v3H1v2h10v3z"/></g><g id="invert-colors"><path d="M17.66 7.93L12 2.27 6.34 7.93c-3.12 3.12-3.12 8.19 0 11.31C7.9 20.8 9.95 21.58 12 21.58c2.05 0 4.1-.78 5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 16.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z"/></g><g id="label"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></g><g id="label-outline"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></g><g id="language"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"/></g><g id="launch"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></g><g id="link"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></g><g id="list"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"/></g><g id="lock"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></g><g id="lock-open"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/></g><g id="lock-outline"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6-5.1c1.71 0 3.1 1.39 3.1 3.1v2H9V6h-.1c0-1.71 1.39-3.1 3.1-3.1zM18 20H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/></g><g id="loyalty"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27C8.28 14.81 8 14.19 8 13.5c0-1.38 1.12-2.5 2.5-2.5.69 0 1.32.28 1.77.74l.73.72.73-.73c.45-.45 1.08-.73 1.77-.73 1.38 0 2.5 1.12 2.5 2.5 0 .69-.28 1.32-.73 1.77z"/></g><g id="mail"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></g><g id="markunread"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></g><g id="markunread-mailbox"><path d="M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z"/></g><g id="menu"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></g><g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="more-vert"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="note-add"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z"/></g><g id="open-in-browser"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z"/></g><g id="open-in-new"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></g><g id="open-with"><path d="M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z"/></g><g id="pageview"><path d="M11 8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm8-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1.41 16l-3.83-3.83c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L19 17.59 17.59 19z"/></g><g id="payment"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></g><g id="perm-camera-mic"><path d="M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v-2.09c-2.83-.48-5-2.94-5-5.91h2c0 2.21 1.79 4 4 4s4-1.79 4-4h2c0 2.97-2.17 5.43-5 5.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9 2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z"/></g><g id="perm-contact-cal"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z"/></g><g id="perm-data-setting"><path d="M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 20h11.56c-.04-.33-.07-.66-.07-1 0-4.14 3.36-7.5 7.5-7.5zm3.71 7.99c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83c.09-.08.12-.21.06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83c-.02.16-.03.32-.03.49 0 .17.01.33.03.49l-1.06.83c-.09.08-.12.21-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73c.06-.11.03-.24-.06-.32l-1.07-.83zm-3.71 1.01c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="perm-device-info"><path d="M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></g><g id="perm-identity"><path d="M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></g><g id="perm-media"><path d="M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-6 3.5 4.51 2.5-3.01L21 15H7z"/></g><g id="perm-phone-msg"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM12 3v10l3-3h6V3h-9z"/></g><g id="perm-scan-wifi"><path d="M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"/></g><g id="picture-in-picture"><path d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"/></g><g id="polymer"><path d="M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15 20h4l4.5-8z"/></g><g id="print"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/></g><g id="query-builder"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zM12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></g><g id="question-answer"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></g><g id="radio-button-off"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="radio-button-on"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="receipt"><path d="M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z"/></g><g id="redeem"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"/></g><g id="redo"><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></g><g id="refresh"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/></g><g id="remove"><path d="M19 13H5v-2h14v2z"/></g><g id="remove-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"/></g><g id="remove-circle-outline"><path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="reorder"><path d="M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z"/></g><g id="reply"><path d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></g><g id="reply-all"><path d="M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6 1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></g><g id="report"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z"/></g><g id="report-problem"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></g><g id="restore"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/></g><g id="room"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></g><g id="save"><path d="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"/></g><g id="schedule"><path fill-opacity=".9" d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zM12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></g><g id="search"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></g><g id="select-all"><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z"/></g><g id="send"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"/></g><g id="settings"><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"/></g><g id="settings-applications"><path d="M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"/></g><g id="settings-backup-restore"><path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z"/></g><g id="settings-bluetooth"><path d="M11 24h2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 10.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88 1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z"/></g><g id="settings-cell"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z"/></g><g id="settings-display"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3V9z"/></g><g id="settings-ethernet"><path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z"/></g><g id="settings-input-antenna"><path d="M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29 0-1.38-1.12-2.5-2.5-2.5S9.5 10.62 9.5 12c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2c0-4.97 4.03-9 9-9s9 4.03 9 9h2c0-6.07-4.93-11-11-11z"/></g><g id="settings-input-component"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"/></g><g id="settings-input-composite"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"/></g><g id="settings-input-hdmi"><path d="M18 7V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z"/></g><g id="settings-input-svideo"><path d="M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.67 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67 18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/></g><g id="settings-overscan"><path d="M12.01 5.5L10 8h4l-1.99-2.5zM18 10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"/></g><g id="settings-phone"><path d="M13 9h-2v2h2V9zm4 0h-2v2h2V9zm3 6.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 9v2h2V9h-2z"/></g><g id="settings-power"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45C16.84 6.94 18 8.83 18 11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44C5.36 5.88 4 8.28 4 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h-2v2z"/></g><g id="settings-remote"><path d="M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0z"/></g><g id="settings-voice"><path d="M7 24h2v-2H7v2zm5-11c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3zm-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z"/></g><g id="shop"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"/></g><g id="shop-two"><path d="M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z"/></g><g id="shopping-basket"><path d="M17.21 9l-4.38-6.56c-.19-.28-.51-.42-.83-.42-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="shopping-cart"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></g><g id="sort"><path d="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z"/></g><g id="speaker-notes"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z"/></g><g id="spellcheck"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z"/></g><g id="star"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></g><g id="star-half"><path d="M22 9.74l-7.19-.62L12 2.5 9.19 9.13 2 9.74l5.46 4.73-1.64 7.03L12 17.77l6.18 3.73-1.63-7.03L22 9.74zM12 15.9V6.6l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.9z"/></g><g id="star-outline"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></g><g id="star-rate"><path d="M12 14.3l3.71 2.7-1.42-4.36L18 10h-4.55L12 5.5 10.55 10H6l3.71 2.64L8.29 17z"/></g><g id="stars"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z"/></g><g id="store"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z"/></g><g id="subject"><path d="M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z"/></g><g id="supervisor-account"><path d="M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7C15.12 7 14 8.12 14 9.5s1.12 2.5 2.5 2.5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z"/></g><g id="swap-horiz"><path d="M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z"/></g><g id="swap-vert"><path d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z"/></g><g id="swap-vert-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM6.5 9L10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4h2v4h2.5z"/></g><g id="system-update-tv"><path d="M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"/></g><g id="tab"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z"/></g><g id="tab-unselected"><path d="M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"/></g><g id="text-format"><path d="M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z"/></g><g id="theaters"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"/></g><g id="thumb-down"><path d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v1.91l.01.01L1 14c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z"/></g><g id="thumb-up"><path d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.91l-.01-.01L23 10z"/></g><g id="thumbs-up-down"><path d="M12 6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17 5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55V18c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5z"/></g><g id="toc"><path d="M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z"/></g><g id="today"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"/></g><g id="track-changes"><path fill="#231F20" d="M19.07 4.93l-1.41 1.41C19.1 7.79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z"/></g><g id="translate"><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/></g><g id="trending-down"><path d="M16 18l2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"/></g><g id="trending-neutral"><path d="M22 12l-4-4v3H3v2h15v3z"/></g><g id="trending-up"><path d="M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"/></g><g id="turned-in"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/></g><g id="turned-in-not"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"/></g><g id="undo"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></g><g id="unfold-less"><path d="M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"/></g><g id="unfold-more"><path d="M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"/></g><g id="verified-user"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"/></g><g id="view-agenda"><path d="M20 13H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm0-10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"/></g><g id="view-array"><path d="M4 18h3V5H4v13zM18 5v13h3V5h-3zM8 18h9V5H8v13z"/></g><g id="view-carousel"><path d="M7 19h10V4H7v15zm-5-2h4V6H2v11zM18 6v11h4V6h-4z"/></g><g id="view-column"><path d="M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z"/></g><g id="view-day"><path d="M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z"/></g><g id="view-headline"><path d="M4 15h17v-2H4v2zm0 4h17v-2H4v2zm0-8h17V9H4v2zm0-6v2h17V5H4z"/></g><g id="view-list"><path d="M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z"/></g><g id="view-module"><path d="M4 11h5V5H4v6zm0 7h5v-6H4v6zm6 0h5v-6h-5v6zm6 0h5v-6h-5v6zm-6-7h5V5h-5v6zm6-6v6h5V5h-5z"/></g><g id="view-quilt"><path d="M10 18h5v-6h-5v6zm-6 0h5V5H4v13zm12 0h5v-6h-5v6zM10 5v6h11V5H10z"/></g><g id="view-stream"><path d="M4 18h17v-6H4v6zM4 5v6h17V5H4z"/></g><g id="view-week"><path d="M6 5H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"/></g><g id="visibility"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="visibility-off"><path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"/></g><g id="wallet-giftcard"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"/></g><g id="wallet-membership"><path d="M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z"/></g><g id="wallet-travel"><path d="M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11 15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z"/></g><g id="warning"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></g><g id="work"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"/></g></defs></svg></core-iconset-svg><style shim-shadowdom="">html /deep/ input[is=core-input]{width:20em;font:inherit;margin:0;padding:0;background-color:transparent;border:0;outline:0}</style><polymer-element name="core-input" extends="input" assetpath="polymer/bower_components/core-input/"><script>Polymer("core-input",{publish:{committedValue:"",preventInvalidInput:false},previousValidInput:"",eventDelegates:{input:"inputAction",change:"changeAction"},ready:function(){this.disabledHandler();this.placeholderHandler()},attributeChanged:function(attr,old){if(this[attr+"Handler"]){this[attr+"Handler"](old)}},disabledHandler:function(){if(this.disabled){this.setAttribute("aria-disabled","")}else{this.removeAttribute("aria-disabled")}},placeholderHandler:function(){if(this.placeholder){this.setAttribute("aria-label",this.placeholder)}else{this.removeAttribute("aria-label")}},commit:function(){this.committedValue=this.value},changeAction:function(){this.commit()},inputAction:function(e){if(this.preventInvalidInput){if(!e.target.validity.valid){e.target.value=this.previousValidInput}else{this.previousValidInput=e.target.value}}}});</script></polymer-element><core-style id="paper-input-decorator"> @@ -172,7 +195,7 @@ t[i]=cr(t[i],N,t)}return t}function vn(t,e,n){var r=typeof t;return"function"==r </core-style><polymer-element name="paper-input-decorator" layout="" vertical="" on-transitionend="{{transitionEndAction}}" on-webkittransitionend="{{transitionEndAction}}" on-input="{{inputAction}}" on-down="{{downAction}}" on-tap="{{tapAction}}" on-char-counter-error="{{charCounterErrorAction}}" assetpath="polymer/bower_components/paper-input/"><template><style>:host{display:inline-block;outline:0;text-align:inherit;padding:.75em 0}polyfill-next-selector{content:'.input-body > :not(.label)'}::content>*,::content>input[is=core-input]{padding:0;margin:.5em 0 .25em;width:100%}polyfill-next-selector{content:'input, textarea'}::content input,::content input[is=core-input],::content textarea{font:inherit;color:inherit;background-color:transparent;border:none;outline:0}polyfill-next-selector{content:':invalid'}::content input:invalid,::content textarea:invalid{box-shadow:none}polyfill-next-selector{content:'textarea'}::content textarea{resize:none}[invisible]{visibility:hidden}[animated]{visibility:visible!important;-webkit-transition:-webkit-transform .2s cubic-bezier(0.4,0,.2,1),opacity .2s cubic-bezier(0.4,0,.2,1);transition:transform .2s cubic-bezier(0.4,0,.2,1),opacity .2s cubic-bezier(0.4,0,.2,1)}.floated-label{font-size:.75em;background:0 0;white-space:nowrap}.mirror-text{padding:.5em 0 .25em;max-width:100%;white-space:nowrap}:host([multiline]) .mirror-text{white-space:pre-wrap;word-wrap:break-word}.label{padding:.5em 0 .25em;background:0 0;pointer-events:none}.label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:100%;-moz-transform-origin:0 0;-webkit-transform-origin:0 0;transform-origin:0 0}.underline{height:0;overflow:visible}:host([disabled]) .underline{border-bottom:1px dashed #757575}.unfocused-underline{height:1px}.focused-underline{height:2px;-webkit-transform:none;transform:none}.focused-underline[invisible]{-webkit-transform:scale3d(0,1,1);transform:scale3d(0,1,1)}.error-text{font-size:.75em;padding:.5em 0}.error-icon{height:20px;width:20px}</style><core-style ref="paper-input-decorator"></core-style><div class="floated-label" aria-hidden="true" hidden?="{{!floatingLabel}}" invisible?="{{!floatingLabelVisible || labelAnimated}}"><span id="floatedLabelText" class="label-text">{{label}}</span></div><div class="input-body" flex="" auto="" relative=""><div class="label" fit="" invisible="" aria-hidden="true"><span id="labelText" class="label-text" invisible?="{{!_labelVisible}}" animated?="{{labelAnimated}}">{{label}}</span></div><content select="*:not(.counter)"></content></div><div id="underline" class="underline" relative=""><div class="unfocused-underline" fit="" invisible?="{{disabled}}"></div><div id="focusedUnderline" class="focused-underline" fit="" invisible?="{{!underlineVisible}}" animated?="{{underlineAnimated}}"></div></div><div class="footer" layout="" horizontal="" end-justified=""><div class="error" flex="" layout="" horizontal="" center="" hidden?="{{!isInvalid}}"><div class="error-text" flex="" auto="" role="alert" aria-hidden="{{!isInvalid}}">{{error}}</div><core-icon id="errorIcon" class="error-icon" icon="warning"></core-icon></div><div aria-hidden="true"><content select=".counter"></content></div></div></template><script>(function(){var paperInput=CoreStyle.g.paperInput=CoreStyle.g.paperInput||{};paperInput.labelColor="#757575";paperInput.focusedColor="#4059a9";paperInput.invalidColor="#d34336";Polymer("paper-input-decorator",{publish:{label:"",floatingLabel:false,disabled:{value:false,reflect:true},labelVisible:null,isInvalid:false,autoValidate:false,error:"",focused:{value:false,reflect:true}},computed:{floatingLabelVisible:"floatingLabel && !_labelVisible",_labelVisible:"(labelVisible === true || labelVisible === false) ? labelVisible : _autoLabelVisible"},ready:function(){Polymer.addEventListener(this,"focus",this.focusAction.bind(this),true);Polymer.addEventListener(this,"blur",this.blurAction.bind(this),true)},attached:function(){this.input=this.querySelector("input,textarea");this.mo=new MutationObserver(function(){this.input=this.querySelector("input,textarea")}.bind(this));this.mo.observe(this,{childList:true})},detached:function(){this.mo.disconnect();this.mo=null},prepareLabelTransform:function(){var toRect=this.$.floatedLabelText.getBoundingClientRect();var fromRect=this.$.labelText.getBoundingClientRect();if(toRect.width!==0){var sy=toRect.height/fromRect.height;this.$.labelText.cachedTransform="scale3d("+toRect.width/fromRect.width+","+sy+",1) "+"translate3d(0,"+(toRect.top-fromRect.top)/sy+"px,0)"}},animateFloatingLabel:function(){if(!this.floatingLabel||this.labelAnimated){return false}if(!this.$.labelText.cachedTransform){this.prepareLabelTransform()}if(!this.$.labelText.cachedTransform){return false}this.labelAnimated=true;this.async(function(){this.transitionEndAction()},null,250);if(this._labelVisible){if(!this.$.labelText.style.webkitTransform&&!this.$.labelText.style.transform){this.$.labelText.style.webkitTransform=this.$.labelText.cachedTransform;this.$.labelText.style.transform=this.$.labelText.cachedTransform;this.$.labelText.offsetTop}this.$.labelText.style.webkitTransform="";this.$.labelText.style.transform=""}else{this.$.labelText.style.webkitTransform=this.$.labelText.cachedTransform;this.$.labelText.style.transform=this.$.labelText.cachedTransform;this.input.placeholder=""}return true},animateUnderline:function(e){if(this.focused){var rect=this.$.underline.getBoundingClientRect();var right=e.x-rect.left;this.$.focusedUnderline.style.mozTransformOrigin=right+"px";this.$.focusedUnderline.style.webkitTransformOrigin=right+"px ";this.$.focusedUnderline.style.transformOriginX=right+"px";this.underlineAnimated=true}},validate:function(){this.isInvalid=!this.input.validity.valid;return this.input.validity.valid},_labelVisibleChanged:function(old){if(old!==undefined){if(!this.animateFloatingLabel()){this.updateInputLabel(this.input,this.label)}}},labelVisibleChanged:function(){if(this.labelVisible==="true"){this.labelVisible=true}else if(this.labelVisible==="false"){this.labelVisible=false}},labelChanged:function(){if(this.input){this.updateInputLabel(this.input,this.label)}},isInvalidChanged:function(){this.classList.toggle("invalid",this.isInvalid)},focusedChanged:function(){this.updateLabelVisibility(this.input&&this.input.value);if(this.lastEvent){this.animateUnderline(this.lastEvent);this.lastEvent=null}this.underlineVisible=this.focused},inputChanged:function(old){if(this.input){this.updateLabelVisibility(this.input.value);this.updateInputLabel(this.input,this.label);if(this.autoValidate){this.validate()}}if(old){this.updateInputLabel(old,"")}},focusAction:function(){this.focused=true},blurAction:function(){this.focused=false},updateLabelVisibility:function(value){var v=value!==null&&value!==undefined?String(value):value;this._autoLabelVisible=!this.focused&&!v||!this.floatingLabel&&!v},updateInputLabel:function(input,label){if(this._labelVisible){this.input.placeholder=this.label}else{this.input.placeholder=""}if(label){input.setAttribute("aria-label",label)}else{input.removeAttribute("aria-label")}},inputAction:function(){this.updateLabelVisibility(this.input.value);if(this.autoValidate){this.validate()}},downAction:function(e){if(e.target!==this.input&&this.focused){e.preventDefault();return}this.lastEvent=e},tapAction:function(e){if(this.disabled){return}if(this.focused){return}if(this.input){this.input.focus();e.preventDefault()}},transitionEndAction:function(){this.underlineAnimated=false;this.labelAnimated=false;if(this._labelVisible){this.input.placeholder=this.label}},charCounterErrorAction:function(e){this.isInvalid=e.detail.hasError;this.$.errorIcon.hidden=e.detail.hideErrorIcon}})})();</script></polymer-element><polymer-element name="paper-spinner" attributes="active alt" role="progressbar" assetpath="polymer/bower_components/paper-spinner/"><template><style>:host{display:inline-block;position:relative;width:28px;height:28px}#spinnerContainer{width:100%;height:100%}#spinnerContainer.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0}.blue{border-color:#4285f4}.red{border-color:#db4437}.yellow{border-color:#f4b400}.green{border-color:#0f9d58}.active .spinner-layer.blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both}.active .spinner-layer.red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both}.active .spinner-layer.yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both}.active .spinner-layer.green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4,0,.2,1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}100%{opacity:.99}}@keyframes blue-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}100%{opacity:.99}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}100%{opacity:0}}.gap-patch{position:absolute;box-sizing:border-box;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%}.circle{box-sizing:border-box;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none}.circle-clipper.left .circle{border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4,0,.2,1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4,0,.2,1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4,0,.2,1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4,0,.2,1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{transform:rotate(130deg)}50%{transform:rotate(-5deg)}to{transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{transform:rotate(-130deg)}50%{transform:rotate(5deg)}to{transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4,0,.2,1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4,0,.2,1)}@-webkit-keyframes fade-out{from{opacity:.99}to{opacity:0}}@keyframes fade-out{from{opacity:.99}to{opacity:0}}</style><div id="spinnerContainer"><div class="spinner-layer blue"><div class="circle-clipper left"><div class="circle" fit=""></div></div><div class="gap-patch"><div class="circle" fit=""></div></div><div class="circle-clipper right"><div class="circle" fit=""></div></div></div><div class="spinner-layer red"><div class="circle-clipper left"><div class="circle" fit=""></div></div><div class="gap-patch"><div class="circle" fit=""></div></div><div class="circle-clipper right"><div class="circle" fit=""></div></div></div><div class="spinner-layer yellow"><div class="circle-clipper left"><div class="circle" fit=""></div></div><div class="gap-patch"><div class="circle" fit=""></div></div><div class="circle-clipper right"><div class="circle" fit=""></div></div></div><div class="spinner-layer green"><div class="circle-clipper left"><div class="circle" fit=""></div></div><div class="gap-patch"><div class="circle" fit=""></div></div><div class="circle-clipper right"><div class="circle" fit=""></div></div></div></div></template><script>Polymer("paper-spinner",{eventDelegates:{animationend:"reset",webkitAnimationEnd:"reset"},publish:{active:{value:false,reflect:true},alt:{value:"loading",reflect:true}},ready:function(){if(this.hasAttribute("aria-label")){this.alt=this.getAttribute("aria-label")}else{this.setAttribute("aria-label",this.alt)}if(!this.active){this.setAttribute("aria-hidden","true")}},activeChanged:function(){if(this.active){this.$.spinnerContainer.classList.remove("cooldown");this.$.spinnerContainer.classList.add("active");this.removeAttribute("aria-hidden")}else{this.$.spinnerContainer.classList.add("cooldown");this.setAttribute("aria-hidden","true")}},altChanged:function(){if(this.alt===""){this.setAttribute("aria-hidden","true")}else{this.removeAttribute("aria-hidden")}this.setAttribute("aria-label",this.alt)},reset:function(){this.$.spinnerContainer.classList.remove("active","cooldown")}});</script></polymer-element><polymer-element name="login-form" assetpath="polymer/layouts/"><template><style>#passwordDecorator{display:block;height:57px}paper-checkbox{margin-right:8px}paper-checkbox::shadow #checkbox.checked{background-color:#03a9f4;border-color:#03a9f4}paper-checkbox::shadow #ink[checked]{color:#03a9f4}paper-button{margin-left:72px}.interact{height:125px}#validatebox{text-align:center}.validatemessage{margin-top:10px}</style><div layout="" horizontal="" center="" fit="" class="login" id="splash"><div layout="" vertical="" center="" flex=""><img src="/static/favicon-192x192.png"><h1>Home Assistant</h1><a href="polymer/layouts/#" id="hideKeyboardOnFocus"></a><div class="interact" layout="" vertical=""><div id="loginform" hidden?="{{isValidating || isLoggedIn}}"><paper-input-decorator label="Password" id="passwordDecorator"><input is="core-input" type="password" id="passwordInput" value="{{authToken}}" on-keyup="{{passwordKeyup}}"></paper-input-decorator><div horizontal="" center="" layout=""><core-label horizontal="" layout=""><paper-checkbox for="" checked="{{rememberLogin}}"></paper-checkbox> Remember </core-label><paper-button on-click="{{validatePassword}}">Log In</paper-button></div></div><div id="validatebox" hidden?="{{!(isValidating || isLoggedIn)}}"><paper-spinner active="true"></paper-spinner><br><div class="validatemessage">{{spinnerMessage}}</div></div></div></div></div></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;var uiActions=window.hass.uiActions;Polymer(Polymer.mixin({MSG_VALIDATING:"Validating password…",MSG_LOADING_DATA:"Loading data…",authToken:"",rememberLogin:false,isValidating:false,isLoggedIn:false,spinnerMessage:"",attached:function(){this.focusPassword();this.listenToStores(true)},detached:function(){this.stopListeningToStores()},authStoreChanged:function(authStore){this.isValidating=authStore.isValidating;this.isLoggedIn=authStore.isLoggedIn;this.spinnerMessage=this.isValidating?this.MSG_VALIDATING:this.MSG_LOADING_DATA;if(authStore.lastAttemptInvalid){this.$.passwordDecorator.error=authStore.lastAttemptMessage;this.$.passwordDecorator.isInvalid=true}if(!(this.isValidating&&this.isLoggedIn)){this.job("focusPasswordBox",this.focusPassword.bind(this))}},focusPassword:function(){this.$.passwordInput.focus()},passwordKeyup:function(ev){if(ev.keyCode===13){this.validatePassword()}else if(this.$.passwordDecorator.isInvalid){this.$.passwordDecorator.isInvalid=false}},validatePassword:function(){this.$.hideKeyboardOnFocus.focus();uiActions.validateAuth(this.authToken,this.rememberLogin)}},storeListenerMixIn));</script></polymer-element></div> -<div hidden><polymer-element name="core-media-query" attributes="query queryMatches" assetpath="polymer/bower_components/core-media-query/"><template><style>:host{display:none}</style></template><script>Polymer("core-media-query",{queryMatches:false,query:"",ready:function(){this._mqHandler=this.queryHandler.bind(this);this._mq=null},queryChanged:function(){if(this._mq){this._mq.removeListener(this._mqHandler)}var query=this.query;if(query[0]!=="("){query="("+this.query+")"}this._mq=window.matchMedia(query);this._mq.addListener(this._mqHandler);this.queryHandler(this._mq)},queryHandler:function(mq){this.queryMatches=mq.matches;this.asyncFire("core-media-change",mq)}});</script></polymer-element><polymer-element name="core-selection" attributes="multi" hidden assetpath="polymer/bower_components/core-selection/"><script>Polymer("core-selection",{multi:false,ready:function(){this.clear()},clear:function(){this.selection=[]},getSelection:function(){return this.multi?this.selection:this.selection[0]},isSelected:function(item){return this.selection.indexOf(item)>=0},setItemSelected:function(item,isSelected){if(item!==undefined&&item!==null){if(isSelected){this.selection.push(item)}else{var i=this.selection.indexOf(item);if(i>=0){this.selection.splice(i,1)}}this.fire("core-select",{isSelected:isSelected,item:item})}},select:function(item){if(this.multi){this.toggle(item)}else if(this.getSelection()!==item){this.setItemSelected(this.getSelection(),false);this.setItemSelected(item,true)}},toggle:function(item){this.setItemSelected(item,!this.isSelected(item))}});</script></polymer-element><polymer-element name="core-selector" attributes="selected multi valueattr selectedClass selectedProperty selectedAttribute selectedItem selectedModel selectedIndex notap excludedLocalNames target itemsSelector activateEvent" assetpath="polymer/bower_components/core-selector/"><template><core-selection id="selection" multi="{{multi}}" on-core-select="{{selectionSelect}}"></core-selection><content id="items" select="*"></content></template><script>Polymer("core-selector",{selected:null,multi:false,valueattr:"name",selectedClass:"core-selected",selectedProperty:"",selectedAttribute:"active",selectedItem:null,selectedModel:null,selectedIndex:-1,excludedLocalNames:"",target:null,itemsSelector:"",activateEvent:"tap",notap:false,defaultExcludedLocalNames:"template",observe:{"selected multi":"selectedChanged"},ready:function(){this.activateListener=this.activateHandler.bind(this);this.itemFilter=this.filterItem.bind(this);this.excludedLocalNamesChanged();this.observer=new MutationObserver(this.updateSelected.bind(this));if(!this.target){this.target=this}},get items(){if(!this.target){return[]}var nodes=this.target!==this?this.itemsSelector?this.target.querySelectorAll(this.itemsSelector):this.target.children:this.$.items.getDistributedNodes();return Array.prototype.filter.call(nodes,this.itemFilter)},filterItem:function(node){return!this._excludedNames[node.localName]},excludedLocalNamesChanged:function(){this._excludedNames={};var s=this.defaultExcludedLocalNames;if(this.excludedLocalNames){s+=" "+this.excludedLocalNames}s.split(/\s+/g).forEach(function(n){this._excludedNames[n]=1},this)},targetChanged:function(old){if(old){this.removeListener(old);this.observer.disconnect();this.clearSelection()}if(this.target){this.addListener(this.target);this.observer.observe(this.target,{childList:true});this.updateSelected()}},addListener:function(node){Polymer.addEventListener(node,this.activateEvent,this.activateListener)},removeListener:function(node){Polymer.removeEventListener(node,this.activateEvent,this.activateListener)},get selection(){return this.$.selection.getSelection()},selectedChanged:function(){if(arguments.length===1){this.processSplices(arguments[0])}else{this.updateSelected()}},updateSelected:function(){this.validateSelected();if(this.multi){this.clearSelection(this.selected);this.selected&&this.selected.forEach(function(s){this.setValueSelected(s,true)},this)}else{this.valueToSelection(this.selected)}},validateSelected:function(){if(this.multi&&!Array.isArray(this.selected)&&this.selected!=null){this.selected=[this.selected]}else if(!this.multi&&Array.isArray(this.selected)){var s=this.selected[0];this.clearSelection([s]);this.selected=s}},processSplices:function(splices){for(var i=0,splice;splice=splices[i];i++){for(var j=0;j<splice.removed.length;j++){this.setValueSelected(splice.removed[j],false)}for(var j=0;j<splice.addedCount;j++){this.setValueSelected(this.selected[splice.index+j],true)}}},clearSelection:function(excludes){this.$.selection.selection.slice().forEach(function(item){var v=this.valueForNode(item)||this.items.indexOf(item);if(!excludes||excludes.indexOf(v)<0){this.$.selection.setItemSelected(item,false)}},this)},valueToSelection:function(value){var item=this.valueToItem(value);this.$.selection.select(item)},setValueSelected:function(value,isSelected){var item=this.valueToItem(value);if(isSelected^this.$.selection.isSelected(item)){this.$.selection.setItemSelected(item,isSelected)}},updateSelectedItem:function(){this.selectedItem=this.selection},selectedItemChanged:function(){if(this.selectedItem){var t=this.selectedItem.templateInstance;this.selectedModel=t?t.model:undefined}else{this.selectedModel=null}this.selectedIndex=this.selectedItem?parseInt(this.valueToIndex(this.selected)):-1},valueToItem:function(value){return value===null||value===undefined?null:this.items[this.valueToIndex(value)]},valueToIndex:function(value){for(var i=0,items=this.items,c;c=items[i];i++){if(this.valueForNode(c)==value){return i}}return value},valueForNode:function(node){return node[this.valueattr]||node.getAttribute(this.valueattr)},selectionSelect:function(e,detail){this.updateSelectedItem();if(detail.item){this.applySelection(detail.item,detail.isSelected)}},applySelection:function(item,isSelected){if(this.selectedClass){item.classList.toggle(this.selectedClass,isSelected)}if(this.selectedProperty){item[this.selectedProperty]=isSelected}if(this.selectedAttribute&&item.setAttribute){if(isSelected){item.setAttribute(this.selectedAttribute,"")}else{item.removeAttribute(this.selectedAttribute)}}},activateHandler:function(e){if(!this.notap){var i=this.findDistributedTarget(e.target,this.items);if(i>=0){var item=this.items[i];var s=this.valueForNode(item)||i;if(this.multi){if(this.selected){this.addRemoveSelected(s)}else{this.selected=[s]}}else{this.selected=s}this.asyncFire("core-activate",{item:item})}}},addRemoveSelected:function(value){var i=this.selected.indexOf(value);if(i>=0){this.selected.splice(i,1)}else{this.selected.push(value)}},findDistributedTarget:function(target,nodes){while(target&&target!=this){var i=Array.prototype.indexOf.call(nodes,target);if(i>=0){return i}target=target.parentNode}},selectIndex:function(index){var item=this.items[index];if(item){this.selected=this.valueForNode(item)||index;return item}},selectPrevious:function(wrapped){var i=wrapped&&!this.selectedIndex?this.items.length-1:this.selectedIndex-1;return this.selectIndex(i)},selectNext:function(wrapped){var i=wrapped&&this.selectedIndex>=this.items.length-1?0:this.selectedIndex+1;return this.selectIndex(i)}});</script></polymer-element><polymer-element name="core-drawer-panel" touch-action="auto" assetpath="polymer/bower_components/core-drawer-panel/"><template><style>:host{display:block;position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}core-selector>#drawer{position:absolute;top:0;left:0;height:100%;will-change:transform;box-sizing:border-box;-moz-box-sizing:border-box}.transition>#drawer{transition:-webkit-transform ease-in-out .3s,width ease-in-out .3s;transition:transform ease-in-out .3s,width ease-in-out .3s}.right-drawer>#drawer{left:auto;right:0}polyfill-next-selector{content:':host [drawer]'}::content[select="[drawer]"]>*{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box}core-selector>#main{position:absolute;top:0;right:0;bottom:0}.transition>#main{transition:left ease-in-out .3s,padding ease-in-out .3s}.right-drawer>#main{left:0}.right-drawer.transition>#main{transition:right ease-in-out .3s,padding ease-in-out .3s}polyfill-next-selector{content:'#main > [main]'}::content[select="[main]"]>*{height:100%}#scrim{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.3);visibility:hidden;opacity:0;transition:opacity ease-in-out .38s,visibility ease-in-out .38s}#edgeSwipeOverlay{position:absolute;top:0;bottom:0;left:0;width:20px}.right-drawer>#main>#edgeSwipeOverlay{right:0;left:auto}.narrow-layout>#drawer.core-selected{box-shadow:2px 2px 4px rgba(0,0,0,.15)}.right-drawer.narrow-layout>#drawer.core-selected{box-shadow:-2px 2px 4px rgba(0,0,0,.15)}polyfill-next-selector{content:':host .narrow-layout > #drawer > [drawer]'}.narrow-layout>#drawer>::content[select="[drawer]"]>*{border:0}.narrow-layout>#drawer:not(.core-selected){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.right-drawer.narrow-layout>#drawer:not(.core-selected){left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.narrow-layout>#main{left:0!important;padding:0}.right-drawer.narrow-layout>#main{left:0;right:0;padding:0}.narrow-layout>#main:not(.core-selected)>#scrim,.dragging #scrim{visibility:visible;opacity:1}polyfill-next-selector{content:':host .narrow-layout > #main > [main]'}.narrow-layout>#main>::content[select="[main]"]>*{margin:0;min-height:100%;left:0;right:0;box-sizing:border-box;-moz-box-sizing:border-box}polyfill-next-selector{content:'core-selector:not(.narrow-layout) [core-drawer-toggle]'}core-selector:not(.narrow-layout) ::content [core-drawer-toggle]{display:none}</style><core-media-query query="max-width: {{forceNarrow ? '' : responsiveWidth}}" querymatches="{{queryMatches}}"></core-media-query><core-selector class="{{ {'narrow-layout' : narrow, transition : transition, dragging : dragging, 'right-drawer': rightDrawer} | tokenList }}" valueattr="id" selected="{{selected}}"><div id="main" _style="left: {{ narrow || rightDrawer ? '0' : drawerWidth }}; right: {{ rightDrawer ? (narrow ? '' : drawerWidth) : '' }};"><content select="[main]"></content><div id="scrim" on-tap="{{togglePanel}}"></div><div id="edgeSwipeOverlay" hidden?="{{!narrow || disableEdgeSwipe}}"></div></div><div id="drawer" _style="width: {{ drawerWidth }}"><content select="[drawer]"></content></div></core-selector></template><script>Polymer("core-drawer-panel",{publish:{drawerWidth:"256px",responsiveWidth:"640px",selected:{value:null,reflect:true},defaultSelected:"main",narrow:{value:false,reflect:true},rightDrawer:false,disableSwipe:false,forceNarrow:false,disableEdgeSwipe:false},eventDelegates:{trackstart:"trackStart",trackx:"trackx",trackend:"trackEnd",down:"downHandler",up:"upHandler",tap:"tapHandler"},transition:false,edgeSwipeSensitivity:15,peeking:false,dragging:false,hasTransform:true,hasWillChange:true,toggleAttribute:"core-drawer-toggle",created:function(){this.hasTransform="transform"in this.style;this.hasWillChange="willChange"in this.style},domReady:function(){this.async(function(){this.transition=true})},togglePanel:function(){this.selected=this.isMainSelected()?"drawer":"main"},openDrawer:function(){this.selected="drawer"},closeDrawer:function(){this.selected="main"},queryMatchesChanged:function(){this.narrow=this.queryMatches||this.forceNarrow;if(this.narrow){this.selected=this.defaultSelected}this.setAttribute("touch-action",this.swipeAllowed()?"pan-y":"");this.fire("core-responsive-change",{narrow:this.narrow})},forceNarrowChanged:function(){this.queryMatchesChanged()},swipeAllowed:function(){return this.narrow&&!this.disableSwipe},isMainSelected:function(){return this.selected==="main"},startEdgePeek:function(){this.width=this.$.drawer.offsetWidth;this.moveDrawer(this.translateXForDeltaX(this.rightDrawer?-this.edgeSwipeSensitivity:this.edgeSwipeSensitivity));this.peeking=true},stopEdgePeak:function(){if(this.peeking){this.peeking=false;this.moveDrawer(null)}},downHandler:function(e){if(!this.dragging&&this.isMainSelected()&&this.isEdgeTouch(e)){this.startEdgePeek()}},upHandler:function(e){this.stopEdgePeak()},tapHandler:function(e){if(e.target&&this.toggleAttribute&&e.target.hasAttribute(this.toggleAttribute)){this.togglePanel()}},isEdgeTouch:function(e){return!this.disableEdgeSwipe&&this.swipeAllowed()&&(this.rightDrawer?e.pageX>=this.offsetWidth-this.edgeSwipeSensitivity:e.pageX<=this.edgeSwipeSensitivity)},trackStart:function(e){if(this.swipeAllowed()){this.dragging=true;if(this.isMainSelected()){this.dragging=this.peeking||this.isEdgeTouch(e)}if(this.dragging){this.width=this.$.drawer.offsetWidth;this.transition=false;e.preventTap()}}},translateXForDeltaX:function(deltaX){var isMain=this.isMainSelected();if(this.rightDrawer){return Math.max(0,isMain?this.width+deltaX:deltaX)}else{return Math.min(0,isMain?deltaX-this.width:deltaX)}},trackx:function(e){if(this.dragging){if(this.peeking){if(Math.abs(e.dx)<=this.edgeSwipeSensitivity){return}this.peeking=false}this.moveDrawer(this.translateXForDeltaX(e.dx))}},trackEnd:function(e){if(this.dragging){this.dragging=false;this.transition=true;this.moveDrawer(null);if(this.rightDrawer){this.selected=e.xDirection>0?"main":"drawer"}else{this.selected=e.xDirection>0?"drawer":"main"}}},transformForTranslateX:function(translateX){if(translateX===null){return""}return this.hasWillChange?"translateX("+translateX+"px)":"translate3d("+translateX+"px, 0, 0)"},moveDrawer:function(translateX){var s=this.$.drawer.style;if(this.hasTransform){s.transform=this.transformForTranslateX(translateX)}else{s.webkitTransform=this.transformForTranslateX(translateX)}}});</script></polymer-element><polymer-element name="core-header-panel" assetpath="polymer/bower_components/core-header-panel/"><template><style>:host{display:block;position:relative}#outerContainer{position:absolute;top:0;right:0;bottom:0;left:0}#mainPanel{position:relative}#mainContainer{position:relative;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}#dropShadow{position:absolute;top:0;left:0;right:0;height:6px;box-shadow:inset 0 5px 6px -3px rgba(0,0,0,.4)}#dropShadow.hidden{display:none}:host([mode=scroll]) #mainContainer{overflow:visible}:host([mode=scroll]) #outerContainer{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}:host([mode=cover]) #mainPanel{position:static}:host([mode=cover]) #mainContainer{position:absolute;top:0;right:0;bottom:0;left:0}:host([mode=cover]) #dropShadow{position:static;width:100%}</style><div id="outerContainer" vertical="" layout=""><content id="headerContent" select="core-toolbar, .core-header"></content><div id="mainPanel" flex="" vertical="" layout=""><div id="mainContainer" flex?="{{mode !== 'cover'}}"><content id="mainContent" select="*"></content></div><div id="dropShadow"></div></div></div></template><script>Polymer("core-header-panel",{publish:{mode:{value:"",reflect:true},tallClass:"tall",shadow:false},animateDuration:200,modeConfigs:{shadowMode:{waterfall:1,"waterfall-tall":1},noShadow:{seamed:1,cover:1,scroll:1},tallMode:{"waterfall-tall":1},outerScroll:{scroll:1}},ready:function(){this.scrollHandler=this.scroll.bind(this);this.addListener()},detached:function(){this.removeListener(this.mode)},addListener:function(){this.scroller.addEventListener("scroll",this.scrollHandler)},removeListener:function(mode){var s=this.getScrollerForMode(mode);s.removeEventListener("scroll",this.scrollHandler)},domReady:function(){this.async("scroll")},modeChanged:function(old){var configs=this.modeConfigs;var header=this.header;if(header){if(configs.tallMode[old]&&!configs.tallMode[this.mode]){header.classList.remove(this.tallClass);this.async(function(){header.classList.remove("animate")},null,this.animateDuration)}else{header.classList.toggle("animate",configs.tallMode[this.mode])}}if(configs&&(configs.outerScroll[this.mode]||configs.outerScroll[old])){this.removeListener(old);this.addListener()}this.scroll()},get header(){return this.$.headerContent.getDistributedNodes()[0]},getScrollerForMode:function(mode){return this.modeConfigs.outerScroll[mode]?this.$.outerContainer:this.$.mainContainer},get scroller(){return this.getScrollerForMode(this.mode)},scroll:function(){var configs=this.modeConfigs;var main=this.$.mainContainer;var header=this.header;var sTop=main.scrollTop;var atTop=sTop===0;this.$.dropShadow.classList.toggle("hidden",!this.shadow&&(atTop&&configs.shadowMode[this.mode]||configs.noShadow[this.mode]));if(header&&configs.tallMode[this.mode]){header.classList.toggle(this.tallClass,atTop||header.classList.contains(this.tallClass)&&main.scrollHeight<this.$.outerContainer.offsetHeight)}this.fire("scroll",{target:this.scroller},this,false)}});</script></polymer-element><polymer-element name="core-toolbar" attributes="justify middleJustify bottomJustify" assetpath="polymer/bower_components/core-toolbar/"><template><style>:host{display:block;position:relative;box-sizing:border-box;-moz-box-sizing:border-box;height:64px;font-size:1.3em;background-color:#CFD8DC}:host(.animate){transition:height .18s ease-in}:host(.medium-tall){height:128px}:host(.tall){height:192px}.toolbar-tools{position:relative;height:64px;padding:0 8px;pointer-events:none}:host(.core-narrow),:host-context(.core-narrow){height:56px}polyfill-next-selector{content:':host.core-narrow.medium-tall, .core-narrow :host.medium-tall'}:host(.core-narrow.medium-tall),:host-context(.core-narrow):host(.medium-tall){height:112px}polyfill-next-selector{content:':host.core-narrow.tall, .core-narrow :host.tall'}:host(.core-narrow.tall),:host-context(.core-narrow):host(.tall){height:168px}polyfill-next-selector{content:':host.core-narrow .toolbar-tools, .core-narrow :host .toolbar-tools'}:host(.core-narrow) .toolbar-tools,:host-context(.core-narrow) .toolbar-tools{height:56px;padding:0}#middleBar{position:absolute;top:0;right:0;left:0}:host(.tall,.medium-tall) #middleBar{-webkit-transform:translateY(100%);transform:translateY(100%)}#bottomBar{position:absolute;right:0;bottom:0;left:0}polyfill-next-selector{content:'.toolbar-tools > *:not([disabled])'}::content>:not([disabled]){pointer-events:auto}polyfill-next-selector{content:'.toolbar-tools > *'}::content>*{margin:0 8px}polyfill-next-selector{content:'.toolbar-tools > .fit'}::content>.fit{position:absolute;top:auto;right:0;bottom:0;left:0;width:auto;margin:0}polyfill-next-selector{content:':host .indent'}::content>.indent{margin-left:60px}</style><div id="bottomBar" class="toolbar-tools" center="" horizontal="" layout=""><content select=".bottom"></content></div><div id="middleBar" class="toolbar-tools" center="" horizontal="" layout=""><content select=".middle"></content></div><div id="topBar" class="toolbar-tools" center="" horizontal="" layout=""><content></content></div></template><script>(function(){Polymer("core-toolbar",{justify:"",middleJustify:"",bottomJustify:"",justifyChanged:function(old){this.updateBarJustify(this.$.topBar,this.justify,old)},middleJustifyChanged:function(old){this.updateBarJustify(this.$.middleBar,this.middleJustify,old)},bottomJustifyChanged:function(old){this.updateBarJustify(this.$.bottomBar,this.bottomJustify,old)},updateBarJustify:function(bar,justify,old){if(old){bar.removeAttribute(this.toLayoutAttrName(old))}if(justify){bar.setAttribute(this.toLayoutAttrName(justify),"")}},toLayoutAttrName:function(value){return value==="between"?"justified":value+"-justified"}})})();</script></polymer-element><polymer-element name="core-menu" extends="core-selector" assetpath="polymer/bower_components/core-menu/"><template><style>:host{display:block;margin:12px}polyfill-next-selector{content:':host > core-item'}::content>core-item{cursor:default}</style><core-a11y-keys target="{{}}" keys="up" on-keys-pressed="{{ selectPrevious }}"></core-a11y-keys><core-a11y-keys target="{{}}" keys="down" on-keys-pressed="{{ selectNext }}"></core-a11y-keys><core-a11y-keys target="{{}}" keys="enter" on-keys-pressed="{{ validateSelected }}"></core-a11y-keys><shadow></shadow></template><script>Polymer("core-menu");</script></polymer-element><polymer-element name="paper-item" extends="paper-button-base" assetpath="polymer/bower_components/paper-item/"><template><style>:host{display:block;position:relative;font-size:16px;box-sizing:border-box;min-width:7em;outline:0;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;cursor:pointer;z-index:0}:host([disabled]){color:#a8a8a8;cursor:auto;pointer-events:none}:host(.core-selected){background-color:#eaeaea}#ripple{pointer-events:none;z-index:-1}.button-content{padding:.9em 1em}polyfill-next-selector{content:'.button-content > a'}::content>a{height:100%;-ms-flex:1 1 0;-webkit-flex:1;flex:1;-webkit-flex-basis:0;flex-basis:0}</style><div class="button-content" relative="" layout="" horizontal="" center=""><content></content></div></template><script>Polymer("paper-item",{publish:{raised:false,recenteringTouch:false,fill:true}});</script></polymer-element><polymer-element name="paper-icon-button" extends="paper-button-base" attributes="src icon" role="button" assetpath="polymer/bower_components/paper-icon-button/"><template><style>:host{display:inline-block;position:relative;padding:8px;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;z-index:0}:host([disabled]){color:#c9c9c9;pointer-events:none;cursor:auto}#ripple{pointer-events:none;z-index:-1}#icon{display:block;pointer-events:none}</style><core-icon relative="" id="icon" src="{{src}}" icon="{{icon}}"></core-icon></template><script>Polymer("paper-icon-button",{publish:{src:"",icon:"",recenteringTouch:true,fill:false},iconChanged:function(oldIcon){var label=this.getAttribute("aria-label");if(!label||label===oldIcon){this.setAttribute("aria-label",this.icon)}}});</script></polymer-element><script>(function(scope){scope.CoreResizable={resizableAttachedHandler:function(cb){cb=cb||this._notifyResizeSelf;this.async(function(){var detail={callback:cb,hasParentResizer:false};this.fire("core-request-resize",detail);if(!detail.hasParentResizer){this._boundWindowResizeHandler=cb.bind(this);window.addEventListener("resize",this._boundWindowResizeHandler)}}.bind(this))},resizableDetachedHandler:function(){this.fire("core-request-resize-cancel",null,this,false);if(this._boundWindowResizeHandler){window.removeEventListener("resize",this._boundWindowResizeHandler)}},_notifyResizeSelf:function(){return this.fire("core-resize",null,this,false).defaultPrevented}};scope.CoreResizer=Polymer.mixin({resizerAttachedHandler:function(){this.resizableAttachedHandler(this.notifyResize);this._boundResizeRequested=this._boundResizeRequested||this._handleResizeRequested.bind(this);var listener;if(this.resizerIsPeer){listener=this.parentElement||this.parentNode&&this.parentNode.host;listener._resizerPeers=listener._resizerPeers||[];listener._resizerPeers.push(this)}else{listener=this}listener.addEventListener("core-request-resize",this._boundResizeRequested);this._resizerListener=listener},resizerDetachedHandler:function(){this.resizableDetachedHandler();this._resizerListener.removeEventListener("core-request-resize",this._boundResizeRequested)},notifyResize:function(){if(!this._notifyResizeSelf()){var r=this.resizeRequestors;if(r){for(var i=0;i<r.length;i++){var ri=r[i];if(!this.resizerShouldNotify||this.resizerShouldNotify(ri.target)){ri.callback.apply(ri.target)}}}}},_handleResizeRequested:function(e){var target=e.path[0];if(target==this||target==this._resizerListener||this._resizerPeers&&this._resizerPeers.indexOf(target)<0){return}if(!this.resizeRequestors){this.resizeRequestors=[]}this.resizeRequestors.push({target:target,callback:e.detail.callback});target.addEventListener("core-request-resize-cancel",this._cancelResizeRequested.bind(this));e.detail.hasParentResizer=true;e.stopPropagation()},_cancelResizeRequested:function(e){if(this.resizeRequestors){for(var i=0;i<this.resizeRequestors.length;i++){if(this.resizeRequestors[i].target==e.target){this.resizeRequestors.splice(i,1);break}}}}},Polymer.CoreResizable)})(Polymer);</script><polymer-element name="core-scroll-header-panel" assetpath="polymer/bower_components/core-scroll-header-panel/"><template><style>:host{display:block;position:relative;overflow:hidden}#mainContainer{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto}#headerContainer{position:absolute;top:0;right:0;left:0}.bg-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}#headerBg,#condensedHeaderBg{position:absolute;top:0;left:0;width:100%;height:100%;background-repeat:no-repeat;background-size:cover;background-position:center center}#condensedHeaderBg{opacity:0}</style><div id="mainContainer"><content id="mainContent" select=":not(core-toolbar):not(.core-header)"></content></div><div id="headerContainer"><div class="bg-container"><div id="condensedHeaderBg"></div><div id="headerBg"></div></div><content id="headerContent" select="core-toolbar, .core-header"></content></div></template><script>(function(){Polymer(Polymer.mixin({publish:{condenses:false,noDissolve:false,noReveal:false,fixed:false,keepCondensedHeader:false,headerHeight:0,condensedHeaderHeight:0,scrollAwayTopbar:false},prevScrollTop:0,headerMargin:0,y:0,observe:{"headerMargin fixed":"setup"},eventDelegates:{"core-resize":"measureHeaderHeight"},attached:function(){this.resizableAttachedHandler()},ready:function(){this._scrollHandler=this.scroll.bind(this);this.scroller.addEventListener("scroll",this._scrollHandler)},detached:function(){this.scroller.removeEventListener("scroll",this._scrollHandler);this.resizableDetachedHandler()},domReady:function(){this.async("measureHeaderHeight")},get header(){return this.$.headerContent.getDistributedNodes()[0]},get scroller(){return this.$.mainContainer},measureHeaderHeight:function(){var header=this.header;if(header&&header.offsetHeight){this.headerHeight=header.offsetHeight}},headerHeightChanged:function(){if(!this.condensedHeaderHeight){this._condensedHeaderHeight=this.headerHeight*1/3}this.condensedHeaderHeightChanged()},condensedHeaderHeightChanged:function(){if(this.condensedHeaderHeight){this._condensedHeaderHeight=this.condensedHeaderHeight}if(this.headerHeight){this.headerMargin=this.headerHeight-this._condensedHeaderHeight}},condensesChanged:function(){if(this.condenses){this.scroll()}else{this.condenseHeader(null)}},setup:function(){var s=this.scroller.style;s.paddingTop=this.fixed?"":this.headerHeight+"px";s.top=this.fixed?this.headerHeight+"px":"";if(this.fixed){this.transformHeader(null)}else{this.scroll()}},transformHeader:function(y){var s=this.$.headerContainer.style;this.translateY(s,-y);if(this.condenses){this.condenseHeader(y)}this.fire("core-header-transform",{y:y,height:this.headerHeight,condensedHeight:this._condensedHeaderHeight})},condenseHeader:function(y){var reset=y==null;if(!this.scrollAwayTopbar&&this.header.$&&this.header.$.topBar){this.translateY(this.header.$.topBar.style,reset?null:Math.min(y,this.headerMargin))}var hbg=this.$.headerBg.style;if(!this.noDissolve){hbg.opacity=reset?"":(this.headerMargin-y)/this.headerMargin}this.translateY(hbg,reset?null:y/2);var chbg=this.$.condensedHeaderBg.style;if(!this.noDissolve){chbg=this.$.condensedHeaderBg.style;chbg.opacity=reset?"":y/this.headerMargin;this.translateY(chbg,reset?null:y/2)}},translateY:function(s,y){var t=y==null?"":"translate3d(0, "+y+"px, 0)";setTransform(s,t)},scroll:function(event){if(!this.header){return}var sTop=this.scroller.scrollTop;var y=Math.min(this.keepCondensedHeader?this.headerMargin:this.headerHeight,Math.max(0,this.noReveal?sTop:this.y+sTop-this.prevScrollTop));if(this.condenses&&this.prevScrollTop>=sTop&&sTop>this.headerMargin){y=Math.max(y,this.headerMargin)}if(!event||!this.fixed&&y!==this.y){this.transformHeader(y)}this.prevScrollTop=Math.max(sTop,0);this.y=y;if(event){this.fire("scroll",{target:this.scroller},this,false)}}},Polymer.CoreResizable));if(document.documentElement.style.transform!==undefined){var setTransform=function(style,string){style.transform=string}}else{var setTransform=function(style,string){style.webkitTransform=string}}})();</script></polymer-element><polymer-element name="partial-base" attributes="narrow togglePanel" assetpath="polymer/layouts/"><template><core-style ref="ha-headers"></core-style><core-scroll-header-panel fit="" fixed="{{!narrow}}"><core-toolbar><paper-icon-button id="navicon" icon="menu" hidden?="{{!narrow}}" on-click="{{togglePanel}}"></paper-icon-button><div flex=""><content select="[header-title]"></content></div><content select="[header-buttons]"></content></core-toolbar><content></content></core-scroll-header-panel></template><script>Polymer("partial-base");</script></polymer-element><polymer-element name="core-tooltip" attributes="noarrow position label show tipAttribute" role="tooltip" tabindex="0" assetpath="polymer/bower_components/core-tooltip/"><template><style>:host{box-sizing:border-box;position:relative;display:inline-block;outline:0}:host(:hover:not([disabled])) .core-tooltip{visibility:visible!important}:host([focused]) .core-tooltip{visibility:visible!important}.core-tooltip:not(.show){visibility:hidden}.core-tooltip{position:absolute;font-size:10px;font-weight:500;padding:8px;color:#fff;background-color:rgba(0,0,0,.9);box-sizing:border-box;border-radius:3px;white-space:nowrap;line-height:6px;z-index:1002;-webkit-user-select:none;user-select:none}:host([large]) .core-tooltip{line-height:14px;font-size:14px;padding:16px}.core-tooltip.noarrow::after{display:none}.core-tooltip::after{position:absolute;border:solid transparent;content:'';height:0;width:0;border-width:4px}.top{margin-bottom:10px;bottom:100%}.right{margin-left:10px;left:100%}.bottom{top:100%;margin-top:10px}.left{margin-right:10px;right:100%}.core-tooltip.bottom::after{bottom:100%;left:calc(50% - 4px);border-bottom-color:rgba(0,0,0,.8)}.core-tooltip.left::after{left:100%;top:calc(50% - 4px);border-left-color:rgba(0,0,0,.8)}.core-tooltip.top::after{top:100%;left:calc(50% - 4px);border-top-color:rgba(0,0,0,.8)}.core-tooltip.right::after{right:100%;top:calc(50% - 4px);border-right-color:rgba(0,0,0,.8)}</style><div id="tooltip" hidden?="{{!hasTooltipContent}}" class="core-tooltip {{position}} {{ {noarrow: noarrow, show: show && !disabled} | tokenList}}"><content id="c" select="[{{tipAttribute}}]">{{label}}</content></div><content></content></template><script>(function(){var proto={label:null,eventDelegates:{"core-resize":"positionChanged"},computed:{hasTooltipContent:"label || !!tipElement"},publish:{show:{value:false,reflect:true},position:{value:"bottom",reflect:true},noarrow:{value:false,reflect:true}},tipAttribute:"tip",attached:function(){this.updatedChildren();this.resizableAttachedHandler()},detached:function(){this.resizableDetachedHandler()},updatedChildren:function(){this.tipElement=null;for(var i=0,el;el=this.$.c.getDistributedNodes()[i];++i){if(el.hasAttribute&&el.hasAttribute(this.tipAttribute)){this.tipElement=el;break}}this.job("positionJob",this.setPosition);this.onMutation(this,this.updatedChildren)},labelChanged:function(oldVal,newVal){this.job("positionJob",this.setPosition)},positionChanged:function(oldVal,newVal){this.job("positionJob",this.setPosition)},setPosition:function(){var controlWidth=this.clientWidth;var controlHeight=this.clientHeight;var toolTipWidth=this.$.tooltip.clientWidth;var toolTipHeight=this.$.tooltip.clientHeight;switch(this.position){case"top":case"bottom":this.$.tooltip.style.left=(controlWidth-toolTipWidth)/2+"px";this.$.tooltip.style.top=null;break;case"left":case"right":this.$.tooltip.style.left=null;this.$.tooltip.style.top=(controlHeight-toolTipHeight)/2+"px";break}}};Polymer.mixin2(proto,Polymer.CoreFocusable);Polymer.mixin(proto,Polymer.CoreResizable);Polymer(proto)})();</script></polymer-element><polymer-element name="core-image" assetpath="polymer/bower_components/core-image/"><template><style>:host{display:inline-block;overflow:hidden;position:relative}#placeholder{background-color:inherit;opacity:1}#placeholder.fadein{transition:opacity .5s linear;opacity:0}</style><template if="{{!sizing}}"><img id="img"></template><template if="{{preload && fade}}"><div id="placeholder" fit=""></div></template><content></content></template><script>Polymer("core-image",{publish:{src:null,load:true,sizing:null,position:"center",preload:false,placeholder:null,fade:false,loading:false,width:null,height:null},observe:{"preload color sizing position src fade":"update"},widthChanged:function(){this.style.width=isNaN(this.width)?this.width:this.width+"px"},heightChanged:function(){this.style.height=isNaN(this.height)?this.height:this.height+"px"},update:function(){this.style.backgroundSize=this.sizing;this.style.backgroundPosition=this.sizing?this.position:null;this.style.backgroundRepeat=this.sizing?"no-repeat":null;if(this.preload){if(this.fade){if(!this._placeholderEl){this._placeholderEl=this.shadowRoot.querySelector("#placeholder")}this._placeholderEl.style.backgroundSize=this.sizing;this._placeholderEl.style.backgroundPosition=this.sizing?this.position:null;this._placeholderEl.style.backgroundRepeat=this.sizing?"no-repeat":null;this._placeholderEl.classList.remove("fadein");this._placeholderEl.style.backgroundImage=this.load&&this.placeholder?"url("+this.placeholder+")":null}else{this._setSrc(this.placeholder)}if(this.load&&this.src){var img=new Image;img.src=this.src;this.loading=true;img.onload=function(){this._setSrc(this.src);this.loading=false;if(this.fade){this._placeholderEl.classList.add("fadein")}}.bind(this)}}else{this._setSrc(this.src)}},_setSrc:function(src){if(this.sizing){this.style.backgroundImage=src?"url("+src+")":""}else{this.$.img.src=src||""}}});</script></polymer-element><core-iconset-svg id="social" iconsize="24"><svg><defs><g id="cake"><path d="M12 6c1.11 0 2-.9 2-2 0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99l-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z"/></g><g id="domain"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"/></g><g id="group"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></g><g id="group-add"><path d="M8 10H5V7H3v3H0v2h3v3h2v-3h3v-2zm10 1c1.66 0 2.99-1.34 2.99-3S19.66 5 18 5c-.32 0-.63.05-.91.14.57.81.9 1.79.9 2.86s-.34 2.04-.9 2.86c.28.09.59.14.91.14zm-5 0c1.66 0 2.99-1.34 2.99-3S14.66 5 13 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm6.62 2.16c.83.73 1.38 1.66 1.38 2.84v2h3v-2c0-1.54-2.37-2.49-4.38-2.84zM13 13c-2 0-6 1-6 3v2h12v-2c0-2-4-3-6-3z"/></g><g id="location-city"><path d="M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z"/></g><g id="mood"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></g><g id="notifications"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2z"/></g><g id="notifications-none"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2zm-2 1H7v-6.5C7 8.01 9.01 6 11.5 6S16 8.01 16 10.5V17z"/></g><g id="notifications-off"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zM18 10.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-.51.12-.99.32-1.45.56L18 14.18V10.5zm-.27 8.5l2 2L21 19.73 4.27 3 3 4.27l2.92 2.92C5.34 8.16 5 9.29 5 10.5V16l-2 2v1h14.73z"/></g><g id="notifications-on"><path d="M6.58 3.58L5.15 2.15C2.76 3.97 1.18 6.8 1.03 10h2c.15-2.65 1.51-4.97 3.55-6.42zM19.97 10h2c-.15-3.2-1.73-6.03-4.13-7.85l-1.43 1.43c2.05 1.45 3.41 3.77 3.56 6.42zm-1.97.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2v-5.5zM11.5 22c.14 0 .27-.01.4-.04.65-.13 1.19-.58 1.44-1.18.1-.24.16-.5.16-.78h-4c0 1.1.9 2 2 2z"/></g><g id="notifications-paused"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2zm-4-6.2l-2.8 3.4H14V15H9v-1.8l2.8-3.4H9V8h5v1.8z"/></g><g id="pages"><path d="M3 5v6h5L7 7l4 1V3H5c-1.1 0-2 .9-2 2zm5 8H3v6c0 1.1.9 2 2 2h6v-5l-4 1 1-4zm9 4l-4-1v5h6c1.1 0 2-.9 2-2v-6h-5l1 4zm2-14h-6v5l4-1-1 4h5V5c0-1.1-.9-2-2-2z"/></g><g id="party-mode"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 3c1.63 0 3.06.79 3.98 2H12c-1.66 0-3 1.34-3 3 0 .35.07.69.18 1H7.1c-.06-.32-.1-.66-.1-1 0-2.76 2.24-5 5-5zm0 10c-1.63 0-3.06-.79-3.98-2H12c1.66 0 3-1.34 3-3 0-.35-.07-.69-.18-1h2.08c.07.32.1.66.1 1 0 2.76-2.24 5-5 5z"/></g><g id="people"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></g><g id="people-outline"><path d="M16.5 13c-1.2 0-3.07.34-4.5 1-1.43-.67-3.3-1-4.5-1C5.33 13 1 14.08 1 16.25V19h22v-2.75c0-2.17-4.33-3.25-6.5-3.25zm-4 4.5h-10v-1.25c0-.54 2.56-1.75 5-1.75s5 1.21 5 1.75v1.25zm9 0H14v-1.25c0-.46-.2-.86-.52-1.22.88-.3 1.96-.53 3.02-.53 2.44 0 5 1.21 5 1.75v1.25zM7.5 12c1.93 0 3.5-1.57 3.5-3.5S9.43 5 7.5 5 4 6.57 4 8.5 5.57 12 7.5 12zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 5.5c1.93 0 3.5-1.57 3.5-3.5S18.43 5 16.5 5 13 6.57 13 8.5s1.57 3.5 3.5 3.5zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z"/></g><g id="person"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></g><g id="person-add"><path d="M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></g><g id="person-outline"><path d="M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></g><g id="plus-one"><path d="M10 8H8v4H4v2h4v4h2v-4h4v-2h-4zm4.5-1.92V7.9l2.5-.5V18h2V5z"/></g><g id="poll"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></g><g id="public"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></g><g id="school"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"/></g><g id="share"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/></g><g id="whatshot"><path d="M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="image" iconsize="24"><svg><defs><g id="add-to-photos"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g><g id="adjust"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z"/></g><g id="assistant-photo"><path d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/></g><g id="audiotrack"><path d="M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z"/></g><g id="blur-circular"><path d="M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></g><g id="blur-linear"><path d="M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z"/></g><g id="blur-off"><path d="M14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-.2 4.48l.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm11 7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 13.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM2.5 5.27l3.78 3.78L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81c-.09-.03-.18-.06-.28-.06-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78L20 20.23 3.77 4 2.5 5.27zM10 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm11-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"/></g><g id="blur-on"><path d="M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/></g><g id="brightness-1"><circle cx="12" cy="12" r="10"/></g><g id="brightness-2"><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></g><g id="brightness-3"><path d="M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54 0 4.48-2.94 8.27-7 9.54.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z"/></g><g id="brightness-4"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></g><g id="brightness-5"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></g><g id="brightness-6"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></g><g id="brightness-7"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></g><g id="brush"><path d="M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34c-.39-.39-1.02-.39-1.41 0L9 12.25 11.75 15l8.96-8.96c.39-.39.39-1.02 0-1.41z"/></g><g id="camera"><path d="M9.4 10.5l4.77-8.26C13.47 2.09 12.75 2 12 2c-2.4 0-4.6.85-6.32 2.25l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25C21 16.97 22 14.61 22 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75C3.01 7.03 2 9.39 2 12c0 .69.07 1.35.2 2h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0l-3.9 6.76c.7.15 1.42.24 2.17.24 2.4 0 4.6-.85 6.32-2.25l-3.66-6.35-.93 1.6z"/></g><g id="camera-alt"><circle cx="12" cy="12" r="3.2"/><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></g><g id="camera-front"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zM12 8c1.1 0 2-.9 2-2s-.9-2-2-2-1.99.9-1.99 2S10.9 8 12 8zm5-8H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 2h10v10.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2z"/></g><g id="camera-rear"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-5 6c-1.11 0-2-.9-2-2s.89-2 1.99-2 2 .9 2 2C14 5.1 13.1 6 12 6z"/></g><g id="camera-roll"><path d="M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm-2 13h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2z"/></g><g id="center-focus-strong"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z"/></g><g id="center-focus-weak"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="collections"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"/></g><g id="color-lens"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="colorize"><path d="M20.71 5.63l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"/></g><g id="compare"><path d="M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g><g id="control-point"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="control-point-duplicate"><path d="M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16C3.64 17.2 2 14.79 2 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z"/></g><g id="crop"><path d="M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z"/></g><g id="crop-16-9"><path d="M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z"/></g><g id="crop-3-2"><path d="M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z"/></g><g id="crop-5-4"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"/></g><g id="crop-7-5"><path d="M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z"/></g><g id="crop-din"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></g><g id="crop-free"><path d="M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z"/></g><g id="crop-landscape"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"/></g><g id="crop-original"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71l-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z"/></g><g id="crop-portrait"><path d="M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z"/></g><g id="crop-square"><path d="M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z"/></g><g id="dehaze"><path d="M2 15.5v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20v-2H2z"/></g><g id="details"><path d="M3 4l9 16 9-16H3zm3.38 2h11.25L12 16 6.38 6z"/></g><g id="edit"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></g><g id="exposure"><path d="M15 17v2h2v-2h2v-2h-2v-2h-2v2h-2v2h2zm5-15H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 5h6v2H5V5zm15 15H4L20 4v16z"/></g><g id="exposure-minus-1"><path d="M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z"/></g><g id="exposure-minus-2"><path d="M15.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17s.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z"/></g><g id="exposure-plus-1"><path d="M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z"/></g><g id="exposure-plus-2"><path d="M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z"/></g><g id="exposure-zero"><path d="M16.14 12.5c0 1-.1 1.85-.3 2.55-.2.7-.48 1.27-.83 1.7-.36.44-.79.75-1.3.95-.51.2-1.07.3-1.7.3-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95-.36-.44-.65-1.01-.85-1.7-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19-.32 0-.61.06-.86.18s-.47.31-.64.58c-.17.27-.31.62-.4 1.06s-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19c.33 0 .62-.06.87-.19s.46-.33.63-.61c.17-.28.3-.64.39-1.09.09-.45.13-.99.13-1.62v-2.66z"/></g><g id="filter"><path d="M15.96 10.29l-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-1"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-2"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"/></g><g id="filter-3"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"/></g><g id="filter-4"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-5"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"/></g><g id="filter-6"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-2c0-1.11-.9-2-2-2h-2V7h4V5h-4c-1.1 0-2 .89-2 2v6c0 1.11.9 2 2 2zm0-4h2v2h-2v-2z"/></g><g id="filter-7"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2l4-8V5h-6v2h4l-4 8h2z"/></g><g id="filter-8"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-2c-1.1 0-2 .89-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13c0 1.11.9 2 2 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z"/></g><g id="filter-9"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2c-1.1 0-2 .89-2 2v2c0 1.11.9 2 2 2h2v2h-4v2h4c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2zm0 4h-2V7h2v2z"/></g><g id="filter-9-plus"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8c0-1.11-.9-2-2-2h-1c-1.1 0-2 .89-2 2v1c0 1.11.9 2 2 2h1v1H9v2h3c1.1 0 2-.89 2-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z"/></g><g id="filter-b-and-w"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16l-7-8v8H5l7-8V5h7v14z"/></g><g id="filter-center-focus"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="filter-drama"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.61 5.64 5.36 8.04 2.35 8.36 0 10.9 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z"/></g><g id="filter-frames"><path d="M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM18 8H6v10h12"/></g><g id="filter-hdr"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"/></g><g id="filter-none"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-tilt-shift"><path d="M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69c1.11-.86 2.44-1.44 3.9-1.62zm7.32.19C16.84 3.05 15.01 2.25 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1c.86 1.11 1.44 2.44 1.62 3.9zM5.69 7.1L4.26 5.68C3.05 7.16 2.25 8.99 2.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43c-.86-1.1-1.44-2.43-1.62-3.89zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9l1.43 1.43c1.21-1.48 2.01-3.32 2.21-5.32h-2.02c-.18 1.45-.76 2.78-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19C7.16 20.95 9 21.75 11 21.95v-2.02c-1.46-.18-2.79-.76-3.9-1.62l-1.42 1.43z"/></g><g id="filter-vintage"><path d="M18.7 12.4c-.28-.16-.57-.29-.86-.4.29-.11.58-.24.86-.4 1.92-1.11 2.99-3.12 3-5.19-1.79-1.03-4.07-1.11-6 0-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55-1.92-1.11-4.2-1.03-6 0 0 2.07 1.07 4.08 3 5.19.28.16.57.29.86.4-.29.11-.58.24-.86.4-1.92 1.11-2.99 3.12-3 5.19 1.79 1.03 4.07 1.11 6 0 .28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54 1.92 1.11 4.2 1.03 6 0-.01-2.07-1.08-4.08-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/></g><g id="flare"><path d="M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z"/></g><g id="flash-auto"><path d="M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z"/></g><g id="flash-off"><path d="M3.27 3L2 4.27l5 5V13h3v9l3.58-6.14L17.73 20 19 18.73 3.27 3zM17 10h-4l4-8H7v2.18l8.46 8.46L17 10z"/></g><g id="flash-on"><path d="M7 2v11h3v9l7-12h-4l4-8z"/></g><g id="flip"><path d="M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"/></g><g id="gradient"><path d="M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z"/></g><g id="grain"><path d="M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="grid-off"><path d="M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z"/></g><g id="grid-on"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"/></g><g id="hdr-off"><path d="M18 17L3.27 2.27 2 3.55l4 4V11H4V7H2v10h2v-4h2v4h2V9.55l1 1V17h4c.67 0 1.26-.33 1.62-.84l6.34 6.34 1.27-1.27L18 17zm-5-2h-2v-2.45l2 2V15zm5-2h1l.82 3.27.73.73H22l-1.19-4.17c.7-.31 1.19-1.01 1.19-1.83V9c0-1.1-.9-2-2-2h-4v5.45l2 2V13zm0-4h2v2h-2V9zm-3 2.45V9c0-1.1-.9-2-2-2h-2.45L15 11.45z"/></g><g id="hdr-on"><path d="M6 11H4V7H2v10h2v-4h2v4h2V7H6v4zm7-4H9v10h4c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8h-2V9h2v6zm9-4V9c0-1.1-.9-2-2-2h-4v10h2v-4h1l1 4h2l-1.19-4.17c.7-.31 1.19-1.01 1.19-1.83zm-2 0h-2V9h2v2z"/></g><g id="hdr-strong"><path d="M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="hdr-weak"><path d="M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/></g><g id="healing"><path d="M17.73 12.02l3.98-3.98c.39-.39.39-1.02 0-1.41l-4.34-4.34c-.39-.39-1.02-.39-1.41 0l-3.98 3.98L8 2.29C7.8 2.1 7.55 2 7.29 2c-.25 0-.51.1-.7.29L2.25 6.63c-.39.39-.39 1.02 0 1.41l3.98 3.98L2.25 16c-.39.39-.39 1.02 0 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34c.39-.39.39-1.02 0-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34l-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z"/></g><g id="image"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></g><g id="image-aspect-ratio"><path d="M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z"/></g><g id="iso"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z"/></g><g id="landscape"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"/></g><g id="leak-add"><path d="M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2c0 4.97-4.03 9-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2c0-4.97 4.03-9 9-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z"/></g><g id="leak-remove"><path d="M10 3H8c0 .37-.04.72-.12 1.06l1.59 1.59C9.81 4.84 10 3.94 10 3zM3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97C7.14 11.24 5.16 12 3 12v2c2.71 0 5.19-.99 7.11-2.62l2.5 2.5C10.99 15.81 10 18.29 10 21h2c0-2.16.76-4.14 2.03-5.69l1.43 1.43C14.55 17.91 14 19.39 14 21h2c0-1.06.33-2.03.89-2.84L19.73 21 21 19.73 4.27 3 3 4.27zM14 3h-2c0 1.5-.37 2.91-1.02 4.16l1.46 1.46C13.42 6.98 14 5.06 14 3zm5.94 13.12c.34-.08.69-.12 1.06-.12v-2c-.94 0-1.84.19-2.66.52l1.6 1.6zm-4.56-4.56l1.46 1.46C18.09 12.37 19.5 12 21 12v-2c-2.06 0-3.98.58-5.62 1.56z"/></g><g id="lens"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/></g><g id="looks"><path d="M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z"/></g><g id="looks-3"><path d="M19.01 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 7.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15c0 1.11-.9 2-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4c1.1 0 2 .89 2 2v1.5z"/></g><g id="looks-4"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 14h-2v-4H9V7h2v4h2V7h2v10z"/></g><g id="looks-5"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2H9v-2h4v-2H9V7h6v2z"/></g><g id="looks-6"><path d="M11 15h2v-2h-2v2zm8-12H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2h-2c-1.1 0-2-.89-2-2V9c0-1.11.9-2 2-2h4v2z"/></g><g id="looks-one"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z"/></g><g id="looks-two"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 8c0 1.11-.9 2-2 2h-2v2h4v2H9v-4c0-1.11.9-2 2-2h2V9H9V7h4c1.1 0 2 .89 2 2v2z"/></g><g id="loupe"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="movie-creation"><path d="M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"/></g><g id="nature"><path d="M13 16.12c3.47-.41 6.17-3.36 6.17-6.95 0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H5v2h14v-2h-6v-3.88z"/></g><g id="nature-people"><path d="M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88c3.47-.41 6.17-3.36 6.17-6.95zM4.5 11c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z"/></g><g id="navigate-before"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></g><g id="navigate-next"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></g><g id="palette"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="panorama"><path d="M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z"/></g><g id="panorama-fisheye"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="panorama-horizontal"><path d="M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16-2.72 0-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7c-3.09 0-6.18-.55-9.12-1.64-.11-.04-.22-.06-.31-.06-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64 3.09 0 6.18.55 9.12 1.64.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z"/></g><g id="panorama-vertical"><path d="M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12 0-3.09.55-6.18 1.64-9.12.04-.11.06-.22.06-.31 0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12c0 3.09-.55 6.18-1.64 9.12-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8 0-2.72-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8 0 2.72.39 5.4 1.16 8H6.54z"/></g><g id="panorama-wide-angle"><path d="M12 6c2.45 0 4.71.2 7.29.64.47 1.78.71 3.58.71 5.36 0 1.78-.24 3.58-.71 5.36-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64C4.24 15.58 4 13.78 4 12c0-1.78.24-3.58.71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z"/></g><g id="photo"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></g><g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z"/></g><g id="photo-camera"><circle cx="12" cy="12" r="3.2"/><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></g><g id="photo-library"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"/></g><g id="portrait"><path d="M12 12.25c1.24 0 2.25-1.01 2.25-2.25S13.24 7.75 12 7.75 9.75 8.76 9.75 10s1.01 2.25 2.25 2.25zm4.5 4c0-1.5-3-2.25-4.5-2.25s-4.5.75-4.5 2.25V17h9v-.75zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></g><g id="remove-red-eye"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="rotate-left"><path d="M7.11 8.53L5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z"/></g><g id="rotate-right"><path d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/></g><g id="slideshow"><path d="M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></g><g id="straighten"><path d="M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z"/></g><g id="style"><path d="M2.53 19.65l1.34.56v-9.03l-2.43 5.86c-.41 1.02.08 2.19 1.09 2.61zm19.5-3.7L17.07 3.98c-.31-.75-1.04-1.21-1.81-1.23-.26 0-.53.04-.79.15L7.1 5.95c-.75.31-1.21 1.03-1.23 1.8-.01.27.04.54.15.8l4.96 11.97c.31.76 1.05 1.22 1.83 1.23.26 0 .52-.05.77-.15l7.36-3.05c1.02-.42 1.51-1.59 1.09-2.6zM7.88 8.75c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2 11c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z"/></g><g id="switch-camera"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 11.5V13H9v2.5L5.5 12 9 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"/></g><g id="switch-video"><path d="M18 9.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zm-5 6V13H7v2.5L3.5 12 7 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"/></g><g id="tag-faces"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></g><g id="texture"><path d="M19.51 3.08L3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3L3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z"/></g><g id="timelapse"><path d="M16.24 7.76C15.07 6.59 13.54 6 12 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0 2.34-2.34 2.34-6.14-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="timer"><path d="M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g><g id="timer-10"><path d="M0 7.72V9.4l3-1V18h2V6h-.25L0 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39 0-.14.03-.28.09-.41.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59C21.49 9.07 21 9 20.46 9c-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27-.58 0-1.11.09-1.59.27-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89.48.18 1.01.28 1.59.28.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89.34-.41.6-.94.78-1.6.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53-.08.42-.2.76-.36 1.02-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02-.09-.42-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52.09-.41.21-.74.38-1 .16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99.08.41.13.92.13 1.52v2.51z"/></g><g id="timer-3"><path d="M11.61 12.97c-.16-.24-.36-.46-.62-.65-.25-.19-.56-.35-.93-.48.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33.22-.08.46-.12.73-.12.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57-.17.16-.38.28-.63.37-.25.09-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36-.17-.16-.3-.34-.39-.56-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23.49-.15.91-.38 1.26-.68.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39s.03-.28.09-.41c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.68.23.96c.15.28.37.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z"/></g><g id="timer-auto"><path d="M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.67-5.33-4-8-4z"/></g><g id="timer-off"><path d="M19.04 4.55l-1.42 1.42C16.07 4.74 14.12 4 12 4c-1.83 0-3.53.55-4.95 1.48l1.46 1.46C9.53 6.35 10.73 6 12 6c3.87 0 7 3.13 7 7 0 1.27-.35 2.47-.94 3.49l1.45 1.45C20.45 16.53 21 14.83 21 13c0-2.12-.74-4.07-1.97-5.61l1.42-1.42-1.41-1.42zM15 1H9v2h6V1zm-4 8.44l2 2V8h-2v1.44zM3.02 4L1.75 5.27 4.5 8.03C3.55 9.45 3 11.16 3 13c0 4.97 4.02 9 9 9 1.84 0 3.55-.55 4.98-1.5l2.5 2.5 1.27-1.27-7.71-7.71L3.02 4zM12 20c-3.87 0-7-3.13-7-7 0-1.28.35-2.48.95-3.52l9.56 9.56c-1.03.61-2.23.96-3.51.96z"/></g><g id="tonality"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z"/></g><g id="transform"><path d="M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z"/></g><g id="tune"><path d="M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"/></g><g id="wb-auto"><path d="M6.85 12.65h2.3L8 9l-1.15 3.65zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76C12.77 5.17 10.53 4 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.13 0 5.84-1.81 7.15-4.43l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-11.7 9l-.7-2H6.4l-.7 2H3.8L7 7h2l3.2 9h-1.9z"/></g><g id="wb-cloudy"><path d="M19.36 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96z"/></g><g id="wb-incandescent"><path d="M3.55 18.54l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8zM11 22.45h2V19.5h-2v2.95zM4 10.5H1v2h3v-2zm11-4.19V1.5H9v4.81C7.21 7.35 6 9.28 6 11.5c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19zm5 4.19v2h3v-2h-3zm-2.76 7.66l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4z"/></g><g id="wb-irradescent"><path d="M5 14.5h14v-6H5v6zM11 .55V3.5h2V.55h-2zm8.04 2.5l-1.79 1.79 1.41 1.41 1.8-1.79-1.42-1.41zM13 22.45V19.5h-2v2.95h2zm7.45-3.91l-1.8-1.79-1.41 1.41 1.79 1.8 1.42-1.42zM3.55 4.46l1.79 1.79 1.41-1.41-1.79-1.79-1.41 1.41zm1.41 15.49l1.79-1.8-1.41-1.41-1.79 1.79 1.41 1.42z"/></g><g id="wb-sunny"><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="hardware" iconsize="24"><svg><defs><g id="cast"><path d="M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2c4.97 0 9 4.03 9 9h2c0-6.08-4.93-11-11-11z"/></g><g id="cast-connected"><path d="M1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm18-7H5v1.63c3.96 1.28 7.09 4.41 8.37 8.37H19V7zM1 10v2c4.97 0 9 4.03 9 9h2c0-6.08-4.93-11-11-11zm20-7H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g><g id="computer"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"/></g><g id="desktop-mac"><path d="M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7l-2 3v1h8v-1l-2-3h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 12H3V4h18v10z"/></g><g id="desktop-windows"><path d="M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z"/></g><g id="dock"><path d="M8 23h8v-2H8v2zm8-21.99L8 1c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM16 15H8V5h8v10z"/></g><g id="gamepad"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"/></g><g id="headset"><path d="M12 1c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7c0-4.97-4.03-9-9-9z"/></g><g id="headset-mic"><path d="M12 1c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10c0-4.97-4.03-9-9-9z"/></g><g id="keyboard"><path d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"/></g><g id="keyboard-alt"><path d="M15.5 10c.83 0 1.5-.67 1.5-1.5S16.33 7 15.5 7 14 7.67 14 8.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 7 8.5 7 7 7.67 7 8.5 7.67 10 8.5 10zm3.5 7c2.61 0 4.83-1.67 5.65-4H6.35c.82 2.33 3.04 4 5.65 4zm-.01-16C6.47 1 2 5.48 2 11s4.47 10 9.99 10C17.52 21 22 16.52 22 11S17.52 1 11.99 1zM12 19c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="keyboard-arrow-down"><path d="M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z"/></g><g id="keyboard-arrow-left"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/></g><g id="keyboard-arrow-right"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/></g><g id="keyboard-arrow-up"><path d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"/></g><g id="keyboard-backspace"><path d="M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z"/></g><g id="keyboard-capslock"><path d="M12 8.41L16.59 13 18 11.59l-6-6-6 6L7.41 13 12 8.41zM6 18h12v-2H6v2z"/></g><g id="keyboard-control"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="keyboard-hide"><path d="M20 3H4c-1.1 0-1.99.9-1.99 2L2 15c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 3h2v2h-2V6zm0 3h2v2h-2V9zM8 6h2v2H8V6zm0 3h2v2H8V9zm-1 2H5V9h2v2zm0-3H5V6h2v2zm9 7H8v-2h8v2zm0-4h-2V9h2v2zm0-3h-2V6h2v2zm3 3h-2V9h2v2zm0-3h-2V6h2v2zm-7 15l4-4H8l4 4z"/></g><g id="keyboard-return"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/></g><g id="keyboard-tab"><path d="M11.59 7.41L15.17 11H1v2h14.17l-3.59 3.59L13 18l6-6-6-6-1.41 1.41zM20 6v12h2V6h-2z"/></g><g id="keyboard-voice"><path d="M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 15 6.7 12H5c0 3.42 2.72 6.23 6 6.72V22h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g><g id="laptop"><path d="M20 18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"/></g><g id="laptop-chromebook"><path d="M22 18V3H2v15H0v2h24v-2h-2zm-8 0h-4v-1h4v1zm6-3H4V5h16v10z"/></g><g id="laptop-mac"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></g><g id="laptop-windows"><path d="M20 18v-1c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2v1H0v2h24v-2h-4zM4 5h16v10H4V5z"/></g><g id="memory"><path d="M15 9H9v6h6V9zm-2 4h-2v-2h2v2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2zm-4 6H7V7h10v10z"/></g><g id="mouse"><path d="M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93zM4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4v4zm7-13.93C7.05 1.56 4 4.92 4 9h7V1.07z"/></g><g id="phone-android"><path d="M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z"/></g><g id="phone-iphone"><path d="M15.5 1h-8C6.12 1 5 2.12 5 3.5v17C5 21.88 6.12 23 7.5 23h8c1.38 0 2.5-1.12 2.5-2.5v-17C18 2.12 16.88 1 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z"/></g><g id="phonelink"><path d="M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z"/></g><g id="phonelink-off"><path d="M22 6V4H6.82l2 2H22zM1.92 1.65L.65 2.92l1.82 1.82C2.18 5.08 2 5.52 2 6v11H0v3h17.73l2.35 2.35 1.27-1.27L3.89 3.62 1.92 1.65zM4 6.27L14.73 17H4V6.27zM23 8h-6c-.55 0-1 .45-1 1v4.18l2 2V10h4v7h-2.18l3 3H23c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z"/></g><g id="security"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/></g><g id="sim-card"><path d="M19.99 4c0-1.1-.89-2-1.99-2h-8L4 8v12c0 1.1.9 2 2 2h12.01c1.1 0 1.99-.9 1.99-2l-.01-16zM9 19H7v-2h2v2zm8 0h-2v-2h2v2zm-8-4H7v-4h2v4zm4 4h-2v-4h2v4zm0-6h-2v-2h2v2zm4 2h-2v-4h2v4z"/></g><g id="smartphone"><path d="M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></g><g id="speaker"><path d="M17 2H7c-1.1 0-2 .9-2 2v16c0 1.1.9 1.99 2 1.99L17 22c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 2c1.1 0 2 .9 2 2s-.9 2-2 2c-1.11 0-2-.9-2-2s.89-2 2-2zm0 16c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="tablet"><path d="M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z"/></g><g id="tablet-android"><path d="M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z"/></g><g id="tablet-mac"><path d="M18.5 0h-14C3.12 0 2 1.12 2 2.5v19C2 22.88 3.12 24 4.5 24h14c1.38 0 2.5-1.12 2.5-2.5v-19C21 1.12 19.88 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z"/></g><g id="tv"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z"/></g><g id="watch"><path d="M20 12c0-2.54-1.19-4.81-3.04-6.27L16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73C18.81 16.81 20 14.54 20 12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="av" iconsize="24"><svg><defs><g id="album"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></g><g id="av-timer"><path d="M11 17c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm0-14v4h2V5.08c3.39.49 6 3.39 6 6.92 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-1.68.59-3.22 1.58-4.42L12 13l1.41-1.41-6.8-6.8v.02C4.42 6.45 3 9.05 3 12c0 4.97 4.02 9 9 9 4.97 0 9-4.03 9-9s-4.03-9-9-9h-1zm7 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zM6 12c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z"/></g><g id="closed-caption"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/></g><g id="equalizer"><path d="M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z"/></g><g id="explicit"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h4v2h-4v2h4v2H9V7h6v2z"/></g><g id="fast-forward"><path d="M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z"/></g><g id="fast-rewind"><path d="M11 18V6l-8.5 6 8.5 6zm.5-6l8.5 6V6l-8.5 6z"/></g><g id="games"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"/></g><g id="hearing"><path d="M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55.51.23 1.07.35 1.64.35 2.21 0 4-1.79 4-4h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5-1.12-2.5-2.5-2.5-2.5 1.12-2.5 2.5z"/></g><g id="high-quality"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/></g><g id="loop"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></g><g id="mic"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g><g id="mic-none"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm-1.2-9.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2V4.9zm6.5 6.1c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g><g id="mic-off"><path d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73 4.27 3z"/></g><g id="movie"><path d="M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"/></g><g id="my-library-add"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g><g id="my-library-books"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z"/></g><g id="my-library-music"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5c0 1.38-1.12 2.5-2.5 2.5S10 13.88 10 12.5s1.12-2.5 2.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/></g><g id="new-releases"><path d="M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-10 5h-2v-2h2v2zm0-4h-2V7h2v6z"/></g><g id="not-interested"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></g><g id="pause"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></g><g id="pause-circle-fill"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z"/></g><g id="pause-circle-outline"><path d="M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z"/></g><g id="play-arrow"><path d="M8 5v14l11-7z"/></g><g id="play-circle-fill"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"/></g><g id="play-circle-outline"><path d="M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="play-shopping-bag"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"/></g><g id="playlist-add"><path d="M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z"/></g><g id="queue"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g><g id="queue-music"><path d="M15 6H3v2h12V6zm0 4H3v2h12v-2zM3 16h8v-2H3v2zM17 6v8.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6h-5z"/></g><g id="radio"><path d="M3.24 6.15C2.51 6.43 2 7.17 2 8v12c0 1.1.89 2 2 2h16c1.11 0 2-.9 2-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z"/></g><g id="recent-actors"><path d="M21 5v14h2V5h-2zm-4 14h2V5h-2v14zM14 5H2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8 7.75c1.24 0 2.25 1.01 2.25 2.25S9.24 12.25 8 12.25 5.75 11.24 5.75 10 6.76 7.75 8 7.75zM12.5 17h-9v-.75c0-1.5 3-2.25 4.5-2.25s4.5.75 4.5 2.25V17z"/></g><g id="repeat"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z"/></g><g id="repeat-one"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z"/></g><g id="replay"><path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/></g><g id="shuffle"><path d="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z"/></g><g id="skip-next"><path d="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z"/></g><g id="skip-previous"><path d="M6 6h2v12H6zm3.5 6l8.5 6V6z"/></g><g id="snooze"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-3-9h3.63L9 15.2V17h6v-2h-3.63L15 10.8V9H9v2z"/></g><g id="stop"><path d="M6 6h12v12H6z"/></g><g id="subtitles"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"/></g><g id="surround-sound"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.76 16.24l-1.41 1.41C4.78 16.1 4 14.05 4 12c0-2.05.78-4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-.59-3.07-1.76-4.24l1.41-1.41C19.22 7.9 20 9.95 20 12c0 2.05-.78 4.1-2.34 5.66zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="video-collection"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 12.5v-9l6 4.5-6 4.5z"/></g><g id="videocam"><path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"/></g><g id="videocam-off"><path d="M21 6.5l-4 4V7c0-.55-.45-1-1-1H9.82L21 17.18V6.5zM3.27 2L2 3.27 4.73 6H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.21 0 .39-.08.54-.18L19.73 21 21 19.73 3.27 2z"/></g><g id="volume-down"><path d="M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"/></g><g id="volume-mute"><path d="M7 9v6h4l5 5V4l-5 5H7z"/></g><g id="volume-off"><path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"/></g><g id="volume-up"><path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/></g><g id="web"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="homeassistant-100" iconsize="100"><svg><defs><g id="thermostat"><path d="M66.861,60.105V17.453c0-9.06-7.347-16.405-16.408-16.405c-9.06,0-16.404,7.345-16.404,16.405v42.711 c-4.04,4.14-6.533,9.795-6.533,16.035c0,12.684,10.283,22.967,22.967,22.967c12.682,0,22.964-10.283,22.964-22.967 C73.447,69.933,70.933,64.254,66.861,60.105z M60.331,20.38h-13.21v6.536h6.63v6.539h-6.63v6.713h6.63v6.538h-6.63v6.5h6.63v6.536 h-6.63v7.218c-3.775,1.373-6.471,4.993-6.471,9.24h-6.626c0-5.396,2.598-10.182,6.61-13.185V17.446c0-0.038,0.004-0.075,0.004-0.111 l-0.004-0.007c0-5.437,4.411-9.846,9.849-9.846c5.438,0,9.848,4.409,9.848,9.846V20.38z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="homeassistant-24" iconsize="24"><svg><defs><g id="group"><path d="M9 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5-3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-7c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g></defs></svg></core-iconset-svg><script>window.hass.uiUtil.domainIcon=function(domain,state){switch(domain){case"homeassistant":return"home";case"group":return"homeassistant-24:group";case"device_tracker":return"social:person";case"switch":return"image:flash-on";case"media_player":var icon="hardware:cast";if(state!=="idle"){icon+="-connected"}return icon;case"sun":return"image:wb-sunny";case"light":return"image:wb-incandescent";case"simple_alarm":return"social:notifications";case"notify":return"announcement";case"thermostat":return"homeassistant-100:thermostat";case"sensor":return"visibility";case"configurator":return"settings";case"conversation":return"av:hearing";case"script":return"description";case"scene":return"social:pages";default:return"bookmark-outline"}};</script><polymer-element name="domain-icon" attributes="domain state" constructor="DomainIcon" assetpath="polymer/components/"><template><core-icon icon="{{icon}}"></core-icon></template><script>Polymer("domain-icon",{icon:"",observe:{domain:"updateIcon",state:"updateIcon"},updateIcon:function(){this.icon=window.hass.uiUtil.domainIcon(this.domain,this.state)}});</script></polymer-element><polymer-element name="state-badge" attributes="stateObj" assetpath="polymer/components/"><template><style>:host{position:relative;display:inline-block;width:45px;background-color:#4fc3f7;color:#fff;border-radius:50%;transition:all .3s ease-in-out}div{height:45px;text-align:center}core-image{border-radius:50%}domain-icon{margin:0 auto}domain-icon[data-domain=light][data-state=on],domain-icon[data-domain=switch][data-state=on],domain-icon[data-domain=sun][data-state=above_horizon]{color:#fff176}</style><div horizontal="" layout="" center=""><domain-icon id="icon" domain="{{stateObj.domain}}" data-domain="{{stateObj.domain}}" state="{{stateObj.state}}" data-state="{{stateObj.state}}"></domain-icon><template if="{{stateObj.attributes.entity_picture}}"><core-image sizing="cover" fit="" src="{{stateObj.attributes.entity_picture}}"></core-image></template></div></template><script>Polymer("state-badge",{observe:{"stateObj.state":"updateIconColor","stateObj.attributes.brightness":"updateIconColor","stateObj.attributes.xy_color[0]":"updateIconColor","stateObj.attributes.xy_color[1]":"updateIconColor"},updateIconColor:function(oldVal,newVal){var state=this.stateObj;if(state.domain=="light"&&state.state=="on"&&state.attributes.brightness&&state.attributes.xy_color){var rgb=this.xyBriToRgb(state.attributes.xy_color[0],state.attributes.xy_color[1],state.attributes.brightness);this.$.icon.style.color="rgb("+rgb.map(Math.floor).join(",")+")"}else{this.$.icon.style.color=null}},xyBriToRgb:function(x,y,bri){z=1-x-y;Y=bri/255;X=Y/y*x;Z=Y/y*z;r=X*1.612-Y*.203-Z*.302;g=-X*.509+Y*1.412+Z*.066;b=X*.026-Y*.072+Z*.962;r=r<=.0031308?12.92*r:(1+.055)*Math.pow(r,1/2.4)-.055;g=g<=.0031308?12.92*g:(1+.055)*Math.pow(g,1/2.4)-.055;b=b<=.0031308?12.92*b:(1+.055)*Math.pow(b,1/2.4)-.055;maxValue=Math.max(r,g,b);r/=maxValue;g/=maxValue;b/=maxValue;r=r*255;if(r<0){r=255}g=g*255;if(g<0){g=255}b=b*255;if(b<0){b=255}return[r,g,b]}});</script></polymer-element><script>(function(undefined){var moment,VERSION="2.9.0",globalScope=typeof global!=="undefined"&&(typeof window==="undefined"||window===global.window)?global:this,oldGlobalMoment,round=Math.round,hasOwnProperty=Object.prototype.hasOwnProperty,i,YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,locales={},momentProperties=[],hasModule=typeof module!=="undefined"&&module&&module.exports,aspNetJsonRegex=/^\/?Date\((\-?\d+)/i,aspNetTimeSpanJsonRegex=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,isoDurationRegex=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,formattingTokens=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,parseTokenOneOrTwoDigits=/\d\d?/,parseTokenOneToThreeDigits=/\d{1,3}/,parseTokenOneToFourDigits=/\d{1,4}/,parseTokenOneToSixDigits=/[+\-]?\d{1,6}/,parseTokenDigits=/\d+/,parseTokenWord=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,parseTokenTimezone=/Z|[\+\-]\d\d:?\d\d/gi,parseTokenT=/T/i,parseTokenOffsetMs=/[\+\-]?\d+/,parseTokenTimestampMs=/[\+\-]?\d+(\.\d{1,3})?/,parseTokenOneDigit=/\d/,parseTokenTwoDigits=/\d\d/,parseTokenThreeDigits=/\d{3}/,parseTokenFourDigits=/\d{4}/,parseTokenSixDigits=/[+-]?\d{6}/,parseTokenSignedNumber=/[+-]?\d+/,isoRegex=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,isoFormat="YYYY-MM-DDTHH:mm:ssZ",isoDates=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],isoTimes=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],parseTimezoneChunker=/([\+\-]|\d\d)/gi,proxyGettersAndSetters="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),unitMillisecondFactors={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},unitAliases={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},camelFunctions={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},formatFunctions={},relativeTimeThresholds={s:45,m:45,h:22,d:26,M:11},ordinalizeTokens="DDD w W M D d".split(" "),paddedTokens="M D H h m s w W".split(" "),formatTokenFunctions={M:function(){return this.month()+1},MMM:function(format){return this.localeData().monthsShort(this,format)},MMMM:function(format){return this.localeData().months(this,format)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(format){return this.localeData().weekdaysMin(this,format)},ddd:function(format){return this.localeData().weekdaysShort(this,format)},dddd:function(format){return this.localeData().weekdays(this,format)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return leftZeroFill(this.year()%100,2)},YYYY:function(){return leftZeroFill(this.year(),4)},YYYYY:function(){return leftZeroFill(this.year(),5)},YYYYYY:function(){var y=this.year(),sign=y>=0?"+":"-";return sign+leftZeroFill(Math.abs(y),6)},gg:function(){return leftZeroFill(this.weekYear()%100,2)},gggg:function(){return leftZeroFill(this.weekYear(),4)},ggggg:function(){return leftZeroFill(this.weekYear(),5)},GG:function(){return leftZeroFill(this.isoWeekYear()%100,2)},GGGG:function(){return leftZeroFill(this.isoWeekYear(),4)},GGGGG:function(){return leftZeroFill(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),true)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),false)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return toInt(this.milliseconds()/100)},SS:function(){return leftZeroFill(toInt(this.milliseconds()/10),2)},SSS:function(){return leftZeroFill(this.milliseconds(),3)},SSSS:function(){return leftZeroFill(this.milliseconds(),3)},Z:function(){var a=this.utcOffset(),b="+";if(a<0){a=-a;b="-"}return b+leftZeroFill(toInt(a/60),2)+":"+leftZeroFill(toInt(a)%60,2)},ZZ:function(){var a=this.utcOffset(),b="+";if(a<0){a=-a;b="-"}return b+leftZeroFill(toInt(a/60),2)+leftZeroFill(toInt(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},deprecations={},lists=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],updateInProgress=false;function dfl(a,b,c){switch(arguments.length){case 2:return a!=null?a:b;case 3:return a!=null?a:b!=null?b:c;default:throw new Error("Implement me")}}function hasOwnProp(a,b){return hasOwnProperty.call(a,b)}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false}}function printMsg(msg){if(moment.suppressDeprecationWarnings===false&&typeof console!=="undefined"&&console.warn){console.warn("Deprecation warning: "+msg)}}function deprecate(msg,fn){var firstTime=true;return extend(function(){if(firstTime){printMsg(msg);firstTime=false}return fn.apply(this,arguments)},fn)}function deprecateSimple(name,msg){if(!deprecations[name]){printMsg(msg);deprecations[name]=true}}function padToken(func,count){return function(a){return leftZeroFill(func.call(this,a),count)}}function ordinalizeToken(func,period){return function(a){return this.localeData().ordinal(func.call(this,a),period)}}function monthDiff(a,b){var wholeMonthDiff=(b.year()-a.year())*12+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,"months"),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,"months");adjust=(b-anchor)/(anchor-anchor2)}else{anchor2=a.clone().add(wholeMonthDiff+1,"months");adjust=(b-anchor)/(anchor2-anchor)}return-(wholeMonthDiff+adjust)}while(ordinalizeTokens.length){i=ordinalizeTokens.pop();formatTokenFunctions[i+"o"]=ordinalizeToken(formatTokenFunctions[i],i)}while(paddedTokens.length){i=paddedTokens.pop();formatTokenFunctions[i+i]=padToken(formatTokenFunctions[i],2)}formatTokenFunctions.DDDD=padToken(formatTokenFunctions.DDD,3);function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour}if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem)}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12}if(!isPm&&hour===12){hour=0}return hour}else{return hour}}function Locale(){}function Moment(config,skipOverflow){if(skipOverflow!==false){checkOverflow(config)}copyConfig(this,config);this._d=new Date(+config._d);if(updateInProgress===false){updateInProgress=true;moment.updateOffset(this);updateInProgress=false}}function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._milliseconds=+milliseconds+seconds*1e3+minutes*6e4+hours*36e5;this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=moment.localeData();this._bubble()}function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i]}}if(hasOwnProp(b,"toString")){a.toString=b.toString}if(hasOwnProp(b,"valueOf")){a.valueOf=b.valueOf}return a}function copyConfig(to,from){var i,prop,val;if(typeof from._isAMomentObject!=="undefined"){to._isAMomentObject=from._isAMomentObject}if(typeof from._i!=="undefined"){to._i=from._i}if(typeof from._f!=="undefined"){to._f=from._f}if(typeof from._l!=="undefined"){to._l=from._l}if(typeof from._strict!=="undefined"){to._strict=from._strict}if(typeof from._tzm!=="undefined"){to._tzm=from._tzm}if(typeof from._isUTC!=="undefined"){to._isUTC=from._isUTC}if(typeof from._offset!=="undefined"){to._offset=from._offset}if(typeof from._pf!=="undefined"){to._pf=from._pf}if(typeof from._locale!=="undefined"){to._locale=from._locale}if(momentProperties.length>0){for(i in momentProperties){prop=momentProperties[i];val=from[prop];if(typeof val!=="undefined"){to[prop]=val}}}return to}function absRound(number){if(number<0){return Math.ceil(number)}else{return Math.floor(number)}}function leftZeroFill(number,targetLength,forceSign){var output=""+Math.abs(number),sign=number>=0;while(output.length<targetLength){output="0"+output}return(sign?forceSign?"+":"":"-")+output}function positiveMomentsDifference(base,other){var res={milliseconds:0,months:0};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,"M").isAfter(other)){--res.months}res.milliseconds=+other-+base.clone().add(res.months,"M");return res}function momentsDifference(base,other){var res;other=makeAs(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other)}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months}return res}function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,"moment()."+name+"(period, number) is deprecated. Please use moment()."+name+"(number, period).");tmp=val;val=period;period=tmp}val=typeof val==="string"?+val:val;dur=moment.duration(val,period);addOrSubtractDurationFromMoment(this,dur,direction);return this}}function addOrSubtractDurationFromMoment(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=duration._days,months=duration._months;updateOffset=updateOffset==null?true:updateOffset;if(milliseconds){mom._d.setTime(+mom._d+milliseconds*isAdding)}if(days){rawSetter(mom,"Date",rawGetter(mom,"Date")+days*isAdding)}if(months){rawMonthSetter(mom,rawGetter(mom,"Month")+months*isAdding)}if(updateOffset){moment.updateOffset(mom,days||months)}}function isArray(input){return Object.prototype.toString.call(input)==="[object Array]"}function isDate(input){return Object.prototype.toString.call(input)==="[object Date]"||input instanceof Date}function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i])){diffs++}}return diffs+lengthDiff}function normalizeUnits(units){if(units){var lowered=units.toLowerCase().replace(/(.)s$/,"$1");units=unitAliases[units]||camelFunctions[lowered]||lowered}return units}function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop]}}}return normalizedInput}function makeList(field){var count,setter;if(field.indexOf("week")===0){count=7;setter="day"}else if(field.indexOf("month")===0){count=12;setter="month"}else{return}moment[field]=function(format,index){var i,getter,method=moment._locale[field],results=[];if(typeof format==="number"){index=format;format=undefined}getter=function(i){var m=moment().utc().set(setter,i);return method.call(moment._locale,m,format||"")};if(index!=null){return getter(index)}else{for(i=0;i<count;i++){results.push(getter(i))}return results}}}function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){if(coercedNumber>=0){value=Math.floor(coercedNumber)}else{value=Math.ceil(coercedNumber)}}return value}function daysInMonth(year,month){return new Date(Date.UTC(year,month+1,0)).getUTCDate()}function weeksInYear(year,dow,doy){return weekOfYear(moment([year,11,31+dow-doy]),dow,doy).week}function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}function checkOverflow(m){var overflow;if(m._a&&m._pf.overflow===-2){overflow=m._a[MONTH]<0||m._a[MONTH]>11?MONTH:m._a[DATE]<1||m._a[DATE]>daysInMonth(m._a[YEAR],m._a[MONTH])?DATE:m._a[HOUR]<0||m._a[HOUR]>24||m._a[HOUR]===24&&(m._a[MINUTE]!==0||m._a[SECOND]!==0||m._a[MILLISECOND]!==0)?HOUR:m._a[MINUTE]<0||m._a[MINUTE]>59?MINUTE:m._a[SECOND]<0||m._a[SECOND]>59?SECOND:m._a[MILLISECOND]<0||m._a[MILLISECOND]>999?MILLISECOND:-1;if(m._pf._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE}m._pf.overflow=overflow}}function isValid(m){if(m._isValid==null){m._isValid=!isNaN(m._d.getTime())&&m._pf.overflow<0&&!m._pf.empty&&!m._pf.invalidMonth&&!m._pf.nullInput&&!m._pf.invalidFormat&&!m._pf.userInvalidated;if(m._strict){m._isValid=m._isValid&&m._pf.charsLeftOver===0&&m._pf.unusedTokens.length===0&&m._pf.bigHour===undefined}}return m._isValid}function normalizeLocale(key){return key?key.toLowerCase().replace("_","-"):key}function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split("-");j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split("-"):null;while(j>0){locale=loadLocale(split.slice(0,j).join("-"));if(locale){return locale}if(next&&next.length>=j&&compareArrays(split,next,true)>=j-1){break}j--}i++}return null}function loadLocale(name){var oldLocale=null;if(!locales[name]&&hasModule){try{oldLocale=moment.locale();require("./locale/"+name);moment.locale(oldLocale)}catch(e){}}return locales[name]}function makeAs(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(moment.isMoment(input)||isDate(input)?+input:+moment(input))-+res;res._d.setTime(+res._d+diff);moment.updateOffset(res,false);return res}else{return moment(input).local()}}extend(Locale.prototype,{set:function(config){var prop,i;for(i in config){prop=config[i];if(typeof prop==="function"){this[i]=prop}else{this["_"+i]=prop}}this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(m){return this._months[m.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(m){return this._monthsShort[m.month()]},monthsParse:function(monthName,format,strict){var i,mom,regex;if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[]}for(i=0;i<12;i++){mom=moment.utc([2e3,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp("^"+this.months(mom,"").replace(".","")+"$","i");this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(mom,"").replace(".","")+"$","i")}if(!strict&&!this._monthsParse[i]){regex="^"+this.months(mom,"")+"|^"+this.monthsShort(mom,"");this._monthsParse[i]=new RegExp(regex.replace(".",""),"i")}if(strict&&format==="MMMM"&&this._longMonthsParse[i].test(monthName)){return i}else if(strict&&format==="MMM"&&this._shortMonthsParse[i].test(monthName)){return i}else if(!strict&&this._monthsParse[i].test(monthName)){return i}}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(m){return this._weekdays[m.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(m){return this._weekdaysShort[m.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(m){return this._weekdaysMin[m.day()]},weekdaysParse:function(weekdayName){var i,mom,regex;if(!this._weekdaysParse){this._weekdaysParse=[]}for(i=0;i<7;i++){if(!this._weekdaysParse[i]){mom=moment([2e3,1]).day(i);regex="^"+this.weekdays(mom,"")+"|^"+this.weekdaysShort(mom,"")+"|^"+this.weekdaysMin(mom,"");this._weekdaysParse[i]=new RegExp(regex.replace(".",""),"i")}if(this._weekdaysParse[i].test(weekdayName)){return i}}},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(key){var output=this._longDateFormat[key];if(!output&&this._longDateFormat[key.toUpperCase()]){output=this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)});this._longDateFormat[key]=output}return output},isPM:function(input){return(input+"").toLowerCase().charAt(0)==="p"},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(hours,minutes,isLower){if(hours>11){return isLower?"pm":"PM"}else{return isLower?"am":"AM"}},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(key,mom,now){var output=this._calendar[key];return typeof output==="function"?output.apply(mom,[now]):output},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return typeof output==="function"?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)},pastFuture:function(diff,output){var format=this._relativeTime[diff>0?"future":"past"];return typeof format==="function"?format(output):format.replace(/%s/i,output)},ordinal:function(number){return this._ordinal.replace("%d",number)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(string){return string},postformat:function(string){return string},week:function(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}});function removeFormattingTokens(input){if(input.match(/\[[\s\S]/)){return input.replace(/^\[|\]$/g,"")}return input.replace(/\\/g,"")}function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]]}else{array[i]=removeFormattingTokens(array[i])}}return function(mom){var output="";for(i=0;i<length;i++){output+=array[i]instanceof Function?array[i].call(mom,format):array[i]}return output}}function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate()}format=expandFormat(format,m.localeData());if(!formatFunctions[format]){formatFunctions[format]=makeFormatFunction(format)}return formatFunctions[format](m)}function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input}localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1}return format}function getParseRegexForToken(token,config){var a,strict=config._strict;switch(token){case"Q":return parseTokenOneDigit;case"DDDD":return parseTokenThreeDigits;case"YYYY":case"GGGG":case"gggg":return strict?parseTokenFourDigits:parseTokenOneToFourDigits;case"Y":case"G":case"g":return parseTokenSignedNumber;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return strict?parseTokenSixDigits:parseTokenOneToSixDigits;case"S":if(strict){return parseTokenOneDigit}case"SS":if(strict){return parseTokenTwoDigits}case"SSS":if(strict){return parseTokenThreeDigits}case"DDD":return parseTokenOneToThreeDigits;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return parseTokenWord;case"a":case"A":return config._locale._meridiemParse;case"x":return parseTokenOffsetMs;case"X":return parseTokenTimestampMs;case"Z":case"ZZ":return parseTokenTimezone;case"T":return parseTokenT;case"SSSS":return parseTokenDigits;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return strict?parseTokenTwoDigits:parseTokenOneOrTwoDigits;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return parseTokenOneOrTwoDigits;case"Do":return strict?config._locale._ordinalParse:config._locale._ordinalParseLenient;default:a=new RegExp(regexpEscape(unescapeFormat(token.replace("\\","")),"i"));return a}}function utcOffsetFromString(string){string=string||"";var possibleTzMatches=string.match(parseTokenTimezone)||[],tzChunk=possibleTzMatches[possibleTzMatches.length-1]||[],parts=(tzChunk+"").match(parseTimezoneChunker)||["-",0,0],minutes=+(parts[1]*60)+toInt(parts[2]);return parts[0]==="+"?minutes:-minutes}function addTimeToArrayFromToken(token,input,config){var a,datePartArray=config._a;switch(token){case"Q":if(input!=null){datePartArray[MONTH]=(toInt(input)-1)*3}break;case"M":case"MM":if(input!=null){datePartArray[MONTH]=toInt(input)-1}break;case"MMM":case"MMMM":a=config._locale.monthsParse(input,token,config._strict);if(a!=null){datePartArray[MONTH]=a}else{config._pf.invalidMonth=input}break;case"D":case"DD":if(input!=null){datePartArray[DATE]=toInt(input)}break;case"Do":if(input!=null){datePartArray[DATE]=toInt(parseInt(input.match(/\d{1,2}/)[0],10))}break;case"DDD":case"DDDD":if(input!=null){config._dayOfYear=toInt(input)}break;case"YY":datePartArray[YEAR]=moment.parseTwoDigitYear(input);break;case"YYYY":case"YYYYY":case"YYYYYY":datePartArray[YEAR]=toInt(input);break;case"a":case"A":config._meridiem=input;break;case"h":case"hh":config._pf.bigHour=true;case"H":case"HH":datePartArray[HOUR]=toInt(input);break;case"m":case"mm":datePartArray[MINUTE]=toInt(input);break;case"s":case"ss":datePartArray[SECOND]=toInt(input);break;case"S":case"SS":case"SSS":case"SSSS":datePartArray[MILLISECOND]=toInt(("0."+input)*1e3);break;case"x":config._d=new Date(toInt(input));break;case"X":config._d=new Date(parseFloat(input)*1e3);break;case"Z":case"ZZ":config._useUTC=true;config._tzm=utcOffsetFromString(input);break;case"dd":case"ddd":case"dddd":a=config._locale.weekdaysParse(input);if(a!=null){config._w=config._w||{};config._w["d"]=a}else{config._pf.invalidWeekday=input}break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":token=token.substr(0,1);case"gggg":case"GGGG":case"GGGGG":token=token.substr(0,2);if(input){config._w=config._w||{};config._w[token]=toInt(input)}break;case"gg":case"GG":config._w=config._w||{};config._w[token]=moment.parseTwoDigitYear(input)}}function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=dfl(w.GG,config._a[YEAR],weekOfYear(moment(),1,4).year);week=dfl(w.W,1);weekday=dfl(w.E,1)}else{dow=config._locale._week.dow;doy=config._locale._week.doy;weekYear=dfl(w.gg,config._a[YEAR],weekOfYear(moment(),dow,doy).year);week=dfl(w.w,1);if(w.d!=null){weekday=w.d;if(weekday<dow){++week}}else if(w.e!=null){weekday=w.e+dow}else{weekday=dow}}temp=dayOfYearFromWeeks(weekYear,week,weekday,doy,dow);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear}function dateFromConfig(config){var i,date,input=[],currentDate,yearToUse;if(config._d){return}currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config)}if(config._dayOfYear){yearToUse=dfl(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)){config._pf._overflowDayOfYear=true}date=makeUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate()}for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i]}for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?i===2?1:0:config._a[i]}if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0}config._d=(config._useUTC?makeUTCDate:makeDate).apply(null,input);if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)}if(config._nextDay){config._a[HOUR]=24}}function dateFromObject(config){var normalizedInput;if(config._d){return}normalizedInput=normalizeObjectUnits(config._i);config._a=[normalizedInput.year,normalizedInput.month,normalizedInput.day||normalizedInput.date,normalizedInput.hour,normalizedInput.minute,normalizedInput.second,normalizedInput.millisecond];dateFromConfig(config)}function currentDateArray(config){var now=new Date;if(config._useUTC){return[now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate()]}else{return[now.getFullYear(),now.getMonth(),now.getDate()]}}function makeDateFromStringAndFormat(config){if(config._f===moment.ISO_8601){parseISO(config);return}config._a=[];config._pf.empty=true;var string=""+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];for(i=0;i<tokens.length;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){config._pf.unusedInput.push(skipped)}string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length}if(formatTokenFunctions[token]){if(parsedInput){config._pf.empty=false}else{config._pf.unusedTokens.push(token)}addTimeToArrayFromToken(token,parsedInput,config)}else if(config._strict&&!parsedInput){config._pf.unusedTokens.push(token)}}config._pf.charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){config._pf.unusedInput.push(string)}if(config._pf.bigHour===true&&config._a[HOUR]<=12){config._pf.bigHour=undefined}config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);dateFromConfig(config);checkOverflow(config)}function unescapeFormat(s){return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4})}function regexpEscape(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function makeDateFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(config._f.length===0){config._pf.invalidFormat=true;config._d=new Date(NaN);return}for(i=0;i<config._f.length;i++){currentScore=0;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC}tempConfig._pf=defaultParsingFlags();tempConfig._f=config._f[i];makeDateFromStringAndFormat(tempConfig);if(!isValid(tempConfig)){continue}currentScore+=tempConfig._pf.charsLeftOver;currentScore+=tempConfig._pf.unusedTokens.length*10;tempConfig._pf.score=currentScore;if(scoreToBeat==null||currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig}}extend(config,bestMoment||tempConfig)}function parseISO(config){var i,l,string=config._i,match=isoRegex.exec(string);if(match){config._pf.iso=true;for(i=0,l=isoDates.length;i<l;i++){if(isoDates[i][1].exec(string)){config._f=isoDates[i][0]+(match[6]||" ");break}}for(i=0,l=isoTimes.length;i<l;i++){if(isoTimes[i][1].exec(string)){config._f+=isoTimes[i][0];break}}if(string.match(parseTokenTimezone)){config._f+="Z"}makeDateFromStringAndFormat(config)}else{config._isValid=false}}function makeDateFromString(config){parseISO(config);if(config._isValid===false){delete config._isValid;moment.createFromInputFallback(config)}}function map(arr,fn){var res=[],i;for(i=0;i<arr.length;++i){res.push(fn(arr[i],i))}return res}function makeDateFromInput(config){var input=config._i,matched;if(input===undefined){config._d=new Date}else if(isDate(input)){config._d=new Date(+input)}else if((matched=aspNetJsonRegex.exec(input))!==null){config._d=new Date(+matched[1])}else if(typeof input==="string"){makeDateFromString(config)}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10)});dateFromConfig(config)}else if(typeof input==="object"){dateFromObject(config)}else if(typeof input==="number"){config._d=new Date(input)}else{moment.createFromInputFallback(config)}}function makeDate(y,m,d,h,M,s,ms){var date=new Date(y,m,d,h,M,s,ms);if(y<1970){date.setFullYear(y)}return date}function makeUTCDate(y){var date=new Date(Date.UTC.apply(null,arguments));if(y<1970){date.setUTCFullYear(y)}return date}function parseWeekday(input,locale){if(typeof input==="string"){if(!isNaN(input)){input=parseInt(input,10)}else{input=locale.weekdaysParse(input);if(typeof input!=="number"){return null}}}return input}function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture)}function relativeTime(posNegDuration,withoutSuffix,locale){var duration=moment.duration(posNegDuration).abs(),seconds=round(duration.as("s")),minutes=round(duration.as("m")),hours=round(duration.as("h")),days=round(duration.as("d")),months=round(duration.as("M")),years=round(duration.as("y")),args=seconds<relativeTimeThresholds.s&&["s",seconds]||minutes===1&&["m"]||minutes<relativeTimeThresholds.m&&["mm",minutes]||hours===1&&["h"]||hours<relativeTimeThresholds.h&&["hh",hours]||days===1&&["d"]||days<relativeTimeThresholds.d&&["dd",days]||months===1&&["M"]||months<relativeTimeThresholds.M&&["MM",months]||years===1&&["y"]||["yy",years];args[2]=withoutSuffix;args[3]=+posNegDuration>0;args[4]=locale;return substituteTimeAgo.apply({},args)}function weekOfYear(mom,firstDayOfWeek,firstDayOfWeekOfYear){var end=firstDayOfWeekOfYear-firstDayOfWeek,daysToDayOfWeek=firstDayOfWeekOfYear-mom.day(),adjustedMoment;if(daysToDayOfWeek>end){daysToDayOfWeek-=7}if(daysToDayOfWeek<end-7){daysToDayOfWeek+=7}adjustedMoment=moment(mom).add(daysToDayOfWeek,"d");return{week:Math.ceil(adjustedMoment.dayOfYear()/7),year:adjustedMoment.year()}}function dayOfYearFromWeeks(year,week,weekday,firstDayOfWeekOfYear,firstDayOfWeek){var d=makeUTCDate(year,0,1).getUTCDay(),daysToAdd,dayOfYear;d=d===0?7:d;weekday=weekday!=null?weekday:firstDayOfWeek;daysToAdd=firstDayOfWeek-d+(d>firstDayOfWeekOfYear?7:0)-(d<firstDayOfWeek?7:0);dayOfYear=7*(week-1)+(weekday-firstDayOfWeek)+daysToAdd+1;return{year:dayOfYear>0?year:year-1,dayOfYear:dayOfYear>0?dayOfYear:daysInYear(year-1)+dayOfYear}}function makeMoment(config){var input=config._i,format=config._f,res;config._locale=config._locale||moment.localeData(config._l);if(input===null||format===undefined&&input===""){return moment.invalid({nullInput:true})}if(typeof input==="string"){config._i=input=config._locale.preparse(input)}if(moment.isMoment(input)){return new Moment(input,true)}else if(format){if(isArray(format)){makeDateFromStringAndArray(config)}else{makeDateFromStringAndFormat(config)}}else{makeDateFromInput(config)}res=new Moment(config);if(res._nextDay){res.add(1,"d");res._nextDay=undefined}return res}moment=function(input,format,locale,strict){var c;if(typeof locale==="boolean"){strict=locale;locale=undefined}c={};c._isAMomentObject=true;c._i=input;c._f=format;c._l=locale;c._strict=strict;c._isUTC=false;c._pf=defaultParsingFlags();return makeMoment(c)};moment.suppressDeprecationWarnings=false;moment.createFromInputFallback=deprecate("moment construction falls back to js Date. This is "+"discouraged and will be removed in upcoming major "+"release. Please refer to "+"https://github.com/moment/moment/issues/1407 for more info.",function(config){config._d=new Date(config._i+(config._useUTC?" UTC":""))});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0]}if(!moments.length){return moment()}res=moments[0];for(i=1;i<moments.length;++i){if(moments[i][fn](res)){res=moments[i]}}return res}moment.min=function(){var args=[].slice.call(arguments,0); +<div hidden><polymer-element name="core-media-query" attributes="query queryMatches" assetpath="polymer/bower_components/core-media-query/"><template><style>:host{display:none}</style></template><script>Polymer("core-media-query",{queryMatches:false,query:"",ready:function(){this._mqHandler=this.queryHandler.bind(this);this._mq=null},queryChanged:function(){if(this._mq){this._mq.removeListener(this._mqHandler)}var query=this.query;if(query[0]!=="("){query="("+this.query+")"}this._mq=window.matchMedia(query);this._mq.addListener(this._mqHandler);this.queryHandler(this._mq)},queryHandler:function(mq){this.queryMatches=mq.matches;this.asyncFire("core-media-change",mq)}});</script></polymer-element><polymer-element name="core-selection" attributes="multi" hidden assetpath="polymer/bower_components/core-selection/"><script>Polymer("core-selection",{multi:false,ready:function(){this.clear()},clear:function(){this.selection=[]},getSelection:function(){return this.multi?this.selection:this.selection[0]},isSelected:function(item){return this.selection.indexOf(item)>=0},setItemSelected:function(item,isSelected){if(item!==undefined&&item!==null){if(isSelected){this.selection.push(item)}else{var i=this.selection.indexOf(item);if(i>=0){this.selection.splice(i,1)}}this.fire("core-select",{isSelected:isSelected,item:item})}},select:function(item){if(this.multi){this.toggle(item)}else if(this.getSelection()!==item){this.setItemSelected(this.getSelection(),false);this.setItemSelected(item,true)}},toggle:function(item){this.setItemSelected(item,!this.isSelected(item))}});</script></polymer-element><polymer-element name="core-selector" attributes="selected multi valueattr selectedClass selectedProperty selectedAttribute selectedItem selectedModel selectedIndex notap excludedLocalNames target itemsSelector activateEvent" assetpath="polymer/bower_components/core-selector/"><template><core-selection id="selection" multi="{{multi}}" on-core-select="{{selectionSelect}}"></core-selection><content id="items" select="*"></content></template><script>Polymer("core-selector",{selected:null,multi:false,valueattr:"name",selectedClass:"core-selected",selectedProperty:"",selectedAttribute:"active",selectedItem:null,selectedModel:null,selectedIndex:-1,excludedLocalNames:"",target:null,itemsSelector:"",activateEvent:"tap",notap:false,defaultExcludedLocalNames:"template",observe:{"selected multi":"selectedChanged"},ready:function(){this.activateListener=this.activateHandler.bind(this);this.itemFilter=this.filterItem.bind(this);this.excludedLocalNamesChanged();this.observer=new MutationObserver(this.updateSelected.bind(this));if(!this.target){this.target=this}},get items(){if(!this.target){return[]}var nodes=this.target!==this?this.itemsSelector?this.target.querySelectorAll(this.itemsSelector):this.target.children:this.$.items.getDistributedNodes();return Array.prototype.filter.call(nodes,this.itemFilter)},filterItem:function(node){return!this._excludedNames[node.localName]},excludedLocalNamesChanged:function(){this._excludedNames={};var s=this.defaultExcludedLocalNames;if(this.excludedLocalNames){s+=" "+this.excludedLocalNames}s.split(/\s+/g).forEach(function(n){this._excludedNames[n]=1},this)},targetChanged:function(old){if(old){this.removeListener(old);this.observer.disconnect();this.clearSelection()}if(this.target){this.addListener(this.target);this.observer.observe(this.target,{childList:true});this.updateSelected()}},addListener:function(node){Polymer.addEventListener(node,this.activateEvent,this.activateListener)},removeListener:function(node){Polymer.removeEventListener(node,this.activateEvent,this.activateListener)},get selection(){return this.$.selection.getSelection()},selectedChanged:function(){if(arguments.length===1){this.processSplices(arguments[0])}else{this.updateSelected()}},updateSelected:function(){this.validateSelected();if(this.multi){this.clearSelection(this.selected);this.selected&&this.selected.forEach(function(s){this.setValueSelected(s,true)},this)}else{this.valueToSelection(this.selected)}},validateSelected:function(){if(this.multi&&!Array.isArray(this.selected)&&this.selected!=null){this.selected=[this.selected]}else if(!this.multi&&Array.isArray(this.selected)){var s=this.selected[0];this.clearSelection([s]);this.selected=s}},processSplices:function(splices){for(var i=0,splice;splice=splices[i];i++){for(var j=0;j<splice.removed.length;j++){this.setValueSelected(splice.removed[j],false)}for(var j=0;j<splice.addedCount;j++){this.setValueSelected(this.selected[splice.index+j],true)}}},clearSelection:function(excludes){this.$.selection.selection.slice().forEach(function(item){var v=this.valueForNode(item)||this.items.indexOf(item);if(!excludes||excludes.indexOf(v)<0){this.$.selection.setItemSelected(item,false)}},this)},valueToSelection:function(value){var item=this.valueToItem(value);this.$.selection.select(item)},setValueSelected:function(value,isSelected){var item=this.valueToItem(value);if(isSelected^this.$.selection.isSelected(item)){this.$.selection.setItemSelected(item,isSelected)}},updateSelectedItem:function(){this.selectedItem=this.selection},selectedItemChanged:function(){if(this.selectedItem){var t=this.selectedItem.templateInstance;this.selectedModel=t?t.model:undefined}else{this.selectedModel=null}this.selectedIndex=this.selectedItem?parseInt(this.valueToIndex(this.selected)):-1},valueToItem:function(value){return value===null||value===undefined?null:this.items[this.valueToIndex(value)]},valueToIndex:function(value){for(var i=0,items=this.items,c;c=items[i];i++){if(this.valueForNode(c)==value){return i}}return value},valueForNode:function(node){return node[this.valueattr]||node.getAttribute(this.valueattr)},selectionSelect:function(e,detail){this.updateSelectedItem();if(detail.item){this.applySelection(detail.item,detail.isSelected)}},applySelection:function(item,isSelected){if(this.selectedClass){item.classList.toggle(this.selectedClass,isSelected)}if(this.selectedProperty){item[this.selectedProperty]=isSelected}if(this.selectedAttribute&&item.setAttribute){if(isSelected){item.setAttribute(this.selectedAttribute,"")}else{item.removeAttribute(this.selectedAttribute)}}},activateHandler:function(e){if(!this.notap){var i=this.findDistributedTarget(e.target,this.items);if(i>=0){var item=this.items[i];var s=this.valueForNode(item)||i;if(this.multi){if(this.selected){this.addRemoveSelected(s)}else{this.selected=[s]}}else{this.selected=s}this.asyncFire("core-activate",{item:item})}}},addRemoveSelected:function(value){var i=this.selected.indexOf(value);if(i>=0){this.selected.splice(i,1)}else{this.selected.push(value)}},findDistributedTarget:function(target,nodes){while(target&&target!=this){var i=Array.prototype.indexOf.call(nodes,target);if(i>=0){return i}target=target.parentNode}},selectIndex:function(index){var item=this.items[index];if(item){this.selected=this.valueForNode(item)||index;return item}},selectPrevious:function(wrapped){var i=wrapped&&!this.selectedIndex?this.items.length-1:this.selectedIndex-1;return this.selectIndex(i)},selectNext:function(wrapped){var i=wrapped&&this.selectedIndex>=this.items.length-1?0:this.selectedIndex+1;return this.selectIndex(i)}});</script></polymer-element><polymer-element name="core-drawer-panel" touch-action="auto" assetpath="polymer/bower_components/core-drawer-panel/"><template><style>:host{display:block;position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}core-selector>#drawer{position:absolute;top:0;left:0;height:100%;will-change:transform;box-sizing:border-box;-moz-box-sizing:border-box}.transition>#drawer{transition:-webkit-transform ease-in-out .3s,width ease-in-out .3s;transition:transform ease-in-out .3s,width ease-in-out .3s}.right-drawer>#drawer{left:auto;right:0}polyfill-next-selector{content:':host [drawer]'}::content[select="[drawer]"]>*{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box}core-selector>#main{position:absolute;top:0;right:0;bottom:0}.transition>#main{transition:left ease-in-out .3s,padding ease-in-out .3s}.right-drawer>#main{left:0}.right-drawer.transition>#main{transition:right ease-in-out .3s,padding ease-in-out .3s}polyfill-next-selector{content:'#main > [main]'}::content[select="[main]"]>*{height:100%}#scrim{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.3);visibility:hidden;opacity:0;transition:opacity ease-in-out .38s,visibility ease-in-out .38s}#edgeSwipeOverlay{position:absolute;top:0;bottom:0;left:0;width:20px}.right-drawer>#main>#edgeSwipeOverlay{right:0;left:auto}.narrow-layout>#drawer.core-selected{box-shadow:2px 2px 4px rgba(0,0,0,.15)}.right-drawer.narrow-layout>#drawer.core-selected{box-shadow:-2px 2px 4px rgba(0,0,0,.15)}polyfill-next-selector{content:':host .narrow-layout > #drawer > [drawer]'}.narrow-layout>#drawer>::content[select="[drawer]"]>*{border:0}.narrow-layout>#drawer:not(.core-selected){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.right-drawer.narrow-layout>#drawer:not(.core-selected){left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.narrow-layout>#main{left:0!important;padding:0}.right-drawer.narrow-layout>#main{left:0;right:0;padding:0}.narrow-layout>#main:not(.core-selected)>#scrim,.dragging #scrim{visibility:visible;opacity:1}polyfill-next-selector{content:':host .narrow-layout > #main > [main]'}.narrow-layout>#main>::content[select="[main]"]>*{margin:0;min-height:100%;left:0;right:0;box-sizing:border-box;-moz-box-sizing:border-box}polyfill-next-selector{content:'core-selector:not(.narrow-layout) [core-drawer-toggle]'}core-selector:not(.narrow-layout) ::content [core-drawer-toggle]{display:none}</style><core-media-query query="max-width: {{forceNarrow ? '' : responsiveWidth}}" querymatches="{{queryMatches}}"></core-media-query><core-selector class="{{ {'narrow-layout' : narrow, transition : transition, dragging : dragging, 'right-drawer': rightDrawer} | tokenList }}" valueattr="id" selected="{{selected}}"><div id="main" _style="left: {{ narrow || rightDrawer ? '0' : drawerWidth }}; right: {{ rightDrawer ? (narrow ? '' : drawerWidth) : '' }};"><content select="[main]"></content><div id="scrim" on-tap="{{togglePanel}}"></div><div id="edgeSwipeOverlay" hidden?="{{!narrow || disableEdgeSwipe}}"></div></div><div id="drawer" _style="width: {{ drawerWidth }}"><content select="[drawer]"></content></div></core-selector></template><script>Polymer("core-drawer-panel",{publish:{drawerWidth:"256px",responsiveWidth:"640px",selected:{value:null,reflect:true},defaultSelected:"main",narrow:{value:false,reflect:true},rightDrawer:false,disableSwipe:false,forceNarrow:false,disableEdgeSwipe:false},eventDelegates:{trackstart:"trackStart",trackx:"trackx",trackend:"trackEnd",down:"downHandler",up:"upHandler",tap:"tapHandler"},transition:false,edgeSwipeSensitivity:15,peeking:false,dragging:false,hasTransform:true,hasWillChange:true,toggleAttribute:"core-drawer-toggle",created:function(){this.hasTransform="transform"in this.style;this.hasWillChange="willChange"in this.style},domReady:function(){this.async(function(){this.transition=true})},togglePanel:function(){this.selected=this.isMainSelected()?"drawer":"main"},openDrawer:function(){this.selected="drawer"},closeDrawer:function(){this.selected="main"},queryMatchesChanged:function(){this.narrow=this.queryMatches||this.forceNarrow;if(this.narrow){this.selected=this.defaultSelected}this.setAttribute("touch-action",this.swipeAllowed()?"pan-y":"");this.fire("core-responsive-change",{narrow:this.narrow})},forceNarrowChanged:function(){this.queryMatchesChanged()},swipeAllowed:function(){return this.narrow&&!this.disableSwipe},isMainSelected:function(){return this.selected==="main"},startEdgePeek:function(){this.width=this.$.drawer.offsetWidth;this.moveDrawer(this.translateXForDeltaX(this.rightDrawer?-this.edgeSwipeSensitivity:this.edgeSwipeSensitivity));this.peeking=true},stopEdgePeak:function(){if(this.peeking){this.peeking=false;this.moveDrawer(null)}},downHandler:function(e){if(!this.dragging&&this.isMainSelected()&&this.isEdgeTouch(e)){this.startEdgePeek()}},upHandler:function(e){this.stopEdgePeak()},tapHandler:function(e){if(e.target&&this.toggleAttribute&&e.target.hasAttribute(this.toggleAttribute)){this.togglePanel()}},isEdgeTouch:function(e){return!this.disableEdgeSwipe&&this.swipeAllowed()&&(this.rightDrawer?e.pageX>=this.offsetWidth-this.edgeSwipeSensitivity:e.pageX<=this.edgeSwipeSensitivity)},trackStart:function(e){if(this.swipeAllowed()){this.dragging=true;if(this.isMainSelected()){this.dragging=this.peeking||this.isEdgeTouch(e)}if(this.dragging){this.width=this.$.drawer.offsetWidth;this.transition=false;e.preventTap()}}},translateXForDeltaX:function(deltaX){var isMain=this.isMainSelected();if(this.rightDrawer){return Math.max(0,isMain?this.width+deltaX:deltaX)}else{return Math.min(0,isMain?deltaX-this.width:deltaX)}},trackx:function(e){if(this.dragging){if(this.peeking){if(Math.abs(e.dx)<=this.edgeSwipeSensitivity){return}this.peeking=false}this.moveDrawer(this.translateXForDeltaX(e.dx))}},trackEnd:function(e){if(this.dragging){this.dragging=false;this.transition=true;this.moveDrawer(null);if(this.rightDrawer){this.selected=e.xDirection>0?"main":"drawer"}else{this.selected=e.xDirection>0?"drawer":"main"}}},transformForTranslateX:function(translateX){if(translateX===null){return""}return this.hasWillChange?"translateX("+translateX+"px)":"translate3d("+translateX+"px, 0, 0)"},moveDrawer:function(translateX){var s=this.$.drawer.style;if(this.hasTransform){s.transform=this.transformForTranslateX(translateX)}else{s.webkitTransform=this.transformForTranslateX(translateX)}}});</script></polymer-element><polymer-element name="core-header-panel" assetpath="polymer/bower_components/core-header-panel/"><template><style>:host{display:block;position:relative}#outerContainer{position:absolute;top:0;right:0;bottom:0;left:0}#mainPanel{position:relative}#mainContainer{position:relative;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}#dropShadow{position:absolute;top:0;left:0;right:0;height:6px;box-shadow:inset 0 5px 6px -3px rgba(0,0,0,.4)}#dropShadow.hidden{display:none}:host([mode=scroll]) #mainContainer{overflow:visible}:host([mode=scroll]) #outerContainer{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}:host([mode=cover]) #mainPanel{position:static}:host([mode=cover]) #mainContainer{position:absolute;top:0;right:0;bottom:0;left:0}:host([mode=cover]) #dropShadow{position:static;width:100%}</style><div id="outerContainer" vertical="" layout=""><content id="headerContent" select="core-toolbar, .core-header"></content><div id="mainPanel" flex="" vertical="" layout=""><div id="mainContainer" flex?="{{mode !== 'cover'}}"><content id="mainContent" select="*"></content></div><div id="dropShadow"></div></div></div></template><script>Polymer("core-header-panel",{publish:{mode:{value:"",reflect:true},tallClass:"tall",shadow:false},animateDuration:200,modeConfigs:{shadowMode:{waterfall:1,"waterfall-tall":1},noShadow:{seamed:1,cover:1,scroll:1},tallMode:{"waterfall-tall":1},outerScroll:{scroll:1}},ready:function(){this.scrollHandler=this.scroll.bind(this);this.addListener()},detached:function(){this.removeListener(this.mode)},addListener:function(){this.scroller.addEventListener("scroll",this.scrollHandler)},removeListener:function(mode){var s=this.getScrollerForMode(mode);s.removeEventListener("scroll",this.scrollHandler)},domReady:function(){this.async("scroll")},modeChanged:function(old){var configs=this.modeConfigs;var header=this.header;if(header){if(configs.tallMode[old]&&!configs.tallMode[this.mode]){header.classList.remove(this.tallClass);this.async(function(){header.classList.remove("animate")},null,this.animateDuration)}else{header.classList.toggle("animate",configs.tallMode[this.mode])}}if(configs&&(configs.outerScroll[this.mode]||configs.outerScroll[old])){this.removeListener(old);this.addListener()}this.scroll()},get header(){return this.$.headerContent.getDistributedNodes()[0]},getScrollerForMode:function(mode){return this.modeConfigs.outerScroll[mode]?this.$.outerContainer:this.$.mainContainer},get scroller(){return this.getScrollerForMode(this.mode)},scroll:function(){var configs=this.modeConfigs;var main=this.$.mainContainer;var header=this.header;var sTop=main.scrollTop;var atTop=sTop===0;this.$.dropShadow.classList.toggle("hidden",!this.shadow&&(atTop&&configs.shadowMode[this.mode]||configs.noShadow[this.mode]));if(header&&configs.tallMode[this.mode]){header.classList.toggle(this.tallClass,atTop||header.classList.contains(this.tallClass)&&main.scrollHeight<this.$.outerContainer.offsetHeight)}this.fire("scroll",{target:this.scroller},this,false)}});</script></polymer-element><polymer-element name="core-toolbar" attributes="justify middleJustify bottomJustify" assetpath="polymer/bower_components/core-toolbar/"><template><style>:host{display:block;position:relative;box-sizing:border-box;-moz-box-sizing:border-box;height:64px;font-size:1.3em;background-color:#CFD8DC}:host(.animate){transition:height .18s ease-in}:host(.medium-tall){height:128px}:host(.tall){height:192px}.toolbar-tools{position:relative;height:64px;padding:0 8px;pointer-events:none}:host(.core-narrow),:host-context(.core-narrow){height:56px}polyfill-next-selector{content:':host.core-narrow.medium-tall, .core-narrow :host.medium-tall'}:host(.core-narrow.medium-tall),:host-context(.core-narrow):host(.medium-tall){height:112px}polyfill-next-selector{content:':host.core-narrow.tall, .core-narrow :host.tall'}:host(.core-narrow.tall),:host-context(.core-narrow):host(.tall){height:168px}polyfill-next-selector{content:':host.core-narrow .toolbar-tools, .core-narrow :host .toolbar-tools'}:host(.core-narrow) .toolbar-tools,:host-context(.core-narrow) .toolbar-tools{height:56px;padding:0}#middleBar{position:absolute;top:0;right:0;left:0}:host(.tall,.medium-tall) #middleBar{-webkit-transform:translateY(100%);transform:translateY(100%)}#bottomBar{position:absolute;right:0;bottom:0;left:0}polyfill-next-selector{content:'.toolbar-tools > *:not([disabled])'}::content>:not([disabled]){pointer-events:auto}polyfill-next-selector{content:'.toolbar-tools > *'}::content>*{margin:0 8px}polyfill-next-selector{content:'.toolbar-tools > .fit'}::content>.fit{position:absolute;top:auto;right:0;bottom:0;left:0;width:auto;margin:0}polyfill-next-selector{content:':host .indent'}::content>.indent{margin-left:60px}</style><div id="bottomBar" class="toolbar-tools" center="" horizontal="" layout=""><content select=".bottom"></content></div><div id="middleBar" class="toolbar-tools" center="" horizontal="" layout=""><content select=".middle"></content></div><div id="topBar" class="toolbar-tools" center="" horizontal="" layout=""><content></content></div></template><script>(function(){Polymer("core-toolbar",{justify:"",middleJustify:"",bottomJustify:"",justifyChanged:function(old){this.updateBarJustify(this.$.topBar,this.justify,old)},middleJustifyChanged:function(old){this.updateBarJustify(this.$.middleBar,this.middleJustify,old)},bottomJustifyChanged:function(old){this.updateBarJustify(this.$.bottomBar,this.bottomJustify,old)},updateBarJustify:function(bar,justify,old){if(old){bar.removeAttribute(this.toLayoutAttrName(old))}if(justify){bar.setAttribute(this.toLayoutAttrName(justify),"")}},toLayoutAttrName:function(value){return value==="between"?"justified":value+"-justified"}})})();</script></polymer-element><polymer-element name="core-menu" extends="core-selector" assetpath="polymer/bower_components/core-menu/"><template><style>:host{display:block;margin:12px}polyfill-next-selector{content:':host > core-item'}::content>core-item{cursor:default}</style><core-a11y-keys target="{{}}" keys="up" on-keys-pressed="{{ selectPrevious }}"></core-a11y-keys><core-a11y-keys target="{{}}" keys="down" on-keys-pressed="{{ selectNext }}"></core-a11y-keys><core-a11y-keys target="{{}}" keys="enter" on-keys-pressed="{{ validateSelected }}"></core-a11y-keys><shadow></shadow></template><script>Polymer("core-menu");</script></polymer-element><polymer-element name="paper-item" extends="paper-button-base" assetpath="polymer/bower_components/paper-item/"><template><style>:host{display:block;position:relative;font-size:16px;box-sizing:border-box;min-width:7em;outline:0;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;cursor:pointer;z-index:0}:host([disabled]){color:#a8a8a8;cursor:auto;pointer-events:none}:host(.core-selected){background-color:#eaeaea}#ripple{pointer-events:none;z-index:-1}.button-content{padding:.9em 1em}polyfill-next-selector{content:'.button-content > a'}::content>a{height:100%;-ms-flex:1 1 0;-webkit-flex:1;flex:1;-webkit-flex-basis:0;flex-basis:0}</style><div class="button-content" relative="" layout="" horizontal="" center=""><content></content></div></template><script>Polymer("paper-item",{publish:{raised:false,recenteringTouch:false,fill:true}});</script></polymer-element><polymer-element name="paper-icon-button" extends="paper-button-base" attributes="src icon" role="button" assetpath="polymer/bower_components/paper-icon-button/"><template><style>:host{display:inline-block;position:relative;padding:8px;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;z-index:0}:host([disabled]){color:#c9c9c9;pointer-events:none;cursor:auto}#ripple{pointer-events:none;z-index:-1}#icon{display:block;pointer-events:none}</style><core-icon relative="" id="icon" src="{{src}}" icon="{{icon}}"></core-icon></template><script>Polymer("paper-icon-button",{publish:{src:"",icon:"",recenteringTouch:true,fill:false},iconChanged:function(oldIcon){var label=this.getAttribute("aria-label");if(!label||label===oldIcon){this.setAttribute("aria-label",this.icon)}}});</script></polymer-element><script>(function(scope){scope.CoreResizable={resizableAttachedHandler:function(cb){cb=cb||this._notifyResizeSelf;this.async(function(){var detail={callback:cb,hasParentResizer:false};this.fire("core-request-resize",detail);if(!detail.hasParentResizer){this._boundWindowResizeHandler=cb.bind(this);window.addEventListener("resize",this._boundWindowResizeHandler)}}.bind(this))},resizableDetachedHandler:function(){this.fire("core-request-resize-cancel",null,this,false);if(this._boundWindowResizeHandler){window.removeEventListener("resize",this._boundWindowResizeHandler)}},_notifyResizeSelf:function(){return this.fire("core-resize",null,this,false).defaultPrevented}};scope.CoreResizer=Polymer.mixin({resizerAttachedHandler:function(){this.resizableAttachedHandler(this.notifyResize);this._boundResizeRequested=this._boundResizeRequested||this._handleResizeRequested.bind(this);var listener;if(this.resizerIsPeer){listener=this.parentElement||this.parentNode&&this.parentNode.host;listener._resizerPeers=listener._resizerPeers||[];listener._resizerPeers.push(this)}else{listener=this}listener.addEventListener("core-request-resize",this._boundResizeRequested);this._resizerListener=listener},resizerDetachedHandler:function(){this.resizableDetachedHandler();this._resizerListener.removeEventListener("core-request-resize",this._boundResizeRequested)},notifyResize:function(){if(!this._notifyResizeSelf()){var r=this.resizeRequestors;if(r){for(var i=0;i<r.length;i++){var ri=r[i];if(!this.resizerShouldNotify||this.resizerShouldNotify(ri.target)){ri.callback.apply(ri.target)}}}}},_handleResizeRequested:function(e){var target=e.path[0];if(target==this||target==this._resizerListener||this._resizerPeers&&this._resizerPeers.indexOf(target)<0){return}if(!this.resizeRequestors){this.resizeRequestors=[]}this.resizeRequestors.push({target:target,callback:e.detail.callback});target.addEventListener("core-request-resize-cancel",this._cancelResizeRequested.bind(this));e.detail.hasParentResizer=true;e.stopPropagation()},_cancelResizeRequested:function(e){if(this.resizeRequestors){for(var i=0;i<this.resizeRequestors.length;i++){if(this.resizeRequestors[i].target==e.target){this.resizeRequestors.splice(i,1);break}}}}},Polymer.CoreResizable)})(Polymer);</script><polymer-element name="core-scroll-header-panel" assetpath="polymer/bower_components/core-scroll-header-panel/"><template><style>:host{display:block;position:relative;overflow:hidden}#mainContainer{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto}#headerContainer{position:absolute;top:0;right:0;left:0}.bg-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}#headerBg,#condensedHeaderBg{position:absolute;top:0;left:0;width:100%;height:100%;background-repeat:no-repeat;background-size:cover;background-position:center center}#condensedHeaderBg{opacity:0}</style><div id="mainContainer"><content id="mainContent" select=":not(core-toolbar):not(.core-header)"></content></div><div id="headerContainer"><div class="bg-container"><div id="condensedHeaderBg"></div><div id="headerBg"></div></div><content id="headerContent" select="core-toolbar, .core-header"></content></div></template><script>(function(){Polymer(Polymer.mixin({publish:{condenses:false,noDissolve:false,noReveal:false,fixed:false,keepCondensedHeader:false,headerHeight:0,condensedHeaderHeight:0,scrollAwayTopbar:false},prevScrollTop:0,headerMargin:0,y:0,observe:{"headerMargin fixed":"setup"},eventDelegates:{"core-resize":"measureHeaderHeight"},attached:function(){this.resizableAttachedHandler()},ready:function(){this._scrollHandler=this.scroll.bind(this);this.scroller.addEventListener("scroll",this._scrollHandler)},detached:function(){this.scroller.removeEventListener("scroll",this._scrollHandler);this.resizableDetachedHandler()},domReady:function(){this.async("measureHeaderHeight")},get header(){return this.$.headerContent.getDistributedNodes()[0]},get scroller(){return this.$.mainContainer},measureHeaderHeight:function(){var header=this.header;if(header&&header.offsetHeight){this.headerHeight=header.offsetHeight}},headerHeightChanged:function(){if(!this.condensedHeaderHeight){this._condensedHeaderHeight=this.headerHeight*1/3}this.condensedHeaderHeightChanged()},condensedHeaderHeightChanged:function(){if(this.condensedHeaderHeight){this._condensedHeaderHeight=this.condensedHeaderHeight}if(this.headerHeight){this.headerMargin=this.headerHeight-this._condensedHeaderHeight}},condensesChanged:function(){if(this.condenses){this.scroll()}else{this.condenseHeader(null)}},setup:function(){var s=this.scroller.style;s.paddingTop=this.fixed?"":this.headerHeight+"px";s.top=this.fixed?this.headerHeight+"px":"";if(this.fixed){this.transformHeader(null)}else{this.scroll()}},transformHeader:function(y){var s=this.$.headerContainer.style;this.translateY(s,-y);if(this.condenses){this.condenseHeader(y)}this.fire("core-header-transform",{y:y,height:this.headerHeight,condensedHeight:this._condensedHeaderHeight})},condenseHeader:function(y){var reset=y==null;if(!this.scrollAwayTopbar&&this.header.$&&this.header.$.topBar){this.translateY(this.header.$.topBar.style,reset?null:Math.min(y,this.headerMargin))}var hbg=this.$.headerBg.style;if(!this.noDissolve){hbg.opacity=reset?"":(this.headerMargin-y)/this.headerMargin}this.translateY(hbg,reset?null:y/2);var chbg=this.$.condensedHeaderBg.style;if(!this.noDissolve){chbg=this.$.condensedHeaderBg.style;chbg.opacity=reset?"":y/this.headerMargin;this.translateY(chbg,reset?null:y/2)}},translateY:function(s,y){var t=y==null?"":"translate3d(0, "+y+"px, 0)";setTransform(s,t)},scroll:function(event){if(!this.header){return}var sTop=this.scroller.scrollTop;var y=Math.min(this.keepCondensedHeader?this.headerMargin:this.headerHeight,Math.max(0,this.noReveal?sTop:this.y+sTop-this.prevScrollTop));if(this.condenses&&this.prevScrollTop>=sTop&&sTop>this.headerMargin){y=Math.max(y,this.headerMargin)}if(!event||!this.fixed&&y!==this.y){this.transformHeader(y)}this.prevScrollTop=Math.max(sTop,0);this.y=y;if(event){this.fire("scroll",{target:this.scroller},this,false)}}},Polymer.CoreResizable));if(document.documentElement.style.transform!==undefined){var setTransform=function(style,string){style.transform=string}}else{var setTransform=function(style,string){style.webkitTransform=string}}})();</script></polymer-element><polymer-element name="partial-base" attributes="narrow togglePanel" assetpath="polymer/layouts/"><template><core-style ref="ha-headers"></core-style><core-scroll-header-panel fit="" fixed="{{!narrow}}"><core-toolbar><paper-icon-button id="navicon" icon="menu" hidden?="{{!narrow}}" on-click="{{togglePanel}}"></paper-icon-button><div flex=""><content select="[header-title]"></content></div><content select="[header-buttons]"></content></core-toolbar><content></content></core-scroll-header-panel></template><script>Polymer("partial-base");</script></polymer-element><polymer-element name="core-tooltip" attributes="noarrow position label show tipAttribute" role="tooltip" tabindex="0" assetpath="polymer/bower_components/core-tooltip/"><template><style>:host{box-sizing:border-box;position:relative;display:inline-block;outline:0}:host(:hover:not([disabled])) .core-tooltip{visibility:visible!important}:host([focused]) .core-tooltip{visibility:visible!important}.core-tooltip:not(.show){visibility:hidden}.core-tooltip{position:absolute;font-size:10px;font-weight:500;padding:8px;color:#fff;background-color:rgba(0,0,0,.9);box-sizing:border-box;border-radius:3px;white-space:nowrap;line-height:6px;z-index:1002;-webkit-user-select:none;user-select:none}:host([large]) .core-tooltip{line-height:14px;font-size:14px;padding:16px}.core-tooltip.noarrow::after{display:none}.core-tooltip::after{position:absolute;border:solid transparent;content:'';height:0;width:0;border-width:4px}.top{margin-bottom:10px;bottom:100%}.right{margin-left:10px;left:100%}.bottom{top:100%;margin-top:10px}.left{margin-right:10px;right:100%}.core-tooltip.bottom::after{bottom:100%;left:calc(50% - 4px);border-bottom-color:rgba(0,0,0,.8)}.core-tooltip.left::after{left:100%;top:calc(50% - 4px);border-left-color:rgba(0,0,0,.8)}.core-tooltip.top::after{top:100%;left:calc(50% - 4px);border-top-color:rgba(0,0,0,.8)}.core-tooltip.right::after{right:100%;top:calc(50% - 4px);border-right-color:rgba(0,0,0,.8)}</style><div id="tooltip" hidden?="{{!hasTooltipContent}}" class="core-tooltip {{position}} {{ {noarrow: noarrow, show: show && !disabled} | tokenList}}"><content id="c" select="[{{tipAttribute}}]">{{label}}</content></div><content></content></template><script>(function(){var proto={label:null,eventDelegates:{"core-resize":"positionChanged"},computed:{hasTooltipContent:"label || !!tipElement"},publish:{show:{value:false,reflect:true},position:{value:"bottom",reflect:true},noarrow:{value:false,reflect:true}},tipAttribute:"tip",attached:function(){this.updatedChildren();this.resizableAttachedHandler()},detached:function(){this.resizableDetachedHandler()},updatedChildren:function(){this.tipElement=null;for(var i=0,el;el=this.$.c.getDistributedNodes()[i];++i){if(el.hasAttribute&&el.hasAttribute(this.tipAttribute)){this.tipElement=el;break}}this.job("positionJob",this.setPosition);this.onMutation(this,this.updatedChildren)},labelChanged:function(oldVal,newVal){this.job("positionJob",this.setPosition)},positionChanged:function(oldVal,newVal){this.job("positionJob",this.setPosition)},setPosition:function(){var controlWidth=this.clientWidth;var controlHeight=this.clientHeight;var toolTipWidth=this.$.tooltip.clientWidth;var toolTipHeight=this.$.tooltip.clientHeight;switch(this.position){case"top":case"bottom":this.$.tooltip.style.left=(controlWidth-toolTipWidth)/2+"px";this.$.tooltip.style.top=null;break;case"left":case"right":this.$.tooltip.style.left=null;this.$.tooltip.style.top=(controlHeight-toolTipHeight)/2+"px";break}}};Polymer.mixin2(proto,Polymer.CoreFocusable);Polymer.mixin(proto,Polymer.CoreResizable);Polymer(proto)})();</script></polymer-element><polymer-element name="core-image" assetpath="polymer/bower_components/core-image/"><template><style>:host{display:inline-block;overflow:hidden;position:relative}#placeholder{background-color:inherit;opacity:1}#placeholder.fadein{transition:opacity .5s linear;opacity:0}</style><template if="{{!sizing}}"><img id="img"></template><template if="{{preload && fade}}"><div id="placeholder" fit=""></div></template><content></content></template><script>Polymer("core-image",{publish:{src:null,load:true,sizing:null,position:"center",preload:false,placeholder:null,fade:false,loading:false,width:null,height:null},observe:{"preload color sizing position src fade":"update"},widthChanged:function(){this.style.width=isNaN(this.width)?this.width:this.width+"px"},heightChanged:function(){this.style.height=isNaN(this.height)?this.height:this.height+"px"},update:function(){this.style.backgroundSize=this.sizing;this.style.backgroundPosition=this.sizing?this.position:null;this.style.backgroundRepeat=this.sizing?"no-repeat":null;if(this.preload){if(this.fade){if(!this._placeholderEl){this._placeholderEl=this.shadowRoot.querySelector("#placeholder")}this._placeholderEl.style.backgroundSize=this.sizing;this._placeholderEl.style.backgroundPosition=this.sizing?this.position:null;this._placeholderEl.style.backgroundRepeat=this.sizing?"no-repeat":null;this._placeholderEl.classList.remove("fadein");this._placeholderEl.style.backgroundImage=this.load&&this.placeholder?"url("+this.placeholder+")":null}else{this._setSrc(this.placeholder)}if(this.load&&this.src){var img=new Image;img.src=this.src;this.loading=true;img.onload=function(){this._setSrc(this.src);this.loading=false;if(this.fade){this._placeholderEl.classList.add("fadein")}}.bind(this)}}else{this._setSrc(this.src)}},_setSrc:function(src){if(this.sizing){this.style.backgroundImage=src?"url("+src+")":""}else{this.$.img.src=src||""}}});</script></polymer-element><core-iconset-svg id="social" iconsize="24"><svg><defs><g id="cake"><path d="M12 6c1.11 0 2-.9 2-2 0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99l-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z"/></g><g id="domain"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"/></g><g id="group"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></g><g id="group-add"><path d="M8 10H5V7H3v3H0v2h3v3h2v-3h3v-2zm10 1c1.66 0 2.99-1.34 2.99-3S19.66 5 18 5c-.32 0-.63.05-.91.14.57.81.9 1.79.9 2.86s-.34 2.04-.9 2.86c.28.09.59.14.91.14zm-5 0c1.66 0 2.99-1.34 2.99-3S14.66 5 13 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm6.62 2.16c.83.73 1.38 1.66 1.38 2.84v2h3v-2c0-1.54-2.37-2.49-4.38-2.84zM13 13c-2 0-6 1-6 3v2h12v-2c0-2-4-3-6-3z"/></g><g id="location-city"><path d="M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z"/></g><g id="mood"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></g><g id="notifications"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2z"/></g><g id="notifications-none"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2zm-2 1H7v-6.5C7 8.01 9.01 6 11.5 6S16 8.01 16 10.5V17z"/></g><g id="notifications-off"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zM18 10.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-.51.12-.99.32-1.45.56L18 14.18V10.5zm-.27 8.5l2 2L21 19.73 4.27 3 3 4.27l2.92 2.92C5.34 8.16 5 9.29 5 10.5V16l-2 2v1h14.73z"/></g><g id="notifications-on"><path d="M6.58 3.58L5.15 2.15C2.76 3.97 1.18 6.8 1.03 10h2c.15-2.65 1.51-4.97 3.55-6.42zM19.97 10h2c-.15-3.2-1.73-6.03-4.13-7.85l-1.43 1.43c2.05 1.45 3.41 3.77 3.56 6.42zm-1.97.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2v-5.5zM11.5 22c.14 0 .27-.01.4-.04.65-.13 1.19-.58 1.44-1.18.1-.24.16-.5.16-.78h-4c0 1.1.9 2 2 2z"/></g><g id="notifications-paused"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2zm-4-6.2l-2.8 3.4H14V15H9v-1.8l2.8-3.4H9V8h5v1.8z"/></g><g id="pages"><path d="M3 5v6h5L7 7l4 1V3H5c-1.1 0-2 .9-2 2zm5 8H3v6c0 1.1.9 2 2 2h6v-5l-4 1 1-4zm9 4l-4-1v5h6c1.1 0 2-.9 2-2v-6h-5l1 4zm2-14h-6v5l4-1-1 4h5V5c0-1.1-.9-2-2-2z"/></g><g id="party-mode"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 3c1.63 0 3.06.79 3.98 2H12c-1.66 0-3 1.34-3 3 0 .35.07.69.18 1H7.1c-.06-.32-.1-.66-.1-1 0-2.76 2.24-5 5-5zm0 10c-1.63 0-3.06-.79-3.98-2H12c1.66 0 3-1.34 3-3 0-.35-.07-.69-.18-1h2.08c.07.32.1.66.1 1 0 2.76-2.24 5-5 5z"/></g><g id="people"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></g><g id="people-outline"><path d="M16.5 13c-1.2 0-3.07.34-4.5 1-1.43-.67-3.3-1-4.5-1C5.33 13 1 14.08 1 16.25V19h22v-2.75c0-2.17-4.33-3.25-6.5-3.25zm-4 4.5h-10v-1.25c0-.54 2.56-1.75 5-1.75s5 1.21 5 1.75v1.25zm9 0H14v-1.25c0-.46-.2-.86-.52-1.22.88-.3 1.96-.53 3.02-.53 2.44 0 5 1.21 5 1.75v1.25zM7.5 12c1.93 0 3.5-1.57 3.5-3.5S9.43 5 7.5 5 4 6.57 4 8.5 5.57 12 7.5 12zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 5.5c1.93 0 3.5-1.57 3.5-3.5S18.43 5 16.5 5 13 6.57 13 8.5s1.57 3.5 3.5 3.5zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z"/></g><g id="person"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></g><g id="person-add"><path d="M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></g><g id="person-outline"><path d="M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></g><g id="plus-one"><path d="M10 8H8v4H4v2h4v4h2v-4h4v-2h-4zm4.5-1.92V7.9l2.5-.5V18h2V5z"/></g><g id="poll"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></g><g id="public"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></g><g id="school"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"/></g><g id="share"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/></g><g id="whatshot"><path d="M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="image" iconsize="24"><svg><defs><g id="add-to-photos"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g><g id="adjust"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z"/></g><g id="assistant-photo"><path d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/></g><g id="audiotrack"><path d="M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z"/></g><g id="blur-circular"><path d="M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></g><g id="blur-linear"><path d="M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z"/></g><g id="blur-off"><path d="M14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-.2 4.48l.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm11 7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 13.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM2.5 5.27l3.78 3.78L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81c-.09-.03-.18-.06-.28-.06-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78L20 20.23 3.77 4 2.5 5.27zM10 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm11-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"/></g><g id="blur-on"><path d="M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/></g><g id="brightness-1"><circle cx="12" cy="12" r="10"/></g><g id="brightness-2"><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></g><g id="brightness-3"><path d="M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54 0 4.48-2.94 8.27-7 9.54.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z"/></g><g id="brightness-4"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></g><g id="brightness-5"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></g><g id="brightness-6"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></g><g id="brightness-7"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></g><g id="brush"><path d="M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34c-.39-.39-1.02-.39-1.41 0L9 12.25 11.75 15l8.96-8.96c.39-.39.39-1.02 0-1.41z"/></g><g id="camera"><path d="M9.4 10.5l4.77-8.26C13.47 2.09 12.75 2 12 2c-2.4 0-4.6.85-6.32 2.25l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25C21 16.97 22 14.61 22 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75C3.01 7.03 2 9.39 2 12c0 .69.07 1.35.2 2h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0l-3.9 6.76c.7.15 1.42.24 2.17.24 2.4 0 4.6-.85 6.32-2.25l-3.66-6.35-.93 1.6z"/></g><g id="camera-alt"><circle cx="12" cy="12" r="3.2"/><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></g><g id="camera-front"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zM12 8c1.1 0 2-.9 2-2s-.9-2-2-2-1.99.9-1.99 2S10.9 8 12 8zm5-8H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 2h10v10.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2z"/></g><g id="camera-rear"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-5 6c-1.11 0-2-.9-2-2s.89-2 1.99-2 2 .9 2 2C14 5.1 13.1 6 12 6z"/></g><g id="camera-roll"><path d="M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm-2 13h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2z"/></g><g id="center-focus-strong"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z"/></g><g id="center-focus-weak"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="collections"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"/></g><g id="color-lens"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="colorize"><path d="M20.71 5.63l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"/></g><g id="compare"><path d="M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g><g id="control-point"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="control-point-duplicate"><path d="M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16C3.64 17.2 2 14.79 2 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z"/></g><g id="crop"><path d="M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z"/></g><g id="crop-16-9"><path d="M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z"/></g><g id="crop-3-2"><path d="M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z"/></g><g id="crop-5-4"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"/></g><g id="crop-7-5"><path d="M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z"/></g><g id="crop-din"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></g><g id="crop-free"><path d="M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z"/></g><g id="crop-landscape"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"/></g><g id="crop-original"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71l-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z"/></g><g id="crop-portrait"><path d="M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z"/></g><g id="crop-square"><path d="M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z"/></g><g id="dehaze"><path d="M2 15.5v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20v-2H2z"/></g><g id="details"><path d="M3 4l9 16 9-16H3zm3.38 2h11.25L12 16 6.38 6z"/></g><g id="edit"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></g><g id="exposure"><path d="M15 17v2h2v-2h2v-2h-2v-2h-2v2h-2v2h2zm5-15H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 5h6v2H5V5zm15 15H4L20 4v16z"/></g><g id="exposure-minus-1"><path d="M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z"/></g><g id="exposure-minus-2"><path d="M15.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17s.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z"/></g><g id="exposure-plus-1"><path d="M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z"/></g><g id="exposure-plus-2"><path d="M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z"/></g><g id="exposure-zero"><path d="M16.14 12.5c0 1-.1 1.85-.3 2.55-.2.7-.48 1.27-.83 1.7-.36.44-.79.75-1.3.95-.51.2-1.07.3-1.7.3-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95-.36-.44-.65-1.01-.85-1.7-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19-.32 0-.61.06-.86.18s-.47.31-.64.58c-.17.27-.31.62-.4 1.06s-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19c.33 0 .62-.06.87-.19s.46-.33.63-.61c.17-.28.3-.64.39-1.09.09-.45.13-.99.13-1.62v-2.66z"/></g><g id="filter"><path d="M15.96 10.29l-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-1"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-2"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"/></g><g id="filter-3"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"/></g><g id="filter-4"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-5"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"/></g><g id="filter-6"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-2c0-1.11-.9-2-2-2h-2V7h4V5h-4c-1.1 0-2 .89-2 2v6c0 1.11.9 2 2 2zm0-4h2v2h-2v-2z"/></g><g id="filter-7"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2l4-8V5h-6v2h4l-4 8h2z"/></g><g id="filter-8"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-2c-1.1 0-2 .89-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13c0 1.11.9 2 2 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z"/></g><g id="filter-9"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2c-1.1 0-2 .89-2 2v2c0 1.11.9 2 2 2h2v2h-4v2h4c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2zm0 4h-2V7h2v2z"/></g><g id="filter-9-plus"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8c0-1.11-.9-2-2-2h-1c-1.1 0-2 .89-2 2v1c0 1.11.9 2 2 2h1v1H9v2h3c1.1 0 2-.89 2-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z"/></g><g id="filter-b-and-w"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16l-7-8v8H5l7-8V5h7v14z"/></g><g id="filter-center-focus"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="filter-drama"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.61 5.64 5.36 8.04 2.35 8.36 0 10.9 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z"/></g><g id="filter-frames"><path d="M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM18 8H6v10h12"/></g><g id="filter-hdr"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"/></g><g id="filter-none"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></g><g id="filter-tilt-shift"><path d="M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69c1.11-.86 2.44-1.44 3.9-1.62zm7.32.19C16.84 3.05 15.01 2.25 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1c.86 1.11 1.44 2.44 1.62 3.9zM5.69 7.1L4.26 5.68C3.05 7.16 2.25 8.99 2.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43c-.86-1.1-1.44-2.43-1.62-3.89zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9l1.43 1.43c1.21-1.48 2.01-3.32 2.21-5.32h-2.02c-.18 1.45-.76 2.78-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19C7.16 20.95 9 21.75 11 21.95v-2.02c-1.46-.18-2.79-.76-3.9-1.62l-1.42 1.43z"/></g><g id="filter-vintage"><path d="M18.7 12.4c-.28-.16-.57-.29-.86-.4.29-.11.58-.24.86-.4 1.92-1.11 2.99-3.12 3-5.19-1.79-1.03-4.07-1.11-6 0-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55-1.92-1.11-4.2-1.03-6 0 0 2.07 1.07 4.08 3 5.19.28.16.57.29.86.4-.29.11-.58.24-.86.4-1.92 1.11-2.99 3.12-3 5.19 1.79 1.03 4.07 1.11 6 0 .28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54 1.92 1.11 4.2 1.03 6 0-.01-2.07-1.08-4.08-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/></g><g id="flare"><path d="M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z"/></g><g id="flash-auto"><path d="M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z"/></g><g id="flash-off"><path d="M3.27 3L2 4.27l5 5V13h3v9l3.58-6.14L17.73 20 19 18.73 3.27 3zM17 10h-4l4-8H7v2.18l8.46 8.46L17 10z"/></g><g id="flash-on"><path d="M7 2v11h3v9l7-12h-4l4-8z"/></g><g id="flip"><path d="M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"/></g><g id="gradient"><path d="M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z"/></g><g id="grain"><path d="M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="grid-off"><path d="M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z"/></g><g id="grid-on"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"/></g><g id="hdr-off"><path d="M18 17L3.27 2.27 2 3.55l4 4V11H4V7H2v10h2v-4h2v4h2V9.55l1 1V17h4c.67 0 1.26-.33 1.62-.84l6.34 6.34 1.27-1.27L18 17zm-5-2h-2v-2.45l2 2V15zm5-2h1l.82 3.27.73.73H22l-1.19-4.17c.7-.31 1.19-1.01 1.19-1.83V9c0-1.1-.9-2-2-2h-4v5.45l2 2V13zm0-4h2v2h-2V9zm-3 2.45V9c0-1.1-.9-2-2-2h-2.45L15 11.45z"/></g><g id="hdr-on"><path d="M6 11H4V7H2v10h2v-4h2v4h2V7H6v4zm7-4H9v10h4c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8h-2V9h2v6zm9-4V9c0-1.1-.9-2-2-2h-4v10h2v-4h1l1 4h2l-1.19-4.17c.7-.31 1.19-1.01 1.19-1.83zm-2 0h-2V9h2v2z"/></g><g id="hdr-strong"><path d="M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="hdr-weak"><path d="M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/></g><g id="healing"><path d="M17.73 12.02l3.98-3.98c.39-.39.39-1.02 0-1.41l-4.34-4.34c-.39-.39-1.02-.39-1.41 0l-3.98 3.98L8 2.29C7.8 2.1 7.55 2 7.29 2c-.25 0-.51.1-.7.29L2.25 6.63c-.39.39-.39 1.02 0 1.41l3.98 3.98L2.25 16c-.39.39-.39 1.02 0 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34c.39-.39.39-1.02 0-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34l-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z"/></g><g id="image"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></g><g id="image-aspect-ratio"><path d="M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z"/></g><g id="iso"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z"/></g><g id="landscape"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"/></g><g id="leak-add"><path d="M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2c0 4.97-4.03 9-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2c0-4.97 4.03-9 9-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z"/></g><g id="leak-remove"><path d="M10 3H8c0 .37-.04.72-.12 1.06l1.59 1.59C9.81 4.84 10 3.94 10 3zM3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97C7.14 11.24 5.16 12 3 12v2c2.71 0 5.19-.99 7.11-2.62l2.5 2.5C10.99 15.81 10 18.29 10 21h2c0-2.16.76-4.14 2.03-5.69l1.43 1.43C14.55 17.91 14 19.39 14 21h2c0-1.06.33-2.03.89-2.84L19.73 21 21 19.73 4.27 3 3 4.27zM14 3h-2c0 1.5-.37 2.91-1.02 4.16l1.46 1.46C13.42 6.98 14 5.06 14 3zm5.94 13.12c.34-.08.69-.12 1.06-.12v-2c-.94 0-1.84.19-2.66.52l1.6 1.6zm-4.56-4.56l1.46 1.46C18.09 12.37 19.5 12 21 12v-2c-2.06 0-3.98.58-5.62 1.56z"/></g><g id="lens"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/></g><g id="looks"><path d="M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z"/></g><g id="looks-3"><path d="M19.01 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 7.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15c0 1.11-.9 2-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4c1.1 0 2 .89 2 2v1.5z"/></g><g id="looks-4"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 14h-2v-4H9V7h2v4h2V7h2v10z"/></g><g id="looks-5"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2H9v-2h4v-2H9V7h6v2z"/></g><g id="looks-6"><path d="M11 15h2v-2h-2v2zm8-12H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2h-2c-1.1 0-2-.89-2-2V9c0-1.11.9-2 2-2h4v2z"/></g><g id="looks-one"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z"/></g><g id="looks-two"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 8c0 1.11-.9 2-2 2h-2v2h4v2H9v-4c0-1.11.9-2 2-2h2V9H9V7h4c1.1 0 2 .89 2 2v2z"/></g><g id="loupe"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="movie-creation"><path d="M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"/></g><g id="nature"><path d="M13 16.12c3.47-.41 6.17-3.36 6.17-6.95 0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H5v2h14v-2h-6v-3.88z"/></g><g id="nature-people"><path d="M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88c3.47-.41 6.17-3.36 6.17-6.95zM4.5 11c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z"/></g><g id="navigate-before"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></g><g id="navigate-next"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></g><g id="palette"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="panorama"><path d="M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z"/></g><g id="panorama-fisheye"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="panorama-horizontal"><path d="M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16-2.72 0-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7c-3.09 0-6.18-.55-9.12-1.64-.11-.04-.22-.06-.31-.06-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64 3.09 0 6.18.55 9.12 1.64.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z"/></g><g id="panorama-vertical"><path d="M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12 0-3.09.55-6.18 1.64-9.12.04-.11.06-.22.06-.31 0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12c0 3.09-.55 6.18-1.64 9.12-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8 0-2.72-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8 0 2.72.39 5.4 1.16 8H6.54z"/></g><g id="panorama-wide-angle"><path d="M12 6c2.45 0 4.71.2 7.29.64.47 1.78.71 3.58.71 5.36 0 1.78-.24 3.58-.71 5.36-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64C4.24 15.58 4 13.78 4 12c0-1.78.24-3.58.71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z"/></g><g id="photo"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></g><g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z"/></g><g id="photo-camera"><circle cx="12" cy="12" r="3.2"/><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></g><g id="photo-library"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"/></g><g id="portrait"><path d="M12 12.25c1.24 0 2.25-1.01 2.25-2.25S13.24 7.75 12 7.75 9.75 8.76 9.75 10s1.01 2.25 2.25 2.25zm4.5 4c0-1.5-3-2.25-4.5-2.25s-4.5.75-4.5 2.25V17h9v-.75zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></g><g id="remove-red-eye"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="rotate-left"><path d="M7.11 8.53L5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z"/></g><g id="rotate-right"><path d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/></g><g id="slideshow"><path d="M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></g><g id="straighten"><path d="M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z"/></g><g id="style"><path d="M2.53 19.65l1.34.56v-9.03l-2.43 5.86c-.41 1.02.08 2.19 1.09 2.61zm19.5-3.7L17.07 3.98c-.31-.75-1.04-1.21-1.81-1.23-.26 0-.53.04-.79.15L7.1 5.95c-.75.31-1.21 1.03-1.23 1.8-.01.27.04.54.15.8l4.96 11.97c.31.76 1.05 1.22 1.83 1.23.26 0 .52-.05.77-.15l7.36-3.05c1.02-.42 1.51-1.59 1.09-2.6zM7.88 8.75c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2 11c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z"/></g><g id="switch-camera"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 11.5V13H9v2.5L5.5 12 9 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"/></g><g id="switch-video"><path d="M18 9.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zm-5 6V13H7v2.5L3.5 12 7 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"/></g><g id="tag-faces"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></g><g id="texture"><path d="M19.51 3.08L3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3L3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z"/></g><g id="timelapse"><path d="M16.24 7.76C15.07 6.59 13.54 6 12 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0 2.34-2.34 2.34-6.14-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="timer"><path d="M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g><g id="timer-10"><path d="M0 7.72V9.4l3-1V18h2V6h-.25L0 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39 0-.14.03-.28.09-.41.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59C21.49 9.07 21 9 20.46 9c-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27-.58 0-1.11.09-1.59.27-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89.48.18 1.01.28 1.59.28.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89.34-.41.6-.94.78-1.6.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53-.08.42-.2.76-.36 1.02-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02-.09-.42-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52.09-.41.21-.74.38-1 .16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99.08.41.13.92.13 1.52v2.51z"/></g><g id="timer-3"><path d="M11.61 12.97c-.16-.24-.36-.46-.62-.65-.25-.19-.56-.35-.93-.48.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33.22-.08.46-.12.73-.12.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57-.17.16-.38.28-.63.37-.25.09-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36-.17-.16-.3-.34-.39-.56-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23.49-.15.91-.38 1.26-.68.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39s.03-.28.09-.41c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.68.23.96c.15.28.37.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z"/></g><g id="timer-auto"><path d="M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.67-5.33-4-8-4z"/></g><g id="timer-off"><path d="M19.04 4.55l-1.42 1.42C16.07 4.74 14.12 4 12 4c-1.83 0-3.53.55-4.95 1.48l1.46 1.46C9.53 6.35 10.73 6 12 6c3.87 0 7 3.13 7 7 0 1.27-.35 2.47-.94 3.49l1.45 1.45C20.45 16.53 21 14.83 21 13c0-2.12-.74-4.07-1.97-5.61l1.42-1.42-1.41-1.42zM15 1H9v2h6V1zm-4 8.44l2 2V8h-2v1.44zM3.02 4L1.75 5.27 4.5 8.03C3.55 9.45 3 11.16 3 13c0 4.97 4.02 9 9 9 1.84 0 3.55-.55 4.98-1.5l2.5 2.5 1.27-1.27-7.71-7.71L3.02 4zM12 20c-3.87 0-7-3.13-7-7 0-1.28.35-2.48.95-3.52l9.56 9.56c-1.03.61-2.23.96-3.51.96z"/></g><g id="tonality"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z"/></g><g id="transform"><path d="M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z"/></g><g id="tune"><path d="M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"/></g><g id="wb-auto"><path d="M6.85 12.65h2.3L8 9l-1.15 3.65zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76C12.77 5.17 10.53 4 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.13 0 5.84-1.81 7.15-4.43l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-11.7 9l-.7-2H6.4l-.7 2H3.8L7 7h2l3.2 9h-1.9z"/></g><g id="wb-cloudy"><path d="M19.36 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96z"/></g><g id="wb-incandescent"><path d="M3.55 18.54l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8zM11 22.45h2V19.5h-2v2.95zM4 10.5H1v2h3v-2zm11-4.19V1.5H9v4.81C7.21 7.35 6 9.28 6 11.5c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19zm5 4.19v2h3v-2h-3zm-2.76 7.66l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4z"/></g><g id="wb-irradescent"><path d="M5 14.5h14v-6H5v6zM11 .55V3.5h2V.55h-2zm8.04 2.5l-1.79 1.79 1.41 1.41 1.8-1.79-1.42-1.41zM13 22.45V19.5h-2v2.95h2zm7.45-3.91l-1.8-1.79-1.41 1.41 1.79 1.8 1.42-1.42zM3.55 4.46l1.79 1.79 1.41-1.41-1.79-1.79-1.41 1.41zm1.41 15.49l1.79-1.8-1.41-1.41-1.79 1.79 1.41 1.42z"/></g><g id="wb-sunny"><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="hardware" iconsize="24"><svg><defs><g id="cast"><path d="M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2c4.97 0 9 4.03 9 9h2c0-6.08-4.93-11-11-11z"/></g><g id="cast-connected"><path d="M1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm18-7H5v1.63c3.96 1.28 7.09 4.41 8.37 8.37H19V7zM1 10v2c4.97 0 9 4.03 9 9h2c0-6.08-4.93-11-11-11zm20-7H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g><g id="computer"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"/></g><g id="desktop-mac"><path d="M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7l-2 3v1h8v-1l-2-3h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 12H3V4h18v10z"/></g><g id="desktop-windows"><path d="M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z"/></g><g id="dock"><path d="M8 23h8v-2H8v2zm8-21.99L8 1c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM16 15H8V5h8v10z"/></g><g id="gamepad"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"/></g><g id="headset"><path d="M12 1c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7c0-4.97-4.03-9-9-9z"/></g><g id="headset-mic"><path d="M12 1c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10c0-4.97-4.03-9-9-9z"/></g><g id="keyboard"><path d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"/></g><g id="keyboard-alt"><path d="M15.5 10c.83 0 1.5-.67 1.5-1.5S16.33 7 15.5 7 14 7.67 14 8.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 7 8.5 7 7 7.67 7 8.5 7.67 10 8.5 10zm3.5 7c2.61 0 4.83-1.67 5.65-4H6.35c.82 2.33 3.04 4 5.65 4zm-.01-16C6.47 1 2 5.48 2 11s4.47 10 9.99 10C17.52 21 22 16.52 22 11S17.52 1 11.99 1zM12 19c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="keyboard-arrow-down"><path d="M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z"/></g><g id="keyboard-arrow-left"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/></g><g id="keyboard-arrow-right"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/></g><g id="keyboard-arrow-up"><path d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"/></g><g id="keyboard-backspace"><path d="M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z"/></g><g id="keyboard-capslock"><path d="M12 8.41L16.59 13 18 11.59l-6-6-6 6L7.41 13 12 8.41zM6 18h12v-2H6v2z"/></g><g id="keyboard-control"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="keyboard-hide"><path d="M20 3H4c-1.1 0-1.99.9-1.99 2L2 15c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 3h2v2h-2V6zm0 3h2v2h-2V9zM8 6h2v2H8V6zm0 3h2v2H8V9zm-1 2H5V9h2v2zm0-3H5V6h2v2zm9 7H8v-2h8v2zm0-4h-2V9h2v2zm0-3h-2V6h2v2zm3 3h-2V9h2v2zm0-3h-2V6h2v2zm-7 15l4-4H8l4 4z"/></g><g id="keyboard-return"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/></g><g id="keyboard-tab"><path d="M11.59 7.41L15.17 11H1v2h14.17l-3.59 3.59L13 18l6-6-6-6-1.41 1.41zM20 6v12h2V6h-2z"/></g><g id="keyboard-voice"><path d="M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 15 6.7 12H5c0 3.42 2.72 6.23 6 6.72V22h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g><g id="laptop"><path d="M20 18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"/></g><g id="laptop-chromebook"><path d="M22 18V3H2v15H0v2h24v-2h-2zm-8 0h-4v-1h4v1zm6-3H4V5h16v10z"/></g><g id="laptop-mac"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></g><g id="laptop-windows"><path d="M20 18v-1c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2v1H0v2h24v-2h-4zM4 5h16v10H4V5z"/></g><g id="memory"><path d="M15 9H9v6h6V9zm-2 4h-2v-2h2v2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2zm-4 6H7V7h10v10z"/></g><g id="mouse"><path d="M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93zM4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4v4zm7-13.93C7.05 1.56 4 4.92 4 9h7V1.07z"/></g><g id="phone-android"><path d="M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z"/></g><g id="phone-iphone"><path d="M15.5 1h-8C6.12 1 5 2.12 5 3.5v17C5 21.88 6.12 23 7.5 23h8c1.38 0 2.5-1.12 2.5-2.5v-17C18 2.12 16.88 1 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z"/></g><g id="phonelink"><path d="M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z"/></g><g id="phonelink-off"><path d="M22 6V4H6.82l2 2H22zM1.92 1.65L.65 2.92l1.82 1.82C2.18 5.08 2 5.52 2 6v11H0v3h17.73l2.35 2.35 1.27-1.27L3.89 3.62 1.92 1.65zM4 6.27L14.73 17H4V6.27zM23 8h-6c-.55 0-1 .45-1 1v4.18l2 2V10h4v7h-2.18l3 3H23c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z"/></g><g id="security"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/></g><g id="sim-card"><path d="M19.99 4c0-1.1-.89-2-1.99-2h-8L4 8v12c0 1.1.9 2 2 2h12.01c1.1 0 1.99-.9 1.99-2l-.01-16zM9 19H7v-2h2v2zm8 0h-2v-2h2v2zm-8-4H7v-4h2v4zm4 4h-2v-4h2v4zm0-6h-2v-2h2v2zm4 2h-2v-4h2v4z"/></g><g id="smartphone"><path d="M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></g><g id="speaker"><path d="M17 2H7c-1.1 0-2 .9-2 2v16c0 1.1.9 1.99 2 1.99L17 22c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 2c1.1 0 2 .9 2 2s-.9 2-2 2c-1.11 0-2-.9-2-2s.89-2 2-2zm0 16c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="tablet"><path d="M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z"/></g><g id="tablet-android"><path d="M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z"/></g><g id="tablet-mac"><path d="M18.5 0h-14C3.12 0 2 1.12 2 2.5v19C2 22.88 3.12 24 4.5 24h14c1.38 0 2.5-1.12 2.5-2.5v-19C21 1.12 19.88 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z"/></g><g id="tv"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z"/></g><g id="watch"><path d="M20 12c0-2.54-1.19-4.81-3.04-6.27L16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73C18.81 16.81 20 14.54 20 12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="av" iconsize="24"><svg><defs><g id="album"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></g><g id="av-timer"><path d="M11 17c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm0-14v4h2V5.08c3.39.49 6 3.39 6 6.92 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-1.68.59-3.22 1.58-4.42L12 13l1.41-1.41-6.8-6.8v.02C4.42 6.45 3 9.05 3 12c0 4.97 4.02 9 9 9 4.97 0 9-4.03 9-9s-4.03-9-9-9h-1zm7 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zM6 12c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z"/></g><g id="closed-caption"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/></g><g id="equalizer"><path d="M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z"/></g><g id="explicit"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h4v2h-4v2h4v2H9V7h6v2z"/></g><g id="fast-forward"><path d="M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z"/></g><g id="fast-rewind"><path d="M11 18V6l-8.5 6 8.5 6zm.5-6l8.5 6V6l-8.5 6z"/></g><g id="games"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"/></g><g id="hearing"><path d="M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55.51.23 1.07.35 1.64.35 2.21 0 4-1.79 4-4h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5-1.12-2.5-2.5-2.5-2.5 1.12-2.5 2.5z"/></g><g id="high-quality"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/></g><g id="loop"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></g><g id="mic"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g><g id="mic-none"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm-1.2-9.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2V4.9zm6.5 6.1c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g><g id="mic-off"><path d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73 4.27 3z"/></g><g id="movie"><path d="M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"/></g><g id="my-library-add"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g><g id="my-library-books"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z"/></g><g id="my-library-music"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5c0 1.38-1.12 2.5-2.5 2.5S10 13.88 10 12.5s1.12-2.5 2.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/></g><g id="new-releases"><path d="M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-10 5h-2v-2h2v2zm0-4h-2V7h2v6z"/></g><g id="not-interested"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></g><g id="pause"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></g><g id="pause-circle-fill"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z"/></g><g id="pause-circle-outline"><path d="M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z"/></g><g id="play-arrow"><path d="M8 5v14l11-7z"/></g><g id="play-circle-fill"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"/></g><g id="play-circle-outline"><path d="M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="play-shopping-bag"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"/></g><g id="playlist-add"><path d="M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z"/></g><g id="queue"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g><g id="queue-music"><path d="M15 6H3v2h12V6zm0 4H3v2h12v-2zM3 16h8v-2H3v2zM17 6v8.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6h-5z"/></g><g id="radio"><path d="M3.24 6.15C2.51 6.43 2 7.17 2 8v12c0 1.1.89 2 2 2h16c1.11 0 2-.9 2-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z"/></g><g id="recent-actors"><path d="M21 5v14h2V5h-2zm-4 14h2V5h-2v14zM14 5H2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8 7.75c1.24 0 2.25 1.01 2.25 2.25S9.24 12.25 8 12.25 5.75 11.24 5.75 10 6.76 7.75 8 7.75zM12.5 17h-9v-.75c0-1.5 3-2.25 4.5-2.25s4.5.75 4.5 2.25V17z"/></g><g id="repeat"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z"/></g><g id="repeat-one"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z"/></g><g id="replay"><path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/></g><g id="shuffle"><path d="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z"/></g><g id="skip-next"><path d="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z"/></g><g id="skip-previous"><path d="M6 6h2v12H6zm3.5 6l8.5 6V6z"/></g><g id="snooze"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-3-9h3.63L9 15.2V17h6v-2h-3.63L15 10.8V9H9v2z"/></g><g id="stop"><path d="M6 6h12v12H6z"/></g><g id="subtitles"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"/></g><g id="surround-sound"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.76 16.24l-1.41 1.41C4.78 16.1 4 14.05 4 12c0-2.05.78-4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-.59-3.07-1.76-4.24l1.41-1.41C19.22 7.9 20 9.95 20 12c0 2.05-.78 4.1-2.34 5.66zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="video-collection"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 12.5v-9l6 4.5-6 4.5z"/></g><g id="videocam"><path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"/></g><g id="videocam-off"><path d="M21 6.5l-4 4V7c0-.55-.45-1-1-1H9.82L21 17.18V6.5zM3.27 2L2 3.27 4.73 6H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.21 0 .39-.08.54-.18L19.73 21 21 19.73 3.27 2z"/></g><g id="volume-down"><path d="M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"/></g><g id="volume-mute"><path d="M7 9v6h4l5 5V4l-5 5H7z"/></g><g id="volume-off"><path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"/></g><g id="volume-up"><path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/></g><g id="web"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="homeassistant-100" iconsize="100"><svg><defs><g id="thermostat"><path d="M66.861,60.105V17.453c0-9.06-7.347-16.405-16.408-16.405c-9.06,0-16.404,7.345-16.404,16.405v42.711 c-4.04,4.14-6.533,9.795-6.533,16.035c0,12.684,10.283,22.967,22.967,22.967c12.682,0,22.964-10.283,22.964-22.967 C73.447,69.933,70.933,64.254,66.861,60.105z M60.331,20.38h-13.21v6.536h6.63v6.539h-6.63v6.713h6.63v6.538h-6.63v6.5h6.63v6.536 h-6.63v7.218c-3.775,1.373-6.471,4.993-6.471,9.24h-6.626c0-5.396,2.598-10.182,6.61-13.185V17.446c0-0.038,0.004-0.075,0.004-0.111 l-0.004-0.007c0-5.437,4.411-9.846,9.849-9.846c5.438,0,9.848,4.409,9.848,9.846V20.38z"/></g></defs></svg></core-iconset-svg><core-iconset-svg id="homeassistant-24" iconsize="24"><svg><defs><g id="group"><path d="M9 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5-3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-7c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g></defs></svg></core-iconset-svg><script>window.hass.uiUtil.domainIcon=function(domain,state){switch(domain){case"homeassistant":return"home";case"group":return"homeassistant-24:group";case"device_tracker":return"social:person";case"switch":return"image:flash-on";case"media_player":var icon="hardware:cast";if(state&&state!=="idle"){icon+="-connected"}return icon;case"sun":return"image:wb-sunny";case"light":return"image:wb-incandescent";case"simple_alarm":return"social:notifications";case"notify":return"announcement";case"thermostat":return"homeassistant-100:thermostat";case"sensor":return"visibility";case"configurator":return"settings";case"conversation":return"av:hearing";case"script":return"description";case"scene":return"social:pages";default:return"bookmark-outline"}};</script><polymer-element name="domain-icon" attributes="domain state" constructor="DomainIcon" assetpath="polymer/components/"><template><core-icon icon="{{icon}}"></core-icon></template><script>Polymer("domain-icon",{icon:"",observe:{domain:"updateIcon",state:"updateIcon"},updateIcon:function(){this.icon=window.hass.uiUtil.domainIcon(this.domain,this.state)}});</script></polymer-element><polymer-element name="state-badge" attributes="stateObj" assetpath="polymer/components/"><template><style>:host{position:relative;display:inline-block;width:45px;background-color:#4fc3f7;color:#fff;border-radius:50%;transition:all .3s ease-in-out}div{height:45px;text-align:center}core-image{border-radius:50%}domain-icon{margin:0 auto}domain-icon[data-domain=light][data-state=on],domain-icon[data-domain=switch][data-state=on],domain-icon[data-domain=sun][data-state=above_horizon]{color:#fff176}</style><div horizontal="" layout="" center=""><domain-icon id="icon" domain="{{stateObj.domain}}" data-domain="{{stateObj.domain}}" state="{{stateObj.state}}" data-state="{{stateObj.state}}"></domain-icon><template if="{{stateObj.attributes.entity_picture}}"><core-image sizing="cover" fit="" src="{{stateObj.attributes.entity_picture}}"></core-image></template></div></template><script>Polymer("state-badge",{observe:{"stateObj.state":"updateIconColor","stateObj.attributes.brightness":"updateIconColor","stateObj.attributes.xy_color[0]":"updateIconColor","stateObj.attributes.xy_color[1]":"updateIconColor"},updateIconColor:function(oldVal,newVal){var state=this.stateObj;if(state.domain=="light"&&state.state=="on"&&state.attributes.brightness&&state.attributes.xy_color){var rgb=this.xyBriToRgb(state.attributes.xy_color[0],state.attributes.xy_color[1],state.attributes.brightness);this.$.icon.style.color="rgb("+rgb.map(Math.floor).join(",")+")"}else{this.$.icon.style.color=null}},xyBriToRgb:function(x,y,bri){z=1-x-y;Y=bri/255;X=Y/y*x;Z=Y/y*z;r=X*1.612-Y*.203-Z*.302;g=-X*.509+Y*1.412+Z*.066;b=X*.026-Y*.072+Z*.962;r=r<=.0031308?12.92*r:(1+.055)*Math.pow(r,1/2.4)-.055;g=g<=.0031308?12.92*g:(1+.055)*Math.pow(g,1/2.4)-.055;b=b<=.0031308?12.92*b:(1+.055)*Math.pow(b,1/2.4)-.055;maxValue=Math.max(r,g,b);r/=maxValue;g/=maxValue;b/=maxValue;r=r*255;if(r<0){r=255}g=g*255;if(g<0){g=255}b=b*255;if(b<0){b=255}return[r,g,b]}});</script></polymer-element><script>(function(undefined){var moment,VERSION="2.9.0",globalScope=typeof global!=="undefined"&&(typeof window==="undefined"||window===global.window)?global:this,oldGlobalMoment,round=Math.round,hasOwnProperty=Object.prototype.hasOwnProperty,i,YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,locales={},momentProperties=[],hasModule=typeof module!=="undefined"&&module&&module.exports,aspNetJsonRegex=/^\/?Date\((\-?\d+)/i,aspNetTimeSpanJsonRegex=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,isoDurationRegex=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,formattingTokens=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,parseTokenOneOrTwoDigits=/\d\d?/,parseTokenOneToThreeDigits=/\d{1,3}/,parseTokenOneToFourDigits=/\d{1,4}/,parseTokenOneToSixDigits=/[+\-]?\d{1,6}/,parseTokenDigits=/\d+/,parseTokenWord=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,parseTokenTimezone=/Z|[\+\-]\d\d:?\d\d/gi,parseTokenT=/T/i,parseTokenOffsetMs=/[\+\-]?\d+/,parseTokenTimestampMs=/[\+\-]?\d+(\.\d{1,3})?/,parseTokenOneDigit=/\d/,parseTokenTwoDigits=/\d\d/,parseTokenThreeDigits=/\d{3}/,parseTokenFourDigits=/\d{4}/,parseTokenSixDigits=/[+-]?\d{6}/,parseTokenSignedNumber=/[+-]?\d+/,isoRegex=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,isoFormat="YYYY-MM-DDTHH:mm:ssZ",isoDates=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],isoTimes=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],parseTimezoneChunker=/([\+\-]|\d\d)/gi,proxyGettersAndSetters="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),unitMillisecondFactors={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},unitAliases={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},camelFunctions={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},formatFunctions={},relativeTimeThresholds={s:45,m:45,h:22,d:26,M:11},ordinalizeTokens="DDD w W M D d".split(" "),paddedTokens="M D H h m s w W".split(" "),formatTokenFunctions={M:function(){return this.month()+1},MMM:function(format){return this.localeData().monthsShort(this,format)},MMMM:function(format){return this.localeData().months(this,format)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(format){return this.localeData().weekdaysMin(this,format)},ddd:function(format){return this.localeData().weekdaysShort(this,format)},dddd:function(format){return this.localeData().weekdays(this,format)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return leftZeroFill(this.year()%100,2)},YYYY:function(){return leftZeroFill(this.year(),4)},YYYYY:function(){return leftZeroFill(this.year(),5)},YYYYYY:function(){var y=this.year(),sign=y>=0?"+":"-";return sign+leftZeroFill(Math.abs(y),6)},gg:function(){return leftZeroFill(this.weekYear()%100,2)},gggg:function(){return leftZeroFill(this.weekYear(),4)},ggggg:function(){return leftZeroFill(this.weekYear(),5)},GG:function(){return leftZeroFill(this.isoWeekYear()%100,2)},GGGG:function(){return leftZeroFill(this.isoWeekYear(),4)},GGGGG:function(){return leftZeroFill(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),true)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),false)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return toInt(this.milliseconds()/100)},SS:function(){return leftZeroFill(toInt(this.milliseconds()/10),2)},SSS:function(){return leftZeroFill(this.milliseconds(),3)},SSSS:function(){return leftZeroFill(this.milliseconds(),3)},Z:function(){var a=this.utcOffset(),b="+";if(a<0){a=-a;b="-"}return b+leftZeroFill(toInt(a/60),2)+":"+leftZeroFill(toInt(a)%60,2)},ZZ:function(){var a=this.utcOffset(),b="+";if(a<0){a=-a;b="-"}return b+leftZeroFill(toInt(a/60),2)+leftZeroFill(toInt(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},deprecations={},lists=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],updateInProgress=false;function dfl(a,b,c){switch(arguments.length){case 2:return a!=null?a:b;case 3:return a!=null?a:b!=null?b:c;default:throw new Error("Implement me")}}function hasOwnProp(a,b){return hasOwnProperty.call(a,b)}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false}}function printMsg(msg){if(moment.suppressDeprecationWarnings===false&&typeof console!=="undefined"&&console.warn){console.warn("Deprecation warning: "+msg)}}function deprecate(msg,fn){var firstTime=true;return extend(function(){if(firstTime){printMsg(msg);firstTime=false}return fn.apply(this,arguments)},fn)}function deprecateSimple(name,msg){if(!deprecations[name]){printMsg(msg);deprecations[name]=true}}function padToken(func,count){return function(a){return leftZeroFill(func.call(this,a),count)}}function ordinalizeToken(func,period){return function(a){return this.localeData().ordinal(func.call(this,a),period)}}function monthDiff(a,b){var wholeMonthDiff=(b.year()-a.year())*12+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,"months"),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,"months");adjust=(b-anchor)/(anchor-anchor2)}else{anchor2=a.clone().add(wholeMonthDiff+1,"months");adjust=(b-anchor)/(anchor2-anchor)}return-(wholeMonthDiff+adjust)}while(ordinalizeTokens.length){i=ordinalizeTokens.pop();formatTokenFunctions[i+"o"]=ordinalizeToken(formatTokenFunctions[i],i)}while(paddedTokens.length){i=paddedTokens.pop();formatTokenFunctions[i+i]=padToken(formatTokenFunctions[i],2)}formatTokenFunctions.DDDD=padToken(formatTokenFunctions.DDD,3);function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour}if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem)}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12}if(!isPm&&hour===12){hour=0}return hour}else{return hour}}function Locale(){}function Moment(config,skipOverflow){if(skipOverflow!==false){checkOverflow(config)}copyConfig(this,config);this._d=new Date(+config._d);if(updateInProgress===false){updateInProgress=true;moment.updateOffset(this);updateInProgress=false}}function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._milliseconds=+milliseconds+seconds*1e3+minutes*6e4+hours*36e5;this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=moment.localeData();this._bubble()}function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i]}}if(hasOwnProp(b,"toString")){a.toString=b.toString}if(hasOwnProp(b,"valueOf")){a.valueOf=b.valueOf}return a}function copyConfig(to,from){var i,prop,val;if(typeof from._isAMomentObject!=="undefined"){to._isAMomentObject=from._isAMomentObject}if(typeof from._i!=="undefined"){to._i=from._i}if(typeof from._f!=="undefined"){to._f=from._f}if(typeof from._l!=="undefined"){to._l=from._l}if(typeof from._strict!=="undefined"){to._strict=from._strict}if(typeof from._tzm!=="undefined"){to._tzm=from._tzm}if(typeof from._isUTC!=="undefined"){to._isUTC=from._isUTC}if(typeof from._offset!=="undefined"){to._offset=from._offset}if(typeof from._pf!=="undefined"){to._pf=from._pf}if(typeof from._locale!=="undefined"){to._locale=from._locale}if(momentProperties.length>0){for(i in momentProperties){prop=momentProperties[i];val=from[prop];if(typeof val!=="undefined"){to[prop]=val}}}return to}function absRound(number){if(number<0){return Math.ceil(number)}else{return Math.floor(number)}}function leftZeroFill(number,targetLength,forceSign){var output=""+Math.abs(number),sign=number>=0;while(output.length<targetLength){output="0"+output}return(sign?forceSign?"+":"":"-")+output}function positiveMomentsDifference(base,other){var res={milliseconds:0,months:0};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,"M").isAfter(other)){--res.months}res.milliseconds=+other-+base.clone().add(res.months,"M");return res}function momentsDifference(base,other){var res;other=makeAs(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other)}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months}return res}function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,"moment()."+name+"(period, number) is deprecated. Please use moment()."+name+"(number, period).");tmp=val;val=period;period=tmp}val=typeof val==="string"?+val:val;dur=moment.duration(val,period);addOrSubtractDurationFromMoment(this,dur,direction);return this}}function addOrSubtractDurationFromMoment(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=duration._days,months=duration._months;updateOffset=updateOffset==null?true:updateOffset;if(milliseconds){mom._d.setTime(+mom._d+milliseconds*isAdding)}if(days){rawSetter(mom,"Date",rawGetter(mom,"Date")+days*isAdding)}if(months){rawMonthSetter(mom,rawGetter(mom,"Month")+months*isAdding)}if(updateOffset){moment.updateOffset(mom,days||months)}}function isArray(input){return Object.prototype.toString.call(input)==="[object Array]"}function isDate(input){return Object.prototype.toString.call(input)==="[object Date]"||input instanceof Date}function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i])){diffs++}}return diffs+lengthDiff}function normalizeUnits(units){if(units){var lowered=units.toLowerCase().replace(/(.)s$/,"$1");units=unitAliases[units]||camelFunctions[lowered]||lowered}return units}function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop]}}}return normalizedInput}function makeList(field){var count,setter;if(field.indexOf("week")===0){count=7;setter="day"}else if(field.indexOf("month")===0){count=12;setter="month"}else{return}moment[field]=function(format,index){var i,getter,method=moment._locale[field],results=[];if(typeof format==="number"){index=format;format=undefined}getter=function(i){var m=moment().utc().set(setter,i);return method.call(moment._locale,m,format||"")};if(index!=null){return getter(index)}else{for(i=0;i<count;i++){results.push(getter(i))}return results}}}function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){if(coercedNumber>=0){value=Math.floor(coercedNumber)}else{value=Math.ceil(coercedNumber)}}return value}function daysInMonth(year,month){return new Date(Date.UTC(year,month+1,0)).getUTCDate()}function weeksInYear(year,dow,doy){return weekOfYear(moment([year,11,31+dow-doy]),dow,doy).week}function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}function checkOverflow(m){var overflow;if(m._a&&m._pf.overflow===-2){overflow=m._a[MONTH]<0||m._a[MONTH]>11?MONTH:m._a[DATE]<1||m._a[DATE]>daysInMonth(m._a[YEAR],m._a[MONTH])?DATE:m._a[HOUR]<0||m._a[HOUR]>24||m._a[HOUR]===24&&(m._a[MINUTE]!==0||m._a[SECOND]!==0||m._a[MILLISECOND]!==0)?HOUR:m._a[MINUTE]<0||m._a[MINUTE]>59?MINUTE:m._a[SECOND]<0||m._a[SECOND]>59?SECOND:m._a[MILLISECOND]<0||m._a[MILLISECOND]>999?MILLISECOND:-1;if(m._pf._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE}m._pf.overflow=overflow}}function isValid(m){if(m._isValid==null){m._isValid=!isNaN(m._d.getTime())&&m._pf.overflow<0&&!m._pf.empty&&!m._pf.invalidMonth&&!m._pf.nullInput&&!m._pf.invalidFormat&&!m._pf.userInvalidated;if(m._strict){m._isValid=m._isValid&&m._pf.charsLeftOver===0&&m._pf.unusedTokens.length===0&&m._pf.bigHour===undefined}}return m._isValid}function normalizeLocale(key){return key?key.toLowerCase().replace("_","-"):key}function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split("-");j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split("-"):null;while(j>0){locale=loadLocale(split.slice(0,j).join("-"));if(locale){return locale}if(next&&next.length>=j&&compareArrays(split,next,true)>=j-1){break}j--}i++}return null}function loadLocale(name){var oldLocale=null;if(!locales[name]&&hasModule){try{oldLocale=moment.locale();require("./locale/"+name);moment.locale(oldLocale)}catch(e){}}return locales[name]}function makeAs(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(moment.isMoment(input)||isDate(input)?+input:+moment(input))-+res;res._d.setTime(+res._d+diff);moment.updateOffset(res,false);return res}else{return moment(input).local()}}extend(Locale.prototype,{set:function(config){var prop,i;for(i in config){prop=config[i];if(typeof prop==="function"){this[i]=prop}else{this["_"+i]=prop}}this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(m){return this._months[m.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(m){return this._monthsShort[m.month()]},monthsParse:function(monthName,format,strict){var i,mom,regex;if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[]}for(i=0;i<12;i++){mom=moment.utc([2e3,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp("^"+this.months(mom,"").replace(".","")+"$","i");this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(mom,"").replace(".","")+"$","i")}if(!strict&&!this._monthsParse[i]){regex="^"+this.months(mom,"")+"|^"+this.monthsShort(mom,"");this._monthsParse[i]=new RegExp(regex.replace(".",""),"i")}if(strict&&format==="MMMM"&&this._longMonthsParse[i].test(monthName)){return i}else if(strict&&format==="MMM"&&this._shortMonthsParse[i].test(monthName)){return i}else if(!strict&&this._monthsParse[i].test(monthName)){return i}}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(m){return this._weekdays[m.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(m){return this._weekdaysShort[m.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(m){return this._weekdaysMin[m.day()]},weekdaysParse:function(weekdayName){var i,mom,regex;if(!this._weekdaysParse){this._weekdaysParse=[]}for(i=0;i<7;i++){if(!this._weekdaysParse[i]){mom=moment([2e3,1]).day(i);regex="^"+this.weekdays(mom,"")+"|^"+this.weekdaysShort(mom,"")+"|^"+this.weekdaysMin(mom,"");this._weekdaysParse[i]=new RegExp(regex.replace(".",""),"i")}if(this._weekdaysParse[i].test(weekdayName)){return i}}},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(key){var output=this._longDateFormat[key];if(!output&&this._longDateFormat[key.toUpperCase()]){output=this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)});this._longDateFormat[key]=output}return output},isPM:function(input){return(input+"").toLowerCase().charAt(0)==="p"},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(hours,minutes,isLower){if(hours>11){return isLower?"pm":"PM"}else{return isLower?"am":"AM"}},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(key,mom,now){var output=this._calendar[key];return typeof output==="function"?output.apply(mom,[now]):output},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return typeof output==="function"?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)},pastFuture:function(diff,output){var format=this._relativeTime[diff>0?"future":"past"];return typeof format==="function"?format(output):format.replace(/%s/i,output)},ordinal:function(number){return this._ordinal.replace("%d",number)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(string){return string},postformat:function(string){return string},week:function(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}});function removeFormattingTokens(input){if(input.match(/\[[\s\S]/)){return input.replace(/^\[|\]$/g,"")}return input.replace(/\\/g,"")}function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]]}else{array[i]=removeFormattingTokens(array[i])}}return function(mom){var output="";for(i=0;i<length;i++){output+=array[i]instanceof Function?array[i].call(mom,format):array[i]}return output}}function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate()}format=expandFormat(format,m.localeData());if(!formatFunctions[format]){formatFunctions[format]=makeFormatFunction(format)}return formatFunctions[format](m)}function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input}localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1}return format}function getParseRegexForToken(token,config){var a,strict=config._strict;switch(token){case"Q":return parseTokenOneDigit;case"DDDD":return parseTokenThreeDigits;case"YYYY":case"GGGG":case"gggg":return strict?parseTokenFourDigits:parseTokenOneToFourDigits;case"Y":case"G":case"g":return parseTokenSignedNumber;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return strict?parseTokenSixDigits:parseTokenOneToSixDigits;case"S":if(strict){return parseTokenOneDigit}case"SS":if(strict){return parseTokenTwoDigits}case"SSS":if(strict){return parseTokenThreeDigits}case"DDD":return parseTokenOneToThreeDigits;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return parseTokenWord;case"a":case"A":return config._locale._meridiemParse;case"x":return parseTokenOffsetMs;case"X":return parseTokenTimestampMs;case"Z":case"ZZ":return parseTokenTimezone;case"T":return parseTokenT;case"SSSS":return parseTokenDigits;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return strict?parseTokenTwoDigits:parseTokenOneOrTwoDigits;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return parseTokenOneOrTwoDigits;case"Do":return strict?config._locale._ordinalParse:config._locale._ordinalParseLenient;default:a=new RegExp(regexpEscape(unescapeFormat(token.replace("\\","")),"i"));return a}}function utcOffsetFromString(string){string=string||"";var possibleTzMatches=string.match(parseTokenTimezone)||[],tzChunk=possibleTzMatches[possibleTzMatches.length-1]||[],parts=(tzChunk+"").match(parseTimezoneChunker)||["-",0,0],minutes=+(parts[1]*60)+toInt(parts[2]);return parts[0]==="+"?minutes:-minutes}function addTimeToArrayFromToken(token,input,config){var a,datePartArray=config._a;switch(token){case"Q":if(input!=null){datePartArray[MONTH]=(toInt(input)-1)*3}break;case"M":case"MM":if(input!=null){datePartArray[MONTH]=toInt(input)-1}break;case"MMM":case"MMMM":a=config._locale.monthsParse(input,token,config._strict);if(a!=null){datePartArray[MONTH]=a}else{config._pf.invalidMonth=input}break;case"D":case"DD":if(input!=null){datePartArray[DATE]=toInt(input)}break;case"Do":if(input!=null){datePartArray[DATE]=toInt(parseInt(input.match(/\d{1,2}/)[0],10))}break;case"DDD":case"DDDD":if(input!=null){config._dayOfYear=toInt(input)}break;case"YY":datePartArray[YEAR]=moment.parseTwoDigitYear(input);break;case"YYYY":case"YYYYY":case"YYYYYY":datePartArray[YEAR]=toInt(input);break;case"a":case"A":config._meridiem=input;break;case"h":case"hh":config._pf.bigHour=true;case"H":case"HH":datePartArray[HOUR]=toInt(input);break;case"m":case"mm":datePartArray[MINUTE]=toInt(input);break;case"s":case"ss":datePartArray[SECOND]=toInt(input);break;case"S":case"SS":case"SSS":case"SSSS":datePartArray[MILLISECOND]=toInt(("0."+input)*1e3);break;case"x":config._d=new Date(toInt(input));break;case"X":config._d=new Date(parseFloat(input)*1e3);break;case"Z":case"ZZ":config._useUTC=true;config._tzm=utcOffsetFromString(input);break;case"dd":case"ddd":case"dddd":a=config._locale.weekdaysParse(input);if(a!=null){config._w=config._w||{};config._w["d"]=a}else{config._pf.invalidWeekday=input}break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":token=token.substr(0,1);case"gggg":case"GGGG":case"GGGGG":token=token.substr(0,2);if(input){config._w=config._w||{};config._w[token]=toInt(input)}break;case"gg":case"GG":config._w=config._w||{};config._w[token]=moment.parseTwoDigitYear(input)}}function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=dfl(w.GG,config._a[YEAR],weekOfYear(moment(),1,4).year);week=dfl(w.W,1);weekday=dfl(w.E,1)}else{dow=config._locale._week.dow;doy=config._locale._week.doy;weekYear=dfl(w.gg,config._a[YEAR],weekOfYear(moment(),dow,doy).year);week=dfl(w.w,1);if(w.d!=null){weekday=w.d;if(weekday<dow){++week}}else if(w.e!=null){weekday=w.e+dow}else{weekday=dow}}temp=dayOfYearFromWeeks(weekYear,week,weekday,doy,dow);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear}function dateFromConfig(config){var i,date,input=[],currentDate,yearToUse;if(config._d){return}currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config)}if(config._dayOfYear){yearToUse=dfl(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)){config._pf._overflowDayOfYear=true}date=makeUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate()}for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i]}for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?i===2?1:0:config._a[i]}if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0}config._d=(config._useUTC?makeUTCDate:makeDate).apply(null,input);if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)}if(config._nextDay){config._a[HOUR]=24}}function dateFromObject(config){var normalizedInput;if(config._d){return}normalizedInput=normalizeObjectUnits(config._i);config._a=[normalizedInput.year,normalizedInput.month,normalizedInput.day||normalizedInput.date,normalizedInput.hour,normalizedInput.minute,normalizedInput.second,normalizedInput.millisecond];dateFromConfig(config)}function currentDateArray(config){var now=new Date;if(config._useUTC){return[now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate()]}else{return[now.getFullYear(),now.getMonth(),now.getDate()]}}function makeDateFromStringAndFormat(config){if(config._f===moment.ISO_8601){parseISO(config);return}config._a=[];config._pf.empty=true;var string=""+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];for(i=0;i<tokens.length;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){config._pf.unusedInput.push(skipped)}string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length}if(formatTokenFunctions[token]){if(parsedInput){config._pf.empty=false}else{config._pf.unusedTokens.push(token)}addTimeToArrayFromToken(token,parsedInput,config)}else if(config._strict&&!parsedInput){config._pf.unusedTokens.push(token)}}config._pf.charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){config._pf.unusedInput.push(string)}if(config._pf.bigHour===true&&config._a[HOUR]<=12){config._pf.bigHour=undefined}config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);dateFromConfig(config);checkOverflow(config)}function unescapeFormat(s){return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4})}function regexpEscape(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function makeDateFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(config._f.length===0){config._pf.invalidFormat=true;config._d=new Date(NaN);return}for(i=0;i<config._f.length;i++){currentScore=0;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC}tempConfig._pf=defaultParsingFlags();tempConfig._f=config._f[i];makeDateFromStringAndFormat(tempConfig);if(!isValid(tempConfig)){continue}currentScore+=tempConfig._pf.charsLeftOver;currentScore+=tempConfig._pf.unusedTokens.length*10;tempConfig._pf.score=currentScore;if(scoreToBeat==null||currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig}}extend(config,bestMoment||tempConfig)}function parseISO(config){var i,l,string=config._i,match=isoRegex.exec(string);if(match){config._pf.iso=true;for(i=0,l=isoDates.length;i<l;i++){if(isoDates[i][1].exec(string)){config._f=isoDates[i][0]+(match[6]||" ");break}}for(i=0,l=isoTimes.length;i<l;i++){if(isoTimes[i][1].exec(string)){config._f+=isoTimes[i][0];break}}if(string.match(parseTokenTimezone)){config._f+="Z"}makeDateFromStringAndFormat(config)}else{config._isValid=false}}function makeDateFromString(config){parseISO(config);if(config._isValid===false){delete config._isValid;moment.createFromInputFallback(config)}}function map(arr,fn){var res=[],i;for(i=0;i<arr.length;++i){res.push(fn(arr[i],i))}return res}function makeDateFromInput(config){var input=config._i,matched;if(input===undefined){config._d=new Date}else if(isDate(input)){config._d=new Date(+input)}else if((matched=aspNetJsonRegex.exec(input))!==null){config._d=new Date(+matched[1])}else if(typeof input==="string"){makeDateFromString(config)}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10)});dateFromConfig(config)}else if(typeof input==="object"){dateFromObject(config)}else if(typeof input==="number"){config._d=new Date(input)}else{moment.createFromInputFallback(config)}}function makeDate(y,m,d,h,M,s,ms){var date=new Date(y,m,d,h,M,s,ms);if(y<1970){date.setFullYear(y)}return date}function makeUTCDate(y){var date=new Date(Date.UTC.apply(null,arguments));if(y<1970){date.setUTCFullYear(y)}return date}function parseWeekday(input,locale){if(typeof input==="string"){if(!isNaN(input)){input=parseInt(input,10)}else{input=locale.weekdaysParse(input);if(typeof input!=="number"){return null}}}return input}function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture)}function relativeTime(posNegDuration,withoutSuffix,locale){var duration=moment.duration(posNegDuration).abs(),seconds=round(duration.as("s")),minutes=round(duration.as("m")),hours=round(duration.as("h")),days=round(duration.as("d")),months=round(duration.as("M")),years=round(duration.as("y")),args=seconds<relativeTimeThresholds.s&&["s",seconds]||minutes===1&&["m"]||minutes<relativeTimeThresholds.m&&["mm",minutes]||hours===1&&["h"]||hours<relativeTimeThresholds.h&&["hh",hours]||days===1&&["d"]||days<relativeTimeThresholds.d&&["dd",days]||months===1&&["M"]||months<relativeTimeThresholds.M&&["MM",months]||years===1&&["y"]||["yy",years];args[2]=withoutSuffix;args[3]=+posNegDuration>0;args[4]=locale;return substituteTimeAgo.apply({},args)}function weekOfYear(mom,firstDayOfWeek,firstDayOfWeekOfYear){var end=firstDayOfWeekOfYear-firstDayOfWeek,daysToDayOfWeek=firstDayOfWeekOfYear-mom.day(),adjustedMoment;if(daysToDayOfWeek>end){daysToDayOfWeek-=7}if(daysToDayOfWeek<end-7){daysToDayOfWeek+=7}adjustedMoment=moment(mom).add(daysToDayOfWeek,"d");return{week:Math.ceil(adjustedMoment.dayOfYear()/7),year:adjustedMoment.year()}}function dayOfYearFromWeeks(year,week,weekday,firstDayOfWeekOfYear,firstDayOfWeek){var d=makeUTCDate(year,0,1).getUTCDay(),daysToAdd,dayOfYear;d=d===0?7:d;weekday=weekday!=null?weekday:firstDayOfWeek;daysToAdd=firstDayOfWeek-d+(d>firstDayOfWeekOfYear?7:0)-(d<firstDayOfWeek?7:0);dayOfYear=7*(week-1)+(weekday-firstDayOfWeek)+daysToAdd+1;return{year:dayOfYear>0?year:year-1,dayOfYear:dayOfYear>0?dayOfYear:daysInYear(year-1)+dayOfYear}}function makeMoment(config){var input=config._i,format=config._f,res;config._locale=config._locale||moment.localeData(config._l);if(input===null||format===undefined&&input===""){return moment.invalid({nullInput:true})}if(typeof input==="string"){config._i=input=config._locale.preparse(input)}if(moment.isMoment(input)){return new Moment(input,true)}else if(format){if(isArray(format)){makeDateFromStringAndArray(config)}else{makeDateFromStringAndFormat(config)}}else{makeDateFromInput(config)}res=new Moment(config);if(res._nextDay){res.add(1,"d");res._nextDay=undefined}return res}moment=function(input,format,locale,strict){var c;if(typeof locale==="boolean"){strict=locale;locale=undefined}c={};c._isAMomentObject=true;c._i=input;c._f=format;c._l=locale;c._strict=strict;c._isUTC=false;c._pf=defaultParsingFlags();return makeMoment(c)};moment.suppressDeprecationWarnings=false;moment.createFromInputFallback=deprecate("moment construction falls back to js Date. This is "+"discouraged and will be removed in upcoming major "+"release. Please refer to "+"https://github.com/moment/moment/issues/1407 for more info.",function(config){config._d=new Date(config._i+(config._useUTC?" UTC":""))});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0]}if(!moments.length){return moment()}res=moments[0];for(i=1;i<moments.length;++i){if(moments[i][fn](res)){res=moments[i]}}return res}moment.min=function(){var args=[].slice.call(arguments,0); return pickBy("isBefore",args)};moment.max=function(){var args=[].slice.call(arguments,0);return pickBy("isAfter",args)};moment.utc=function(input,format,locale,strict){var c;if(typeof locale==="boolean"){strict=locale;locale=undefined}c={};c._isAMomentObject=true;c._useUTC=true;c._isUTC=true;c._l=locale;c._i=input;c._f=format;c._strict=strict;c._pf=defaultParsingFlags();return makeMoment(c).utc()};moment.unix=function(input){return moment(input*1e3)};moment.duration=function(input,key){var duration=input,match=null,sign,ret,parseIso,diffRes;if(moment.isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months}}else if(typeof input==="number"){duration={};if(key){duration[key]=input}else{duration.milliseconds=input}}else if(!!(match=aspNetTimeSpanJsonRegex.exec(input))){sign=match[1]==="-"?-1:1;duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(match[MILLISECOND])*sign}}else if(!!(match=isoDurationRegex.exec(input))){sign=match[1]==="-"?-1:1;parseIso=function(inp){var res=inp&&parseFloat(inp.replace(",","."));return(isNaN(res)?0:res)*sign};duration={y:parseIso(match[2]),M:parseIso(match[3]),d:parseIso(match[4]),h:parseIso(match[5]),m:parseIso(match[6]),s:parseIso(match[7]),w:parseIso(match[8])}}else if(duration==null){duration={}}else if(typeof duration==="object"&&("from"in duration||"to"in duration)){diffRes=momentsDifference(moment(duration.from),moment(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months}ret=new Duration(duration);if(moment.isDuration(input)&&hasOwnProp(input,"_locale")){ret._locale=input._locale}return ret};moment.version=VERSION;moment.defaultFormat=isoFormat;moment.ISO_8601=function(){};moment.momentProperties=momentProperties;moment.updateOffset=function(){};moment.relativeTimeThreshold=function(threshold,limit){if(relativeTimeThresholds[threshold]===undefined){return false}if(limit===undefined){return relativeTimeThresholds[threshold]}relativeTimeThresholds[threshold]=limit;return true};moment.lang=deprecate("moment.lang is deprecated. Use moment.locale instead.",function(key,value){return moment.locale(key,value)});moment.locale=function(key,values){var data;if(key){if(typeof values!=="undefined"){data=moment.defineLocale(key,values)}else{data=moment.localeData(key)}if(data){moment.duration._locale=moment._locale=data}}return moment._locale._abbr};moment.defineLocale=function(name,values){if(values!==null){values.abbr=name;if(!locales[name]){locales[name]=new Locale}locales[name].set(values);moment.locale(name);return locales[name]}else{delete locales[name];return null}};moment.langData=deprecate("moment.langData is deprecated. Use moment.localeData instead.",function(key){return moment.localeData(key)});moment.localeData=function(key){var locale;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr}if(!key){return moment._locale}if(!isArray(key)){locale=loadLocale(key);if(locale){return locale}key=[key]}return chooseLocale(key)};moment.isMoment=function(obj){return obj instanceof Moment||obj!=null&&hasOwnProp(obj,"_isAMomentObject")};moment.isDuration=function(obj){return obj instanceof Duration};for(i=lists.length-1;i>=0;--i){makeList(lists[i])}moment.normalizeUnits=function(units){return normalizeUnits(units)};moment.invalid=function(flags){var m=moment.utc(NaN);if(flags!=null){extend(m._pf,flags)}else{m._pf.userInvalidated=true}return m};moment.parseZone=function(){return moment.apply(null,arguments).parseZone()};moment.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2e3)};moment.isDate=isDate;extend(moment.fn=Moment.prototype,{clone:function(){return moment(this)},valueOf:function(){return+this._d-(this._offset||0)*6e4},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var m=moment(this).utc();if(0<m.year()&&m.year()<=9999){if("function"===typeof Date.prototype.toISOString){return this.toDate().toISOString()}else{return formatMoment(m,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}}else{return formatMoment(m,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}},toArray:function(){var m=this;return[m.year(),m.month(),m.date(),m.hours(),m.minutes(),m.seconds(),m.milliseconds()]},isValid:function(){return isValid(this)},isDSTShifted:function(){if(this._a){return this.isValid()&&compareArrays(this._a,(this._isUTC?moment.utc(this._a):moment(this._a)).toArray())>0}return false},parsingFlags:function(){return extend({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(keepLocalTime){return this.utcOffset(0,keepLocalTime)},local:function(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(this._dateUtcOffset(),"m")}}return this},format:function(inputString){var output=formatMoment(this,inputString||moment.defaultFormat);return this.localeData().postformat(output)},add:createAdder(1,"add"),subtract:createAdder(-1,"subtract"),diff:function(input,units,asFloat){var that=makeAs(input,this),zoneDiff=(that.utcOffset()-this.utcOffset())*6e4,anchor,diff,output,daysAdjust;units=normalizeUnits(units);if(units==="year"||units==="month"||units==="quarter"){output=monthDiff(this,that);if(units==="quarter"){output=output/3}else if(units==="year"){output=output/12}}else{diff=this-that;output=units==="second"?diff/1e3:units==="minute"?diff/6e4:units==="hour"?diff/36e5:units==="day"?(diff-zoneDiff)/864e5:units==="week"?(diff-zoneDiff)/6048e5:diff}return asFloat?output:absRound(output)},from:function(time,withoutSuffix){return moment.duration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix)},fromNow:function(withoutSuffix){return this.from(moment(),withoutSuffix)},calendar:function(time){var now=time||moment(),sod=makeAs(now,this).startOf("day"),diff=this.diff(sod,"days",true),format=diff<-6?"sameElse":diff<-1?"lastWeek":diff<0?"lastDay":diff<1?"sameDay":diff<2?"nextDay":diff<7?"nextWeek":"sameElse";return this.format(this.localeData().calendar(format,this,moment(now)))},isLeapYear:function(){return isLeapYear(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(input){var day=this._isUTC?this._d.getUTCDay():this._d.getDay();if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,"d")}else{return day}},month:makeAccessor("Month",true),startOf:function(units){units=normalizeUnits(units);switch(units){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}if(units==="week"){this.weekday(0)}else if(units==="isoWeek"){this.isoWeekday(1)}if(units==="quarter"){this.month(Math.floor(this.month()/3)*3)}return this},endOf:function(units){units=normalizeUnits(units);if(units===undefined||units==="millisecond"){return this}return this.startOf(units).add(1,units==="isoWeek"?"week":units).subtract(1,"ms")},isAfter:function(input,units){var inputMs;units=normalizeUnits(typeof units!=="undefined"?units:"millisecond");if(units==="millisecond"){input=moment.isMoment(input)?input:moment(input);return+this>+input}else{inputMs=moment.isMoment(input)?+input:+moment(input);return inputMs<+this.clone().startOf(units)}},isBefore:function(input,units){var inputMs;units=normalizeUnits(typeof units!=="undefined"?units:"millisecond");if(units==="millisecond"){input=moment.isMoment(input)?input:moment(input);return+this<+input}else{inputMs=moment.isMoment(input)?+input:+moment(input);return+this.clone().endOf(units)<inputMs}},isBetween:function(from,to,units){return this.isAfter(from,units)&&this.isBefore(to,units)},isSame:function(input,units){var inputMs;units=normalizeUnits(units||"millisecond");if(units==="millisecond"){input=moment.isMoment(input)?input:moment(input);return+this===+input}else{inputMs=+moment(input);return+this.clone().startOf(units)<=inputMs&&inputMs<=+this.clone().endOf(units)}},min:deprecate("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(other){other=moment.apply(null,arguments);return other<this?this:other}),max:deprecate("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(other){other=moment.apply(null,arguments);return other>this?this:other}),zone:deprecate("moment().zone is deprecated, use moment().utcOffset instead. "+"https://github.com/moment/moment/issues/1779",function(input,keepLocalTime){if(input!=null){if(typeof input!=="string"){input=-input}this.utcOffset(input,keepLocalTime);return this}else{return-this.utcOffset()}}),utcOffset:function(input,keepLocalTime){var offset=this._offset||0,localAdjust;if(input!=null){if(typeof input==="string"){input=utcOffsetFromString(input)}if(Math.abs(input)<16){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=this._dateUtcOffset()}this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,"m")}if(offset!==input){if(!keepLocalTime||this._changeInProgress){addOrSubtractDurationFromMoment(this,moment.duration(input-offset,"m"),1,false)}else if(!this._changeInProgress){this._changeInProgress=true;moment.updateOffset(this,true);this._changeInProgress=null}}return this}else{return this._isUTC?offset:this._dateUtcOffset()}},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&this._offset===0},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){if(this._tzm){this.utcOffset(this._tzm)}else if(typeof this._i==="string"){this.utcOffset(utcOffsetFromString(this._i))}return this},hasAlignedHourOffset:function(input){if(!input){input=0}else{input=moment(input).utcOffset()}return(this.utcOffset()-input)%60===0},daysInMonth:function(){return daysInMonth(this.year(),this.month())},dayOfYear:function(input){var dayOfYear=round((moment(this).startOf("day")-moment(this).startOf("year"))/864e5)+1;return input==null?dayOfYear:this.add(input-dayOfYear,"d")},quarter:function(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+this.month()%3)},weekYear:function(input){var year=weekOfYear(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return input==null?year:this.add(input-year,"y")},isoWeekYear:function(input){var year=weekOfYear(this,1,4).year;return input==null?year:this.add(input-year,"y")},week:function(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,"d")},isoWeek:function(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,"d")},weekday:function(input){var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,"d")},isoWeekday:function(input){return input==null?this.day()||7:this.day(this.day()%7?input:input-7)},isoWeeksInYear:function(){return weeksInYear(this.year(),1,4)},weeksInYear:function(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy)},get:function(units){units=normalizeUnits(units);return this[units]()},set:function(units,value){var unit;if(typeof units==="object"){for(unit in units){this.set(unit,units[unit])}}else{units=normalizeUnits(units);if(typeof this[units]==="function"){this[units](value)}}return this},locale:function(key){var newLocaleData;if(key===undefined){return this._locale._abbr}else{newLocaleData=moment.localeData(key);if(newLocaleData!=null){this._locale=newLocaleData}return this}},lang:deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(key){if(key===undefined){return this.localeData()}else{return this.locale(key)}}),localeData:function(){return this._locale},_dateUtcOffset:function(){return-Math.round(this._d.getTimezoneOffset()/15)*15}});function rawMonthSetter(mom,value){var dayOfMonth;if(typeof value==="string"){value=mom.localeData().monthsParse(value);if(typeof value!=="number"){return mom}}dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value));mom._d["set"+(mom._isUTC?"UTC":"")+"Month"](value,dayOfMonth);return mom}function rawGetter(mom,unit){return mom._d["get"+(mom._isUTC?"UTC":"")+unit]()}function rawSetter(mom,unit,value){if(unit==="Month"){return rawMonthSetter(mom,value)}else{return mom._d["set"+(mom._isUTC?"UTC":"")+unit](value)}}function makeAccessor(unit,keepTime){return function(value){if(value!=null){rawSetter(this,unit,value);moment.updateOffset(this,keepTime);return this}else{return rawGetter(this,unit)}}}moment.fn.millisecond=moment.fn.milliseconds=makeAccessor("Milliseconds",false);moment.fn.second=moment.fn.seconds=makeAccessor("Seconds",false);moment.fn.minute=moment.fn.minutes=makeAccessor("Minutes",false);moment.fn.hour=moment.fn.hours=makeAccessor("Hours",true);moment.fn.date=makeAccessor("Date",true);moment.fn.dates=deprecate("dates accessor is deprecated. Use date instead.",makeAccessor("Date",true));moment.fn.year=makeAccessor("FullYear",true);moment.fn.years=deprecate("years accessor is deprecated. Use year instead.",makeAccessor("FullYear",true));moment.fn.days=moment.fn.day;moment.fn.months=moment.fn.month;moment.fn.weeks=moment.fn.week;moment.fn.isoWeeks=moment.fn.isoWeek;moment.fn.quarters=moment.fn.quarter;moment.fn.toJSON=moment.fn.toISOString;moment.fn.isUTC=moment.fn.isUtc;function daysToYears(days){return days*400/146097}function yearsToDays(years){return years*146097/400}extend(moment.duration.fn=Duration.prototype,{_bubble:function(){var milliseconds=this._milliseconds,days=this._days,months=this._months,data=this._data,seconds,minutes,hours,years=0;data.milliseconds=milliseconds%1e3;seconds=absRound(milliseconds/1e3);data.seconds=seconds%60;minutes=absRound(seconds/60);data.minutes=minutes%60;hours=absRound(minutes/60);data.hours=hours%24;days+=absRound(hours/24);years=absRound(daysToYears(days));days-=absRound(yearsToDays(years));months+=absRound(days/30);days%=30;years+=absRound(months/12);months%=12;data.days=days;data.months=months;data.years=years},abs:function(){this._milliseconds=Math.abs(this._milliseconds);this._days=Math.abs(this._days);this._months=Math.abs(this._months);this._data.milliseconds=Math.abs(this._data.milliseconds);this._data.seconds=Math.abs(this._data.seconds);this._data.minutes=Math.abs(this._data.minutes);this._data.hours=Math.abs(this._data.hours);this._data.months=Math.abs(this._data.months);this._data.years=Math.abs(this._data.years);return this},weeks:function(){return absRound(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months%12*2592e6+toInt(this._months/12)*31536e6},humanize:function(withSuffix){var output=relativeTime(this,!withSuffix,this.localeData());if(withSuffix){output=this.localeData().pastFuture(+this,output)}return this.localeData().postformat(output)},add:function(input,val){var dur=moment.duration(input,val);this._milliseconds+=dur._milliseconds;this._days+=dur._days;this._months+=dur._months;this._bubble();return this},subtract:function(input,val){var dur=moment.duration(input,val);this._milliseconds-=dur._milliseconds;this._days-=dur._days;this._months-=dur._months;this._bubble();return this},get:function(units){units=normalizeUnits(units);return this[units.toLowerCase()+"s"]()},as:function(units){var days,months;units=normalizeUnits(units);if(units==="month"||units==="year"){days=this._days+this._milliseconds/864e5;months=this._months+daysToYears(days)*12;return units==="month"?months:months/12}else{days=this._days+Math.round(yearsToDays(this._months/12));switch(units){case"week":return days/7+this._milliseconds/6048e5;case"day":return days+this._milliseconds/864e5;case"hour":return days*24+this._milliseconds/36e5;case"minute":return days*24*60+this._milliseconds/6e4;case"second":return days*24*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(days*24*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+units)}}},lang:moment.fn.lang,locale:moment.fn.locale,toIsoString:deprecate("toIsoString() is deprecated. Please use toISOString() instead "+"(notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var years=Math.abs(this.years()),months=Math.abs(this.months()),days=Math.abs(this.days()),hours=Math.abs(this.hours()),minutes=Math.abs(this.minutes()),seconds=Math.abs(this.seconds()+this.milliseconds()/1e3);if(!this.asSeconds()){return"P0D"}return(this.asSeconds()<0?"-":"")+"P"+(years?years+"Y":"")+(months?months+"M":"")+(days?days+"D":"")+(hours||minutes||seconds?"T":"")+(hours?hours+"H":"")+(minutes?minutes+"M":"")+(seconds?seconds+"S":"")},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}});moment.duration.fn.toString=moment.duration.fn.toISOString;function makeDurationGetter(name){moment.duration.fn[name]=function(){return this._data[name]}}for(i in unitMillisecondFactors){if(hasOwnProp(unitMillisecondFactors,i)){makeDurationGetter(i.toLowerCase())}}moment.duration.fn.asMilliseconds=function(){return this.as("ms")};moment.duration.fn.asSeconds=function(){return this.as("s")};moment.duration.fn.asMinutes=function(){return this.as("m")};moment.duration.fn.asHours=function(){return this.as("h")};moment.duration.fn.asDays=function(){return this.as("d")};moment.duration.fn.asWeeks=function(){return this.as("weeks")};moment.duration.fn.asMonths=function(){return this.as("M")};moment.duration.fn.asYears=function(){return this.as("y")};moment.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10,output=toInt(number%100/10)===1?"th":b===1?"st":b===2?"nd":b===3?"rd":"th";return number+output}});function makeGlobal(shouldDeprecate){if(typeof ender!=="undefined"){return}oldGlobalMoment=globalScope.moment;if(shouldDeprecate){globalScope.moment=deprecate("Accessing Moment through the global scope is "+"deprecated, and will be removed in an upcoming "+"release.",moment)}else{globalScope.moment=moment}}if(hasModule){module.exports=moment}else if(typeof define==="function"&&define.amd){define(function(require,exports,module){if(module.config&&module.config()&&module.config().noGlobal===true){globalScope.moment=oldGlobalMoment}return moment});makeGlobal(true)}else{makeGlobal()}}).call(this);</script><polymer-element name="relative-ha-datetime" attributes="datetime" assetpath="polymer/components/"><template> {{ relativeTime }} </template><script>(function(){var UPDATE_INTERVAL=6e4;var parseDateTime=window.hass.util.parseDateTime;Polymer("relative-ha-datetime",{relativeTime:"",parsedDateTime:null,created:function(){this.updateRelative=this.updateRelative.bind(this)},attached:function(){this._interval=setInterval(this.updateRelative,UPDATE_INTERVAL)},detached:function(){clearInterval(this._interval)},datetimeChanged:function(oldVal,newVal){this.parsedDateTime=newVal?parseDateTime(newVal):null;this.updateRelative()},updateRelative:function(){this.relativeTime=this.parsedDateTime?moment(this.parsedDateTime).fromNow():""}})})();</script></polymer-element><polymer-element name="state-info" attributes="stateObj" assetpath="polymer/components/"><template><style>state-badge{float:left}.name{text-transform:capitalize;font-weight:300;font-size:1.3rem}.info{margin-left:60px}.time-ago{color:darkgrey;margin-top:-2px}</style><div><state-badge stateobj="{{stateObj}}"></state-badge><div class="info"><div class="name"> @@ -186,7 +209,11 @@ return pickBy("isBefore",args)};moment.max=function(){var args=[].slice.call(arg It looks like we have nothing to show you right now. It could be that we have not yet discovered all your devices but it is more likely that you have not configured Home Assistant yet. </p><p> Please see the <a href="https://home-assistant.io/getting-started/" target="_blank">Getting Started</a> section on how to setup your devices. - </p></state-cards></partial-base></template><script>(function(){var storeListenerMixIn=window.hass.storeListenerMixIn;var syncActions=window.hass.syncActions;var voiceActions=window.hass.voiceActions;var stateStore=window.hass.stateStore;var uiConstants=window.hass.uiConstants;Polymer(Polymer.mixin({headerTitle:"States",states:[],isFetching:false,isStreaming:false,canListen:false,voiceSupported:false,hasConversationComponent:false,isListening:false,isTransmittingVoice:false,interimTranscript:"",finalTranscript:"",ready:function(){this.voiceSupported=voiceActions.isSupported()},attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},componentStoreChanged:function(componentStore){this.canListen=this.voiceSupported&&componentStore.isLoaded("conversation")},stateStoreChanged:function(){this.refreshStates()},syncStoreChanged:function(syncStore){this.isFetching=syncStore.isFetching},streamStoreChanged:function(streamStore){this.isStreaming=streamStore.isStreaming},voiceStoreChanged:function(voiceStore){this.isListening=voiceStore.isListening;this.isTransmitting=voiceStore.isTransmitting;this.finalTranscript=voiceStore.finalTranscript;this.interimTranscript=voiceStore.interimTranscript.slice(this.finalTranscript.length)},filterChanged:function(){this.refreshStates();this.headerTitle=uiConstants.STATE_FILTERS[this.filter]||"States"},refreshStates:function(){var states;if(this.filter){var filter=this.filter;states=stateStore.all.filter(function(state){return state.domain===filter})}else{states=stateStore.all.filter(function(state){return!(state.domain in uiConstants.STATE_FILTERS)})}this.states=states.toArray()},handleRefreshClick:function(){syncActions.fetchAll()},handleListenClick:function(){if(this.isListening){voiceActions.stop()}else{voiceActions.listen()}}},storeListenerMixIn))})();</script></polymer-element><polymer-element name="core-shared-lib" attributes="url notifyEvent callbackName" assetpath="polymer/bower_components/core-shared-lib/"><script>(function(){Polymer("core-shared-lib",{notifyEvent:"core-shared-lib-load",ready:function(){if(!this.url&&this.defaultUrl){this.url=this.defaultUrl}},urlChanged:function(){require(this.url,this,this.callbackName)},provide:function(){this.async("notify")},notify:function(){this.fire(this.notifyEvent,arguments)}});var apiMap={};function require(url,notifiee,callbackName){var name=nameFromUrl(url);var loader=apiMap[name];if(!loader){loader=apiMap[name]=new Loader(name,url,callbackName)}loader.requestNotify(notifiee)}function nameFromUrl(url){return url.replace(/[\:\/\%\?\&\.\=\-\,]/g,"_")+"_api"}var Loader=function(name,url,callbackName){this.instances=[];this.callbackName=callbackName;if(this.callbackName){window[this.callbackName]=this.success.bind(this)}else{if(url.indexOf(this.callbackMacro)>=0){this.callbackName=name+"_loaded";window[this.callbackName]=this.success.bind(this);url=url.replace(this.callbackMacro,this.callbackName)}else{throw"core-shared-api: a %%callback%% parameter is required in the API url"}}this.addScript(url)};Loader.prototype={callbackMacro:"%%callback%%",loaded:false,addScript:function(src){var script=document.createElement("script");script.src=src;script.onerror=this.error.bind(this);var s=document.querySelector("script");s.parentNode.insertBefore(script,s);this.script=script},removeScript:function(){if(this.script.parentNode){this.script.parentNode.removeChild(this.script)}this.script=null},error:function(){this.cleanup()},success:function(){this.loaded=true;this.cleanup();this.result=Array.prototype.slice.call(arguments);this.instances.forEach(this.provide,this);this.instances=null},cleanup:function(){delete window[this.callbackName]},provide:function(instance){instance.notify(instance,this.result)},requestNotify:function(instance){if(this.loaded){this.provide(instance)}else{this.instances.push(instance)}}}})();</script></polymer-element><polymer-element name="google-jsapi" extends="core-shared-lib" assetpath="polymer/bower_components/google-apis/"><script>Polymer("google-jsapi",{defaultUrl:"https://www.google.com/jsapi?callback=%%callback%%",notifyEvent:"api-load",get api(){return google}});</script></polymer-element><polymer-element name="state-timeline" attributes="stateHistory" assetpath="polymer/components/"><template><style>:host{display:block}</style><google-jsapi on-api-load="{{googleApiLoaded}}"></google-jsapi><div id="timeline" style="width: 100%; height: auto;"></div></template><script>Polymer("state-timeline",{apiLoaded:false,stateHistory:null,googleApiLoaded:function(){google.load("visualization","1",{packages:["timeline"],callback:function(){this.apiLoaded=true;this.drawChart()}.bind(this)})},stateHistoryChanged:function(){this.drawChart()},drawChart:function(){if(!this.apiLoaded||!this.stateHistory){return}var container=this.$.timeline;var chart=new google.visualization.Timeline(container);var dataTable=new google.visualization.DataTable;dataTable.addColumn({type:"string",id:"Entity"});dataTable.addColumn({type:"string",id:"State"});dataTable.addColumn({type:"date",id:"Start"});dataTable.addColumn({type:"date",id:"End"});var addRow=function(entityDisplay,stateStr,start,end){dataTable.addRow([entityDisplay,stateStr,start,end])};if(this.stateHistory.length===0){return}var stateHistory;if(_.isArray(this.stateHistory[0])){stateHistory=this.stateHistory}else{stateHistory=[this.stateHistory]}stateHistory.forEach(function(stateInfo){if(stateInfo.length===0)return;var entityDisplay=stateInfo[0].entityDisplay;var newLastChanged,prevState=null,prevLastChanged=null;stateInfo.forEach(function(state){if(prevState!==null&&state.state!==prevState){newLastChanged=state.lastChangedAsDate;addRow(entityDisplay,prevState,prevLastChanged,newLastChanged);prevState=state.state;prevLastChanged=newLastChanged}else if(prevState===null){prevState=state.state;prevLastChanged=state.lastChangedAsDate}});addRow(entityDisplay,prevState,prevLastChanged,new Date)}.bind(this));chart.draw(dataTable,{height:55+stateHistory.length*42,enableInteractivity:false,timeline:{showRowLabels:stateHistory.length>1},hAxis:{format:"H:mm"}})}});</script></polymer-element><polymer-element name="partial-history" attributes="narrow togglePanel" assetpath="polymer/layouts/"><template><style>.content{background-color:#fff}.content.wide{padding:8px}</style><partial-base narrow="{{narrow}}" togglepanel="{{togglePanel}}"><span header-title="">History</span><span header-buttons=""><paper-icon-button icon="refresh" on-click="{{handleRefreshClick}}"></paper-icon-button></span><div flex="" class="{{ {content: true, narrow: narrow, wide: !narrow} | tokenList }}"><state-timeline statehistory="{{stateHistory}}"></state-timeline></div></partial-base></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;var stateHistoryActions=window.hass.stateHistoryActions;Polymer(Polymer.mixin({stateHistory:null,attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},stateHistoryStoreChanged:function(stateHistoryStore){if(stateHistoryStore.isStale()){stateHistoryActions.fetchAll()}this.stateHistory=stateHistoryStore.all},handleRefreshClick:function(){stateHistoryActions.fetchAll()}},storeListenerMixIn));</script></polymer-element><polymer-element name="paper-input" assetpath="polymer/bower_components/paper-input/"><template><style>:host{display:inline-block}</style><paper-input-decorator id="decorator" label="{{label}}" floatinglabel="{{floatingLabel}}" value="{{value}}" disabled?="{{disabled}}"><input is="core-input" id="input" value="{{value}}" committedvalue="{{committedValue}}" on-change="{{changeAction}}" disabled?="{{disabled}}"></paper-input-decorator></template><script>Polymer("paper-input",{publish:{label:"",floatingLabel:false,disabled:{value:false,reflect:true},value:"",committedValue:""},focus:function(){this.$.input.focus()},valueChanged:function(){this.$.decorator.updateLabelVisibility(this.value)},changeAction:function(e){this.fire("change",null,this)}});</script></polymer-element><polymer-element name="paper-autogrow-textarea" on-input="{{inputAction}}" assetpath="polymer/bower_components/paper-input/"><template><style>:host{display:inline-block;position:relative;width:400px}.mirror-text{visibility:hidden;word-wrap:break-word}::content textarea{padding:0;margin:0;border:none;outline:0;resize:none;width:100%;height:100%}::content textarea:invalid{box-shadow:none}</style><div id="mirror" class="mirror-text" aria-hidden="true"> </div><div class="textarea-container" fit=""><content></content></div></template><script>Polymer("paper-autogrow-textarea",{publish:{target:null,rows:1,maxRows:0},tokens:null,observe:{rows:"updateCached",maxRows:"updateCached"},constrain:function(tokens){var _tokens;tokens=tokens||[""];if(this.maxRows>0&&tokens.length>this.maxRows){_tokens=tokens.slice(0,this.maxRows)}else{_tokens=tokens.slice(0)}while(this.rows>0&&_tokens.length<this.rows){_tokens.push("")}return _tokens.join("<br>")+" "},valueForMirror:function(input){this.tokens=input&&input.value?input.value.replace(/&/gm,"&").replace(/"/gm,""").replace(/'/gm,"'").replace(/</gm,"<").replace(/>/gm,">").split("\n"):[""];return this.constrain(this.tokens)},update:function(input){this.$.mirror.innerHTML=this.valueForMirror(input)},updateCached:function(){this.$.mirror.innerHTML=this.constrain(this.tokens)},inputAction:function(e){this.update(e.target)}});</script></polymer-element><polymer-element name="events-list" attributes="cbEventClicked" assetpath="polymer/components/"><template><style>:host{display:block}.eventContainer{font-size:1rem}</style><template if="{{cbEventClicked}}"><style>a{text-decoration:underline;cursor:pointer}</style></template><div><template repeat="{{event in events}}"><div class="eventContainer"><a on-click="{{handleClick}}">{{event.event}}</a> + </p></state-cards></partial-base></template><script>(function(){var storeListenerMixIn=window.hass.storeListenerMixIn;var syncActions=window.hass.syncActions;var voiceActions=window.hass.voiceActions;var stateStore=window.hass.stateStore;var uiConstants=window.hass.uiConstants;Polymer(Polymer.mixin({headerTitle:"States",states:[],isFetching:false,isStreaming:false,canListen:false,voiceSupported:false,hasConversationComponent:false,isListening:false,isTransmittingVoice:false,interimTranscript:"",finalTranscript:"",ready:function(){this.voiceSupported=voiceActions.isSupported()},attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},componentStoreChanged:function(componentStore){this.canListen=this.voiceSupported&&componentStore.isLoaded("conversation")},stateStoreChanged:function(){this.refreshStates()},syncStoreChanged:function(syncStore){this.isFetching=syncStore.isFetching},streamStoreChanged:function(streamStore){this.isStreaming=streamStore.isStreaming},voiceStoreChanged:function(voiceStore){this.isListening=voiceStore.isListening;this.isTransmitting=voiceStore.isTransmitting;this.finalTranscript=voiceStore.finalTranscript;this.interimTranscript=voiceStore.interimTranscript.slice(this.finalTranscript.length)},filterChanged:function(){this.refreshStates();this.headerTitle=uiConstants.STATE_FILTERS[this.filter]||"States"},refreshStates:function(){var states;if(this.filter){var filter=this.filter;states=stateStore.all.filter(function(state){return state.domain===filter})}else{states=stateStore.all.filter(function(state){return!(state.domain in uiConstants.STATE_FILTERS)})}this.states=states.toArray()},handleRefreshClick:function(){syncActions.fetchAll()},handleListenClick:function(){if(this.isListening){voiceActions.stop()}else{voiceActions.listen()}}},storeListenerMixIn))})();</script></polymer-element><polymer-element name="core-shared-lib" attributes="url notifyEvent callbackName" assetpath="polymer/bower_components/core-shared-lib/"><script>(function(){Polymer("core-shared-lib",{notifyEvent:"core-shared-lib-load",ready:function(){if(!this.url&&this.defaultUrl){this.url=this.defaultUrl}},urlChanged:function(){require(this.url,this,this.callbackName)},provide:function(){this.async("notify")},notify:function(){this.fire(this.notifyEvent,arguments)}});var apiMap={};function require(url,notifiee,callbackName){var name=nameFromUrl(url);var loader=apiMap[name];if(!loader){loader=apiMap[name]=new Loader(name,url,callbackName)}loader.requestNotify(notifiee)}function nameFromUrl(url){return url.replace(/[\:\/\%\?\&\.\=\-\,]/g,"_")+"_api"}var Loader=function(name,url,callbackName){this.instances=[];this.callbackName=callbackName;if(this.callbackName){window[this.callbackName]=this.success.bind(this)}else{if(url.indexOf(this.callbackMacro)>=0){this.callbackName=name+"_loaded";window[this.callbackName]=this.success.bind(this);url=url.replace(this.callbackMacro,this.callbackName)}else{throw"core-shared-api: a %%callback%% parameter is required in the API url"}}this.addScript(url)};Loader.prototype={callbackMacro:"%%callback%%",loaded:false,addScript:function(src){var script=document.createElement("script");script.src=src;script.onerror=this.error.bind(this);var s=document.querySelector("script");s.parentNode.insertBefore(script,s);this.script=script},removeScript:function(){if(this.script.parentNode){this.script.parentNode.removeChild(this.script)}this.script=null},error:function(){this.cleanup()},success:function(){this.loaded=true;this.cleanup();this.result=Array.prototype.slice.call(arguments);this.instances.forEach(this.provide,this);this.instances=null},cleanup:function(){delete window[this.callbackName]},provide:function(instance){instance.notify(instance,this.result)},requestNotify:function(instance){if(this.loaded){this.provide(instance)}else{this.instances.push(instance)}}}})();</script></polymer-element><polymer-element name="google-jsapi" extends="core-shared-lib" assetpath="polymer/bower_components/google-apis/"><script>Polymer("google-jsapi",{defaultUrl:"https://www.google.com/jsapi?callback=%%callback%%",notifyEvent:"api-load",get api(){return google}});</script></polymer-element><polymer-element name="state-timeline" attributes="stateHistory" assetpath="polymer/components/"><template><style>:host{display:block}</style><google-jsapi on-api-load="{{googleApiLoaded}}"></google-jsapi><div id="timeline" style="width: 100%; height: auto;"></div></template><script>Polymer("state-timeline",{apiLoaded:false,stateHistory:null,googleApiLoaded:function(){google.load("visualization","1",{packages:["timeline"],callback:function(){this.apiLoaded=true;this.drawChart()}.bind(this)})},stateHistoryChanged:function(){this.drawChart()},drawChart:function(){if(!this.apiLoaded||!this.stateHistory){return}var container=this.$.timeline;var chart=new google.visualization.Timeline(container);var dataTable=new google.visualization.DataTable;dataTable.addColumn({type:"string",id:"Entity"});dataTable.addColumn({type:"string",id:"State"});dataTable.addColumn({type:"date",id:"Start"});dataTable.addColumn({type:"date",id:"End"});var addRow=function(entityDisplay,stateStr,start,end){dataTable.addRow([entityDisplay,stateStr,start,end])};if(this.stateHistory.length===0){return}var stateHistory;if(_.isArray(this.stateHistory[0])){stateHistory=this.stateHistory}else{stateHistory=[this.stateHistory]}stateHistory.forEach(function(stateInfo){if(stateInfo.length===0)return;var entityDisplay=stateInfo[0].entityDisplay;var newLastChanged,prevState=null,prevLastChanged=null;stateInfo.forEach(function(state){if(prevState!==null&&state.state!==prevState){newLastChanged=state.lastChangedAsDate;addRow(entityDisplay,prevState,prevLastChanged,newLastChanged);prevState=state.state;prevLastChanged=newLastChanged}else if(prevState===null){prevState=state.state;prevLastChanged=state.lastChangedAsDate}});addRow(entityDisplay,prevState,prevLastChanged,new Date)}.bind(this));chart.draw(dataTable,{height:55+stateHistory.length*42,enableInteractivity:false,timeline:{showRowLabels:stateHistory.length>1},hAxis:{format:"H:mm"}})}});</script></polymer-element><polymer-element name="partial-history" attributes="narrow togglePanel" assetpath="polymer/layouts/"><template><style>.content{background-color:#fff}.content.wide{padding:8px}</style><partial-base narrow="{{narrow}}" togglepanel="{{togglePanel}}"><span header-title="">History</span><span header-buttons=""><paper-icon-button icon="refresh" on-click="{{handleRefreshClick}}"></paper-icon-button></span><div flex="" class="{{ {content: true, narrow: narrow, wide: !narrow} | tokenList }}"><state-timeline statehistory="{{stateHistory}}"></state-timeline></div></partial-base></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;var stateHistoryActions=window.hass.stateHistoryActions;Polymer(Polymer.mixin({stateHistory:null,attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},stateHistoryStoreChanged:function(stateHistoryStore){if(stateHistoryStore.isStale()){stateHistoryActions.fetchAll()}this.stateHistory=stateHistoryStore.all},handleRefreshClick:function(){stateHistoryActions.fetchAll()}},storeListenerMixIn));</script></polymer-element><polymer-element name="display-time" attributes="dateObj" assetpath="polymer/components/"><template> + {{ time }} + </template><script>(function(){var timeFormatOptions={hour:"numeric",minute:"2-digit"};Polymer("display-time",{time:"",dateObjChanged:function(oldVal,newVal){if(!newVal){this.time=""}this.time=newVal.toLocaleTimeString([],timeFormatOptions)}})})();</script></polymer-element><polymer-element name="logbook-entry" attributes="entryObj" assetpath="polymer/components/"><template><core-style ref="ha-main"></core-style><style>.logbook-entry{line-height:2em}.time{width:55px;font-size:.8em}.icon{margin:0 8px 0 16px}.name{text-transform:capitalize}</style><div horizontal="" layout="" class="logbook-entry"><display-time dateobj="{{entryObj.when}}" class="time secondary-text-color"></display-time><domain-icon domain="{{entryObj.domain}}" class="icon primary-text-color"></domain-icon><div class="message primary-text-color" flex=""><template if="{{!entryObj.entityId}}"><span class="name">{{entryObj.name}}</span></template><template if="{{entryObj.entityId}}"><a href="polymer/components/#" on-click="{{entityClicked}}" class="name">{{entryObj.name}}</a></template> + {{entryObj.message}} + </div></div></template><script>(function(){var uiActions=window.hass.uiActions;Polymer("logbook-entry",{entityClicked:function(ev){ev.preventDefault();uiActions.showMoreInfoDialog(this.entryObj.entityId)}})})();</script></polymer-element><polymer-element name="ha-logbook" attributes="entries" assetpath="polymer/components/"><template><style></style><div class="logbook"><template repeat="{{entries as entry}}"><logbook-entry entryobj="{{entry}}"></logbook-entry></template></div></template><script>Polymer("ha-logbook");</script></polymer-element><polymer-element name="partial-logbook" attributes="narrow togglePanel" assetpath="polymer/layouts/"><template><style>.content{background-color:#fff;padding:8px}</style><partial-base narrow="{{narrow}}" togglepanel="{{togglePanel}}"><span header-title="">Logbook</span><span header-buttons=""><paper-icon-button icon="refresh" on-click="{{handleRefreshClick}}"></paper-icon-button></span><div flex="" class="{{ {content: true, narrow: narrow, wide: !narrow} | tokenList }}"><ha-logbook entries="{{entries}}"></ha-logbook></div></partial-base></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;var logbookActions=window.hass.logbookActions;Polymer(Polymer.mixin({entries:null,attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},logbookStoreChanged:function(logbookStore){if(logbookStore.isStale()){logbookActions.fetch()}this.entries=logbookStore.all.toArray()},handleRefreshClick:function(){logbookActions.fetch()}},storeListenerMixIn));</script></polymer-element><polymer-element name="paper-input" assetpath="polymer/bower_components/paper-input/"><template><style>:host{display:inline-block}</style><paper-input-decorator id="decorator" label="{{label}}" floatinglabel="{{floatingLabel}}" value="{{value}}" disabled?="{{disabled}}"><input is="core-input" id="input" value="{{value}}" committedvalue="{{committedValue}}" on-change="{{changeAction}}" disabled?="{{disabled}}"></paper-input-decorator></template><script>Polymer("paper-input",{publish:{label:"",floatingLabel:false,disabled:{value:false,reflect:true},value:"",committedValue:""},focus:function(){this.$.input.focus()},valueChanged:function(){this.$.decorator.updateLabelVisibility(this.value)},changeAction:function(e){this.fire("change",null,this)}});</script></polymer-element><polymer-element name="paper-autogrow-textarea" on-input="{{inputAction}}" assetpath="polymer/bower_components/paper-input/"><template><style>:host{display:inline-block;position:relative;width:400px}.mirror-text{visibility:hidden;word-wrap:break-word}::content textarea{padding:0;margin:0;border:none;outline:0;resize:none;width:100%;height:100%}::content textarea:invalid{box-shadow:none}</style><div id="mirror" class="mirror-text" aria-hidden="true"> </div><div class="textarea-container" fit=""><content></content></div></template><script>Polymer("paper-autogrow-textarea",{publish:{target:null,rows:1,maxRows:0},tokens:null,observe:{rows:"updateCached",maxRows:"updateCached"},constrain:function(tokens){var _tokens;tokens=tokens||[""];if(this.maxRows>0&&tokens.length>this.maxRows){_tokens=tokens.slice(0,this.maxRows)}else{_tokens=tokens.slice(0)}while(this.rows>0&&_tokens.length<this.rows){_tokens.push("")}return _tokens.join("<br>")+" "},valueForMirror:function(input){this.tokens=input&&input.value?input.value.replace(/&/gm,"&").replace(/"/gm,""").replace(/'/gm,"'").replace(/</gm,"<").replace(/>/gm,">").split("\n"):[""];return this.constrain(this.tokens)},update:function(input){this.$.mirror.innerHTML=this.valueForMirror(input)},updateCached:function(){this.$.mirror.innerHTML=this.constrain(this.tokens)},inputAction:function(e){this.update(e.target)}});</script></polymer-element><polymer-element name="events-list" attributes="cbEventClicked" assetpath="polymer/components/"><template><style>:host{display:block}.eventContainer{font-size:1rem}</style><template if="{{cbEventClicked}}"><style>a{text-decoration:underline;cursor:pointer}</style></template><div><template repeat="{{event in events}}"><div class="eventContainer"><a on-click="{{handleClick}}">{{event.event}}</a> ({{event.listener_count}} listeners) </div></template></div></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;Polymer(Polymer.mixin({cbEventClicked:null,events:[],attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},eventStoreChanged:function(eventStore){this.events=eventStore.all.toArray()},handleClick:function(ev){if(this.cbEventClicked){this.cbEventClicked(ev.path[0].innerHTML)}}},storeListenerMixIn));</script></polymer-element><polymer-element name="partial-dev-fire-event" attributes="narrow togglePanel" assetpath="polymer/layouts/"><template><style>.form{padding:24px;background-color:#fff}</style><partial-base narrow="{{narrow}}" togglepanel="{{togglePanel}}"><span header-title="">Fire Event</span><div class="form" fit=""><p> Fire an event on the event bus. @@ -213,7 +240,7 @@ return pickBy("isBefore",args)};moment.max=function(){var args=[].slice.call(arg {{stateObj.attributes.submit_caption || "Set configuration"}} </paper-button><span hidden?="{{action !== 'configuring'}}"><paper-spinner active="true"></paper-spinner><span>Configuring…</span></span></p></template></div></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;var syncActions=window.hass.syncActions;var serviceActions=window.hass.serviceActions;Polymer(Polymer.mixin({action:"display",isStreaming:false,attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},streamStoreChanged:function(streamStore){this.isStreaming=streamStore.isStreaming},submitClicked:function(){this.action="configuring";var data={configure_id:this.stateObj.attributes.configure_id};serviceActions.callService("configurator","configure",data).then(function(){this.action="display";if(!this.isStreaming){syncActions.fetchAll()}}.bind(this),function(){this.action="display"}.bind(this))}},storeListenerMixIn));</script></polymer-element><polymer-element name="more-info-thermostat" attributes="stateObj" assetpath="polymer/more-infos/"><template><style>paper-slider{width:100%}paper-slider::shadow #sliderKnobInner,paper-slider::shadow #sliderBar::shadow #activeProgress{background-color:#039be5}.away-mode-toggle{display:none;margin-top:16px}:host-context(.has-away_mode) .away-mode-toggle{display:block}</style><div><div><div>Target Temperature</div><paper-slider min="{{tempMin}}" max="{{tempMax}}" value="{{targetTemperatureSliderValue}}" pin="" on-change="{{targetTemperatureSliderChanged}}"></paper-slider></div><div class="away-mode-toggle"><div center="" horizontal="" layout=""><div flex="">Away Mode</div><paper-toggle-button checked="{{awayToggleChecked}}" on-change="{{toggleChanged}}"></paper-toggle-button></div></div></div></template><script>var constants=window.hass.constants;Polymer("more-info-thermostat",{tempMin:10,tempMax:40,targetTemperatureSliderValue:0,awayToggleChecked:false,observe:{"stateObj.attributes.away_mode":"awayChanged"},stateObjChanged:function(oldVal,newVal){this.targetTemperatureSliderValue=this.stateObj.state;if(this.stateObj.attributes.unit_of_measurement===constants.UNIT_TEMP_F){this.tempMin=45;this.tempMax=95}else{this.tempMin=7;this.tempMax=35}},targetTemperatureSliderChanged:function(ev,details,target){var temp=parseInt(target.value);if(isNaN(temp))return;serviceActions.callService("thermostat","set_temperature",{entity_id:this.stateObj.entityId,temperature:temp})},toggleChanged:function(ev){var newVal=ev.target.checked;if(newVal&&this.stateObj.attributes.away_mode==="off"){this.service_set_away(true)}else if(!newVal&&this.stateObj.attributes.away_mode==="on"){this.service_set_away(false)}},awayChanged:function(oldVal,newVal){this.awayToggleChecked=newVal=="on"},service_set_away:function(away_mode){serviceActions.callService("thermostat","set_away_mode",{entity_id:this.stateObj.entityId,away_mode:away_mode}).then(function(){this.awayChanged(null,this.stateObj.attributes.away_mode)}.bind(this))}});</script></polymer-element><polymer-element name="more-info-script" attributes="stateObj" assetpath="polymer/more-infos/"><template><core-style ref="ha-key-value-table"></core-style><style>.data-entry .value{max-width:200px}</style><div layout="" vertical=""><div layout="" justified="" horizontal="" class="data-entry"><div class="key">Last Action</div><div class="value"> {{stateObj.attributes.last_action}} - </div></div></div></template><script>Polymer("more-info-script");</script></polymer-element><polymer-element name="more-info-content" attributes="stateObj" assetpath="polymer/more-infos/"><template><style>:host{display:block}</style><div id="moreInfoContainer" class="{{classNames}}"></div></template><script>Polymer("more-info-content",{classNames:"",observe:{"stateObj.attributes":"stateAttributesChanged"},stateObjChanged:function(oldVal,newVal){var moreInfoContainer=this.$.moreInfoContainer;if(!newVal){if(moreInfoContainer.lastChild){moreInfoContainer.removeChild(moreInfoContainer.lastChild)}return}if(!oldVal||oldVal.moreInfoType!=newVal.moreInfoType){if(moreInfoContainer.lastChild){moreInfoContainer.removeChild(moreInfoContainer.lastChild)}var moreInfo=document.createElement("more-info-"+newVal.moreInfoType);moreInfo.stateObj=newVal;moreInfoContainer.appendChild(moreInfo)}else{moreInfoContainer.lastChild.stateObj=newVal}},stateAttributesChanged:function(oldVal,newVal){if(!newVal)return;this.classNames=Object.keys(newVal).map(function(key){return"has-"+key}).join(" ")}});</script></polymer-element><polymer-element name="more-info-dialog" assetpath="polymer/dialogs/"><template><ha-dialog id="dialog"><div><state-card-content stateobj="{{stateObj}}" style="margin-bottom: 24px;"></state-card-content><state-timeline statehistory="{{stateHistory}}"></state-timeline><more-info-content stateobj="{{stateObj}}"></more-info-content></div></ha-dialog></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;var stateStore=window.hass.stateStore;var stateHistoryStore=window.hass.stateHistoryStore;var stateHistoryActions=window.hass.stateHistoryActions;Polymer(Polymer.mixin({entityId:false,stateObj:null,stateHistory:null,hasHistoryComponent:false,observe:{"stateObj.attributes":"reposition"},attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},componentStoreChanged:function(componentStore){this.hasHistoryComponent=componentStore.isLoaded("history")},stateStoreChanged:function(){var newState=this.entityId?stateStore.get(this.entityId):null;if(newState!==this.stateObj){this.stateObj=newState}},stateHistoryStoreChanged:function(){var newHistory;if(this.hasHistoryComponent&&this.entityId){newHistory=stateHistoryStore.get(this.entityId)}else{newHistory=null}if(newHistory!==this.stateHistory){this.stateHistory=newHistory}},changeEntityId:function(entityId){this.entityId=entityId;this.stateStoreChanged();this.stateHistoryStoreChanged();if(this.hasHistoryComponent&&stateHistoryStore.isStale(entityId)){stateHistoryActions.fetch(entityId)}},reposition:function(oldVal,newVal){if(this.$.dialog.opened){this.job("resizeAfterLayoutChange",function(){this.$.dialog.resizeHandler()}.bind(this),1e3)}},show:function(entityId){this.changeEntityId(entityId);this.job("showDialogAfterRender",function(){this.$.dialog.toggle()}.bind(this))}},storeListenerMixIn));</script></polymer-element><polymer-element name="ha-modals" assetpath="polymer/components/"><template><more-info-dialog id="moreInfoDialog"></more-info-dialog></template><script>var uiActions=window.hass.uiActions,dispatcher=window.hass.dispatcher;Polymer("ha-modals",{ready:function(){dispatcher.register(function(payload){switch(payload.actionType){case uiActions.ACTION_SHOW_DIALOG_MORE_INFO:this.$.moreInfoDialog.show(payload.entityId);break}}.bind(this))}});</script></polymer-element><core-iconset-svg id="notification" iconsize="24"><svg><defs><g id="adb"><path d="M5 16c0 3.87 3.13 7 7 7s7-3.13 7-7v-4H5v4zM16.12 4.37l2.1-2.1-.82-.83-2.3 2.31C14.16 3.28 13.12 3 12 3s-2.16.28-3.09.75L6.6 1.44l-.82.83 2.1 2.1C6.14 5.64 5 7.68 5 10v1h14v-1c0-2.32-1.14-4.36-2.88-5.63zM9 9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></g><g id="bluetooth-audio"><path d="M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2c.97-1.54 1.54-3.36 1.54-5.31-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z"/></g><g id="disc-full"><path d="M20 16h2v-2h-2v2zm0-9v5h2V7h-2zM10 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="dnd-forwardslash"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z"/></g><g id="do-not-disturb"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></g><g id="drive-eta"><path d="M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z"/></g><g id="event-available"><path d="M16.53 11.06L15.47 10l-4.88 4.88-2.12-2.12-1.06 1.06L10.59 17l5.94-5.94zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/></g><g id="event-busy"><path d="M9.31 17l2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/></g><g id="event-note"><path d="M17 10H7v2h10v-2zm2-7h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zm-5-5H7v2h7v-2z"/></g><g id="folder-special"><path d="M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6.42 12L10 15.9 6.42 18l.95-4.07-3.16-2.74 4.16-.36L10 7l1.63 3.84 4.16.36-3.16 2.74.95 4.06z"/></g><g id="mms"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 14l3.5-4.5 2.5 3.01L14.5 8l4.5 6H5z"/></g><g id="more"><path d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="network-locked"><path d="M19.5 10c.17 0 .33.03.5.05V1L1 20h13v-3c0-.89.39-1.68 1-2.23v-.27c0-2.48 2.02-4.5 4.5-4.5zm2.5 6v-1.5c0-1.38-1.12-2.5-2.5-2.5S17 13.12 17 14.5V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z"/></g><g id="phone-bluetooth-speaker"><path d="M14.71 9.5L17 7.21V11h.5l2.85-2.85L18.21 6l2.15-2.15L17.5 1H17v3.79L14.71 2.5l-.71.71L16.79 6 14 8.79l.71.71zM18 2.91l.94.94-.94.94V2.91zm0 4.3l.94.94-.94.94V7.21zm2 8.29c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></g><g id="phone-forwarded"><path d="M18 11l5-5-5-5v3h-4v4h4v3zm2 4.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></g><g id="phone-in-talk"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 12h2c0-4.97-4.03-9-9-9v2c3.87 0 7 3.13 7 7zm-4 0h2c0-2.76-2.24-5-5-5v2c1.66 0 3 1.34 3 3z"/></g><g id="phone-locked"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM20 4v-.5C20 2.12 18.88 1 17.5 1S15 2.12 15 3.5V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4z"/></g><g id="phone-missed"><path d="M6.5 5.5L12 11l7-7-1-1-6 6-4.5-4.5H11V3H5v6h1.5V5.5zm17.21 11.17C20.66 13.78 16.54 12 12 12 7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71s.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73 1.6 0 3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.67 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z"/></g><g id="phone-paused"><path d="M17 3h-2v7h2V3zm3 12.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 3v7h2V3h-2z"/></g><g id="play-download"><path d="M20 6h-4V4l-2-2h-4L8 4v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM10 4h4v2h-4V4zm2 15l-5-5h3v-4h4v4h3l-5 5z"/></g><g id="play-install"><path d="M20 6h-4V4l-2-2h-4L8 4v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM10 4h4v2h-4V4zm.5 13.5L7 14l1.41-1.41 2.09 2.09 5.18-5.18 1.41 1.41-6.59 6.59z"/></g><g id="sd-card"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"/></g><g id="sim-card-alert"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 15h-2v-2h2v2zm0-4h-2V8h2v5z"/></g><g id="sms"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z"/></g><g id="sms-failed"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"/></g><g id="sync"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></g><g id="sync-disabled"><path d="M10 6.35V4.26c-.8.21-1.55.54-2.23.96l1.46 1.46c.25-.12.5-.24.77-.33zm-7.14-.94l2.36 2.36C4.45 8.99 4 10.44 4 12c0 2.21.91 4.2 2.36 5.64L4 20h6v-6l-2.24 2.24C6.68 15.15 6 13.66 6 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.25-.77.34v2.09c.8-.21 1.55-.54 2.23-.96l2.36 2.36 1.27-1.27L4.14 4.14 2.86 5.41zM20 4h-6v6l2.24-2.24C17.32 8.85 18 10.34 18 12c0 1-.25 1.94-.68 2.77l1.46 1.46C19.55 15.01 20 13.56 20 12c0-2.21-.91-4.2-2.36-5.64L20 4z"/></g><g id="sync-problem"><path d="M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24C5.68 15.15 5 13.66 5 12c0-2.61 1.67-4.83 4-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24C18.32 8.85 19 10.34 19 12c0 2.61-1.67 4.83-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z"/></g><g id="system-update"><path d="M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-1-6h-3V8h-2v5H8l4 4 4-4z"/></g><g id="tap-and-play"><path d="M2 16v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0 4v3h3c0-1.66-1.34-3-3-3zm0-8v2c4.97 0 9 4.03 9 9h2c0-6.08-4.92-11-11-11zM17 1.01L7 1c-1.1 0-2 .9-2 2v7.37c.69.16 1.36.37 2 .64V5h10v13h-3.03c.52 1.25.84 2.59.95 4H17c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z"/></g><g id="time-to-leave"><path d="M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z"/></g><g id="vibration"><path d="M0 15h2V9H0v6zm3 2h2V7H3v10zm19-8v6h2V9h-2zm-3 8h2V7h-2v10zM16.5 3h-9C6.67 3 6 3.67 6 4.5v15c0 .83.67 1.5 1.5 1.5h9c.83 0 1.5-.67 1.5-1.5v-15c0-.83-.67-1.5-1.5-1.5zM16 19H8V5h8v14z"/></g><g id="voice-chat"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12l-4-3.2V14H6V6h8v3.2L18 6v8z"/></g><g id="vpn-lock"><path d="M22 4v-.5C22 2.12 20.88 1 19.5 1S17 2.12 17 3.5V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4zm-2.28 8c.04.33.08.66.08 1 0 2.08-.8 3.97-2.1 5.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55 0 1-.45 1-1V8h2c1.1 0 2-.9 2-2V3.46c-.95-.3-1.95-.46-3-.46C5.48 3 1 7.48 1 13s4.48 10 10 10 10-4.48 10-10c0-.34-.02-.67-.05-1h-2.03zM10 20.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L8 16v1c0 1.1.9 2 2 2v1.93z"/></g></defs></svg></core-iconset-svg><polymer-element name="stream-status" assetpath="polymer/components/"><template><style>:host{display:inline-block;height:24px}paper-toggle-button{vertical-align:middle}</style><core-style ref="ha-paper-toggle"></core-style><core-icon icon="warning" hidden?="{{!hasError}}"></core-icon><paper-toggle-button id="toggle" on-change="{{toggleChanged}}" hidden?="{{hasError}}"></paper-toggle-button></template><script>var streamActions=window.hass.streamActions;var authStore=window.hass.authStore;var storeListenerMixIn=window.hass.storeListenerMixIn;Polymer(Polymer.mixin({isStreaming:false,hasError:false,icon:"swap-vert-circle",color:"red",attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},streamStoreChanged:function(streamStore){this.hasError=streamStore.hasError;this.$.toggle.checked=this.isStreaming=streamStore.isStreaming},toggleChanged:function(ev){if(this.isStreaming){streamActions.stop()}else{streamActions.start(authStore.authToken)}}},storeListenerMixIn));</script></polymer-element><polymer-element name="home-assistant-main" assetpath="polymer/layouts/"><template><core-style ref="ha-headers"></core-style><style>.sidenav{background:#fafafa;box-shadow:1px 0 1px rgba(0,0,0,.1);color:#757575;overflow:hidden}core-toolbar{font-weight:400;padding-left:24px}.sidenav-menu{overflow:auto;position:absolute;top:0;left:0;right:0;bottom:0}.sidenav-menu core-icon{margin-right:24px}.sidenav-menu>paper-item{min-height:53px}.text{padding:16px;border-top:1px solid #e0e0e0}.label{font-size:14px}.dev-tools{padding:0 8px}</style><ha-notifications></ha-notifications><ha-modals></ha-modals><core-drawer-panel id="drawer" on-core-responsive-change="{{responsiveChanged}}"><core-header-panel mode="scroll" drawer="" class="sidenav"><core-toolbar> + </div></div></div></template><script>Polymer("more-info-script");</script></polymer-element><polymer-element name="more-info-content" attributes="stateObj dialogOpen" assetpath="polymer/more-infos/"><template><style>:host{display:block}</style><div id="moreInfoContainer" class="{{classNames}}"></div></template><script>Polymer("more-info-content",{classNames:"",dialogOpen:false,observe:{"stateObj.attributes":"stateAttributesChanged"},dialogOpenChanged:function(oldVal,newVal){var moreInfoContainer=this.$.moreInfoContainer;if(moreInfoContainer.lastChild){moreInfoContainer.lastChild.dialogOpen=newVal}},stateObjChanged:function(oldVal,newVal){var moreInfoContainer=this.$.moreInfoContainer;if(!newVal){if(moreInfoContainer.lastChild){moreInfoContainer.removeChild(moreInfoContainer.lastChild)}return}if(!oldVal||oldVal.moreInfoType!=newVal.moreInfoType){if(moreInfoContainer.lastChild){moreInfoContainer.removeChild(moreInfoContainer.lastChild)}var moreInfo=document.createElement("more-info-"+newVal.moreInfoType);moreInfo.stateObj=newVal;moreInfo.dialogOpen=this.dialogOpen;moreInfoContainer.appendChild(moreInfo)}else{moreInfoContainer.lastChild.dialogOpen=this.dialogOpen;moreInfoContainer.lastChild.stateObj=newVal}},stateAttributesChanged:function(oldVal,newVal){if(!newVal)return;this.classNames=Object.keys(newVal).map(function(key){return"has-"+key}).join(" ")}});</script></polymer-element><polymer-element name="more-info-dialog" assetpath="polymer/dialogs/"><template><ha-dialog id="dialog" on-core-overlay-open="{{dialogOpenChanged}}"><div><state-card-content stateobj="{{stateObj}}" style="margin-bottom: 24px;"></state-card-content><state-timeline statehistory="{{stateHistory}}"></state-timeline><more-info-content stateobj="{{stateObj}}" dialogopen="{{dialogOpen}}"></more-info-content></div></ha-dialog></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn;var stateStore=window.hass.stateStore;var stateHistoryStore=window.hass.stateHistoryStore;var stateHistoryActions=window.hass.stateHistoryActions;Polymer(Polymer.mixin({entityId:false,stateObj:null,stateHistory:null,hasHistoryComponent:false,dialogOpen:false,observe:{"stateObj.attributes":"reposition"},created:function(){this.dialogOpenChanged=this.dialogOpenChanged.bind(this)},attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},componentStoreChanged:function(componentStore){this.hasHistoryComponent=componentStore.isLoaded("history")},stateStoreChanged:function(){var newState=this.entityId?stateStore.get(this.entityId):null;if(newState!==this.stateObj){this.stateObj=newState}},stateHistoryStoreChanged:function(){var newHistory;if(this.hasHistoryComponent&&this.entityId){newHistory=stateHistoryStore.get(this.entityId)}else{newHistory=null}if(newHistory!==this.stateHistory){this.stateHistory=newHistory}},dialogOpenChanged:function(ev){if(typeof ev==="object"){this.dialogOpen=ev.detail}},changeEntityId:function(entityId){this.entityId=entityId;this.stateStoreChanged();this.stateHistoryStoreChanged();if(this.hasHistoryComponent&&stateHistoryStore.isStale(entityId)){stateHistoryActions.fetch(entityId)}},reposition:function(oldVal,newVal){if(this.$.dialog.opened){this.job("resizeAfterLayoutChange",function(){this.$.dialog.resizeHandler()}.bind(this),1e3)}},show:function(entityId){this.changeEntityId(entityId);this.job("showDialogAfterRender",function(){this.$.dialog.toggle()}.bind(this))}},storeListenerMixIn));</script></polymer-element><polymer-element name="ha-modals" assetpath="polymer/components/"><template><more-info-dialog id="moreInfoDialog"></more-info-dialog></template><script>var uiActions=window.hass.uiActions,dispatcher=window.hass.dispatcher;Polymer("ha-modals",{ready:function(){dispatcher.register(function(payload){switch(payload.actionType){case uiActions.ACTION_SHOW_DIALOG_MORE_INFO:this.$.moreInfoDialog.show(payload.entityId);break}}.bind(this))}});</script></polymer-element><core-iconset-svg id="notification" iconsize="24"><svg><defs><g id="adb"><path d="M5 16c0 3.87 3.13 7 7 7s7-3.13 7-7v-4H5v4zM16.12 4.37l2.1-2.1-.82-.83-2.3 2.31C14.16 3.28 13.12 3 12 3s-2.16.28-3.09.75L6.6 1.44l-.82.83 2.1 2.1C6.14 5.64 5 7.68 5 10v1h14v-1c0-2.32-1.14-4.36-2.88-5.63zM9 9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></g><g id="bluetooth-audio"><path d="M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2c.97-1.54 1.54-3.36 1.54-5.31-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z"/></g><g id="disc-full"><path d="M20 16h2v-2h-2v2zm0-9v5h2V7h-2zM10 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="dnd-forwardslash"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z"/></g><g id="do-not-disturb"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></g><g id="drive-eta"><path d="M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z"/></g><g id="event-available"><path d="M16.53 11.06L15.47 10l-4.88 4.88-2.12-2.12-1.06 1.06L10.59 17l5.94-5.94zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/></g><g id="event-busy"><path d="M9.31 17l2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/></g><g id="event-note"><path d="M17 10H7v2h10v-2zm2-7h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zm-5-5H7v2h7v-2z"/></g><g id="folder-special"><path d="M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6.42 12L10 15.9 6.42 18l.95-4.07-3.16-2.74 4.16-.36L10 7l1.63 3.84 4.16.36-3.16 2.74.95 4.06z"/></g><g id="mms"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 14l3.5-4.5 2.5 3.01L14.5 8l4.5 6H5z"/></g><g id="more"><path d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="network-locked"><path d="M19.5 10c.17 0 .33.03.5.05V1L1 20h13v-3c0-.89.39-1.68 1-2.23v-.27c0-2.48 2.02-4.5 4.5-4.5zm2.5 6v-1.5c0-1.38-1.12-2.5-2.5-2.5S17 13.12 17 14.5V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z"/></g><g id="phone-bluetooth-speaker"><path d="M14.71 9.5L17 7.21V11h.5l2.85-2.85L18.21 6l2.15-2.15L17.5 1H17v3.79L14.71 2.5l-.71.71L16.79 6 14 8.79l.71.71zM18 2.91l.94.94-.94.94V2.91zm0 4.3l.94.94-.94.94V7.21zm2 8.29c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></g><g id="phone-forwarded"><path d="M18 11l5-5-5-5v3h-4v4h4v3zm2 4.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></g><g id="phone-in-talk"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 12h2c0-4.97-4.03-9-9-9v2c3.87 0 7 3.13 7 7zm-4 0h2c0-2.76-2.24-5-5-5v2c1.66 0 3 1.34 3 3z"/></g><g id="phone-locked"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM20 4v-.5C20 2.12 18.88 1 17.5 1S15 2.12 15 3.5V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4z"/></g><g id="phone-missed"><path d="M6.5 5.5L12 11l7-7-1-1-6 6-4.5-4.5H11V3H5v6h1.5V5.5zm17.21 11.17C20.66 13.78 16.54 12 12 12 7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71s.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73 1.6 0 3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.67 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z"/></g><g id="phone-paused"><path d="M17 3h-2v7h2V3zm3 12.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 3v7h2V3h-2z"/></g><g id="play-download"><path d="M20 6h-4V4l-2-2h-4L8 4v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM10 4h4v2h-4V4zm2 15l-5-5h3v-4h4v4h3l-5 5z"/></g><g id="play-install"><path d="M20 6h-4V4l-2-2h-4L8 4v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM10 4h4v2h-4V4zm.5 13.5L7 14l1.41-1.41 2.09 2.09 5.18-5.18 1.41 1.41-6.59 6.59z"/></g><g id="sd-card"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"/></g><g id="sim-card-alert"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 15h-2v-2h2v2zm0-4h-2V8h2v5z"/></g><g id="sms"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z"/></g><g id="sms-failed"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"/></g><g id="sync"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></g><g id="sync-disabled"><path d="M10 6.35V4.26c-.8.21-1.55.54-2.23.96l1.46 1.46c.25-.12.5-.24.77-.33zm-7.14-.94l2.36 2.36C4.45 8.99 4 10.44 4 12c0 2.21.91 4.2 2.36 5.64L4 20h6v-6l-2.24 2.24C6.68 15.15 6 13.66 6 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.25-.77.34v2.09c.8-.21 1.55-.54 2.23-.96l2.36 2.36 1.27-1.27L4.14 4.14 2.86 5.41zM20 4h-6v6l2.24-2.24C17.32 8.85 18 10.34 18 12c0 1-.25 1.94-.68 2.77l1.46 1.46C19.55 15.01 20 13.56 20 12c0-2.21-.91-4.2-2.36-5.64L20 4z"/></g><g id="sync-problem"><path d="M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24C5.68 15.15 5 13.66 5 12c0-2.61 1.67-4.83 4-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24C18.32 8.85 19 10.34 19 12c0 2.61-1.67 4.83-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z"/></g><g id="system-update"><path d="M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-1-6h-3V8h-2v5H8l4 4 4-4z"/></g><g id="tap-and-play"><path d="M2 16v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0 4v3h3c0-1.66-1.34-3-3-3zm0-8v2c4.97 0 9 4.03 9 9h2c0-6.08-4.92-11-11-11zM17 1.01L7 1c-1.1 0-2 .9-2 2v7.37c.69.16 1.36.37 2 .64V5h10v13h-3.03c.52 1.25.84 2.59.95 4H17c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z"/></g><g id="time-to-leave"><path d="M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z"/></g><g id="vibration"><path d="M0 15h2V9H0v6zm3 2h2V7H3v10zm19-8v6h2V9h-2zm-3 8h2V7h-2v10zM16.5 3h-9C6.67 3 6 3.67 6 4.5v15c0 .83.67 1.5 1.5 1.5h9c.83 0 1.5-.67 1.5-1.5v-15c0-.83-.67-1.5-1.5-1.5zM16 19H8V5h8v14z"/></g><g id="voice-chat"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12l-4-3.2V14H6V6h8v3.2L18 6v8z"/></g><g id="vpn-lock"><path d="M22 4v-.5C22 2.12 20.88 1 19.5 1S17 2.12 17 3.5V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4zm-2.28 8c.04.33.08.66.08 1 0 2.08-.8 3.97-2.1 5.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55 0 1-.45 1-1V8h2c1.1 0 2-.9 2-2V3.46c-.95-.3-1.95-.46-3-.46C5.48 3 1 7.48 1 13s4.48 10 10 10 10-4.48 10-10c0-.34-.02-.67-.05-1h-2.03zM10 20.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L8 16v1c0 1.1.9 2 2 2v1.93z"/></g></defs></svg></core-iconset-svg><polymer-element name="stream-status" assetpath="polymer/components/"><template><style>:host{display:inline-block;height:24px}paper-toggle-button{vertical-align:middle}</style><core-style ref="ha-paper-toggle"></core-style><core-icon icon="warning" hidden?="{{!hasError}}"></core-icon><paper-toggle-button id="toggle" on-change="{{toggleChanged}}" hidden?="{{hasError}}"></paper-toggle-button></template><script>var streamActions=window.hass.streamActions;var authStore=window.hass.authStore;var storeListenerMixIn=window.hass.storeListenerMixIn;Polymer(Polymer.mixin({isStreaming:false,hasError:false,icon:"swap-vert-circle",color:"red",attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},streamStoreChanged:function(streamStore){this.hasError=streamStore.hasError;this.$.toggle.checked=this.isStreaming=streamStore.isStreaming},toggleChanged:function(ev){if(this.isStreaming){streamActions.stop()}else{streamActions.start(authStore.authToken)}}},storeListenerMixIn));</script></polymer-element><polymer-element name="home-assistant-main" assetpath="polymer/layouts/"><template><core-style ref="ha-headers"></core-style><style>.sidenav{background:#fafafa;box-shadow:1px 0 1px rgba(0,0,0,.1);color:#757575;overflow:hidden}core-toolbar{font-weight:400;padding-left:24px}.sidenav-menu{overflow:auto;position:absolute;top:0;left:0;right:0;bottom:0}.sidenav-menu core-icon{margin-right:24px}.sidenav-menu>paper-item{min-height:53px}.text{padding:16px;border-top:1px solid #e0e0e0}.label{font-size:14px}.dev-tools{padding:0 8px}</style><ha-notifications></ha-notifications><ha-modals></ha-modals><core-drawer-panel id="drawer" on-core-responsive-change="{{responsiveChanged}}"><core-header-panel mode="scroll" drawer="" class="sidenav"><core-toolbar> Home Assistant </core-toolbar><core-menu id="menu" class="sidenav-menu" selected="0" excludedlocalnames="div" on-core-select="{{menuSelect}}" layout="" vertical=""><paper-item data-panel="states"><core-icon icon="apps"></core-icon> States @@ -221,8 +248,10 @@ return pickBy("isBefore",args)};moment.max=function(){var args=[].slice.call(arg {{filter | filterName}} </paper-item></template><template if="{{hasHistoryComponent}}"><paper-item data-panel="history"><core-icon icon="assessment"></core-icon> History + </paper-item></template><template if="{{hasLogbookComponent}}"><paper-item data-panel="logbook"><core-icon icon="list"></core-icon> + Logbook </paper-item></template><div flex=""></div><paper-item on-click="{{handleLogOutClick}}"><core-icon icon="exit-to-app"></core-icon> Log Out - </paper-item><div class="text" horizontal="" layout="" center=""><div flex="">Streaming updates</div><stream-status></stream-status></div><div class="text label">Developer Tools</div><div class="dev-tools" layout="" horizontal="" justified=""><paper-icon-button icon="settings-remote" data-panel="call-service" on-click="{{handleDevClick}}"></paper-icon-button><paper-icon-button icon="settings-ethernet" data-panel="set-state" on-click="{{handleDevClick}}"></paper-icon-button><paper-icon-button icon="settings-input-antenna" data-panel="fire-event" on-click="{{handleDevClick}}"></paper-icon-button></div></core-menu></core-header-panel><partial-states hidden?="{{hideStates}}" main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}" filter="{{stateFilter}}"></partial-states><template if="{{selected == 'history'}}"><partial-history main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-history></template><template if="{{selected == 'fire-event'}}"><partial-dev-fire-event main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-dev-fire-event></template><template if="{{selected == 'set-state'}}"><partial-dev-set-state main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-dev-set-state></template><template if="{{selected == 'call-service'}}"><partial-dev-call-service main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-dev-call-service></template></core-drawer-panel></template><script>(function(){var storeListenerMixIn=window.hass.storeListenerMixIn;var authActions=window.hass.authActions;var uiUtil=window.hass.uiUtil;var uiConstants=window.hass.uiConstants;Polymer(Polymer.mixin({selected:"states",stateFilter:null,narrow:false,activeFilters:[],hasHistoryComponent:false,isStreaming:false,hasStreamError:false,hideStates:false,attached:function(){this.togglePanel=this.togglePanel.bind(this);this.listenToStores(true)},detached:function(){this.stopListeningToStores()},stateStoreChanged:function(stateStore){this.activeFilters=stateStore.domains.filter(function(domain){return domain in uiConstants.STATE_FILTERS}).toArray()},componentStoreChanged:function(componentStore){this.hasHistoryComponent=componentStore.isLoaded("history");this.hasScriptComponent=componentStore.isLoaded("script")},streamStoreChanged:function(streamStore){this.isStreaming=streamStore.isStreaming;this.hasStreamError=streamStore.hasError},menuSelect:function(ev,detail,sender){if(detail.isSelected){this.selectPanel(detail.item)}},handleDevClick:function(ev,detail,sender){this.$.menu.selected=-1;this.selectPanel(ev.target)},selectPanel:function(element){var newChoice=element.dataset.panel;if(newChoice!==this.selected){this.togglePanel();this.selected=newChoice}if(this.selected.substr(0,7)==="states_"){this.hideStates=false;this.stateFilter=this.selected.substr(7)}else{this.hideStates=this.selected!=="states";this.stateFilter=null}},responsiveChanged:function(ev,detail,sender){this.narrow=detail.narrow},togglePanel:function(){this.$.drawer.togglePanel()},handleLogOutClick:function(){authActions.logOut()},filterIcon:function(filter){return uiUtil.domainIcon(filter)},filterName:function(filter){return uiConstants.STATE_FILTERS[filter]}},storeListenerMixIn))})();</script></polymer-element></div> + </paper-item><div class="text" horizontal="" layout="" center=""><div flex="">Streaming updates</div><stream-status></stream-status></div><div class="text label">Developer Tools</div><div class="dev-tools" layout="" horizontal="" justified=""><paper-icon-button icon="settings-remote" data-panel="call-service" on-click="{{handleDevClick}}"></paper-icon-button><paper-icon-button icon="settings-ethernet" data-panel="set-state" on-click="{{handleDevClick}}"></paper-icon-button><paper-icon-button icon="settings-input-antenna" data-panel="fire-event" on-click="{{handleDevClick}}"></paper-icon-button></div></core-menu></core-header-panel><partial-states hidden?="{{hideStates}}" main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}" filter="{{stateFilter}}"></partial-states><template if="{{selected == 'history'}}"><partial-history main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-history></template><template if="{{selected == 'logbook'}}"><partial-logbook main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-logbook></template><template if="{{selected == 'fire-event'}}"><partial-dev-fire-event main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-dev-fire-event></template><template if="{{selected == 'set-state'}}"><partial-dev-set-state main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-dev-set-state></template><template if="{{selected == 'call-service'}}"><partial-dev-call-service main="" narrow="{{narrow}}" togglepanel="{{togglePanel}}"></partial-dev-call-service></template></core-drawer-panel></template><script>(function(){var storeListenerMixIn=window.hass.storeListenerMixIn;var authActions=window.hass.authActions;var uiUtil=window.hass.uiUtil;var uiConstants=window.hass.uiConstants;Polymer(Polymer.mixin({selected:"states",stateFilter:null,narrow:false,activeFilters:[],hasHistoryComponent:false,hasLogbookComponent:false,isStreaming:false,hasStreamError:false,hideStates:false,attached:function(){this.togglePanel=this.togglePanel.bind(this);this.listenToStores(true)},detached:function(){this.stopListeningToStores()},stateStoreChanged:function(stateStore){this.activeFilters=stateStore.domains.filter(function(domain){return domain in uiConstants.STATE_FILTERS}).toArray()},componentStoreChanged:function(componentStore){this.hasHistoryComponent=componentStore.isLoaded("history");this.hasLogbookComponent=componentStore.isLoaded("logbook")},streamStoreChanged:function(streamStore){this.isStreaming=streamStore.isStreaming;this.hasStreamError=streamStore.hasError},menuSelect:function(ev,detail,sender){if(detail.isSelected){this.selectPanel(detail.item)}},handleDevClick:function(ev,detail,sender){this.$.menu.selected=-1;this.selectPanel(ev.target)},selectPanel:function(element){var newChoice=element.dataset.panel;if(newChoice!==this.selected){this.togglePanel();this.selected=newChoice}if(this.selected.substr(0,7)==="states_"){this.hideStates=false;this.stateFilter=this.selected.substr(7)}else{this.hideStates=this.selected!=="states";this.stateFilter=null}},responsiveChanged:function(ev,detail,sender){this.narrow=detail.narrow},togglePanel:function(){this.$.drawer.togglePanel()},handleLogOutClick:function(){authActions.logOut()},filterIcon:function(filter){return uiUtil.domainIcon(filter)},filterName:function(filter){return uiConstants.STATE_FILTERS[filter]}},storeListenerMixIn))})();</script></polymer-element></div> <polymer-element name="home-assistant" attributes="auth" assetpath="polymer/"><template><style>:host{font-family:RobotoDraft,'Helvetica Neue',Helvetica,Arial;font-weight:300}</style><home-assistant-api auth="{{auth}}"></home-assistant-api><template if="{{!loaded}}"><login-form></login-form></template><template if="{{loaded}}"><home-assistant-main></home-assistant-main></template></template><script>var storeListenerMixIn=window.hass.storeListenerMixIn,uiActions=window.hass.uiActions,preferenceStore=window.hass.preferenceStore;Polymer(Polymer.mixin({loaded:false,ready:function(){document.getElementById("init").remove();if(this.auth){uiActions.validateAuth(this.auth,false)}else if(preferenceStore.hasAuthToken){uiActions.validateAuth(preferenceStore.authToken,false)}},attached:function(){this.listenToStores(true)},detached:function(){this.stopListeningToStores()},syncStoreChanged:function(syncStore){this.loaded=syncStore.initialLoadDone}},storeListenerMixIn));</script></polymer-element> diff --git a/homeassistant/components/frontend/www_static/polymer/components/display-time.html b/homeassistant/components/frontend/www_static/polymer/components/display-time.html new file mode 100644 index 0000000000000000000000000000000000000000..ff2f0a6dd8f25924cf306ec274be81df3cfdeec2 --- /dev/null +++ b/homeassistant/components/frontend/www_static/polymer/components/display-time.html @@ -0,0 +1,25 @@ +<link rel="import" href="../bower_components/polymer/polymer.html"> + +<link rel="import" href="../resources/moment-js.html"> + +<polymer-element name="display-time" attributes="dateObj"> + <template> + {{ time }} + </template> + <script> + (function() { + var timeFormatOptions = {hour: 'numeric', minute: '2-digit'}; + Polymer({ + time: "", + + dateObjChanged: function(oldVal, newVal) { + if (!newVal) { + this.time = ""; + } + + this.time = newVal.toLocaleTimeString([], timeFormatOptions); + }, + }); + })(); + </script> +</polymer-element> diff --git a/homeassistant/components/frontend/www_static/polymer/components/ha-logbook.html b/homeassistant/components/frontend/www_static/polymer/components/ha-logbook.html new file mode 100644 index 0000000000000000000000000000000000000000..4b6177a6949d4c5d91ce46bf05f34c92aee1e685 --- /dev/null +++ b/homeassistant/components/frontend/www_static/polymer/components/ha-logbook.html @@ -0,0 +1,17 @@ +<link rel="import" href="../bower_components/polymer/polymer.html"> + +<link rel="import" href="../components/logbook-entry.html"> + +<polymer-element name="ha-logbook" attributes="entries" noscript> +<template> + <style> + .logbook { + } + </style> + <div class='logbook'> + <template repeat="{{entries as entry}}"> + <logbook-entry entryObj="{{entry}}"></logbook-entry> + </template> + </div> +</template> +</polymer> diff --git a/homeassistant/components/frontend/www_static/polymer/components/logbook-entry.html b/homeassistant/components/frontend/www_static/polymer/components/logbook-entry.html new file mode 100644 index 0000000000000000000000000000000000000000..6d5bd917fb546c60c021b90dd9fd214d80e263b0 --- /dev/null +++ b/homeassistant/components/frontend/www_static/polymer/components/logbook-entry.html @@ -0,0 +1,61 @@ +<link rel="import" href="../bower_components/polymer/polymer.html"> +<link rel="import" href="../bower_components/core-style/core-style.html"> + +<link rel="import" href="domain-icon.html"> +<link rel="import" href="display-time.html"> +<link rel="import" href="relative-ha-datetime.html"> + +<polymer-element name="logbook-entry" attributes="entryObj"> +<template> + <core-style ref='ha-main'></core-style> + <style> + .logbook-entry { + line-height: 2em; + } + + .time { + width: 55px; + font-size: .8em; + } + + .icon { + margin: 0 8px 0 16px; + } + + .name { + text-transform: capitalize; + } + + .message { + + } + </style> + + <div horizontal layout class='logbook-entry'> + <display-time dateObj="{{entryObj.when}}" class='time secondary-text-color'></display-time> + <domain-icon domain="{{entryObj.domain}}" class='icon primary-text-color'></domain-icon> + <div class='message primary-text-color' flex> + <template if="{{!entryObj.entityId}}"> + <span class='name'>{{entryObj.name}}</span> + </template> + <template if="{{entryObj.entityId}}"> + <a href='#' on-click="{{entityClicked}}" class='name'>{{entryObj.name}}</a> + </template> + {{entryObj.message}} + </div> + </div> +</template> +<script> + (function() { + var uiActions = window.hass.uiActions; + + Polymer({ + entityClicked: function(ev) { + ev.preventDefault(); + uiActions.showMoreInfoDialog(this.entryObj.entityId); + } + }); + + })(); +</script> +</polymer-element> diff --git a/homeassistant/components/frontend/www_static/polymer/dialogs/more-info-dialog.html b/homeassistant/components/frontend/www_static/polymer/dialogs/more-info-dialog.html index 05a183bfd1bae4d86826b87bcd706c844faa9b0f..98c88b7db35508acc6c6df46c3e35dfbd5501f44 100644 --- a/homeassistant/components/frontend/www_static/polymer/dialogs/more-info-dialog.html +++ b/homeassistant/components/frontend/www_static/polymer/dialogs/more-info-dialog.html @@ -7,12 +7,14 @@ <polymer-element name="more-info-dialog"> <template> - <ha-dialog id="dialog"> + <ha-dialog id="dialog" on-core-overlay-open="{{dialogOpenChanged}}"> <div> <state-card-content stateObj="{{stateObj}}" style='margin-bottom: 24px;'> </state-card-content> <state-timeline stateHistory="{{stateHistory}}"></state-timeline> - <more-info-content stateObj="{{stateObj}}"></more-info-content> + <more-info-content + stateObj="{{stateObj}}" + dialogOpen="{{dialogOpen}}"></more-info-content> </div> </ha-dialog> </template> @@ -27,11 +29,16 @@ Polymer(Polymer.mixin({ stateObj: null, stateHistory: null, hasHistoryComponent: false, + dialogOpen: false, observe: { 'stateObj.attributes': 'reposition' }, + created: function() { + this.dialogOpenChanged = this.dialogOpenChanged.bind(this); + }, + attached: function() { this.listenToStores(true); }, @@ -66,6 +73,13 @@ Polymer(Polymer.mixin({ } }, + dialogOpenChanged: function(ev) { + // we get CustomEvent, undefined and true/false from polymer… + if (typeof ev === 'object') { + this.dialogOpen = ev.detail; + } + }, + changeEntityId: function(entityId) { this.entityId = entityId; diff --git a/homeassistant/components/frontend/www_static/polymer/home-assistant-js b/homeassistant/components/frontend/www_static/polymer/home-assistant-js index e048bf6ece91983b9f03aafeb414ae5c535288a2..282004e3e27134a3de1b9c0e6c264ce811f3e510 160000 --- a/homeassistant/components/frontend/www_static/polymer/home-assistant-js +++ b/homeassistant/components/frontend/www_static/polymer/home-assistant-js @@ -1 +1 @@ -Subproject commit e048bf6ece91983b9f03aafeb414ae5c535288a2 +Subproject commit 282004e3e27134a3de1b9c0e6c264ce811f3e510 diff --git a/homeassistant/components/frontend/www_static/polymer/layouts/home-assistant-main.html b/homeassistant/components/frontend/www_static/polymer/layouts/home-assistant-main.html index ade9c9d166bf6b5b604bf1b07c04d94c4752d747..cee51c78998ac0d894541480ebb20d4c3671062d 100644 --- a/homeassistant/components/frontend/www_static/polymer/layouts/home-assistant-main.html +++ b/homeassistant/components/frontend/www_static/polymer/layouts/home-assistant-main.html @@ -10,6 +10,7 @@ <link rel="import" href="../layouts/partial-states.html"> <link rel="import" href="../layouts/partial-history.html"> +<link rel="import" href="../layouts/partial-logbook.html"> <link rel="import" href="../layouts/partial-dev-fire-event.html"> <link rel="import" href="../layouts/partial-dev-call-service.html"> <link rel="import" href="../layouts/partial-dev-set-state.html"> @@ -96,6 +97,13 @@ </paper-item> </template> + <template if="{{hasLogbookComponent}}"> + <paper-item data-panel="logbook"> + <core-icon icon="list"></core-icon> + Logbook + </paper-item> + </template> + <div flex></div> <paper-item on-click="{{handleLogOutClick}}"> @@ -136,6 +144,9 @@ <template if="{{selected == 'history'}}"> <partial-history main narrow="{{narrow}}" togglePanel="{{togglePanel}}"></partial-history> </template> + <template if="{{selected == 'logbook'}}"> + <partial-logbook main narrow="{{narrow}}" togglePanel="{{togglePanel}}"></partial-logbook> + </template> <template if="{{selected == 'fire-event'}}"> <partial-dev-fire-event main narrow="{{narrow}}" togglePanel="{{togglePanel}}"></partial-dev-fire-event> </template> @@ -161,6 +172,7 @@ Polymer(Polymer.mixin({ narrow: false, activeFilters: [], hasHistoryComponent: false, + hasLogbookComponent: false, isStreaming: false, hasStreamError: false, @@ -185,7 +197,7 @@ Polymer(Polymer.mixin({ componentStoreChanged: function(componentStore) { this.hasHistoryComponent = componentStore.isLoaded('history'); - this.hasScriptComponent = componentStore.isLoaded('script'); + this.hasLogbookComponent = componentStore.isLoaded('logbook'); }, streamStoreChanged: function(streamStore) { diff --git a/homeassistant/components/frontend/www_static/polymer/layouts/partial-logbook.html b/homeassistant/components/frontend/www_static/polymer/layouts/partial-logbook.html new file mode 100644 index 0000000000000000000000000000000000000000..faa7f93fea163c2e5245f7c4860e56c5d06849a9 --- /dev/null +++ b/homeassistant/components/frontend/www_static/polymer/layouts/partial-logbook.html @@ -0,0 +1,56 @@ +<link rel="import" href="../bower_components/polymer/polymer.html"> + +<link rel="import" href="./partial-base.html"> + +<link rel="import" href="../components/ha-logbook.html"> + +<polymer-element name="partial-logbook" attributes="narrow togglePanel"> +<template> + <style> + .content { + background-color: white; + padding: 8px; + } + </style> + <partial-base narrow="{{narrow}}" togglePanel="{{togglePanel}}"> + <span header-title>Logbook</span> + + <span header-buttons> + <paper-icon-button icon="refresh" + on-click="{{handleRefreshClick}}"></paper-icon-button> + </span> + + <div flex class="{{ {content: true, narrow: narrow, wide: !narrow} | tokenList }}"> + <ha-logbook entries="{{entries}}"></ha-logbook> + </div> + </partial-base> +</template> +<script> + var storeListenerMixIn = window.hass.storeListenerMixIn; + var logbookActions = window.hass.logbookActions; + + Polymer(Polymer.mixin({ + entries: null, + + attached: function() { + this.listenToStores(true); + }, + + detached: function() { + this.stopListeningToStores(); + }, + + logbookStoreChanged: function(logbookStore) { + if (logbookStore.isStale()) { + logbookActions.fetch(); + } + + this.entries = logbookStore.all.toArray(); + }, + + handleRefreshClick: function() { + logbookActions.fetch(); + }, + }, storeListenerMixIn)); +</script> +</polymer> diff --git a/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-content.html b/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-content.html index a06dd06c93ffd0f81b42114b0c957ce5c48b3019..b80a016686b87b326f7a4c6dc49920811934644d 100644 --- a/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-content.html +++ b/homeassistant/components/frontend/www_static/polymer/more-infos/more-info-content.html @@ -8,7 +8,7 @@ <link rel="import" href="more-info-thermostat.html"> <link rel="import" href="more-info-script.html"> -<polymer-element name="more-info-content" attributes="stateObj"> +<polymer-element name="more-info-content" attributes="stateObj dialogOpen"> <template> <style> :host { @@ -20,11 +20,20 @@ <script> Polymer({ classNames: '', + dialogOpen: false, observe: { 'stateObj.attributes': 'stateAttributesChanged', }, + dialogOpenChanged: function(oldVal, newVal) { + var moreInfoContainer = this.$.moreInfoContainer; + + if (moreInfoContainer.lastChild) { + moreInfoContainer.lastChild.dialogOpen = newVal; + } + }, + stateObjChanged: function(oldVal, newVal) { var moreInfoContainer = this.$.moreInfoContainer; @@ -42,10 +51,12 @@ Polymer({ var moreInfo = document.createElement("more-info-" + newVal.moreInfoType); moreInfo.stateObj = newVal; + moreInfo.dialogOpen = this.dialogOpen; moreInfoContainer.appendChild(moreInfo); } else { + moreInfoContainer.lastChild.dialogOpen = this.dialogOpen; moreInfoContainer.lastChild.stateObj = newVal; } diff --git a/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-icons.html b/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-icons.html index 2d8b6d6e5364b57ac881ed238d0030ae175ae4f0..0567c7a53008c906da5e240373f975f1fecdae74 100644 --- a/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-icons.html +++ b/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-icons.html @@ -51,7 +51,7 @@ window.hass.uiUtil.domainIcon = function(domain, state) { case "media_player": var icon = "hardware:cast"; - if (state !== "idle") { + if (state && state !== "idle") { icon += "-connected"; } diff --git a/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-style.html b/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-style.html index 1704901529486ba53ae2d9682da876daad5d8d52..cb0dbe8e4144535217aa5a491671caacf7e9d968 100644 --- a/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-style.html +++ b/homeassistant/components/frontend/www_static/polymer/resources/home-assistant-style.html @@ -1,5 +1,30 @@ <link rel="import" href="../bower_components/core-style/core-style.html"> +<core-style id='ha-main'> +/* Palette generated by Material Palette - materialpalette.com/light-blue/orange */ + +.dark-primary-color { background: #0288D1; } +.default-primary-color { background: #03A9F4; } +.light-primary-color { background: #B3E5FC; } +.text-primary-color { color: #FFFFFF; } +.accent-color { background: #FF9800; } +.primary-text-color { color: #212121; } +.secondary-text-color { color: #727272; } +.divider-color { border-color: #B6B6B6; } + +/* extra */ +.accent-text-color { color: #FF9800; } + +body { + color: #212121; +} + +a { + color: #FF9800; + text-decoration: none; +} +</core-style> + <core-style id='ha-animations'> @-webkit-keyframes ha-spin { 0% { diff --git a/homeassistant/components/history.py b/homeassistant/components/history.py index 10c4fdb41f669210b13130650a89918cfbc7352e..c547190b91af033e5cd7cb6267633dc5004ff56f 100644 --- a/homeassistant/components/history.py +++ b/homeassistant/components/history.py @@ -67,6 +67,10 @@ def get_states(point_in_time, entity_ids=None, run=None): if run is None: run = recorder.run_information(point_in_time) + # History did not run before point_in_time + if run is None: + return [] + where = run.where_after_start_run + "AND created < ? " where_data = [point_in_time] diff --git a/homeassistant/components/logbook.py b/homeassistant/components/logbook.py new file mode 100644 index 0000000000000000000000000000000000000000..a8299fbd6ed977e41615ec39cd1fe4b0c3341683 --- /dev/null +++ b/homeassistant/components/logbook.py @@ -0,0 +1,185 @@ +""" +homeassistant.components.logbook +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Parses events and generates a human log +""" +from datetime import datetime +from itertools import groupby + +from homeassistant import State, DOMAIN as HA_DOMAIN +from homeassistant.const import ( + EVENT_STATE_CHANGED, STATE_HOME, STATE_ON, STATE_OFF, + EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP) +import homeassistant.util as util +import homeassistant.components.recorder as recorder +import homeassistant.components.sun as sun + +DOMAIN = "logbook" +DEPENDENCIES = ['recorder', 'http'] + +URL_LOGBOOK = '/api/logbook' + +QUERY_EVENTS_AFTER = "SELECT * FROM events WHERE time_fired > ?" +QUERY_EVENTS_BETWEEN = """ + SELECT * FROM events WHERE time_fired > ? AND time_fired < ? + ORDER BY time_fired +""" + +GROUP_BY_MINUTES = 15 + + +def setup(hass, config): + """ Listens for download events to download files. """ + hass.http.register_path('GET', URL_LOGBOOK, _handle_get_logbook) + + return True + + +def _handle_get_logbook(handler, path_match, data): + """ Return logbook entries. """ + start_today = datetime.now().date() + + handler.write_json(humanify( + recorder.query_events(QUERY_EVENTS_AFTER, (start_today,)))) + + +class Entry(object): + """ A human readable version of the log. """ + + # pylint: disable=too-many-arguments, too-few-public-methods + + def __init__(self, when=None, name=None, message=None, domain=None, + entity_id=None): + self.when = when + self.name = name + self.message = message + self.domain = domain + self.entity_id = entity_id + + def as_dict(self): + """ Convert Entry to a dict to be used within JSON. """ + return { + 'when': util.datetime_to_str(self.when), + 'name': self.name, + 'message': self.message, + 'domain': self.domain, + 'entity_id': self.entity_id, + } + + +def humanify(events): + """ + Generator that converts a list of events into Entry objects. + + Will try to group events if possible: + - if 2+ sensor updates in GROUP_BY_MINUTES, show last + - if home assistant stop and start happen in same minute call it restarted + """ + # pylint: disable=too-many-branches + + # Group events in batches of GROUP_BY_MINUTES + for _, g_events in groupby( + events, + lambda event: event.time_fired.minute // GROUP_BY_MINUTES): + + events_batch = list(g_events) + + # Keep track of last sensor states + last_sensor_event = {} + + # group HA start/stop events + # Maps minute of event to 1: stop, 2: stop + start + start_stop_events = {} + + # Process events + for event in events_batch: + if event.event_type == EVENT_STATE_CHANGED: + entity_id = event.data['entity_id'] + + if entity_id.startswith('sensor.'): + last_sensor_event[entity_id] = event + + elif event.event_type == EVENT_HOMEASSISTANT_STOP: + if event.time_fired.minute in start_stop_events: + continue + + start_stop_events[event.time_fired.minute] = 1 + + elif event.event_type == EVENT_HOMEASSISTANT_START: + if event.time_fired.minute not in start_stop_events: + continue + + start_stop_events[event.time_fired.minute] = 2 + + # Yield entries + for event in events_batch: + if event.event_type == EVENT_STATE_CHANGED: + + # Do not report on new entities + if 'old_state' not in event.data: + continue + + to_state = State.from_dict(event.data.get('new_state')) + + # if last_changed == last_updated only attributes have changed + # we do not report on that yet. + if not to_state or \ + to_state.last_changed != to_state.last_updated: + continue + + domain = to_state.domain + + # Skip all but the last sensor state + if domain == 'sensor' and \ + event != last_sensor_event[to_state.entity_id]: + continue + + yield Entry( + event.time_fired, + name=to_state.name, + message=_entry_message_from_state(domain, to_state), + domain=domain, + entity_id=to_state.entity_id) + + elif event.event_type == EVENT_HOMEASSISTANT_START: + if start_stop_events.get(event.time_fired.minute) == 2: + continue + + yield Entry( + event.time_fired, "Home Assistant", "started", + domain=HA_DOMAIN) + + elif event.event_type == EVENT_HOMEASSISTANT_STOP: + if start_stop_events.get(event.time_fired.minute) == 2: + action = "restarted" + else: + action = "stopped" + + yield Entry( + event.time_fired, "Home Assistant", action, + domain=HA_DOMAIN) + + +def _entry_message_from_state(domain, state): + """ Convert a state to a message for the logbook. """ + # We pass domain in so we don't have to split entity_id again + + if domain == 'device_tracker': + return '{} home'.format( + 'arrived' if state.state == STATE_HOME else 'left') + + elif domain == 'sun': + if state.state == sun.STATE_ABOVE_HORIZON: + return 'has risen' + else: + return 'has set' + + elif state.state == STATE_ON: + # Future: combine groups and its entity entries ? + return "turned on" + + elif state.state == STATE_OFF: + return "turned off" + + return "changed to {}".format(state.state) diff --git a/homeassistant/components/recorder.py b/homeassistant/components/recorder.py index 84d4c1ecccd0393f677096500c8843698e28a27f..6856ce4d7b563d75bfa0331cae2b8b990e4be063 100644 --- a/homeassistant/components/recorder.py +++ b/homeassistant/components/recorder.py @@ -9,7 +9,7 @@ import logging import threading import queue import sqlite3 -from datetime import datetime +from datetime import datetime, date import time import json import atexit @@ -60,7 +60,8 @@ def row_to_state(row): """ Convert a databsae row to a state. """ try: return State( - row[1], row[2], json.loads(row[3]), datetime.fromtimestamp(row[4])) + row[1], row[2], json.loads(row[3]), datetime.fromtimestamp(row[4]), + datetime.fromtimestamp(row[5])) except ValueError: # When json.loads fails _LOGGER.exception("Error converting row to state: %s", row) @@ -70,9 +71,10 @@ def row_to_state(row): def row_to_event(row): """ Convert a databse row to an event. """ try: - return Event(row[1], json.loads(row[2]), EventOrigin[row[3].lower()]) + return Event(row[1], json.loads(row[2]), EventOrigin[row[3].lower()], + datetime.fromtimestamp(row[5])) except ValueError: - # When json.oads fails + # When json.loads fails _LOGGER.exception("Error converting row to event: %s", row) return None @@ -86,7 +88,7 @@ def run_information(point_in_time=None): return RecorderRun() run = _INSTANCE.query( - "SELECT * FROM recorder_runs WHERE start>? AND END IS NULL OR END<?", + "SELECT * FROM recorder_runs WHERE start<? AND END>?", (point_in_time, point_in_time), return_value=RETURN_ONE_ROW) return RecorderRun(run) if run else None @@ -225,13 +227,13 @@ class Recorder(threading.Thread): """ Save an event to the database. """ info = ( event.event_type, json.dumps(event.data, cls=JSONEncoder), - str(event.origin), datetime.now() + str(event.origin), datetime.now(), event.time_fired, ) self.query( "INSERT INTO events (" - "event_type, event_data, origin, created" - ") VALUES (?, ?, ?, ?)", info) + "event_type, event_data, origin, created, time_fired" + ") VALUES (?, ?, ?, ?, ?)", info) def query(self, sql_query, data=None, return_value=None): """ Query the database. """ @@ -271,6 +273,7 @@ class Recorder(threading.Thread): atexit.register(self._close_connection) # Have datetime objects be saved as integers + sqlite3.register_adapter(date, _adapt_datetime) sqlite3.register_adapter(datetime, _adapt_datetime) # Validate we are on the correct schema or that we have to migrate @@ -328,6 +331,16 @@ class Recorder(threading.Thread): save_migration(1) + if migration_id < 2: + cur.execute(""" + ALTER TABLE events + ADD COLUMN time_fired integer + """) + + cur.execute('UPDATE events SET time_fired=created') + + save_migration(2) + def _close_connection(self): """ Close connection to the database. """ _LOGGER.info("Closing database") diff --git a/homeassistant/components/sensor/vera.py b/homeassistant/components/sensor/vera.py index daa2acf50040169775ebc0f82e690366afbd68cb..4f6126e699116a02fd7a61c035ddffc78475d64a 100644 --- a/homeassistant/components/sensor/vera.py +++ b/homeassistant/components/sensor/vera.py @@ -52,7 +52,8 @@ from requests.exceptions import RequestException from homeassistant.helpers.entity import Entity from homeassistant.const import ( - ATTR_BATTERY_LEVEL, ATTR_TRIPPED, ATTR_ARMED, ATTR_LAST_TRIP_TIME) + ATTR_BATTERY_LEVEL, ATTR_TRIPPED, ATTR_ARMED, ATTR_LAST_TRIP_TIME, + TEMP_CELCIUS, TEMP_FAHRENHEIT) # pylint: disable=no-name-in-module, import-error import homeassistant.external.vera.vera as veraApi @@ -110,6 +111,7 @@ class VeraSensor(Entity): else: self._name = self.vera_device.name self.current_value = '' + self._temperature_units = None def __str__(self): return "%s %s %s" % (self.name, self.vera_device.deviceId, self.state) @@ -123,6 +125,11 @@ class VeraSensor(Entity): """ Get the mame of the sensor. """ return self._name + @property + def unit_of_measurement(self): + """ Unit of measurement of this entity, if any. """ + return self._temperature_units + @property def state_attributes(self): attr = super().state_attributes @@ -151,7 +158,20 @@ class VeraSensor(Entity): self.vera_device.refresh_value('CurrentTemperature') current_temp = self.vera_device.get_value('CurrentTemperature') vera_temp_units = self.vera_device.veraController.temperature_units - self.current_value = current_temp + '°' + vera_temp_units + + if vera_temp_units == 'F': + self._temperature_units = TEMP_FAHRENHEIT + else: + self._temperature_units = TEMP_CELCIUS + + if self.hass: + temp = self.hass.config.temperature( + current_temp, + self._temperature_units) + + current_temp, self._temperature_units = temp + + self.current_value = current_temp elif self.vera_device.category == "Light Sensor": self.vera_device.refresh_value('CurrentLevel') self.current_value = self.vera_device.get_value('CurrentLevel') diff --git a/homeassistant/remote.py b/homeassistant/remote.py index 19aa86f67b92cac2ed38ad84072bfa9571ac232e..bd576f50e48467f5edd918a85845d50240e074c2 100644 --- a/homeassistant/remote.py +++ b/homeassistant/remote.py @@ -262,7 +262,7 @@ class JSONEncoder(json.JSONEncoder): def default(self, obj): """ Converts Home Assistant objects and hands other objects to the original method. """ - if isinstance(obj, (ha.State, ha.Event)): + if hasattr(obj, 'as_dict'): return obj.as_dict() try: