From a5808c086204f9fceb1b53c30afa0b53cb23027f Mon Sep 17 00:00:00 2001 From: Benoit Lavenier <benoit.lavenier@e-is.pro> Date: Wed, 18 Dec 2019 17:39:59 +0100 Subject: [PATCH] [fix] Add all JS lib dependencies into bower.json [fix] Clean CSS to use libs repo directly --- bower.json | 48 +- package.json | 10 +- scss/ionic.app.scss | 8 +- scss/leaflet.app.scss | 14 +- scss/leaflet/README.md | 10 - scss/leaflet/_leaflet.awesome-markers.scss | 124 - scss/leaflet/_leaflet.easy-button.scss | 56 - scss/leaflet/_leaflet.loading.scss | 26 - .../_leaflet.markercluster.default.scss | 60 - scss/leaflet/_leaflet.markercluster.scss | 14 - scss/leaflet/_leaflet.scss | 479 - scss/leaflet/_leaflet.search.scss | 134 - www/css/angular-image-crop.css | 69 - www/css/ionic.app.min.css | 22 +- www/index.html | 57 +- www/js/app.js | 2 +- www/js/vendor/ion-digit-keyboard.min.js | 1 - www/js/vendor/leaflet-src.js | 9168 ----------------- www/js/vendor/leaflet.awesome-markers.min.js | 7 - www/js/vendor/leaflet.easy-button.js | 379 - .../leaflet.featuregroup.subgroup-src.js | 216 - www/js/vendor/leaflet.js | 9 - www/js/vendor/leaflet.loading.js | 351 - www/js/vendor/leaflet.markercluster.js | 6 - www/js/vendor/leaflet.search.min.js | 17 - www/lib/ionic/js/angular/angular-api.js | 258 - www/lib/ionic/js/angular/angular-cache.js | 1111 -- www/lib/ionic/js/angular/angular-chart.js | 400 - .../js/angular/angular-file-saver.bundle.js | 602 -- .../ionic/js/angular/angular-fullscreen.js | 111 - www/lib/ionic/js/angular/angular-idle.js | 534 - .../ionic/js/angular/angular-image-crop.js | 1344 --- www/lib/ionic/js/angular/angular-sanitize.js | 717 -- .../ionic/js/angular/angular-screenmatch.js | 405 - .../js/angular/angular-simple-logger.light.js | 147 - 35 files changed, 101 insertions(+), 16815 deletions(-) delete mode 100644 scss/leaflet/README.md delete mode 100644 scss/leaflet/_leaflet.awesome-markers.scss delete mode 100644 scss/leaflet/_leaflet.easy-button.scss delete mode 100644 scss/leaflet/_leaflet.loading.scss delete mode 100644 scss/leaflet/_leaflet.markercluster.default.scss delete mode 100644 scss/leaflet/_leaflet.markercluster.scss delete mode 100644 scss/leaflet/_leaflet.scss delete mode 100644 scss/leaflet/_leaflet.search.scss delete mode 100644 www/css/angular-image-crop.css delete mode 100644 www/js/vendor/ion-digit-keyboard.min.js delete mode 100644 www/js/vendor/leaflet-src.js delete mode 100644 www/js/vendor/leaflet.awesome-markers.min.js delete mode 100644 www/js/vendor/leaflet.easy-button.js delete mode 100644 www/js/vendor/leaflet.featuregroup.subgroup-src.js delete mode 100644 www/js/vendor/leaflet.js delete mode 100644 www/js/vendor/leaflet.loading.js delete mode 100644 www/js/vendor/leaflet.markercluster.js delete mode 100644 www/js/vendor/leaflet.search.min.js delete mode 100644 www/lib/ionic/js/angular/angular-api.js delete mode 100644 www/lib/ionic/js/angular/angular-cache.js delete mode 100644 www/lib/ionic/js/angular/angular-chart.js delete mode 100644 www/lib/ionic/js/angular/angular-file-saver.bundle.js delete mode 100644 www/lib/ionic/js/angular/angular-fullscreen.js delete mode 100644 www/lib/ionic/js/angular/angular-idle.js delete mode 100644 www/lib/ionic/js/angular/angular-image-crop.js delete mode 100644 www/lib/ionic/js/angular/angular-sanitize.js delete mode 100644 www/lib/ionic/js/angular/angular-screenmatch.js delete mode 100644 www/lib/ionic/js/angular/angular-simple-logger.light.js diff --git a/bower.json b/bower.json index db2ac07ec..d160224ae 100644 --- a/bower.json +++ b/bower.json @@ -6,30 +6,46 @@ "ionic-material": "0.4.2" }, "dependencies": { - "angular-messages": "1.3.13", + "angular-messages": "~1.3.13", "robotodraft": "1.1.0", + "angular": "^1.5.11", "angular-moment": "^0.10.3", - "angular-animate": "1.5.3", - "angular-sanitize": "1.5.3", - "angular": "1.5.3", - "angular-bind-notifier": "^1.1.7", + "angular-animate": "^1.5.11", + "angular-sanitize": "^1.5.11", + "angular-resource": "1.5.11", + "angular-bind-notifier": "^1.1.11", "angular-image-crop": "^2.0.0", - "ng-idle": "^1.3.2", + "angular-ui-router": "^0.2.18", + "angular-cache": "^4.6.0", + "ng-idle": "angular-idle#^1.3.2", "chart.js": "chartjs#^2.6.0", - "Leaflet.awesome-markers": "^2.0.2", - "leaflet-search": "^2.7.2", + "Leaflet.awesome-markers": "leaflet.awesome-markers#2.0.2", + "leaflet-search": "2.7.2", "angular-leaflet-directive": "angular-leaflet#^0.10.0", - "Leaflet.EasyButton": "~1.3.2", + "Leaflet.EasyButton": "^2.4.0", "leaflet.loading": "Leaflet.loading#^0.1.24", "ui-leaflet": "^2.0.0", - "leaflet.markercluster": "0.5", - "Leaflet.FeatureGroup.SubGroup": "0.1.2", - "ion-digit-keyboard": "skol-pro/ion-digit-keyboard" + "leaflet.markercluster": "Leaflet.markercluster#^1.4.1", + "Leaflet.FeatureGroup.SubGroup": "^1.0.3", + "ion-digit-keyboard": "skol-pro/ion-digit-keyboard#973b90c2fc", + "angular-api": "E-IS/angular-api#0.3.0", + "angular-screenmatch": "^1.0.1", + "angular-file-saver": "^1.1.3", + "angular-simple-logger": "^0.1.7", + "angular-chart.js": "jtblin/angular-chart#1.1.1", + "angular-fullscreen": "E-IS/angular-fullscreen#1.0.2", + "leaflet": "0.7.7" }, "resolutions": { - "angular": "1.5.3", - "ionic": "1.3.5", - "angular-animate": "1.5.3", - "angular-sanitize": "1.5.3" + "angular": "1.5.11", + "angular-animate": "1.5.11", + "angular-sanitize": "1.5.11", + "angular-ui-router": "0.2.18", + "angular-messages": "1.5.11", + "angular-api": "0.3.0", + "Leaflet.EasyButton": "~1.3.2", + "leaflet": "0.7.7", + "leaflet.markercluster": "0.5", + "Leaflet.FeatureGroup.SubGroup": "0.1.2" } } diff --git a/package.json b/package.json index ef8cfc993..5d40cb944 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "url": "git@git.duniter.org:clients/cesium/cesium.git" }, "scripts": { - "postinstall": "bower install --allow-root && rm hooks/minify-conf.json hooks/uglify-config.json hooks/after_prepare/ionic-minify.js hooks/after_prepare/uglify.js", + "postinstall": "bower install --allow-root && rm -f hooks/minify-conf.json hooks/uglify-config.json hooks/after_prepare/ionic-minify.js hooks/after_prepare/uglify.js", "install-platforms": "ionic state restore", "start": "ionic serve", "docker:build": "sudo docker build . -t cesium/release", @@ -69,7 +69,7 @@ "gulp-base64": "^0.1.3", "gulp-bump": "^2.1.0", "gulp-clean": "^0.3.2", - "gulp-clean-css": "^2.0.10", + "gulp-clean-css": "^3.7.0", "gulp-concat": "^2.2.0", "gulp-concat-css": "^2.3.0", "gulp-css-base64": "^1.3.4", @@ -88,7 +88,7 @@ "gulp-replace": "^0.5.4", "gulp-rev": "^7.0.0", "gulp-rev-replace": "^0.4.3", - "gulp-sass": "^2.2.0", + "gulp-sass": "^3.1.0", "gulp-sourcemaps": "^1.6.0", "gulp-uglify": "^2.0.0", "gulp-useref": "^3.1.0", @@ -98,7 +98,7 @@ "ionic-minify": "^2.0.8", "jshint": "^2.9.2", "mv": "^2.1.1", - "node-sass": "^3.3.3", + "node-sass": "^3.13.1", "playup": "^1.0.2", "shelljs": "^0.3.0", "yargs": "^4.3.1" @@ -170,4 +170,4 @@ "osx" ] } -} \ No newline at end of file +} diff --git a/scss/ionic.app.scss b/scss/ionic.app.scss index 25430b49c..8f7eeec2b 100644 --- a/scss/ionic.app.scss +++ b/scss/ionic.app.scss @@ -915,11 +915,11 @@ body { } .refresher-positive-900-bg { - --refresher-background-color: $positive-900-bg; + --refresher-background-color: #{$positive-900-bg}; } .refresher-dark-100-bg { - --refresher-background-color: $dark-100-bg; + --refresher-background-color: #{$dark-100-bg}; } .platform-android { @@ -1152,11 +1152,11 @@ body { --refresher-bg-height: 200px; // Default wallet color - --refresher-background-color: $dark-100-bg; + --refresher-background-color: #{$dark-100-bg}; // if member wallet, change wallet color .member { - --refresher-background-color: $positive-900-bg; + --refresher-background-color: #{$positive-900-bg}; } .hero { diff --git a/scss/leaflet.app.scss b/scss/leaflet.app.scss index 7cc891cf1..bb6c4f197 100644 --- a/scss/leaflet.app.scss +++ b/scss/leaflet.app.scss @@ -1,8 +1,8 @@ @charset "UTF-8"; -@import "leaflet/leaflet"; -@import "leaflet/leaflet.search"; -@import "leaflet/leaflet.easy-button"; -@import "leaflet/leaflet.loading"; -@import "leaflet/leaflet.awesome-markers"; -@import "leaflet/leaflet.markercluster"; -@import "leaflet/leaflet.markercluster.default"; +@import "www/lib/leaflet/dist/leaflet"; +@import "www/lib/leaflet-search/dist/leaflet-search.src"; +@import "www/lib/Leaflet.EasyButton/src/easy-button"; +@import "www/lib/leaflet.loading/src/Control.Loading"; +@import "www/lib/Leaflet.awesome-markers/dist/leaflet.awesome-markers"; +@import "www/lib/leaflet.markercluster/dist/MarkerCluster"; +@import "www/lib/leaflet.markercluster/dist/MarkerCluster.Default"; diff --git a/scss/leaflet/README.md b/scss/leaflet/README.md deleted file mode 100644 index ac5cd7c78..000000000 --- a/scss/leaflet/README.md +++ /dev/null @@ -1,10 +0,0 @@ -This SCCS config has been done by hand, from original leaflet CSS files, and CSS of plugins used in Cesium. - -Hox to update this config: - - Execute 'bower install' to get dependencies (into www/lib) - - Search leaflet lib (in 'www/lib') - - Copy all source CSS file into current directory - - Rename CSS files into '_<basename>.scss' - - Copy all images resources into current 'images' directory - -make sure to update the file 'leaflet.app.scss' (e.g. when adding some Leaflet plugins) diff --git a/scss/leaflet/_leaflet.awesome-markers.scss b/scss/leaflet/_leaflet.awesome-markers.scss deleted file mode 100644 index 588a99c85..000000000 --- a/scss/leaflet/_leaflet.awesome-markers.scss +++ /dev/null @@ -1,124 +0,0 @@ -/* -Author: L. Voogdt -License: MIT -Version: 1.0 -*/ - -/* Marker setup */ -.awesome-marker { - background: url('images/markers-soft.png') no-repeat 0 0; - width: 35px; - height: 46px; - position:absolute; - left:0; - top:0; - display: block; - text-align: center; -} - -.awesome-marker-shadow { - background: url('images/markers-shadow.png') no-repeat 0 0; - width: 36px; - height: 16px; -} - -/* Retina displays */ -@media (min--moz-device-pixel-ratio: 1.5),(-o-min-device-pixel-ratio: 3/2), -(-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) { - .awesome-marker { - background-image: url('images/markers-soft@2x.png'); - background-size: 720px 46px; - } - .awesome-marker-shadow { - background-image: url('images/markers-shadow@2x.png'); - background-size: 35px 16px; - } -} - -.awesome-marker i { - color: #333; - margin-top: 10px; - display: inline-block; - font-size: 14px; -} - -.awesome-marker .icon-white { - color: #fff; -} - -/* Colors */ -.awesome-marker-icon-red { - background-position: 0 0; -} - -.awesome-marker-icon-darkred { - background-position: -180px 0; -} - -.awesome-marker-icon-lightred { - background-position: -360px 0; -} - -.awesome-marker-icon-orange { - background-position: -36px 0; -} - -.awesome-marker-icon-beige { - background-position: -396px 0; -} - -.awesome-marker-icon-green { - background-position: -72px 0; -} - -.awesome-marker-icon-darkgreen { - background-position: -252px 0; -} - -.awesome-marker-icon-lightgreen { - background-position: -432px 0; -} - -.awesome-marker-icon-blue { - background-position: -108px 0; -} - -.awesome-marker-icon-darkblue { - background-position: -216px 0; -} - -.awesome-marker-icon-lightblue { - background-position: -468px 0; -} - -.awesome-marker-icon-purple { - background-position: -144px 0; -} - -.awesome-marker-icon-darkpurple { - background-position: -288px 0; -} - -.awesome-marker-icon-pink { - background-position: -504px 0; -} - -.awesome-marker-icon-cadetblue { - background-position: -324px 0; -} - -.awesome-marker-icon-white { - background-position: -574px 0; -} - -.awesome-marker-icon-gray { - background-position: -648px 0; -} - -.awesome-marker-icon-lightgray { - background-position: -612px 0; -} - -.awesome-marker-icon-black { - background-position: -682px 0; -} diff --git a/scss/leaflet/_leaflet.easy-button.scss b/scss/leaflet/_leaflet.easy-button.scss deleted file mode 100644 index 18ce9ac16..000000000 --- a/scss/leaflet/_leaflet.easy-button.scss +++ /dev/null @@ -1,56 +0,0 @@ -.leaflet-bar button, -.leaflet-bar button:hover { - background-color: #fff; - border: none; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; -} - -.leaflet-bar button { - background-position: 50% 50%; - background-repeat: no-repeat; - overflow: hidden; - display: block; -} - -.leaflet-bar button:hover { - background-color: #f4f4f4; -} - -.leaflet-bar button:first-of-type { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.leaflet-bar button:last-of-type { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; -} - -.leaflet-bar.disabled, -.leaflet-bar button.disabled { - cursor: default; - pointer-events: none; - opacity: .4; -} - -.easy-button-button .button-state{ - display: block; - width: 100%; - height: 100%; - position: relative; -} - - -.leaflet-touch .leaflet-bar button { - width: 30px; - height: 30px; - line-height: 30px; -} diff --git a/scss/leaflet/_leaflet.loading.scss b/scss/leaflet/_leaflet.loading.scss deleted file mode 100644 index f4157bc6f..000000000 --- a/scss/leaflet/_leaflet.loading.scss +++ /dev/null @@ -1,26 +0,0 @@ -.leaflet-control-loading:empty { - /* Spinner via ajaxload.info, base64-encoded */ - background-image: url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==); - background-repeat: no-repeat; -} - -.leaflet-control-loading, -.leaflet-control-zoom a.leaflet-control-loading, -.leaflet-control-zoomslider a.leaflet-control-loading, -.leaflet-control-layer-container { - display: none; -} - -.leaflet-control-loading.is-loading, -.leaflet-control-zoom a.leaflet-control-loading.is-loading, -.leaflet-control-zoomslider a.leaflet-control-loading.is-loading, -.leaflet-control-layer-container.is-loading { - display: block; -} - -/* Necessary for display consistency in Leaflet >= 0.6 */ -.leaflet-bar-part-bottom { - border-bottom: medium none; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} diff --git a/scss/leaflet/_leaflet.markercluster.default.scss b/scss/leaflet/_leaflet.markercluster.default.scss deleted file mode 100644 index bbc8c9fb0..000000000 --- a/scss/leaflet/_leaflet.markercluster.default.scss +++ /dev/null @@ -1,60 +0,0 @@ -.marker-cluster-small { - background-color: rgba(181, 226, 140, 0.6); - } -.marker-cluster-small div { - background-color: rgba(110, 204, 57, 0.6); - } - -.marker-cluster-medium { - background-color: rgba(241, 211, 87, 0.6); - } -.marker-cluster-medium div { - background-color: rgba(240, 194, 12, 0.6); - } - -.marker-cluster-large { - background-color: rgba(253, 156, 115, 0.6); - } -.marker-cluster-large div { - background-color: rgba(241, 128, 23, 0.6); - } - - /* IE 6-8 fallback colors */ -.leaflet-oldie .marker-cluster-small { - background-color: rgb(181, 226, 140); - } -.leaflet-oldie .marker-cluster-small div { - background-color: rgb(110, 204, 57); - } - -.leaflet-oldie .marker-cluster-medium { - background-color: rgb(241, 211, 87); - } -.leaflet-oldie .marker-cluster-medium div { - background-color: rgb(240, 194, 12); - } - -.leaflet-oldie .marker-cluster-large { - background-color: rgb(253, 156, 115); - } -.leaflet-oldie .marker-cluster-large div { - background-color: rgb(241, 128, 23); -} - -.marker-cluster { - background-clip: padding-box; - border-radius: 20px; - } -.marker-cluster div { - width: 30px; - height: 30px; - margin-left: 5px; - margin-top: 5px; - - text-align: center; - border-radius: 15px; - font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif; - } -.marker-cluster span { - line-height: 30px; - } \ No newline at end of file diff --git a/scss/leaflet/_leaflet.markercluster.scss b/scss/leaflet/_leaflet.markercluster.scss deleted file mode 100644 index c60d71b7a..000000000 --- a/scss/leaflet/_leaflet.markercluster.scss +++ /dev/null @@ -1,14 +0,0 @@ -.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow { - -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in; - -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in; - -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in; - transition: transform 0.3s ease-out, opacity 0.3s ease-in; -} - -.leaflet-cluster-spider-leg { - /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */ - -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in; - -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in; - -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in; - transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in; -} diff --git a/scss/leaflet/_leaflet.scss b/scss/leaflet/_leaflet.scss deleted file mode 100644 index dea175f0f..000000000 --- a/scss/leaflet/_leaflet.scss +++ /dev/null @@ -1,479 +0,0 @@ -/* required styles */ - -.leaflet-map-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-pane, -.leaflet-tile-container, -.leaflet-overlay-pane, -.leaflet-shadow-pane, -.leaflet-marker-pane, -.leaflet-popup-pane, -.leaflet-overlay-pane svg, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; - } -.leaflet-container { - overflow: hidden; - -ms-touch-action: none; - touch-action: none; - } -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; - } -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; - } -/* map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container img { - max-width: none !important; - } -/* stupid Android 2 doesn't understand "max-width: none" properly */ -.leaflet-container img.leaflet-image-layer { - max-width: 15000px !important; - } -.leaflet-tile { - filter: inherit; - visibility: hidden; - } -.leaflet-tile-loaded { - visibility: inherit; - } -.leaflet-zoom-box { - width: 0; - height: 0; - } -/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ -.leaflet-overlay-pane svg { - -moz-user-select: none; - } - -.leaflet-tile-pane { z-index: 2; } -.leaflet-objects-pane { z-index: 3; } -.leaflet-overlay-pane { z-index: 4; } -.leaflet-shadow-pane { z-index: 5; } -.leaflet-marker-pane { z-index: 6; } -.leaflet-popup-pane { z-index: 7; } - -.leaflet-vml-shape { - width: 1px; - height: 1px; - } -.lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } - - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 7; - pointer-events: auto; - } -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.leaflet-top { - top: 0; - } -.leaflet-right { - right: 0; - } -.leaflet-bottom { - bottom: 0; - } -.leaflet-left { - left: 0; - } -.leaflet-control { - float: left; - clear: both; - } -.leaflet-right .leaflet-control { - float: right; - } -.leaflet-top .leaflet-control { - margin-top: 10px; - } -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } -.leaflet-left .leaflet-control { - margin-left: 10px; - } -.leaflet-right .leaflet-control { - margin-right: 10px; - } - - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-tile, -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - -o-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } -.leaflet-fade-anim .leaflet-tile-loaded, -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } - -.leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile, -.leaflet-touching .leaflet-zoom-animated { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } - - -/* cursors */ - -.leaflet-clickable { - cursor: pointer; - } -.leaflet-container { - cursor: -webkit-grab; - cursor: -moz-grab; - } -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; - } -.leaflet-dragging .leaflet-container, -.leaflet-dragging .leaflet-clickable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - } - - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline: 0; - } -.leaflet-container a { - color: #0078A8; - } -.leaflet-container a.leaflet-active { - outline: 2px solid orange; - } -.leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255,255,255,0.5); - } - - -/* general typography */ -.leaflet-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; - } - - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.leaflet-bar a, -.leaflet-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } -.leaflet-bar a, -.leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.leaflet-bar a:hover { - background-color: #f4f4f4; - } -.leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - -.leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } - - -/* zoom control */ - -.leaflet-control-zoom-in, -.leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } -.leaflet-control-zoom-out { - font-size: 20px; - } - -.leaflet-touch .leaflet-control-zoom-in { - font-size: 22px; - } -.leaflet-touch .leaflet-control-zoom-out { - font-size: 24px; - } - - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.leaflet-control-layers-toggle { - background-image: url(images/layers.png); - width: 36px; - height: 36px; - } -.leaflet-retina .leaflet-control-layers-toggle { - background-image: url(images/layers-2x.png); - background-size: 26px 26px; - } -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.leaflet-control-layers label { - display: block; - } -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; - } -.leaflet-control-attribution a { - text-decoration: none; - } -.leaflet-control-attribution a:hover { - text-decoration: underline; - } -.leaflet-container .leaflet-control-attribution, -.leaflet-container .leaflet-control-scale { - font-size: 11px; - } -.leaflet-left .leaflet-control-scale { - margin-left: 5px; - } -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: content-box; - box-sizing: content-box; - - background: #fff; - background: rgba(255, 255, 255, 0.5); - } -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - box-shadow: none; - } -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; - } -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } -.leaflet-popup-content { - margin: 13px 19px; - line-height: 1.4; - } -.leaflet-popup-content p { - margin: 18px 0; - } -.leaflet-popup-tip-container { - margin: 0 auto; - width: 40px; - height: 20px; - position: relative; - overflow: hidden; - } -.leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - } -.leaflet-popup-content-wrapper, -.leaflet-popup-tip { - background: white; - - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 4px 0 0; - text-align: center; - width: 18px; - height: 14px; - font: 16px/14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: bold; - background: transparent; - } -.leaflet-container a.leaflet-popup-close-button:hover { - color: #999; - } -.leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; - } - -.leaflet-oldie .leaflet-popup-content-wrapper { - zoom: 1; - } -.leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } -.leaflet-oldie .leaflet-popup-tip-container { - margin-top: -1px; - } - -.leaflet-oldie .leaflet-control-zoom, -.leaflet-oldie .leaflet-control-layers, -.leaflet-oldie .leaflet-popup-content-wrapper, -.leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } - - -/* div icon */ - -.leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } diff --git a/scss/leaflet/_leaflet.search.scss b/scss/leaflet/_leaflet.search.scss deleted file mode 100644 index e78a16b6e..000000000 --- a/scss/leaflet/_leaflet.search.scss +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Leaflet Control Search v2.7.2 - 2017-04-08 - * - * Copyright 2017 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ - -.leaflet-container .leaflet-control-search { - position:relative; - float:left; - background:#fff; - color:#1978cf; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - background-color: rgba(255, 255, 255, 0.8); - z-index:1000; - box-shadow: 0 1px 7px rgba(0,0,0,0.65); - margin-left: 10px; - margin-top: 10px; -} -.leaflet-control-search.search-exp {/*expanded*/ - box-shadow: 0 1px 7px #999; - background: #fff; -} -.leaflet-control-search .search-input { - display:block; - float:left; - background: #fff; - border:1px solid #666; - border-radius:2px; - height:18px; - padding:0 18px 0 2px; - margin:3px 0 3px 3px; -} -.leaflet-control-search.search-load .search-input { - background: url('../images/loader.gif') no-repeat center right #fff; -} -.leaflet-control-search.search-load .search-cancel { - visibility:hidden; -} -.leaflet-control-search .search-cancel { - display:block; - width:22px; - height:18px; - position:absolute; - right:22px; - margin:3px 0; - background: url('../images/search-icon.png') no-repeat 0 -46px; - text-decoration:none; - filter: alpha(opacity=80); - opacity: 0.8; -} -.leaflet-control-search .search-cancel:hover { - filter: alpha(opacity=100); - opacity: 1; -} -.leaflet-control-search .search-cancel span { - display:none;/* comment for cancel button imageless */ - font-size:18px; - line-height:20px; - color:#ccc; - font-weight:bold; -} -.leaflet-control-search .search-cancel:hover span { - color:#aaa; -} -.leaflet-control-search .search-button { - display:block; - float:left; - width:26px; - height:26px; - background: url('../images/search-icon.png') no-repeat 2px 2px #fff; - border-radius:4px; -} -.leaflet-control-search .search-button:hover { - background: url('../images/search-icon.png') no-repeat 2px -22px #fafafa; -} -.leaflet-control-search .search-tooltip { - position:absolute; - top:100%; - left:0; - float:left; - list-style: none; - padding-left: 0; - min-width:120px; - max-height:122px; - box-shadow: 1px 1px 6px rgba(0,0,0,0.4); - background-color: rgba(0, 0, 0, 0.25); - z-index:1010; - overflow-y:auto; - overflow-x:hidden; - cursor: pointer; -} -.leaflet-control-search .search-tip { - margin:2px; - padding:2px 4px; - display:block; - color:black; - background: #eee; - border-radius:.25em; - text-decoration:none; - white-space:nowrap; - vertical-align:center; -} -.leaflet-control-search .search-button:hover { - background-color: #f4f4f4; -} -.leaflet-control-search .search-tip-select, -.leaflet-control-search .search-tip:hover { - background-color: #fff; -} -.leaflet-control-search .search-alert { - cursor:pointer; - clear:both; - font-size:.75em; - margin-bottom:5px; - padding:0 .25em; - color:#e00; - font-weight:bold; - border-radius:.25em; -} - - diff --git a/www/css/angular-image-crop.css b/www/css/angular-image-crop.css deleted file mode 100644 index 2da5e0106..000000000 --- a/www/css/angular-image-crop.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Some of these styles you can override, things like colors, - * however some styles are required for the structure, and are critical to this module behaving properly! - */ - -/* Core component styles */ -.ng-image-crop { - text-align: center; - margin: 0 auto; - position: relative; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; -} -/* Each of the 3 steps in the process are contained within sections */ -.ng-image-crop > section { - background: #ccc; -} -/* The cropping button */ -.ng-image-crop button { - margin-top: 10px; -} -/* The dashed cropping guideline */ -.ng-image-crop .cropping-guide { - display: block; - background: rgba(255, 255, 255, .3); - border: 2px dashed white; - position: absolute; - pointer-events: none; -} -/* The circular themed cropping guideline */ -.ng-image-crop--circle .cropping-guide { - border-radius: 50%; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - -ms-border-radius: 50%; - -o-border-radius: 50%; -} -/* The canvas where the user positions the image via dragging and zooming */ -.ng-image-crop .cropping-canvas { - background: rgba(255, 255, 255, .3); - margin: 0 auto; - cursor: move; -} -/* The overlayed draggable zoom handle in the corner of the module */ -.ng-image-crop .zoom-handle { - display: block; - position: absolute; - bottom: 1px; - left: 1px; - background: rgba(255,255,255,0.7); - width: 80px; - height: 80px; - cursor: move; - border-radius: 200px 50px; -} -/* The text within the zoom handle */ -.ng-image-crop .zoom-handle > span { - color: rgba(0, 0, 0, 0.5); - -webkit-transform: rotate(-45deg); - -moz-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - -o-transform: rotate(-45deg); - transform: rotate(-45deg); - display: block; - position: relative; - top: 32px; -} \ No newline at end of file diff --git a/www/css/ionic.app.min.css b/www/css/ionic.app.min.css index 5f6a972e5..f14e2a86b 100644 --- a/www/css/ionic.app.min.css +++ b/www/css/ionic.app.min.css @@ -1 +1,21 @@ -@charset "UTF-8";.badge,sub,sup{vertical-align:baseline}.content,sub,sup{position:relative}.overflow-scroll .scroll,.pane{-webkit-transform:translate3d(0,0,0)}.action-sheet-open,.action-sheet-open.modal-open .modal,.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content,.menu-open .menu-content .scroll-content .scroll,.modal-backdrop-bg,.modal-open{pointer-events:none}.backdrop,.ng-animate .scroll-bar{visibility:hidden}.tabs,ion-infinite-scroll{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.disable-user-behavior,.ionic-body,.scroll,body{-webkit-touch-callout:none}.disable-user-behavior,.ionic-body,a,body,img{-webkit-user-drag:none}@font-face{font-family:Ionicons;src:url(../lib/ionic/fonts/ionicons.eot?v=2.0.1);src:url(../lib/ionic/fonts/ionicons.eot?v=2.0.1#iefix) format("embedded-opentype"),url(../lib/ionic/fonts/ionicons.ttf?v=2.0.1) format("truetype"),url(../lib/ionic/fonts/ionicons.woff?v=2.0.1) format("woff"),url(../lib/ionic/fonts/ionicons.woff) format("woff"),url(../lib/ionic/fonts/ionicons.svg?v=2.0.1#Ionicons) format("svg");font-weight:400;font-style:normal}#menu .footer .icon-help:before,.badge-editable:hover:before,.icon-alert:before,.icon-help:before,.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-circle:before,.ion-android-add:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-cloud:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done-all:before,.ion-android-done:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite-outline:before,.ion-android-favorite:before,.ion-android-film:before,.ion-android-folder-open:before,.ion-android-folder:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone-off:before,.ion-android-microphone:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-notifications:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person-add:before,.ion-android-person:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove-circle:before,.ion-android-remove:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share-alt:before,.ion-android-share:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace-outline:before,.ion-backspace:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email-unread:before,.ion-email:before,.ion-erlenmeyer-flask-bubbles:before,.ion-erlenmeyer-flask:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy-outline:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios-alarm-outline:before,.ion-ios-alarm:before,.ion-ios-albums-outline:before,.ion-ios-albums:before,.ion-ios-americanfootball-outline:before,.ion-ios-americanfootball:before,.ion-ios-analytics-outline:before,.ion-ios-analytics:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at-outline:before,.ion-ios-at:before,.ion-ios-barcode-outline:before,.ion-ios-barcode:before,.ion-ios-baseball-outline:before,.ion-ios-baseball:before,.ion-ios-basketball-outline:before,.ion-ios-basketball:before,.ion-ios-bell-outline:before,.ion-ios-bell:before,.ion-ios-body-outline:before,.ion-ios-body:before,.ion-ios-bolt-outline:before,.ion-ios-bolt:before,.ion-ios-book-outline:before,.ion-ios-book:before,.ion-ios-bookmarks-outline:before,.ion-ios-bookmarks:before,.ion-ios-box-outline:before,.ion-ios-box:before,.ion-ios-briefcase-outline:before,.ion-ios-briefcase:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-calculator-outline:before,.ion-ios-calculator:before,.ion-ios-calendar-outline:before,.ion-ios-calendar:before,.ion-ios-camera-outline:before,.ion-ios-camera:before,.ion-ios-cart-outline:before,.ion-ios-cart:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatbubble-outline:before,.ion-ios-chatbubble:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-checkmark:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock-outline:before,.ion-ios-clock:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-close:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-outline:before,.ion-ios-cloudy:before,.ion-ios-cog-outline:before,.ion-ios-cog:before,.ion-ios-color-filter-outline:before,.ion-ios-color-filter:before,.ion-ios-color-wand-outline:before,.ion-ios-color-wand:before,.ion-ios-compose-outline:before,.ion-ios-compose:before,.ion-ios-contact-outline:before,.ion-ios-contact:before,.ion-ios-copy-outline:before,.ion-ios-copy:before,.ion-ios-crop-strong:before,.ion-ios-crop:before,.ion-ios-download-outline:before,.ion-ios-download:before,.ion-ios-drag:before,.ion-ios-email-outline:before,.ion-ios-email:before,.ion-ios-eye-outline:before,.ion-ios-eye:before,.ion-ios-fastforward-outline:before,.ion-ios-fastforward:before,.ion-ios-filing-outline:before,.ion-ios-filing:before,.ion-ios-film-outline:before,.ion-ios-film:before,.ion-ios-flag-outline:before,.ion-ios-flag:before,.ion-ios-flame-outline:before,.ion-ios-flame:before,.ion-ios-flask-outline:before,.ion-ios-flask:before,.ion-ios-flower-outline:before,.ion-ios-flower:before,.ion-ios-folder-outline:before,.ion-ios-folder:before,.ion-ios-football-outline:before,.ion-ios-football:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-b-outline:before,.ion-ios-game-controller-b:before,.ion-ios-gear-outline:before,.ion-ios-gear:before,.ion-ios-glasses-outline:before,.ion-ios-glasses:before,.ion-ios-grid-view-outline:before,.ion-ios-grid-view:before,.ion-ios-heart-outline:before,.ion-ios-heart:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-help:before,.ion-ios-home-outline:before,.ion-ios-home:before,.ion-ios-infinite-outline:before,.ion-ios-infinite:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-information:before,.ion-ios-ionic-outline:before,.ion-ios-keypad-outline:before,.ion-ios-keypad:before,.ion-ios-lightbulb-outline:before,.ion-ios-lightbulb:before,.ion-ios-list-outline:before,.ion-ios-list:before,.ion-ios-location-outline:before,.ion-ios-location:before,.ion-ios-locked-outline:before,.ion-ios-locked:before,.ion-ios-loop-strong:before,.ion-ios-loop:before,.ion-ios-medical-outline:before,.ion-ios-medical:before,.ion-ios-medkit-outline:before,.ion-ios-medkit:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-mic:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-minus:before,.ion-ios-monitor-outline:before,.ion-ios-monitor:before,.ion-ios-moon-outline:before,.ion-ios-moon:before,.ion-ios-more-outline:before,.ion-ios-more:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate-outline:before,.ion-ios-navigate:before,.ion-ios-nutrition-outline:before,.ion-ios-nutrition:before,.ion-ios-paper-outline:before,.ion-ios-paper:before,.ion-ios-paperplane-outline:before,.ion-ios-paperplane:before,.ion-ios-partlysunny-outline:before,.ion-ios-partlysunny:before,.ion-ios-pause-outline:before,.ion-ios-pause:before,.ion-ios-paw-outline:before,.ion-ios-paw:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-person:before,.ion-ios-personadd-outline:before,.ion-ios-personadd:before,.ion-ios-photos-outline:before,.ion-ios-photos:before,.ion-ios-pie-outline:before,.ion-ios-pie:before,.ion-ios-pint-outline:before,.ion-ios-pint:before,.ion-ios-play-outline:before,.ion-ios-play:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-plus:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetags-outline:before,.ion-ios-pricetags:before,.ion-ios-printer-outline:before,.ion-ios-printer:before,.ion-ios-pulse-strong:before,.ion-ios-pulse:before,.ion-ios-rainy-outline:before,.ion-ios-rainy:before,.ion-ios-recording-outline:before,.ion-ios-recording:before,.ion-ios-redo-outline:before,.ion-ios-redo:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-refresh:before,.ion-ios-reload:before,.ion-ios-reverse-camera-outline:before,.ion-ios-reverse-camera:before,.ion-ios-rewind-outline:before,.ion-ios-rewind:before,.ion-ios-rose-outline:before,.ion-ios-rose:before,.ion-ios-search-strong:before,.ion-ios-search:before,.ion-ios-settings-strong:before,.ion-ios-settings:before,.ion-ios-shuffle-strong:before,.ion-ios-shuffle:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipbackward:before,.ion-ios-skipforward-outline:before,.ion-ios-skipforward:before,.ion-ios-snowy:before,.ion-ios-speedometer-outline:before,.ion-ios-speedometer:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-star:before,.ion-ios-stopwatch-outline:before,.ion-ios-stopwatch:before,.ion-ios-sunny-outline:before,.ion-ios-sunny:before,.ion-ios-telephone-outline:before,.ion-ios-telephone:before,.ion-ios-tennisball-outline:before,.ion-ios-tennisball:before,.ion-ios-thunderstorm-outline:before,.ion-ios-thunderstorm:before,.ion-ios-time-outline:before,.ion-ios-time:before,.ion-ios-timer-outline:before,.ion-ios-timer:before,.ion-ios-toggle-outline:before,.ion-ios-toggle:before,.ion-ios-trash-outline:before,.ion-ios-trash:before,.ion-ios-undo-outline:before,.ion-ios-undo:before,.ion-ios-unlocked-outline:before,.ion-ios-unlocked:before,.ion-ios-upload-outline:before,.ion-ios-upload:before,.ion-ios-videocam-outline:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass-outline:before,.ion-ios-wineglass:before,.ion-ios-world-outline:before,.ion-ios-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad-outline:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-angular-outline:before,.ion-social-angular:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-chrome-outline:before,.ion-social-chrome:before,.ion-social-codepen-outline:before,.ion-social-codepen:before,.ion-social-css3-outline:before,.ion-social-css3:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-euro-outline:before,.ion-social-euro:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-html5-outline:before,.ion-social-html5:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-javascript-outline:before,.ion-social-javascript:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-python:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-sass:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-snapchat-outline:before,.ion-social-snapchat:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitch-outline:before,.ion-social-twitch:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-whatsapp-outline:before,.ion-social-whatsapp:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-yen-outline:before,.ion-social-yen:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-soup-can-outline:before,.ion-soup-can:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt-outline:before,.ion-tshirt:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons,.text-editable:hover:after{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"ï„"}.ion-alert-circled:before{content:"ï„€"}.ion-android-add:before{content:""}.ion-android-add-circle:before{content:"ï™"}.ion-android-alarm-clock:before{content:"ïš"}.icon-alert:before,.ion-android-alert:before{content:"ï›"}.ion-android-apps:before{content:"ïœ"}.ion-android-archive:before{content:""}.ion-android-arrow-back:before{content:""}.ion-android-arrow-down:before{content:"ï"}.ion-android-arrow-dropdown:before{content:"ïŸ"}.ion-android-arrow-dropdown-circle:before{content:"ïž"}.ion-android-arrow-dropleft:before{content:"ï¡"}.ion-android-arrow-dropleft-circle:before{content:"ï "}.ion-android-arrow-dropright:before{content:"ï£"}.ion-android-arrow-dropright-circle:before{content:"ï¢"}.ion-android-arrow-dropup:before{content:"ï¥"}.ion-android-arrow-dropup-circle:before{content:"ï¤"}.ion-android-arrow-forward:before{content:"ïŒ"}.ion-android-arrow-up:before{content:"ï¦"}.ion-android-attach:before{content:"ï§"}.ion-android-bar:before{content:"ï¨"}.ion-android-bicycle:before{content:"ï©"}.ion-android-boat:before{content:"ïª"}.ion-android-bookmark:before{content:"ï«"}.ion-android-bulb:before{content:"ï¬"}.ion-android-bus:before{content:"ï"}.ion-android-calendar:before{content:"ï‹‘"}.ion-android-call:before{content:"ï‹’"}.ion-android-camera:before{content:"ï‹“"}.ion-android-cancel:before{content:"ï®"}.ion-android-car:before{content:"ï¯"}.ion-android-cart:before{content:"ï°"}.ion-android-chat:before{content:"ï‹”"}.ion-android-checkbox:before{content:"ï´"}.ion-android-checkbox-blank:before{content:"ï±"}.ion-android-checkbox-outline:before{content:"ï³"}.ion-android-checkbox-outline-blank:before{content:"ï²"}.ion-android-checkmark-circle:before{content:"ïµ"}.ion-android-clipboard:before{content:"ï¶"}.ion-android-close:before{content:"ï‹—"}.ion-android-cloud:before{content:"ïº"}.ion-android-cloud-circle:before{content:"ï·"}.ion-android-cloud-done:before{content:"ï¸"}.ion-android-cloud-outline:before{content:"ï¹"}.ion-android-color-palette:before{content:"ï»"}.ion-android-compass:before{content:"ï¼"}.ion-android-contact:before{content:""}.ion-android-contacts:before{content:"ï‹™"}.ion-android-contract:before{content:"ï½"}.ion-android-create:before{content:"ï¾"}.ion-android-delete:before{content:"ï¿"}.ion-android-desktop:before{content:""}.ion-android-document:before{content:"ïŽ"}.ion-android-done:before{content:""}.ion-android-done-all:before{content:""}.ion-android-download:before{content:"ï‹"}.ion-android-drafts:before{content:""}.ion-android-exit:before{content:""}.ion-android-expand:before{content:""}.ion-android-favorite:before{content:""}.ion-android-favorite-outline:before{content:""}.ion-android-film:before{content:""}.ion-android-folder:before{content:"ï‹ "}.ion-android-folder-open:before{content:""}.ion-android-funnel:before{content:""}.ion-android-globe:before{content:""}.ion-android-hand:before{content:"ï‹£"}.ion-android-hangout:before{content:"ïŽ"}.ion-android-happy:before{content:""}.ion-android-home:before{content:"ïŽ"}.ion-android-image:before{content:""}.ion-android-laptop:before{content:"ïŽ"}.ion-android-list:before{content:""}.ion-android-locate:before{content:"ï‹©"}.ion-android-lock:before{content:""}.ion-android-mail:before{content:"ï‹«"}.ion-android-map:before{content:""}.ion-android-menu:before{content:""}.ion-android-microphone:before{content:""}.ion-android-microphone-off:before{content:""}.ion-android-more-horizontal:before{content:""}.ion-android-more-vertical:before{content:""}.ion-android-navigate:before{content:""}.ion-android-notifications:before{content:""}.ion-android-notifications-none:before{content:""}.ion-android-notifications-off:before{content:""}.ion-android-open:before{content:""}.ion-android-options:before{content:"ïŽ"}.ion-android-people:before{content:""}.ion-android-person:before{content:"ïŽ "}.ion-android-person-add:before{content:""}.ion-android-phone-landscape:before{content:""}.ion-android-phone-portrait:before{content:""}.ion-android-pin:before{content:""}.ion-android-plane:before{content:""}.ion-android-playstore:before{content:"ï‹°"}.ion-android-print:before{content:""}.ion-android-radio-button-off:before{content:""}.ion-android-radio-button-on:before{content:""}.ion-android-refresh:before{content:""}.ion-android-remove:before{content:"ï‹´"}.ion-android-remove-circle:before{content:""}.ion-android-restaurant:before{content:""}.ion-android-sad:before{content:""}.ion-android-search:before{content:""}.ion-android-send:before{content:"ï‹¶"}.ion-android-settings:before{content:"ï‹·"}.ion-android-share:before{content:""}.ion-android-share-alt:before{content:""}.ion-android-star:before{content:""}.ion-android-star-half:before{content:"ïŽ"}.ion-android-star-outline:before{content:""}.ion-android-stopwatch:before{content:""}.ion-android-subway:before{content:""}.ion-android-sunny:before{content:""}.ion-android-sync:before{content:""}.ion-android-textsms:before{content:""}.ion-android-time:before{content:""}.ion-android-train:before{content:""}.ion-android-unlock:before{content:""}.ion-android-upload:before{content:""}.ion-android-volume-down:before{content:""}.ion-android-volume-mute:before{content:""}.ion-android-volume-off:before{content:""}.ion-android-volume-up:before{content:""}.ion-android-walk:before{content:""}.ion-android-warning:before{content:""}.ion-android-watch:before{content:""}.ion-android-wifi:before{content:""}.ion-aperture:before{content:""}.ion-archive:before{content:"ï„‚"}.ion-arrow-down-a:before{content:""}.ion-arrow-down-b:before{content:"ï„„"}.ion-arrow-down-c:before{content:"ï„…"}.ion-arrow-expand:before{content:""}.ion-arrow-graph-down-left:before{content:""}.ion-arrow-graph-down-right:before{content:"ï‰ "}.ion-arrow-graph-up-left:before{content:""}.ion-arrow-graph-up-right:before{content:""}.ion-arrow-left-a:before{content:""}.ion-arrow-left-b:before{content:""}.ion-arrow-left-c:before{content:""}.ion-arrow-move:before{content:""}.ion-arrow-resize:before{content:""}.ion-arrow-return-left:before{content:""}.ion-arrow-return-right:before{content:""}.ion-arrow-right-a:before{content:""}.ion-arrow-right-b:before{content:""}.ion-arrow-right-c:before{content:"ï„‹"}.ion-arrow-shrink:before{content:""}.ion-arrow-swap:before{content:""}.ion-arrow-up-a:before{content:""}.ion-arrow-up-b:before{content:"ï„"}.ion-arrow-up-c:before{content:""}.ion-asterisk:before{content:""}.ion-at:before{content:"ï„"}.ion-backspace:before{content:""}.ion-backspace-outline:before{content:""}.ion-bag:before{content:"ï„"}.ion-battery-charging:before{content:"ï„‘"}.ion-battery-empty:before{content:"ï„’"}.ion-battery-full:before{content:"ï„“"}.ion-battery-half:before{content:"ï„”"}.ion-battery-low:before{content:"ï„•"}.ion-beaker:before{content:""}.ion-beer:before{content:""}.ion-bluetooth:before{content:"ï„–"}.ion-bonfire:before{content:""}.ion-bookmark:before{content:""}.ion-bowtie:before{content:"ï€"}.ion-briefcase:before{content:""}.ion-bug:before{content:""}.ion-calculator:before{content:"ï‰"}.ion-calendar:before{content:"ï„—"}.ion-camera:before{content:""}.ion-card:before{content:"ï„™"}.ion-cash:before{content:""}.ion-chatbox:before{content:"ï„›"}.ion-chatbox-working:before{content:""}.ion-chatboxes:before{content:""}.ion-chatbubble:before{content:""}.ion-chatbubble-working:before{content:"ï„"}.ion-chatbubbles:before{content:""}.ion-checkmark:before{content:"ï„¢"}.ion-checkmark-circled:before{content:"ï„ "}.ion-checkmark-round:before{content:"ï„¡"}.ion-chevron-down:before{content:"ï„£"}.ion-chevron-left:before{content:""}.ion-chevron-right:before{content:"ï„¥"}.ion-chevron-up:before{content:""}.ion-clipboard:before{content:"ï„§"}.ion-clock:before{content:""}.ion-close:before{content:""}.ion-close-circled:before{content:""}.ion-close-round:before{content:"ï„©"}.ion-closed-captioning:before{content:""}.ion-cloud:before{content:"ï„«"}.ion-code:before{content:""}.ion-code-download:before{content:""}.ion-code-working:before{content:""}.ion-coffee:before{content:""}.ion-compass:before{content:""}.ion-compose:before{content:""}.ion-connection-bars:before{content:""}.ion-contrast:before{content:""}.ion-crop:before{content:"ï"}.ion-cube:before{content:""}.ion-disc:before{content:"ï„"}.ion-document:before{content:""}.ion-document-text:before{content:"ï„®"}.ion-drag:before{content:"ï„°"}.ion-earth:before{content:""}.ion-easel:before{content:"ï‚"}.ion-edit:before{content:""}.ion-egg:before{content:""}.ion-eject:before{content:""}.ion-email:before{content:""}.ion-email-unread:before{content:"ïƒ"}.ion-erlenmeyer-flask:before{content:"ï…"}.ion-erlenmeyer-flask-bubbles:before{content:"ï„"}.ion-eye:before{content:""}.ion-eye-disabled:before{content:""}.ion-female:before{content:""}.ion-filing:before{content:"ï„´"}.ion-film-marker:before{content:""}.ion-fireball:before{content:""}.ion-flag:before{content:""}.ion-flame:before{content:""}.ion-flash:before{content:"ï„·"}.ion-flash-off:before{content:"ï„¶"}.ion-folder:before{content:""}.ion-fork:before{content:""}.ion-fork-repo:before{content:"ï‹€"}.ion-forward:before{content:""}.ion-funnel:before{content:""}.ion-gear-a:before{content:""}.ion-gear-b:before{content:""}.ion-grid:before{content:"ï„¿"}.ion-hammer:before{content:""}.ion-happy:before{content:""}.ion-happy-outline:before{content:"ï†"}.ion-headphone:before{content:"ï…€"}.ion-heart:before{content:"ï…"}.ion-heart-broken:before{content:"ïŒ"}.ion-help:before{content:"ï…ƒ"}.ion-help-buoy:before{content:""}.ion-help-circled:before{content:"ï…‚"}.ion-home:before{content:"ï…„"}.ion-icecream:before{content:""}.ion-image:before{content:"ï…‡"}.ion-images:before{content:"ï…ˆ"}.ion-information:before{content:"ï…Š"}.ion-information-circled:before{content:"ï…‰"}.ion-ionic:before{content:"ï…‹"}.ion-ios-alarm:before{content:"ïˆ"}.ion-ios-alarm-outline:before{content:"ï‡"}.ion-ios-albums:before{content:"ïŠ"}.ion-ios-albums-outline:before{content:"ï‰"}.ion-ios-americanfootball:before{content:"ïŒ"}.ion-ios-americanfootball-outline:before{content:"ï‹"}.ion-ios-analytics:before{content:"ïŽ"}.ion-ios-analytics-outline:before{content:"ï"}.ion-ios-arrow-back:before{content:"ï"}.ion-ios-arrow-down:before{content:"ï"}.ion-ios-arrow-forward:before{content:"ï‘"}.ion-ios-arrow-left:before{content:"ï’"}.ion-ios-arrow-right:before{content:"ï“"}.ion-ios-arrow-thin-down:before{content:"ï”"}.ion-ios-arrow-thin-left:before{content:"ï•"}.ion-ios-arrow-thin-right:before{content:"ï–"}.ion-ios-arrow-thin-up:before{content:"ï—"}.ion-ios-arrow-up:before{content:"ï˜"}.ion-ios-at:before{content:"ïš"}.ion-ios-at-outline:before{content:"ï™"}.ion-ios-barcode:before{content:"ïœ"}.ion-ios-barcode-outline:before{content:"ï›"}.ion-ios-baseball:before{content:"ïž"}.ion-ios-baseball-outline:before{content:"ï"}.ion-ios-basketball:before{content:"ï "}.ion-ios-basketball-outline:before{content:"ïŸ"}.ion-ios-bell:before{content:"ï¢"}.ion-ios-bell-outline:before{content:"ï¡"}.ion-ios-body:before{content:"ï¤"}.ion-ios-body-outline:before{content:"ï£"}.ion-ios-bolt:before{content:"ï¦"}.ion-ios-bolt-outline:before{content:"ï¥"}.ion-ios-book:before{content:"ï¨"}.ion-ios-book-outline:before{content:"ï§"}.ion-ios-bookmarks:before{content:"ïª"}.ion-ios-bookmarks-outline:before{content:"ï©"}.ion-ios-box:before{content:"ï¬"}.ion-ios-box-outline:before{content:"ï«"}.ion-ios-briefcase:before{content:"ï®"}.ion-ios-briefcase-outline:before{content:"ï"}.ion-ios-browsers:before{content:"ï°"}.ion-ios-browsers-outline:before{content:"ï¯"}.ion-ios-calculator:before{content:"ï²"}.ion-ios-calculator-outline:before{content:"ï±"}.ion-ios-calendar:before{content:"ï´"}.ion-ios-calendar-outline:before{content:"ï³"}.ion-ios-camera:before{content:"ï¶"}.ion-ios-camera-outline:before{content:"ïµ"}.ion-ios-cart:before{content:"ï¸"}.ion-ios-cart-outline:before{content:"ï·"}.ion-ios-chatboxes:before{content:"ïº"}.ion-ios-chatboxes-outline:before{content:"ï¹"}.ion-ios-chatbubble:before{content:"ï¼"}.ion-ios-chatbubble-outline:before{content:"ï»"}.ion-ios-checkmark:before{content:"ï¿"}.ion-ios-checkmark-empty:before{content:"ï½"}.ion-ios-checkmark-outline:before{content:"ï¾"}.ion-ios-circle-filled:before{content:"ï€"}.ion-ios-circle-outline:before{content:"ï"}.ion-ios-clock:before{content:"ïƒ"}.ion-ios-clock-outline:before{content:"ï‚"}.ion-ios-close:before{content:"ï†"}.ion-ios-close-empty:before{content:"ï„"}.ion-ios-close-outline:before{content:"ï…"}.ion-ios-cloud:before{content:"ïŒ"}.ion-ios-cloud-download:before{content:"ïˆ"}.ion-ios-cloud-download-outline:before{content:"ï‡"}.ion-ios-cloud-outline:before{content:"ï‰"}.ion-ios-cloud-upload:before{content:"ï‹"}.ion-ios-cloud-upload-outline:before{content:"ïŠ"}.ion-ios-cloudy:before{content:"ï"}.ion-ios-cloudy-night:before{content:"ïŽ"}.ion-ios-cloudy-night-outline:before{content:"ï"}.ion-ios-cloudy-outline:before{content:"ï"}.ion-ios-cog:before{content:"ï’"}.ion-ios-cog-outline:before{content:"ï‘"}.ion-ios-color-filter:before{content:"ï”"}.ion-ios-color-filter-outline:before{content:"ï“"}.ion-ios-color-wand:before{content:"ï–"}.ion-ios-color-wand-outline:before{content:"ï•"}.ion-ios-compose:before{content:"ï˜"}.ion-ios-compose-outline:before{content:"ï—"}.ion-ios-contact:before{content:"ïš"}.ion-ios-contact-outline:before{content:"ï™"}.ion-ios-copy:before{content:"ïœ"}.ion-ios-copy-outline:before{content:"ï›"}.ion-ios-crop:before{content:"ïž"}.ion-ios-crop-strong:before{content:"ï"}.ion-ios-download:before{content:"ï "}.ion-ios-download-outline:before{content:"ïŸ"}.ion-ios-drag:before{content:"ï¡"}.ion-ios-email:before{content:"ï£"}.ion-ios-email-outline:before{content:"ï¢"}.ion-ios-eye:before{content:"ï¥"}.ion-ios-eye-outline:before{content:"ï¤"}.ion-ios-fastforward:before{content:"ï§"}.ion-ios-fastforward-outline:before{content:"ï¦"}.ion-ios-filing:before{content:"ï©"}.ion-ios-filing-outline:before{content:"ï¨"}.ion-ios-film:before{content:"ï«"}.ion-ios-film-outline:before{content:"ïª"}.ion-ios-flag:before{content:"ï"}.ion-ios-flag-outline:before{content:"ï¬"}.ion-ios-flame:before{content:"ï¯"}.ion-ios-flame-outline:before{content:"ï®"}.ion-ios-flask:before{content:"ï±"}.ion-ios-flask-outline:before{content:"ï°"}.ion-ios-flower:before{content:"ï³"}.ion-ios-flower-outline:before{content:"ï²"}.ion-ios-folder:before{content:"ïµ"}.ion-ios-folder-outline:before{content:"ï´"}.ion-ios-football:before{content:"ï·"}.ion-ios-football-outline:before{content:"ï¶"}.ion-ios-game-controller-a:before{content:"ï¹"}.ion-ios-game-controller-a-outline:before{content:"ï¸"}.ion-ios-game-controller-b:before{content:"ï»"}.ion-ios-game-controller-b-outline:before{content:"ïº"}.ion-ios-gear:before{content:"ï½"}.ion-ios-gear-outline:before{content:"ï¼"}.ion-ios-glasses:before{content:"ï¿"}.ion-ios-glasses-outline:before{content:"ï¾"}.ion-ios-grid-view:before{content:"ï‘"}.ion-ios-grid-view-outline:before{content:"ï‘€"}.ion-ios-heart:before{content:""}.ion-ios-heart-outline:before{content:"ï‘‚"}.ion-ios-help:before{content:""}.ion-ios-help-empty:before{content:"ï‘„"}#menu .footer .icon-help:before,.icon-help:before,.ion-ios-help-outline:before{content:"ï‘…"}.ion-ios-home:before{content:""}.ion-ios-home-outline:before{content:""}.ion-ios-infinite:before{content:""}.ion-ios-infinite-outline:before{content:""}.ion-ios-information:before{content:"ï‘"}.ion-ios-information-empty:before{content:"ï‘‹"}.ion-ios-information-outline:before{content:""}.ion-ios-ionic-outline:before{content:""}.ion-ios-keypad:before{content:"ï‘"}.ion-ios-keypad-outline:before{content:"ï‘"}.ion-ios-lightbulb:before{content:"ï‘’"}.ion-ios-lightbulb-outline:before{content:"ï‘‘"}.ion-ios-list:before{content:"ï‘”"}.ion-ios-list-outline:before{content:"ï‘“"}.ion-ios-location:before{content:"ï‘–"}.ion-ios-location-outline:before{content:"ï‘•"}.ion-ios-locked:before{content:""}.ion-ios-locked-outline:before{content:"ï‘—"}.ion-ios-loop:before{content:""}.ion-ios-loop-strong:before{content:"ï‘™"}.ion-ios-medical:before{content:""}.ion-ios-medical-outline:before{content:"ï‘›"}.ion-ios-medkit:before{content:""}.ion-ios-medkit-outline:before{content:"ï‘"}.ion-ios-mic:before{content:"ï‘¡"}.ion-ios-mic-off:before{content:""}.ion-ios-mic-outline:before{content:"ï‘ "}.ion-ios-minus:before{content:""}.ion-ios-minus-empty:before{content:"ï‘¢"}.ion-ios-minus-outline:before{content:"ï‘£"}.ion-ios-monitor:before{content:""}.ion-ios-monitor-outline:before{content:"ï‘¥"}.ion-ios-moon:before{content:""}.ion-ios-moon-outline:before{content:"ï‘§"}.ion-ios-more:before{content:""}.ion-ios-more-outline:before{content:"ï‘©"}.ion-ios-musical-note:before{content:"ï‘«"}.ion-ios-musical-notes:before{content:""}.ion-ios-navigate:before{content:"ï‘®"}.ion-ios-navigate-outline:before{content:"ï‘"}.ion-ios-nutrition:before{content:"ï‘°"}.ion-ios-nutrition-outline:before{content:""}.ion-ios-paper:before{content:""}.ion-ios-paper-outline:before{content:""}.ion-ios-paperplane:before{content:"ï‘´"}.ion-ios-paperplane-outline:before{content:""}.ion-ios-partlysunny:before{content:"ï‘¶"}.ion-ios-partlysunny-outline:before{content:""}.ion-ios-pause:before{content:""}.ion-ios-pause-outline:before{content:"ï‘·"}.ion-ios-paw:before{content:""}.ion-ios-paw-outline:before{content:""}.ion-ios-people:before{content:""}.ion-ios-people-outline:before{content:"ï‘»"}.ion-ios-person:before{content:""}.ion-ios-person-outline:before{content:""}.ion-ios-personadd:before{content:"ï’€"}.ion-ios-personadd-outline:before{content:"ï‘¿"}.ion-ios-photos:before{content:"ï’‚"}.ion-ios-photos-outline:before{content:"ï’"}.ion-ios-pie:before{content:"ï’„"}.ion-ios-pie-outline:before{content:"ï’ƒ"}.ion-ios-pint:before{content:"ï’†"}.ion-ios-pint-outline:before{content:"ï’…"}.ion-ios-play:before{content:"ï’ˆ"}.ion-ios-play-outline:before{content:"ï’‡"}.ion-ios-plus:before{content:"ï’‹"}.ion-ios-plus-empty:before{content:"ï’‰"}.ion-ios-plus-outline:before{content:"ï’Š"}.ion-ios-pricetag:before{content:"ï’"}.ion-ios-pricetag-outline:before{content:"ï’Œ"}.ion-ios-pricetags:before{content:"ï’"}.ion-ios-pricetags-outline:before{content:"ï’Ž"}.ion-ios-printer:before{content:"ï’‘"}.ion-ios-printer-outline:before{content:"ï’"}.ion-ios-pulse:before{content:"ï’“"}.ion-ios-pulse-strong:before{content:"ï’’"}.ion-ios-rainy:before{content:"ï’•"}.ion-ios-rainy-outline:before{content:"ï’”"}.ion-ios-recording:before{content:"ï’—"}.ion-ios-recording-outline:before{content:"ï’–"}.ion-ios-redo:before{content:"ï’™"}.ion-ios-redo-outline:before{content:"ï’˜"}.ion-ios-refresh:before{content:"ï’œ"}.ion-ios-refresh-empty:before{content:"ï’š"}.ion-ios-refresh-outline:before{content:"ï’›"}.ion-ios-reload:before{content:"ï’"}.ion-ios-reverse-camera:before{content:"ï’Ÿ"}.ion-ios-reverse-camera-outline:before{content:"ï’ž"}.ion-ios-rewind:before{content:"ï’¡"}.ion-ios-rewind-outline:before{content:"ï’ "}.ion-ios-rose:before{content:"ï’£"}.ion-ios-rose-outline:before{content:"ï’¢"}.ion-ios-search:before{content:"ï’¥"}.ion-ios-search-strong:before{content:"ï’¤"}.ion-ios-settings:before{content:"ï’§"}.ion-ios-settings-strong:before{content:"ï’¦"}.ion-ios-shuffle:before{content:"ï’©"}.ion-ios-shuffle-strong:before{content:"ï’¨"}.ion-ios-skipbackward:before{content:"ï’«"}.ion-ios-skipbackward-outline:before{content:"ï’ª"}.ion-ios-skipforward:before{content:"ï’"}.ion-ios-skipforward-outline:before{content:"ï’¬"}.ion-ios-snowy:before{content:"ï’®"}.ion-ios-speedometer:before{content:"ï’°"}.ion-ios-speedometer-outline:before{content:"ï’¯"}.ion-ios-star:before{content:"ï’³"}.ion-ios-star-half:before{content:"ï’±"}.ion-ios-star-outline:before{content:"ï’²"}.ion-ios-stopwatch:before{content:"ï’µ"}.ion-ios-stopwatch-outline:before{content:"ï’´"}.ion-ios-sunny:before{content:"ï’·"}.ion-ios-sunny-outline:before{content:"ï’¶"}.ion-ios-telephone:before{content:"ï’¹"}.ion-ios-telephone-outline:before{content:"ï’¸"}.ion-ios-tennisball:before{content:"ï’»"}.ion-ios-tennisball-outline:before{content:"ï’º"}.ion-ios-thunderstorm:before{content:"ï’½"}.ion-ios-thunderstorm-outline:before{content:"ï’¼"}.ion-ios-time:before{content:"ï’¿"}.ion-ios-time-outline:before{content:"ï’¾"}.ion-ios-timer:before{content:"ï“"}.ion-ios-timer-outline:before{content:"ï“€"}.ion-ios-toggle:before{content:""}.ion-ios-toggle-outline:before{content:"ï“‚"}.ion-ios-trash:before{content:"ï“…"}.ion-ios-trash-outline:before{content:"ï“„"}.ion-ios-undo:before{content:""}.ion-ios-undo-outline:before{content:""}.ion-ios-unlocked:before{content:""}.ion-ios-unlocked-outline:before{content:""}.ion-ios-upload:before{content:"ï“‹"}.ion-ios-upload-outline:before{content:""}.ion-ios-videocam:before{content:"ï“"}.ion-ios-videocam-outline:before{content:""}.ion-ios-volume-high:before{content:""}.ion-ios-volume-low:before{content:"ï“"}.ion-ios-wineglass:before{content:"ï“‘"}.ion-ios-wineglass-outline:before{content:"ï“"}.ion-ios-world:before{content:"ï““"}.ion-ios-world-outline:before{content:"ï“’"}.ion-ipad:before{content:""}.ion-iphone:before{content:""}.ion-ipod:before{content:""}.ion-jet:before{content:""}.ion-key:before{content:""}.ion-knife:before{content:""}.ion-laptop:before{content:""}.ion-leaf:before{content:""}.ion-levels:before{content:""}.ion-lightbulb:before{content:""}.ion-link:before{content:""}.ion-load-a:before{content:""}.ion-load-b:before{content:""}.ion-load-c:before{content:""}.ion-load-d:before{content:"ïŠ"}.ion-location:before{content:""}.ion-lock-combination:before{content:"ï“”"}.ion-locked:before{content:""}.ion-log-in:before{content:""}.ion-log-out:before{content:""}.ion-loop:before{content:"ïˆ"}.ion-magnet:before{content:"ïŠ "}.ion-male:before{content:""}.ion-man:before{content:""}.ion-map:before{content:""}.ion-medkit:before{content:""}.ion-merge:before{content:""}.ion-mic-a:before{content:""}.ion-mic-b:before{content:""}.ion-mic-c:before{content:""}.ion-minus:before{content:""}.ion-minus-circled:before{content:""}.ion-minus-round:before{content:""}.ion-model-s:before{content:"ï‹"}.ion-monitor:before{content:""}.ion-more:before{content:""}.ion-mouse:before{content:"ï€"}.ion-music-note:before{content:""}.ion-navicon:before{content:""}.ion-navicon-round:before{content:"ïˆ"}.ion-navigate:before{content:""}.ion-network:before{content:"ï"}.ion-no-smoking:before{content:"ï‹‚"}.ion-nuclear:before{content:""}.ion-outlet:before{content:"ï‚"}.ion-paintbrush:before{content:"ï“•"}.ion-paintbucket:before{content:"ï“–"}.ion-paper-airplane:before{content:""}.ion-paperclip:before{content:"ïˆ"}.ion-pause:before{content:"ïˆ"}.ion-person:before{content:""}.ion-person-add:before{content:""}.ion-person-stalker:before{content:""}.ion-pie-graph:before{content:""}.ion-pin:before{content:""}.ion-pinpoint:before{content:""}.ion-pizza:before{content:""}.ion-plane:before{content:""}.ion-planet:before{content:"ïƒ"}.ion-play:before{content:""}.ion-playstation:before{content:""}.ion-plus:before{content:""}.ion-plus-circled:before{content:""}.ion-plus-round:before{content:""}.ion-podium:before{content:"ï„"}.ion-pound:before{content:""}.ion-power:before{content:""}.ion-pricetag:before{content:""}.ion-pricetags:before{content:""}.ion-printer:before{content:""}.ion-pull-request:before{content:"ï…"}.ion-qr-scanner:before{content:"ï†"}.ion-quote:before{content:"ï‡"}.ion-radio-waves:before{content:""}.ion-record:before{content:""}.ion-refresh:before{content:""}.ion-reply:before{content:""}.ion-reply-all:before{content:"ïˆ"}.ion-ribbon-a:before{content:"ïˆ"}.ion-ribbon-b:before{content:"ï‰"}.ion-sad:before{content:"ïŠ"}.ion-sad-outline:before{content:"ï“—"}.ion-scissors:before{content:"ï‹"}.ion-search:before{content:""}.ion-settings:before{content:"ïŠ"}.ion-share:before{content:"ïˆ "}.ion-shuffle:before{content:""}.ion-skip-backward:before{content:""}.ion-skip-forward:before{content:""}.ion-social-android:before{content:""}.ion-social-android-outline:before{content:""}.ion-social-angular:before{content:"ï“™"}.ion-social-angular-outline:before{content:""}.ion-social-apple:before{content:""}.ion-social-apple-outline:before{content:""}.ion-social-bitcoin:before{content:""}.ion-social-bitcoin-outline:before{content:""}.ion-social-buffer:before{content:""}.ion-social-buffer-outline:before{content:""}.ion-social-chrome:before{content:"ï“›"}.ion-social-chrome-outline:before{content:""}.ion-social-codepen:before{content:"ï“"}.ion-social-codepen-outline:before{content:""}.ion-social-css3:before{content:""}.ion-social-css3-outline:before{content:""}.ion-social-designernews:before{content:""}.ion-social-designernews-outline:before{content:""}.ion-social-dribbble:before{content:"ïˆ"}.ion-social-dribbble-outline:before{content:""}.ion-social-dropbox:before{content:""}.ion-social-dropbox-outline:before{content:""}.ion-social-euro:before{content:"ï“¡"}.ion-social-euro-outline:before{content:"ï“ "}.ion-social-facebook:before{content:""}.ion-social-facebook-outline:before{content:""}.ion-social-foursquare:before{content:"ï"}.ion-social-foursquare-outline:before{content:"ïŒ"}.ion-social-freebsd-devil:before{content:"ï‹„"}.ion-social-github:before{content:""}.ion-social-github-outline:before{content:""}.ion-social-google:before{content:"ï"}.ion-social-google-outline:before{content:"ïŽ"}.ion-social-googleplus:before{content:""}.ion-social-googleplus-outline:before{content:""}.ion-social-hackernews:before{content:""}.ion-social-hackernews-outline:before{content:""}.ion-social-html5:before{content:"ï“£"}.ion-social-html5-outline:before{content:"ï“¢"}.ion-social-instagram:before{content:"ï‘"}.ion-social-instagram-outline:before{content:"ï"}.ion-social-javascript:before{content:"ï“¥"}.ion-social-javascript-outline:before{content:""}.ion-social-linkedin:before{content:""}.ion-social-linkedin-outline:before{content:""}.ion-social-markdown:before{content:""}.ion-social-nodejs:before{content:"ï“§"}.ion-social-octocat:before{content:""}.ion-social-pinterest:before{content:""}.ion-social-pinterest-outline:before{content:""}.ion-social-python:before{content:"ï“©"}.ion-social-reddit:before{content:""}.ion-social-reddit-outline:before{content:""}.ion-social-rss:before{content:""}.ion-social-rss-outline:before{content:""}.ion-social-sass:before{content:""}.ion-social-skype:before{content:""}.ion-social-skype-outline:before{content:""}.ion-social-snapchat:before{content:""}.ion-social-snapchat-outline:before{content:"ï“«"}.ion-social-tumblr:before{content:"ï‰"}.ion-social-tumblr-outline:before{content:""}.ion-social-tux:before{content:"ï‹…"}.ion-social-twitch:before{content:"ï“®"}.ion-social-twitch-outline:before{content:"ï“"}.ion-social-twitter:before{content:""}.ion-social-twitter-outline:before{content:""}.ion-social-usd:before{content:"ï“"}.ion-social-usd-outline:before{content:"ï’"}.ion-social-vimeo:before{content:""}.ion-social-vimeo-outline:before{content:""}.ion-social-whatsapp:before{content:"ï“°"}.ion-social-whatsapp-outline:before{content:""}.ion-social-windows:before{content:""}.ion-social-windows-outline:before{content:""}.ion-social-wordpress:before{content:""}.ion-social-wordpress-outline:before{content:""}.ion-social-yahoo:before{content:""}.ion-social-yahoo-outline:before{content:""}.ion-social-yen:before{content:""}.ion-social-yen-outline:before{content:""}.ion-social-youtube:before{content:"ï‰"}.ion-social-youtube-outline:before{content:""}.ion-soup-can:before{content:"ï“´"}.ion-soup-can-outline:before{content:""}.ion-speakerphone:before{content:""}.ion-speedometer:before{content:""}.ion-spoon:before{content:""}.ion-star:before{content:""}.ion-stats-bars:before{content:""}.ion-steam:before{content:""}.ion-stop:before{content:"ï‰"}.ion-thermometer:before{content:""}.ion-thumbsdown:before{content:"ï‰"}.ion-thumbsup:before{content:""}.ion-toggle:before{content:"ï•"}.ion-toggle-filled:before{content:"ï”"}.ion-transgender:before{content:""}.ion-trash-a:before{content:""}.ion-trash-b:before{content:""}.ion-trophy:before{content:"ï–"}.ion-tshirt:before{content:"ï“·"}.ion-tshirt-outline:before{content:"ï“¶"}.ion-umbrella:before{content:""}.ion-university:before{content:"ï—"}.ion-unlocked:before{content:""}.ion-upload:before{content:""}.ion-usb:before{content:""}.ion-videocamera:before{content:""}.ion-volume-high:before{content:""}.ion-volume-low:before{content:""}.ion-volume-medium:before{content:""}.ion-volume-mute:before{content:""}.ion-wand:before{content:"ï˜"}.ion-waterdrop:before{content:""}.ion-wifi:before{content:""}.ion-wineglass:before{content:""}.ion-woman:before{content:"ï‰"}.ion-wrench:before{content:""}.ion-xbox:before{content:""}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;vertical-align:baseline;font:inherit;font-size:100%}ol,ul{list-style:none}blockquote,q{quotes:none}audio:not([controls]){display:none;height:0}[hidden],template{display:none}script{display:none!important}html{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow:hidden;-ms-touch-action:pan-y;touch-action:pan-y}:focus,a,a:active,a:focus,a:hover,button,button:focus{outline:0}a[href]:hover{cursor:pointer}b,strong{font-weight:700}dfn{font-style:italic}address,cite{font-style:normal}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}code,kbd,pre,samp{font-size:1em;font-family:monospace,serif}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}button,input,select,textarea{margin:0;outline-offset:0;outline-style:none;outline-width:0;-webkit-font-smoothing:inherit;background-image:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ionic-body,body{-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;padding:0;color:#000;word-wrap:break-word;font-size:14px;font-family:-apple-system;font-family:"-apple-system","Helvetica Neue",Roboto,"Segoe UI",sans-serif;line-height:20px;text-rendering:optimizeLegibility;-webkit-backface-visibility:hidden;-ms-content-zooming:none}.bar,.scroll{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.scroll-content,.scroll-view{overflow:hidden;margin-top:-1px}.h1,.h2,.h3,.h4,.h5,.h6,.tab-item,button,h1,h2,h3,h4,h5,h6,input,select,textarea{font-family:"-apple-system","Helvetica Neue",Roboto,"Segoe UI",sans-serif}body.grade-b,body.grade-c{text-rendering:auto}.scroll-content{position:absolute;top:0;right:0;bottom:0;left:0;padding-top:1px;margin-bottom:-1px;width:auto;height:auto}.scroll-view,.scroll-view.overflow-scroll{position:relative}.menu .scroll-content.scroll-content-false{z-index:11}.scroll-view{display:block}.scroll-view.scroll-x{overflow-x:scroll;overflow-y:hidden}.scroll-view.scroll-y{overflow-x:hidden;overflow-y:scroll}.scroll-view.scroll-xy{overflow-x:scroll;overflow-y:scroll}.overflow-scroll,.overflow-scroll.pane{overflow-x:hidden;overflow-y:scroll}.scroll{user-select:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-transform-origin:left top;transform-origin:left top}@-ms-viewport{width:device-width}.scroll-bar{position:absolute;z-index:9999}.pane,.view{z-index:1}.scroll-bar-h{right:2px;bottom:3px;left:2px;height:3px}.scroll-bar-h .scroll-bar-indicator{height:100%}.scroll-bar-v{top:2px;right:3px;bottom:2px;width:3px}.scroll-bar-v .scroll-bar-indicator{width:100%}.scroll-bar-indicator{position:absolute;border-radius:4px;background:rgba(0,0,0,.3);opacity:1;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.backdrop,.scroll-bar-indicator.scroll-bar-fade-out{opacity:0}.platform-android .scroll-bar-indicator{border-radius:0}.grade-b .scroll-bar-indicator,.grade-c .scroll-bar-indicator{background:#aaa}.grade-b .scroll-bar-indicator.scroll-bar-fade-out,.grade-c .scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:none;transition:none}ion-infinite-scroll{height:60px;width:100%;display:block;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}#menu .footer ion-infinite-scroll .icon-help,ion-infinite-scroll #menu .footer .icon-help,ion-infinite-scroll .icon,ion-infinite-scroll .icon-alert,ion-infinite-scroll .icon-help{font-size:30px;color:#666}#menu .footer ion-infinite-scroll:not(.active) .icon-help:before,ion-infinite-scroll:not(.active) #menu .footer .icon-help:before,ion-infinite-scroll:not(.active) .icon-alert:before,ion-infinite-scroll:not(.active) .icon-help:before,ion-infinite-scroll:not(.active) .icon:before,ion-infinite-scroll:not(.active) .spinner{display:none}.view-container,address,blockquote small{display:block}.overflow-scroll{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;top:0;right:0;bottom:0;left:0;position:absolute}.overflow-scroll .scroll{position:static;height:100%}.has-header{top:44px}.no-header{top:0}.has-subheader{top:88px}.has-tabs-top{top:93px}.has-header.has-subheader.has-tabs-top{top:137px}.has-footer{bottom:44px}.has-subfooter{bottom:88px}.bar-footer.has-tabs,.has-tabs{bottom:49px}.bar-footer.has-tabs.pane,.has-tabs.pane{bottom:49px;height:auto}.bar-subfooter.has-tabs,.has-footer.has-tabs{bottom:93px}.action-sheet-wrapper,.pane,.view{bottom:0;left:0;width:100%;right:0}.pane{transform:translate3d(0,0,0);-webkit-transition-duration:0;transition-duration:0}.pane,.view{position:absolute;top:0;height:100%;background-color:#fff;overflow:hidden}.view-container{position:absolute;width:100%;height:100%}p{margin:0 0 10px}small{font-size:85%}.text-left{text-align:left}.text-right{text-align:right}.item.large-button-bar,.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#000;font-weight:500;line-height:1.2}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1}address,blockquote small,dd,dt{line-height:1.42857}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1:first-child,.h2:first-child,.h3:first-child,h1:first-child,h2:first-child,h3:first-child{margin-top:0}.h1+.h1,.h1+.h2,.h1+.h3,.h1+h1,.h1+h2,.h1+h3,.h2+.h1,.h2+.h2,.h2+.h3,.h2+h1,.h2+h2,.h2+h3,.h3+.h1,.h3+.h2,.h3+.h3,.h3+h1,.h3+h2,.h3+h3,h1+.h1,h1+.h2,h1+.h3,h1+h1,h1+h2,h1+h3,h2+.h1,h2+.h2,h2+.h3,h2+h1,h2+h2,h2+h3,h3+.h1,h3+.h2,h3+.h3,h3+h1,h3+h2,h3+h3{margin-top:10px}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}address,dl{margin-bottom:20px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}dt{font-weight:700}blockquote{margin:0 0 20px;padding:10px 20px;border-left:5px solid gray}blockquote p{font-weight:300;font-size:17.5px;line-height:1.25}.action-sheet-cancel .button,.bar .title{font-weight:500}blockquote p:last-child{margin-bottom:0}blockquote small:before{content:'\2014 \00A0'}blockquote:after,blockquote:before,q:after,q:before{content:""}a{-webkit-tap-highlight-color:transparent;color:#387ef5}a.subdued{padding-right:10px;color:#888;text-decoration:none}a.subdued:hover{text-decoration:none}a.subdued:last-child{padding-right:0}.action-sheet-backdrop{-webkit-transition:background-color 150ms ease-in-out;transition:background-color 150ms ease-in-out;position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:transparent}.action-sheet-backdrop.active{background-color:rgba(0,0,0,.4)}.action-sheet-wrapper{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:all cubic-bezier(.36,.66,.04,1) .5s;transition:all cubic-bezier(.36,.66,.04,1) .5s;position:absolute;max-width:500px;margin:auto}.action-sheet-up,.bar{-webkit-transform:translate3d(0,0,0)}.action-sheet-up{transform:translate3d(0,0,0)}.action-sheet{margin-left:8px;margin-right:8px;width:auto;z-index:11;overflow:hidden}.action-sheet .button{display:block;padding:1px;width:100%;border-radius:0;border-color:#d1d3d6;background-color:transparent;color:#007aff;font-size:21px}.action-sheet .button:hover{color:#007aff}.action-sheet .button.destructive,.action-sheet .button.destructive:hover{color:#ff3b30}.action-sheet .button.activated,.action-sheet .button.active{box-shadow:none;border-color:#d1d3d6;color:#007aff;background:#e4e5e7}#menu .footer .action-sheet-has-icons .icon-help,.action-sheet-has-icons #menu .footer .icon-help,.action-sheet-has-icons .icon,.action-sheet-has-icons .icon-alert,.action-sheet-has-icons .icon-help{position:absolute;left:16px}.action-sheet-title{padding:16px;color:#8f8f8f;text-align:center;font-size:13px}.action-sheet-group{margin-bottom:8px;border-radius:4px;background-color:#fff;overflow:hidden}.action-sheet-group .button{border-width:1px 0 0}.action-sheet-group .button:first-child:last-child,.bar{border-width:0}.action-sheet-options{background:#f1f2f3}.action-sheet-open .action-sheet-backdrop{pointer-events:auto}.platform-android .action-sheet-backdrop.active{background-color:rgba(0,0,0,.2)}.platform-android .action-sheet{margin:0}.platform-android .action-sheet .action-sheet-title,.platform-android .action-sheet .button{text-align:left;border-color:transparent;font-size:16px;color:inherit}.platform-android .action-sheet .action-sheet-title{font-size:14px;padding:16px;color:#666}.platform-android .action-sheet .button.activated,.platform-android .action-sheet .button.active{background:#e8e8e8}.platform-android .action-sheet-group{margin:0;border-radius:0;background-color:#fafafa}.platform-android .action-sheet-cancel{display:none}.platform-android .action-sheet-has-icons .button{padding-left:56px}.backdrop{position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,.4);-webkit-transition:.1s opacity linear;transition:.1s opacity linear}.bar,.bar .title,.bar-footer.item-input-inset,.nav-bar-block,.tabs{position:absolute}.backdrop.visible{visibility:visible}.backdrop.active{opacity:1}.bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;transform:translate3d(0,0,0);user-select:none;right:0;left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:44px;border-style:solid;border-top:1px solid transparent;background-color:#fff;background-size:0}.button,.disable-user-behavior{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.bar{border:none;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);background-position:bottom;background-size:100% 1px;background-repeat:no-repeat}}.bar.bar-clear{border:none;background:0 0;color:#fff}.bar.bar-clear .button,.bar.bar-clear .title{color:#fff}.bar.bar-light,.bar.bar-light .title,.bar.bar-stable .title{color:#444}.bar.item-input-inset .item-input-wrapper{margin-top:-1px}.bar.item-input-inset .item-input-wrapper input{padding-left:8px;width:94%;height:28px;background:0 0}.bar.bar-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%)}.bar.bar-light.bar-footer{background-image:linear-gradient(180deg,#ddd,#ddd 50%,transparent 50%)}.bar.bar-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.bar.bar-assertive,.bar.bar-assertive .title,.bar.bar-balanced .title,.bar.bar-calm,.bar.bar-calm .title,.bar.bar-dark,.bar.bar-dark .title,.bar.bar-energized,.bar.bar-energized .title,.bar.bar-positive,.bar.bar-positive .title,.bar.bar-royal,.bar.bar-royal .title{color:#fff}.bar.bar-stable.bar-footer{background-image:linear-gradient(180deg,#b2b2b2,#b2b2b2 50%,transparent 50%)}.bar.bar-positive{border-color:#0c60ee;background-color:#387ef5;background-image:linear-gradient(0deg,#0c60ee,#0c60ee 50%,transparent 50%)}.bar.bar-positive.bar-footer{background-image:linear-gradient(180deg,#0c60ee,#0c60ee 50%,transparent 50%)}.bar.bar-calm{border-color:#0a9dc7;background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9dc7,#0a9dc7 50%,transparent 50%)}.bar.bar-calm.bar-footer{background-image:linear-gradient(180deg,#0a9dc7,#0a9dc7 50%,transparent 50%)}.bar.bar-assertive{border-color:#e42112;background-color:#ef473a;background-image:linear-gradient(0deg,#e42112,#e42112 50%,transparent 50%)}.bar.bar-assertive.bar-footer{background-image:linear-gradient(180deg,#e42112,#e42112 50%,transparent 50%)}.bar.bar-balanced{border-color:#28a54c;background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);color:#fff}.bar.bar-balanced.bar-footer{background-image:linear-gradient(180deg,#28a54c,#28a54c 50%,transparent 50%)}.bar.bar-energized{border-color:#e6b500;background-color:#ffc900;background-image:linear-gradient(0deg,#e6b500,#e6b500 50%,transparent 50%)}.bar.bar-energized.bar-footer{background-image:linear-gradient(180deg,#e6b500,#e6b500 50%,transparent 50%)}.bar.bar-royal{border-color:#6b46e5;background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%)}.bar.bar-royal.bar-footer{background-image:linear-gradient(180deg,#6b46e5,#6b46e5 50%,transparent 50%)}.bar.bar-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%)}.bar.bar-dark.bar-footer{background-image:linear-gradient(180deg,#111,#111 50%,transparent 50%)}.bar .title{display:block;top:0;right:0;left:0;z-index:0;overflow:hidden;margin:0 10px;min-width:30px;height:43px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:17px;line-height:44px}.bar .title.title-left{text-align:left}.bar .title.title-right{text-align:right}.bar .title a{color:inherit}.bar .button,.bar button{z-index:1;padding:0 8px;min-width:initial;min-height:31px;font-weight:400;font-size:13px;line-height:32px}#menu .footer .bar .button .icon-help:before,#menu .footer .bar .button.icon-help:before,#menu .footer .bar button .icon-help:before,#menu .footer .bar button.icon-help:before,.bar #menu .footer .button.icon-help:before,.bar #menu .footer button.icon-help:before,.bar .button #menu .footer .icon-help:before,.bar .button .icon-alert:before,.bar .button .icon-help:before,.bar .button .icon:before,.bar .button.button-icon:before,.bar .button.icon-alert:before,.bar .button.icon-help:before,.bar .button.icon-left:before,.bar .button.icon-right:before,.bar .button.icon:before,.bar button #menu .footer .icon-help:before,.bar button .icon-alert:before,.bar button .icon-help:before,.bar button .icon:before,.bar button.button-icon:before,.bar button.icon-alert:before,.bar button.icon-help:before,.bar button.icon-left:before,.bar button.icon-right:before,.bar button.icon:before{padding-right:2px;padding-left:2px;font-size:20px;line-height:32px}.bar .button.button-icon,.bar button.button-icon{font-size:17px}#menu .footer .bar .button.button-icon .icon-help:before,#menu .footer .bar button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before,.bar button.button-icon #menu .footer .icon-help:before,.bar button.button-icon .icon-alert:before,.bar button.button-icon .icon-help:before,.bar button.button-icon .icon:before,.bar button.button-icon.icon-left:before,.bar button.button-icon.icon-right:before,.bar button.button-icon:before{vertical-align:top;font-size:32px;line-height:32px}.bar .button.button-clear,.bar .button.button-text,.bar button.button-clear,.bar button.button-text{padding-right:2px;padding-left:2px;font-weight:300;font-size:17px}#menu .footer .bar .button.button-clear .icon-help:before,#menu .footer .bar .button.button-clear.icon-help:before,#menu .footer .bar .button.button-text .icon-help:before,#menu .footer .bar .button.button-text.icon-help:before,#menu .footer .bar button.button-clear .icon-help:before,#menu .footer .bar button.button-clear.icon-help:before,#menu .footer .bar button.button-text .icon-help:before,#menu .footer .bar button.button-text.icon-help:before,.bar #menu .footer .button.button-clear.icon-help:before,.bar #menu .footer .button.button-text.icon-help:before,.bar #menu .footer button.button-clear.icon-help:before,.bar #menu .footer button.button-text.icon-help:before,.bar .button.button-clear #menu .footer .icon-help:before,.bar .button.button-clear .icon-alert:before,.bar .button.button-clear .icon-help:before,.bar .button.button-clear .icon:before,.bar .button.button-clear.icon-alert:before,.bar .button.button-clear.icon-help:before,.bar .button.button-clear.icon-left:before,.bar .button.button-clear.icon-right:before,.bar .button.button-clear.icon:before,.bar .button.button-text #menu .footer .icon-help:before,.bar .button.button-text .icon-alert:before,.bar .button.button-text .icon-help:before,.bar .button.button-text .icon:before,.bar .button.button-text.icon-alert:before,.bar .button.button-text.icon-help:before,.bar .button.icon-left.button-text:before,.bar .button.icon-right.button-text:before,.bar .button.icon.button-text:before,.bar button.button-clear #menu .footer .icon-help:before,.bar button.button-clear .icon-alert:before,.bar button.button-clear .icon-help:before,.bar button.button-clear .icon:before,.bar button.button-clear.icon-alert:before,.bar button.button-clear.icon-help:before,.bar button.button-clear.icon-left:before,.bar button.button-clear.icon-right:before,.bar button.button-clear.icon:before,.bar button.button-text #menu .footer .icon-help:before,.bar button.button-text .icon-alert:before,.bar button.button-text .icon-help:before,.bar button.button-text .icon:before,.bar button.button-text.icon-alert:before,.bar button.button-text.icon-help:before,.bar button.icon-left.button-text:before,.bar button.icon-right.button-text:before,.bar button.icon.button-text:before{font-size:32px;line-height:32px}.bar .button.back-button,.bar button.back-button{display:block;margin-right:5px;padding:0;white-space:nowrap;font-weight:400}.bar .button.back-button.activated,.bar .button.back-button.active,.bar button.back-button.activated,.bar button.back-button.active{opacity:.2}.bar .button-bar>.button,.bar .buttons>.button{min-height:31px;line-height:32px}.menu,.modal{min-height:100%;overflow:hidden}.bar .button+.button-bar,.bar .button-bar+.button{margin-left:5px}.bar .buttons,.bar .buttons.primary-buttons,.bar .buttons.secondary-buttons{display:inherit}.bar .buttons span{display:inline-block}.bar .buttons-left span{margin-right:5px;display:inherit}.bar .buttons-right span{margin-left:5px;display:inherit}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{position:absolute;right:5px;bottom:5px}.platform-android .nav-bar-has-subheader .bar{background-image:none}#menu .footer .platform-android .bar .back-button .icon-help:before,.platform-android .bar .back-button #menu .footer .icon-help:before,.platform-android .bar .back-button .icon-alert:before,.platform-android .bar .back-button .icon-help:before,.platform-android .bar .back-button .icon:before{font-size:24px}.platform-android .bar .title{font-size:19px;line-height:44px}.bar-light .button{border-color:#ddd;background-color:#fff;color:#444}.bar-light .button:hover{color:#444;text-decoration:none}.bar-light .button.activated,.bar-light .button.active{border-color:#ccc;background-color:#fafafa}.bar-light .button.button-clear,.bar-light .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-light .button.button-icon{border-color:transparent;background:0 0}.bar-stable .button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.bar-stable .button:hover{color:#444;text-decoration:none}.bar-stable .button.activated,.bar-stable .button.active{border-color:#a2a2a2;background-color:#e5e5e5}.bar-stable .button.button-clear,.bar-stable .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-stable .button.button-icon{border-color:transparent;background:0 0}.bar-positive .button{border-color:#0c60ee;background-color:#387ef5;color:#fff}.bar-positive .button:hover{color:#fff;text-decoration:none}.bar-positive .button.activated,.bar-positive .button.active{border-color:#0c60ee;background-color:#0c60ee}.bar-positive .button.button-clear,.bar-positive .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-positive .button.button-icon{border-color:transparent;background:0 0}.bar-calm .button{border-color:#0a9dc7;background-color:#11c1f3;color:#fff}.bar-calm .button:hover{color:#fff;text-decoration:none}.bar-calm .button.activated,.bar-calm .button.active{border-color:#0a9dc7;background-color:#0a9dc7}.bar-calm .button.button-clear,.bar-calm .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-calm .button.button-icon{border-color:transparent;background:0 0}.bar-assertive .button{border-color:#e42112;background-color:#ef473a;color:#fff}.bar-assertive .button:hover{color:#fff;text-decoration:none}.bar-assertive .button.activated,.bar-assertive .button.active{border-color:#e42112;background-color:#e42112}.bar-assertive .button.button-clear,.bar-assertive .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-assertive .button.button-icon{border-color:transparent;background:0 0}.bar-balanced .button{border-color:#28a54c;background-color:#33cd5f;color:#fff}.bar-balanced .button:hover{color:#fff;text-decoration:none}.bar-balanced .button.activated,.bar-balanced .button.active{border-color:#28a54c;background-color:#28a54c}.bar-balanced .button.button-clear,.bar-balanced .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-balanced .button.button-icon{border-color:transparent;background:0 0}.bar-energized .button{border-color:#e6b500;background-color:#ffc900;color:#fff}.bar-energized .button:hover{color:#fff;text-decoration:none}.bar-energized .button.activated,.bar-energized .button.active{border-color:#e6b500;background-color:#e6b500}.bar-energized .button.button-clear,.bar-energized .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-energized .button.button-icon{border-color:transparent;background:0 0}.bar-royal .button{border-color:#6b46e5;background-color:#886aea;color:#fff}.bar-royal .button:hover{color:#fff;text-decoration:none}.bar-royal .button.activated,.bar-royal .button.active{border-color:#6b46e5;background-color:#6b46e5}.bar-royal .button.button-clear,.bar-royal .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-royal .button.button-icon{border-color:transparent;background:0 0}.bar-dark .button{border-color:#111;background-color:#444;color:#fff}.bar-dark .button:hover{color:#fff;text-decoration:none}.bar-dark .button.activated,.bar-dark .button.active{border-color:#000;background-color:#262626}.bar-dark .button.button-clear,.bar-dark .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-dark .button.button-icon{border-color:transparent;background:0 0}.bar-header{top:0;border-top-width:0;border-bottom-width:1px}.bar-footer,.tabs{border-top-width:1px;bottom:0}.bar-header.has-tabs-top,.tabs-top .bar-header{border-bottom-width:0;background-image:none}.bar-footer{border-bottom-width:0;background-position:top;height:44px}.bar-footer .title{height:43px;line-height:44px}.bar-tabs{padding:0}.bar-subheader{top:44px;height:44px}.bar-subheader .title{height:43px;line-height:44px}.bar-subfooter{bottom:44px;height:44px}.bar-subfooter .title{height:43px;line-height:44px}.nav-bar-block{top:0;right:0;left:0;z-index:9}.bar .back-button.hide,.bar .buttons .hide{display:none}.nav-bar-tabs-top .bar{background-image:none}.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:horizontal;-moz-flex-direction:horizontal;-ms-flex-direction:horizontal;flex-direction:horizontal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444;z-index:5;width:100%;height:49px;border-style:solid;background-size:0;line-height:49px}.tabs .tab-item .badge{background-color:#444;color:#f8f8f8}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.tabs{padding-top:2px;border-top:none!important;border-bottom:none;background-position:top;background-size:100% 1px;background-repeat:no-repeat}}.tabs-light>.tabs,.tabs.tabs-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.tabs-light>.tabs .tab-item .badge,.tabs.tabs-light .tab-item .badge{background-color:#444;color:#fff}.tabs-stable>.tabs,.tabs.tabs-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.tabs-stable>.tabs .tab-item .badge,.tabs.tabs-stable .tab-item .badge{background-color:#444;color:#f8f8f8}.tabs-positive>.tabs,.tabs.tabs-positive{border-color:#0c60ee;background-color:#387ef5;background-image:linear-gradient(0deg,#0c60ee,#0c60ee 50%,transparent 50%);color:#fff}.tabs-positive>.tabs .tab-item .badge,.tabs.tabs-positive .tab-item .badge{background-color:#fff;color:#387ef5}.tabs-calm>.tabs,.tabs.tabs-calm{border-color:#0a9dc7;background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9dc7,#0a9dc7 50%,transparent 50%);color:#fff}.tabs-calm>.tabs .tab-item .badge,.tabs.tabs-calm .tab-item .badge{background-color:#fff;color:#11c1f3}.tabs-assertive>.tabs,.tabs.tabs-assertive{border-color:#e42112;background-color:#ef473a;background-image:linear-gradient(0deg,#e42112,#e42112 50%,transparent 50%);color:#fff}.tabs-assertive>.tabs .tab-item .badge,.tabs.tabs-assertive .tab-item .badge{background-color:#fff;color:#ef473a}.tabs-balanced>.tabs,.tabs.tabs-balanced{border-color:#28a54c;background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);color:#fff}.tabs-balanced>.tabs .tab-item .badge,.tabs.tabs-balanced .tab-item .badge{background-color:#fff;color:#33cd5f}.tabs-energized>.tabs,.tabs.tabs-energized{border-color:#e6b500;background-color:#ffc900;background-image:linear-gradient(0deg,#e6b500,#e6b500 50%,transparent 50%);color:#fff}.tabs-energized>.tabs .tab-item .badge,.tabs.tabs-energized .tab-item .badge{background-color:#fff;color:#ffc900}.tabs-royal>.tabs,.tabs.tabs-royal{border-color:#6b46e5;background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);color:#fff}.tabs-royal>.tabs .tab-item .badge,.tabs.tabs-royal .tab-item .badge{background-color:#fff;color:#886aea}.tabs-dark>.tabs,.tabs.tabs-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.tabs-striped .tabs,.tabs-striped.tabs-light .tabs{background-color:#fff}.tabs-dark>.tabs .tab-item .badge,.tabs.tabs-dark .tab-item .badge{background-color:#fff;color:#444}.tabs-striped .tabs{background-image:none;border:none;border-bottom:1px solid #ddd;padding-top:2px}.tabs-striped .tab-item.activated,.tabs-striped .tab-item.active,.tabs-striped .tab-item.tab-item-active{margin-top:-2px;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped .tab-item.activated .badge,.tabs-striped .tab-item.active .badge,.tabs-striped .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-light .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-light .tab-item.activated,.tabs-striped.tabs-light .tab-item.active,.tabs-striped.tabs-light .tab-item.tab-item-active{margin-top:-2px;color:#444;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped.tabs-stable .tabs{background-color:#f8f8f8}.tabs-striped.tabs-stable .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-stable .tab-item.activated,.tabs-striped.tabs-stable .tab-item.active,.tabs-striped.tabs-stable .tab-item.tab-item-active{margin-top:-2px;color:#444;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped.tabs-positive .tabs{background-color:#387ef5}.tabs-striped.tabs-positive .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-positive .tab-item.activated,.tabs-striped.tabs-positive .tab-item.active,.tabs-striped.tabs-positive .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-calm .tabs{background-color:#11c1f3}.tabs-striped.tabs-calm .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-calm .tab-item.activated,.tabs-striped.tabs-calm .tab-item.active,.tabs-striped.tabs-calm .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-assertive .tabs{background-color:#ef473a}.tabs-striped.tabs-assertive .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-assertive .tab-item.activated,.tabs-striped.tabs-assertive .tab-item.active,.tabs-striped.tabs-assertive .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-balanced .tabs{background-color:#33cd5f}.tabs-striped.tabs-balanced .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-balanced .tab-item.activated,.tabs-striped.tabs-balanced .tab-item.active,.tabs-striped.tabs-balanced .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-energized .tabs{background-color:#ffc900}.tabs-striped.tabs-energized .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-energized .tab-item.activated,.tabs-striped.tabs-energized .tab-item.active,.tabs-striped.tabs-energized .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-royal .tabs{background-color:#886aea}.tabs-striped.tabs-royal .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-royal .tab-item.activated,.tabs-striped.tabs-royal .tab-item.active,.tabs-striped.tabs-royal .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-dark .tabs{background-color:#444}.tabs-striped.tabs-dark .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-dark .tab-item.activated,.tabs-striped.tabs-dark .tab-item.active,.tabs-striped.tabs-dark .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-background-light .tabs{background-color:#fff;background-image:none}.tabs-striped.tabs-background-stable .tabs{background-color:#f8f8f8;background-image:none}.tabs-striped.tabs-background-positive .tabs{background-color:#387ef5;background-image:none}.tabs-striped.tabs-background-calm .tabs{background-color:#11c1f3;background-image:none}.tabs-striped.tabs-background-assertive .tabs{background-color:#ef473a;background-image:none}.tabs-striped.tabs-background-balanced .tabs{background-color:#33cd5f;background-image:none}.tabs-striped.tabs-background-energized .tabs{background-color:#ffc900;background-image:none}.tabs-striped.tabs-background-royal .tabs{background-color:#886aea;background-image:none}.tabs-striped.tabs-background-dark .tabs{background-color:#444;background-image:none}.tabs-striped.tabs-color-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-color-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-light .tab-item.activated,.tabs-striped.tabs-color-light .tab-item.active,.tabs-striped.tabs-color-light .tab-item.tab-item-active{margin-top:-2px;color:#fff;border:0 solid #fff;border-top-width:2px}.tabs-striped.tabs-color-light .tab-item.activated .badge,.tabs-striped.tabs-color-light .tab-item.active .badge,.tabs-striped.tabs-color-light .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-striped.tabs-color-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-stable .tab-item.activated,.tabs-striped.tabs-color-stable .tab-item.active,.tabs-striped.tabs-color-stable .tab-item.tab-item-active{margin-top:-2px;color:#f8f8f8;border:0 solid #f8f8f8;border-top-width:2px}.tabs-striped.tabs-color-stable .tab-item.activated .badge,.tabs-striped.tabs-color-stable .tab-item.active .badge,.tabs-striped.tabs-color-stable .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-positive .tab-item{color:rgba(56,126,245,.4);opacity:1}.tabs-striped.tabs-color-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-positive .tab-item.activated,.tabs-striped.tabs-color-positive .tab-item.active,.tabs-striped.tabs-color-positive .tab-item.tab-item-active{margin-top:-2px;color:#387ef5;border:0 solid #387ef5;border-top-width:2px}.tabs-striped.tabs-color-positive .tab-item.activated .badge,.tabs-striped.tabs-color-positive .tab-item.active .badge,.tabs-striped.tabs-color-positive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-calm .tab-item{color:rgba(17,193,243,.4);opacity:1}.tabs-striped.tabs-color-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-calm .tab-item.activated,.tabs-striped.tabs-color-calm .tab-item.active,.tabs-striped.tabs-color-calm .tab-item.tab-item-active{margin-top:-2px;color:#11c1f3;border:0 solid #11c1f3;border-top-width:2px}.tabs-striped.tabs-color-calm .tab-item.activated .badge,.tabs-striped.tabs-color-calm .tab-item.active .badge,.tabs-striped.tabs-color-calm .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-assertive .tab-item{color:rgba(239,71,58,.4);opacity:1}.tabs-striped.tabs-color-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-assertive .tab-item.activated,.tabs-striped.tabs-color-assertive .tab-item.active,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active{margin-top:-2px;color:#ef473a;border:0 solid #ef473a;border-top-width:2px}.tabs-striped.tabs-color-assertive .tab-item.activated .badge,.tabs-striped.tabs-color-assertive .tab-item.active .badge,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-balanced .tab-item{color:rgba(51,205,95,.4);opacity:1}.tabs-striped.tabs-color-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-balanced .tab-item.activated,.tabs-striped.tabs-color-balanced .tab-item.active,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active{margin-top:-2px;color:#33cd5f;border:0 solid #33cd5f;border-top-width:2px}.tabs-striped.tabs-color-balanced .tab-item.activated .badge,.tabs-striped.tabs-color-balanced .tab-item.active .badge,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-energized .tab-item{color:rgba(255,201,0,.4);opacity:1}.tabs-striped.tabs-color-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-energized .tab-item.activated,.tabs-striped.tabs-color-energized .tab-item.active,.tabs-striped.tabs-color-energized .tab-item.tab-item-active{margin-top:-2px;color:#ffc900;border:0 solid #ffc900;border-top-width:2px}.tabs-striped.tabs-color-energized .tab-item.activated .badge,.tabs-striped.tabs-color-energized .tab-item.active .badge,.tabs-striped.tabs-color-energized .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-royal .tab-item{color:rgba(136,106,234,.4);opacity:1}.tabs-striped.tabs-color-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-royal .tab-item.activated,.tabs-striped.tabs-color-royal .tab-item.active,.tabs-striped.tabs-color-royal .tab-item.tab-item-active{margin-top:-2px;color:#886aea;border:0 solid #886aea;border-top-width:2px}.tabs-striped.tabs-color-royal .tab-item.activated .badge,.tabs-striped.tabs-color-royal .tab-item.active .badge,.tabs-striped.tabs-color-royal .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-color-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-dark .tab-item.activated,.tabs-striped.tabs-color-dark .tab-item.active,.tabs-striped.tabs-color-dark .tab-item.tab-item-active{margin-top:-2px;color:#444;border:0 solid #444;border-top-width:2px}.tabs-striped.tabs-color-dark .tab-item.activated .badge,.tabs-striped.tabs-color-dark .tab-item.active .badge,.tabs-striped.tabs-color-dark .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-background-light .tabs,.tabs-background-light>.tabs{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);border-color:#ddd}.tabs-background-stable .tabs,.tabs-background-stable>.tabs{background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);border-color:#b2b2b2}.tabs-background-positive .tabs,.tabs-background-positive>.tabs{background-color:#387ef5;background-image:linear-gradient(0deg,#0c60ee,#0c60ee 50%,transparent 50%);border-color:#0c60ee}.tabs-background-calm .tabs,.tabs-background-calm>.tabs{background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9dc7,#0a9dc7 50%,transparent 50%);border-color:#0a9dc7}.tabs-background-assertive .tabs,.tabs-background-assertive>.tabs{background-color:#ef473a;background-image:linear-gradient(0deg,#e42112,#e42112 50%,transparent 50%);border-color:#e42112}.tabs-background-balanced .tabs,.tabs-background-balanced>.tabs{background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);border-color:#28a54c}.tabs-background-energized .tabs,.tabs-background-energized>.tabs{background-color:#ffc900;background-image:linear-gradient(0deg,#e6b500,#e6b500 50%,transparent 50%);border-color:#e6b500}.tabs-background-royal .tabs,.tabs-background-royal>.tabs{background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);border-color:#6b46e5}.tabs-background-dark .tabs,.tabs-background-dark>.tabs{background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);border-color:#111}.tabs-color-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-color-light .tab-item .badge{opacity:.4}.tabs-color-light .tab-item.activated,.tabs-color-light .tab-item.active,.tabs-color-light .tab-item.tab-item-active{color:#fff;border:0 solid #fff}.tabs-color-light .tab-item.activated .badge,.tabs-color-light .tab-item.active .badge,.tabs-color-light .tab-item.tab-item-active .badge{opacity:1}.tabs-color-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-color-stable .tab-item .badge{opacity:.4}.tabs-color-stable .tab-item.activated,.tabs-color-stable .tab-item.active,.tabs-color-stable .tab-item.tab-item-active{color:#f8f8f8;border:0 solid #f8f8f8}.tabs-color-stable .tab-item.activated .badge,.tabs-color-stable .tab-item.active .badge,.tabs-color-stable .tab-item.tab-item-active .badge{opacity:1}.tabs-color-positive .tab-item{color:rgba(56,126,245,.4);opacity:1}.tabs-color-positive .tab-item .badge{opacity:.4}.tabs-color-positive .tab-item.activated,.tabs-color-positive .tab-item.active,.tabs-color-positive .tab-item.tab-item-active{color:#387ef5;border:0 solid #387ef5}.tabs-color-positive .tab-item.activated .badge,.tabs-color-positive .tab-item.active .badge,.tabs-color-positive .tab-item.tab-item-active .badge{opacity:1}.tabs-color-calm .tab-item{color:rgba(17,193,243,.4);opacity:1}.tabs-color-calm .tab-item .badge{opacity:.4}.tabs-color-calm .tab-item.activated,.tabs-color-calm .tab-item.active,.tabs-color-calm .tab-item.tab-item-active{color:#11c1f3;border:0 solid #11c1f3}.tabs-color-calm .tab-item.activated .badge,.tabs-color-calm .tab-item.active .badge,.tabs-color-calm .tab-item.tab-item-active .badge{opacity:1}.tabs-color-assertive .tab-item{color:rgba(239,71,58,.4);opacity:1}.tabs-color-assertive .tab-item .badge{opacity:.4}.tabs-color-assertive .tab-item.activated,.tabs-color-assertive .tab-item.active,.tabs-color-assertive .tab-item.tab-item-active{color:#ef473a;border:0 solid #ef473a}.tabs-color-assertive .tab-item.activated .badge,.tabs-color-assertive .tab-item.active .badge,.tabs-color-assertive .tab-item.tab-item-active .badge{opacity:1}.tabs-color-balanced .tab-item{color:rgba(51,205,95,.4);opacity:1}.tabs-color-balanced .tab-item .badge{opacity:.4}.tabs-color-balanced .tab-item.activated,.tabs-color-balanced .tab-item.active,.tabs-color-balanced .tab-item.tab-item-active{color:#33cd5f;border:0 solid #33cd5f}.tabs-color-balanced .tab-item.activated .badge,.tabs-color-balanced .tab-item.active .badge,.tabs-color-balanced .tab-item.tab-item-active .badge{opacity:1}.tabs-color-energized .tab-item{color:rgba(255,201,0,.4);opacity:1}.tabs-color-energized .tab-item .badge{opacity:.4}.tabs-color-energized .tab-item.activated,.tabs-color-energized .tab-item.active,.tabs-color-energized .tab-item.tab-item-active{color:#ffc900;border:0 solid #ffc900}.tabs-color-energized .tab-item.activated .badge,.tabs-color-energized .tab-item.active .badge,.tabs-color-energized .tab-item.tab-item-active .badge{opacity:1}.tabs-color-royal .tab-item{color:rgba(136,106,234,.4);opacity:1}.tabs-color-royal .tab-item .badge{opacity:.4}.tabs-color-royal .tab-item.activated,.tabs-color-royal .tab-item.active,.tabs-color-royal .tab-item.tab-item-active{color:#886aea;border:0 solid #886aea}.tabs-color-royal .tab-item.activated .badge,.tabs-color-royal .tab-item.active .badge,.tabs-color-royal .tab-item.tab-item-active .badge{opacity:1}.tabs-color-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-color-dark .tab-item .badge{opacity:.4}.tabs-color-dark .tab-item.activated,.tabs-color-dark .tab-item.active,.tabs-color-dark .tab-item.tab-item-active{color:#444;border:0 solid #444}.tabs-color-dark .tab-item.activated .badge,.tabs-color-dark .tab-item.active .badge,.tabs-color-dark .tab-item.tab-item-active .badge{opacity:1}ion-tabs.tabs-color-active-light .tab-item{color:#444}ion-tabs.tabs-color-active-light .tab-item.activated,ion-tabs.tabs-color-active-light .tab-item.active,ion-tabs.tabs-color-active-light .tab-item.tab-item-active{color:#fff}ion-tabs.tabs-striped.tabs-color-active-light .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-light .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-light .tab-item.tab-item-active{border-color:#fff;color:#fff}ion-tabs.tabs-color-active-stable .tab-item{color:#444}ion-tabs.tabs-color-active-stable .tab-item.activated,ion-tabs.tabs-color-active-stable .tab-item.active,ion-tabs.tabs-color-active-stable .tab-item.tab-item-active{color:#f8f8f8}ion-tabs.tabs-striped.tabs-color-active-stable .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-stable .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-stable .tab-item.tab-item-active{border-color:#f8f8f8;color:#f8f8f8}ion-tabs.tabs-color-active-positive .tab-item{color:#444}ion-tabs.tabs-color-active-positive .tab-item.activated,ion-tabs.tabs-color-active-positive .tab-item.active,ion-tabs.tabs-color-active-positive .tab-item.tab-item-active{color:#387ef5}ion-tabs.tabs-striped.tabs-color-active-positive .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-positive .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-positive .tab-item.tab-item-active{border-color:#387ef5;color:#387ef5}ion-tabs.tabs-color-active-calm .tab-item{color:#444}ion-tabs.tabs-color-active-calm .tab-item.activated,ion-tabs.tabs-color-active-calm .tab-item.active,ion-tabs.tabs-color-active-calm .tab-item.tab-item-active{color:#11c1f3}ion-tabs.tabs-striped.tabs-color-active-calm .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-calm .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-calm .tab-item.tab-item-active{border-color:#11c1f3;color:#11c1f3}ion-tabs.tabs-color-active-assertive .tab-item{color:#444}ion-tabs.tabs-color-active-assertive .tab-item.activated,ion-tabs.tabs-color-active-assertive .tab-item.active,ion-tabs.tabs-color-active-assertive .tab-item.tab-item-active{color:#ef473a}ion-tabs.tabs-striped.tabs-color-active-assertive .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-assertive .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-assertive .tab-item.tab-item-active{border-color:#ef473a;color:#ef473a}ion-tabs.tabs-color-active-balanced .tab-item{color:#444}ion-tabs.tabs-color-active-balanced .tab-item.activated,ion-tabs.tabs-color-active-balanced .tab-item.active,ion-tabs.tabs-color-active-balanced .tab-item.tab-item-active{color:#33cd5f}ion-tabs.tabs-striped.tabs-color-active-balanced .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-balanced .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-balanced .tab-item.tab-item-active{border-color:#33cd5f;color:#33cd5f}ion-tabs.tabs-color-active-energized .tab-item{color:#444}ion-tabs.tabs-color-active-energized .tab-item.activated,ion-tabs.tabs-color-active-energized .tab-item.active,ion-tabs.tabs-color-active-energized .tab-item.tab-item-active{color:#ffc900}ion-tabs.tabs-striped.tabs-color-active-energized .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-energized .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-energized .tab-item.tab-item-active{border-color:#ffc900;color:#ffc900}ion-tabs.tabs-color-active-royal .tab-item{color:#444}ion-tabs.tabs-color-active-royal .tab-item.activated,ion-tabs.tabs-color-active-royal .tab-item.active,ion-tabs.tabs-color-active-royal .tab-item.tab-item-active{color:#886aea}ion-tabs.tabs-striped.tabs-color-active-royal .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-royal .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-royal .tab-item.tab-item-active{border-color:#886aea;color:#886aea}ion-tabs.tabs-color-active-dark .tab-item{color:#fff}ion-tabs.tabs-color-active-dark .tab-item.activated,ion-tabs.tabs-color-active-dark .tab-item.active,ion-tabs.tabs-color-active-dark .tab-item.tab-item-active{color:#444}ion-tabs.tabs-striped.tabs-color-active-dark .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-dark .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-dark .tab-item.tab-item-active{border-color:#444;color:#444}.tabs-top.tabs-striped{padding-bottom:0}.tabs-top.tabs-striped .tab-item{background:0 0;-webkit-transition:color .1s ease;-moz-transition:color .1s ease;-ms-transition:color .1s ease;-o-transition:color .1s ease;transition:color .1s ease}.tabs-top.tabs-striped .tab-item.activated,.tabs-top.tabs-striped .tab-item.active,.tabs-top.tabs-striped .tab-item.tab-item-active{margin-top:1px;border-width:0 0 2px!important;border-style:solid}.tabs-top.tabs-striped .tab-item.activated>.badge,.tabs-top.tabs-striped .tab-item.activated>i,.tabs-top.tabs-striped .tab-item.active>.badge,.tabs-top.tabs-striped .tab-item.active>i,.tabs-top.tabs-striped .tab-item.tab-item-active>.badge,.tabs-top.tabs-striped .tab-item.tab-item-active>i{margin-top:-1px}.tabs-top.tabs-striped .tab-item .badge{-webkit-transition:color .2s ease;-moz-transition:color .2s ease;-ms-transition:color .2s ease;-o-transition:color .2s ease;transition:color .2s ease}.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated i,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active i,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active i{display:block;margin-top:-1px}.tabs-top.tabs-striped.tabs-icon-left .tab-item{margin-top:1px}.tabs-top.tabs-striped.tabs-icon-left .tab-item.activated .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.activated i,.tabs-top.tabs-striped.tabs-icon-left .tab-item.active .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.active i,.tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active i{margin-top:-.1em}.tabs-top>.tabs,.tabs.tabs-top{top:44px;padding-top:0;background-position:bottom;border-top-width:0;border-bottom-width:1px}.tabs-top>.tabs .tab-item.activated .badge,.tabs-top>.tabs .tab-item.active .badge,.tabs-top>.tabs .tab-item.tab-item-active .badge,.tabs.tabs-top .tab-item.activated .badge,.tabs.tabs-top .tab-item.active .badge,.tabs.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-top~.bar-header{border-bottom-width:0}.tab-item{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;max-width:150px;height:100%;color:inherit;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:14px;opacity:.7}.tab-item:hover{cursor:pointer}.tab-item.tab-hidden,.tabs-item-hide>.tabs,.tabs.tabs-item-hide{display:none}.tabs-icon-bottom.tabs .tab-item,.tabs-icon-bottom>.tabs .tab-item,.tabs-icon-top.tabs .tab-item,.tabs-icon-top>.tabs .tab-item{font-size:10px;line-height:14px}#menu .footer .tab-item .icon-help,.tab-item #menu .footer .icon-help,.tab-item .icon,.tab-item .icon-alert,.tab-item .icon-help{display:block;margin:0 auto;height:32px;font-size:32px}.tabs-icon-left.tabs .tab-item,.tabs-icon-left>.tabs .tab-item,.tabs-icon-right.tabs .tab-item,.tabs-icon-right>.tabs .tab-item{font-size:10px}#menu .footer .tabs-icon-left.tabs .tab-item .icon-help,#menu .footer .tabs-icon-left>.tabs .tab-item .icon-help,#menu .footer .tabs-icon-right.tabs .tab-item .icon-help,#menu .footer .tabs-icon-right>.tabs .tab-item .icon-help,.tabs-icon-left.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left.tabs .tab-item .icon-alert,.tabs-icon-left.tabs .tab-item .icon-help,.tabs-icon-left.tabs .tab-item .tab-title,.tabs-icon-left>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon-alert,.tabs-icon-left>.tabs .tab-item .icon-help,.tabs-icon-left>.tabs .tab-item .tab-title,.tabs-icon-right.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon-alert,.tabs-icon-right.tabs .tab-item .icon-help,.tabs-icon-right.tabs .tab-item .tab-title,.tabs-icon-right>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right>.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon-alert,.tabs-icon-right>.tabs .tab-item .icon-help,.tabs-icon-right>.tabs .tab-item .tab-title{display:inline-block;vertical-align:top;margin-top:-.1em}#menu .footer .tabs-icon-left.tabs .tab-item .icon-help:before,#menu .footer .tabs-icon-left>.tabs .tab-item .icon-help:before,#menu .footer .tabs-icon-right.tabs .tab-item .icon-help:before,#menu .footer .tabs-icon-right>.tabs .tab-item .icon-help:before,.tabs-icon-left.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-left.tabs .tab-item .icon-alert:before,.tabs-icon-left.tabs .tab-item .icon-help:before,.tabs-icon-left.tabs .tab-item .icon:before,.tabs-icon-left.tabs .tab-item .tab-title:before,.tabs-icon-left>.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-left>.tabs .tab-item .icon-alert:before,.tabs-icon-left>.tabs .tab-item .icon-help:before,.tabs-icon-left>.tabs .tab-item .icon:before,.tabs-icon-left>.tabs .tab-item .tab-title:before,.tabs-icon-right.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-right.tabs .tab-item .icon-alert:before,.tabs-icon-right.tabs .tab-item .icon-help:before,.tabs-icon-right.tabs .tab-item .icon:before,.tabs-icon-right.tabs .tab-item .tab-title:before,.tabs-icon-right>.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-right>.tabs .tab-item .icon-alert:before,.tabs-icon-right>.tabs .tab-item .icon-help:before,.tabs-icon-right>.tabs .tab-item .icon:before,.tabs-icon-right>.tabs .tab-item .tab-title:before{font-size:24px;line-height:49px}#menu .footer .tabs-icon-left.tabs .tab-item .icon-help,#menu .footer .tabs-icon-left>.tabs .tab-item .icon-help,.tabs-icon-left.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left.tabs .tab-item .icon-alert,.tabs-icon-left.tabs .tab-item .icon-help,.tabs-icon-left>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon-alert,.tabs-icon-left>.tabs .tab-item .icon-help{padding-right:3px}#menu .footer .tabs-icon-right.tabs .tab-item .icon-help,#menu .footer .tabs-icon-right>.tabs .tab-item .icon-help,.tabs-icon-right.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon-alert,.tabs-icon-right.tabs .tab-item .icon-help,.tabs-icon-right>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right>.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon-alert,.tabs-icon-right>.tabs .tab-item .icon-help{padding-left:3px}#menu .footer .tabs-icon-only.tabs .icon-help,#menu .footer .tabs-icon-only>.tabs .icon-help,.tabs-icon-only.tabs #menu .footer .icon-help,.tabs-icon-only.tabs .icon,.tabs-icon-only.tabs .icon-alert,.tabs-icon-only.tabs .icon-help,.tabs-icon-only>.tabs #menu .footer .icon-help,.tabs-icon-only>.tabs .icon,.tabs-icon-only>.tabs .icon-alert,.tabs-icon-only>.tabs .icon-help{line-height:inherit}.tab-item.has-badge{position:relative}.tab-item .badge{position:absolute;top:4%;right:33%;right:calc(50% - 26px);padding:1px 6px;height:auto;font-size:12px;line-height:16px}.tab-item.activated,.tab-item.active,.tab-item.tab-item-active{opacity:1}.tab-item.activated.tab-item-light,.tab-item.active.tab-item-light,.tab-item.tab-item-active.tab-item-light{color:#fff}.tab-item.activated.tab-item-stable,.tab-item.active.tab-item-stable,.tab-item.tab-item-active.tab-item-stable{color:#f8f8f8}.tab-item.activated.tab-item-positive,.tab-item.active.tab-item-positive,.tab-item.tab-item-active.tab-item-positive{color:#387ef5}.tab-item.activated.tab-item-calm,.tab-item.active.tab-item-calm,.tab-item.tab-item-active.tab-item-calm{color:#11c1f3}.tab-item.activated.tab-item-assertive,.tab-item.active.tab-item-assertive,.tab-item.tab-item-active.tab-item-assertive{color:#ef473a}.tab-item.activated.tab-item-balanced,.tab-item.active.tab-item-balanced,.tab-item.tab-item-active.tab-item-balanced{color:#33cd5f}.tab-item.activated.tab-item-energized,.tab-item.active.tab-item-energized,.tab-item.tab-item-active.tab-item-energized{color:#ffc900}.tab-item.activated.tab-item-royal,.tab-item.active.tab-item-royal,.tab-item.tab-item-active.tab-item-royal{color:#886aea}.tab-item.activated.tab-item-dark,.tab-item.active.tab-item-dark,.tab-item.tab-item-active.tab-item-dark{color:#444}.item.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:0}#menu .footer .item.tabs .icon-help:before,.item.tabs #menu .footer .icon-help:before,.item.tabs .icon-alert:before,.item.tabs .icon-help:before,.item.tabs .icon:before{position:relative}.tab-item.disabled,.tab-item[disabled]{opacity:.4;cursor:default;pointer-events:none}.nav-bar-tabs-top.hide~.view-container .tabs-top .tabs{top:0}.pane[hide-nav-bar=true] .has-tabs-top{top:49px}.menu{position:absolute;top:0;bottom:0;z-index:0;max-height:100%;width:275px}.menu .scroll-content{z-index:10}.menu .bar-header{z-index:11}.menu-content{-webkit-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.menu-open .menu-content .scroll-content:not(.overflow-scroll){overflow:hidden}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.aside-open.aside-resizing .menu-right{display:none}.modal,.popover{z-index:10;display:block}.menu-animated{-webkit-transition:-webkit-transform .2s ease;transition:transform .2s ease}.modal-backdrop,.modal-backdrop-bg{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%}.modal{position:absolute;top:0;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader,.platform-ios.platform-cordova .modal-wrapper .modal .has-header,.platform-ios.platform-cordova .modal-wrapper .modal .tabs-top>.tabs,.platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top{top:44px}.platform-ios.platform-cordova .modal-wrapper .modal .has-subheader{top:88px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top{top:93px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top{top:137px}.modal-backdrop-bg{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-color:#000;opacity:0}.active .modal-backdrop-bg{opacity:.5}}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.modal-open.loading-active .modal,.modal-open.loading-active .modal-backdrop,.popover-open{pointer-events:none}.popover-backdrop{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:transparent}.popover-backdrop.active{background-color:rgba(0,0,0,.1)}.popover{left:50%;margin-top:12px;margin-left:-110px;height:280px;width:220px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.popover .item:first-child{border-top:0}.popover .item:last-child{border-bottom:0}.popover.popover-bottom{margin-top:-12px}.popover,.popover .bar-header{border-radius:2px}.popover .scroll-content{z-index:1;margin:2px 0}.popover .bar-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.popover .has-header{border-top-right-radius:0;border-top-left-radius:0}.popover-arrow{display:none}.platform-ios .popover{box-shadow:0 0 40px rgba(0,0,0,.08);border-radius:10px}.platform-ios .popover .bar-header{-webkit-border-top-right-radius:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;border-top-left-radius:10px}.platform-ios .popover .scroll-content{margin:8px 0;border-radius:10px}.platform-ios .popover .scroll-content.has-header{margin-top:0}.platform-ios .popover-arrow{position:absolute;display:block;top:-17px;width:30px;height:19px;overflow:hidden}.popup-container,.popup-container .popup{display:-webkit-box;display:-moz-box;display:-moz-flex;display:-ms-flexbox}.platform-ios .popover-arrow:after{position:absolute;top:12px;left:5px;width:20px;height:20px;background-color:#fff;border-radius:3px;content:'';-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.platform-ios .popover-bottom .popover-arrow{top:auto;bottom:-10px}.platform-ios .popover-bottom .popover-arrow:after{top:-6px}.loading-container,.popup-container{position:absolute;left:0;top:0;right:0;bottom:0}.platform-android .popover{margin-top:-32px;background-color:#fafafa;box-shadow:0 2px 6px rgba(0,0,0,.35)}.platform-android .popover .item{border-color:#fafafa;background-color:#fafafa;color:#4d4d4d}.platform-android .popover.popover-bottom{margin-top:32px}.platform-android .popover-backdrop,.platform-android .popover-backdrop.active{background-color:transparent}.popover-open .popover,.popover-open .popover-backdrop{pointer-events:auto}.popover-open.loading-active .popover,.popover-open.loading-active .popover-backdrop,.popup-open,.popup-open.modal-open .modal{pointer-events:none}@media (min-width:680px){.popover{width:360px;margin-left:-180px}}.popup-container{background:0 0;display:-webkit-flex;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;z-index:12;visibility:hidden}.popup-container.popup-showing{visibility:visible}.popup-container.popup-hidden .popup{-webkit-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container.active .popup{-webkit-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container .popup{width:250px;max-width:100%;max-height:90%;border-radius:0;background-color:rgba(255,255,255,.9);display:-webkit-flex;display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.popup-container input,.popup-container textarea{width:100%}.popup-head{padding:15px 10px;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0;padding:0;font-weight:400;font-size:11px}.popup-body{padding:10px;overflow:auto}.popup-buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding:10px;min-height:65px}.popup-buttons .button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;min-height:45px;border-radius:2px;line-height:20px;margin-right:5px}.popup-buttons .button:last-child{margin-right:0}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto}.loading-container{z-index:13;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0}#menu .footer .loading-container:not(.visible) .icon-help,.loading-container:not(.visible) #menu .footer .icon-help,.loading-container:not(.visible) .icon,.loading-container:not(.visible) .icon-alert,.loading-container:not(.visible) .icon-help,.loading-container:not(.visible) .spinner{display:none}.loading-container.visible{visibility:visible}.loading-container.active{opacity:1}.loading-container .loading{padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading-container .loading h1,.loading-container .loading h2,.loading-container .loading h3,.loading-container .loading h4,.loading-container .loading h5,.loading-container .loading h6{color:#fff}.item{border-color:#ddd;color:#444;position:relative;z-index:2;display:block;margin:-1px;padding:16px;border-width:1px;border-style:solid}.item h2{margin:0 0 2px;font-size:16px;font-weight:400}.item h3{margin:0 0 4px;font-size:14px}.item h4{margin:0 0 4px;font-size:12px}.item h5,.item h6{margin:0 0 3px;font-size:10px}.item p{color:#666;font-size:14px;margin-bottom:2px}.item h1:last-child,.item h2:last-child,.item h3:last-child,.item h4:last-child,.item h5:last-child,.item h6:last-child,.item p:last-child{margin-bottom:0}.item .badge{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;position:absolute;top:16px;right:32px}.item.item-divider .badge{top:8px}.item .badge+.badge{margin-right:5px}.item.item-light{border-color:#ddd;background-color:#fff;color:#444}.item.item-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item.item-positive{border-color:#0c60ee;background-color:#387ef5;color:#fff}.item.item-calm{border-color:#0a9dc7;background-color:#11c1f3;color:#fff}.item.item-assertive{border-color:#e42112;background-color:#ef473a;color:#fff}.item.item-balanced{border-color:#28a54c;background-color:#33cd5f;color:#fff}.item.item-energized{border-color:#e6b500;background-color:#ffc900;color:#fff}.item.item-royal{border-color:#6b46e5;background-color:#886aea;color:#fff}.item.item-dark{border-color:#111;background-color:#444;color:#fff}a.item,a.item-content{color:inherit;text-decoration:none}.item[ng-click]:hover{cursor:pointer}.item-borderless,.list-borderless .item{border-width:0}.item .item-content.activated,.item .item-content.activated.item-complex>.item-content,.item .item-content.active,.item .item-content.active.item-complex>.item-content,.item-complex.activated .item-content,.item-complex.activated .item-content.item-complex>.item-content,.item-complex.active .item-content,.item-complex.active .item-content.item-complex>.item-content,.item.activated,.item.activated.item-complex>.item-content,.item.active,.item.active.item-complex>.item-content{border-color:#ccc;background-color:#D9D9D9}.item .item-content.activated.item-light,.item .item-content.activated.item-light.item-complex>.item-content,.item .item-content.active.item-light,.item .item-content.active.item-light.item-complex>.item-content,.item-complex.activated .item-content.item-light,.item-complex.activated .item-content.item-light.item-complex>.item-content,.item-complex.active .item-content.item-light,.item-complex.active .item-content.item-light.item-complex>.item-content,.item.activated.item-light,.item.activated.item-light.item-complex>.item-content,.item.active.item-light,.item.active.item-light.item-complex>.item-content{border-color:#ccc;background-color:#fafafa}.item .item-content.activated.item-stable,.item .item-content.activated.item-stable.item-complex>.item-content,.item .item-content.active.item-stable,.item .item-content.active.item-stable.item-complex>.item-content,.item-complex.activated .item-content.item-stable,.item-complex.activated .item-content.item-stable.item-complex>.item-content,.item-complex.active .item-content.item-stable,.item-complex.active .item-content.item-stable.item-complex>.item-content,.item.activated.item-stable,.item.activated.item-stable.item-complex>.item-content,.item.active.item-stable,.item.active.item-stable.item-complex>.item-content{border-color:#a2a2a2;background-color:#e5e5e5}.item .item-content.activated.item-positive,.item .item-content.activated.item-positive.item-complex>.item-content,.item .item-content.active.item-positive,.item .item-content.active.item-positive.item-complex>.item-content,.item-complex.activated .item-content.item-positive,.item-complex.activated .item-content.item-positive.item-complex>.item-content,.item-complex.active .item-content.item-positive,.item-complex.active .item-content.item-positive.item-complex>.item-content,.item.activated.item-positive,.item.activated.item-positive.item-complex>.item-content,.item.active.item-positive,.item.active.item-positive.item-complex>.item-content{border-color:#0c60ee;background-color:#0c60ee}.item .item-content.activated.item-calm,.item .item-content.activated.item-calm.item-complex>.item-content,.item .item-content.active.item-calm,.item .item-content.active.item-calm.item-complex>.item-content,.item-complex.activated .item-content.item-calm,.item-complex.activated .item-content.item-calm.item-complex>.item-content,.item-complex.active .item-content.item-calm,.item-complex.active .item-content.item-calm.item-complex>.item-content,.item.activated.item-calm,.item.activated.item-calm.item-complex>.item-content,.item.active.item-calm,.item.active.item-calm.item-complex>.item-content{border-color:#0a9dc7;background-color:#0a9dc7}.item .item-content.activated.item-assertive,.item .item-content.activated.item-assertive.item-complex>.item-content,.item .item-content.active.item-assertive,.item .item-content.active.item-assertive.item-complex>.item-content,.item-complex.activated .item-content.item-assertive,.item-complex.activated .item-content.item-assertive.item-complex>.item-content,.item-complex.active .item-content.item-assertive,.item-complex.active .item-content.item-assertive.item-complex>.item-content,.item.activated.item-assertive,.item.activated.item-assertive.item-complex>.item-content,.item.active.item-assertive,.item.active.item-assertive.item-complex>.item-content{border-color:#e42112;background-color:#e42112}.item .item-content.activated.item-balanced,.item .item-content.activated.item-balanced.item-complex>.item-content,.item .item-content.active.item-balanced,.item .item-content.active.item-balanced.item-complex>.item-content,.item-complex.activated .item-content.item-balanced,.item-complex.activated .item-content.item-balanced.item-complex>.item-content,.item-complex.active .item-content.item-balanced,.item-complex.active .item-content.item-balanced.item-complex>.item-content,.item.activated.item-balanced,.item.activated.item-balanced.item-complex>.item-content,.item.active.item-balanced,.item.active.item-balanced.item-complex>.item-content{border-color:#28a54c;background-color:#28a54c}.item .item-content.activated.item-energized,.item .item-content.activated.item-energized.item-complex>.item-content,.item .item-content.active.item-energized,.item .item-content.active.item-energized.item-complex>.item-content,.item-complex.activated .item-content.item-energized,.item-complex.activated .item-content.item-energized.item-complex>.item-content,.item-complex.active .item-content.item-energized,.item-complex.active .item-content.item-energized.item-complex>.item-content,.item.activated.item-energized,.item.activated.item-energized.item-complex>.item-content,.item.active.item-energized,.item.active.item-energized.item-complex>.item-content{border-color:#e6b500;background-color:#e6b500}.item .item-content.activated.item-royal,.item .item-content.activated.item-royal.item-complex>.item-content,.item .item-content.active.item-royal,.item .item-content.active.item-royal.item-complex>.item-content,.item-complex.activated .item-content.item-royal,.item-complex.activated .item-content.item-royal.item-complex>.item-content,.item-complex.active .item-content.item-royal,.item-complex.active .item-content.item-royal.item-complex>.item-content,.item.activated.item-royal,.item.activated.item-royal.item-complex>.item-content,.item.active.item-royal,.item.active.item-royal.item-complex>.item-content{border-color:#6b46e5;background-color:#6b46e5}.item .item-content.activated.item-dark,.item .item-content.activated.item-dark.item-complex>.item-content,.item .item-content.active.item-dark,.item .item-content.active.item-dark.item-complex>.item-content,.item-complex.activated .item-content.item-dark,.item-complex.activated .item-content.item-dark.item-complex>.item-content,.item-complex.active .item-content.item-dark,.item-complex.active .item-content.item-dark.item-complex>.item-content,.item.activated.item-dark,.item.activated.item-dark.item-complex>.item-content,.item.active.item-dark,.item.active.item-dark.item-complex>.item-content{border-color:#000;background-color:#262626}.item,.item h1,.item h2,.item h3,.item h4,.item h5,.item h6,.item p,.item-content,.item-content h1,.item-content h2,.item-content h3,.item-content h4,.item-content h5,.item-content h6,.item-content p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.item:focus,a.item:hover{text-decoration:none}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,.item-radio .item-content{position:relative;z-index:2;padding:16px 49px 16px 16px;border:none}a.item-content{display:block}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p,.item-complex.item-text-wrap,.item-complex.item-text-wrap .item-content,.item-complex.item-text-wrap h1,.item-complex.item-text-wrap h2,.item-complex.item-text-wrap h3,.item-complex.item-text-wrap h4,.item-complex.item-text-wrap h5,.item-complex.item-text-wrap h6,.item-complex.item-text-wrap p,.item-text-wrap,.item-text-wrap .item,.item-text-wrap .item-content,.item-text-wrap h1,.item-text-wrap h2,.item-text-wrap h3,.item-text-wrap h4,.item-text-wrap h5,.item-text-wrap h6,.item-text-wrap p{overflow:visible;white-space:normal}.item-complex.item-light>.item-content{border-color:#ddd;background-color:#fff;color:#444}.item-complex.item-light>.item-content.active,.item-complex.item-light>.item-content.active.item-complex>.item-content,.item-complex.item-light>.item-content:active,.item-complex.item-light>.item-content:active.item-complex>.item-content{border-color:#ccc;background-color:#fafafa}.item-complex.item-stable>.item-content{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item-complex.item-stable>.item-content.active,.item-complex.item-stable>.item-content.active.item-complex>.item-content,.item-complex.item-stable>.item-content:active,.item-complex.item-stable>.item-content:active.item-complex>.item-content{border-color:#a2a2a2;background-color:#e5e5e5}.item-complex.item-positive>.item-content{border-color:#0c60ee;background-color:#387ef5;color:#fff}.item-complex.item-positive>.item-content.active,.item-complex.item-positive>.item-content.active.item-complex>.item-content,.item-complex.item-positive>.item-content:active,.item-complex.item-positive>.item-content:active.item-complex>.item-content{border-color:#0c60ee;background-color:#0c60ee}.item-complex.item-calm>.item-content{border-color:#0a9dc7;background-color:#11c1f3;color:#fff}.item-complex.item-calm>.item-content.active,.item-complex.item-calm>.item-content.active.item-complex>.item-content,.item-complex.item-calm>.item-content:active,.item-complex.item-calm>.item-content:active.item-complex>.item-content{border-color:#0a9dc7;background-color:#0a9dc7}.item-complex.item-assertive>.item-content{border-color:#e42112;background-color:#ef473a;color:#fff}.item-complex.item-assertive>.item-content.active,.item-complex.item-assertive>.item-content.active.item-complex>.item-content,.item-complex.item-assertive>.item-content:active,.item-complex.item-assertive>.item-content:active.item-complex>.item-content{border-color:#e42112;background-color:#e42112}.item-complex.item-balanced>.item-content{border-color:#28a54c;background-color:#33cd5f;color:#fff}.item-complex.item-balanced>.item-content.active,.item-complex.item-balanced>.item-content.active.item-complex>.item-content,.item-complex.item-balanced>.item-content:active,.item-complex.item-balanced>.item-content:active.item-complex>.item-content{border-color:#28a54c;background-color:#28a54c}.item-complex.item-energized>.item-content{border-color:#e6b500;background-color:#ffc900;color:#fff}.item-complex.item-energized>.item-content.active,.item-complex.item-energized>.item-content.active.item-complex>.item-content,.item-complex.item-energized>.item-content:active,.item-complex.item-energized>.item-content:active.item-complex>.item-content{border-color:#e6b500;background-color:#e6b500}.item-complex.item-royal>.item-content{border-color:#6b46e5;background-color:#886aea;color:#fff}.item-complex.item-royal>.item-content.active,.item-complex.item-royal>.item-content.active.item-complex>.item-content,.item-complex.item-royal>.item-content:active,.item-complex.item-royal>.item-content:active.item-complex>.item-content{border-color:#6b46e5;background-color:#6b46e5}.item-complex.item-dark>.item-content{border-color:#111;background-color:#444;color:#fff}.item-complex.item-dark>.item-content.active,.item-complex.item-dark>.item-content.active.item-complex>.item-content,.item-complex.item-dark>.item-content:active,.item-complex.item-dark>.item-content:active.item-complex>.item-content{border-color:#000;background-color:#262626}#menu .footer .item-icon-left .icon-help,#menu .footer .item-icon-right .icon-help,.item-icon-left #menu .footer .icon-help,.item-icon-left .icon,.item-icon-left .icon-alert,.item-icon-left .icon-help,.item-icon-right #menu .footer .icon-help,.item-icon-right .icon,.item-icon-right .icon-alert,.item-icon-right .icon-help{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}#menu .footer .item-icon-left .icon-help:before,#menu .footer .item-icon-right .icon-help:before,.item-icon-left #menu .footer .icon-help:before,.item-icon-left .icon-alert:before,.item-icon-left .icon-help:before,.item-icon-left .icon:before,.item-icon-right #menu .footer .icon-help:before,.item-icon-right .icon-alert:before,.item-icon-right .icon-help:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:54px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:54px}.item-icon-right{padding-right:54px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:54px}#menu .footer .item-icon-left.item-icon-right .icon-help:first-child,.item-icon-left.item-icon-right #menu .footer .icon-help:first-child,.item-icon-left.item-icon-right .icon-alert:first-child,.item-icon-left.item-icon-right .icon-help:first-child,.item-icon-left.item-icon-right .icon:first-child{right:auto}#menu .footer .item-icon-left .item-delete .icon-help,#menu .footer .item-icon-left.item-icon-right .icon-help:last-child,.item-icon-left .item-delete #menu .footer .icon-help,.item-icon-left .item-delete .icon,.item-icon-left .item-delete .icon-alert,.item-icon-left .item-delete .icon-help,.item-icon-left.item-icon-right #menu .footer .icon-help:last-child,.item-icon-left.item-icon-right .icon-alert:last-child,.item-icon-left.item-icon-right .icon-help:last-child,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px}.item-button-left{padding-left:72px}.item-button-left .item-content>.button,.item-button-left>.button{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;left:11px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}#menu .footer .item-button-left .item-content>.button .icon-help:before,#menu .footer .item-button-left>.button .icon-help:before,.item-button-left .item-content>.button #menu .footer .icon-help:before,.item-button-left .item-content>.button .icon-alert:before,.item-button-left .item-content>.button .icon-help:before,.item-button-left .item-content>.button .icon:before,.item-button-left>.button #menu .footer .icon-help:before,.item-button-left>.button .icon-alert:before,.item-button-left>.button .icon-help:before,.item-button-left>.button .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-left .item-content>.button>.button,.item-button-left>.button>.button{margin:0 2px;min-height:34px;font-size:18px;line-height:32px}.item-button-right,a.item.item-button-right,button.item.item-button-right{padding-right:80px}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;right:16px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}#menu .footer .item-button-right .item-content>.button .icon-help:before,#menu .footer .item-button-right .item-content>.buttons .icon-help:before,#menu .footer .item-button-right>.button .icon-help:before,#menu .footer .item-button-right>.buttons .icon-help:before,.item-button-right .item-content>.button #menu .footer .icon-help:before,.item-button-right .item-content>.button .icon-alert:before,.item-button-right .item-content>.button .icon-help:before,.item-button-right .item-content>.button .icon:before,.item-button-right .item-content>.buttons #menu .footer .icon-help:before,.item-button-right .item-content>.buttons .icon-alert:before,.item-button-right .item-content>.buttons .icon-help:before,.item-button-right .item-content>.buttons .icon:before,.item-button-right>.button #menu .footer .icon-help:before,.item-button-right>.button .icon-alert:before,.item-button-right>.button .icon-help:before,.item-button-right>.button .icon:before,.item-button-right>.buttons #menu .footer .icon-help:before,.item-button-right>.buttons .icon-alert:before,.item-button-right>.buttons .icon-help:before,.item-button-right>.buttons .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-right .item-content>.button>.button,.item-button-right .item-content>.buttons>.button,.item-button-right>.button>.button,.item-button-right>.buttons>.button{margin:0 2px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-left.item-button-right .button:first-child{right:auto}.item-button-left.item-button-right .button:last-child{left:auto}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{position:absolute;top:16px;width:100%;height:100%;border-radius:50%}.item-avatar-right,.item-avatar-right .item-content{padding-right:72px;min-height:72px}.item-avatar-right .item-content .item-image,.item-avatar-right .item-content>img:first-child,.item-avatar-right .item-image,.item-avatar-right>img:first-child{position:absolute;top:16px;right:16px;max-width:40px;max-height:40px;width:100%;height:100%;border-radius:50%}.item-thumbnail-left,.item-thumbnail-left .item-content{padding-top:8px;padding-left:106px;min-height:100px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{position:absolute;top:10px;left:10px;max-width:80px;max-height:80px;width:100%;height:100%}.item-avatar-left.item-complex,.item-avatar.item-complex,.item-thumbnail-left.item-complex{padding-top:0;padding-left:0}.item-thumbnail-right,.item-thumbnail-right .item-content{padding-top:8px;min-height:100px}.item-thumbnail-right .item-content .item-image,.item-thumbnail-right .item-content>img:first-child,.item-thumbnail-right .item-image,.item-thumbnail-right>img:first-child{position:absolute;top:10px;right:10px;max-width:80px;max-height:80px;width:100%;height:100%}.item-options,.item-right-edit{position:absolute;top:0;right:0;height:100%}.item-avatar-right.item-complex,.item-thumbnail-right.item-complex{padding-top:0;padding-right:0}.item-image{padding:0;text-align:center}.item-image .list-img,.item-image img:first-child{width:100%;vertical-align:middle}.item-body{overflow:auto;padding:16px;text-overflow:inherit;white-space:normal}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p{margin-top:16px;margin-bottom:16px}.item-divider{padding-top:8px;padding-bottom:8px;min-height:30px;background-color:#f5f5f5;color:#222;font-weight:500}.item-divider-ios,.platform-ios .item-divider-platform{padding-top:26px;text-transform:uppercase;font-weight:300;font-size:13px;background-color:#efeff4;color:#555}.item-divider-android,.platform-android .item-divider-platform{font-weight:300;font-size:13px}.item-note{float:right;color:#aaa;font-size:14px}.item-left-editable .item-content,.item-right-editable .item-content{-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(50px,0,0);transform:translate3d(50px,0,0)}.item-remove-animate.ng-leave{-webkit-transition-duration:.3s;transition-duration:.3s}.item-remove-animate.ng-leave .item-content,.item-remove-animate.ng-leave:last-of-type{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;-webkit-transition-property:all;transition-property:all}.item-remove-animate.ng-leave.ng-leave-active .item-content{opacity:0;-webkit-transform:translate3d(-100%,0,0)!important;transform:translate3d(-100%,0,0)!important}.item-remove-animate.ng-leave.ng-leave-active:last-of-type{opacity:0}.item-remove-animate.ng-leave.ng-leave-active~ion-item:not(.ng-leave){-webkit-transform:translate3d(0,-webkit-calc(-100% + 1px),0);transform:translate3d(0,calc(-100% + 1px),0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.25,.81,.24,1);transition-timing-function:cubic-bezier(.25,.81,.24,1);-webkit-transition-property:all;transition-property:all}.item-left-edit{-webkit-transition:all ease-in-out 125ms;transition:all ease-in-out 125ms;position:absolute;top:0;left:0;z-index:0;width:50px;height:100%;line-height:100%;display:none;opacity:0;-webkit-transform:translate3d(-21px,0,0);transform:translate3d(-21px,0,0)}.item-left-edit .button{height:100%}#menu .footer .item-left-edit .button.icon-help,.item-left-edit #menu .footer .button.icon-help,.item-left-edit .button.icon,.item-left-edit .button.icon-alert,.item-left-edit .button.icon-help{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%}.item-left-edit.visible{display:block}.item-left-edit.visible.active{opacity:1;-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}.list-left-editing .item-left-edit{-webkit-transition-delay:125ms;transition-delay:125ms}#menu .footer .item-delete .button.icon-help,.item-delete #menu .footer .button.icon-help,.item-delete .button.icon,.item-delete .button.icon-alert,.item-delete .button.icon-help{color:#ef473a;font-size:24px}#menu .footer .item-delete .button.icon-help:hover,.item-delete #menu .footer .button.icon-help:hover,.item-delete .button.icon-alert:hover,.item-delete .button.icon-help:hover,.item-delete .button.icon:hover{opacity:.7}.item-right-edit{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;z-index:3;width:75px;background:inherit;padding-left:20px;display:block;opacity:0;-webkit-transform:translate3d(75px,0,0);transform:translate3d(75px,0,0)}.item-right-edit .button{min-width:50px;height:100%}#menu .footer .item-right-edit .button.icon-help,.item-right-edit #menu .footer .button.icon-help,.item-right-edit .button.icon,.item-right-edit .button.icon-alert,.item-right-edit .button.icon-help{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-right-edit.visible{display:block}.item-right-edit.visible.active{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}#menu .footer .item-reorder .button.icon-help,.item-reorder #menu .footer .button.icon-help,.item-reorder .button.icon,.item-reorder .button.icon-alert,.item-reorder .button.icon-help{color:#444;font-size:32px}.item-reordering{position:absolute;left:0;top:0;z-index:9;width:100%;box-shadow:0 0 10px 0 #aaa}.item-reordering .item-reorder{z-index:9}.item-placeholder{opacity:.7}.item-options{z-index:1}.button .badge,.list,.slider,.slider-slide,.slider-slides{position:relative}.item-options .button{height:100%;border:none;border-radius:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.item-options .button:before{margin:0 auto}.item-options ion-option-button:last-child{padding-right:calc(env(safe-area-inset-right) + 12px)}.list{padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list:last-child.card{margin-bottom:40px}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card .item,.item.large-button-bar .card,.item.large-button-bar .list-inset,.item.large-button-bar>.list .item,.list-inset .item,.padding .card,.padding .list-inset,.padding-horizontal>.list .item,.padding>.list .item{margin-left:0;margin-right:0}.card{padding-top:1px;padding-bottom:1px}.card .item{border-left:0;border-right:0}.card .item:first-child{border-top:0}.card .item:last-child{border-bottom:0}.card .item:first-child,.card .item:first-child .item-content,.item.large-button-bar>.list .item:first-child,.item.large-button-bar>.list .item:first-child .item-content,.list-inset .item:first-child,.list-inset .item:first-child .item-content,.padding>.list .item:first-child,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.card .item:last-child .item-content,.item.large-button-bar>.list .item:last-child,.item.large-button-bar>.list .item:last-child .item-content,.list-inset .item:last-child,.list-inset .item:last-child .item-content,.padding>.list .item:last-child,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item.item-input input,.item.large-button-bar>.list .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item,.popover-share .bar-footer .button-close>.list .item{margin-right:0}.badge{background-color:transparent;color:#AAA;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#387ef5;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#11c1f3;color:#fff}.badge.badge-assertive,.badge.badge-editable:hover,.tabs .tab-item .badge.badge-assertive,.tabs .tab-item .badge.badge-editable:hover{background-color:#ef473a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#33cd5f;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#ffc900;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#886aea;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{top:-1px}.slider{visibility:hidden;overflow:hidden}.slider-slides{height:100%}.slider-slide{display:block;float:left;width:100%;height:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}.slider-pager-page.ng-animate,.slider-pager-page.ng-enter,.slider-pager-page.ng-leave,.slider-slide.ng-animate,.slider-slide.ng-enter,.slider-slide.ng-leave{-webkit-transition:none!important;transition:none!important}.slider-pager-page.ng-animate,.slider-slide.ng-animate{-webkit-animation:none 0s;animation:none 0s}.swiper-container{margin:0 auto;position:relative;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-slide,.toggle .track{box-sizing:border-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{display:block;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}.swiper-pagination-white .swiper-pagination-bullet,.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.item-input .button-bar,.item-input input{-webkit-appearance:none;-moz-appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination{bottom:10px;left:0;width:100%}.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet{margin:0 5px}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(transparent));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),transparent);background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),transparent);background-image:-o-linear-gradient(right,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to left,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(transparent));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),transparent);background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),transparent);background-image:-o-linear-gradient(left,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to right,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),transparent);background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),transparent);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to top,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(transparent));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),transparent);background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),transparent);background-image:-o-linear-gradient(top,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to bottom,rgba(0,0,0,.5),transparent)}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide,.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;width:100%;height:100%;z-index:1}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-container,.swiper-slide,.swiper-wrapper,ion-slides{width:100%;height:100%}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}ion-slides{display:block}.slide-zoom{display:block;width:100%;text-align:center}.scroll-refresher .icon-refreshing,.scroll-refresher .text-refreshing,.scroll-refresher.active.refreshing .icon-pulling,.scroll-refresher.active.refreshing .text-pulling{display:none}.swiper-container{padding:0;overflow:hidden}.swiper-wrapper{position:absolute;left:0;top:0;padding:0}.swiper-slide img{width:auto;height:auto;max-width:100%;max-height:100%}.scroll-refresher{position:absolute;top:-60px;right:0;left:0;overflow:hidden;margin:auto;height:60px}.scroll-refresher .ionic-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}.scroll-refresher .ionic-refresher-content .text-pulling,.scroll-refresher .ionic-refresher-content .text-refreshing{font-size:16px;line-height:16px}.scroll-refresher .ionic-refresher-content.ionic-refresher-with-text{bottom:10px}.scroll-refresher .icon-pulling,.scroll-refresher .icon-refreshing{width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.scroll-refresher .icon-pulling{-webkit-animation-name:refresh-spin-back;animation-name:refresh-spin-back;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:none;animation-fill-mode:none;-webkit-transform:translate3d(0,0,0) rotate(0);transform:translate3d(0,0,0) rotate(0)}.scroll-refresher .icon-refreshing{-webkit-animation-duration:1.5s;animation-duration:1.5s}.scroll-refresher.active .icon-pulling:not(.pulling-rotation-disabled){-webkit-animation-name:refresh-spin;animation-name:refresh-spin;-webkit-transform:translate3d(0,0,0) rotate(-180deg);transform:translate3d(0,0,0) rotate(-180deg)}.scroll-refresher.active.refreshing{-webkit-transition:transform .2s;transition:transform .2s;-webkit-transform:scale(1,1);transform:scale(1,1)}.scroll-refresher.active.refreshing .icon-refreshing,.scroll-refresher.active.refreshing .text-refreshing,legend{display:block}.scroll-refresher.active.refreshing.refreshing-tail{-webkit-transform:scale(0,0);transform:scale(0,0)}.overflow-scroll>.scroll{-webkit-overflow-scrolling:touch;width:100%}.overflow-scroll>.scroll.overscroll{position:fixed;right:0;left:0}.overflow-scroll.item.large-button-bar>.scroll.overscroll,.overflow-scroll.padding>.scroll.overscroll{padding:10px}@-webkit-keyframes refresh-spin{0%{-webkit-transform:translate3d(0,0,0) rotate(0)}100%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}}@keyframes refresh-spin{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(0,0,0) rotate(180deg)}}@-webkit-keyframes refresh-spin-back{0%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}100%{-webkit-transform:translate3d(0,0,0) rotate(0)}}@keyframes refresh-spin-back{0%{transform:translate3d(0,0,0) rotate(180deg)}100%{transform:translate3d(0,0,0) rotate(0)}}.spinner{stroke:#444;fill:#444}.spinner svg{width:28px;height:28px}.spinner.spinner-light{stroke:#fff;fill:#fff}.spinner.spinner-stable{stroke:#f8f8f8;fill:#f8f8f8}.spinner.spinner-positive{stroke:#387ef5;fill:#387ef5}.spinner.spinner-calm{stroke:#11c1f3;fill:#11c1f3}.spinner.spinner-balanced{stroke:#33cd5f;fill:#33cd5f}.spinner.spinner-assertive{stroke:#ef473a;fill:#ef473a}.spinner.spinner-energized{stroke:#ffc900;fill:#ffc900}.spinner.spinner-royal{stroke:#886aea;fill:#886aea}.spinner.spinner-dark{stroke:#444;fill:#444}.spinner-android{stroke:#4b8bf4}.spinner-ios,.spinner-ios-small{stroke:#69717d}.spinner-spiral .stop1{stop-color:#fff;stop-opacity:0}.spinner-spiral.spinner-light .stop1{stop-color:#444}.spinner-spiral.spinner-light .stop2{stop-color:#fff}.spinner-spiral.spinner-stable .stop2{stop-color:#f8f8f8}.spinner-spiral.spinner-positive .stop2{stop-color:#387ef5}.spinner-spiral.spinner-calm .stop2{stop-color:#11c1f3}.spinner-spiral.spinner-balanced .stop2{stop-color:#33cd5f}.spinner-spiral.spinner-assertive .stop2{stop-color:#ef473a}.spinner-spiral.spinner-energized .stop2{stop-color:#ffc900}.spinner-spiral.spinner-royal .stop2{stop-color:#886aea}.spinner-spiral.spinner-dark .stop2{stop-color:#444}form{margin:0 0 1.42857}legend{margin-bottom:1.42857;padding:0;width:100%;border:1px solid #ddd;color:#444;font-size:21px;line-height:2.85714}.item-input,.item-input-inset{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;overflow:hidden}legend small{color:#f8f8f8;font-size:1.07143}button,input,label,select,textarea{font-weight:400;font-size:14px;line-height:1.42857}.item-input{display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;padding:6px 0 5px 16px}.item-input input{-webkit-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 220px;-moz-box-flex:1;-moz-flex:1 220px;-ms-flex:1 220px;flex:1 220px;appearance:none;margin:0;padding-right:24px;background-color:transparent}#menu .footer .item-input .button .icon-help,.item-input .button #menu .footer .icon-help,.item-input .button .icon,.item-input .button .icon-alert,.item-input .button .icon-help{-webkit-box-flex:0;-webkit-flex:0 0 24px;-moz-box-flex:0;-moz-flex:0 0 24px;-ms-flex:0 0 24px;flex:0 0 24px;position:static;display:inline-block;height:auto;text-align:center;font-size:16px}.item-input .button-bar{-webkit-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;appearance:none}#menu .footer .item-input .icon-help,.item-input #menu .footer .icon-help,.item-input .icon,.item-input .icon-alert,.item-input .icon-help{min-width:14px}.platform-windowsphone .item-input input{flex-shrink:1}.item-input-inset,.range{-webkit-box-align:center}.item-input-inset{display:flex;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;padding:10.67px}.item-input-wrapper{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 0;-moz-box-flex:1;-moz-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-border-radius:4px;border-radius:4px;padding-right:8px;padding-left:8px;background:#eee}.item-input-inset .item-input-wrapper input{padding-left:4px;height:29px;background:0 0;line-height:18px}.item-input-wrapper~.button{margin-left:10.67px}.input-label{display:table;padding:7px 10px 7px 0;max-width:200px;width:35%;color:#444;font-size:16px}.placeholder-icon{color:#aaa}.placeholder-icon:first-child{padding-right:6px}.placeholder-icon:last-child{padding-left:6px}.item-stacked-label{display:block;background-color:transparent;box-shadow:none}#menu .footer .item-stacked-label .icon-help,.item-stacked-label #menu .footer .icon-help,.item-stacked-label .icon,.item-stacked-label .icon-alert,.item-stacked-label .icon-help,.item-stacked-label .input-label{display:inline-block;padding:4px 0 0;vertical-align:middle}.item-stacked-label input,.item-stacked-label textarea{-webkit-border-radius:2px;border-radius:2px;padding:4px 8px 3px 0;border:none;background-color:#fff}.item-stacked-label input{overflow:hidden;height:46px}.item-select.item-stacked-label select{position:relative;padding:0;max-width:90%;direction:ltr;white-space:pre-wrap;margin:-3px}.item-floating-label{display:block;background-color:transparent;box-shadow:none}.item-floating-label .input-label{position:relative;padding:5px 0 0;opacity:0;top:10px;-webkit-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}.item-floating-label .input-label.has-input{opacity:1;top:0;-webkit-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}input[type=search],input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=tel],input[type=color],textarea{display:block;padding-top:2px;padding-left:0;height:34px;color:#111;vertical-align:middle;font-size:14px;line-height:16px;border:0}.platform-android input[type=datetime-local],.platform-android input[type=date],.platform-android input[type=month],.platform-android input[type=time],.platform-android input[type=week],.platform-ios input[type=datetime-local],.platform-ios input[type=date],.platform-ios input[type=month],.platform-ios input[type=time],.platform-ios input[type=week]{padding-top:8px}.item-input input,.item-input textarea{width:100%}textarea{padding-left:0;height:auto}textarea::-moz-placeholder{color:#aaa}textarea:-ms-input-placeholder{color:#aaa}textarea::-webkit-input-placeholder{color:#aaa;text-indent:-3px}input[type=radio],input[type=checkbox]{margin:0;line-height:normal}.item-input input[type=button],.item-input input[type=reset],.item-input input[type=submit],.item-input input[type=radio],.item-input input[type=checkbox],.item-input input[type=file],.item-input input[type=image]{width:auto}input[type=file]{line-height:34px}.cloned-text-input+input,.cloned-text-input+textarea,.previous-input-focus{position:absolute!important;left:-9999px;width:200px}input::-moz-placeholder,textarea::-moz-placeholder{color:#aaa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#aaa}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa;text-indent:0}input[disabled],input[readonly]:not(.cloned-text-input),select[disabled],select[readonly],textarea[disabled],textarea[readonly]:not(.cloned-text-input){background-color:#f8f8f8;cursor:not-allowed}.checkbox,.item-radio:hover,.item-select select,.toggle .track{cursor:pointer}input[type=radio][disabled],input[type=radio][readonly],input[type=checkbox][disabled],input[type=checkbox][readonly]{background-color:transparent}.checkbox{position:relative;display:inline-block;padding:7px}.checkbox .checkbox-icon:before,.checkbox input:before{border-color:#ddd}.checkbox input:checked+.checkbox-icon:before,.checkbox input:checked:before{background:#387ef5;border-color:#387ef5}.checkbox-light .checkbox-icon:before,.checkbox-light input:before{border-color:#ddd}.checkbox-light input:checked+.checkbox-icon:before,.checkbox-light input:checked:before{background:#ddd;border-color:#ddd}.checkbox-stable .checkbox-icon:before,.checkbox-stable input:before{border-color:#b2b2b2}.checkbox-stable input:checked+.checkbox-icon:before,.checkbox-stable input:checked:before{background:#b2b2b2;border-color:#b2b2b2}.checkbox-positive .checkbox-icon:before,.checkbox-positive input:before{border-color:#387ef5}.checkbox-positive input:checked+.checkbox-icon:before,.checkbox-positive input:checked:before{background:#387ef5;border-color:#387ef5}.checkbox-calm .checkbox-icon:before,.checkbox-calm input:before{border-color:#11c1f3}.checkbox-calm input:checked+.checkbox-icon:before,.checkbox-calm input:checked:before{background:#11c1f3;border-color:#11c1f3}.checkbox-assertive .checkbox-icon:before,.checkbox-assertive input:before{border-color:#ef473a}.checkbox-assertive input:checked+.checkbox-icon:before,.checkbox-assertive input:checked:before{background:#ef473a;border-color:#ef473a}.checkbox-balanced .checkbox-icon:before,.checkbox-balanced input:before{border-color:#33cd5f}.checkbox-balanced input:checked+.checkbox-icon:before,.checkbox-balanced input:checked:before{background:#33cd5f;border-color:#33cd5f}.checkbox-energized .checkbox-icon:before,.checkbox-energized input:before{border-color:#ffc900}.checkbox-energized input:checked+.checkbox-icon:before,.checkbox-energized input:checked:before{background:#ffc900;border-color:#ffc900}.checkbox-royal .checkbox-icon:before,.checkbox-royal input:before{border-color:#886aea}.checkbox-royal input:checked+.checkbox-icon:before,.checkbox-royal input:checked:before{background:#886aea;border-color:#886aea}.checkbox-dark .checkbox-icon:before,.checkbox-dark input:before{border-color:#444}.checkbox-dark input:checked+.checkbox-icon:before,.checkbox-dark input:checked:before{background:#444;border-color:#444}.checkbox input:disabled+.checkbox-icon:before,.checkbox input:disabled:before{border-color:#ddd}.checkbox input:disabled:checked+.checkbox-icon:before,.checkbox input:disabled:checked:before{background:#ddd}.checkbox.checkbox-input-hidden input{display:none!important}.checkbox input,.checkbox-icon{position:relative;width:28px;height:28px;display:block;border:0;background:0 0;cursor:pointer;-webkit-appearance:none}.checkbox input:before,.checkbox-icon:before{display:table;width:100%;height:100%;border-width:1px;border-style:solid;border-radius:28px;background:#fff;content:' ';-webkit-transition:background-color 20ms ease-in-out;transition:background-color 20ms ease-in-out}.checkbox input:checked:before,input:checked+.checkbox-icon:before{border-width:2px}.checkbox input:after,.checkbox-icon:after{-webkit-transition:opacity 50ms ease-in-out;transition:opacity 50ms ease-in-out;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);position:absolute;top:33%;left:25%;display:table;width:14px;height:6px;border:1px solid #fff;border-top:0;border-right:0;content:' ';opacity:0}.checkbox-square .checkbox-icon:before,.checkbox-square input:before,.platform-android .checkbox-platform .checkbox-icon:before,.platform-android .checkbox-platform input:before{border-radius:2px;width:72%;height:72%;margin-top:14%;margin-left:14%;border-width:2px}.checkbox-square .checkbox-icon:after,.checkbox-square input:after,.platform-android .checkbox-platform .checkbox-icon:after,.platform-android .checkbox-platform input:after{border-width:2px;top:19%;left:25%;width:13px;height:7px}.platform-android .item-checkbox-right .checkbox-square .checkbox-icon::after{top:31%}.grade-c .checkbox input:after,.grade-c .checkbox-icon:after{-webkit-transform:rotate(0);transform:rotate(0);top:3px;left:4px;border:none;color:#fff;content:'\2713';font-weight:700;font-size:20px}.checkbox input:checked:after,input:checked+.checkbox-icon:after{opacity:1}.item-checkbox{padding-left:60px}.item-checkbox.active{box-shadow:none}.item-checkbox .checkbox{position:absolute;top:50%;right:8px;left:8px;z-index:3;margin-top:-21px}.item-checkbox.item-checkbox-right{padding-right:60px;padding-left:16px}.item-checkbox-right .checkbox input,.item-checkbox-right .checkbox-icon{float:right}.item-toggle{pointer-events:none}.toggle{position:relative;display:inline-block;pointer-events:auto;margin:-5px;padding:5px}.toggle input:checked+.track{border-color:#4cd964;background-color:#4cd964}.toggle.dragging .handle{background-color:#f2f2f2!important}.toggle.toggle-light input:checked+.track{border-color:#ddd;background-color:#ddd}.toggle.toggle-stable input:checked+.track{border-color:#b2b2b2;background-color:#b2b2b2}.toggle.toggle-positive input:checked+.track{border-color:#387ef5;background-color:#387ef5}.toggle.toggle-calm input:checked+.track{border-color:#11c1f3;background-color:#11c1f3}.toggle.toggle-assertive input:checked+.track{border-color:#ef473a;background-color:#ef473a}.toggle.toggle-balanced input:checked+.track{border-color:#33cd5f;background-color:#33cd5f}.toggle.toggle-energized input:checked+.track{border-color:#ffc900;background-color:#ffc900}.toggle.toggle-royal input:checked+.track{border-color:#886aea;background-color:#886aea}.toggle.toggle-dark input:checked+.track{border-color:#444;background-color:#444}.toggle input{display:none}.toggle .track{-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:background-color,border;transition-property:background-color,border;display:inline-block;width:51px;height:31px;border:2px solid #e6e6e6;border-radius:20px;background-color:#fff;content:' ';pointer-events:none}.platform-android4_2 .toggle .track{-webkit-background-clip:padding-box}.toggle .handle{-webkit-transition:.3s cubic-bezier(0,1.1,1,1.1);transition:.3s cubic-bezier(0,1.1,1,1.1);-webkit-transition-property:background-color,transform;transition-property:background-color,transform;position:absolute;display:block;width:27px;height:27px;border-radius:27px;background-color:#fff;top:7px;left:7px;box-shadow:0 2px 7px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.15)}.toggle .handle:before{position:absolute;top:-4px;left:-21.5px;padding:18.5px 34px;content:" "}.toggle input:checked+.track .handle{-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0);background-color:#fff}.item-toggle.active{box-shadow:none}.item-toggle,.item-toggle.item-complex .item-content{padding-right:99px}.item-toggle.item-complex{padding-right:0}.item-toggle .toggle{position:absolute;top:10px;right:16px;z-index:3}.toggle input:disabled+.track{opacity:.6}.toggle-small .track{border:0;width:34px;height:15px;background:#9e9e9e}.toggle-small input:checked+.track{background:rgba(0,150,137,.5)}.toggle-small .handle{top:2px;left:4px;width:21px;height:21px;box-shadow:0 2px 5px rgba(0,0,0,.25)}.toggle-small input:checked+.track .handle{-webkit-transform:translate3d(16px,0,0);transform:translate3d(16px,0,0);background:#009689}.toggle-small.item-toggle .toggle{top:19px}.toggle-small .toggle-light input:checked+.track{background-color:rgba(221,221,221,.5)}.toggle-small .toggle-light input:checked+.track .handle{background-color:#ddd}.toggle-small .toggle-stable input:checked+.track{background-color:rgba(178,178,178,.5)}.toggle-small .toggle-stable input:checked+.track .handle{background-color:#b2b2b2}.toggle-small .toggle-positive input:checked+.track{background-color:rgba(56,126,245,.5)}.toggle-small .toggle-positive input:checked+.track .handle{background-color:#387ef5}.toggle-small .toggle-calm input:checked+.track{background-color:rgba(17,193,243,.5)}.toggle-small .toggle-calm input:checked+.track .handle{background-color:#11c1f3}.toggle-small .toggle-assertive input:checked+.track{background-color:rgba(239,71,58,.5)}.toggle-small .toggle-assertive input:checked+.track .handle{background-color:#ef473a}.toggle-small .toggle-balanced input:checked+.track{background-color:rgba(51,205,95,.5)}.toggle-small .toggle-balanced input:checked+.track .handle{background-color:#33cd5f}.toggle-small .toggle-energized input:checked+.track{background-color:rgba(255,201,0,.5)}.toggle-small .toggle-energized input:checked+.track .handle{background-color:#ffc900}.toggle-small .toggle-royal input:checked+.track{background-color:rgba(136,106,234,.5)}.toggle-small .toggle-royal input:checked+.track .handle{background-color:#886aea}.toggle-small .toggle-dark input:checked+.track{background-color:rgba(68,68,68,.5)}.toggle-small .toggle-dark input:checked+.track .handle{background-color:#444}.item-radio{padding:0}.item-radio .item-content{padding-right:64px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:14px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked+.radio-content .item-content{background:#f7f7f7}.item-radio input:checked+.radio-content .radio-icon{visibility:visible}.block:after,.invisible{visibility:hidden}.range input{overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:43px;outline:0;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,#ccc),color-stop(100%,#ccc));background:linear-gradient(to right,#ccc 0,#ccc 100%);background-position:center;background-size:99% 2px;background-repeat:no-repeat;-webkit-appearance:none}.range input::-moz-focus-outer{border:0}.range input::-webkit-slider-thumb{position:relative;width:28px;height:28px;border-radius:50%;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.3),0 3px 5px rgba(0,0,0,.2);cursor:pointer;-webkit-appearance:none;border:0}.range input::-webkit-slider-thumb:before{position:absolute;top:13px;left:-2001px;width:2000px;height:2px;background:#444;content:' '}.range input::-webkit-slider-thumb:after{position:absolute;top:-15px;left:-15px;padding:30px;content:' '}.range input::-ms-fill-lower{height:2px;background:#444}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 11px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-light input::-ms-fill-lower{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-stable input::-ms-fill-lower{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#387ef5}.range.range-positive input::-ms-fill-lower{background:#387ef5}.range.range-calm input::-webkit-slider-thumb:before{background:#11c1f3}.range.range-calm input::-ms-fill-lower{background:#11c1f3}.range.range-balanced input::-webkit-slider-thumb:before{background:#33cd5f}.range.range-balanced input::-ms-fill-lower{background:#33cd5f}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef473a}.range.range-assertive input::-ms-fill-lower{background:#ef473a}.range.range-energized input::-webkit-slider-thumb:before{background:#ffc900}.range.range-energized input::-ms-fill-lower{background:#ffc900}.range.range-royal input::-webkit-slider-thumb:before{background:#886aea}.range.range-royal input::-ms-fill-lower{background:#886aea}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range.range-dark input::-ms-fill-lower{background:#444}#menu .footer .range .icon-help,.range #menu .footer .icon-help,.range .icon,.range .icon-alert,.range .icon-help{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.platform-windowsphone .range input{height:auto}.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;bottom:0;right:0;padding:0 48px 0 16px;max-width:65%;border:none;background:#fff;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:16px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:#999;content:"";pointer-events:none}.button-full>button.button,button.button-block,button.button-full,input.button.button-block,progress{width:100%}.item-select.item-light select{background:#fff;color:#444}.item-select.item-stable select{background:#f8f8f8;color:#444}.item-select.item-stable .input-label,.item-select.item-stable:after{color:#666}.item-select.item-positive select{background:#387ef5;color:#fff}.item-select.item-positive .input-label,.item-select.item-positive:after{color:#fff}.item-select.item-calm select{background:#11c1f3;color:#fff}.item-select.item-calm .input-label,.item-select.item-calm:after{color:#fff}.item-select.item-assertive select{background:#ef473a;color:#fff}.item-select.item-assertive .input-label,.item-select.item-assertive:after{color:#fff}.item-select.item-balanced select{background:#33cd5f;color:#fff}.item-select.item-balanced .input-label,.item-select.item-balanced:after{color:#fff}.item-select.item-energized select{background:#ffc900;color:#fff}.item-select.item-energized .input-label,.item-select.item-energized:after{color:#fff}.item-select.item-royal select{background:#886aea;color:#fff}.item-select.item-royal .input-label,.item-select.item-royal:after{color:#fff}.item-select.item-dark select{background:#444;color:#fff}.item-select.item-dark .input-label,.item-select.item-dark:after{color:#fff}select[multiple],select[size]{height:auto}progress{display:block;margin:15px auto}.button{background-color:#f8f8f8;color:#444;min-width:52px;min-height:47px;vertical-align:top;text-overflow:ellipsis;line-height:42px}.button:hover{color:#444;text-decoration:none}.button.activated,.button.active{border-color:#a2a2a2;background-color:#e5e5e5}.button:after{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;content:' '}#menu .footer .button .icon-help,.button #menu .footer .icon-help,.button .icon,.button .icon-alert,.button .icon-help{vertical-align:top;pointer-events:none}#menu .footer .button .icon-help:before,#menu .footer .button.icon-help:before,.button #menu .footer .icon-help:before,.button .icon-alert:before,.button .icon-help:before,.button .icon:before,.button.icon-alert:before,.button.icon-help:before,.button.icon-left:before,.button.icon-right:before,.button.icon:before{display:inline-block;padding:0 0 1px;vertical-align:inherit;font-size:24px;line-height:41px;pointer-events:none}.button.icon-left:before{float:left;padding-right:.2em;padding-left:0}.button.icon-right:before{float:right;padding-right:0;padding-left:.2em}.button.button-block,.button.button-full{margin-top:10px;margin-bottom:10px}.button.button-light{border-color:transparent;background-color:#fff;color:#444}.button.button-light:hover{color:#444;text-decoration:none}.button.button-light.activated,.button.button-light.active{border-color:#a2a2a2;background-color:#fafafa}.button.button-light.button-clear,.button.button-light.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#ddd}.button.button-light.button-icon{border-color:transparent;background:0 0}.button.button-light.button-outline{border-color:#ddd;background:0 0;color:#ddd}.button.button-light.button-outline.activated,.button.button-light.button-outline.active{background-color:#ddd;box-shadow:none;color:#fff}.button.button-stable{border-color:transparent;background-color:#f8f8f8;color:#444}.button.button-stable:hover{color:#444;text-decoration:none}.button.button-stable.activated,.button.button-stable.active{border-color:#a2a2a2;background-color:#e5e5e5}.button.button-stable.button-clear,.button.button-stable.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button.button-stable.button-icon{border-color:transparent;background:0 0}.button.button-stable.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button.button-stable.button-outline.activated,.button.button-stable.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.button.button-positive,.button.button-text{border-color:transparent;background-color:#387ef5;color:#fff}.button.button-positive:hover,.button.button-text:hover{color:#fff;text-decoration:none}.button.activated.button-text,.button.active.button-text,.button.button-positive.activated,.button.button-positive.active{border-color:#a2a2a2;background-color:#0c60ee}.button.button-positive.button-clear,.button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#387ef5}.button.button-icon.button-text,.button.button-positive.button-icon{border-color:transparent;background:0 0}.button.button-outline.button-text,.button.button-positive.button-outline{border-color:#387ef5;background:0 0;color:#387ef5}.button.button-outline.activated.button-text,.button.button-outline.active.button-text,.button.button-positive.button-outline.activated,.button.button-positive.button-outline.active{background-color:#387ef5;box-shadow:none;color:#fff}.button.button-calm{border-color:transparent;background-color:#11c1f3;color:#fff}.button.button-calm:hover{color:#fff;text-decoration:none}.button.button-calm.activated,.button.button-calm.active{border-color:#a2a2a2;background-color:#0a9dc7}.button.button-calm.button-clear,.button.button-calm.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#11c1f3}.button.button-calm.button-icon{border-color:transparent;background:0 0}.button.button-calm.button-outline{border-color:#11c1f3;background:0 0;color:#11c1f3}.button.button-calm.button-outline.activated,.button.button-calm.button-outline.active{background-color:#11c1f3;box-shadow:none;color:#fff}.button.button-assertive{border-color:transparent;background-color:#ef473a;color:#fff}.button.button-assertive:hover{color:#fff;text-decoration:none}.button.button-assertive.activated,.button.button-assertive.active{border-color:#a2a2a2;background-color:#e42112}.button.button-assertive.button-clear,.button.button-assertive.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#ef473a}.button.button-assertive.button-icon{border-color:transparent;background:0 0}.button.button-assertive.button-outline{border-color:#ef473a;background:0 0;color:#ef473a}.button.button-assertive.button-outline.activated,.button.button-assertive.button-outline.active{background-color:#ef473a;box-shadow:none;color:#fff}.button.button-balanced{border-color:transparent;background-color:#33cd5f;color:#fff}.button.button-balanced:hover{color:#fff;text-decoration:none}.button.button-balanced.activated,.button.button-balanced.active{border-color:#a2a2a2;background-color:#28a54c}.button.button-balanced.button-clear,.button.button-balanced.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#33cd5f}.button.button-balanced.button-icon{border-color:transparent;background:0 0}.button.button-balanced.button-outline{border-color:#33cd5f;background:0 0;color:#33cd5f}.button.button-balanced.button-outline.activated,.button.button-balanced.button-outline.active{background-color:#33cd5f;box-shadow:none;color:#fff}.button.button-energized{border-color:transparent;background-color:#ffc900;color:#fff}.button.button-energized:hover{color:#fff;text-decoration:none}.button.button-energized.activated,.button.button-energized.active{border-color:#a2a2a2;background-color:#e6b500}.button.button-energized.button-clear,.button.button-energized.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#ffc900}.button.button-energized.button-icon{border-color:transparent;background:0 0}.button.button-energized.button-outline{border-color:#ffc900;background:0 0;color:#ffc900}.button.button-energized.button-outline.activated,.button.button-energized.button-outline.active{background-color:#ffc900;box-shadow:none;color:#fff}.button.button-royal{border-color:transparent;background-color:#886aea;color:#fff}.button.button-royal:hover{color:#fff;text-decoration:none}.button.button-royal.activated,.button.button-royal.active{border-color:#a2a2a2;background-color:#6b46e5}.button.button-royal.button-clear,.button.button-royal.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#886aea}.button.button-royal.button-icon{border-color:transparent;background:0 0}.button.button-royal.button-outline{border-color:#886aea;background:0 0;color:#886aea}.button.button-royal.button-outline.activated,.button.button-royal.button-outline.active{background-color:#886aea;box-shadow:none;color:#fff}.button.button-dark{border-color:transparent;background-color:#444;color:#fff}.button.button-dark:hover{color:#fff;text-decoration:none}.button.button-dark.activated,.button.button-dark.active{border-color:#a2a2a2;background-color:#262626}.button.button-dark.button-clear,.button.button-dark.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#444}.button.button-dark.button-icon{border-color:transparent;background:0 0}.button.button-dark.button-outline{border-color:#444;background:0 0;color:#444}.button.button-dark.button-outline.activated,.button.button-dark.button-outline.active{background-color:#444;box-shadow:none;color:#fff}.button-small,.button-text.button-small{padding:2px 4px 1px;min-width:28px;min-height:30px;font-size:12px;line-height:26px}#menu .footer .button-small .icon-help:before,#menu .footer .button-small.icon-help:before,.button-small #menu .footer .icon-help:before,.button-small .icon-alert:before,.button-small .icon-help:before,.button-small .icon:before,.button-small.icon-alert:before,.button-small.icon-help:before,.button-small.icon-left:before,.button-small.icon-right:before,.button-small.icon:before{font-size:16px;line-height:19px;margin-top:3px}.button-large{padding:0 16px;min-width:68px;min-height:59px;font-size:20px;line-height:53px}#menu .footer .button-large .icon-help:before,#menu .footer .button-large.icon-help:before,.button-large #menu .footer .icon-help:before,.button-large .icon-alert:before,.button-large .icon-help:before,.button-large .icon:before,.button-large.icon-alert:before,.button-large.icon-help:before,.button-large.icon-left:before,.button-large.icon-right:before,.button-large.icon:before{padding-bottom:2px;font-size:32px;line-height:51px}.button-clear,.button-icon,.button-text{-webkit-transition:opacity .1s;padding:0 6px;background:0 0}.button-icon{transition:opacity .1s;min-width:initial}.button-icon.button.activated,.button-icon.button.active{border-color:transparent;background:0 0;box-shadow:none}#menu .footer .button-icon .icon-help:before,#menu .footer .button-icon.icon-help:before,.button-icon #menu .footer .icon-help:before,.button-icon .icon-alert:before,.button-icon .icon-help:before,.button-icon .icon:before,.button-icon.icon-alert:before,.button-icon.icon-help:before,.button-icon.icon:before{font-size:32px}.button-clear,.button-text{transition:opacity .1s;max-height:42px;border-color:transparent;box-shadow:none}.button-clear.button-clear,.button-text{border-color:transparent;background:0 0;box-shadow:none;color:transparent}.button-clear.button-icon,.button-icon.button-text{border-color:transparent;background:0 0}.activated.button-text,.active.button-text,.button-clear.activated,.button-clear.active{opacity:.3}.button-outline{-webkit-transition:opacity .1s;transition:opacity .1s;background:0 0;box-shadow:none}.button-outline.button-outline{border-color:transparent;background:0 0;color:transparent}.button-outline.button-outline.activated,.button-outline.button-outline.active{background-color:transparent;box-shadow:none;color:#fff}.item.large-button-bar>.button.button-block:first-child,.padding>.button.button-block:first-child{margin-top:0}.button-block{display:block;clear:both}.button-block:after{clear:both}.button-full,.button-full>.button{display:block;margin-right:0;margin-left:0;border-right-width:0;border-left-width:0;border-radius:0}a.button{text-decoration:none}#menu .footer a.button .icon-help:before,#menu .footer a.button.icon-help:before,a.button #menu .footer .icon-help:before,a.button .icon-alert:before,a.button .icon-help:before,a.button .icon:before,a.button.icon-alert:before,a.button.icon-help:before,a.button.icon-left:before,a.button.icon-right:before,a.button.icon:before{margin-top:2px}.button.disabled,.button[disabled]{opacity:.4;cursor:default!important;pointer-events:none}.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar.bar-light>.button{border-color:#ddd}.button-bar.bar-stable>.button{border-color:#b2b2b2}.button-bar.bar-positive>.button{border-color:#0c60ee}.button-bar.bar-calm>.button{border-color:#0a9dc7}.button-bar.bar-assertive>.button{border-color:#e42112}.button-bar.bar-balanced>.button{border-color:#28a54c}.button-bar.bar-energized>.button{border-color:#e6b500}.button-bar.bar-royal>.button{border-color:#6b46e5}.button-bar.bar-dark>.button{border-color:#111}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.bar,.col,.full-image,.iframe-wrapper iframe,.row{width:100%}.button-bar>.button:first-child{border-radius:4px 0 0 4px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 4px 4px 0}.button-bar>.button:only-child{border-radius:4px}#menu .footer .button-bar>.button-small .icon-help:before,.button-bar>.button-small #menu .footer .icon-help:before,.button-bar>.button-small .icon-alert:before,.button-bar>.button-small .icon-help:before,.button-bar>.button-small .icon:before,.button-bar>.button-small:before{line-height:28px}.row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:5px}.row-wrap{-webkit-flex-wrap:wrap;-moz-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.row-no-padding,.row-no-padding>.col{padding:0}.row+.row{margin-top:-5px;padding-top:0}.col{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;padding:5px}.row-top{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;align-items:flex-start}.row-bottom{-webkit-box-align:end;-ms-flex-align:end;-webkit-align-items:flex-end;-moz-align-items:flex-end;align-items:flex-end}.row-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.row-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch}.row-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-webkit-align-items:baseline;-moz-align-items:baseline;align-items:baseline}.col-top{-webkit-align-self:flex-start;-moz-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.col-bottom{-webkit-align-self:flex-end;-moz-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.col-center{-webkit-align-self:center;-moz-align-self:center;-ms-flex-item-align:center;align-self:center}.col-10,.col-20{-webkit-box-flex:0}.col-offset-10{margin-left:10%}.col-offset-20{margin-left:20%}.col-offset-25{margin-left:25%}.col-offset-33,.col-offset-34{margin-left:33.3333%}.col-offset-50{margin-left:50%}.col-offset-66,.col-offset-67{margin-left:66.6666%}.col-offset-75{margin-left:75%}.col-offset-80{margin-left:80%}.col-offset-90{margin-left:90%}.col-10{-webkit-flex:0 0 10%;-moz-box-flex:0;-moz-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.col-20{-webkit-flex:0 0 20%;-moz-box-flex:0;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.col-25{-webkit-box-flex:0;-webkit-flex:0 0 25%;-moz-box-flex:0;-moz-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-33,.col-34{-webkit-box-flex:0;-webkit-flex:0 0 33.3333%;-moz-box-flex:0;-moz-flex:0 0 33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%;max-width:33.3333%}.col-40,.col-50{-webkit-box-flex:0}.col-40{-webkit-flex:0 0 40%;-moz-box-flex:0;-moz-flex:0 0 40%;-ms-flex:0 0 40%;flex:0 0 40%;max-width:40%}.col-50{-webkit-flex:0 0 50%;-moz-box-flex:0;-moz-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-60{-webkit-box-flex:0;-webkit-flex:0 0 60%;-moz-box-flex:0;-moz-flex:0 0 60%;-ms-flex:0 0 60%;flex:0 0 60%;max-width:60%}.col-66,.col-67{-webkit-box-flex:0;-webkit-flex:0 0 66.6666%;-moz-box-flex:0;-moz-flex:0 0 66.6666%;-ms-flex:0 0 66.6666%;flex:0 0 66.6666%;max-width:66.6666%}.col-75,.col-80{-webkit-box-flex:0}.col-75{-webkit-flex:0 0 75%;-moz-box-flex:0;-moz-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-80{-webkit-flex:0 0 80%;-moz-box-flex:0;-moz-flex:0 0 80%;-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.col-90{-webkit-box-flex:0;-webkit-flex:0 0 90%;-moz-box-flex:0;-moz-flex:0 0 90%;-ms-flex:0 0 90%;flex:0 0 90%;max-width:90%}@media (max-width:567px){.responsive-sm{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-sm .col,.responsive-sm .col-10,.responsive-sm .col-20,.responsive-sm .col-25,.responsive-sm .col-33,.responsive-sm .col-34,.responsive-sm .col-50,.responsive-sm .col-66,.responsive-sm .col-67,.responsive-sm .col-75,.responsive-sm .col-80,.responsive-sm .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:767px){.responsive-md{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-md .col,.responsive-md .col-10,.responsive-md .col-20,.responsive-md .col-25,.responsive-md .col-33,.responsive-md .col-34,.responsive-md .col-50,.responsive-md .col-66,.responsive-md .col-67,.responsive-md .col-75,.responsive-md .col-80,.responsive-md .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:1023px){.responsive-lg{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-lg .col,.responsive-lg .col-10,.responsive-lg .col-20,.responsive-lg .col-25,.responsive-lg .col-33,.responsive-lg .col-34,.responsive-lg .col-50,.responsive-lg .col-66,.responsive-lg .col-67,.responsive-lg .col-75,.responsive-lg .col-80,.responsive-lg .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}.hide{display:none}.opacity-hide{opacity:0}.grade-b .opacity-hide,.grade-c .opacity-hide{opacity:1;display:none}.show{display:block}.opacity-show{opacity:1}.keyboard-open .hide-on-keyboard-open{display:none}.keyboard-open .bar-footer.hide-on-keyboard-open+.pane .has-footer,.keyboard-open .tabs.hide-on-keyboard-open+.pane .has-tabs{bottom:0}.inline{display:inline-block}.block,.block:after{display:block;clear:both}.disable-pointer-events{pointer-events:none}.enable-pointer-events{pointer-events:auto}.disable-user-behavior{user-select:none;-webkit-tap-highlight-color:transparent;-ms-touch-action:none;-ms-content-zooming:none}.click-block{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;z-index:99999;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);overflow:hidden}.click-block-hide{-webkit-transform:translate3d(-9999px,0,0);transform:translate3d(-9999px,0,0)}.no-resize{resize:none}.block:after{height:0;content:"."}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.padding-top,.padding-vertical{padding-top:10px}.padding-horizontal,.padding-right,.popover-share .bar-footer .button-close{padding-right:10px}.padding-bottom,.padding-vertical,.popover-share .bar-footer .button-close{padding-bottom:10px}.padding-horizontal,.padding-left{padding-left:10px}.iframe-wrapper{position:fixed;-webkit-overflow-scrolling:touch;overflow:scroll}.iframe-wrapper iframe{height:100%}.light,a.light{color:#fff}.light-bg{background-color:#fff}.stable,a.stable{color:#f8f8f8}.stable-border{border-color:#b2b2b2}.icon-help,.positive,.text-editable:hover,a.icon-help,a.positive,a.text-editable:hover{color:#387ef5}.positive-border{border-color:#0c60ee}#menu .footer .icon-help,#menu .footer a.icon-help,.calm,a.calm{color:#11c1f3}.calm-border{border-color:#0a9dc7}.assertive,.icon-alert,a.assertive,a.icon-alert{color:#ef473a}.assertive-border{border-color:#e42112}.balanced,a.balanced{color:#33cd5f}.balanced-border{border-color:#28a54c}.energized,a.energized{color:#ffc900}.energized-border{border-color:#e6b500}.royal,a.royal{color:#886aea}.royal-border{border-color:#6b46e5}.button-text-dark,.dark,a.button-text-dark,a.dark{color:#444}.dark-bg{background-color:#444}.dark-border{border-color:#111}[collection-repeat]{left:0!important;top:0!important;position:absolute!important;z-index:1}.collection-repeat-container{position:relative;z-index:1}.collection-repeat-after-container{z-index:0;display:block}[nav-view-transition=ios] [nav-view=active],[nav-view-transition=ios][nav-view-direction=forward] [nav-view=entering],[nav-view-transition=ios][nav-view-direction=back] [nav-view=leaving],[nav-view-transition=android] [nav-view=active],[nav-view-transition=android][nav-view-direction=forward] [nav-view=entering],[nav-view-transition=android][nav-view-direction=back] [nav-view=leaving]{z-index:3}[nav-view-transition=ios][nav-view-direction=forward] [nav-view=leaving],[nav-view-transition=ios][nav-view-direction=back] [nav-view=entering],[nav-view-transition=android][nav-view-direction=forward] [nav-view=leaving],[nav-view-transition=android][nav-view-direction=back] [nav-view=entering]{z-index:2}[nav-bar-transition=ios] [nav-bar=entering],[nav-bar-transition=ios] [nav-bar=active],[nav-bar-transition=android] [nav-bar=entering],[nav-bar-transition=android] [nav-bar=active]{z-index:10}.collection-repeat-after-container.horizontal{display:inline-block}.ng-cloak,.ng-hide:not(.ng-hide-animate),.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}[nav-bar-transition=ios] [nav-bar=cached] .header-item,[nav-bar-transition=android] [nav-bar=cached] .header-item,[nav-bar=cached],[nav-view=cached]{display:none}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader){height:64px;height:calc(constant(safe-area-inset-top) + 44px);height:calc(env(safe-area-inset-top) + 44px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:19px!important}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader)>*{margin-top:20px;margin-top:env(safe-area-inset-top)}.platform-ios.platform-cordova:not(.fullscreen) .bar-header{padding-left:calc(env(safe-area-inset-left) + 5px);padding-right:calc(env(safe-area-inset-right) + 5px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-header .buttons:last-child{right:calc(constant(safe-area-inset-right) + 5px);right:calc(env(safe-area-inset-right) + 5px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-footer.has-tabs,.platform-ios.platform-cordova:not(.fullscreen) .has-tabs{bottom:calc(constant(safe-area-inset-bottom) + 49px);bottom:calc(env(safe-area-inset-bottom) + 49px)}.platform-ios.platform-cordova:not(.fullscreen) .tabs-top>.tabs,.platform-ios.platform-cordova:not(.fullscreen) .tabs.tabs-top{top:64px}.platform-ios.platform-cordova:not(.fullscreen) .tabs{padding-bottom:env(safe-area-inset-bottom);height:calc(constant(safe-area-inset-bottom) + 49px);height:calc(env(safe-area-inset-bottom) + 49px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-subheader,.platform-ios.platform-cordova:not(.fullscreen) .has-header{top:64px;top:calc(constant(safe-area-inset-top) + 44px);top:calc(env(safe-area-inset-top) + 44px)}.platform-ios.platform-cordova:not(.fullscreen) .has-subheader{top:108px;top:calc(constant(safe-area-inset-top) + 88px);top:calc(env(safe-area-inset-top) + 88px)}.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-tabs-top{top:113px;top:calc(93px + constant(safe-area-inset-top));top:calc(93px + env(safe-area-inset-top))}.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top{top:157px;top:calc(137px + constant(safe-area-inset-right));top:calc(137px + env(safe-area-inset-right))}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:-1px}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .popover .bar-subheader,.platform-ios.platform-cordova .popover .has-header{top:44px}.platform-ios.platform-cordova .popover .has-subheader{top:88px}.platform-ios.platform-cordova.status-bar-hide{margin-bottom:20px}@media (orientation:landscape){.item{padding:16px calc(constant(safe-area-inset-right) + 16px)}.item .badge{right:calc(constant(safe-area-inset-right) + 32px)}.item-icon-left{padding-left:calc(constant(safe-area-inset-left) + 54px)}#menu .footer .item-icon-left .icon-help,.item-icon-left #menu .footer .icon-help,.item-icon-left .icon,.item-icon-left .icon-alert,.item-icon-left .icon-help{left:calc(constant(safe-area-inset-left) + 11px)}.item-icon-right{padding-right:calc(constant(safe-area-inset-right) + 54px)}#menu .footer .item-icon-right .icon-help,.item-icon-right #menu .footer .icon-help,.item-icon-right .icon,.item-icon-right .icon-alert,.item-icon-right .icon-help{right:calc(constant(safe-area-inset-right) + 11px)}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,a.item.item-complex .item-content,button.item.item-complex .item-content{padding:16px calc(constant(safe-area-inset-right) + 49px) 16px calc(constant(safe-area-inset-left) + 16px)}.item-left-edit.visible.active{-webkit-transform:translate3d(calc(constant(safe-area-inset-left) + 8px),0,0);transform:translate3d(calc(constant(safe-area-inset-left) + 8px),0,0)}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(calc(constant(safe-area-inset-left) + 50px),0,0);transform:translate3d(calc(constant(safe-area-inset-left) + 50px),0,0)}.item-right-edit{right:constant(safe-area-inset-right);right:env(safe-area-inset-right)}.platform-ios.platform-browser.platform-ipad{position:fixed}}.platform-c:not(.enable-transitions) *{-webkit-transition:none!important;transition:none!important}.slide-in-up{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(.1,.7,.1,1) .4s;transition:all cubic-bezier(.1,.7,.1,1) .4s}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}}[nav-view-transition=ios] [nav-view=entering],[nav-view-transition=ios] [nav-view=leaving]{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.36,.66,.04,1);transition-timing-function:cubic-bezier(.36,.66,.04,1);-webkit-transition-property:opacity,-webkit-transform,box-shadow;transition-property:opacity,transform,box-shadow}[nav-view-transition=ios][nav-view-direction=forward],[nav-view-transition=ios][nav-view-direction=back]{background-color:#000}.item-md-label,[nav-bar-transition=ios] [nav-bar=entering] .bar,[nav-bar-transition=ios] [nav-bar=active] .bar,[nav-bar-transition=android] [nav-bar=entering] .bar,[nav-bar-transition=android] [nav-bar=active] .bar{background:0 0}[nav-bar-transition=ios] .back-text,[nav-bar-transition=ios] .buttons,[nav-bar-transition=ios] .title{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.36,.66,.04,1);transition-timing-function:cubic-bezier(.36,.66,.04,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,transform}[nav-bar-transition=ios] [nav-bar=cached]{display:block}[nav-view-transition=android] [nav-view=entering],[nav-view-transition=android] [nav-view=leaving]{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,.6,.2,1);transition-timing-function:cubic-bezier(.4,.6,.2,1);-webkit-transition-property:-webkit-transform;transition-property:transform}[nav-bar-transition=android] .buttons,[nav-bar-transition=android] .title{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,.6,.2,1);transition-timing-function:cubic-bezier(.4,.6,.2,1);-webkit-transition-property:opacity;transition-property:opacity}[nav-bar-transition=android] [nav-bar=cached]{display:block}[nav-swipe=fast] .back-text,[nav-swipe=fast] .buttons,[nav-swipe=fast] .title,[nav-swipe=fast] [nav-view]{-webkit-transition-duration:50ms;transition-duration:50ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}[nav-swipe=slow] .back-text,[nav-swipe=slow] .buttons,[nav-swipe=slow] .title,[nav-swipe=slow] [nav-view]{-webkit-transition-duration:160ms;transition-duration:160ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}[nav-view=stage]{opacity:0;-webkit-transition-duration:0;transition-duration:0}[nav-bar=stage] .back-text,[nav-bar=stage] .buttons,[nav-bar=stage] .title{position:absolute;opacity:0;-webkit-transition-duration:0s;transition-duration:0s}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Thin/RobotoDraft-Thin.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Thin/RobotoDraft-Thin.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Thin/RobotoDraft-Thin.ttf?v=1.1.0) format("truetype");font-weight:100;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Light/RobotoDraft-Light.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Light/RobotoDraft-Light.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Light/RobotoDraft-Light.ttf?v=1.1.0) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Medium/RobotoDraft-Medium.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Medium/RobotoDraft-Medium.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Medium/RobotoDraft-Medium.ttf?v=1.1.0) format("truetype");font-weight:500;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Black/RobotoDraft-Black.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Black/RobotoDraft-Black.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Black/RobotoDraft-Black.ttf?v=1.1.0) format("truetype");font-weight:900;font-style:normal}.item-md-label{display:block;box-shadow:none;margin-left:12px;margin-right:12px;padding:30px 0 0}.item-md-label .input-label{position:absolute;z-index:2;-webkit-transform:translate3d(0,-30px,0) scale(1);transform:translate3d(0,-30px,0) scale(1);-webkit-transition:all .2s ease;transition:all .2s ease;color:#fff;opacity:.5;filter:alpha(opacity=50);-webkit-transform-origin:0;-ms-transform-origin:0;transform-origin:0}.item-md-label input{background-color:rgba(0,0,0,.6);bottom:0;color:#fff;letter-spacing:.25rem;padding:20px 10px;position:relative;z-index:1}.item-md-label .highlight{position:absolute;bottom:0;height:2px;left:0;width:100%;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);-webkit-transition:all .15s ease;transition:all .15s ease;z-index:1}.item-md-label .highlight-light{background:#fff}.item-md-label .highlight-stable{background:#f8f8f8}.item-md-label .highlight-positive{background:#387ef5}.item-md-label .highlight-calm{background:#11c1f3}.item-md-label .highlight-balanced{background:#33cd5f}.item-md-label .highlight-energized{background:#ffc900}.item-md-label .highlight-assertive{background:#ef473a}.item-md-label .highlight-royal{background:#886aea}.item-md-label .highlight-dark{background:#444}.item-md-label .input-label{letter-spacing:.25rem;padding:0 10px}.item-md-label input.used~.input-label,.item-md-label input:focus~.input-label{font-weight:700;opacity:.7;filter:alpha(opacity=70);padding:0;text-transform:uppercase;-webkit-transform:translate3d(0,-60px,0) scale(.9);transform:translate3d(0,-60px,0) scale(.9)}.item-md-label input:focus~.highlight{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bar.bar-header.expanded,.expanded .bar.bar-header{height:75px;-webkit-transition:height 1s cubic-bezier(.55,0,.1,1);transition:height 1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bar.bar-header.expanded .title,.expanded.bar.bar-header .title{bottom:0;top:initial;padding-left:16px}.bar.bar-header.expanded .title.fab-left,.expanded .bar.bar-header .title.fab-left{bottom:0;left:90px;position:absolute;right:initial;top:initial}.bar.bar-header.expanded .title.fab-right,.expanded .bar.bar-header .title.fab-right{bottom:0;left:4px;position:absolute;top:initial;right:initial}.bar.bar-header.expanded+.button-fab,.expanded .bar.bar-header+.button-fab{top:50px;-webkit-transition:all 1.1s cubic-bezier(.55,0,.1,1);transition:all 1.1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}.bar.bar-header.expanded.push-down,.expanded .bar.bar-header.push-down{height:44px;overflow:hidden}.bar.bar-header.expanded.push-down+.button-fab,.expanded .bar.bar-header.push-down+.button-fab{top:0;-webkit-transform:translate3d(-100px,-100px,0) scale(2.5);transform:translate3d(-100px,-100px,0) scale(2.5)}.bar.bar-header.expanded.push-down .title,.expanded .bar.bar-header.push-down .title{opacity:0;filter:alpha(opacity=0);left:initial;right:initial}.bar.bar-header.expanded .title,.expanded .bar.bar-header .title{opacity:1;filter:alpha(opacity=100);-webkit-transition:all 2s cubic-bezier(.55,0,.1,1);transition:all 2s cubic-bezier(.55,0,.1,1);bottom:0;left:42px!important;top:initial}.bar.bar-header.expanded.has-header-fab-left .title,.expanded.has-header-fab-left .bar.bar-header .title{left:76px!important}.bar{z-index:2;font-size:1.3em;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.bar .button{z-index:3}.bar .no-text span.back-text{display:none}.bar .title sup{opacity:.7}.bar.bar-header .button+.title{text-align:left;left:35px;line-height:46px}.button-bar{box-shadow:0 1px 3px rgba(0,0,0,.15)}.bar .button.button-clear,.bar .button.button-text,.button-bar>.button{box-shadow:none}#menu .footer .button-bar>.button .icon-help:before,.button-bar>.button #menu .footer .icon-help:before,.button-bar>.button .icon-alert:before,.button-bar>.button .icon-help:before,.button-bar>.button .icon:before,.button-bar>.button:before{line-height:initial}.bar-footer .button-fab{position:absolute;top:-26px;bottom:initial}.bar-footer .buttons-left .button-fab{left:8px}.bar-footer .buttons-right .button-fab{right:8px}.left-buttons .button-fab{left:8px;top:16px}.right-buttons .button-fab{right:8px;top:16px}.fab-left.title-left,.fab-left.title.title-left{left:68px}.bar .button.button-fab,.button.button-fab{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);z-index:9999;width:56px;height:56px;max-height:initial;max-width:initial;border-radius:50%;overflow:hidden;padding:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:.3s fade-in-out;transition:.3s fade-in-out;-webkit-transition-property:-webkit-transform,box-shadow;transition-property:transform,box-shadow}.bar .button.button-fab.button-fab-bottom-right,.button.button-fab.button-fab-bottom-right{top:auto;right:16px;bottom:16px;left:auto;position:absolute}.bar .button.button-fab.button-fab-bottom-left,.button.button-fab.button-fab-bottom-left{top:auto;right:auto;bottom:16px;left:16px;position:absolute}.bar .button.button-fab.button-fab-top-right,.button.button-fab.button-fab-top-right{top:32px;right:16px;bottom:auto;left:auto;position:absolute}.bar .button.button-fab.button-fab-top-left,.button.button-fab.button-fab-top-left{top:32px;right:auto;bottom:auto;left:16px;position:absolute}.bar .button.button-fab.button-fab-top-left.expanded,.bar .button.button-fab.button-fab-top-right.expanded,.button.button-fab.button-fab-top-left.expanded,.button.button-fab.button-fab-top-right.expanded{top:48px}.bar .button.button-fab i,.button.button-fab i{font-size:2.5rem;margin-top:0}.bar .button.button-fab.mini,.button.button-fab.mini{width:40px;height:40px}.bar .button.button-fab.mini i,.button.button-fab.mini i{font-size:2rem}.button.button-fab.button-fab-top-left.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(-120px,60px,0);transform:translate3d(-120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.button.button-fab.button-fab-top-right.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(120px,60px,0);transform:translate3d(120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.button.button-fab.button-fab-bottom-left.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(-120px,60px,0);transform:translate3d(-120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.button.button-fab.button-fab-bottom-right.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(120px,60px,0);transform:translate3d(120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.fade,.spin-back{-webkit-backface-visibility:hidden!important}.bar .button.button-floating,.button.button-floating{display:inline-block;color:#FFF;position:relative;z-index:1;width:37px;height:37px;line-height:37px;padding:0;border-radius:50%;background-clip:padding-box;-webkit-transition:.3s;transition:.3s;cursor:pointer}.bar .button.button-floating i,.button.button-floating i{width:inherit;display:inline-block;text-align:center;color:#FFF;line-height:37px}.bar .button.button-floating.button-large,.button.button-floating.button-large{width:55.5px;height:55.5px}.bar .button.button-floating.button-large i,.button.button-floating.button-large i{line-height:55.5px}.bar .button,.bar .button.button-flat,.bar .button.button-large,.button,.button.button-flat,.button.button-large{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);display:inline-block;height:36px;padding:0 2rem;border-radius:2px;background-clip:padding-box;text-transform:uppercase;border:none;outline:0;-webkit-tap-highlight-color:transparent}.button-bar .button,.button.cornered{border-radius:0}.bar .button.button-floating.disabled,.bar .button.button-floating:disabled,.bar .button.button-large.disabled,.bar .button.button-large:disabled,.bar .button.button:disabled,.bar .button.disabled,.bar .button.disabled.button-large,.button.button-floating.disabled,.button.button-floating:disabled,.button.button-large.disabled,.button.button-large:disabled,.button.button:disabled,.button.disabled,.button.disabled.button-large{background-color:#DFDFDF;box-shadow:none;color:#9F9F9F}.bar .button.button-floating.disabled:hover,.bar .button.button-floating:disabled:hover,.bar .button.button-large.disabled:hover,.bar .button.button-large:disabled:hover,.bar .button.button:disabled:hover,.bar .button.disabled.button-large:hover,.bar .button.disabled:hover,.button.button-floating.disabled:hover,.button.button-floating:disabled:hover,.button.button-large.disabled:hover,.button.button-large:disabled:hover,.button.button:disabled:hover,.button.disabled.button-large:hover,.button.disabled:hover{background-color:#DFDFDF;color:#9F9F9F}.bar .button i,.bar .button.button-flat i,.bar .button.button-floating i,.bar .button.button-large i,.button i,.button.button-flat i,.button.button-floating i,.button.button-large i{font-size:1.3rem}.bar .button,.bar .button-large,.button,.button-large{text-decoration:none;text-align:center;letter-spacing:.5px;-webkit-transition:.2s ease-out;transition:.2s ease-out;cursor:pointer}.button{user-select:none;position:relative;outline:0;margin:0;white-space:nowrap;text-align:center;text-transform:uppercase;font-weight:500;font-style:inherit;font-variant:inherit;font-size:inherit;text-decoration:none;cursor:pointer;-webkit-transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),transform .4s cubic-bezier(.25,.8,.25,1)}.button:focus{outline:0}.button.ng-hide{-webkit-transition:none;transition:none}.button.raised{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.button-outline,.button-outline:active,.button-outline:hover{border-style:solid;border-width:1px}.button.button-outline,.button.button-outline.button-assertive,.button.button-outline.button-balanced,.button.button-outline.button-calm,.button.button-outline.button-dark,.button.button-outline.button-energized,.button.button-outline.button-light,.button.button-outline.button-positive,.button.button-outline.button-royal,.button.button-outline.button-stable,.button.button-outline.button-text{border-color:rgba(0,0,0,.1)}.bar .button-flat,.button-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer}.bar .button.button-flat.disabled,.button.button-flat.disabled{color:#b3b3b3}.button.button-flat,.button.button-flat:active,.button.button-flat:hover,.hero{color:#fff}.bar .button.button-large i,.button.button-large i{font-size:1.6rem}.button-pin-header.button-floating{position:absolute;z-index:1000}.button-pin-header.button-pin-left{left:24px;top:-24px}.button-pin-header.button-pin-right{right:24px;top:-24px}#menu .footer .item-icon-right .icon-help,.item-icon-right #menu .footer .icon-help,.item-icon-right .icon,.item-icon-right .icon-alert,.item-icon-right .icon-help,.menu-top{right:16px}.button:not([disabled]).floating:focus,.button:not([disabled]).floating:hover,.button:not([disabled]).raised:focus,.button:not([disabled]).raised:hover{-webkit-transform:translate3d(0,-1px,0);transform:translate3d(0,-1px,0)}.button.button-flat{box-shadow:none}.card,.card img{box-shadow:0 2px 5px 0 rgba(0,0,0,.26);display:block}.button.button-clear,.button.button-clear:active,.button.button-clear:hover,.button.button-text,.button.button-text:active,.button.button-text:hover{background:0 0}.button-block.ink,.button-full.ink{display:block}.card-item.item{border:none;padding-bottom:4px;padding-top:4px}.card-item.item:first-child{padding-top:16px}.card{margin:8px;padding:0;position:relative}.card .image{display:block;margin-top:10px;margin-bottom:5px}.card img{max-width:100%;max-height:initial;position:static}.card.card-gallery img{border:none;box-shadow:none;display:block}.card .card-footer{font-size:90%;opacity:.8;filter:alpha(opacity=80);padding-top:10px}.card>.item{border:none}.card.card-gallery>.item{background:inherit}#menu .footer .card .icon+.icon-help,#menu .footer .card .icon-alert+.icon-help,#menu .footer .card .icon-help+.icon,#menu .footer .card .icon-help+.icon-alert,#menu .footer .card .icon-help+.icon-help,.card #menu .footer .icon+.icon-help,.card #menu .footer .icon-alert+.icon-help,.card #menu .footer .icon-help+.icon,.card #menu .footer .icon-help+.icon-alert,.card #menu .footer .icon-help+.icon-help,.card .icon+.icon,.card .icon+.icon-alert,.card .icon+.icon-help,.card .icon-alert+.icon,.card .icon-alert+.icon-alert,.card .icon-alert+.icon-help,.card .icon-help+.icon,.card .icon-help+.icon-alert,.card .icon-help+.icon-help{padding-left:1rem}.card.animate-fade-in{opacity:0;filter:alpha(opacity=0);-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.hero+.mid-bar,.hero>*{opacity:1;filter:alpha(opacity=100)}.animate-fade-slide-in .card.animate-fade-in.expanded.item,.animate-fade-slide-in .expanded .card.animate-fade-in.item,.animate-fade-slide-in-right .card.animate-fade-in.expanded.item,.animate-fade-slide-in-right .expanded .card.animate-fade-in.item,.animate-ripple .card.animate-fade-in.expanded.item,.animate-ripple .expanded .card.animate-fade-in.item,.card-avatar-small .expanded .card.animate-fade-in.card-comment,.card-avatar-small .expanded .card.animate-fade-in.item,.card-avatar-small.expanded .card.animate-fade-in.card-comment,.card-avatar-small.expanded .card.animate-fade-in.item,.card.animate-fade-in.done{opacity:1;filter:alpha(opacity=100);-webkit-transform:translate3d(0,0,0)}.card .item.item-avatar{min-height:88px;padding-left:88px}.hero{background-size:cover;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);height:200px;position:relative;text-align:center;-webkit-transition:all 1s cubic-bezier(.55,0,.1,1);transition:all 1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);width:100%}.hero .hero-icon{box-shadow:0 0 2px 0 rgba(0,0,0,.26);border-radius:50%;display:inline-block;height:150px;padding:10px 30px;line-height:136px;width:150px}.hero.no-header{height:244px}.hero>.content{bottom:0;position:absolute;text-align:center;width:100%;z-index:1}.hero>.content>.avatar{background-position:center;background-size:cover;border:1px solid rgba(255,255,255,.8);border-radius:50%;display:inline-block;height:88px;left:auto;margin-bottom:10px;position:relative;width:88px}.hero h1 .hero h2,.hero h3,.hero h4,.hero h5,.hero h6{color:#fff;margin:0}.hero h4{color:rgba(255,255,255,.7);margin:3px 0 16px}.hero h1>a,.hero h2>a,.hero h3>a,.hero h4>a,.hero h5>a,.hero h6>a{text-decoration:none}.hero+.button-bar{border-radius:0;margin-top:0}.hero+.button-bar>.button:first-child,.hero+.button-bar>.button:last-child{border-radius:0}.hero .hero-icon{color:#fff;font-size:96px}.hero .hero-icon+h1{color:#fff;letter-spacing:.15rem}.hero .button,.hero .button.button-flat,.hero .button.button-large{margin:0}.hero h1.title{color:#fff;font-size:23px;margin:0;text-align:left;padding-left:80px;line-height:59px}.hero+.mid-bar{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:all 1s cubic-bezier(.55,0,.1,1);transition:all 1s cubic-bezier(.55,0,.1,1);height:initial}.hero>*{-webkit-transition:opacity 2.5s cubic-bezier(.55,0,.1,1);transition:opacity 2.5s cubic-bezier(.55,0,.1,1)}.item{font-size:14px;width:100%}#menu .footer .item-icon-left .icon-help,.item-icon-left #menu .footer .icon-help,.item-icon-left .icon,.item-icon-left .icon-alert,.item-icon-left .icon-help{left:16px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{border-radius:50%}.tab-item.activated{height:calc(100% + 3px)}.content+.list{padding-top:0}.list .item{border:none;min-height:48px;text-align:left}.list .item.tabs{padding:initial}.list .item.item-bg-image{min-height:150px}.list .item.item-bg-image>img{height:100%;left:0;max-width:initial;opacity:.65;filter:alpha(opacity=65);position:absolute;top:0;width:100%;z-index:0}.list a.item{opacity:1;filter:alpha(opacity=100)}.list .item.item-bg-image h1,.list .item.item-bg-image h2,.list .item.item-bg-image h3,.list .item.item-bg-image h4,.list .item.item-bg-image h5,.list .item.item-bg-image h6{color:#fff;font-weight:700;position:relative;text-shadow:0 0 3px rgba(0,0,0,.95);z-index:1}.list .item.item-bg-image h2{font-size:24px}.list .item.item-bg-image p{color:#fff;font-size:17px;position:relative;text-shadow:0 0 4px rgba(0,0,0,.95);z-index:1}.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{min-height:80px}.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:106px}.card>.item.item-thumbnail-right,.item-thumbnail-right,.item-thumbnail-right .item-content{padding-right:106px}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{left:16px;max-height:40px;max-width:40px}.avatar,.item-avatar .avatar{background-position:center;background-size:cover;border-radius:50%;display:inline-block;height:56px;left:16px;position:absolute;width:56px}.list.half{display:inline-block;float:left;margin:0;padding:0;width:50%}.list.half:first-child{padding:16px 8px 16px 16px}.list.half:last-child{padding:16px 16px 16px 8px}.list.half:first-child .card.card-gallery,.list.half:last-child .card.card-gallery{margin-left:0;margin-right:0}.list.condensed-space>.card,.list.condensed-space>.item{margin:0 0 2px}.list .card.card-gallery{display:block;float:left;margin:0 0 0 13px;padding:0;width:auto}.list .item.item-gallery img,.list.half .item{width:100%}.list.half .item.card{margin-bottom:16px}.list .card.card-gallery.item h2{padding:12px}.item.item-divider{border-top:solid 1px rgba(0,0,0,.12);font-size:14px;font-weight:700;height:48px;line-height:48px;color:rgba(0,0,0,.54)}.circular,.loader{height:100px;position:relative;width:100px}.item.item-divider:first-child{border:none}.item .item-content.activated,.item .item-content.active,.item-complex.activated .item-content,.item-complex.active .item-content,.item.activated,.item.active{background-color:transparent}.list-inset,.login .light-bg{background-color:#fff}.list-inset{margin:20px 30px;border-left:solid 1px #ccc;border-radius:0}.item-floating-label,.list .item.item-floating-label{border-bottom:solid 1px #ccc}.loader{margin:0 auto;zoom:1.7}.circular{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite}.path{stroke-dasharray:1,200;stroke-dashoffset:0;-webkit-animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}100%{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}100%{stroke-dasharray:89,200;stroke-dashoffset:-124}}@-webkit-keyframes color{0%,100%{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}@keyframes color{0%,100%{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}.login{background-position:25% 25%;background-size:180% 180%;height:100%;-webkit-transition:all 1.5s ease-in-out;transition:all 1.5s ease-in-out}.login .item{margin:0 12px;padding-left:0;padding-right:0;width:initial}.login .button-bar{bottom:0;margin:28px 12px 0;width:initial}#menu .footer .hero-icon.icon-help:before,.hero-icon.icon-alert:before,.hero-icon.icon-help:before,.icon.hero-icon:before{line-height:130px}.card.has-mask:after,.hero.has-mask:after,.item.has-mask:after{content:'';background:-webkit-linear-gradient(top,transparent 0,rgba(0,0,0,.6) 100%);height:100%;left:0;position:absolute;top:0;z-index:0;width:100%}.card.has-mask-reverse:after,.hero.has-mask-reverse:after,.item.has-mask-reverse:after{content:'';background:-webkit-linear-gradient(top,rgba(0,0,0,.6) 0,transparent 100%);height:100%;left:0;position:absolute;top:0;z-index:0;width:100%}.menu-bottom{bottom:16px;left:16px;right:16px;position:absolute}.menu-top{top:16px;left:16px;position:absolute}.menu .avatar{top:16px;left:16px;height:65px;width:65px}.menu .bar.bar-header.expanded{box-shadow:none;min-height:150px;color:#fff}.menu-open .bar.bar-header.expanded{background-position:0;background-size:100%}.has-expanded-header{top:150px!important}.motion{-webkit-transition:all .5s ease-out;transition:all .5s ease-out}.fade{opacity:0;filter:alpha(opacity=0);backface-visibility:hidden!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.spin-back,.spiral{-webkit-transition:all .1s ease-out!important}.spin-back{backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(360deg) scale(0)!important;transform:translateZ(0) rotate(360deg) scale(0)!important;transition:all .1s ease-out!important}.spiral,.spiral-back{-webkit-backface-visibility:hidden!important}.spiral{backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(-360deg) scale(0) translate(-120px)!important;transform:translateZ(0) rotate(-360deg) scale(0) translate(-120px)!important;transition:all .1s ease-out!important}.spiral-back{backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(360deg) scale(0) translate(120px)!important;transform:translateZ(0) rotate(360deg) scale(0) translate(120px)!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.flap,.spin{-webkit-backface-visibility:hidden!important}.menu-open .avatar{opacity:1;filter:alpha(opacity=100);-webkit-transform:translateZ(0) rotate(0) scale(1)!important;transform:translateZ(0) rotate(0) scale(1)!important;-webkit-transition:all .3s ease-out!important;transition:all .3s ease-out!important}.spin{backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(0) scale(0)!important;transform:translateZ(0) rotate(0) scale(0)!important;-webkit-transition:all .3s ease-out!important;transition:all .3s ease-out!important}.spin.on{-webkit-transform:translateZ(0) rotate(-360deg) scale(1)!important;transform:translateZ(0) rotate(-360deg) scale(1)!important}.flap{backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotateX(0) scale(0) translate(-120px)!important;transform:translateZ(0) rotateX(0) scale(0) translate(-120px)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.drop,.flip{-webkit-backface-visibility:hidden!important}.drop,.flap.on{-webkit-transition:all .5s ease-out!important}.flap.on{-webkit-transform:translateZ(0) rotateX(-720deg) scale(1) translate(0)!important;transform:translateZ(0) rotateX(-720deg) scale(1) translate(0)!important;transition:all .5s ease-out!important}.drop{backface-visibility:hidden!important;-webkit-transform:translateZ(0) scale(3)!important;transform:translateZ(0) scale(3)!important;transition:all .5s ease-out!important}.drop.on,.flip{-webkit-transition:all .5s ease-out!important}.drop.on{-webkit-transform:translateZ(0) scale(1)!important;transform:translateZ(0) scale(1)!important;transition:all .5s ease-out!important}.flip{backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotateY(0) scale(0)!important;transform:translateZ(0) rotateY(0) scale(0)!important;transition:all .5s ease-out!important}.flip.on{-webkit-transform:translateZ(0) rotateY(-720deg) scale(1)!important;transform:translateZ(0) rotateY(-720deg) scale(1)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.bold{font-weight:700}.static{position:static}#menu .footer .popover-helptip .icon-bottom-left.icon-help,#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-bottom-left,.popover-helptip .icon.icon-left,.pull-left{float:left}#menu .footer .popover-helptip .icon-bottom-center.icon-help,#menu .footer .popover-helptip .icon-bottom-right.icon-help,#menu .footer .popover-helptip .icon-center.icon-help,#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-bottom-center,.popover-helptip .icon.icon-bottom-right,.popover-helptip .icon.icon-center,.popover-helptip .icon.icon-right,.pull-right{float:right}.double-padding,.ionic-content.double-padding{padding:16px}.double-padding-x{padding-left:16px;padding-right:16px}.double-padding-y{padding-top:16px;padding-bottom:16px}.outline{border-style:solid;border-width:1px}.border-top{border-top:solid 1px #ccc;padding-top:30px}.no-border{border:none}.circle,.ink-ripple{border-radius:50%}.bar.no-padding,.button-bar.no-padding,.button.no-padding,.card.no-padding,.item.no-padding,.list.no-padding,.no-padding{padding:0}#menu .footer .flat.button.icon-help,.flat,.flat.button,.flat.button.icon,.flat.button.icon-alert,.flat.button.icon-help,.flat.hero,.flat.tabs{box-shadow:none;-webkit-box-shadow:none}.im-wrapper,.item.large-button-bar,.padding{padding:16px!important}.padding-bottom,.popover-share .bar-footer .button-close{padding-bottom:16px!important}.padding-top{padding-top:16px!important}.padding-left{padding-left:16px!important}.padding-right,.popover-share .bar-footer .button-close{padding-right:16px!important}.no-padding-bottom{padding-bottom:0!important}.no-padding-top{padding-top:0!important}.no-padding-left{padding-left:0!important}.no-padding-right{padding-right:0!important}.z1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.bar.bar-positive.darker{background-color:#164FAB}.bar.bar-positive.dark-positive-bg{background-color:#2C5CAD}.muted{color:#C3C3C3}.clear-bg{background:0 0}.animate-blinds .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.55,0,.1,1);transition:transform .3s cubic-bezier(.55,0,.1,1)}.animate-blinds .item-bg-image>img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-blinds .animate-fade-slide-in .expanded .item,.animate-blinds .animate-fade-slide-in .expanded.item,.animate-blinds .animate-fade-slide-in-right .expanded .item,.animate-blinds .animate-fade-slide-in-right .expanded.item,.animate-blinds .animate-ripple .expanded .item,.animate-blinds .animate-ripple .expanded.item,.animate-blinds .card-avatar-small .expanded .card.card-comment,.animate-blinds .card-avatar-small .expanded .item,.animate-blinds .card-avatar-small.expanded .card.card-comment,.animate-blinds .card-avatar-small.expanded .item,.animate-blinds .in,.animate-blinds.done>*,.animate-fade-slide-in .animate-blinds .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item>*,.animate-fade-slide-in .expanded .animate-blinds .item,.animate-fade-slide-in .expanded .animate-blinds.item>*,.animate-fade-slide-in-right .animate-blinds .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item>*,.animate-fade-slide-in-right .expanded .animate-blinds .item,.animate-fade-slide-in-right .expanded .animate-blinds.item>*,.animate-ripple .animate-blinds .expanded.item,.animate-ripple .animate-blinds.expanded.item>*,.animate-ripple .expanded .animate-blinds .item,.animate-ripple .expanded .animate-blinds.item>*,.card-avatar-small .expanded .animate-blinds .card.card-comment,.card-avatar-small .expanded .animate-blinds .item,.card-avatar-small .expanded .animate-blinds.card.card-comment>*,.card-avatar-small .expanded .animate-blinds.item>*,.card-avatar-small.expanded .animate-blinds .card.card-comment,.card-avatar-small.expanded .animate-blinds .item,.card-avatar-small.expanded .animate-blinds.card.card-comment>*,.card-avatar-small.expanded .animate-blinds.item>*{-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.animate-blinds .animate-fade-slide-in .expanded .item,.animate-blinds .animate-fade-slide-in .expanded.item,.animate-blinds .animate-fade-slide-in-right .expanded .item,.animate-blinds .animate-fade-slide-in-right .expanded.item,.animate-blinds .animate-ripple .expanded .item,.animate-blinds .animate-ripple .expanded.item,.animate-blinds .card-avatar-small .expanded .card.card-comment,.animate-blinds .card-avatar-small .expanded .item,.animate-blinds .card-avatar-small.expanded .card.card-comment,.animate-blinds .card-avatar-small.expanded .item,.animate-blinds .in,.animate-blinds.done .item,.animate-fade-slide-in .animate-blinds .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-fade-slide-in .expanded .animate-blinds .item,.animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .animate-blinds .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .expanded .animate-blinds .item,.animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-ripple .animate-blinds .expanded.item,.animate-ripple .animate-blinds.expanded.item .item,.animate-ripple .expanded .animate-blinds .item,.animate-ripple .expanded .animate-blinds.item .item,.card-avatar-small .expanded .animate-blinds .card.card-comment,.card-avatar-small .expanded .animate-blinds .item,.card-avatar-small .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .expanded .animate-blinds.item .item,.card-avatar-small.expanded .animate-blinds .card.card-comment,.card-avatar-small.expanded .animate-blinds .item,.card-avatar-small.expanded .animate-blinds.card.card-comment .item,.card-avatar-small.expanded .animate-blinds.item .item{visibility:visible}.animate-blinds .item{visibility:hidden;opacity:0;filter:alpha(opacity=0)}.animate-blinds .animate-fade-slide-in .expanded .item,.animate-blinds .animate-fade-slide-in .expanded.item,.animate-blinds .animate-fade-slide-in-right .expanded .item,.animate-blinds .animate-fade-slide-in-right .expanded.item,.animate-blinds .animate-ripple .expanded .item,.animate-blinds .animate-ripple .expanded.item,.animate-blinds .card-avatar-small .expanded .card.card-comment,.animate-blinds .card-avatar-small .expanded .item,.animate-blinds .card-avatar-small.expanded .card.card-comment,.animate-blinds .card-avatar-small.expanded .item,.animate-blinds .in,.animate-blinds.done,.animate-fade-slide-in .animate-blinds .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item,.animate-fade-slide-in .expanded .animate-blinds .item,.animate-fade-slide-in .expanded .animate-blinds.item,.animate-fade-slide-in-right .animate-blinds .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds .item,.animate-fade-slide-in-right .expanded .animate-blinds.item,.animate-ripple .animate-blinds .expanded.item,.animate-ripple .animate-blinds.expanded.item,.animate-ripple .expanded .animate-blinds .item,.animate-ripple .expanded .animate-blinds.item,.card-avatar-small .expanded .animate-blinds .card.card-comment,.card-avatar-small .expanded .animate-blinds .item,.card-avatar-small .expanded .animate-blinds.card.card-comment,.card-avatar-small .expanded .animate-blinds.item,.card-avatar-small.expanded .animate-blinds .card.card-comment,.card-avatar-small.expanded .animate-blinds .item,.card-avatar-small.expanded .animate-blinds.card.card-comment,.card-avatar-small.expanded .animate-blinds.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;opacity:1;filter:alpha(opacity=100);visibility:visible}.animate-blinds.done .animate-fade-slide-in .expanded .item,.animate-blinds.done .animate-fade-slide-in .expanded.item,.animate-blinds.done .animate-fade-slide-in-right .expanded .item,.animate-blinds.done .animate-fade-slide-in-right .expanded.item,.animate-blinds.done .animate-ripple .expanded .item,.animate-blinds.done .animate-ripple .expanded.item,.animate-blinds.done .card-avatar-small .expanded .card.card-comment,.animate-blinds.done .card-avatar-small .expanded .item,.animate-blinds.done .card-avatar-small.expanded .card.card-comment,.animate-blinds.done .card-avatar-small.expanded .item,.animate-blinds.done .in,.animate-fade-slide-in .animate-blinds.done .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-blinds.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .in,.animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-fade-slide-in .animate-ripple .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple .animate-blinds.expanded.item .item,.animate-fade-slide-in .animate-ripple .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-blinds.item .item,.animate-fade-slide-in .card-avatar-small .animate-blinds.expanded.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .animate-blinds.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.item .item,.animate-fade-slide-in .expanded .animate-blinds.done .item,.animate-fade-slide-in .expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .expanded .animate-blinds.item .animate-ripple .expanded.item,.animate-fade-slide-in .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .expanded .animate-blinds.item .in,.animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .animate-blinds.done .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-blinds.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .in,.animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .animate-ripple .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .card-avatar-small .animate-blinds.expanded.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.item .item,.animate-fade-slide-in-right .expanded .animate-blinds.done .item,.animate-fade-slide-in-right .expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds.item .in,.animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-ripple .animate-blinds.done .expanded.item,.animate-ripple .animate-blinds.expanded.item .animate-fade-slide-in .expanded.item,.animate-ripple .animate-blinds.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .animate-blinds.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-blinds.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-blinds.expanded.item .expanded.item,.animate-ripple .animate-blinds.expanded.item .in,.animate-ripple .animate-blinds.expanded.item .item,.animate-ripple .animate-fade-slide-in .animate-blinds.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-ripple .animate-fade-slide-in .expanded .animate-blinds.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-ripple .animate-fade-slide-in-right .animate-blinds.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-blinds.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-ripple .card-avatar-small .animate-blinds.expanded.item .card.card-comment,.animate-ripple .card-avatar-small .animate-blinds.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-blinds.card.card-comment .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-blinds.card.card-comment .item,.animate-ripple .card-avatar-small .expanded .animate-blinds.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-blinds.item .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-blinds.item .item,.animate-ripple .card-avatar-small.expanded .animate-blinds.card.card-comment .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-blinds.card.card-comment .item,.animate-ripple .card-avatar-small.expanded .animate-blinds.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-blinds.item .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-blinds.item .item,.animate-ripple .expanded .animate-blinds.done .item,.animate-ripple .expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.animate-ripple .expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .expanded .animate-blinds.item .expanded.item,.animate-ripple .expanded .animate-blinds.item .in,.animate-ripple .expanded .animate-blinds.item .item,.card-avatar-small .animate-fade-slide-in .animate-blinds.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .animate-blinds.expanded.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-blinds.item .item,.card-avatar-small .animate-fade-slide-in-right .animate-blinds.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-blinds.item .item,.card-avatar-small .animate-ripple .animate-blinds.expanded.item .card.card-comment,.card-avatar-small .animate-ripple .animate-blinds.expanded.item .item,.card-avatar-small .animate-ripple .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .animate-ripple .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-blinds.item .item,.card-avatar-small .expanded .animate-blinds.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-blinds.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-blinds.card.card-comment .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-blinds.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-blinds.card.card-comment .in,.card-avatar-small .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .expanded .animate-blinds.done .card.card-comment,.card-avatar-small .expanded .animate-blinds.done .item,.card-avatar-small .expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-blinds.item .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .expanded .animate-blinds.item .in,.card-avatar-small .expanded .animate-blinds.item .item,.card-avatar-small.expanded .animate-blinds.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-blinds.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-blinds.card.card-comment .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-blinds.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-blinds.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-blinds.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-blinds.card.card-comment .in,.card-avatar-small.expanded .animate-blinds.card.card-comment .item,.card-avatar-small.expanded .animate-blinds.done .card.card-comment,.card-avatar-small.expanded .animate-blinds.done .item,.card-avatar-small.expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-blinds.item .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-blinds.item .card.card-comment,.card-avatar-small.expanded .animate-blinds.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-blinds.item .expanded .item,.card-avatar-small.expanded .animate-blinds.item .in,.card-avatar-small.expanded .animate-blinds.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-blinds.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-blinds.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-blinds.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.card-avatar-small.expanded .animate-ripple .animate-blinds.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-blinds.expanded.item .item,.card-avatar-small.expanded .expanded .animate-blinds.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-blinds.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-blinds.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-blinds.item .item{opacity:1;filter:alpha(opacity=100)}.animate-blinds .has-mask-reverse:after{opacity:0;filter:alpha(opacity=0);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-blinds.done .has-mask-reverse:after,.animate-fade-slide-in .animate-blinds.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-blinds.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-blinds.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-blinds.item .has-mask-reverse:after,.animate-ripple .animate-blinds.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-blinds.item .has-mask-reverse:after,.card-avatar-small .expanded .animate-blinds.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-blinds.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-blinds.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-blinds.item .has-mask-reverse:after{opacity:1;filter:alpha(opacity=100)}.animate-blinds .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.animate-pan-in-left{background-position:0 0}.animate-ripple .item-bg-image img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-ripple .item{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1);opacity:0;filter:alpha(opacity=0)}.animate-fade-slide-in .animate-fade-slide-in-right .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .animate-ripple.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-ripple.item .item,.animate-fade-slide-in .animate-ripple .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-ripple.item .item,.animate-fade-slide-in .animate-ripple.done .expanded.item,.animate-fade-slide-in .animate-ripple.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .animate-ripple.expanded.item .animate-ripple.expanded.item .item,.animate-fade-slide-in .animate-ripple.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-ripple.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-ripple.expanded.item .expanded .item,.animate-fade-slide-in .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple.expanded.item .in,.animate-fade-slide-in .animate-ripple.expanded.item .item,.animate-fade-slide-in .card-avatar-small .animate-ripple.expanded.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .animate-ripple.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.item .item,.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in .expanded .animate-ripple.done .item,.animate-fade-slide-in .expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .expanded .animate-ripple.item .expanded .item,.animate-fade-slide-in .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .expanded .animate-ripple.item .in,.animate-fade-slide-in .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .animate-ripple .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .animate-ripple.done .expanded.item,.animate-fade-slide-in-right .animate-ripple.expanded.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .animate-ripple.expanded.item .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .animate-ripple.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-ripple.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-ripple.expanded.item .expanded .item,.animate-fade-slide-in-right .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple.expanded.item .in,.animate-fade-slide-in-right .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .animate-ripple.expanded.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.item .item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple.done .item,.animate-fade-slide-in-right .expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple.item .expanded .item,.animate-fade-slide-in-right .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple.item .in,.animate-fade-slide-in-right .expanded .animate-ripple.item .item,.animate-ripple .animate-fade-slide-in .expanded .animate-ripple.item .item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-ripple.item .item,.animate-ripple .animate-ripple.expanded.item .animate-fade-slide-in .expanded.item,.animate-ripple .animate-ripple.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .animate-ripple.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-ripple.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-ripple.expanded.item .in,.animate-ripple .animate-ripple.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-ripple.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-ripple.item .item,.animate-ripple .card-avatar-small .expanded .item.card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-ripple.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-ripple.item .item,.animate-ripple .card-avatar-small.expanded .item.card.card-comment,.animate-ripple .expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.animate-ripple .expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .expanded .animate-ripple.item .in,.animate-ripple .expanded .animate-ripple.item .item,.animate-ripple .expanded .item,.animate-ripple .item.expanded,.animate-ripple .item.in,.animate-ripple.done .animate-fade-slide-in .expanded .item,.animate-ripple.done .animate-fade-slide-in .expanded.item,.animate-ripple.done .animate-fade-slide-in-right .expanded .item,.animate-ripple.done .animate-fade-slide-in-right .expanded.item,.animate-ripple.done .card-avatar-small .expanded .card.card-comment,.animate-ripple.done .card-avatar-small .expanded .item,.animate-ripple.done .card-avatar-small.expanded .card.card-comment,.animate-ripple.done .card-avatar-small.expanded .item,.animate-ripple.done .expanded .item,.animate-ripple.done .expanded.item,.animate-ripple.done .in,.animate-ripple.expanded.item .animate-ripple.expanded.item .expanded.item,.animate-ripple.item .expanded .animate-ripple.item .expanded.item,.card-avatar-small .animate-fade-slide-in .animate-ripple.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .animate-ripple.expanded.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-ripple.card.card-comment .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-ripple.item .item,.card-avatar-small .animate-fade-slide-in-right .animate-ripple.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .animate-ripple.expanded.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-ripple.card.card-comment .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-ripple.item .item,.card-avatar-small .animate-ripple .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-ripple.item .item,.card-avatar-small .animate-ripple.expanded.item .animate-ripple.expanded.item .card.card-comment,.card-avatar-small .animate-ripple.expanded.item .animate-ripple.expanded.item .item,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small .expanded .animate-ripple.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-ripple.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-ripple.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-ripple.card.card-comment .expanded .item,.card-avatar-small .expanded .animate-ripple.card.card-comment .expanded.item,.card-avatar-small .expanded .animate-ripple.card.card-comment .in,.card-avatar-small .expanded .animate-ripple.card.card-comment .item,.card-avatar-small .expanded .animate-ripple.done .card.card-comment,.card-avatar-small .expanded .animate-ripple.done .item,.card-avatar-small .expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .expanded .animate-ripple.item .expanded .item,.card-avatar-small .expanded .animate-ripple.item .expanded.item,.card-avatar-small .expanded .animate-ripple.item .in,.card-avatar-small .expanded .animate-ripple.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-ripple.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-ripple.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-ripple.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-ripple.expanded.item .item,.card-avatar-small.expanded .animate-ripple .animate-ripple.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-ripple.expanded.item .item,.card-avatar-small.expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-ripple.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-ripple.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-ripple.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-ripple.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-ripple.card.card-comment .expanded.item,.card-avatar-small.expanded .animate-ripple.card.card-comment .in,.card-avatar-small.expanded .animate-ripple.card.card-comment .item,.card-avatar-small.expanded .animate-ripple.done .card.card-comment,.card-avatar-small.expanded .animate-ripple.done .item,.card-avatar-small.expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-ripple.item .card.card-comment,.card-avatar-small.expanded .animate-ripple.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-ripple.item .expanded .item,.card-avatar-small.expanded .animate-ripple.item .expanded.item,.card-avatar-small.expanded .animate-ripple.item .in,.card-avatar-small.expanded .animate-ripple.item .item,.card-avatar-small.expanded .expanded .animate-ripple.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-ripple.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-ripple.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-ripple.item .item{opacity:1;filter:alpha(opacity=100)}.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .done,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item{visibility:hidden;-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.55,0,.1,1);transition:transform .3s cubic-bezier(.55,0,.1,1)}.animate-fade-slide-in .animate-ripple.expanded.item,.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in .expanded .animate-ripple.item,.animate-fade-slide-in-right .animate-ripple.expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple.item,.animate-ripple .animate-ripple.expanded.item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .expanded .animate-ripple.item,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.animate-ripple .in,.animate-ripple.done,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small .expanded .animate-ripple.card.card-comment,.card-avatar-small .expanded .animate-ripple.item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple.card.card-comment,.card-avatar-small.expanded .animate-ripple.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;visibility:visible}.animate-ripple .has-mask-reverse:after{opacity:0;filter:alpha(opacity=0);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-fade-slide-in .animate-ripple.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-ripple.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-ripple.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-ripple.item .has-mask-reverse:after,.animate-ripple .animate-ripple.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-ripple.item .has-mask-reverse:after,.animate-ripple.done .has-mask-reverse:after,.card-avatar-small .expanded .animate-ripple.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-ripple.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-ripple.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-ripple.item .has-mask-reverse:after{opacity:1;filter:alpha(opacity=100)}.animate-ripple .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.animate-fade-slide-in .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1)}.animate-fade-slide-in .item-bg-image img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-fade-slide-in .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .expanded .item,.animate-fade-slide-in .expanded.item,.animate-fade-slide-in .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in.done .item,.animate-ripple .animate-fade-slide-in.expanded.item .item,.animate-ripple .expanded .animate-fade-slide-in .item,.animate-ripple .expanded .animate-fade-slide-in.item .item,.card-avatar-small .expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in.item .item,.card-avatar-small.expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in.item .item{-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:visible}.list .item.item-bg-image{max-height:150px}.animate-fade-slide-in .item{visibility:hidden;-ms-transform:translate3d(-250px,250px,0);-webkit-transform:translate3d(-250px,250px,0);transform:translate3d(-250px,250px,0);-webkit-transition:-webkit-transform .5s cubic-bezier(.55,0,.1,1);transition:transform .5s cubic-bezier(.55,0,.1,1);opacity:0;filter:alpha(opacity=0)}.animate-fade-slide-in .animate-fade-slide-in.expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .expanded .animate-fade-slide-in.item,.animate-fade-slide-in .expanded .item,.animate-fade-slide-in .expanded.item,.animate-fade-slide-in .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item,.animate-fade-slide-in.done,.animate-ripple .animate-fade-slide-in.expanded.item,.animate-ripple .expanded .animate-fade-slide-in .item,.animate-ripple .expanded .animate-fade-slide-in.item,.card-avatar-small .expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.item,.card-avatar-small.expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .5s ease-in-out;transition:all .5s ease-in-out;opacity:1;filter:alpha(opacity=100);visibility:visible}.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .in,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in .animate-ripple .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .in,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .animate-fade-slide-in.done .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .expanded .item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .card-avatar-small .animate-fade-slide-in.expanded.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.done .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .expanded .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .in,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in.done .animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in.done .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in.done .animate-ripple .expanded .item,.animate-fade-slide-in.done .animate-ripple .expanded.item,.animate-fade-slide-in.done .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in.done .card-avatar-small .expanded .item,.animate-fade-slide-in.done .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in.done .card-avatar-small.expanded .item,.animate-fade-slide-in.done .expanded .item,.animate-fade-slide-in.done .expanded.item,.animate-fade-slide-in.done .in,.animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in.item .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-fade-slide-in.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-ripple .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-ripple .animate-fade-slide-in.done .expanded.item,.animate-ripple .animate-fade-slide-in.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .item,.animate-ripple .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-fade-slide-in.expanded.item .expanded .item,.animate-ripple .animate-fade-slide-in.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in.expanded.item .in,.animate-ripple .animate-fade-slide-in.expanded.item .item,.animate-ripple .card-avatar-small .animate-fade-slide-in.expanded.item .card.card-comment,.animate-ripple .card-avatar-small .animate-fade-slide-in.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.item .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.item .item,.animate-ripple .expanded .animate-fade-slide-in.done .item,.animate-ripple .expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .expanded .animate-fade-slide-in.item .expanded .item,.animate-ripple .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .expanded .animate-fade-slide-in.item .in,.animate-ripple .expanded .animate-fade-slide-in.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.card-avatar-small .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.card-avatar-small .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .item,.card-avatar-small .animate-ripple .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small .animate-ripple .animate-fade-slide-in.expanded.item .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in.item .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .in,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in.done .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.done .item,.card-avatar-small .expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.item .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in.item .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.item .in,.card-avatar-small .expanded .animate-fade-slide-in.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .in,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in.done .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.done .item,.card-avatar-small.expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.item .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in.item .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.item .in,.card-avatar-small.expanded .animate-fade-slide-in.item .item,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in.expanded.item .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in.item .item{opacity:1;filter:alpha(opacity=100)}.animate-fade-slide-in .has-mask-reverse:after{opacity:0;filter:alpha(opacity=0);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-fade-slide-in .animate-fade-slide-in.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.animate-fade-slide-in.done .has-mask-reverse:after,.animate-ripple .animate-fade-slide-in.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in.item .has-mask-reverse:after{opacity:1;filter:alpha(opacity=100)}.animate-fade-slide-in .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.animate-fade-slide-in-right .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1)}.animate-fade-slide-in-right .item-bg-image>img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item>*,.animate-fade-slide-in .expanded .animate-fade-slide-in-right .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item>*,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item>*,.animate-fade-slide-in-right .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item>*,.animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in-right .in,.animate-fade-slide-in-right.done>*,.animate-ripple .animate-fade-slide-in-right.expanded.item>*,.animate-ripple .expanded .animate-fade-slide-in-right .item,.animate-ripple .expanded .animate-fade-slide-in-right.item>*,.card-avatar-small .expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment>*,.card-avatar-small .expanded .animate-fade-slide-in-right.item>*,.card-avatar-small.expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment>*,.card-avatar-small.expanded .animate-fade-slide-in-right.item>*{-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in-right .in,.animate-fade-slide-in-right.done .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .expanded .animate-fade-slide-in-right .item,.animate-ripple .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .item{visibility:visible}.animate-fade-slide-in-right .item{visibility:hidden;-ms-transform:translate3d(250px,250px,0);-webkit-transform:translate3d(250px,250px,0);transform:translate3d(250px,250px,0);-webkit-transition:-webkit-transform .5s cubic-bezier(.55,0,.1,1);transition:transform .5s cubic-bezier(.55,0,.1,1);opacity:0;filter:alpha(opacity=0)}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item,.animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in-right .in,.animate-fade-slide-in-right.done,.animate-ripple .animate-fade-slide-in-right.expanded.item,.animate-ripple .expanded .animate-fade-slide-in-right .item,.animate-ripple .expanded .animate-fade-slide-in-right.item,.card-avatar-small .expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.item,.card-avatar-small.expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;opacity:1;filter:alpha(opacity=100);visibility:visible}.animate-fade-slide-in .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .animate-fade-slide-in-right.done .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .expanded .item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .in,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .animate-ripple .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .animate-ripple .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .card-avatar-small .animate-fade-slide-in-right.expanded.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.done .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .expanded .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .in,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .in,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .in,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right.done .animate-fade-slide-in .expanded .item,.animate-fade-slide-in-right.done .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right.done .animate-ripple .expanded .item,.animate-fade-slide-in-right.done .animate-ripple .expanded.item,.animate-fade-slide-in-right.done .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right.done .card-avatar-small .expanded .item,.animate-fade-slide-in-right.done .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right.done .card-avatar-small.expanded .item,.animate-fade-slide-in-right.done .expanded .item,.animate-fade-slide-in-right.done .expanded.item,.animate-fade-slide-in-right.done .in,.animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in-right.item .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-ripple .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-ripple .animate-fade-slide-in-right.done .expanded.item,.animate-ripple .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in .expanded.item,.animate-ripple .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .expanded .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right.expanded.item .in,.animate-ripple .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .card-avatar-small .animate-fade-slide-in-right.expanded.item .card.card-comment,.animate-ripple .card-avatar-small .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.animate-ripple .expanded .animate-fade-slide-in-right.done .item,.animate-ripple .expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.animate-ripple .expanded .animate-fade-slide-in-right.item .expanded .item,.animate-ripple .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .expanded .animate-fade-slide-in-right.item .in,.animate-ripple .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small .animate-ripple .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small .animate-ripple .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .in,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in-right.done .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.done .item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .in,.card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .in,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in-right.done .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.done .item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .in,.card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.item .item{opacity:1;filter:alpha(opacity=100)}.animate-fade-slide-in-right .has-mask-reverse:after{opacity:0;filter:alpha(opacity=0);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.animate-fade-slide-in-right.done .has-mask-reverse:after,.animate-ripple .animate-fade-slide-in-right.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in-right.item .has-mask-reverse:after{opacity:1;filter:alpha(opacity=100)}.animate-fade-slide-in-right .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.hero.slide-up,.slide-up{height:100%;overflow:hidden;text-align:center}.slide-up{-webkit-transition:all 1s cubic-bezier(.55,0,.1,1);transition:all 1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.hero.slide-up *,.slide-up *{opacity:0;filter:alpha(opacity=0)}.hero.slide-up+.mid-bar,.slide-up+.mid-bar{height:100%;opacity:.7;filter:alpha(opacity=70);-webkit-transform:translate3d(100%,-240px,0);transform:translate3d(100%,-240px,0)}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink,.popup .button{position:relative;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.ink-ripple{position:absolute;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background-color:rgba(255,255,255,.4);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.ink-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.popover,.popover.ng-enter,.popover.ng-leave{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink-button,.ink-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.activated.button-text,.button-clear.activated,.button-clear:active,.button-fab.activated,.button-fab:active,.button-flat.activated,.button-flat:active,.button-raised.activated,.button-raised:active,.button-text:active,.ink-button.activated,.ink-button:active,.ink-circle.activated,.ink-circle:active,.ink.activated,.ink:active,.popup .button.activated,.popup .button:active{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.button-clear,.button-clear:link,.button-clear:visited,.button-fab,.button-fab:link,.button-fab:visited,.button-flat,.button-flat:link,.button-flat:visited,.button-raised,.button-raised:link,.button-raised:visited,.button-text,.button-text:link,.button-text:visited,.ink-button,.ink-button-input,.ink-button:link,.ink-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:0;font-size:14px;text-align:center;text-decoration:none;z-index:1}.ink-button{padding:10px 15px;border-radius:2px}.ink-button-input{margin:0;padding:10px 15px}.bar,.ink-input-wrapper.ink-button{padding:0}.ink-input-wrapper{border-radius:2px;vertical-align:bottom}.ink-input-wrapper .ink-button-input{position:relative;top:0;left:0;z-index:1}.ink-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.ink-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12)}.ink-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.ink-block{display:block}.ink-ripple{z-index:0}.button-clear .ink-ripple,.button-text .ink-ripple,.ink-dark .ink-ripple,.list .ink-ripple,[class$="-clear"]>.ink-ripple,[class$="-light"]>.ink-ripple,[class$="-stable"]>.ink-ripple,[class$="-100"]>.ink-ripple{background-color:rgba(0,0,0,.2)}.tab-item{position:relative}*{font-family:RobotoDraft,Roboto,"Helvetica Neue","Segoe UI",sans-serif}.rounded{border-radius:4px}a{cursor:pointer}.has-header.expanded{top:76px}.bar{border-bottom:none}.bar .button{min-height:44px;min-width:44px;max-width:48px;margin-bottom:0;max-height:44px;width:48px}.bar .title+.buttons.buttons-right{top:0}.title-left,.title-right,.title.title-left,.title.title-right{left:48px}.activated.button-text,.bar .activated.button-text,.bar .button-positive,.bar .button-positive.activated,.bar .button-positive:active,.bar .button-positive:hover,.bar .button-text,.bar .button-text:active,.bar .button-text:hover,.bar-positive,.bar-positive.activated,.bar-positive:active,.bar-positive:hover,.button-bar-positive,.button-bar-positive.activated,.button-bar-positive:active,.button-bar-positive:hover,.button-positive,.button-positive.activated,.button-positive:active,.button-positive:hover,.button-text,.button-text:active,.button-text:hover,.header-positive,.header-positive.activated,.header-positive:active,.header-positive:hover,.positive-bg,.positive-bg.activated,.positive-bg:active,.positive-bg:hover,.positive-border,.positive-border.activated,.positive-border:active,.positive-border:hover{background-color:#3F51B5;color:#fff}.bar .button-positive-900,.bar .button-positive-900.activated,.bar .button-positive-900:active,.bar .button-positive-900:hover,.bar-positive-900,.bar-positive-900.activated,.bar-positive-900:active,.bar-positive-900:hover,.button-bar-positive-900,.button-bar-positive-900.activated,.button-bar-positive-900:active,.button-bar-positive-900:hover,.button-positive-900,.button-positive-900.activated,.button-positive-900:active,.button-positive-900:hover,.header-positive-900,.header-positive-900.activated,.header-positive-900:active,.header-positive-900:hover,.positive-900-bg,.positive-900-bg.activated,.positive-900-bg:active,.positive-900-bg:hover,.positive-900-border,.positive-900-border.activated,.positive-900-border:active,.positive-900-border:hover{background-color:#1A237E;color:#fff}.bar .button-positive-100,.bar .button-positive-100.activated,.bar .button-positive-100:active,.bar .button-positive-100:hover,.bar-positive-100,.bar-positive-100.activated,.bar-positive-100:active,.bar-positive-100:hover,.button-bar-positive-100,.button-bar-positive-100.activated,.button-bar-positive-100:active,.button-bar-positive-100:hover,.button-positive-100,.button-positive-100.activated,.button-positive-100:active,.button-positive-100:hover,.header-positive-100,.header-positive-100.activated,.header-positive-100:active,.header-positive-100:hover,.positive-100-bg,.positive-100-bg.activated,.positive-100-bg:active,.positive-100-bg:hover,.positive-100-border,.positive-100-border.activated,.positive-100-border:active,.positive-100-border:hover{background-color:#C5CAE9;color:#fff}.bar .button-calm,.bar .button-calm.activated,.bar .button-calm:active,.bar .button-calm:hover,.bar-calm,.bar-calm.activated,.bar-calm:active,.bar-calm:hover,.button-bar-calm,.button-bar-calm.activated,.button-bar-calm:active,.button-bar-calm:hover,.button-calm,.button-calm.activated,.button-calm:active,.button-calm:hover,.calm-bg,.calm-bg.activated,.calm-bg:active,.calm-bg:hover,.calm-border,.calm-border.activated,.calm-border:active,.calm-border:hover,.header-calm,.header-calm.activated,.header-calm:active,.header-calm:hover{background-color:#2196F3;color:#fff}.bar .button-calm-900,.bar .button-calm-900.activated,.bar .button-calm-900:active,.bar .button-calm-900:hover,.bar-calm-900,.bar-calm-900.activated,.bar-calm-900:active,.bar-calm-900:hover,.button-bar-calm-900,.button-bar-calm-900.activated,.button-bar-calm-900:active,.button-bar-calm-900:hover,.button-calm-900,.button-calm-900.activated,.button-calm-900:active,.button-calm-900:hover,.calm-900-bg,.calm-900-bg.activated,.calm-900-bg:active,.calm-900-bg:hover,.calm-900-border,.calm-900-border.activated,.calm-900-border:active,.calm-900-border:hover,.header-calm-900,.header-calm-900.activated,.header-calm-900:active,.header-calm-900:hover{background-color:#0D47A1;color:#fff}.bar .button-calm-100,.bar .button-calm-100.activated,.bar .button-calm-100:active,.bar .button-calm-100:hover,.bar-calm-100,.bar-calm-100.activated,.bar-calm-100:active,.bar-calm-100:hover,.button-bar-calm-100,.button-bar-calm-100.activated,.button-bar-calm-100:active,.button-bar-calm-100:hover,.button-calm-100,.button-calm-100.activated,.button-calm-100:active,.button-calm-100:hover,.calm-100-bg,.calm-100-bg.activated,.calm-100-bg:active,.calm-100-bg:hover,.calm-100-border,.calm-100-border.activated,.calm-100-border:active,.calm-100-border:hover,.header-calm-100,.header-calm-100.activated,.header-calm-100:active,.header-calm-100:hover{background-color:#BBDEFB;color:#fff}.bar .button-royal,.bar .button-royal.activated,.bar .button-royal:active,.bar .button-royal:hover,.bar-royal,.bar-royal.activated,.bar-royal:active,.bar-royal:hover,.button-bar-royal,.button-bar-royal.activated,.button-bar-royal:active,.button-bar-royal:hover,.button-royal,.button-royal.activated,.button-royal:active,.button-royal:hover,.header-royal,.header-royal.activated,.header-royal:active,.header-royal:hover,.royal-bg,.royal-bg.activated,.royal-bg:active,.royal-bg:hover,.royal-border,.royal-border.activated,.royal-border:active,.royal-border:hover{background-color:#673AB7;color:#fff}.bar .button-royal-900,.bar .button-royal-900.activated,.bar .button-royal-900:active,.bar .button-royal-900:hover,.bar-royal-900,.bar-royal-900.activated,.bar-royal-900:active,.bar-royal-900:hover,.button-bar-royal-900,.button-bar-royal-900.activated,.button-bar-royal-900:active,.button-bar-royal-900:hover,.button-royal-900,.button-royal-900.activated,.button-royal-900:active,.button-royal-900:hover,.header-royal-900,.header-royal-900.activated,.header-royal-900:active,.header-royal-900:hover,.royal-900-bg,.royal-900-bg.activated,.royal-900-bg:active,.royal-900-bg:hover,.royal-900-border,.royal-900-border.activated,.royal-900-border:active,.royal-900-border:hover{background-color:#311B92;color:#fff}.bar .button-royal-100,.bar .button-royal-100.activated,.bar .button-royal-100:active,.bar .button-royal-100:hover,.bar-royal-100,.bar-royal-100.activated,.bar-royal-100:active,.bar-royal-100:hover,.button-bar-royal-100,.button-bar-royal-100.activated,.button-bar-royal-100:active,.button-bar-royal-100:hover,.button-royal-100,.button-royal-100.activated,.button-royal-100:active,.button-royal-100:hover,.header-royal-100,.header-royal-100.activated,.header-royal-100:active,.header-royal-100:hover,.royal-100-bg,.royal-100-bg.activated,.royal-100-bg:active,.royal-100-bg:hover,.royal-100-border,.royal-100-border.activated,.royal-100-border:active,.royal-100-border:hover{background-color:#D1C4E9;color:#fff}.balanced-bg,.balanced-bg.activated,.balanced-bg:active,.balanced-bg:hover,.balanced-border,.balanced-border.activated,.balanced-border:active,.balanced-border:hover,.bar .button-balanced,.bar .button-balanced.activated,.bar .button-balanced:active,.bar .button-balanced:hover,.bar-balanced,.bar-balanced.activated,.bar-balanced:active,.bar-balanced:hover,.button-balanced,.button-balanced.activated,.button-balanced:active,.button-balanced:hover,.button-bar-balanced,.button-bar-balanced.activated,.button-bar-balanced:active,.button-bar-balanced:hover,.header-balanced,.header-balanced.activated,.header-balanced:active,.header-balanced:hover{background-color:#4CAF50;color:#fff}.balanced-900-bg,.balanced-900-bg.activated,.balanced-900-bg:active,.balanced-900-bg:hover,.balanced-900-border,.balanced-900-border.activated,.balanced-900-border:active,.balanced-900-border:hover,.bar .button-balanced-900,.bar .button-balanced-900.activated,.bar .button-balanced-900:active,.bar .button-balanced-900:hover,.bar-balanced-900,.bar-balanced-900.activated,.bar-balanced-900:active,.bar-balanced-900:hover,.button-balanced-900,.button-balanced-900.activated,.button-balanced-900:active,.button-balanced-900:hover,.button-bar-balanced-900,.button-bar-balanced-900.activated,.button-bar-balanced-900:active,.button-bar-balanced-900:hover,.header-balanced-900,.header-balanced-900.activated,.header-balanced-900:active,.header-balanced-900:hover{background-color:#1B5E20;color:#fff}.balanced-100-bg,.balanced-100-bg.activated,.balanced-100-bg:active,.balanced-100-bg:hover,.balanced-100-border,.balanced-100-border.activated,.balanced-100-border:active,.balanced-100-border:hover,.bar .balanced-100-bg:hover,.bar .button-balanced-100,.bar .button-balanced-100.activated,.bar .button-balanced-100:active,.bar-balanced-100,.bar-balanced-100.activated,.bar-balanced-100:active,.bar-balanced-100:hover,.button-balanced-100,.button-balanced-100.activated,.button-balanced-100:active,.button-balanced-100:hover,.button-bar-balanced-100,.button-bar-balanced-100.activated,.button-bar-balanced-100:active,.button-bar-balanced-100:hover,.header-balanced-100,.header-balanced-100.activated,.header-balanced-100:active,.header-balanced-100:hover{background-color:#C8E6C9;color:#fff}.bar .button-energized,.bar .button-energized.activated,.bar .button-energized:active,.bar .button-energized:hover,.bar-energized,.bar-energized.activated,.bar-energized:active,.bar-energized:hover,.button-bar-energized,.button-bar-energized.activated,.button-bar-energized:active,.button-bar-energized:hover,.button-energized,.button-energized.activated,.button-energized:active,.button-energized:hover,.energized-bg,.energized-bg.activated,.energized-bg:active,.energized-bg:hover,.energized-border,.energized-border.activated,.energized-border:active,.energized-border:hover,.header-energized,.header-energized.activated,.header-energized:active,.header-energized:hover{background-color:#FF9800;color:#fff}.bar .button-energized-900,.bar .button-energized-900.activated,.bar .button-energized-900:active,.bar .button-energized-900:hover,.bar-energized-900,.bar-energized-900.activated,.bar-energized-900:active,.bar-energized-900:hover,.button-bar-energized-900,.button-bar-energized-900.activated,.button-bar-energized-900:active,.button-bar-energized-900:hover,.button-energized-900,.button-energized-900.activated,.button-energized-900:active,.button-energized-900:hover,.energized-900-bg,.energized-900-bg.activated,.energized-900-bg:active,.energized-900-bg:hover,.energized-900-border,.energized-900-border.activated,.energized-900-border:active,.energized-900-border:hover,.header-energized-900,.header-energized-900.activated,.header-energized-900:active,.header-energized-900:hover{background-color:#E65100;color:#fff}.bar .button-energized-100,.bar .button-energized-100.activated,.bar .button-energized-100:active,.bar .button-energized-100:hover,.bar-energized-100,.bar-energized-100.activated,.bar-energized-100:active,.bar-energized-100:hover,.button-bar-energized-100,.button-bar-energized-100.activated,.button-bar-energized-100:active,.button-bar-energized-100:hover,.button-energized-100,.button-energized-100.activated,.button-energized-100:active,.button-energized-100:hover,.energized-100-bg,.energized-100-bg.activated,.energized-100-bg:active,.energized-100-bg:hover,.energized-100-border,.energized-100-border.activated,.energized-100-border:active,.energized-100-border:hover,.header-energized-100,.header-energized-100.activated,.header-energized-100:active,.header-energized-100:hover,.modal.modal-help .activated.row.selected,.modal.modal-help .row.selected,.modal.modal-help .row.selected:active,.modal.modal-help .row.selected:hover{background-color:#FFE0B2}.assertive-bg,.assertive-bg.activated,.assertive-bg:active,.assertive-bg:hover,.assertive-border,.assertive-border.activated,.assertive-border:active,.assertive-border:hover,.bar .button-assertive,.bar .button-assertive.activated,.bar .button-assertive:active,.bar .button-assertive:hover,.bar-assertive,.bar-assertive.activated,.bar-assertive:active,.bar-assertive:hover,.button-assertive,.button-assertive.activated,.button-assertive:active,.button-assertive:hover,.button-bar-assertive,.button-bar-assertive.activated,.button-bar-assertive:active,.button-bar-assertive:hover,.header-assertive,.header-assertive.activated,.header-assertive:active,.header-assertive:hover{background-color:#F44336;color:#fff}.assertive-900-bg,.assertive-900-bg.activated,.assertive-900-bg:active,.assertive-900-bg:hover,.assertive-900-border,.assertive-900-border.activated,.assertive-900-border:active,.assertive-900-border:hover,.bar .button-assertive-900,.bar .button-assertive-900.activated,.bar .button-assertive-900:active,.bar .button-assertive-900:hover,.bar-assertive-900,.bar-assertive-900.activated,.bar-assertive-900:active,.bar-assertive-900:hover,.button-assertive-900,.button-assertive-900.activated,.button-assertive-900:active,.button-assertive-900:hover,.button-bar-assertive-900,.button-bar-assertive-900.activated,.button-bar-assertive-900:active,.button-bar-assertive-900:hover,.header-assertive-900,.header-assertive-900.activated,.header-assertive-900:active,.header-assertive-900:hover{background-color:#B71C1C;color:#fff}.assertive-100-bg,.assertive-100-bg.activated,.assertive-100-bg:active,.assertive-100-bg:hover,.assertive-100-border,.assertive-100-border.activated,.assertive-100-border:active,.assertive-100-border:hover,.bar .button-assertive-100,.bar .button-assertive-100.activated,.bar .button-assertive-100:active,.bar .button-assertive-100:hover,.bar-assertive-100,.bar-assertive-100.activated,.bar-assertive-100:active,.bar-assertive-100:hover,.button-assertive-100,.button-assertive-100.activated,.button-assertive-100:active,.button-assertive-100:hover,.button-bar-assertive-100,.button-bar-assertive-100.activated,.button-bar-assertive-100:active,.button-bar-assertive-100:hover,.header-assertive-100,.header-assertive-100.activated,.header-assertive-100:active,.header-assertive-100:hover{background-color:#FFCDD2;color:#fff}.bar .button-stable,.bar .button-stable.activated,.bar .button-stable:active,.bar .button-stable:hover,.bar-stable,.bar-stable.activated,.bar-stable:active,.bar-stable:hover,.button-bar-stable,.button-bar-stable.activated,.button-bar-stable:active,.button-bar-stable:hover,.button-stable,.button-stable.activated,.button-stable:active,.button-stable:hover,.header-stable,.header-stable.activated,.header-stable:active,.header-stable:hover,.stable-bg,.stable-bg.activated,.stable-bg:active,.stable-bg:hover,.stable-border,.stable-border.activated,.stable-border:active,.stable-border:hover{background-color:#E0E0E0;color:#fff}.item,.item-complex .item-content,.item-radio .item-content,.menu{background-color:transparent}.icon-help,.icon-help *,.icon-help:active,.icon-help:active *,.icon-help:hover,.icon-help:hover *,.positive,.positive *,.positive-900,.positive-900 *,.positive-900:active,.positive-900:active *,.positive-900:hover,.positive-900:hover *,.positive:active,.positive:active *,.positive:hover,.positive:hover *,.text-editable:active:hover,.text-editable:active:hover *,.text-editable:hover,.text-editable:hover *{color:#3F51B5}.positive-100,.positive-100 *,.positive-100:active,.positive-100:active *,.positive-100:hover,.positive-100:hover *{color:#C5CAE9}.calm-900,.calm-900 *,.calm-900:active,.calm-900:active *,.calm-900:hover,.calm-900:hover *{color:#0D47A1}.calm-100,.calm-100 *,.calm-100:active,.calm-100:active *,.calm-100:hover,.calm-100:hover *{color:#BBDEFB}.royal,.royal *,.royal:active,.royal:active *,.royal:hover,.royal:hover *{color:#673AB7}.royal-900,.royal-900 *,.royal-900:active,.royal-900:active *,.royal-900:hover,.royal-900:hover *{color:#311B92}.royal-100,.royal-100 *,.royal-100:active,.royal-100:active *,.royal-100:hover,.royal-100:hover *{color:#D1C4E9}.balanced,.balanced *,.balanced:active,.balanced:active *,.balanced:hover,.balanced:hover *{color:#4CAF50}.balanced-900,.balanced-900 *,.balanced-900:active,.balanced-900:active *,.balanced-900:hover,.balanced-900:hover *{color:#1B5E20}.balanced-100,.balanced-100 *,.balanced-100:active,.balanced-100:active *,.balanced-100:hover,.balanced-100:hover *{color:#C8E6C9}.energized,.energized *,.energized:active,.energized:active *,.energized:hover,.energized:hover *{color:#FF9800}.energized-900,.energized-900 *,.energized-900:active,.energized-900:active *,.energized-900:hover,.energized-900:hover *{color:#E65100}.energized-100,.energized-100 *,.energized-100:active,.energized-100:active *,.energized-100:hover,.energized-100:hover *{color:#FFE0B2}.assertive,.assertive *,.assertive:active,.assertive:active *,.assertive:hover,.assertive:hover *,.icon-alert,.icon-alert *,.icon-alert:active,.icon-alert:active *,.icon-alert:hover,.icon-alert:hover *{color:#F44336}.assertive-900,.assertive-900 *,.assertive-900:active,.assertive-900:active *,.assertive-900:hover,.assertive-900:hover *{color:#B71C1C}.assertive-100,.assertive-100 *,.assertive-100:active,.assertive-100:active *,.assertive-100:hover,.assertive-100:hover *{color:#FFCDD2}.stable,.stable *,.stable:active,.stable:active *,.stable:hover,.stable:hover *{color:#E0E0E0}.light,.light *,.light:active,.light:active *,.light:hover,.light:hover *{color:#fff}.button-text-dark,.button-text-dark *,.button-text-dark:active,.button-text-dark:active *,.button-text-dark:hover,.button-text-dark:hover *,.dark,.dark *,.dark:active,.dark:active *,.dark:hover,.dark:hover *{color:#444}.light-border{border-color:#ddd}.navbar-default .navbar-nav>li>a{margin:0;padding-right:26px;padding-left:26px;border-top:3px solid transparent;color:#BFD5C9;opacity:1}.mid-bar{padding:16px}.mid-bar h1,.mid-bar h2,.mid-bar h3,.mid-bar h4,.mid-bar h5,.mid-bar h6{color:#fff;margin-bottom:5px}.mid-bar p{color:rgba(255,255,255,.5);margin-bottom:0}.bar .button.button-clear,.bar .button.button-text,.dark-bg h2,.item.dark-bg h2{color:#fff}.card>.item-avatar,.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:95px}.tabs-striped .tabs{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#menu .footer .bar .button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:24px}.button-icon.button.activated,.button-icon.button.active{opacity:initial}.popover{opacity:0;position:absolute;right:8px;transform:translate(50%,-50%) scale(0,0);top:8px}.popover.ng-enter{opacity:1;transform:translate(0,-14px) scale(1,1)}.popover.ng-leave{opacity:0;transform:translate(50%,-50%) scale(0,0)}.button{overflow:hidden!important}@font-face{font-family:Cesiumicons;src:url(../fonts/cesiumicons.eot?v=1.2);src:url(../fonts/cesiumicons.eot?v=1.2#iefix) format("embedded-opentype"),url(../fonts/cesiumicons.ttf?v=1.2) format("truetype"),url(../fonts/cesiumicons.woff?v=1.2) format("woff"),url(../fonts/cesiumicons.woff) format("woff"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9ImNlc2l1bWljb25zIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGQ9Ik03MDQuNjMxIDU3MS4xMjhjLTg4LjYxMy0xNDEuNDA5LTIyMC40MDMtMjYzLjQwOC0zODUuNTIxLTMwNS40NzMtNjcuMjUyLTE4LjQ5My0xMzcuMTEyLTI1LjgyMi0yMDYuNzA1LTI3LjAyMiA4NS41NDktMTYzLjA5NSAyNzUuODEtMjYyLjI3MiA0NTguNTQ1LTIzNy45NSAxODEuMTY2IDE5LjA3NiAzNDEuNjYyIDE1Ny4yMTUgMzg4LjMzOCAzMzMuMTYyLTU0LjYwMSAxMDMuOTI0LTE0MS40OSAxOTcuODc0LTI1NC42NTYgMjM3LjI4M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZD0iTTcwNS45MzcgNTcyLjA4OGMtMTYuNzU2LTExMS44MTUtODUuMDg2LTIwNy4yLTEwNy4yNjctMzE3LjIyMS05LjE4OC01MS41NDEgMjYuNzg2LTExMC42NDItMTQuNTc5LTE1NS41MTQtNDYuMjEtNTIuNDAyLTExOC45MDctNjUuMzc5LTE4MS45MzgtODcuNDY2IDE3Ny43My00Ny45MSAzNzkuNjYgMjQuMjE1IDQ4NS45ODIgMTc0Ljc4IDUwLjU1IDY5LjExNiA4MC45OTIgMTUyLjY4OSA4Ni42OTYgMjM4LjEyNS00Ni4wODUgOS40ODMtNjkuNDM2IDU1LjAyMC0xMTAuNTU2IDc0LjIwMS00OS45MTcgMjkuOTkyLTEwMy41NzEgNTMuNTE0LTE1OC4zMzkgNzMuMDk1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBkPSJNNzA0LjQyMiA1NjMuNGMtMjMuNzg2LTUxLjQwOC0yNi40MzYtMTA5Ljc1Ny01NC4wODQtMTU5LjcyNi03LjIxMS0zMi45MDktNDEuMDkxLTg0LjI4OC0yOS40OTgtMTA2LjQ4OSAxMDEuNTktMTYuNTQyIDIwMy4xODEtMzMuMDg1IDMwNC43NzEtNDkuNjI3IDE4LjI3OCAzNS42NDkgMzEuODQ1IDczLjcxMSA0MC4yMDEgMTEyLjg5NC03My44NjggNzkuMjY5LTE1MC40NzEgMTYzLjQyNi0yNTUuMzU4IDIwMC42MzVsLTYuMDMyIDIuMzE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBkPSJNNjY4LjYxNiA0NDUuNzk0Yy0yMC45ODMtMzEuNjc5LTI3LjI0NS03MC40MDgtNDQuMTA0LTEwNC40MjYtMTYuMjIxLTM1LjY4OS01MS40MTUtMTE5LjQ3MiAxOS42ODQtMTA5Ljg5IDUwLjQ1OSAyNC42NTQgOTUuMDUwLTEzLjM3OSAxNDUuODE5LTE2LjkyOSA0MC4zMTctNS41NjEgODIuMTM3LTQuNjY1IDEyMS4yOTUgNy4yMDEgMTQuOTgzIDMxLjcxNiA1MC42ODYgODIuNTk0IDM4LjcyNiAxMDguMzA1LTQ4LjU2MyA5Ljg2Ny05OS40NzMgMTMuODc5LTE0NS4yMTUgMzMuNjkgMTkuMjczIDQ1LjU5NS01NC45NzQgNTUuNDY1LTg5Ljk3NiA2OC44NC0xNS4zNDEgNC42MzctMzAuNzY1IDguOTk4LTQ2LjIyOSAxMy4yMDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGQ9Ik02MDcuNzE0IDE2MC44NzNjLTMwLjE4My04NS4wMDItMTIzLjE4Ni0xMTkuOTQ4LTIwMS44MzItMTQ1Ljk0MyA1LjAyMC0xMS4xODYgNzEuMTg2LTE2LjMyNSAxMDAuNzg3LTE3LjMyNiAxMTcuMTE1LTMuMDY3IDIzNC41NDIgNDEuMDg2IDMyMC40OCAxMjAuNzUyLTc0LjgzMSAyLjgzNC0xNDkuNTQ5IDE0Ljc4NC0yMTkuNDM1IDQyLjUxN3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZD0iTTU5OC40ODUgMjY4LjUzNGMtNC4xNzQtNDIuNzY0LTI1LjE4OC0xMTUuOTM2IDM0LjAyOC0xMjguNDk0IDU4LjUzNy0xNC41ODEgMTE5LjQzNC0xOC41MTEgMTc3LjA2Ny0zNy4wMjAgNDUuMjAxIDM3LjQ0NyA4My4xNjcgODMuNTk5IDExMS4xMiAxMzUuMjE3LTEwNy45OC0xLjY4MS0yMTkuNDMxLTEwLjIwNC0zMjIuMjE1IDMwLjI5N3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA2OyIgZD0iTTYwNy4yMSA2MDAuNzhjMTguOTU5IDIuMjkgMzUuMjM0IDEuODk2IDI4LjI4OC0yMS43MiA1LjkzNS0xNC42NDQtMzYuNjE0LTE0LjYwNy0yOC4yODggMS44NDEgMCA2LjYyNiAwIDEzLjI1MiAwIDE5Ljg3OXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA3OyIgZD0iTTQ0NC41NDEgNzAyLjk2MmMyMS4wODggMy45NTggMzIuNjU0LTEuNjA0IDI2Ljk1NC0yNC40MzUtNS42NzMtMTEuMDcxLTM3LjY5Ny03LjY1LTI2Ljk1NCAxNC4wMzYgMCAzLjQ2NiAwIDYuOTMzIDAgMTAuMzk5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBkPSJNNTA0LjUzMiA2ODEuNzhjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGQ9Ik01MDIuNTM5IDQxNy40MjZjMTguNzg2IDAgMzcuNTcyIDAgNTYuMzU4IDAgMC0xOC43ODYgMC0zNy41NzIgMC01Ni4zNTgtMTguNzg2IDAtMzcuNTcyIDAtNTYuMzU4IDAgMCAxOC43ODYgMCAzNy41NzIgMCA1Ni4zNTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGQ9Ik01MDguODU2IDYzMC4xNTdjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYjsiIGQ9Ik01NjkuMTAzIDQ3NC4xNGMxOC45NyAxLjkyOSAzNi40OTIgMi40MDkgMjkuNDA0LTIxLjcyIDYuODk0LTE1LjkzMi0zNy4yMzUtMTUuODMzLTI5LjQwNCAwLjcyNSAwIDYuOTk4IDAgMTMuOTk2IDAgMjAuOTk0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGM7IiBkPSJNNjI3LjA4NyA1MzEuNDAzYzE5LjM1IDcuODY5IDI5LjQwOC05LjU4MiAxOS4zMzgtMjIuMDUzLTIxLjU4My00LjE0Ny0yMC44MDEgMy4zODctMTkuMzM4IDIyLjA1M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZD0iTTU0Ny42MjcgNTI1LjIzMWMxMy40NzgtMy4yOTggNDMuMjM2IDkuNjgyIDM2Ljc1NS0xMy41NzUgNi4yNTQtMjMuMDMwLTcuMDU3LTI2LjQ5Ni0yNy4xNS0yMy4xOC0xOC41NjctNS40OTYtNS44NzEgMjYuNTI3LTkuNjA1IDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBlOyIgZD0iTTQwMy44MDIgMzM1LjAyNGMxNC40MjYtMS45OTggMzYuNzMgMy44ODIgNDYuNTU2LTIuNzE1LTIuMDIwLTE0LjMxNSAzLjkxMy0zNi41ODQtMi43MTUtNDYuMjkyLTEyLjg3OSAzLjU0NS00MC4wMTctNy4xNjktNDMuODQxIDUuNDMgMCAxNC41MjYgMCAyOS4wNTEgMCA0My41Nzd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZjsiIGQ9Ik00NDcuOTA3IDQwNi4wODRjMTYuODM2LTAuMTE3IDM5LjY3NyA1Ljc3IDMxLjg1NC0xOS4wMDUgNy44Mi0yNC4zNTUtMTYuMDgwLTE2Ljk5LTMxLjg1NC0xNy43NSAwIDEyLjI1MiAwIDI0LjUwMyAwIDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTEwOyIgZD0iTTUxNS4yOTEgNDY4LjU2N2MtMTguOTcxIDEuODk0LTM2LjYxMiAyLjQ1OS0yOS41MS0yMS43Mi0yLjUzOC0xMi45OSAzOS42MjctMTMuMzc0IDI5LjUxIDUuODkxIDAgNS4yNzYgMCAxMC41NTMgMCAxNS44Mjl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkxMTsiIGQ9Ik01NzguNDg2IDU3Mi44NjZjMjEuMjMyIDQuOTIgMjkuNDY5LTMuMTU2IDI0LjUwMy0yNC40MzUtMTMuMTA0LTguNTMyLTMyLjk1NS0yLjEwNi0yNC41MDMgMTkuMjAxdjUuMjM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MTI7IiBkPSJNNjAxLjQ3MSA2NDEuNjg5Yy0xOC45NzEgMS44OTQtMzYuNjEyIDIuNDU5LTI5LjUxLTIxLjcyLTIuNTM4LTEyLjk5IDM5LjYyNy0xMy4zNzQgMjkuNTEgNS44OTEgMCA1LjI3NiAwIDEwLjU1MyAwIDE1LjgyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTE1OyIgZ2x5cGgtbmFtZT0iZGlhc3BvcmEiIGhvcml6LWFkdi14PSIxMDY0IiBkPSJNNjcwLjEgMjIuMTA5Yy0yOC42OTIgNDAuMDQ2LTczLjQ1OSAxMDIuNTcxLTk5LjQ4MiAxMzguOTQ1LTI2LjU3OSAzNy4xNTEtNDguMjAyIDY2LjE0Ni00OS4zNCA2Ni4xNjEtMS4xNjkgMC4wMTUtNDIuOTg2LTU2LjE5Ni05OC45MTItMTMyLjk2MS01My4yODgtNzMuMTQzLTk3LjMzLTEzMi45ODctOTcuODcyLTEzMi45ODctMS41MTYgMC0xOTIuMTE0IDEzNC4yNS0xOTIuNjA1IDEzNS42NjMtMC4yMzcgMC42ODQgNDIuODUgNjMuOTM1IDk1Ljc1MSAxNDAuNTU5czk2LjE4MiAxNDAuNTIzIDk2LjE4MiAxNDEuOTk5YzAgMi4zOC0xNy4xNDIgOC4zOTgtMTUxLjYwNSA1My4yMjYtODMuMzgzIDI3Ljc5OC0xNTIuNDIyIDUwLjg2MS0xNTMuNDIgNTEuMjUxLTEuMzg4IDAuNTQyIDYuNTUgMjcuMTAzIDMzLjc4MyAxMTMuMDMyIDE5LjU3OCA2MS43NzggMzYuMDQwIDExMi44MjggMzYuNTgxIDExMy40NDRzNzMuMDExLTIyLjU3NCAxNjEuMDQzLTUxLjUzNGM4OC4wMzMtMjguOTYgMTYwLjc5Ni01Mi42NTQgMTYxLjY5Ni01Mi42NTNzMS45MTkgMS4zNDggMi4yNjMgMi45OTRjMC4zNDQgMS42NDYgMS4xMDQgNzYuNjAxIDEuNjg4IDE2Ni41NjZzMS41NDYgMTY0LjMyMiAyLjEzNyAxNjUuMjM2YzAuODQ3IDEuMzA5IDI1LjU3NiAxLjY1OCAxMTYuMzY0IDEuNjQyIDYzLjQwOC0wLjAxMSAxMTUuOTQ4LTAuNDYgMTE2Ljc1Ni0wLjk5NyAxLjAxOC0wLjY3NyAyLjc1Ny01MC4xMzggNS42Ny0xNjEuMjI2IDQuNzgzLTE4Mi40MDggNC44ODYtMTg0Ljg1MiA3Ljc5NS0xODQuODUyIDEuMTI4IDAgNzAuODk2IDIzLjM1MyAxNTUuMDQxIDUxLjg5NnMxNTMuNCA1MS40MzMgMTUzLjkwMSA1MC44NjhjMS43LTEuOTE4IDcwLjcxNS0yMjYuNjAyIDY5Ljg2NS0yMjcuNDUxLTAuNDY0LTAuNDY0LTcwLjY5LTI0LjUxNC0xNTYuMDU2LTUzLjQ0NC0xMTcuNDMyLTM5Ljc5Ny0xNTUuMzE1LTUzLjE0My0xNTUuNjMzLTU0LjgyNy0wLjIzNS0xLjI0NCA0MC4xNDktNjEuNTk0IDkxLjQ5OS0xMzYuNzM3IDUwLjU1NS03My45ODEgOTEuNzMzLTEzNS4wNjIgOTEuNTA3LTEzNS43MzctMC41MjEtMS41NDktMTg5LjY4MS0xNDAuODg0LTE5MS4yNjMtMTQwLjg4NC0wLjY0MiAwLTI0LjY0MyAzMi43NjUtNTMuMzM1IDcyLjgxeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=) format("svg");font-weight:400;font-style:normal}.cesiumicons,.cion,.ion-library:before,.ion-office:before,.ion-social-diaspora:before,.ion-social-duniter:before{display:inline-block;font-family:Cesiumicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-italic,.view-wallet .item .comment,.view-wallet-tx .item .comment{font-style:italic!important}.ion-social-duniter:before{content:""}.ion-social-diaspora:before{content:""}.ion-office:before{content:""}.ion-library:before{content:""}@media screen and (max-width:767px){.hidden-xs{display:none!important;visibility:hidden!important}.padding-top-xs{padding-top:10px}}@media screen and (min-width:768px){.hidden-xs{display:inherit;visibility:visible}.row.hidden-xs{display:flex!important}.button.hidden-xs{display:inline-block}}@media screen and (max-width:767px){.visible-xs{display:inherit!important;visibility:visible!important}.button.visible-xs{display:inline-block!important}.padding-xs{padding:16px!important}.no-padding-xs{padding:0!important}.no-margin-xs{margin:0!important}}@media screen and (min-width:768px){.visible-xs{display:none!important;visibility:hidden!important}.item-toggle .toggle{right:32px}}@media screen and (min-width:768px) and (max-width:991px){.hidden-sm,.row-header.hidden-sm,.row.hidden-sm{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:inline-block!important}.badge:empty{display:none!important}.padding-sm{padding:16px!important}.no-padding-sm{padding:0!important}.no-margin-sm{margin:0!important}}@media screen and (min-width:992px){.hidden-sm{display:inherit;visibility:visible}.row.hidden-sm{display:flex!important}.button.hidden-sm{display:flex}#menu .footer .popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip .icon-center.icon-alert .button.hidden-sm,.popover-helptip .icon-center.icon-help .button.hidden-sm,.popover-helptip .icon-left.icon-alert .button.hidden-sm,.popover-helptip .icon-left.icon-help .button.hidden-sm,.popover-helptip .icon-right.icon-alert .button.hidden-sm,.popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon.icon-bottom-center .button.hidden-sm,.popover-helptip .icon.icon-bottom-left .button.hidden-sm,.popover-helptip .icon.icon-bottom-right .button.hidden-sm,.popover-helptip .icon.icon-center .button.hidden-sm,.popover-helptip .icon.icon-left .button.hidden-sm,.popover-helptip .icon.icon-right .button.hidden-sm,.pull-left .button.hidden-sm,.pull-right .button.hidden-sm{display:inline-block}}@media screen and (max-width:767px){.hidden-sm{display:inherit;visibility:visible}}@media screen and (max-width:991px){.visible-sm{display:inherit!important;visibility:visible!important}.button.visible-sm{display:inline-block!important}body{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEbSURBVDiNndMxK4ZRGMbx3zmRMrwvM2XCQFFik/IJpCw+hJLPgfIhLBY+gEEGJQPFwGZg9TIoBrfhOfSQHl7XeM7/fw3nvk+KCPWklEawgGlMlOMrnOMoIm6/8B8FKaWMFazhGQ94LFwbg+jHDvYi4u2zIKWUsIk5XNfE72ljHKfYiIjI5WIZMzhrkJW7s8IuQ8IwdnGDpwa5nhbGsJqxiNcuZIV9xWJWvXY3cr1kOmMSnX8UdDCZEb+RDYmMS9WMu80gLrNqw1r/KGjhPOMQvaol+Wva6MFhjoh7bGEUuVGrkgu7HRH3H8IBTjCLgQZ5oDAnxfnymRKWsI4X1Zw7NbGFPmxjP4qYfvjOQ5jHlGpHqCZ1geOIuKvz76QSW1T3cwmnAAAAAElFTkSuQmCC),auto}}@media screen and (max-width:767px){.visible-sm{display:none;visibility:hidden}.no-margin-xs{margin:0!important}}@media screen and (min-width:992px){.visible-sm{display:none;visibility:hidden}body{cursor:inherit}.disable-user-behavior,.scroll,body,html{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;-webkit-touch-callout:default!important;-webkit-tap-highlight-color:#387ef5;-webkit-user-drag:none!important;touch-action:auto!important;-ms-touch-action:auto!important;-ms-content-zooming:none!important}}@media screen and (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (min-width:1200px){.hidden-md{display:inherit;visibility:visible}}@media screen and (max-width:991px){.hidden-md{display:inherit;visibility:visible}}@media screen and (min-width:992px) and (max-width:1199px){.visible-md{display:inherit!important;visibility:visible!important}}@media screen and (max-width:991px){.visible-md{display:none;visibility:hidden}}@media screen and (min-width:1200px){.visible-md{display:none;visibility:hidden}.hidden-lg{display:none!important;visibility:hidden!important}.visible-lg{display:inherit!important;visibility:visible!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:450px!important;display:block!important}.badge:empty{display:none!important}}.view-wallet .item-text-wrap,.view-wallet-tx .item-text-wrap{white-space:normal!important}@media screen and (max-width:1199px){.hidden-lg{display:inherit;visibility:visible}.visible-lg{display:none;visibility:hidden}}@media screen and (max-width:768px){.no-padding-xs{padding:inherit}}@media screen and (max-width:844px){.hidden-nomenu{display:none!important;visibility:hidden!important}.visible-nomenu{display:inherit!important;visibility:visible!important}}@media screen and (min-width:845px){.hidden-nomenu{display:inherit;visibility:visible}.hidden-menu,.visible-nomenu{display:none!important;visibility:hidden!important}.visible-menu{display:inherit!important;visibility:visible!important}}@media screen and (max-width:844px){.hidden-menu{display:inherit;visibility:visible}.visible-menu{display:none;visibility:hidden}}body,html{position:absolute;top:0;left:0;height:100%;width:100%}.item.item-icon-right .item-select select,.item.item-icon-right.item-select select{right:48px;padding:0 20px 0 16px}.item.item-icon-right .item-select:after,.item.item-icon-right.item-select:after{right:56px}#unitPopover .item.selected,.popover-unit .item.selected{background-color:#f8f8f8}@media (max-width:767px){.popover-share{width:auto}}.ios ion-content{pointer-events:auto}.popover-share{height:110px}.popover-share .bar{box-shadow:none!important}.popover-share .bar-header{height:20px}.popover-share .bar-header .title{font-size:12px;font-weight:700;height:20px;line-height:19px;max-width:260px;margin:0 5px;text-align:left}.popover-share .bar-header span{font-size:10px;height:20px;position:absolute;right:0;top:0;margin:0 5px;display:block}#home .center,#home .center .button{display:inline-block}.popover-share .has-header{top:20px}.popover-share .has-footer{bottom:40px}.popover-share .bar-footer{color:#387ef5;height:40px}.popover-share .bar-footer .button-icon{padding:0 5px}.popover-share .bar-footer .button-close{position:absolute;right:0;bottom:0}.popover-share .item{padding:5px}.popover-share .item input{border:1px solid grey;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.3)}.popover-share .item input:focus{border-color:#387ef5;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.3),0 0 8px #08c}.popover-share .list .item{border-bottom:0!important}.popover-light .item.unread,.popover-notification .item.unread,.view-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.popover-light .bar-footer,.popover-light .bar-header,.popover-notification .bar-footer,.popover-notification .bar-header{height:30px}.popover-light .bar-footer .title,.popover-light .bar-header .title,.popover-notification .bar-footer .title,.popover-notification .bar-header .title{color:#000;text-align:left;left:0!important;font-size:14px;line-height:30px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-light .bar-footer .icon.icon-center,.popover-helptip .popover-light .bar-footer .icon.icon-right,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-header .icon-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-center.icon-help,.popover-helptip .popover-light .bar-header .icon-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-center,.popover-helptip .popover-light .bar-header .icon.icon-bottom-right,.popover-helptip .popover-light .bar-header .icon.icon-center,.popover-helptip .popover-light .bar-header .icon.icon-right,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-footer .icon.icon-center,.popover-helptip .popover-notification .bar-footer .icon.icon-right,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-header .icon-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-header .icon.icon-center,.popover-helptip .popover-notification .bar-header .icon.icon-right,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-light .bar-footer .popover-helptip .icon.icon-center,.popover-light .bar-footer .popover-helptip .icon.icon-right,.popover-light .bar-footer .pull-right,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip .icon-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-center.icon-help,.popover-light .bar-header .popover-helptip .icon-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-center,.popover-light .bar-header .popover-helptip .icon.icon-bottom-right,.popover-light .bar-header .popover-helptip .icon.icon-center,.popover-light .bar-header .popover-helptip .icon.icon-right,.popover-light .bar-header .pull-right,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-footer .popover-helptip .icon.icon-center,.popover-notification .bar-footer .popover-helptip .icon.icon-right,.popover-notification .bar-footer .pull-right,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-header .popover-helptip .icon.icon-center,.popover-notification .bar-header .popover-helptip .icon.icon-right,.popover-notification .bar-header .pull-right{margin-right:10px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-light .bar-footer .icon.icon-left,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-header .icon-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-left,.popover-helptip .popover-light .bar-header .icon.icon-left,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-footer .icon.icon-left,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-header .icon-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-header .icon.icon-left,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-light .bar-footer .popover-helptip .icon.icon-left,.popover-light .bar-footer .pull-left,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip .icon-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-left,.popover-light .bar-header .popover-helptip .icon.icon-left,.popover-light .bar-header .pull-left,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-footer .popover-helptip .icon.icon-left,.popover-notification .bar-footer .pull-left,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-header .popover-helptip .icon.icon-left,.popover-notification .bar-header .pull-left{margin-left:10px}.popover-light .bar-footer a,.popover-light .bar-header a,.popover-notification .bar-footer a,.popover-notification .bar-header a{font-size:14px;text-decoration:none;line-height:30px}.popover-light .has-footer,.popover-notification .has-footer{bottom:28px}.popover-light .has-header,.popover-notification .has-header{top:30px}.popover-light .item-avatar,.popover-notification .item-avatar{min-height:80px!important;padding:12px 10px 8px 76px}#menu .footer .popover-light .item-avatar h4 i.icon-help,#menu .footer .popover-notification .item-avatar h4 i.icon-help,.popover-light .item-avatar h4 #menu .footer i.icon-help,.popover-light .item-avatar h4 i.icon,.popover-light .item-avatar h4 i.icon-alert,.popover-light .item-avatar h4 i.icon-help,.popover-notification .item-avatar h4 #menu .footer i.icon-help,.popover-notification .item-avatar h4 i.icon,.popover-notification .item-avatar h4 i.icon-alert,.popover-notification .item-avatar h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.popover-light .item-avatar .item-content .item-image,.popover-light .item-avatar .item-content>img:first-child,.popover-light .item-avatar .item-image,.popover-light .item-avatar>img:first-child,.popover-notification .item-avatar .item-content .item-image,.popover-notification .item-avatar .item-content>img:first-child,.popover-notification .item-avatar .item-image,.popover-notification .item-avatar>img:first-child{top:12px;left:10px}.popover-light .button.button-small,.popover-notification .button.button-small{height:30px;font-size:12px;padding:0 5px!important;line-height:30px}.popover-invitation,.popover-network,.popover-peer-info{width:420px}.popover-endpoints .item .badge,.popover-peer-info .item .badge{right:16px!important}.popover-endpoints .item .badge.badge-secondary,.popover-peer-info .item .badge.badge-secondary{top:35px!important}.popover-unit{height:108px;max-width:115px}#menu .footer .view-notification ion-item h4 i.icon-help,.view-notification ion-item h4 #menu .footer i.icon-help,.view-notification ion-item h4 i.icon,.view-notification ion-item h4 i.icon-alert,.view-notification ion-item h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.bar.bar-header .button.button-clear.button-icon i.ion-android-more-vertical,.bar.bar-header .button.button-clear.button-icon.ion-android-more-vertical,.bar.bar-header .button.button-icon.button-text i.ion-android-more-vertical,.bar.bar-header .button.button-icon.ion-android-more-vertical.button-text{padding-left:8px;padding-right:8px}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{top:0!important}.bar.bar-header{padding-right:5px!important}.bar.bar-header .buttons-right span{margin-left:0!important}.bar .title+.buttons.buttons-right{right:5px}.button-icon{border-color:transparent;box-shadow:none!important}.button-small-padding{padding:0 7px!important}.button-text{color:grey!important;font-size:12px}.button-text.button-small{padding:5px 2px;font-size:12px!important}.button-text-positive{color:#387ef5!important}.button-text-stable{color:#b2b2b2!important}.popup-buttons .button.icon-left,.popup-buttons .button.icon-right{padding-left:32px!important;padding-right:32px!important;line-height:42px}.button-fab-bottom-left.has-footer,.button-fab-bottom-right.has-footer{bottom:64px!important}#home .logo{margin-top:15px;width:100%;background-position:center center;background-repeat:no-repeat}#home .center{float:none;text-align:center}@media screen and (max-width:767px){#home .logo{height:96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AgRBwUf93UlLAAAIABJREFUeNrtnXd8VkX2/99z71PTewEChBK6VCnSAigIUlVgLeuqq7vq2nddf+vqV9a2rm0XXQvsVxF11Q0qJKFLCSBNqZESOoSEkoTwpD/t3vP7IyEkkEASsO3Xeb2e1+u5be7c85k5M/M558zAz+nn9HP6Of1gSf3UP2DSOxuuMUW1AbAoWfH5Pf33/ZTKb/lJS3+aaIba+mfN9A4FMOA24GcAGi4/0TI+IcIMJlxBlAbh4scGoOv4fVAOIAqXHQr8BeRl3I4nOZ1+CqaIMNkoDGqhVRT+ZOvQDwpAxhwCkkoomnmzKjhTc5NTJMhnR1UIAXYnIVJGuKYR6dHoa4libHI6VwHhUqlAS02rc5vptRdofs8JEfPAhd43OUV0QJ8zRXl/7gMamIalSgdTcZ+CXwOBgBtYpjTSMdipFC1N6ILCIbDT6mXVshvUwfryG71Q7BUVRJcUcHLzb5XvZwDqScNTZYipMQ1hWFVJj4vJGw47M5Zcqwrr6g+GXEVb5WGQMmmlwUm/TsbqsWp3XfkPSZNEzYIvY4zK+RmAmjV+nvQTjSeBsQAi7FXwFiHMyBim3A3NZ0SqxBqK0UAHUXztrWDx+imqouY9ySkSh5W45IlkTlPK/D8NQPJ86YrJC8C4qlP7gLUIZUojRgQNReiZ+0UoBE4oxXFMjiPkorMtY5wqODfvwenSyyKMFY1iND6rWet7p0tAEHQP0Nm5aIwq/j8HwLBUGSgaT4nJNUqhVZ32C2QrOI3iNEKRUpgihAGaQLiCSIF4ReWoqUY6DGxGsUlg1arNbGRaZe0eMk8SlMYvFRheO7PWjVJ5ZzrnfCcD8JOTMUkd/u8GYJpoyb25SgnXi3CzaEQowaqgHOEjMflrxkSOoJQ0JK8hPWiu6bQVoZuC7gJXAl0V1WDmK5iPMF88LM2YokpHpkmiT3GHKeQrgw8zJikXwLD50tvwUr76+rr7jZ80AIMXSrTu5zcCdwL7lRCCoj8gCDN0gyeXX69O1SfogT0J1PwEKRtBmARpGoHqw8ljJC8rSRtwz3Lp/7ts0bAKGLqJQxSdTKE3igEKoqu+1o3wmTL558qJamNyqvRB8VsMFmRMUvMABs+TzladoBXj1Nf/FQCMSJUrDMWDQAcFH5omu5XGe0A74CRwV8Z4Nf+czjHIEkCM3yRGCTEGROnq/DmLvNT+finY31Uf+tgMue6lrXW9X0ApaCnQT+BKBSFVFw4rxVzNZK5PZ6hSRPisvLhulMpLTpeOpkHE6omshwa0xB8jAEPSJFHBc5rCKiYvZUxQm4aly20ivAM4ET7TDe45U+uT0yVKhEQ0Wmsm4TXzig3A2j2SkE7hhMc6aR5sJTjQQuDL9yb32r1lTdifXvrYlTxmqnhNTISSKsF7vCbuMh+lJT7yT7kpOFlByapjxO0tpp/XoE1V9iUIS5TGQUwGicZbGePUv0d8IUk+jajVE9W6n9RMOHmuhCmNJ0whVmk8u3Kcyhq9UOxD0+TfItwMuJTirpXj1cfJKRI0PF36+qGdEoIUYFOYI1sT3j+GpJZBdIl00M6pE1nXu0KCgkCBw24Ns2pgrdT6te6NsNd+5sYqsW8v5NAr2zidU0p3FDeKcFrpfClwdfJ8aWFs4lVrXyzJC6RHxnVq208CgOR0uQW4yYTnV41T68+okwofnynFKIGDojFWPLiS58vVylfeRiSApBAcN7ahfY8oukY76KspAr5r1dg9gsQPh5N4rIwTf9vi25vpsvYTkylKyFEKm/Tk76qUJw0nbUd8IUnLr1d76+ufzoyyfjAABi+UaIufV0XYmbGF8WcKNOILiTQszAf6AxuUxt1K6IBuxqq/tn8wNj6hfPrsjNMxAQwH9Ka9/dJUdIzNG3fquS5xt954X9GGpEe27i+mv8DNaOzwO/jECneLnbZD5knF6onq6Hnf3pfINZD/gwEwLFWuF4PJuuLxZeNUdnUfME8SDI0VQDtN8ZnpY7aycFWbUJz3dNb6rM0c0ybt07cdFcd3Q9tOTXp3xyv64naXEx3bosnlT5n1GseO7qf/lf1Df92D/utOsPfZrWhuP10FksRkqa4Ypym6DEwV19oJqqTm87qgX5Mqzb6coI59r51w8kqxqGJeEEVRxhb+WrMZVtX8NUAn4H1RrOsQSuBDXRjSMZyxmsJaXlbC1GEJtEzsyJv/2fCDTAJdp/KYOqIVfQdfy7NvzK0+bwrmu1ms+WQ/3QXCAJcGN2BgWbGdZeeqnGHzZdTKsWpJU8qgNeWhUYslQkqYrWB+xnj1fM0CjUuXAMNCKtBJQUqonW9e7MtVbw/ixc4RTNIUVoCAwGDuffw1dmVuZH3G/B8EgDdeeBjTMHjgiem1haLQ7u7E0E+uxh/pYDsQZsAS00Kv5J70Oi8jk5yh6TLgeyn0iAWSlJwqc4akSeK513rPEOvQNFmQnCaSnCbpb+yQp8p8clTqSYZhyG3XdZLrB8eJ1+OW7zPt3bVFkjspeW/6Uxe8zxSRd3fLhuRU8VZ916JrPpP252mENHn8uyfM0iU5OU3mjV4oIXX2B2nyWnKayIj5svbbUzK/IYLYsXWdDOuEfDzzxe8VgLsm9ZDx/SLFXVHWoPt3FkrO8HQpqgIhe8h86XROXzh+SKr0/M5U0PA0GW4tK3wyOGfrDOf+jSF1gDNR4GGHTtbn19C8awTXNSTfLj0GcNWIibz/5jRcp/K+l1a8YuGn7N+9jYeffgu7o2Ej3s7hNH9jINkojgMJymRDcrokn7ke5WGBUtz4nQAwPE2GC9waULi/u453oWmRSeeg3wHhA02j4OPhxITaaNWYQjz05zdAYF1G+vcCQGH+CXr0TWbY6CmNeq5zOF1/2Z5vUBxQEBiUt2vFhLc35U56a8MOf8HG7cH5u64dvkBaXVYAhqfKEBPuc1i4F5QFwFQWZ03extSYK2B58ypOhTuIaKxAouNa8PGyg4y54dfnXzQ8cPrbyp8YlwWAG3/1MH+fvbJJz96exNhYBzsQVmt+N0r8zQS6CHTRvWVe0+CeywbA8HTpZWj8nmBuXTRGedxh8a9XhLR4VTT1KUDyLHEoJy8podNN7fimYzgdmyqUyOj4eq6Y4HFV/hB+6KQptBf70U7p2JRp1rLQaWJWICQg0uDhfb0TsZFfSIwXngnQuXnRMOVOXikObwm5JhxdcmuL7MkpYsuzMhlhSridzb/pxODv6JPBEVV72uIpwMidV3nGGoaWcOP3CkLrYLoMi2Pe5hxlqaNOfDN0Pv1Xwfomt4DeM8TqtTLdAvdVm+lcxAFoGnkgKt/OcKUxBgj45yDi1XfFrOp2COtU+VM6P5b0aHcGmxZ7mWmxuQS1F2SHIAc1C/MUTL2kFhAUzyuYvLpswllqAb0SANE4OTidnsogQjQmj23JmhDDlXwqr5zImGb8X0kFR3ZFjh7QdV7KfuJF59+rxqo3aswJ2jaUpNPqGE5ORdiRMUFtqkV5qUqrkkNh0YRYE661ahx5qBtXzXr9f7jp6jbMfusZvB73d//19kj0xNvRE29Ha3F2QFZ2bCOFuz+l+NDS7+zVecezeeLecdwxriu9i1eOtGq4lcnwIfMkocZt24f3pkejW0ByukQh9F81QT1SB+kYJhoet58edjvbPR6m3tOZrRaNNrfd9z+43eXMfnMaX3wwnfv+32uMmvirJn9kWUkRh/btoCDvGOVlxZiGgTMwGKczkBatk2iW0AbNtR78ZZW1KGoQWEPwlR3HXbgHW1D8ZRe8x11OyqxX+fDt51Cazp0PPkvPXlcFjN5DYdphWqC4HpgOoBQrBQYBWxpFxg1Ll2eC4MX0caq85vnJKWIrcHC7qRFlMXjXD390WBi9aAwdahi/2bdrCy/9+dfsz9pG+869ePz592jbsXuDPvDIgd0sTf2AtStSOXLgwjZxXbfQqWM7evdMYkRyf1r0+Q3KHklpzlo8rgNYnJGEtr3usgl/7Yo0XnnqLlynCxg68gYefupNwiJjADjt5vgNyzkoJvkEc1NG1YBFipmxaoL6VYMBGJYuYzA4tXKi2nge/5MqsSbcic5Jr8EcqyL3d13ZcWMi5xFQIsLy+R/z+vMPUlpymlETbuOex14hNDyqzgIcP3qQGa8+zuovv0DMxts1lKb45V2/545HXq5dDvdJMN2gB6HskU1TNyeO8sS94ziQtZ2kLr3543Pv1lmhHljL3B2nSBR4dNUEtbJKnikrx6kpZ+02otXl/KUBDEgRp0CzuoRfOfEiCkW8YbDVChN0RfGk1vStUyBKcfW4W0hZmc0v7vwjy+d/SvbBrDo/cP6cf/Hrid1ZteSzOoWv6ToRUXHExLckMDi0bnOMKfQZdH5tl9NbME98iRTvbHLND4+IISgkjKf/nsKMzzbV25pvbU+M0vAqmFKD0j5ek7BMn4+j3j7AbmMgQbxfX0FEo79mkm3qFGkmU0Y0J0tXNL9Q4R3OQH7z+xf5xa8fIyTs/Br47vQn+eid5887f+WgUQy55nr6DBxJbLNWKHVWSxa7TrE/axub1y3jq+XzyD6YRc/+w+l2ZXLjpev3gsV2wVusNjv/mJ1x0ayujKafVZHhUfRNnithGZOUS1NsFugNHAJwKuxUudvXAmBgqgSbGkdWD1P+egwvQZQQLFBs86FMnavv7EiDXfjqEn7KrFfPE377Tj25/8/TuaL34Avm1av/CHr1H8Hdj/6VzE2rCQyq0TJMH+RtAM2KihyAJl5Eq6PiuQ5T+t51+ALjsLfqT8DIZ0HTmtxSNIXlqjhKMo4Rr2AE8LloZCo/I6s1g6fuFqAFGjhXj1P1R5WU0kMJ2QCGheFhdnbGOoltamEzN69hxqu1qfN+Q8bwxsdfXVD4daUr+gypVy0oWxjYY1DWkHN1FmTNozy+M+VdhlBqFOCaMZjTsyfjP7y+ySCMSSAe8Boalc2xjP2mOktKWrW6HQ20pZkU1Jfp6IUSguA3tcoJtzIZOiaB0qYW0jQMpj97P6ZxllTr1X8Ez705r8G08IV7ZAtE9oDwrvXfszedshN7MOI7AOALbUZZt5F4midQuup/yH//Bjy7Gm+h6xVND4uiTKt0jSRjiirVwHlmFOm31M06WC40W/MIPXCzBQeJojAFBoxv3XSXkWULPubgnszq4+DQCP704mwsFuulCV78YFZpUEvAWcpC/JinNqJsYRT5Y9i/IZ3cfevJ37sJX2gkNpuV8NBg4uMiad48BqPtIKzFJyjbOpOib2YR3GkMzr6/bhhjonC0CSNv72muGJkuHZeOU9Ujj+IQguweyhpFxvVOlwBDkFVTVOnQdHEgBNl1fLHOSkqiKWnuv/9Z6/iOB/5CVGzzS674Zv4apLQyOkmLHowK7lB1wc/GFSn8Z+5KMjN3XnCY63TY6ZjUin5XdqFv906ElORSfGIDJR8sJqTbDTh6/uKi5RgQjWNfIYZXkQxkiapsAT6DYDOEokbR0QHQ0YAdZ4BS0KZdCCeaKqSjh/aQlXnW3zUgKOSSZssXSz6vhxeeuIsnnn6d7du+vegco8LtYWvmXt55dy6rN+7EHdMeHT8S1wxXbgb5H/4C39FvLphHvxiamQpDhG4ASqiYnCK6CeHR+eePgC7QAkQpIWzNOHW6Rt+VMDCu6X5E33xV22tj+OipBAQGXxZhK6WfsRVV16m//+Vevkz7d635Sdeu3YjWSwmIqyQNS0rLyD2Wz6Hs4xj+yn4pMMDJ4KsqO3ZPRGusJXkoDbyJnTi1/h84vw4ldNLroJ0viqRQOipFFpB0ZryVD07NT0h9gYF1CvTqdBIMk9wa02VBI/rKaKKaKqRvt66tddytz+UzH6joIajoIdXH+7O2seiLWdXHfXp259HHniA+Pp4Ti17FaF/bdl5e4WbL9j1s2rybhBax2G1n5we+4Bh0dxE2Vw7eZkmU+91437+eiDEvoMfV7ux1DUeIlfJiLy2SZ4nDVPjsFgK8Wv2apk4ADGhffILVtT5SiE4Mbpytt2Y6dzbcpUfT3GjchfswvSXojjDsYW1qXTu14wMMTxErl571pQ0KCOCZ51/C6XRinDqEFhzAuYbNAKeDQf27M6h/3UNawxEKKGynj+INT8Cb1Jv8L6cR2m0yzh61qf8YB95iL7qKpK0Ifr+DYAz8DaajJ6eIDeDcEE5dR7do2JsKwPGjB2upg/jmiU1jSo+tw3UgnfIT5+tjv/s0fncheSeqGy8tWrbE6aw0YRdvW4wvrkOT3ms4QjCcIdhclXkbid0oykqjbOOsWvclhqBVcWztAAwvzUwfpxoMwPEAWig/h8+honWR+lFsyPjfXVFWqwPW9Mtv3bIFNcMWnEBQjdlxbk4uHo8bTBOf99Ji8AxHKKbNgaWs0hfXaJFESU4GxYufqr6nZTCBCjRTiFGKQA0CNGv9zrvnqSAdmkf62Hh+t4xLqqC9upsNw187xnn8L+7hkaffrlttuMsROWs8DQoOa7IQIrvcWpmXOt8CGt5xMhheOsdvYF7VuZLSEv7xj79zb3I7jFadLhlkf0Ak1uITHM7ay5Ovfnz2wiPPAfC7WZlAN5QiBiEIDUfyWAozGtYCRCmw+wo2fjTx7Q2ZE9/a8OyZTlhMigwTz5kmcR6SFyC2bPbaNIjffwkB6kpHISh/KfiKzv7ED34PZM5myNjJxETHVD+yePEiHnrtAzZ8m41hXno4sC8kDoe/pO75xJrnWldJKEYUEZi4LxSDXKsFDF5IlDI5LUp1USKdDYujoKr2mwgej8Fxi0brZd82ToAWixWHM7BaDZUWuxr3xd5CEANR1kqOpyIHs6A2b6OFXQkHMiC+A3almPaXZ/jDY7+nvKzynYfzinj9nRQiwkMYPqQPw4b0IjQkqMkgxHXpxWcvhOCOru0muj8rv6hK2lFKiNNsHL0gkVerpvqI93s4hqan+QIiT/sCooKqxqGiwOfycbKpBQ4OPRv25XGX4/N6GjHT/aqS2y/cVM/QqAj2zodmHatVU6dOnXn7rRl06FDbVanwdDGfpa7gwcf/zjvvzuXQkWNNbIkKb2iz6k757GmbW4GhhAiBQKOU7AYDYGhE6BHkp/62z5/KI9p94g5pHjQsVTpg4EZhFFTQZOfN8MjaBOqhfTsuT89bfBLysiC27XmXWrZsyduvT+fhCb1JbFXbY8PwG3y1YTtPPTeT516axZbtexo/uLAFVgrRe3aSW64HlCqoUOBU4M2YokobDICYqIwqu4Cq9PHHhAla5UIZlmNlHG+qnDp07VPreHdmI8JwraFgi0DZzqGW8/ZC2TGIqN8IX/rNHPpeey3PPvkbnnniboYO6onNVpv8y9p3hNf++QmvvfkJ5RWN8+rwhjXHVlzZiixuF4UB7Q4KlJtCNIr9F7UlnPkzTURTGtXKvd1RVlIZ0TjeVBxDYd1f1PQW0Ll7/1rHWzYsb7jBI2YoWvy1qIhKK6jowagTx1AhzVGxvVABrRC9TnsH5cUnMavY1jaJzbn7VxN4/W+PMPX6q4kMr23m3LJtD8+//D5er6+RILTA5spFHT/M2sipG4ASTSNMGuAVUQ3AmuWEo6juHWf+VvkQlgARGrQX0DNP1T+huFjq2vOqWsfrVqRxKr8JDSp/F2rvfFTClajQjihni8qf7jx/tHJkM4SfT94GBQUwbvQgXnvhQaZMGlGLejhy9ATpi75qnCqyOFCmD79Yjd1uZ4VoVJhCgGayq8EAGD6CTX9tytTUSamiJiYqsB0oodxtNK0jbtE6iXYde9Qaip5LT5+tUqeh7NDZn1EOhhd2poBrN8S0bZAJ0bVvHf6o+ulu3aIzfsxgnnzs9lpqafW6xocFe8MS8LqNUkzQIECDALGwucEAmAZOo0YLAFg9Vu0W2KiEAYpKm+bxCpoctDzxlt/VOv7Pe6+wP+v87KQ8G7NgffVP9s2HnR9DRCwExzRwxlSBmA1bmSyxdTNGX3OWmzpVWERFI/sCS1kBJSGdjlT1pWGi8EWXXTx8tRoAXbCtnXC+uVHXmQVgSKVr4o5CmrySyKgJt9G8ZbuzMvJ5ee4PN1NYUI+ZoeAQ6tA6sJqVtV413HBeunkuRssuDb4/Pra284ApjXOFtx7OZH3XaXPFJEIUIUDhnCnKaLgK0jDrWphixRjWCOzXNKJNIfTLoxxpKgAWq41H//IOqob6OHJgNw/cMojc7KoBgwjkbEEdWQ+aF4luAVZH40m74lOYF3E7qZlycs+OLxx2G4EBzsZNCywBsuKkJU9pODGIEhqmqs+2AAOzngmHaML7CH6lMXRHIeUl3nPIukakXv1HcPv902qdO5Z9gDvHd2Xmn2+gZMPbqIAAiL8CFdQCZYtEaeeTsH6/j127dpK1+/wGmZ46j3U7D2IYDYuoyT56guWrzk7yrujarnEkYP5hPK1HHs8rIxQ4qTRClFx4BnweFaEM6lV6UR7m5zs5AfRAsXaXi4x+MdzeVBBuu/cpKspK+fTdl852Yh4Pn3zxBSmpqXTp0pUePXoSGxtLWGgYcApXkYvCwlOcPn2aPXuy2Lt3Lz6fjylTptKxU22Sbd+W1aSv3kzgsl307JZE506JtE6IIzoqHKfTjuE3KCop42ReIZu2ZbFy9ebqoaeuaYwbPahxLfvEPr4eO+sLthFnCLGa4pSCkkYB4HPWbbMEmDNFeZPTZSbC0yYMm3eEJf0u0hd6PW4++d+/0a5jDwaOmFDFQRRD7jfgLeG3o7uRGHQfr787m7LSs1S1YRhkZm4nM3N70xnLispvLyur4KsN2/lqw9m8lKYQs279rjTF7bdcV2vWXOH2sGffEXp0S6p7JOUrxxaeyEd7KVMKlwb3A6eFhjmvVQPgL+bC5EwQ71DM4yjafX2czNMessLtdceErUp/n3+88CiuIhe3Tp7MwHgPGG6w6BDaAgIigUhGTmxFnyEj+fiTj1i4YAEVFRWN07uaRljY+dR2YlwoAU5HnbPa+oTfLD6KX04dTbcutSmNNWu38cGni2jfNoG7fjWe5vHRta7bd6/BddOKPcfW4jAhFHCgyDFpmANDNaneO10CNp/jln5uGpouC5VJm0BKnX8IWHIwOUFPxnBXEmCmwZGj2bz81v+yc98BWrZqyeN//BOdOzdsJOLxuNm4cSPbt2/j4MGDuFwuiopcFBUX4XA4seg6ERGRxMTE0KplK9onJdGnTx/Cw88PyjyxdDplzTvw7c797Nx9iNzj+ZzMK8Tj8VHuduOw2XA47cRGR9AyIZY+PTrSMak1mna+jUFE2LhpF+//ewFl5RUM7HcFt0wdRXBQAHrZaUJLiuWZVu/965uT7PIL92iKr0VIUhr/WjlWvddgAOpzn66ZktPkDxoM1MTbv4slu/CVHsfbWjTsJSXFzJw5gwUL5xMYGMT9v7ufkSOvreVY+32mE0unY7Tpdlnz9Hi9pC5Yw4Ila9F1nRsnDOP6mCKyp6z75JGvtW+VSXNR3GFzu54ydfutFl/FGwOyImZPu0iYUrUKatDCpUKGqYg1lK3NPl98wsbCwgMDozydZ73/HosXL+Lmm27hl7+8DbvdwQ+bLj/wdpuNKZNGMGxQL979MJ2P5ywl8b67i6Zv1dYhmMB9CmYGFuz5W5Vc39sWap8LuC5bSavW10w1DVJ03Xi+uZzU3ut1MLqirMjqdlcQExPLjyHlL38Hb6uk7+4FhsHx1UvMlGs2PvxNAYUKJogwHgvtwg5vPMyZxac89vB5j/R0NZiOvliaM0UZAid9XpYj+to8M8ox80BEXkhIyI9G+AB253e74plz51LZPPKzF7YUsEmZtBRhLIp3KlfklVwgD+GkR/eYl72tDkuXEQgdxMpC8bIkkPKYvyV9a3YN80b8WAAwDm/kVOEBfCFxlz1v28HNbHWOWPHXwId+rwzaCkxDEeXU6dCUpY8bHZWwcjMrgf4Zo9VhCzxboZzlL+xt7Sv3qYofCwB6dBu00tOXPV/L6aPs8bXe96LzoRcsQjHCDUBXJTzU1HWnGx8WMk2ZArlXp0vL5RPUR6A+P0mUenF7UK78GBZzAFBWxDAuL6gVJRzM9uQ+Ff36g1FjyfDDJNG4EVi1crxKaWq+TYrL0U0+9MMdAA4Lj5mavnOddAualdm0ha8vyU2lrvxyt2NGXL5YYc1TYe7bnXviz60+/E20hy/z0+iJyWMiVFgUt11S3k15aPlEtUtB7OQU0ReNUR6Lg9tNpbs+qehrT93rb/SGCM899yzT/vL0ZRNYac5u/IH1h6aapsniZRvYmrn34v2Jz+vZvuPE8RcTZt4jm1maX4YVxf+KIkaDO2uuFPm9AVBZMmbnORkDsOwalW36uNOv2TxvFg801h4oOtrQbLJ272b16gzatml7eaRvmngqii6soZRi1dqt/Gt2Kn5//R6X5adPFW7a4cqb0fzlu8szgxdkPI0hUaQA3RW8u3K8+vySW1dTH1w5UW3UhGo/71XXq/Wm4n6/2Jh2alTZjv3HsrmIUUNEePmVlwgLC+cXv7jpssi/6Kt3MVt3vSgAv71jIsUlZaTVY//NOXLi6LrsgILprd6cMG9yzKKMaco/NJ3pShgHbKeABy6LervE+eZXyalS7W+yepxaaJg84cMa8MjpycXb9ufn4KufXlq6dDEHDx7g0Uf/gNVqveSPKft2MRWawrRd3JjSumU8/Xp3IW3hGlyus8xxhc9wbco8tn9rcfPD77d9cdTqCWpr1fD7TwoeUIqDaNyacYdy/+AArBivVkBtRnT1RPWxUjzjRwv8Q9ENheuP23dSdKxO8u2tN9+kQ8eODBp06cEaJRvnUOI6ihHXpsHP3HbTaFCK2Z8uwjQxdhdUbFuXWVp8yN593udRT47LGF05qEhOlWkivKAUuUrn4Yyx6jJ5lV0iAABYyTh3obqM8epdBY/4BdsTJ5P5oHTgEk4eEIyzjPes92dRUlrK43/806WNePIPULDoNUrtghEUwp5tAAAGFUlEQVTfuH4kNCSICdcOlm+27OLTpbuzj+Yq+9Ko+6Y+ctd9f1w2RRVNThHb0HR5F8XTqnJ2+4IdLutaOJcMQMYYlaM4P3Bj5XiVqsPvBDyzjrVo9Uf37Z8ZbvGRtx8xDfZk7ebaa68lMbFpgRpSWsDhea+ya+3nFLfqjBnUuOgpQ/DtK2Knpe2V3wQEBvuz9mXvndPmr/3/fWv7DaBkxBcSme9giRLuFDhqKl71CvMWjVGeywnAZaENe88Qa3ASel3bTA1Lky6m8A8NWkY5OfLWAHfXqJzF8Xhd+MJaYLU1LujGvfNLinN3IhaNl+fvYPO2LB6+Zyp9ejXM97/Yy6k9xWp/ToEhTrc3xir+bZ9y3UOLHhxWPXyu2tEpDUgEtuuK9/zC+lXjVb1hkpPXiXPOANwN2vum5uz6cgBQFc5UazY16c31d5tK3a+OblSGxfppSXyv6Hw319y00pH7SPeJ+8e08wy2HvwSXLkQFg22+iMmPftWU3J0J4a3FIlvjdHmiipScjuqAXWo2MupI6VyZF+pPd/qKmtpFSMyFHP9+63/duOKcSoXXqlZYW4Qk1lAMDBfUyzwC0dWjaNO1+wRqRLr0wgpdZHdWOFfNgDqVBGailPCFSgQ3XFUabwlgssPo17eSvS8w/aFL/Yd2zPCQTzHt4DrEHiLICwebEF49iynJGcvhq8EiWuF0bJhsV0iSsp8RmF+hco/WqEV5FQEFIeUF7XSff6wEMo1V0DCix9FPTC3chn6s04BoxZLhMfD6wK3AB4NnhfIFsEV42b5ucIdtVji3T76i5/M1RNUk3dw/X428xTApLmC40pYampcta+ITpOXU9E1gmVjE3odbxbbKzTMSnRwwdfxLH0lzlecazWtNt0SGIy3yivaFIVflN8veH2GuCt8ZoAgjv2FnoPuE/qJ0369zFviDQ7weqNElNUUPTpez7PkWdu/lt7s7qUZ33KMB5QJD57L8I7xeJlJ5RI8ezTFg6aQgOC3eFhSM8Z3SJokaopRHi85MW7SGuJ89Z33AXWlsW+va25VeksA5fcf87W6Kr9IiNUgVkFzEwYqoYdSJImiWAmrlWKbSG3/pK5Fa1t1KF07yO4rDfbruq5M06LhtyKK/VnbA0+dyHW069anMDK2ebkhyuO3Bm/7Kvz6uSedrY7iI+fMHmF1qo8vJNLQmY7iFgBRvKdrPGOYDFeg42Vxxg0qh2miDe3JUKUxVAnfSjCpGfUs7/OjAaAhaViqdFBWhpsmvUUYqIQSEZYpja+ViWmCXemV1iUBQ4zKEF8d/GiUmVBuMSnzaVSIjiuutGHugANSxOmw84Ao/h8QjuKAMnlI9/CVz8F4FA5lshIbfs3HOEORAKzvcIz5My/zDqw/+FaGk1NEL7TTxdRJEJP2UrmXZJgSFioL86PK2HSpzfwslS7a0J7coBR/qxrhVCC8FHpqawp+6eBxxPT1RLQoEUFTQrypOGwoPv9qbP3b4/7kAagBhC3PQXdlEmqCTdO5AhihBBuQgcY63c6GZdeooqYIflgvxgk8D3Sp6pVSLRq/17yU2gp3vWLxlvxSlGYUt7hyughzko6zeeb3sN/wj2472+SVYtErSPL7aC46OVYDq0+nj2bSTaCzUvgQdgBZunDEp5FjmJw4d3MdgIGpEmxT3GTCQwo6V53erjRWmIIPE4umKA3M29XO4i25GVT5vPv6BX6f3/sj3lFb1NXpJPhMOugKwzQ4yHZyPP0JsfvoDMQBsUqIEUUMEKZMSkRRpiBUoBuKrggOQFDsBP5jGqywKg4sn6CqvZcnvLOhsyZcIeCbd2//z38G4Jw0eqHYywxaIiRoGprh51iQjZyadthRiyXC42USMFVghKrc9rZQwQcoZmTUWMHqx5R+EgCcq6KC927/H01840CzidKDyyMSC3yOkK7KxFr1RZsVzAxSfJR+EXfLnwFoQprw1oZ/KqiOdyqN6ojfGbobWAUs1032+gTBxG+zUuaHcpuNitAi3HMmYzaFMviukoX/ghRQevz2tClhs3+KZdf+GwDQvUXHfqpl/2m2AI23BBZW61G/2vJTBeD/A62herFIRO47AAAAAElFTkSuQmCC);background-size:96px 96px}#home .footer{display:none}}@media screen and (min-width:768px) and (max-width:991px){#home .logo{height:144px;background-image:url(../img/logo_144px.png);background-size:144px 144px}#home .button{max-width:350px;margin-top:20px}}@media screen and (min-width:992px){#home .logo{height:200px;background-image:url(../img/logo_200px.png);background-size:200px 200px}#home .button{max-width:350px;margin-top:20px}.circle-bg-dark{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-725px -145px;background-size:1024px 1024px}}.gray,.gray b,.popover-helptip .button-close,.popover-helptip .button-close b,.popover-share .bar-footer .button-close,.popover-share .bar-footer .button-close b,.popover-share .bar-header span,.popover-share .bar-header span b{color:grey!important}.gray a,.gray a:hover,.gray a:visited,.icon-help a,.icon-help a:hover,.icon-help a:visited,.popover-helptip .button-close a,.popover-helptip .button-close a:hover,.popover-helptip .button-close a:visited,.popover-share .bar-footer .button-close a,.popover-share .bar-footer .button-close a:hover,.popover-share .bar-footer .button-close a:visited,.popover-share .bar-header span a,.popover-share .bar-header span a:hover,.popover-share .bar-header span a:visited,.positive a,.positive a:hover,.positive a:visited,.text-editable:hover a,.text-editable:hover a:hover,.text-editable:hover a:visited{color:inherit}.popup-container.confirm .popup-head h1,.popup-container.confirm .popup-head h2,.popup-container.confirm .popup-head h3,.popup-container.confirm .popup-head h5,.popup-container.confirm .popup-head h6,.popup-container.confirm .popup-head p,.popup-container.warning .popup-head h1,.popup-container.warning .popup-head h2,.popup-container.warning .popup-head h3,.popup-container.warning .popup-head h5,.popup-container.warning .popup-head h6,.popup-container.warning .popup-head p,.refresher-dark-100-bg .scroll-refresher .ionic-refresher-content,.refresher-light .scroll-refresher .ionic-refresher-content,.refresher-positive-900-bg .scroll-refresher .ionic-refresher-content{color:#fff}.item a{text-decoration:none}.no-padding{padding:0!important}.avatar-member{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0LKSJACf7RAAAFqElEQVR42u2dbUjdZRjGf+c4dTndFnO+TRcD3ZIxdVlJL2PSIHDZBqtRaINojWRrgR8a4fDbIOrzoIKIMay2iGpQsg0y4xRZIk5i1NTaik3TZeRcvmzl0wc7qTPz6Lnv5/kfz/86XzxyuM59Xf/r//o893MCBqtIoYgSSsgjndWkk8RV+v959dFPP9/wm82CAtYM2MCTPMZGgnN87iZNvMdH1mww+q8Es9e0m/nhhjltnjG361enL3+HOT9P8ZMYNC+YhFg2IN2cWbD4MNrN3bFqQIm5FLV8Y4wZMbtj0YBdZlhEvjHGjJsXY82A+8yomPwJ1OhUqnMazKOVTGHOUe7lW/lS5zorLwSJnBKXD0s5SUpsGHCAzQqsUMgr8qTyu8AqulmpYgCMcQd9spTyCahTkw/JHJCmlE5AIj2kqxkAA6xlWJJQOgEVqvJhFY/LEkobUKUqH2Cbtw0oVTdgqyyd7DEgiWES1C1YxyU5MtkEFFiQD/dLkskacKcF+ZAb7waIXmbHogEZ3jVANJyxaEDAigHJ8W6AKDRuh2MKfgJcF+AafgJ8A+IcfgJcF+AafgJcF+AafgJE2URvU2aFqM2SzwSXM8ASCwaMkc9lKTLJBNRbkQ/JvCRHJpeANPpZasUAuEa21PiQXAJ2WJMPy9ktRSVnwBPW5IPgCJScAXdZNSDHewbcsGpAmvcMGLVqgNhkGTkDfrVqQLv3DHjfqgGnpYjkrgMyuGLpQgigkO9liOQS0M+H1uS/JSVf9l5gBV9RaEH+TxRxTYpM8l5gkEcZUJc/zB45+dK3wz9QhW4LiuERQpKE0k+EzvKuqgENNMsSyj8SO6lqwFFpQvmpskv4kTwl+e3ydxzyCfhTfiv9i9flKTX6BVZymWUK8ofI4bo0qcZj8d85psAKDfLytRonC7ig8Ii8hA75UnUGRrr4RJyzRUO+3sjQq8J8hjqdQrUMCAkfsV/jM51C9Zqnl3GOfCGuixRpHABBc3D0D/bwlwiTYa+WfN3R4RZeFuFRiz9orx+QSEvUF6+K8Qft+QE3eSpqDsX4g40VJKL9AuU5B/4MEdcFuIZvgOsCXEPbgFQPMDg1INsDDL4BLg2IfqRIeaxJ24CdHmD4X+heCaZxNerJk2OsZkivRN0EVAvMHU2mWrNEzQSk0C1yCOslX3bViKnQTECt0BE8m1q9IvUSUEaz2NTJUcr5OrYMyKWVLEG+X7hHboL0VOjsArk0isqHLBp1WrM1DCijlU3irJtopcz7BqRwmGbhrR9GFs0cFl9PTHBpujRTY3qEF9GbiR5TY9K8tJxeKtlkU8hOHrLUMgNjNHGK7+ilN9pHpvMxYAXVPKu0Upwc2nmTtxmM+PMRRiXB7DcD6vGWwoDZH+lqtJEl4EGOUux6084THTzPF3N/bO6zQA4NhGJOPhQToiGCxoo5InLQDLnOc1QYMgcXvgsk8QZPu96QAjjGc7P3s8xuQAYf8IDr2oXwJbvon58BG2lkreu6BfEz2zkfuQEb+FxhYVy36GMrFyIzYB0h1riuVwFX2MLFW/858zSYR9OilA9raJo5i/nWBGQSosB1pYroYsv0lYmnJyDIiUUtHwo4MV3zdAPqKXddoTrKqZ/6duouUM6ncTFcPs62yb6TSQPS6ZBrSfY4eigOd7qGt3iA43EjH3I4Hp58FTZgHxWuq7KKCvZN/DGxC6TSveiu/OZCH/lcDyfgUNzJh0wOwUQCcujS+PEKz2OYAnqCwJG4lA8pHIGAKaI9Ls7+/4VxNgfMGR52XYdDnA0Yyz846DXEa/h9A3wDfAN8A3wDfAOAIL2uS3CK3iBtrmtwira4NyBg1nOO21zX4QgjlATp1OrMjwHU0RkwEOBjtruuxQEaqcQEAUMltYy4rscqRqilEjN1XGA9VZRSqt2k5By9tNHGO3ROvP0bpkYvBeY8k00AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NDE6MzQrMDI6MDCAxbwoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEzVDExOjQxOjM0KzAyOjAw8ZgElAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=)}.avatar.disable{opacity:.7}.avatar-wallet{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0JMBOJU4OdAAAB2klEQVR42u3au0ocUQCH8e+IxFRKUohrkG0Eu4BiLrCFDxDBNtjoI1gYTJnGQrRInc4HyBuopNHgBVZIwCJFsHBXLURtQiIyKYyFN3B3zJyd3e/X7e7MmXP+e26zOyBJkiRJkiRJkiRJkiRJkppVSF9E0sk0r+jKuOYnrLMQTqMHkHSzQTHS17fLy3CYroi21JWYj9Z8KDIfvwdUKAC7bGfc+CH6gGrojTyJJBemMr/u+4sLpy2njRZnAAZgAK2t/YHKGUzeZlzz5w2yFU6/EKVsQHAIGIABGIABGIABRN4ILbOVcc1fM9IQCfp7gHOAARiAAbgMXpuhH/GJ0brK/sG78OVfKR0cXPnsQ/iYkwAYY6LOM4eZpXR5q3/t77bH+RkCO5HObZQeEL4nQ7ypcwh8boIAIJQpuwoYQMsugwBJ/73L/h1+3vr+OYtXXn/Lzz7gCV8ZqOH4LUrhz4155IzJvA6B0VqaDwzHu7f/PwEsc1zT8RXWmmoOCJWkl9L95wBWbw6AvO8DfrHkMmgABmAABtDw0j8gUaWHeA9K7odC7GVwhXGgGOmB2ZX4PaDAJs8i9d89XoRq5AAgecoMg3Rm3PhTysyFIyRJkiRJkiRJkiRJkiRJku7wFyuiadmIs5Q9AAAAAElFTkSuQmCC)}.popup-container.confirm .popup,.popup-container.warning .popup{min-width:250px!important;width:350px!important}.popup-container.warning .popup-head{background-color:#ef473a}.popup-container.confirm .popup-head{background-color:#387ef5}body{--refresher-bg-height:100px;--refresher-background-color:inherit}.refresher-positive-900-bg{--refresher-background-color:#1A237E}.refresher-dark-100-bg{--refresher-background-color:#555}.platform-android .refresher-dark-100-bg:before,.platform-android .refresher-positive-900-bg:before{background-color:var(--refresher-background-color);position:absolute;display:block;top:0;width:100%;height:var(--refresher-bg-height,100px);z-index:-10;content:" "}.view-wallet .list .item span,.view-wallet-tx .list .item span{display:inline}.platform-android .scroll-refresher{z-index:50}.platform-ios .refresher-dark-100-bg,.platform-ios .refresher-positive-900-bg{background-color:var(--refresher-background-color)!important}.platform-ios .refresher-dark-100-bg .scroll,.platform-ios .refresher-positive-900-bg .scroll{background-color:#fff;bottom:auto;min-height:100%}.refresher-dark-100-bg .scroll-refresher .spinner,.refresher-light .scroll-refresher .spinner,.refresher-positive-900-bg .scroll-refresher .spinner{stroke:#fff;fill:#fff}.view-wallet{--refresher-bg-height:200px}.view-wallet .hero{height:200px}.view-wallet .qrcode{position:absolute;top:30px;padding:3px;background:#fff;width:90px;max-width:30%;right:-170px;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.view-wallet .qrcode img{width:100%}.view-wallet .qrcode.on{right:30px}.view-wallet .qrcode.active{top:0!important;right:0!important;padding:10px;width:200px;max-width:50%}.popover-helptip .view-wallet .item h3 .button-close,.popover-share .bar-footer .view-wallet .item h3 .button-close,.popover-share .bar-header .view-wallet .item h3 span,.view-wallet .item h3 .gray,.view-wallet .item h3 .popover-helptip .button-close,.view-wallet .item h3 .popover-share .bar-footer .button-close,.view-wallet .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet .item-divider .badge{top:16px!important}.view-wallet .item.item-wallet-event{padding-top:5px;padding-bottom:5px;min-height:30px;max-height:auto;height:auto}.view-wallet .item.item-wallet-event:last-child{min-height:48px}#menu .footer .view-wallet .item.item-icon-left.item-wallet-event .icon-help,.view-wallet .item.item-icon-left.item-wallet-event #menu .footer .icon-help,.view-wallet .item.item-icon-left.item-wallet-event .icon,.view-wallet .item.item-icon-left.item-wallet-event .icon-alert,.view-wallet .item.item-icon-left.item-wallet-event .icon-help{font-size:17px;height:18px;top:6px}.popover-wallet-actions{height:400px}@media screen and (max-width:991px){.view-wallet .qrcode{top:8px;width:60px;max-width:30%}.view-wallet .qrcode.on{right:8px}.view-wallet .hero.hero-qrcode-active h1,.view-wallet .hero.hero-qrcode-active h2,.view-wallet .hero.hero-qrcode-active h3,.view-wallet .hero.hero-qrcode-active h4,.view-wallet .hero.hero-qrcode-active h5,.view-wallet .hero.hero-qrcode-active i{margin-right:200px}.view-wallet-tx{--refresher-bg-height:100px}.view-wallet-tx .hero{height:100px}}@media screen and (min-width:992px){.view-wallet-tx{--refresher-bg-height:140px}.view-wallet-tx .hero{height:140px}}.popover-helptip .view-wallet-tx .item h3 .button-close,.popover-share .bar-footer .view-wallet-tx .item h3 .button-close,.popover-share .bar-header .view-wallet-tx .item h3 span,.view-wallet-tx .item h3 .gray,.view-wallet-tx .item h3 .popover-helptip .button-close,.view-wallet-tx .item h3 .popover-share .bar-footer .button-close,.view-wallet-tx .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet-tx .item-divider .badge{top:16px!important}.stable-100-bg{background-color:#f2f2f2!important}.item-tx .badge-energized{background-color:rgba(255,201,0,.3);color:#888!important}.view-identity{--refresher-bg-height:200px;--refresher-background-color:#555}.view-identity .member{--refresher-background-color:#1A237E}.view-identity .hero{height:200px;background-color:var(--refresher-background-color)}.card .card-header{font-size:90%;opacity:.8;filter:alpha(opacity=80);padding-top:5px!important;padding-bottom:0!important;min-height:25px}.card .stable-900-bg,.card.stable-900-bg,.item .stable-900-bg,.item-complex .item-content .stable-900-bg,.item-radio .item-content .stable-900-bg,.item.stable-900-bg{background-color:#e0e0e0!important}.card .item{background:inherit}.card .stable-bg,.card.stable-bg,.item .stable-bg,.item-complex .item-content .stable-bg,.item-radio .item-content .stable-bg,.item.stable-bg{background-color:#f8f8f8!important}.card .item .card-footer{margin-bottom:5px}.card .card-avatar .avatar,.card.card-avatar .avatar{box-shadow:0 3px 4px 0 rgba(0,0,0,.26);top:7px;background-color:#D9D9D9}.card .card-avatar img.avatar,.card.card-avatar img.avatar{border:0;min-height:54px;min-width:54px}.card .card-avatar .item.item-avatar,.card.card-avatar .item.item-avatar{padding-top:10px;padding-bottom:2px;min-height:45px!important}.card .card-avatar .card-footer,.card.card-avatar .card-footer{padding-left:88px;overflow:hidden}#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card .card-avatar .card-footer .popover-helptip .icon.icon-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-right a,.card .card-avatar .card-footer .pull-right a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card.card-avatar .card-footer .popover-helptip .icon.icon-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-right a,.card.card-avatar .card-footer .pull-right a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card .card-avatar .card-footer .icon.icon-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-right a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card.card-avatar .card-footer .icon.icon-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-right a{margin-right:8px}.a.underline:active,.underline a:active,.underline a:focus,.underline a:hover,a.underline:focus,a.underline:hover{outline:1px!important;text-decoration:underline!important}.card-avatar-small .card,.card-avatar-small .card .card-avatar,.card-avatar-small .card.card-avatar,.card-avatar-small.card{min-height:45px}.card-avatar-small .card .avatar,.card-avatar-small .card .card-avatar .avatar,.card-avatar-small .card .card-avatar .item-avatar .avatar,.card-avatar-small .card .item-avatar .avatar,.card-avatar-small .card.card-avatar .avatar,.card-avatar-small .card.card-avatar .item-avatar .avatar,.card-avatar-small.card .avatar,.card-avatar-small.card .item-avatar .avatar{box-shadow:0 2px 2px 0 rgba(0,0,0,.26);height:30px!important;width:30px!important;left:5px!important}.card-avatar-small .card .card-avatar .item.item-avatar,.card-avatar-small .card .item.item-avatar,.card-avatar-small .card.card-avatar .item.item-avatar,.card-avatar-small.card .item.item-avatar{min-height:25px!important;padding-left:42px!important}.card-avatar-small .card .card-avatar .card-footer,.card-avatar-small .card .card-footer,.card-avatar-small .card.card-avatar .card-footer,.card-avatar-small.card .card-footer{padding-top:0;padding-left:42px!important}.gallery .card-gallery,.gallery .card.card-gallery{margin-bottom:15px!important;float:left;display:block}.gallery .card-gallery img,.gallery .card.card-gallery img{max-height:150px}.gallery .card-gallery-new{max-height:199px}.list .item.text-left{text-align:left!important}.list .item.large-button-bar,.list .item.text-center{text-align:center!important}.list .item.text-right{text-align:right!important}.list .item-divider.item-divider-top-border{border-top:solid 1px rgba(0,0,0,.12)}.lookupForm .list .item.item-avatar{min-height:80px!important}.lookupForm .list .item.item-avatar.item-checkbox .item-content{padding-left:47px;min-height:auto!important;height:auto!important}.fade-in{opacity:0;filter:alpha(opacity=0);-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.fade-in.on{opacity:1;filter:alpha(opacity=100);-webkit-transform:translate3d(0,0,0)}.item-avatar{min-height:80px!important}.item-avatar .item-content i.item-image:first-child,.item-avatar .item-content img.item-image:first-child,.item-avatar .item-content>i:first-child,.item-avatar .item-content>img:first-child,.item-avatar i.item-image:first-child,.item-avatar img.item-image:first-child,.item-avatar-left .item-content i.item-image:first-child,.item-avatar-left .item-content img.item-image:first-child,.item-avatar-left .item-content>i:first-child,.item-avatar-left .item-content>img:first-child,.item-avatar-left i.item-image:first-child,.item-avatar-left img.item-image:first-child,.item-avatar-left>i:first-child,.item-avatar-left>img:first-child,.item-avatar>i:first-child,.item-avatar>img:first-child{color:#D9D9D9;background-color:#f8f8f8;border:1px solid #D9D9D9;overflow:hidden!important;font-size:45px!important;line-height:56px;width:100%!important;max-height:56px!important;max-width:56px!important;top:12px!important}#menu .footer .item-avatar .item-content>.icon-help:first-child:before,#menu .footer .item-avatar .item-image.icon-help:first-child:before,#menu .footer .item-avatar.item-icon-right .icon-help:first-child:before,#menu .footer .item-avatar>.icon-help:first-child:before,.item-avatar #menu .footer .item-content>.icon-help:first-child:before,.item-avatar #menu .footer .item-image.icon-help:first-child:before,.item-avatar .icon.item-image:first-child:before,.item-avatar .item-content>.icon-alert:first-child:before,.item-avatar .item-content>.icon-help:first-child:before,.item-avatar .item-content>.icon:first-child:before,.item-avatar .item-image.icon-alert:first-child:before,.item-avatar .item-image.icon-help:first-child:before,.item-avatar.item-icon-right #menu .footer .icon-help:first-child:before,.item-avatar.item-icon-right .icon-alert:first-child:before,.item-avatar.item-icon-right .icon-help:first-child:before,.item-avatar.item-icon-right .icon:first-child:before,.item-avatar>.icon-alert:first-child:before,.item-avatar>.icon-help:first-child:before,.item-avatar>.icon:first-child:before{width:56px!important}#menu .footer .item-avatar.item-icon-right .icon-help:last-child,#menu .footer .item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right #menu .footer .icon-help:last-child,.item-avatar.item-icon-right .icon-alert:last-child,.item-avatar.item-icon-right .icon-help:last-child,.item-avatar.item-icon-right .icon:last-child,.item-avatar.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right.ink .icon.ion-ios-arrow-right,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}.item.item-icon-left>i.avatar:first-child{position:absolute;display:flex;height:100%;align-items:center;font-size:16px;left:16px;top:8px;max-height:32px;max-width:32px}.item.item-checkbox.item-avatar * .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar * .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar *>i.avatar:first-child,.item.item-checkbox.item-avatar *>i.item-image:first-child,.item.item-checkbox.item-avatar .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar>i.avatar:first-child,.item.item-checkbox.item-avatar>i.item-image:first-child{left:65px}.item.item-checkbox .item-content .item-avatar,.item.item-checkbox.item-avatar .item-content{padding-left:65px}#menu .footer .item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink .icon.ion-ios-arrow-right,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}@media screen and (max-width:767px){#menu .footer .item.item-icon-right>.icon-help:last-child,#menu .footer .item.item-icon-right>.ion-ios-arrow-right.icon-help,.item.item-icon-right>.icon-alert:last-child,.item.item-icon-right>.icon-help:last-child,.item.item-icon-right>.icon.ion-ios-arrow-right,.item.item-icon-right>.icon:last-child,.item.item-icon-right>.ion-ios-arrow-right.icon-alert,.item.item-icon-right>.ion-ios-arrow-right.icon-help{right:1px}}.item em{font-weight:700!important}@media screen and (min-width:992px){.list .item.item-border-large,.list.item-border-large .item{border-bottom:solid 1px #ccc!important}.list.item-border-large .item{margin:0}.list.item-border-large .item-divider{border-top:0}}.list .item.item-border{border-bottom:solid 1px #ccc!important}.list .item.item-small-height{padding-top:2px;padding-bottom:0;min-height:24px}.list .item.item-small-height .badge{padding-top:0!important;top:inherit}.list .item.item-small-height .badge.badge-assertive,.list .item.item-small-height .badge.badge-balanced,.list .item.item-small-height .badge.badge-calm,.list .item.item-small-height .badge.badge-editable:hover,.list .item.item-small-height .badge.badge-energized,.list .item.item-small-height .badge.badge-positive,.list .item.item-small-height .badge.badge-royal{top:1px!important;padding-top:3px!important;padding-bottom:2px!important}.form-errors:first-child{margin:5px 0}.form-errors:last-child{margin:5px 0 0}.form-error{padding:0 16px;font-size:12px;color:red;vertical-align:middle;text-align:end;top:0;position:relative}.item-input-error{border-bottom:2px solid red!important}.item-input.item-button-right input,.item-input.item-button-right textarea{margin-right:100px}.item-input.item-button-right .button,.item-input.item-button-right button{top:6px}.item-input.item-button-right.item-floating-label input,.item-input.item-button-right.item-floating-label textarea{padding-right:100px}.item-input.item-button-right.item-floating-label .button{top:inherit;bottom:6px}.item-input.item-button-right.item-floating-label .button-icon{height:inherit}.item.item-button-right .badge,.item.item-icon-right .badge{right:43px}@media screen and (max-width:767px){.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:300px!important;display:block!important}.badge:empty{display:none!important}.item .badge{right:26px!important}}.badge-editable:hover{cursor:pointer}.badge-editable:hover:before{content:" "}.platform-ipad .bar-title{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%)}.platform-ipad .bar-title .title{background-color:#fff;margin-left:0;margin-right:0;height:44px}.bar .badge-button{margin:0!important;padding:0 4px!important;font-size:10px;position:absolute!important;top:5px;right:3px}.item h2 .text-editable:hover:after,.item-button-right .item-content>.button.button-small,.item-button-right .item-content>.buttons .button-small,.item-button-right>.button.button-small,.item-button-right>.buttons .button-small{font-size:14px}.text-editable:hover{cursor:pointer}.text-editable:hover:after{content:""}.modal.modal-full-height{bottom:0}@media screen and (max-width:767px){.modal{top:0!important;left:0!important;bottom:0;min-height:100%!important;width:100%!important}}@media screen and (max-width:991px){.modal{bottom:0}.modal .swiper-pagination{visibility:hidden!important}.modal.modal-full-height{top:0}.modal.modal-full-height ion-content.keyboard-up .scroll{min-height:calc(100% + 67px)}}@media (min-width:992px){.modal.modal-full-height{min-height:80%}}.modal.about .bar.bar-header .button+.title{left:0!important}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{top:16px}.item.large-button-bar{margin-bottom:10px}.item-avatar-left-padding{padding-left:95px}.item-thumbnail-left-padding{padding-left:106px}.item-thumbnail-left,.item.item-thumbnail-left{min-height:100px!important}.item-thumbnail-left .item-content i.item-image,.item-thumbnail-left .item-content>i:first-child,.item-thumbnail-left i.item-image,.item-thumbnail-left>i:first-child{color:#D9D9D9;background-color:#f8f8f8;overflow:hidden!important;font-size:50px!important;line-height:80px;padding:0 15px;background-position:center;background-size:cover;display:inline-block}@media screen and (max-width:400px){@-ms-viewport{width:320px}.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:84px!important}.item-thumbnail-left .item-content img.item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left img.item-image,.item-thumbnail-left>img:first-child{max-width:70px;max-height:70px}.item h2{font-size:13px!important}}.item-icon-left-padding{padding-left:40px}.item-icon-right-padding{padding-right:40px}.text-keep-lines{white-space:pre-line!important}.menu.menu-left{background-color:#f5f5f5}.menu.menu-left .item{opacity:.75;color:#000}.menu.menu-left .item-button-right .item-content>.button,.menu.menu-left .item-button-right .item-content>.buttons,.menu.menu-left .item-button-right>.button,.menu.menu-left .item-button-right>.buttons{top:8px!important}.menu.menu-left .item.active{background-color:#b2e0ff!important}.menu.menu-left .item.active .item-content{background-color:transparent}.menu.menu-left .item-menu-disable{color:#444!important}@media screen and (max-width:991px){.menu.menu-left .item.item-divider{min-height:2px;height:2px;padding-top:0;padding-bottom:0}.menu.menu-left .item,.menu.menu-left .item.item-complex .item-content{height:40px;min-height:40px;padding-top:12px}.menu.menu-left .item.item-complex{padding-top:0}.menu.menu-left .item.item-button-right .button{height:30px;min-height:30px;top:4px}.menu.menu-left ion-content.has-footer{bottom:0!important}.menu.menu-left .bar-header{background-color:#1A237E;color:#fff;height:150px;padding-right:0!important}.platform-ios.platform-cordova .menu.menu-left .bar-header{height:calc(constant(safe-area-inset-top) + 150px);height:calc(env(safe-area-inset-top) + 150px)}.menu.menu-left .bar-header .hero{height:150px;box-shadow:none}.menu.menu-left .bar-header .hero .content{bottom:0}.menu.menu-left .has-header{top:150px}.platform-ios.platform-cordova .menu.menu-left .has-header{top:calc(constant(safe-area-inset-top) + 150px);top:calc(env(safe-area-inset-top) + 150px)}}@media screen and (min-width:768px){.menu.menu-left .item.item-divider{min-height:5px;height:5px}.menu.menu-left .footer a{font-size:14px!important;color:grey!important}}@media screen and (min-width:992px){.menu.menu-left{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-500px -100px;background-size:1024px 1024px;background-color:#f5f5f5;height:100%}}.certifications .item-divider .badge{top:16px!important}.certifications-lg .avatar-large{left:auto;position:relative;font-size:55px!important;height:88px;width:88px;color:#D9D9D9;background-color:#e0e0e0;border:1px solid #D9D9D9}.icon-alert,.icon-help{font-size:38px;vertical-align:middle}#menu .footer .icon-help{font-size:25px!important;position:absolute;left:12px;top:8px;z-index:99}.popover-helptip{background-color:rgba(68,68,68,.85)!important;height:auto!important}.popover-helptip .button-close{padding:8px;height:25px;font-size:18.2px}.popover-helptip a,.popover-helptip a:active,.popover-helptip a:hover{text-decoration:underline}.nobackdrop .popover-backdrop.active{background-color:transparent!important}.helptip-anchor,.helptip-anchor-center,.helptip-anchor-left,.helptip-anchor-right{display:block;position:absolute;width:100%;bottom:0}.helptip-anchor-center{text-align:center}.helptip-anchor-left{text-align:left}.helptip-anchor-right{text-align:right}.helptip-anchor a:before,.helptip-anchor-center a:before,.helptip-anchor-left a:before,.helptip-anchor-right a:before{content:" "}@media (max-width:767px){.popover-helptip{width:auto}}#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-left{font-size:30px;position:relative;top:8px;left:8px}#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-right{font-size:30px;position:relative;top:8px;right:8px}#menu .footer .popover-helptip .icon-center.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon.icon-center{font-size:30px;width:100%;text-align:center;position:relative;top:8px;height:0}#menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon.icon-bottom-right{font-size:30px;position:relative;bottom:8px;right:8px}#menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon.icon-bottom-left{font-size:30px;position:relative;bottom:8px;left:8px}#menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon.icon-bottom-center{font-size:30px;position:relative;width:100%;bottom:8px;text-align:center;height:0}.popover.popover-profile{height:200px}.popover.popover-profile .avatar{height:90px;width:90px;left:20px;top:20px;border:1px solid #D9D9D9}.popover.popover-profile .bar.bar-footer{height:58px}.popover.popover-profile .bar.bar-footer .col .button{max-width:inherit;width:100%;padding:5px 0;margin:0}.popover.popover-profile .bar .button-positive,.popover.popover-profile .bar .button-text{background-color:#387ef5!important}.popover.popover-profile .bar .button-stable{color:#444!important}.bar-header .button-icon .avatar{border:1px solid #D9D9D9;height:31px;width:31px;position:relative;left:0;top:6px}.bar-header .button-icon .avatar.active{background-color:#e0e0e0}.list .badge .badge-secondary,.list .badge.badge-secondary{font-size:12px;font-style:italic;top:37px;font-weight:400!important;margin-right:0;padding-right:0}.list .item-avatar .badge.badge-avatar{position:absolute!important;left:60px!important;right:inherit!important;top:15px!important;margin:0!important;padding:0 4px!important;font-size:10px}.popover.popover-login-methods{height:280px;width:290px}.popover.popover-login-methods.auth{height:204px}@media (max-width:767px){.popover.popover-login-methods{height:256px}.popover.popover-login-methods.auth{height:204px}}.ion-spinner-small,.ion-spinner-small svg{height:14px;width:14px}.ion-es-user-api:before{content:url(../img/logo.small.cs.dune.svg)}.ion-bma-tor-api:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATEAYAAAChBNO0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAB3lJREFUWMPNmGtUVNcVx/93mBlmgEGeAyhYUoSERhmM9ZHSCL4AqURFEmSBEZOgWGqh0pqYNkREiIlxxSXqYpUoJhqVRWJ41tooKNYIGR8R8QlKAsj7PQ9k7tx7++Gc6VpQnctK4lo9X35zz+x79v7vM2fffYfB/8lYty4iIjFx/Oz0TEJpD2HTLwj1RmqwvbDw9OmjR3+8XylxHPBPcuk1QucbKIUn3GeZ/45eJlCWEfJfEJp3Ew6qqIADhNw3lsDHCrf1I9SMEi6XERpOEV7YRLn950q8lODUfcLJWVRIpkgCLGMG5S5q/kfKRXR+D0H7TSrIhfD2+B33JUiII0xZR6i4QljwiLC23HLDT915y2BIIIKY0J84DFsII/5NePHS2O9dqdDT8YTBdOezUwlzHxKyOT+XcMuQUCY93QQwv6TudkAKbygBhKAEMZMiuA7uGtc601HIETYL259loYASikNbif2uWU9LuGXQI2CqI5Q/rQw4Uvq6/86rUq0DpB9KG2xWrmzybvMt8FFnyBvmX6m5sbN/qiFT3294Pq9HUi1RSq4YE3+s8McXVUkela0g5BxoAr5MJgycR8i8Q+OmP1nfY3S+zbrbrgrKNdQ+gPDBNcIWvxFvw7GRBkChV+bbajvbg34951pwcYDUrDLfM2fZpGtrapK/XR1ikLCSQxKPG/8VIpaIxwv2CSNcyRH+ZgehcwFhz1l6BJLoDi2IIgwtpsvSwAevWxcu+BBmLiZ8iZ7d0BrC+C19tl2He9f+cKcitXhhaar8kGyJ/Dl5+txbihi7EuV+mZ1sozxavt9mhcQoiZTIVx3Hi1iE36pN1gU+aX6BPWHpAsI9VHBcJ2F4NGFCNWN9wUBavM7fInQvx2MHq6WZbiGsjL3N1JfdqgDWx2ZoNu4FKtnil8oLnhkMUsz+SPPu1mURbas+XuqX+KW7ndc2dYVS3Tjjps89CVA+fGxJaTY/YDira9GvO/cv5gFjwzx8fwNZt9qbkLv5+DiC/k5Y/AFhQBNEhsT613wppVnkF0AbE65EOCDkCHnAkYozyuNNQM2bpz87lxKuXey/PDo8unRnkmt66xs+yYemF866PENQqtllplzWH5g27Vce/ksBzRtzZJp7EmfhIr9X+HphHBgwYIrayfoZ9GlgmzXWv00rYZr/RIVPNAGhlG+JrEMbFcFTtlwmk20Gco9t/ir76gtVizetKAnPP1ATv3BDbYJqxvsqT6cwx2z4DysHzw7nA85rXZ2d2wAunq3mQgDNxrlzZnYBCg+7VMVqAJ8Je4VCFzuyflY9YcpHY917ORGGFU1MthBLqJOLJEAIox/iRVbsoPaOB9dUag4XSouDN80Nmdm/9fXIPaviohr8NhtN+lhjEcDam15kWwCPbVNe8wwFdMuH5uk6AVOaKce0CFAE2mUpUwHVQadGRwdA8BZG4GZxo6C1Jo2eZb+phPafEqpU1sM0BBK+R/uMcEYkAaiiwr4RsRsFBw4cfz6mbl7wy/y0Rv/h5+UB3qGZ/B4hht8B8LuFFfx2wCXHLcXFFeg/2VPcNxlQJtg/tDsOyJbKOGkqYC5idWwuYDNV8pZEAwiXUPW/3n19CWfT2oRXCSRfWQ/zPu0r9tNOs9YkloA+ygEROw5deIhOYZFdmMOAfZ7DC47tzsGT4pS8/s7QXf0WwKnTJdc5BeiWd6R0xQIOMY7xqn8A8lrbM/IRgPFkIphngJFso/ej+QDrZYpihwDmbWYX87fx7phuwilrqfA/j92wJ+5TCSGrscyIJeA8ZZ2I3SBsoYAtWvlWbhdfL+SzR9ledpugtmmXJtlwwPCRgSVDQYDiO6WXwgmQVksTpU3AUFR/xYAWQC860Qv0ft25vscDMMzXbzV0AEwxapnSJ7k10scZQ99JmG+th2mm/Y7wygQTIFgeiH8SScBtuEINN2Ztt7LjD11xP5R9H9Ho2BzedFBoFIqFemCgo8+jfw0gmybn5NHA4M6+GwM2gPRz2UaZFjCFjEaa7IG2qmbPlruA6dToSdMOAMuY1Yge7073HmE9rQ6S+TQB90X0PEf5yUQTcJiQvyxiRxsn5vfT5bMWB6X28tdwafBqRt65u6jfd+fCSMOw20Dd8BGgc1ZbZEcGwJawJnY3wDfwb/M1gL5E12B4Beha1v5x1z4AznCHCwAj9DCO91dOH3PafYRS+pbJXBDZKNqvWIq2aAK412gCSq3bWYoQ79K/t/uDPjNwVXpReznt875qTWXOWb+c9d+nNYU2pw/trw/QFlwvA/rcux/1vQv0xHfoesqgbyy6mX33HfT2nux8tccOECqFE0IZADd4wp1LosLpa/ZfHQhN9H8MNNONyLUeJm9L7dSWGan1G4y0pexeRTg5nS5Eqyi6CPrpe/yQgpkpeZMJwRlV3aRc1WyTtEpdrj0z5cMSvXF4jc7jtp9tgCJfEb+p9Eaydsn183OTZa/Lm2VHld2tUQ8+bY2Gg+nEaORooPkE8xfGh6lt3EAaoSO0un9Ci1xPztg4hxtpnLQfcaA1QaBHhKH/U7Q/S8g6We78Dzmv92D5rFiKAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTE0VDExOjU4OjIwKzA1OjAwUOI3hwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0xNFQxMTo1ODoyMCswNTowMCG/jzsAAAAvdEVYdHN2Zzpjb21tZW50AD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/5MH3awAAAABJRU5ErkJggg==)}.row-header{border-bottom:solid 1px #ccc!important;margin:0;min-height:28px!important}.col-header{text-align:center;display:block!important}.col-15{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:15%}.col-border-left{border-left:solid 1px #ccc!important}.col-border-right{border-right:solid 1px #ccc!important}.ion-spinner-small{line-height:14px;margin:0;padding:0}.icon-secondary{position:absolute;height:100%;display:flex;align-items:center;font-size:16px;left:25px;top:-7px}div[dropzone]{border:2px dashed #bbb;border-radius:5px;padding:15px;text-align:center;font:20pt 700;color:#bbb;margin-bottom:20px;cursor:pointer}div[dropzone] .item,div[dropzone] .list .item{text-align:left}div[dropzone]:hover{background-color:#f2f2f2}.button-fab-hero.button-fab-top-left,.button-fab-hero.button-fab-top-right,.hero .button-fab-top-left,.hero .button-fab-top-right{top:170px!important}.bar .button.button-fab.mini,.button.button-fab.mini{min-width:40px;min-height:40px}.button-fab-hero.button-fab-top-left.mini,.button-fab-hero.button-fab-top-right.mini,.hero .button-fab-top-left.mini,.hero .button-fab-top-right.mini{top:178px!important}.text-no-transform{text-transform:inherit}.button-icon-event,.item-icon-event{text-transform:inherit;pointer-events:none!important}#menu .footer .button-icon-event .icon-help,#menu .footer .item-icon-event .icon-help,.button-icon-event #menu .footer .icon-help,.button-icon-event .icon,.button-icon-event .icon-alert,.button-icon-event .icon-event,.button-icon-event .icon-help,.item-icon-event #menu .footer .icon-help,.item-icon-event .icon,.item-icon-event .icon-alert,.item-icon-event .icon-event,.item-icon-event .icon-help{pointer-events:all!important}.hero.dark-100-bg{background-color:#555}.hero.positive-900-bg{background-color:#1A237E!important}.hero.stable-bg{background-color:#f8f8f8!important}.popover-locked-outputs .item .badge{right:16px!important}.animate-show-hide.ng-hide{opacity:0}.animate-show-hide.ng-hide-add,.animate-show-hide.ng-hide-remove{transition:all linear .3s}.modal iframe.iframe-license{width:100%;height:calc(100% - 171px)!important}@media screen and (max-width:767px){.modal iframe.iframe-license{height:calc(100% - 104px)}.modal.modal-help .row .col:first-child{font-weight:700}.modal.modal-help h2{padding-left:10px}}@media screen and (min-width:768px) and (max-width:991px) and (min-height:600px){.modal iframe.iframe-license{height:calc(100% - 171px)}}@media screen and (min-width:992px){.modal iframe.iframe-license{height:calc(100% - 171px)}.modal.modal-license iframe.iframe-license{height:calc(100% - 111px)!important}}.modal.modal-help .row.selected .col:first-child{font-weight:700}.modal.modal-login .item.item-icon-right.item-text-wrap .item-content{margin-right:58px;text-overflow:ellipsis;overflow:hidden}.popover-locales{height:284px;width:200px}.popover-locales .item{height:48px}.buttons-tabs{display:block;height:57px;border:0;padding:16px 16px 0;overflow:hidden}.buttons-tabs .button.button-tab:first-child{border-top-left-radius:15px}.buttons-tabs .button.button-tab:last-child{border-top-right-radius:15px}.buttons-tabs .button.button-tab.active{background-color:#b2e0ff}.buttons-tabs.border-bottom{border-bottom:solid 1px #ccc!important}@media screen and (max-width:767px){.buttons-tabs{padding:10px 10px 0}.buttons-tabs .button.button-tab{padding:2px 10px 0!important}} \ No newline at end of file +@charset "UTF-8";/*! + Ionicons, v2.0.1 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/benjsperry https://twitter.com/ionicframework + MIT License: https://github.com/ionic-team/ionicons + + Android-style icons originally built by Google’s + Material Design Icons: https://github.com/google/material-design-icons + used under CC BY http://creativecommons.org/licenses/by/4.0/ + Modified icons to fit ionicon’s grid from original. +*/@font-face{font-family:Ionicons;src:url(../lib/ionic/fonts/ionicons.eot?v=2.0.1);src:url(../lib/ionic/fonts/ionicons.eot?v=2.0.1#iefix) format("embedded-opentype"),url(../lib/ionic/fonts/ionicons.ttf?v=2.0.1) format("truetype"),url(../lib/ionic/fonts/ionicons.woff?v=2.0.1) format("woff"),url(../lib/ionic/fonts/ionicons.woff) format("woff"),url(../lib/ionic/fonts/ionicons.svg?v=2.0.1#Ionicons) format("svg");font-weight:400;font-style:normal}#menu .footer .icon-help:before,.badge-editable:hover:before,.icon-alert:before,.icon-help:before,.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-circle:before,.ion-android-add:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-cloud:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done-all:before,.ion-android-done:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite-outline:before,.ion-android-favorite:before,.ion-android-film:before,.ion-android-folder-open:before,.ion-android-folder:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone-off:before,.ion-android-microphone:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-notifications:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person-add:before,.ion-android-person:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove-circle:before,.ion-android-remove:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share-alt:before,.ion-android-share:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace-outline:before,.ion-backspace:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email-unread:before,.ion-email:before,.ion-erlenmeyer-flask-bubbles:before,.ion-erlenmeyer-flask:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy-outline:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios-alarm-outline:before,.ion-ios-alarm:before,.ion-ios-albums-outline:before,.ion-ios-albums:before,.ion-ios-americanfootball-outline:before,.ion-ios-americanfootball:before,.ion-ios-analytics-outline:before,.ion-ios-analytics:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at-outline:before,.ion-ios-at:before,.ion-ios-barcode-outline:before,.ion-ios-barcode:before,.ion-ios-baseball-outline:before,.ion-ios-baseball:before,.ion-ios-basketball-outline:before,.ion-ios-basketball:before,.ion-ios-bell-outline:before,.ion-ios-bell:before,.ion-ios-body-outline:before,.ion-ios-body:before,.ion-ios-bolt-outline:before,.ion-ios-bolt:before,.ion-ios-book-outline:before,.ion-ios-book:before,.ion-ios-bookmarks-outline:before,.ion-ios-bookmarks:before,.ion-ios-box-outline:before,.ion-ios-box:before,.ion-ios-briefcase-outline:before,.ion-ios-briefcase:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-calculator-outline:before,.ion-ios-calculator:before,.ion-ios-calendar-outline:before,.ion-ios-calendar:before,.ion-ios-camera-outline:before,.ion-ios-camera:before,.ion-ios-cart-outline:before,.ion-ios-cart:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatbubble-outline:before,.ion-ios-chatbubble:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-checkmark:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock-outline:before,.ion-ios-clock:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-close:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-outline:before,.ion-ios-cloudy:before,.ion-ios-cog-outline:before,.ion-ios-cog:before,.ion-ios-color-filter-outline:before,.ion-ios-color-filter:before,.ion-ios-color-wand-outline:before,.ion-ios-color-wand:before,.ion-ios-compose-outline:before,.ion-ios-compose:before,.ion-ios-contact-outline:before,.ion-ios-contact:before,.ion-ios-copy-outline:before,.ion-ios-copy:before,.ion-ios-crop-strong:before,.ion-ios-crop:before,.ion-ios-download-outline:before,.ion-ios-download:before,.ion-ios-drag:before,.ion-ios-email-outline:before,.ion-ios-email:before,.ion-ios-eye-outline:before,.ion-ios-eye:before,.ion-ios-fastforward-outline:before,.ion-ios-fastforward:before,.ion-ios-filing-outline:before,.ion-ios-filing:before,.ion-ios-film-outline:before,.ion-ios-film:before,.ion-ios-flag-outline:before,.ion-ios-flag:before,.ion-ios-flame-outline:before,.ion-ios-flame:before,.ion-ios-flask-outline:before,.ion-ios-flask:before,.ion-ios-flower-outline:before,.ion-ios-flower:before,.ion-ios-folder-outline:before,.ion-ios-folder:before,.ion-ios-football-outline:before,.ion-ios-football:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-b-outline:before,.ion-ios-game-controller-b:before,.ion-ios-gear-outline:before,.ion-ios-gear:before,.ion-ios-glasses-outline:before,.ion-ios-glasses:before,.ion-ios-grid-view-outline:before,.ion-ios-grid-view:before,.ion-ios-heart-outline:before,.ion-ios-heart:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-help:before,.ion-ios-home-outline:before,.ion-ios-home:before,.ion-ios-infinite-outline:before,.ion-ios-infinite:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-information:before,.ion-ios-ionic-outline:before,.ion-ios-keypad-outline:before,.ion-ios-keypad:before,.ion-ios-lightbulb-outline:before,.ion-ios-lightbulb:before,.ion-ios-list-outline:before,.ion-ios-list:before,.ion-ios-location-outline:before,.ion-ios-location:before,.ion-ios-locked-outline:before,.ion-ios-locked:before,.ion-ios-loop-strong:before,.ion-ios-loop:before,.ion-ios-medical-outline:before,.ion-ios-medical:before,.ion-ios-medkit-outline:before,.ion-ios-medkit:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-mic:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-minus:before,.ion-ios-monitor-outline:before,.ion-ios-monitor:before,.ion-ios-moon-outline:before,.ion-ios-moon:before,.ion-ios-more-outline:before,.ion-ios-more:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate-outline:before,.ion-ios-navigate:before,.ion-ios-nutrition-outline:before,.ion-ios-nutrition:before,.ion-ios-paper-outline:before,.ion-ios-paper:before,.ion-ios-paperplane-outline:before,.ion-ios-paperplane:before,.ion-ios-partlysunny-outline:before,.ion-ios-partlysunny:before,.ion-ios-pause-outline:before,.ion-ios-pause:before,.ion-ios-paw-outline:before,.ion-ios-paw:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-person:before,.ion-ios-personadd-outline:before,.ion-ios-personadd:before,.ion-ios-photos-outline:before,.ion-ios-photos:before,.ion-ios-pie-outline:before,.ion-ios-pie:before,.ion-ios-pint-outline:before,.ion-ios-pint:before,.ion-ios-play-outline:before,.ion-ios-play:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-plus:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetags-outline:before,.ion-ios-pricetags:before,.ion-ios-printer-outline:before,.ion-ios-printer:before,.ion-ios-pulse-strong:before,.ion-ios-pulse:before,.ion-ios-rainy-outline:before,.ion-ios-rainy:before,.ion-ios-recording-outline:before,.ion-ios-recording:before,.ion-ios-redo-outline:before,.ion-ios-redo:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-refresh:before,.ion-ios-reload:before,.ion-ios-reverse-camera-outline:before,.ion-ios-reverse-camera:before,.ion-ios-rewind-outline:before,.ion-ios-rewind:before,.ion-ios-rose-outline:before,.ion-ios-rose:before,.ion-ios-search-strong:before,.ion-ios-search:before,.ion-ios-settings-strong:before,.ion-ios-settings:before,.ion-ios-shuffle-strong:before,.ion-ios-shuffle:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipbackward:before,.ion-ios-skipforward-outline:before,.ion-ios-skipforward:before,.ion-ios-snowy:before,.ion-ios-speedometer-outline:before,.ion-ios-speedometer:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-star:before,.ion-ios-stopwatch-outline:before,.ion-ios-stopwatch:before,.ion-ios-sunny-outline:before,.ion-ios-sunny:before,.ion-ios-telephone-outline:before,.ion-ios-telephone:before,.ion-ios-tennisball-outline:before,.ion-ios-tennisball:before,.ion-ios-thunderstorm-outline:before,.ion-ios-thunderstorm:before,.ion-ios-time-outline:before,.ion-ios-time:before,.ion-ios-timer-outline:before,.ion-ios-timer:before,.ion-ios-toggle-outline:before,.ion-ios-toggle:before,.ion-ios-trash-outline:before,.ion-ios-trash:before,.ion-ios-undo-outline:before,.ion-ios-undo:before,.ion-ios-unlocked-outline:before,.ion-ios-unlocked:before,.ion-ios-upload-outline:before,.ion-ios-upload:before,.ion-ios-videocam-outline:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass-outline:before,.ion-ios-wineglass:before,.ion-ios-world-outline:before,.ion-ios-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad-outline:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-angular-outline:before,.ion-social-angular:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-chrome-outline:before,.ion-social-chrome:before,.ion-social-codepen-outline:before,.ion-social-codepen:before,.ion-social-css3-outline:before,.ion-social-css3:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-euro-outline:before,.ion-social-euro:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-html5-outline:before,.ion-social-html5:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-javascript-outline:before,.ion-social-javascript:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-python:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-sass:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-snapchat-outline:before,.ion-social-snapchat:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitch-outline:before,.ion-social-twitch:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-whatsapp-outline:before,.ion-social-whatsapp:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-yen-outline:before,.ion-social-yen:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-soup-can-outline:before,.ion-soup-can:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt-outline:before,.ion-tshirt:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons,.text-editable:hover:after{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"ï„"}.ion-alert-circled:before{content:"ï„€"}.ion-android-add:before{content:""}.ion-android-add-circle:before{content:"ï™"}.ion-android-alarm-clock:before{content:"ïš"}.icon-alert:before,.ion-android-alert:before{content:"ï›"}.ion-android-apps:before{content:"ïœ"}.ion-android-archive:before{content:""}.ion-android-arrow-back:before{content:""}.ion-android-arrow-down:before{content:"ï"}.ion-android-arrow-dropdown:before{content:"ïŸ"}.ion-android-arrow-dropdown-circle:before{content:"ïž"}.ion-android-arrow-dropleft:before{content:"ï¡"}.ion-android-arrow-dropleft-circle:before{content:"ï "}.ion-android-arrow-dropright:before{content:"ï£"}.ion-android-arrow-dropright-circle:before{content:"ï¢"}.ion-android-arrow-dropup:before{content:"ï¥"}.ion-android-arrow-dropup-circle:before{content:"ï¤"}.ion-android-arrow-forward:before{content:"ïŒ"}.ion-android-arrow-up:before{content:"ï¦"}.ion-android-attach:before{content:"ï§"}.ion-android-bar:before{content:"ï¨"}.ion-android-bicycle:before{content:"ï©"}.ion-android-boat:before{content:"ïª"}.ion-android-bookmark:before{content:"ï«"}.ion-android-bulb:before{content:"ï¬"}.ion-android-bus:before{content:"ï"}.ion-android-calendar:before{content:"ï‹‘"}.ion-android-call:before{content:"ï‹’"}.ion-android-camera:before{content:"ï‹“"}.ion-android-cancel:before{content:"ï®"}.ion-android-car:before{content:"ï¯"}.ion-android-cart:before{content:"ï°"}.ion-android-chat:before{content:"ï‹”"}.ion-android-checkbox:before{content:"ï´"}.ion-android-checkbox-blank:before{content:"ï±"}.ion-android-checkbox-outline:before{content:"ï³"}.ion-android-checkbox-outline-blank:before{content:"ï²"}.ion-android-checkmark-circle:before{content:"ïµ"}.ion-android-clipboard:before{content:"ï¶"}.ion-android-close:before{content:"ï‹—"}.ion-android-cloud:before{content:"ïº"}.ion-android-cloud-circle:before{content:"ï·"}.ion-android-cloud-done:before{content:"ï¸"}.ion-android-cloud-outline:before{content:"ï¹"}.ion-android-color-palette:before{content:"ï»"}.ion-android-compass:before{content:"ï¼"}.ion-android-contact:before{content:""}.ion-android-contacts:before{content:"ï‹™"}.ion-android-contract:before{content:"ï½"}.ion-android-create:before{content:"ï¾"}.ion-android-delete:before{content:"ï¿"}.ion-android-desktop:before{content:""}.ion-android-document:before{content:"ïŽ"}.ion-android-done:before{content:""}.ion-android-done-all:before{content:""}.ion-android-download:before{content:"ï‹"}.ion-android-drafts:before{content:""}.ion-android-exit:before{content:""}.ion-android-expand:before{content:""}.ion-android-favorite:before{content:""}.ion-android-favorite-outline:before{content:""}.ion-android-film:before{content:""}.ion-android-folder:before{content:"ï‹ "}.ion-android-folder-open:before{content:""}.ion-android-funnel:before{content:""}.ion-android-globe:before{content:""}.ion-android-hand:before{content:"ï‹£"}.ion-android-hangout:before{content:"ïŽ"}.ion-android-happy:before{content:""}.ion-android-home:before{content:"ïŽ"}.ion-android-image:before{content:""}.ion-android-laptop:before{content:"ïŽ"}.ion-android-list:before{content:""}.ion-android-locate:before{content:"ï‹©"}.ion-android-lock:before{content:""}.ion-android-mail:before{content:"ï‹«"}.ion-android-map:before{content:""}.ion-android-menu:before{content:""}.ion-android-microphone:before{content:""}.ion-android-microphone-off:before{content:""}.ion-android-more-horizontal:before{content:""}.ion-android-more-vertical:before{content:""}.ion-android-navigate:before{content:""}.ion-android-notifications:before{content:""}.ion-android-notifications-none:before{content:""}.ion-android-notifications-off:before{content:""}.ion-android-open:before{content:""}.ion-android-options:before{content:"ïŽ"}.ion-android-people:before{content:""}.ion-android-person:before{content:"ïŽ "}.ion-android-person-add:before{content:""}.ion-android-phone-landscape:before{content:""}.ion-android-phone-portrait:before{content:""}.ion-android-pin:before{content:""}.ion-android-plane:before{content:""}.ion-android-playstore:before{content:"ï‹°"}.ion-android-print:before{content:""}.ion-android-radio-button-off:before{content:""}.ion-android-radio-button-on:before{content:""}.ion-android-refresh:before{content:""}.ion-android-remove:before{content:"ï‹´"}.ion-android-remove-circle:before{content:""}.ion-android-restaurant:before{content:""}.ion-android-sad:before{content:""}.ion-android-search:before{content:""}.ion-android-send:before{content:"ï‹¶"}.ion-android-settings:before{content:"ï‹·"}.ion-android-share:before{content:""}.ion-android-share-alt:before{content:""}.ion-android-star:before{content:""}.ion-android-star-half:before{content:"ïŽ"}.ion-android-star-outline:before{content:""}.ion-android-stopwatch:before{content:""}.ion-android-subway:before{content:""}.ion-android-sunny:before{content:""}.ion-android-sync:before{content:""}.ion-android-textsms:before{content:""}.ion-android-time:before{content:""}.ion-android-train:before{content:""}.ion-android-unlock:before{content:""}.ion-android-upload:before{content:""}.ion-android-volume-down:before{content:""}.ion-android-volume-mute:before{content:""}.ion-android-volume-off:before{content:""}.ion-android-volume-up:before{content:""}.ion-android-walk:before{content:""}.ion-android-warning:before{content:""}.ion-android-watch:before{content:""}.ion-android-wifi:before{content:""}.ion-aperture:before{content:""}.ion-archive:before{content:"ï„‚"}.ion-arrow-down-a:before{content:""}.ion-arrow-down-b:before{content:"ï„„"}.ion-arrow-down-c:before{content:"ï„…"}.ion-arrow-expand:before{content:""}.ion-arrow-graph-down-left:before{content:""}.ion-arrow-graph-down-right:before{content:"ï‰ "}.ion-arrow-graph-up-left:before{content:""}.ion-arrow-graph-up-right:before{content:""}.ion-arrow-left-a:before{content:""}.ion-arrow-left-b:before{content:""}.ion-arrow-left-c:before{content:""}.ion-arrow-move:before{content:""}.ion-arrow-resize:before{content:""}.ion-arrow-return-left:before{content:""}.ion-arrow-return-right:before{content:""}.ion-arrow-right-a:before{content:""}.ion-arrow-right-b:before{content:""}.ion-arrow-right-c:before{content:"ï„‹"}.ion-arrow-shrink:before{content:""}.ion-arrow-swap:before{content:""}.ion-arrow-up-a:before{content:""}.ion-arrow-up-b:before{content:"ï„"}.ion-arrow-up-c:before{content:""}.ion-asterisk:before{content:""}.ion-at:before{content:"ï„"}.ion-backspace:before{content:""}.ion-backspace-outline:before{content:""}.ion-bag:before{content:"ï„"}.ion-battery-charging:before{content:"ï„‘"}.ion-battery-empty:before{content:"ï„’"}.ion-battery-full:before{content:"ï„“"}.ion-battery-half:before{content:"ï„”"}.ion-battery-low:before{content:"ï„•"}.ion-beaker:before{content:""}.ion-beer:before{content:""}.ion-bluetooth:before{content:"ï„–"}.ion-bonfire:before{content:""}.ion-bookmark:before{content:""}.ion-bowtie:before{content:"ï€"}.ion-briefcase:before{content:""}.ion-bug:before{content:""}.ion-calculator:before{content:"ï‰"}.ion-calendar:before{content:"ï„—"}.ion-camera:before{content:""}.ion-card:before{content:"ï„™"}.ion-cash:before{content:""}.ion-chatbox:before{content:"ï„›"}.ion-chatbox-working:before{content:""}.ion-chatboxes:before{content:""}.ion-chatbubble:before{content:""}.ion-chatbubble-working:before{content:"ï„"}.ion-chatbubbles:before{content:""}.ion-checkmark:before{content:"ï„¢"}.ion-checkmark-circled:before{content:"ï„ "}.ion-checkmark-round:before{content:"ï„¡"}.ion-chevron-down:before{content:"ï„£"}.ion-chevron-left:before{content:""}.ion-chevron-right:before{content:"ï„¥"}.ion-chevron-up:before{content:""}.ion-clipboard:before{content:"ï„§"}.ion-clock:before{content:""}.ion-close:before{content:""}.ion-close-circled:before{content:""}.ion-close-round:before{content:"ï„©"}.ion-closed-captioning:before{content:""}.ion-cloud:before{content:"ï„«"}.ion-code:before{content:""}.ion-code-download:before{content:""}.ion-code-working:before{content:""}.ion-coffee:before{content:""}.ion-compass:before{content:""}.ion-compose:before{content:""}.ion-connection-bars:before{content:""}.ion-contrast:before{content:""}.ion-crop:before{content:"ï"}.ion-cube:before{content:""}.ion-disc:before{content:"ï„"}.ion-document:before{content:""}.ion-document-text:before{content:"ï„®"}.ion-drag:before{content:"ï„°"}.ion-earth:before{content:""}.ion-easel:before{content:"ï‚"}.ion-edit:before{content:""}.ion-egg:before{content:""}.ion-eject:before{content:""}.ion-email:before{content:""}.ion-email-unread:before{content:"ïƒ"}.ion-erlenmeyer-flask:before{content:"ï…"}.ion-erlenmeyer-flask-bubbles:before{content:"ï„"}.ion-eye:before{content:""}.ion-eye-disabled:before{content:""}.ion-female:before{content:""}.ion-filing:before{content:"ï„´"}.ion-film-marker:before{content:""}.ion-fireball:before{content:""}.ion-flag:before{content:""}.ion-flame:before{content:""}.ion-flash:before{content:"ï„·"}.ion-flash-off:before{content:"ï„¶"}.ion-folder:before{content:""}.ion-fork:before{content:""}.ion-fork-repo:before{content:"ï‹€"}.ion-forward:before{content:""}.ion-funnel:before{content:""}.ion-gear-a:before{content:""}.ion-gear-b:before{content:""}.ion-grid:before{content:"ï„¿"}.ion-hammer:before{content:""}.ion-happy:before{content:""}.ion-happy-outline:before{content:"ï†"}.ion-headphone:before{content:"ï…€"}.ion-heart:before{content:"ï…"}.ion-heart-broken:before{content:"ïŒ"}.ion-help:before{content:"ï…ƒ"}.ion-help-buoy:before{content:""}.ion-help-circled:before{content:"ï…‚"}.ion-home:before{content:"ï…„"}.ion-icecream:before{content:""}.ion-image:before{content:"ï…‡"}.ion-images:before{content:"ï…ˆ"}.ion-information:before{content:"ï…Š"}.ion-information-circled:before{content:"ï…‰"}.ion-ionic:before{content:"ï…‹"}.ion-ios-alarm:before{content:"ïˆ"}.ion-ios-alarm-outline:before{content:"ï‡"}.ion-ios-albums:before{content:"ïŠ"}.ion-ios-albums-outline:before{content:"ï‰"}.ion-ios-americanfootball:before{content:"ïŒ"}.ion-ios-americanfootball-outline:before{content:"ï‹"}.ion-ios-analytics:before{content:"ïŽ"}.ion-ios-analytics-outline:before{content:"ï"}.ion-ios-arrow-back:before{content:"ï"}.ion-ios-arrow-down:before{content:"ï"}.ion-ios-arrow-forward:before{content:"ï‘"}.ion-ios-arrow-left:before{content:"ï’"}.ion-ios-arrow-right:before{content:"ï“"}.ion-ios-arrow-thin-down:before{content:"ï”"}.ion-ios-arrow-thin-left:before{content:"ï•"}.ion-ios-arrow-thin-right:before{content:"ï–"}.ion-ios-arrow-thin-up:before{content:"ï—"}.ion-ios-arrow-up:before{content:"ï˜"}.ion-ios-at:before{content:"ïš"}.ion-ios-at-outline:before{content:"ï™"}.ion-ios-barcode:before{content:"ïœ"}.ion-ios-barcode-outline:before{content:"ï›"}.ion-ios-baseball:before{content:"ïž"}.ion-ios-baseball-outline:before{content:"ï"}.ion-ios-basketball:before{content:"ï "}.ion-ios-basketball-outline:before{content:"ïŸ"}.ion-ios-bell:before{content:"ï¢"}.ion-ios-bell-outline:before{content:"ï¡"}.ion-ios-body:before{content:"ï¤"}.ion-ios-body-outline:before{content:"ï£"}.ion-ios-bolt:before{content:"ï¦"}.ion-ios-bolt-outline:before{content:"ï¥"}.ion-ios-book:before{content:"ï¨"}.ion-ios-book-outline:before{content:"ï§"}.ion-ios-bookmarks:before{content:"ïª"}.ion-ios-bookmarks-outline:before{content:"ï©"}.ion-ios-box:before{content:"ï¬"}.ion-ios-box-outline:before{content:"ï«"}.ion-ios-briefcase:before{content:"ï®"}.ion-ios-briefcase-outline:before{content:"ï"}.ion-ios-browsers:before{content:"ï°"}.ion-ios-browsers-outline:before{content:"ï¯"}.ion-ios-calculator:before{content:"ï²"}.ion-ios-calculator-outline:before{content:"ï±"}.ion-ios-calendar:before{content:"ï´"}.ion-ios-calendar-outline:before{content:"ï³"}.ion-ios-camera:before{content:"ï¶"}.ion-ios-camera-outline:before{content:"ïµ"}.ion-ios-cart:before{content:"ï¸"}.ion-ios-cart-outline:before{content:"ï·"}.ion-ios-chatboxes:before{content:"ïº"}.ion-ios-chatboxes-outline:before{content:"ï¹"}.ion-ios-chatbubble:before{content:"ï¼"}.ion-ios-chatbubble-outline:before{content:"ï»"}.ion-ios-checkmark:before{content:"ï¿"}.ion-ios-checkmark-empty:before{content:"ï½"}.ion-ios-checkmark-outline:before{content:"ï¾"}.ion-ios-circle-filled:before{content:"ï€"}.ion-ios-circle-outline:before{content:"ï"}.ion-ios-clock:before{content:"ïƒ"}.ion-ios-clock-outline:before{content:"ï‚"}.ion-ios-close:before{content:"ï†"}.ion-ios-close-empty:before{content:"ï„"}.ion-ios-close-outline:before{content:"ï…"}.ion-ios-cloud:before{content:"ïŒ"}.ion-ios-cloud-download:before{content:"ïˆ"}.ion-ios-cloud-download-outline:before{content:"ï‡"}.ion-ios-cloud-outline:before{content:"ï‰"}.ion-ios-cloud-upload:before{content:"ï‹"}.ion-ios-cloud-upload-outline:before{content:"ïŠ"}.ion-ios-cloudy:before{content:"ï"}.ion-ios-cloudy-night:before{content:"ïŽ"}.ion-ios-cloudy-night-outline:before{content:"ï"}.ion-ios-cloudy-outline:before{content:"ï"}.ion-ios-cog:before{content:"ï’"}.ion-ios-cog-outline:before{content:"ï‘"}.ion-ios-color-filter:before{content:"ï”"}.ion-ios-color-filter-outline:before{content:"ï“"}.ion-ios-color-wand:before{content:"ï–"}.ion-ios-color-wand-outline:before{content:"ï•"}.ion-ios-compose:before{content:"ï˜"}.ion-ios-compose-outline:before{content:"ï—"}.ion-ios-contact:before{content:"ïš"}.ion-ios-contact-outline:before{content:"ï™"}.ion-ios-copy:before{content:"ïœ"}.ion-ios-copy-outline:before{content:"ï›"}.ion-ios-crop:before{content:"ïž"}.ion-ios-crop-strong:before{content:"ï"}.ion-ios-download:before{content:"ï "}.ion-ios-download-outline:before{content:"ïŸ"}.ion-ios-drag:before{content:"ï¡"}.ion-ios-email:before{content:"ï£"}.ion-ios-email-outline:before{content:"ï¢"}.ion-ios-eye:before{content:"ï¥"}.ion-ios-eye-outline:before{content:"ï¤"}.ion-ios-fastforward:before{content:"ï§"}.ion-ios-fastforward-outline:before{content:"ï¦"}.ion-ios-filing:before{content:"ï©"}.ion-ios-filing-outline:before{content:"ï¨"}.ion-ios-film:before{content:"ï«"}.ion-ios-film-outline:before{content:"ïª"}.ion-ios-flag:before{content:"ï"}.ion-ios-flag-outline:before{content:"ï¬"}.ion-ios-flame:before{content:"ï¯"}.ion-ios-flame-outline:before{content:"ï®"}.ion-ios-flask:before{content:"ï±"}.ion-ios-flask-outline:before{content:"ï°"}.ion-ios-flower:before{content:"ï³"}.ion-ios-flower-outline:before{content:"ï²"}.ion-ios-folder:before{content:"ïµ"}.ion-ios-folder-outline:before{content:"ï´"}.ion-ios-football:before{content:"ï·"}.ion-ios-football-outline:before{content:"ï¶"}.ion-ios-game-controller-a:before{content:"ï¹"}.ion-ios-game-controller-a-outline:before{content:"ï¸"}.ion-ios-game-controller-b:before{content:"ï»"}.ion-ios-game-controller-b-outline:before{content:"ïº"}.ion-ios-gear:before{content:"ï½"}.ion-ios-gear-outline:before{content:"ï¼"}.ion-ios-glasses:before{content:"ï¿"}.ion-ios-glasses-outline:before{content:"ï¾"}.ion-ios-grid-view:before{content:"ï‘"}.ion-ios-grid-view-outline:before{content:"ï‘€"}.ion-ios-heart:before{content:""}.ion-ios-heart-outline:before{content:"ï‘‚"}.ion-ios-help:before{content:""}.ion-ios-help-empty:before{content:"ï‘„"}#menu .footer .icon-help:before,.icon-help:before,.ion-ios-help-outline:before{content:"ï‘…"}.ion-ios-home:before{content:""}.ion-ios-home-outline:before{content:""}.ion-ios-infinite:before{content:""}.ion-ios-infinite-outline:before{content:""}.ion-ios-information:before{content:"ï‘"}.ion-ios-information-empty:before{content:"ï‘‹"}.ion-ios-information-outline:before{content:""}.ion-ios-ionic-outline:before{content:""}.ion-ios-keypad:before{content:"ï‘"}.ion-ios-keypad-outline:before{content:"ï‘"}.ion-ios-lightbulb:before{content:"ï‘’"}.ion-ios-lightbulb-outline:before{content:"ï‘‘"}.ion-ios-list:before{content:"ï‘”"}.ion-ios-list-outline:before{content:"ï‘“"}.ion-ios-location:before{content:"ï‘–"}.ion-ios-location-outline:before{content:"ï‘•"}.ion-ios-locked:before{content:""}.ion-ios-locked-outline:before{content:"ï‘—"}.ion-ios-loop:before{content:""}.ion-ios-loop-strong:before{content:"ï‘™"}.ion-ios-medical:before{content:""}.ion-ios-medical-outline:before{content:"ï‘›"}.ion-ios-medkit:before{content:""}.ion-ios-medkit-outline:before{content:"ï‘"}.ion-ios-mic:before{content:"ï‘¡"}.ion-ios-mic-off:before{content:""}.ion-ios-mic-outline:before{content:"ï‘ "}.ion-ios-minus:before{content:""}.ion-ios-minus-empty:before{content:"ï‘¢"}.ion-ios-minus-outline:before{content:"ï‘£"}.ion-ios-monitor:before{content:""}.ion-ios-monitor-outline:before{content:"ï‘¥"}.ion-ios-moon:before{content:""}.ion-ios-moon-outline:before{content:"ï‘§"}.ion-ios-more:before{content:""}.ion-ios-more-outline:before{content:"ï‘©"}.ion-ios-musical-note:before{content:"ï‘«"}.ion-ios-musical-notes:before{content:""}.ion-ios-navigate:before{content:"ï‘®"}.ion-ios-navigate-outline:before{content:"ï‘"}.ion-ios-nutrition:before{content:"ï‘°"}.ion-ios-nutrition-outline:before{content:""}.ion-ios-paper:before{content:""}.ion-ios-paper-outline:before{content:""}.ion-ios-paperplane:before{content:"ï‘´"}.ion-ios-paperplane-outline:before{content:""}.ion-ios-partlysunny:before{content:"ï‘¶"}.ion-ios-partlysunny-outline:before{content:""}.ion-ios-pause:before{content:""}.ion-ios-pause-outline:before{content:"ï‘·"}.ion-ios-paw:before{content:""}.ion-ios-paw-outline:before{content:""}.ion-ios-people:before{content:""}.ion-ios-people-outline:before{content:"ï‘»"}.ion-ios-person:before{content:""}.ion-ios-person-outline:before{content:""}.ion-ios-personadd:before{content:"ï’€"}.ion-ios-personadd-outline:before{content:"ï‘¿"}.ion-ios-photos:before{content:"ï’‚"}.ion-ios-photos-outline:before{content:"ï’"}.ion-ios-pie:before{content:"ï’„"}.ion-ios-pie-outline:before{content:"ï’ƒ"}.ion-ios-pint:before{content:"ï’†"}.ion-ios-pint-outline:before{content:"ï’…"}.ion-ios-play:before{content:"ï’ˆ"}.ion-ios-play-outline:before{content:"ï’‡"}.ion-ios-plus:before{content:"ï’‹"}.ion-ios-plus-empty:before{content:"ï’‰"}.ion-ios-plus-outline:before{content:"ï’Š"}.ion-ios-pricetag:before{content:"ï’"}.ion-ios-pricetag-outline:before{content:"ï’Œ"}.ion-ios-pricetags:before{content:"ï’"}.ion-ios-pricetags-outline:before{content:"ï’Ž"}.ion-ios-printer:before{content:"ï’‘"}.ion-ios-printer-outline:before{content:"ï’"}.ion-ios-pulse:before{content:"ï’“"}.ion-ios-pulse-strong:before{content:"ï’’"}.ion-ios-rainy:before{content:"ï’•"}.ion-ios-rainy-outline:before{content:"ï’”"}.ion-ios-recording:before{content:"ï’—"}.ion-ios-recording-outline:before{content:"ï’–"}.ion-ios-redo:before{content:"ï’™"}.ion-ios-redo-outline:before{content:"ï’˜"}.ion-ios-refresh:before{content:"ï’œ"}.ion-ios-refresh-empty:before{content:"ï’š"}.ion-ios-refresh-outline:before{content:"ï’›"}.ion-ios-reload:before{content:"ï’"}.ion-ios-reverse-camera:before{content:"ï’Ÿ"}.ion-ios-reverse-camera-outline:before{content:"ï’ž"}.ion-ios-rewind:before{content:"ï’¡"}.ion-ios-rewind-outline:before{content:"ï’ "}.ion-ios-rose:before{content:"ï’£"}.ion-ios-rose-outline:before{content:"ï’¢"}.ion-ios-search:before{content:"ï’¥"}.ion-ios-search-strong:before{content:"ï’¤"}.ion-ios-settings:before{content:"ï’§"}.ion-ios-settings-strong:before{content:"ï’¦"}.ion-ios-shuffle:before{content:"ï’©"}.ion-ios-shuffle-strong:before{content:"ï’¨"}.ion-ios-skipbackward:before{content:"ï’«"}.ion-ios-skipbackward-outline:before{content:"ï’ª"}.ion-ios-skipforward:before{content:"ï’"}.ion-ios-skipforward-outline:before{content:"ï’¬"}.ion-ios-snowy:before{content:"ï’®"}.ion-ios-speedometer:before{content:"ï’°"}.ion-ios-speedometer-outline:before{content:"ï’¯"}.ion-ios-star:before{content:"ï’³"}.ion-ios-star-half:before{content:"ï’±"}.ion-ios-star-outline:before{content:"ï’²"}.ion-ios-stopwatch:before{content:"ï’µ"}.ion-ios-stopwatch-outline:before{content:"ï’´"}.ion-ios-sunny:before{content:"ï’·"}.ion-ios-sunny-outline:before{content:"ï’¶"}.ion-ios-telephone:before{content:"ï’¹"}.ion-ios-telephone-outline:before{content:"ï’¸"}.ion-ios-tennisball:before{content:"ï’»"}.ion-ios-tennisball-outline:before{content:"ï’º"}.ion-ios-thunderstorm:before{content:"ï’½"}.ion-ios-thunderstorm-outline:before{content:"ï’¼"}.ion-ios-time:before{content:"ï’¿"}.ion-ios-time-outline:before{content:"ï’¾"}.ion-ios-timer:before{content:"ï“"}.ion-ios-timer-outline:before{content:"ï“€"}.ion-ios-toggle:before{content:""}.ion-ios-toggle-outline:before{content:"ï“‚"}.ion-ios-trash:before{content:"ï“…"}.ion-ios-trash-outline:before{content:"ï“„"}.ion-ios-undo:before{content:""}.ion-ios-undo-outline:before{content:""}.ion-ios-unlocked:before{content:""}.ion-ios-unlocked-outline:before{content:""}.ion-ios-upload:before{content:"ï“‹"}.ion-ios-upload-outline:before{content:""}.ion-ios-videocam:before{content:"ï“"}.ion-ios-videocam-outline:before{content:""}.ion-ios-volume-high:before{content:""}.ion-ios-volume-low:before{content:"ï“"}.ion-ios-wineglass:before{content:"ï“‘"}.ion-ios-wineglass-outline:before{content:"ï“"}.ion-ios-world:before{content:"ï““"}.ion-ios-world-outline:before{content:"ï“’"}.ion-ipad:before{content:""}.ion-iphone:before{content:""}.ion-ipod:before{content:""}.ion-jet:before{content:""}.ion-key:before{content:""}.ion-knife:before{content:""}.ion-laptop:before{content:""}.ion-leaf:before{content:""}.ion-levels:before{content:""}.ion-lightbulb:before{content:""}.ion-link:before{content:""}.ion-load-a:before{content:""}.ion-load-b:before{content:""}.ion-load-c:before{content:""}.ion-load-d:before{content:"ïŠ"}.ion-location:before{content:""}.ion-lock-combination:before{content:"ï“”"}.ion-locked:before{content:""}.ion-log-in:before{content:""}.ion-log-out:before{content:""}.ion-loop:before{content:"ïˆ"}.ion-magnet:before{content:"ïŠ "}.ion-male:before{content:""}.ion-man:before{content:""}.ion-map:before{content:""}.ion-medkit:before{content:""}.ion-merge:before{content:""}.ion-mic-a:before{content:""}.ion-mic-b:before{content:""}.ion-mic-c:before{content:""}.ion-minus:before{content:""}.ion-minus-circled:before{content:""}.ion-minus-round:before{content:""}.ion-model-s:before{content:"ï‹"}.ion-monitor:before{content:""}.ion-more:before{content:""}.ion-mouse:before{content:"ï€"}.ion-music-note:before{content:""}.ion-navicon:before{content:""}.ion-navicon-round:before{content:"ïˆ"}.ion-navigate:before{content:""}.ion-network:before{content:"ï"}.ion-no-smoking:before{content:"ï‹‚"}.ion-nuclear:before{content:""}.ion-outlet:before{content:"ï‚"}.ion-paintbrush:before{content:"ï“•"}.ion-paintbucket:before{content:"ï“–"}.ion-paper-airplane:before{content:""}.ion-paperclip:before{content:"ïˆ"}.ion-pause:before{content:"ïˆ"}.ion-person:before{content:""}.ion-person-add:before{content:""}.ion-person-stalker:before{content:""}.ion-pie-graph:before{content:""}.ion-pin:before{content:""}.ion-pinpoint:before{content:""}.ion-pizza:before{content:""}.ion-plane:before{content:""}.ion-planet:before{content:"ïƒ"}.ion-play:before{content:""}.ion-playstation:before{content:""}.ion-plus:before{content:""}.ion-plus-circled:before{content:""}.ion-plus-round:before{content:""}.ion-podium:before{content:"ï„"}.ion-pound:before{content:""}.ion-power:before{content:""}.ion-pricetag:before{content:""}.ion-pricetags:before{content:""}.ion-printer:before{content:""}.ion-pull-request:before{content:"ï…"}.ion-qr-scanner:before{content:"ï†"}.ion-quote:before{content:"ï‡"}.ion-radio-waves:before{content:""}.ion-record:before{content:""}.ion-refresh:before{content:""}.ion-reply:before{content:""}.ion-reply-all:before{content:"ïˆ"}.ion-ribbon-a:before{content:"ïˆ"}.ion-ribbon-b:before{content:"ï‰"}.ion-sad:before{content:"ïŠ"}.ion-sad-outline:before{content:"ï“—"}.ion-scissors:before{content:"ï‹"}.ion-search:before{content:""}.ion-settings:before{content:"ïŠ"}.ion-share:before{content:"ïˆ "}.ion-shuffle:before{content:""}.ion-skip-backward:before{content:""}.ion-skip-forward:before{content:""}.ion-social-android:before{content:""}.ion-social-android-outline:before{content:""}.ion-social-angular:before{content:"ï“™"}.ion-social-angular-outline:before{content:""}.ion-social-apple:before{content:""}.ion-social-apple-outline:before{content:""}.ion-social-bitcoin:before{content:""}.ion-social-bitcoin-outline:before{content:""}.ion-social-buffer:before{content:""}.ion-social-buffer-outline:before{content:""}.ion-social-chrome:before{content:"ï“›"}.ion-social-chrome-outline:before{content:""}.ion-social-codepen:before{content:"ï“"}.ion-social-codepen-outline:before{content:""}.ion-social-css3:before{content:""}.ion-social-css3-outline:before{content:""}.ion-social-designernews:before{content:""}.ion-social-designernews-outline:before{content:""}.ion-social-dribbble:before{content:"ïˆ"}.ion-social-dribbble-outline:before{content:""}.ion-social-dropbox:before{content:""}.ion-social-dropbox-outline:before{content:""}.ion-social-euro:before{content:"ï“¡"}.ion-social-euro-outline:before{content:"ï“ "}.ion-social-facebook:before{content:""}.ion-social-facebook-outline:before{content:""}.ion-social-foursquare:before{content:"ï"}.ion-social-foursquare-outline:before{content:"ïŒ"}.ion-social-freebsd-devil:before{content:"ï‹„"}.ion-social-github:before{content:""}.ion-social-github-outline:before{content:""}.ion-social-google:before{content:"ï"}.ion-social-google-outline:before{content:"ïŽ"}.ion-social-googleplus:before{content:""}.ion-social-googleplus-outline:before{content:""}.ion-social-hackernews:before{content:""}.ion-social-hackernews-outline:before{content:""}.ion-social-html5:before{content:"ï“£"}.ion-social-html5-outline:before{content:"ï“¢"}.ion-social-instagram:before{content:"ï‘"}.ion-social-instagram-outline:before{content:"ï"}.ion-social-javascript:before{content:"ï“¥"}.ion-social-javascript-outline:before{content:""}.ion-social-linkedin:before{content:""}.ion-social-linkedin-outline:before{content:""}.ion-social-markdown:before{content:""}.ion-social-nodejs:before{content:"ï“§"}.ion-social-octocat:before{content:""}.ion-social-pinterest:before{content:""}.ion-social-pinterest-outline:before{content:""}.ion-social-python:before{content:"ï“©"}.ion-social-reddit:before{content:""}.ion-social-reddit-outline:before{content:""}.ion-social-rss:before{content:""}.ion-social-rss-outline:before{content:""}.ion-social-sass:before{content:""}.ion-social-skype:before{content:""}.ion-social-skype-outline:before{content:""}.ion-social-snapchat:before{content:""}.ion-social-snapchat-outline:before{content:"ï“«"}.ion-social-tumblr:before{content:"ï‰"}.ion-social-tumblr-outline:before{content:""}.ion-social-tux:before{content:"ï‹…"}.ion-social-twitch:before{content:"ï“®"}.ion-social-twitch-outline:before{content:"ï“"}.ion-social-twitter:before{content:""}.ion-social-twitter-outline:before{content:""}.ion-social-usd:before{content:"ï“"}.ion-social-usd-outline:before{content:"ï’"}.ion-social-vimeo:before{content:""}.ion-social-vimeo-outline:before{content:""}.ion-social-whatsapp:before{content:"ï“°"}.ion-social-whatsapp-outline:before{content:""}.ion-social-windows:before{content:""}.ion-social-windows-outline:before{content:""}.ion-social-wordpress:before{content:""}.ion-social-wordpress-outline:before{content:""}.ion-social-yahoo:before{content:""}.ion-social-yahoo-outline:before{content:""}.ion-social-yen:before{content:""}.ion-social-yen-outline:before{content:""}.ion-social-youtube:before{content:"ï‰"}.ion-social-youtube-outline:before{content:""}.ion-soup-can:before{content:"ï“´"}.ion-soup-can-outline:before{content:""}.ion-speakerphone:before{content:""}.ion-speedometer:before{content:""}.ion-spoon:before{content:""}.ion-star:before{content:""}.ion-stats-bars:before{content:""}.ion-steam:before{content:""}.ion-stop:before{content:"ï‰"}.ion-thermometer:before{content:""}.ion-thumbsdown:before{content:"ï‰"}.ion-thumbsup:before{content:""}.ion-toggle:before{content:"ï•"}.ion-toggle-filled:before{content:"ï”"}.ion-transgender:before{content:""}.ion-trash-a:before{content:""}.ion-trash-b:before{content:""}.ion-trophy:before{content:"ï–"}.ion-tshirt:before{content:"ï“·"}.ion-tshirt-outline:before{content:"ï“¶"}.ion-umbrella:before{content:""}.ion-university:before{content:"ï—"}.ion-unlocked:before{content:""}.ion-upload:before{content:""}.ion-usb:before{content:""}.ion-videocamera:before{content:""}.ion-volume-high:before{content:""}.ion-volume-low:before{content:""}.ion-volume-medium:before{content:""}.ion-volume-mute:before{content:""}.ion-wand:before{content:"ï˜"}.ion-waterdrop:before{content:""}.ion-wifi:before{content:""}.ion-wineglass:before{content:""}.ion-woman:before{content:"ï‰"}.ion-wrench:before{content:""}.ion-xbox:before{content:""}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;vertical-align:baseline;font:inherit;font-size:100%}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}audio:not([controls]){display:none;height:0}[hidden],template{display:none}script{display:none!important}html{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0;line-height:1}:focus,a,a:active,a:focus,a:hover,button,button:focus{outline:0}a{-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}a[href]:hover{cursor:pointer}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}code,kbd,pre,samp{font-size:1em;font-family:monospace,serif}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;vertical-align:baseline;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-size:100%;font-family:inherit;outline-offset:0;outline-style:none;outline-width:0;-webkit-font-smoothing:inherit;background-image:none}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}img{-webkit-user-drag:none}table{border-spacing:0;border-collapse:collapse}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{overflow:hidden;-ms-touch-action:pan-y;touch-action:pan-y}.ionic-body,body{-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;padding:0;color:#000;word-wrap:break-word;font-size:14px;font-family:-apple-system;font-family:"-apple-system","Helvetica Neue",Roboto,"Segoe UI",sans-serif;line-height:20px;text-rendering:optimizeLegibility;-webkit-backface-visibility:hidden;-webkit-user-drag:none;-ms-content-zooming:none}body.grade-b,body.grade-c{text-rendering:auto}.content{position:relative}.scroll-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;margin-top:-1px;padding-top:1px;margin-bottom:-1px;width:auto;height:auto}.menu .scroll-content.scroll-content-false{z-index:11}.scroll-view{position:relative;display:block;overflow:hidden;margin-top:-1px}.scroll-view.overflow-scroll{position:relative}.scroll-view.scroll-x{overflow-x:scroll;overflow-y:hidden}.scroll-view.scroll-y{overflow-x:hidden;overflow-y:scroll}.scroll-view.scroll-xy{overflow-x:scroll;overflow-y:scroll}.scroll{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-transform-origin:left top;transform-origin:left top}@-ms-viewport{width:device-width}.scroll-bar{position:absolute;z-index:9999}.ng-animate .scroll-bar{visibility:hidden}.scroll-bar-h{right:2px;bottom:3px;left:2px;height:3px}.scroll-bar-h .scroll-bar-indicator{height:100%}.scroll-bar-v{top:2px;right:3px;bottom:2px;width:3px}.scroll-bar-v .scroll-bar-indicator{width:100%}.scroll-bar-indicator{position:absolute;border-radius:4px;background:rgba(0,0,0,.3);opacity:1;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.scroll-bar-indicator.scroll-bar-fade-out{opacity:0}.platform-android .scroll-bar-indicator{border-radius:0}.grade-b .scroll-bar-indicator,.grade-c .scroll-bar-indicator{background:#aaa}.grade-b .scroll-bar-indicator.scroll-bar-fade-out,.grade-c .scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:none;transition:none}ion-infinite-scroll{height:60px;width:100%;display:block;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}#menu .footer ion-infinite-scroll .icon-help,ion-infinite-scroll #menu .footer .icon-help,ion-infinite-scroll .icon,ion-infinite-scroll .icon-alert,ion-infinite-scroll .icon-help{color:#666;font-size:30px;color:#666}#menu .footer ion-infinite-scroll:not(.active) .icon-help:before,ion-infinite-scroll:not(.active) #menu .footer .icon-help:before,ion-infinite-scroll:not(.active) .icon-alert:before,ion-infinite-scroll:not(.active) .icon-help:before,ion-infinite-scroll:not(.active) .icon:before,ion-infinite-scroll:not(.active) .spinner{display:none}.overflow-scroll{overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;top:0;right:0;bottom:0;left:0;position:absolute}.overflow-scroll.pane{overflow-x:hidden;overflow-y:scroll}.overflow-scroll .scroll{position:static;height:100%;-webkit-transform:translate3d(0,0,0)}.has-header{top:44px}.no-header{top:0}.has-subheader{top:88px}.has-tabs-top{top:93px}.has-header.has-subheader.has-tabs-top{top:137px}.has-footer{bottom:44px}.has-subfooter{bottom:88px}.bar-footer.has-tabs,.has-tabs{bottom:49px}.bar-footer.has-tabs.pane,.has-tabs.pane{bottom:49px;height:auto}.bar-subfooter.has-tabs{bottom:93px}.has-footer.has-tabs{bottom:93px}.pane{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:0;transition-duration:0;z-index:1}.view{z-index:1}.pane,.view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#fff;overflow:hidden}.view-container{position:absolute;display:block;width:100%;height:100%}p{margin:0 0 10px}small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.item.large-button-bar,.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#000;font-weight:500;font-family:"-apple-system","Helvetica Neue",Roboto,"Segoe UI",sans-serif;line-height:1.2}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1:first-child,.h2:first-child,.h3:first-child,h1:first-child,h2:first-child,h3:first-child{margin-top:0}.h1+.h1,.h1+.h2,.h1+.h3,.h1+h1,.h1+h2,.h1+h3,.h2+.h1,.h2+.h2,.h2+.h3,.h2+h1,.h2+h2,.h2+h3,.h3+.h1,.h3+.h2,.h3+.h3,.h3+h1,.h3+h2,.h3+h3,h1+.h1,h1+.h2,h1+.h3,h1+h1,h1+h2,h1+h3,h2+.h1,h2+.h2,h2+.h3,h2+h1,h2+h2,h2+h3,h3+.h1,h3+.h2,h3+.h3,h3+h1,h3+h2,h3+h3{margin-top:10px}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}dl{margin-bottom:20px}dd,dt{line-height:1.42857}dt{font-weight:700}blockquote{margin:0 0 20px;padding:10px 20px;border-left:5px solid gray}blockquote p{font-weight:300;font-size:17.5px;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857}blockquote small:before{content:'\2014 \00A0'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.42857}a{color:#387ef5}a.subdued{padding-right:10px;color:#888;text-decoration:none}a.subdued:hover{text-decoration:none}a.subdued:last-child{padding-right:0}.action-sheet-backdrop{-webkit-transition:background-color 150ms ease-in-out;transition:background-color 150ms ease-in-out;position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,0)}.action-sheet-backdrop.active{background-color:rgba(0,0,0,.4)}.action-sheet-wrapper{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:all cubic-bezier(.36,.66,.04,1) .5s;transition:all cubic-bezier(.36,.66,.04,1) .5s;position:absolute;bottom:0;left:0;right:0;width:100%;max-width:500px;margin:auto}.action-sheet-up{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.action-sheet{margin-left:8px;margin-right:8px;width:auto;z-index:11;overflow:hidden}.action-sheet .button{display:block;padding:1px;width:100%;border-radius:0;border-color:#d1d3d6;background-color:transparent;color:#007aff;font-size:21px}.action-sheet .button:hover{color:#007aff}.action-sheet .button.destructive{color:#ff3b30}.action-sheet .button.destructive:hover{color:#ff3b30}.action-sheet .button.activated,.action-sheet .button.active{box-shadow:none;border-color:#d1d3d6;color:#007aff;background:#e4e5e7}#menu .footer .action-sheet-has-icons .icon-help,.action-sheet-has-icons #menu .footer .icon-help,.action-sheet-has-icons .icon,.action-sheet-has-icons .icon-alert,.action-sheet-has-icons .icon-help{position:absolute;left:16px}.action-sheet-title{padding:16px;color:#8f8f8f;text-align:center;font-size:13px}.action-sheet-group{margin-bottom:8px;border-radius:4px;background-color:#fff;overflow:hidden}.action-sheet-group .button{border-width:1px 0 0 0}.action-sheet-group .button:first-child:last-child{border-width:0}.action-sheet-options{background:#f1f2f3}.action-sheet-cancel .button{font-weight:500}.action-sheet-open{pointer-events:none}.action-sheet-open.modal-open .modal{pointer-events:none}.action-sheet-open .action-sheet-backdrop{pointer-events:auto}.platform-android .action-sheet-backdrop.active{background-color:rgba(0,0,0,.2)}.platform-android .action-sheet{margin:0}.platform-android .action-sheet .action-sheet-title,.platform-android .action-sheet .button{text-align:left;border-color:transparent;font-size:16px;color:inherit}.platform-android .action-sheet .action-sheet-title{font-size:14px;padding:16px;color:#666}.platform-android .action-sheet .button.activated,.platform-android .action-sheet .button.active{background:#e8e8e8}.platform-android .action-sheet-group{margin:0;border-radius:0;background-color:#fafafa}.platform-android .action-sheet-cancel{display:none}.platform-android .action-sheet-has-icons .button{padding-left:56px}.backdrop{position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,.4);visibility:hidden;opacity:0;-webkit-transition:.1s opacity linear;transition:.1s opacity linear}.backdrop.visible{visibility:visible}.backdrop.active{opacity:1}.bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;right:0;left:0;z-index:9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:5px;width:100%;height:44px;border-width:0;border-style:solid;border-top:1px solid transparent;border-bottom:1px solid #ddd;background-color:#fff;background-size:0}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.bar{border:none;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);background-position:bottom;background-size:100% 1px;background-repeat:no-repeat}}.bar.bar-clear{border:none;background:0 0;color:#fff}.bar.bar-clear .button{color:#fff}.bar.bar-clear .title{color:#fff}.bar.item-input-inset .item-input-wrapper{margin-top:-1px}.bar.item-input-inset .item-input-wrapper input{padding-left:8px;width:94%;height:28px;background:0 0}.bar.bar-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.bar.bar-light .title{color:#444}.bar.bar-light.bar-footer{background-image:linear-gradient(180deg,#ddd,#ddd 50%,transparent 50%)}.bar.bar-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.bar.bar-stable .title{color:#444}.bar.bar-stable.bar-footer{background-image:linear-gradient(180deg,#b2b2b2,#b2b2b2 50%,transparent 50%)}.bar.bar-positive{border-color:#0c60ee;background-color:#387ef5;background-image:linear-gradient(0deg,#0c60ee,#0c60ee 50%,transparent 50%);color:#fff}.bar.bar-positive .title{color:#fff}.bar.bar-positive.bar-footer{background-image:linear-gradient(180deg,#0c60ee,#0c60ee 50%,transparent 50%)}.bar.bar-calm{border-color:#0a9dc7;background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9dc7,#0a9dc7 50%,transparent 50%);color:#fff}.bar.bar-calm .title{color:#fff}.bar.bar-calm.bar-footer{background-image:linear-gradient(180deg,#0a9dc7,#0a9dc7 50%,transparent 50%)}.bar.bar-assertive{border-color:#e42112;background-color:#ef473a;background-image:linear-gradient(0deg,#e42112,#e42112 50%,transparent 50%);color:#fff}.bar.bar-assertive .title{color:#fff}.bar.bar-assertive.bar-footer{background-image:linear-gradient(180deg,#e42112,#e42112 50%,transparent 50%)}.bar.bar-balanced{border-color:#28a54c;background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);color:#fff}.bar.bar-balanced .title{color:#fff}.bar.bar-balanced.bar-footer{background-image:linear-gradient(180deg,#28a54c,#28a54c 50%,transparent 50%)}.bar.bar-energized{border-color:#e6b500;background-color:#ffc900;background-image:linear-gradient(0deg,#e6b500,#e6b500 50%,transparent 50%);color:#fff}.bar.bar-energized .title{color:#fff}.bar.bar-energized.bar-footer{background-image:linear-gradient(180deg,#e6b500,#e6b500 50%,transparent 50%)}.bar.bar-royal{border-color:#6b46e5;background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);color:#fff}.bar.bar-royal .title{color:#fff}.bar.bar-royal.bar-footer{background-image:linear-gradient(180deg,#6b46e5,#6b46e5 50%,transparent 50%)}.bar.bar-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.bar.bar-dark .title{color:#fff}.bar.bar-dark.bar-footer{background-image:linear-gradient(180deg,#111,#111 50%,transparent 50%)}.bar .title{display:block;position:absolute;top:0;right:0;left:0;z-index:0;overflow:hidden;margin:0 10px;min-width:30px;height:43px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:500;line-height:44px}.bar .title.title-left{text-align:left}.bar .title.title-right{text-align:right}.bar .title a{color:inherit}.bar .button,.bar button{z-index:1;padding:0 8px;min-width:initial;min-height:31px;font-weight:400;font-size:13px;line-height:32px}#menu .footer .bar .button .icon-help:before,#menu .footer .bar .button.icon-help:before,#menu .footer .bar button .icon-help:before,#menu .footer .bar button.icon-help:before,.bar #menu .footer .button.icon-help:before,.bar #menu .footer button.icon-help:before,.bar .button #menu .footer .icon-help:before,.bar .button .icon-alert:before,.bar .button .icon-help:before,.bar .button .icon:before,.bar .button.button-icon:before,.bar .button.icon-alert:before,.bar .button.icon-help:before,.bar .button.icon-left:before,.bar .button.icon-right:before,.bar .button.icon:before,.bar button #menu .footer .icon-help:before,.bar button .icon-alert:before,.bar button .icon-help:before,.bar button .icon:before,.bar button.button-icon:before,.bar button.icon-alert:before,.bar button.icon-help:before,.bar button.icon-left:before,.bar button.icon-right:before,.bar button.icon:before{padding-right:2px;padding-left:2px;font-size:20px;line-height:32px}.bar .button.button-icon,.bar button.button-icon{font-size:17px}#menu .footer .bar .button.button-icon .icon-help:before,#menu .footer .bar button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before,.bar button.button-icon #menu .footer .icon-help:before,.bar button.button-icon .icon-alert:before,.bar button.button-icon .icon-help:before,.bar button.button-icon .icon:before,.bar button.button-icon.icon-left:before,.bar button.button-icon.icon-right:before,.bar button.button-icon:before{vertical-align:top;font-size:32px;line-height:32px}.bar .button.button-clear,.bar .button.button-text,.bar button.button-clear,.bar button.button-text{padding-right:2px;padding-left:2px;font-weight:300;font-size:17px}#menu .footer .bar .button.button-clear .icon-help:before,#menu .footer .bar .button.button-clear.icon-help:before,#menu .footer .bar .button.button-text .icon-help:before,#menu .footer .bar .button.button-text.icon-help:before,#menu .footer .bar button.button-clear .icon-help:before,#menu .footer .bar button.button-clear.icon-help:before,#menu .footer .bar button.button-text .icon-help:before,#menu .footer .bar button.button-text.icon-help:before,.bar #menu .footer .button.button-clear.icon-help:before,.bar #menu .footer .button.button-text.icon-help:before,.bar #menu .footer button.button-clear.icon-help:before,.bar #menu .footer button.button-text.icon-help:before,.bar .button.button-clear #menu .footer .icon-help:before,.bar .button.button-clear .icon-alert:before,.bar .button.button-clear .icon-help:before,.bar .button.button-clear .icon:before,.bar .button.button-clear.icon-alert:before,.bar .button.button-clear.icon-help:before,.bar .button.button-clear.icon-left:before,.bar .button.button-clear.icon-right:before,.bar .button.button-clear.icon:before,.bar .button.button-text #menu .footer .icon-help:before,.bar .button.button-text .icon-alert:before,.bar .button.button-text .icon-help:before,.bar .button.button-text .icon:before,.bar .button.button-text.icon-alert:before,.bar .button.button-text.icon-help:before,.bar .button.icon-left.button-text:before,.bar .button.icon-right.button-text:before,.bar .button.icon.button-text:before,.bar button.button-clear #menu .footer .icon-help:before,.bar button.button-clear .icon-alert:before,.bar button.button-clear .icon-help:before,.bar button.button-clear .icon:before,.bar button.button-clear.icon-alert:before,.bar button.button-clear.icon-help:before,.bar button.button-clear.icon-left:before,.bar button.button-clear.icon-right:before,.bar button.button-clear.icon:before,.bar button.button-text #menu .footer .icon-help:before,.bar button.button-text .icon-alert:before,.bar button.button-text .icon-help:before,.bar button.button-text .icon:before,.bar button.button-text.icon-alert:before,.bar button.button-text.icon-help:before,.bar button.icon-left.button-text:before,.bar button.icon-right.button-text:before,.bar button.icon.button-text:before{font-size:32px;line-height:32px}.bar .button.back-button,.bar button.back-button{display:block;margin-right:5px;padding:0;white-space:nowrap;font-weight:400}.bar .button.back-button.activated,.bar .button.back-button.active,.bar button.back-button.activated,.bar button.back-button.active{opacity:.2}.bar .button-bar>.button,.bar .buttons>.button{min-height:31px;line-height:32px}.bar .button+.button-bar,.bar .button-bar+.button{margin-left:5px}.bar .buttons,.bar .buttons.primary-buttons,.bar .buttons.secondary-buttons{display:inherit}.bar .buttons span{display:inline-block}.bar .buttons-left span{margin-right:5px;display:inherit}.bar .buttons-right span{margin-left:5px;display:inherit}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{position:absolute;top:5px;right:5px;bottom:5px}.platform-android .nav-bar-has-subheader .bar{background-image:none}#menu .footer .platform-android .bar .back-button .icon-help:before,.platform-android .bar .back-button #menu .footer .icon-help:before,.platform-android .bar .back-button .icon-alert:before,.platform-android .bar .back-button .icon-help:before,.platform-android .bar .back-button .icon:before{font-size:24px}.platform-android .bar .title{font-size:19px;line-height:44px}.bar-light .button{border-color:#ddd;background-color:#fff;color:#444}.bar-light .button:hover{color:#444;text-decoration:none}.bar-light .button.activated,.bar-light .button.active{border-color:#ccc;background-color:#fafafa}.bar-light .button.button-clear,.bar-light .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-light .button.button-icon{border-color:transparent;background:0 0}.bar-stable .button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.bar-stable .button:hover{color:#444;text-decoration:none}.bar-stable .button.activated,.bar-stable .button.active{border-color:#a2a2a2;background-color:#e5e5e5}.bar-stable .button.button-clear,.bar-stable .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-stable .button.button-icon{border-color:transparent;background:0 0}.bar-positive .button{border-color:#0c60ee;background-color:#387ef5;color:#fff}.bar-positive .button:hover{color:#fff;text-decoration:none}.bar-positive .button.activated,.bar-positive .button.active{border-color:#0c60ee;background-color:#0c60ee}.bar-positive .button.button-clear,.bar-positive .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-positive .button.button-icon{border-color:transparent;background:0 0}.bar-calm .button{border-color:#0a9dc7;background-color:#11c1f3;color:#fff}.bar-calm .button:hover{color:#fff;text-decoration:none}.bar-calm .button.activated,.bar-calm .button.active{border-color:#0a9dc7;background-color:#0a9dc7}.bar-calm .button.button-clear,.bar-calm .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-calm .button.button-icon{border-color:transparent;background:0 0}.bar-assertive .button{border-color:#e42112;background-color:#ef473a;color:#fff}.bar-assertive .button:hover{color:#fff;text-decoration:none}.bar-assertive .button.activated,.bar-assertive .button.active{border-color:#e42112;background-color:#e42112}.bar-assertive .button.button-clear,.bar-assertive .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-assertive .button.button-icon{border-color:transparent;background:0 0}.bar-balanced .button{border-color:#28a54c;background-color:#33cd5f;color:#fff}.bar-balanced .button:hover{color:#fff;text-decoration:none}.bar-balanced .button.activated,.bar-balanced .button.active{border-color:#28a54c;background-color:#28a54c}.bar-balanced .button.button-clear,.bar-balanced .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-balanced .button.button-icon{border-color:transparent;background:0 0}.bar-energized .button{border-color:#e6b500;background-color:#ffc900;color:#fff}.bar-energized .button:hover{color:#fff;text-decoration:none}.bar-energized .button.activated,.bar-energized .button.active{border-color:#e6b500;background-color:#e6b500}.bar-energized .button.button-clear,.bar-energized .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-energized .button.button-icon{border-color:transparent;background:0 0}.bar-royal .button{border-color:#6b46e5;background-color:#886aea;color:#fff}.bar-royal .button:hover{color:#fff;text-decoration:none}.bar-royal .button.activated,.bar-royal .button.active{border-color:#6b46e5;background-color:#6b46e5}.bar-royal .button.button-clear,.bar-royal .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-royal .button.button-icon{border-color:transparent;background:0 0}.bar-dark .button{border-color:#111;background-color:#444;color:#fff}.bar-dark .button:hover{color:#fff;text-decoration:none}.bar-dark .button.activated,.bar-dark .button.active{border-color:#000;background-color:#262626}.bar-dark .button.button-clear,.bar-dark .button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-dark .button.button-icon{border-color:transparent;background:0 0}.bar-header{top:0;border-top-width:0;border-bottom-width:1px}.bar-header.has-tabs-top{border-bottom-width:0;background-image:none}.tabs-top .bar-header{border-bottom-width:0;background-image:none}.bar-footer{bottom:0;border-top-width:1px;border-bottom-width:0;background-position:top;height:44px}.bar-footer.item-input-inset{position:absolute}.bar-footer .title{height:43px;line-height:44px}.bar-tabs{padding:0}.bar-subheader{top:44px;height:44px}.bar-subheader .title{height:43px;line-height:44px}.bar-subfooter{bottom:44px;height:44px}.bar-subfooter .title{height:43px;line-height:44px}.nav-bar-block{position:absolute;top:0;right:0;left:0;z-index:9}.bar .back-button.hide,.bar .buttons .hide{display:none}.nav-bar-tabs-top .bar{background-image:none}.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:horizontal;-moz-flex-direction:horizontal;-ms-flex-direction:horizontal;flex-direction:horizontal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444;position:absolute;bottom:0;z-index:5;width:100%;height:49px;border-style:solid;border-top-width:1px;background-size:0;line-height:49px}.tabs .tab-item .badge{background-color:#444;color:#f8f8f8}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.tabs{padding-top:2px;border-top:none!important;border-bottom:none;background-position:top;background-size:100% 1px;background-repeat:no-repeat}}.tabs-light>.tabs,.tabs.tabs-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.tabs-light>.tabs .tab-item .badge,.tabs.tabs-light .tab-item .badge{background-color:#444;color:#fff}.tabs-stable>.tabs,.tabs.tabs-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.tabs-stable>.tabs .tab-item .badge,.tabs.tabs-stable .tab-item .badge{background-color:#444;color:#f8f8f8}.tabs-positive>.tabs,.tabs.tabs-positive{border-color:#0c60ee;background-color:#387ef5;background-image:linear-gradient(0deg,#0c60ee,#0c60ee 50%,transparent 50%);color:#fff}.tabs-positive>.tabs .tab-item .badge,.tabs.tabs-positive .tab-item .badge{background-color:#fff;color:#387ef5}.tabs-calm>.tabs,.tabs.tabs-calm{border-color:#0a9dc7;background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9dc7,#0a9dc7 50%,transparent 50%);color:#fff}.tabs-calm>.tabs .tab-item .badge,.tabs.tabs-calm .tab-item .badge{background-color:#fff;color:#11c1f3}.tabs-assertive>.tabs,.tabs.tabs-assertive{border-color:#e42112;background-color:#ef473a;background-image:linear-gradient(0deg,#e42112,#e42112 50%,transparent 50%);color:#fff}.tabs-assertive>.tabs .tab-item .badge,.tabs.tabs-assertive .tab-item .badge{background-color:#fff;color:#ef473a}.tabs-balanced>.tabs,.tabs.tabs-balanced{border-color:#28a54c;background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);color:#fff}.tabs-balanced>.tabs .tab-item .badge,.tabs.tabs-balanced .tab-item .badge{background-color:#fff;color:#33cd5f}.tabs-energized>.tabs,.tabs.tabs-energized{border-color:#e6b500;background-color:#ffc900;background-image:linear-gradient(0deg,#e6b500,#e6b500 50%,transparent 50%);color:#fff}.tabs-energized>.tabs .tab-item .badge,.tabs.tabs-energized .tab-item .badge{background-color:#fff;color:#ffc900}.tabs-royal>.tabs,.tabs.tabs-royal{border-color:#6b46e5;background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);color:#fff}.tabs-royal>.tabs .tab-item .badge,.tabs.tabs-royal .tab-item .badge{background-color:#fff;color:#886aea}.tabs-dark>.tabs,.tabs.tabs-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.tabs-dark>.tabs .tab-item .badge,.tabs.tabs-dark .tab-item .badge{background-color:#fff;color:#444}.tabs-striped .tabs{background-color:#fff;background-image:none;border:none;border-bottom:1px solid #ddd;padding-top:2px}.tabs-striped .tab-item.activated,.tabs-striped .tab-item.active,.tabs-striped .tab-item.tab-item-active{margin-top:-2px;border-style:solid;border-width:2px 0 0 0;border-color:#444}.tabs-striped .tab-item.activated .badge,.tabs-striped .tab-item.active .badge,.tabs-striped .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-light .tabs{background-color:#fff}.tabs-striped.tabs-light .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-light .tab-item.activated,.tabs-striped.tabs-light .tab-item.active,.tabs-striped.tabs-light .tab-item.tab-item-active{margin-top:-2px;color:#444;border-style:solid;border-width:2px 0 0 0;border-color:#444}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-stable .tabs{background-color:#f8f8f8}.tabs-striped.tabs-stable .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-stable .tab-item.activated,.tabs-striped.tabs-stable .tab-item.active,.tabs-striped.tabs-stable .tab-item.tab-item-active{margin-top:-2px;color:#444;border-style:solid;border-width:2px 0 0 0;border-color:#444}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-positive .tabs{background-color:#387ef5}.tabs-striped.tabs-positive .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-positive .tab-item.activated,.tabs-striped.tabs-positive .tab-item.active,.tabs-striped.tabs-positive .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-calm .tabs{background-color:#11c1f3}.tabs-striped.tabs-calm .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-calm .tab-item.activated,.tabs-striped.tabs-calm .tab-item.active,.tabs-striped.tabs-calm .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-assertive .tabs{background-color:#ef473a}.tabs-striped.tabs-assertive .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-assertive .tab-item.activated,.tabs-striped.tabs-assertive .tab-item.active,.tabs-striped.tabs-assertive .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-balanced .tabs{background-color:#33cd5f}.tabs-striped.tabs-balanced .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-balanced .tab-item.activated,.tabs-striped.tabs-balanced .tab-item.active,.tabs-striped.tabs-balanced .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-energized .tabs{background-color:#ffc900}.tabs-striped.tabs-energized .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-energized .tab-item.activated,.tabs-striped.tabs-energized .tab-item.active,.tabs-striped.tabs-energized .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-royal .tabs{background-color:#886aea}.tabs-striped.tabs-royal .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-royal .tab-item.activated,.tabs-striped.tabs-royal .tab-item.active,.tabs-striped.tabs-royal .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-dark .tabs{background-color:#444}.tabs-striped.tabs-dark .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-dark .tab-item.activated,.tabs-striped.tabs-dark .tab-item.active,.tabs-striped.tabs-dark .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-background-light .tabs{background-color:#fff;background-image:none}.tabs-striped.tabs-background-stable .tabs{background-color:#f8f8f8;background-image:none}.tabs-striped.tabs-background-positive .tabs{background-color:#387ef5;background-image:none}.tabs-striped.tabs-background-calm .tabs{background-color:#11c1f3;background-image:none}.tabs-striped.tabs-background-assertive .tabs{background-color:#ef473a;background-image:none}.tabs-striped.tabs-background-balanced .tabs{background-color:#33cd5f;background-image:none}.tabs-striped.tabs-background-energized .tabs{background-color:#ffc900;background-image:none}.tabs-striped.tabs-background-royal .tabs{background-color:#886aea;background-image:none}.tabs-striped.tabs-background-dark .tabs{background-color:#444;background-image:none}.tabs-striped.tabs-color-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-color-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-light .tab-item.activated,.tabs-striped.tabs-color-light .tab-item.active,.tabs-striped.tabs-color-light .tab-item.tab-item-active{margin-top:-2px;color:#fff;border:0 solid #fff;border-top-width:2px}.tabs-striped.tabs-color-light .tab-item.activated .badge,.tabs-striped.tabs-color-light .tab-item.active .badge,.tabs-striped.tabs-color-light .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-striped.tabs-color-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-stable .tab-item.activated,.tabs-striped.tabs-color-stable .tab-item.active,.tabs-striped.tabs-color-stable .tab-item.tab-item-active{margin-top:-2px;color:#f8f8f8;border:0 solid #f8f8f8;border-top-width:2px}.tabs-striped.tabs-color-stable .tab-item.activated .badge,.tabs-striped.tabs-color-stable .tab-item.active .badge,.tabs-striped.tabs-color-stable .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-positive .tab-item{color:rgba(56,126,245,.4);opacity:1}.tabs-striped.tabs-color-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-positive .tab-item.activated,.tabs-striped.tabs-color-positive .tab-item.active,.tabs-striped.tabs-color-positive .tab-item.tab-item-active{margin-top:-2px;color:#387ef5;border:0 solid #387ef5;border-top-width:2px}.tabs-striped.tabs-color-positive .tab-item.activated .badge,.tabs-striped.tabs-color-positive .tab-item.active .badge,.tabs-striped.tabs-color-positive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-calm .tab-item{color:rgba(17,193,243,.4);opacity:1}.tabs-striped.tabs-color-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-calm .tab-item.activated,.tabs-striped.tabs-color-calm .tab-item.active,.tabs-striped.tabs-color-calm .tab-item.tab-item-active{margin-top:-2px;color:#11c1f3;border:0 solid #11c1f3;border-top-width:2px}.tabs-striped.tabs-color-calm .tab-item.activated .badge,.tabs-striped.tabs-color-calm .tab-item.active .badge,.tabs-striped.tabs-color-calm .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-assertive .tab-item{color:rgba(239,71,58,.4);opacity:1}.tabs-striped.tabs-color-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-assertive .tab-item.activated,.tabs-striped.tabs-color-assertive .tab-item.active,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active{margin-top:-2px;color:#ef473a;border:0 solid #ef473a;border-top-width:2px}.tabs-striped.tabs-color-assertive .tab-item.activated .badge,.tabs-striped.tabs-color-assertive .tab-item.active .badge,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-balanced .tab-item{color:rgba(51,205,95,.4);opacity:1}.tabs-striped.tabs-color-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-balanced .tab-item.activated,.tabs-striped.tabs-color-balanced .tab-item.active,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active{margin-top:-2px;color:#33cd5f;border:0 solid #33cd5f;border-top-width:2px}.tabs-striped.tabs-color-balanced .tab-item.activated .badge,.tabs-striped.tabs-color-balanced .tab-item.active .badge,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-energized .tab-item{color:rgba(255,201,0,.4);opacity:1}.tabs-striped.tabs-color-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-energized .tab-item.activated,.tabs-striped.tabs-color-energized .tab-item.active,.tabs-striped.tabs-color-energized .tab-item.tab-item-active{margin-top:-2px;color:#ffc900;border:0 solid #ffc900;border-top-width:2px}.tabs-striped.tabs-color-energized .tab-item.activated .badge,.tabs-striped.tabs-color-energized .tab-item.active .badge,.tabs-striped.tabs-color-energized .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-royal .tab-item{color:rgba(136,106,234,.4);opacity:1}.tabs-striped.tabs-color-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-royal .tab-item.activated,.tabs-striped.tabs-color-royal .tab-item.active,.tabs-striped.tabs-color-royal .tab-item.tab-item-active{margin-top:-2px;color:#886aea;border:0 solid #886aea;border-top-width:2px}.tabs-striped.tabs-color-royal .tab-item.activated .badge,.tabs-striped.tabs-color-royal .tab-item.active .badge,.tabs-striped.tabs-color-royal .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-color-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-dark .tab-item.activated,.tabs-striped.tabs-color-dark .tab-item.active,.tabs-striped.tabs-color-dark .tab-item.tab-item-active{margin-top:-2px;color:#444;border:0 solid #444;border-top-width:2px}.tabs-striped.tabs-color-dark .tab-item.activated .badge,.tabs-striped.tabs-color-dark .tab-item.active .badge,.tabs-striped.tabs-color-dark .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-background-light .tabs,.tabs-background-light>.tabs{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);border-color:#ddd}.tabs-background-stable .tabs,.tabs-background-stable>.tabs{background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);border-color:#b2b2b2}.tabs-background-positive .tabs,.tabs-background-positive>.tabs{background-color:#387ef5;background-image:linear-gradient(0deg,#0c60ee,#0c60ee 50%,transparent 50%);border-color:#0c60ee}.tabs-background-calm .tabs,.tabs-background-calm>.tabs{background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9dc7,#0a9dc7 50%,transparent 50%);border-color:#0a9dc7}.tabs-background-assertive .tabs,.tabs-background-assertive>.tabs{background-color:#ef473a;background-image:linear-gradient(0deg,#e42112,#e42112 50%,transparent 50%);border-color:#e42112}.tabs-background-balanced .tabs,.tabs-background-balanced>.tabs{background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);border-color:#28a54c}.tabs-background-energized .tabs,.tabs-background-energized>.tabs{background-color:#ffc900;background-image:linear-gradient(0deg,#e6b500,#e6b500 50%,transparent 50%);border-color:#e6b500}.tabs-background-royal .tabs,.tabs-background-royal>.tabs{background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);border-color:#6b46e5}.tabs-background-dark .tabs,.tabs-background-dark>.tabs{background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);border-color:#111}.tabs-color-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-color-light .tab-item .badge{opacity:.4}.tabs-color-light .tab-item.activated,.tabs-color-light .tab-item.active,.tabs-color-light .tab-item.tab-item-active{color:#fff;border:0 solid #fff}.tabs-color-light .tab-item.activated .badge,.tabs-color-light .tab-item.active .badge,.tabs-color-light .tab-item.tab-item-active .badge{opacity:1}.tabs-color-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-color-stable .tab-item .badge{opacity:.4}.tabs-color-stable .tab-item.activated,.tabs-color-stable .tab-item.active,.tabs-color-stable .tab-item.tab-item-active{color:#f8f8f8;border:0 solid #f8f8f8}.tabs-color-stable .tab-item.activated .badge,.tabs-color-stable .tab-item.active .badge,.tabs-color-stable .tab-item.tab-item-active .badge{opacity:1}.tabs-color-positive .tab-item{color:rgba(56,126,245,.4);opacity:1}.tabs-color-positive .tab-item .badge{opacity:.4}.tabs-color-positive .tab-item.activated,.tabs-color-positive .tab-item.active,.tabs-color-positive .tab-item.tab-item-active{color:#387ef5;border:0 solid #387ef5}.tabs-color-positive .tab-item.activated .badge,.tabs-color-positive .tab-item.active .badge,.tabs-color-positive .tab-item.tab-item-active .badge{opacity:1}.tabs-color-calm .tab-item{color:rgba(17,193,243,.4);opacity:1}.tabs-color-calm .tab-item .badge{opacity:.4}.tabs-color-calm .tab-item.activated,.tabs-color-calm .tab-item.active,.tabs-color-calm .tab-item.tab-item-active{color:#11c1f3;border:0 solid #11c1f3}.tabs-color-calm .tab-item.activated .badge,.tabs-color-calm .tab-item.active .badge,.tabs-color-calm .tab-item.tab-item-active .badge{opacity:1}.tabs-color-assertive .tab-item{color:rgba(239,71,58,.4);opacity:1}.tabs-color-assertive .tab-item .badge{opacity:.4}.tabs-color-assertive .tab-item.activated,.tabs-color-assertive .tab-item.active,.tabs-color-assertive .tab-item.tab-item-active{color:#ef473a;border:0 solid #ef473a}.tabs-color-assertive .tab-item.activated .badge,.tabs-color-assertive .tab-item.active .badge,.tabs-color-assertive .tab-item.tab-item-active .badge{opacity:1}.tabs-color-balanced .tab-item{color:rgba(51,205,95,.4);opacity:1}.tabs-color-balanced .tab-item .badge{opacity:.4}.tabs-color-balanced .tab-item.activated,.tabs-color-balanced .tab-item.active,.tabs-color-balanced .tab-item.tab-item-active{color:#33cd5f;border:0 solid #33cd5f}.tabs-color-balanced .tab-item.activated .badge,.tabs-color-balanced .tab-item.active .badge,.tabs-color-balanced .tab-item.tab-item-active .badge{opacity:1}.tabs-color-energized .tab-item{color:rgba(255,201,0,.4);opacity:1}.tabs-color-energized .tab-item .badge{opacity:.4}.tabs-color-energized .tab-item.activated,.tabs-color-energized .tab-item.active,.tabs-color-energized .tab-item.tab-item-active{color:#ffc900;border:0 solid #ffc900}.tabs-color-energized .tab-item.activated .badge,.tabs-color-energized .tab-item.active .badge,.tabs-color-energized .tab-item.tab-item-active .badge{opacity:1}.tabs-color-royal .tab-item{color:rgba(136,106,234,.4);opacity:1}.tabs-color-royal .tab-item .badge{opacity:.4}.tabs-color-royal .tab-item.activated,.tabs-color-royal .tab-item.active,.tabs-color-royal .tab-item.tab-item-active{color:#886aea;border:0 solid #886aea}.tabs-color-royal .tab-item.activated .badge,.tabs-color-royal .tab-item.active .badge,.tabs-color-royal .tab-item.tab-item-active .badge{opacity:1}.tabs-color-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-color-dark .tab-item .badge{opacity:.4}.tabs-color-dark .tab-item.activated,.tabs-color-dark .tab-item.active,.tabs-color-dark .tab-item.tab-item-active{color:#444;border:0 solid #444}.tabs-color-dark .tab-item.activated .badge,.tabs-color-dark .tab-item.active .badge,.tabs-color-dark .tab-item.tab-item-active .badge{opacity:1}ion-tabs.tabs-color-active-light .tab-item{color:#444}ion-tabs.tabs-color-active-light .tab-item.activated,ion-tabs.tabs-color-active-light .tab-item.active,ion-tabs.tabs-color-active-light .tab-item.tab-item-active{color:#fff}ion-tabs.tabs-striped.tabs-color-active-light .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-light .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-light .tab-item.tab-item-active{border-color:#fff;color:#fff}ion-tabs.tabs-color-active-stable .tab-item{color:#444}ion-tabs.tabs-color-active-stable .tab-item.activated,ion-tabs.tabs-color-active-stable .tab-item.active,ion-tabs.tabs-color-active-stable .tab-item.tab-item-active{color:#f8f8f8}ion-tabs.tabs-striped.tabs-color-active-stable .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-stable .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-stable .tab-item.tab-item-active{border-color:#f8f8f8;color:#f8f8f8}ion-tabs.tabs-color-active-positive .tab-item{color:#444}ion-tabs.tabs-color-active-positive .tab-item.activated,ion-tabs.tabs-color-active-positive .tab-item.active,ion-tabs.tabs-color-active-positive .tab-item.tab-item-active{color:#387ef5}ion-tabs.tabs-striped.tabs-color-active-positive .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-positive .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-positive .tab-item.tab-item-active{border-color:#387ef5;color:#387ef5}ion-tabs.tabs-color-active-calm .tab-item{color:#444}ion-tabs.tabs-color-active-calm .tab-item.activated,ion-tabs.tabs-color-active-calm .tab-item.active,ion-tabs.tabs-color-active-calm .tab-item.tab-item-active{color:#11c1f3}ion-tabs.tabs-striped.tabs-color-active-calm .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-calm .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-calm .tab-item.tab-item-active{border-color:#11c1f3;color:#11c1f3}ion-tabs.tabs-color-active-assertive .tab-item{color:#444}ion-tabs.tabs-color-active-assertive .tab-item.activated,ion-tabs.tabs-color-active-assertive .tab-item.active,ion-tabs.tabs-color-active-assertive .tab-item.tab-item-active{color:#ef473a}ion-tabs.tabs-striped.tabs-color-active-assertive .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-assertive .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-assertive .tab-item.tab-item-active{border-color:#ef473a;color:#ef473a}ion-tabs.tabs-color-active-balanced .tab-item{color:#444}ion-tabs.tabs-color-active-balanced .tab-item.activated,ion-tabs.tabs-color-active-balanced .tab-item.active,ion-tabs.tabs-color-active-balanced .tab-item.tab-item-active{color:#33cd5f}ion-tabs.tabs-striped.tabs-color-active-balanced .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-balanced .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-balanced .tab-item.tab-item-active{border-color:#33cd5f;color:#33cd5f}ion-tabs.tabs-color-active-energized .tab-item{color:#444}ion-tabs.tabs-color-active-energized .tab-item.activated,ion-tabs.tabs-color-active-energized .tab-item.active,ion-tabs.tabs-color-active-energized .tab-item.tab-item-active{color:#ffc900}ion-tabs.tabs-striped.tabs-color-active-energized .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-energized .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-energized .tab-item.tab-item-active{border-color:#ffc900;color:#ffc900}ion-tabs.tabs-color-active-royal .tab-item{color:#444}ion-tabs.tabs-color-active-royal .tab-item.activated,ion-tabs.tabs-color-active-royal .tab-item.active,ion-tabs.tabs-color-active-royal .tab-item.tab-item-active{color:#886aea}ion-tabs.tabs-striped.tabs-color-active-royal .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-royal .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-royal .tab-item.tab-item-active{border-color:#886aea;color:#886aea}ion-tabs.tabs-color-active-dark .tab-item{color:#fff}ion-tabs.tabs-color-active-dark .tab-item.activated,ion-tabs.tabs-color-active-dark .tab-item.active,ion-tabs.tabs-color-active-dark .tab-item.tab-item-active{color:#444}ion-tabs.tabs-striped.tabs-color-active-dark .tab-item.activated,ion-tabs.tabs-striped.tabs-color-active-dark .tab-item.active,ion-tabs.tabs-striped.tabs-color-active-dark .tab-item.tab-item-active{border-color:#444;color:#444}.tabs-top.tabs-striped{padding-bottom:0}.tabs-top.tabs-striped .tab-item{background:0 0;-webkit-transition:color .1s ease;-moz-transition:color .1s ease;-ms-transition:color .1s ease;-o-transition:color .1s ease;transition:color .1s ease}.tabs-top.tabs-striped .tab-item.activated,.tabs-top.tabs-striped .tab-item.active,.tabs-top.tabs-striped .tab-item.tab-item-active{margin-top:1px;border-width:0 0 2px 0!important;border-style:solid}.tabs-top.tabs-striped .tab-item.activated>.badge,.tabs-top.tabs-striped .tab-item.activated>i,.tabs-top.tabs-striped .tab-item.active>.badge,.tabs-top.tabs-striped .tab-item.active>i,.tabs-top.tabs-striped .tab-item.tab-item-active>.badge,.tabs-top.tabs-striped .tab-item.tab-item-active>i{margin-top:-1px}.tabs-top.tabs-striped .tab-item .badge{-webkit-transition:color .2s ease;-moz-transition:color .2s ease;-ms-transition:color .2s ease;-o-transition:color .2s ease;transition:color .2s ease}.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated i,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active i,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active i{display:block;margin-top:-1px}.tabs-top.tabs-striped.tabs-icon-left .tab-item{margin-top:1px}.tabs-top.tabs-striped.tabs-icon-left .tab-item.activated .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.activated i,.tabs-top.tabs-striped.tabs-icon-left .tab-item.active .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.active i,.tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active i{margin-top:-.1em}.tabs-top>.tabs,.tabs.tabs-top{top:44px;padding-top:0;background-position:bottom;border-top-width:0;border-bottom-width:1px}.tabs-top>.tabs .tab-item.activated .badge,.tabs-top>.tabs .tab-item.active .badge,.tabs-top>.tabs .tab-item.tab-item-active .badge,.tabs.tabs-top .tab-item.activated .badge,.tabs.tabs-top .tab-item.active .badge,.tabs.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-top~.bar-header{border-bottom-width:0}.tab-item{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;max-width:150px;height:100%;color:inherit;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:14px;font-family:"-apple-system","Helvetica Neue",Roboto,"Segoe UI",sans-serif;opacity:.7}.tab-item:hover{cursor:pointer}.tab-item.tab-hidden{display:none}.tabs-item-hide>.tabs,.tabs.tabs-item-hide{display:none}.tabs-icon-bottom.tabs .tab-item,.tabs-icon-bottom>.tabs .tab-item,.tabs-icon-top.tabs .tab-item,.tabs-icon-top>.tabs .tab-item{font-size:10px;line-height:14px}#menu .footer .tab-item .icon-help,.tab-item #menu .footer .icon-help,.tab-item .icon,.tab-item .icon-alert,.tab-item .icon-help{display:block;margin:0 auto;height:32px;font-size:32px}.tabs-icon-left.tabs .tab-item,.tabs-icon-left>.tabs .tab-item,.tabs-icon-right.tabs .tab-item,.tabs-icon-right>.tabs .tab-item{font-size:10px}#menu .footer .tabs-icon-left.tabs .tab-item .icon-help,#menu .footer .tabs-icon-left>.tabs .tab-item .icon-help,#menu .footer .tabs-icon-right.tabs .tab-item .icon-help,#menu .footer .tabs-icon-right>.tabs .tab-item .icon-help,.tabs-icon-left.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left.tabs .tab-item .icon-alert,.tabs-icon-left.tabs .tab-item .icon-help,.tabs-icon-left.tabs .tab-item .tab-title,.tabs-icon-left>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon-alert,.tabs-icon-left>.tabs .tab-item .icon-help,.tabs-icon-left>.tabs .tab-item .tab-title,.tabs-icon-right.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon-alert,.tabs-icon-right.tabs .tab-item .icon-help,.tabs-icon-right.tabs .tab-item .tab-title,.tabs-icon-right>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right>.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon-alert,.tabs-icon-right>.tabs .tab-item .icon-help,.tabs-icon-right>.tabs .tab-item .tab-title{display:inline-block;vertical-align:top;margin-top:-.1em}#menu .footer .tabs-icon-left.tabs .tab-item .icon-help:before,#menu .footer .tabs-icon-left>.tabs .tab-item .icon-help:before,#menu .footer .tabs-icon-right.tabs .tab-item .icon-help:before,#menu .footer .tabs-icon-right>.tabs .tab-item .icon-help:before,.tabs-icon-left.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-left.tabs .tab-item .icon-alert:before,.tabs-icon-left.tabs .tab-item .icon-help:before,.tabs-icon-left.tabs .tab-item .icon:before,.tabs-icon-left.tabs .tab-item .tab-title:before,.tabs-icon-left>.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-left>.tabs .tab-item .icon-alert:before,.tabs-icon-left>.tabs .tab-item .icon-help:before,.tabs-icon-left>.tabs .tab-item .icon:before,.tabs-icon-left>.tabs .tab-item .tab-title:before,.tabs-icon-right.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-right.tabs .tab-item .icon-alert:before,.tabs-icon-right.tabs .tab-item .icon-help:before,.tabs-icon-right.tabs .tab-item .icon:before,.tabs-icon-right.tabs .tab-item .tab-title:before,.tabs-icon-right>.tabs .tab-item #menu .footer .icon-help:before,.tabs-icon-right>.tabs .tab-item .icon-alert:before,.tabs-icon-right>.tabs .tab-item .icon-help:before,.tabs-icon-right>.tabs .tab-item .icon:before,.tabs-icon-right>.tabs .tab-item .tab-title:before{font-size:24px;line-height:49px}#menu .footer .tabs-icon-left.tabs .tab-item .icon-help,#menu .footer .tabs-icon-left>.tabs .tab-item .icon-help,.tabs-icon-left.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left.tabs .tab-item .icon-alert,.tabs-icon-left.tabs .tab-item .icon-help,.tabs-icon-left>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon-alert,.tabs-icon-left>.tabs .tab-item .icon-help{padding-right:3px}#menu .footer .tabs-icon-right.tabs .tab-item .icon-help,#menu .footer .tabs-icon-right>.tabs .tab-item .icon-help,.tabs-icon-right.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon-alert,.tabs-icon-right.tabs .tab-item .icon-help,.tabs-icon-right>.tabs .tab-item #menu .footer .icon-help,.tabs-icon-right>.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon-alert,.tabs-icon-right>.tabs .tab-item .icon-help{padding-left:3px}#menu .footer .tabs-icon-only.tabs .icon-help,#menu .footer .tabs-icon-only>.tabs .icon-help,.tabs-icon-only.tabs #menu .footer .icon-help,.tabs-icon-only.tabs .icon,.tabs-icon-only.tabs .icon-alert,.tabs-icon-only.tabs .icon-help,.tabs-icon-only>.tabs #menu .footer .icon-help,.tabs-icon-only>.tabs .icon,.tabs-icon-only>.tabs .icon-alert,.tabs-icon-only>.tabs .icon-help{line-height:inherit}.tab-item.has-badge{position:relative}.tab-item .badge{position:absolute;top:4%;right:33%;right:calc(50% - 26px);padding:1px 6px;height:auto;font-size:12px;line-height:16px}.tab-item.activated,.tab-item.active,.tab-item.tab-item-active{opacity:1}.tab-item.activated.tab-item-light,.tab-item.active.tab-item-light,.tab-item.tab-item-active.tab-item-light{color:#fff}.tab-item.activated.tab-item-stable,.tab-item.active.tab-item-stable,.tab-item.tab-item-active.tab-item-stable{color:#f8f8f8}.tab-item.activated.tab-item-positive,.tab-item.active.tab-item-positive,.tab-item.tab-item-active.tab-item-positive{color:#387ef5}.tab-item.activated.tab-item-calm,.tab-item.active.tab-item-calm,.tab-item.tab-item-active.tab-item-calm{color:#11c1f3}.tab-item.activated.tab-item-assertive,.tab-item.active.tab-item-assertive,.tab-item.tab-item-active.tab-item-assertive{color:#ef473a}.tab-item.activated.tab-item-balanced,.tab-item.active.tab-item-balanced,.tab-item.tab-item-active.tab-item-balanced{color:#33cd5f}.tab-item.activated.tab-item-energized,.tab-item.active.tab-item-energized,.tab-item.tab-item-active.tab-item-energized{color:#ffc900}.tab-item.activated.tab-item-royal,.tab-item.active.tab-item-royal,.tab-item.tab-item-active.tab-item-royal{color:#886aea}.tab-item.activated.tab-item-dark,.tab-item.active.tab-item-dark,.tab-item.tab-item-active.tab-item-dark{color:#444}.item.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:0}#menu .footer .item.tabs .icon-help:before,.item.tabs #menu .footer .icon-help:before,.item.tabs .icon-alert:before,.item.tabs .icon-help:before,.item.tabs .icon:before{position:relative}.tab-item.disabled,.tab-item[disabled]{opacity:.4;cursor:default;pointer-events:none}.nav-bar-tabs-top.hide~.view-container .tabs-top .tabs{top:0}.pane[hide-nav-bar=true] .has-tabs-top{top:49px}.menu{position:absolute;top:0;bottom:0;z-index:0;overflow:hidden;min-height:100%;max-height:100%;width:275px;background-color:#fff}.menu .scroll-content{z-index:10}.menu .bar-header{z-index:11}.menu-content{-webkit-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content{pointer-events:none}.menu-open .menu-content .scroll-content .scroll{pointer-events:none}.menu-open .menu-content .scroll-content:not(.overflow-scroll){overflow:hidden}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.aside-open.aside-resizing .menu-right{display:none}.menu-animated{-webkit-transition:-webkit-transform .2s ease;transition:transform .2s ease}.modal-backdrop,.modal-backdrop-bg{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%}.modal-backdrop-bg{pointer-events:none}.modal{display:block;position:absolute;top:0;z-index:10;overflow:hidden;min-height:100%;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .modal-wrapper .modal .tabs-top>.tabs,.platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top{top:44px}.platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader,.platform-ios.platform-cordova .modal-wrapper .modal .has-header{top:44px}.platform-ios.platform-cordova .modal-wrapper .modal .has-subheader{top:88px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top{top:93px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top{top:137px}.modal-backdrop-bg{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-color:#000;opacity:0}.active .modal-backdrop-bg{opacity:.5}}.modal-open{pointer-events:none}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.modal-open.loading-active .modal,.modal-open.loading-active .modal-backdrop{pointer-events:none}.popover-backdrop{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:rgba(0,0,0,0)}.popover-backdrop.active{background-color:rgba(0,0,0,.1)}.popover{position:absolute;top:25%;left:50%;z-index:10;display:block;margin-top:12px;margin-left:-110px;height:280px;width:220px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);opacity:0}.popover .item:first-child{border-top:0}.popover .item:last-child{border-bottom:0}.popover.popover-bottom{margin-top:-12px}.popover,.popover .bar-header{border-radius:2px}.popover .scroll-content{z-index:1;margin:2px 0}.popover .bar-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.popover .has-header{border-top-right-radius:0;border-top-left-radius:0}.popover-arrow{display:none}.platform-ios .popover{box-shadow:0 0 40px rgba(0,0,0,.08);border-radius:10px}.platform-ios .popover .bar-header{-webkit-border-top-right-radius:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;border-top-left-radius:10px}.platform-ios .popover .scroll-content{margin:8px 0;border-radius:10px}.platform-ios .popover .scroll-content.has-header{margin-top:0}.platform-ios .popover-arrow{position:absolute;display:block;top:-17px;width:30px;height:19px;overflow:hidden}.platform-ios .popover-arrow:after{position:absolute;top:12px;left:5px;width:20px;height:20px;background-color:#fff;border-radius:3px;content:'';-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.platform-ios .popover-bottom .popover-arrow{top:auto;bottom:-10px}.platform-ios .popover-bottom .popover-arrow:after{top:-6px}.platform-android .popover{margin-top:-32px;background-color:#fafafa;box-shadow:0 2px 6px rgba(0,0,0,.35)}.platform-android .popover .item{border-color:#fafafa;background-color:#fafafa;color:#4d4d4d}.platform-android .popover.popover-bottom{margin-top:32px}.platform-android .popover-backdrop,.platform-android .popover-backdrop.active{background-color:transparent}.popover-open{pointer-events:none}.popover-open .popover,.popover-open .popover-backdrop{pointer-events:auto}.popover-open.loading-active .popover,.popover-open.loading-active .popover-backdrop{pointer-events:none}@media (min-width:680px){.popover{width:360px;margin-left:-180px}}.popup-container{position:absolute;top:0;left:0;bottom:0;right:0;background:rgba(0,0,0,0);display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;z-index:12;visibility:hidden}.popup-container.popup-showing{visibility:visible}.popup-container.popup-hidden .popup{-webkit-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container.active .popup{-webkit-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container .popup{width:250px;max-width:100%;max-height:90%;border-radius:0;background-color:rgba(255,255,255,.9);display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.popup-container input,.popup-container textarea{width:100%}.popup-head{padding:15px 10px;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0 0;padding:0;font-weight:400;font-size:11px}.popup-body{padding:10px;overflow:auto}.popup-buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding:10px;min-height:65px}.popup-buttons .button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;min-height:45px;border-radius:2px;line-height:20px;margin-right:5px}.popup-buttons .button:last-child{margin-right:0}.popup-open{pointer-events:none}.popup-open.modal-open .modal{pointer-events:none}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto}.loading-container{position:absolute;left:0;top:0;right:0;bottom:0;z-index:13;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0}#menu .footer .loading-container:not(.visible) .icon-help,.loading-container:not(.visible) #menu .footer .icon-help,.loading-container:not(.visible) .icon,.loading-container:not(.visible) .icon-alert,.loading-container:not(.visible) .icon-help,.loading-container:not(.visible) .spinner{display:none}.loading-container.visible{visibility:visible}.loading-container.active{opacity:1}.loading-container .loading{padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading-container .loading h1,.loading-container .loading h2,.loading-container .loading h3,.loading-container .loading h4,.loading-container .loading h5,.loading-container .loading h6{color:#fff}.item{border-color:#ddd;background-color:#fff;color:#444;position:relative;z-index:2;display:block;margin:-1px;padding:16px;border-width:1px;border-style:solid;font-size:16px}.item h2{margin:0 0 2px 0;font-size:16px;font-weight:400}.item h3{margin:0 0 4px 0;font-size:14px}.item h4{margin:0 0 4px 0;font-size:12px}.item h5,.item h6{margin:0 0 3px 0;font-size:10px}.item p{color:#666;font-size:14px;margin-bottom:2px}.item h1:last-child,.item h2:last-child,.item h3:last-child,.item h4:last-child,.item h5:last-child,.item h6:last-child,.item p:last-child{margin-bottom:0}.item .badge{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;position:absolute;top:16px;right:32px}.item.item-button-right .badge{right:67px}.item.item-divider .badge{top:8px}.item .badge+.badge{margin-right:5px}.item.item-light{border-color:#ddd;background-color:#fff;color:#444}.item.item-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item.item-positive{border-color:#0c60ee;background-color:#387ef5;color:#fff}.item.item-calm{border-color:#0a9dc7;background-color:#11c1f3;color:#fff}.item.item-assertive{border-color:#e42112;background-color:#ef473a;color:#fff}.item.item-balanced{border-color:#28a54c;background-color:#33cd5f;color:#fff}.item.item-energized{border-color:#e6b500;background-color:#ffc900;color:#fff}.item.item-royal{border-color:#6b46e5;background-color:#886aea;color:#fff}.item.item-dark{border-color:#111;background-color:#444;color:#fff}.item[ng-click]:hover{cursor:pointer}.item-borderless,.list-borderless .item{border-width:0}.item .item-content.activated,.item .item-content.active,.item-complex.activated .item-content,.item-complex.active .item-content,.item.activated,.item.active{border-color:#ccc;background-color:#d9d9d9}.item .item-content.activated.item-complex>.item-content,.item .item-content.active.item-complex>.item-content,.item-complex.activated .item-content.item-complex>.item-content,.item-complex.active .item-content.item-complex>.item-content,.item.activated.item-complex>.item-content,.item.active.item-complex>.item-content{border-color:#ccc;background-color:#d9d9d9}.item .item-content.activated.item-light,.item .item-content.active.item-light,.item-complex.activated .item-content.item-light,.item-complex.active .item-content.item-light,.item.activated.item-light,.item.active.item-light{border-color:#ccc;background-color:#fafafa}.item .item-content.activated.item-light.item-complex>.item-content,.item .item-content.active.item-light.item-complex>.item-content,.item-complex.activated .item-content.item-light.item-complex>.item-content,.item-complex.active .item-content.item-light.item-complex>.item-content,.item.activated.item-light.item-complex>.item-content,.item.active.item-light.item-complex>.item-content{border-color:#ccc;background-color:#fafafa}.item .item-content.activated.item-stable,.item .item-content.active.item-stable,.item-complex.activated .item-content.item-stable,.item-complex.active .item-content.item-stable,.item.activated.item-stable,.item.active.item-stable{border-color:#a2a2a2;background-color:#e5e5e5}.item .item-content.activated.item-stable.item-complex>.item-content,.item .item-content.active.item-stable.item-complex>.item-content,.item-complex.activated .item-content.item-stable.item-complex>.item-content,.item-complex.active .item-content.item-stable.item-complex>.item-content,.item.activated.item-stable.item-complex>.item-content,.item.active.item-stable.item-complex>.item-content{border-color:#a2a2a2;background-color:#e5e5e5}.item .item-content.activated.item-positive,.item .item-content.active.item-positive,.item-complex.activated .item-content.item-positive,.item-complex.active .item-content.item-positive,.item.activated.item-positive,.item.active.item-positive{border-color:#0c60ee;background-color:#0c60ee}.item .item-content.activated.item-positive.item-complex>.item-content,.item .item-content.active.item-positive.item-complex>.item-content,.item-complex.activated .item-content.item-positive.item-complex>.item-content,.item-complex.active .item-content.item-positive.item-complex>.item-content,.item.activated.item-positive.item-complex>.item-content,.item.active.item-positive.item-complex>.item-content{border-color:#0c60ee;background-color:#0c60ee}.item .item-content.activated.item-calm,.item .item-content.active.item-calm,.item-complex.activated .item-content.item-calm,.item-complex.active .item-content.item-calm,.item.activated.item-calm,.item.active.item-calm{border-color:#0a9dc7;background-color:#0a9dc7}.item .item-content.activated.item-calm.item-complex>.item-content,.item .item-content.active.item-calm.item-complex>.item-content,.item-complex.activated .item-content.item-calm.item-complex>.item-content,.item-complex.active .item-content.item-calm.item-complex>.item-content,.item.activated.item-calm.item-complex>.item-content,.item.active.item-calm.item-complex>.item-content{border-color:#0a9dc7;background-color:#0a9dc7}.item .item-content.activated.item-assertive,.item .item-content.active.item-assertive,.item-complex.activated .item-content.item-assertive,.item-complex.active .item-content.item-assertive,.item.activated.item-assertive,.item.active.item-assertive{border-color:#e42112;background-color:#e42112}.item .item-content.activated.item-assertive.item-complex>.item-content,.item .item-content.active.item-assertive.item-complex>.item-content,.item-complex.activated .item-content.item-assertive.item-complex>.item-content,.item-complex.active .item-content.item-assertive.item-complex>.item-content,.item.activated.item-assertive.item-complex>.item-content,.item.active.item-assertive.item-complex>.item-content{border-color:#e42112;background-color:#e42112}.item .item-content.activated.item-balanced,.item .item-content.active.item-balanced,.item-complex.activated .item-content.item-balanced,.item-complex.active .item-content.item-balanced,.item.activated.item-balanced,.item.active.item-balanced{border-color:#28a54c;background-color:#28a54c}.item .item-content.activated.item-balanced.item-complex>.item-content,.item .item-content.active.item-balanced.item-complex>.item-content,.item-complex.activated .item-content.item-balanced.item-complex>.item-content,.item-complex.active .item-content.item-balanced.item-complex>.item-content,.item.activated.item-balanced.item-complex>.item-content,.item.active.item-balanced.item-complex>.item-content{border-color:#28a54c;background-color:#28a54c}.item .item-content.activated.item-energized,.item .item-content.active.item-energized,.item-complex.activated .item-content.item-energized,.item-complex.active .item-content.item-energized,.item.activated.item-energized,.item.active.item-energized{border-color:#e6b500;background-color:#e6b500}.item .item-content.activated.item-energized.item-complex>.item-content,.item .item-content.active.item-energized.item-complex>.item-content,.item-complex.activated .item-content.item-energized.item-complex>.item-content,.item-complex.active .item-content.item-energized.item-complex>.item-content,.item.activated.item-energized.item-complex>.item-content,.item.active.item-energized.item-complex>.item-content{border-color:#e6b500;background-color:#e6b500}.item .item-content.activated.item-royal,.item .item-content.active.item-royal,.item-complex.activated .item-content.item-royal,.item-complex.active .item-content.item-royal,.item.activated.item-royal,.item.active.item-royal{border-color:#6b46e5;background-color:#6b46e5}.item .item-content.activated.item-royal.item-complex>.item-content,.item .item-content.active.item-royal.item-complex>.item-content,.item-complex.activated .item-content.item-royal.item-complex>.item-content,.item-complex.active .item-content.item-royal.item-complex>.item-content,.item.activated.item-royal.item-complex>.item-content,.item.active.item-royal.item-complex>.item-content{border-color:#6b46e5;background-color:#6b46e5}.item .item-content.activated.item-dark,.item .item-content.active.item-dark,.item-complex.activated .item-content.item-dark,.item-complex.active .item-content.item-dark,.item.activated.item-dark,.item.active.item-dark{border-color:#000;background-color:#262626}.item .item-content.activated.item-dark.item-complex>.item-content,.item .item-content.active.item-dark.item-complex>.item-content,.item-complex.activated .item-content.item-dark.item-complex>.item-content,.item-complex.active .item-content.item-dark.item-complex>.item-content,.item.activated.item-dark.item-complex>.item-content,.item.active.item-dark.item-complex>.item-content{border-color:#000;background-color:#262626}.item,.item h1,.item h2,.item h3,.item h4,.item h5,.item h6,.item p,.item-content,.item-content h1,.item-content h2,.item-content h3,.item-content h4,.item-content h5,.item-content h6,.item-content p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.item{color:inherit;text-decoration:none}a.item:focus,a.item:hover{text-decoration:none}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,.item-radio .item-content{position:relative;z-index:2;padding:16px 49px 16px 16px;border:none;background-color:#fff}a.item-content{display:block;color:inherit;text-decoration:none}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p,.item-complex.item-text-wrap .item-content,.item-text-wrap,.item-text-wrap .item,.item-text-wrap .item-content,.item-text-wrap h1,.item-text-wrap h2,.item-text-wrap h3,.item-text-wrap h4,.item-text-wrap h5,.item-text-wrap h6,.item-text-wrap p{overflow:visible;white-space:normal}.item-complex.item-text-wrap,.item-complex.item-text-wrap h1,.item-complex.item-text-wrap h2,.item-complex.item-text-wrap h3,.item-complex.item-text-wrap h4,.item-complex.item-text-wrap h5,.item-complex.item-text-wrap h6,.item-complex.item-text-wrap p{overflow:visible;white-space:normal}.item-complex.item-light>.item-content{border-color:#ddd;background-color:#fff;color:#444}.item-complex.item-light>.item-content.active,.item-complex.item-light>.item-content:active{border-color:#ccc;background-color:#fafafa}.item-complex.item-light>.item-content.active.item-complex>.item-content,.item-complex.item-light>.item-content:active.item-complex>.item-content{border-color:#ccc;background-color:#fafafa}.item-complex.item-stable>.item-content{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item-complex.item-stable>.item-content.active,.item-complex.item-stable>.item-content:active{border-color:#a2a2a2;background-color:#e5e5e5}.item-complex.item-stable>.item-content.active.item-complex>.item-content,.item-complex.item-stable>.item-content:active.item-complex>.item-content{border-color:#a2a2a2;background-color:#e5e5e5}.item-complex.item-positive>.item-content{border-color:#0c60ee;background-color:#387ef5;color:#fff}.item-complex.item-positive>.item-content.active,.item-complex.item-positive>.item-content:active{border-color:#0c60ee;background-color:#0c60ee}.item-complex.item-positive>.item-content.active.item-complex>.item-content,.item-complex.item-positive>.item-content:active.item-complex>.item-content{border-color:#0c60ee;background-color:#0c60ee}.item-complex.item-calm>.item-content{border-color:#0a9dc7;background-color:#11c1f3;color:#fff}.item-complex.item-calm>.item-content.active,.item-complex.item-calm>.item-content:active{border-color:#0a9dc7;background-color:#0a9dc7}.item-complex.item-calm>.item-content.active.item-complex>.item-content,.item-complex.item-calm>.item-content:active.item-complex>.item-content{border-color:#0a9dc7;background-color:#0a9dc7}.item-complex.item-assertive>.item-content{border-color:#e42112;background-color:#ef473a;color:#fff}.item-complex.item-assertive>.item-content.active,.item-complex.item-assertive>.item-content:active{border-color:#e42112;background-color:#e42112}.item-complex.item-assertive>.item-content.active.item-complex>.item-content,.item-complex.item-assertive>.item-content:active.item-complex>.item-content{border-color:#e42112;background-color:#e42112}.item-complex.item-balanced>.item-content{border-color:#28a54c;background-color:#33cd5f;color:#fff}.item-complex.item-balanced>.item-content.active,.item-complex.item-balanced>.item-content:active{border-color:#28a54c;background-color:#28a54c}.item-complex.item-balanced>.item-content.active.item-complex>.item-content,.item-complex.item-balanced>.item-content:active.item-complex>.item-content{border-color:#28a54c;background-color:#28a54c}.item-complex.item-energized>.item-content{border-color:#e6b500;background-color:#ffc900;color:#fff}.item-complex.item-energized>.item-content.active,.item-complex.item-energized>.item-content:active{border-color:#e6b500;background-color:#e6b500}.item-complex.item-energized>.item-content.active.item-complex>.item-content,.item-complex.item-energized>.item-content:active.item-complex>.item-content{border-color:#e6b500;background-color:#e6b500}.item-complex.item-royal>.item-content{border-color:#6b46e5;background-color:#886aea;color:#fff}.item-complex.item-royal>.item-content.active,.item-complex.item-royal>.item-content:active{border-color:#6b46e5;background-color:#6b46e5}.item-complex.item-royal>.item-content.active.item-complex>.item-content,.item-complex.item-royal>.item-content:active.item-complex>.item-content{border-color:#6b46e5;background-color:#6b46e5}.item-complex.item-dark>.item-content{border-color:#111;background-color:#444;color:#fff}.item-complex.item-dark>.item-content.active,.item-complex.item-dark>.item-content:active{border-color:#000;background-color:#262626}.item-complex.item-dark>.item-content.active.item-complex>.item-content,.item-complex.item-dark>.item-content:active.item-complex>.item-content{border-color:#000;background-color:#262626}#menu .footer .item-icon-left .icon-help,#menu .footer .item-icon-right .icon-help,.item-icon-left #menu .footer .icon-help,.item-icon-left .icon,.item-icon-left .icon-alert,.item-icon-left .icon-help,.item-icon-right #menu .footer .icon-help,.item-icon-right .icon,.item-icon-right .icon-alert,.item-icon-right .icon-help{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}#menu .footer .item-icon-left .icon-help:before,#menu .footer .item-icon-right .icon-help:before,.item-icon-left #menu .footer .icon-help:before,.item-icon-left .icon-alert:before,.item-icon-left .icon-help:before,.item-icon-left .icon:before,.item-icon-right #menu .footer .icon-help:before,.item-icon-right .icon-alert:before,.item-icon-right .icon-help:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:54px}#menu .footer .item-icon-left .icon-help,.item-icon-left #menu .footer .icon-help,.item-icon-left .icon,.item-icon-left .icon-alert,.item-icon-left .icon-help{left:11px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:54px}.item-icon-right{padding-right:54px}#menu .footer .item-icon-right .icon-help,.item-icon-right #menu .footer .icon-help,.item-icon-right .icon,.item-icon-right .icon-alert,.item-icon-right .icon-help{right:11px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:54px}#menu .footer .item-icon-left.item-icon-right .icon-help:first-child,.item-icon-left.item-icon-right #menu .footer .icon-help:first-child,.item-icon-left.item-icon-right .icon-alert:first-child,.item-icon-left.item-icon-right .icon-help:first-child,.item-icon-left.item-icon-right .icon:first-child{right:auto}#menu .footer .item-icon-left .item-delete .icon-help,#menu .footer .item-icon-left.item-icon-right .icon-help:last-child,.item-icon-left .item-delete #menu .footer .icon-help,.item-icon-left .item-delete .icon,.item-icon-left .item-delete .icon-alert,.item-icon-left .item-delete .icon-help,.item-icon-left.item-icon-right #menu .footer .icon-help:last-child,.item-icon-left.item-icon-right .icon-alert:last-child,.item-icon-left.item-icon-right .icon-help:last-child,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px}.item-button-left{padding-left:72px}.item-button-left .item-content>.button,.item-button-left>.button{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;left:11px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}#menu .footer .item-button-left .item-content>.button .icon-help:before,#menu .footer .item-button-left>.button .icon-help:before,.item-button-left .item-content>.button #menu .footer .icon-help:before,.item-button-left .item-content>.button .icon-alert:before,.item-button-left .item-content>.button .icon-help:before,.item-button-left .item-content>.button .icon:before,.item-button-left>.button #menu .footer .icon-help:before,.item-button-left>.button .icon-alert:before,.item-button-left>.button .icon-help:before,.item-button-left>.button .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-left .item-content>.button>.button,.item-button-left>.button>.button{margin:0 2px;min-height:34px;font-size:18px;line-height:32px}.item-button-right,a.item.item-button-right,button.item.item-button-right{padding-right:80px}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;right:16px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}#menu .footer .item-button-right .item-content>.button .icon-help:before,#menu .footer .item-button-right .item-content>.buttons .icon-help:before,#menu .footer .item-button-right>.button .icon-help:before,#menu .footer .item-button-right>.buttons .icon-help:before,.item-button-right .item-content>.button #menu .footer .icon-help:before,.item-button-right .item-content>.button .icon-alert:before,.item-button-right .item-content>.button .icon-help:before,.item-button-right .item-content>.button .icon:before,.item-button-right .item-content>.buttons #menu .footer .icon-help:before,.item-button-right .item-content>.buttons .icon-alert:before,.item-button-right .item-content>.buttons .icon-help:before,.item-button-right .item-content>.buttons .icon:before,.item-button-right>.button #menu .footer .icon-help:before,.item-button-right>.button .icon-alert:before,.item-button-right>.button .icon-help:before,.item-button-right>.button .icon:before,.item-button-right>.buttons #menu .footer .icon-help:before,.item-button-right>.buttons .icon-alert:before,.item-button-right>.buttons .icon-help:before,.item-button-right>.buttons .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-right .item-content>.button>.button,.item-button-right .item-content>.buttons>.button,.item-button-right>.button>.button,.item-button-right>.buttons>.button{margin:0 2px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-left.item-button-right .button:first-child{right:auto}.item-button-left.item-button-right .button:last-child{left:auto}.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:72px;min-height:72px}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{position:absolute;top:16px;left:16px;max-width:40px;max-height:40px;width:100%;height:100%;border-radius:50%}.item-avatar-right,.item-avatar-right .item-content{padding-right:72px;min-height:72px}.item-avatar-right .item-content .item-image,.item-avatar-right .item-content>img:first-child,.item-avatar-right .item-image,.item-avatar-right>img:first-child{position:absolute;top:16px;right:16px;max-width:40px;max-height:40px;width:100%;height:100%;border-radius:50%}.item-thumbnail-left,.item-thumbnail-left .item-content{padding-top:8px;padding-left:106px;min-height:100px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{position:absolute;top:10px;left:10px;max-width:80px;max-height:80px;width:100%;height:100%}.item-avatar-left.item-complex,.item-avatar.item-complex,.item-thumbnail-left.item-complex{padding-top:0;padding-left:0}.item-thumbnail-right,.item-thumbnail-right .item-content{padding-top:8px;padding-right:106px;min-height:100px}.item-thumbnail-right .item-content .item-image,.item-thumbnail-right .item-content>img:first-child,.item-thumbnail-right .item-image,.item-thumbnail-right>img:first-child{position:absolute;top:10px;right:10px;max-width:80px;max-height:80px;width:100%;height:100%}.item-avatar-right.item-complex,.item-thumbnail-right.item-complex{padding-top:0;padding-right:0}.item-image{padding:0;text-align:center}.item-image .list-img,.item-image img:first-child{width:100%;vertical-align:middle}.item-body{overflow:auto;padding:16px;text-overflow:inherit;white-space:normal}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p{margin-top:16px;margin-bottom:16px}.item-divider{padding-top:8px;padding-bottom:8px;min-height:30px;background-color:#f5f5f5;color:#222;font-weight:500}.item-divider-ios,.platform-ios .item-divider-platform{padding-top:26px;text-transform:uppercase;font-weight:300;font-size:13px;background-color:#efeff4;color:#555}.item-divider-android,.platform-android .item-divider-platform{font-weight:300;font-size:13px}.item-note{float:right;color:#aaa;font-size:14px}.item-left-editable .item-content,.item-right-editable .item-content{-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(50px,0,0);transform:translate3d(50px,0,0)}.item-remove-animate.ng-leave{-webkit-transition-duration:.3s;transition-duration:.3s}.item-remove-animate.ng-leave .item-content,.item-remove-animate.ng-leave:last-of-type{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;-webkit-transition-property:all;transition-property:all}.item-remove-animate.ng-leave.ng-leave-active .item-content{opacity:0;-webkit-transform:translate3d(-100%,0,0)!important;transform:translate3d(-100%,0,0)!important}.item-remove-animate.ng-leave.ng-leave-active:last-of-type{opacity:0}.item-remove-animate.ng-leave.ng-leave-active~ion-item:not(.ng-leave){-webkit-transform:translate3d(0,-webkit-calc(-100% + 1px),0);transform:translate3d(0,calc(-100% + 1px),0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.25,.81,.24,1);transition-timing-function:cubic-bezier(.25,.81,.24,1);-webkit-transition-property:all;transition-property:all}.item-left-edit{-webkit-transition:all ease-in-out 125ms;transition:all ease-in-out 125ms;position:absolute;top:0;left:0;z-index:0;width:50px;height:100%;line-height:100%;display:none;opacity:0;-webkit-transform:translate3d(-21px,0,0);transform:translate3d(-21px,0,0)}.item-left-edit .button{height:100%}#menu .footer .item-left-edit .button.icon-help,.item-left-edit #menu .footer .button.icon-help,.item-left-edit .button.icon,.item-left-edit .button.icon-alert,.item-left-edit .button.icon-help{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%}.item-left-edit.visible{display:block}.item-left-edit.visible.active{opacity:1;-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}.list-left-editing .item-left-edit{-webkit-transition-delay:125ms;transition-delay:125ms}#menu .footer .item-delete .button.icon-help,.item-delete #menu .footer .button.icon-help,.item-delete .button.icon,.item-delete .button.icon-alert,.item-delete .button.icon-help{color:#ef473a;font-size:24px}#menu .footer .item-delete .button.icon-help:hover,.item-delete #menu .footer .button.icon-help:hover,.item-delete .button.icon-alert:hover,.item-delete .button.icon-help:hover,.item-delete .button.icon:hover{opacity:.7}.item-right-edit{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;z-index:3;width:75px;height:100%;background:inherit;padding-left:20px;display:block;opacity:0;-webkit-transform:translate3d(75px,0,0);transform:translate3d(75px,0,0)}.item-right-edit .button{min-width:50px;height:100%}#menu .footer .item-right-edit .button.icon-help,.item-right-edit #menu .footer .button.icon-help,.item-right-edit .button.icon,.item-right-edit .button.icon-alert,.item-right-edit .button.icon-help{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-right-edit.visible{display:block}.item-right-edit.visible.active{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}#menu .footer .item-reorder .button.icon-help,.item-reorder #menu .footer .button.icon-help,.item-reorder .button.icon,.item-reorder .button.icon-alert,.item-reorder .button.icon-help{color:#444;font-size:32px}.item-reordering{position:absolute;left:0;top:0;z-index:9;width:100%;box-shadow:0 0 10px 0 #aaa}.item-reordering .item-reorder{z-index:9}.item-placeholder{opacity:.7}.item-options{position:absolute;top:0;right:0;z-index:1;height:100%}.item-options .button{height:100%;border:none;border-radius:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.item-options .button:before{margin:0 auto}.item-options ion-option-button:last-child{padding-right:calc(constant(safe-area-inset-right) + 12px);padding-right:calc(env(safe-area-inset-right) + 12px)}.list{position:relative;padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list:last-child.card{margin-bottom:40px}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card{padding-top:1px;padding-bottom:1px;box-shadow:0 1px 3px rgba(0,0,0,.3)}.card .item{border-left:0;border-right:0}.card .item:first-child{border-top:0}.card .item:last-child{border-bottom:0}.item.large-button-bar .card,.item.large-button-bar .list-inset,.padding .card,.padding .list-inset{margin-left:0;margin-right:0}.card .item:first-child,.item.large-button-bar>.list .item:first-child,.list-inset .item:first-child,.padding>.list .item:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:first-child .item-content,.item.large-button-bar>.list .item:first-child .item-content,.list-inset .item:first-child .item-content,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.item.large-button-bar>.list .item:last-child,.list-inset .item:last-child,.padding>.list .item:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child .item-content,.item.large-button-bar>.list .item:last-child .item-content,.list-inset .item:last-child .item-content,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item,.item.large-button-bar>.list .item,.list-inset .item,.padding-horizontal>.list .item,.padding>.list .item{margin-right:0;margin-left:0}.card .item.item-input input,.item.large-button-bar>.list .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item,.popover-share .bar-footer .button-close>.list .item{margin-right:0}.badge{background-color:transparent;color:#aaa;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;vertical-align:baseline;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#387ef5;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#11c1f3;color:#fff}.badge.badge-assertive,.badge.badge-editable:hover,.tabs .tab-item .badge.badge-assertive,.tabs .tab-item .badge.badge-editable:hover{background-color:#ef473a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#33cd5f;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#ffc900;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#886aea;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{position:relative;top:-1px}.slider{position:relative;visibility:hidden;overflow:hidden}.slider-slides{position:relative;height:100%}.slider-slide{position:relative;display:block;float:left;width:100%;height:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}.slider-pager-page.ng-animate,.slider-pager-page.ng-enter,.slider-pager-page.ng-leave,.slider-slide.ng-animate,.slider-slide.ng-enter,.slider-slide.ng-leave{-webkit-transition:none!important;transition:none!important}.slider-pager-page.ng-animate,.slider-slide.ng-animate{-webkit-animation:none 0s;animation:none 0s}.swiper-container{margin:0 auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{display:block;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination{bottom:10px;left:0;width:100%}.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet{margin:0 5px}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;width:100%;height:100%;z-index:1}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}ion-slides{width:100%;height:100%;display:block}.slide-zoom{display:block;width:100%;text-align:center}.swiper-container{width:100%;height:100%;padding:0;overflow:hidden}.swiper-wrapper{position:absolute;left:0;top:0;width:100%;height:100%;padding:0}.swiper-slide{width:100%;height:100%;box-sizing:border-box}.swiper-slide img{width:auto;height:auto;max-width:100%;max-height:100%}.scroll-refresher{position:absolute;top:-60px;right:0;left:0;overflow:hidden;margin:auto;height:60px}.scroll-refresher .ionic-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}.scroll-refresher .ionic-refresher-content .text-pulling,.scroll-refresher .ionic-refresher-content .text-refreshing{font-size:16px;line-height:16px}.scroll-refresher .ionic-refresher-content.ionic-refresher-with-text{bottom:10px}.scroll-refresher .icon-pulling,.scroll-refresher .icon-refreshing{width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.scroll-refresher .icon-pulling{-webkit-animation-name:refresh-spin-back;animation-name:refresh-spin-back;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:none;animation-fill-mode:none;-webkit-transform:translate3d(0,0,0) rotate(0);transform:translate3d(0,0,0) rotate(0)}.scroll-refresher .icon-refreshing,.scroll-refresher .text-refreshing{display:none}.scroll-refresher .icon-refreshing{-webkit-animation-duration:1.5s;animation-duration:1.5s}.scroll-refresher.active .icon-pulling:not(.pulling-rotation-disabled){-webkit-animation-name:refresh-spin;animation-name:refresh-spin;-webkit-transform:translate3d(0,0,0) rotate(-180deg);transform:translate3d(0,0,0) rotate(-180deg)}.scroll-refresher.active.refreshing{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;-webkit-transition:transform .2s;transition:transform .2s;-webkit-transform:scale(1,1);transform:scale(1,1)}.scroll-refresher.active.refreshing .icon-pulling,.scroll-refresher.active.refreshing .text-pulling{display:none}.scroll-refresher.active.refreshing .icon-refreshing,.scroll-refresher.active.refreshing .text-refreshing{display:block}.scroll-refresher.active.refreshing.refreshing-tail{-webkit-transform:scale(0,0);transform:scale(0,0)}.overflow-scroll>.scroll{-webkit-overflow-scrolling:touch;width:100%}.overflow-scroll>.scroll.overscroll{position:fixed;right:0;left:0}.overflow-scroll.item.large-button-bar>.scroll.overscroll,.overflow-scroll.padding>.scroll.overscroll{padding:10px}@-webkit-keyframes refresh-spin{0%{-webkit-transform:translate3d(0,0,0) rotate(0)}100%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}}@keyframes refresh-spin{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(0,0,0) rotate(180deg)}}@-webkit-keyframes refresh-spin-back{0%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}100%{-webkit-transform:translate3d(0,0,0) rotate(0)}}@keyframes refresh-spin-back{0%{transform:translate3d(0,0,0) rotate(180deg)}100%{transform:translate3d(0,0,0) rotate(0)}}.spinner{stroke:#444;fill:#444}.spinner svg{width:28px;height:28px}.spinner.spinner-light{stroke:#fff;fill:#fff}.spinner.spinner-stable{stroke:#f8f8f8;fill:#f8f8f8}.spinner.spinner-positive{stroke:#387ef5;fill:#387ef5}.spinner.spinner-calm{stroke:#11c1f3;fill:#11c1f3}.spinner.spinner-balanced{stroke:#33cd5f;fill:#33cd5f}.spinner.spinner-assertive{stroke:#ef473a;fill:#ef473a}.spinner.spinner-energized{stroke:#ffc900;fill:#ffc900}.spinner.spinner-royal{stroke:#886aea;fill:#886aea}.spinner.spinner-dark{stroke:#444;fill:#444}.spinner-android{stroke:#4b8bf4}.spinner-ios,.spinner-ios-small{stroke:#69717d}.spinner-spiral .stop1{stop-color:#fff;stop-opacity:0}.spinner-spiral.spinner-light .stop1{stop-color:#444}.spinner-spiral.spinner-light .stop2{stop-color:#fff}.spinner-spiral.spinner-stable .stop2{stop-color:#f8f8f8}.spinner-spiral.spinner-positive .stop2{stop-color:#387ef5}.spinner-spiral.spinner-calm .stop2{stop-color:#11c1f3}.spinner-spiral.spinner-balanced .stop2{stop-color:#33cd5f}.spinner-spiral.spinner-assertive .stop2{stop-color:#ef473a}.spinner-spiral.spinner-energized .stop2{stop-color:#ffc900}.spinner-spiral.spinner-royal .stop2{stop-color:#886aea}.spinner-spiral.spinner-dark .stop2{stop-color:#444}form{margin:0 0 1.42857}legend{display:block;margin-bottom:1.42857;padding:0;width:100%;border:1px solid #ddd;color:#444;font-size:21px;line-height:2.85714}legend small{color:#f8f8f8;font-size:1.07143}button,input,label,select,textarea{font-weight:400;font-size:14px;line-height:1.42857}button,input,select,textarea{font-family:"-apple-system","Helvetica Neue",Roboto,"Segoe UI",sans-serif}.item-input{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:6px 0 5px 16px}.item-input input{-webkit-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 220px;-moz-box-flex:1;-moz-flex:1 220px;-ms-flex:1 220px;flex:1 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding-right:24px;background-color:transparent}#menu .footer .item-input .button .icon-help,.item-input .button #menu .footer .icon-help,.item-input .button .icon,.item-input .button .icon-alert,.item-input .button .icon-help{-webkit-box-flex:0;-webkit-flex:0 0 24px;-moz-box-flex:0;-moz-flex:0 0 24px;-ms-flex:0 0 24px;flex:0 0 24px;position:static;display:inline-block;height:auto;text-align:center;font-size:16px}.item-input .button-bar{-webkit-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none}#menu .footer .item-input .icon-help,.item-input #menu .footer .icon-help,.item-input .icon,.item-input .icon-alert,.item-input .icon-help{min-width:14px}.platform-windowsphone .item-input input{flex-shrink:1}.item-input-inset{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:10.66667px}.item-input-wrapper{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 0;-moz-box-flex:1;-moz-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-border-radius:4px;border-radius:4px;padding-right:8px;padding-left:8px;background:#eee}.item-input-inset .item-input-wrapper input{padding-left:4px;height:29px;background:0 0;line-height:18px}.item-input-wrapper~.button{margin-left:10.66667px}.input-label{display:table;padding:7px 10px 7px 0;max-width:200px;width:35%;color:#444;font-size:16px}.placeholder-icon{color:#aaa}.placeholder-icon:first-child{padding-right:6px}.placeholder-icon:last-child{padding-left:6px}.item-stacked-label{display:block;background-color:transparent;box-shadow:none}#menu .footer .item-stacked-label .icon-help,.item-stacked-label #menu .footer .icon-help,.item-stacked-label .icon,.item-stacked-label .icon-alert,.item-stacked-label .icon-help,.item-stacked-label .input-label{display:inline-block;padding:4px 0 0 0;vertical-align:middle}.item-stacked-label input,.item-stacked-label textarea{-webkit-border-radius:2px;border-radius:2px;padding:4px 8px 3px 0;border:none;background-color:#fff}.item-stacked-label input{overflow:hidden;height:46px}.item-select.item-stacked-label select{position:relative;padding:0;max-width:90%;direction:ltr;white-space:pre-wrap;margin:-3px}.item-floating-label{display:block;background-color:transparent;box-shadow:none}.item-floating-label .input-label{position:relative;padding:5px 0 0 0;opacity:0;top:10px;-webkit-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}.item-floating-label .input-label.has-input{opacity:1;top:0;-webkit-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{display:block;padding-top:2px;padding-left:0;height:34px;color:#111;vertical-align:middle;font-size:14px;line-height:16px}.platform-android input[type=date],.platform-android input[type=datetime-local],.platform-android input[type=month],.platform-android input[type=time],.platform-android input[type=week],.platform-ios input[type=date],.platform-ios input[type=datetime-local],.platform-ios input[type=month],.platform-ios input[type=time],.platform-ios input[type=week]{padding-top:8px}.item-input input,.item-input textarea{width:100%}textarea{padding-left:0}textarea::-moz-placeholder{color:#aaa}textarea:-ms-input-placeholder{color:#aaa}textarea::-webkit-input-placeholder{color:#aaa;text-indent:-3px}textarea{height:auto}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{border:0}input[type=checkbox],input[type=radio]{margin:0;line-height:normal}.item-input input[type=button],.item-input input[type=checkbox],.item-input input[type=file],.item-input input[type=image],.item-input input[type=radio],.item-input input[type=reset],.item-input input[type=submit]{width:auto}input[type=file]{line-height:34px}.cloned-text-input+input,.cloned-text-input+textarea,.previous-input-focus{position:absolute!important;left:-9999px;width:200px}input::-moz-placeholder,textarea::-moz-placeholder{color:#aaa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#aaa}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa;text-indent:0}input[disabled],input[readonly]:not(.cloned-text-input),select[disabled],select[readonly],textarea[disabled],textarea[readonly]:not(.cloned-text-input){background-color:#f8f8f8;cursor:not-allowed}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{background-color:transparent}.checkbox{position:relative;display:inline-block;padding:7px 7px;cursor:pointer}.checkbox .checkbox-icon:before,.checkbox input:before{border-color:#ddd}.checkbox input:checked+.checkbox-icon:before,.checkbox input:checked:before{background:#387ef5;border-color:#387ef5}.checkbox-light .checkbox-icon:before,.checkbox-light input:before{border-color:#ddd}.checkbox-light input:checked+.checkbox-icon:before,.checkbox-light input:checked:before{background:#ddd;border-color:#ddd}.checkbox-stable .checkbox-icon:before,.checkbox-stable input:before{border-color:#b2b2b2}.checkbox-stable input:checked+.checkbox-icon:before,.checkbox-stable input:checked:before{background:#b2b2b2;border-color:#b2b2b2}.checkbox-positive .checkbox-icon:before,.checkbox-positive input:before{border-color:#387ef5}.checkbox-positive input:checked+.checkbox-icon:before,.checkbox-positive input:checked:before{background:#387ef5;border-color:#387ef5}.checkbox-calm .checkbox-icon:before,.checkbox-calm input:before{border-color:#11c1f3}.checkbox-calm input:checked+.checkbox-icon:before,.checkbox-calm input:checked:before{background:#11c1f3;border-color:#11c1f3}.checkbox-assertive .checkbox-icon:before,.checkbox-assertive input:before{border-color:#ef473a}.checkbox-assertive input:checked+.checkbox-icon:before,.checkbox-assertive input:checked:before{background:#ef473a;border-color:#ef473a}.checkbox-balanced .checkbox-icon:before,.checkbox-balanced input:before{border-color:#33cd5f}.checkbox-balanced input:checked+.checkbox-icon:before,.checkbox-balanced input:checked:before{background:#33cd5f;border-color:#33cd5f}.checkbox-energized .checkbox-icon:before,.checkbox-energized input:before{border-color:#ffc900}.checkbox-energized input:checked+.checkbox-icon:before,.checkbox-energized input:checked:before{background:#ffc900;border-color:#ffc900}.checkbox-royal .checkbox-icon:before,.checkbox-royal input:before{border-color:#886aea}.checkbox-royal input:checked+.checkbox-icon:before,.checkbox-royal input:checked:before{background:#886aea;border-color:#886aea}.checkbox-dark .checkbox-icon:before,.checkbox-dark input:before{border-color:#444}.checkbox-dark input:checked+.checkbox-icon:before,.checkbox-dark input:checked:before{background:#444;border-color:#444}.checkbox input:disabled+.checkbox-icon:before,.checkbox input:disabled:before{border-color:#ddd}.checkbox input:disabled:checked+.checkbox-icon:before,.checkbox input:disabled:checked:before{background:#ddd}.checkbox.checkbox-input-hidden input{display:none!important}.checkbox input,.checkbox-icon{position:relative;width:28px;height:28px;display:block;border:0;background:0 0;cursor:pointer;-webkit-appearance:none}.checkbox input:before,.checkbox-icon:before{display:table;width:100%;height:100%;border-width:1px;border-style:solid;border-radius:28px;background:#fff;content:' ';-webkit-transition:background-color 20ms ease-in-out;transition:background-color 20ms ease-in-out}.checkbox input:checked:before,input:checked+.checkbox-icon:before{border-width:2px}.checkbox input:after,.checkbox-icon:after{-webkit-transition:opacity 50ms ease-in-out;transition:opacity 50ms ease-in-out;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);position:absolute;top:33%;left:25%;display:table;width:14px;height:6px;border:1px solid #fff;border-top:0;border-right:0;content:' ';opacity:0}.checkbox-square .checkbox-icon:before,.checkbox-square input:before,.platform-android .checkbox-platform .checkbox-icon:before,.platform-android .checkbox-platform input:before{border-radius:2px;width:72%;height:72%;margin-top:14%;margin-left:14%;border-width:2px}.checkbox-square .checkbox-icon:after,.checkbox-square input:after,.platform-android .checkbox-platform .checkbox-icon:after,.platform-android .checkbox-platform input:after{border-width:2px;top:19%;left:25%;width:13px;height:7px}.platform-android .item-checkbox-right .checkbox-square .checkbox-icon::after{top:31%}.grade-c .checkbox input:after,.grade-c .checkbox-icon:after{-webkit-transform:rotate(0);transform:rotate(0);top:3px;left:4px;border:none;color:#fff;content:'\2713';font-weight:700;font-size:20px}.checkbox input:checked:after,input:checked+.checkbox-icon:after{opacity:1}.item-checkbox{padding-left:60px}.item-checkbox.active{box-shadow:none}.item-checkbox .checkbox{position:absolute;top:50%;right:8px;left:8px;z-index:3;margin-top:-21px}.item-checkbox.item-checkbox-right{padding-right:60px;padding-left:16px}.item-checkbox-right .checkbox input,.item-checkbox-right .checkbox-icon{float:right}.item-toggle{pointer-events:none}.toggle{position:relative;display:inline-block;pointer-events:auto;margin:-5px;padding:5px}.toggle input:checked+.track{border-color:#4cd964;background-color:#4cd964}.toggle.dragging .handle{background-color:#f2f2f2!important}.toggle.toggle-light input:checked+.track{border-color:#ddd;background-color:#ddd}.toggle.toggle-stable input:checked+.track{border-color:#b2b2b2;background-color:#b2b2b2}.toggle.toggle-positive input:checked+.track{border-color:#387ef5;background-color:#387ef5}.toggle.toggle-calm input:checked+.track{border-color:#11c1f3;background-color:#11c1f3}.toggle.toggle-assertive input:checked+.track{border-color:#ef473a;background-color:#ef473a}.toggle.toggle-balanced input:checked+.track{border-color:#33cd5f;background-color:#33cd5f}.toggle.toggle-energized input:checked+.track{border-color:#ffc900;background-color:#ffc900}.toggle.toggle-royal input:checked+.track{border-color:#886aea;background-color:#886aea}.toggle.toggle-dark input:checked+.track{border-color:#444;background-color:#444}.toggle input{display:none}.toggle .track{-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:background-color,border;transition-property:background-color,border;display:inline-block;box-sizing:border-box;width:51px;height:31px;border:solid 2px #e6e6e6;border-radius:20px;background-color:#fff;content:' ';cursor:pointer;pointer-events:none}.platform-android4_2 .toggle .track{-webkit-background-clip:padding-box}.toggle .handle{-webkit-transition:.3s cubic-bezier(0,1.1,1,1.1);transition:.3s cubic-bezier(0,1.1,1,1.1);-webkit-transition-property:background-color,transform;transition-property:background-color,transform;position:absolute;display:block;width:27px;height:27px;border-radius:27px;background-color:#fff;top:7px;left:7px;box-shadow:0 2px 7px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.15)}.toggle .handle:before{position:absolute;top:-4px;left:-21.5px;padding:18.5px 34px;content:" "}.toggle input:checked+.track .handle{-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0);background-color:#fff}.item-toggle.active{box-shadow:none}.item-toggle,.item-toggle.item-complex .item-content{padding-right:99px}.item-toggle.item-complex{padding-right:0}.item-toggle .toggle{position:absolute;top:10px;right:16px;z-index:3}.toggle input:disabled+.track{opacity:.6}.toggle-small .track{border:0;width:34px;height:15px;background:#9e9e9e}.toggle-small input:checked+.track{background:rgba(0,150,137,.5)}.toggle-small .handle{top:2px;left:4px;width:21px;height:21px;box-shadow:0 2px 5px rgba(0,0,0,.25)}.toggle-small input:checked+.track .handle{-webkit-transform:translate3d(16px,0,0);transform:translate3d(16px,0,0);background:#009689}.toggle-small.item-toggle .toggle{top:19px}.toggle-small .toggle-light input:checked+.track{background-color:rgba(221,221,221,.5)}.toggle-small .toggle-light input:checked+.track .handle{background-color:#ddd}.toggle-small .toggle-stable input:checked+.track{background-color:rgba(178,178,178,.5)}.toggle-small .toggle-stable input:checked+.track .handle{background-color:#b2b2b2}.toggle-small .toggle-positive input:checked+.track{background-color:rgba(56,126,245,.5)}.toggle-small .toggle-positive input:checked+.track .handle{background-color:#387ef5}.toggle-small .toggle-calm input:checked+.track{background-color:rgba(17,193,243,.5)}.toggle-small .toggle-calm input:checked+.track .handle{background-color:#11c1f3}.toggle-small .toggle-assertive input:checked+.track{background-color:rgba(239,71,58,.5)}.toggle-small .toggle-assertive input:checked+.track .handle{background-color:#ef473a}.toggle-small .toggle-balanced input:checked+.track{background-color:rgba(51,205,95,.5)}.toggle-small .toggle-balanced input:checked+.track .handle{background-color:#33cd5f}.toggle-small .toggle-energized input:checked+.track{background-color:rgba(255,201,0,.5)}.toggle-small .toggle-energized input:checked+.track .handle{background-color:#ffc900}.toggle-small .toggle-royal input:checked+.track{background-color:rgba(136,106,234,.5)}.toggle-small .toggle-royal input:checked+.track .handle{background-color:#886aea}.toggle-small .toggle-dark input:checked+.track{background-color:rgba(68,68,68,.5)}.toggle-small .toggle-dark input:checked+.track .handle{background-color:#444}.item-radio{padding:0}.item-radio:hover{cursor:pointer}.item-radio .item-content{padding-right:64px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:14px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked+.radio-content .item-content{background:#f7f7f7}.item-radio input:checked+.radio-content .radio-icon{visibility:visible}.range input{display:inline-block;overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:43px;outline:0;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,#ccc),color-stop(100%,#ccc));background:linear-gradient(to right,#ccc 0,#ccc 100%);background-position:center;background-size:99% 2px;background-repeat:no-repeat;-webkit-appearance:none}.range input::-moz-focus-outer{border:0}.range input::-webkit-slider-thumb{position:relative;width:28px;height:28px;border-radius:50%;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.3),0 3px 5px rgba(0,0,0,.2);cursor:pointer;-webkit-appearance:none;border:0}.range input::-webkit-slider-thumb:before{position:absolute;top:13px;left:-2001px;width:2000px;height:2px;background:#444;content:' '}.range input::-webkit-slider-thumb:after{position:absolute;top:-15px;left:-15px;padding:30px;content:' '}.range input::-ms-fill-lower{height:2px;background:#444}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 11px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-light input::-ms-fill-lower{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-stable input::-ms-fill-lower{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#387ef5}.range.range-positive input::-ms-fill-lower{background:#387ef5}.range.range-calm input::-webkit-slider-thumb:before{background:#11c1f3}.range.range-calm input::-ms-fill-lower{background:#11c1f3}.range.range-balanced input::-webkit-slider-thumb:before{background:#33cd5f}.range.range-balanced input::-ms-fill-lower{background:#33cd5f}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef473a}.range.range-assertive input::-ms-fill-lower{background:#ef473a}.range.range-energized input::-webkit-slider-thumb:before{background:#ffc900}.range.range-energized input::-ms-fill-lower{background:#ffc900}.range.range-royal input::-webkit-slider-thumb:before{background:#886aea}.range.range-royal input::-ms-fill-lower{background:#886aea}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range.range-dark input::-ms-fill-lower{background:#444}#menu .footer .range .icon-help,.range #menu .footer .icon-help,.range .icon,.range .icon-alert,.range .icon-help{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.platform-windowsphone .range input{height:auto}.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;bottom:0;right:0;padding:0 48px 0 16px;max-width:65%;border:none;background:#fff;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;cursor:pointer;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:16px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:#999;content:"";pointer-events:none}.item-select.item-light select{background:#fff;color:#444}.item-select.item-stable select{background:#f8f8f8;color:#444}.item-select.item-stable .input-label,.item-select.item-stable:after{color:#666}.item-select.item-positive select{background:#387ef5;color:#fff}.item-select.item-positive .input-label,.item-select.item-positive:after{color:#fff}.item-select.item-calm select{background:#11c1f3;color:#fff}.item-select.item-calm .input-label,.item-select.item-calm:after{color:#fff}.item-select.item-assertive select{background:#ef473a;color:#fff}.item-select.item-assertive .input-label,.item-select.item-assertive:after{color:#fff}.item-select.item-balanced select{background:#33cd5f;color:#fff}.item-select.item-balanced .input-label,.item-select.item-balanced:after{color:#fff}.item-select.item-energized select{background:#ffc900;color:#fff}.item-select.item-energized .input-label,.item-select.item-energized:after{color:#fff}.item-select.item-royal select{background:#886aea;color:#fff}.item-select.item-royal .input-label,.item-select.item-royal:after{color:#fff}.item-select.item-dark select{background:#444;color:#fff}.item-select.item-dark .input-label,.item-select.item-dark:after{color:#fff}select[multiple],select[size]{height:auto}progress{display:block;margin:15px auto;width:100%}.button{border-color:transparent;background-color:#f8f8f8;color:#444;position:relative;display:inline-block;margin:0;padding:0 12px;min-width:52px;min-height:47px;border-width:1px;border-style:solid;border-radius:4px;vertical-align:top;text-align:center;text-overflow:ellipsis;font-size:16px;line-height:42px;cursor:pointer}.button:hover{color:#444;text-decoration:none}.button.activated,.button.active{border-color:#a2a2a2;background-color:#e5e5e5}.button:after{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;content:' '}#menu .footer .button .icon-help,.button #menu .footer .icon-help,.button .icon,.button .icon-alert,.button .icon-help{vertical-align:top;pointer-events:none}#menu .footer .button .icon-help:before,#menu .footer .button.icon-help:before,.button #menu .footer .icon-help:before,.button .icon-alert:before,.button .icon-help:before,.button .icon:before,.button.icon-alert:before,.button.icon-help:before,.button.icon-left:before,.button.icon-right:before,.button.icon:before{display:inline-block;padding:0 0 1px 0;vertical-align:inherit;font-size:24px;line-height:41px;pointer-events:none}.button.icon-left:before{float:left;padding-right:.2em;padding-left:0}.button.icon-right:before{float:right;padding-right:0;padding-left:.2em}.button.button-block,.button.button-full{margin-top:10px;margin-bottom:10px}.button.button-light{border-color:transparent;background-color:#fff;color:#444}.button.button-light:hover{color:#444;text-decoration:none}.button.button-light.activated,.button.button-light.active{border-color:#a2a2a2;background-color:#fafafa}.button.button-light.button-clear,.button.button-light.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#ddd}.button.button-light.button-icon{border-color:transparent;background:0 0}.button.button-light.button-outline{border-color:#ddd;background:0 0;color:#ddd}.button.button-light.button-outline.activated,.button.button-light.button-outline.active{background-color:#ddd;box-shadow:none;color:#fff}.button.button-stable{border-color:transparent;background-color:#f8f8f8;color:#444}.button.button-stable:hover{color:#444;text-decoration:none}.button.button-stable.activated,.button.button-stable.active{border-color:#a2a2a2;background-color:#e5e5e5}.button.button-stable.button-clear,.button.button-stable.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button.button-stable.button-icon{border-color:transparent;background:0 0}.button.button-stable.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button.button-stable.button-outline.activated,.button.button-stable.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.button.button-positive,.button.button-text{border-color:transparent;background-color:#387ef5;color:#fff}.button.button-positive:hover,.button.button-text:hover{color:#fff;text-decoration:none}.button.activated.button-text,.button.active.button-text,.button.button-positive.activated,.button.button-positive.active{border-color:#a2a2a2;background-color:#0c60ee}.button.button-positive.button-clear,.button.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#387ef5}.button.button-icon.button-text,.button.button-positive.button-icon{border-color:transparent;background:0 0}.button.button-outline.button-text,.button.button-positive.button-outline{border-color:#387ef5;background:0 0;color:#387ef5}.button.button-outline.activated.button-text,.button.button-outline.active.button-text,.button.button-positive.button-outline.activated,.button.button-positive.button-outline.active{background-color:#387ef5;box-shadow:none;color:#fff}.button.button-calm{border-color:transparent;background-color:#11c1f3;color:#fff}.button.button-calm:hover{color:#fff;text-decoration:none}.button.button-calm.activated,.button.button-calm.active{border-color:#a2a2a2;background-color:#0a9dc7}.button.button-calm.button-clear,.button.button-calm.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#11c1f3}.button.button-calm.button-icon{border-color:transparent;background:0 0}.button.button-calm.button-outline{border-color:#11c1f3;background:0 0;color:#11c1f3}.button.button-calm.button-outline.activated,.button.button-calm.button-outline.active{background-color:#11c1f3;box-shadow:none;color:#fff}.button.button-assertive{border-color:transparent;background-color:#ef473a;color:#fff}.button.button-assertive:hover{color:#fff;text-decoration:none}.button.button-assertive.activated,.button.button-assertive.active{border-color:#a2a2a2;background-color:#e42112}.button.button-assertive.button-clear,.button.button-assertive.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#ef473a}.button.button-assertive.button-icon{border-color:transparent;background:0 0}.button.button-assertive.button-outline{border-color:#ef473a;background:0 0;color:#ef473a}.button.button-assertive.button-outline.activated,.button.button-assertive.button-outline.active{background-color:#ef473a;box-shadow:none;color:#fff}.button.button-balanced{border-color:transparent;background-color:#33cd5f;color:#fff}.button.button-balanced:hover{color:#fff;text-decoration:none}.button.button-balanced.activated,.button.button-balanced.active{border-color:#a2a2a2;background-color:#28a54c}.button.button-balanced.button-clear,.button.button-balanced.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#33cd5f}.button.button-balanced.button-icon{border-color:transparent;background:0 0}.button.button-balanced.button-outline{border-color:#33cd5f;background:0 0;color:#33cd5f}.button.button-balanced.button-outline.activated,.button.button-balanced.button-outline.active{background-color:#33cd5f;box-shadow:none;color:#fff}.button.button-energized{border-color:transparent;background-color:#ffc900;color:#fff}.button.button-energized:hover{color:#fff;text-decoration:none}.button.button-energized.activated,.button.button-energized.active{border-color:#a2a2a2;background-color:#e6b500}.button.button-energized.button-clear,.button.button-energized.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#ffc900}.button.button-energized.button-icon{border-color:transparent;background:0 0}.button.button-energized.button-outline{border-color:#ffc900;background:0 0;color:#ffc900}.button.button-energized.button-outline.activated,.button.button-energized.button-outline.active{background-color:#ffc900;box-shadow:none;color:#fff}.button.button-royal{border-color:transparent;background-color:#886aea;color:#fff}.button.button-royal:hover{color:#fff;text-decoration:none}.button.button-royal.activated,.button.button-royal.active{border-color:#a2a2a2;background-color:#6b46e5}.button.button-royal.button-clear,.button.button-royal.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#886aea}.button.button-royal.button-icon{border-color:transparent;background:0 0}.button.button-royal.button-outline{border-color:#886aea;background:0 0;color:#886aea}.button.button-royal.button-outline.activated,.button.button-royal.button-outline.active{background-color:#886aea;box-shadow:none;color:#fff}.button.button-dark{border-color:transparent;background-color:#444;color:#fff}.button.button-dark:hover{color:#fff;text-decoration:none}.button.button-dark.activated,.button.button-dark.active{border-color:#a2a2a2;background-color:#262626}.button.button-dark.button-clear,.button.button-dark.button-text{border-color:transparent;background:0 0;box-shadow:none;color:#444}.button.button-dark.button-icon{border-color:transparent;background:0 0}.button.button-dark.button-outline{border-color:#444;background:0 0;color:#444}.button.button-dark.button-outline.activated,.button.button-dark.button-outline.active{background-color:#444;box-shadow:none;color:#fff}.button-small,.button-text.button-small{padding:2px 4px 1px;min-width:28px;min-height:30px;font-size:12px;line-height:26px}#menu .footer .button-small .icon-help:before,#menu .footer .button-small.icon-help:before,.button-small #menu .footer .icon-help:before,.button-small .icon-alert:before,.button-small .icon-help:before,.button-small .icon:before,.button-small.icon-alert:before,.button-small.icon-help:before,.button-small.icon-left:before,.button-small.icon-right:before,.button-small.icon:before{font-size:16px;line-height:19px;margin-top:3px}.button-large{padding:0 16px;min-width:68px;min-height:59px;font-size:20px;line-height:53px}#menu .footer .button-large .icon-help:before,#menu .footer .button-large.icon-help:before,.button-large #menu .footer .icon-help:before,.button-large .icon-alert:before,.button-large .icon-help:before,.button-large .icon:before,.button-large.icon-alert:before,.button-large.icon-help:before,.button-large.icon-left:before,.button-large.icon-right:before,.button-large.icon:before{padding-bottom:2px;font-size:32px;line-height:51px}.button-icon{-webkit-transition:opacity .1s;transition:opacity .1s;padding:0 6px;min-width:initial;border-color:transparent;background:0 0}.button-icon.button.activated,.button-icon.button.active{border-color:transparent;background:0 0;box-shadow:none;opacity:.3}#menu .footer .button-icon .icon-help:before,#menu .footer .button-icon.icon-help:before,.button-icon #menu .footer .icon-help:before,.button-icon .icon-alert:before,.button-icon .icon-help:before,.button-icon .icon:before,.button-icon.icon-alert:before,.button-icon.icon-help:before,.button-icon.icon:before{font-size:32px}.button-clear,.button-text{-webkit-transition:opacity .1s;transition:opacity .1s;padding:0 6px;max-height:42px;border-color:transparent;background:0 0;box-shadow:none}.button-clear.button-clear,.button-text{border-color:transparent;background:0 0;box-shadow:none;color:transparent}.button-clear.button-icon,.button-icon.button-text{border-color:transparent;background:0 0}.activated.button-text,.active.button-text,.button-clear.activated,.button-clear.active{opacity:.3}.button-outline{-webkit-transition:opacity .1s;transition:opacity .1s;background:0 0;box-shadow:none}.button-outline.button-outline{border-color:transparent;background:0 0;color:transparent}.button-outline.button-outline.activated,.button-outline.button-outline.active{background-color:transparent;box-shadow:none;color:#fff}.item.large-button-bar>.button.button-block:first-child,.padding>.button.button-block:first-child{margin-top:0}.button-block{display:block;clear:both}.button-block:after{clear:both}.button-full,.button-full>.button{display:block;margin-right:0;margin-left:0;border-right-width:0;border-left-width:0;border-radius:0}.button-full>button.button,button.button-block,button.button-full,input.button.button-block{width:100%}a.button{text-decoration:none}#menu .footer a.button .icon-help:before,#menu .footer a.button.icon-help:before,a.button #menu .footer .icon-help:before,a.button .icon-alert:before,a.button .icon-help:before,a.button .icon:before,a.button.icon-alert:before,a.button.icon-help:before,a.button.icon-left:before,a.button.icon-right:before,a.button.icon:before{margin-top:2px}.button.disabled,.button[disabled]{opacity:.4;cursor:default!important;pointer-events:none}.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar.bar-light>.button{border-color:#ddd}.button-bar.bar-stable>.button{border-color:#b2b2b2}.button-bar.bar-positive>.button{border-color:#0c60ee}.button-bar.bar-calm>.button{border-color:#0a9dc7}.button-bar.bar-assertive>.button{border-color:#e42112}.button-bar.bar-balanced>.button{border-color:#28a54c}.button-bar.bar-energized>.button{border-color:#e6b500}.button-bar.bar-royal>.button{border-color:#6b46e5}.button-bar.bar-dark>.button{border-color:#111}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}#menu .footer .button-bar>.button .icon-help:before,.button-bar>.button #menu .footer .icon-help:before,.button-bar>.button .icon-alert:before,.button-bar>.button .icon-help:before,.button-bar>.button .icon:before,.button-bar>.button:before{line-height:44px}.button-bar>.button:first-child{border-radius:4px 0 0 4px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 4px 4px 0}.button-bar>.button:only-child{border-radius:4px}#menu .footer .button-bar>.button-small .icon-help:before,.button-bar>.button-small #menu .footer .icon-help:before,.button-bar>.button-small .icon-alert:before,.button-bar>.button-small .icon-help:before,.button-bar>.button-small .icon:before,.button-bar>.button-small:before{line-height:28px}.row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:5px;width:100%}.row-wrap{-webkit-flex-wrap:wrap;-moz-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.row-no-padding{padding:0}.row-no-padding>.col{padding:0}.row+.row{margin-top:-5px;padding-top:0}.col{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;padding:5px;width:100%}.row-top{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;align-items:flex-start}.row-bottom{-webkit-box-align:end;-ms-flex-align:end;-webkit-align-items:flex-end;-moz-align-items:flex-end;align-items:flex-end}.row-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.row-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch}.row-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-webkit-align-items:baseline;-moz-align-items:baseline;align-items:baseline}.col-top{-webkit-align-self:flex-start;-moz-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.col-bottom{-webkit-align-self:flex-end;-moz-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.col-center{-webkit-align-self:center;-moz-align-self:center;-ms-flex-item-align:center;align-self:center}.col-offset-10{margin-left:10%}.col-offset-20{margin-left:20%}.col-offset-25{margin-left:25%}.col-offset-33,.col-offset-34{margin-left:33.3333%}.col-offset-50{margin-left:50%}.col-offset-66,.col-offset-67{margin-left:66.6666%}.col-offset-75{margin-left:75%}.col-offset-80{margin-left:80%}.col-offset-90{margin-left:90%}.col-10{-webkit-box-flex:0;-webkit-flex:0 0 10%;-moz-box-flex:0;-moz-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.col-20{-webkit-box-flex:0;-webkit-flex:0 0 20%;-moz-box-flex:0;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.col-25{-webkit-box-flex:0;-webkit-flex:0 0 25%;-moz-box-flex:0;-moz-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-33,.col-34{-webkit-box-flex:0;-webkit-flex:0 0 33.3333%;-moz-box-flex:0;-moz-flex:0 0 33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%;max-width:33.3333%}.col-40{-webkit-box-flex:0;-webkit-flex:0 0 40%;-moz-box-flex:0;-moz-flex:0 0 40%;-ms-flex:0 0 40%;flex:0 0 40%;max-width:40%}.col-50{-webkit-box-flex:0;-webkit-flex:0 0 50%;-moz-box-flex:0;-moz-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-60{-webkit-box-flex:0;-webkit-flex:0 0 60%;-moz-box-flex:0;-moz-flex:0 0 60%;-ms-flex:0 0 60%;flex:0 0 60%;max-width:60%}.col-66,.col-67{-webkit-box-flex:0;-webkit-flex:0 0 66.6666%;-moz-box-flex:0;-moz-flex:0 0 66.6666%;-ms-flex:0 0 66.6666%;flex:0 0 66.6666%;max-width:66.6666%}.col-75{-webkit-box-flex:0;-webkit-flex:0 0 75%;-moz-box-flex:0;-moz-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-80{-webkit-box-flex:0;-webkit-flex:0 0 80%;-moz-box-flex:0;-moz-flex:0 0 80%;-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.col-90{-webkit-box-flex:0;-webkit-flex:0 0 90%;-moz-box-flex:0;-moz-flex:0 0 90%;-ms-flex:0 0 90%;flex:0 0 90%;max-width:90%}@media (max-width:567px){.responsive-sm{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-sm .col,.responsive-sm .col-10,.responsive-sm .col-20,.responsive-sm .col-25,.responsive-sm .col-33,.responsive-sm .col-34,.responsive-sm .col-50,.responsive-sm .col-66,.responsive-sm .col-67,.responsive-sm .col-75,.responsive-sm .col-80,.responsive-sm .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:767px){.responsive-md{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-md .col,.responsive-md .col-10,.responsive-md .col-20,.responsive-md .col-25,.responsive-md .col-33,.responsive-md .col-34,.responsive-md .col-50,.responsive-md .col-66,.responsive-md .col-67,.responsive-md .col-75,.responsive-md .col-80,.responsive-md .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:1023px){.responsive-lg{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-lg .col,.responsive-lg .col-10,.responsive-lg .col-20,.responsive-lg .col-25,.responsive-lg .col-33,.responsive-lg .col-34,.responsive-lg .col-50,.responsive-lg .col-66,.responsive-lg .col-67,.responsive-lg .col-75,.responsive-lg .col-80,.responsive-lg .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}.hide{display:none}.opacity-hide{opacity:0}.grade-b .opacity-hide,.grade-c .opacity-hide{opacity:1;display:none}.show{display:block}.opacity-show{opacity:1}.invisible{visibility:hidden}.keyboard-open .hide-on-keyboard-open{display:none}.keyboard-open .bar-footer.hide-on-keyboard-open+.pane .has-footer,.keyboard-open .tabs.hide-on-keyboard-open+.pane .has-tabs{bottom:0}.inline{display:inline-block}.disable-pointer-events{pointer-events:none}.enable-pointer-events{pointer-events:auto}.disable-user-behavior{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-ms-touch-action:none;-ms-content-zooming:none}.click-block{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;z-index:99999;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);overflow:hidden}.click-block-hide{-webkit-transform:translate3d(-9999px,0,0);transform:translate3d(-9999px,0,0)}.no-resize{resize:none}.block{display:block;clear:both}.block:after{display:block;visibility:hidden;clear:both;height:0;content:"."}.full-image{width:100%}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.item.large-button-bar,.padding{padding:10px}.padding-top,.padding-vertical{padding-top:10px}.padding-horizontal,.padding-right,.popover-share .bar-footer .button-close{padding-right:10px}.padding-bottom,.padding-vertical,.popover-share .bar-footer .button-close{padding-bottom:10px}.padding-horizontal,.padding-left{padding-left:10px}.iframe-wrapper{position:fixed;-webkit-overflow-scrolling:touch;overflow:scroll}.iframe-wrapper iframe{height:100%;width:100%}.rounded{border-radius:4px}.light,a.light{color:#fff}.light-bg{background-color:#fff}.light-border{border-color:#ddd}.stable,a.stable{color:#f8f8f8}.stable-bg{background-color:#f8f8f8}.stable-border{border-color:#b2b2b2}.icon-help,.positive,.text-editable:hover,a.icon-help,a.positive,a.text-editable:hover{color:#387ef5}.positive-bg{background-color:#387ef5}.positive-border{border-color:#0c60ee}#menu .footer .icon-help,#menu .footer a.icon-help,.calm,a.calm{color:#11c1f3}.calm-bg{background-color:#11c1f3}.calm-border{border-color:#0a9dc7}.assertive,.icon-alert,a.assertive,a.icon-alert{color:#ef473a}.assertive-bg{background-color:#ef473a}.assertive-border{border-color:#e42112}.balanced,a.balanced{color:#33cd5f}.balanced-bg{background-color:#33cd5f}.balanced-border{border-color:#28a54c}.energized,a.energized{color:#ffc900}.energized-bg{background-color:#ffc900}.energized-border{border-color:#e6b500}.royal,a.royal{color:#886aea}.royal-bg{background-color:#886aea}.royal-border{border-color:#6b46e5}.button-text-dark,.dark,a.button-text-dark,a.dark{color:#444}.dark-bg{background-color:#444}.dark-border{border-color:#111}[collection-repeat]{left:0!important;top:0!important;position:absolute!important;z-index:1}.collection-repeat-container{position:relative;z-index:1}.collection-repeat-after-container{z-index:0;display:block}.collection-repeat-after-container.horizontal{display:inline-block}.ng-cloak,.ng-hide:not(.ng-hide-animate),.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader){height:64px;height:calc(constant(safe-area-inset-top) + 44px);height:calc(env(safe-area-inset-top) + 44px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:19px!important}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader)>*{margin-top:20px;margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top)}.platform-ios.platform-cordova:not(.fullscreen) .bar-header{padding-left:calc(constant(safe-area-inset-left) + 5px);padding-left:calc(env(safe-area-inset-left) + 5px);padding-right:calc(constant(safe-area-inset-right) + 5px);padding-right:calc(env(safe-area-inset-right) + 5px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-header .buttons:last-child{right:calc(constant(safe-area-inset-right) + 5px);right:calc(env(safe-area-inset-right) + 5px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-footer.has-tabs,.platform-ios.platform-cordova:not(.fullscreen) .has-tabs{bottom:calc(constant(safe-area-inset-bottom) + 49px);bottom:calc(env(safe-area-inset-bottom) + 49px)}.platform-ios.platform-cordova:not(.fullscreen) .tabs-top>.tabs,.platform-ios.platform-cordova:not(.fullscreen) .tabs.tabs-top{top:64px}.platform-ios.platform-cordova:not(.fullscreen) .tabs{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);height:calc(constant(safe-area-inset-bottom) + 49px);height:calc(env(safe-area-inset-bottom) + 49px)}.platform-ios.platform-cordova:not(.fullscreen) .bar-subheader,.platform-ios.platform-cordova:not(.fullscreen) .has-header{top:64px;top:calc(constant(safe-area-inset-top) + 44px);top:calc(env(safe-area-inset-top) + 44px)}.platform-ios.platform-cordova:not(.fullscreen) .has-subheader{top:108px;top:calc(constant(safe-area-inset-top) + 88px);top:calc(env(safe-area-inset-top) + 88px)}.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-tabs-top{top:113px;top:calc(93px + constant(safe-area-inset-top));top:calc(93px + env(safe-area-inset-top))}.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top{top:157px;top:calc(137px + constant(safe-area-inset-right));top:calc(137px + env(safe-area-inset-right))}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:-1px}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .popover .bar-subheader,.platform-ios.platform-cordova .popover .has-header{top:44px}.platform-ios.platform-cordova .popover .has-subheader{top:88px}.platform-ios.platform-cordova.status-bar-hide{margin-bottom:20px}@media (orientation:landscape){.item{padding:16px calc(constant(safe-area-inset-right) + 16px)}.item .badge{right:calc(constant(safe-area-inset-right) + 32px)}.item-icon-left{padding-left:calc(constant(safe-area-inset-left) + 54px)}#menu .footer .item-icon-left .icon-help,.item-icon-left #menu .footer .icon-help,.item-icon-left .icon,.item-icon-left .icon-alert,.item-icon-left .icon-help{left:calc(constant(safe-area-inset-left) + 11px)}.item-icon-right{padding-right:calc(constant(safe-area-inset-right) + 54px)}#menu .footer .item-icon-right .icon-help,.item-icon-right #menu .footer .icon-help,.item-icon-right .icon,.item-icon-right .icon-alert,.item-icon-right .icon-help{right:calc(constant(safe-area-inset-right) + 11px)}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,a.item.item-complex .item-content,button.item.item-complex .item-content{padding:16px calc(constant(safe-area-inset-right) + 49px) 16px calc(constant(safe-area-inset-left) + 16px)}.item-left-edit.visible.active{-webkit-transform:translate3d(calc(constant(safe-area-inset-left) + 8px),0,0);transform:translate3d(calc(constant(safe-area-inset-left) + 8px),0,0)}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(calc(constant(safe-area-inset-left) + 50px),0,0);transform:translate3d(calc(constant(safe-area-inset-left) + 50px),0,0)}.item-right-edit{right:constant(safe-area-inset-right);right:env(safe-area-inset-right)}.platform-ios.platform-browser.platform-ipad{position:fixed}}.platform-c:not(.enable-transitions) *{-webkit-transition:none!important;transition:none!important}.slide-in-up{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(.1,.7,.1,1) .4s;transition:all cubic-bezier(.1,.7,.1,1) .4s}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}}[nav-view-transition=ios] [nav-view=entering],[nav-view-transition=ios] [nav-view=leaving]{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.36,.66,.04,1);transition-timing-function:cubic-bezier(.36,.66,.04,1);-webkit-transition-property:opacity,-webkit-transform,box-shadow;transition-property:opacity,transform,box-shadow}[nav-view-transition=ios][nav-view-direction=back],[nav-view-transition=ios][nav-view-direction=forward]{background-color:#000}[nav-view-transition=ios] [nav-view=active],[nav-view-transition=ios][nav-view-direction=back] [nav-view=leaving],[nav-view-transition=ios][nav-view-direction=forward] [nav-view=entering]{z-index:3}[nav-view-transition=ios][nav-view-direction=back] [nav-view=entering],[nav-view-transition=ios][nav-view-direction=forward] [nav-view=leaving]{z-index:2}[nav-bar-transition=ios] .back-text,[nav-bar-transition=ios] .buttons,[nav-bar-transition=ios] .title{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.36,.66,.04,1);transition-timing-function:cubic-bezier(.36,.66,.04,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,transform}[nav-bar-transition=ios] [nav-bar=active],[nav-bar-transition=ios] [nav-bar=entering]{z-index:10}[nav-bar-transition=ios] [nav-bar=active] .bar,[nav-bar-transition=ios] [nav-bar=entering] .bar{background:0 0}[nav-bar-transition=ios] [nav-bar=cached]{display:block}[nav-bar-transition=ios] [nav-bar=cached] .header-item{display:none}[nav-view-transition=android] [nav-view=entering],[nav-view-transition=android] [nav-view=leaving]{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,.6,.2,1);transition-timing-function:cubic-bezier(.4,.6,.2,1);-webkit-transition-property:-webkit-transform;transition-property:transform}[nav-view-transition=android] [nav-view=active],[nav-view-transition=android][nav-view-direction=back] [nav-view=leaving],[nav-view-transition=android][nav-view-direction=forward] [nav-view=entering]{z-index:3}[nav-view-transition=android][nav-view-direction=back] [nav-view=entering],[nav-view-transition=android][nav-view-direction=forward] [nav-view=leaving]{z-index:2}[nav-bar-transition=android] .buttons,[nav-bar-transition=android] .title{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,.6,.2,1);transition-timing-function:cubic-bezier(.4,.6,.2,1);-webkit-transition-property:opacity;transition-property:opacity}[nav-bar-transition=android] [nav-bar=active],[nav-bar-transition=android] [nav-bar=entering]{z-index:10}[nav-bar-transition=android] [nav-bar=active] .bar,[nav-bar-transition=android] [nav-bar=entering] .bar{background:0 0}[nav-bar-transition=android] [nav-bar=cached]{display:block}[nav-bar-transition=android] [nav-bar=cached] .header-item{display:none}[nav-swipe=fast] .back-text,[nav-swipe=fast] .buttons,[nav-swipe=fast] .title,[nav-swipe=fast] [nav-view]{-webkit-transition-duration:50ms;transition-duration:50ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}[nav-swipe=slow] .back-text,[nav-swipe=slow] .buttons,[nav-swipe=slow] .title,[nav-swipe=slow] [nav-view]{-webkit-transition-duration:160ms;transition-duration:160ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}[nav-bar=cached],[nav-view=cached]{display:none}[nav-view=stage]{opacity:0;-webkit-transition-duration:0;transition-duration:0}[nav-bar=stage] .back-text,[nav-bar=stage] .buttons,[nav-bar=stage] .title{position:absolute;opacity:0;-webkit-transition-duration:0s;transition-duration:0s}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Thin/RobotoDraft-Thin.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Thin/RobotoDraft-Thin.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Thin/RobotoDraft-Thin.ttf?v=1.1.0) format("truetype");font-weight:100;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Light/RobotoDraft-Light.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Light/RobotoDraft-Light.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Light/RobotoDraft-Light.ttf?v=1.1.0) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Regular/RobotoDraft-Regular.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Italic/RobotoDraft-Italic.ttf?v=1.1.0) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Medium/RobotoDraft-Medium.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Medium/RobotoDraft-Medium.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Medium/RobotoDraft-Medium.ttf?v=1.1.0) format("truetype");font-weight:500;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Bold/RobotoDraft-Bold.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/BoldItalic/RobotoDraft-BoldItalic.ttf?v=1.1.0) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:RobotoDraft;src:url(../lib/ionic/fonts/robotdraft/Black/RobotoDraft-Black.woff2?v=1.1.0) format("woff2"),url(../lib/ionic/fonts/robotdraft/Black/RobotoDraft-Black.woff?v=1.1.0) format("woff"),url(../lib/ionic/fonts/robotdraft/Black/RobotoDraft-Black.ttf?v=1.1.0) format("truetype");font-weight:900;font-style:normal}.item-md-label{display:block;background:0 0;box-shadow:none;margin-left:12px;margin-right:12px;padding:30px 0 0}.item-md-label .input-label{position:absolute;padding:5px 0 0;z-index:2;-webkit-transform:translate3d(0,-30px,0) scale(1);transform:translate3d(0,-30px,0) scale(1);-webkit-transition:all .2s ease;transition:all .2s ease;color:#fff;opacity:.5;-webkit-transform-origin:0;-ms-transform-origin:0;transform-origin:0}.item-md-label input{background-color:rgba(0,0,0,.6);bottom:0;color:#fff;letter-spacing:.25rem;padding:20px 10px;position:relative;z-index:1}.item-md-label .highlight{position:absolute;bottom:0;height:2px;left:0;width:100%;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);-webkit-transition:all .15s ease;transition:all .15s ease;z-index:1}.item-md-label .highlight-light{background:#fff}.item-md-label .highlight-stable{background:#f8f8f8}.item-md-label .highlight-positive{background:#387ef5}.item-md-label .highlight-calm{background:#11c1f3}.item-md-label .highlight-balanced{background:#33cd5f}.item-md-label .highlight-energized{background:#ffc900}.item-md-label .highlight-assertive{background:#ef473a}.item-md-label .highlight-royal{background:#886aea}.item-md-label .highlight-dark{background:#444}.item-md-label .input-label{letter-spacing:.25rem;padding:0 10px}.item-md-label input.used~.input-label,.item-md-label input:focus~.input-label{font-weight:700;opacity:.7;padding:0;text-transform:uppercase;-webkit-transform:translate3d(0,-60px,0) scale(.9);transform:translate3d(0,-60px,0) scale(.9)}.item-md-label input:focus~.highlight{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bar.bar-header.expanded,.expanded .bar.bar-header{height:75px}.bar.bar-header.expanded .title,.expanded.bar.bar-header .title{bottom:0;top:initial;padding-left:16px}.bar.bar-header.expanded .title.fab-left,.expanded .bar.bar-header .title.fab-left{bottom:0;left:90px;position:absolute;right:initial;top:initial}.bar.bar-header.expanded .title.fab-right,.expanded .bar.bar-header .title.fab-right{bottom:0;left:4px;position:absolute;top:initial;right:initial}.bar.bar-header.expanded+.button-fab,.expanded .bar.bar-header+.button-fab{top:50px}.bar.bar-header.expanded.push-down,.expanded .bar.bar-header.push-down{height:44px;overflow:hidden}.bar.bar-header.expanded,.expanded .bar.bar-header{-webkit-transition:height 1s cubic-bezier(.55,0,.1,1);transition:height 1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bar.bar-header.expanded+.button-fab,.expanded .bar.bar-header+.button-fab{-webkit-transition:all 1.1s cubic-bezier(.55,0,.1,1);transition:all 1.1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}.bar.bar-header.expanded.push-down+.button-fab,.expanded .bar.bar-header.push-down+.button-fab{top:0;-webkit-transform:translate3d(-100px,-100px,0) scale(2.5);transform:translate3d(-100px,-100px,0) scale(2.5)}.bar.bar-header.expanded.push-down .title,.expanded .bar.bar-header.push-down .title{opacity:0;left:initial;right:initial}.bar.bar-header.expanded .title,.expanded .bar.bar-header .title{opacity:1;-webkit-transition:all 2s cubic-bezier(.55,0,.1,1);transition:all 2s cubic-bezier(.55,0,.1,1)}.bar.bar-header.expanded .title,.expanded .bar.bar-header .title{bottom:0;left:42px!important;top:initial}.bar.bar-header.expanded.has-header-fab-left .title,.expanded.has-header-fab-left .bar.bar-header .title{left:76px!important}.bar{z-index:2;font-size:1.3em;width:100%;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.bar .button{min-width:38px;z-index:3}.bar .no-text span.back-text{display:none}.bar .title sup{opacity:.7}.bar.bar-header .button+.title{text-align:left;left:35px;line-height:46px}.button-bar{box-shadow:0 1px 3px rgba(0,0,0,.15)}.button-bar>.button{box-shadow:none}#menu .footer .button-bar>.button .icon-help:before,.button-bar>.button #menu .footer .icon-help:before,.button-bar>.button .icon-alert:before,.button-bar>.button .icon-help:before,.button-bar>.button .icon:before,.button-bar>.button:before{line-height:initial}.bar-footer .button-fab{position:absolute;top:-26px;bottom:initial}.bar-footer .buttons-left .button-fab{left:8px}.bar-footer .buttons-right .button-fab{right:8px}.bar .button.button-clear,.bar .button.button-text{box-shadow:none}.left-buttons .button-fab{left:8px;top:16px}.right-buttons .button-fab{right:8px;top:16px}.fab-left.title-left,.fab-left.title.title-left{left:68px}.bar .button.button-fab,.button.button-fab{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);z-index:9999;width:56px;height:56px;max-height:initial;max-width:initial;border-radius:50%;border-radius:50%;overflow:hidden;padding:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:.3s fade-in-out;transition:.3s fade-in-out;-webkit-transition-property:-webkit-transform,box-shadow;transition-property:transform,box-shadow}.bar .button.button-fab.button-fab-bottom-right,.button.button-fab.button-fab-bottom-right{top:auto;right:16px;bottom:16px;left:auto;position:absolute}.bar .button.button-fab.button-fab-bottom-left,.button.button-fab.button-fab-bottom-left{top:auto;right:auto;bottom:16px;left:16px;position:absolute}.bar .button.button-fab.button-fab-top-right,.button.button-fab.button-fab-top-right{top:32px;right:16px;bottom:auto;left:auto;position:absolute}.bar .button.button-fab.button-fab-top-left,.button.button-fab.button-fab-top-left{top:32px;right:auto;bottom:auto;left:16px;position:absolute}.bar .button.button-fab.button-fab-top-left.expanded,.bar .button.button-fab.button-fab-top-right.expanded,.button.button-fab.button-fab-top-left.expanded,.button.button-fab.button-fab-top-right.expanded{top:48px}.bar .button.button-fab i,.button.button-fab i{font-size:2.5rem;margin-top:0}.bar .button.button-fab.mini,.button.button-fab.mini{width:40px;height:40px}.bar .button.button-fab.mini i,.button.button-fab.mini i{font-size:2rem}.motion{-webkit-transition:all .5s ease-out;transition:all .5s ease-out}.fade{opacity:0;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.spin-back{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(360deg) scale(0)!important;transform:translateZ(0) rotate(360deg) scale(0)!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.spiral{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(-360deg) scale(0) translate(-120px)!important;transform:translateZ(0) rotate(-360deg) scale(0) translate(-120px)!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.spiral-back{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(360deg) scale(0) translate(120px)!important;transform:translateZ(0) rotate(360deg) scale(0) translate(120px)!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.menu-open .avatar{opacity:1;-webkit-transform:translateZ(0) rotate(0) scale(1)!important;transform:translateZ(0) rotate(0) scale(1)!important;-webkit-transition:all .3s ease-out!important;transition:all .3s ease-out!important}.button.button-fab.button-fab-top-left.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(-120px,60px,0);transform:translate3d(-120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.button.button-fab.button-fab-top-right.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(120px,60px,0);transform:translate3d(120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.button.button-fab.button-fab-bottom-left.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(-120px,60px,0);transform:translate3d(-120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.button.button-fab.button-fab-bottom-right.motion{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(120px,60px,0);transform:translate3d(120px,60px,0);-webkit-transition:all .1s ease-out;transition:all .1s ease-out}.spin{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(0) scale(0)!important;transform:translateZ(0) rotate(0) scale(0)!important;-webkit-transition:all .3s ease-out!important;transition:all .3s ease-out!important}.spin.on{-webkit-transform:translateZ(0) rotate(-360deg) scale(1)!important;transform:translateZ(0) rotate(-360deg) scale(1)!important}.flap{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotateX(0) scale(0) translate(-120px)!important;transform:translateZ(0) rotateX(0) scale(0) translate(-120px)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.flap.on{-webkit-transform:translateZ(0) rotateX(-720deg) scale(1) translate(0)!important;transform:translateZ(0) rotateX(-720deg) scale(1) translate(0)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.drop{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) scale(3)!important;transform:translateZ(0) scale(3)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.drop.on{-webkit-transform:translateZ(0) scale(1)!important;transform:translateZ(0) scale(1)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.flip{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotateY(0) scale(0)!important;transform:translateZ(0) rotateY(0) scale(0)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.flip.on{-webkit-transform:translateZ(0) rotateY(-720deg) scale(1)!important;transform:translateZ(0) rotateY(-720deg) scale(1)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.bar .button.button-floating,.button.button-floating{display:inline-block;color:#fff;position:relative;z-index:1;width:37px;height:37px;line-height:37px;padding:0;border-radius:50%;background-clip:padding-box;-webkit-transition:.3s;transition:.3s;cursor:pointer}.bar .button.button-floating i,.button.button-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:37px}.bar .button.button-floating.button-large,.button.button-floating.button-large{width:55.5px;height:55.5px}.bar .button.button-floating.button-large i,.button.button-floating.button-large i{line-height:55.5px}.bar .button,.bar .button.button-flat,.bar .button.button-large,.button,.button.button-flat,.button.button-large{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);display:inline-block;height:36px;padding:0 2rem;border-radius:2px;background-clip:padding-box;text-transform:uppercase;border:none;outline:0;-webkit-tap-highlight-color:transparent}.bar .button.button-floating.disabled,.bar .button.button-floating:disabled,.bar .button.button-large.disabled,.bar .button.button-large:disabled,.bar .button.button:disabled,.bar .button.disabled,.bar .button.disabled.button-large,.button.button-floating.disabled,.button.button-floating:disabled,.button.button-large.disabled,.button.button-large:disabled,.button.button:disabled,.button.disabled,.button.disabled.button-large{background-color:#dfdfdf;box-shadow:none;color:#9f9f9f}.bar .button.button-floating.disabled:hover,.bar .button.button-floating:disabled:hover,.bar .button.button-large.disabled:hover,.bar .button.button-large:disabled:hover,.bar .button.button:disabled:hover,.bar .button.disabled.button-large:hover,.bar .button.disabled:hover,.button.button-floating.disabled:hover,.button.button-floating:disabled:hover,.button.button-large.disabled:hover,.button.button-large:disabled:hover,.button.button:disabled:hover,.button.disabled.button-large:hover,.button.disabled:hover{background-color:#dfdfdf;color:#9f9f9f}.bar .button i,.bar .button.button-flat i,.bar .button.button-floating i,.bar .button.button-large i,.button i,.button.button-flat i,.button.button-floating i,.button.button-large i{font-size:1.3rem}.button-bar .button{border-radius:0}.bar .button,.bar .button-large,.button,.button-large{text-decoration:none;text-align:center;letter-spacing:.5px;-webkit-transition:.2s ease-out;transition:.2s ease-out;cursor:pointer}.button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;outline:0;margin:0;white-space:nowrap;text-align:center;text-transform:uppercase;font-weight:500;font-style:inherit;font-variant:inherit;font-size:inherit;text-decoration:none;cursor:pointer;overflow:hidden;-webkit-transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),transform .4s cubic-bezier(.25,.8,.25,1)}.button:focus{outline:0}.button.ng-hide{-webkit-transition:none;transition:none}.button.cornered{border-radius:0}.button.raised{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.button-outline,.button-outline:active,.button-outline:hover{border-style:solid;border-width:1px}.button.button-outline,.button.button-outline.button-assertive,.button.button-outline.button-balanced,.button.button-outline.button-calm,.button.button-outline.button-dark,.button.button-outline.button-energized,.button.button-outline.button-light,.button.button-outline.button-positive,.button.button-outline.button-royal,.button.button-outline.button-stable,.button.button-outline.button-text{border-color:rgba(0,0,0,.1)}.bar .button-flat,.button-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer}.bar .button.button-flat.disabled,.button.button-flat.disabled{color:#b3b3b3}.bar .button.button-large i,.button.button-large i{font-size:1.6rem}.button-pin-header.button-floating{position:absolute;z-index:1000}.button-pin-header.button-pin-left{left:24px;top:-24px}.button-pin-header.button-pin-right{right:24px;top:-24px}.button:not([disabled]).floating:focus,.button:not([disabled]).floating:hover,.button:not([disabled]).raised:focus,.button:not([disabled]).raised:hover{-webkit-transform:translate3d(0,-1px,0);transform:translate3d(0,-1px,0)}.button.button-flat{box-shadow:none;color:inherit}.button.button-flat:hover{color:inherit}.button.button-flat,.button.button-flat:active,.button.button-flat:hover{color:#fff}.button.button-clear,.button.button-clear:active,.button.button-clear:hover,.button.button-text,.button.button-text:active,.button.button-text:hover{background:0 0}.button-block.ink,.button-full.ink{display:block}.card-item.item{border:none;padding-bottom:4px;padding-top:4px}.card-item.item:first-child{padding-top:16px}.card{box-shadow:0 2px 5px 0 rgba(0,0,0,.26);display:block;margin:8px;padding:0;position:relative}.card .image{display:block;margin-top:10px;margin-bottom:5px}.card img{box-shadow:0 2px 5px 0 rgba(0,0,0,.26);display:block;max-width:100%;max-height:initial;position:static}.card.card-gallery img{border:none;box-shadow:none;display:block}.card .card-footer{font-size:90%;opacity:.8;padding-top:10px}.card>.item{border:none}.card.card-gallery>.item{background:inherit}#menu .footer .card .icon+.icon-help,#menu .footer .card .icon-alert+.icon-help,#menu .footer .card .icon-help+.icon,#menu .footer .card .icon-help+.icon-alert,#menu .footer .card .icon-help+.icon-help,.card #menu .footer .icon+.icon-help,.card #menu .footer .icon-alert+.icon-help,.card #menu .footer .icon-help+.icon,.card #menu .footer .icon-help+.icon-alert,.card #menu .footer .icon-help+.icon-help,.card .icon+.icon,.card .icon+.icon-alert,.card .icon+.icon-help,.card .icon-alert+.icon,.card .icon-alert+.icon-alert,.card .icon-alert+.icon-help,.card .icon-help+.icon,.card .icon-help+.icon-alert,.card .icon-help+.icon-help{padding-left:1rem}.card.animate-fade-in{opacity:0;-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.animate-fade-slide-in .card.animate-fade-in.expanded.item,.animate-fade-slide-in .expanded .card.animate-fade-in.item,.animate-fade-slide-in-right .card.animate-fade-in.expanded.item,.animate-fade-slide-in-right .expanded .card.animate-fade-in.item,.animate-ripple .card.animate-fade-in.expanded.item,.animate-ripple .expanded .card.animate-fade-in.item,.card-avatar-small .expanded .card.animate-fade-in.card-comment,.card-avatar-small .expanded .card.animate-fade-in.item,.card-avatar-small.expanded .card.animate-fade-in.card-comment,.card-avatar-small.expanded .card.animate-fade-in.item,.card.animate-fade-in.done{opacity:1;-webkit-transform:translate3d(0,0,0)}.card .item.item-avatar{min-height:88px;padding-left:88px}.hero{background-size:cover;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);color:#fff;height:200px;position:relative;text-align:center;-webkit-transition:all 1s cubic-bezier(.55,0,.1,1);transition:all 1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);width:100%}.hero>*{-webkit-transition:opacity 2.5s cubic-bezier(.55,0,.1,1);transition:opacity 2.5s cubic-bezier(.55,0,.1,1);opacity:1}.hero+.mid-bar{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:all 1s cubic-bezier(.55,0,.1,1);transition:all 1s cubic-bezier(.55,0,.1,1);height:initial;opacity:1}.hero .hero-icon{box-shadow:0 0 2px 0 rgba(0,0,0,.26);border-radius:50%;display:inline-block;font-size:65px;height:150px;padding:10px 30px;line-height:136px;width:150px}.hero.no-header{height:244px}.hero>.content{bottom:0;position:absolute;text-align:center;width:100%;z-index:1}.hero>.content>.avatar{background-position:center;background-size:cover;border:solid 1px rgba(255,255,255,.8);border-radius:50%;display:inline-block;height:88px;left:auto;margin-bottom:10px;position:relative;width:88px}.hero h1 .hero h2,.hero h3,.hero h4,.hero h5,.hero h6{color:#fff;margin:0}.hero h4{color:rgba(255,255,255,.7);margin:3px 0 16px}.hero h1>a,.hero h2>a,.hero h3>a,.hero h4>a,.hero h5>a,.hero h6>a{text-decoration:none}.hero+.button-bar{border-radius:0;margin-top:0}.hero+.button-bar>.button:first-child,.hero+.button-bar>.button:last-child{border-radius:0}.hero .hero-icon{color:#fff;font-size:96px}.hero .hero-icon+h1{color:#fff;letter-spacing:.15rem}.hero .button,.hero .button.button-flat,.hero .button.button-large{margin:0}.hero h1.title{color:#fff;font-size:23px;margin:0;text-align:left;padding-left:80px;line-height:59px}.hero+.mid-bar{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:all 1s cubic-bezier(.55,0,.1,1);transition:all 1s cubic-bezier(.55,0,.1,1);height:initial;opacity:1}.hero>*{-webkit-transition:opacity 2.5s cubic-bezier(.55,0,.1,1);transition:opacity 2.5s cubic-bezier(.55,0,.1,1);opacity:1}.item{font-size:14px;width:100%}#menu .footer .item-icon-left .icon-help,.item-icon-left #menu .footer .icon-help,.item-icon-left .icon,.item-icon-left .icon-alert,.item-icon-left .icon-help{left:16px}#menu .footer .item-icon-right .icon-help,.item-icon-right #menu .footer .icon-help,.item-icon-right .icon,.item-icon-right .icon-alert,.item-icon-right .icon-help{right:16px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{border-radius:50%}.tab-item.activated{height:calc(100% + 3px)}.content+.list{padding-top:0}.list .item{border:none;min-height:48px;text-align:left}.list .item.tabs{padding:initial}.list .item.item-bg-image{max-height:150px;min-height:150px}.list .item.item-bg-image>img{height:100%;left:0;max-width:initial;opacity:.65;position:absolute;top:0;width:100%;z-index:0}.list a.item{opacity:1}.list .item.item-bg-image h1,.list .item.item-bg-image h2,.list .item.item-bg-image h3,.list .item.item-bg-image h4,.list .item.item-bg-image h5,.list .item.item-bg-image h6{color:#fff;font-weight:700;position:relative;text-shadow:0 0 3px rgba(0,0,0,.95);z-index:1}.list .item.item-bg-image h2{font-size:24px}.list .item.item-bg-image h2{font-size:24px}.list .item.item-bg-image p{color:#fff;font-size:17px;position:relative;text-shadow:0 0 4px rgba(0,0,0,.95);z-index:1}.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{min-height:80px}.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:106px}.card>.item.item-thumbnail-right,.item-thumbnail-right,.item-thumbnail-right .item-content{padding-right:106px}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{border-radius:50%;left:16px;max-height:40px;max-width:40px}.avatar,.item-avatar .avatar{background-position:center;background-size:cover;border-radius:50%;display:inline-block;height:56px;left:16px;position:absolute;width:56px}.list.half{display:inline-block;float:left;margin:0;padding:0;width:50%}.list.half:first-child{padding:16px 8px 16px 16px}.list.half:last-child{padding:16px 16px 16px 8px}.list.half:first-child .card.card-gallery{margin-left:0;margin-right:0}.list.half:last-child .card.card-gallery{margin-left:0;margin-right:0}.list.condensed-space>.card,.list.condensed-space>.item{margin:0 0 2px}.list .card.card-gallery{display:block;float:left;margin:0 0 0 13px;padding:0;width:auto}.list.half .item{width:100%}.list.half .item.card{margin-bottom:16px}.list .card.card-gallery.item h2{padding:12px}.list .item.item-gallery img{width:100%}.item.item-divider{border-top:solid 1px rgba(0,0,0,.12);font-size:14px;font-weight:700;height:48px;line-height:48px;color:rgba(0,0,0,.54)}.item.item-divider:first-child{border:none}.card>.item-avatar,.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:72px}.item .item-content.activated,.item .item-content.active,.item-complex.activated .item-content,.item-complex.active .item-content,.item.activated,.item.active{background-color:transparent}.list-inset{margin:20px 30px;border-left:solid 1px #ccc;border-radius:0;background-color:#fff}.item-floating-label,.list .item.item-floating-label{border-bottom:solid 1px #ccc}.loader{position:relative;margin:0 auto;width:100px;height:100px;zoom:1.7}.circular{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100px;position:relative;width:100px}.path{stroke-dasharray:1,200;stroke-dashoffset:0;-webkit-animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}100%{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}100%{stroke-dasharray:89,200;stroke-dashoffset:-124}}@-webkit-keyframes color{0%,100%{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}@keyframes color{0%,100%{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}.login{background-position:25% 25%;background-size:180% 180%;height:100%;-webkit-transition:all 1.5s ease-in-out;transition:all 1.5s ease-in-out}.login .item{margin:0 12px;padding-left:0;padding-right:0;width:initial}.login .button-bar{bottom:0;margin:28px 12px 0;width:initial}.login .light-bg{background-color:#fff}#menu .footer .hero-icon.icon-help:before,.hero-icon.icon-alert:before,.hero-icon.icon-help:before,.icon.hero-icon:before{line-height:130px}.card.has-mask:after,.hero.has-mask:after,.item.has-mask:after{content:'';background:-webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%);height:100%;left:0;position:absolute;top:0;z-index:0;width:100%}.card.has-mask-reverse:after,.hero.has-mask-reverse:after,.item.has-mask-reverse:after{content:'';background:-webkit-linear-gradient(top,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 100%);height:100%;left:0;position:absolute;top:0;z-index:0;width:100%}.menu-bottom{bottom:16px;left:16px;right:16px;position:absolute}.menu-top{top:16px;left:16px;right:16px;position:absolute}.menu .avatar{top:16px;left:16px;height:65px;width:65px}.menu .bar.bar-header.expanded{box-shadow:none;min-height:150px;color:#fff}.menu-open .bar.bar-header.expanded{background-position:0;background-size:100%}.has-expanded-header{top:150px!important}.motion{-webkit-transition:all .5s ease-out;transition:all .5s ease-out}.fade{opacity:0;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.spin-back{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(360deg) scale(0)!important;transform:translateZ(0) rotate(360deg) scale(0)!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.spiral{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(-360deg) scale(0) translate(-120px)!important;transform:translateZ(0) rotate(-360deg) scale(0) translate(-120px)!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.spiral-back{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(360deg) scale(0) translate(120px)!important;transform:translateZ(0) rotate(360deg) scale(0) translate(120px)!important;-webkit-transition:all .1s ease-out!important;transition:all .1s ease-out!important}.menu-open .avatar{opacity:1;-webkit-transform:translateZ(0) rotate(0) scale(1)!important;transform:translateZ(0) rotate(0) scale(1)!important;-webkit-transition:all .3s ease-out!important;transition:all .3s ease-out!important}.spin{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotate(0) scale(0)!important;transform:translateZ(0) rotate(0) scale(0)!important;-webkit-transition:all .3s ease-out!important;transition:all .3s ease-out!important}.spin.on{-webkit-transform:translateZ(0) rotate(-360deg) scale(1)!important;transform:translateZ(0) rotate(-360deg) scale(1)!important}.flap{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotateX(0) scale(0) translate(-120px)!important;transform:translateZ(0) rotateX(0) scale(0) translate(-120px)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.flap.on{-webkit-transform:translateZ(0) rotateX(-720deg) scale(1) translate(0)!important;transform:translateZ(0) rotateX(-720deg) scale(1) translate(0)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.drop{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) scale(3)!important;transform:translateZ(0) scale(3)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.drop.on{-webkit-transform:translateZ(0) scale(1)!important;transform:translateZ(0) scale(1)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.flip{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transform:translateZ(0) rotateY(0) scale(0)!important;transform:translateZ(0) rotateY(0) scale(0)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.flip.on{-webkit-transform:translateZ(0) rotateY(-720deg) scale(1)!important;transform:translateZ(0) rotateY(-720deg) scale(1)!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.bold{font-weight:700}.static{position:static}#menu .footer .popover-helptip .icon-bottom-left.icon-help,#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-bottom-left,.popover-helptip .icon.icon-left,.pull-left{float:left}#menu .footer .popover-helptip .icon-bottom-center.icon-help,#menu .footer .popover-helptip .icon-bottom-right.icon-help,#menu .footer .popover-helptip .icon-center.icon-help,#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-bottom-center,.popover-helptip .icon.icon-bottom-right,.popover-helptip .icon.icon-center,.popover-helptip .icon.icon-right,.pull-right{float:right}.double-padding,.ionic-content.double-padding{padding:16px}.double-padding-x{padding-left:16px;padding-right:16px}.double-padding-y{padding-top:16px;padding-bottom:16px}.outline{border-style:solid;border-width:1px}.border-top{border-top:solid 1px #ccc;padding-top:30px}.no-border{border:none}.circle{border-radius:50%}.bar.no-padding,.button-bar.no-padding,.button.no-padding,.card.no-padding,.item.no-padding,.list.no-padding,.no-padding{padding:0}#menu .footer .flat.button.icon-help,.flat,.flat.button,.flat.button.icon,.flat.button.icon-alert,.flat.button.icon-help,.flat.hero,.flat.tabs{box-shadow:none;-webkit-box-shadow:none}.im-wrapper,.item.large-button-bar,.padding{padding:16px!important}.padding-bottom,.popover-share .bar-footer .button-close{padding-bottom:16px!important}.padding-top{padding-top:16px!important}.padding-left{padding-left:16px!important}.padding-right,.popover-share .bar-footer .button-close{padding-right:16px!important}.no-padding-bottom{padding-bottom:0!important}.no-padding-top{padding-top:0!important}.no-padding-left{padding-left:0!important}.no-padding-right{padding-right:0!important}.z1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.bar.bar-positive.darker{background-color:#164fab}.bar.bar-positive.dark-positive-bg{background-color:#2c5cad}.muted{color:#c3c3c3}.clear-bg{background:0 0}.animate-blinds .item{visibility:hidden}.animate-blinds .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.55,0,.1,1);transition:transform .3s cubic-bezier(.55,0,.1,1)}.animate-blinds .item-bg-image>img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-blinds .animate-fade-slide-in .expanded .item,.animate-blinds .animate-fade-slide-in .expanded.item,.animate-blinds .animate-fade-slide-in-right .expanded .item,.animate-blinds .animate-fade-slide-in-right .expanded.item,.animate-blinds .animate-ripple .expanded .item,.animate-blinds .animate-ripple .expanded.item,.animate-blinds .card-avatar-small .expanded .card.card-comment,.animate-blinds .card-avatar-small .expanded .item,.animate-blinds .card-avatar-small.expanded .card.card-comment,.animate-blinds .card-avatar-small.expanded .item,.animate-blinds .in,.animate-blinds.done>*,.animate-fade-slide-in .animate-blinds .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item>*,.animate-fade-slide-in .expanded .animate-blinds .item,.animate-fade-slide-in .expanded .animate-blinds.item>*,.animate-fade-slide-in-right .animate-blinds .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item>*,.animate-fade-slide-in-right .expanded .animate-blinds .item,.animate-fade-slide-in-right .expanded .animate-blinds.item>*,.animate-ripple .animate-blinds .expanded.item,.animate-ripple .animate-blinds.expanded.item>*,.animate-ripple .expanded .animate-blinds .item,.animate-ripple .expanded .animate-blinds.item>*,.card-avatar-small .expanded .animate-blinds .card.card-comment,.card-avatar-small .expanded .animate-blinds .item,.card-avatar-small .expanded .animate-blinds.card.card-comment>*,.card-avatar-small .expanded .animate-blinds.item>*,.card-avatar-small.expanded .animate-blinds .card.card-comment,.card-avatar-small.expanded .animate-blinds .item,.card-avatar-small.expanded .animate-blinds.card.card-comment>*,.card-avatar-small.expanded .animate-blinds.item>*{-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.animate-blinds .animate-fade-slide-in .expanded .item,.animate-blinds .animate-fade-slide-in .expanded.item,.animate-blinds .animate-fade-slide-in-right .expanded .item,.animate-blinds .animate-fade-slide-in-right .expanded.item,.animate-blinds .animate-ripple .expanded .item,.animate-blinds .animate-ripple .expanded.item,.animate-blinds .card-avatar-small .expanded .card.card-comment,.animate-blinds .card-avatar-small .expanded .item,.animate-blinds .card-avatar-small.expanded .card.card-comment,.animate-blinds .card-avatar-small.expanded .item,.animate-blinds .in,.animate-blinds.done .item,.animate-fade-slide-in .animate-blinds .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-fade-slide-in .expanded .animate-blinds .item,.animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .animate-blinds .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .expanded .animate-blinds .item,.animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-ripple .animate-blinds .expanded.item,.animate-ripple .animate-blinds.expanded.item .item,.animate-ripple .expanded .animate-blinds .item,.animate-ripple .expanded .animate-blinds.item .item,.card-avatar-small .expanded .animate-blinds .card.card-comment,.card-avatar-small .expanded .animate-blinds .item,.card-avatar-small .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .expanded .animate-blinds.item .item,.card-avatar-small.expanded .animate-blinds .card.card-comment,.card-avatar-small.expanded .animate-blinds .item,.card-avatar-small.expanded .animate-blinds.card.card-comment .item,.card-avatar-small.expanded .animate-blinds.item .item{visibility:visible}.animate-blinds .item{visibility:hidden}.animate-blinds .item{opacity:0}.animate-blinds .animate-fade-slide-in .expanded .item,.animate-blinds .animate-fade-slide-in .expanded.item,.animate-blinds .animate-fade-slide-in-right .expanded .item,.animate-blinds .animate-fade-slide-in-right .expanded.item,.animate-blinds .animate-ripple .expanded .item,.animate-blinds .animate-ripple .expanded.item,.animate-blinds .card-avatar-small .expanded .card.card-comment,.animate-blinds .card-avatar-small .expanded .item,.animate-blinds .card-avatar-small.expanded .card.card-comment,.animate-blinds .card-avatar-small.expanded .item,.animate-blinds .in,.animate-blinds.done,.animate-fade-slide-in .animate-blinds .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item,.animate-fade-slide-in .expanded .animate-blinds .item,.animate-fade-slide-in .expanded .animate-blinds.item,.animate-fade-slide-in-right .animate-blinds .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds .item,.animate-fade-slide-in-right .expanded .animate-blinds.item,.animate-ripple .animate-blinds .expanded.item,.animate-ripple .animate-blinds.expanded.item,.animate-ripple .expanded .animate-blinds .item,.animate-ripple .expanded .animate-blinds.item,.card-avatar-small .expanded .animate-blinds .card.card-comment,.card-avatar-small .expanded .animate-blinds .item,.card-avatar-small .expanded .animate-blinds.card.card-comment,.card-avatar-small .expanded .animate-blinds.item,.card-avatar-small.expanded .animate-blinds .card.card-comment,.card-avatar-small.expanded .animate-blinds .item,.card-avatar-small.expanded .animate-blinds.card.card-comment,.card-avatar-small.expanded .animate-blinds.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;opacity:1}.animate-blinds .animate-fade-slide-in .expanded .item,.animate-blinds .animate-fade-slide-in .expanded.item,.animate-blinds .animate-fade-slide-in-right .expanded .item,.animate-blinds .animate-fade-slide-in-right .expanded.item,.animate-blinds .animate-ripple .expanded .item,.animate-blinds .animate-ripple .expanded.item,.animate-blinds .card-avatar-small .expanded .card.card-comment,.animate-blinds .card-avatar-small .expanded .item,.animate-blinds .card-avatar-small.expanded .card.card-comment,.animate-blinds .card-avatar-small.expanded .item,.animate-blinds .in,.animate-blinds.done,.animate-fade-slide-in .animate-blinds .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item,.animate-fade-slide-in .expanded .animate-blinds .item,.animate-fade-slide-in .expanded .animate-blinds.item,.animate-fade-slide-in-right .animate-blinds .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds .item,.animate-fade-slide-in-right .expanded .animate-blinds.item,.animate-ripple .animate-blinds .expanded.item,.animate-ripple .animate-blinds.expanded.item,.animate-ripple .expanded .animate-blinds .item,.animate-ripple .expanded .animate-blinds.item,.card-avatar-small .expanded .animate-blinds .card.card-comment,.card-avatar-small .expanded .animate-blinds .item,.card-avatar-small .expanded .animate-blinds.card.card-comment,.card-avatar-small .expanded .animate-blinds.item,.card-avatar-small.expanded .animate-blinds .card.card-comment,.card-avatar-small.expanded .animate-blinds .item,.card-avatar-small.expanded .animate-blinds.card.card-comment,.card-avatar-small.expanded .animate-blinds.item{visibility:visible}.animate-blinds.done .animate-fade-slide-in .expanded .item,.animate-blinds.done .animate-fade-slide-in .expanded.item,.animate-blinds.done .animate-fade-slide-in-right .expanded .item,.animate-blinds.done .animate-fade-slide-in-right .expanded.item,.animate-blinds.done .animate-ripple .expanded .item,.animate-blinds.done .animate-ripple .expanded.item,.animate-blinds.done .card-avatar-small .expanded .card.card-comment,.animate-blinds.done .card-avatar-small .expanded .item,.animate-blinds.done .card-avatar-small.expanded .card.card-comment,.animate-blinds.done .card-avatar-small.expanded .item,.animate-blinds.done .in,.animate-fade-slide-in .animate-blinds.done .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-blinds.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in .animate-blinds.expanded.item .in,.animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-fade-slide-in .animate-ripple .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple .animate-blinds.expanded.item .item,.animate-fade-slide-in .animate-ripple .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-blinds.item .item,.animate-fade-slide-in .card-avatar-small .animate-blinds.expanded.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .animate-blinds.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-blinds.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-blinds.item .item,.animate-fade-slide-in .expanded .animate-blinds.done .item,.animate-fade-slide-in .expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .expanded .animate-blinds.item .animate-ripple .expanded.item,.animate-fade-slide-in .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in .expanded .animate-blinds.item .in,.animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .animate-blinds.done .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-blinds.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-blinds.expanded.item .in,.animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .animate-ripple .animate-blinds.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .card-avatar-small .animate-blinds.expanded.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .animate-blinds.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-blinds.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-blinds.item .item,.animate-fade-slide-in-right .expanded .animate-blinds.done .item,.animate-fade-slide-in-right .expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds.item .expanded.item,.animate-fade-slide-in-right .expanded .animate-blinds.item .in,.animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-ripple .animate-blinds.done .expanded.item,.animate-ripple .animate-blinds.expanded.item .animate-fade-slide-in .expanded.item,.animate-ripple .animate-blinds.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .animate-blinds.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-blinds.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-blinds.expanded.item .expanded.item,.animate-ripple .animate-blinds.expanded.item .in,.animate-ripple .animate-blinds.expanded.item .item,.animate-ripple .animate-fade-slide-in .animate-blinds.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-blinds.expanded.item .item,.animate-ripple .animate-fade-slide-in .expanded .animate-blinds.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-blinds.item .item,.animate-ripple .animate-fade-slide-in-right .animate-blinds.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-blinds.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-blinds.item .item,.animate-ripple .card-avatar-small .animate-blinds.expanded.item .card.card-comment,.animate-ripple .card-avatar-small .animate-blinds.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-blinds.card.card-comment .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-blinds.card.card-comment .item,.animate-ripple .card-avatar-small .expanded .animate-blinds.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-blinds.item .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-blinds.item .item,.animate-ripple .card-avatar-small.expanded .animate-blinds.card.card-comment .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-blinds.card.card-comment .item,.animate-ripple .card-avatar-small.expanded .animate-blinds.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-blinds.item .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-blinds.item .item,.animate-ripple .expanded .animate-blinds.done .item,.animate-ripple .expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.animate-ripple .expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .expanded .animate-blinds.item .expanded.item,.animate-ripple .expanded .animate-blinds.item .in,.animate-ripple .expanded .animate-blinds.item .item,.card-avatar-small .animate-fade-slide-in .animate-blinds.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .animate-blinds.expanded.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-blinds.item .item,.card-avatar-small .animate-fade-slide-in-right .animate-blinds.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-blinds.item .item,.card-avatar-small .animate-ripple .animate-blinds.expanded.item .card.card-comment,.card-avatar-small .animate-ripple .animate-blinds.expanded.item .item,.card-avatar-small .animate-ripple .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .animate-ripple .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-blinds.item .item,.card-avatar-small .expanded .animate-blinds.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-blinds.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-blinds.card.card-comment .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-blinds.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-blinds.card.card-comment .in,.card-avatar-small .expanded .animate-blinds.card.card-comment .item,.card-avatar-small .expanded .animate-blinds.done .card.card-comment,.card-avatar-small .expanded .animate-blinds.done .item,.card-avatar-small .expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-blinds.item .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-blinds.item .card.card-comment,.card-avatar-small .expanded .animate-blinds.item .in,.card-avatar-small .expanded .animate-blinds.item .item,.card-avatar-small.expanded .animate-blinds.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-blinds.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-blinds.card.card-comment .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-blinds.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-blinds.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-blinds.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-blinds.card.card-comment .in,.card-avatar-small.expanded .animate-blinds.card.card-comment .item,.card-avatar-small.expanded .animate-blinds.done .card.card-comment,.card-avatar-small.expanded .animate-blinds.done .item,.card-avatar-small.expanded .animate-blinds.item .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-blinds.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-blinds.item .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-blinds.item .card.card-comment,.card-avatar-small.expanded .animate-blinds.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-blinds.item .expanded .item,.card-avatar-small.expanded .animate-blinds.item .in,.card-avatar-small.expanded .animate-blinds.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-blinds.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-blinds.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-blinds.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-blinds.expanded.item .item,.card-avatar-small.expanded .animate-ripple .animate-blinds.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-blinds.expanded.item .item,.card-avatar-small.expanded .expanded .animate-blinds.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-blinds.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-blinds.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-blinds.item .item{opacity:1}.animate-blinds .has-mask-reverse:after{opacity:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-blinds.done .has-mask-reverse:after,.animate-fade-slide-in .animate-blinds.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-blinds.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-blinds.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-blinds.item .has-mask-reverse:after,.animate-ripple .animate-blinds.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-blinds.item .has-mask-reverse:after,.card-avatar-small .expanded .animate-blinds.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-blinds.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-blinds.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-blinds.item .has-mask-reverse:after{opacity:1}.animate-blinds .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.animate-pan-in-left{background-position:0 0}.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .done,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item{visibility:hidden}.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .done,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.55,0,.1,1);transition:transform .3s cubic-bezier(.55,0,.1,1)}.animate-ripple .item-bg-image img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-fade-slide-in .animate-ripple.expanded.item,.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in .expanded .animate-ripple.item,.animate-fade-slide-in-right .animate-ripple.expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple.item,.animate-ripple .animate-ripple.expanded.item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .expanded .animate-ripple.item,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.animate-ripple .in,.animate-ripple.done,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small .expanded .animate-ripple.card.card-comment,.card-avatar-small .expanded .animate-ripple.item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple.card.card-comment,.card-avatar-small.expanded .animate-ripple.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-fade-slide-in .animate-ripple.expanded.item,.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in .expanded .animate-ripple.item,.animate-fade-slide-in-right .animate-ripple.expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple.item,.animate-ripple .animate-ripple.expanded.item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .expanded .animate-ripple.item,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.animate-ripple .in,.animate-ripple.done,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small .expanded .animate-ripple.card.card-comment,.card-avatar-small .expanded .animate-ripple.item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple.card.card-comment,.card-avatar-small.expanded .animate-ripple.item{visibility:visible}.animate-ripple .item{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1);opacity:0}.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-ripple .card-avatar-small .expanded .item.card.card-comment,.animate-ripple .card-avatar-small.expanded .item.card.card-comment,.animate-ripple .expanded .item,.animate-ripple .item.expanded,.animate-ripple .item.in,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple .item{opacity:1}.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .done,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item{visibility:hidden}.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .done,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.55,0,.1,1);transition:transform .3s cubic-bezier(.55,0,.1,1)}.animate-fade-slide-in .animate-ripple.expanded.item,.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in .expanded .animate-ripple.item,.animate-fade-slide-in-right .animate-ripple.expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple.item,.animate-ripple .animate-ripple.expanded.item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .expanded .animate-ripple.item,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.animate-ripple .in,.animate-ripple.done,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small .expanded .animate-ripple.card.card-comment,.card-avatar-small .expanded .animate-ripple.item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple.card.card-comment,.card-avatar-small.expanded .animate-ripple.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-fade-slide-in .animate-ripple.expanded.item,.animate-fade-slide-in .expanded .animate-ripple .item,.animate-fade-slide-in .expanded .animate-ripple.item,.animate-fade-slide-in-right .animate-ripple.expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple .item,.animate-fade-slide-in-right .expanded .animate-ripple.item,.animate-ripple .animate-ripple.expanded.item,.animate-ripple .card-avatar-small .expanded .card.card-comment,.animate-ripple .card-avatar-small.expanded .card.card-comment,.animate-ripple .expanded .animate-ripple.item,.animate-ripple .expanded .item,.animate-ripple .expanded.item,.animate-ripple .in,.animate-ripple.done,.card-avatar-small .expanded .animate-ripple .card.card-comment,.card-avatar-small .expanded .animate-ripple .item,.card-avatar-small .expanded .animate-ripple.card.card-comment,.card-avatar-small .expanded .animate-ripple.item,.card-avatar-small.expanded .animate-ripple .card.card-comment,.card-avatar-small.expanded .animate-ripple .item,.card-avatar-small.expanded .animate-ripple.card.card-comment,.card-avatar-small.expanded .animate-ripple.item{visibility:visible}.animate-fade-slide-in .animate-fade-slide-in-right .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .animate-ripple.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-ripple.item .item,.animate-fade-slide-in .animate-ripple .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-ripple.item .item,.animate-fade-slide-in .animate-ripple.done .expanded.item,.animate-fade-slide-in .animate-ripple.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .animate-ripple.expanded.item .animate-ripple.expanded.item .item,.animate-fade-slide-in .animate-ripple.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-ripple.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-ripple.expanded.item .expanded .item,.animate-fade-slide-in .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple.expanded.item .in,.animate-fade-slide-in .animate-ripple.expanded.item .item,.animate-fade-slide-in .card-avatar-small .animate-ripple.expanded.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .animate-ripple.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-ripple.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-ripple.item .item,.animate-fade-slide-in .expanded .animate-ripple.done .item,.animate-fade-slide-in .expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .expanded .animate-ripple.item .expanded .item,.animate-fade-slide-in .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in .expanded .animate-ripple.item .in,.animate-fade-slide-in .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .animate-ripple .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .animate-ripple.done .expanded.item,.animate-fade-slide-in-right .animate-ripple.expanded.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .animate-ripple.expanded.item .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .animate-ripple.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-ripple.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-ripple.expanded.item .expanded .item,.animate-fade-slide-in-right .animate-ripple.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple.expanded.item .in,.animate-fade-slide-in-right .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .animate-ripple.expanded.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .animate-ripple.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-ripple.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-ripple.item .item,.animate-fade-slide-in-right .expanded .animate-ripple.done .item,.animate-fade-slide-in-right .expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple.item .expanded .item,.animate-fade-slide-in-right .expanded .animate-ripple.item .expanded.item,.animate-fade-slide-in-right .expanded .animate-ripple.item .in,.animate-fade-slide-in-right .expanded .animate-ripple.item .item,.animate-ripple .animate-fade-slide-in .expanded .animate-ripple.item .item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-ripple.item .item,.animate-ripple .animate-ripple.expanded.item .animate-fade-slide-in .expanded.item,.animate-ripple .animate-ripple.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .animate-ripple.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-ripple.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-ripple.expanded.item .in,.animate-ripple .animate-ripple.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-ripple.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-ripple.item .item,.animate-ripple .card-avatar-small.expanded .animate-ripple.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-ripple.item .item,.animate-ripple .expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.animate-ripple .expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .expanded .animate-ripple.item .in,.animate-ripple .expanded .animate-ripple.item .item,.animate-ripple.done .animate-fade-slide-in .expanded .item,.animate-ripple.done .animate-fade-slide-in .expanded.item,.animate-ripple.done .animate-fade-slide-in-right .expanded .item,.animate-ripple.done .animate-fade-slide-in-right .expanded.item,.animate-ripple.done .card-avatar-small .expanded .card.card-comment,.animate-ripple.done .card-avatar-small .expanded .item,.animate-ripple.done .card-avatar-small.expanded .card.card-comment,.animate-ripple.done .card-avatar-small.expanded .item,.animate-ripple.done .expanded .item,.animate-ripple.done .expanded.item,.animate-ripple.done .in,.animate-ripple.expanded.item .animate-ripple.expanded.item .expanded.item,.animate-ripple.item .expanded .animate-ripple.item .expanded.item,.card-avatar-small .animate-fade-slide-in .animate-ripple.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .animate-ripple.expanded.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-ripple.card.card-comment .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-ripple.item .item,.card-avatar-small .animate-fade-slide-in-right .animate-ripple.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .animate-ripple.expanded.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-ripple.card.card-comment .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-ripple.item .item,.card-avatar-small .animate-ripple .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-ripple.item .item,.card-avatar-small .animate-ripple.expanded.item .animate-ripple.expanded.item .card.card-comment,.card-avatar-small .animate-ripple.expanded.item .animate-ripple.expanded.item .item,.card-avatar-small .expanded .animate-ripple.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-ripple.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-ripple.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-ripple.card.card-comment .expanded .item,.card-avatar-small .expanded .animate-ripple.card.card-comment .expanded.item,.card-avatar-small .expanded .animate-ripple.card.card-comment .in,.card-avatar-small .expanded .animate-ripple.card.card-comment .item,.card-avatar-small .expanded .animate-ripple.done .card.card-comment,.card-avatar-small .expanded .animate-ripple.done .item,.card-avatar-small .expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-ripple.item .card.card-comment,.card-avatar-small .expanded .animate-ripple.item .expanded .item,.card-avatar-small .expanded .animate-ripple.item .expanded.item,.card-avatar-small .expanded .animate-ripple.item .in,.card-avatar-small .expanded .animate-ripple.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-ripple.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-ripple.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-ripple.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-ripple.expanded.item .item,.card-avatar-small.expanded .animate-ripple .animate-ripple.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-ripple.expanded.item .item,.card-avatar-small.expanded .animate-ripple.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-ripple.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-ripple.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-ripple.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-ripple.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-ripple.card.card-comment .expanded.item,.card-avatar-small.expanded .animate-ripple.card.card-comment .in,.card-avatar-small.expanded .animate-ripple.card.card-comment .item,.card-avatar-small.expanded .animate-ripple.done .card.card-comment,.card-avatar-small.expanded .animate-ripple.done .item,.card-avatar-small.expanded .animate-ripple.item .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-ripple.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-ripple.item .card.card-comment,.card-avatar-small.expanded .animate-ripple.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-ripple.item .expanded .item,.card-avatar-small.expanded .animate-ripple.item .expanded.item,.card-avatar-small.expanded .animate-ripple.item .in,.card-avatar-small.expanded .animate-ripple.item .item,.card-avatar-small.expanded .expanded .animate-ripple.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-ripple.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-ripple.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-ripple.item .item{opacity:1}.animate-ripple .has-mask-reverse:after{opacity:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-fade-slide-in .animate-ripple.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-ripple.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-ripple.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-ripple.item .has-mask-reverse:after,.animate-ripple .animate-ripple.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-ripple.item .has-mask-reverse:after,.animate-ripple.done .has-mask-reverse:after,.card-avatar-small .expanded .animate-ripple.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-ripple.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-ripple.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-ripple.item .has-mask-reverse:after{opacity:1}.animate-ripple .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.animate-fade-slide-in .item{visibility:hidden}.animate-fade-slide-in .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.55,0,.1,1);transition:transform .3s cubic-bezier(.55,0,.1,1)}.animate-fade-slide-in .item-bg-image img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-fade-slide-in .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .expanded .item,.animate-fade-slide-in .expanded.item,.animate-fade-slide-in .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in.done .item,.animate-ripple .animate-fade-slide-in.expanded.item .item,.animate-ripple .expanded .animate-fade-slide-in .item,.animate-ripple .expanded .animate-fade-slide-in.item .item,.card-avatar-small .expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in.item .item,.card-avatar-small.expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in.item .item{-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.animate-fade-slide-in .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .expanded .item,.animate-fade-slide-in .expanded.item,.animate-fade-slide-in .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in.done .item,.animate-ripple .animate-fade-slide-in.expanded.item .item,.animate-ripple .expanded .animate-fade-slide-in .item,.animate-ripple .expanded .animate-fade-slide-in.item .item,.card-avatar-small .expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in.item .item,.card-avatar-small.expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in.item .item{visibility:visible}.list .item.item-bg-image{max-height:150px}.animate-fade-slide-in .item{visibility:hidden}.animate-fade-slide-in .item{-ms-transform:translate3d(-250px,250px,0);-webkit-transform:translate3d(-250px,250px,0);transform:translate3d(-250px,250px,0);-webkit-transition:-webkit-transform .5s cubic-bezier(.55,0,.1,1);transition:transform .5s cubic-bezier(.55,0,.1,1);opacity:0}.animate-fade-slide-in .animate-fade-slide-in.expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .expanded .animate-fade-slide-in.item,.animate-fade-slide-in .expanded .item,.animate-fade-slide-in .expanded.item,.animate-fade-slide-in .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item,.animate-fade-slide-in.done,.animate-ripple .animate-fade-slide-in.expanded.item,.animate-ripple .expanded .animate-fade-slide-in .item,.animate-ripple .expanded .animate-fade-slide-in.item,.card-avatar-small .expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.item,.card-avatar-small.expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .5s ease-in-out;transition:all .5s ease-in-out;opacity:1}.animate-fade-slide-in .animate-fade-slide-in.expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .expanded .animate-fade-slide-in.item,.animate-fade-slide-in .expanded .item,.animate-fade-slide-in .expanded.item,.animate-fade-slide-in .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item,.animate-fade-slide-in.done,.animate-ripple .animate-fade-slide-in.expanded.item,.animate-ripple .expanded .animate-fade-slide-in .item,.animate-ripple .expanded .animate-fade-slide-in.item,.card-avatar-small .expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.item,.card-avatar-small.expanded .animate-fade-slide-in .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.item{visibility:visible}.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .in,.animate-fade-slide-in .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in .animate-ripple .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .in,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .animate-fade-slide-in.done .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .expanded .item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .in,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .card-avatar-small .animate-fade-slide-in.expanded.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .animate-fade-slide-in.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.done .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .expanded .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .in,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-fade-slide-in.done .animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in.done .animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in.done .animate-ripple .expanded .item,.animate-fade-slide-in.done .animate-ripple .expanded.item,.animate-fade-slide-in.done .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in.done .card-avatar-small .expanded .item,.animate-fade-slide-in.done .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in.done .card-avatar-small.expanded .item,.animate-fade-slide-in.done .expanded .item,.animate-fade-slide-in.done .expanded.item,.animate-fade-slide-in.done .in,.animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .expanded.item,.animate-fade-slide-in.item .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-fade-slide-in.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.animate-ripple .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.animate-ripple .animate-fade-slide-in.done .expanded.item,.animate-ripple .animate-fade-slide-in.expanded.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .item,.animate-ripple .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-fade-slide-in.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-fade-slide-in.expanded.item .expanded .item,.animate-ripple .animate-fade-slide-in.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in.expanded.item .in,.animate-ripple .animate-fade-slide-in.expanded.item .item,.animate-ripple .card-avatar-small .animate-fade-slide-in.expanded.item .card.card-comment,.animate-ripple .card-avatar-small .animate-fade-slide-in.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in.item .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in.item .item,.animate-ripple .expanded .animate-fade-slide-in.done .item,.animate-ripple .expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.animate-ripple .expanded .animate-fade-slide-in.item .expanded .item,.animate-ripple .expanded .animate-fade-slide-in.item .expanded.item,.animate-ripple .expanded .animate-fade-slide-in.item .in,.animate-ripple .expanded .animate-fade-slide-in.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in.item .item,.card-avatar-small .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .item,.card-avatar-small .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in.expanded.item .animate-fade-slide-in.expanded.item .item,.card-avatar-small .animate-ripple .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small .animate-ripple .animate-fade-slide-in.expanded.item .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in.item .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .in,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in.done .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.done .item,.card-avatar-small .expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in.item .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in.item .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in.item .in,.card-avatar-small .expanded .animate-fade-slide-in.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .in,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in.done .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.done .item,.card-avatar-small.expanded .animate-fade-slide-in.item .animate-fade-slide-in-right .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.item .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in.item .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in.item .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in.item .in,.card-avatar-small.expanded .animate-fade-slide-in.item .item,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in.expanded.item .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in.item .item{opacity:1}.animate-fade-slide-in .has-mask-reverse:after{opacity:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-fade-slide-in .animate-fade-slide-in.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-fade-slide-in.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.animate-fade-slide-in.done .has-mask-reverse:after,.animate-ripple .animate-fade-slide-in.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in.item .has-mask-reverse:after{opacity:1}.animate-fade-slide-in .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.animate-fade-slide-in-right .item{visibility:hidden}.animate-fade-slide-in-right .item{-ms-transform:scale3d(.8,0,1);-webkit-transform:scale3d(.8,0,1);transform:scale3d(.8,0,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.55,0,.1,1);transition:transform .3s cubic-bezier(.55,0,.1,1)}.animate-fade-slide-in-right .item-bg-image>img.background{box-shadow:none;-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item>*,.animate-fade-slide-in .expanded .animate-fade-slide-in-right .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item>*,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item>*,.animate-fade-slide-in-right .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item>*,.animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in-right .in,.animate-fade-slide-in-right.done>*,.animate-ripple .animate-fade-slide-in-right.expanded.item>*,.animate-ripple .expanded .animate-fade-slide-in-right .item,.animate-ripple .expanded .animate-fade-slide-in-right.item>*,.card-avatar-small .expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment>*,.card-avatar-small .expanded .animate-fade-slide-in-right.item>*,.card-avatar-small.expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment>*,.card-avatar-small.expanded .animate-fade-slide-in-right.item>*{-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in-right .in,.animate-fade-slide-in-right.done .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .expanded .animate-fade-slide-in-right .item,.animate-ripple .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .item{visibility:visible}.animate-fade-slide-in-right .item{visibility:hidden}.animate-fade-slide-in-right .item{-ms-transform:translate3d(250px,250px,0);-webkit-transform:translate3d(250px,250px,0);transform:translate3d(250px,250px,0);-webkit-transition:-webkit-transform .5s cubic-bezier(.55,0,.1,1);transition:transform .5s cubic-bezier(.55,0,.1,1);opacity:0}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item,.animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in-right .in,.animate-fade-slide-in-right.done,.animate-ripple .animate-fade-slide-in-right.expanded.item,.animate-ripple .expanded .animate-fade-slide-in-right .item,.animate-ripple .expanded .animate-fade-slide-in-right.item,.card-avatar-small .expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.item,.card-avatar-small.expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.item{-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;opacity:1}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item,.animate-fade-slide-in-right .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item,.animate-fade-slide-in-right .expanded .item,.animate-fade-slide-in-right .expanded.item,.animate-fade-slide-in-right .in,.animate-fade-slide-in-right.done,.animate-ripple .animate-fade-slide-in-right.expanded.item,.animate-ripple .expanded .animate-fade-slide-in-right .item,.animate-ripple .expanded .animate-fade-slide-in-right.item,.card-avatar-small .expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.item,.card-avatar-small.expanded .animate-fade-slide-in-right .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.item{visibility:visible}.animate-fade-slide-in .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .animate-fade-slide-in-right.done .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .expanded .item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .in,.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .animate-ripple .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in .animate-ripple .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .animate-ripple .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .animate-ripple .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .card-avatar-small .animate-fade-slide-in-right.expanded.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.done .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .expanded .item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .in,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .item,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .in,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .item,.animate-fade-slide-in-right .animate-ripple .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-fade-slide-in-right .card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .in,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-fade-slide-in-right.done .animate-fade-slide-in .expanded .item,.animate-fade-slide-in-right.done .animate-fade-slide-in .expanded.item,.animate-fade-slide-in-right.done .animate-ripple .expanded .item,.animate-fade-slide-in-right.done .animate-ripple .expanded.item,.animate-fade-slide-in-right.done .card-avatar-small .expanded .card.card-comment,.animate-fade-slide-in-right.done .card-avatar-small .expanded .item,.animate-fade-slide-in-right.done .card-avatar-small.expanded .card.card-comment,.animate-fade-slide-in-right.done .card-avatar-small.expanded .item,.animate-fade-slide-in-right.done .expanded .item,.animate-fade-slide-in-right.done .expanded.item,.animate-fade-slide-in-right.done .in,.animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-fade-slide-in-right.item .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.animate-ripple .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.animate-ripple .animate-fade-slide-in-right.done .expanded.item,.animate-ripple .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in .expanded.item,.animate-ripple .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .card.card-comment,.animate-ripple .animate-fade-slide-in-right.expanded.item .card-avatar-small.expanded .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .expanded .item,.animate-ripple .animate-fade-slide-in-right.expanded.item .expanded.item,.animate-ripple .animate-fade-slide-in-right.expanded.item .in,.animate-ripple .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .card-avatar-small .animate-fade-slide-in-right.expanded.item .card.card-comment,.animate-ripple .card-avatar-small .animate-fade-slide-in-right.expanded.item .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.animate-ripple .expanded .animate-fade-slide-in-right.done .item,.animate-ripple .expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.animate-ripple .expanded .animate-fade-slide-in-right.item .expanded .item,.animate-ripple .expanded .animate-fade-slide-in-right.item .expanded.item,.animate-ripple .expanded .animate-fade-slide-in-right.item .in,.animate-ripple .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small .animate-fade-slide-in-right.expanded.item .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small .animate-ripple .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small .animate-ripple .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .animate-ripple .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .in,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small .expanded .animate-fade-slide-in-right.done .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.done .item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded .item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .expanded.item,.card-avatar-small .expanded .animate-fade-slide-in-right.item .in,.card-avatar-small .expanded .animate-fade-slide-in-right.item .item,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .in,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small.expanded .animate-fade-slide-in-right.done .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.done .item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .animate-fade-slide-in .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .animate-ripple .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded .card.card-comment,.card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded .item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .expanded.item,.card-avatar-small.expanded .animate-fade-slide-in-right.item .in,.card-avatar-small.expanded .animate-fade-slide-in-right.item .item,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in-right.expanded.item .card.card-comment,.card-avatar-small.expanded .animate-ripple .animate-fade-slide-in-right.expanded.item .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.card.card-comment .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.card.card-comment .item,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.item .card.card-comment,.card-avatar-small.expanded .expanded .animate-fade-slide-in-right.item .item{opacity:1}.animate-fade-slide-in-right .has-mask-reverse:after{opacity:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.animate-fade-slide-in .animate-fade-slide-in-right.expanded.item .has-mask-reverse:after,.animate-fade-slide-in .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.animate-fade-slide-in-right .animate-fade-slide-in-right.expanded.item .has-mask-reverse:after,.animate-fade-slide-in-right .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.animate-fade-slide-in-right.done .has-mask-reverse:after,.animate-ripple .animate-fade-slide-in-right.expanded.item .has-mask-reverse:after,.animate-ripple .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in-right.card.card-comment .has-mask-reverse:after,.card-avatar-small .expanded .animate-fade-slide-in-right.item .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in-right.card.card-comment .has-mask-reverse:after,.card-avatar-small.expanded .animate-fade-slide-in-right.item .has-mask-reverse:after{opacity:1}.animate-fade-slide-in-right .out{-ms-transform:scale3d(0,0,1);-webkit-transform:scale3d(0,0,1);transform:scale3d(0,0,1)}.hero.slide-up,.slide-up{height:100%;overflow:hidden;text-align:center}.slide-up{-webkit-transition:all 1s cubic-bezier(.55,0,.1,1);transition:all 1s cubic-bezier(.55,0,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.hero.slide-up *,.slide-up *{opacity:0}.hero.slide-up+.mid-bar,.slide-up+.mid-bar{height:100%;opacity:.7;-webkit-transform:translate3d(100%,-240px,0);transform:translate3d(100%,-240px,0)}/*! + * Waves v0.5.4 + * http://fian.my.id/Waves + * + * Copyright 2014 Alfiana E. Sibuea and other contributors + * Forked by Zach Fitzgerald and other contributors for Ionic Material + * + * Released under the MIT license + * https://github.com/fians/Waves/blob/master/LICENSE + * + */.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink,.popup .button{position:relative;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.ink-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background-color:rgba(255,255,255,.4);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.ink-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink-button,.ink-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.activated.button-text,.button-clear.activated,.button-clear:active,.button-fab.activated,.button-fab:active,.button-flat.activated,.button-flat:active,.button-raised.activated,.button-raised:active,.button-text:active,.ink-button.activated,.ink-button:active,.ink-circle.activated,.ink-circle:active,.ink.activated,.ink:active,.popup .button.activated,.popup .button:active{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.button-clear,.button-clear:link,.button-clear:visited,.button-fab,.button-fab:link,.button-fab:visited,.button-flat,.button-flat:link,.button-flat:visited,.button-raised,.button-raised:link,.button-raised:visited,.button-text,.button-text:link,.button-text:visited,.ink-button,.ink-button-input,.ink-button:link,.ink-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:0;font-size:14px;text-align:center;text-decoration:none;z-index:1}.ink-button{padding:10px 15px;border-radius:2px}.ink-button-input{margin:0;padding:10px 15px}.ink-input-wrapper{border-radius:2px;vertical-align:bottom}.ink-input-wrapper.ink-button{padding:0}.ink-input-wrapper .ink-button-input{position:relative;top:0;left:0;z-index:1}.ink-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.ink-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12)}.ink-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.ink-block{display:block}.ink-ripple{z-index:0}.button-clear .ink-ripple,.button-text .ink-ripple,.ink-dark .ink-ripple,.list .ink-ripple,[class$="-100"]>.ink-ripple,[class$="-clear"]>.ink-ripple,[class$="-light"]>.ink-ripple,[class$="-stable"]>.ink-ripple{background-color:rgba(0,0,0,.2)}.tab-item{position:relative}*{font-family:RobotoDraft,Roboto,"Helvetica Neue","Segoe UI",sans-serif}.rounded{border-radius:4px}a{cursor:pointer}.has-header.expanded{top:76px}.bar{border-bottom:none;padding:0}.bar .button{min-height:44px;min-width:44px;max-width:48px;margin-bottom:0;max-height:44px;width:48px}.bar .title+.buttons.buttons-right{right:0;top:0}.title-left,.title.title-left{left:48px}.title-right,.title.title-right{left:48px}.activated.button-text,.bar .activated.button-text,.bar .button-positive,.bar .button-positive.activated,.bar .button-positive:active,.bar .button-positive:hover,.bar .button-text,.bar .button-text:active,.bar .button-text:hover,.bar-positive,.bar-positive.activated,.bar-positive:active,.bar-positive:hover,.button-bar-positive,.button-bar-positive.activated,.button-bar-positive:active,.button-bar-positive:hover,.button-positive,.button-positive.activated,.button-positive:active,.button-positive:hover,.button-text,.button-text:active,.button-text:hover,.header-positive,.header-positive.activated,.header-positive:active,.header-positive:hover,.positive-bg,.positive-bg.activated,.positive-bg:active,.positive-bg:hover,.positive-border,.positive-border.activated,.positive-border:active,.positive-border:hover{background-color:#3f51b5;color:#fff}.bar .button-positive-900,.bar .button-positive-900.activated,.bar .button-positive-900:active,.bar .button-positive-900:hover,.bar-positive-900,.bar-positive-900.activated,.bar-positive-900:active,.bar-positive-900:hover,.button-bar-positive-900,.button-bar-positive-900.activated,.button-bar-positive-900:active,.button-bar-positive-900:hover,.button-positive-900,.button-positive-900.activated,.button-positive-900:active,.button-positive-900:hover,.header-positive-900,.header-positive-900.activated,.header-positive-900:active,.header-positive-900:hover,.positive-900-bg,.positive-900-bg.activated,.positive-900-bg:active,.positive-900-bg:hover,.positive-900-border,.positive-900-border.activated,.positive-900-border:active,.positive-900-border:hover{background-color:#1a237e;color:#fff}.bar .button-positive-100,.bar .button-positive-100.activated,.bar .button-positive-100:active,.bar .button-positive-100:hover,.bar-positive-100,.bar-positive-100.activated,.bar-positive-100:active,.bar-positive-100:hover,.button-bar-positive-100,.button-bar-positive-100.activated,.button-bar-positive-100:active,.button-bar-positive-100:hover,.button-positive-100,.button-positive-100.activated,.button-positive-100:active,.button-positive-100:hover,.header-positive-100,.header-positive-100.activated,.header-positive-100:active,.header-positive-100:hover,.positive-100-bg,.positive-100-bg.activated,.positive-100-bg:active,.positive-100-bg:hover,.positive-100-border,.positive-100-border.activated,.positive-100-border:active,.positive-100-border:hover{background-color:#c5cae9;color:#fff}.bar .button-calm,.bar .button-calm.activated,.bar .button-calm:active,.bar .button-calm:hover,.bar-calm,.bar-calm.activated,.bar-calm:active,.bar-calm:hover,.button-bar-calm,.button-bar-calm.activated,.button-bar-calm:active,.button-bar-calm:hover,.button-calm,.button-calm.activated,.button-calm:active,.button-calm:hover,.calm-bg,.calm-bg.activated,.calm-bg:active,.calm-bg:hover,.calm-border,.calm-border.activated,.calm-border:active,.calm-border:hover,.header-calm,.header-calm.activated,.header-calm:active,.header-calm:hover{background-color:#2196f3;color:#fff}.bar .button-calm-900,.bar .button-calm-900.activated,.bar .button-calm-900:active,.bar .button-calm-900:hover,.bar-calm-900,.bar-calm-900.activated,.bar-calm-900:active,.bar-calm-900:hover,.button-bar-calm-900,.button-bar-calm-900.activated,.button-bar-calm-900:active,.button-bar-calm-900:hover,.button-calm-900,.button-calm-900.activated,.button-calm-900:active,.button-calm-900:hover,.calm-900-bg,.calm-900-bg.activated,.calm-900-bg:active,.calm-900-bg:hover,.calm-900-border,.calm-900-border.activated,.calm-900-border:active,.calm-900-border:hover,.header-calm-900,.header-calm-900.activated,.header-calm-900:active,.header-calm-900:hover{background-color:#0d47a1;color:#fff}.bar .button-calm-100,.bar .button-calm-100.activated,.bar .button-calm-100:active,.bar .button-calm-100:hover,.bar-calm-100,.bar-calm-100.activated,.bar-calm-100:active,.bar-calm-100:hover,.button-bar-calm-100,.button-bar-calm-100.activated,.button-bar-calm-100:active,.button-bar-calm-100:hover,.button-calm-100,.button-calm-100.activated,.button-calm-100:active,.button-calm-100:hover,.calm-100-bg,.calm-100-bg.activated,.calm-100-bg:active,.calm-100-bg:hover,.calm-100-border,.calm-100-border.activated,.calm-100-border:active,.calm-100-border:hover,.header-calm-100,.header-calm-100.activated,.header-calm-100:active,.header-calm-100:hover{background-color:#bbdefb;color:#fff}.bar .button-royal,.bar .button-royal.activated,.bar .button-royal:active,.bar .button-royal:hover,.bar-royal,.bar-royal.activated,.bar-royal:active,.bar-royal:hover,.button-bar-royal,.button-bar-royal.activated,.button-bar-royal:active,.button-bar-royal:hover,.button-royal,.button-royal.activated,.button-royal:active,.button-royal:hover,.header-royal,.header-royal.activated,.header-royal:active,.header-royal:hover,.royal-bg,.royal-bg.activated,.royal-bg:active,.royal-bg:hover,.royal-border,.royal-border.activated,.royal-border:active,.royal-border:hover{background-color:#673ab7;color:#fff}.bar .button-royal-900,.bar .button-royal-900.activated,.bar .button-royal-900:active,.bar .button-royal-900:hover,.bar-royal-900,.bar-royal-900.activated,.bar-royal-900:active,.bar-royal-900:hover,.button-bar-royal-900,.button-bar-royal-900.activated,.button-bar-royal-900:active,.button-bar-royal-900:hover,.button-royal-900,.button-royal-900.activated,.button-royal-900:active,.button-royal-900:hover,.header-royal-900,.header-royal-900.activated,.header-royal-900:active,.header-royal-900:hover,.royal-900-bg,.royal-900-bg.activated,.royal-900-bg:active,.royal-900-bg:hover,.royal-900-border,.royal-900-border.activated,.royal-900-border:active,.royal-900-border:hover{background-color:#311b92;color:#fff}.bar .button-royal-100,.bar .button-royal-100.activated,.bar .button-royal-100:active,.bar .button-royal-100:hover,.bar-royal-100,.bar-royal-100.activated,.bar-royal-100:active,.bar-royal-100:hover,.button-bar-royal-100,.button-bar-royal-100.activated,.button-bar-royal-100:active,.button-bar-royal-100:hover,.button-royal-100,.button-royal-100.activated,.button-royal-100:active,.button-royal-100:hover,.header-royal-100,.header-royal-100.activated,.header-royal-100:active,.header-royal-100:hover,.royal-100-bg,.royal-100-bg.activated,.royal-100-bg:active,.royal-100-bg:hover,.royal-100-border,.royal-100-border.activated,.royal-100-border:active,.royal-100-border:hover{background-color:#d1c4e9;color:#fff}.balanced-bg,.balanced-bg.activated,.balanced-bg:active,.balanced-bg:hover,.balanced-border,.balanced-border.activated,.balanced-border:active,.balanced-border:hover,.bar .button-balanced,.bar .button-balanced.activated,.bar .button-balanced:active,.bar .button-balanced:hover,.bar-balanced,.bar-balanced.activated,.bar-balanced:active,.bar-balanced:hover,.button-balanced,.button-balanced.activated,.button-balanced:active,.button-balanced:hover,.button-bar-balanced,.button-bar-balanced.activated,.button-bar-balanced:active,.button-bar-balanced:hover,.header-balanced,.header-balanced.activated,.header-balanced:active,.header-balanced:hover{background-color:#4caf50;color:#fff}.balanced-900-bg,.balanced-900-bg.activated,.balanced-900-bg:active,.balanced-900-bg:hover,.balanced-900-border,.balanced-900-border.activated,.balanced-900-border:active,.balanced-900-border:hover,.bar .button-balanced-900,.bar .button-balanced-900.activated,.bar .button-balanced-900:active,.bar .button-balanced-900:hover,.bar-balanced-900,.bar-balanced-900.activated,.bar-balanced-900:active,.bar-balanced-900:hover,.button-balanced-900,.button-balanced-900.activated,.button-balanced-900:active,.button-balanced-900:hover,.button-bar-balanced-900,.button-bar-balanced-900.activated,.button-bar-balanced-900:active,.button-bar-balanced-900:hover,.header-balanced-900,.header-balanced-900.activated,.header-balanced-900:active,.header-balanced-900:hover{background-color:#1b5e20;color:#fff}.balanced-100-bg,.balanced-100-bg.activated,.balanced-100-bg:active,.balanced-100-bg:hover,.balanced-100-border,.balanced-100-border.activated,.balanced-100-border:active,.balanced-100-border:hover,.bar .balanced-100-bg:hover,.bar .button-balanced-100,.bar .button-balanced-100.activated,.bar .button-balanced-100:active,.bar-balanced-100,.bar-balanced-100.activated,.bar-balanced-100:active,.bar-balanced-100:hover,.button-balanced-100,.button-balanced-100.activated,.button-balanced-100:active,.button-balanced-100:hover,.button-bar-balanced-100,.button-bar-balanced-100.activated,.button-bar-balanced-100:active,.button-bar-balanced-100:hover,.header-balanced-100,.header-balanced-100.activated,.header-balanced-100:active,.header-balanced-100:hover{background-color:#c8e6c9;color:#fff}.bar .button-energized,.bar .button-energized.activated,.bar .button-energized:active,.bar .button-energized:hover,.bar-energized,.bar-energized.activated,.bar-energized:active,.bar-energized:hover,.button-bar-energized,.button-bar-energized.activated,.button-bar-energized:active,.button-bar-energized:hover,.button-energized,.button-energized.activated,.button-energized:active,.button-energized:hover,.energized-bg,.energized-bg.activated,.energized-bg:active,.energized-bg:hover,.energized-border,.energized-border.activated,.energized-border:active,.energized-border:hover,.header-energized,.header-energized.activated,.header-energized:active,.header-energized:hover{background-color:#ff9800;color:#fff}.bar .button-energized-900,.bar .button-energized-900.activated,.bar .button-energized-900:active,.bar .button-energized-900:hover,.bar-energized-900,.bar-energized-900.activated,.bar-energized-900:active,.bar-energized-900:hover,.button-bar-energized-900,.button-bar-energized-900.activated,.button-bar-energized-900:active,.button-bar-energized-900:hover,.button-energized-900,.button-energized-900.activated,.button-energized-900:active,.button-energized-900:hover,.energized-900-bg,.energized-900-bg.activated,.energized-900-bg:active,.energized-900-bg:hover,.energized-900-border,.energized-900-border.activated,.energized-900-border:active,.energized-900-border:hover,.header-energized-900,.header-energized-900.activated,.header-energized-900:active,.header-energized-900:hover{background-color:#e65100;color:#fff}.bar .button-energized-100,.bar .button-energized-100.activated,.bar .button-energized-100:active,.bar .button-energized-100:hover,.bar-energized-100,.bar-energized-100.activated,.bar-energized-100:active,.bar-energized-100:hover,.button-bar-energized-100,.button-bar-energized-100.activated,.button-bar-energized-100:active,.button-bar-energized-100:hover,.button-energized-100,.button-energized-100.activated,.button-energized-100:active,.button-energized-100:hover,.energized-100-bg,.energized-100-bg.activated,.energized-100-bg:active,.energized-100-bg:hover,.energized-100-border,.energized-100-border.activated,.energized-100-border:active,.energized-100-border:hover,.header-energized-100,.header-energized-100.activated,.header-energized-100:active,.header-energized-100:hover,.modal.modal-help .activated.row.selected,.modal.modal-help .row.selected,.modal.modal-help .row.selected:active,.modal.modal-help .row.selected:hover{background-color:#ffe0b2}.assertive-bg,.assertive-bg.activated,.assertive-bg:active,.assertive-bg:hover,.assertive-border,.assertive-border.activated,.assertive-border:active,.assertive-border:hover,.bar .button-assertive,.bar .button-assertive.activated,.bar .button-assertive:active,.bar .button-assertive:hover,.bar-assertive,.bar-assertive.activated,.bar-assertive:active,.bar-assertive:hover,.button-assertive,.button-assertive.activated,.button-assertive:active,.button-assertive:hover,.button-bar-assertive,.button-bar-assertive.activated,.button-bar-assertive:active,.button-bar-assertive:hover,.header-assertive,.header-assertive.activated,.header-assertive:active,.header-assertive:hover{background-color:#f44336;color:#fff}.assertive-900-bg,.assertive-900-bg.activated,.assertive-900-bg:active,.assertive-900-bg:hover,.assertive-900-border,.assertive-900-border.activated,.assertive-900-border:active,.assertive-900-border:hover,.bar .button-assertive-900,.bar .button-assertive-900.activated,.bar .button-assertive-900:active,.bar .button-assertive-900:hover,.bar-assertive-900,.bar-assertive-900.activated,.bar-assertive-900:active,.bar-assertive-900:hover,.button-assertive-900,.button-assertive-900.activated,.button-assertive-900:active,.button-assertive-900:hover,.button-bar-assertive-900,.button-bar-assertive-900.activated,.button-bar-assertive-900:active,.button-bar-assertive-900:hover,.header-assertive-900,.header-assertive-900.activated,.header-assertive-900:active,.header-assertive-900:hover{background-color:#b71c1c;color:#fff}.assertive-100-bg,.assertive-100-bg.activated,.assertive-100-bg:active,.assertive-100-bg:hover,.assertive-100-border,.assertive-100-border.activated,.assertive-100-border:active,.assertive-100-border:hover,.bar .button-assertive-100,.bar .button-assertive-100.activated,.bar .button-assertive-100:active,.bar .button-assertive-100:hover,.bar-assertive-100,.bar-assertive-100.activated,.bar-assertive-100:active,.bar-assertive-100:hover,.button-assertive-100,.button-assertive-100.activated,.button-assertive-100:active,.button-assertive-100:hover,.button-bar-assertive-100,.button-bar-assertive-100.activated,.button-bar-assertive-100:active,.button-bar-assertive-100:hover,.header-assertive-100,.header-assertive-100.activated,.header-assertive-100:active,.header-assertive-100:hover{background-color:#ffcdd2;color:#fff}.bar .button-stable,.bar .button-stable.activated,.bar .button-stable:active,.bar .button-stable:hover,.bar-stable,.bar-stable.activated,.bar-stable:active,.bar-stable:hover,.button-bar-stable,.button-bar-stable.activated,.button-bar-stable:active,.button-bar-stable:hover,.button-stable,.button-stable.activated,.button-stable:active,.button-stable:hover,.header-stable,.header-stable.activated,.header-stable:active,.header-stable:hover,.stable-bg,.stable-bg.activated,.stable-bg:active,.stable-bg:hover,.stable-border,.stable-border.activated,.stable-border:active,.stable-border:hover{background-color:#e0e0e0;color:#fff}.icon-help,.icon-help *,.icon-help:active,.icon-help:active *,.icon-help:hover,.icon-help:hover *,.positive,.positive *,.positive:active,.positive:active *,.positive:hover,.positive:hover *,.text-editable:active:hover,.text-editable:active:hover *,.text-editable:hover,.text-editable:hover *{color:#3f51b5}.positive-900,.positive-900 *,.positive-900:active,.positive-900:active *,.positive-900:hover,.positive-900:hover *{color:#3f51b5}.positive-100,.positive-100 *,.positive-100:active,.positive-100:active *,.positive-100:hover,.positive-100:hover *{color:#c5cae9}.calm-100,.calm-100 *,.calm-100:active,.calm-100:active *,.calm-100:hover,.calm-100:hover *{color:#2196f3}.calm-900,.calm-900 *,.calm-900:active,.calm-900:active *,.calm-900:hover,.calm-900:hover *{color:#0d47a1}.calm-100,.calm-100 *,.calm-100:active,.calm-100:active *,.calm-100:hover,.calm-100:hover *{color:#bbdefb}.royal,.royal *,.royal:active,.royal:active *,.royal:hover,.royal:hover *{color:#673ab7}.royal-900,.royal-900 *,.royal-900:active,.royal-900:active *,.royal-900:hover,.royal-900:hover *{color:#311b92}.royal-100,.royal-100 *,.royal-100:active,.royal-100:active *,.royal-100:hover,.royal-100:hover *{color:#d1c4e9}.balanced,.balanced *,.balanced:active,.balanced:active *,.balanced:hover,.balanced:hover *{color:#4caf50}.balanced-900,.balanced-900 *,.balanced-900:active,.balanced-900:active *,.balanced-900:hover,.balanced-900:hover *{color:#1b5e20}.balanced-100,.balanced-100 *,.balanced-100:active,.balanced-100:active *,.balanced-100:hover,.balanced-100:hover *{color:#c8e6c9}.energized,.energized *,.energized:active,.energized:active *,.energized:hover,.energized:hover *{color:#ff9800}.energized-900,.energized-900 *,.energized-900:active,.energized-900:active *,.energized-900:hover,.energized-900:hover *{color:#e65100}.energized-100,.energized-100 *,.energized-100:active,.energized-100:active *,.energized-100:hover,.energized-100:hover *{color:#ffe0b2}.assertive,.assertive *,.assertive:active,.assertive:active *,.assertive:hover,.assertive:hover *,.icon-alert,.icon-alert *,.icon-alert:active,.icon-alert:active *,.icon-alert:hover,.icon-alert:hover *{color:#f44336}.assertive-900,.assertive-900 *,.assertive-900:active,.assertive-900:active *,.assertive-900:hover,.assertive-900:hover *{color:#b71c1c}.assertive-100,.assertive-100 *,.assertive-100:active,.assertive-100:active *,.assertive-100:hover,.assertive-100:hover *{color:#ffcdd2}.stable,.stable *,.stable:active,.stable:active *,.stable:hover,.stable:hover *{color:#e0e0e0}.light,.light *,.light:active,.light:active *,.light:hover,.light:hover *{color:#fff}.button-text-dark,.button-text-dark *,.button-text-dark:active,.button-text-dark:active *,.button-text-dark:hover,.button-text-dark:hover *,.dark,.dark *,.dark:active,.dark:active *,.dark:hover,.dark:hover *{color:#444}.light-border{border-color:#ddd}.navbar-default .navbar-nav>li>a{margin:0;padding-right:26px;padding-left:26px;border-top:3px solid transparent;color:#bfd5c9;opacity:1}.mid-bar{padding:16px}.mid-bar h1,.mid-bar h2,.mid-bar h3,.mid-bar h4,.mid-bar h5,.mid-bar h6{color:#fff;margin-bottom:5px}.mid-bar p{color:rgba(255,255,255,.5);margin-bottom:0}.card>.item-avatar,.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:95px}.item,.item-complex .item-content,.item-radio .item-content{background-color:transparent}.dark-bg h2,.item.dark-bg h2{color:#fff}.tabs-striped .tabs{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.bar .button.button-clear,.bar .button.button-text{color:#fff}#menu .footer .bar .button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:24px}.menu{background-color:transparent}.button-icon.button.activated,.button-icon.button.active{opacity:initial}.popover{opacity:0;position:absolute;right:8px;transform:translate(50%,-50%) scale(0,0);transition:transform .3s ease-in-out,opacity .3s ease-in-out;top:8px}.popover.ng-enter{opacity:1;transform:translate(0,-14px) scale(1,1);transition:transform .3s ease-in-out,opacity .3s ease-in-out}.popover.ng-leave{opacity:0;transform:translate(50%,-50%) scale(0,0);transition:transform .3s ease-in-out,opacity .3s ease-in-out}.button{overflow:hidden!important}@font-face{font-family:Cesiumicons;src:url(../fonts/cesiumicons.eot?v=1.2);src:url(../fonts/cesiumicons.eot?v=1.2#iefix) format("embedded-opentype"),url(../fonts/cesiumicons.ttf?v=1.2) format("truetype"),url(../fonts/cesiumicons.woff?v=1.2) format("woff"),url(../fonts/cesiumicons.woff) format("woff"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9ImNlc2l1bWljb25zIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGQ9Ik03MDQuNjMxIDU3MS4xMjhjLTg4LjYxMy0xNDEuNDA5LTIyMC40MDMtMjYzLjQwOC0zODUuNTIxLTMwNS40NzMtNjcuMjUyLTE4LjQ5My0xMzcuMTEyLTI1LjgyMi0yMDYuNzA1LTI3LjAyMiA4NS41NDktMTYzLjA5NSAyNzUuODEtMjYyLjI3MiA0NTguNTQ1LTIzNy45NSAxODEuMTY2IDE5LjA3NiAzNDEuNjYyIDE1Ny4yMTUgMzg4LjMzOCAzMzMuMTYyLTU0LjYwMSAxMDMuOTI0LTE0MS40OSAxOTcuODc0LTI1NC42NTYgMjM3LjI4M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZD0iTTcwNS45MzcgNTcyLjA4OGMtMTYuNzU2LTExMS44MTUtODUuMDg2LTIwNy4yLTEwNy4yNjctMzE3LjIyMS05LjE4OC01MS41NDEgMjYuNzg2LTExMC42NDItMTQuNTc5LTE1NS41MTQtNDYuMjEtNTIuNDAyLTExOC45MDctNjUuMzc5LTE4MS45MzgtODcuNDY2IDE3Ny43My00Ny45MSAzNzkuNjYgMjQuMjE1IDQ4NS45ODIgMTc0Ljc4IDUwLjU1IDY5LjExNiA4MC45OTIgMTUyLjY4OSA4Ni42OTYgMjM4LjEyNS00Ni4wODUgOS40ODMtNjkuNDM2IDU1LjAyMC0xMTAuNTU2IDc0LjIwMS00OS45MTcgMjkuOTkyLTEwMy41NzEgNTMuNTE0LTE1OC4zMzkgNzMuMDk1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBkPSJNNzA0LjQyMiA1NjMuNGMtMjMuNzg2LTUxLjQwOC0yNi40MzYtMTA5Ljc1Ny01NC4wODQtMTU5LjcyNi03LjIxMS0zMi45MDktNDEuMDkxLTg0LjI4OC0yOS40OTgtMTA2LjQ4OSAxMDEuNTktMTYuNTQyIDIwMy4xODEtMzMuMDg1IDMwNC43NzEtNDkuNjI3IDE4LjI3OCAzNS42NDkgMzEuODQ1IDczLjcxMSA0MC4yMDEgMTEyLjg5NC03My44NjggNzkuMjY5LTE1MC40NzEgMTYzLjQyNi0yNTUuMzU4IDIwMC42MzVsLTYuMDMyIDIuMzE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBkPSJNNjY4LjYxNiA0NDUuNzk0Yy0yMC45ODMtMzEuNjc5LTI3LjI0NS03MC40MDgtNDQuMTA0LTEwNC40MjYtMTYuMjIxLTM1LjY4OS01MS40MTUtMTE5LjQ3MiAxOS42ODQtMTA5Ljg5IDUwLjQ1OSAyNC42NTQgOTUuMDUwLTEzLjM3OSAxNDUuODE5LTE2LjkyOSA0MC4zMTctNS41NjEgODIuMTM3LTQuNjY1IDEyMS4yOTUgNy4yMDEgMTQuOTgzIDMxLjcxNiA1MC42ODYgODIuNTk0IDM4LjcyNiAxMDguMzA1LTQ4LjU2MyA5Ljg2Ny05OS40NzMgMTMuODc5LTE0NS4yMTUgMzMuNjkgMTkuMjczIDQ1LjU5NS01NC45NzQgNTUuNDY1LTg5Ljk3NiA2OC44NC0xNS4zNDEgNC42MzctMzAuNzY1IDguOTk4LTQ2LjIyOSAxMy4yMDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGQ9Ik02MDcuNzE0IDE2MC44NzNjLTMwLjE4My04NS4wMDItMTIzLjE4Ni0xMTkuOTQ4LTIwMS44MzItMTQ1Ljk0MyA1LjAyMC0xMS4xODYgNzEuMTg2LTE2LjMyNSAxMDAuNzg3LTE3LjMyNiAxMTcuMTE1LTMuMDY3IDIzNC41NDIgNDEuMDg2IDMyMC40OCAxMjAuNzUyLTc0LjgzMSAyLjgzNC0xNDkuNTQ5IDE0Ljc4NC0yMTkuNDM1IDQyLjUxN3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZD0iTTU5OC40ODUgMjY4LjUzNGMtNC4xNzQtNDIuNzY0LTI1LjE4OC0xMTUuOTM2IDM0LjAyOC0xMjguNDk0IDU4LjUzNy0xNC41ODEgMTE5LjQzNC0xOC41MTEgMTc3LjA2Ny0zNy4wMjAgNDUuMjAxIDM3LjQ0NyA4My4xNjcgODMuNTk5IDExMS4xMiAxMzUuMjE3LTEwNy45OC0xLjY4MS0yMTkuNDMxLTEwLjIwNC0zMjIuMjE1IDMwLjI5N3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA2OyIgZD0iTTYwNy4yMSA2MDAuNzhjMTguOTU5IDIuMjkgMzUuMjM0IDEuODk2IDI4LjI4OC0yMS43MiA1LjkzNS0xNC42NDQtMzYuNjE0LTE0LjYwNy0yOC4yODggMS44NDEgMCA2LjYyNiAwIDEzLjI1MiAwIDE5Ljg3OXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA3OyIgZD0iTTQ0NC41NDEgNzAyLjk2MmMyMS4wODggMy45NTggMzIuNjU0LTEuNjA0IDI2Ljk1NC0yNC40MzUtNS42NzMtMTEuMDcxLTM3LjY5Ny03LjY1LTI2Ljk1NCAxNC4wMzYgMCAzLjQ2NiAwIDYuOTMzIDAgMTAuMzk5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBkPSJNNTA0LjUzMiA2ODEuNzhjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGQ9Ik01MDIuNTM5IDQxNy40MjZjMTguNzg2IDAgMzcuNTcyIDAgNTYuMzU4IDAgMC0xOC43ODYgMC0zNy41NzIgMC01Ni4zNTgtMTguNzg2IDAtMzcuNTcyIDAtNTYuMzU4IDAgMCAxOC43ODYgMCAzNy41NzIgMCA1Ni4zNTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGQ9Ik01MDguODU2IDYzMC4xNTdjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYjsiIGQ9Ik01NjkuMTAzIDQ3NC4xNGMxOC45NyAxLjkyOSAzNi40OTIgMi40MDkgMjkuNDA0LTIxLjcyIDYuODk0LTE1LjkzMi0zNy4yMzUtMTUuODMzLTI5LjQwNCAwLjcyNSAwIDYuOTk4IDAgMTMuOTk2IDAgMjAuOTk0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGM7IiBkPSJNNjI3LjA4NyA1MzEuNDAzYzE5LjM1IDcuODY5IDI5LjQwOC05LjU4MiAxOS4zMzgtMjIuMDUzLTIxLjU4My00LjE0Ny0yMC44MDEgMy4zODctMTkuMzM4IDIyLjA1M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZD0iTTU0Ny42MjcgNTI1LjIzMWMxMy40NzgtMy4yOTggNDMuMjM2IDkuNjgyIDM2Ljc1NS0xMy41NzUgNi4yNTQtMjMuMDMwLTcuMDU3LTI2LjQ5Ni0yNy4xNS0yMy4xOC0xOC41NjctNS40OTYtNS44NzEgMjYuNTI3LTkuNjA1IDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBlOyIgZD0iTTQwMy44MDIgMzM1LjAyNGMxNC40MjYtMS45OTggMzYuNzMgMy44ODIgNDYuNTU2LTIuNzE1LTIuMDIwLTE0LjMxNSAzLjkxMy0zNi41ODQtMi43MTUtNDYuMjkyLTEyLjg3OSAzLjU0NS00MC4wMTctNy4xNjktNDMuODQxIDUuNDMgMCAxNC41MjYgMCAyOS4wNTEgMCA0My41Nzd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZjsiIGQ9Ik00NDcuOTA3IDQwNi4wODRjMTYuODM2LTAuMTE3IDM5LjY3NyA1Ljc3IDMxLjg1NC0xOS4wMDUgNy44Mi0yNC4zNTUtMTYuMDgwLTE2Ljk5LTMxLjg1NC0xNy43NSAwIDEyLjI1MiAwIDI0LjUwMyAwIDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTEwOyIgZD0iTTUxNS4yOTEgNDY4LjU2N2MtMTguOTcxIDEuODk0LTM2LjYxMiAyLjQ1OS0yOS41MS0yMS43Mi0yLjUzOC0xMi45OSAzOS42MjctMTMuMzc0IDI5LjUxIDUuODkxIDAgNS4yNzYgMCAxMC41NTMgMCAxNS44Mjl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkxMTsiIGQ9Ik01NzguNDg2IDU3Mi44NjZjMjEuMjMyIDQuOTIgMjkuNDY5LTMuMTU2IDI0LjUwMy0yNC40MzUtMTMuMTA0LTguNTMyLTMyLjk1NS0yLjEwNi0yNC41MDMgMTkuMjAxdjUuMjM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MTI7IiBkPSJNNjAxLjQ3MSA2NDEuNjg5Yy0xOC45NzEgMS44OTQtMzYuNjEyIDIuNDU5LTI5LjUxLTIxLjcyLTIuNTM4LTEyLjk5IDM5LjYyNy0xMy4zNzQgMjkuNTEgNS44OTEgMCA1LjI3NiAwIDEwLjU1MyAwIDE1LjgyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTE1OyIgZ2x5cGgtbmFtZT0iZGlhc3BvcmEiIGhvcml6LWFkdi14PSIxMDY0IiBkPSJNNjcwLjEgMjIuMTA5Yy0yOC42OTIgNDAuMDQ2LTczLjQ1OSAxMDIuNTcxLTk5LjQ4MiAxMzguOTQ1LTI2LjU3OSAzNy4xNTEtNDguMjAyIDY2LjE0Ni00OS4zNCA2Ni4xNjEtMS4xNjkgMC4wMTUtNDIuOTg2LTU2LjE5Ni05OC45MTItMTMyLjk2MS01My4yODgtNzMuMTQzLTk3LjMzLTEzMi45ODctOTcuODcyLTEzMi45ODctMS41MTYgMC0xOTIuMTE0IDEzNC4yNS0xOTIuNjA1IDEzNS42NjMtMC4yMzcgMC42ODQgNDIuODUgNjMuOTM1IDk1Ljc1MSAxNDAuNTU5czk2LjE4MiAxNDAuNTIzIDk2LjE4MiAxNDEuOTk5YzAgMi4zOC0xNy4xNDIgOC4zOTgtMTUxLjYwNSA1My4yMjYtODMuMzgzIDI3Ljc5OC0xNTIuNDIyIDUwLjg2MS0xNTMuNDIgNTEuMjUxLTEuMzg4IDAuNTQyIDYuNTUgMjcuMTAzIDMzLjc4MyAxMTMuMDMyIDE5LjU3OCA2MS43NzggMzYuMDQwIDExMi44MjggMzYuNTgxIDExMy40NDRzNzMuMDExLTIyLjU3NCAxNjEuMDQzLTUxLjUzNGM4OC4wMzMtMjguOTYgMTYwLjc5Ni01Mi42NTQgMTYxLjY5Ni01Mi42NTNzMS45MTkgMS4zNDggMi4yNjMgMi45OTRjMC4zNDQgMS42NDYgMS4xMDQgNzYuNjAxIDEuNjg4IDE2Ni41NjZzMS41NDYgMTY0LjMyMiAyLjEzNyAxNjUuMjM2YzAuODQ3IDEuMzA5IDI1LjU3NiAxLjY1OCAxMTYuMzY0IDEuNjQyIDYzLjQwOC0wLjAxMSAxMTUuOTQ4LTAuNDYgMTE2Ljc1Ni0wLjk5NyAxLjAxOC0wLjY3NyAyLjc1Ny01MC4xMzggNS42Ny0xNjEuMjI2IDQuNzgzLTE4Mi40MDggNC44ODYtMTg0Ljg1MiA3Ljc5NS0xODQuODUyIDEuMTI4IDAgNzAuODk2IDIzLjM1MyAxNTUuMDQxIDUxLjg5NnMxNTMuNCA1MS40MzMgMTUzLjkwMSA1MC44NjhjMS43LTEuOTE4IDcwLjcxNS0yMjYuNjAyIDY5Ljg2NS0yMjcuNDUxLTAuNDY0LTAuNDY0LTcwLjY5LTI0LjUxNC0xNTYuMDU2LTUzLjQ0NC0xMTcuNDMyLTM5Ljc5Ny0xNTUuMzE1LTUzLjE0My0xNTUuNjMzLTU0LjgyNy0wLjIzNS0xLjI0NCA0MC4xNDktNjEuNTk0IDkxLjQ5OS0xMzYuNzM3IDUwLjU1NS03My45ODEgOTEuNzMzLTEzNS4wNjIgOTEuNTA3LTEzNS43MzctMC41MjEtMS41NDktMTg5LjY4MS0xNDAuODg0LTE5MS4yNjMtMTQwLjg4NC0wLjY0MiAwLTI0LjY0MyAzMi43NjUtNTMuMzM1IDcyLjgxeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=) format("svg");font-weight:400;font-style:normal}.cesiumicons,.cion,.ion-library:before,.ion-office:before,.ion-social-diaspora:before,.ion-social-duniter:before{display:inline-block;font-family:Cesiumicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-social-duniter:before{content:""}.ion-social-diaspora:before{content:""}.ion-office:before{content:""}.ion-library:before{content:""}@media screen and (max-width:400px){@-ms-viewport{width:320px}}@media screen and (max-width:767px){.hidden-xs{display:none!important;visibility:hidden!important}.padding-top-xs{padding-top:10px}}@media screen and (min-width:768px){.hidden-xs{display:inherit;visibility:visible}.row.hidden-xs{display:flex!important}.button.hidden-xs{display:inline-block}}@media screen and (max-width:767px){.visible-xs{display:inherit!important;visibility:visible!important}.button.visible-xs{display:inline-block!important}}@media screen and (min-width:768px){.visible-xs{display:none!important;visibility:hidden!important}}@media screen and (max-width:767px){.padding-xs{padding:16px!important}.no-padding-xs{padding:0!important}.no-margin-xs{margin:0!important}}@media screen and (min-width:768px) and (max-width:991px){.hidden-sm,.row-header.hidden-sm,.row.hidden-sm{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:inline-block!important}.badge:empty{display:none!important}.padding-sm{padding:16px!important}.no-padding-sm{padding:0!important}.no-margin-sm{margin:0!important}}@media screen and (min-width:768px){.item-toggle .toggle{right:32px}}@media screen and (min-width:992px){.hidden-sm{display:inherit;visibility:visible}.row.hidden-sm{display:flex!important}.button.hidden-sm{display:flex}#menu .footer .popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip .icon-center.icon-alert .button.hidden-sm,.popover-helptip .icon-center.icon-help .button.hidden-sm,.popover-helptip .icon-left.icon-alert .button.hidden-sm,.popover-helptip .icon-left.icon-help .button.hidden-sm,.popover-helptip .icon-right.icon-alert .button.hidden-sm,.popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon.icon-bottom-center .button.hidden-sm,.popover-helptip .icon.icon-bottom-left .button.hidden-sm,.popover-helptip .icon.icon-bottom-right .button.hidden-sm,.popover-helptip .icon.icon-center .button.hidden-sm,.popover-helptip .icon.icon-left .button.hidden-sm,.popover-helptip .icon.icon-right .button.hidden-sm,.pull-left .button.hidden-sm,.pull-right .button.hidden-sm{display:inline-block}}@media screen and (max-width:767px){.hidden-sm{display:inherit;visibility:visible}}@media screen and (max-width:991px){.visible-sm{display:inherit!important;visibility:visible!important}.button.visible-sm{display:inline-block!important}}@media screen and (min-width:992px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:767px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:991px){body{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEbSURBVDiNndMxK4ZRGMbx3zmRMrwvM2XCQFFik/IJpCw+hJLPgfIhLBY+gEEGJQPFwGZg9TIoBrfhOfSQHl7XeM7/fw3nvk+KCPWklEawgGlMlOMrnOMoIm6/8B8FKaWMFazhGQ94LFwbg+jHDvYi4u2zIKWUsIk5XNfE72ljHKfYiIjI5WIZMzhrkJW7s8IuQ8IwdnGDpwa5nhbGsJqxiNcuZIV9xWJWvXY3cr1kOmMSnX8UdDCZEb+RDYmMS9WMu80gLrNqw1r/KGjhPOMQvaol+Wva6MFhjoh7bGEUuVGrkgu7HRH3H8IBTjCLgQZ5oDAnxfnymRKWsI4X1Zw7NbGFPmxjP4qYfvjOQ5jHlGpHqCZ1geOIuKvz76QSW1T3cwmnAAAAAElFTkSuQmCC),auto}}@media screen and (min-width:992px){body{cursor:inherit}}@media screen and (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (min-width:1200px){.hidden-md{display:inherit;visibility:visible}}@media screen and (max-width:991px){.hidden-md{display:inherit;visibility:visible}}@media screen and (min-width:992px) and (max-width:1199px){.visible-md{display:inherit!important;visibility:visible!important}}@media screen and (min-width:1200px){.visible-md{display:none;visibility:hidden}}@media screen and (max-width:991px){.visible-md{display:none;visibility:hidden}}@media screen and (min-width:1200px){.hidden-lg{display:none!important;visibility:hidden!important}.visible-lg{display:inherit!important;visibility:visible!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:450px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (max-width:1199px){.hidden-lg{display:inherit;visibility:visible}}@media screen and (max-width:1199px){.visible-lg{display:none;visibility:hidden}}@media screen and (max-width:768px){.no-padding-xs{padding:inherit}}@media screen and (max-width:767px){.no-margin-xs{margin:0!important}}@media screen and (min-width:992px){.disable-user-behavior,.scroll,body,html{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;-webkit-touch-callout:default!important;-webkit-tap-highlight-color:#387ef5;-webkit-user-drag:none!important;touch-action:auto!important;-ms-touch-action:auto!important;-ms-content-zooming:none!important}}@media screen and (max-width:844px){.hidden-nomenu{display:none!important;visibility:hidden!important}.visible-nomenu{display:inherit!important;visibility:visible!important}}@media screen and (min-width:845px){.hidden-nomenu{display:inherit;visibility:visible}.visible-nomenu{display:none!important;visibility:hidden!important}}@media screen and (min-width:845px){.hidden-menu{display:none!important;visibility:hidden!important}.visible-menu{display:inherit!important;visibility:visible!important}}@media screen and (max-width:844px){.hidden-menu{display:inherit;visibility:visible}.visible-menu{display:none;visibility:hidden}}body,html{position:absolute;top:0;left:0;height:100%;width:100%}.item.item-icon-right .item-select select,.item.item-icon-right.item-select select{right:48px;padding:0 20px 0 16px}.item.item-icon-right .item-select:after,.item.item-icon-right.item-select:after{right:56px}#unitPopover .item.selected,.popover-unit .item.selected{background-color:#f8f8f8}@media (max-width:767px){.popover-share{width:auto}}.ios ion-content{pointer-events:auto}.popover-share{height:110px}.popover-share .bar{box-shadow:none!important}.popover-share .bar-header{height:20px}.popover-share .bar-header .title{font-size:12px;font-weight:700;height:20px;line-height:19px;max-width:260px;margin:0 5px;text-align:left}.popover-share .bar-header span{font-size:10px;margin:5px;height:20px;position:absolute;right:0;top:0;margin:0 5px;display:block}.popover-share .has-header{top:20px}.popover-share .has-footer{bottom:40px}.popover-share .bar-footer{color:#387ef5;height:40px}.popover-share .bar-footer .button-icon{padding:0 5px}.popover-share .bar-footer .button-close{position:absolute;right:0;bottom:0}.popover-share .item{padding:5px}.popover-share .item input{border:1px solid grey;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.3)}.popover-share .item input:focus{border-color:#387ef5;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.3),0 0 8px #08c}.popover-share .list .item{border-bottom:0!important}.popover-light .bar-footer,.popover-light .bar-header,.popover-notification .bar-footer,.popover-notification .bar-header{height:30px}.popover-light .bar-footer .title,.popover-light .bar-header .title,.popover-notification .bar-footer .title,.popover-notification .bar-header .title{color:#000;text-align:left;left:0!important;font-size:14px;line-height:30px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-light .bar-footer .icon.icon-center,.popover-helptip .popover-light .bar-footer .icon.icon-right,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-header .icon-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-center.icon-help,.popover-helptip .popover-light .bar-header .icon-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-center,.popover-helptip .popover-light .bar-header .icon.icon-bottom-right,.popover-helptip .popover-light .bar-header .icon.icon-center,.popover-helptip .popover-light .bar-header .icon.icon-right,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-footer .icon.icon-center,.popover-helptip .popover-notification .bar-footer .icon.icon-right,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-header .icon-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-header .icon.icon-center,.popover-helptip .popover-notification .bar-header .icon.icon-right,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-light .bar-footer .popover-helptip .icon.icon-center,.popover-light .bar-footer .popover-helptip .icon.icon-right,.popover-light .bar-footer .pull-right,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip .icon-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-center.icon-help,.popover-light .bar-header .popover-helptip .icon-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-center,.popover-light .bar-header .popover-helptip .icon.icon-bottom-right,.popover-light .bar-header .popover-helptip .icon.icon-center,.popover-light .bar-header .popover-helptip .icon.icon-right,.popover-light .bar-header .pull-right,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-footer .popover-helptip .icon.icon-center,.popover-notification .bar-footer .popover-helptip .icon.icon-right,.popover-notification .bar-footer .pull-right,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-header .popover-helptip .icon.icon-center,.popover-notification .bar-header .popover-helptip .icon.icon-right,.popover-notification .bar-header .pull-right{margin-right:10px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-light .bar-footer .icon.icon-left,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-header .icon-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-left,.popover-helptip .popover-light .bar-header .icon.icon-left,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-footer .icon.icon-left,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-header .icon-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-header .icon.icon-left,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-light .bar-footer .popover-helptip .icon.icon-left,.popover-light .bar-footer .pull-left,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip .icon-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-left,.popover-light .bar-header .popover-helptip .icon.icon-left,.popover-light .bar-header .pull-left,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-footer .popover-helptip .icon.icon-left,.popover-notification .bar-footer .pull-left,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-header .popover-helptip .icon.icon-left,.popover-notification .bar-header .pull-left{margin-left:10px}.popover-light .bar-footer a,.popover-light .bar-header a,.popover-notification .bar-footer a,.popover-notification .bar-header a{font-size:14px;text-decoration:none;line-height:30px}.popover-light .has-footer,.popover-notification .has-footer{bottom:28px}.popover-light .has-header,.popover-notification .has-header{top:30px}.popover-light .item.unread,.popover-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.popover-light .item-avatar,.popover-notification .item-avatar{padding-top:12px;padding-bottom:8px;padding-left:76px;padding-right:10px;min-height:80px!important}#menu .footer .popover-light .item-avatar h4 i.icon-help,#menu .footer .popover-notification .item-avatar h4 i.icon-help,.popover-light .item-avatar h4 #menu .footer i.icon-help,.popover-light .item-avatar h4 i.icon,.popover-light .item-avatar h4 i.icon-alert,.popover-light .item-avatar h4 i.icon-help,.popover-notification .item-avatar h4 #menu .footer i.icon-help,.popover-notification .item-avatar h4 i.icon,.popover-notification .item-avatar h4 i.icon-alert,.popover-notification .item-avatar h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.popover-light .item-avatar .item-content .item-image,.popover-light .item-avatar .item-content>img:first-child,.popover-light .item-avatar .item-image,.popover-light .item-avatar>img:first-child,.popover-notification .item-avatar .item-content .item-image,.popover-notification .item-avatar .item-content>img:first-child,.popover-notification .item-avatar .item-image,.popover-notification .item-avatar>img:first-child{top:12px;left:10px}.popover-light .button.button-small,.popover-notification .button.button-small{height:30px;font-size:12px;padding:0 5px!important;line-height:30px}.popover-invitation,.popover-network,.popover-peer-info{width:420px}.popover-endpoints .item .badge,.popover-peer-info .item .badge{right:16px!important}.popover-endpoints .item .badge.badge-secondary,.popover-peer-info .item .badge.badge-secondary{top:35px!important}.popover-unit{height:108px;max-width:115px}.view-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}#menu .footer .view-notification ion-item h4 i.icon-help,.view-notification ion-item h4 #menu .footer i.icon-help,.view-notification ion-item h4 i.icon,.view-notification ion-item h4 i.icon-alert,.view-notification ion-item h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.bar.bar-header .button.button-clear.button-icon i.ion-android-more-vertical,.bar.bar-header .button.button-clear.button-icon.ion-android-more-vertical,.bar.bar-header .button.button-icon.button-text i.ion-android-more-vertical,.bar.bar-header .button.button-icon.ion-android-more-vertical.button-text{padding-left:8px;padding-right:8px}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{top:0!important}.bar.bar-header{padding-right:5px!important}.bar.bar-header .buttons-right span{margin-left:0!important}.bar .title+.buttons.buttons-right{right:5px}.button-icon{border-color:transparent;box-shadow:none!important}.button-small-padding{padding:0 7px!important}.button-text{color:grey!important;font-size:12px}.button-text.button-small{padding:5px 2px;font-size:12px!important}.button-text-positive{color:#387ef5!important}.button-text-stable{color:#b2b2b2!important}.popup-buttons .button.icon-left,.popup-buttons .button.icon-right{padding-left:32px!important;padding-right:32px!important;line-height:42px}.button-fab-bottom-left.has-footer,.button-fab-bottom-right.has-footer{bottom:64px!important}#home .logo{margin-top:15px;width:100%;background-position:center center;background-repeat:no-repeat}#home .center{float:none;text-align:center;display:inline-block}#home .center .button{display:inline-block}@media screen and (max-width:767px){#home .logo{height:96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AgRBwUf93UlLAAAIABJREFUeNrtnXd8VkX2/99z71PTewEChBK6VCnSAigIUlVgLeuqq7vq2nddf+vqV9a2rm0XXQvsVxF11Q0qJKFLCSBNqZESOoSEkoTwpD/t3vP7IyEkkEASsO3Xeb2e1+u5be7c85k5M/M558zAz+nn9HP6Of1gSf3UP2DSOxuuMUW1AbAoWfH5Pf33/ZTKb/lJS3+aaIba+mfN9A4FMOA24GcAGi4/0TI+IcIMJlxBlAbh4scGoOv4fVAOIAqXHQr8BeRl3I4nOZ1+CqaIMNkoDGqhVRT+ZOvQDwpAxhwCkkoomnmzKjhTc5NTJMhnR1UIAXYnIVJGuKYR6dHoa4libHI6VwHhUqlAS02rc5vptRdofs8JEfPAhd43OUV0QJ8zRXl/7gMamIalSgdTcZ+CXwOBgBtYpjTSMdipFC1N6ILCIbDT6mXVshvUwfryG71Q7BUVRJcUcHLzb5XvZwDqScNTZYipMQ1hWFVJj4vJGw47M5Zcqwrr6g+GXEVb5WGQMmmlwUm/TsbqsWp3XfkPSZNEzYIvY4zK+RmAmjV+nvQTjSeBsQAi7FXwFiHMyBim3A3NZ0SqxBqK0UAHUXztrWDx+imqouY9ySkSh5W45IlkTlPK/D8NQPJ86YrJC8C4qlP7gLUIZUojRgQNReiZ+0UoBE4oxXFMjiPkorMtY5wqODfvwenSyyKMFY1iND6rWet7p0tAEHQP0Nm5aIwq/j8HwLBUGSgaT4nJNUqhVZ32C2QrOI3iNEKRUpgihAGaQLiCSIF4ReWoqUY6DGxGsUlg1arNbGRaZe0eMk8SlMYvFRheO7PWjVJ5ZzrnfCcD8JOTMUkd/u8GYJpoyb25SgnXi3CzaEQowaqgHOEjMflrxkSOoJQ0JK8hPWiu6bQVoZuC7gJXAl0V1WDmK5iPMF88LM2YokpHpkmiT3GHKeQrgw8zJikXwLD50tvwUr76+rr7jZ80AIMXSrTu5zcCdwL7lRCCoj8gCDN0gyeXX69O1SfogT0J1PwEKRtBmARpGoHqw8ljJC8rSRtwz3Lp/7ts0bAKGLqJQxSdTKE3igEKoqu+1o3wmTL558qJamNyqvRB8VsMFmRMUvMABs+TzladoBXj1Nf/FQCMSJUrDMWDQAcFH5omu5XGe0A74CRwV8Z4Nf+czjHIEkCM3yRGCTEGROnq/DmLvNT+finY31Uf+tgMue6lrXW9X0ApaCnQT+BKBSFVFw4rxVzNZK5PZ6hSRPisvLhulMpLTpeOpkHE6omshwa0xB8jAEPSJFHBc5rCKiYvZUxQm4aly20ivAM4ET7TDe45U+uT0yVKhEQ0Wmsm4TXzig3A2j2SkE7hhMc6aR5sJTjQQuDL9yb32r1lTdifXvrYlTxmqnhNTISSKsF7vCbuMh+lJT7yT7kpOFlByapjxO0tpp/XoE1V9iUIS5TGQUwGicZbGePUv0d8IUk+jajVE9W6n9RMOHmuhCmNJ0whVmk8u3Kcyhq9UOxD0+TfItwMuJTirpXj1cfJKRI0PF36+qGdEoIUYFOYI1sT3j+GpJZBdIl00M6pE1nXu0KCgkCBw24Ns2pgrdT6te6NsNd+5sYqsW8v5NAr2zidU0p3FDeKcFrpfClwdfJ8aWFs4lVrXyzJC6RHxnVq208CgOR0uQW4yYTnV41T68+okwofnynFKIGDojFWPLiS58vVylfeRiSApBAcN7ahfY8oukY76KspAr5r1dg9gsQPh5N4rIwTf9vi25vpsvYTkylKyFEKm/Tk76qUJw0nbUd8IUnLr1d76+ufzoyyfjAABi+UaIufV0XYmbGF8WcKNOILiTQszAf6AxuUxt1K6IBuxqq/tn8wNj6hfPrsjNMxAQwH9Ka9/dJUdIzNG3fquS5xt954X9GGpEe27i+mv8DNaOzwO/jECneLnbZD5knF6onq6Hnf3pfINZD/gwEwLFWuF4PJuuLxZeNUdnUfME8SDI0VQDtN8ZnpY7aycFWbUJz3dNb6rM0c0ybt07cdFcd3Q9tOTXp3xyv64naXEx3bosnlT5n1GseO7qf/lf1Df92D/utOsPfZrWhuP10FksRkqa4Ypym6DEwV19oJqqTm87qgX5Mqzb6coI59r51w8kqxqGJeEEVRxhb+WrMZVtX8NUAn4H1RrOsQSuBDXRjSMZyxmsJaXlbC1GEJtEzsyJv/2fCDTAJdp/KYOqIVfQdfy7NvzK0+bwrmu1ms+WQ/3QXCAJcGN2BgWbGdZeeqnGHzZdTKsWpJU8qgNeWhUYslQkqYrWB+xnj1fM0CjUuXAMNCKtBJQUqonW9e7MtVbw/ixc4RTNIUVoCAwGDuffw1dmVuZH3G/B8EgDdeeBjTMHjgiem1haLQ7u7E0E+uxh/pYDsQZsAS00Kv5J70Oi8jk5yh6TLgeyn0iAWSlJwqc4akSeK513rPEOvQNFmQnCaSnCbpb+yQp8p8clTqSYZhyG3XdZLrB8eJ1+OW7zPt3bVFkjspeW/6Uxe8zxSRd3fLhuRU8VZ916JrPpP252mENHn8uyfM0iU5OU3mjV4oIXX2B2nyWnKayIj5svbbUzK/IYLYsXWdDOuEfDzzxe8VgLsm9ZDx/SLFXVHWoPt3FkrO8HQpqgIhe8h86XROXzh+SKr0/M5U0PA0GW4tK3wyOGfrDOf+jSF1gDNR4GGHTtbn19C8awTXNSTfLj0GcNWIibz/5jRcp/K+l1a8YuGn7N+9jYeffgu7o2Ej3s7hNH9jINkojgMJymRDcrokn7ke5WGBUtz4nQAwPE2GC9waULi/u453oWmRSeeg3wHhA02j4OPhxITaaNWYQjz05zdAYF1G+vcCQGH+CXr0TWbY6CmNeq5zOF1/2Z5vUBxQEBiUt2vFhLc35U56a8MOf8HG7cH5u64dvkBaXVYAhqfKEBPuc1i4F5QFwFQWZ03extSYK2B58ypOhTuIaKxAouNa8PGyg4y54dfnXzQ8cPrbyp8YlwWAG3/1MH+fvbJJz96exNhYBzsQVmt+N0r8zQS6CHTRvWVe0+CeywbA8HTpZWj8nmBuXTRGedxh8a9XhLR4VTT1KUDyLHEoJy8podNN7fimYzgdmyqUyOj4eq6Y4HFV/hB+6KQptBf70U7p2JRp1rLQaWJWICQg0uDhfb0TsZFfSIwXngnQuXnRMOVOXikObwm5JhxdcmuL7MkpYsuzMhlhSridzb/pxODv6JPBEVV72uIpwMidV3nGGoaWcOP3CkLrYLoMi2Pe5hxlqaNOfDN0Pv1Xwfomt4DeM8TqtTLdAvdVm+lcxAFoGnkgKt/OcKUxBgj45yDi1XfFrOp2COtU+VM6P5b0aHcGmxZ7mWmxuQS1F2SHIAc1C/MUTL2kFhAUzyuYvLpswllqAb0SANE4OTidnsogQjQmj23JmhDDlXwqr5zImGb8X0kFR3ZFjh7QdV7KfuJF59+rxqo3aswJ2jaUpNPqGE5ORdiRMUFtqkV5qUqrkkNh0YRYE661ahx5qBtXzXr9f7jp6jbMfusZvB73d//19kj0xNvRE29Ha3F2QFZ2bCOFuz+l+NDS7+zVecezeeLecdwxriu9i1eOtGq4lcnwIfMkocZt24f3pkejW0ByukQh9F81QT1SB+kYJhoet58edjvbPR6m3tOZrRaNNrfd9z+43eXMfnMaX3wwnfv+32uMmvirJn9kWUkRh/btoCDvGOVlxZiGgTMwGKczkBatk2iW0AbNtR78ZZW1KGoQWEPwlR3HXbgHW1D8ZRe8x11OyqxX+fDt51Cazp0PPkvPXlcFjN5DYdphWqC4HpgOoBQrBQYBWxpFxg1Ll2eC4MX0caq85vnJKWIrcHC7qRFlMXjXD390WBi9aAwdahi/2bdrCy/9+dfsz9pG+869ePz592jbsXuDPvDIgd0sTf2AtStSOXLgwjZxXbfQqWM7evdMYkRyf1r0+Q3KHklpzlo8rgNYnJGEtr3usgl/7Yo0XnnqLlynCxg68gYefupNwiJjADjt5vgNyzkoJvkEc1NG1YBFipmxaoL6VYMBGJYuYzA4tXKi2nge/5MqsSbcic5Jr8EcqyL3d13ZcWMi5xFQIsLy+R/z+vMPUlpymlETbuOex14hNDyqzgIcP3qQGa8+zuovv0DMxts1lKb45V2/545HXq5dDvdJMN2gB6HskU1TNyeO8sS94ziQtZ2kLr3543Pv1lmhHljL3B2nSBR4dNUEtbJKnikrx6kpZ+02otXl/KUBDEgRp0CzuoRfOfEiCkW8YbDVChN0RfGk1vStUyBKcfW4W0hZmc0v7vwjy+d/SvbBrDo/cP6cf/Hrid1ZteSzOoWv6ToRUXHExLckMDi0bnOMKfQZdH5tl9NbME98iRTvbHLND4+IISgkjKf/nsKMzzbV25pvbU+M0vAqmFKD0j5ek7BMn4+j3j7AbmMgQbxfX0FEo79mkm3qFGkmU0Y0J0tXNL9Q4R3OQH7z+xf5xa8fIyTs/Br47vQn+eid5887f+WgUQy55nr6DBxJbLNWKHVWSxa7TrE/axub1y3jq+XzyD6YRc/+w+l2ZXLjpev3gsV2wVusNjv/mJ1x0ayujKafVZHhUfRNnithGZOUS1NsFugNHAJwKuxUudvXAmBgqgSbGkdWD1P+egwvQZQQLFBs86FMnavv7EiDXfjqEn7KrFfPE377Tj25/8/TuaL34Avm1av/CHr1H8Hdj/6VzE2rCQyq0TJMH+RtAM2KihyAJl5Eq6PiuQ5T+t51+ALjsLfqT8DIZ0HTmtxSNIXlqjhKMo4Rr2AE8LloZCo/I6s1g6fuFqAFGjhXj1P1R5WU0kMJ2QCGheFhdnbGOoltamEzN69hxqu1qfN+Q8bwxsdfXVD4daUr+gypVy0oWxjYY1DWkHN1FmTNozy+M+VdhlBqFOCaMZjTsyfjP7y+ySCMSSAe8Boalc2xjP2mOktKWrW6HQ20pZkU1Jfp6IUSguA3tcoJtzIZOiaB0qYW0jQMpj97P6ZxllTr1X8Ez705r8G08IV7ZAtE9oDwrvXfszedshN7MOI7AOALbUZZt5F4midQuup/yH//Bjy7Gm+h6xVND4uiTKt0jSRjiirVwHlmFOm31M06WC40W/MIPXCzBQeJojAFBoxv3XSXkWULPubgnszq4+DQCP704mwsFuulCV78YFZpUEvAWcpC/JinNqJsYRT5Y9i/IZ3cfevJ37sJX2gkNpuV8NBg4uMiad48BqPtIKzFJyjbOpOib2YR3GkMzr6/bhhjonC0CSNv72muGJkuHZeOU9Ujj+IQguweyhpFxvVOlwBDkFVTVOnQdHEgBNl1fLHOSkqiKWnuv/9Z6/iOB/5CVGzzS674Zv4apLQyOkmLHowK7lB1wc/GFSn8Z+5KMjN3XnCY63TY6ZjUin5XdqFv906ElORSfGIDJR8sJqTbDTh6/uKi5RgQjWNfIYZXkQxkiapsAT6DYDOEokbR0QHQ0YAdZ4BS0KZdCCeaKqSjh/aQlXnW3zUgKOSSZssXSz6vhxeeuIsnnn6d7du+vegco8LtYWvmXt55dy6rN+7EHdMeHT8S1wxXbgb5H/4C39FvLphHvxiamQpDhG4ASqiYnCK6CeHR+eePgC7QAkQpIWzNOHW6Rt+VMDCu6X5E33xV22tj+OipBAQGXxZhK6WfsRVV16m//+Vevkz7d635Sdeu3YjWSwmIqyQNS0rLyD2Wz6Hs4xj+yn4pMMDJ4KsqO3ZPRGusJXkoDbyJnTi1/h84vw4ldNLroJ0viqRQOipFFpB0ZryVD07NT0h9gYF1CvTqdBIMk9wa02VBI/rKaKKaKqRvt66tddytz+UzH6joIajoIdXH+7O2seiLWdXHfXp259HHniA+Pp4Ti17FaF/bdl5e4WbL9j1s2rybhBax2G1n5we+4Bh0dxE2Vw7eZkmU+91437+eiDEvoMfV7ux1DUeIlfJiLy2SZ4nDVPjsFgK8Wv2apk4ADGhffILVtT5SiE4Mbpytt2Y6dzbcpUfT3GjchfswvSXojjDsYW1qXTu14wMMTxErl571pQ0KCOCZ51/C6XRinDqEFhzAuYbNAKeDQf27M6h/3UNawxEKKGynj+INT8Cb1Jv8L6cR2m0yzh61qf8YB95iL7qKpK0Ifr+DYAz8DaajJ6eIDeDcEE5dR7do2JsKwPGjB2upg/jmiU1jSo+tw3UgnfIT5+tjv/s0fncheSeqGy8tWrbE6aw0YRdvW4wvrkOT3ms4QjCcIdhclXkbid0oykqjbOOsWvclhqBVcWztAAwvzUwfpxoMwPEAWig/h8+honWR+lFsyPjfXVFWqwPW9Mtv3bIFNcMWnEBQjdlxbk4uHo8bTBOf99Ji8AxHKKbNgaWs0hfXaJFESU4GxYufqr6nZTCBCjRTiFGKQA0CNGv9zrvnqSAdmkf62Hh+t4xLqqC9upsNw187xnn8L+7hkaffrlttuMsROWs8DQoOa7IQIrvcWpmXOt8CGt5xMhheOsdvYF7VuZLSEv7xj79zb3I7jFadLhlkf0Ak1uITHM7ay5Ovfnz2wiPPAfC7WZlAN5QiBiEIDUfyWAozGtYCRCmw+wo2fjTx7Q2ZE9/a8OyZTlhMigwTz5kmcR6SFyC2bPbaNIjffwkB6kpHISh/KfiKzv7ED34PZM5myNjJxETHVD+yePEiHnrtAzZ8m41hXno4sC8kDoe/pO75xJrnWldJKEYUEZi4LxSDXKsFDF5IlDI5LUp1USKdDYujoKr2mwgej8Fxi0brZd82ToAWixWHM7BaDZUWuxr3xd5CEANR1kqOpyIHs6A2b6OFXQkHMiC+A3almPaXZ/jDY7+nvKzynYfzinj9nRQiwkMYPqQPw4b0IjQkqMkgxHXpxWcvhOCOru0muj8rv6hK2lFKiNNsHL0gkVerpvqI93s4hqan+QIiT/sCooKqxqGiwOfycbKpBQ4OPRv25XGX4/N6GjHT/aqS2y/cVM/QqAj2zodmHatVU6dOnXn7rRl06FDbVanwdDGfpa7gwcf/zjvvzuXQkWNNbIkKb2iz6k757GmbW4GhhAiBQKOU7AYDYGhE6BHkp/62z5/KI9p94g5pHjQsVTpg4EZhFFTQZOfN8MjaBOqhfTsuT89bfBLysiC27XmXWrZsyduvT+fhCb1JbFXbY8PwG3y1YTtPPTeT516axZbtexo/uLAFVgrRe3aSW64HlCqoUOBU4M2YokobDICYqIwqu4Cq9PHHhAla5UIZlmNlHG+qnDp07VPreHdmI8JwraFgi0DZzqGW8/ZC2TGIqN8IX/rNHPpeey3PPvkbnnniboYO6onNVpv8y9p3hNf++QmvvfkJ5RWN8+rwhjXHVlzZiixuF4UB7Q4KlJtCNIr9F7UlnPkzTURTGtXKvd1RVlIZ0TjeVBxDYd1f1PQW0Ll7/1rHWzYsb7jBI2YoWvy1qIhKK6jowagTx1AhzVGxvVABrRC9TnsH5cUnMavY1jaJzbn7VxN4/W+PMPX6q4kMr23m3LJtD8+//D5er6+RILTA5spFHT/M2sipG4ASTSNMGuAVUQ3AmuWEo6juHWf+VvkQlgARGrQX0DNP1T+huFjq2vOqWsfrVqRxKr8JDSp/F2rvfFTClajQjihni8qf7jx/tHJkM4SfT94GBQUwbvQgXnvhQaZMGlGLejhy9ATpi75qnCqyOFCmD79Yjd1uZ4VoVJhCgGayq8EAGD6CTX9tytTUSamiJiYqsB0oodxtNK0jbtE6iXYde9Qaip5LT5+tUqeh7NDZn1EOhhd2poBrN8S0bZAJ0bVvHf6o+ulu3aIzfsxgnnzs9lpqafW6xocFe8MS8LqNUkzQIECDALGwucEAmAZOo0YLAFg9Vu0W2KiEAYpKm+bxCpoctDzxlt/VOv7Pe6+wP+v87KQ8G7NgffVP9s2HnR9DRCwExzRwxlSBmA1bmSyxdTNGX3OWmzpVWERFI/sCS1kBJSGdjlT1pWGi8EWXXTx8tRoAXbCtnXC+uVHXmQVgSKVr4o5CmrySyKgJt9G8ZbuzMvJ5ee4PN1NYUI+ZoeAQ6tA6sJqVtV413HBeunkuRssuDb4/Pra284ApjXOFtx7OZH3XaXPFJEIUIUDhnCnKaLgK0jDrWphixRjWCOzXNKJNIfTLoxxpKgAWq41H//IOqob6OHJgNw/cMojc7KoBgwjkbEEdWQ+aF4luAVZH40m74lOYF3E7qZlycs+OLxx2G4EBzsZNCywBsuKkJU9pODGIEhqmqs+2AAOzngmHaML7CH6lMXRHIeUl3nPIukakXv1HcPv902qdO5Z9gDvHd2Xmn2+gZMPbqIAAiL8CFdQCZYtEaeeTsH6/j127dpK1+/wGmZ46j3U7D2IYDYuoyT56guWrzk7yrujarnEkYP5hPK1HHs8rIxQ4qTRClFx4BnweFaEM6lV6UR7m5zs5AfRAsXaXi4x+MdzeVBBuu/cpKspK+fTdl852Yh4Pn3zxBSmpqXTp0pUePXoSGxtLWGgYcApXkYvCwlOcPn2aPXuy2Lt3Lz6fjylTptKxU22Sbd+W1aSv3kzgsl307JZE506JtE6IIzoqHKfTjuE3KCop42ReIZu2ZbFy9ebqoaeuaYwbPahxLfvEPr4eO+sLthFnCLGa4pSCkkYB4HPWbbMEmDNFeZPTZSbC0yYMm3eEJf0u0hd6PW4++d+/0a5jDwaOmFDFQRRD7jfgLeG3o7uRGHQfr787m7LSs1S1YRhkZm4nM3N70xnLispvLyur4KsN2/lqw9m8lKYQs279rjTF7bdcV2vWXOH2sGffEXp0S6p7JOUrxxaeyEd7KVMKlwb3A6eFhjmvVQPgL+bC5EwQ71DM4yjafX2czNMessLtdceErUp/n3+88CiuIhe3Tp7MwHgPGG6w6BDaAgIigUhGTmxFnyEj+fiTj1i4YAEVFRWN07uaRljY+dR2YlwoAU5HnbPa+oTfLD6KX04dTbcutSmNNWu38cGni2jfNoG7fjWe5vHRta7bd6/BddOKPcfW4jAhFHCgyDFpmANDNaneO10CNp/jln5uGpouC5VJm0BKnX8IWHIwOUFPxnBXEmCmwZGj2bz81v+yc98BWrZqyeN//BOdOzdsJOLxuNm4cSPbt2/j4MGDuFwuiopcFBUX4XA4seg6ERGRxMTE0KplK9onJdGnTx/Cw88PyjyxdDplzTvw7c797Nx9iNzj+ZzMK8Tj8VHuduOw2XA47cRGR9AyIZY+PTrSMak1mna+jUFE2LhpF+//ewFl5RUM7HcFt0wdRXBQAHrZaUJLiuWZVu/965uT7PIL92iKr0VIUhr/WjlWvddgAOpzn66ZktPkDxoM1MTbv4slu/CVHsfbWjTsJSXFzJw5gwUL5xMYGMT9v7ufkSOvreVY+32mE0unY7Tpdlnz9Hi9pC5Yw4Ila9F1nRsnDOP6mCKyp6z75JGvtW+VSXNR3GFzu54ydfutFl/FGwOyImZPu0iYUrUKatDCpUKGqYg1lK3NPl98wsbCwgMDozydZ73/HosXL+Lmm27hl7+8DbvdwQ+bLj/wdpuNKZNGMGxQL979MJ2P5ywl8b67i6Zv1dYhmMB9CmYGFuz5W5Vc39sWap8LuC5bSavW10w1DVJ03Xi+uZzU3ut1MLqirMjqdlcQExPLjyHlL38Hb6uk7+4FhsHx1UvMlGs2PvxNAYUKJogwHgvtwg5vPMyZxac89vB5j/R0NZiOvliaM0UZAid9XpYj+to8M8ox80BEXkhIyI9G+AB253e74plz51LZPPKzF7YUsEmZtBRhLIp3KlfklVwgD+GkR/eYl72tDkuXEQgdxMpC8bIkkPKYvyV9a3YN80b8WAAwDm/kVOEBfCFxlz1v28HNbHWOWPHXwId+rwzaCkxDEeXU6dCUpY8bHZWwcjMrgf4Zo9VhCzxboZzlL+xt7Sv3qYofCwB6dBu00tOXPV/L6aPs8bXe96LzoRcsQjHCDUBXJTzU1HWnGx8WMk2ZArlXp0vL5RPUR6A+P0mUenF7UK78GBZzAFBWxDAuL6gVJRzM9uQ+Ff36g1FjyfDDJNG4EVi1crxKaWq+TYrL0U0+9MMdAA4Lj5mavnOddAualdm0ha8vyU2lrvxyt2NGXL5YYc1TYe7bnXviz60+/E20hy/z0+iJyWMiVFgUt11S3k15aPlEtUtB7OQU0ReNUR6Lg9tNpbs+qehrT93rb/SGCM899yzT/vL0ZRNYac5u/IH1h6aapsniZRvYmrn34v2Jz+vZvuPE8RcTZt4jm1maX4YVxf+KIkaDO2uuFPm9AVBZMmbnORkDsOwalW36uNOv2TxvFg801h4oOtrQbLJ272b16gzatml7eaRvmngqii6soZRi1dqt/Gt2Kn5//R6X5adPFW7a4cqb0fzlu8szgxdkPI0hUaQA3RW8u3K8+vySW1dTH1w5UW3UhGo/71XXq/Wm4n6/2Jh2alTZjv3HsrmIUUNEePmVlwgLC+cXv7jpssi/6Kt3MVt3vSgAv71jIsUlZaTVY//NOXLi6LrsgILprd6cMG9yzKKMaco/NJ3pShgHbKeABy6LervE+eZXyalS7W+yepxaaJg84cMa8MjpycXb9ufn4KufXlq6dDEHDx7g0Uf/gNVqveSPKft2MRWawrRd3JjSumU8/Xp3IW3hGlyus8xxhc9wbco8tn9rcfPD77d9cdTqCWpr1fD7TwoeUIqDaNyacYdy/+AArBivVkBtRnT1RPWxUjzjRwv8Q9ENheuP23dSdKxO8u2tN9+kQ8eODBp06cEaJRvnUOI6ihHXpsHP3HbTaFCK2Z8uwjQxdhdUbFuXWVp8yN593udRT47LGF05qEhOlWkivKAUuUrn4Yyx6jJ5lV0iAABYyTh3obqM8epdBY/4BdsTJ5P5oHTgEk4eEIyzjPes92dRUlrK43/806WNePIPULDoNUrtghEUwp5tAAAGFUlEQVTfuH4kNCSICdcOlm+27OLTpbuzj+Yq+9Ko+6Y+ctd9f1w2RRVNThHb0HR5F8XTqnJ2+4IdLutaOJcMQMYYlaM4P3Bj5XiVqsPvBDyzjrVo9Uf37Z8ZbvGRtx8xDfZk7ebaa68lMbFpgRpSWsDhea+ya+3nFLfqjBnUuOgpQ/DtK2Knpe2V3wQEBvuz9mXvndPmr/3/fWv7DaBkxBcSme9giRLuFDhqKl71CvMWjVGeywnAZaENe88Qa3ASel3bTA1Lky6m8A8NWkY5OfLWAHfXqJzF8Xhd+MJaYLU1LujGvfNLinN3IhaNl+fvYPO2LB6+Zyp9ejXM97/Yy6k9xWp/ToEhTrc3xir+bZ9y3UOLHhxWPXyu2tEpDUgEtuuK9/zC+lXjVb1hkpPXiXPOANwN2vum5uz6cgBQFc5UazY16c31d5tK3a+OblSGxfppSXyv6Hw319y00pH7SPeJ+8e08wy2HvwSXLkQFg22+iMmPftWU3J0J4a3FIlvjdHmiipScjuqAXWo2MupI6VyZF+pPd/qKmtpFSMyFHP9+63/duOKcSoXXqlZYW4Qk1lAMDBfUyzwC0dWjaNO1+wRqRLr0wgpdZHdWOFfNgDqVBGailPCFSgQ3XFUabwlgssPo17eSvS8w/aFL/Yd2zPCQTzHt4DrEHiLICwebEF49iynJGcvhq8EiWuF0bJhsV0iSsp8RmF+hco/WqEV5FQEFIeUF7XSff6wEMo1V0DCix9FPTC3chn6s04BoxZLhMfD6wK3AB4NnhfIFsEV42b5ucIdtVji3T76i5/M1RNUk3dw/X428xTApLmC40pYampcta+ITpOXU9E1gmVjE3odbxbbKzTMSnRwwdfxLH0lzlecazWtNt0SGIy3yivaFIVflN8veH2GuCt8ZoAgjv2FnoPuE/qJ0369zFviDQ7weqNElNUUPTpez7PkWdu/lt7s7qUZ33KMB5QJD57L8I7xeJlJ5RI8ezTFg6aQgOC3eFhSM8Z3SJokaopRHi85MW7SGuJ89Z33AXWlsW+va25VeksA5fcf87W6Kr9IiNUgVkFzEwYqoYdSJImiWAmrlWKbSG3/pK5Fa1t1KF07yO4rDfbruq5M06LhtyKK/VnbA0+dyHW069anMDK2ebkhyuO3Bm/7Kvz6uSedrY7iI+fMHmF1qo8vJNLQmY7iFgBRvKdrPGOYDFeg42Vxxg0qh2miDe3JUKUxVAnfSjCpGfUs7/OjAaAhaViqdFBWhpsmvUUYqIQSEZYpja+ViWmCXemV1iUBQ4zKEF8d/GiUmVBuMSnzaVSIjiuutGHugANSxOmw84Ao/h8QjuKAMnlI9/CVz8F4FA5lshIbfs3HOEORAKzvcIz5My/zDqw/+FaGk1NEL7TTxdRJEJP2UrmXZJgSFioL86PK2HSpzfwslS7a0J7coBR/qxrhVCC8FHpqawp+6eBxxPT1RLQoEUFTQrypOGwoPv9qbP3b4/7kAagBhC3PQXdlEmqCTdO5AhihBBuQgcY63c6GZdeooqYIflgvxgk8D3Sp6pVSLRq/17yU2gp3vWLxlvxSlGYUt7hyughzko6zeeb3sN/wj2472+SVYtErSPL7aC46OVYDq0+nj2bSTaCzUvgQdgBZunDEp5FjmJw4d3MdgIGpEmxT3GTCQwo6V53erjRWmIIPE4umKA3M29XO4i25GVT5vPv6BX6f3/sj3lFb1NXpJPhMOugKwzQ4yHZyPP0JsfvoDMQBsUqIEUUMEKZMSkRRpiBUoBuKrggOQFDsBP5jGqywKg4sn6CqvZcnvLOhsyZcIeCbd2//z38G4Jw0eqHYywxaIiRoGprh51iQjZyadthRiyXC42USMFVghKrc9rZQwQcoZmTUWMHqx5R+EgCcq6KC927/H01840CzidKDyyMSC3yOkK7KxFr1RZsVzAxSfJR+EXfLnwFoQprw1oZ/KqiOdyqN6ojfGbobWAUs1032+gTBxG+zUuaHcpuNitAi3HMmYzaFMviukoX/ghRQevz2tClhs3+KZdf+GwDQvUXHfqpl/2m2AI23BBZW61G/2vJTBeD/A62herFIRO47AAAAAElFTkSuQmCC);background-size:96px 96px}#home .footer{display:none}}@media screen and (min-width:768px) and (max-width:991px){#home .logo{height:144px;background-image:url(../img/logo_144px.png);background-size:144px 144px}#home .button{max-width:350px;margin-top:20px}}@media screen and (min-width:992px){#home .logo{height:200px;background-image:url(../img/logo_200px.png);background-size:200px 200px}#home .button{max-width:350px;margin-top:20px}}@media screen and (min-width:992px){.circle-bg-dark{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-725px -145px;background-size:1024px 1024px}}.gray,.popover-helptip .button-close,.popover-share .bar-footer .button-close,.popover-share .bar-header span{color:grey!important}.gray b,.popover-helptip .button-close b,.popover-share .bar-footer .button-close b,.popover-share .bar-header span b{color:grey!important}.gray a,.icon-help a,.popover-helptip .button-close a,.popover-share .bar-footer .button-close a,.popover-share .bar-header span a,.positive a,.text-editable:hover a{color:inherit}.gray a:hover,.icon-help a:hover,.popover-helptip .button-close a:hover,.popover-share .bar-footer .button-close a:hover,.popover-share .bar-header span a:hover,.positive a:hover,.text-editable:hover a:hover{color:inherit}.gray a:visited,.icon-help a:visited,.popover-helptip .button-close a:visited,.popover-share .bar-footer .button-close a:visited,.popover-share .bar-header span a:visited,.positive a:visited,.text-editable:hover a:visited{color:inherit}.item a{text-decoration:none}.no-padding{padding:0!important}.avatar-member{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0LKSJACf7RAAAFqElEQVR42u2dbUjdZRjGf+c4dTndFnO+TRcD3ZIxdVlJL2PSIHDZBqtRaINojWRrgR8a4fDbIOrzoIKIMay2iGpQsg0y4xRZIk5i1NTaik3TZeRcvmzl0wc7qTPz6Lnv5/kfz/86XzxyuM59Xf/r//o893MCBqtIoYgSSsgjndWkk8RV+v959dFPP9/wm82CAtYM2MCTPMZGgnN87iZNvMdH1mww+q8Es9e0m/nhhjltnjG361enL3+HOT9P8ZMYNC+YhFg2IN2cWbD4MNrN3bFqQIm5FLV8Y4wZMbtj0YBdZlhEvjHGjJsXY82A+8yomPwJ1OhUqnMazKOVTGHOUe7lW/lS5zorLwSJnBKXD0s5SUpsGHCAzQqsUMgr8qTyu8AqulmpYgCMcQd9spTyCahTkw/JHJCmlE5AIj2kqxkAA6xlWJJQOgEVqvJhFY/LEkobUKUqH2Cbtw0oVTdgqyyd7DEgiWES1C1YxyU5MtkEFFiQD/dLkskacKcF+ZAb7waIXmbHogEZ3jVANJyxaEDAigHJ8W6AKDRuh2MKfgJcF+AafgJ8A+IcfgJcF+AafgJcF+AafgJE2URvU2aFqM2SzwSXM8ASCwaMkc9lKTLJBNRbkQ/JvCRHJpeANPpZasUAuEa21PiQXAJ2WJMPy9ktRSVnwBPW5IPgCJScAXdZNSDHewbcsGpAmvcMGLVqgNhkGTkDfrVqQLv3DHjfqgGnpYjkrgMyuGLpQgigkO9liOQS0M+H1uS/JSVf9l5gBV9RaEH+TxRxTYpM8l5gkEcZUJc/zB45+dK3wz9QhW4LiuERQpKE0k+EzvKuqgENNMsSyj8SO6lqwFFpQvmpskv4kTwl+e3ydxzyCfhTfiv9i9flKTX6BVZymWUK8ofI4bo0qcZj8d85psAKDfLytRonC7ig8Ii8hA75UnUGRrr4RJyzRUO+3sjQq8J8hjqdQrUMCAkfsV/jM51C9Zqnl3GOfCGuixRpHABBc3D0D/bwlwiTYa+WfN3R4RZeFuFRiz9orx+QSEvUF6+K8Qft+QE3eSpqDsX4g40VJKL9AuU5B/4MEdcFuIZvgOsCXEPbgFQPMDg1INsDDL4BLg2IfqRIeaxJ24CdHmD4X+heCaZxNerJk2OsZkivRN0EVAvMHU2mWrNEzQSk0C1yCOslX3bViKnQTECt0BE8m1q9IvUSUEaz2NTJUcr5OrYMyKWVLEG+X7hHboL0VOjsArk0isqHLBp1WrM1DCijlU3irJtopcz7BqRwmGbhrR9GFs0cFl9PTHBpujRTY3qEF9GbiR5TY9K8tJxeKtlkU8hOHrLUMgNjNHGK7+ilN9pHpvMxYAXVPKu0Upwc2nmTtxmM+PMRRiXB7DcD6vGWwoDZH+lqtJEl4EGOUux6084THTzPF3N/bO6zQA4NhGJOPhQToiGCxoo5InLQDLnOc1QYMgcXvgsk8QZPu96QAjjGc7P3s8xuQAYf8IDr2oXwJbvon58BG2lkreu6BfEz2zkfuQEb+FxhYVy36GMrFyIzYB0h1riuVwFX2MLFW/858zSYR9OilA9raJo5i/nWBGQSosB1pYroYsv0lYmnJyDIiUUtHwo4MV3zdAPqKXddoTrKqZ/6duouUM6ncTFcPs62yb6TSQPS6ZBrSfY4eigOd7qGt3iA43EjH3I4Hp58FTZgHxWuq7KKCvZN/DGxC6TSveiu/OZCH/lcDyfgUNzJh0wOwUQCcujS+PEKz2OYAnqCwJG4lA8pHIGAKaI9Ls7+/4VxNgfMGR52XYdDnA0Yyz846DXEa/h9A3wDfAN8A3wDfAOAIL2uS3CK3iBtrmtwira4NyBg1nOO21zX4QgjlATp1OrMjwHU0RkwEOBjtruuxQEaqcQEAUMltYy4rscqRqilEjN1XGA9VZRSqt2k5By9tNHGO3ROvP0bpkYvBeY8k00AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NDE6MzQrMDI6MDCAxbwoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEzVDExOjQxOjM0KzAyOjAw8ZgElAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=)}.avatar.disable{opacity:.7}.avatar-wallet{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0JMBOJU4OdAAAB2klEQVR42u3au0ocUQCH8e+IxFRKUohrkG0Eu4BiLrCFDxDBNtjoI1gYTJnGQrRInc4HyBuopNHgBVZIwCJFsHBXLURtQiIyKYyFN3B3zJyd3e/X7e7MmXP+e26zOyBJkiRJkiRJkiRJkiRJkppVSF9E0sk0r+jKuOYnrLMQTqMHkHSzQTHS17fLy3CYroi21JWYj9Z8KDIfvwdUKAC7bGfc+CH6gGrojTyJJBemMr/u+4sLpy2njRZnAAZgAK2t/YHKGUzeZlzz5w2yFU6/EKVsQHAIGIABGIABGIABRN4ILbOVcc1fM9IQCfp7gHOAARiAAbgMXpuhH/GJ0brK/sG78OVfKR0cXPnsQ/iYkwAYY6LOM4eZpXR5q3/t77bH+RkCO5HObZQeEL4nQ7ypcwh8boIAIJQpuwoYQMsugwBJ/73L/h1+3vr+OYtXXn/Lzz7gCV8ZqOH4LUrhz4155IzJvA6B0VqaDwzHu7f/PwEsc1zT8RXWmmoOCJWkl9L95wBWbw6AvO8DfrHkMmgABmAABtDw0j8gUaWHeA9K7odC7GVwhXGgGOmB2ZX4PaDAJs8i9d89XoRq5AAgecoMg3Rm3PhTysyFIyRJkiRJkiRJkiRJkiRJku7wFyuiadmIs5Q9AAAAAElFTkSuQmCC)}.popup-container.confirm .popup,.popup-container.warning .popup{min-width:250px!important;width:350px!important}.popup-container.confirm .popup-head h1,.popup-container.confirm .popup-head h2,.popup-container.confirm .popup-head h3,.popup-container.confirm .popup-head h5,.popup-container.confirm .popup-head h6,.popup-container.confirm .popup-head p,.popup-container.warning .popup-head h1,.popup-container.warning .popup-head h2,.popup-container.warning .popup-head h3,.popup-container.warning .popup-head h5,.popup-container.warning .popup-head h6,.popup-container.warning .popup-head p{color:#fff}.popup-container.warning .popup-head{background-color:#ef473a}.popup-container.confirm .popup-head{background-color:#387ef5}body{--refresher-bg-height:100px;--refresher-background-color:inherit}.refresher-positive-900-bg{--refresher-background-color:#1A237E}.refresher-dark-100-bg{--refresher-background-color:#555}.platform-android .refresher-dark-100-bg:before,.platform-android .refresher-positive-900-bg:before{background-color:var(--refresher-background-color);position:absolute;display:block;top:0;width:100%;height:var(--refresher-bg-height,100px);z-index:-10;content:" "}.platform-android .scroll-refresher{z-index:50}.platform-ios .refresher-dark-100-bg,.platform-ios .refresher-positive-900-bg{background-color:var(--refresher-background-color)!important}.platform-ios .refresher-dark-100-bg .scroll,.platform-ios .refresher-positive-900-bg .scroll{background-color:#fff;bottom:auto;min-height:100%}.refresher-dark-100-bg .scroll-refresher .ionic-refresher-content,.refresher-light .scroll-refresher .ionic-refresher-content,.refresher-positive-900-bg .scroll-refresher .ionic-refresher-content{color:#fff}.refresher-dark-100-bg .scroll-refresher .spinner,.refresher-light .scroll-refresher .spinner,.refresher-positive-900-bg .scroll-refresher .spinner{stroke:#fff;fill:#fff}.view-wallet{--refresher-bg-height:200px}.view-wallet .hero{height:200px}.view-wallet .qrcode{position:absolute;top:30px;padding:3px;background:#fff;width:90px;max-width:30%;right:-170px;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important}.view-wallet .qrcode img{width:100%}.view-wallet .qrcode.on{right:30px}.view-wallet .qrcode.active{top:0!important;right:0!important;padding:10px;width:200px;max-width:50%}.view-wallet .item-text-wrap{white-space:normal!important}.view-wallet .item .comment{font-style:italic!important}.popover-helptip .view-wallet .item h3 .button-close,.popover-share .bar-footer .view-wallet .item h3 .button-close,.popover-share .bar-header .view-wallet .item h3 span,.view-wallet .item h3 .gray,.view-wallet .item h3 .popover-helptip .button-close,.view-wallet .item h3 .popover-share .bar-footer .button-close,.view-wallet .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet .list .item span{display:inline}.view-wallet .item-divider .badge{top:16px!important}.view-wallet .item.item-wallet-event{padding-top:5px;padding-bottom:5px;min-height:30px;max-height:auto;height:auto}.view-wallet .item.item-wallet-event:last-child{min-height:48px}#menu .footer .view-wallet .item.item-icon-left.item-wallet-event .icon-help,.view-wallet .item.item-icon-left.item-wallet-event #menu .footer .icon-help,.view-wallet .item.item-icon-left.item-wallet-event .icon,.view-wallet .item.item-icon-left.item-wallet-event .icon-alert,.view-wallet .item.item-icon-left.item-wallet-event .icon-help{font-size:17px;height:18px;top:6px}@media screen and (max-width:991px){.view-wallet .qrcode{top:8px;width:60px;max-width:30%}.view-wallet .qrcode.on{right:8px}.view-wallet .hero.hero-qrcode-active h1,.view-wallet .hero.hero-qrcode-active h2,.view-wallet .hero.hero-qrcode-active h3,.view-wallet .hero.hero-qrcode-active h4,.view-wallet .hero.hero-qrcode-active h5,.view-wallet .hero.hero-qrcode-active i{margin-right:200px}}.popover-wallet-actions{height:400px}@media screen and (max-width:991px){.view-wallet-tx{--refresher-bg-height:100px}.view-wallet-tx .hero{height:100px}}@media screen and (min-width:992px){.view-wallet-tx{--refresher-bg-height:140px}.view-wallet-tx .hero{height:140px}}.view-wallet-tx .item-text-wrap{white-space:normal!important}.view-wallet-tx .item .comment{font-style:italic!important}.popover-helptip .view-wallet-tx .item h3 .button-close,.popover-share .bar-footer .view-wallet-tx .item h3 .button-close,.popover-share .bar-header .view-wallet-tx .item h3 span,.view-wallet-tx .item h3 .gray,.view-wallet-tx .item h3 .popover-helptip .button-close,.view-wallet-tx .item h3 .popover-share .bar-footer .button-close,.view-wallet-tx .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet-tx .list .item span{display:inline}.view-wallet-tx .item-divider .badge{top:16px!important}.stable-100-bg{background-color:#f2f2f2!important}.item-tx .badge-energized{background-color:rgba(255,201,0,.3);color:#888!important}.view-identity{--refresher-bg-height:200px;--refresher-background-color:#555}.view-identity .member{--refresher-background-color:#1A237E}.view-identity .hero{height:200px;background-color:var(--refresher-background-color)}.card .card-header{font-size:90%;opacity:.8}.card .stable-900-bg,.card.stable-900-bg,.item .stable-900-bg,.item-complex .item-content .stable-900-bg,.item-radio .item-content .stable-900-bg,.item.stable-900-bg{background-color:#e0e0e0!important}.card .item{background:inherit}.card .stable-bg,.card.stable-bg,.item .stable-bg,.item-complex .item-content .stable-bg,.item-radio .item-content .stable-bg,.item.stable-bg{background-color:#f8f8f8!important}.card .card-header{padding-top:5px!important;padding-bottom:0!important;min-height:25px}.card .item .card-footer{margin-bottom:5px}.card .card-avatar .avatar,.card.card-avatar .avatar{box-shadow:0 3px 4px 0 rgba(0,0,0,.26);top:7px;background-color:#d9d9d9}.card .card-avatar img.avatar,.card.card-avatar img.avatar{border:0;min-height:54px;min-width:54px}.card .card-avatar .item.item-avatar,.card.card-avatar .item.item-avatar{padding-top:10px;padding-bottom:2px;min-height:45px!important}.card .card-avatar .card-footer,.card.card-avatar .card-footer{padding-left:88px;overflow:hidden}#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card .card-avatar .card-footer .popover-helptip .icon.icon-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-right a,.card .card-avatar .card-footer .pull-right a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card.card-avatar .card-footer .popover-helptip .icon.icon-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-right a,.card.card-avatar .card-footer .pull-right a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card .card-avatar .card-footer .icon.icon-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-right a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card.card-avatar .card-footer .icon.icon-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-right a{margin-right:8px}.a.underline:active,.underline a:active,.underline a:focus,.underline a:hover,a.underline:focus,a.underline:hover{outline:1px!important;text-decoration:underline!important}.card-avatar-small .card,.card-avatar-small .card .card-avatar,.card-avatar-small .card.card-avatar,.card-avatar-small.card{min-height:45px}.card-avatar-small .card .avatar,.card-avatar-small .card .card-avatar .avatar,.card-avatar-small .card .card-avatar .item-avatar .avatar,.card-avatar-small .card .item-avatar .avatar,.card-avatar-small .card.card-avatar .avatar,.card-avatar-small .card.card-avatar .item-avatar .avatar,.card-avatar-small.card .avatar,.card-avatar-small.card .item-avatar .avatar{box-shadow:0 2px 2px 0 rgba(0,0,0,.26);height:30px!important;width:30px!important;left:5px!important}.card-avatar-small .card .card-avatar .item.item-avatar,.card-avatar-small .card .item.item-avatar,.card-avatar-small .card.card-avatar .item.item-avatar,.card-avatar-small.card .item.item-avatar{min-height:25px!important;padding-left:42px!important}.card-avatar-small .card .card-avatar .card-footer,.card-avatar-small .card .card-footer,.card-avatar-small .card.card-avatar .card-footer,.card-avatar-small.card .card-footer{padding-top:0;padding-left:42px!important}.gallery .card-gallery,.gallery .card.card-gallery{margin-bottom:15px!important;float:left;display:block}.gallery .card-gallery img,.gallery .card.card-gallery img{max-height:150px}.gallery .card-gallery-new{max-height:199px}.list .item.text-left{text-align:left!important}.list .item.large-button-bar,.list .item.text-center{text-align:center!important}.list .item.text-right{text-align:right!important}.list .item-divider.item-divider-top-border{border-top:solid 1px rgba(0,0,0,.12)}.lookupForm .list .item.item-avatar{min-height:80px!important}.lookupForm .list .item.item-avatar.item-checkbox .item-content{padding-left:47px;min-height:auto!important;height:auto!important}.fade-in{opacity:0;-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.fade-in.on{opacity:1;-webkit-transform:translate3d(0,0,0)}.item-avatar{min-height:80px!important}.item-avatar .item-content i.item-image:first-child,.item-avatar .item-content img.item-image:first-child,.item-avatar .item-content>i:first-child,.item-avatar .item-content>img:first-child,.item-avatar i.item-image:first-child,.item-avatar img.item-image:first-child,.item-avatar-left .item-content i.item-image:first-child,.item-avatar-left .item-content img.item-image:first-child,.item-avatar-left .item-content>i:first-child,.item-avatar-left .item-content>img:first-child,.item-avatar-left i.item-image:first-child,.item-avatar-left img.item-image:first-child,.item-avatar-left>i:first-child,.item-avatar-left>img:first-child,.item-avatar>i:first-child,.item-avatar>img:first-child{color:#d9d9d9;background-color:#f8f8f8;border:solid 1px #d9d9d9;overflow:hidden!important;font-size:45px!important;line-height:56px;width:100%!important;max-height:56px!important;max-width:56px!important;top:12px!important}#menu .footer .item-avatar .item-content>.icon-help:first-child:before,#menu .footer .item-avatar .item-image.icon-help:first-child:before,#menu .footer .item-avatar.item-icon-right .icon-help:first-child:before,#menu .footer .item-avatar>.icon-help:first-child:before,.item-avatar #menu .footer .item-content>.icon-help:first-child:before,.item-avatar #menu .footer .item-image.icon-help:first-child:before,.item-avatar .icon.item-image:first-child:before,.item-avatar .item-content>.icon-alert:first-child:before,.item-avatar .item-content>.icon-help:first-child:before,.item-avatar .item-content>.icon:first-child:before,.item-avatar .item-image.icon-alert:first-child:before,.item-avatar .item-image.icon-help:first-child:before,.item-avatar.item-icon-right #menu .footer .icon-help:first-child:before,.item-avatar.item-icon-right .icon-alert:first-child:before,.item-avatar.item-icon-right .icon-help:first-child:before,.item-avatar.item-icon-right .icon:first-child:before,.item-avatar>.icon-alert:first-child:before,.item-avatar>.icon-help:first-child:before,.item-avatar>.icon:first-child:before{width:56px!important}#menu .footer .item-avatar.item-icon-right .icon-help:last-child,#menu .footer .item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right #menu .footer .icon-help:last-child,.item-avatar.item-icon-right .icon-alert:last-child,.item-avatar.item-icon-right .icon-help:last-child,.item-avatar.item-icon-right .icon:last-child,.item-avatar.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right.ink .icon.ion-ios-arrow-right,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}.item.item-icon-left>i.avatar:first-child{position:absolute;display:flex;height:100%;align-items:center;font-size:16px;left:16px;top:8px;max-height:32px;max-width:32px}.item.item-checkbox.item-avatar * .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar * .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar *>i.avatar:first-child,.item.item-checkbox.item-avatar *>i.item-image:first-child,.item.item-checkbox.item-avatar .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar>i.avatar:first-child,.item.item-checkbox.item-avatar>i.item-image:first-child{left:65px}.item.item-checkbox .item-content .item-avatar,.item.item-checkbox.item-avatar .item-content{padding-left:65px}#menu .footer .item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink .icon.ion-ios-arrow-right,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}@media screen and (max-width:767px){#menu .footer .item.item-icon-right>.icon-help:last-child,#menu .footer .item.item-icon-right>.ion-ios-arrow-right.icon-help,.item.item-icon-right>.icon-alert:last-child,.item.item-icon-right>.icon-help:last-child,.item.item-icon-right>.icon.ion-ios-arrow-right,.item.item-icon-right>.icon:last-child,.item.item-icon-right>.ion-ios-arrow-right.icon-alert,.item.item-icon-right>.ion-ios-arrow-right.icon-help{right:1px}}.item em{font-weight:700!important}@media screen and (min-width:992px){.list .item.item-border-large{border-bottom:solid 1px #ccc!important}.list.item-border-large .item{border-bottom:solid 1px #ccc!important;margin:0}.list.item-border-large .item-divider{border-top:0}}.list .item.item-border{border-bottom:solid 1px #ccc!important}.list .item.item-small-height{padding-top:2px;padding-bottom:0;min-height:24px}.list .item.item-small-height .badge{padding-top:0!important;top:inherit}.list .item.item-small-height .badge.badge-assertive,.list .item.item-small-height .badge.badge-balanced,.list .item.item-small-height .badge.badge-calm,.list .item.item-small-height .badge.badge-editable:hover,.list .item.item-small-height .badge.badge-energized,.list .item.item-small-height .badge.badge-positive,.list .item.item-small-height .badge.badge-royal{top:1px!important;padding-top:3px!important;padding-bottom:2px!important}.form-errors:first-child{margin:5px 0}.form-errors:last-child{margin:5px 0 0}.form-error{padding:0 16px;font-size:12px;color:red;vertical-align:middle;text-align:end;top:0;position:relative}.item-input-error{border-bottom:2px solid red!important}.item-input.item-button-right input,.item-input.item-button-right textarea{margin-right:100px}.item-input.item-button-right .button,.item-input.item-button-right button{top:6px}.item-input.item-button-right.item-floating-label input,.item-input.item-button-right.item-floating-label textarea{padding-right:100px}.item-input.item-button-right.item-floating-label .button{top:inherit;bottom:6px}.item-input.item-button-right.item-floating-label .button-icon{height:inherit}.item.item-button-right .badge,.item.item-icon-right .badge{right:43px}@media screen and (max-width:767px){.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:300px!important;display:block!important}.badge:empty{display:none!important}.item .badge{right:26px!important}}.badge-editable:hover{cursor:pointer}.badge-editable:hover:before{content:" "}.platform-ipad .bar-title{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%)}.platform-ipad .bar-title .title{background-color:#fff;margin-left:0;margin-right:0;height:44px}.bar .badge-button{margin:0!important;padding:0 4px!important;font-size:10px;position:absolute!important;top:5px;right:3px}.text-editable:hover{cursor:pointer}.text-editable:hover:after{content:""}.item h2 .text-editable:hover:after{font-size:14px}.modal.modal-full-height{bottom:0}@media screen and (max-width:767px){.modal{top:0!important;left:0!important;bottom:0;min-height:100%!important;width:100%!important}}@media screen and (max-width:991px){.modal{bottom:0}.modal .swiper-pagination{visibility:hidden!important}.modal.modal-full-height{top:0}.modal.modal-full-height ion-content.keyboard-up .scroll{min-height:calc(100% + 67px)}}@media (min-width:992px){.modal.modal-full-height{min-height:80%}}.modal.about .bar.bar-header .button+.title{left:0!important}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{top:16px}.item-button-right .item-content>.button.button-small,.item-button-right .item-content>.buttons .button-small,.item-button-right>.button.button-small,.item-button-right>.buttons .button-small{font-size:14px}.item.large-button-bar{margin-bottom:10px}.item-avatar-left-padding{padding-left:95px}.item-thumbnail-left-padding{padding-left:106px}.item-thumbnail-left,.item.item-thumbnail-left{min-height:100px!important}.item-thumbnail-left .item-content i.item-image,.item-thumbnail-left .item-content>i:first-child,.item-thumbnail-left i.item-image,.item-thumbnail-left>i:first-child{color:#d9d9d9;background-color:#f8f8f8;overflow:hidden!important;font-size:50px!important;line-height:80px;padding:0 15px;background-position:center;background-size:cover;display:inline-block}@media screen and (max-width:400px){.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:84px!important}.item-thumbnail-left .item-content img.item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left img.item-image,.item-thumbnail-left>img:first-child{max-width:70px;max-height:70px}.item h2{font-size:13px!important}}.item-icon-left-padding{padding-left:40px}.item-icon-right-padding{padding-right:40px}.text-keep-lines{white-space:pre-line!important}.text-italic{font-style:italic!important}.menu.menu-left{background-color:#f5f5f5}.menu.menu-left .item{opacity:.75;color:#000}.menu.menu-left .item-button-right .item-content>.button,.menu.menu-left .item-button-right .item-content>.buttons,.menu.menu-left .item-button-right>.button,.menu.menu-left .item-button-right>.buttons{top:8px!important}.menu.menu-left .item.active{background-color:#b2e0ff!important}.menu.menu-left .item.active .item-content{background-color:transparent}.menu.menu-left .item-menu-disable{color:#444!important}@media screen and (max-width:991px){.menu.menu-left .item.item-divider{min-height:2px;height:2px;padding-top:0;padding-bottom:0}.menu.menu-left .item,.menu.menu-left .item.item-complex .item-content{height:40px;min-height:40px;padding-top:12px}.menu.menu-left .item.item-complex{padding-top:0}.menu.menu-left .item.item-button-right .button{height:30px;min-height:30px;top:4px}.menu.menu-left ion-content.has-footer{bottom:0!important}.menu.menu-left .bar-header{background-color:#1a237e;color:#fff;height:150px;padding-right:0!important}.platform-ios.platform-cordova .menu.menu-left .bar-header{height:calc(constant(safe-area-inset-top) + 150px);height:calc(env(safe-area-inset-top) + 150px)}.menu.menu-left .bar-header .hero{height:150px;box-shadow:none}.menu.menu-left .bar-header .hero .content{bottom:0}.menu.menu-left .has-header{top:150px}.platform-ios.platform-cordova .menu.menu-left .has-header{top:calc(constant(safe-area-inset-top) + 150px);top:calc(env(safe-area-inset-top) + 150px)}}@media screen and (min-width:768px){.menu.menu-left .item.item-divider{min-height:5px;height:5px}.menu.menu-left .footer a{font-size:14px!important;color:grey!important}}@media screen and (min-width:992px){.menu.menu-left{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-500px -100px;background-size:1024px 1024px;background-color:#f5f5f5;height:100%}}.certifications .item-divider .badge{top:16px!important}.certifications-lg .avatar-large{left:auto;position:relative;font-size:55px!important;height:88px;width:88px;color:#d9d9d9;background-color:#e0e0e0;border:solid 1px #d9d9d9}.icon-help{font-size:38px;vertical-align:middle}.icon-alert{font-size:38px;vertical-align:middle}#menu .footer .icon-help{font-size:25px!important;position:absolute;left:12px;top:8px;z-index:99}.popover-helptip{background-color:rgba(68,68,68,.85)!important;height:auto!important}.popover-helptip .button-close{padding:8px;height:25px;font-size:18.2px}.popover-helptip a,.popover-helptip a:active,.popover-helptip a:hover{text-decoration:underline}.nobackdrop .popover-backdrop.active{background-color:transparent!important}.helptip-anchor,.helptip-anchor-center,.helptip-anchor-left,.helptip-anchor-right{display:block;position:absolute;width:100%;bottom:0}.helptip-anchor-center{text-align:center}.helptip-anchor-left{text-align:left}.helptip-anchor-right{text-align:right}.helptip-anchor a:before,.helptip-anchor-center a:before,.helptip-anchor-left a:before,.helptip-anchor-right a:before{content:" "}@media (max-width:767px){.popover-helptip{width:auto}}#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-left{font-size:30px;position:relative;top:8px;left:8px}#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-right{font-size:30px;position:relative;top:8px;right:8px}#menu .footer .popover-helptip .icon-center.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon.icon-center{font-size:30px;width:100%;text-align:center;position:relative;top:8px;height:0}#menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon.icon-bottom-right{font-size:30px;position:relative;bottom:8px;right:8px}#menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon.icon-bottom-left{font-size:30px;position:relative;bottom:8px;left:8px}#menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon.icon-bottom-center{font-size:30px;position:relative;width:100%;bottom:8px;text-align:center;height:0}.popover.popover-profile{height:200px}.popover.popover-profile .avatar{height:90px;width:90px;left:20px;top:20px}.popover.popover-profile .avatar{border:solid 1px #d9d9d9}.popover.popover-profile .bar.bar-footer{height:58px}.popover.popover-profile .bar.bar-footer .col .button{max-width:inherit;width:100%;padding:5px 0;margin:0}.popover.popover-profile .bar .button-positive,.popover.popover-profile .bar .button-text{background-color:#387ef5!important}.popover.popover-profile .bar .button-stable{color:#444!important}.bar-header .button-icon .avatar{height:35px;width:35px;position:relative;left:0;top:4px;border:solid 1px #d9d9d9}.bar-header .button-icon .avatar.active{background-color:#e0e0e0}.bar-header .button-icon .avatar{height:31px;width:31px;position:relative;left:0;top:6px}.list .badge .badge-secondary,.list .badge.badge-secondary{font-size:12px;font-style:italic;top:37px;font-weight:400!important;margin-right:0;padding-right:0}.list .item-avatar .badge.badge-avatar{position:absolute!important;left:60px!important;right:inherit!important;top:15px!important;margin:0!important;padding:0 4px!important;font-size:10px}.popover.popover-login-methods{height:280px;width:290px}.popover.popover-login-methods.auth{height:204px}@media (max-width:767px){.popover.popover-login-methods{height:256px}.popover.popover-login-methods.auth{height:204px}}.ion-es-user-api:before{content:url(../img/logo.small.cs.dune.svg)}.ion-bma-tor-api:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATEAYAAAChBNO0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAB3lJREFUWMPNmGtUVNcVx/93mBlmgEGeAyhYUoSERhmM9ZHSCL4AqURFEmSBEZOgWGqh0pqYNkREiIlxxSXqYpUoJhqVRWJ41tooKNYIGR8R8QlKAsj7PQ9k7tx7++Gc6VpQnctK4lo9X35zz+x79v7vM2fffYfB/8lYty4iIjFx/Oz0TEJpD2HTLwj1RmqwvbDw9OmjR3+8XylxHPBPcuk1QucbKIUn3GeZ/45eJlCWEfJfEJp3Ew6qqIADhNw3lsDHCrf1I9SMEi6XERpOEV7YRLn950q8lODUfcLJWVRIpkgCLGMG5S5q/kfKRXR+D0H7TSrIhfD2+B33JUiII0xZR6i4QljwiLC23HLDT915y2BIIIKY0J84DFsII/5NePHS2O9dqdDT8YTBdOezUwlzHxKyOT+XcMuQUCY93QQwv6TudkAKbygBhKAEMZMiuA7uGtc601HIETYL259loYASikNbif2uWU9LuGXQI2CqI5Q/rQw4Uvq6/86rUq0DpB9KG2xWrmzybvMt8FFnyBvmX6m5sbN/qiFT3294Pq9HUi1RSq4YE3+s8McXVUkela0g5BxoAr5MJgycR8i8Q+OmP1nfY3S+zbrbrgrKNdQ+gPDBNcIWvxFvw7GRBkChV+bbajvbg34951pwcYDUrDLfM2fZpGtrapK/XR1ikLCSQxKPG/8VIpaIxwv2CSNcyRH+ZgehcwFhz1l6BJLoDi2IIgwtpsvSwAevWxcu+BBmLiZ8iZ7d0BrC+C19tl2He9f+cKcitXhhaar8kGyJ/Dl5+txbihi7EuV+mZ1sozxavt9mhcQoiZTIVx3Hi1iE36pN1gU+aX6BPWHpAsI9VHBcJ2F4NGFCNWN9wUBavM7fInQvx2MHq6WZbiGsjL3N1JfdqgDWx2ZoNu4FKtnil8oLnhkMUsz+SPPu1mURbas+XuqX+KW7ndc2dYVS3Tjjps89CVA+fGxJaTY/YDira9GvO/cv5gFjwzx8fwNZt9qbkLv5+DiC/k5Y/AFhQBNEhsT613wppVnkF0AbE65EOCDkCHnAkYozyuNNQM2bpz87lxKuXey/PDo8unRnkmt66xs+yYemF866PENQqtllplzWH5g27Vce/ksBzRtzZJp7EmfhIr9X+HphHBgwYIrayfoZ9GlgmzXWv00rYZr/RIVPNAGhlG+JrEMbFcFTtlwmk20Gco9t/ir76gtVizetKAnPP1ATv3BDbYJqxvsqT6cwx2z4DysHzw7nA85rXZ2d2wAunq3mQgDNxrlzZnYBCg+7VMVqAJ8Je4VCFzuyflY9YcpHY917ORGGFU1MthBLqJOLJEAIox/iRVbsoPaOB9dUag4XSouDN80Nmdm/9fXIPaviohr8NhtN+lhjEcDam15kWwCPbVNe8wwFdMuH5uk6AVOaKce0CFAE2mUpUwHVQadGRwdA8BZG4GZxo6C1Jo2eZb+phPafEqpU1sM0BBK+R/uMcEYkAaiiwr4RsRsFBw4cfz6mbl7wy/y0Rv/h5+UB3qGZ/B4hht8B8LuFFfx2wCXHLcXFFeg/2VPcNxlQJtg/tDsOyJbKOGkqYC5idWwuYDNV8pZEAwiXUPW/3n19CWfT2oRXCSRfWQ/zPu0r9tNOs9YkloA+ygEROw5deIhOYZFdmMOAfZ7DC47tzsGT4pS8/s7QXf0WwKnTJdc5BeiWd6R0xQIOMY7xqn8A8lrbM/IRgPFkIphngJFso/ej+QDrZYpihwDmbWYX87fx7phuwilrqfA/j92wJ+5TCSGrscyIJeA8ZZ2I3SBsoYAtWvlWbhdfL+SzR9ledpugtmmXJtlwwPCRgSVDQYDiO6WXwgmQVksTpU3AUFR/xYAWQC860Qv0ft25vscDMMzXbzV0AEwxapnSJ7k10scZQ99JmG+th2mm/Y7wygQTIFgeiH8SScBtuEINN2Ztt7LjD11xP5R9H9Ho2BzedFBoFIqFemCgo8+jfw0gmybn5NHA4M6+GwM2gPRz2UaZFjCFjEaa7IG2qmbPlruA6dToSdMOAMuY1Yge7073HmE9rQ6S+TQB90X0PEf5yUQTcJiQvyxiRxsn5vfT5bMWB6X28tdwafBqRt65u6jfd+fCSMOw20Dd8BGgc1ZbZEcGwJawJnY3wDfwb/M1gL5E12B4Beha1v5x1z4AznCHCwAj9DCO91dOH3PafYRS+pbJXBDZKNqvWIq2aAK412gCSq3bWYoQ79K/t/uDPjNwVXpReznt875qTWXOWb+c9d+nNYU2pw/trw/QFlwvA/rcux/1vQv0xHfoesqgbyy6mX33HfT2nux8tccOECqFE0IZADd4wp1LosLpa/ZfHQhN9H8MNNONyLUeJm9L7dSWGan1G4y0pexeRTg5nS5Eqyi6CPrpe/yQgpkpeZMJwRlV3aRc1WyTtEpdrj0z5cMSvXF4jc7jtp9tgCJfEb+p9Eaydsn183OTZa/Lm2VHld2tUQ8+bY2Gg+nEaORooPkE8xfGh6lt3EAaoSO0un9Ci1xPztg4hxtpnLQfcaA1QaBHhKH/U7Q/S8g6We78Dzmv92D5rFiKAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTE0VDExOjU4OjIwKzA1OjAwUOI3hwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0xNFQxMTo1ODoyMCswNTowMCG/jzsAAAAvdEVYdHN2Zzpjb21tZW50AD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/5MH3awAAAABJRU5ErkJggg==)}.row-header{border-bottom:solid 1px #ccc!important;margin:0;min-height:28px!important}.col-header{text-align:center;display:block!important}.col-15{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:15%}.col-border-left{border-left:solid 1px #ccc!important}.col-border-right{border-right:solid 1px #ccc!important}.ion-spinner-small{height:14px;width:14px;line-height:14px;margin:0;padding:0}.ion-spinner-small svg{height:14px;width:14px}.icon-secondary{position:absolute;height:100%;display:flex;align-items:center;font-size:16px;left:25px;top:-7px}div[dropzone]{border:2px dashed #bbb;border-radius:5px;padding:15px;text-align:center;font:20pt bold;color:#bbb;margin-bottom:20px;cursor:pointer}div[dropzone] .item,div[dropzone] .list .item{text-align:left}div[dropzone]:hover{background-color:#f2f2f2}.button-fab-hero.button-fab-top-left,.button-fab-hero.button-fab-top-right,.hero .button-fab-top-left,.hero .button-fab-top-right{top:170px!important}.bar .button.button-fab.mini,.button.button-fab.mini{min-width:40px;min-height:40px}.button-fab-hero.button-fab-top-left.mini,.button-fab-hero.button-fab-top-right.mini,.hero .button-fab-top-left.mini,.hero .button-fab-top-right.mini{top:178px!important}.text-no-transform{text-transform:inherit}.button-icon-event,.item-icon-event{text-transform:inherit;pointer-events:none!important}#menu .footer .button-icon-event .icon-help,#menu .footer .item-icon-event .icon-help,.button-icon-event #menu .footer .icon-help,.button-icon-event .icon,.button-icon-event .icon-alert,.button-icon-event .icon-event,.button-icon-event .icon-help,.item-icon-event #menu .footer .icon-help,.item-icon-event .icon,.item-icon-event .icon-alert,.item-icon-event .icon-event,.item-icon-event .icon-help{pointer-events:all!important}.hero.dark-100-bg{background-color:#555}.hero.positive-900-bg{background-color:#1a237e!important}.hero.stable-bg{background-color:#f8f8f8!important}.popover-locked-outputs .item .badge{right:16px!important}.animate-show-hide.ng-hide{opacity:0}.animate-show-hide.ng-hide-add,.animate-show-hide.ng-hide-remove{transition:all linear .3s}.modal iframe.iframe-license{width:100%;height:calc(100% - 171px)!important}@media screen and (max-width:767px){.modal iframe.iframe-license{height:calc(100% - 104px)}}@media screen and (min-width:768px) and (max-width:991px) and (min-height:600px){.modal iframe.iframe-license{height:calc(100% - 171px)}}@media screen and (min-width:992px){.modal iframe.iframe-license{height:calc(100% - 171px)}.modal.modal-license iframe.iframe-license{height:calc(100% - 111px)!important}}.modal.modal-help .row.selected .col:first-child{font-weight:700}@media screen and (max-width:767px){.modal.modal-help .row .col:first-child{font-weight:700}.modal.modal-help h2{padding-left:10px}}.modal.modal-login .item.item-icon-right.item-text-wrap .item-content{margin-right:58px;text-overflow:ellipsis;overflow:hidden}.popover-locales{height:284px;width:200px}.popover-locales .item{height:48px}.buttons-tabs{display:block;height:57px;border:0;padding:16px 16px 0 16px;overflow:hidden}.buttons-tabs .button.button-tab:first-child{border-top-left-radius:15px}.buttons-tabs .button.button-tab:last-child{border-top-right-radius:15px}.buttons-tabs .button.button-tab.active{background-color:#b2e0ff}.buttons-tabs.border-bottom{border-bottom:solid 1px #ccc!important}@media screen and (max-width:767px){.buttons-tabs{padding:10px 10px 0 10px}.buttons-tabs .button.button-tab{padding:2px 10px 0 10px!important}} \ No newline at end of file diff --git a/www/index.html b/www/index.html index ab6fecd6b..9556b6400 100644 --- a/www/index.html +++ b/www/index.html @@ -16,7 +16,7 @@ <!-- build:css dist_css/cesium.css --> <link rel="stylesheet" type="text/css" href="css/ionic.app.min.css"> <link rel="stylesheet" type="text/css" href="css/style.css"> - <link rel="stylesheet" type="text/css" href="css/angular-image-crop.css"> + <link rel="stylesheet" type="text/css" href="lib/angular-image-crop/image-crop-styles.css"> <!-- removeIf(device) --> <link rel="stylesheet" type="text/css" href="css/style-no-device.css"> <!-- endRemoveIf(device) --> @@ -80,24 +80,29 @@ <script src="js/vendor/aes-js.js"></script> <script src="js/vendor/Chart.js"></script> - <!-- ionic/angularjs js --> - <script src="lib/ionic/js/ionic.bundle.js"></script> - <script src="lib/ionic/js/ionic.material.js"></script> - <script src="lib/ionic/js/angular/angular-resource.js"></script> - <script src="lib/ionic/js/angular/angular-translate.js"></script> - <script src="lib/ionic/js/angular/angular-messages.js"></script> - <script src="lib/ionic/js/angular/angular-api.js"></script> - <script src="lib/ionic/js/angular/angular-cache.js"></script> - <script src="lib/ionic/js/angular/angular-screenmatch.min.js"></script> - <script src="lib/ionic/js/angular/angular-bind-notifier.min.js"></script> - <script src="lib/ionic/js/angular/angular-image-crop.js"></script> - <script src="lib/ionic/js/angular/angular-file-saver.bundle.js"></script> - <script src="lib/ionic/js/angular/angular-idle.js"></script> - <script src="lib/ionic/js/angular/angular-simple-logger.light.js"></script> - <script src="lib/ionic/js/angular/ui-leaflet.js"></script> - <script src="js/vendor/ion-digit-keyboard.min.js"></script> - <script src="lib/ionic/js/angular/angular-chart.min.js"></script> - <script src="lib/ionic/js/angular/angular-fullscreen.js"></script> + <!-- ionic/angular js --> + <script src="lib/ionic/js/ionic.js"></script> + <script src="lib/angular/angular.js"></script> + <script src="lib/angular-animate/angular-animate.js"></script> + <script src="lib/angular-sanitize/angular-sanitize.js"></script> + <script src="lib/angular-ui-router/release/angular-ui-router.js"></script> + <script src="lib/ionic/js/ionic-angular.js"></script> + <script src="lib/ionic-material/dist/ionic.material.js"></script> + <script src="lib/angular-resource/angular-resource.js"></script> + <script src="lib/angular-translate/angular-translate.js"></script> + <script src="lib/angular-messages/angular-messages.js"></script> + <script src="lib/angular-api/angular-api.js"></script> + <script src="lib/angular-cache/dist/angular-cache.js"></script> + <script src="lib/angular-screenmatch/dist/angular-screenmatch.min.js"></script> + <script src="lib/angular-bind-notifier/dist/angular-bind-notifier.min.js"></script> + <script src="lib/angular-image-crop/image-crop.js"></script> + <script src="lib/angular-file-saver/dist/angular-file-saver.bundle.js"></script> + <script src="lib/ng-idle/angular-idle.js"></script> + <script src="lib/angular-simple-logger/dist/angular-simple-logger.light.js"></script> + <script src="lib/ui-leaflet/dist/ui-leaflet.js"></script> + <script src="lib/ion-digit-keyboard/dist/ion-digit-keyboard.min.js"></script> + <script src="lib/angular-chart.js/dist/angular-chart.min.js"></script> + <script src="lib/angular-fullscreen/src/angular-fullscreen.js"></script> <script src="js/vendor/base58.js" async></script> <!--removeIf(android)--> @@ -113,13 +118,13 @@ <!--endRemoveIf(no-device)--> <!--removeIf(no-plugin)--> - <script src="js/vendor/leaflet.js"></script> - <script src="js/vendor/leaflet.awesome-markers.min.js"></script> - <script src="js/vendor/leaflet.search.min.js"></script> - <script src="js/vendor/leaflet.easy-button.js"></script> - <script src="js/vendor/leaflet.loading.js"></script> - <script src="js/vendor/leaflet.markercluster.js"></script> - <script src="js/vendor/leaflet.featuregroup.subgroup-src.js"></script> + <script src="lib/leaflet/dist/leaflet.js"></script> + <script src="lib/Leaflet.awesome-markers/dist/leaflet.awesome-markers.min.js"></script> + <script src="lib/leaflet-search/dist/leaflet-search.src.js"></script> + <script src="lib/Leaflet.EasyButton/src/easy-button.js"></script> + <script src="lib/leaflet.loading/src/Control.Loading.js"></script> + <script src="lib/leaflet.markercluster/dist/leaflet.markercluster.js"></script> + <script src="lib/Leaflet.FeatureGroup.SubGroup/leaflet.featuregroup.subgroup-src.js"></script> <!--endRemoveIf(no-plugin)--> <!-- endbuild --> diff --git a/www/js/app.js b/www/js/app.js index 478af2680..2c8db1246 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -4,7 +4,7 @@ // 'starter' is the name of this angular module example (also set in a <body> attribute in index.html) // the 2nd parameter is an array of 'requires' // 'starter.controllers' is found in controllers.js -angular.module('cesium', ['ionic', 'ionic-material', 'ngMessages', 'pascalprecht.translate', +angular.module('cesium', ['ionic', 'ionic-material', 'ngMessages', 'ngSanitize', 'pascalprecht.translate', 'ngApi', 'angular-cache', 'angular.screenmatch', 'angular.bind.notifier', 'ImageCropper', 'ion-digit-keyboard', 'FBAngular', // = angular-fullscreen // removeIf(no-device) diff --git a/www/js/vendor/ion-digit-keyboard.min.js b/www/js/vendor/ion-digit-keyboard.min.js deleted file mode 100644 index 629f66188..000000000 --- a/www/js/vendor/ion-digit-keyboard.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){var i=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(i),i.styleSheet)i.styleSheet.disabled||(i.styleSheet.cssText=t);else try{i.innerHTML=t}catch(d){i.innerText=t}}(document,".digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color .1s linear;-moz-transition:background-color .1s linear;-o-transition:background-color .1s linear;-ms-transition:background-color .1s linear;transition:background-color .1s linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}"),!function(e){try{e=angular.module("ion-digit-keyboard.templates")}catch(t){e=angular.module("ion-digit-keyboard.templates",[])}e.run(["$templateCache",function(e){e.put("keyboard.tpl.html","<div class=\"digit-keyboard align-{{align}} keyboard-{{theme}} animation-{{animation}} {{roundButtons ? 'round-buttons' : ''}} {{showLetters == false ? 'no-letters' : ''}} {{(ngShow == false || ngHide == true) ? 'ng-hide' : ''}}\" style=\"width: {{width}};\"><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(1)><div class=digit-keyboard-key-number>1<div class=digit-keyboard-key-letters></div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(2)><div class=digit-keyboard-key-number>2<div class=digit-keyboard-key-letters>ABC</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(3)><div class=digit-keyboard-key-number>3<div class=digit-keyboard-key-letters>DEF</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(4)><div class=digit-keyboard-key-number>4<div class=digit-keyboard-key-letters>GHI</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(5)><div class=digit-keyboard-key-number>5<div class=digit-keyboard-key-letters>JKL</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(6)><div class=digit-keyboard-key-number>6<div class=digit-keyboard-key-letters>MNO</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(7)><div class=digit-keyboard-key-number>7<div class=digit-keyboard-key-letters>PQRS</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(8)><div class=digit-keyboard-key-number>8<div class=digit-keyboard-key-letters>TUV</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(9)><div class=digit-keyboard-key-number>9<div class=digit-keyboard-key-letters>WXYZ</div></div></div></div></div><div class=digit-keyboard-row><div class=\"digit-keyboard-key-wrapper {{showLeftAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=leftAction($event) style={{leftStyle}}><div class=digit-keyboard-key-action ng-bind-html=leftHtml style={{leftFontSize}}></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(0)><div class=digit-keyboard-key-number style=\"margin-top: -0.30em;\">0</div></div></div><div class=\"digit-keyboard-key-wrapper {{showRightAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=rightAction($event) style={{rightStyle}}><div class=digit-keyboard-key-action ng-bind-html=rightHtml style={{rightFontSize}}></div></div></div></div></div>")}])}(),angular.module("ion-digit-keyboard.directive",[]).directive("ionDigitKeyboard",["$timeout","$ionicScrollDelegate","$templateCache",function(e,t,i){var d=150;return{restrict:"EA",template:i.get("keyboard.tpl.html"),replace:!0,scope:{settings:"=settings",ngShow:"=",ngHide:"="},link:function(i,o,r){function a(){1==b&&(k.style.bottom="0px",k.style.height=s)}function n(){e(function(){if(1==b){var e=o[0].offsetHeight;s=k.style.height,k.style.height="auto",k.style.bottom=e+1+"px"}},d+10)}function y(){i.ngShow===!0?n():i.ngShow===!1&&a(),t.resize()}function g(){i.ngHide===!0?a():i.ngHide===!1&&n(),t.resize()}"undefined"==typeof i.settings&&(i.settings={});var k,s,b=!0,l="ion-content",c={},u={};if(i.leftStyle="",i.rightStyle="",i.leftFontSize="",i.rightFontSize="",i.showLetters="undefined"==typeof i.settings.showLetters?!1:i.settings.showLetters,i.roundButtons="undefined"==typeof i.settings.roundButtons?!1:i.settings.roundButtons,i.numberAction=i.settings.action||function(){},i.width=i.settings.width||"100%",i.align=i.settings.align||"center",i.animation=i.settings.animation||"slide-up",i.theme=i.settings.theme||"stable","undefined"!=typeof i.settings.leftButton&&"object"==typeof i.settings.leftButton.style&&("undefined"!=typeof i.settings.leftButton.style.color&&(i.leftStyle+="color: "+i.settings.leftButton.style.color+";"),"undefined"!=typeof i.settings.leftButton.style.bgColor&&(c["default"]=i.settings.leftButton.style.bgColor,i.leftStyle+="background-color: "+c["default"]+";"),"undefined"!=typeof i.settings.leftButton.style.activeBgColor&&(c.active=i.settings.leftButton.style.activeBgColor),"undefined"!=typeof i.settings.leftButton.style.borderColor&&(i.leftStyle+="border-color: "+i.settings.leftButton.style.borderColor+" !important;"),"undefined"!=typeof i.settings.leftButton.style.fontSize&&(i.leftFontSize="font-size: "+i.settings.leftButton.style.fontSize+" !important;")),"undefined"!=typeof i.settings.rightButton&&"object"==typeof i.settings.rightButton.style&&("undefined"!=typeof i.settings.rightButton.style.color&&(i.rightStyle+="color: "+i.settings.rightButton.style.color+";"),"undefined"!=typeof i.settings.rightButton.style.bgColor&&(u["default"]=i.settings.rightButton.style.bgColor,i.rightStyle+="background-color: "+u["default"]+";"),"undefined"!=typeof i.settings.rightButton.style.activeBgColor&&(u.active=i.settings.rightButton.style.activeBgColor),"undefined"!=typeof i.settings.rightButton.style.borderColor&&(i.rightStyle+="border-color: "+i.settings.rightButton.style.borderColor+" !important;"),"undefined"!=typeof i.settings.rightButton.style.fontSize&&(i.rightFontSize="font-size: "+i.settings.rightButton.style.fontSize+" !important;")),i.showLeftAction=!1,"undefined"!=typeof i.settings.leftButton&&(i.leftHtml=i.settings.leftButton.html,i.showLeftAction=!0,i.leftAction=function(e){if(c.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),"undefined"==typeof c["default"]&&(c["default"]=t.style.backgroundColor),t.style.backgroundColor=c.active,setTimeout(function(){t.style.backgroundColor=c["default"]},100)}i.settings.leftButton.action()}),i.showRightAction=!1,"undefined"!=typeof i.settings.rightButton&&(i.rightHtml=i.settings.rightButton.html,i.showRightAction=!0,i.rightAction=function(e){if(u.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),"undefined"==typeof u["default"]&&(u["default"]=t.style.backgroundColor),t.style.backgroundColor=u.active,setTimeout(function(){t.style.backgroundColor=u["default"]},100)}i.settings.rightButton.action()}),"object"==typeof i.settings.resizeContent||"boolean"==typeof i.settings.resizeContent)if("object"==typeof i.settings.resizeContent)var b="undefined"==typeof i.settings.resizeContent.enable?!0:i.settings.resizeContent.enable,l="undefined"==typeof i.settings.resizeContent.element?"ion-content":i.settings.resizeContent.element;else"boolean"==typeof i.settings.resizeContent&&(b=i.settings.resizeContent);k=o[0].parentElement.querySelectorAll(l)[0],i.$watch("ngShow",y),i.$watch("ngHide",g)}}}]),angular.module("ion-digit-keyboard",["ionic","ion-digit-keyboard.templates","ion-digit-keyboard.directive"]); \ No newline at end of file diff --git a/www/js/vendor/leaflet-src.js b/www/js/vendor/leaflet-src.js deleted file mode 100644 index d3d563574..000000000 --- a/www/js/vendor/leaflet-src.js +++ /dev/null @@ -1,9168 +0,0 @@ -/* - Leaflet, a JavaScript library for mobile-friendly interactive maps. http://leafletjs.com - (c) 2010-2013, Vladimir Agafonkin - (c) 2010-2011, CloudMade -*/ -(function (window, document, undefined) { -var oldL = window.L, - L = {}; - -L.version = '0.7.7'; - -// define Leaflet for Node module pattern loaders, including Browserify -if (typeof module === 'object' && typeof module.exports === 'object') { - module.exports = L; - -// define Leaflet as an AMD module -} else if (typeof define === 'function' && define.amd) { - define(L); -} - -// define Leaflet as a global L variable, saving the original L to restore later if needed - -L.noConflict = function () { - window.L = oldL; - return this; -}; - -window.L = L; - - -/* - * L.Util contains various utility functions used throughout Leaflet code. - */ - -L.Util = { - extend: function (dest) { // (Object[, Object, ...]) -> - var sources = Array.prototype.slice.call(arguments, 1), - i, j, len, src; - - for (j = 0, len = sources.length; j < len; j++) { - src = sources[j] || {}; - for (i in src) { - if (src.hasOwnProperty(i)) { - dest[i] = src[i]; - } - } - } - return dest; - }, - - bind: function (fn, obj) { // (Function, Object) -> Function - var args = arguments.length > 2 ? Array.prototype.slice.call(arguments, 2) : null; - return function () { - return fn.apply(obj, args || arguments); - }; - }, - - stamp: (function () { - var lastId = 0, - key = '_leaflet_id'; - return function (obj) { - obj[key] = obj[key] || ++lastId; - return obj[key]; - }; - }()), - - invokeEach: function (obj, method, context) { - var i, args; - - if (typeof obj === 'object') { - args = Array.prototype.slice.call(arguments, 3); - - for (i in obj) { - method.apply(context, [i, obj[i]].concat(args)); - } - return true; - } - - return false; - }, - - limitExecByInterval: function (fn, time, context) { - var lock, execOnUnlock; - - return function wrapperFn() { - var args = arguments; - - if (lock) { - execOnUnlock = true; - return; - } - - lock = true; - - setTimeout(function () { - lock = false; - - if (execOnUnlock) { - wrapperFn.apply(context, args); - execOnUnlock = false; - } - }, time); - - fn.apply(context, args); - }; - }, - - falseFn: function () { - return false; - }, - - formatNum: function (num, digits) { - var pow = Math.pow(10, digits || 5); - return Math.round(num * pow) / pow; - }, - - trim: function (str) { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); - }, - - splitWords: function (str) { - return L.Util.trim(str).split(/\s+/); - }, - - setOptions: function (obj, options) { - obj.options = L.extend({}, obj.options, options); - return obj.options; - }, - - getParamString: function (obj, existingUrl, uppercase) { - var params = []; - for (var i in obj) { - params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i])); - } - return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&'); - }, - template: function (str, data) { - return str.replace(/\{ *([\w_]+) *\}/g, function (str, key) { - var value = data[key]; - if (value === undefined) { - throw new Error('No value provided for variable ' + str); - } else if (typeof value === 'function') { - value = value(data); - } - return value; - }); - }, - - isArray: Array.isArray || function (obj) { - return (Object.prototype.toString.call(obj) === '[object Array]'); - }, - - emptyImageUrl: 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=' -}; - -(function () { - - // inspired by http://paulirish.com/2011/requestanimationframe-for-smart-animating/ - - function getPrefixed(name) { - var i, fn, - prefixes = ['webkit', 'moz', 'o', 'ms']; - - for (i = 0; i < prefixes.length && !fn; i++) { - fn = window[prefixes[i] + name]; - } - - return fn; - } - - var lastTime = 0; - - function timeoutDefer(fn) { - var time = +new Date(), - timeToCall = Math.max(0, 16 - (time - lastTime)); - - lastTime = time + timeToCall; - return window.setTimeout(fn, timeToCall); - } - - var requestFn = window.requestAnimationFrame || - getPrefixed('RequestAnimationFrame') || timeoutDefer; - - var cancelFn = window.cancelAnimationFrame || - getPrefixed('CancelAnimationFrame') || - getPrefixed('CancelRequestAnimationFrame') || - function (id) { window.clearTimeout(id); }; - - - L.Util.requestAnimFrame = function (fn, context, immediate, element) { - fn = L.bind(fn, context); - - if (immediate && requestFn === timeoutDefer) { - fn(); - } else { - return requestFn.call(window, fn, element); - } - }; - - L.Util.cancelAnimFrame = function (id) { - if (id) { - cancelFn.call(window, id); - } - }; - -}()); - -// shortcuts for most used utility functions -L.extend = L.Util.extend; -L.bind = L.Util.bind; -L.stamp = L.Util.stamp; -L.setOptions = L.Util.setOptions; - - -/* - * L.Class powers the OOP facilities of the library. - * Thanks to John Resig and Dean Edwards for inspiration! - */ - -L.Class = function () {}; - -L.Class.extend = function (props) { - - // extended class with the new prototype - var NewClass = function () { - - // call the constructor - if (this.initialize) { - this.initialize.apply(this, arguments); - } - - // call all constructor hooks - if (this._initHooks) { - this.callInitHooks(); - } - }; - - // instantiate class without calling constructor - var F = function () {}; - F.prototype = this.prototype; - - var proto = new F(); - proto.constructor = NewClass; - - NewClass.prototype = proto; - - //inherit parent's statics - for (var i in this) { - if (this.hasOwnProperty(i) && i !== 'prototype') { - NewClass[i] = this[i]; - } - } - - // mix static properties into the class - if (props.statics) { - L.extend(NewClass, props.statics); - delete props.statics; - } - - // mix includes into the prototype - if (props.includes) { - L.Util.extend.apply(null, [proto].concat(props.includes)); - delete props.includes; - } - - // merge options - if (props.options && proto.options) { - props.options = L.extend({}, proto.options, props.options); - } - - // mix given properties into the prototype - L.extend(proto, props); - - proto._initHooks = []; - - var parent = this; - // jshint camelcase: false - NewClass.__super__ = parent.prototype; - - // add method for calling all hooks - proto.callInitHooks = function () { - - if (this._initHooksCalled) { return; } - - if (parent.prototype.callInitHooks) { - parent.prototype.callInitHooks.call(this); - } - - this._initHooksCalled = true; - - for (var i = 0, len = proto._initHooks.length; i < len; i++) { - proto._initHooks[i].call(this); - } - }; - - return NewClass; -}; - - -// method for adding properties to prototype -L.Class.include = function (props) { - L.extend(this.prototype, props); -}; - -// merge new default options to the Class -L.Class.mergeOptions = function (options) { - L.extend(this.prototype.options, options); -}; - -// add a constructor hook -L.Class.addInitHook = function (fn) { // (Function) || (String, args...) - var args = Array.prototype.slice.call(arguments, 1); - - var init = typeof fn === 'function' ? fn : function () { - this[fn].apply(this, args); - }; - - this.prototype._initHooks = this.prototype._initHooks || []; - this.prototype._initHooks.push(init); -}; - - -/* - * L.Mixin.Events is used to add custom events functionality to Leaflet classes. - */ - -var eventsKey = '_leaflet_events'; - -L.Mixin = {}; - -L.Mixin.Events = { - - addEventListener: function (types, fn, context) { // (String, Function[, Object]) or (Object[, Object]) - - // types can be a map of types/handlers - if (L.Util.invokeEach(types, this.addEventListener, this, fn, context)) { return this; } - - var events = this[eventsKey] = this[eventsKey] || {}, - contextId = context && context !== this && L.stamp(context), - i, len, event, type, indexKey, indexLenKey, typeIndex; - - // types can be a string of space-separated words - types = L.Util.splitWords(types); - - for (i = 0, len = types.length; i < len; i++) { - event = { - action: fn, - context: context || this - }; - type = types[i]; - - if (contextId) { - // store listeners of a particular context in a separate hash (if it has an id) - // gives a major performance boost when removing thousands of map layers - - indexKey = type + '_idx'; - indexLenKey = indexKey + '_len'; - - typeIndex = events[indexKey] = events[indexKey] || {}; - - if (!typeIndex[contextId]) { - typeIndex[contextId] = []; - - // keep track of the number of keys in the index to quickly check if it's empty - events[indexLenKey] = (events[indexLenKey] || 0) + 1; - } - - typeIndex[contextId].push(event); - - - } else { - events[type] = events[type] || []; - events[type].push(event); - } - } - - return this; - }, - - hasEventListeners: function (type) { // (String) -> Boolean - var events = this[eventsKey]; - return !!events && ((type in events && events[type].length > 0) || - (type + '_idx' in events && events[type + '_idx_len'] > 0)); - }, - - removeEventListener: function (types, fn, context) { // ([String, Function, Object]) or (Object[, Object]) - - if (!this[eventsKey]) { - return this; - } - - if (!types) { - return this.clearAllEventListeners(); - } - - if (L.Util.invokeEach(types, this.removeEventListener, this, fn, context)) { return this; } - - var events = this[eventsKey], - contextId = context && context !== this && L.stamp(context), - i, len, type, listeners, j, indexKey, indexLenKey, typeIndex, removed; - - types = L.Util.splitWords(types); - - for (i = 0, len = types.length; i < len; i++) { - type = types[i]; - indexKey = type + '_idx'; - indexLenKey = indexKey + '_len'; - - typeIndex = events[indexKey]; - - if (!fn) { - // clear all listeners for a type if function isn't specified - delete events[type]; - delete events[indexKey]; - delete events[indexLenKey]; - - } else { - listeners = contextId && typeIndex ? typeIndex[contextId] : events[type]; - - if (listeners) { - for (j = listeners.length - 1; j >= 0; j--) { - if ((listeners[j].action === fn) && (!context || (listeners[j].context === context))) { - removed = listeners.splice(j, 1); - // set the old action to a no-op, because it is possible - // that the listener is being iterated over as part of a dispatch - removed[0].action = L.Util.falseFn; - } - } - - if (context && typeIndex && (listeners.length === 0)) { - delete typeIndex[contextId]; - events[indexLenKey]--; - } - } - } - } - - return this; - }, - - clearAllEventListeners: function () { - delete this[eventsKey]; - return this; - }, - - fireEvent: function (type, data) { // (String[, Object]) - if (!this.hasEventListeners(type)) { - return this; - } - - var event = L.Util.extend({}, data, { type: type, target: this }); - - var events = this[eventsKey], - listeners, i, len, typeIndex, contextId; - - if (events[type]) { - // make sure adding/removing listeners inside other listeners won't cause infinite loop - listeners = events[type].slice(); - - for (i = 0, len = listeners.length; i < len; i++) { - listeners[i].action.call(listeners[i].context, event); - } - } - - // fire event for the context-indexed listeners as well - typeIndex = events[type + '_idx']; - - for (contextId in typeIndex) { - listeners = typeIndex[contextId].slice(); - - if (listeners) { - for (i = 0, len = listeners.length; i < len; i++) { - listeners[i].action.call(listeners[i].context, event); - } - } - } - - return this; - }, - - addOneTimeEventListener: function (types, fn, context) { - - if (L.Util.invokeEach(types, this.addOneTimeEventListener, this, fn, context)) { return this; } - - var handler = L.bind(function () { - this - .removeEventListener(types, fn, context) - .removeEventListener(types, handler, context); - }, this); - - return this - .addEventListener(types, fn, context) - .addEventListener(types, handler, context); - } -}; - -L.Mixin.Events.on = L.Mixin.Events.addEventListener; -L.Mixin.Events.off = L.Mixin.Events.removeEventListener; -L.Mixin.Events.once = L.Mixin.Events.addOneTimeEventListener; -L.Mixin.Events.fire = L.Mixin.Events.fireEvent; - - -/* - * L.Browser handles different browser and feature detections for internal Leaflet use. - */ - -(function () { - - var ie = 'ActiveXObject' in window, - ielt9 = ie && !document.addEventListener, - - // terrible browser detection to work around Safari / iOS / Android browser bugs - ua = navigator.userAgent.toLowerCase(), - webkit = ua.indexOf('webkit') !== -1, - chrome = ua.indexOf('chrome') !== -1, - phantomjs = ua.indexOf('phantom') !== -1, - android = ua.indexOf('android') !== -1, - android23 = ua.search('android [23]') !== -1, - gecko = ua.indexOf('gecko') !== -1, - - mobile = typeof orientation !== undefined + '', - msPointer = !window.PointerEvent && window.MSPointerEvent, - pointer = (window.PointerEvent && window.navigator.pointerEnabled) || - msPointer, - retina = ('devicePixelRatio' in window && window.devicePixelRatio > 1) || - ('matchMedia' in window && window.matchMedia('(min-resolution:144dpi)') && - window.matchMedia('(min-resolution:144dpi)').matches), - - doc = document.documentElement, - ie3d = ie && ('transition' in doc.style), - webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23, - gecko3d = 'MozPerspective' in doc.style, - opera3d = 'OTransition' in doc.style, - any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d || opera3d) && !phantomjs; - - var touch = !window.L_NO_TOUCH && !phantomjs && (pointer || 'ontouchstart' in window || - (window.DocumentTouch && document instanceof window.DocumentTouch)); - - L.Browser = { - ie: ie, - ielt9: ielt9, - webkit: webkit, - gecko: gecko && !webkit && !window.opera && !ie, - - android: android, - android23: android23, - - chrome: chrome, - - ie3d: ie3d, - webkit3d: webkit3d, - gecko3d: gecko3d, - opera3d: opera3d, - any3d: any3d, - - mobile: mobile, - mobileWebkit: mobile && webkit, - mobileWebkit3d: mobile && webkit3d, - mobileOpera: mobile && window.opera, - - touch: touch, - msPointer: msPointer, - pointer: pointer, - - retina: retina - }; - -}()); - - -/* - * L.Point represents a point with x and y coordinates. - */ - -L.Point = function (/*Number*/ x, /*Number*/ y, /*Boolean*/ round) { - this.x = (round ? Math.round(x) : x); - this.y = (round ? Math.round(y) : y); -}; - -L.Point.prototype = { - - clone: function () { - return new L.Point(this.x, this.y); - }, - - // non-destructive, returns a new point - add: function (point) { - return this.clone()._add(L.point(point)); - }, - - // destructive, used directly for performance in situations where it's safe to modify existing point - _add: function (point) { - this.x += point.x; - this.y += point.y; - return this; - }, - - subtract: function (point) { - return this.clone()._subtract(L.point(point)); - }, - - _subtract: function (point) { - this.x -= point.x; - this.y -= point.y; - return this; - }, - - divideBy: function (num) { - return this.clone()._divideBy(num); - }, - - _divideBy: function (num) { - this.x /= num; - this.y /= num; - return this; - }, - - multiplyBy: function (num) { - return this.clone()._multiplyBy(num); - }, - - _multiplyBy: function (num) { - this.x *= num; - this.y *= num; - return this; - }, - - round: function () { - return this.clone()._round(); - }, - - _round: function () { - this.x = Math.round(this.x); - this.y = Math.round(this.y); - return this; - }, - - floor: function () { - return this.clone()._floor(); - }, - - _floor: function () { - this.x = Math.floor(this.x); - this.y = Math.floor(this.y); - return this; - }, - - distanceTo: function (point) { - point = L.point(point); - - var x = point.x - this.x, - y = point.y - this.y; - - return Math.sqrt(x * x + y * y); - }, - - equals: function (point) { - point = L.point(point); - - return point.x === this.x && - point.y === this.y; - }, - - contains: function (point) { - point = L.point(point); - - return Math.abs(point.x) <= Math.abs(this.x) && - Math.abs(point.y) <= Math.abs(this.y); - }, - - toString: function () { - return 'Point(' + - L.Util.formatNum(this.x) + ', ' + - L.Util.formatNum(this.y) + ')'; - } -}; - -L.point = function (x, y, round) { - if (x instanceof L.Point) { - return x; - } - if (L.Util.isArray(x)) { - return new L.Point(x[0], x[1]); - } - if (x === undefined || x === null) { - return x; - } - return new L.Point(x, y, round); -}; - - -/* - * L.Bounds represents a rectangular area on the screen in pixel coordinates. - */ - -L.Bounds = function (a, b) { //(Point, Point) or Point[] - if (!a) { return; } - - var points = b ? [a, b] : a; - - for (var i = 0, len = points.length; i < len; i++) { - this.extend(points[i]); - } -}; - -L.Bounds.prototype = { - // extend the bounds to contain the given point - extend: function (point) { // (Point) - point = L.point(point); - - if (!this.min && !this.max) { - this.min = point.clone(); - this.max = point.clone(); - } else { - this.min.x = Math.min(point.x, this.min.x); - this.max.x = Math.max(point.x, this.max.x); - this.min.y = Math.min(point.y, this.min.y); - this.max.y = Math.max(point.y, this.max.y); - } - return this; - }, - - getCenter: function (round) { // (Boolean) -> Point - return new L.Point( - (this.min.x + this.max.x) / 2, - (this.min.y + this.max.y) / 2, round); - }, - - getBottomLeft: function () { // -> Point - return new L.Point(this.min.x, this.max.y); - }, - - getTopRight: function () { // -> Point - return new L.Point(this.max.x, this.min.y); - }, - - getSize: function () { - return this.max.subtract(this.min); - }, - - contains: function (obj) { // (Bounds) or (Point) -> Boolean - var min, max; - - if (typeof obj[0] === 'number' || obj instanceof L.Point) { - obj = L.point(obj); - } else { - obj = L.bounds(obj); - } - - if (obj instanceof L.Bounds) { - min = obj.min; - max = obj.max; - } else { - min = max = obj; - } - - return (min.x >= this.min.x) && - (max.x <= this.max.x) && - (min.y >= this.min.y) && - (max.y <= this.max.y); - }, - - intersects: function (bounds) { // (Bounds) -> Boolean - bounds = L.bounds(bounds); - - var min = this.min, - max = this.max, - min2 = bounds.min, - max2 = bounds.max, - xIntersects = (max2.x >= min.x) && (min2.x <= max.x), - yIntersects = (max2.y >= min.y) && (min2.y <= max.y); - - return xIntersects && yIntersects; - }, - - isValid: function () { - return !!(this.min && this.max); - } -}; - -L.bounds = function (a, b) { // (Bounds) or (Point, Point) or (Point[]) - if (!a || a instanceof L.Bounds) { - return a; - } - return new L.Bounds(a, b); -}; - - -/* - * L.Transformation is an utility class to perform simple point transformations through a 2d-matrix. - */ - -L.Transformation = function (a, b, c, d) { - this._a = a; - this._b = b; - this._c = c; - this._d = d; -}; - -L.Transformation.prototype = { - transform: function (point, scale) { // (Point, Number) -> Point - return this._transform(point.clone(), scale); - }, - - // destructive transform (faster) - _transform: function (point, scale) { - scale = scale || 1; - point.x = scale * (this._a * point.x + this._b); - point.y = scale * (this._c * point.y + this._d); - return point; - }, - - untransform: function (point, scale) { - scale = scale || 1; - return new L.Point( - (point.x / scale - this._b) / this._a, - (point.y / scale - this._d) / this._c); - } -}; - - -/* - * L.DomUtil contains various utility functions for working with DOM. - */ - -L.DomUtil = { - get: function (id) { - return (typeof id === 'string' ? document.getElementById(id) : id); - }, - - getStyle: function (el, style) { - - var value = el.style[style]; - - if (!value && el.currentStyle) { - value = el.currentStyle[style]; - } - - if ((!value || value === 'auto') && document.defaultView) { - var css = document.defaultView.getComputedStyle(el, null); - value = css ? css[style] : null; - } - - return value === 'auto' ? null : value; - }, - - getViewportOffset: function (element) { - - var top = 0, - left = 0, - el = element, - docBody = document.body, - docEl = document.documentElement, - pos; - - do { - top += el.offsetTop || 0; - left += el.offsetLeft || 0; - - //add borders - top += parseInt(L.DomUtil.getStyle(el, 'borderTopWidth'), 10) || 0; - left += parseInt(L.DomUtil.getStyle(el, 'borderLeftWidth'), 10) || 0; - - pos = L.DomUtil.getStyle(el, 'position'); - - if (el.offsetParent === docBody && pos === 'absolute') { break; } - - if (pos === 'fixed') { - top += docBody.scrollTop || docEl.scrollTop || 0; - left += docBody.scrollLeft || docEl.scrollLeft || 0; - break; - } - - if (pos === 'relative' && !el.offsetLeft) { - var width = L.DomUtil.getStyle(el, 'width'), - maxWidth = L.DomUtil.getStyle(el, 'max-width'), - r = el.getBoundingClientRect(); - - if (width !== 'none' || maxWidth !== 'none') { - left += r.left + el.clientLeft; - } - - //calculate full y offset since we're breaking out of the loop - top += r.top + (docBody.scrollTop || docEl.scrollTop || 0); - - break; - } - - el = el.offsetParent; - - } while (el); - - el = element; - - do { - if (el === docBody) { break; } - - top -= el.scrollTop || 0; - left -= el.scrollLeft || 0; - - el = el.parentNode; - } while (el); - - return new L.Point(left, top); - }, - - documentIsLtr: function () { - if (!L.DomUtil._docIsLtrCached) { - L.DomUtil._docIsLtrCached = true; - L.DomUtil._docIsLtr = L.DomUtil.getStyle(document.body, 'direction') === 'ltr'; - } - return L.DomUtil._docIsLtr; - }, - - create: function (tagName, className, container) { - - var el = document.createElement(tagName); - el.className = className; - - if (container) { - container.appendChild(el); - } - - return el; - }, - - hasClass: function (el, name) { - if (el.classList !== undefined) { - return el.classList.contains(name); - } - var className = L.DomUtil._getClass(el); - return className.length > 0 && new RegExp('(^|\\s)' + name + '(\\s|$)').test(className); - }, - - addClass: function (el, name) { - if (el.classList !== undefined) { - var classes = L.Util.splitWords(name); - for (var i = 0, len = classes.length; i < len; i++) { - el.classList.add(classes[i]); - } - } else if (!L.DomUtil.hasClass(el, name)) { - var className = L.DomUtil._getClass(el); - L.DomUtil._setClass(el, (className ? className + ' ' : '') + name); - } - }, - - removeClass: function (el, name) { - if (el.classList !== undefined) { - el.classList.remove(name); - } else { - L.DomUtil._setClass(el, L.Util.trim((' ' + L.DomUtil._getClass(el) + ' ').replace(' ' + name + ' ', ' '))); - } - }, - - _setClass: function (el, name) { - if (el.className.baseVal === undefined) { - el.className = name; - } else { - // in case of SVG element - el.className.baseVal = name; - } - }, - - _getClass: function (el) { - return el.className.baseVal === undefined ? el.className : el.className.baseVal; - }, - - setOpacity: function (el, value) { - - if ('opacity' in el.style) { - el.style.opacity = value; - - } else if ('filter' in el.style) { - - var filter = false, - filterName = 'DXImageTransform.Microsoft.Alpha'; - - // filters collection throws an error if we try to retrieve a filter that doesn't exist - try { - filter = el.filters.item(filterName); - } catch (e) { - // don't set opacity to 1 if we haven't already set an opacity, - // it isn't needed and breaks transparent pngs. - if (value === 1) { return; } - } - - value = Math.round(value * 100); - - if (filter) { - filter.Enabled = (value !== 100); - filter.Opacity = value; - } else { - el.style.filter += ' progid:' + filterName + '(opacity=' + value + ')'; - } - } - }, - - testProp: function (props) { - - var style = document.documentElement.style; - - for (var i = 0; i < props.length; i++) { - if (props[i] in style) { - return props[i]; - } - } - return false; - }, - - getTranslateString: function (point) { - // on WebKit browsers (Chrome/Safari/iOS Safari/Android) using translate3d instead of translate - // makes animation smoother as it ensures HW accel is used. Firefox 13 doesn't care - // (same speed either way), Opera 12 doesn't support translate3d - - var is3d = L.Browser.webkit3d, - open = 'translate' + (is3d ? '3d' : '') + '(', - close = (is3d ? ',0' : '') + ')'; - - return open + point.x + 'px,' + point.y + 'px' + close; - }, - - getScaleString: function (scale, origin) { - - var preTranslateStr = L.DomUtil.getTranslateString(origin.add(origin.multiplyBy(-1 * scale))), - scaleStr = ' scale(' + scale + ') '; - - return preTranslateStr + scaleStr; - }, - - setPosition: function (el, point, disable3D) { // (HTMLElement, Point[, Boolean]) - - // jshint camelcase: false - el._leaflet_pos = point; - - if (!disable3D && L.Browser.any3d) { - el.style[L.DomUtil.TRANSFORM] = L.DomUtil.getTranslateString(point); - } else { - el.style.left = point.x + 'px'; - el.style.top = point.y + 'px'; - } - }, - - getPosition: function (el) { - // this method is only used for elements previously positioned using setPosition, - // so it's safe to cache the position for performance - - // jshint camelcase: false - return el._leaflet_pos; - } -}; - - -// prefix style property names - -L.DomUtil.TRANSFORM = L.DomUtil.testProp( - ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform']); - -// webkitTransition comes first because some browser versions that drop vendor prefix don't do -// the same for the transitionend event, in particular the Android 4.1 stock browser - -L.DomUtil.TRANSITION = L.DomUtil.testProp( - ['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']); - -L.DomUtil.TRANSITION_END = - L.DomUtil.TRANSITION === 'webkitTransition' || L.DomUtil.TRANSITION === 'OTransition' ? - L.DomUtil.TRANSITION + 'End' : 'transitionend'; - -(function () { - if ('onselectstart' in document) { - L.extend(L.DomUtil, { - disableTextSelection: function () { - L.DomEvent.on(window, 'selectstart', L.DomEvent.preventDefault); - }, - - enableTextSelection: function () { - L.DomEvent.off(window, 'selectstart', L.DomEvent.preventDefault); - } - }); - } else { - var userSelectProperty = L.DomUtil.testProp( - ['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']); - - L.extend(L.DomUtil, { - disableTextSelection: function () { - if (userSelectProperty) { - var style = document.documentElement.style; - this._userSelect = style[userSelectProperty]; - style[userSelectProperty] = 'none'; - } - }, - - enableTextSelection: function () { - if (userSelectProperty) { - document.documentElement.style[userSelectProperty] = this._userSelect; - delete this._userSelect; - } - } - }); - } - - L.extend(L.DomUtil, { - disableImageDrag: function () { - L.DomEvent.on(window, 'dragstart', L.DomEvent.preventDefault); - }, - - enableImageDrag: function () { - L.DomEvent.off(window, 'dragstart', L.DomEvent.preventDefault); - } - }); -})(); - - -/* - * L.LatLng represents a geographical point with latitude and longitude coordinates. - */ - -L.LatLng = function (lat, lng, alt) { // (Number, Number, Number) - lat = parseFloat(lat); - lng = parseFloat(lng); - - if (isNaN(lat) || isNaN(lng)) { - throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')'); - } - - this.lat = lat; - this.lng = lng; - - if (alt !== undefined) { - this.alt = parseFloat(alt); - } -}; - -L.extend(L.LatLng, { - DEG_TO_RAD: Math.PI / 180, - RAD_TO_DEG: 180 / Math.PI, - MAX_MARGIN: 1.0E-9 // max margin of error for the "equals" check -}); - -L.LatLng.prototype = { - equals: function (obj) { // (LatLng) -> Boolean - if (!obj) { return false; } - - obj = L.latLng(obj); - - var margin = Math.max( - Math.abs(this.lat - obj.lat), - Math.abs(this.lng - obj.lng)); - - return margin <= L.LatLng.MAX_MARGIN; - }, - - toString: function (precision) { // (Number) -> String - return 'LatLng(' + - L.Util.formatNum(this.lat, precision) + ', ' + - L.Util.formatNum(this.lng, precision) + ')'; - }, - - // Haversine distance formula, see http://en.wikipedia.org/wiki/Haversine_formula - // TODO move to projection code, LatLng shouldn't know about Earth - distanceTo: function (other) { // (LatLng) -> Number - other = L.latLng(other); - - var R = 6378137, // earth radius in meters - d2r = L.LatLng.DEG_TO_RAD, - dLat = (other.lat - this.lat) * d2r, - dLon = (other.lng - this.lng) * d2r, - lat1 = this.lat * d2r, - lat2 = other.lat * d2r, - sin1 = Math.sin(dLat / 2), - sin2 = Math.sin(dLon / 2); - - var a = sin1 * sin1 + sin2 * sin2 * Math.cos(lat1) * Math.cos(lat2); - - return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); - }, - - wrap: function (a, b) { // (Number, Number) -> LatLng - var lng = this.lng; - - a = a || -180; - b = b || 180; - - lng = (lng + b) % (b - a) + (lng < a || lng === b ? b : a); - - return new L.LatLng(this.lat, lng); - } -}; - -L.latLng = function (a, b) { // (LatLng) or ([Number, Number]) or (Number, Number) - if (a instanceof L.LatLng) { - return a; - } - if (L.Util.isArray(a)) { - if (typeof a[0] === 'number' || typeof a[0] === 'string') { - return new L.LatLng(a[0], a[1], a[2]); - } else { - return null; - } - } - if (a === undefined || a === null) { - return a; - } - if (typeof a === 'object' && 'lat' in a) { - return new L.LatLng(a.lat, 'lng' in a ? a.lng : a.lon); - } - if (b === undefined) { - return null; - } - return new L.LatLng(a, b); -}; - - - -/* - * L.LatLngBounds represents a rectangular area on the map in geographical coordinates. - */ - -L.LatLngBounds = function (southWest, northEast) { // (LatLng, LatLng) or (LatLng[]) - if (!southWest) { return; } - - var latlngs = northEast ? [southWest, northEast] : southWest; - - for (var i = 0, len = latlngs.length; i < len; i++) { - this.extend(latlngs[i]); - } -}; - -L.LatLngBounds.prototype = { - // extend the bounds to contain the given point or bounds - extend: function (obj) { // (LatLng) or (LatLngBounds) - if (!obj) { return this; } - - var latLng = L.latLng(obj); - if (latLng !== null) { - obj = latLng; - } else { - obj = L.latLngBounds(obj); - } - - if (obj instanceof L.LatLng) { - if (!this._southWest && !this._northEast) { - this._southWest = new L.LatLng(obj.lat, obj.lng); - this._northEast = new L.LatLng(obj.lat, obj.lng); - } else { - this._southWest.lat = Math.min(obj.lat, this._southWest.lat); - this._southWest.lng = Math.min(obj.lng, this._southWest.lng); - - this._northEast.lat = Math.max(obj.lat, this._northEast.lat); - this._northEast.lng = Math.max(obj.lng, this._northEast.lng); - } - } else if (obj instanceof L.LatLngBounds) { - this.extend(obj._southWest); - this.extend(obj._northEast); - } - return this; - }, - - // extend the bounds by a percentage - pad: function (bufferRatio) { // (Number) -> LatLngBounds - var sw = this._southWest, - ne = this._northEast, - heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio, - widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio; - - return new L.LatLngBounds( - new L.LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer), - new L.LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer)); - }, - - getCenter: function () { // -> LatLng - return new L.LatLng( - (this._southWest.lat + this._northEast.lat) / 2, - (this._southWest.lng + this._northEast.lng) / 2); - }, - - getSouthWest: function () { - return this._southWest; - }, - - getNorthEast: function () { - return this._northEast; - }, - - getNorthWest: function () { - return new L.LatLng(this.getNorth(), this.getWest()); - }, - - getSouthEast: function () { - return new L.LatLng(this.getSouth(), this.getEast()); - }, - - getWest: function () { - return this._southWest.lng; - }, - - getSouth: function () { - return this._southWest.lat; - }, - - getEast: function () { - return this._northEast.lng; - }, - - getNorth: function () { - return this._northEast.lat; - }, - - contains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean - if (typeof obj[0] === 'number' || obj instanceof L.LatLng) { - obj = L.latLng(obj); - } else { - obj = L.latLngBounds(obj); - } - - var sw = this._southWest, - ne = this._northEast, - sw2, ne2; - - if (obj instanceof L.LatLngBounds) { - sw2 = obj.getSouthWest(); - ne2 = obj.getNorthEast(); - } else { - sw2 = ne2 = obj; - } - - return (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) && - (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng); - }, - - intersects: function (bounds) { // (LatLngBounds) - bounds = L.latLngBounds(bounds); - - var sw = this._southWest, - ne = this._northEast, - sw2 = bounds.getSouthWest(), - ne2 = bounds.getNorthEast(), - - latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat), - lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng); - - return latIntersects && lngIntersects; - }, - - toBBoxString: function () { - return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(','); - }, - - equals: function (bounds) { // (LatLngBounds) - if (!bounds) { return false; } - - bounds = L.latLngBounds(bounds); - - return this._southWest.equals(bounds.getSouthWest()) && - this._northEast.equals(bounds.getNorthEast()); - }, - - isValid: function () { - return !!(this._southWest && this._northEast); - } -}; - -//TODO International date line? - -L.latLngBounds = function (a, b) { // (LatLngBounds) or (LatLng, LatLng) - if (!a || a instanceof L.LatLngBounds) { - return a; - } - return new L.LatLngBounds(a, b); -}; - - -/* - * L.Projection contains various geographical projections used by CRS classes. - */ - -L.Projection = {}; - - -/* - * Spherical Mercator is the most popular map projection, used by EPSG:3857 CRS used by default. - */ - -L.Projection.SphericalMercator = { - MAX_LATITUDE: 85.0511287798, - - project: function (latlng) { // (LatLng) -> Point - var d = L.LatLng.DEG_TO_RAD, - max = this.MAX_LATITUDE, - lat = Math.max(Math.min(max, latlng.lat), -max), - x = latlng.lng * d, - y = lat * d; - - y = Math.log(Math.tan((Math.PI / 4) + (y / 2))); - - return new L.Point(x, y); - }, - - unproject: function (point) { // (Point, Boolean) -> LatLng - var d = L.LatLng.RAD_TO_DEG, - lng = point.x * d, - lat = (2 * Math.atan(Math.exp(point.y)) - (Math.PI / 2)) * d; - - return new L.LatLng(lat, lng); - } -}; - - -/* - * Simple equirectangular (Plate Carree) projection, used by CRS like EPSG:4326 and Simple. - */ - -L.Projection.LonLat = { - project: function (latlng) { - return new L.Point(latlng.lng, latlng.lat); - }, - - unproject: function (point) { - return new L.LatLng(point.y, point.x); - } -}; - - -/* - * L.CRS is a base object for all defined CRS (Coordinate Reference Systems) in Leaflet. - */ - -L.CRS = { - latLngToPoint: function (latlng, zoom) { // (LatLng, Number) -> Point - var projectedPoint = this.projection.project(latlng), - scale = this.scale(zoom); - - return this.transformation._transform(projectedPoint, scale); - }, - - pointToLatLng: function (point, zoom) { // (Point, Number[, Boolean]) -> LatLng - var scale = this.scale(zoom), - untransformedPoint = this.transformation.untransform(point, scale); - - return this.projection.unproject(untransformedPoint); - }, - - project: function (latlng) { - return this.projection.project(latlng); - }, - - scale: function (zoom) { - return 256 * Math.pow(2, zoom); - }, - - getSize: function (zoom) { - var s = this.scale(zoom); - return L.point(s, s); - } -}; - - -/* - * A simple CRS that can be used for flat non-Earth maps like panoramas or game maps. - */ - -L.CRS.Simple = L.extend({}, L.CRS, { - projection: L.Projection.LonLat, - transformation: new L.Transformation(1, 0, -1, 0), - - scale: function (zoom) { - return Math.pow(2, zoom); - } -}); - - -/* - * L.CRS.EPSG3857 (Spherical Mercator) is the most common CRS for web mapping - * and is used by Leaflet by default. - */ - -L.CRS.EPSG3857 = L.extend({}, L.CRS, { - code: 'EPSG:3857', - - projection: L.Projection.SphericalMercator, - transformation: new L.Transformation(0.5 / Math.PI, 0.5, -0.5 / Math.PI, 0.5), - - project: function (latlng) { // (LatLng) -> Point - var projectedPoint = this.projection.project(latlng), - earthRadius = 6378137; - return projectedPoint.multiplyBy(earthRadius); - } -}); - -L.CRS.EPSG900913 = L.extend({}, L.CRS.EPSG3857, { - code: 'EPSG:900913' -}); - - -/* - * L.CRS.EPSG4326 is a CRS popular among advanced GIS specialists. - */ - -L.CRS.EPSG4326 = L.extend({}, L.CRS, { - code: 'EPSG:4326', - - projection: L.Projection.LonLat, - transformation: new L.Transformation(1 / 360, 0.5, -1 / 360, 0.5) -}); - - -/* - * L.Map is the central class of the API - it is used to create a map. - */ - -L.Map = L.Class.extend({ - - includes: L.Mixin.Events, - - options: { - crs: L.CRS.EPSG3857, - - /* - center: LatLng, - zoom: Number, - layers: Array, - */ - - fadeAnimation: L.DomUtil.TRANSITION && !L.Browser.android23, - trackResize: true, - markerZoomAnimation: L.DomUtil.TRANSITION && L.Browser.any3d - }, - - initialize: function (id, options) { // (HTMLElement or String, Object) - options = L.setOptions(this, options); - - - this._initContainer(id); - this._initLayout(); - - // hack for https://github.com/Leaflet/Leaflet/issues/1980 - this._onResize = L.bind(this._onResize, this); - - this._initEvents(); - - if (options.maxBounds) { - this.setMaxBounds(options.maxBounds); - } - - if (options.center && options.zoom !== undefined) { - this.setView(L.latLng(options.center), options.zoom, {reset: true}); - } - - this._handlers = []; - - this._layers = {}; - this._zoomBoundLayers = {}; - this._tileLayersNum = 0; - - this.callInitHooks(); - - this._addLayers(options.layers); - }, - - - // public methods that modify map state - - // replaced by animation-powered implementation in Map.PanAnimation.js - setView: function (center, zoom) { - zoom = zoom === undefined ? this.getZoom() : zoom; - this._resetView(L.latLng(center), this._limitZoom(zoom)); - return this; - }, - - setZoom: function (zoom, options) { - if (!this._loaded) { - this._zoom = this._limitZoom(zoom); - return this; - } - return this.setView(this.getCenter(), zoom, {zoom: options}); - }, - - zoomIn: function (delta, options) { - return this.setZoom(this._zoom + (delta || 1), options); - }, - - zoomOut: function (delta, options) { - return this.setZoom(this._zoom - (delta || 1), options); - }, - - setZoomAround: function (latlng, zoom, options) { - var scale = this.getZoomScale(zoom), - viewHalf = this.getSize().divideBy(2), - containerPoint = latlng instanceof L.Point ? latlng : this.latLngToContainerPoint(latlng), - - centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale), - newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset)); - - return this.setView(newCenter, zoom, {zoom: options}); - }, - - fitBounds: function (bounds, options) { - - options = options || {}; - bounds = bounds.getBounds ? bounds.getBounds() : L.latLngBounds(bounds); - - var paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]), - paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]), - - zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR)); - - zoom = (options.maxZoom) ? Math.min(options.maxZoom, zoom) : zoom; - - var paddingOffset = paddingBR.subtract(paddingTL).divideBy(2), - - swPoint = this.project(bounds.getSouthWest(), zoom), - nePoint = this.project(bounds.getNorthEast(), zoom), - center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom); - - return this.setView(center, zoom, options); - }, - - fitWorld: function (options) { - return this.fitBounds([[-90, -180], [90, 180]], options); - }, - - panTo: function (center, options) { // (LatLng) - return this.setView(center, this._zoom, {pan: options}); - }, - - panBy: function (offset) { // (Point) - // replaced with animated panBy in Map.PanAnimation.js - this.fire('movestart'); - - this._rawPanBy(L.point(offset)); - - this.fire('move'); - return this.fire('moveend'); - }, - - setMaxBounds: function (bounds) { - bounds = L.latLngBounds(bounds); - - this.options.maxBounds = bounds; - - if (!bounds) { - return this.off('moveend', this._panInsideMaxBounds, this); - } - - if (this._loaded) { - this._panInsideMaxBounds(); - } - - return this.on('moveend', this._panInsideMaxBounds, this); - }, - - panInsideBounds: function (bounds, options) { - var center = this.getCenter(), - newCenter = this._limitCenter(center, this._zoom, bounds); - - if (center.equals(newCenter)) { return this; } - - return this.panTo(newCenter, options); - }, - - addLayer: function (layer) { - // TODO method is too big, refactor - - var id = L.stamp(layer); - - if (this._layers[id]) { return this; } - - this._layers[id] = layer; - - // TODO getMaxZoom, getMinZoom in ILayer (instead of options) - if (layer.options && (!isNaN(layer.options.maxZoom) || !isNaN(layer.options.minZoom))) { - this._zoomBoundLayers[id] = layer; - this._updateZoomLevels(); - } - - // TODO looks ugly, refactor!!! - if (this.options.zoomAnimation && L.TileLayer && (layer instanceof L.TileLayer)) { - this._tileLayersNum++; - this._tileLayersToLoad++; - layer.on('load', this._onTileLayerLoad, this); - } - - if (this._loaded) { - this._layerAdd(layer); - } - - return this; - }, - - removeLayer: function (layer) { - var id = L.stamp(layer); - - if (!this._layers[id]) { return this; } - - if (this._loaded) { - layer.onRemove(this); - } - - delete this._layers[id]; - - if (this._loaded) { - this.fire('layerremove', {layer: layer}); - } - - if (this._zoomBoundLayers[id]) { - delete this._zoomBoundLayers[id]; - this._updateZoomLevels(); - } - - // TODO looks ugly, refactor - if (this.options.zoomAnimation && L.TileLayer && (layer instanceof L.TileLayer)) { - this._tileLayersNum--; - this._tileLayersToLoad--; - layer.off('load', this._onTileLayerLoad, this); - } - - return this; - }, - - hasLayer: function (layer) { - if (!layer) { return false; } - - return (L.stamp(layer) in this._layers); - }, - - eachLayer: function (method, context) { - for (var i in this._layers) { - method.call(context, this._layers[i]); - } - return this; - }, - - invalidateSize: function (options) { - if (!this._loaded) { return this; } - - options = L.extend({ - animate: false, - pan: true - }, options === true ? {animate: true} : options); - - var oldSize = this.getSize(); - this._sizeChanged = true; - this._initialCenter = null; - - var newSize = this.getSize(), - oldCenter = oldSize.divideBy(2).round(), - newCenter = newSize.divideBy(2).round(), - offset = oldCenter.subtract(newCenter); - - if (!offset.x && !offset.y) { return this; } - - if (options.animate && options.pan) { - this.panBy(offset); - - } else { - if (options.pan) { - this._rawPanBy(offset); - } - - this.fire('move'); - - if (options.debounceMoveend) { - clearTimeout(this._sizeTimer); - this._sizeTimer = setTimeout(L.bind(this.fire, this, 'moveend'), 200); - } else { - this.fire('moveend'); - } - } - - return this.fire('resize', { - oldSize: oldSize, - newSize: newSize - }); - }, - - // TODO handler.addTo - addHandler: function (name, HandlerClass) { - if (!HandlerClass) { return this; } - - var handler = this[name] = new HandlerClass(this); - - this._handlers.push(handler); - - if (this.options[name]) { - handler.enable(); - } - - return this; - }, - - remove: function () { - if (this._loaded) { - this.fire('unload'); - } - - this._initEvents('off'); - - try { - // throws error in IE6-8 - delete this._container._leaflet; - } catch (e) { - this._container._leaflet = undefined; - } - - this._clearPanes(); - if (this._clearControlPos) { - this._clearControlPos(); - } - - this._clearHandlers(); - - return this; - }, - - - // public methods for getting map state - - getCenter: function () { // (Boolean) -> LatLng - this._checkIfLoaded(); - - if (this._initialCenter && !this._moved()) { - return this._initialCenter; - } - return this.layerPointToLatLng(this._getCenterLayerPoint()); - }, - - getZoom: function () { - return this._zoom; - }, - - getBounds: function () { - var bounds = this.getPixelBounds(), - sw = this.unproject(bounds.getBottomLeft()), - ne = this.unproject(bounds.getTopRight()); - - return new L.LatLngBounds(sw, ne); - }, - - getMinZoom: function () { - return this.options.minZoom === undefined ? - (this._layersMinZoom === undefined ? 0 : this._layersMinZoom) : - this.options.minZoom; - }, - - getMaxZoom: function () { - return this.options.maxZoom === undefined ? - (this._layersMaxZoom === undefined ? Infinity : this._layersMaxZoom) : - this.options.maxZoom; - }, - - getBoundsZoom: function (bounds, inside, padding) { // (LatLngBounds[, Boolean, Point]) -> Number - bounds = L.latLngBounds(bounds); - - var zoom = this.getMinZoom() - (inside ? 1 : 0), - maxZoom = this.getMaxZoom(), - size = this.getSize(), - - nw = bounds.getNorthWest(), - se = bounds.getSouthEast(), - - zoomNotFound = true, - boundsSize; - - padding = L.point(padding || [0, 0]); - - do { - zoom++; - boundsSize = this.project(se, zoom).subtract(this.project(nw, zoom)).add(padding); - zoomNotFound = !inside ? size.contains(boundsSize) : boundsSize.x < size.x || boundsSize.y < size.y; - - } while (zoomNotFound && zoom <= maxZoom); - - if (zoomNotFound && inside) { - return null; - } - - return inside ? zoom : zoom - 1; - }, - - getSize: function () { - if (!this._size || this._sizeChanged) { - this._size = new L.Point( - this._container.clientWidth, - this._container.clientHeight); - - this._sizeChanged = false; - } - return this._size.clone(); - }, - - getPixelBounds: function () { - var topLeftPoint = this._getTopLeftPoint(); - return new L.Bounds(topLeftPoint, topLeftPoint.add(this.getSize())); - }, - - getPixelOrigin: function () { - this._checkIfLoaded(); - return this._initialTopLeftPoint; - }, - - getPanes: function () { - return this._panes; - }, - - getContainer: function () { - return this._container; - }, - - - // TODO replace with universal implementation after refactoring projections - - getZoomScale: function (toZoom) { - var crs = this.options.crs; - return crs.scale(toZoom) / crs.scale(this._zoom); - }, - - getScaleZoom: function (scale) { - return this._zoom + (Math.log(scale) / Math.LN2); - }, - - - // conversion methods - - project: function (latlng, zoom) { // (LatLng[, Number]) -> Point - zoom = zoom === undefined ? this._zoom : zoom; - return this.options.crs.latLngToPoint(L.latLng(latlng), zoom); - }, - - unproject: function (point, zoom) { // (Point[, Number]) -> LatLng - zoom = zoom === undefined ? this._zoom : zoom; - return this.options.crs.pointToLatLng(L.point(point), zoom); - }, - - layerPointToLatLng: function (point) { // (Point) - var projectedPoint = L.point(point).add(this.getPixelOrigin()); - return this.unproject(projectedPoint); - }, - - latLngToLayerPoint: function (latlng) { // (LatLng) - var projectedPoint = this.project(L.latLng(latlng))._round(); - return projectedPoint._subtract(this.getPixelOrigin()); - }, - - containerPointToLayerPoint: function (point) { // (Point) - return L.point(point).subtract(this._getMapPanePos()); - }, - - layerPointToContainerPoint: function (point) { // (Point) - return L.point(point).add(this._getMapPanePos()); - }, - - containerPointToLatLng: function (point) { - var layerPoint = this.containerPointToLayerPoint(L.point(point)); - return this.layerPointToLatLng(layerPoint); - }, - - latLngToContainerPoint: function (latlng) { - return this.layerPointToContainerPoint(this.latLngToLayerPoint(L.latLng(latlng))); - }, - - mouseEventToContainerPoint: function (e) { // (MouseEvent) - return L.DomEvent.getMousePosition(e, this._container); - }, - - mouseEventToLayerPoint: function (e) { // (MouseEvent) - return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e)); - }, - - mouseEventToLatLng: function (e) { // (MouseEvent) - return this.layerPointToLatLng(this.mouseEventToLayerPoint(e)); - }, - - - // map initialization methods - - _initContainer: function (id) { - var container = this._container = L.DomUtil.get(id); - - if (!container) { - throw new Error('Map container not found.'); - } else if (container._leaflet) { - throw new Error('Map container is already initialized.'); - } - - container._leaflet = true; - }, - - _initLayout: function () { - var container = this._container; - - L.DomUtil.addClass(container, 'leaflet-container' + - (L.Browser.touch ? ' leaflet-touch' : '') + - (L.Browser.retina ? ' leaflet-retina' : '') + - (L.Browser.ielt9 ? ' leaflet-oldie' : '') + - (this.options.fadeAnimation ? ' leaflet-fade-anim' : '')); - - var position = L.DomUtil.getStyle(container, 'position'); - - if (position !== 'absolute' && position !== 'relative' && position !== 'fixed') { - container.style.position = 'relative'; - } - - this._initPanes(); - - if (this._initControlPos) { - this._initControlPos(); - } - }, - - _initPanes: function () { - var panes = this._panes = {}; - - this._mapPane = panes.mapPane = this._createPane('leaflet-map-pane', this._container); - - this._tilePane = panes.tilePane = this._createPane('leaflet-tile-pane', this._mapPane); - panes.objectsPane = this._createPane('leaflet-objects-pane', this._mapPane); - panes.shadowPane = this._createPane('leaflet-shadow-pane'); - panes.overlayPane = this._createPane('leaflet-overlay-pane'); - panes.markerPane = this._createPane('leaflet-marker-pane'); - panes.popupPane = this._createPane('leaflet-popup-pane'); - - var zoomHide = ' leaflet-zoom-hide'; - - if (!this.options.markerZoomAnimation) { - L.DomUtil.addClass(panes.markerPane, zoomHide); - L.DomUtil.addClass(panes.shadowPane, zoomHide); - L.DomUtil.addClass(panes.popupPane, zoomHide); - } - }, - - _createPane: function (className, container) { - return L.DomUtil.create('div', className, container || this._panes.objectsPane); - }, - - _clearPanes: function () { - this._container.removeChild(this._mapPane); - }, - - _addLayers: function (layers) { - layers = layers ? (L.Util.isArray(layers) ? layers : [layers]) : []; - - for (var i = 0, len = layers.length; i < len; i++) { - this.addLayer(layers[i]); - } - }, - - - // private methods that modify map state - - _resetView: function (center, zoom, preserveMapOffset, afterZoomAnim) { - - var zoomChanged = (this._zoom !== zoom); - - if (!afterZoomAnim) { - this.fire('movestart'); - - if (zoomChanged) { - this.fire('zoomstart'); - } - } - - this._zoom = zoom; - this._initialCenter = center; - - this._initialTopLeftPoint = this._getNewTopLeftPoint(center); - - if (!preserveMapOffset) { - L.DomUtil.setPosition(this._mapPane, new L.Point(0, 0)); - } else { - this._initialTopLeftPoint._add(this._getMapPanePos()); - } - - this._tileLayersToLoad = this._tileLayersNum; - - var loading = !this._loaded; - this._loaded = true; - - this.fire('viewreset', {hard: !preserveMapOffset}); - - if (loading) { - this.fire('load'); - this.eachLayer(this._layerAdd, this); - } - - this.fire('move'); - - if (zoomChanged || afterZoomAnim) { - this.fire('zoomend'); - } - - this.fire('moveend', {hard: !preserveMapOffset}); - }, - - _rawPanBy: function (offset) { - L.DomUtil.setPosition(this._mapPane, this._getMapPanePos().subtract(offset)); - }, - - _getZoomSpan: function () { - return this.getMaxZoom() - this.getMinZoom(); - }, - - _updateZoomLevels: function () { - var i, - minZoom = Infinity, - maxZoom = -Infinity, - oldZoomSpan = this._getZoomSpan(); - - for (i in this._zoomBoundLayers) { - var layer = this._zoomBoundLayers[i]; - if (!isNaN(layer.options.minZoom)) { - minZoom = Math.min(minZoom, layer.options.minZoom); - } - if (!isNaN(layer.options.maxZoom)) { - maxZoom = Math.max(maxZoom, layer.options.maxZoom); - } - } - - if (i === undefined) { // we have no tilelayers - this._layersMaxZoom = this._layersMinZoom = undefined; - } else { - this._layersMaxZoom = maxZoom; - this._layersMinZoom = minZoom; - } - - if (oldZoomSpan !== this._getZoomSpan()) { - this.fire('zoomlevelschange'); - } - }, - - _panInsideMaxBounds: function () { - this.panInsideBounds(this.options.maxBounds); - }, - - _checkIfLoaded: function () { - if (!this._loaded) { - throw new Error('Set map center and zoom first.'); - } - }, - - // map events - - _initEvents: function (onOff) { - if (!L.DomEvent) { return; } - - onOff = onOff || 'on'; - - L.DomEvent[onOff](this._container, 'click', this._onMouseClick, this); - - var events = ['dblclick', 'mousedown', 'mouseup', 'mouseenter', - 'mouseleave', 'mousemove', 'contextmenu'], - i, len; - - for (i = 0, len = events.length; i < len; i++) { - L.DomEvent[onOff](this._container, events[i], this._fireMouseEvent, this); - } - - if (this.options.trackResize) { - L.DomEvent[onOff](window, 'resize', this._onResize, this); - } - }, - - _onResize: function () { - L.Util.cancelAnimFrame(this._resizeRequest); - this._resizeRequest = L.Util.requestAnimFrame( - function () { this.invalidateSize({debounceMoveend: true}); }, this, false, this._container); - }, - - _onMouseClick: function (e) { - if (!this._loaded || (!e._simulated && - ((this.dragging && this.dragging.moved()) || - (this.boxZoom && this.boxZoom.moved()))) || - L.DomEvent._skipped(e)) { return; } - - this.fire('preclick'); - this._fireMouseEvent(e); - }, - - _fireMouseEvent: function (e) { - if (!this._loaded || L.DomEvent._skipped(e)) { return; } - - var type = e.type; - - type = (type === 'mouseenter' ? 'mouseover' : (type === 'mouseleave' ? 'mouseout' : type)); - - if (!this.hasEventListeners(type)) { return; } - - if (type === 'contextmenu') { - L.DomEvent.preventDefault(e); - } - - var containerPoint = this.mouseEventToContainerPoint(e), - layerPoint = this.containerPointToLayerPoint(containerPoint), - latlng = this.layerPointToLatLng(layerPoint); - - this.fire(type, { - latlng: latlng, - layerPoint: layerPoint, - containerPoint: containerPoint, - originalEvent: e - }); - }, - - _onTileLayerLoad: function () { - this._tileLayersToLoad--; - if (this._tileLayersNum && !this._tileLayersToLoad) { - this.fire('tilelayersload'); - } - }, - - _clearHandlers: function () { - for (var i = 0, len = this._handlers.length; i < len; i++) { - this._handlers[i].disable(); - } - }, - - whenReady: function (callback, context) { - if (this._loaded) { - callback.call(context || this, this); - } else { - this.on('load', callback, context); - } - return this; - }, - - _layerAdd: function (layer) { - layer.onAdd(this); - this.fire('layeradd', {layer: layer}); - }, - - - // private methods for getting map state - - _getMapPanePos: function () { - return L.DomUtil.getPosition(this._mapPane); - }, - - _moved: function () { - var pos = this._getMapPanePos(); - return pos && !pos.equals([0, 0]); - }, - - _getTopLeftPoint: function () { - return this.getPixelOrigin().subtract(this._getMapPanePos()); - }, - - _getNewTopLeftPoint: function (center, zoom) { - var viewHalf = this.getSize()._divideBy(2); - // TODO round on display, not calculation to increase precision? - return this.project(center, zoom)._subtract(viewHalf)._round(); - }, - - _latLngToNewLayerPoint: function (latlng, newZoom, newCenter) { - var topLeft = this._getNewTopLeftPoint(newCenter, newZoom).add(this._getMapPanePos()); - return this.project(latlng, newZoom)._subtract(topLeft); - }, - - // layer point of the current center - _getCenterLayerPoint: function () { - return this.containerPointToLayerPoint(this.getSize()._divideBy(2)); - }, - - // offset of the specified place to the current center in pixels - _getCenterOffset: function (latlng) { - return this.latLngToLayerPoint(latlng).subtract(this._getCenterLayerPoint()); - }, - - // adjust center for view to get inside bounds - _limitCenter: function (center, zoom, bounds) { - - if (!bounds) { return center; } - - var centerPoint = this.project(center, zoom), - viewHalf = this.getSize().divideBy(2), - viewBounds = new L.Bounds(centerPoint.subtract(viewHalf), centerPoint.add(viewHalf)), - offset = this._getBoundsOffset(viewBounds, bounds, zoom); - - return this.unproject(centerPoint.add(offset), zoom); - }, - - // adjust offset for view to get inside bounds - _limitOffset: function (offset, bounds) { - if (!bounds) { return offset; } - - var viewBounds = this.getPixelBounds(), - newBounds = new L.Bounds(viewBounds.min.add(offset), viewBounds.max.add(offset)); - - return offset.add(this._getBoundsOffset(newBounds, bounds)); - }, - - // returns offset needed for pxBounds to get inside maxBounds at a specified zoom - _getBoundsOffset: function (pxBounds, maxBounds, zoom) { - var nwOffset = this.project(maxBounds.getNorthWest(), zoom).subtract(pxBounds.min), - seOffset = this.project(maxBounds.getSouthEast(), zoom).subtract(pxBounds.max), - - dx = this._rebound(nwOffset.x, -seOffset.x), - dy = this._rebound(nwOffset.y, -seOffset.y); - - return new L.Point(dx, dy); - }, - - _rebound: function (left, right) { - return left + right > 0 ? - Math.round(left - right) / 2 : - Math.max(0, Math.ceil(left)) - Math.max(0, Math.floor(right)); - }, - - _limitZoom: function (zoom) { - var min = this.getMinZoom(), - max = this.getMaxZoom(); - - return Math.max(min, Math.min(max, zoom)); - } -}); - -L.map = function (id, options) { - return new L.Map(id, options); -}; - - -/* - * Mercator projection that takes into account that the Earth is not a perfect sphere. - * Less popular than spherical mercator; used by projections like EPSG:3395. - */ - -L.Projection.Mercator = { - MAX_LATITUDE: 85.0840591556, - - R_MINOR: 6356752.314245179, - R_MAJOR: 6378137, - - project: function (latlng) { // (LatLng) -> Point - var d = L.LatLng.DEG_TO_RAD, - max = this.MAX_LATITUDE, - lat = Math.max(Math.min(max, latlng.lat), -max), - r = this.R_MAJOR, - r2 = this.R_MINOR, - x = latlng.lng * d * r, - y = lat * d, - tmp = r2 / r, - eccent = Math.sqrt(1.0 - tmp * tmp), - con = eccent * Math.sin(y); - - con = Math.pow((1 - con) / (1 + con), eccent * 0.5); - - var ts = Math.tan(0.5 * ((Math.PI * 0.5) - y)) / con; - y = -r * Math.log(ts); - - return new L.Point(x, y); - }, - - unproject: function (point) { // (Point, Boolean) -> LatLng - var d = L.LatLng.RAD_TO_DEG, - r = this.R_MAJOR, - r2 = this.R_MINOR, - lng = point.x * d / r, - tmp = r2 / r, - eccent = Math.sqrt(1 - (tmp * tmp)), - ts = Math.exp(- point.y / r), - phi = (Math.PI / 2) - 2 * Math.atan(ts), - numIter = 15, - tol = 1e-7, - i = numIter, - dphi = 0.1, - con; - - while ((Math.abs(dphi) > tol) && (--i > 0)) { - con = eccent * Math.sin(phi); - dphi = (Math.PI / 2) - 2 * Math.atan(ts * - Math.pow((1.0 - con) / (1.0 + con), 0.5 * eccent)) - phi; - phi += dphi; - } - - return new L.LatLng(phi * d, lng); - } -}; - - - -L.CRS.EPSG3395 = L.extend({}, L.CRS, { - code: 'EPSG:3395', - - projection: L.Projection.Mercator, - - transformation: (function () { - var m = L.Projection.Mercator, - r = m.R_MAJOR, - scale = 0.5 / (Math.PI * r); - - return new L.Transformation(scale, 0.5, -scale, 0.5); - }()) -}); - - -/* - * L.TileLayer is used for standard xyz-numbered tile layers. - */ - -L.TileLayer = L.Class.extend({ - includes: L.Mixin.Events, - - options: { - minZoom: 0, - maxZoom: 18, - tileSize: 256, - subdomains: 'abc', - errorTileUrl: '', - attribution: '', - zoomOffset: 0, - opacity: 1, - /* - maxNativeZoom: null, - zIndex: null, - tms: false, - continuousWorld: false, - noWrap: false, - zoomReverse: false, - detectRetina: false, - reuseTiles: false, - bounds: false, - */ - unloadInvisibleTiles: L.Browser.mobile, - updateWhenIdle: L.Browser.mobile - }, - - initialize: function (url, options) { - options = L.setOptions(this, options); - - // detecting retina displays, adjusting tileSize and zoom levels - if (options.detectRetina && L.Browser.retina && options.maxZoom > 0) { - - options.tileSize = Math.floor(options.tileSize / 2); - options.zoomOffset++; - - if (options.minZoom > 0) { - options.minZoom--; - } - this.options.maxZoom--; - } - - if (options.bounds) { - options.bounds = L.latLngBounds(options.bounds); - } - - this._url = url; - - var subdomains = this.options.subdomains; - - if (typeof subdomains === 'string') { - this.options.subdomains = subdomains.split(''); - } - }, - - onAdd: function (map) { - this._map = map; - this._animated = map._zoomAnimated; - - // create a container div for tiles - this._initContainer(); - - // set up events - map.on({ - 'viewreset': this._reset, - 'moveend': this._update - }, this); - - if (this._animated) { - map.on({ - 'zoomanim': this._animateZoom, - 'zoomend': this._endZoomAnim - }, this); - } - - if (!this.options.updateWhenIdle) { - this._limitedUpdate = L.Util.limitExecByInterval(this._update, 150, this); - map.on('move', this._limitedUpdate, this); - } - - this._reset(); - this._update(); - }, - - addTo: function (map) { - map.addLayer(this); - return this; - }, - - onRemove: function (map) { - this._container.parentNode.removeChild(this._container); - - map.off({ - 'viewreset': this._reset, - 'moveend': this._update - }, this); - - if (this._animated) { - map.off({ - 'zoomanim': this._animateZoom, - 'zoomend': this._endZoomAnim - }, this); - } - - if (!this.options.updateWhenIdle) { - map.off('move', this._limitedUpdate, this); - } - - this._container = null; - this._map = null; - }, - - bringToFront: function () { - var pane = this._map._panes.tilePane; - - if (this._container) { - pane.appendChild(this._container); - this._setAutoZIndex(pane, Math.max); - } - - return this; - }, - - bringToBack: function () { - var pane = this._map._panes.tilePane; - - if (this._container) { - pane.insertBefore(this._container, pane.firstChild); - this._setAutoZIndex(pane, Math.min); - } - - return this; - }, - - getAttribution: function () { - return this.options.attribution; - }, - - getContainer: function () { - return this._container; - }, - - setOpacity: function (opacity) { - this.options.opacity = opacity; - - if (this._map) { - this._updateOpacity(); - } - - return this; - }, - - setZIndex: function (zIndex) { - this.options.zIndex = zIndex; - this._updateZIndex(); - - return this; - }, - - setUrl: function (url, noRedraw) { - this._url = url; - - if (!noRedraw) { - this.redraw(); - } - - return this; - }, - - redraw: function () { - if (this._map) { - this._reset({hard: true}); - this._update(); - } - return this; - }, - - _updateZIndex: function () { - if (this._container && this.options.zIndex !== undefined) { - this._container.style.zIndex = this.options.zIndex; - } - }, - - _setAutoZIndex: function (pane, compare) { - - var layers = pane.children, - edgeZIndex = -compare(Infinity, -Infinity), // -Infinity for max, Infinity for min - zIndex, i, len; - - for (i = 0, len = layers.length; i < len; i++) { - - if (layers[i] !== this._container) { - zIndex = parseInt(layers[i].style.zIndex, 10); - - if (!isNaN(zIndex)) { - edgeZIndex = compare(edgeZIndex, zIndex); - } - } - } - - this.options.zIndex = this._container.style.zIndex = - (isFinite(edgeZIndex) ? edgeZIndex : 0) + compare(1, -1); - }, - - _updateOpacity: function () { - var i, - tiles = this._tiles; - - if (L.Browser.ielt9) { - for (i in tiles) { - L.DomUtil.setOpacity(tiles[i], this.options.opacity); - } - } else { - L.DomUtil.setOpacity(this._container, this.options.opacity); - } - }, - - _initContainer: function () { - var tilePane = this._map._panes.tilePane; - - if (!this._container) { - this._container = L.DomUtil.create('div', 'leaflet-layer'); - - this._updateZIndex(); - - if (this._animated) { - var className = 'leaflet-tile-container'; - - this._bgBuffer = L.DomUtil.create('div', className, this._container); - this._tileContainer = L.DomUtil.create('div', className, this._container); - - } else { - this._tileContainer = this._container; - } - - tilePane.appendChild(this._container); - - if (this.options.opacity < 1) { - this._updateOpacity(); - } - } - }, - - _reset: function (e) { - for (var key in this._tiles) { - this.fire('tileunload', {tile: this._tiles[key]}); - } - - this._tiles = {}; - this._tilesToLoad = 0; - - if (this.options.reuseTiles) { - this._unusedTiles = []; - } - - this._tileContainer.innerHTML = ''; - - if (this._animated && e && e.hard) { - this._clearBgBuffer(); - } - - this._initContainer(); - }, - - _getTileSize: function () { - var map = this._map, - zoom = map.getZoom() + this.options.zoomOffset, - zoomN = this.options.maxNativeZoom, - tileSize = this.options.tileSize; - - if (zoomN && zoom > zoomN) { - tileSize = Math.round(map.getZoomScale(zoom) / map.getZoomScale(zoomN) * tileSize); - } - - return tileSize; - }, - - _update: function () { - - if (!this._map) { return; } - - var map = this._map, - bounds = map.getPixelBounds(), - zoom = map.getZoom(), - tileSize = this._getTileSize(); - - if (zoom > this.options.maxZoom || zoom < this.options.minZoom) { - return; - } - - var tileBounds = L.bounds( - bounds.min.divideBy(tileSize)._floor(), - bounds.max.divideBy(tileSize)._floor()); - - this._addTilesFromCenterOut(tileBounds); - - if (this.options.unloadInvisibleTiles || this.options.reuseTiles) { - this._removeOtherTiles(tileBounds); - } - }, - - _addTilesFromCenterOut: function (bounds) { - var queue = [], - center = bounds.getCenter(); - - var j, i, point; - - for (j = bounds.min.y; j <= bounds.max.y; j++) { - for (i = bounds.min.x; i <= bounds.max.x; i++) { - point = new L.Point(i, j); - - if (this._tileShouldBeLoaded(point)) { - queue.push(point); - } - } - } - - var tilesToLoad = queue.length; - - if (tilesToLoad === 0) { return; } - - // load tiles in order of their distance to center - queue.sort(function (a, b) { - return a.distanceTo(center) - b.distanceTo(center); - }); - - var fragment = document.createDocumentFragment(); - - // if its the first batch of tiles to load - if (!this._tilesToLoad) { - this.fire('loading'); - } - - this._tilesToLoad += tilesToLoad; - - for (i = 0; i < tilesToLoad; i++) { - this._addTile(queue[i], fragment); - } - - this._tileContainer.appendChild(fragment); - }, - - _tileShouldBeLoaded: function (tilePoint) { - if ((tilePoint.x + ':' + tilePoint.y) in this._tiles) { - return false; // already loaded - } - - var options = this.options; - - if (!options.continuousWorld) { - var limit = this._getWrapTileNum(); - - // don't load if exceeds world bounds - if ((options.noWrap && (tilePoint.x < 0 || tilePoint.x >= limit.x)) || - tilePoint.y < 0 || tilePoint.y >= limit.y) { return false; } - } - - if (options.bounds) { - var tileSize = this._getTileSize(), - nwPoint = tilePoint.multiplyBy(tileSize), - sePoint = nwPoint.add([tileSize, tileSize]), - nw = this._map.unproject(nwPoint), - se = this._map.unproject(sePoint); - - // TODO temporary hack, will be removed after refactoring projections - // https://github.com/Leaflet/Leaflet/issues/1618 - if (!options.continuousWorld && !options.noWrap) { - nw = nw.wrap(); - se = se.wrap(); - } - - if (!options.bounds.intersects([nw, se])) { return false; } - } - - return true; - }, - - _removeOtherTiles: function (bounds) { - var kArr, x, y, key; - - for (key in this._tiles) { - kArr = key.split(':'); - x = parseInt(kArr[0], 10); - y = parseInt(kArr[1], 10); - - // remove tile if it's out of bounds - if (x < bounds.min.x || x > bounds.max.x || y < bounds.min.y || y > bounds.max.y) { - this._removeTile(key); - } - } - }, - - _removeTile: function (key) { - var tile = this._tiles[key]; - - this.fire('tileunload', {tile: tile, url: tile.src}); - - if (this.options.reuseTiles) { - L.DomUtil.removeClass(tile, 'leaflet-tile-loaded'); - this._unusedTiles.push(tile); - - } else if (tile.parentNode === this._tileContainer) { - this._tileContainer.removeChild(tile); - } - - // for https://github.com/CloudMade/Leaflet/issues/137 - if (!L.Browser.android) { - tile.onload = null; - tile.src = L.Util.emptyImageUrl; - } - - delete this._tiles[key]; - }, - - _addTile: function (tilePoint, container) { - var tilePos = this._getTilePos(tilePoint); - - // get unused tile - or create a new tile - var tile = this._getTile(); - - /* - Chrome 20 layouts much faster with top/left (verify with timeline, frames) - Android 4 browser has display issues with top/left and requires transform instead - (other browsers don't currently care) - see debug/hacks/jitter.html for an example - */ - L.DomUtil.setPosition(tile, tilePos, L.Browser.chrome); - - this._tiles[tilePoint.x + ':' + tilePoint.y] = tile; - - this._loadTile(tile, tilePoint); - - if (tile.parentNode !== this._tileContainer) { - container.appendChild(tile); - } - }, - - _getZoomForUrl: function () { - - var options = this.options, - zoom = this._map.getZoom(); - - if (options.zoomReverse) { - zoom = options.maxZoom - zoom; - } - - zoom += options.zoomOffset; - - return options.maxNativeZoom ? Math.min(zoom, options.maxNativeZoom) : zoom; - }, - - _getTilePos: function (tilePoint) { - var origin = this._map.getPixelOrigin(), - tileSize = this._getTileSize(); - - return tilePoint.multiplyBy(tileSize).subtract(origin); - }, - - // image-specific code (override to implement e.g. Canvas or SVG tile layer) - - getTileUrl: function (tilePoint) { - return L.Util.template(this._url, L.extend({ - s: this._getSubdomain(tilePoint), - z: tilePoint.z, - x: tilePoint.x, - y: tilePoint.y - }, this.options)); - }, - - _getWrapTileNum: function () { - var crs = this._map.options.crs, - size = crs.getSize(this._map.getZoom()); - return size.divideBy(this._getTileSize())._floor(); - }, - - _adjustTilePoint: function (tilePoint) { - - var limit = this._getWrapTileNum(); - - // wrap tile coordinates - if (!this.options.continuousWorld && !this.options.noWrap) { - tilePoint.x = ((tilePoint.x % limit.x) + limit.x) % limit.x; - } - - if (this.options.tms) { - tilePoint.y = limit.y - tilePoint.y - 1; - } - - tilePoint.z = this._getZoomForUrl(); - }, - - _getSubdomain: function (tilePoint) { - var index = Math.abs(tilePoint.x + tilePoint.y) % this.options.subdomains.length; - return this.options.subdomains[index]; - }, - - _getTile: function () { - if (this.options.reuseTiles && this._unusedTiles.length > 0) { - var tile = this._unusedTiles.pop(); - this._resetTile(tile); - return tile; - } - return this._createTile(); - }, - - // Override if data stored on a tile needs to be cleaned up before reuse - _resetTile: function (/*tile*/) {}, - - _createTile: function () { - var tile = L.DomUtil.create('img', 'leaflet-tile'); - tile.style.width = tile.style.height = this._getTileSize() + 'px'; - tile.galleryimg = 'no'; - - tile.onselectstart = tile.onmousemove = L.Util.falseFn; - - if (L.Browser.ielt9 && this.options.opacity !== undefined) { - L.DomUtil.setOpacity(tile, this.options.opacity); - } - // without this hack, tiles disappear after zoom on Chrome for Android - // https://github.com/Leaflet/Leaflet/issues/2078 - if (L.Browser.mobileWebkit3d) { - tile.style.WebkitBackfaceVisibility = 'hidden'; - } - return tile; - }, - - _loadTile: function (tile, tilePoint) { - tile._layer = this; - tile.onload = this._tileOnLoad; - tile.onerror = this._tileOnError; - - this._adjustTilePoint(tilePoint); - tile.src = this.getTileUrl(tilePoint); - - this.fire('tileloadstart', { - tile: tile, - url: tile.src - }); - }, - - _tileLoaded: function () { - this._tilesToLoad--; - - if (this._animated) { - L.DomUtil.addClass(this._tileContainer, 'leaflet-zoom-animated'); - } - - if (!this._tilesToLoad) { - this.fire('load'); - - if (this._animated) { - // clear scaled tiles after all new tiles are loaded (for performance) - clearTimeout(this._clearBgBufferTimer); - this._clearBgBufferTimer = setTimeout(L.bind(this._clearBgBuffer, this), 500); - } - } - }, - - _tileOnLoad: function () { - var layer = this._layer; - - //Only if we are loading an actual image - if (this.src !== L.Util.emptyImageUrl) { - L.DomUtil.addClass(this, 'leaflet-tile-loaded'); - - layer.fire('tileload', { - tile: this, - url: this.src - }); - } - - layer._tileLoaded(); - }, - - _tileOnError: function () { - var layer = this._layer; - - layer.fire('tileerror', { - tile: this, - url: this.src - }); - - var newUrl = layer.options.errorTileUrl; - if (newUrl) { - this.src = newUrl; - } - - layer._tileLoaded(); - } -}); - -L.tileLayer = function (url, options) { - return new L.TileLayer(url, options); -}; - - -/* - * L.TileLayer.WMS is used for putting WMS tile layers on the map. - */ - -L.TileLayer.WMS = L.TileLayer.extend({ - - defaultWmsParams: { - service: 'WMS', - request: 'GetMap', - version: '1.1.1', - layers: '', - styles: '', - format: 'image/jpeg', - transparent: false - }, - - initialize: function (url, options) { // (String, Object) - - this._url = url; - - var wmsParams = L.extend({}, this.defaultWmsParams), - tileSize = options.tileSize || this.options.tileSize; - - if (options.detectRetina && L.Browser.retina) { - wmsParams.width = wmsParams.height = tileSize * 2; - } else { - wmsParams.width = wmsParams.height = tileSize; - } - - for (var i in options) { - // all keys that are not TileLayer options go to WMS params - if (!this.options.hasOwnProperty(i) && i !== 'crs') { - wmsParams[i] = options[i]; - } - } - - this.wmsParams = wmsParams; - - L.setOptions(this, options); - }, - - onAdd: function (map) { - - this._crs = this.options.crs || map.options.crs; - - this._wmsVersion = parseFloat(this.wmsParams.version); - - var projectionKey = this._wmsVersion >= 1.3 ? 'crs' : 'srs'; - this.wmsParams[projectionKey] = this._crs.code; - - L.TileLayer.prototype.onAdd.call(this, map); - }, - - getTileUrl: function (tilePoint) { // (Point, Number) -> String - - var map = this._map, - tileSize = this.options.tileSize, - - nwPoint = tilePoint.multiplyBy(tileSize), - sePoint = nwPoint.add([tileSize, tileSize]), - - nw = this._crs.project(map.unproject(nwPoint, tilePoint.z)), - se = this._crs.project(map.unproject(sePoint, tilePoint.z)), - bbox = this._wmsVersion >= 1.3 && this._crs === L.CRS.EPSG4326 ? - [se.y, nw.x, nw.y, se.x].join(',') : - [nw.x, se.y, se.x, nw.y].join(','), - - url = L.Util.template(this._url, {s: this._getSubdomain(tilePoint)}); - - return url + L.Util.getParamString(this.wmsParams, url, true) + '&BBOX=' + bbox; - }, - - setParams: function (params, noRedraw) { - - L.extend(this.wmsParams, params); - - if (!noRedraw) { - this.redraw(); - } - - return this; - } -}); - -L.tileLayer.wms = function (url, options) { - return new L.TileLayer.WMS(url, options); -}; - - -/* - * L.TileLayer.Canvas is a class that you can use as a base for creating - * dynamically drawn Canvas-based tile layers. - */ - -L.TileLayer.Canvas = L.TileLayer.extend({ - options: { - async: false - }, - - initialize: function (options) { - L.setOptions(this, options); - }, - - redraw: function () { - if (this._map) { - this._reset({hard: true}); - this._update(); - } - - for (var i in this._tiles) { - this._redrawTile(this._tiles[i]); - } - return this; - }, - - _redrawTile: function (tile) { - this.drawTile(tile, tile._tilePoint, this._map._zoom); - }, - - _createTile: function () { - var tile = L.DomUtil.create('canvas', 'leaflet-tile'); - tile.width = tile.height = this.options.tileSize; - tile.onselectstart = tile.onmousemove = L.Util.falseFn; - return tile; - }, - - _loadTile: function (tile, tilePoint) { - tile._layer = this; - tile._tilePoint = tilePoint; - - this._redrawTile(tile); - - if (!this.options.async) { - this.tileDrawn(tile); - } - }, - - drawTile: function (/*tile, tilePoint*/) { - // override with rendering code - }, - - tileDrawn: function (tile) { - this._tileOnLoad.call(tile); - } -}); - - -L.tileLayer.canvas = function (options) { - return new L.TileLayer.Canvas(options); -}; - - -/* - * L.ImageOverlay is used to overlay images over the map (to specific geographical bounds). - */ - -L.ImageOverlay = L.Class.extend({ - includes: L.Mixin.Events, - - options: { - opacity: 1 - }, - - initialize: function (url, bounds, options) { // (String, LatLngBounds, Object) - this._url = url; - this._bounds = L.latLngBounds(bounds); - - L.setOptions(this, options); - }, - - onAdd: function (map) { - this._map = map; - - if (!this._image) { - this._initImage(); - } - - map._panes.overlayPane.appendChild(this._image); - - map.on('viewreset', this._reset, this); - - if (map.options.zoomAnimation && L.Browser.any3d) { - map.on('zoomanim', this._animateZoom, this); - } - - this._reset(); - }, - - onRemove: function (map) { - map.getPanes().overlayPane.removeChild(this._image); - - map.off('viewreset', this._reset, this); - - if (map.options.zoomAnimation) { - map.off('zoomanim', this._animateZoom, this); - } - }, - - addTo: function (map) { - map.addLayer(this); - return this; - }, - - setOpacity: function (opacity) { - this.options.opacity = opacity; - this._updateOpacity(); - return this; - }, - - // TODO remove bringToFront/bringToBack duplication from TileLayer/Path - bringToFront: function () { - if (this._image) { - this._map._panes.overlayPane.appendChild(this._image); - } - return this; - }, - - bringToBack: function () { - var pane = this._map._panes.overlayPane; - if (this._image) { - pane.insertBefore(this._image, pane.firstChild); - } - return this; - }, - - setUrl: function (url) { - this._url = url; - this._image.src = this._url; - }, - - getAttribution: function () { - return this.options.attribution; - }, - - _initImage: function () { - this._image = L.DomUtil.create('img', 'leaflet-image-layer'); - - if (this._map.options.zoomAnimation && L.Browser.any3d) { - L.DomUtil.addClass(this._image, 'leaflet-zoom-animated'); - } else { - L.DomUtil.addClass(this._image, 'leaflet-zoom-hide'); - } - - this._updateOpacity(); - - //TODO createImage util method to remove duplication - L.extend(this._image, { - galleryimg: 'no', - onselectstart: L.Util.falseFn, - onmousemove: L.Util.falseFn, - onload: L.bind(this._onImageLoad, this), - src: this._url - }); - }, - - _animateZoom: function (e) { - var map = this._map, - image = this._image, - scale = map.getZoomScale(e.zoom), - nw = this._bounds.getNorthWest(), - se = this._bounds.getSouthEast(), - - topLeft = map._latLngToNewLayerPoint(nw, e.zoom, e.center), - size = map._latLngToNewLayerPoint(se, e.zoom, e.center)._subtract(topLeft), - origin = topLeft._add(size._multiplyBy((1 / 2) * (1 - 1 / scale))); - - image.style[L.DomUtil.TRANSFORM] = - L.DomUtil.getTranslateString(origin) + ' scale(' + scale + ') '; - }, - - _reset: function () { - var image = this._image, - topLeft = this._map.latLngToLayerPoint(this._bounds.getNorthWest()), - size = this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(topLeft); - - L.DomUtil.setPosition(image, topLeft); - - image.style.width = size.x + 'px'; - image.style.height = size.y + 'px'; - }, - - _onImageLoad: function () { - this.fire('load'); - }, - - _updateOpacity: function () { - L.DomUtil.setOpacity(this._image, this.options.opacity); - } -}); - -L.imageOverlay = function (url, bounds, options) { - return new L.ImageOverlay(url, bounds, options); -}; - - -/* - * L.Icon is an image-based icon class that you can use with L.Marker for custom markers. - */ - -L.Icon = L.Class.extend({ - options: { - /* - iconUrl: (String) (required) - iconRetinaUrl: (String) (optional, used for retina devices if detected) - iconSize: (Point) (can be set through CSS) - iconAnchor: (Point) (centered by default, can be set in CSS with negative margins) - popupAnchor: (Point) (if not specified, popup opens in the anchor point) - shadowUrl: (String) (no shadow by default) - shadowRetinaUrl: (String) (optional, used for retina devices if detected) - shadowSize: (Point) - shadowAnchor: (Point) - */ - className: '' - }, - - initialize: function (options) { - L.setOptions(this, options); - }, - - createIcon: function (oldIcon) { - return this._createIcon('icon', oldIcon); - }, - - createShadow: function (oldIcon) { - return this._createIcon('shadow', oldIcon); - }, - - _createIcon: function (name, oldIcon) { - var src = this._getIconUrl(name); - - if (!src) { - if (name === 'icon') { - throw new Error('iconUrl not set in Icon options (see the docs).'); - } - return null; - } - - var img; - if (!oldIcon || oldIcon.tagName !== 'IMG') { - img = this._createImg(src); - } else { - img = this._createImg(src, oldIcon); - } - this._setIconStyles(img, name); - - return img; - }, - - _setIconStyles: function (img, name) { - var options = this.options, - size = L.point(options[name + 'Size']), - anchor; - - if (name === 'shadow') { - anchor = L.point(options.shadowAnchor || options.iconAnchor); - } else { - anchor = L.point(options.iconAnchor); - } - - if (!anchor && size) { - anchor = size.divideBy(2, true); - } - - img.className = 'leaflet-marker-' + name + ' ' + options.className; - - if (anchor) { - img.style.marginLeft = (-anchor.x) + 'px'; - img.style.marginTop = (-anchor.y) + 'px'; - } - - if (size) { - img.style.width = size.x + 'px'; - img.style.height = size.y + 'px'; - } - }, - - _createImg: function (src, el) { - el = el || document.createElement('img'); - el.src = src; - return el; - }, - - _getIconUrl: function (name) { - if (L.Browser.retina && this.options[name + 'RetinaUrl']) { - return this.options[name + 'RetinaUrl']; - } - return this.options[name + 'Url']; - } -}); - -L.icon = function (options) { - return new L.Icon(options); -}; - - -/* - * L.Icon.Default is the blue marker icon used by default in Leaflet. - */ - -L.Icon.Default = L.Icon.extend({ - - options: { - iconSize: [25, 41], - iconAnchor: [12, 41], - popupAnchor: [1, -34], - - shadowSize: [41, 41] - }, - - _getIconUrl: function (name) { - var key = name + 'Url'; - - if (this.options[key]) { - return this.options[key]; - } - - if (L.Browser.retina && name === 'icon') { - name += '-2x'; - } - - var path = L.Icon.Default.imagePath; - - if (!path) { - throw new Error('Couldn\'t autodetect L.Icon.Default.imagePath, set it manually.'); - } - - return path + '/marker-' + name + '.png'; - } -}); - -L.Icon.Default.imagePath = (function () { - var scripts = document.getElementsByTagName('script'), - leafletRe = /[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/; - - var i, len, src, matches, path; - - for (i = 0, len = scripts.length; i < len; i++) { - src = scripts[i].src; - matches = src.match(leafletRe); - - if (matches) { - path = src.split(leafletRe)[0]; - return (path ? path + '/' : '') + 'images'; - } - } -}()); - - -/* - * L.Marker is used to display clickable/draggable icons on the map. - */ - -L.Marker = L.Class.extend({ - - includes: L.Mixin.Events, - - options: { - icon: new L.Icon.Default(), - title: '', - alt: '', - clickable: true, - draggable: false, - keyboard: true, - zIndexOffset: 0, - opacity: 1, - riseOnHover: false, - riseOffset: 250 - }, - - initialize: function (latlng, options) { - L.setOptions(this, options); - this._latlng = L.latLng(latlng); - }, - - onAdd: function (map) { - this._map = map; - - map.on('viewreset', this.update, this); - - this._initIcon(); - this.update(); - this.fire('add'); - - if (map.options.zoomAnimation && map.options.markerZoomAnimation) { - map.on('zoomanim', this._animateZoom, this); - } - }, - - addTo: function (map) { - map.addLayer(this); - return this; - }, - - onRemove: function (map) { - if (this.dragging) { - this.dragging.disable(); - } - - this._removeIcon(); - this._removeShadow(); - - this.fire('remove'); - - map.off({ - 'viewreset': this.update, - 'zoomanim': this._animateZoom - }, this); - - this._map = null; - }, - - getLatLng: function () { - return this._latlng; - }, - - setLatLng: function (latlng) { - this._latlng = L.latLng(latlng); - - this.update(); - - return this.fire('move', { latlng: this._latlng }); - }, - - setZIndexOffset: function (offset) { - this.options.zIndexOffset = offset; - this.update(); - - return this; - }, - - setIcon: function (icon) { - - this.options.icon = icon; - - if (this._map) { - this._initIcon(); - this.update(); - } - - if (this._popup) { - this.bindPopup(this._popup); - } - - return this; - }, - - update: function () { - if (this._icon) { - this._setPos(this._map.latLngToLayerPoint(this._latlng).round()); - } - return this; - }, - - _initIcon: function () { - var options = this.options, - map = this._map, - animation = (map.options.zoomAnimation && map.options.markerZoomAnimation), - classToAdd = animation ? 'leaflet-zoom-animated' : 'leaflet-zoom-hide'; - - var icon = options.icon.createIcon(this._icon), - addIcon = false; - - // if we're not reusing the icon, remove the old one and init new one - if (icon !== this._icon) { - if (this._icon) { - this._removeIcon(); - } - addIcon = true; - - if (options.title) { - icon.title = options.title; - } - - if (options.alt) { - icon.alt = options.alt; - } - } - - L.DomUtil.addClass(icon, classToAdd); - - if (options.keyboard) { - icon.tabIndex = '0'; - } - - this._icon = icon; - - this._initInteraction(); - - if (options.riseOnHover) { - L.DomEvent - .on(icon, 'mouseover', this._bringToFront, this) - .on(icon, 'mouseout', this._resetZIndex, this); - } - - var newShadow = options.icon.createShadow(this._shadow), - addShadow = false; - - if (newShadow !== this._shadow) { - this._removeShadow(); - addShadow = true; - } - - if (newShadow) { - L.DomUtil.addClass(newShadow, classToAdd); - } - this._shadow = newShadow; - - - if (options.opacity < 1) { - this._updateOpacity(); - } - - - var panes = this._map._panes; - - if (addIcon) { - panes.markerPane.appendChild(this._icon); - } - - if (newShadow && addShadow) { - panes.shadowPane.appendChild(this._shadow); - } - }, - - _removeIcon: function () { - if (this.options.riseOnHover) { - L.DomEvent - .off(this._icon, 'mouseover', this._bringToFront) - .off(this._icon, 'mouseout', this._resetZIndex); - } - - this._map._panes.markerPane.removeChild(this._icon); - - this._icon = null; - }, - - _removeShadow: function () { - if (this._shadow) { - this._map._panes.shadowPane.removeChild(this._shadow); - } - this._shadow = null; - }, - - _setPos: function (pos) { - L.DomUtil.setPosition(this._icon, pos); - - if (this._shadow) { - L.DomUtil.setPosition(this._shadow, pos); - } - - this._zIndex = pos.y + this.options.zIndexOffset; - - this._resetZIndex(); - }, - - _updateZIndex: function (offset) { - this._icon.style.zIndex = this._zIndex + offset; - }, - - _animateZoom: function (opt) { - var pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round(); - - this._setPos(pos); - }, - - _initInteraction: function () { - - if (!this.options.clickable) { return; } - - // TODO refactor into something shared with Map/Path/etc. to DRY it up - - var icon = this._icon, - events = ['dblclick', 'mousedown', 'mouseover', 'mouseout', 'contextmenu']; - - L.DomUtil.addClass(icon, 'leaflet-clickable'); - L.DomEvent.on(icon, 'click', this._onMouseClick, this); - L.DomEvent.on(icon, 'keypress', this._onKeyPress, this); - - for (var i = 0; i < events.length; i++) { - L.DomEvent.on(icon, events[i], this._fireMouseEvent, this); - } - - if (L.Handler.MarkerDrag) { - this.dragging = new L.Handler.MarkerDrag(this); - - if (this.options.draggable) { - this.dragging.enable(); - } - } - }, - - _onMouseClick: function (e) { - var wasDragged = this.dragging && this.dragging.moved(); - - if (this.hasEventListeners(e.type) || wasDragged) { - L.DomEvent.stopPropagation(e); - } - - if (wasDragged) { return; } - - if ((!this.dragging || !this.dragging._enabled) && this._map.dragging && this._map.dragging.moved()) { return; } - - this.fire(e.type, { - originalEvent: e, - latlng: this._latlng - }); - }, - - _onKeyPress: function (e) { - if (e.keyCode === 13) { - this.fire('click', { - originalEvent: e, - latlng: this._latlng - }); - } - }, - - _fireMouseEvent: function (e) { - - this.fire(e.type, { - originalEvent: e, - latlng: this._latlng - }); - - // TODO proper custom event propagation - // this line will always be called if marker is in a FeatureGroup - if (e.type === 'contextmenu' && this.hasEventListeners(e.type)) { - L.DomEvent.preventDefault(e); - } - if (e.type !== 'mousedown') { - L.DomEvent.stopPropagation(e); - } else { - L.DomEvent.preventDefault(e); - } - }, - - setOpacity: function (opacity) { - this.options.opacity = opacity; - if (this._map) { - this._updateOpacity(); - } - - return this; - }, - - _updateOpacity: function () { - L.DomUtil.setOpacity(this._icon, this.options.opacity); - if (this._shadow) { - L.DomUtil.setOpacity(this._shadow, this.options.opacity); - } - }, - - _bringToFront: function () { - this._updateZIndex(this.options.riseOffset); - }, - - _resetZIndex: function () { - this._updateZIndex(0); - } -}); - -L.marker = function (latlng, options) { - return new L.Marker(latlng, options); -}; - - -/* - * L.DivIcon is a lightweight HTML-based icon class (as opposed to the image-based L.Icon) - * to use with L.Marker. - */ - -L.DivIcon = L.Icon.extend({ - options: { - iconSize: [12, 12], // also can be set through CSS - /* - iconAnchor: (Point) - popupAnchor: (Point) - html: (String) - bgPos: (Point) - */ - className: 'leaflet-div-icon', - html: false - }, - - createIcon: function (oldIcon) { - var div = (oldIcon && oldIcon.tagName === 'DIV') ? oldIcon : document.createElement('div'), - options = this.options; - - if (options.html !== false) { - div.innerHTML = options.html; - } else { - div.innerHTML = ''; - } - - if (options.bgPos) { - div.style.backgroundPosition = - (-options.bgPos.x) + 'px ' + (-options.bgPos.y) + 'px'; - } - - this._setIconStyles(div, 'icon'); - return div; - }, - - createShadow: function () { - return null; - } -}); - -L.divIcon = function (options) { - return new L.DivIcon(options); -}; - - -/* - * L.Popup is used for displaying popups on the map. - */ - -L.Map.mergeOptions({ - closePopupOnClick: true -}); - -L.Popup = L.Class.extend({ - includes: L.Mixin.Events, - - options: { - minWidth: 50, - maxWidth: 300, - // maxHeight: null, - autoPan: true, - closeButton: true, - offset: [0, 7], - autoPanPadding: [5, 5], - // autoPanPaddingTopLeft: null, - // autoPanPaddingBottomRight: null, - keepInView: false, - className: '', - zoomAnimation: true - }, - - initialize: function (options, source) { - L.setOptions(this, options); - - this._source = source; - this._animated = L.Browser.any3d && this.options.zoomAnimation; - this._isOpen = false; - }, - - onAdd: function (map) { - this._map = map; - - if (!this._container) { - this._initLayout(); - } - - var animFade = map.options.fadeAnimation; - - if (animFade) { - L.DomUtil.setOpacity(this._container, 0); - } - map._panes.popupPane.appendChild(this._container); - - map.on(this._getEvents(), this); - - this.update(); - - if (animFade) { - L.DomUtil.setOpacity(this._container, 1); - } - - this.fire('open'); - - map.fire('popupopen', {popup: this}); - - if (this._source) { - this._source.fire('popupopen', {popup: this}); - } - }, - - addTo: function (map) { - map.addLayer(this); - return this; - }, - - openOn: function (map) { - map.openPopup(this); - return this; - }, - - onRemove: function (map) { - map._panes.popupPane.removeChild(this._container); - - L.Util.falseFn(this._container.offsetWidth); // force reflow - - map.off(this._getEvents(), this); - - if (map.options.fadeAnimation) { - L.DomUtil.setOpacity(this._container, 0); - } - - this._map = null; - - this.fire('close'); - - map.fire('popupclose', {popup: this}); - - if (this._source) { - this._source.fire('popupclose', {popup: this}); - } - }, - - getLatLng: function () { - return this._latlng; - }, - - setLatLng: function (latlng) { - this._latlng = L.latLng(latlng); - if (this._map) { - this._updatePosition(); - this._adjustPan(); - } - return this; - }, - - getContent: function () { - return this._content; - }, - - setContent: function (content) { - this._content = content; - this.update(); - return this; - }, - - update: function () { - if (!this._map) { return; } - - this._container.style.visibility = 'hidden'; - - this._updateContent(); - this._updateLayout(); - this._updatePosition(); - - this._container.style.visibility = ''; - - this._adjustPan(); - }, - - _getEvents: function () { - var events = { - viewreset: this._updatePosition - }; - - if (this._animated) { - events.zoomanim = this._zoomAnimation; - } - if ('closeOnClick' in this.options ? this.options.closeOnClick : this._map.options.closePopupOnClick) { - events.preclick = this._close; - } - if (this.options.keepInView) { - events.moveend = this._adjustPan; - } - - return events; - }, - - _close: function () { - if (this._map) { - this._map.closePopup(this); - } - }, - - _initLayout: function () { - var prefix = 'leaflet-popup', - containerClass = prefix + ' ' + this.options.className + ' leaflet-zoom-' + - (this._animated ? 'animated' : 'hide'), - container = this._container = L.DomUtil.create('div', containerClass), - closeButton; - - if (this.options.closeButton) { - closeButton = this._closeButton = - L.DomUtil.create('a', prefix + '-close-button', container); - closeButton.href = '#close'; - closeButton.innerHTML = '×'; - L.DomEvent.disableClickPropagation(closeButton); - - L.DomEvent.on(closeButton, 'click', this._onCloseButtonClick, this); - } - - var wrapper = this._wrapper = - L.DomUtil.create('div', prefix + '-content-wrapper', container); - L.DomEvent.disableClickPropagation(wrapper); - - this._contentNode = L.DomUtil.create('div', prefix + '-content', wrapper); - - L.DomEvent.disableScrollPropagation(this._contentNode); - L.DomEvent.on(wrapper, 'contextmenu', L.DomEvent.stopPropagation); - - this._tipContainer = L.DomUtil.create('div', prefix + '-tip-container', container); - this._tip = L.DomUtil.create('div', prefix + '-tip', this._tipContainer); - }, - - _updateContent: function () { - if (!this._content) { return; } - - if (typeof this._content === 'string') { - this._contentNode.innerHTML = this._content; - } else { - while (this._contentNode.hasChildNodes()) { - this._contentNode.removeChild(this._contentNode.firstChild); - } - this._contentNode.appendChild(this._content); - } - this.fire('contentupdate'); - }, - - _updateLayout: function () { - var container = this._contentNode, - style = container.style; - - style.width = ''; - style.whiteSpace = 'nowrap'; - - var width = container.offsetWidth; - width = Math.min(width, this.options.maxWidth); - width = Math.max(width, this.options.minWidth); - - style.width = (width + 1) + 'px'; - style.whiteSpace = ''; - - style.height = ''; - - var height = container.offsetHeight, - maxHeight = this.options.maxHeight, - scrolledClass = 'leaflet-popup-scrolled'; - - if (maxHeight && height > maxHeight) { - style.height = maxHeight + 'px'; - L.DomUtil.addClass(container, scrolledClass); - } else { - L.DomUtil.removeClass(container, scrolledClass); - } - - this._containerWidth = this._container.offsetWidth; - }, - - _updatePosition: function () { - if (!this._map) { return; } - - var pos = this._map.latLngToLayerPoint(this._latlng), - animated = this._animated, - offset = L.point(this.options.offset); - - if (animated) { - L.DomUtil.setPosition(this._container, pos); - } - - this._containerBottom = -offset.y - (animated ? 0 : pos.y); - this._containerLeft = -Math.round(this._containerWidth / 2) + offset.x + (animated ? 0 : pos.x); - - // bottom position the popup in case the height of the popup changes (images loading etc) - this._container.style.bottom = this._containerBottom + 'px'; - this._container.style.left = this._containerLeft + 'px'; - }, - - _zoomAnimation: function (opt) { - var pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center); - - L.DomUtil.setPosition(this._container, pos); - }, - - _adjustPan: function () { - if (!this.options.autoPan) { return; } - - var map = this._map, - containerHeight = this._container.offsetHeight, - containerWidth = this._containerWidth, - - layerPos = new L.Point(this._containerLeft, -containerHeight - this._containerBottom); - - if (this._animated) { - layerPos._add(L.DomUtil.getPosition(this._container)); - } - - var containerPos = map.layerPointToContainerPoint(layerPos), - padding = L.point(this.options.autoPanPadding), - paddingTL = L.point(this.options.autoPanPaddingTopLeft || padding), - paddingBR = L.point(this.options.autoPanPaddingBottomRight || padding), - size = map.getSize(), - dx = 0, - dy = 0; - - if (containerPos.x + containerWidth + paddingBR.x > size.x) { // right - dx = containerPos.x + containerWidth - size.x + paddingBR.x; - } - if (containerPos.x - dx - paddingTL.x < 0) { // left - dx = containerPos.x - paddingTL.x; - } - if (containerPos.y + containerHeight + paddingBR.y > size.y) { // bottom - dy = containerPos.y + containerHeight - size.y + paddingBR.y; - } - if (containerPos.y - dy - paddingTL.y < 0) { // top - dy = containerPos.y - paddingTL.y; - } - - if (dx || dy) { - map - .fire('autopanstart') - .panBy([dx, dy]); - } - }, - - _onCloseButtonClick: function (e) { - this._close(); - L.DomEvent.stop(e); - } -}); - -L.popup = function (options, source) { - return new L.Popup(options, source); -}; - - -L.Map.include({ - openPopup: function (popup, latlng, options) { // (Popup) or (String || HTMLElement, LatLng[, Object]) - this.closePopup(); - - if (!(popup instanceof L.Popup)) { - var content = popup; - - popup = new L.Popup(options) - .setLatLng(latlng) - .setContent(content); - } - popup._isOpen = true; - - this._popup = popup; - return this.addLayer(popup); - }, - - closePopup: function (popup) { - if (!popup || popup === this._popup) { - popup = this._popup; - this._popup = null; - } - if (popup) { - this.removeLayer(popup); - popup._isOpen = false; - } - return this; - } -}); - - -/* - * Popup extension to L.Marker, adding popup-related methods. - */ - -L.Marker.include({ - openPopup: function () { - if (this._popup && this._map && !this._map.hasLayer(this._popup)) { - this._popup.setLatLng(this._latlng); - this._map.openPopup(this._popup); - } - - return this; - }, - - closePopup: function () { - if (this._popup) { - this._popup._close(); - } - return this; - }, - - togglePopup: function () { - if (this._popup) { - if (this._popup._isOpen) { - this.closePopup(); - } else { - this.openPopup(); - } - } - return this; - }, - - bindPopup: function (content, options) { - var anchor = L.point(this.options.icon.options.popupAnchor || [0, 0]); - - anchor = anchor.add(L.Popup.prototype.options.offset); - - if (options && options.offset) { - anchor = anchor.add(options.offset); - } - - options = L.extend({offset: anchor}, options); - - if (!this._popupHandlersAdded) { - this - .on('click', this.togglePopup, this) - .on('remove', this.closePopup, this) - .on('move', this._movePopup, this); - this._popupHandlersAdded = true; - } - - if (content instanceof L.Popup) { - L.setOptions(content, options); - this._popup = content; - content._source = this; - } else { - this._popup = new L.Popup(options, this) - .setContent(content); - } - - return this; - }, - - setPopupContent: function (content) { - if (this._popup) { - this._popup.setContent(content); - } - return this; - }, - - unbindPopup: function () { - if (this._popup) { - this._popup = null; - this - .off('click', this.togglePopup, this) - .off('remove', this.closePopup, this) - .off('move', this._movePopup, this); - this._popupHandlersAdded = false; - } - return this; - }, - - getPopup: function () { - return this._popup; - }, - - _movePopup: function (e) { - this._popup.setLatLng(e.latlng); - } -}); - - -/* - * L.LayerGroup is a class to combine several layers into one so that - * you can manipulate the group (e.g. add/remove it) as one layer. - */ - -L.LayerGroup = L.Class.extend({ - initialize: function (layers) { - this._layers = {}; - - var i, len; - - if (layers) { - for (i = 0, len = layers.length; i < len; i++) { - this.addLayer(layers[i]); - } - } - }, - - addLayer: function (layer) { - var id = this.getLayerId(layer); - - this._layers[id] = layer; - - if (this._map) { - this._map.addLayer(layer); - } - - return this; - }, - - removeLayer: function (layer) { - var id = layer in this._layers ? layer : this.getLayerId(layer); - - if (this._map && this._layers[id]) { - this._map.removeLayer(this._layers[id]); - } - - delete this._layers[id]; - - return this; - }, - - hasLayer: function (layer) { - if (!layer) { return false; } - - return (layer in this._layers || this.getLayerId(layer) in this._layers); - }, - - clearLayers: function () { - this.eachLayer(this.removeLayer, this); - return this; - }, - - invoke: function (methodName) { - var args = Array.prototype.slice.call(arguments, 1), - i, layer; - - for (i in this._layers) { - layer = this._layers[i]; - - if (layer[methodName]) { - layer[methodName].apply(layer, args); - } - } - - return this; - }, - - onAdd: function (map) { - this._map = map; - this.eachLayer(map.addLayer, map); - }, - - onRemove: function (map) { - this.eachLayer(map.removeLayer, map); - this._map = null; - }, - - addTo: function (map) { - map.addLayer(this); - return this; - }, - - eachLayer: function (method, context) { - for (var i in this._layers) { - method.call(context, this._layers[i]); - } - return this; - }, - - getLayer: function (id) { - return this._layers[id]; - }, - - getLayers: function () { - var layers = []; - - for (var i in this._layers) { - layers.push(this._layers[i]); - } - return layers; - }, - - setZIndex: function (zIndex) { - return this.invoke('setZIndex', zIndex); - }, - - getLayerId: function (layer) { - return L.stamp(layer); - } -}); - -L.layerGroup = function (layers) { - return new L.LayerGroup(layers); -}; - - -/* - * L.FeatureGroup extends L.LayerGroup by introducing mouse events and additional methods - * shared between a group of interactive layers (like vectors or markers). - */ - -L.FeatureGroup = L.LayerGroup.extend({ - includes: L.Mixin.Events, - - statics: { - EVENTS: 'click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose' - }, - - addLayer: function (layer) { - if (this.hasLayer(layer)) { - return this; - } - - if ('on' in layer) { - layer.on(L.FeatureGroup.EVENTS, this._propagateEvent, this); - } - - L.LayerGroup.prototype.addLayer.call(this, layer); - - if (this._popupContent && layer.bindPopup) { - layer.bindPopup(this._popupContent, this._popupOptions); - } - - return this.fire('layeradd', {layer: layer}); - }, - - removeLayer: function (layer) { - if (!this.hasLayer(layer)) { - return this; - } - if (layer in this._layers) { - layer = this._layers[layer]; - } - - if ('off' in layer) { - layer.off(L.FeatureGroup.EVENTS, this._propagateEvent, this); - } - - L.LayerGroup.prototype.removeLayer.call(this, layer); - - if (this._popupContent) { - this.invoke('unbindPopup'); - } - - return this.fire('layerremove', {layer: layer}); - }, - - bindPopup: function (content, options) { - this._popupContent = content; - this._popupOptions = options; - return this.invoke('bindPopup', content, options); - }, - - openPopup: function (latlng) { - // open popup on the first layer - for (var id in this._layers) { - this._layers[id].openPopup(latlng); - break; - } - return this; - }, - - setStyle: function (style) { - return this.invoke('setStyle', style); - }, - - bringToFront: function () { - return this.invoke('bringToFront'); - }, - - bringToBack: function () { - return this.invoke('bringToBack'); - }, - - getBounds: function () { - var bounds = new L.LatLngBounds(); - - this.eachLayer(function (layer) { - bounds.extend(layer instanceof L.Marker ? layer.getLatLng() : layer.getBounds()); - }); - - return bounds; - }, - - _propagateEvent: function (e) { - e = L.extend({ - layer: e.target, - target: this - }, e); - this.fire(e.type, e); - } -}); - -L.featureGroup = function (layers) { - return new L.FeatureGroup(layers); -}; - - -/* - * L.Path is a base class for rendering vector paths on a map. Inherited by Polyline, Circle, etc. - */ - -L.Path = L.Class.extend({ - includes: [L.Mixin.Events], - - statics: { - // how much to extend the clip area around the map view - // (relative to its size, e.g. 0.5 is half the screen in each direction) - // set it so that SVG element doesn't exceed 1280px (vectors flicker on dragend if it is) - CLIP_PADDING: (function () { - var max = L.Browser.mobile ? 1280 : 2000, - target = (max / Math.max(window.outerWidth, window.outerHeight) - 1) / 2; - return Math.max(0, Math.min(0.5, target)); - })() - }, - - options: { - stroke: true, - color: '#0033ff', - dashArray: null, - lineCap: null, - lineJoin: null, - weight: 5, - opacity: 0.5, - - fill: false, - fillColor: null, //same as color by default - fillOpacity: 0.2, - - clickable: true - }, - - initialize: function (options) { - L.setOptions(this, options); - }, - - onAdd: function (map) { - this._map = map; - - if (!this._container) { - this._initElements(); - this._initEvents(); - } - - this.projectLatlngs(); - this._updatePath(); - - if (this._container) { - this._map._pathRoot.appendChild(this._container); - } - - this.fire('add'); - - map.on({ - 'viewreset': this.projectLatlngs, - 'moveend': this._updatePath - }, this); - }, - - addTo: function (map) { - map.addLayer(this); - return this; - }, - - onRemove: function (map) { - map._pathRoot.removeChild(this._container); - - // Need to fire remove event before we set _map to null as the event hooks might need the object - this.fire('remove'); - this._map = null; - - if (L.Browser.vml) { - this._container = null; - this._stroke = null; - this._fill = null; - } - - map.off({ - 'viewreset': this.projectLatlngs, - 'moveend': this._updatePath - }, this); - }, - - projectLatlngs: function () { - // do all projection stuff here - }, - - setStyle: function (style) { - L.setOptions(this, style); - - if (this._container) { - this._updateStyle(); - } - - return this; - }, - - redraw: function () { - if (this._map) { - this.projectLatlngs(); - this._updatePath(); - } - return this; - } -}); - -L.Map.include({ - _updatePathViewport: function () { - var p = L.Path.CLIP_PADDING, - size = this.getSize(), - panePos = L.DomUtil.getPosition(this._mapPane), - min = panePos.multiplyBy(-1)._subtract(size.multiplyBy(p)._round()), - max = min.add(size.multiplyBy(1 + p * 2)._round()); - - this._pathViewport = new L.Bounds(min, max); - } -}); - - -/* - * Extends L.Path with SVG-specific rendering code. - */ - -L.Path.SVG_NS = 'http://www.w3.org/2000/svg'; - -L.Browser.svg = !!(document.createElementNS && document.createElementNS(L.Path.SVG_NS, 'svg').createSVGRect); - -L.Path = L.Path.extend({ - statics: { - SVG: L.Browser.svg - }, - - bringToFront: function () { - var root = this._map._pathRoot, - path = this._container; - - if (path && root.lastChild !== path) { - root.appendChild(path); - } - return this; - }, - - bringToBack: function () { - var root = this._map._pathRoot, - path = this._container, - first = root.firstChild; - - if (path && first !== path) { - root.insertBefore(path, first); - } - return this; - }, - - getPathString: function () { - // form path string here - }, - - _createElement: function (name) { - return document.createElementNS(L.Path.SVG_NS, name); - }, - - _initElements: function () { - this._map._initPathRoot(); - this._initPath(); - this._initStyle(); - }, - - _initPath: function () { - this._container = this._createElement('g'); - - this._path = this._createElement('path'); - - if (this.options.className) { - L.DomUtil.addClass(this._path, this.options.className); - } - - this._container.appendChild(this._path); - }, - - _initStyle: function () { - if (this.options.stroke) { - this._path.setAttribute('stroke-linejoin', 'round'); - this._path.setAttribute('stroke-linecap', 'round'); - } - if (this.options.fill) { - this._path.setAttribute('fill-rule', 'evenodd'); - } - if (this.options.pointerEvents) { - this._path.setAttribute('pointer-events', this.options.pointerEvents); - } - if (!this.options.clickable && !this.options.pointerEvents) { - this._path.setAttribute('pointer-events', 'none'); - } - this._updateStyle(); - }, - - _updateStyle: function () { - if (this.options.stroke) { - this._path.setAttribute('stroke', this.options.color); - this._path.setAttribute('stroke-opacity', this.options.opacity); - this._path.setAttribute('stroke-width', this.options.weight); - if (this.options.dashArray) { - this._path.setAttribute('stroke-dasharray', this.options.dashArray); - } else { - this._path.removeAttribute('stroke-dasharray'); - } - if (this.options.lineCap) { - this._path.setAttribute('stroke-linecap', this.options.lineCap); - } - if (this.options.lineJoin) { - this._path.setAttribute('stroke-linejoin', this.options.lineJoin); - } - } else { - this._path.setAttribute('stroke', 'none'); - } - if (this.options.fill) { - this._path.setAttribute('fill', this.options.fillColor || this.options.color); - this._path.setAttribute('fill-opacity', this.options.fillOpacity); - } else { - this._path.setAttribute('fill', 'none'); - } - }, - - _updatePath: function () { - var str = this.getPathString(); - if (!str) { - // fix webkit empty string parsing bug - str = 'M0 0'; - } - this._path.setAttribute('d', str); - }, - - // TODO remove duplication with L.Map - _initEvents: function () { - if (this.options.clickable) { - if (L.Browser.svg || !L.Browser.vml) { - L.DomUtil.addClass(this._path, 'leaflet-clickable'); - } - - L.DomEvent.on(this._container, 'click', this._onMouseClick, this); - - var events = ['dblclick', 'mousedown', 'mouseover', - 'mouseout', 'mousemove', 'contextmenu']; - for (var i = 0; i < events.length; i++) { - L.DomEvent.on(this._container, events[i], this._fireMouseEvent, this); - } - } - }, - - _onMouseClick: function (e) { - if (this._map.dragging && this._map.dragging.moved()) { return; } - - this._fireMouseEvent(e); - }, - - _fireMouseEvent: function (e) { - if (!this._map || !this.hasEventListeners(e.type)) { return; } - - var map = this._map, - containerPoint = map.mouseEventToContainerPoint(e), - layerPoint = map.containerPointToLayerPoint(containerPoint), - latlng = map.layerPointToLatLng(layerPoint); - - this.fire(e.type, { - latlng: latlng, - layerPoint: layerPoint, - containerPoint: containerPoint, - originalEvent: e - }); - - if (e.type === 'contextmenu') { - L.DomEvent.preventDefault(e); - } - if (e.type !== 'mousemove') { - L.DomEvent.stopPropagation(e); - } - } -}); - -L.Map.include({ - _initPathRoot: function () { - if (!this._pathRoot) { - this._pathRoot = L.Path.prototype._createElement('svg'); - this._panes.overlayPane.appendChild(this._pathRoot); - - if (this.options.zoomAnimation && L.Browser.any3d) { - L.DomUtil.addClass(this._pathRoot, 'leaflet-zoom-animated'); - - this.on({ - 'zoomanim': this._animatePathZoom, - 'zoomend': this._endPathZoom - }); - } else { - L.DomUtil.addClass(this._pathRoot, 'leaflet-zoom-hide'); - } - - this.on('moveend', this._updateSvgViewport); - this._updateSvgViewport(); - } - }, - - _animatePathZoom: function (e) { - var scale = this.getZoomScale(e.zoom), - offset = this._getCenterOffset(e.center)._multiplyBy(-scale)._add(this._pathViewport.min); - - this._pathRoot.style[L.DomUtil.TRANSFORM] = - L.DomUtil.getTranslateString(offset) + ' scale(' + scale + ') '; - - this._pathZooming = true; - }, - - _endPathZoom: function () { - this._pathZooming = false; - }, - - _updateSvgViewport: function () { - - if (this._pathZooming) { - // Do not update SVGs while a zoom animation is going on otherwise the animation will break. - // When the zoom animation ends we will be updated again anyway - // This fixes the case where you do a momentum move and zoom while the move is still ongoing. - return; - } - - this._updatePathViewport(); - - var vp = this._pathViewport, - min = vp.min, - max = vp.max, - width = max.x - min.x, - height = max.y - min.y, - root = this._pathRoot, - pane = this._panes.overlayPane; - - // Hack to make flicker on drag end on mobile webkit less irritating - if (L.Browser.mobileWebkit) { - pane.removeChild(root); - } - - L.DomUtil.setPosition(root, min); - root.setAttribute('width', width); - root.setAttribute('height', height); - root.setAttribute('viewBox', [min.x, min.y, width, height].join(' ')); - - if (L.Browser.mobileWebkit) { - pane.appendChild(root); - } - } -}); - - -/* - * Popup extension to L.Path (polylines, polygons, circles), adding popup-related methods. - */ - -L.Path.include({ - - bindPopup: function (content, options) { - - if (content instanceof L.Popup) { - this._popup = content; - } else { - if (!this._popup || options) { - this._popup = new L.Popup(options, this); - } - this._popup.setContent(content); - } - - if (!this._popupHandlersAdded) { - this - .on('click', this._openPopup, this) - .on('remove', this.closePopup, this); - - this._popupHandlersAdded = true; - } - - return this; - }, - - unbindPopup: function () { - if (this._popup) { - this._popup = null; - this - .off('click', this._openPopup) - .off('remove', this.closePopup); - - this._popupHandlersAdded = false; - } - return this; - }, - - openPopup: function (latlng) { - - if (this._popup) { - // open the popup from one of the path's points if not specified - latlng = latlng || this._latlng || - this._latlngs[Math.floor(this._latlngs.length / 2)]; - - this._openPopup({latlng: latlng}); - } - - return this; - }, - - closePopup: function () { - if (this._popup) { - this._popup._close(); - } - return this; - }, - - _openPopup: function (e) { - this._popup.setLatLng(e.latlng); - this._map.openPopup(this._popup); - } -}); - - -/* - * Vector rendering for IE6-8 through VML. - * Thanks to Dmitry Baranovsky and his Raphael library for inspiration! - */ - -L.Browser.vml = !L.Browser.svg && (function () { - try { - var div = document.createElement('div'); - div.innerHTML = '<v:shape adj="1"/>'; - - var shape = div.firstChild; - shape.style.behavior = 'url(#default#VML)'; - - return shape && (typeof shape.adj === 'object'); - - } catch (e) { - return false; - } -}()); - -L.Path = L.Browser.svg || !L.Browser.vml ? L.Path : L.Path.extend({ - statics: { - VML: true, - CLIP_PADDING: 0.02 - }, - - _createElement: (function () { - try { - document.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml'); - return function (name) { - return document.createElement('<lvml:' + name + ' class="lvml">'); - }; - } catch (e) { - return function (name) { - return document.createElement( - '<' + name + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">'); - }; - } - }()), - - _initPath: function () { - var container = this._container = this._createElement('shape'); - - L.DomUtil.addClass(container, 'leaflet-vml-shape' + - (this.options.className ? ' ' + this.options.className : '')); - - if (this.options.clickable) { - L.DomUtil.addClass(container, 'leaflet-clickable'); - } - - container.coordsize = '1 1'; - - this._path = this._createElement('path'); - container.appendChild(this._path); - - this._map._pathRoot.appendChild(container); - }, - - _initStyle: function () { - this._updateStyle(); - }, - - _updateStyle: function () { - var stroke = this._stroke, - fill = this._fill, - options = this.options, - container = this._container; - - container.stroked = options.stroke; - container.filled = options.fill; - - if (options.stroke) { - if (!stroke) { - stroke = this._stroke = this._createElement('stroke'); - stroke.endcap = 'round'; - container.appendChild(stroke); - } - stroke.weight = options.weight + 'px'; - stroke.color = options.color; - stroke.opacity = options.opacity; - - if (options.dashArray) { - stroke.dashStyle = L.Util.isArray(options.dashArray) ? - options.dashArray.join(' ') : - options.dashArray.replace(/( *, *)/g, ' '); - } else { - stroke.dashStyle = ''; - } - if (options.lineCap) { - stroke.endcap = options.lineCap.replace('butt', 'flat'); - } - if (options.lineJoin) { - stroke.joinstyle = options.lineJoin; - } - - } else if (stroke) { - container.removeChild(stroke); - this._stroke = null; - } - - if (options.fill) { - if (!fill) { - fill = this._fill = this._createElement('fill'); - container.appendChild(fill); - } - fill.color = options.fillColor || options.color; - fill.opacity = options.fillOpacity; - - } else if (fill) { - container.removeChild(fill); - this._fill = null; - } - }, - - _updatePath: function () { - var style = this._container.style; - - style.display = 'none'; - this._path.v = this.getPathString() + ' '; // the space fixes IE empty path string bug - style.display = ''; - } -}); - -L.Map.include(L.Browser.svg || !L.Browser.vml ? {} : { - _initPathRoot: function () { - if (this._pathRoot) { return; } - - var root = this._pathRoot = document.createElement('div'); - root.className = 'leaflet-vml-container'; - this._panes.overlayPane.appendChild(root); - - this.on('moveend', this._updatePathViewport); - this._updatePathViewport(); - } -}); - - -/* - * Vector rendering for all browsers that support canvas. - */ - -L.Browser.canvas = (function () { - return !!document.createElement('canvas').getContext; -}()); - -L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : L.Path.extend({ - statics: { - //CLIP_PADDING: 0.02, // not sure if there's a need to set it to a small value - CANVAS: true, - SVG: false - }, - - redraw: function () { - if (this._map) { - this.projectLatlngs(); - this._requestUpdate(); - } - return this; - }, - - setStyle: function (style) { - L.setOptions(this, style); - - if (this._map) { - this._updateStyle(); - this._requestUpdate(); - } - return this; - }, - - onRemove: function (map) { - map - .off('viewreset', this.projectLatlngs, this) - .off('moveend', this._updatePath, this); - - if (this.options.clickable) { - this._map.off('click', this._onClick, this); - this._map.off('mousemove', this._onMouseMove, this); - } - - this._requestUpdate(); - - this.fire('remove'); - this._map = null; - }, - - _requestUpdate: function () { - if (this._map && !L.Path._updateRequest) { - L.Path._updateRequest = L.Util.requestAnimFrame(this._fireMapMoveEnd, this._map); - } - }, - - _fireMapMoveEnd: function () { - L.Path._updateRequest = null; - this.fire('moveend'); - }, - - _initElements: function () { - this._map._initPathRoot(); - this._ctx = this._map._canvasCtx; - }, - - _updateStyle: function () { - var options = this.options; - - if (options.stroke) { - this._ctx.lineWidth = options.weight; - this._ctx.strokeStyle = options.color; - } - if (options.fill) { - this._ctx.fillStyle = options.fillColor || options.color; - } - - if (options.lineCap) { - this._ctx.lineCap = options.lineCap; - } - if (options.lineJoin) { - this._ctx.lineJoin = options.lineJoin; - } - }, - - _drawPath: function () { - var i, j, len, len2, point, drawMethod; - - this._ctx.beginPath(); - - for (i = 0, len = this._parts.length; i < len; i++) { - for (j = 0, len2 = this._parts[i].length; j < len2; j++) { - point = this._parts[i][j]; - drawMethod = (j === 0 ? 'move' : 'line') + 'To'; - - this._ctx[drawMethod](point.x, point.y); - } - // TODO refactor ugly hack - if (this instanceof L.Polygon) { - this._ctx.closePath(); - } - } - }, - - _checkIfEmpty: function () { - return !this._parts.length; - }, - - _updatePath: function () { - if (this._checkIfEmpty()) { return; } - - var ctx = this._ctx, - options = this.options; - - this._drawPath(); - ctx.save(); - this._updateStyle(); - - if (options.fill) { - ctx.globalAlpha = options.fillOpacity; - ctx.fill(options.fillRule || 'evenodd'); - } - - if (options.stroke) { - ctx.globalAlpha = options.opacity; - ctx.stroke(); - } - - ctx.restore(); - - // TODO optimization: 1 fill/stroke for all features with equal style instead of 1 for each feature - }, - - _initEvents: function () { - if (this.options.clickable) { - this._map.on('mousemove', this._onMouseMove, this); - this._map.on('click dblclick contextmenu', this._fireMouseEvent, this); - } - }, - - _fireMouseEvent: function (e) { - if (this._containsPoint(e.layerPoint)) { - this.fire(e.type, e); - } - }, - - _onMouseMove: function (e) { - if (!this._map || this._map._animatingZoom) { return; } - - // TODO don't do on each move - if (this._containsPoint(e.layerPoint)) { - this._ctx.canvas.style.cursor = 'pointer'; - this._mouseInside = true; - this.fire('mouseover', e); - - } else if (this._mouseInside) { - this._ctx.canvas.style.cursor = ''; - this._mouseInside = false; - this.fire('mouseout', e); - } - } -}); - -L.Map.include((L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? {} : { - _initPathRoot: function () { - var root = this._pathRoot, - ctx; - - if (!root) { - root = this._pathRoot = document.createElement('canvas'); - root.style.position = 'absolute'; - ctx = this._canvasCtx = root.getContext('2d'); - - ctx.lineCap = 'round'; - ctx.lineJoin = 'round'; - - this._panes.overlayPane.appendChild(root); - - if (this.options.zoomAnimation) { - this._pathRoot.className = 'leaflet-zoom-animated'; - this.on('zoomanim', this._animatePathZoom); - this.on('zoomend', this._endPathZoom); - } - this.on('moveend', this._updateCanvasViewport); - this._updateCanvasViewport(); - } - }, - - _updateCanvasViewport: function () { - // don't redraw while zooming. See _updateSvgViewport for more details - if (this._pathZooming) { return; } - this._updatePathViewport(); - - var vp = this._pathViewport, - min = vp.min, - size = vp.max.subtract(min), - root = this._pathRoot; - - //TODO check if this works properly on mobile webkit - L.DomUtil.setPosition(root, min); - root.width = size.x; - root.height = size.y; - root.getContext('2d').translate(-min.x, -min.y); - } -}); - - -/* - * L.LineUtil contains different utility functions for line segments - * and polylines (clipping, simplification, distances, etc.) - */ - -/*jshint bitwise:false */ // allow bitwise operations for this file - -L.LineUtil = { - - // Simplify polyline with vertex reduction and Douglas-Peucker simplification. - // Improves rendering performance dramatically by lessening the number of points to draw. - - simplify: function (/*Point[]*/ points, /*Number*/ tolerance) { - if (!tolerance || !points.length) { - return points.slice(); - } - - var sqTolerance = tolerance * tolerance; - - // stage 1: vertex reduction - points = this._reducePoints(points, sqTolerance); - - // stage 2: Douglas-Peucker simplification - points = this._simplifyDP(points, sqTolerance); - - return points; - }, - - // distance from a point to a segment between two points - pointToSegmentDistance: function (/*Point*/ p, /*Point*/ p1, /*Point*/ p2) { - return Math.sqrt(this._sqClosestPointOnSegment(p, p1, p2, true)); - }, - - closestPointOnSegment: function (/*Point*/ p, /*Point*/ p1, /*Point*/ p2) { - return this._sqClosestPointOnSegment(p, p1, p2); - }, - - // Douglas-Peucker simplification, see http://en.wikipedia.org/wiki/Douglas-Peucker_algorithm - _simplifyDP: function (points, sqTolerance) { - - var len = points.length, - ArrayConstructor = typeof Uint8Array !== undefined + '' ? Uint8Array : Array, - markers = new ArrayConstructor(len); - - markers[0] = markers[len - 1] = 1; - - this._simplifyDPStep(points, markers, sqTolerance, 0, len - 1); - - var i, - newPoints = []; - - for (i = 0; i < len; i++) { - if (markers[i]) { - newPoints.push(points[i]); - } - } - - return newPoints; - }, - - _simplifyDPStep: function (points, markers, sqTolerance, first, last) { - - var maxSqDist = 0, - index, i, sqDist; - - for (i = first + 1; i <= last - 1; i++) { - sqDist = this._sqClosestPointOnSegment(points[i], points[first], points[last], true); - - if (sqDist > maxSqDist) { - index = i; - maxSqDist = sqDist; - } - } - - if (maxSqDist > sqTolerance) { - markers[index] = 1; - - this._simplifyDPStep(points, markers, sqTolerance, first, index); - this._simplifyDPStep(points, markers, sqTolerance, index, last); - } - }, - - // reduce points that are too close to each other to a single point - _reducePoints: function (points, sqTolerance) { - var reducedPoints = [points[0]]; - - for (var i = 1, prev = 0, len = points.length; i < len; i++) { - if (this._sqDist(points[i], points[prev]) > sqTolerance) { - reducedPoints.push(points[i]); - prev = i; - } - } - if (prev < len - 1) { - reducedPoints.push(points[len - 1]); - } - return reducedPoints; - }, - - // Cohen-Sutherland line clipping algorithm. - // Used to avoid rendering parts of a polyline that are not currently visible. - - clipSegment: function (a, b, bounds, useLastCode) { - var codeA = useLastCode ? this._lastCode : this._getBitCode(a, bounds), - codeB = this._getBitCode(b, bounds), - - codeOut, p, newCode; - - // save 2nd code to avoid calculating it on the next segment - this._lastCode = codeB; - - while (true) { - // if a,b is inside the clip window (trivial accept) - if (!(codeA | codeB)) { - return [a, b]; - // if a,b is outside the clip window (trivial reject) - } else if (codeA & codeB) { - return false; - // other cases - } else { - codeOut = codeA || codeB; - p = this._getEdgeIntersection(a, b, codeOut, bounds); - newCode = this._getBitCode(p, bounds); - - if (codeOut === codeA) { - a = p; - codeA = newCode; - } else { - b = p; - codeB = newCode; - } - } - } - }, - - _getEdgeIntersection: function (a, b, code, bounds) { - var dx = b.x - a.x, - dy = b.y - a.y, - min = bounds.min, - max = bounds.max; - - if (code & 8) { // top - return new L.Point(a.x + dx * (max.y - a.y) / dy, max.y); - } else if (code & 4) { // bottom - return new L.Point(a.x + dx * (min.y - a.y) / dy, min.y); - } else if (code & 2) { // right - return new L.Point(max.x, a.y + dy * (max.x - a.x) / dx); - } else if (code & 1) { // left - return new L.Point(min.x, a.y + dy * (min.x - a.x) / dx); - } - }, - - _getBitCode: function (/*Point*/ p, bounds) { - var code = 0; - - if (p.x < bounds.min.x) { // left - code |= 1; - } else if (p.x > bounds.max.x) { // right - code |= 2; - } - if (p.y < bounds.min.y) { // bottom - code |= 4; - } else if (p.y > bounds.max.y) { // top - code |= 8; - } - - return code; - }, - - // square distance (to avoid unnecessary Math.sqrt calls) - _sqDist: function (p1, p2) { - var dx = p2.x - p1.x, - dy = p2.y - p1.y; - return dx * dx + dy * dy; - }, - - // return closest point on segment or distance to that point - _sqClosestPointOnSegment: function (p, p1, p2, sqDist) { - var x = p1.x, - y = p1.y, - dx = p2.x - x, - dy = p2.y - y, - dot = dx * dx + dy * dy, - t; - - if (dot > 0) { - t = ((p.x - x) * dx + (p.y - y) * dy) / dot; - - if (t > 1) { - x = p2.x; - y = p2.y; - } else if (t > 0) { - x += dx * t; - y += dy * t; - } - } - - dx = p.x - x; - dy = p.y - y; - - return sqDist ? dx * dx + dy * dy : new L.Point(x, y); - } -}; - - -/* - * L.Polyline is used to display polylines on a map. - */ - -L.Polyline = L.Path.extend({ - initialize: function (latlngs, options) { - L.Path.prototype.initialize.call(this, options); - - this._latlngs = this._convertLatLngs(latlngs); - }, - - options: { - // how much to simplify the polyline on each zoom level - // more = better performance and smoother look, less = more accurate - smoothFactor: 1.0, - noClip: false - }, - - projectLatlngs: function () { - this._originalPoints = []; - - for (var i = 0, len = this._latlngs.length; i < len; i++) { - this._originalPoints[i] = this._map.latLngToLayerPoint(this._latlngs[i]); - } - }, - - getPathString: function () { - for (var i = 0, len = this._parts.length, str = ''; i < len; i++) { - str += this._getPathPartStr(this._parts[i]); - } - return str; - }, - - getLatLngs: function () { - return this._latlngs; - }, - - setLatLngs: function (latlngs) { - this._latlngs = this._convertLatLngs(latlngs); - return this.redraw(); - }, - - addLatLng: function (latlng) { - this._latlngs.push(L.latLng(latlng)); - return this.redraw(); - }, - - spliceLatLngs: function () { // (Number index, Number howMany) - var removed = [].splice.apply(this._latlngs, arguments); - this._convertLatLngs(this._latlngs, true); - this.redraw(); - return removed; - }, - - closestLayerPoint: function (p) { - var minDistance = Infinity, parts = this._parts, p1, p2, minPoint = null; - - for (var j = 0, jLen = parts.length; j < jLen; j++) { - var points = parts[j]; - for (var i = 1, len = points.length; i < len; i++) { - p1 = points[i - 1]; - p2 = points[i]; - var sqDist = L.LineUtil._sqClosestPointOnSegment(p, p1, p2, true); - if (sqDist < minDistance) { - minDistance = sqDist; - minPoint = L.LineUtil._sqClosestPointOnSegment(p, p1, p2); - } - } - } - if (minPoint) { - minPoint.distance = Math.sqrt(minDistance); - } - return minPoint; - }, - - getBounds: function () { - return new L.LatLngBounds(this.getLatLngs()); - }, - - _convertLatLngs: function (latlngs, overwrite) { - var i, len, target = overwrite ? latlngs : []; - - for (i = 0, len = latlngs.length; i < len; i++) { - if (L.Util.isArray(latlngs[i]) && typeof latlngs[i][0] !== 'number') { - return; - } - target[i] = L.latLng(latlngs[i]); - } - return target; - }, - - _initEvents: function () { - L.Path.prototype._initEvents.call(this); - }, - - _getPathPartStr: function (points) { - var round = L.Path.VML; - - for (var j = 0, len2 = points.length, str = '', p; j < len2; j++) { - p = points[j]; - if (round) { - p._round(); - } - str += (j ? 'L' : 'M') + p.x + ' ' + p.y; - } - return str; - }, - - _clipPoints: function () { - var points = this._originalPoints, - len = points.length, - i, k, segment; - - if (this.options.noClip) { - this._parts = [points]; - return; - } - - this._parts = []; - - var parts = this._parts, - vp = this._map._pathViewport, - lu = L.LineUtil; - - for (i = 0, k = 0; i < len - 1; i++) { - segment = lu.clipSegment(points[i], points[i + 1], vp, i); - if (!segment) { - continue; - } - - parts[k] = parts[k] || []; - parts[k].push(segment[0]); - - // if segment goes out of screen, or it's the last one, it's the end of the line part - if ((segment[1] !== points[i + 1]) || (i === len - 2)) { - parts[k].push(segment[1]); - k++; - } - } - }, - - // simplify each clipped part of the polyline - _simplifyPoints: function () { - var parts = this._parts, - lu = L.LineUtil; - - for (var i = 0, len = parts.length; i < len; i++) { - parts[i] = lu.simplify(parts[i], this.options.smoothFactor); - } - }, - - _updatePath: function () { - if (!this._map) { return; } - - this._clipPoints(); - this._simplifyPoints(); - - L.Path.prototype._updatePath.call(this); - } -}); - -L.polyline = function (latlngs, options) { - return new L.Polyline(latlngs, options); -}; - - -/* - * L.PolyUtil contains utility functions for polygons (clipping, etc.). - */ - -/*jshint bitwise:false */ // allow bitwise operations here - -L.PolyUtil = {}; - -/* - * Sutherland-Hodgeman polygon clipping algorithm. - * Used to avoid rendering parts of a polygon that are not currently visible. - */ -L.PolyUtil.clipPolygon = function (points, bounds) { - var clippedPoints, - edges = [1, 4, 2, 8], - i, j, k, - a, b, - len, edge, p, - lu = L.LineUtil; - - for (i = 0, len = points.length; i < len; i++) { - points[i]._code = lu._getBitCode(points[i], bounds); - } - - // for each edge (left, bottom, right, top) - for (k = 0; k < 4; k++) { - edge = edges[k]; - clippedPoints = []; - - for (i = 0, len = points.length, j = len - 1; i < len; j = i++) { - a = points[i]; - b = points[j]; - - // if a is inside the clip window - if (!(a._code & edge)) { - // if b is outside the clip window (a->b goes out of screen) - if (b._code & edge) { - p = lu._getEdgeIntersection(b, a, edge, bounds); - p._code = lu._getBitCode(p, bounds); - clippedPoints.push(p); - } - clippedPoints.push(a); - - // else if b is inside the clip window (a->b enters the screen) - } else if (!(b._code & edge)) { - p = lu._getEdgeIntersection(b, a, edge, bounds); - p._code = lu._getBitCode(p, bounds); - clippedPoints.push(p); - } - } - points = clippedPoints; - } - - return points; -}; - - -/* - * L.Polygon is used to display polygons on a map. - */ - -L.Polygon = L.Polyline.extend({ - options: { - fill: true - }, - - initialize: function (latlngs, options) { - L.Polyline.prototype.initialize.call(this, latlngs, options); - this._initWithHoles(latlngs); - }, - - _initWithHoles: function (latlngs) { - var i, len, hole; - if (latlngs && L.Util.isArray(latlngs[0]) && (typeof latlngs[0][0] !== 'number')) { - this._latlngs = this._convertLatLngs(latlngs[0]); - this._holes = latlngs.slice(1); - - for (i = 0, len = this._holes.length; i < len; i++) { - hole = this._holes[i] = this._convertLatLngs(this._holes[i]); - if (hole[0].equals(hole[hole.length - 1])) { - hole.pop(); - } - } - } - - // filter out last point if its equal to the first one - latlngs = this._latlngs; - - if (latlngs.length >= 2 && latlngs[0].equals(latlngs[latlngs.length - 1])) { - latlngs.pop(); - } - }, - - projectLatlngs: function () { - L.Polyline.prototype.projectLatlngs.call(this); - - // project polygon holes points - // TODO move this logic to Polyline to get rid of duplication - this._holePoints = []; - - if (!this._holes) { return; } - - var i, j, len, len2; - - for (i = 0, len = this._holes.length; i < len; i++) { - this._holePoints[i] = []; - - for (j = 0, len2 = this._holes[i].length; j < len2; j++) { - this._holePoints[i][j] = this._map.latLngToLayerPoint(this._holes[i][j]); - } - } - }, - - setLatLngs: function (latlngs) { - if (latlngs && L.Util.isArray(latlngs[0]) && (typeof latlngs[0][0] !== 'number')) { - this._initWithHoles(latlngs); - return this.redraw(); - } else { - return L.Polyline.prototype.setLatLngs.call(this, latlngs); - } - }, - - _clipPoints: function () { - var points = this._originalPoints, - newParts = []; - - this._parts = [points].concat(this._holePoints); - - if (this.options.noClip) { return; } - - for (var i = 0, len = this._parts.length; i < len; i++) { - var clipped = L.PolyUtil.clipPolygon(this._parts[i], this._map._pathViewport); - if (clipped.length) { - newParts.push(clipped); - } - } - - this._parts = newParts; - }, - - _getPathPartStr: function (points) { - var str = L.Polyline.prototype._getPathPartStr.call(this, points); - return str + (L.Browser.svg ? 'z' : 'x'); - } -}); - -L.polygon = function (latlngs, options) { - return new L.Polygon(latlngs, options); -}; - - -/* - * Contains L.MultiPolyline and L.MultiPolygon layers. - */ - -(function () { - function createMulti(Klass) { - - return L.FeatureGroup.extend({ - - initialize: function (latlngs, options) { - this._layers = {}; - this._options = options; - this.setLatLngs(latlngs); - }, - - setLatLngs: function (latlngs) { - var i = 0, - len = latlngs.length; - - this.eachLayer(function (layer) { - if (i < len) { - layer.setLatLngs(latlngs[i++]); - } else { - this.removeLayer(layer); - } - }, this); - - while (i < len) { - this.addLayer(new Klass(latlngs[i++], this._options)); - } - - return this; - }, - - getLatLngs: function () { - var latlngs = []; - - this.eachLayer(function (layer) { - latlngs.push(layer.getLatLngs()); - }); - - return latlngs; - } - }); - } - - L.MultiPolyline = createMulti(L.Polyline); - L.MultiPolygon = createMulti(L.Polygon); - - L.multiPolyline = function (latlngs, options) { - return new L.MultiPolyline(latlngs, options); - }; - - L.multiPolygon = function (latlngs, options) { - return new L.MultiPolygon(latlngs, options); - }; -}()); - - -/* - * L.Rectangle extends Polygon and creates a rectangle when passed a LatLngBounds object. - */ - -L.Rectangle = L.Polygon.extend({ - initialize: function (latLngBounds, options) { - L.Polygon.prototype.initialize.call(this, this._boundsToLatLngs(latLngBounds), options); - }, - - setBounds: function (latLngBounds) { - this.setLatLngs(this._boundsToLatLngs(latLngBounds)); - }, - - _boundsToLatLngs: function (latLngBounds) { - latLngBounds = L.latLngBounds(latLngBounds); - return [ - latLngBounds.getSouthWest(), - latLngBounds.getNorthWest(), - latLngBounds.getNorthEast(), - latLngBounds.getSouthEast() - ]; - } -}); - -L.rectangle = function (latLngBounds, options) { - return new L.Rectangle(latLngBounds, options); -}; - - -/* - * L.Circle is a circle overlay (with a certain radius in meters). - */ - -L.Circle = L.Path.extend({ - initialize: function (latlng, radius, options) { - L.Path.prototype.initialize.call(this, options); - - this._latlng = L.latLng(latlng); - this._mRadius = radius; - }, - - options: { - fill: true - }, - - setLatLng: function (latlng) { - this._latlng = L.latLng(latlng); - return this.redraw(); - }, - - setRadius: function (radius) { - this._mRadius = radius; - return this.redraw(); - }, - - projectLatlngs: function () { - var lngRadius = this._getLngRadius(), - latlng = this._latlng, - pointLeft = this._map.latLngToLayerPoint([latlng.lat, latlng.lng - lngRadius]); - - this._point = this._map.latLngToLayerPoint(latlng); - this._radius = Math.max(this._point.x - pointLeft.x, 1); - }, - - getBounds: function () { - var lngRadius = this._getLngRadius(), - latRadius = (this._mRadius / 40075017) * 360, - latlng = this._latlng; - - return new L.LatLngBounds( - [latlng.lat - latRadius, latlng.lng - lngRadius], - [latlng.lat + latRadius, latlng.lng + lngRadius]); - }, - - getLatLng: function () { - return this._latlng; - }, - - getPathString: function () { - var p = this._point, - r = this._radius; - - if (this._checkIfEmpty()) { - return ''; - } - - if (L.Browser.svg) { - return 'M' + p.x + ',' + (p.y - r) + - 'A' + r + ',' + r + ',0,1,1,' + - (p.x - 0.1) + ',' + (p.y - r) + ' z'; - } else { - p._round(); - r = Math.round(r); - return 'AL ' + p.x + ',' + p.y + ' ' + r + ',' + r + ' 0,' + (65535 * 360); - } - }, - - getRadius: function () { - return this._mRadius; - }, - - // TODO Earth hardcoded, move into projection code! - - _getLatRadius: function () { - return (this._mRadius / 40075017) * 360; - }, - - _getLngRadius: function () { - return this._getLatRadius() / Math.cos(L.LatLng.DEG_TO_RAD * this._latlng.lat); - }, - - _checkIfEmpty: function () { - if (!this._map) { - return false; - } - var vp = this._map._pathViewport, - r = this._radius, - p = this._point; - - return p.x - r > vp.max.x || p.y - r > vp.max.y || - p.x + r < vp.min.x || p.y + r < vp.min.y; - } -}); - -L.circle = function (latlng, radius, options) { - return new L.Circle(latlng, radius, options); -}; - - -/* - * L.CircleMarker is a circle overlay with a permanent pixel radius. - */ - -L.CircleMarker = L.Circle.extend({ - options: { - radius: 10, - weight: 2 - }, - - initialize: function (latlng, options) { - L.Circle.prototype.initialize.call(this, latlng, null, options); - this._radius = this.options.radius; - }, - - projectLatlngs: function () { - this._point = this._map.latLngToLayerPoint(this._latlng); - }, - - _updateStyle : function () { - L.Circle.prototype._updateStyle.call(this); - this.setRadius(this.options.radius); - }, - - setLatLng: function (latlng) { - L.Circle.prototype.setLatLng.call(this, latlng); - if (this._popup && this._popup._isOpen) { - this._popup.setLatLng(latlng); - } - return this; - }, - - setRadius: function (radius) { - this.options.radius = this._radius = radius; - return this.redraw(); - }, - - getRadius: function () { - return this._radius; - } -}); - -L.circleMarker = function (latlng, options) { - return new L.CircleMarker(latlng, options); -}; - - -/* - * Extends L.Polyline to be able to manually detect clicks on Canvas-rendered polylines. - */ - -L.Polyline.include(!L.Path.CANVAS ? {} : { - _containsPoint: function (p, closed) { - var i, j, k, len, len2, dist, part, - w = this.options.weight / 2; - - if (L.Browser.touch) { - w += 10; // polyline click tolerance on touch devices - } - - for (i = 0, len = this._parts.length; i < len; i++) { - part = this._parts[i]; - for (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) { - if (!closed && (j === 0)) { - continue; - } - - dist = L.LineUtil.pointToSegmentDistance(p, part[k], part[j]); - - if (dist <= w) { - return true; - } - } - } - return false; - } -}); - - -/* - * Extends L.Polygon to be able to manually detect clicks on Canvas-rendered polygons. - */ - -L.Polygon.include(!L.Path.CANVAS ? {} : { - _containsPoint: function (p) { - var inside = false, - part, p1, p2, - i, j, k, - len, len2; - - // TODO optimization: check if within bounds first - - if (L.Polyline.prototype._containsPoint.call(this, p, true)) { - // click on polygon border - return true; - } - - // ray casting algorithm for detecting if point is in polygon - - for (i = 0, len = this._parts.length; i < len; i++) { - part = this._parts[i]; - - for (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) { - p1 = part[j]; - p2 = part[k]; - - if (((p1.y > p.y) !== (p2.y > p.y)) && - (p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x)) { - inside = !inside; - } - } - } - - return inside; - } -}); - - -/* - * Extends L.Circle with Canvas-specific code. - */ - -L.Circle.include(!L.Path.CANVAS ? {} : { - _drawPath: function () { - var p = this._point; - this._ctx.beginPath(); - this._ctx.arc(p.x, p.y, this._radius, 0, Math.PI * 2, false); - }, - - _containsPoint: function (p) { - var center = this._point, - w2 = this.options.stroke ? this.options.weight / 2 : 0; - - return (p.distanceTo(center) <= this._radius + w2); - } -}); - - -/* - * CircleMarker canvas specific drawing parts. - */ - -L.CircleMarker.include(!L.Path.CANVAS ? {} : { - _updateStyle: function () { - L.Path.prototype._updateStyle.call(this); - } -}); - - -/* - * L.GeoJSON turns any GeoJSON data into a Leaflet layer. - */ - -L.GeoJSON = L.FeatureGroup.extend({ - - initialize: function (geojson, options) { - L.setOptions(this, options); - - this._layers = {}; - - if (geojson) { - this.addData(geojson); - } - }, - - addData: function (geojson) { - var features = L.Util.isArray(geojson) ? geojson : geojson.features, - i, len, feature; - - if (features) { - for (i = 0, len = features.length; i < len; i++) { - // Only add this if geometry or geometries are set and not null - feature = features[i]; - if (feature.geometries || feature.geometry || feature.features || feature.coordinates) { - this.addData(features[i]); - } - } - return this; - } - - var options = this.options; - - if (options.filter && !options.filter(geojson)) { return; } - - var layer = L.GeoJSON.geometryToLayer(geojson, options.pointToLayer, options.coordsToLatLng, options); - layer.feature = L.GeoJSON.asFeature(geojson); - - layer.defaultOptions = layer.options; - this.resetStyle(layer); - - if (options.onEachFeature) { - options.onEachFeature(geojson, layer); - } - - return this.addLayer(layer); - }, - - resetStyle: function (layer) { - var style = this.options.style; - if (style) { - // reset any custom styles - L.Util.extend(layer.options, layer.defaultOptions); - - this._setLayerStyle(layer, style); - } - }, - - setStyle: function (style) { - this.eachLayer(function (layer) { - this._setLayerStyle(layer, style); - }, this); - }, - - _setLayerStyle: function (layer, style) { - if (typeof style === 'function') { - style = style(layer.feature); - } - if (layer.setStyle) { - layer.setStyle(style); - } - } -}); - -L.extend(L.GeoJSON, { - geometryToLayer: function (geojson, pointToLayer, coordsToLatLng, vectorOptions) { - var geometry = geojson.type === 'Feature' ? geojson.geometry : geojson, - coords = geometry.coordinates, - layers = [], - latlng, latlngs, i, len; - - coordsToLatLng = coordsToLatLng || this.coordsToLatLng; - - switch (geometry.type) { - case 'Point': - latlng = coordsToLatLng(coords); - return pointToLayer ? pointToLayer(geojson, latlng) : new L.Marker(latlng); - - case 'MultiPoint': - for (i = 0, len = coords.length; i < len; i++) { - latlng = coordsToLatLng(coords[i]); - layers.push(pointToLayer ? pointToLayer(geojson, latlng) : new L.Marker(latlng)); - } - return new L.FeatureGroup(layers); - - case 'LineString': - latlngs = this.coordsToLatLngs(coords, 0, coordsToLatLng); - return new L.Polyline(latlngs, vectorOptions); - - case 'Polygon': - if (coords.length === 2 && !coords[1].length) { - throw new Error('Invalid GeoJSON object.'); - } - latlngs = this.coordsToLatLngs(coords, 1, coordsToLatLng); - return new L.Polygon(latlngs, vectorOptions); - - case 'MultiLineString': - latlngs = this.coordsToLatLngs(coords, 1, coordsToLatLng); - return new L.MultiPolyline(latlngs, vectorOptions); - - case 'MultiPolygon': - latlngs = this.coordsToLatLngs(coords, 2, coordsToLatLng); - return new L.MultiPolygon(latlngs, vectorOptions); - - case 'GeometryCollection': - for (i = 0, len = geometry.geometries.length; i < len; i++) { - - layers.push(this.geometryToLayer({ - geometry: geometry.geometries[i], - type: 'Feature', - properties: geojson.properties - }, pointToLayer, coordsToLatLng, vectorOptions)); - } - return new L.FeatureGroup(layers); - - default: - throw new Error('Invalid GeoJSON object.'); - } - }, - - coordsToLatLng: function (coords) { // (Array[, Boolean]) -> LatLng - return new L.LatLng(coords[1], coords[0], coords[2]); - }, - - coordsToLatLngs: function (coords, levelsDeep, coordsToLatLng) { // (Array[, Number, Function]) -> Array - var latlng, i, len, - latlngs = []; - - for (i = 0, len = coords.length; i < len; i++) { - latlng = levelsDeep ? - this.coordsToLatLngs(coords[i], levelsDeep - 1, coordsToLatLng) : - (coordsToLatLng || this.coordsToLatLng)(coords[i]); - - latlngs.push(latlng); - } - - return latlngs; - }, - - latLngToCoords: function (latlng) { - var coords = [latlng.lng, latlng.lat]; - - if (latlng.alt !== undefined) { - coords.push(latlng.alt); - } - return coords; - }, - - latLngsToCoords: function (latLngs) { - var coords = []; - - for (var i = 0, len = latLngs.length; i < len; i++) { - coords.push(L.GeoJSON.latLngToCoords(latLngs[i])); - } - - return coords; - }, - - getFeature: function (layer, newGeometry) { - return layer.feature ? L.extend({}, layer.feature, {geometry: newGeometry}) : L.GeoJSON.asFeature(newGeometry); - }, - - asFeature: function (geoJSON) { - if (geoJSON.type === 'Feature') { - return geoJSON; - } - - return { - type: 'Feature', - properties: {}, - geometry: geoJSON - }; - } -}); - -var PointToGeoJSON = { - toGeoJSON: function () { - return L.GeoJSON.getFeature(this, { - type: 'Point', - coordinates: L.GeoJSON.latLngToCoords(this.getLatLng()) - }); - } -}; - -L.Marker.include(PointToGeoJSON); -L.Circle.include(PointToGeoJSON); -L.CircleMarker.include(PointToGeoJSON); - -L.Polyline.include({ - toGeoJSON: function () { - return L.GeoJSON.getFeature(this, { - type: 'LineString', - coordinates: L.GeoJSON.latLngsToCoords(this.getLatLngs()) - }); - } -}); - -L.Polygon.include({ - toGeoJSON: function () { - var coords = [L.GeoJSON.latLngsToCoords(this.getLatLngs())], - i, len, hole; - - coords[0].push(coords[0][0]); - - if (this._holes) { - for (i = 0, len = this._holes.length; i < len; i++) { - hole = L.GeoJSON.latLngsToCoords(this._holes[i]); - hole.push(hole[0]); - coords.push(hole); - } - } - - return L.GeoJSON.getFeature(this, { - type: 'Polygon', - coordinates: coords - }); - } -}); - -(function () { - function multiToGeoJSON(type) { - return function () { - var coords = []; - - this.eachLayer(function (layer) { - coords.push(layer.toGeoJSON().geometry.coordinates); - }); - - return L.GeoJSON.getFeature(this, { - type: type, - coordinates: coords - }); - }; - } - - L.MultiPolyline.include({toGeoJSON: multiToGeoJSON('MultiLineString')}); - L.MultiPolygon.include({toGeoJSON: multiToGeoJSON('MultiPolygon')}); - - L.LayerGroup.include({ - toGeoJSON: function () { - - var geometry = this.feature && this.feature.geometry, - jsons = [], - json; - - if (geometry && geometry.type === 'MultiPoint') { - return multiToGeoJSON('MultiPoint').call(this); - } - - var isGeometryCollection = geometry && geometry.type === 'GeometryCollection'; - - this.eachLayer(function (layer) { - if (layer.toGeoJSON) { - json = layer.toGeoJSON(); - jsons.push(isGeometryCollection ? json.geometry : L.GeoJSON.asFeature(json)); - } - }); - - if (isGeometryCollection) { - return L.GeoJSON.getFeature(this, { - geometries: jsons, - type: 'GeometryCollection' - }); - } - - return { - type: 'FeatureCollection', - features: jsons - }; - } - }); -}()); - -L.geoJson = function (geojson, options) { - return new L.GeoJSON(geojson, options); -}; - - -/* - * L.DomEvent contains functions for working with DOM events. - */ - -L.DomEvent = { - /* inspired by John Resig, Dean Edwards and YUI addEvent implementations */ - addListener: function (obj, type, fn, context) { // (HTMLElement, String, Function[, Object]) - - var id = L.stamp(fn), - key = '_leaflet_' + type + id, - handler, originalHandler, newType; - - if (obj[key]) { return this; } - - handler = function (e) { - return fn.call(context || obj, e || L.DomEvent._getEvent()); - }; - - if (L.Browser.pointer && type.indexOf('touch') === 0) { - return this.addPointerListener(obj, type, handler, id); - } - if (L.Browser.touch && (type === 'dblclick') && this.addDoubleTapListener) { - this.addDoubleTapListener(obj, handler, id); - } - - if ('addEventListener' in obj) { - - if (type === 'mousewheel') { - obj.addEventListener('DOMMouseScroll', handler, false); - obj.addEventListener(type, handler, false); - - } else if ((type === 'mouseenter') || (type === 'mouseleave')) { - - originalHandler = handler; - newType = (type === 'mouseenter' ? 'mouseover' : 'mouseout'); - - handler = function (e) { - if (!L.DomEvent._checkMouse(obj, e)) { return; } - return originalHandler(e); - }; - - obj.addEventListener(newType, handler, false); - - } else if (type === 'click' && L.Browser.android) { - originalHandler = handler; - handler = function (e) { - return L.DomEvent._filterClick(e, originalHandler); - }; - - obj.addEventListener(type, handler, false); - } else { - obj.addEventListener(type, handler, false); - } - - } else if ('attachEvent' in obj) { - obj.attachEvent('on' + type, handler); - } - - obj[key] = handler; - - return this; - }, - - removeListener: function (obj, type, fn) { // (HTMLElement, String, Function) - - var id = L.stamp(fn), - key = '_leaflet_' + type + id, - handler = obj[key]; - - if (!handler) { return this; } - - if (L.Browser.pointer && type.indexOf('touch') === 0) { - this.removePointerListener(obj, type, id); - } else if (L.Browser.touch && (type === 'dblclick') && this.removeDoubleTapListener) { - this.removeDoubleTapListener(obj, id); - - } else if ('removeEventListener' in obj) { - - if (type === 'mousewheel') { - obj.removeEventListener('DOMMouseScroll', handler, false); - obj.removeEventListener(type, handler, false); - - } else if ((type === 'mouseenter') || (type === 'mouseleave')) { - obj.removeEventListener((type === 'mouseenter' ? 'mouseover' : 'mouseout'), handler, false); - } else { - obj.removeEventListener(type, handler, false); - } - } else if ('detachEvent' in obj) { - obj.detachEvent('on' + type, handler); - } - - obj[key] = null; - - return this; - }, - - stopPropagation: function (e) { - - if (e.stopPropagation) { - e.stopPropagation(); - } else { - e.cancelBubble = true; - } - L.DomEvent._skipped(e); - - return this; - }, - - disableScrollPropagation: function (el) { - var stop = L.DomEvent.stopPropagation; - - return L.DomEvent - .on(el, 'mousewheel', stop) - .on(el, 'MozMousePixelScroll', stop); - }, - - disableClickPropagation: function (el) { - var stop = L.DomEvent.stopPropagation; - - for (var i = L.Draggable.START.length - 1; i >= 0; i--) { - L.DomEvent.on(el, L.Draggable.START[i], stop); - } - - return L.DomEvent - .on(el, 'click', L.DomEvent._fakeStop) - .on(el, 'dblclick', stop); - }, - - preventDefault: function (e) { - - if (e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - } - return this; - }, - - stop: function (e) { - return L.DomEvent - .preventDefault(e) - .stopPropagation(e); - }, - - getMousePosition: function (e, container) { - if (!container) { - return new L.Point(e.clientX, e.clientY); - } - - var rect = container.getBoundingClientRect(); - - return new L.Point( - e.clientX - rect.left - container.clientLeft, - e.clientY - rect.top - container.clientTop); - }, - - getWheelDelta: function (e) { - - var delta = 0; - - if (e.wheelDelta) { - delta = e.wheelDelta / 120; - } - if (e.detail) { - delta = -e.detail / 3; - } - return delta; - }, - - _skipEvents: {}, - - _fakeStop: function (e) { - // fakes stopPropagation by setting a special event flag, checked/reset with L.DomEvent._skipped(e) - L.DomEvent._skipEvents[e.type] = true; - }, - - _skipped: function (e) { - var skipped = this._skipEvents[e.type]; - // reset when checking, as it's only used in map container and propagates outside of the map - this._skipEvents[e.type] = false; - return skipped; - }, - - // check if element really left/entered the event target (for mouseenter/mouseleave) - _checkMouse: function (el, e) { - - var related = e.relatedTarget; - - if (!related) { return true; } - - try { - while (related && (related !== el)) { - related = related.parentNode; - } - } catch (err) { - return false; - } - return (related !== el); - }, - - _getEvent: function () { // evil magic for IE - /*jshint noarg:false */ - var e = window.event; - if (!e) { - var caller = arguments.callee.caller; - while (caller) { - e = caller['arguments'][0]; - if (e && window.Event === e.constructor) { - break; - } - caller = caller.caller; - } - } - return e; - }, - - // this is a horrible workaround for a bug in Android where a single touch triggers two click events - _filterClick: function (e, handler) { - var timeStamp = (e.timeStamp || e.originalEvent.timeStamp), - elapsed = L.DomEvent._lastClick && (timeStamp - L.DomEvent._lastClick); - - // are they closer together than 500ms yet more than 100ms? - // Android typically triggers them ~300ms apart while multiple listeners - // on the same event should be triggered far faster; - // or check if click is simulated on the element, and if it is, reject any non-simulated events - - if ((elapsed && elapsed > 100 && elapsed < 500) || (e.target._simulatedClick && !e._simulated)) { - L.DomEvent.stop(e); - return; - } - L.DomEvent._lastClick = timeStamp; - - return handler(e); - } -}; - -L.DomEvent.on = L.DomEvent.addListener; -L.DomEvent.off = L.DomEvent.removeListener; - - -/* - * L.Draggable allows you to add dragging capabilities to any element. Supports mobile devices too. - */ - -L.Draggable = L.Class.extend({ - includes: L.Mixin.Events, - - statics: { - START: L.Browser.touch ? ['touchstart', 'mousedown'] : ['mousedown'], - END: { - mousedown: 'mouseup', - touchstart: 'touchend', - pointerdown: 'touchend', - MSPointerDown: 'touchend' - }, - MOVE: { - mousedown: 'mousemove', - touchstart: 'touchmove', - pointerdown: 'touchmove', - MSPointerDown: 'touchmove' - } - }, - - initialize: function (element, dragStartTarget) { - this._element = element; - this._dragStartTarget = dragStartTarget || element; - }, - - enable: function () { - if (this._enabled) { return; } - - for (var i = L.Draggable.START.length - 1; i >= 0; i--) { - L.DomEvent.on(this._dragStartTarget, L.Draggable.START[i], this._onDown, this); - } - - this._enabled = true; - }, - - disable: function () { - if (!this._enabled) { return; } - - for (var i = L.Draggable.START.length - 1; i >= 0; i--) { - L.DomEvent.off(this._dragStartTarget, L.Draggable.START[i], this._onDown, this); - } - - this._enabled = false; - this._moved = false; - }, - - _onDown: function (e) { - this._moved = false; - - if (e.shiftKey || ((e.which !== 1) && (e.button !== 1) && !e.touches)) { return; } - - L.DomEvent.stopPropagation(e); - - if (L.Draggable._disabled) { return; } - - L.DomUtil.disableImageDrag(); - L.DomUtil.disableTextSelection(); - - if (this._moving) { return; } - - var first = e.touches ? e.touches[0] : e; - - this._startPoint = new L.Point(first.clientX, first.clientY); - this._startPos = this._newPos = L.DomUtil.getPosition(this._element); - - L.DomEvent - .on(document, L.Draggable.MOVE[e.type], this._onMove, this) - .on(document, L.Draggable.END[e.type], this._onUp, this); - }, - - _onMove: function (e) { - if (e.touches && e.touches.length > 1) { - this._moved = true; - return; - } - - var first = (e.touches && e.touches.length === 1 ? e.touches[0] : e), - newPoint = new L.Point(first.clientX, first.clientY), - offset = newPoint.subtract(this._startPoint); - - if (!offset.x && !offset.y) { return; } - if (L.Browser.touch && Math.abs(offset.x) + Math.abs(offset.y) < 3) { return; } - - L.DomEvent.preventDefault(e); - - if (!this._moved) { - this.fire('dragstart'); - - this._moved = true; - this._startPos = L.DomUtil.getPosition(this._element).subtract(offset); - - L.DomUtil.addClass(document.body, 'leaflet-dragging'); - this._lastTarget = e.target || e.srcElement; - L.DomUtil.addClass(this._lastTarget, 'leaflet-drag-target'); - } - - this._newPos = this._startPos.add(offset); - this._moving = true; - - L.Util.cancelAnimFrame(this._animRequest); - this._animRequest = L.Util.requestAnimFrame(this._updatePosition, this, true, this._dragStartTarget); - }, - - _updatePosition: function () { - this.fire('predrag'); - L.DomUtil.setPosition(this._element, this._newPos); - this.fire('drag'); - }, - - _onUp: function () { - L.DomUtil.removeClass(document.body, 'leaflet-dragging'); - - if (this._lastTarget) { - L.DomUtil.removeClass(this._lastTarget, 'leaflet-drag-target'); - this._lastTarget = null; - } - - for (var i in L.Draggable.MOVE) { - L.DomEvent - .off(document, L.Draggable.MOVE[i], this._onMove) - .off(document, L.Draggable.END[i], this._onUp); - } - - L.DomUtil.enableImageDrag(); - L.DomUtil.enableTextSelection(); - - if (this._moved && this._moving) { - // ensure drag is not fired after dragend - L.Util.cancelAnimFrame(this._animRequest); - - this.fire('dragend', { - distance: this._newPos.distanceTo(this._startPos) - }); - } - - this._moving = false; - } -}); - - -/* - L.Handler is a base class for handler classes that are used internally to inject - interaction features like dragging to classes like Map and Marker. -*/ - -L.Handler = L.Class.extend({ - initialize: function (map) { - this._map = map; - }, - - enable: function () { - if (this._enabled) { return; } - - this._enabled = true; - this.addHooks(); - }, - - disable: function () { - if (!this._enabled) { return; } - - this._enabled = false; - this.removeHooks(); - }, - - enabled: function () { - return !!this._enabled; - } -}); - - -/* - * L.Handler.MapDrag is used to make the map draggable (with panning inertia), enabled by default. - */ - -L.Map.mergeOptions({ - dragging: true, - - inertia: !L.Browser.android23, - inertiaDeceleration: 3400, // px/s^2 - inertiaMaxSpeed: Infinity, // px/s - inertiaThreshold: L.Browser.touch ? 32 : 18, // ms - easeLinearity: 0.25, - - // TODO refactor, move to CRS - worldCopyJump: false -}); - -L.Map.Drag = L.Handler.extend({ - addHooks: function () { - if (!this._draggable) { - var map = this._map; - - this._draggable = new L.Draggable(map._mapPane, map._container); - - this._draggable.on({ - 'dragstart': this._onDragStart, - 'drag': this._onDrag, - 'dragend': this._onDragEnd - }, this); - - if (map.options.worldCopyJump) { - this._draggable.on('predrag', this._onPreDrag, this); - map.on('viewreset', this._onViewReset, this); - - map.whenReady(this._onViewReset, this); - } - } - this._draggable.enable(); - }, - - removeHooks: function () { - this._draggable.disable(); - }, - - moved: function () { - return this._draggable && this._draggable._moved; - }, - - _onDragStart: function () { - var map = this._map; - - if (map._panAnim) { - map._panAnim.stop(); - } - - map - .fire('movestart') - .fire('dragstart'); - - if (map.options.inertia) { - this._positions = []; - this._times = []; - } - }, - - _onDrag: function () { - if (this._map.options.inertia) { - var time = this._lastTime = +new Date(), - pos = this._lastPos = this._draggable._newPos; - - this._positions.push(pos); - this._times.push(time); - - if (time - this._times[0] > 200) { - this._positions.shift(); - this._times.shift(); - } - } - - this._map - .fire('move') - .fire('drag'); - }, - - _onViewReset: function () { - // TODO fix hardcoded Earth values - var pxCenter = this._map.getSize()._divideBy(2), - pxWorldCenter = this._map.latLngToLayerPoint([0, 0]); - - this._initialWorldOffset = pxWorldCenter.subtract(pxCenter).x; - this._worldWidth = this._map.project([0, 180]).x; - }, - - _onPreDrag: function () { - // TODO refactor to be able to adjust map pane position after zoom - var worldWidth = this._worldWidth, - halfWidth = Math.round(worldWidth / 2), - dx = this._initialWorldOffset, - x = this._draggable._newPos.x, - newX1 = (x - halfWidth + dx) % worldWidth + halfWidth - dx, - newX2 = (x + halfWidth + dx) % worldWidth - halfWidth - dx, - newX = Math.abs(newX1 + dx) < Math.abs(newX2 + dx) ? newX1 : newX2; - - this._draggable._newPos.x = newX; - }, - - _onDragEnd: function (e) { - var map = this._map, - options = map.options, - delay = +new Date() - this._lastTime, - - noInertia = !options.inertia || delay > options.inertiaThreshold || !this._positions[0]; - - map.fire('dragend', e); - - if (noInertia) { - map.fire('moveend'); - - } else { - - var direction = this._lastPos.subtract(this._positions[0]), - duration = (this._lastTime + delay - this._times[0]) / 1000, - ease = options.easeLinearity, - - speedVector = direction.multiplyBy(ease / duration), - speed = speedVector.distanceTo([0, 0]), - - limitedSpeed = Math.min(options.inertiaMaxSpeed, speed), - limitedSpeedVector = speedVector.multiplyBy(limitedSpeed / speed), - - decelerationDuration = limitedSpeed / (options.inertiaDeceleration * ease), - offset = limitedSpeedVector.multiplyBy(-decelerationDuration / 2).round(); - - if (!offset.x || !offset.y) { - map.fire('moveend'); - - } else { - offset = map._limitOffset(offset, map.options.maxBounds); - - L.Util.requestAnimFrame(function () { - map.panBy(offset, { - duration: decelerationDuration, - easeLinearity: ease, - noMoveStart: true - }); - }); - } - } - } -}); - -L.Map.addInitHook('addHandler', 'dragging', L.Map.Drag); - - -/* - * L.Handler.DoubleClickZoom is used to handle double-click zoom on the map, enabled by default. - */ - -L.Map.mergeOptions({ - doubleClickZoom: true -}); - -L.Map.DoubleClickZoom = L.Handler.extend({ - addHooks: function () { - this._map.on('dblclick', this._onDoubleClick, this); - }, - - removeHooks: function () { - this._map.off('dblclick', this._onDoubleClick, this); - }, - - _onDoubleClick: function (e) { - var map = this._map, - zoom = map.getZoom() + (e.originalEvent.shiftKey ? -1 : 1); - - if (map.options.doubleClickZoom === 'center') { - map.setZoom(zoom); - } else { - map.setZoomAround(e.containerPoint, zoom); - } - } -}); - -L.Map.addInitHook('addHandler', 'doubleClickZoom', L.Map.DoubleClickZoom); - - -/* - * L.Handler.ScrollWheelZoom is used by L.Map to enable mouse scroll wheel zoom on the map. - */ - -L.Map.mergeOptions({ - scrollWheelZoom: true -}); - -L.Map.ScrollWheelZoom = L.Handler.extend({ - addHooks: function () { - L.DomEvent.on(this._map._container, 'mousewheel', this._onWheelScroll, this); - L.DomEvent.on(this._map._container, 'MozMousePixelScroll', L.DomEvent.preventDefault); - this._delta = 0; - }, - - removeHooks: function () { - L.DomEvent.off(this._map._container, 'mousewheel', this._onWheelScroll); - L.DomEvent.off(this._map._container, 'MozMousePixelScroll', L.DomEvent.preventDefault); - }, - - _onWheelScroll: function (e) { - var delta = L.DomEvent.getWheelDelta(e); - - this._delta += delta; - this._lastMousePos = this._map.mouseEventToContainerPoint(e); - - if (!this._startTime) { - this._startTime = +new Date(); - } - - var left = Math.max(40 - (+new Date() - this._startTime), 0); - - clearTimeout(this._timer); - this._timer = setTimeout(L.bind(this._performZoom, this), left); - - L.DomEvent.preventDefault(e); - L.DomEvent.stopPropagation(e); - }, - - _performZoom: function () { - var map = this._map, - delta = this._delta, - zoom = map.getZoom(); - - delta = delta > 0 ? Math.ceil(delta) : Math.floor(delta); - delta = Math.max(Math.min(delta, 4), -4); - delta = map._limitZoom(zoom + delta) - zoom; - - this._delta = 0; - this._startTime = null; - - if (!delta) { return; } - - if (map.options.scrollWheelZoom === 'center') { - map.setZoom(zoom + delta); - } else { - map.setZoomAround(this._lastMousePos, zoom + delta); - } - } -}); - -L.Map.addInitHook('addHandler', 'scrollWheelZoom', L.Map.ScrollWheelZoom); - - -/* - * Extends the event handling code with double tap support for mobile browsers. - */ - -L.extend(L.DomEvent, { - - _touchstart: L.Browser.msPointer ? 'MSPointerDown' : L.Browser.pointer ? 'pointerdown' : 'touchstart', - _touchend: L.Browser.msPointer ? 'MSPointerUp' : L.Browser.pointer ? 'pointerup' : 'touchend', - - // inspired by Zepto touch code by Thomas Fuchs - addDoubleTapListener: function (obj, handler, id) { - var last, - doubleTap = false, - delay = 250, - touch, - pre = '_leaflet_', - touchstart = this._touchstart, - touchend = this._touchend, - trackedTouches = []; - - function onTouchStart(e) { - var count; - - if (L.Browser.pointer) { - trackedTouches.push(e.pointerId); - count = trackedTouches.length; - } else { - count = e.touches.length; - } - if (count > 1) { - return; - } - - var now = Date.now(), - delta = now - (last || now); - - touch = e.touches ? e.touches[0] : e; - doubleTap = (delta > 0 && delta <= delay); - last = now; - } - - function onTouchEnd(e) { - if (L.Browser.pointer) { - var idx = trackedTouches.indexOf(e.pointerId); - if (idx === -1) { - return; - } - trackedTouches.splice(idx, 1); - } - - if (doubleTap) { - if (L.Browser.pointer) { - // work around .type being readonly with MSPointer* events - var newTouch = { }, - prop; - - // jshint forin:false - for (var i in touch) { - prop = touch[i]; - if (typeof prop === 'function') { - newTouch[i] = prop.bind(touch); - } else { - newTouch[i] = prop; - } - } - touch = newTouch; - } - touch.type = 'dblclick'; - handler(touch); - last = null; - } - } - obj[pre + touchstart + id] = onTouchStart; - obj[pre + touchend + id] = onTouchEnd; - - // on pointer we need to listen on the document, otherwise a drag starting on the map and moving off screen - // will not come through to us, so we will lose track of how many touches are ongoing - var endElement = L.Browser.pointer ? document.documentElement : obj; - - obj.addEventListener(touchstart, onTouchStart, false); - endElement.addEventListener(touchend, onTouchEnd, false); - - if (L.Browser.pointer) { - endElement.addEventListener(L.DomEvent.POINTER_CANCEL, onTouchEnd, false); - } - - return this; - }, - - removeDoubleTapListener: function (obj, id) { - var pre = '_leaflet_'; - - obj.removeEventListener(this._touchstart, obj[pre + this._touchstart + id], false); - (L.Browser.pointer ? document.documentElement : obj).removeEventListener( - this._touchend, obj[pre + this._touchend + id], false); - - if (L.Browser.pointer) { - document.documentElement.removeEventListener(L.DomEvent.POINTER_CANCEL, obj[pre + this._touchend + id], - false); - } - - return this; - } -}); - - -/* - * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices. - */ - -L.extend(L.DomEvent, { - - //static - POINTER_DOWN: L.Browser.msPointer ? 'MSPointerDown' : 'pointerdown', - POINTER_MOVE: L.Browser.msPointer ? 'MSPointerMove' : 'pointermove', - POINTER_UP: L.Browser.msPointer ? 'MSPointerUp' : 'pointerup', - POINTER_CANCEL: L.Browser.msPointer ? 'MSPointerCancel' : 'pointercancel', - - _pointers: [], - _pointerDocumentListener: false, - - // Provides a touch events wrapper for (ms)pointer events. - // Based on changes by veproza https://github.com/CloudMade/Leaflet/pull/1019 - //ref http://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890 - - addPointerListener: function (obj, type, handler, id) { - - switch (type) { - case 'touchstart': - return this.addPointerListenerStart(obj, type, handler, id); - case 'touchend': - return this.addPointerListenerEnd(obj, type, handler, id); - case 'touchmove': - return this.addPointerListenerMove(obj, type, handler, id); - default: - throw 'Unknown touch event type'; - } - }, - - addPointerListenerStart: function (obj, type, handler, id) { - var pre = '_leaflet_', - pointers = this._pointers; - - var cb = function (e) { - if (e.pointerType !== 'mouse' && e.pointerType !== e.MSPOINTER_TYPE_MOUSE) { - L.DomEvent.preventDefault(e); - } - - var alreadyInArray = false; - for (var i = 0; i < pointers.length; i++) { - if (pointers[i].pointerId === e.pointerId) { - alreadyInArray = true; - break; - } - } - if (!alreadyInArray) { - pointers.push(e); - } - - e.touches = pointers.slice(); - e.changedTouches = [e]; - - handler(e); - }; - - obj[pre + 'touchstart' + id] = cb; - obj.addEventListener(this.POINTER_DOWN, cb, false); - - // need to also listen for end events to keep the _pointers list accurate - // this needs to be on the body and never go away - if (!this._pointerDocumentListener) { - var internalCb = function (e) { - for (var i = 0; i < pointers.length; i++) { - if (pointers[i].pointerId === e.pointerId) { - pointers.splice(i, 1); - break; - } - } - }; - //We listen on the documentElement as any drags that end by moving the touch off the screen get fired there - document.documentElement.addEventListener(this.POINTER_UP, internalCb, false); - document.documentElement.addEventListener(this.POINTER_CANCEL, internalCb, false); - - this._pointerDocumentListener = true; - } - - return this; - }, - - addPointerListenerMove: function (obj, type, handler, id) { - var pre = '_leaflet_', - touches = this._pointers; - - function cb(e) { - - // don't fire touch moves when mouse isn't down - if ((e.pointerType === e.MSPOINTER_TYPE_MOUSE || e.pointerType === 'mouse') && e.buttons === 0) { return; } - - for (var i = 0; i < touches.length; i++) { - if (touches[i].pointerId === e.pointerId) { - touches[i] = e; - break; - } - } - - e.touches = touches.slice(); - e.changedTouches = [e]; - - handler(e); - } - - obj[pre + 'touchmove' + id] = cb; - obj.addEventListener(this.POINTER_MOVE, cb, false); - - return this; - }, - - addPointerListenerEnd: function (obj, type, handler, id) { - var pre = '_leaflet_', - touches = this._pointers; - - var cb = function (e) { - for (var i = 0; i < touches.length; i++) { - if (touches[i].pointerId === e.pointerId) { - touches.splice(i, 1); - break; - } - } - - e.touches = touches.slice(); - e.changedTouches = [e]; - - handler(e); - }; - - obj[pre + 'touchend' + id] = cb; - obj.addEventListener(this.POINTER_UP, cb, false); - obj.addEventListener(this.POINTER_CANCEL, cb, false); - - return this; - }, - - removePointerListener: function (obj, type, id) { - var pre = '_leaflet_', - cb = obj[pre + type + id]; - - switch (type) { - case 'touchstart': - obj.removeEventListener(this.POINTER_DOWN, cb, false); - break; - case 'touchmove': - obj.removeEventListener(this.POINTER_MOVE, cb, false); - break; - case 'touchend': - obj.removeEventListener(this.POINTER_UP, cb, false); - obj.removeEventListener(this.POINTER_CANCEL, cb, false); - break; - } - - return this; - } -}); - - -/* - * L.Handler.TouchZoom is used by L.Map to add pinch zoom on supported mobile browsers. - */ - -L.Map.mergeOptions({ - touchZoom: L.Browser.touch && !L.Browser.android23, - bounceAtZoomLimits: true -}); - -L.Map.TouchZoom = L.Handler.extend({ - addHooks: function () { - L.DomEvent.on(this._map._container, 'touchstart', this._onTouchStart, this); - }, - - removeHooks: function () { - L.DomEvent.off(this._map._container, 'touchstart', this._onTouchStart, this); - }, - - _onTouchStart: function (e) { - var map = this._map; - - if (!e.touches || e.touches.length !== 2 || map._animatingZoom || this._zooming) { return; } - - var p1 = map.mouseEventToLayerPoint(e.touches[0]), - p2 = map.mouseEventToLayerPoint(e.touches[1]), - viewCenter = map._getCenterLayerPoint(); - - this._startCenter = p1.add(p2)._divideBy(2); - this._startDist = p1.distanceTo(p2); - - this._moved = false; - this._zooming = true; - - this._centerOffset = viewCenter.subtract(this._startCenter); - - if (map._panAnim) { - map._panAnim.stop(); - } - - L.DomEvent - .on(document, 'touchmove', this._onTouchMove, this) - .on(document, 'touchend', this._onTouchEnd, this); - - L.DomEvent.preventDefault(e); - }, - - _onTouchMove: function (e) { - var map = this._map; - - if (!e.touches || e.touches.length !== 2 || !this._zooming) { return; } - - var p1 = map.mouseEventToLayerPoint(e.touches[0]), - p2 = map.mouseEventToLayerPoint(e.touches[1]); - - this._scale = p1.distanceTo(p2) / this._startDist; - this._delta = p1._add(p2)._divideBy(2)._subtract(this._startCenter); - - if (this._scale === 1) { return; } - - if (!map.options.bounceAtZoomLimits) { - if ((map.getZoom() === map.getMinZoom() && this._scale < 1) || - (map.getZoom() === map.getMaxZoom() && this._scale > 1)) { return; } - } - - if (!this._moved) { - L.DomUtil.addClass(map._mapPane, 'leaflet-touching'); - - map - .fire('movestart') - .fire('zoomstart'); - - this._moved = true; - } - - L.Util.cancelAnimFrame(this._animRequest); - this._animRequest = L.Util.requestAnimFrame( - this._updateOnMove, this, true, this._map._container); - - L.DomEvent.preventDefault(e); - }, - - _updateOnMove: function () { - var map = this._map, - origin = this._getScaleOrigin(), - center = map.layerPointToLatLng(origin), - zoom = map.getScaleZoom(this._scale); - - map._animateZoom(center, zoom, this._startCenter, this._scale, this._delta, false, true); - }, - - _onTouchEnd: function () { - if (!this._moved || !this._zooming) { - this._zooming = false; - return; - } - - var map = this._map; - - this._zooming = false; - L.DomUtil.removeClass(map._mapPane, 'leaflet-touching'); - L.Util.cancelAnimFrame(this._animRequest); - - L.DomEvent - .off(document, 'touchmove', this._onTouchMove) - .off(document, 'touchend', this._onTouchEnd); - - var origin = this._getScaleOrigin(), - center = map.layerPointToLatLng(origin), - - oldZoom = map.getZoom(), - floatZoomDelta = map.getScaleZoom(this._scale) - oldZoom, - roundZoomDelta = (floatZoomDelta > 0 ? - Math.ceil(floatZoomDelta) : Math.floor(floatZoomDelta)), - - zoom = map._limitZoom(oldZoom + roundZoomDelta), - scale = map.getZoomScale(zoom) / this._scale; - - map._animateZoom(center, zoom, origin, scale); - }, - - _getScaleOrigin: function () { - var centerOffset = this._centerOffset.subtract(this._delta).divideBy(this._scale); - return this._startCenter.add(centerOffset); - } -}); - -L.Map.addInitHook('addHandler', 'touchZoom', L.Map.TouchZoom); - - -/* - * L.Map.Tap is used to enable mobile hacks like quick taps and long hold. - */ - -L.Map.mergeOptions({ - tap: true, - tapTolerance: 15 -}); - -L.Map.Tap = L.Handler.extend({ - addHooks: function () { - L.DomEvent.on(this._map._container, 'touchstart', this._onDown, this); - }, - - removeHooks: function () { - L.DomEvent.off(this._map._container, 'touchstart', this._onDown, this); - }, - - _onDown: function (e) { - if (!e.touches) { return; } - - L.DomEvent.preventDefault(e); - - this._fireClick = true; - - // don't simulate click or track longpress if more than 1 touch - if (e.touches.length > 1) { - this._fireClick = false; - clearTimeout(this._holdTimeout); - return; - } - - var first = e.touches[0], - el = first.target; - - this._startPos = this._newPos = new L.Point(first.clientX, first.clientY); - - // if touching a link, highlight it - if (el.tagName && el.tagName.toLowerCase() === 'a') { - L.DomUtil.addClass(el, 'leaflet-active'); - } - - // simulate long hold but setting a timeout - this._holdTimeout = setTimeout(L.bind(function () { - if (this._isTapValid()) { - this._fireClick = false; - this._onUp(); - this._simulateEvent('contextmenu', first); - } - }, this), 1000); - - L.DomEvent - .on(document, 'touchmove', this._onMove, this) - .on(document, 'touchend', this._onUp, this); - }, - - _onUp: function (e) { - clearTimeout(this._holdTimeout); - - L.DomEvent - .off(document, 'touchmove', this._onMove, this) - .off(document, 'touchend', this._onUp, this); - - if (this._fireClick && e && e.changedTouches) { - - var first = e.changedTouches[0], - el = first.target; - - if (el && el.tagName && el.tagName.toLowerCase() === 'a') { - L.DomUtil.removeClass(el, 'leaflet-active'); - } - - // simulate click if the touch didn't move too much - if (this._isTapValid()) { - this._simulateEvent('click', first); - } - } - }, - - _isTapValid: function () { - return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance; - }, - - _onMove: function (e) { - var first = e.touches[0]; - this._newPos = new L.Point(first.clientX, first.clientY); - }, - - _simulateEvent: function (type, e) { - var simulatedEvent = document.createEvent('MouseEvents'); - - simulatedEvent._simulated = true; - e.target._simulatedClick = true; - - simulatedEvent.initMouseEvent( - type, true, true, window, 1, - e.screenX, e.screenY, - e.clientX, e.clientY, - false, false, false, false, 0, null); - - e.target.dispatchEvent(simulatedEvent); - } -}); - -if (L.Browser.touch && !L.Browser.pointer) { - L.Map.addInitHook('addHandler', 'tap', L.Map.Tap); -} - - -/* - * L.Handler.ShiftDragZoom is used to add shift-drag zoom interaction to the map - * (zoom to a selected bounding box), enabled by default. - */ - -L.Map.mergeOptions({ - boxZoom: true -}); - -L.Map.BoxZoom = L.Handler.extend({ - initialize: function (map) { - this._map = map; - this._container = map._container; - this._pane = map._panes.overlayPane; - this._moved = false; - }, - - addHooks: function () { - L.DomEvent.on(this._container, 'mousedown', this._onMouseDown, this); - }, - - removeHooks: function () { - L.DomEvent.off(this._container, 'mousedown', this._onMouseDown); - this._moved = false; - }, - - moved: function () { - return this._moved; - }, - - _onMouseDown: function (e) { - this._moved = false; - - if (!e.shiftKey || ((e.which !== 1) && (e.button !== 1))) { return false; } - - L.DomUtil.disableTextSelection(); - L.DomUtil.disableImageDrag(); - - this._startLayerPoint = this._map.mouseEventToLayerPoint(e); - - L.DomEvent - .on(document, 'mousemove', this._onMouseMove, this) - .on(document, 'mouseup', this._onMouseUp, this) - .on(document, 'keydown', this._onKeyDown, this); - }, - - _onMouseMove: function (e) { - if (!this._moved) { - this._box = L.DomUtil.create('div', 'leaflet-zoom-box', this._pane); - L.DomUtil.setPosition(this._box, this._startLayerPoint); - - //TODO refactor: move cursor to styles - this._container.style.cursor = 'crosshair'; - this._map.fire('boxzoomstart'); - } - - var startPoint = this._startLayerPoint, - box = this._box, - - layerPoint = this._map.mouseEventToLayerPoint(e), - offset = layerPoint.subtract(startPoint), - - newPos = new L.Point( - Math.min(layerPoint.x, startPoint.x), - Math.min(layerPoint.y, startPoint.y)); - - L.DomUtil.setPosition(box, newPos); - - this._moved = true; - - // TODO refactor: remove hardcoded 4 pixels - box.style.width = (Math.max(0, Math.abs(offset.x) - 4)) + 'px'; - box.style.height = (Math.max(0, Math.abs(offset.y) - 4)) + 'px'; - }, - - _finish: function () { - if (this._moved) { - this._pane.removeChild(this._box); - this._container.style.cursor = ''; - } - - L.DomUtil.enableTextSelection(); - L.DomUtil.enableImageDrag(); - - L.DomEvent - .off(document, 'mousemove', this._onMouseMove) - .off(document, 'mouseup', this._onMouseUp) - .off(document, 'keydown', this._onKeyDown); - }, - - _onMouseUp: function (e) { - - this._finish(); - - var map = this._map, - layerPoint = map.mouseEventToLayerPoint(e); - - if (this._startLayerPoint.equals(layerPoint)) { return; } - - var bounds = new L.LatLngBounds( - map.layerPointToLatLng(this._startLayerPoint), - map.layerPointToLatLng(layerPoint)); - - map.fitBounds(bounds); - - map.fire('boxzoomend', { - boxZoomBounds: bounds - }); - }, - - _onKeyDown: function (e) { - if (e.keyCode === 27) { - this._finish(); - } - } -}); - -L.Map.addInitHook('addHandler', 'boxZoom', L.Map.BoxZoom); - - -/* - * L.Map.Keyboard is handling keyboard interaction with the map, enabled by default. - */ - -L.Map.mergeOptions({ - keyboard: true, - keyboardPanOffset: 80, - keyboardZoomOffset: 1 -}); - -L.Map.Keyboard = L.Handler.extend({ - - keyCodes: { - left: [37], - right: [39], - down: [40], - up: [38], - zoomIn: [187, 107, 61, 171], - zoomOut: [189, 109, 173] - }, - - initialize: function (map) { - this._map = map; - - this._setPanOffset(map.options.keyboardPanOffset); - this._setZoomOffset(map.options.keyboardZoomOffset); - }, - - addHooks: function () { - var container = this._map._container; - - // make the container focusable by tabbing - if (container.tabIndex === -1) { - container.tabIndex = '0'; - } - - L.DomEvent - .on(container, 'focus', this._onFocus, this) - .on(container, 'blur', this._onBlur, this) - .on(container, 'mousedown', this._onMouseDown, this); - - this._map - .on('focus', this._addHooks, this) - .on('blur', this._removeHooks, this); - }, - - removeHooks: function () { - this._removeHooks(); - - var container = this._map._container; - - L.DomEvent - .off(container, 'focus', this._onFocus, this) - .off(container, 'blur', this._onBlur, this) - .off(container, 'mousedown', this._onMouseDown, this); - - this._map - .off('focus', this._addHooks, this) - .off('blur', this._removeHooks, this); - }, - - _onMouseDown: function () { - if (this._focused) { return; } - - var body = document.body, - docEl = document.documentElement, - top = body.scrollTop || docEl.scrollTop, - left = body.scrollLeft || docEl.scrollLeft; - - this._map._container.focus(); - - window.scrollTo(left, top); - }, - - _onFocus: function () { - this._focused = true; - this._map.fire('focus'); - }, - - _onBlur: function () { - this._focused = false; - this._map.fire('blur'); - }, - - _setPanOffset: function (pan) { - var keys = this._panKeys = {}, - codes = this.keyCodes, - i, len; - - for (i = 0, len = codes.left.length; i < len; i++) { - keys[codes.left[i]] = [-1 * pan, 0]; - } - for (i = 0, len = codes.right.length; i < len; i++) { - keys[codes.right[i]] = [pan, 0]; - } - for (i = 0, len = codes.down.length; i < len; i++) { - keys[codes.down[i]] = [0, pan]; - } - for (i = 0, len = codes.up.length; i < len; i++) { - keys[codes.up[i]] = [0, -1 * pan]; - } - }, - - _setZoomOffset: function (zoom) { - var keys = this._zoomKeys = {}, - codes = this.keyCodes, - i, len; - - for (i = 0, len = codes.zoomIn.length; i < len; i++) { - keys[codes.zoomIn[i]] = zoom; - } - for (i = 0, len = codes.zoomOut.length; i < len; i++) { - keys[codes.zoomOut[i]] = -zoom; - } - }, - - _addHooks: function () { - L.DomEvent.on(document, 'keydown', this._onKeyDown, this); - }, - - _removeHooks: function () { - L.DomEvent.off(document, 'keydown', this._onKeyDown, this); - }, - - _onKeyDown: function (e) { - var key = e.keyCode, - map = this._map; - - if (key in this._panKeys) { - - if (map._panAnim && map._panAnim._inProgress) { return; } - - map.panBy(this._panKeys[key]); - - if (map.options.maxBounds) { - map.panInsideBounds(map.options.maxBounds); - } - - } else if (key in this._zoomKeys) { - map.setZoom(map.getZoom() + this._zoomKeys[key]); - - } else { - return; - } - - L.DomEvent.stop(e); - } -}); - -L.Map.addInitHook('addHandler', 'keyboard', L.Map.Keyboard); - - -/* - * L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable. - */ - -L.Handler.MarkerDrag = L.Handler.extend({ - initialize: function (marker) { - this._marker = marker; - }, - - addHooks: function () { - var icon = this._marker._icon; - if (!this._draggable) { - this._draggable = new L.Draggable(icon, icon); - } - - this._draggable - .on('dragstart', this._onDragStart, this) - .on('drag', this._onDrag, this) - .on('dragend', this._onDragEnd, this); - this._draggable.enable(); - L.DomUtil.addClass(this._marker._icon, 'leaflet-marker-draggable'); - }, - - removeHooks: function () { - this._draggable - .off('dragstart', this._onDragStart, this) - .off('drag', this._onDrag, this) - .off('dragend', this._onDragEnd, this); - - this._draggable.disable(); - L.DomUtil.removeClass(this._marker._icon, 'leaflet-marker-draggable'); - }, - - moved: function () { - return this._draggable && this._draggable._moved; - }, - - _onDragStart: function () { - this._marker - .closePopup() - .fire('movestart') - .fire('dragstart'); - }, - - _onDrag: function () { - var marker = this._marker, - shadow = marker._shadow, - iconPos = L.DomUtil.getPosition(marker._icon), - latlng = marker._map.layerPointToLatLng(iconPos); - - // update shadow position - if (shadow) { - L.DomUtil.setPosition(shadow, iconPos); - } - - marker._latlng = latlng; - - marker - .fire('move', {latlng: latlng}) - .fire('drag'); - }, - - _onDragEnd: function (e) { - this._marker - .fire('moveend') - .fire('dragend', e); - } -}); - - -/* - * L.Control is a base class for implementing map controls. Handles positioning. - * All other controls extend from this class. - */ - -L.Control = L.Class.extend({ - options: { - position: 'topright' - }, - - initialize: function (options) { - L.setOptions(this, options); - }, - - getPosition: function () { - return this.options.position; - }, - - setPosition: function (position) { - var map = this._map; - - if (map) { - map.removeControl(this); - } - - this.options.position = position; - - if (map) { - map.addControl(this); - } - - return this; - }, - - getContainer: function () { - return this._container; - }, - - addTo: function (map) { - this._map = map; - - var container = this._container = this.onAdd(map), - pos = this.getPosition(), - corner = map._controlCorners[pos]; - - L.DomUtil.addClass(container, 'leaflet-control'); - - if (pos.indexOf('bottom') !== -1) { - corner.insertBefore(container, corner.firstChild); - } else { - corner.appendChild(container); - } - - return this; - }, - - removeFrom: function (map) { - var pos = this.getPosition(), - corner = map._controlCorners[pos]; - - corner.removeChild(this._container); - this._map = null; - - if (this.onRemove) { - this.onRemove(map); - } - - return this; - }, - - _refocusOnMap: function () { - if (this._map) { - this._map.getContainer().focus(); - } - } -}); - -L.control = function (options) { - return new L.Control(options); -}; - - -// adds control-related methods to L.Map - -L.Map.include({ - addControl: function (control) { - control.addTo(this); - return this; - }, - - removeControl: function (control) { - control.removeFrom(this); - return this; - }, - - _initControlPos: function () { - var corners = this._controlCorners = {}, - l = 'leaflet-', - container = this._controlContainer = - L.DomUtil.create('div', l + 'control-container', this._container); - - function createCorner(vSide, hSide) { - var className = l + vSide + ' ' + l + hSide; - - corners[vSide + hSide] = L.DomUtil.create('div', className, container); - } - - createCorner('top', 'left'); - createCorner('top', 'right'); - createCorner('bottom', 'left'); - createCorner('bottom', 'right'); - }, - - _clearControlPos: function () { - this._container.removeChild(this._controlContainer); - } -}); - - -/* - * L.Control.Zoom is used for the default zoom buttons on the map. - */ - -L.Control.Zoom = L.Control.extend({ - options: { - position: 'topleft', - zoomInText: '+', - zoomInTitle: 'Zoom in', - zoomOutText: '-', - zoomOutTitle: 'Zoom out' - }, - - onAdd: function (map) { - var zoomName = 'leaflet-control-zoom', - container = L.DomUtil.create('div', zoomName + ' leaflet-bar'); - - this._map = map; - - this._zoomInButton = this._createButton( - this.options.zoomInText, this.options.zoomInTitle, - zoomName + '-in', container, this._zoomIn, this); - this._zoomOutButton = this._createButton( - this.options.zoomOutText, this.options.zoomOutTitle, - zoomName + '-out', container, this._zoomOut, this); - - this._updateDisabled(); - map.on('zoomend zoomlevelschange', this._updateDisabled, this); - - return container; - }, - - onRemove: function (map) { - map.off('zoomend zoomlevelschange', this._updateDisabled, this); - }, - - _zoomIn: function (e) { - this._map.zoomIn(e.shiftKey ? 3 : 1); - }, - - _zoomOut: function (e) { - this._map.zoomOut(e.shiftKey ? 3 : 1); - }, - - _createButton: function (html, title, className, container, fn, context) { - var link = L.DomUtil.create('a', className, container); - link.innerHTML = html; - link.href = '#'; - link.title = title; - - var stop = L.DomEvent.stopPropagation; - - L.DomEvent - .on(link, 'click', stop) - .on(link, 'mousedown', stop) - .on(link, 'dblclick', stop) - .on(link, 'click', L.DomEvent.preventDefault) - .on(link, 'click', fn, context) - .on(link, 'click', this._refocusOnMap, context); - - return link; - }, - - _updateDisabled: function () { - var map = this._map, - className = 'leaflet-disabled'; - - L.DomUtil.removeClass(this._zoomInButton, className); - L.DomUtil.removeClass(this._zoomOutButton, className); - - if (map._zoom === map.getMinZoom()) { - L.DomUtil.addClass(this._zoomOutButton, className); - } - if (map._zoom === map.getMaxZoom()) { - L.DomUtil.addClass(this._zoomInButton, className); - } - } -}); - -L.Map.mergeOptions({ - zoomControl: true -}); - -L.Map.addInitHook(function () { - if (this.options.zoomControl) { - this.zoomControl = new L.Control.Zoom(); - this.addControl(this.zoomControl); - } -}); - -L.control.zoom = function (options) { - return new L.Control.Zoom(options); -}; - - - -/* - * L.Control.Attribution is used for displaying attribution on the map (added by default). - */ - -L.Control.Attribution = L.Control.extend({ - options: { - position: 'bottomright', - prefix: '<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>' - }, - - initialize: function (options) { - L.setOptions(this, options); - - this._attributions = {}; - }, - - onAdd: function (map) { - this._container = L.DomUtil.create('div', 'leaflet-control-attribution'); - L.DomEvent.disableClickPropagation(this._container); - - for (var i in map._layers) { - if (map._layers[i].getAttribution) { - this.addAttribution(map._layers[i].getAttribution()); - } - } - - map - .on('layeradd', this._onLayerAdd, this) - .on('layerremove', this._onLayerRemove, this); - - this._update(); - - return this._container; - }, - - onRemove: function (map) { - map - .off('layeradd', this._onLayerAdd) - .off('layerremove', this._onLayerRemove); - - }, - - setPrefix: function (prefix) { - this.options.prefix = prefix; - this._update(); - return this; - }, - - addAttribution: function (text) { - if (!text) { return; } - - if (!this._attributions[text]) { - this._attributions[text] = 0; - } - this._attributions[text]++; - - this._update(); - - return this; - }, - - removeAttribution: function (text) { - if (!text) { return; } - - if (this._attributions[text]) { - this._attributions[text]--; - this._update(); - } - - return this; - }, - - _update: function () { - if (!this._map) { return; } - - var attribs = []; - - for (var i in this._attributions) { - if (this._attributions[i]) { - attribs.push(i); - } - } - - var prefixAndAttribs = []; - - if (this.options.prefix) { - prefixAndAttribs.push(this.options.prefix); - } - if (attribs.length) { - prefixAndAttribs.push(attribs.join(', ')); - } - - this._container.innerHTML = prefixAndAttribs.join(' | '); - }, - - _onLayerAdd: function (e) { - if (e.layer.getAttribution) { - this.addAttribution(e.layer.getAttribution()); - } - }, - - _onLayerRemove: function (e) { - if (e.layer.getAttribution) { - this.removeAttribution(e.layer.getAttribution()); - } - } -}); - -L.Map.mergeOptions({ - attributionControl: true -}); - -L.Map.addInitHook(function () { - if (this.options.attributionControl) { - this.attributionControl = (new L.Control.Attribution()).addTo(this); - } -}); - -L.control.attribution = function (options) { - return new L.Control.Attribution(options); -}; - - -/* - * L.Control.Scale is used for displaying metric/imperial scale on the map. - */ - -L.Control.Scale = L.Control.extend({ - options: { - position: 'bottomleft', - maxWidth: 100, - metric: true, - imperial: true, - updateWhenIdle: false - }, - - onAdd: function (map) { - this._map = map; - - var className = 'leaflet-control-scale', - container = L.DomUtil.create('div', className), - options = this.options; - - this._addScales(options, className, container); - - map.on(options.updateWhenIdle ? 'moveend' : 'move', this._update, this); - map.whenReady(this._update, this); - - return container; - }, - - onRemove: function (map) { - map.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this); - }, - - _addScales: function (options, className, container) { - if (options.metric) { - this._mScale = L.DomUtil.create('div', className + '-line', container); - } - if (options.imperial) { - this._iScale = L.DomUtil.create('div', className + '-line', container); - } - }, - - _update: function () { - var bounds = this._map.getBounds(), - centerLat = bounds.getCenter().lat, - halfWorldMeters = 6378137 * Math.PI * Math.cos(centerLat * Math.PI / 180), - dist = halfWorldMeters * (bounds.getNorthEast().lng - bounds.getSouthWest().lng) / 180, - - size = this._map.getSize(), - options = this.options, - maxMeters = 0; - - if (size.x > 0) { - maxMeters = dist * (options.maxWidth / size.x); - } - - this._updateScales(options, maxMeters); - }, - - _updateScales: function (options, maxMeters) { - if (options.metric && maxMeters) { - this._updateMetric(maxMeters); - } - - if (options.imperial && maxMeters) { - this._updateImperial(maxMeters); - } - }, - - _updateMetric: function (maxMeters) { - var meters = this._getRoundNum(maxMeters); - - this._mScale.style.width = this._getScaleWidth(meters / maxMeters) + 'px'; - this._mScale.innerHTML = meters < 1000 ? meters + ' m' : (meters / 1000) + ' km'; - }, - - _updateImperial: function (maxMeters) { - var maxFeet = maxMeters * 3.2808399, - scale = this._iScale, - maxMiles, miles, feet; - - if (maxFeet > 5280) { - maxMiles = maxFeet / 5280; - miles = this._getRoundNum(maxMiles); - - scale.style.width = this._getScaleWidth(miles / maxMiles) + 'px'; - scale.innerHTML = miles + ' mi'; - - } else { - feet = this._getRoundNum(maxFeet); - - scale.style.width = this._getScaleWidth(feet / maxFeet) + 'px'; - scale.innerHTML = feet + ' ft'; - } - }, - - _getScaleWidth: function (ratio) { - return Math.round(this.options.maxWidth * ratio) - 10; - }, - - _getRoundNum: function (num) { - var pow10 = Math.pow(10, (Math.floor(num) + '').length - 1), - d = num / pow10; - - d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : 1; - - return pow10 * d; - } -}); - -L.control.scale = function (options) { - return new L.Control.Scale(options); -}; - - -/* - * L.Control.Layers is a control to allow users to switch between different layers on the map. - */ - -L.Control.Layers = L.Control.extend({ - options: { - collapsed: true, - position: 'topright', - autoZIndex: true - }, - - initialize: function (baseLayers, overlays, options) { - L.setOptions(this, options); - - this._layers = {}; - this._lastZIndex = 0; - this._handlingClick = false; - - for (var i in baseLayers) { - this._addLayer(baseLayers[i], i); - } - - for (i in overlays) { - this._addLayer(overlays[i], i, true); - } - }, - - onAdd: function (map) { - this._initLayout(); - this._update(); - - map - .on('layeradd', this._onLayerChange, this) - .on('layerremove', this._onLayerChange, this); - - return this._container; - }, - - onRemove: function (map) { - map - .off('layeradd', this._onLayerChange, this) - .off('layerremove', this._onLayerChange, this); - }, - - addBaseLayer: function (layer, name) { - this._addLayer(layer, name); - this._update(); - return this; - }, - - addOverlay: function (layer, name) { - this._addLayer(layer, name, true); - this._update(); - return this; - }, - - removeLayer: function (layer) { - var id = L.stamp(layer); - delete this._layers[id]; - this._update(); - return this; - }, - - _initLayout: function () { - var className = 'leaflet-control-layers', - container = this._container = L.DomUtil.create('div', className); - - //Makes this work on IE10 Touch devices by stopping it from firing a mouseout event when the touch is released - container.setAttribute('aria-haspopup', true); - - if (!L.Browser.touch) { - L.DomEvent - .disableClickPropagation(container) - .disableScrollPropagation(container); - } else { - L.DomEvent.on(container, 'click', L.DomEvent.stopPropagation); - } - - var form = this._form = L.DomUtil.create('form', className + '-list'); - - if (this.options.collapsed) { - if (!L.Browser.android) { - L.DomEvent - .on(container, 'mouseover', this._expand, this) - .on(container, 'mouseout', this._collapse, this); - } - var link = this._layersLink = L.DomUtil.create('a', className + '-toggle', container); - link.href = '#'; - link.title = 'Layers'; - - if (L.Browser.touch) { - L.DomEvent - .on(link, 'click', L.DomEvent.stop) - .on(link, 'click', this._expand, this); - } - else { - L.DomEvent.on(link, 'focus', this._expand, this); - } - //Work around for Firefox android issue https://github.com/Leaflet/Leaflet/issues/2033 - L.DomEvent.on(form, 'click', function () { - setTimeout(L.bind(this._onInputClick, this), 0); - }, this); - - this._map.on('click', this._collapse, this); - // TODO keyboard accessibility - } else { - this._expand(); - } - - this._baseLayersList = L.DomUtil.create('div', className + '-base', form); - this._separator = L.DomUtil.create('div', className + '-separator', form); - this._overlaysList = L.DomUtil.create('div', className + '-overlays', form); - - container.appendChild(form); - }, - - _addLayer: function (layer, name, overlay) { - var id = L.stamp(layer); - - this._layers[id] = { - layer: layer, - name: name, - overlay: overlay - }; - - if (this.options.autoZIndex && layer.setZIndex) { - this._lastZIndex++; - layer.setZIndex(this._lastZIndex); - } - }, - - _update: function () { - if (!this._container) { - return; - } - - this._baseLayersList.innerHTML = ''; - this._overlaysList.innerHTML = ''; - - var baseLayersPresent = false, - overlaysPresent = false, - i, obj; - - for (i in this._layers) { - obj = this._layers[i]; - this._addItem(obj); - overlaysPresent = overlaysPresent || obj.overlay; - baseLayersPresent = baseLayersPresent || !obj.overlay; - } - - this._separator.style.display = overlaysPresent && baseLayersPresent ? '' : 'none'; - }, - - _onLayerChange: function (e) { - var obj = this._layers[L.stamp(e.layer)]; - - if (!obj) { return; } - - if (!this._handlingClick) { - this._update(); - } - - var type = obj.overlay ? - (e.type === 'layeradd' ? 'overlayadd' : 'overlayremove') : - (e.type === 'layeradd' ? 'baselayerchange' : null); - - if (type) { - this._map.fire(type, obj); - } - }, - - // IE7 bugs out if you create a radio dynamically, so you have to do it this hacky way (see http://bit.ly/PqYLBe) - _createRadioElement: function (name, checked) { - - var radioHtml = '<input type="radio" class="leaflet-control-layers-selector" name="' + name + '"'; - if (checked) { - radioHtml += ' checked="checked"'; - } - radioHtml += '/>'; - - var radioFragment = document.createElement('div'); - radioFragment.innerHTML = radioHtml; - - return radioFragment.firstChild; - }, - - _addItem: function (obj) { - var label = document.createElement('label'), - input, - checked = this._map.hasLayer(obj.layer); - - if (obj.overlay) { - input = document.createElement('input'); - input.type = 'checkbox'; - input.className = 'leaflet-control-layers-selector'; - input.defaultChecked = checked; - } else { - input = this._createRadioElement('leaflet-base-layers', checked); - } - - input.layerId = L.stamp(obj.layer); - - L.DomEvent.on(input, 'click', this._onInputClick, this); - - var name = document.createElement('span'); - name.innerHTML = ' ' + obj.name; - - label.appendChild(input); - label.appendChild(name); - - var container = obj.overlay ? this._overlaysList : this._baseLayersList; - container.appendChild(label); - - return label; - }, - - _onInputClick: function () { - var i, input, obj, - inputs = this._form.getElementsByTagName('input'), - inputsLen = inputs.length; - - this._handlingClick = true; - - for (i = 0; i < inputsLen; i++) { - input = inputs[i]; - obj = this._layers[input.layerId]; - - if (input.checked && !this._map.hasLayer(obj.layer)) { - this._map.addLayer(obj.layer); - - } else if (!input.checked && this._map.hasLayer(obj.layer)) { - this._map.removeLayer(obj.layer); - } - } - - this._handlingClick = false; - - this._refocusOnMap(); - }, - - _expand: function () { - L.DomUtil.addClass(this._container, 'leaflet-control-layers-expanded'); - }, - - _collapse: function () { - this._container.className = this._container.className.replace(' leaflet-control-layers-expanded', ''); - } -}); - -L.control.layers = function (baseLayers, overlays, options) { - return new L.Control.Layers(baseLayers, overlays, options); -}; - - -/* - * L.PosAnimation is used by Leaflet internally for pan animations. - */ - -L.PosAnimation = L.Class.extend({ - includes: L.Mixin.Events, - - run: function (el, newPos, duration, easeLinearity) { // (HTMLElement, Point[, Number, Number]) - this.stop(); - - this._el = el; - this._inProgress = true; - this._newPos = newPos; - - this.fire('start'); - - el.style[L.DomUtil.TRANSITION] = 'all ' + (duration || 0.25) + - 's cubic-bezier(0,0,' + (easeLinearity || 0.5) + ',1)'; - - L.DomEvent.on(el, L.DomUtil.TRANSITION_END, this._onTransitionEnd, this); - L.DomUtil.setPosition(el, newPos); - - // toggle reflow, Chrome flickers for some reason if you don't do this - L.Util.falseFn(el.offsetWidth); - - // there's no native way to track value updates of transitioned properties, so we imitate this - this._stepTimer = setInterval(L.bind(this._onStep, this), 50); - }, - - stop: function () { - if (!this._inProgress) { return; } - - // if we just removed the transition property, the element would jump to its final position, - // so we need to make it stay at the current position - - L.DomUtil.setPosition(this._el, this._getPos()); - this._onTransitionEnd(); - L.Util.falseFn(this._el.offsetWidth); // force reflow in case we are about to start a new animation - }, - - _onStep: function () { - var stepPos = this._getPos(); - if (!stepPos) { - this._onTransitionEnd(); - return; - } - // jshint camelcase: false - // make L.DomUtil.getPosition return intermediate position value during animation - this._el._leaflet_pos = stepPos; - - this.fire('step'); - }, - - // you can't easily get intermediate values of properties animated with CSS3 Transitions, - // we need to parse computed style (in case of transform it returns matrix string) - - _transformRe: /([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/, - - _getPos: function () { - var left, top, matches, - el = this._el, - style = window.getComputedStyle(el); - - if (L.Browser.any3d) { - matches = style[L.DomUtil.TRANSFORM].match(this._transformRe); - if (!matches) { return; } - left = parseFloat(matches[1]); - top = parseFloat(matches[2]); - } else { - left = parseFloat(style.left); - top = parseFloat(style.top); - } - - return new L.Point(left, top, true); - }, - - _onTransitionEnd: function () { - L.DomEvent.off(this._el, L.DomUtil.TRANSITION_END, this._onTransitionEnd, this); - - if (!this._inProgress) { return; } - this._inProgress = false; - - this._el.style[L.DomUtil.TRANSITION] = ''; - - // jshint camelcase: false - // make sure L.DomUtil.getPosition returns the final position value after animation - this._el._leaflet_pos = this._newPos; - - clearInterval(this._stepTimer); - - this.fire('step').fire('end'); - } - -}); - - -/* - * Extends L.Map to handle panning animations. - */ - -L.Map.include({ - - setView: function (center, zoom, options) { - - zoom = zoom === undefined ? this._zoom : this._limitZoom(zoom); - center = this._limitCenter(L.latLng(center), zoom, this.options.maxBounds); - options = options || {}; - - if (this._panAnim) { - this._panAnim.stop(); - } - - if (this._loaded && !options.reset && options !== true) { - - if (options.animate !== undefined) { - options.zoom = L.extend({animate: options.animate}, options.zoom); - options.pan = L.extend({animate: options.animate}, options.pan); - } - - // try animating pan or zoom - var animated = (this._zoom !== zoom) ? - this._tryAnimatedZoom && this._tryAnimatedZoom(center, zoom, options.zoom) : - this._tryAnimatedPan(center, options.pan); - - if (animated) { - // prevent resize handler call, the view will refresh after animation anyway - clearTimeout(this._sizeTimer); - return this; - } - } - - // animation didn't start, just reset the map view - this._resetView(center, zoom); - - return this; - }, - - panBy: function (offset, options) { - offset = L.point(offset).round(); - options = options || {}; - - if (!offset.x && !offset.y) { - return this; - } - - if (!this._panAnim) { - this._panAnim = new L.PosAnimation(); - - this._panAnim.on({ - 'step': this._onPanTransitionStep, - 'end': this._onPanTransitionEnd - }, this); - } - - // don't fire movestart if animating inertia - if (!options.noMoveStart) { - this.fire('movestart'); - } - - // animate pan unless animate: false specified - if (options.animate !== false) { - L.DomUtil.addClass(this._mapPane, 'leaflet-pan-anim'); - - var newPos = this._getMapPanePos().subtract(offset); - this._panAnim.run(this._mapPane, newPos, options.duration || 0.25, options.easeLinearity); - } else { - this._rawPanBy(offset); - this.fire('move').fire('moveend'); - } - - return this; - }, - - _onPanTransitionStep: function () { - this.fire('move'); - }, - - _onPanTransitionEnd: function () { - L.DomUtil.removeClass(this._mapPane, 'leaflet-pan-anim'); - this.fire('moveend'); - }, - - _tryAnimatedPan: function (center, options) { - // difference between the new and current centers in pixels - var offset = this._getCenterOffset(center)._floor(); - - // don't animate too far unless animate: true specified in options - if ((options && options.animate) !== true && !this.getSize().contains(offset)) { return false; } - - this.panBy(offset, options); - - return true; - } -}); - - -/* - * L.PosAnimation fallback implementation that powers Leaflet pan animations - * in browsers that don't support CSS3 Transitions. - */ - -L.PosAnimation = L.DomUtil.TRANSITION ? L.PosAnimation : L.PosAnimation.extend({ - - run: function (el, newPos, duration, easeLinearity) { // (HTMLElement, Point[, Number, Number]) - this.stop(); - - this._el = el; - this._inProgress = true; - this._duration = duration || 0.25; - this._easeOutPower = 1 / Math.max(easeLinearity || 0.5, 0.2); - - this._startPos = L.DomUtil.getPosition(el); - this._offset = newPos.subtract(this._startPos); - this._startTime = +new Date(); - - this.fire('start'); - - this._animate(); - }, - - stop: function () { - if (!this._inProgress) { return; } - - this._step(); - this._complete(); - }, - - _animate: function () { - // animation loop - this._animId = L.Util.requestAnimFrame(this._animate, this); - this._step(); - }, - - _step: function () { - var elapsed = (+new Date()) - this._startTime, - duration = this._duration * 1000; - - if (elapsed < duration) { - this._runFrame(this._easeOut(elapsed / duration)); - } else { - this._runFrame(1); - this._complete(); - } - }, - - _runFrame: function (progress) { - var pos = this._startPos.add(this._offset.multiplyBy(progress)); - L.DomUtil.setPosition(this._el, pos); - - this.fire('step'); - }, - - _complete: function () { - L.Util.cancelAnimFrame(this._animId); - - this._inProgress = false; - this.fire('end'); - }, - - _easeOut: function (t) { - return 1 - Math.pow(1 - t, this._easeOutPower); - } -}); - - -/* - * Extends L.Map to handle zoom animations. - */ - -L.Map.mergeOptions({ - zoomAnimation: true, - zoomAnimationThreshold: 4 -}); - -if (L.DomUtil.TRANSITION) { - - L.Map.addInitHook(function () { - // don't animate on browsers without hardware-accelerated transitions or old Android/Opera - this._zoomAnimated = this.options.zoomAnimation && L.DomUtil.TRANSITION && - L.Browser.any3d && !L.Browser.android23 && !L.Browser.mobileOpera; - - // zoom transitions run with the same duration for all layers, so if one of transitionend events - // happens after starting zoom animation (propagating to the map pane), we know that it ended globally - if (this._zoomAnimated) { - L.DomEvent.on(this._mapPane, L.DomUtil.TRANSITION_END, this._catchTransitionEnd, this); - } - }); -} - -L.Map.include(!L.DomUtil.TRANSITION ? {} : { - - _catchTransitionEnd: function (e) { - if (this._animatingZoom && e.propertyName.indexOf('transform') >= 0) { - this._onZoomTransitionEnd(); - } - }, - - _nothingToAnimate: function () { - return !this._container.getElementsByClassName('leaflet-zoom-animated').length; - }, - - _tryAnimatedZoom: function (center, zoom, options) { - - if (this._animatingZoom) { return true; } - - options = options || {}; - - // don't animate if disabled, not supported or zoom difference is too large - if (!this._zoomAnimated || options.animate === false || this._nothingToAnimate() || - Math.abs(zoom - this._zoom) > this.options.zoomAnimationThreshold) { return false; } - - // offset is the pixel coords of the zoom origin relative to the current center - var scale = this.getZoomScale(zoom), - offset = this._getCenterOffset(center)._divideBy(1 - 1 / scale), - origin = this._getCenterLayerPoint()._add(offset); - - // don't animate if the zoom origin isn't within one screen from the current center, unless forced - if (options.animate !== true && !this.getSize().contains(offset)) { return false; } - - this - .fire('movestart') - .fire('zoomstart'); - - this._animateZoom(center, zoom, origin, scale, null, true); - - return true; - }, - - _animateZoom: function (center, zoom, origin, scale, delta, backwards, forTouchZoom) { - - if (!forTouchZoom) { - this._animatingZoom = true; - } - - // put transform transition on all layers with leaflet-zoom-animated class - L.DomUtil.addClass(this._mapPane, 'leaflet-zoom-anim'); - - // remember what center/zoom to set after animation - this._animateToCenter = center; - this._animateToZoom = zoom; - - // disable any dragging during animation - if (L.Draggable) { - L.Draggable._disabled = true; - } - - L.Util.requestAnimFrame(function () { - this.fire('zoomanim', { - center: center, - zoom: zoom, - origin: origin, - scale: scale, - delta: delta, - backwards: backwards - }); - // horrible hack to work around a Chrome bug https://github.com/Leaflet/Leaflet/issues/3689 - setTimeout(L.bind(this._onZoomTransitionEnd, this), 250); - }, this); - }, - - _onZoomTransitionEnd: function () { - if (!this._animatingZoom) { return; } - - this._animatingZoom = false; - - L.DomUtil.removeClass(this._mapPane, 'leaflet-zoom-anim'); - - L.Util.requestAnimFrame(function () { - this._resetView(this._animateToCenter, this._animateToZoom, true, true); - - if (L.Draggable) { - L.Draggable._disabled = false; - } - }, this); - } -}); - - -/* - Zoom animation logic for L.TileLayer. -*/ - -L.TileLayer.include({ - _animateZoom: function (e) { - if (!this._animating) { - this._animating = true; - this._prepareBgBuffer(); - } - - var bg = this._bgBuffer, - transform = L.DomUtil.TRANSFORM, - initialTransform = e.delta ? L.DomUtil.getTranslateString(e.delta) : bg.style[transform], - scaleStr = L.DomUtil.getScaleString(e.scale, e.origin); - - bg.style[transform] = e.backwards ? - scaleStr + ' ' + initialTransform : - initialTransform + ' ' + scaleStr; - }, - - _endZoomAnim: function () { - var front = this._tileContainer, - bg = this._bgBuffer; - - front.style.visibility = ''; - front.parentNode.appendChild(front); // Bring to fore - - // force reflow - L.Util.falseFn(bg.offsetWidth); - - var zoom = this._map.getZoom(); - if (zoom > this.options.maxZoom || zoom < this.options.minZoom) { - this._clearBgBuffer(); - } - - this._animating = false; - }, - - _clearBgBuffer: function () { - var map = this._map; - - if (map && !map._animatingZoom && !map.touchZoom._zooming) { - this._bgBuffer.innerHTML = ''; - this._bgBuffer.style[L.DomUtil.TRANSFORM] = ''; - } - }, - - _prepareBgBuffer: function () { - - var front = this._tileContainer, - bg = this._bgBuffer; - - // if foreground layer doesn't have many tiles but bg layer does, - // keep the existing bg layer and just zoom it some more - - var bgLoaded = this._getLoadedTilesPercentage(bg), - frontLoaded = this._getLoadedTilesPercentage(front); - - if (bg && bgLoaded > 0.5 && frontLoaded < 0.5) { - - front.style.visibility = 'hidden'; - this._stopLoadingImages(front); - return; - } - - // prepare the buffer to become the front tile pane - bg.style.visibility = 'hidden'; - bg.style[L.DomUtil.TRANSFORM] = ''; - - // switch out the current layer to be the new bg layer (and vice-versa) - this._tileContainer = bg; - bg = this._bgBuffer = front; - - this._stopLoadingImages(bg); - - //prevent bg buffer from clearing right after zoom - clearTimeout(this._clearBgBufferTimer); - }, - - _getLoadedTilesPercentage: function (container) { - var tiles = container.getElementsByTagName('img'), - i, len, count = 0; - - for (i = 0, len = tiles.length; i < len; i++) { - if (tiles[i].complete) { - count++; - } - } - return count / len; - }, - - // stops loading all tiles in the background layer - _stopLoadingImages: function (container) { - var tiles = Array.prototype.slice.call(container.getElementsByTagName('img')), - i, len, tile; - - for (i = 0, len = tiles.length; i < len; i++) { - tile = tiles[i]; - - if (!tile.complete) { - tile.onload = L.Util.falseFn; - tile.onerror = L.Util.falseFn; - tile.src = L.Util.emptyImageUrl; - - tile.parentNode.removeChild(tile); - } - } - } -}); - - -/* - * Provides L.Map with convenient shortcuts for using browser geolocation features. - */ - -L.Map.include({ - _defaultLocateOptions: { - watch: false, - setView: false, - maxZoom: Infinity, - timeout: 10000, - maximumAge: 0, - enableHighAccuracy: false - }, - - locate: function (/*Object*/ options) { - - options = this._locateOptions = L.extend(this._defaultLocateOptions, options); - - if (!navigator.geolocation) { - this._handleGeolocationError({ - code: 0, - message: 'Geolocation not supported.' - }); - return this; - } - - var onResponse = L.bind(this._handleGeolocationResponse, this), - onError = L.bind(this._handleGeolocationError, this); - - if (options.watch) { - this._locationWatchId = - navigator.geolocation.watchPosition(onResponse, onError, options); - } else { - navigator.geolocation.getCurrentPosition(onResponse, onError, options); - } - return this; - }, - - stopLocate: function () { - if (navigator.geolocation) { - navigator.geolocation.clearWatch(this._locationWatchId); - } - if (this._locateOptions) { - this._locateOptions.setView = false; - } - return this; - }, - - _handleGeolocationError: function (error) { - var c = error.code, - message = error.message || - (c === 1 ? 'permission denied' : - (c === 2 ? 'position unavailable' : 'timeout')); - - if (this._locateOptions.setView && !this._loaded) { - this.fitWorld(); - } - - this.fire('locationerror', { - code: c, - message: 'Geolocation error: ' + message + '.' - }); - }, - - _handleGeolocationResponse: function (pos) { - var lat = pos.coords.latitude, - lng = pos.coords.longitude, - latlng = new L.LatLng(lat, lng), - - latAccuracy = 180 * pos.coords.accuracy / 40075017, - lngAccuracy = latAccuracy / Math.cos(L.LatLng.DEG_TO_RAD * lat), - - bounds = L.latLngBounds( - [lat - latAccuracy, lng - lngAccuracy], - [lat + latAccuracy, lng + lngAccuracy]), - - options = this._locateOptions; - - if (options.setView) { - var zoom = Math.min(this.getBoundsZoom(bounds), options.maxZoom); - this.setView(latlng, zoom); - } - - var data = { - latlng: latlng, - bounds: bounds, - timestamp: pos.timestamp - }; - - for (var i in pos.coords) { - if (typeof pos.coords[i] === 'number') { - data[i] = pos.coords[i]; - } - } - - this.fire('locationfound', data); - } -}); - - -}(window, document)); \ No newline at end of file diff --git a/www/js/vendor/leaflet.awesome-markers.min.js b/www/js/vendor/leaflet.awesome-markers.min.js deleted file mode 100644 index 376e57e68..000000000 --- a/www/js/vendor/leaflet.awesome-markers.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - Leaflet.AwesomeMarkers, a plugin that adds colorful iconic markers for Leaflet, based on the Font Awesome icons - (c) 2012-2013, Lennard Voogdt - - http://leafletjs.com - https://github.com/lvoogdt -*//*global L*/(function(e,t,n){"use strict";L.AwesomeMarkers={};L.AwesomeMarkers.version="2.0.1";L.AwesomeMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"awesome-marker",prefix:"glyphicon",spinClass:"fa-spin",icon:"home",markerColor:"blue",iconColor:"white"},initialize:function(e){e=L.Util.setOptions(this,e)},createIcon:function(){var e=t.createElement("div"),n=this.options;n.icon&&(e.innerHTML=this._createInner());n.bgPos&&(e.style.backgroundPosition=-n.bgPos.x+"px "+ -n.bgPos.y+"px");this._setIconStyles(e,"icon-"+n.markerColor);return e},_createInner:function(){var e,t="",n="",r="",i=this.options;i.icon.slice(0,i.prefix.length+1)===i.prefix+"-"?e=i.icon:e=i.prefix+"-"+i.icon;i.spin&&typeof i.spinClass=="string"&&(t=i.spinClass);i.iconColor&&(i.iconColor==="white"||i.iconColor==="black"?n="icon-"+i.iconColor:r="style='color: "+i.iconColor+"' ");return"<i "+r+"class='"+i.prefix+" "+e+" "+t+" "+n+"'></i>"},_setIconStyles:function(e,t){var n=this.options,r=L.point(n[t==="shadow"?"shadowSize":"iconSize"]),i;t==="shadow"?i=L.point(n.shadowAnchor||n.iconAnchor):i=L.point(n.iconAnchor);!i&&r&&(i=r.divideBy(2,!0));e.className="awesome-marker-"+t+" "+n.className;if(i){e.style.marginLeft=-i.x+"px";e.style.marginTop=-i.y+"px"}if(r){e.style.width=r.x+"px";e.style.height=r.y+"px"}},createShadow:function(){var e=t.createElement("div");this._setIconStyles(e,"shadow");return e}});L.AwesomeMarkers.icon=function(e){return new L.AwesomeMarkers.Icon(e)}})(this,document); diff --git a/www/js/vendor/leaflet.easy-button.js b/www/js/vendor/leaflet.easy-button.js deleted file mode 100644 index f71e07290..000000000 --- a/www/js/vendor/leaflet.easy-button.js +++ /dev/null @@ -1,379 +0,0 @@ -(function(){ - -// This is for grouping buttons into a bar -// takes an array of `L.easyButton`s and -// then the usual `.addTo(map)` -L.Control.EasyBar = L.Control.extend({ - - options: { - position: 'topleft', // part of leaflet's defaults - id: null, // an id to tag the Bar with - leafletClasses: true // use leaflet classes? - }, - - - initialize: function(buttons, options){ - - if(options){ - L.Util.setOptions( this, options ); - } - - this._buildContainer(); - this._buttons = []; - - for(var i = 0; i < buttons.length; i++){ - buttons[i]._bar = this; - buttons[i]._container = buttons[i].button; - this._buttons.push(buttons[i]); - this.container.appendChild(buttons[i].button); - } - - }, - - - _buildContainer: function(){ - this._container = this.container = L.DomUtil.create('div', ''); - this.options.leafletClasses && L.DomUtil.addClass(this.container, 'leaflet-bar easy-button-container leaflet-control'); - this.options.id && (this.container.id = this.options.id); - }, - - - enable: function(){ - L.DomUtil.addClass(this.container, 'enabled'); - L.DomUtil.removeClass(this.container, 'disabled'); - this.container.setAttribute('aria-hidden', 'false'); - return this; - }, - - - disable: function(){ - L.DomUtil.addClass(this.container, 'disabled'); - L.DomUtil.removeClass(this.container, 'enabled'); - this.container.setAttribute('aria-hidden', 'true'); - return this; - }, - - - onAdd: function () { - return this.container; - }, - - addTo: function (map) { - this._map = map; - - for(var i = 0; i < this._buttons.length; i++){ - this._buttons[i]._map = map; - } - - var container = this._container = this.onAdd(map), - pos = this.getPosition(), - corner = map._controlCorners[pos]; - - L.DomUtil.addClass(container, 'leaflet-control'); - - if (pos.indexOf('bottom') !== -1) { - corner.insertBefore(container, corner.firstChild); - } else { - corner.appendChild(container); - } - - return this; - } - -}); - -L.easyBar = function(){ - var args = [L.Control.EasyBar]; - for(var i = 0; i < arguments.length; i++){ - args.push( arguments[i] ); - } - return new (Function.prototype.bind.apply(L.Control.EasyBar, args)); -}; - -// L.EasyButton is the actual buttons -// can be called without being grouped into a bar -L.Control.EasyButton = L.Control.extend({ - - options: { - position: 'topleft', // part of leaflet's defaults - - id: null, // an id to tag the button with - - type: 'replace', // [(replace|animate)] - // replace swaps out elements - // animate changes classes with all elements inserted - - states: [], // state names look like this - // { - // stateName: 'untracked', - // onClick: function(){ handle_nav_manually(); }; - // title: 'click to make inactive', - // icon: 'fa-circle', // wrapped with <a> - // } - - leafletClasses: true, // use leaflet styles for the button - tagName: 'button', - }, - - - - initialize: function(icon, onClick, title, id){ - - // clear the states manually - this.options.states = []; - - // add id to options - if(id != null){ - this.options.id = id; - } - - // storage between state functions - this.storage = {}; - - // is the last item an object? - if( typeof arguments[arguments.length-1] === 'object' ){ - - // if so, it should be the options - L.Util.setOptions( this, arguments[arguments.length-1] ); - } - - // if there aren't any states in options - // use the early params - if( this.options.states.length === 0 && - typeof icon === 'string' && - typeof onClick === 'function'){ - - // turn the options object into a state - this.options.states.push({ - icon: icon, - onClick: onClick, - title: typeof title === 'string' ? title : '' - }); - } - - // curate and move user's states into - // the _states for internal use - this._states = []; - - for(var i = 0; i < this.options.states.length; i++){ - this._states.push( new State(this.options.states[i], this) ); - } - - this._buildButton(); - - this._activateState(this._states[0]); - - }, - - _buildButton: function(){ - - this.button = L.DomUtil.create(this.options.tagName, ''); - - // the next three if statements should be collapsed into the options - // when it's time for breaking changes. - if (this.tagName === 'button') { - this.button.type = 'button'; - } - - if (this.options.id ){ - this.button.id = this.options.id; - } - - if (this.options.leafletClasses){ - L.DomUtil.addClass(this.button, 'easy-button-button leaflet-bar-part leaflet-interactive'); - } - - // don't let double clicks and mousedown get to the map - L.DomEvent.addListener(this.button, 'dblclick', L.DomEvent.stop); - L.DomEvent.addListener(this.button, 'mousedown', L.DomEvent.stop); - - // take care of normal clicks - L.DomEvent.addListener(this.button,'click', function(e){ - L.DomEvent.stop(e); - this._currentState.onClick(this, this._map ? this._map : null ); - this._map.getContainer().focus(); - }, this); - - // prep the contents of the control - if(this.options.type == 'replace'){ - this.button.appendChild(this._currentState.icon); - } else { - for(var i=0;i<this._states.length;i++){ - this.button.appendChild(this._states[i].icon); - } - } - }, - - - _currentState: { - // placeholder content - stateName: 'unnamed', - icon: (function(){ return document.createElement('span'); })() - }, - - - - _states: null, // populated on init - - - - state: function(newState){ - - // activate by name - if(typeof newState == 'string'){ - - this._activateStateNamed(newState); - - // activate by index - } else if (typeof newState == 'number'){ - - this._activateState(this._states[newState]); - } - - return this; - }, - - - _activateStateNamed: function(stateName){ - for(var i = 0; i < this._states.length; i++){ - if( this._states[i].stateName == stateName ){ - this._activateState( this._states[i] ); - } - } - }, - - _activateState: function(newState){ - - if( newState === this._currentState ){ - - // don't touch the dom if it'll just be the same after - return; - - } else { - - // swap out elements... if you're into that kind of thing - if( this.options.type == 'replace' ){ - this.button.appendChild(newState.icon); - this.button.removeChild(this._currentState.icon); - } - - if( newState.title ){ - this.button.title = newState.title; - } else { - this.button.removeAttribute('title'); - } - - // update classes for animations - for(var i=0;i<this._states.length;i++){ - L.DomUtil.removeClass(this._states[i].icon, this._currentState.stateName + '-active'); - L.DomUtil.addClass(this._states[i].icon, newState.stateName + '-active'); - } - - // update classes for animations - L.DomUtil.removeClass(this.button, this._currentState.stateName + '-active'); - L.DomUtil.addClass(this.button, newState.stateName + '-active'); - - // update the record - this._currentState = newState; - - } - }, - - - - enable: function(){ - L.DomUtil.addClass(this.button, 'enabled'); - L.DomUtil.removeClass(this.button, 'disabled'); - this.button.setAttribute('aria-hidden', 'false'); - return this; - }, - - - - disable: function(){ - L.DomUtil.addClass(this.button, 'disabled'); - L.DomUtil.removeClass(this.button, 'enabled'); - this.button.setAttribute('aria-hidden', 'true'); - return this; - }, - - - removeFrom: function (map) { - - this._container.parentNode.removeChild(this._container); - this._map = null; - - return this; - }, - - onAdd: function(){ - var containerObj = L.easyBar([this], { - position: this.options.position, - leafletClasses: this.options.leafletClasses - }); - this._container = containerObj.container; - return this._container; - } - - -}); - -L.easyButton = function(/* args will pass automatically */){ - var args = Array.prototype.concat.apply([L.Control.EasyButton],arguments); - return new (Function.prototype.bind.apply(L.Control.EasyButton, args)); -}; - -/************************* - * - * util functions - * - *************************/ - -// constructor for states so only curated -// states end up getting called -function State(template, easyButton){ - - this.title = template.title; - this.stateName = template.stateName ? template.stateName : 'unnamed-state'; - - // build the wrapper - this.icon = L.DomUtil.create('span', ''); - - L.DomUtil.addClass(this.icon, 'button-state state-' + this.stateName.replace(/(^\s*|\s*$)/g,'')); - this.icon.innerHTML = buildIcon(template.icon); - this.onClick = L.Util.bind(template.onClick?template.onClick:function(){}, easyButton); -} - -function buildIcon(ambiguousIconString) { - - var tmpIcon; - - // does this look like html? (i.e. not a class) - if( ambiguousIconString.match(/[&;=<>"']/) ){ - - // if so, the user should have put in html - // so move forward as such - tmpIcon = ambiguousIconString; - - // then it wasn't html, so - // it's a class list, figure out what kind - } else { - ambiguousIconString = ambiguousIconString.replace(/(^\s*|\s*$)/g,''); - tmpIcon = L.DomUtil.create('span', ''); - - if( ambiguousIconString.indexOf('fa-') === 0 ){ - L.DomUtil.addClass(tmpIcon, 'fa ' + ambiguousIconString) - } else if ( ambiguousIconString.indexOf('glyphicon-') === 0 ) { - L.DomUtil.addClass(tmpIcon, 'glyphicon ' + ambiguousIconString) - } else { - L.DomUtil.addClass(tmpIcon, /*rollwithit*/ ambiguousIconString) - } - - // make this a string so that it's easy to set innerHTML below - tmpIcon = tmpIcon.outerHTML; - } - - return tmpIcon; -} - -})(); diff --git a/www/js/vendor/leaflet.featuregroup.subgroup-src.js b/www/js/vendor/leaflet.featuregroup.subgroup-src.js deleted file mode 100644 index 0ce8c355b..000000000 --- a/www/js/vendor/leaflet.featuregroup.subgroup-src.js +++ /dev/null @@ -1,216 +0,0 @@ -/** - * Leaflet.FeatureGroup.SubGroup creates a Feature Group that adds its child - * layers into a parent group when added to a map (e.g. through L.Control.Layers). - * (c) 2015-2016 Boris Seang - * BSD 2-Clause "Simplified" License - */ - -(function (root, factory) { - if (typeof define === "function" && define.amd) { - define(["leaflet"], factory); - } else if (typeof module === "object" && module.exports) { - factory(require("leaflet")); - } else { - factory(root.L); - } -}(this, function (L) { - - L.FeatureGroup.SubGroup = L.FeatureGroup.extend({ - - statics: { - version: '0.1.2' - }, - - /** - * Instantiates a SubGroup. - * @param parentGroup (L.LayerGroup) (optional) - * @param layersArray (L.Layer[]) (optional) - */ - initialize: function (parentGroup, layersArray) { - L.FeatureGroup.prototype.initialize.call(this, layersArray); - - this.setParentGroup(parentGroup); - }, - - /** - * Changes the parent group into which child markers are added to / - * removed from. - * @param parentGroup (L.LayerGroup) - * @returns {SubGroup} this - */ - setParentGroup: function (parentGroup) { - var pgInstanceOfLG = parentGroup instanceof L.LayerGroup; - - this._parentGroup = parentGroup; - - // onAdd - this.onAdd = - pgInstanceOfLG ? - ( - typeof parentGroup.addLayers === "function" ? - this._onAddToGroupBatch : - this._onAddToGroup - ) : - this._onAddToMap; - - // onRemove - this.onRemove = - pgInstanceOfLG ? - ( - typeof parentGroup.removeLayers === "function" ? - this._onRemoveFromGroupBatch : - this._onRemoveFromGroup - ) : - this._onRemoveFromMap; - - // addLayer - this.addLayer = pgInstanceOfLG ? - this._addLayerToGroup : - this._addLayerToMap; - - // removeLayer - this.removeLayer = pgInstanceOfLG ? - this._removeLayerFromGroup : - this._removeLayerFromMap; - - return this; - }, - - /** - * Removes the current sub-group from map before changing the parent - * group. Re-adds the sub-group to map if it was before changing. - * @param parentGroup (L.LayerGroup) - * @returns {SubGroup} this - */ - setParentGroupSafe: function (parentGroup) { - var map = this._map; - - if (map) { - map.removeLayer(this); - } - - this.setParentGroup(parentGroup); - - if (map) { - map.addLayer(this); - } - - return this; - }, - - /** - * Returns the current parent group. - * @returns {*} - */ - getParentGroup: function () { - return this._parentGroup; - }, - - - // For parent groups with batch methods (addLayers and removeLayers) - // like MarkerCluster. - _onAddToGroupBatch: function (map) { - var layersArray = this.getLayers(); - - this._map = map; - this._parentGroup.addLayers(layersArray); - }, - - _onRemoveFromGroupBatch: function () { - var layersArray = this.getLayers(); - - this._parentGroup.removeLayers(layersArray); - this._map = null; - }, - - - // For other parent layer groups. - _onAddToGroup: function (map) { - var parentGroup = this._parentGroup; - - this._map = map; - this.eachLayer(parentGroup.addLayer, parentGroup); - }, - - _onRemoveFromGroup: function () { - var parentGroup = this._parentGroup; - - this.eachLayer(parentGroup.removeLayer, parentGroup); - this._map = null; - }, - - - // Defaults to standard FeatureGroup behaviour when parent group is not - // specified or is not a type of LayerGroup. - _onAddToMap: L.FeatureGroup.prototype.onAdd, - _onRemoveFromMap: L.FeatureGroup.prototype.onRemove, - - - _addLayerToGroup: function (layer) { - if (this.hasLayer(layer)) { - return this; - } - - if (layer.on) { - layer.on(L.FeatureGroup.EVENTS, this._propagateEvent, this); - } - - var id = this.getLayerId(layer); - - this._layers[id] = layer; - - if (this._map) { - // Add to parent group instead of directly to map. - this._parentGroup.addLayer(layer); - } - - if (this._popupContent && layer.bindPopup) { - layer.bindPopup(this._popupContent, this._popupOptions); - } - - return this.fire('layeradd', {layer: layer}); - }, - - _removeLayerFromGroup: function (layer) { - if (!this.hasLayer(layer)) { - return this; - } - if (layer in this._layers) { - layer = this._layers[layer]; - } - - if (layer.off) { - layer.off(L.FeatureGroup.EVENTS, this._propagateEvent, this); - } - - var id = layer in this._layers ? layer : this.getLayerId(layer); - - if (this._map && this._layers[id]) { - // Remove from parent group instead of directly from map. - this._parentGroup.removeLayer(id); - } - - delete this._layers[id]; - - if (this._popupContent) { - this.invoke('unbindPopup'); - } - - return this.fire('layerremove', {layer: layer}); - }, - - // Defaults to standard FeatureGroup behaviour when parent group is not - // specified or is not a type of LayerGroup. - _addLayerToMap: L.FeatureGroup.prototype.addLayer, - _removeLayerFromMap: L.FeatureGroup.prototype.removeLayer - - }); - - - - // Supply with a factory for consistency with Leaflet. - L.featureGroup.subGroup = function (parentGroup, options) { - return new L.FeatureGroup.SubGroup(parentGroup, options); - }; - -})); diff --git a/www/js/vendor/leaflet.js b/www/js/vendor/leaflet.js deleted file mode 100644 index ee5ff5a1d..000000000 --- a/www/js/vendor/leaflet.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Leaflet, a JavaScript library for mobile-friendly interactive maps. http://leafletjs.com - (c) 2010-2013, Vladimir Agafonkin - (c) 2010-2011, CloudMade -*/ -!function(t,e,i){var n=t.L,o={};o.version="0.7.7","object"==typeof module&&"object"==typeof module.exports?module.exports=o:"function"==typeof define&&define.amd&&define(o),o.noConflict=function(){return t.L=n,this},t.L=o,o.Util={extend:function(t){var e,i,n,o,s=Array.prototype.slice.call(arguments,1);for(i=0,n=s.length;n>i;i++){o=s[i]||{};for(e in o)o.hasOwnProperty(e)&&(t[e]=o[e])}return t},bind:function(t,e){var i=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return t.apply(e,i||arguments)}},stamp:function(){var t=0,e="_leaflet_id";return function(i){return i[e]=i[e]||++t,i[e]}}(),invokeEach:function(t,e,i){var n,o;if("object"==typeof t){o=Array.prototype.slice.call(arguments,3);for(n in t)e.apply(i,[n,t[n]].concat(o));return!0}return!1},limitExecByInterval:function(t,e,i){var n,o;return function s(){var a=arguments;return n?void(o=!0):(n=!0,setTimeout(function(){n=!1,o&&(s.apply(i,a),o=!1)},e),void t.apply(i,a))}},falseFn:function(){return!1},formatNum:function(t,e){var i=Math.pow(10,e||5);return Math.round(t*i)/i},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},splitWords:function(t){return o.Util.trim(t).split(/\s+/)},setOptions:function(t,e){return t.options=o.extend({},t.options,e),t.options},getParamString:function(t,e,i){var n=[];for(var o in t)n.push(encodeURIComponent(i?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(e&&-1!==e.indexOf("?")?"&":"?")+n.join("&")},template:function(t,e){return t.replace(/\{ *([\w_]+) *\}/g,function(t,n){var o=e[n];if(o===i)throw new Error("No value provided for variable "+t);return"function"==typeof o&&(o=o(e)),o})},isArray:Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function e(e){var i,n,o=["webkit","moz","o","ms"];for(i=0;i<o.length&&!n;i++)n=t[o[i]+e];return n}function i(e){var i=+new Date,o=Math.max(0,16-(i-n));return n=i+o,t.setTimeout(e,o)}var n=0,s=t.requestAnimationFrame||e("RequestAnimationFrame")||i,a=t.cancelAnimationFrame||e("CancelAnimationFrame")||e("CancelRequestAnimationFrame")||function(e){t.clearTimeout(e)};o.Util.requestAnimFrame=function(e,n,a,r){return e=o.bind(e,n),a&&s===i?void e():s.call(t,e,r)},o.Util.cancelAnimFrame=function(e){e&&a.call(t,e)}}(),o.extend=o.Util.extend,o.bind=o.Util.bind,o.stamp=o.Util.stamp,o.setOptions=o.Util.setOptions,o.Class=function(){},o.Class.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this._initHooks&&this.callInitHooks()},i=function(){};i.prototype=this.prototype;var n=new i;n.constructor=e,e.prototype=n;for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&(e[s]=this[s]);t.statics&&(o.extend(e,t.statics),delete t.statics),t.includes&&(o.Util.extend.apply(null,[n].concat(t.includes)),delete t.includes),t.options&&n.options&&(t.options=o.extend({},n.options,t.options)),o.extend(n,t),n._initHooks=[];var a=this;return e.__super__=a.prototype,n.callInitHooks=function(){if(!this._initHooksCalled){a.prototype.callInitHooks&&a.prototype.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,e=n._initHooks.length;e>t;t++)n._initHooks[t].call(this)}},e},o.Class.include=function(t){o.extend(this.prototype,t)},o.Class.mergeOptions=function(t){o.extend(this.prototype.options,t)},o.Class.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i="function"==typeof t?t:function(){this[t].apply(this,e)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i)};var s="_leaflet_events";o.Mixin={},o.Mixin.Events={addEventListener:function(t,e,i){if(o.Util.invokeEach(t,this.addEventListener,this,e,i))return this;var n,a,r,h,l,u,c,d=this[s]=this[s]||{},p=i&&i!==this&&o.stamp(i);for(t=o.Util.splitWords(t),n=0,a=t.length;a>n;n++)r={action:e,context:i||this},h=t[n],p?(l=h+"_idx",u=l+"_len",c=d[l]=d[l]||{},c[p]||(c[p]=[],d[u]=(d[u]||0)+1),c[p].push(r)):(d[h]=d[h]||[],d[h].push(r));return this},hasEventListeners:function(t){var e=this[s];return!!e&&(t in e&&e[t].length>0||t+"_idx"in e&&e[t+"_idx_len"]>0)},removeEventListener:function(t,e,i){if(!this[s])return this;if(!t)return this.clearAllEventListeners();if(o.Util.invokeEach(t,this.removeEventListener,this,e,i))return this;var n,a,r,h,l,u,c,d,p,_=this[s],m=i&&i!==this&&o.stamp(i);for(t=o.Util.splitWords(t),n=0,a=t.length;a>n;n++)if(r=t[n],u=r+"_idx",c=u+"_len",d=_[u],e){if(h=m&&d?d[m]:_[r]){for(l=h.length-1;l>=0;l--)h[l].action!==e||i&&h[l].context!==i||(p=h.splice(l,1),p[0].action=o.Util.falseFn);i&&d&&0===h.length&&(delete d[m],_[c]--)}}else delete _[r],delete _[u],delete _[c];return this},clearAllEventListeners:function(){return delete this[s],this},fireEvent:function(t,e){if(!this.hasEventListeners(t))return this;var i,n,a,r,h,l=o.Util.extend({},e,{type:t,target:this}),u=this[s];if(u[t])for(i=u[t].slice(),n=0,a=i.length;a>n;n++)i[n].action.call(i[n].context,l);r=u[t+"_idx"];for(h in r)if(i=r[h].slice())for(n=0,a=i.length;a>n;n++)i[n].action.call(i[n].context,l);return this},addOneTimeEventListener:function(t,e,i){if(o.Util.invokeEach(t,this.addOneTimeEventListener,this,e,i))return this;var n=o.bind(function(){this.removeEventListener(t,e,i).removeEventListener(t,n,i)},this);return this.addEventListener(t,e,i).addEventListener(t,n,i)}},o.Mixin.Events.on=o.Mixin.Events.addEventListener,o.Mixin.Events.off=o.Mixin.Events.removeEventListener,o.Mixin.Events.once=o.Mixin.Events.addOneTimeEventListener,o.Mixin.Events.fire=o.Mixin.Events.fireEvent,function(){var n="ActiveXObject"in t,s=n&&!e.addEventListener,a=navigator.userAgent.toLowerCase(),r=-1!==a.indexOf("webkit"),h=-1!==a.indexOf("chrome"),l=-1!==a.indexOf("phantom"),u=-1!==a.indexOf("android"),c=-1!==a.search("android [23]"),d=-1!==a.indexOf("gecko"),p=typeof orientation!=i+"",_=!t.PointerEvent&&t.MSPointerEvent,m=t.PointerEvent&&t.navigator.pointerEnabled||_,f="devicePixelRatio"in t&&t.devicePixelRatio>1||"matchMedia"in t&&t.matchMedia("(min-resolution:144dpi)")&&t.matchMedia("(min-resolution:144dpi)").matches,g=e.documentElement,v=n&&"transition"in g.style,y="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix&&!c,P="MozPerspective"in g.style,L="OTransition"in g.style,x=!t.L_DISABLE_3D&&(v||y||P||L)&&!l,w=!t.L_NO_TOUCH&&!l&&(m||"ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch);o.Browser={ie:n,ielt9:s,webkit:r,gecko:d&&!r&&!t.opera&&!n,android:u,android23:c,chrome:h,ie3d:v,webkit3d:y,gecko3d:P,opera3d:L,any3d:x,mobile:p,mobileWebkit:p&&r,mobileWebkit3d:p&&y,mobileOpera:p&&t.opera,touch:w,msPointer:_,pointer:m,retina:f}}(),o.Point=function(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e},o.Point.prototype={clone:function(){return new o.Point(this.x,this.y)},add:function(t){return this.clone()._add(o.point(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(o.point(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(t){t=o.point(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=o.point(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=o.point(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+o.Util.formatNum(this.x)+", "+o.Util.formatNum(this.y)+")"}},o.point=function(t,e,n){return t instanceof o.Point?t:o.Util.isArray(t)?new o.Point(t[0],t[1]):t===i||null===t?t:new o.Point(t,e,n)},o.Bounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;o>n;n++)this.extend(i[n])},o.Bounds.prototype={extend:function(t){return t=o.point(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new o.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new o.Point(this.min.x,this.max.y)},getTopRight:function(){return new o.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i;return t="number"==typeof t[0]||t instanceof o.Point?o.point(t):o.bounds(t),t instanceof o.Bounds?(e=t.min,i=t.max):e=i=t,e.x>=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,a=s.x>=e.x&&n.x<=i.x,r=s.y>=e.y&&n.y<=i.y;return a&&r},isValid:function(){return!(!this.min||!this.max)}},o.bounds=function(t,e){return!t||t instanceof o.Bounds?t:new o.Bounds(t,e)},o.Transformation=function(t,e,i,n){this._a=t,this._b=e,this._c=i,this._d=n},o.Transformation.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return e=e||1,t.x=e*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return e=e||1,new o.Point((t.x/e-this._b)/this._a,(t.y/e-this._d)/this._c)}},o.DomUtil={get:function(t){return"string"==typeof t?e.getElementById(t):t},getStyle:function(t,i){var n=t.style[i];if(!n&&t.currentStyle&&(n=t.currentStyle[i]),(!n||"auto"===n)&&e.defaultView){var o=e.defaultView.getComputedStyle(t,null);n=o?o[i]:null}return"auto"===n?null:n},getViewportOffset:function(t){var i,n=0,s=0,a=t,r=e.body,h=e.documentElement;do{if(n+=a.offsetTop||0,s+=a.offsetLeft||0,n+=parseInt(o.DomUtil.getStyle(a,"borderTopWidth"),10)||0,s+=parseInt(o.DomUtil.getStyle(a,"borderLeftWidth"),10)||0,i=o.DomUtil.getStyle(a,"position"),a.offsetParent===r&&"absolute"===i)break;if("fixed"===i){n+=r.scrollTop||h.scrollTop||0,s+=r.scrollLeft||h.scrollLeft||0;break}if("relative"===i&&!a.offsetLeft){var l=o.DomUtil.getStyle(a,"width"),u=o.DomUtil.getStyle(a,"max-width"),c=a.getBoundingClientRect();("none"!==l||"none"!==u)&&(s+=c.left+a.clientLeft),n+=c.top+(r.scrollTop||h.scrollTop||0);break}a=a.offsetParent}while(a);a=t;do{if(a===r)break;n-=a.scrollTop||0,s-=a.scrollLeft||0,a=a.parentNode}while(a);return new o.Point(s,n)},documentIsLtr:function(){return o.DomUtil._docIsLtrCached||(o.DomUtil._docIsLtrCached=!0,o.DomUtil._docIsLtr="ltr"===o.DomUtil.getStyle(e.body,"direction")),o.DomUtil._docIsLtr},create:function(t,i,n){var o=e.createElement(t);return o.className=i,n&&n.appendChild(o),o},hasClass:function(t,e){if(t.classList!==i)return t.classList.contains(e);var n=o.DomUtil._getClass(t);return n.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(n)},addClass:function(t,e){if(t.classList!==i)for(var n=o.Util.splitWords(e),s=0,a=n.length;a>s;s++)t.classList.add(n[s]);else if(!o.DomUtil.hasClass(t,e)){var r=o.DomUtil._getClass(t);o.DomUtil._setClass(t,(r?r+" ":"")+e)}},removeClass:function(t,e){t.classList!==i?t.classList.remove(e):o.DomUtil._setClass(t,o.Util.trim((" "+o.DomUtil._getClass(t)+" ").replace(" "+e+" "," ")))},_setClass:function(t,e){t.className.baseVal===i?t.className=e:t.className.baseVal=e},_getClass:function(t){return t.className.baseVal===i?t.className:t.className.baseVal},setOpacity:function(t,e){if("opacity"in t.style)t.style.opacity=e;else if("filter"in t.style){var i=!1,n="DXImageTransform.Microsoft.Alpha";try{i=t.filters.item(n)}catch(o){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=" progid:"+n+"(opacity="+e+")"}},testProp:function(t){for(var i=e.documentElement.style,n=0;n<t.length;n++)if(t[n]in i)return t[n];return!1},getTranslateString:function(t){var e=o.Browser.webkit3d,i="translate"+(e?"3d":"")+"(",n=(e?",0":"")+")";return i+t.x+"px,"+t.y+"px"+n},getScaleString:function(t,e){var i=o.DomUtil.getTranslateString(e.add(e.multiplyBy(-1*t))),n=" scale("+t+") ";return i+n},setPosition:function(t,e,i){t._leaflet_pos=e,!i&&o.Browser.any3d?t.style[o.DomUtil.TRANSFORM]=o.DomUtil.getTranslateString(e):(t.style.left=e.x+"px",t.style.top=e.y+"px")},getPosition:function(t){return t._leaflet_pos}},o.DomUtil.TRANSFORM=o.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),o.DomUtil.TRANSITION=o.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),o.DomUtil.TRANSITION_END="webkitTransition"===o.DomUtil.TRANSITION||"OTransition"===o.DomUtil.TRANSITION?o.DomUtil.TRANSITION+"End":"transitionend",function(){if("onselectstart"in e)o.extend(o.DomUtil,{disableTextSelection:function(){o.DomEvent.on(t,"selectstart",o.DomEvent.preventDefault)},enableTextSelection:function(){o.DomEvent.off(t,"selectstart",o.DomEvent.preventDefault)}});else{var i=o.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);o.extend(o.DomUtil,{disableTextSelection:function(){if(i){var t=e.documentElement.style;this._userSelect=t[i],t[i]="none"}},enableTextSelection:function(){i&&(e.documentElement.style[i]=this._userSelect,delete this._userSelect)}})}o.extend(o.DomUtil,{disableImageDrag:function(){o.DomEvent.on(t,"dragstart",o.DomEvent.preventDefault)},enableImageDrag:function(){o.DomEvent.off(t,"dragstart",o.DomEvent.preventDefault)}})}(),o.LatLng=function(t,e,n){if(t=parseFloat(t),e=parseFloat(e),isNaN(t)||isNaN(e))throw new Error("Invalid LatLng object: ("+t+", "+e+")");this.lat=t,this.lng=e,n!==i&&(this.alt=parseFloat(n))},o.extend(o.LatLng,{DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,MAX_MARGIN:1e-9}),o.LatLng.prototype={equals:function(t){if(!t)return!1;t=o.latLng(t);var e=Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng));return e<=o.LatLng.MAX_MARGIN},toString:function(t){return"LatLng("+o.Util.formatNum(this.lat,t)+", "+o.Util.formatNum(this.lng,t)+")"},distanceTo:function(t){t=o.latLng(t);var e=6378137,i=o.LatLng.DEG_TO_RAD,n=(t.lat-this.lat)*i,s=(t.lng-this.lng)*i,a=this.lat*i,r=t.lat*i,h=Math.sin(n/2),l=Math.sin(s/2),u=h*h+l*l*Math.cos(a)*Math.cos(r);return 2*e*Math.atan2(Math.sqrt(u),Math.sqrt(1-u))},wrap:function(t,e){var i=this.lng;return t=t||-180,e=e||180,i=(i+e)%(e-t)+(t>i||i===e?e:t),new o.LatLng(this.lat,i)}},o.latLng=function(t,e){return t instanceof o.LatLng?t:o.Util.isArray(t)?"number"==typeof t[0]||"string"==typeof t[0]?new o.LatLng(t[0],t[1],t[2]):null:t===i||null===t?t:"object"==typeof t&&"lat"in t?new o.LatLng(t.lat,"lng"in t?t.lng:t.lon):e===i?null:new o.LatLng(t,e)},o.LatLngBounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;o>n;n++)this.extend(i[n])},o.LatLngBounds.prototype={extend:function(t){if(!t)return this;var e=o.latLng(t);return t=null!==e?e:o.latLngBounds(t),t instanceof o.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(t.lat,this._southWest.lat),this._southWest.lng=Math.min(t.lng,this._southWest.lng),this._northEast.lat=Math.max(t.lat,this._northEast.lat),this._northEast.lng=Math.max(t.lng,this._northEast.lng)):(this._southWest=new o.LatLng(t.lat,t.lng),this._northEast=new o.LatLng(t.lat,t.lng)):t instanceof o.LatLngBounds&&(this.extend(t._southWest),this.extend(t._northEast)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,s=Math.abs(e.lng-i.lng)*t;return new o.LatLngBounds(new o.LatLng(e.lat-n,e.lng-s),new o.LatLng(i.lat+n,i.lng+s))},getCenter:function(){return new o.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new o.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new o.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof o.LatLng?o.latLng(t):o.latLngBounds(t);var e,i,n=this._southWest,s=this._northEast;return t instanceof o.LatLngBounds?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=s.lat&&e.lng>=n.lng&&i.lng<=s.lng},intersects:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),a=s.lat>=e.lat&&n.lat<=i.lat,r=s.lng>=e.lng&&n.lng<=i.lng;return a&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t){return t?(t=o.latLngBounds(t),this._southWest.equals(t.getSouthWest())&&this._northEast.equals(t.getNorthEast())):!1},isValid:function(){return!(!this._southWest||!this._northEast)}},o.latLngBounds=function(t,e){return!t||t instanceof o.LatLngBounds?t:new o.LatLngBounds(t,e)},o.Projection={},o.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(t){var e=o.LatLng.DEG_TO_RAD,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=t.lng*e,a=n*e;return a=Math.log(Math.tan(Math.PI/4+a/2)),new o.Point(s,a)},unproject:function(t){var e=o.LatLng.RAD_TO_DEG,i=t.x*e,n=(2*Math.atan(Math.exp(t.y))-Math.PI/2)*e;return new o.LatLng(n,i)}},o.Projection.LonLat={project:function(t){return new o.Point(t.lng,t.lat)},unproject:function(t){return new o.LatLng(t.y,t.x)}},o.CRS={latLngToPoint:function(t,e){var i=this.projection.project(t),n=this.scale(e);return this.transformation._transform(i,n)},pointToLatLng:function(t,e){var i=this.scale(e),n=this.transformation.untransform(t,i);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},scale:function(t){return 256*Math.pow(2,t)},getSize:function(t){var e=this.scale(t);return o.point(e,e)}},o.CRS.Simple=o.extend({},o.CRS,{projection:o.Projection.LonLat,transformation:new o.Transformation(1,0,-1,0),scale:function(t){return Math.pow(2,t)}}),o.CRS.EPSG3857=o.extend({},o.CRS,{code:"EPSG:3857",projection:o.Projection.SphericalMercator,transformation:new o.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(t){var e=this.projection.project(t),i=6378137;return e.multiplyBy(i)}}),o.CRS.EPSG900913=o.extend({},o.CRS.EPSG3857,{code:"EPSG:900913"}),o.CRS.EPSG4326=o.extend({},o.CRS,{code:"EPSG:4326",projection:o.Projection.LonLat,transformation:new o.Transformation(1/360,.5,-1/360,.5)}),o.Map=o.Class.extend({includes:o.Mixin.Events,options:{crs:o.CRS.EPSG3857,fadeAnimation:o.DomUtil.TRANSITION&&!o.Browser.android23,trackResize:!0,markerZoomAnimation:o.DomUtil.TRANSITION&&o.Browser.any3d},initialize:function(t,e){e=o.setOptions(this,e),this._initContainer(t),this._initLayout(),this._onResize=o.bind(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),e.center&&e.zoom!==i&&this.setView(o.latLng(e.center),e.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(e.layers)},setView:function(t,e){return e=e===i?this.getZoom():e,this._resetView(o.latLng(t),this._limitZoom(e)),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=this._limitZoom(t),this)},zoomIn:function(t,e){return this.setZoom(this._zoom+(t||1),e)},zoomOut:function(t,e){return this.setZoom(this._zoom-(t||1),e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),s=this.getSize().divideBy(2),a=t instanceof o.Point?t:this.latLngToContainerPoint(t),r=a.subtract(s).multiplyBy(1-1/n),h=this.containerPointToLatLng(s.add(r));return this.setView(h,e,{zoom:i})},fitBounds:function(t,e){e=e||{},t=t.getBounds?t.getBounds():o.latLngBounds(t);var i=o.point(e.paddingTopLeft||e.padding||[0,0]),n=o.point(e.paddingBottomRight||e.padding||[0,0]),s=this.getBoundsZoom(t,!1,i.add(n));s=e.maxZoom?Math.min(e.maxZoom,s):s;var a=n.subtract(i).divideBy(2),r=this.project(t.getSouthWest(),s),h=this.project(t.getNorthEast(),s),l=this.unproject(r.add(h).divideBy(2).add(a),s);return this.setView(l,s,e)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,e){return this.setView(t,this._zoom,{pan:e})},panBy:function(t){return this.fire("movestart"),this._rawPanBy(o.point(t)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(t){return t=o.latLngBounds(t),this.options.maxBounds=t,t?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(t,e){var i=this.getCenter(),n=this._limitCenter(i,this._zoom,t);return i.equals(n)?this:this.panTo(n,e)},addLayer:function(t){var e=o.stamp(t);return this._layers[e]?this:(this._layers[e]=t,!t.options||isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[e]=t,this._updateZoomLevels()),this.options.zoomAnimation&&o.TileLayer&&t instanceof o.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,t.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(t),this)},removeLayer:function(t){var e=o.stamp(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&this.fire("layerremove",{layer:t}),this._zoomBoundLayers[e]&&(delete this._zoomBoundLayers[e],this._updateZoomLevels()),this.options.zoomAnimation&&o.TileLayer&&t instanceof o.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,t.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(t){return t?o.stamp(t)in this._layers:!1},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},invalidateSize:function(t){if(!this._loaded)return this;t=o.extend({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),s=i.divideBy(2).round(),a=n.subtract(s);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(t){this._container._leaflet=i}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new o.LatLngBounds(e,i)},getMinZoom:function(){return this.options.minZoom===i?this._layersMinZoom===i?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===i?this._layersMaxZoom===i?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=o.latLngBounds(t);var n,s=this.getMinZoom()-(e?1:0),a=this.getMaxZoom(),r=this.getSize(),h=t.getNorthWest(),l=t.getSouthEast(),u=!0;i=o.point(i||[0,0]);do s++,n=this.project(l,s).subtract(this.project(h,s)).add(i),u=e?n.x<r.x||n.y<r.y:r.contains(n);while(u&&a>=s);return u&&e?null:e?s:s-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new o.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var t=this._getTopLeftPoint();return new o.Bounds(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t){var e=this.options.crs;return e.scale(t)/e.scale(this._zoom)},getScaleZoom:function(t){return this._zoom+Math.log(t)/Math.LN2},project:function(t,e){return e=e===i?this._zoom:e,this.options.crs.latLngToPoint(o.latLng(t),e)},unproject:function(t,e){return e=e===i?this._zoom:e,this.options.crs.pointToLatLng(o.point(t),e)},layerPointToLatLng:function(t){var e=o.point(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(o.latLng(t))._round();return e._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(t){return o.point(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return o.point(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(o.point(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(o.latLng(t)))},mouseEventToContainerPoint:function(t){return o.DomEvent.getMousePosition(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=o.DomUtil.get(t);if(!e)throw new Error("Map container not found.");if(e._leaflet)throw new Error("Map container is already initialized.");e._leaflet=!0},_initLayout:function(){var t=this._container;o.DomUtil.addClass(t,"leaflet-container"+(o.Browser.touch?" leaflet-touch":"")+(o.Browser.retina?" leaflet-retina":"")+(o.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var e=o.DomUtil.getStyle(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._mapPane=t.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=t.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),t.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),t.shadowPane=this._createPane("leaflet-shadow-pane"),t.overlayPane=this._createPane("leaflet-overlay-pane"),t.markerPane=this._createPane("leaflet-marker-pane"),t.popupPane=this._createPane("leaflet-popup-pane");var e=" leaflet-zoom-hide";this.options.markerZoomAnimation||(o.DomUtil.addClass(t.markerPane,e),o.DomUtil.addClass(t.shadowPane,e),o.DomUtil.addClass(t.popupPane,e))},_createPane:function(t,e){return o.DomUtil.create("div",t,e||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(t){t=t?o.Util.isArray(t)?t:[t]:[];for(var e=0,i=t.length;i>e;e++)this.addLayer(t[e])},_resetView:function(t,e,i,n){var s=this._zoom!==e;n||(this.fire("movestart"),s&&this.fire("zoomstart")),this._zoom=e,this._initialCenter=t,this._initialTopLeftPoint=this._getNewTopLeftPoint(t),i?this._initialTopLeftPoint._add(this._getMapPanePos()):o.DomUtil.setPosition(this._mapPane,new o.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var a=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!i}),a&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(s||n)&&this.fire("zoomend"),this.fire("moveend",{hard:!i})},_rawPanBy:function(t){o.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var t,e=1/0,n=-(1/0),o=this._getZoomSpan();for(t in this._zoomBoundLayers){var s=this._zoomBoundLayers[t];isNaN(s.options.minZoom)||(e=Math.min(e,s.options.minZoom)),isNaN(s.options.maxZoom)||(n=Math.max(n,s.options.maxZoom))}t===i?this._layersMaxZoom=this._layersMinZoom=i:(this._layersMaxZoom=n,this._layersMinZoom=e),o!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(e){if(o.DomEvent){e=e||"on",o.DomEvent[e](this._container,"click",this._onMouseClick,this);var i,n,s=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(i=0,n=s.length;n>i;i++)o.DomEvent[e](this._container,s[i],this._fireMouseEvent,this);this.options.trackResize&&o.DomEvent[e](t,"resize",this._onResize,this)}},_onResize:function(){o.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=o.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this,!1,this._container)},_onMouseClick:function(t){!this._loaded||!t._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||o.DomEvent._skipped(t)||(this.fire("preclick"),this._fireMouseEvent(t))},_fireMouseEvent:function(t){if(this._loaded&&!o.DomEvent._skipped(t)){var e=t.type;if(e="mouseenter"===e?"mouseover":"mouseleave"===e?"mouseout":e,this.hasEventListeners(e)){"contextmenu"===e&&o.DomEvent.preventDefault(t);var i=this.mouseEventToContainerPoint(t),n=this.containerPointToLayerPoint(i),s=this.layerPointToLatLng(n);this.fire(e,{latlng:s,layerPoint:n,containerPoint:i,originalEvent:t})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var t=0,e=this._handlers.length;e>t;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,this):this.on("load",t,e),this},_layerAdd:function(t){t.onAdd(this),this.fire("layeradd",{layer:t})},_getMapPanePos:function(){return o.DomUtil.getPosition(this._mapPane)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(t,e){var i=this.getSize()._divideBy(2);return this.project(t,e)._subtract(i)._round()},_latLngToNewLayerPoint:function(t,e,i){var n=this._getNewTopLeftPoint(i,e).add(this._getMapPanePos());return this.project(t,e)._subtract(n)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){if(!i)return t;var n=this.project(t,e),s=this.getSize().divideBy(2),a=new o.Bounds(n.subtract(s),n.add(s)),r=this._getBoundsOffset(a,i,e);return this.unproject(n.add(r),e)},_limitOffset:function(t,e){if(!e)return t;var i=this.getPixelBounds(),n=new o.Bounds(i.min.add(t),i.max.add(t));return t.add(this._getBoundsOffset(n,e))},_getBoundsOffset:function(t,e,i){var n=this.project(e.getNorthWest(),i).subtract(t.min),s=this.project(e.getSouthEast(),i).subtract(t.max),a=this._rebound(n.x,-s.x),r=this._rebound(n.y,-s.y);return new o.Point(a,r)},_rebound:function(t,e){return t+e>0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom();return Math.max(e,Math.min(i,t))}}),o.map=function(t,e){return new o.Map(t,e)},o.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(t){var e=o.LatLng.DEG_TO_RAD,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=this.R_MAJOR,a=this.R_MINOR,r=t.lng*e*s,h=n*e,l=a/s,u=Math.sqrt(1-l*l),c=u*Math.sin(h);c=Math.pow((1-c)/(1+c),.5*u);var d=Math.tan(.5*(.5*Math.PI-h))/c;return h=-s*Math.log(d),new o.Point(r,h)},unproject:function(t){for(var e,i=o.LatLng.RAD_TO_DEG,n=this.R_MAJOR,s=this.R_MINOR,a=t.x*i/n,r=s/n,h=Math.sqrt(1-r*r),l=Math.exp(-t.y/n),u=Math.PI/2-2*Math.atan(l),c=15,d=1e-7,p=c,_=.1;Math.abs(_)>d&&--p>0;)e=h*Math.sin(u),_=Math.PI/2-2*Math.atan(l*Math.pow((1-e)/(1+e),.5*h))-u,u+=_;return new o.LatLng(u*i,a)}},o.CRS.EPSG3395=o.extend({},o.CRS,{code:"EPSG:3395",projection:o.Projection.Mercator, -transformation:function(){var t=o.Projection.Mercator,e=t.R_MAJOR,i=.5/(Math.PI*e);return new o.Transformation(i,.5,-i,.5)}()}),o.TileLayer=o.Class.extend({includes:o.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:o.Browser.mobile,updateWhenIdle:o.Browser.mobile},initialize:function(t,e){e=o.setOptions(this,e),e.detectRetina&&o.Browser.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomOffset++,e.minZoom>0&&e.minZoom--,this.options.maxZoom--),e.bounds&&(e.bounds=o.latLngBounds(e.bounds)),this._url=t;var i=this.options.subdomains;"string"==typeof i&&(this.options.subdomains=i.split(""))},onAdd:function(t){this._map=t,this._animated=t._zoomAnimated,this._initContainer(),t.on({viewreset:this._reset,moveend:this._update},this),this._animated&&t.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=o.Util.limitExecByInterval(this._update,150,this),t.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){this._container.parentNode.removeChild(this._container),t.off({viewreset:this._reset,moveend:this._update},this),this._animated&&t.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||t.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var t=this._map._panes.tilePane;return this._container&&(t.appendChild(this._container),this._setAutoZIndex(t,Math.max)),this},bringToBack:function(){var t=this._map._panes.tilePane;return this._container&&(t.insertBefore(this._container,t.firstChild),this._setAutoZIndex(t,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==i&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t,e){var i,n,o,s=t.children,a=-e(1/0,-(1/0));for(n=0,o=s.length;o>n;n++)s[n]!==this._container&&(i=parseInt(s[n].style.zIndex,10),isNaN(i)||(a=e(a,i)));this.options.zIndex=this._container.style.zIndex=(isFinite(a)?a:0)+e(1,-1)},_updateOpacity:function(){var t,e=this._tiles;if(o.Browser.ielt9)for(t in e)o.DomUtil.setOpacity(e[t],this.options.opacity);else o.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var t=this._map._panes.tilePane;if(!this._container){if(this._container=o.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var e="leaflet-tile-container";this._bgBuffer=o.DomUtil.create("div",e,this._container),this._tileContainer=o.DomUtil.create("div",e,this._container)}else this._tileContainer=this._container;t.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(t){for(var e in this._tiles)this.fire("tileunload",{tile:this._tiles[e]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&t&&t.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var t=this._map,e=t.getZoom()+this.options.zoomOffset,i=this.options.maxNativeZoom,n=this.options.tileSize;return i&&e>i&&(n=Math.round(t.getZoomScale(e)/t.getZoomScale(i)*n)),n},_update:function(){if(this._map){var t=this._map,e=t.getPixelBounds(),i=t.getZoom(),n=this._getTileSize();if(!(i>this.options.maxZoom||i<this.options.minZoom)){var s=o.bounds(e.min.divideBy(n)._floor(),e.max.divideBy(n)._floor());this._addTilesFromCenterOut(s),(this.options.unloadInvisibleTiles||this.options.reuseTiles)&&this._removeOtherTiles(s)}}},_addTilesFromCenterOut:function(t){var i,n,s,a=[],r=t.getCenter();for(i=t.min.y;i<=t.max.y;i++)for(n=t.min.x;n<=t.max.x;n++)s=new o.Point(n,i),this._tileShouldBeLoaded(s)&&a.push(s);var h=a.length;if(0!==h){a.sort(function(t,e){return t.distanceTo(r)-e.distanceTo(r)});var l=e.createDocumentFragment();for(this._tilesToLoad||this.fire("loading"),this._tilesToLoad+=h,n=0;h>n;n++)this._addTile(a[n],l);this._tileContainer.appendChild(l)}},_tileShouldBeLoaded:function(t){if(t.x+":"+t.y in this._tiles)return!1;var e=this.options;if(!e.continuousWorld){var i=this._getWrapTileNum();if(e.noWrap&&(t.x<0||t.x>=i.x)||t.y<0||t.y>=i.y)return!1}if(e.bounds){var n=this._getTileSize(),o=t.multiplyBy(n),s=o.add([n,n]),a=this._map.unproject(o),r=this._map.unproject(s);if(e.continuousWorld||e.noWrap||(a=a.wrap(),r=r.wrap()),!e.bounds.intersects([a,r]))return!1}return!0},_removeOtherTiles:function(t){var e,i,n,o;for(o in this._tiles)e=o.split(":"),i=parseInt(e[0],10),n=parseInt(e[1],10),(i<t.min.x||i>t.max.x||n<t.min.y||n>t.max.y)&&this._removeTile(o)},_removeTile:function(t){var e=this._tiles[t];this.fire("tileunload",{tile:e,url:e.src}),this.options.reuseTiles?(o.DomUtil.removeClass(e,"leaflet-tile-loaded"),this._unusedTiles.push(e)):e.parentNode===this._tileContainer&&this._tileContainer.removeChild(e),o.Browser.android||(e.onload=null,e.src=o.Util.emptyImageUrl),delete this._tiles[t]},_addTile:function(t,e){var i=this._getTilePos(t),n=this._getTile();o.DomUtil.setPosition(n,i,o.Browser.chrome),this._tiles[t.x+":"+t.y]=n,this._loadTile(n,t),n.parentNode!==this._tileContainer&&e.appendChild(n)},_getZoomForUrl:function(){var t=this.options,e=this._map.getZoom();return t.zoomReverse&&(e=t.maxZoom-e),e+=t.zoomOffset,t.maxNativeZoom?Math.min(e,t.maxNativeZoom):e},_getTilePos:function(t){var e=this._map.getPixelOrigin(),i=this._getTileSize();return t.multiplyBy(i).subtract(e)},getTileUrl:function(t){return o.Util.template(this._url,o.extend({s:this._getSubdomain(t),z:t.z,x:t.x,y:t.y},this.options))},_getWrapTileNum:function(){var t=this._map.options.crs,e=t.getSize(this._map.getZoom());return e.divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(t){var e=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(t.x=(t.x%e.x+e.x)%e.x),this.options.tms&&(t.y=e.y-t.y-1),t.z=this._getZoomForUrl()},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var t=this._unusedTiles.pop();return this._resetTile(t),t}return this._createTile()},_resetTile:function(){},_createTile:function(){var t=o.DomUtil.create("img","leaflet-tile");return t.style.width=t.style.height=this._getTileSize()+"px",t.galleryimg="no",t.onselectstart=t.onmousemove=o.Util.falseFn,o.Browser.ielt9&&this.options.opacity!==i&&o.DomUtil.setOpacity(t,this.options.opacity),o.Browser.mobileWebkit3d&&(t.style.WebkitBackfaceVisibility="hidden"),t},_loadTile:function(t,e){t._layer=this,t.onload=this._tileOnLoad,t.onerror=this._tileOnError,this._adjustTilePoint(e),t.src=this.getTileUrl(e),this.fire("tileloadstart",{tile:t,url:t.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&o.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(o.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var t=this._layer;this.src!==o.Util.emptyImageUrl&&(o.DomUtil.addClass(this,"leaflet-tile-loaded"),t.fire("tileload",{tile:this,url:this.src})),t._tileLoaded()},_tileOnError:function(){var t=this._layer;t.fire("tileerror",{tile:this,url:this.src});var e=t.options.errorTileUrl;e&&(this.src=e),t._tileLoaded()}}),o.tileLayer=function(t,e){return new o.TileLayer(t,e)},o.TileLayer.WMS=o.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(t,e){this._url=t;var i=o.extend({},this.defaultWmsParams),n=e.tileSize||this.options.tileSize;e.detectRetina&&o.Browser.retina?i.width=i.height=2*n:i.width=i.height=n;for(var s in e)this.options.hasOwnProperty(s)||"crs"===s||(i[s]=e[s]);this.wmsParams=i,o.setOptions(this,e)},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,o.TileLayer.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._map,i=this.options.tileSize,n=t.multiplyBy(i),s=n.add([i,i]),a=this._crs.project(e.unproject(n,t.z)),r=this._crs.project(e.unproject(s,t.z)),h=this._wmsVersion>=1.3&&this._crs===o.CRS.EPSG4326?[r.y,a.x,a.y,r.x].join(","):[a.x,r.y,r.x,a.y].join(","),l=o.Util.template(this._url,{s:this._getSubdomain(t)});return l+o.Util.getParamString(this.wmsParams,l,!0)+"&BBOX="+h},setParams:function(t,e){return o.extend(this.wmsParams,t),e||this.redraw(),this}}),o.tileLayer.wms=function(t,e){return new o.TileLayer.WMS(t,e)},o.TileLayer.Canvas=o.TileLayer.extend({options:{async:!1},initialize:function(t){o.setOptions(this,t)},redraw:function(){this._map&&(this._reset({hard:!0}),this._update());for(var t in this._tiles)this._redrawTile(this._tiles[t]);return this},_redrawTile:function(t){this.drawTile(t,t._tilePoint,this._map._zoom)},_createTile:function(){var t=o.DomUtil.create("canvas","leaflet-tile");return t.width=t.height=this.options.tileSize,t.onselectstart=t.onmousemove=o.Util.falseFn,t},_loadTile:function(t,e){t._layer=this,t._tilePoint=e,this._redrawTile(t),this.options.async||this.tileDrawn(t)},drawTile:function(){},tileDrawn:function(t){this._tileOnLoad.call(t)}}),o.tileLayer.canvas=function(t){return new o.TileLayer.Canvas(t)},o.ImageOverlay=o.Class.extend({includes:o.Mixin.Events,options:{opacity:1},initialize:function(t,e,i){this._url=t,this._bounds=o.latLngBounds(e),o.setOptions(this,i)},onAdd:function(t){this._map=t,this._image||this._initImage(),t._panes.overlayPane.appendChild(this._image),t.on("viewreset",this._reset,this),t.options.zoomAnimation&&o.Browser.any3d&&t.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(t){t.getPanes().overlayPane.removeChild(this._image),t.off("viewreset",this._reset,this),t.options.zoomAnimation&&t.off("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var t=this._map._panes.overlayPane;return this._image&&t.insertBefore(this._image,t.firstChild),this},setUrl:function(t){this._url=t,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=o.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&o.Browser.any3d?o.DomUtil.addClass(this._image,"leaflet-zoom-animated"):o.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),o.extend(this._image,{galleryimg:"no",onselectstart:o.Util.falseFn,onmousemove:o.Util.falseFn,onload:o.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(t){var e=this._map,i=this._image,n=e.getZoomScale(t.zoom),s=this._bounds.getNorthWest(),a=this._bounds.getSouthEast(),r=e._latLngToNewLayerPoint(s,t.zoom,t.center),h=e._latLngToNewLayerPoint(a,t.zoom,t.center)._subtract(r),l=r._add(h._multiplyBy(.5*(1-1/n)));i.style[o.DomUtil.TRANSFORM]=o.DomUtil.getTranslateString(l)+" scale("+n+") "},_reset:function(){var t=this._image,e=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),i=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(e);o.DomUtil.setPosition(t,e),t.style.width=i.x+"px",t.style.height=i.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){o.DomUtil.setOpacity(this._image,this.options.opacity)}}),o.imageOverlay=function(t,e,i){return new o.ImageOverlay(t,e,i)},o.Icon=o.Class.extend({options:{className:""},initialize:function(t){o.setOptions(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n;return n=e&&"IMG"===e.tagName?this._createImg(i,e):this._createImg(i),this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i,n=this.options,s=o.point(n[e+"Size"]);i="shadow"===e?o.point(n.shadowAnchor||n.iconAnchor):o.point(n.iconAnchor),!i&&s&&(i=s.divideBy(2,!0)),t.className="leaflet-marker-"+e+" "+n.className,i&&(t.style.marginLeft=-i.x+"px",t.style.marginTop=-i.y+"px"),s&&(t.style.width=s.x+"px",t.style.height=s.y+"px")},_createImg:function(t,i){return i=i||e.createElement("img"),i.src=t,i},_getIconUrl:function(t){return o.Browser.retina&&this.options[t+"RetinaUrl"]?this.options[t+"RetinaUrl"]:this.options[t+"Url"]}}),o.icon=function(t){return new o.Icon(t)},o.Icon.Default=o.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(t){var e=t+"Url";if(this.options[e])return this.options[e];o.Browser.retina&&"icon"===t&&(t+="-2x");var i=o.Icon.Default.imagePath;if(!i)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return i+"/marker-"+t+".png"}}),o.Icon.Default.imagePath=function(){var t,i,n,o,s,a=e.getElementsByTagName("script"),r=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(t=0,i=a.length;i>t;t++)if(n=a[t].src,o=n.match(r))return s=n.split(r)[0],(s?s+"/":"")+"images"}(),o.Marker=o.Class.extend({includes:o.Mixin.Events,options:{icon:new o.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t)},onAdd:function(t){this._map=t,t.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),t.options.zoomAnimation&&t.options.markerZoomAnimation&&t.on("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),t.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update(),this},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var t=this.options,e=this._map,i=e.options.zoomAnimation&&e.options.markerZoomAnimation,n=i?"leaflet-zoom-animated":"leaflet-zoom-hide",s=t.icon.createIcon(this._icon),a=!1;s!==this._icon&&(this._icon&&this._removeIcon(),a=!0,t.title&&(s.title=t.title),t.alt&&(s.alt=t.alt)),o.DomUtil.addClass(s,n),t.keyboard&&(s.tabIndex="0"),this._icon=s,this._initInteraction(),t.riseOnHover&&o.DomEvent.on(s,"mouseover",this._bringToFront,this).on(s,"mouseout",this._resetZIndex,this);var r=t.icon.createShadow(this._shadow),h=!1;r!==this._shadow&&(this._removeShadow(),h=!0),r&&o.DomUtil.addClass(r,n),this._shadow=r,t.opacity<1&&this._updateOpacity();var l=this._map._panes;a&&l.markerPane.appendChild(this._icon),r&&h&&l.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&o.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(t){o.DomUtil.setPosition(this._icon,t),this._shadow&&o.DomUtil.setPosition(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(e)},_initInteraction:function(){if(this.options.clickable){var t=this._icon,e=["dblclick","mousedown","mouseover","mouseout","contextmenu"];o.DomUtil.addClass(t,"leaflet-clickable"),o.DomEvent.on(t,"click",this._onMouseClick,this),o.DomEvent.on(t,"keypress",this._onKeyPress,this);for(var i=0;i<e.length;i++)o.DomEvent.on(t,e[i],this._fireMouseEvent,this);o.Handler.MarkerDrag&&(this.dragging=new o.Handler.MarkerDrag(this),this.options.draggable&&this.dragging.enable())}},_onMouseClick:function(t){var e=this.dragging&&this.dragging.moved();(this.hasEventListeners(t.type)||e)&&o.DomEvent.stopPropagation(t),e||(this.dragging&&this.dragging._enabled||!this._map.dragging||!this._map.dragging.moved())&&this.fire(t.type,{originalEvent:t,latlng:this._latlng})},_onKeyPress:function(t){13===t.keyCode&&this.fire("click",{originalEvent:t,latlng:this._latlng})},_fireMouseEvent:function(t){this.fire(t.type,{originalEvent:t,latlng:this._latlng}),"contextmenu"===t.type&&this.hasEventListeners(t.type)&&o.DomEvent.preventDefault(t),"mousedown"!==t.type?o.DomEvent.stopPropagation(t):o.DomEvent.preventDefault(t)},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){o.DomUtil.setOpacity(this._icon,this.options.opacity),this._shadow&&o.DomUtil.setOpacity(this._shadow,this.options.opacity)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),o.marker=function(t,e){return new o.Marker(t,e)},o.DivIcon=o.Icon.extend({options:{iconSize:[12,12],className:"leaflet-div-icon",html:!1},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:e.createElement("div"),n=this.options;return n.html!==!1?i.innerHTML=n.html:i.innerHTML="",n.bgPos&&(i.style.backgroundPosition=-n.bgPos.x+"px "+-n.bgPos.y+"px"),this._setIconStyles(i,"icon"),i},createShadow:function(){return null}}),o.divIcon=function(t){return new o.DivIcon(t)},o.Map.mergeOptions({closePopupOnClick:!0}),o.Popup=o.Class.extend({includes:o.Mixin.Events,options:{minWidth:50,maxWidth:300,autoPan:!0,closeButton:!0,offset:[0,7],autoPanPadding:[5,5],keepInView:!1,className:"",zoomAnimation:!0},initialize:function(t,e){o.setOptions(this,t),this._source=e,this._animated=o.Browser.any3d&&this.options.zoomAnimation,this._isOpen=!1},onAdd:function(t){this._map=t,this._container||this._initLayout();var e=t.options.fadeAnimation;e&&o.DomUtil.setOpacity(this._container,0),t._panes.popupPane.appendChild(this._container),t.on(this._getEvents(),this),this.update(),e&&o.DomUtil.setOpacity(this._container,1),this.fire("open"),t.fire("popupopen",{popup:this}),this._source&&this._source.fire("popupopen",{popup:this})},addTo:function(t){return t.addLayer(this),this},openOn:function(t){return t.openPopup(this),this},onRemove:function(t){t._panes.popupPane.removeChild(this._container),o.Util.falseFn(this._container.offsetWidth),t.off(this._getEvents(),this),t.options.fadeAnimation&&o.DomUtil.setOpacity(this._container,0),this._map=null,this.fire("close"),t.fire("popupclose",{popup:this}),this._source&&this._source.fire("popupclose",{popup:this})},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},_getEvents:function(){var t={viewreset:this._updatePosition};return this._animated&&(t.zoomanim=this._zoomAnimation),("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t,e="leaflet-popup",i=e+" "+this.options.className+" leaflet-zoom-"+(this._animated?"animated":"hide"),n=this._container=o.DomUtil.create("div",i);this.options.closeButton&&(t=this._closeButton=o.DomUtil.create("a",e+"-close-button",n),t.href="#close",t.innerHTML="×",o.DomEvent.disableClickPropagation(t),o.DomEvent.on(t,"click",this._onCloseButtonClick,this));var s=this._wrapper=o.DomUtil.create("div",e+"-content-wrapper",n);o.DomEvent.disableClickPropagation(s),this._contentNode=o.DomUtil.create("div",e+"-content",s),o.DomEvent.disableScrollPropagation(this._contentNode),o.DomEvent.on(s,"contextmenu",o.DomEvent.stopPropagation),this._tipContainer=o.DomUtil.create("div",e+"-tip-container",n),this._tip=o.DomUtil.create("div",e+"-tip",this._tipContainer)},_updateContent:function(){if(this._content){if("string"==typeof this._content)this._contentNode.innerHTML=this._content;else{for(;this._contentNode.hasChildNodes();)this._contentNode.removeChild(this._contentNode.firstChild);this._contentNode.appendChild(this._content)}this.fire("contentupdate")}},_updateLayout:function(){var t=this._contentNode,e=t.style;e.width="",e.whiteSpace="nowrap";var i=t.offsetWidth;i=Math.min(i,this.options.maxWidth),i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height="";var n=t.offsetHeight,s=this.options.maxHeight,a="leaflet-popup-scrolled";s&&n>s?(e.height=s+"px",o.DomUtil.addClass(t,a)):o.DomUtil.removeClass(t,a),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=this._animated,i=o.point(this.options.offset);e&&o.DomUtil.setPosition(this._container,t),this._containerBottom=-i.y-(e?0:t.y),this._containerLeft=-Math.round(this._containerWidth/2)+i.x+(e?0:t.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);o.DomUtil.setPosition(this._container,e)},_adjustPan:function(){if(this.options.autoPan){var t=this._map,e=this._container.offsetHeight,i=this._containerWidth,n=new o.Point(this._containerLeft,-e-this._containerBottom);this._animated&&n._add(o.DomUtil.getPosition(this._container));var s=t.layerPointToContainerPoint(n),a=o.point(this.options.autoPanPadding),r=o.point(this.options.autoPanPaddingTopLeft||a),h=o.point(this.options.autoPanPaddingBottomRight||a),l=t.getSize(),u=0,c=0;s.x+i+h.x>l.x&&(u=s.x+i-l.x+h.x),s.x-u-r.x<0&&(u=s.x-r.x),s.y+e+h.y>l.y&&(c=s.y+e-l.y+h.y),s.y-c-r.y<0&&(c=s.y-r.y),(u||c)&&t.fire("autopanstart").panBy([u,c])}},_onCloseButtonClick:function(t){this._close(),o.DomEvent.stop(t)}}),o.popup=function(t,e){return new o.Popup(t,e)},o.Map.include({openPopup:function(t,e,i){if(this.closePopup(),!(t instanceof o.Popup)){var n=t;t=new o.Popup(i).setLatLng(e).setContent(n)}return t._isOpen=!0,this._popup=t,this.addLayer(t)},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&(this.removeLayer(t),t._isOpen=!1),this}}),o.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(t,e){var i=o.point(this.options.icon.options.popupAnchor||[0,0]);return i=i.add(o.Popup.prototype.options.offset),e&&e.offset&&(i=i.add(e.offset)),e=o.extend({offset:i},e),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),t instanceof o.Popup?(o.setOptions(t,e),this._popup=t,t._source=this):this._popup=new o.Popup(e,this).setContent(t),this},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(t){this._popup.setLatLng(t.latlng)}}),o.LayerGroup=o.Class.extend({initialize:function(t){this._layers={};var e,i;if(t)for(e=0,i=t.length;i>e;e++)this.addLayer(t[e])},addLayer:function(t){var e=this.getLayerId(t);return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var e=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[e]&&this._map.removeLayer(this._layers[e]),delete this._layers[e],this},hasLayer:function(t){return t?t in this._layers||this.getLayerId(t)in this._layers:!1},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1);for(e in this._layers)i=this._layers[e],i[t]&&i[t].apply(i,n);return this},onAdd:function(t){this._map=t,this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t),this._map=null},addTo:function(t){return t.addLayer(this),this},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];for(var e in this._layers)t.push(this._layers[e]);return t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return o.stamp(t)}}),o.layerGroup=function(t){return new o.LayerGroup(t)},o.FeatureGroup=o.LayerGroup.extend({includes:o.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(t){return this.hasLayer(t)?this:("on"in t&&t.on(o.FeatureGroup.EVENTS,this._propagateEvent,this),o.LayerGroup.prototype.addLayer.call(this,t),this._popupContent&&t.bindPopup&&t.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),"off"in t&&t.off(o.FeatureGroup.EVENTS,this._propagateEvent,this),o.LayerGroup.prototype.removeLayer.call(this,t),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:t})):this},bindPopup:function(t,e){return this._popupContent=t,this._popupOptions=e,this.invoke("bindPopup",t,e)},openPopup:function(t){for(var e in this._layers){this._layers[e].openPopup(t);break}return this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new o.LatLngBounds;return this.eachLayer(function(e){t.extend(e instanceof o.Marker?e.getLatLng():e.getBounds())}),t},_propagateEvent:function(t){t=o.extend({layer:t.target,target:this},t),this.fire(t.type,t)}}),o.featureGroup=function(t){return new o.FeatureGroup(t)},o.Path=o.Class.extend({includes:[o.Mixin.Events],statics:{CLIP_PADDING:function(){var e=o.Browser.mobile?1280:2e3,i=(e/Math.max(t.outerWidth,t.outerHeight)-1)/2;return Math.max(0,Math.min(.5,i))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(t){o.setOptions(this,t)},onAdd:function(t){this._map=t,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),t.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){t._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,o.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),t.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(t){return o.setOptions(this,t),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),o.Map.include({_updatePathViewport:function(){var t=o.Path.CLIP_PADDING,e=this.getSize(),i=o.DomUtil.getPosition(this._mapPane),n=i.multiplyBy(-1)._subtract(e.multiplyBy(t)._round()),s=n.add(e.multiplyBy(1+2*t)._round());this._pathViewport=new o.Bounds(n,s)}}),o.Path.SVG_NS="http://www.w3.org/2000/svg",o.Browser.svg=!(!e.createElementNS||!e.createElementNS(o.Path.SVG_NS,"svg").createSVGRect),o.Path=o.Path.extend({statics:{SVG:o.Browser.svg},bringToFront:function(){var t=this._map._pathRoot,e=this._container;return e&&t.lastChild!==e&&t.appendChild(e),this},bringToBack:function(){var t=this._map._pathRoot,e=this._container,i=t.firstChild;return e&&i!==e&&t.insertBefore(e,i),this},getPathString:function(){},_createElement:function(t){return e.createElementNS(o.Path.SVG_NS,t)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&o.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var t=this.getPathString();t||(t="M0 0"),this._path.setAttribute("d",t)},_initEvents:function(){if(this.options.clickable){(o.Browser.svg||!o.Browser.vml)&&o.DomUtil.addClass(this._path,"leaflet-clickable"),o.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var t=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],e=0;e<t.length;e++)o.DomEvent.on(this._container,t[e],this._fireMouseEvent,this)}},_onMouseClick:function(t){this._map.dragging&&this._map.dragging.moved()||this._fireMouseEvent(t)},_fireMouseEvent:function(t){if(this._map&&this.hasEventListeners(t.type)){var e=this._map,i=e.mouseEventToContainerPoint(t),n=e.containerPointToLayerPoint(i),s=e.layerPointToLatLng(n);this.fire(t.type,{latlng:s,layerPoint:n,containerPoint:i,originalEvent:t}),"contextmenu"===t.type&&o.DomEvent.preventDefault(t),"mousemove"!==t.type&&o.DomEvent.stopPropagation(t)}}}),o.Map.include({_initPathRoot:function(){this._pathRoot||(this._pathRoot=o.Path.prototype._createElement("svg"),this._panes.overlayPane.appendChild(this._pathRoot),this.options.zoomAnimation&&o.Browser.any3d?(o.DomUtil.addClass(this._pathRoot,"leaflet-zoom-animated"), -this.on({zoomanim:this._animatePathZoom,zoomend:this._endPathZoom})):o.DomUtil.addClass(this._pathRoot,"leaflet-zoom-hide"),this.on("moveend",this._updateSvgViewport),this._updateSvgViewport())},_animatePathZoom:function(t){var e=this.getZoomScale(t.zoom),i=this._getCenterOffset(t.center)._multiplyBy(-e)._add(this._pathViewport.min);this._pathRoot.style[o.DomUtil.TRANSFORM]=o.DomUtil.getTranslateString(i)+" scale("+e+") ",this._pathZooming=!0},_endPathZoom:function(){this._pathZooming=!1},_updateSvgViewport:function(){if(!this._pathZooming){this._updatePathViewport();var t=this._pathViewport,e=t.min,i=t.max,n=i.x-e.x,s=i.y-e.y,a=this._pathRoot,r=this._panes.overlayPane;o.Browser.mobileWebkit&&r.removeChild(a),o.DomUtil.setPosition(a,e),a.setAttribute("width",n),a.setAttribute("height",s),a.setAttribute("viewBox",[e.x,e.y,n,s].join(" ")),o.Browser.mobileWebkit&&r.appendChild(a)}}}),o.Path.include({bindPopup:function(t,e){return t instanceof o.Popup?this._popup=t:((!this._popup||e)&&(this._popup=new o.Popup(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on("click",this._openPopup,this).on("remove",this.closePopup,this),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this._openPopup).off("remove",this.closePopup),this._popupHandlersAdded=!1),this},openPopup:function(t){return this._popup&&(t=t||this._latlng||this._latlngs[Math.floor(this._latlngs.length/2)],this._openPopup({latlng:t})),this},closePopup:function(){return this._popup&&this._popup._close(),this},_openPopup:function(t){this._popup.setLatLng(t.latlng),this._map.openPopup(this._popup)}}),o.Browser.vml=!o.Browser.svg&&function(){try{var t=e.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(n){return!1}}(),o.Path=o.Browser.svg||!o.Browser.vml?o.Path:o.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return e.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return e.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var t=this._container=this._createElement("shape");o.DomUtil.addClass(t,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&o.DomUtil.addClass(t,"leaflet-clickable"),t.coordsize="1 1",this._path=this._createElement("path"),t.appendChild(this._path),this._map._pathRoot.appendChild(t)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var t=this._stroke,e=this._fill,i=this.options,n=this._container;n.stroked=i.stroke,n.filled=i.fill,i.stroke?(t||(t=this._stroke=this._createElement("stroke"),t.endcap="round",n.appendChild(t)),t.weight=i.weight+"px",t.color=i.color,t.opacity=i.opacity,i.dashArray?t.dashStyle=o.Util.isArray(i.dashArray)?i.dashArray.join(" "):i.dashArray.replace(/( *, *)/g," "):t.dashStyle="",i.lineCap&&(t.endcap=i.lineCap.replace("butt","flat")),i.lineJoin&&(t.joinstyle=i.lineJoin)):t&&(n.removeChild(t),this._stroke=null),i.fill?(e||(e=this._fill=this._createElement("fill"),n.appendChild(e)),e.color=i.fillColor||i.color,e.opacity=i.fillOpacity):e&&(n.removeChild(e),this._fill=null)},_updatePath:function(){var t=this._container.style;t.display="none",this._path.v=this.getPathString()+" ",t.display=""}}),o.Map.include(o.Browser.svg||!o.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var t=this._pathRoot=e.createElement("div");t.className="leaflet-vml-container",this._panes.overlayPane.appendChild(t),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),o.Browser.canvas=function(){return!!e.createElement("canvas").getContext}(),o.Path=o.Path.SVG&&!t.L_PREFER_CANVAS||!o.Browser.canvas?o.Path:o.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(t){return o.setOptions(this,t),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(t){t.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!o.Path._updateRequest&&(o.Path._updateRequest=o.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){o.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var t=this.options;t.stroke&&(this._ctx.lineWidth=t.weight,this._ctx.strokeStyle=t.color),t.fill&&(this._ctx.fillStyle=t.fillColor||t.color),t.lineCap&&(this._ctx.lineCap=t.lineCap),t.lineJoin&&(this._ctx.lineJoin=t.lineJoin)},_drawPath:function(){var t,e,i,n,s,a;for(this._ctx.beginPath(),t=0,i=this._parts.length;i>t;t++){for(e=0,n=this._parts[t].length;n>e;e++)s=this._parts[t][e],a=(0===e?"move":"line")+"To",this._ctx[a](s.x,s.y);this instanceof o.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var t=this._ctx,e=this.options;this._drawPath(),t.save(),this._updateStyle(),e.fill&&(t.globalAlpha=e.fillOpacity,t.fill(e.fillRule||"evenodd")),e.stroke&&(t.globalAlpha=e.opacity,t.stroke()),t.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(t){this._containsPoint(t.layerPoint)&&this.fire(t.type,t)},_onMouseMove:function(t){this._map&&!this._map._animatingZoom&&(this._containsPoint(t.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",t)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",t)))}}),o.Map.include(o.Path.SVG&&!t.L_PREFER_CANVAS||!o.Browser.canvas?{}:{_initPathRoot:function(){var t,i=this._pathRoot;i||(i=this._pathRoot=e.createElement("canvas"),i.style.position="absolute",t=this._canvasCtx=i.getContext("2d"),t.lineCap="round",t.lineJoin="round",this._panes.overlayPane.appendChild(i),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var t=this._pathViewport,e=t.min,i=t.max.subtract(e),n=this._pathRoot;o.DomUtil.setPosition(n,e),n.width=i.x,n.height=i.y,n.getContext("2d").translate(-e.x,-e.y)}}}),o.LineUtil={simplify:function(t,e){if(!e||!t.length)return t.slice();var i=e*e;return t=this._reducePoints(t,i),t=this._simplifyDP(t,i)},pointToSegmentDistance:function(t,e,i){return Math.sqrt(this._sqClosestPointOnSegment(t,e,i,!0))},closestPointOnSegment:function(t,e,i){return this._sqClosestPointOnSegment(t,e,i)},_simplifyDP:function(t,e){var n=t.length,o=typeof Uint8Array!=i+""?Uint8Array:Array,s=new o(n);s[0]=s[n-1]=1,this._simplifyDPStep(t,s,e,0,n-1);var a,r=[];for(a=0;n>a;a++)s[a]&&r.push(t[a]);return r},_simplifyDPStep:function(t,e,i,n,o){var s,a,r,h=0;for(a=n+1;o-1>=a;a++)r=this._sqClosestPointOnSegment(t[a],t[n],t[o],!0),r>h&&(s=a,h=r);h>i&&(e[s]=1,this._simplifyDPStep(t,e,i,n,s),this._simplifyDPStep(t,e,i,s,o))},_reducePoints:function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;s>n;n++)this._sqDist(t[n],t[o])>e&&(i.push(t[n]),o=n);return s-1>o&&i.push(t[s-1]),i},clipSegment:function(t,e,i,n){var o,s,a,r=n?this._lastCode:this._getBitCode(t,i),h=this._getBitCode(e,i);for(this._lastCode=h;;){if(!(r|h))return[t,e];if(r&h)return!1;o=r||h,s=this._getEdgeIntersection(t,e,o,i),a=this._getBitCode(s,i),o===r?(t=s,r=a):(e=s,h=a)}},_getEdgeIntersection:function(t,e,i,n){var s=e.x-t.x,a=e.y-t.y,r=n.min,h=n.max;return 8&i?new o.Point(t.x+s*(h.y-t.y)/a,h.y):4&i?new o.Point(t.x+s*(r.y-t.y)/a,r.y):2&i?new o.Point(h.x,t.y+a*(h.x-t.x)/s):1&i?new o.Point(r.x,t.y+a*(r.x-t.x)/s):void 0},_getBitCode:function(t,e){var i=0;return t.x<e.min.x?i|=1:t.x>e.max.x&&(i|=2),t.y<e.min.y?i|=4:t.y>e.max.y&&(i|=8),i},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},_sqClosestPointOnSegment:function(t,e,i,n){var s,a=e.x,r=e.y,h=i.x-a,l=i.y-r,u=h*h+l*l;return u>0&&(s=((t.x-a)*h+(t.y-r)*l)/u,s>1?(a=i.x,r=i.y):s>0&&(a+=h*s,r+=l*s)),h=t.x-a,l=t.y-r,n?h*h+l*l:new o.Point(a,r)}},o.Polyline=o.Path.extend({initialize:function(t,e){o.Path.prototype.initialize.call(this,e),this._latlngs=this._convertLatLngs(t)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var t=0,e=this._latlngs.length;e>t;t++)this._originalPoints[t]=this._map.latLngToLayerPoint(this._latlngs[t])},getPathString:function(){for(var t=0,e=this._parts.length,i="";e>t;t++)i+=this._getPathPartStr(this._parts[t]);return i},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._latlngs=this._convertLatLngs(t),this.redraw()},addLatLng:function(t){return this._latlngs.push(o.latLng(t)),this.redraw()},spliceLatLngs:function(){var t=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),t},closestLayerPoint:function(t){for(var e,i,n=1/0,s=this._parts,a=null,r=0,h=s.length;h>r;r++)for(var l=s[r],u=1,c=l.length;c>u;u++){e=l[u-1],i=l[u];var d=o.LineUtil._sqClosestPointOnSegment(t,e,i,!0);n>d&&(n=d,a=o.LineUtil._sqClosestPointOnSegment(t,e,i))}return a&&(a.distance=Math.sqrt(n)),a},getBounds:function(){return new o.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(t,e){var i,n,s=e?t:[];for(i=0,n=t.length;n>i;i++){if(o.Util.isArray(t[i])&&"number"!=typeof t[i][0])return;s[i]=o.latLng(t[i])}return s},_initEvents:function(){o.Path.prototype._initEvents.call(this)},_getPathPartStr:function(t){for(var e,i=o.Path.VML,n=0,s=t.length,a="";s>n;n++)e=t[n],i&&e._round(),a+=(n?"L":"M")+e.x+" "+e.y;return a},_clipPoints:function(){var t,e,i,n=this._originalPoints,s=n.length;if(this.options.noClip)return void(this._parts=[n]);this._parts=[];var a=this._parts,r=this._map._pathViewport,h=o.LineUtil;for(t=0,e=0;s-1>t;t++)i=h.clipSegment(n[t],n[t+1],r,t),i&&(a[e]=a[e]||[],a[e].push(i[0]),(i[1]!==n[t+1]||t===s-2)&&(a[e].push(i[1]),e++))},_simplifyPoints:function(){for(var t=this._parts,e=o.LineUtil,i=0,n=t.length;n>i;i++)t[i]=e.simplify(t[i],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),o.Path.prototype._updatePath.call(this))}}),o.polyline=function(t,e){return new o.Polyline(t,e)},o.PolyUtil={},o.PolyUtil.clipPolygon=function(t,e){var i,n,s,a,r,h,l,u,c,d=[1,4,2,8],p=o.LineUtil;for(n=0,l=t.length;l>n;n++)t[n]._code=p._getBitCode(t[n],e);for(a=0;4>a;a++){for(u=d[a],i=[],n=0,l=t.length,s=l-1;l>n;s=n++)r=t[n],h=t[s],r._code&u?h._code&u||(c=p._getEdgeIntersection(h,r,u,e),c._code=p._getBitCode(c,e),i.push(c)):(h._code&u&&(c=p._getEdgeIntersection(h,r,u,e),c._code=p._getBitCode(c,e),i.push(c)),i.push(r));t=i}return t},o.Polygon=o.Polyline.extend({options:{fill:!0},initialize:function(t,e){o.Polyline.prototype.initialize.call(this,t,e),this._initWithHoles(t)},_initWithHoles:function(t){var e,i,n;if(t&&o.Util.isArray(t[0])&&"number"!=typeof t[0][0])for(this._latlngs=this._convertLatLngs(t[0]),this._holes=t.slice(1),e=0,i=this._holes.length;i>e;e++)n=this._holes[e]=this._convertLatLngs(this._holes[e]),n[0].equals(n[n.length-1])&&n.pop();t=this._latlngs,t.length>=2&&t[0].equals(t[t.length-1])&&t.pop()},projectLatlngs:function(){if(o.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes){var t,e,i,n;for(t=0,i=this._holes.length;i>t;t++)for(this._holePoints[t]=[],e=0,n=this._holes[t].length;n>e;e++)this._holePoints[t][e]=this._map.latLngToLayerPoint(this._holes[t][e])}},setLatLngs:function(t){return t&&o.Util.isArray(t[0])&&"number"!=typeof t[0][0]?(this._initWithHoles(t),this.redraw()):o.Polyline.prototype.setLatLngs.call(this,t)},_clipPoints:function(){var t=this._originalPoints,e=[];if(this._parts=[t].concat(this._holePoints),!this.options.noClip){for(var i=0,n=this._parts.length;n>i;i++){var s=o.PolyUtil.clipPolygon(this._parts[i],this._map._pathViewport);s.length&&e.push(s)}this._parts=e}},_getPathPartStr:function(t){var e=o.Polyline.prototype._getPathPartStr.call(this,t);return e+(o.Browser.svg?"z":"x")}}),o.polygon=function(t,e){return new o.Polygon(t,e)},function(){function t(t){return o.FeatureGroup.extend({initialize:function(t,e){this._layers={},this._options=e,this.setLatLngs(t)},setLatLngs:function(e){var i=0,n=e.length;for(this.eachLayer(function(t){n>i?t.setLatLngs(e[i++]):this.removeLayer(t)},this);n>i;)this.addLayer(new t(e[i++],this._options));return this},getLatLngs:function(){var t=[];return this.eachLayer(function(e){t.push(e.getLatLngs())}),t}})}o.MultiPolyline=t(o.Polyline),o.MultiPolygon=t(o.Polygon),o.multiPolyline=function(t,e){return new o.MultiPolyline(t,e)},o.multiPolygon=function(t,e){return new o.MultiPolygon(t,e)}}(),o.Rectangle=o.Polygon.extend({initialize:function(t,e){o.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=o.latLngBounds(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}}),o.rectangle=function(t,e){return new o.Rectangle(t,e)},o.Circle=o.Path.extend({initialize:function(t,e,i){o.Path.prototype.initialize.call(this,i),this._latlng=o.latLng(t),this._mRadius=e},options:{fill:!0},setLatLng:function(t){return this._latlng=o.latLng(t),this.redraw()},setRadius:function(t){return this._mRadius=t,this.redraw()},projectLatlngs:function(){var t=this._getLngRadius(),e=this._latlng,i=this._map.latLngToLayerPoint([e.lat,e.lng-t]);this._point=this._map.latLngToLayerPoint(e),this._radius=Math.max(this._point.x-i.x,1)},getBounds:function(){var t=this._getLngRadius(),e=this._mRadius/40075017*360,i=this._latlng;return new o.LatLngBounds([i.lat-e,i.lng-t],[i.lat+e,i.lng+t])},getLatLng:function(){return this._latlng},getPathString:function(){var t=this._point,e=this._radius;return this._checkIfEmpty()?"":o.Browser.svg?"M"+t.x+","+(t.y-e)+"A"+e+","+e+",0,1,1,"+(t.x-.1)+","+(t.y-e)+" z":(t._round(),e=Math.round(e),"AL "+t.x+","+t.y+" "+e+","+e+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(o.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var t=this._map._pathViewport,e=this._radius,i=this._point;return i.x-e>t.max.x||i.y-e>t.max.y||i.x+e<t.min.x||i.y+e<t.min.y}}),o.circle=function(t,e,i){return new o.Circle(t,e,i)},o.CircleMarker=o.Circle.extend({options:{radius:10,weight:2},initialize:function(t,e){o.Circle.prototype.initialize.call(this,t,null,e),this._radius=this.options.radius},projectLatlngs:function(){this._point=this._map.latLngToLayerPoint(this._latlng)},_updateStyle:function(){o.Circle.prototype._updateStyle.call(this),this.setRadius(this.options.radius)},setLatLng:function(t){return o.Circle.prototype.setLatLng.call(this,t),this._popup&&this._popup._isOpen&&this._popup.setLatLng(t),this},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius}}),o.circleMarker=function(t,e){return new o.CircleMarker(t,e)},o.Polyline.include(o.Path.CANVAS?{_containsPoint:function(t,e){var i,n,s,a,r,h,l,u=this.options.weight/2;for(o.Browser.touch&&(u+=10),i=0,a=this._parts.length;a>i;i++)for(l=this._parts[i],n=0,r=l.length,s=r-1;r>n;s=n++)if((e||0!==n)&&(h=o.LineUtil.pointToSegmentDistance(t,l[s],l[n]),u>=h))return!0;return!1}}:{}),o.Polygon.include(o.Path.CANVAS?{_containsPoint:function(t){var e,i,n,s,a,r,h,l,u=!1;if(o.Polyline.prototype._containsPoint.call(this,t,!0))return!0;for(s=0,h=this._parts.length;h>s;s++)for(e=this._parts[s],a=0,l=e.length,r=l-1;l>a;r=a++)i=e[a],n=e[r],i.y>t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u}}:{}),o.Circle.include(o.Path.CANVAS?{_drawPath:function(){var t=this._point;this._ctx.beginPath(),this._ctx.arc(t.x,t.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(t){var e=this._point,i=this.options.stroke?this.options.weight/2:0;return t.distanceTo(e)<=this._radius+i}}:{}),o.CircleMarker.include(o.Path.CANVAS?{_updateStyle:function(){o.Path.prototype._updateStyle.call(this)}}:{}),o.GeoJSON=o.FeatureGroup.extend({initialize:function(t,e){o.setOptions(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,s=o.Util.isArray(t)?t:t.features;if(s){for(e=0,i=s.length;i>e;e++)n=s[e],(n.geometries||n.geometry||n.features||n.coordinates)&&this.addData(s[e]);return this}var a=this.options;if(!a.filter||a.filter(t)){var r=o.GeoJSON.geometryToLayer(t,a.pointToLayer,a.coordsToLatLng,a);return r.feature=o.GeoJSON.asFeature(t),r.defaultOptions=r.options,this.resetStyle(r),a.onEachFeature&&a.onEachFeature(t,r),this.addLayer(r)}},resetStyle:function(t){var e=this.options.style;e&&(o.Util.extend(t.options,t.defaultOptions),this._setLayerStyle(t,e))},setStyle:function(t){this.eachLayer(function(e){this._setLayerStyle(e,t)},this)},_setLayerStyle:function(t,e){"function"==typeof e&&(e=e(t.feature)),t.setStyle&&t.setStyle(e)}}),o.extend(o.GeoJSON,{geometryToLayer:function(t,e,i,n){var s,a,r,h,l="Feature"===t.type?t.geometry:t,u=l.coordinates,c=[];switch(i=i||this.coordsToLatLng,l.type){case"Point":return s=i(u),e?e(t,s):new o.Marker(s);case"MultiPoint":for(r=0,h=u.length;h>r;r++)s=i(u[r]),c.push(e?e(t,s):new o.Marker(s));return new o.FeatureGroup(c);case"LineString":return a=this.coordsToLatLngs(u,0,i),new o.Polyline(a,n);case"Polygon":if(2===u.length&&!u[1].length)throw new Error("Invalid GeoJSON object.");return a=this.coordsToLatLngs(u,1,i),new o.Polygon(a,n);case"MultiLineString":return a=this.coordsToLatLngs(u,1,i),new o.MultiPolyline(a,n);case"MultiPolygon":return a=this.coordsToLatLngs(u,2,i),new o.MultiPolygon(a,n);case"GeometryCollection":for(r=0,h=l.geometries.length;h>r;r++)c.push(this.geometryToLayer({geometry:l.geometries[r],type:"Feature",properties:t.properties},e,i,n));return new o.FeatureGroup(c);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(t){return new o.LatLng(t[1],t[0],t[2])},coordsToLatLngs:function(t,e,i){var n,o,s,a=[];for(o=0,s=t.length;s>o;o++)n=e?this.coordsToLatLngs(t[o],e-1,i):(i||this.coordsToLatLng)(t[o]),a.push(n);return a},latLngToCoords:function(t){var e=[t.lng,t.lat];return t.alt!==i&&e.push(t.alt),e},latLngsToCoords:function(t){for(var e=[],i=0,n=t.length;n>i;i++)e.push(o.GeoJSON.latLngToCoords(t[i]));return e},getFeature:function(t,e){return t.feature?o.extend({},t.feature,{geometry:e}):o.GeoJSON.asFeature(e)},asFeature:function(t){return"Feature"===t.type?t:{type:"Feature",properties:{},geometry:t}}});var a={toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"Point",coordinates:o.GeoJSON.latLngToCoords(this.getLatLng())})}};o.Marker.include(a),o.Circle.include(a),o.CircleMarker.include(a),o.Polyline.include({toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"LineString",coordinates:o.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),o.Polygon.include({toGeoJSON:function(){var t,e,i,n=[o.GeoJSON.latLngsToCoords(this.getLatLngs())];if(n[0].push(n[0][0]),this._holes)for(t=0,e=this._holes.length;e>t;t++)i=o.GeoJSON.latLngsToCoords(this._holes[t]),i.push(i[0]),n.push(i);return o.GeoJSON.getFeature(this,{type:"Polygon",coordinates:n})}}),function(){function t(t){return function(){var e=[];return this.eachLayer(function(t){e.push(t.toGeoJSON().geometry.coordinates)}),o.GeoJSON.getFeature(this,{type:t,coordinates:e})}}o.MultiPolyline.include({toGeoJSON:t("MultiLineString")}),o.MultiPolygon.include({toGeoJSON:t("MultiPolygon")}),o.LayerGroup.include({toGeoJSON:function(){var e,i=this.feature&&this.feature.geometry,n=[];if(i&&"MultiPoint"===i.type)return t("MultiPoint").call(this);var s=i&&"GeometryCollection"===i.type;return this.eachLayer(function(t){t.toGeoJSON&&(e=t.toGeoJSON(),n.push(s?e.geometry:o.GeoJSON.asFeature(e)))}),s?o.GeoJSON.getFeature(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}})}(),o.geoJson=function(t,e){return new o.GeoJSON(t,e)},o.DomEvent={addListener:function(t,e,i,n){var s,a,r,h=o.stamp(i),l="_leaflet_"+e+h;return t[l]?this:(s=function(e){return i.call(n||t,e||o.DomEvent._getEvent())},o.Browser.pointer&&0===e.indexOf("touch")?this.addPointerListener(t,e,s,h):(o.Browser.touch&&"dblclick"===e&&this.addDoubleTapListener&&this.addDoubleTapListener(t,s,h),"addEventListener"in t?"mousewheel"===e?(t.addEventListener("DOMMouseScroll",s,!1),t.addEventListener(e,s,!1)):"mouseenter"===e||"mouseleave"===e?(a=s,r="mouseenter"===e?"mouseover":"mouseout",s=function(e){return o.DomEvent._checkMouse(t,e)?a(e):void 0},t.addEventListener(r,s,!1)):"click"===e&&o.Browser.android?(a=s,s=function(t){return o.DomEvent._filterClick(t,a)},t.addEventListener(e,s,!1)):t.addEventListener(e,s,!1):"attachEvent"in t&&t.attachEvent("on"+e,s),t[l]=s,this))},removeListener:function(t,e,i){var n=o.stamp(i),s="_leaflet_"+e+n,a=t[s];return a?(o.Browser.pointer&&0===e.indexOf("touch")?this.removePointerListener(t,e,n):o.Browser.touch&&"dblclick"===e&&this.removeDoubleTapListener?this.removeDoubleTapListener(t,n):"removeEventListener"in t?"mousewheel"===e?(t.removeEventListener("DOMMouseScroll",a,!1),t.removeEventListener(e,a,!1)):"mouseenter"===e||"mouseleave"===e?t.removeEventListener("mouseenter"===e?"mouseover":"mouseout",a,!1):t.removeEventListener(e,a,!1):"detachEvent"in t&&t.detachEvent("on"+e,a),t[s]=null,this):this},stopPropagation:function(t){return t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,o.DomEvent._skipped(t),this},disableScrollPropagation:function(t){var e=o.DomEvent.stopPropagation;return o.DomEvent.on(t,"mousewheel",e).on(t,"MozMousePixelScroll",e)},disableClickPropagation:function(t){for(var e=o.DomEvent.stopPropagation,i=o.Draggable.START.length-1;i>=0;i--)o.DomEvent.on(t,o.Draggable.START[i],e);return o.DomEvent.on(t,"click",o.DomEvent._fakeStop).on(t,"dblclick",e)},preventDefault:function(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this},stop:function(t){return o.DomEvent.preventDefault(t).stopPropagation(t)},getMousePosition:function(t,e){if(!e)return new o.Point(t.clientX,t.clientY);var i=e.getBoundingClientRect();return new o.Point(t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop)},getWheelDelta:function(t){var e=0;return t.wheelDelta&&(e=t.wheelDelta/120),t.detail&&(e=-t.detail/3),e},_skipEvents:{},_fakeStop:function(t){o.DomEvent._skipEvents[t.type]=!0},_skipped:function(t){var e=this._skipEvents[t.type];return this._skipEvents[t.type]=!1,e},_checkMouse:function(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(n){return!1}return i!==t},_getEvent:function(){var e=t.event;if(!e)for(var i=arguments.callee.caller;i&&(e=i.arguments[0],!e||t.Event!==e.constructor);)i=i.caller;return e},_filterClick:function(t,e){var i=t.timeStamp||t.originalEvent.timeStamp,n=o.DomEvent._lastClick&&i-o.DomEvent._lastClick;return n&&n>100&&500>n||t.target._simulatedClick&&!t._simulated?void o.DomEvent.stop(t):(o.DomEvent._lastClick=i,e(t))}},o.DomEvent.on=o.DomEvent.addListener,o.DomEvent.off=o.DomEvent.removeListener,o.Draggable=o.Class.extend({includes:o.Mixin.Events,statics:{START:o.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(t,e){this._element=t,this._dragStartTarget=e||t},enable:function(){if(!this._enabled){for(var t=o.Draggable.START.length-1;t>=0;t--)o.DomEvent.on(this._dragStartTarget,o.Draggable.START[t],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var t=o.Draggable.START.length-1;t>=0;t--)o.DomEvent.off(this._dragStartTarget,o.Draggable.START[t],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(t){if(this._moved=!1,!t.shiftKey&&(1===t.which||1===t.button||t.touches)&&(o.DomEvent.stopPropagation(t),!o.Draggable._disabled&&(o.DomUtil.disableImageDrag(),o.DomUtil.disableTextSelection(),!this._moving))){var i=t.touches?t.touches[0]:t;this._startPoint=new o.Point(i.clientX,i.clientY),this._startPos=this._newPos=o.DomUtil.getPosition(this._element),o.DomEvent.on(e,o.Draggable.MOVE[t.type],this._onMove,this).on(e,o.Draggable.END[t.type],this._onUp,this)}},_onMove:function(t){if(t.touches&&t.touches.length>1)return void(this._moved=!0);var i=t.touches&&1===t.touches.length?t.touches[0]:t,n=new o.Point(i.clientX,i.clientY),s=n.subtract(this._startPoint);(s.x||s.y)&&(o.Browser.touch&&Math.abs(s.x)+Math.abs(s.y)<3||(o.DomEvent.preventDefault(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=o.DomUtil.getPosition(this._element).subtract(s),o.DomUtil.addClass(e.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,o.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(s),this._moving=!0,o.Util.cancelAnimFrame(this._animRequest),this._animRequest=o.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))},_updatePosition:function(){this.fire("predrag"),o.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){o.DomUtil.removeClass(e.body,"leaflet-dragging"),this._lastTarget&&(o.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in o.Draggable.MOVE)o.DomEvent.off(e,o.Draggable.MOVE[t],this._onMove).off(e,o.Draggable.END[t],this._onUp);o.DomUtil.enableImageDrag(),o.DomUtil.enableTextSelection(),this._moved&&this._moving&&(o.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),o.Handler=o.Class.extend({initialize:function(t){this._map=t},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),o.Map.mergeOptions({dragging:!0,inertia:!o.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:o.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),o.Map.Drag=o.Handler.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new o.Draggable(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),t.on("viewreset",this._onViewReset,this),t.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var t=this._map;t._panAnim&&t._panAnim.stop(),t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var t=this._lastTime=+new Date,e=this._lastPos=this._draggable._newPos;this._positions.push(e),this._times.push(t),t-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var t=this._map.getSize()._divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,a=Math.abs(o+i)<Math.abs(s+i)?o:s;this._draggable._newPos.x=a},_onDragEnd:function(t){var e=this._map,i=e.options,n=+new Date-this._lastTime,s=!i.inertia||n>i.inertiaThreshold||!this._positions[0];if(e.fire("dragend",t),s)e.fire("moveend");else{var a=this._lastPos.subtract(this._positions[0]),r=(this._lastTime+n-this._times[0])/1e3,h=i.easeLinearity,l=a.multiplyBy(h/r),u=l.distanceTo([0,0]),c=Math.min(i.inertiaMaxSpeed,u),d=l.multiplyBy(c/u),p=c/(i.inertiaDeceleration*h),_=d.multiplyBy(-p/2).round();_.x&&_.y?(_=e._limitOffset(_,e.options.maxBounds),o.Util.requestAnimFrame(function(){e.panBy(_,{duration:p,easeLinearity:h,noMoveStart:!0})})):e.fire("moveend")}}}),o.Map.addInitHook("addHandler","dragging",o.Map.Drag),o.Map.mergeOptions({doubleClickZoom:!0}),o.Map.DoubleClickZoom=o.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom()+(t.originalEvent.shiftKey?-1:1);"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}}),o.Map.addInitHook("addHandler","doubleClickZoom",o.Map.DoubleClickZoom),o.Map.mergeOptions({scrollWheelZoom:!0}),o.Map.ScrollWheelZoom=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),o.DomEvent.on(this._map._container,"MozMousePixelScroll",o.DomEvent.preventDefault),this._delta=0},removeHooks:function(){o.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),o.DomEvent.off(this._map._container,"MozMousePixelScroll",o.DomEvent.preventDefault)},_onWheelScroll:function(t){var e=o.DomEvent.getWheelDelta(t);this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var i=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(o.bind(this._performZoom,this),i),o.DomEvent.preventDefault(t),o.DomEvent.stopPropagation(t)},_performZoom:function(){var t=this._map,e=this._delta,i=t.getZoom();e=e>0?Math.ceil(e):Math.floor(e),e=Math.max(Math.min(e,4),-4),e=t._limitZoom(i+e)-i,this._delta=0,this._startTime=null,e&&("center"===t.options.scrollWheelZoom?t.setZoom(i+e):t.setZoomAround(this._lastMousePos,i+e))}}),o.Map.addInitHook("addHandler","scrollWheelZoom",o.Map.ScrollWheelZoom),o.extend(o.DomEvent,{_touchstart:o.Browser.msPointer?"MSPointerDown":o.Browser.pointer?"pointerdown":"touchstart",_touchend:o.Browser.msPointer?"MSPointerUp":o.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(t,i,n){function s(t){var e;if(o.Browser.pointer?(_.push(t.pointerId),e=_.length):e=t.touches.length,!(e>1)){var i=Date.now(),n=i-(r||i);h=t.touches?t.touches[0]:t,l=n>0&&u>=n,r=i}}function a(t){if(o.Browser.pointer){var e=_.indexOf(t.pointerId);if(-1===e)return;_.splice(e,1)}if(l){if(o.Browser.pointer){var n,s={};for(var a in h)n=h[a],"function"==typeof n?s[a]=n.bind(h):s[a]=n;h=s}h.type="dblclick",i(h),r=null}}var r,h,l=!1,u=250,c="_leaflet_",d=this._touchstart,p=this._touchend,_=[];t[c+d+n]=s,t[c+p+n]=a;var m=o.Browser.pointer?e.documentElement:t;return t.addEventListener(d,s,!1),m.addEventListener(p,a,!1),o.Browser.pointer&&m.addEventListener(o.DomEvent.POINTER_CANCEL,a,!1),this},removeDoubleTapListener:function(t,i){var n="_leaflet_";return t.removeEventListener(this._touchstart,t[n+this._touchstart+i],!1),(o.Browser.pointer?e.documentElement:t).removeEventListener(this._touchend,t[n+this._touchend+i],!1),o.Browser.pointer&&e.documentElement.removeEventListener(o.DomEvent.POINTER_CANCEL,t[n+this._touchend+i],!1),this}}),o.extend(o.DomEvent,{POINTER_DOWN:o.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:o.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:o.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:o.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(t,e,i,n){switch(e){case"touchstart":return this.addPointerListenerStart(t,e,i,n); -case"touchend":return this.addPointerListenerEnd(t,e,i,n);case"touchmove":return this.addPointerListenerMove(t,e,i,n);default:throw"Unknown touch event type"}},addPointerListenerStart:function(t,i,n,s){var a="_leaflet_",r=this._pointers,h=function(t){"mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&o.DomEvent.preventDefault(t);for(var e=!1,i=0;i<r.length;i++)if(r[i].pointerId===t.pointerId){e=!0;break}e||r.push(t),t.touches=r.slice(),t.changedTouches=[t],n(t)};if(t[a+"touchstart"+s]=h,t.addEventListener(this.POINTER_DOWN,h,!1),!this._pointerDocumentListener){var l=function(t){for(var e=0;e<r.length;e++)if(r[e].pointerId===t.pointerId){r.splice(e,1);break}};e.documentElement.addEventListener(this.POINTER_UP,l,!1),e.documentElement.addEventListener(this.POINTER_CANCEL,l,!1),this._pointerDocumentListener=!0}return this},addPointerListenerMove:function(t,e,i,n){function o(t){if(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons){for(var e=0;e<a.length;e++)if(a[e].pointerId===t.pointerId){a[e]=t;break}t.touches=a.slice(),t.changedTouches=[t],i(t)}}var s="_leaflet_",a=this._pointers;return t[s+"touchmove"+n]=o,t.addEventListener(this.POINTER_MOVE,o,!1),this},addPointerListenerEnd:function(t,e,i,n){var o="_leaflet_",s=this._pointers,a=function(t){for(var e=0;e<s.length;e++)if(s[e].pointerId===t.pointerId){s.splice(e,1);break}t.touches=s.slice(),t.changedTouches=[t],i(t)};return t[o+"touchend"+n]=a,t.addEventListener(this.POINTER_UP,a,!1),t.addEventListener(this.POINTER_CANCEL,a,!1),this},removePointerListener:function(t,e,i){var n="_leaflet_",o=t[n+e+i];switch(e){case"touchstart":t.removeEventListener(this.POINTER_DOWN,o,!1);break;case"touchmove":t.removeEventListener(this.POINTER_MOVE,o,!1);break;case"touchend":t.removeEventListener(this.POINTER_UP,o,!1),t.removeEventListener(this.POINTER_CANCEL,o,!1)}return this}}),o.Map.mergeOptions({touchZoom:o.Browser.touch&&!o.Browser.android23,bounceAtZoomLimits:!0}),o.Map.TouchZoom=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var n=i.mouseEventToLayerPoint(t.touches[0]),s=i.mouseEventToLayerPoint(t.touches[1]),a=i._getCenterLayerPoint();this._startCenter=n.add(s)._divideBy(2),this._startDist=n.distanceTo(s),this._moved=!1,this._zooming=!0,this._centerOffset=a.subtract(this._startCenter),i._panAnim&&i._panAnim.stop(),o.DomEvent.on(e,"touchmove",this._onTouchMove,this).on(e,"touchend",this._onTouchEnd,this),o.DomEvent.preventDefault(t)}},_onTouchMove:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&this._zooming){var i=e.mouseEventToLayerPoint(t.touches[0]),n=e.mouseEventToLayerPoint(t.touches[1]);this._scale=i.distanceTo(n)/this._startDist,this._delta=i._add(n)._divideBy(2)._subtract(this._startCenter),1!==this._scale&&(e.options.bounceAtZoomLimits||!(e.getZoom()===e.getMinZoom()&&this._scale<1||e.getZoom()===e.getMaxZoom()&&this._scale>1))&&(this._moved||(o.DomUtil.addClass(e._mapPane,"leaflet-touching"),e.fire("movestart").fire("zoomstart"),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest),this._animRequest=o.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),o.DomEvent.preventDefault(t))}},_updateOnMove:function(){var t=this._map,e=this._getScaleOrigin(),i=t.layerPointToLatLng(e),n=t.getScaleZoom(this._scale);t._animateZoom(i,n,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1);var t=this._map;this._zooming=!1,o.DomUtil.removeClass(t._mapPane,"leaflet-touching"),o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(e,"touchmove",this._onTouchMove).off(e,"touchend",this._onTouchEnd);var i=this._getScaleOrigin(),n=t.layerPointToLatLng(i),s=t.getZoom(),a=t.getScaleZoom(this._scale)-s,r=a>0?Math.ceil(a):Math.floor(a),h=t._limitZoom(s+r),l=t.getZoomScale(h)/this._scale;t._animateZoom(n,h,i,l)},_getScaleOrigin:function(){var t=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(t)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new o.Point(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.addClass(n,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),o.DomEvent.on(e,"touchmove",this._onMove,this).on(e,"touchend",this._onUp,this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(e,"touchmove",this._onMove,this).off(e,"touchend",this._onUp,this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],n=i.target;n&&n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.removeClass(n,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY)},_simulateEvent:function(i,n){var o=e.createEvent("MouseEvents");o._simulated=!0,n.target._simulatedClick=!0,o.initMouseEvent(i,!0,!0,t,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(o)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._moved=!1},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(t){return this._moved=!1,!t.shiftKey||1!==t.which&&1!==t.button?!1:(o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(t),void o.DomEvent.on(e,"mousemove",this._onMouseMove,this).on(e,"mouseup",this._onMouseUp,this).on(e,"keydown",this._onKeyDown,this))},_onMouseMove:function(t){this._moved||(this._box=o.DomUtil.create("div","leaflet-zoom-box",this._pane),o.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var e=this._startLayerPoint,i=this._box,n=this._map.mouseEventToLayerPoint(t),s=n.subtract(e),a=new o.Point(Math.min(n.x,e.x),Math.min(n.y,e.y));o.DomUtil.setPosition(i,a),this._moved=!0,i.style.width=Math.max(0,Math.abs(s.x)-4)+"px",i.style.height=Math.max(0,Math.abs(s.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(e,"mousemove",this._onMouseMove).off(e,"mouseup",this._onMouseUp).off(e,"keydown",this._onKeyDown)},_onMouseUp:function(t){this._finish();var e=this._map,i=e.mouseEventToLayerPoint(t);if(!this._startLayerPoint.equals(i)){var n=new o.LatLngBounds(e.layerPointToLatLng(this._startLayerPoint),e.layerPointToLatLng(i));e.fitBounds(n),e.fire("boxzoomend",{boxZoomBounds:n})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(t){this._map=t,this._setPanOffset(t.options.keyboardPanOffset),this._setZoomOffset(t.options.keyboardZoomOffset)},addHooks:function(){var t=this._map._container;-1===t.tabIndex&&(t.tabIndex="0"),o.DomEvent.on(t,"focus",this._onFocus,this).on(t,"blur",this._onBlur,this).on(t,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var t=this._map._container;o.DomEvent.off(t,"focus",this._onFocus,this).off(t,"blur",this._onBlur,this).off(t,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var i=e.body,n=e.documentElement,o=i.scrollTop||n.scrollTop,s=i.scrollLeft||n.scrollLeft;this._map._container.focus(),t.scrollTo(s,o)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;i>e;e++)n[o.left[e]]=[-1*t,0];for(e=0,i=o.right.length;i>e;e++)n[o.right[e]]=[t,0];for(e=0,i=o.down.length;i>e;e++)n[o.down[e]]=[0,t];for(e=0,i=o.up.length;i>e;e++)n[o.up[e]]=[0,-1*t]},_setZoomOffset:function(t){var e,i,n=this._zoomKeys={},o=this.keyCodes;for(e=0,i=o.zoomIn.length;i>e;e++)n[o.zoomIn[e]]=t;for(e=0,i=o.zoomOut.length;i>e;e++)n[o.zoomOut[e]]=-t},_addHooks:function(){o.DomEvent.on(e,"keydown",this._onKeyDown,this)},_removeHooks:function(){o.DomEvent.off(e,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){var e=t.keyCode,i=this._map;if(e in this._panKeys){if(i._panAnim&&i._panAnim._inProgress)return;i.panBy(this._panKeys[e]),i.options.maxBounds&&i.panInsideBounds(i.options.maxBounds)}else{if(!(e in this._zoomKeys))return;i.setZoom(i.getZoom()+this._zoomKeys[e])}o.DomEvent.stop(t)}}),o.Map.addInitHook("addHandler","keyboard",o.Map.Keyboard),o.Handler.MarkerDrag=o.Handler.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new o.Draggable(t,t)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),o.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),o.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var t=this._marker,e=t._shadow,i=o.DomUtil.getPosition(t._icon),n=t._map.layerPointToLatLng(i);e&&o.DomUtil.setPosition(e,i),t._latlng=n,t.fire("move",{latlng:n}).fire("drag")},_onDragEnd:function(t){this._marker.fire("moveend").fire("dragend",t)}}),o.Control=o.Class.extend({options:{position:"topright"},initialize:function(t){o.setOptions(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return o.DomUtil.addClass(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this},removeFrom:function(t){var e=this.getPosition(),i=t._controlCorners[e];return i.removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(t),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.removeFrom(this),this},_initControlPos:function(){function t(t,s){var a=i+t+" "+i+s;e[t+s]=o.DomUtil.create("div",a,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("div",e+" leaflet-bar");return this._map=t,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,e+"-in",i,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,e+"-out",i,this._zoomOut,this),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(t){this._map.zoomIn(t.shiftKey?3:1)},_zoomOut:function(t){this._map.zoomOut(t.shiftKey?3:1)},_createButton:function(t,e,i,n,s,a){var r=o.DomUtil.create("a",i,n);r.innerHTML=t,r.href="#",r.title=e;var h=o.DomEvent.stopPropagation;return o.DomEvent.on(r,"click",h).on(r,"mousedown",h).on(r,"dblclick",h).on(r,"click",o.DomEvent.preventDefault).on(r,"click",s,a).on(r,"click",this._refocusOnMap,a),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),t._zoom===t.getMinZoom()&&o.DomUtil.addClass(this._zoomOutButton,e),t._zoom===t.getMaxZoom()&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return t.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(t){t.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):void 0},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):void 0},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}},_onLayerAdd:function(t){t.layer.getAttribution&&this.addAttribution(t.layer.getAttribution())},_onLayerRemove:function(t){t.layer.getAttribution&&this.removeAttribution(t.layer.getAttribution())}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(this.attributionControl=(new o.Control.Attribution).addTo(this))}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(t){this._map=t;var e="leaflet-control-scale",i=o.DomUtil.create("div",e),n=this.options;return this._addScales(n,e,i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=o.DomUtil.create("div",e+"-line",i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e+"-line",i))},_update:function(){var t=this._map.getBounds(),e=t.getCenter().lat,i=6378137*Math.PI*Math.cos(e*Math.PI/180),n=i*(t.getNorthEast().lng-t.getSouthWest().lng)/180,o=this._map.getSize(),s=this.options,a=0;o.x>0&&(a=n*(s.maxWidth/o.x)),this._updateScales(s,a)},_updateScales:function(t,e){t.metric&&e&&this._updateMetric(e),t.imperial&&e&&this._updateImperial(e)},_updateMetric:function(t){var e=this._getRoundNum(t);this._mScale.style.width=this._getScaleWidth(e/t)+"px",this._mScale.innerHTML=1e3>e?e+" m":e/1e3+" km"},_updateImperial:function(t){var e,i,n,o=3.2808399*t,s=this._iScale;o>5280?(e=o/5280,i=this._getRoundNum(e),s.style.width=this._getScaleWidth(i/e)+"px",s.innerHTML=i+" mi"):(n=this._getRoundNum(o),s.style.width=this._getScaleWidth(n/o)+"px",s.innerHTML=n+" ft")},_getScaleWidth:function(t){return Math.round(this.options.maxWidth*t)-10},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(t,e,i){o.setOptions(this,i),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){return this._initLayout(),this._update(),t.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(t){t.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._update(),this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._update(),this},removeLayer:function(t){var e=o.stamp(t);return delete this._layers[e],this._update(),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=o.DomUtil.create("div",t);e.setAttribute("aria-haspopup",!0),o.Browser.touch?o.DomEvent.on(e,"click",o.DomEvent.stopPropagation):o.DomEvent.disableClickPropagation(e).disableScrollPropagation(e);var i=this._form=o.DomUtil.create("form",t+"-list");if(this.options.collapsed){o.Browser.android||o.DomEvent.on(e,"mouseover",this._expand,this).on(e,"mouseout",this._collapse,this);var n=this._layersLink=o.DomUtil.create("a",t+"-toggle",e);n.href="#",n.title="Layers",o.Browser.touch?o.DomEvent.on(n,"click",o.DomEvent.stop).on(n,"click",this._expand,this):o.DomEvent.on(n,"focus",this._expand,this),o.DomEvent.on(i,"click",function(){setTimeout(o.bind(this._onInputClick,this),0)},this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=o.DomUtil.create("div",t+"-base",i),this._separator=o.DomUtil.create("div",t+"-separator",i),this._overlaysList=o.DomUtil.create("div",t+"-overlays",i),e.appendChild(i)},_addLayer:function(t,e,i){var n=o.stamp(t);this._layers[n]={layer:t,name:e,overlay:i},this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var t,e,i=!1,n=!1;for(t in this._layers)e=this._layers[t],this._addItem(e),n=n||e.overlay,i=i||!e.overlay;this._separator.style.display=n&&i?"":"none"}},_onLayerChange:function(t){var e=this._layers[o.stamp(t.layer)];if(e){this._handlingClick||this._update();var i=e.overlay?"layeradd"===t.type?"overlayadd":"overlayremove":"layeradd"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)}},_createRadioElement:function(t,i){var n='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"';i&&(n+=' checked="checked"'),n+="/>";var o=e.createElement("div");return o.innerHTML=n,o.firstChild},_addItem:function(t){var i,n=e.createElement("label"),s=this._map.hasLayer(t.layer);t.overlay?(i=e.createElement("input"),i.type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=s):i=this._createRadioElement("leaflet-base-layers",s),i.layerId=o.stamp(t.layer),o.DomEvent.on(i,"click",this._onInputClick,this);var a=e.createElement("span");a.innerHTML=" "+t.name,n.appendChild(i),n.appendChild(a);var r=t.overlay?this._overlaysList:this._baseLayersList;return r.appendChild(n),n},_onInputClick:function(){var t,e,i,n=this._form.getElementsByTagName("input"),o=n.length;for(this._handlingClick=!0,t=0;o>t;t++)e=n[t],i=this._layers[e.layerId],e.checked&&!this._map.hasLayer(i.layer)?this._map.addLayer(i.layer):!e.checked&&this._map.hasLayer(i.layer)&&this._map.removeLayer(i.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){o.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)},o.PosAnimation=o.Class.extend({includes:o.Mixin.Events,run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._newPos=e,this.fire("start"),t.style[o.DomUtil.TRANSITION]="all "+(i||.25)+"s cubic-bezier(0,0,"+(n||.5)+",1)",o.DomEvent.on(t,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),o.DomUtil.setPosition(t,e),o.Util.falseFn(t.offsetWidth),this._stepTimer=setInterval(o.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(o.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),o.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var t=this._getPos();return t?(this._el._leaflet_pos=t,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var e,i,n,s=this._el,a=t.getComputedStyle(s);if(o.Browser.any3d){if(n=a[o.DomUtil.TRANSFORM].match(this._transformRe),!n)return;e=parseFloat(n[1]),i=parseFloat(n[2])}else e=parseFloat(a.left),i=parseFloat(a.top);return new o.Point(e,i,!0)},_onTransitionEnd:function(){o.DomEvent.off(this._el,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[o.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),o.Map.include({setView:function(t,e,n){if(e=e===i?this._zoom:this._limitZoom(e),t=this._limitCenter(o.latLng(t),e,this.options.maxBounds),n=n||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!n.reset&&n!==!0){n.animate!==i&&(n.zoom=o.extend({animate:n.animate},n.zoom),n.pan=o.extend({animate:n.animate},n.pan));var s=this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan);if(s)return clearTimeout(this._sizeTimer),this}return this._resetView(t,e),this},panBy:function(t,e){if(t=o.point(t).round(),e=e||{},!t.x&&!t.y)return this;if(this._panAnim||(this._panAnim=new o.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),e.animate!==!1){o.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var i=this._getMapPanePos().subtract(t);this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){o.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._floor();return(e&&e.animate)===!0||this.getSize().contains(i)?(this.panBy(i,e),!0):!1}}),o.PosAnimation=o.DomUtil.TRANSITION?o.PosAnimation:o.PosAnimation.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var t=+new Date-this._startTime,e=1e3*this._duration;e>t?this._runFrame(this._easeOut(t/e)):(this._runFrame(1),this._complete())},_runFrame:function(t){var e=this._startPos.add(this._offset.multiplyBy(t));o.DomUtil.setPosition(this._el,e),this.fire("step")},_complete:function(){o.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),o.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),o.DomUtil.TRANSITION&&o.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&&o.DomUtil.TRANSITION&&o.Browser.any3d&&!o.Browser.android23&&!o.Browser.mobileOpera,this._zoomAnimated&&o.DomEvent.on(this._mapPane,o.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}),o.Map.include(o.DomUtil.TRANSITION?{_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n),s=this._getCenterLayerPoint()._add(o);return i.animate===!0||this.getSize().contains(o)?(this.fire("movestart").fire("zoomstart"),this._animateZoom(t,e,s,n,null,!0),!0):!1},_animateZoom:function(t,e,i,n,s,a,r){r||(this._animatingZoom=!0),o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=t,this._animateToZoom=e,o.Draggable&&(o.Draggable._disabled=!0),o.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:t,zoom:e,origin:i,scale:n,delta:s,backwards:a}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),o.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),o.Draggable&&(o.Draggable._disabled=!1)},this))}}:{}),o.TileLayer.include({_animateZoom:function(t){this._animating||(this._animating=!0,this._prepareBgBuffer());var e=this._bgBuffer,i=o.DomUtil.TRANSFORM,n=t.delta?o.DomUtil.getTranslateString(t.delta):e.style[i],s=o.DomUtil.getScaleString(t.scale,t.origin);e.style[i]=t.backwards?s+" "+n:n+" "+s},_endZoomAnim:function(){var t=this._tileContainer,e=this._bgBuffer;t.style.visibility="",t.parentNode.appendChild(t),o.Util.falseFn(e.offsetWidth);var i=this._map.getZoom();(i>this.options.maxZoom||i<this.options.minZoom)&&this._clearBgBuffer(),this._animating=!1},_clearBgBuffer:function(){var t=this._map;!t||t._animatingZoom||t.touchZoom._zooming||(this._bgBuffer.innerHTML="",this._bgBuffer.style[o.DomUtil.TRANSFORM]="")},_prepareBgBuffer:function(){var t=this._tileContainer,e=this._bgBuffer,i=this._getLoadedTilesPercentage(e),n=this._getLoadedTilesPercentage(t);return e&&i>.5&&.5>n?(t.style.visibility="hidden",void this._stopLoadingImages(t)):(e.style.visibility="hidden",e.style[o.DomUtil.TRANSFORM]="",this._tileContainer=e,e=this._bgBuffer=t,this._stopLoadingImages(e),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(t){var e,i,n=t.getElementsByTagName("img"),o=0;for(e=0,i=n.length;i>e;e++)n[e].complete&&o++;return o/i},_stopLoadingImages:function(t){var e,i,n,s=Array.prototype.slice.call(t.getElementsByTagName("img"));for(e=0,i=s.length;i>e;e++)n=s[e],n.complete||(n.onload=o.Util.falseFn,n.onerror=o.Util.falseFn,n.src=o.Util.emptyImageUrl,n.parentNode.removeChild(n))}}),o.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(t){if(t=this._locateOptions=o.extend(this._defaultLocateOptions,t),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),s=180*t.coords.accuracy/40075017,a=s/Math.cos(o.LatLng.DEG_TO_RAD*e),r=o.latLngBounds([e-s,i-a],[e+s,i+a]),h=this._locateOptions;if(h.setView){var l=Math.min(this.getBoundsZoom(r),h.maxZoom);this.setView(n,l)}var u={latlng:n,bounds:r,timestamp:t.timestamp};for(var c in t.coords)"number"==typeof t.coords[c]&&(u[c]=t.coords[c]);this.fire("locationfound",u)}})}(window,document); \ No newline at end of file diff --git a/www/js/vendor/leaflet.loading.js b/www/js/vendor/leaflet.loading.js deleted file mode 100644 index 7fb7b7808..000000000 --- a/www/js/vendor/leaflet.loading.js +++ /dev/null @@ -1,351 +0,0 @@ -/* - * L.Control.Loading is a control that shows a loading indicator when tiles are - * loading or when map-related AJAX requests are taking place. - */ - -(function () { - - var console = window.console || { - error: function () {}, - warn: function () {} - }; - - function defineLeafletLoading(L) { - L.Control.Loading = L.Control.extend({ - options: { - delayIndicator: null, - position: 'topleft', - separate: false, - zoomControl: null, - spinjs: false, - spin: { - lines: 7, - length: 3, - width: 3, - radius: 5, - rotate: 13, - top: "83%" - } - }, - - initialize: function(options) { - L.setOptions(this, options); - this._dataLoaders = {}; - - // Try to set the zoom control this control is attached to from the - // options - if (this.options.zoomControl !== null) { - this.zoomControl = this.options.zoomControl; - } - }, - - onAdd: function(map) { - if (this.options.spinjs && (typeof Spinner !== 'function')) { - return console.error("Leaflet.loading cannot load because you didn't load spin.js (http://fgnass.github.io/spin.js/), even though you set it in options."); - } - this._addLayerListeners(map); - this._addMapListeners(map); - - // Try to set the zoom control this control is attached to from the map - // the control is being added to - if (!this.options.separate && !this.zoomControl) { - if (map.zoomControl) { - this.zoomControl = map.zoomControl; - } else if (map.zoomsliderControl) { - this.zoomControl = map.zoomsliderControl; - } - } - - // Create the loading indicator - var classes = 'leaflet-control-loading'; - var container; - if (this.zoomControl && !this.options.separate) { - // If there is a zoom control, hook into the bottom of it - container = this.zoomControl._container; - // These classes are no longer used as of Leaflet 0.6 - classes += ' leaflet-bar-part-bottom leaflet-bar-part last'; - - // Loading control will be added to the zoom control. So the visible last element is not the - // last dom element anymore. So add the part-bottom class. - L.DomUtil.addClass(this._getLastControlButton(), 'leaflet-bar-part-bottom'); - } - else { - // Otherwise, create a container for the indicator - container = L.DomUtil.create('div', 'leaflet-control-zoom leaflet-control-layer-container leaflet-bar'); - } - this._indicatorContainer = container; - this._indicator = L.DomUtil.create('a', classes, container); - if (this.options.spinjs) { - this._spinner = new Spinner(this.options.spin).spin(); - this._indicator.appendChild(this._spinner.el); - } - return container; - }, - - onRemove: function(map) { - this._removeLayerListeners(map); - this._removeMapListeners(map); - }, - - removeFrom: function (map) { - if (this.zoomControl && !this.options.separate) { - // Override Control.removeFrom() to avoid clobbering the entire - // _container, which is the same as zoomControl's - this._container.removeChild(this._indicator); - this._map = null; - this.onRemove(map); - return this; - } - else { - // If this control is separate from the zoomControl, call the - // parent method so we don't leave behind an empty container - return L.Control.prototype.removeFrom.call(this, map); - } - }, - - addLoader: function(id) { - this._dataLoaders[id] = true; - if (this.options.delayIndicator && !this.delayIndicatorTimeout) { - // If we are delaying showing the indicator and we're not - // already waiting for that delay, set up a timeout. - var that = this; - this.delayIndicatorTimeout = setTimeout(function () { - that.updateIndicator(); - that.delayIndicatorTimeout = null; - }, this.options.delayIndicator); - } - else { - // Otherwise show the indicator immediately - this.updateIndicator(); - } - }, - - removeLoader: function(id) { - delete this._dataLoaders[id]; - this.updateIndicator(); - - // If removing this loader means we're in no danger of loading, - // clear the timeout. This prevents old delays from instantly - // triggering the indicator. - if (this.options.delayIndicator && this.delayIndicatorTimeout && !this.isLoading()) { - clearTimeout(this.delayIndicatorTimeout); - this.delayIndicatorTimeout = null; - } - }, - - updateIndicator: function() { - if (this.isLoading()) { - this._showIndicator(); - } - else { - this._hideIndicator(); - } - }, - - isLoading: function() { - return this._countLoaders() > 0; - }, - - _countLoaders: function() { - var size = 0, key; - for (key in this._dataLoaders) { - if (this._dataLoaders.hasOwnProperty(key)) size++; - } - return size; - }, - - _showIndicator: function() { - // Show loading indicator - L.DomUtil.addClass(this._indicator, 'is-loading'); - L.DomUtil.addClass(this._indicatorContainer, 'is-loading'); - - // If zoomControl exists, make the zoom-out button not last - if (!this.options.separate) { - if (this.zoomControl instanceof L.Control.Zoom) { - L.DomUtil.removeClass(this._getLastControlButton(), 'leaflet-bar-part-bottom'); - } - else if (typeof L.Control.Zoomslider === 'function' && this.zoomControl instanceof L.Control.Zoomslider) { - L.DomUtil.removeClass(this.zoomControl._ui.zoomOut, 'leaflet-bar-part-bottom'); - } - } - }, - - _hideIndicator: function() { - // Hide loading indicator - L.DomUtil.removeClass(this._indicator, 'is-loading'); - L.DomUtil.removeClass(this._indicatorContainer, 'is-loading'); - - // If zoomControl exists, make the zoom-out button last - if (!this.options.separate) { - if (this.zoomControl instanceof L.Control.Zoom) { - L.DomUtil.addClass(this._getLastControlButton(), 'leaflet-bar-part-bottom'); - } - else if (typeof L.Control.Zoomslider === 'function' && this.zoomControl instanceof L.Control.Zoomslider) { - L.DomUtil.addClass(this.zoomControl._ui.zoomOut, 'leaflet-bar-part-bottom'); - } - } - }, - - _getLastControlButton: function() { - var container = this.zoomControl._container, - index = container.children.length - 1; - - // Find the last visible control button that is not our loading - // indicator - while (index > 0) { - var button = container.children[index]; - if (!(this._indicator === button || button.offsetWidth === 0 || button.offsetHeight === 0)) { - break; - } - index--; - } - - return container.children[index]; - }, - - _handleLoading: function(e) { - this.addLoader(this.getEventId(e)); - }, - - _handleBaseLayerChange: function (e) { - var that = this; - - // Check for a target 'layer' that contains multiple layers, such as - // L.LayerGroup. This will happen if you have an L.LayerGroup in an - // L.Control.Layers. - if (e.layer && e.layer.eachLayer && typeof e.layer.eachLayer === 'function') { - e.layer.eachLayer(function (layer) { - that._handleBaseLayerChange({ layer: layer }); - }); - } - else { - // If we're changing to a canvas layer, don't handle loading - // as canvas layers will not fire load events. - if (!(L.TileLayer.Canvas && e.layer instanceof L.TileLayer.Canvas)) { - that._handleLoading(e); - } - } - }, - - _handleLoad: function(e) { - this.removeLoader(this.getEventId(e)); - }, - - getEventId: function(e) { - if (e.id) { - return e.id; - } - else if (e.layer) { - return e.layer._leaflet_id; - } - return e.target._leaflet_id; - }, - - _layerAdd: function(e) { - if (!e.layer || !e.layer.on) return - try { - e.layer.on({ - loading: this._handleLoading, - load: this._handleLoad - }, this); - } - catch (exception) { - console.warn('L.Control.Loading: Tried and failed to add ' + - ' event handlers to layer', e.layer); - console.warn('L.Control.Loading: Full details', exception); - } - }, - - _layerRemove: function(e) { - if (!e.layer || !e.layer.off) return; - try { - e.layer.off({ - loading: this._handleLoading, - load: this._handleLoad - }, this); - } - catch (exception) { - console.warn('L.Control.Loading: Tried and failed to remove ' + - 'event handlers from layer', e.layer); - console.warn('L.Control.Loading: Full details', exception); - } - }, - - _addLayerListeners: function(map) { - // Add listeners for begin and end of load to any layers already on the - // map - map.eachLayer(function(layer) { - if (!layer.on) return; - layer.on({ - loading: this._handleLoading, - load: this._handleLoad - }, this); - }, this); - - // When a layer is added to the map, add listeners for begin and end - // of load - map.on('layeradd', this._layerAdd, this); - map.on('layerremove', this._layerRemove, this); - }, - - _removeLayerListeners: function(map) { - // Remove listeners for begin and end of load from all layers - map.eachLayer(function(layer) { - if (!layer.off) return; - layer.off({ - loading: this._handleLoading, - load: this._handleLoad - }, this); - }, this); - - // Remove layeradd/layerremove listener from map - map.off('layeradd', this._layerAdd, this); - map.off('layerremove', this._layerRemove, this); - }, - - _addMapListeners: function(map) { - // Add listeners to the map for (custom) dataloading and dataload - // events, eg, for AJAX calls that affect the map but will not be - // reflected in the above layer events. - map.on({ - baselayerchange: this._handleBaseLayerChange, - dataloading: this._handleLoading, - dataload: this._handleLoad, - layerremove: this._handleLoad - }, this); - }, - - _removeMapListeners: function(map) { - map.off({ - baselayerchange: this._handleBaseLayerChange, - dataloading: this._handleLoading, - dataload: this._handleLoad, - layerremove: this._handleLoad - }, this); - } - }); - - L.Map.addInitHook(function () { - if (this.options.loadingControl) { - this.loadingControl = new L.Control.Loading(); - this.addControl(this.loadingControl); - } - }); - - L.Control.loading = function(options) { - return new L.Control.Loading(options); - }; - } - - if (typeof define === 'function' && define.amd) { - // Try to add leaflet.loading to Leaflet using AMD - define(['leaflet'], function (L) { - defineLeafletLoading(L); - }); - } - else { - // Else use the global L - defineLeafletLoading(L); - } - -})(); diff --git a/www/js/vendor/leaflet.markercluster.js b/www/js/vendor/leaflet.markercluster.js deleted file mode 100644 index c3fa30e30..000000000 --- a/www/js/vendor/leaflet.markercluster.js +++ /dev/null @@ -1,6 +0,0 @@ -/* - Leaflet.markercluster, Provides Beautiful Animated Marker Clustering functionality for Leaflet, a JS library for interactive maps. - https://github.com/Leaflet/Leaflet.markercluster - (c) 2012-2013, Dave Leaver, smartrak -*/ -!function(t,e,i){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(t){L.Util.setOptions(this,t),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[];var e=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,e?this._withAnimation:this._noAnimation),this._markerCluster=e?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(t){if(t instanceof L.LayerGroup){var e=[];for(var i in t._layers)e.push(t._layers[i]);return this.addLayers(e)}if(!t.getLatLng)return this._nonPointGroup.addLayer(t),this;if(!this._map)return this._needsClustering.push(t),this;if(this.hasLayer(t))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(t,this._maxZoom),this._topClusterLevel._recalculateBounds();var n=t,s=this._map.getZoom();if(t.__parent)for(;n.__parent._zoom>=s;)n=n.__parent;return this._currentShownBounds.contains(n.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(t,n):this._animationAddLayerNonAnimated(t,n)),this},removeLayer:function(t){if(t instanceof L.LayerGroup){var e=[];for(var i in t._layers)e.push(t._layers[i]);return this.removeLayers(e)}return t.getLatLng?this._map?t.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(t)),this._removeLayer(t,!0),this._topClusterLevel._recalculateBounds(),this._featureGroup.hasLayer(t)&&(this._featureGroup.removeLayer(t),t.clusterShow&&t.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,t)&&this.hasLayer(t)&&this._needsRemoving.push(t),this):(this._nonPointGroup.removeLayer(t),this)},addLayers:function(t){var e,i,n,s,r=this._featureGroup,o=this._nonPointGroup,a=this.options.chunkedLoading,h=this.options.chunkInterval,u=this.options.chunkProgress;if(this._map){var _=0,l=(new Date).getTime(),d=L.bind(function(){for(var e=(new Date).getTime();_<t.length;_++){if(a&&0===_%200){var i=(new Date).getTime()-e;if(i>h)break}if(s=t[_],s.getLatLng){if(!this.hasLayer(s)&&(this._addLayer(s,this._maxZoom),s.__parent&&2===s.__parent.getChildCount())){var n=s.__parent.getAllChildMarkers(),c=n[0]===s?n[1]:n[0];r.removeLayer(c)}}else o.addLayer(s)}u&&u(_,t.length,(new Date).getTime()-l),_===t.length?(this._topClusterLevel._recalculateBounds(),this._featureGroup.eachLayer(function(t){t instanceof L.MarkerCluster&&t._iconNeedsUpdate&&t._updateIcon()}),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(d,this.options.chunkDelay)},this);d()}else{for(e=[],i=0,n=t.length;n>i;i++)s=t[i],s.getLatLng?this.hasLayer(s)||e.push(s):o.addLayer(s);this._needsClustering=this._needsClustering.concat(e)}return this},removeLayers:function(t){var e,i,n,s=this._featureGroup,r=this._nonPointGroup;if(!this._map){for(e=0,i=t.length;i>e;e++)n=t[e],this._arraySplice(this._needsClustering,n),r.removeLayer(n),this.hasLayer(n)&&this._needsRemoving.push(n);return this}if(this._unspiderfy)for(this._unspiderfy(),e=0,i=t.length;i>e;e++)n=t[e],this._unspiderfyLayer(n);for(e=0,i=t.length;i>e;e++)n=t[e],n.__parent?(this._removeLayer(n,!0,!0),s.hasLayer(n)&&(s.removeLayer(n),n.clusterShow&&n.clusterShow())):r.removeLayer(n);return this._topClusterLevel._recalculateBounds(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),s.eachLayer(function(t){t instanceof L.MarkerCluster&&t._updateIcon()}),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(t){delete t.__parent}),this._map&&this._generateInitialClusters(),this},getBounds:function(){var t=new L.LatLngBounds;this._topClusterLevel&&t.extend(this._topClusterLevel._bounds);for(var e=this._needsClustering.length-1;e>=0;e--)t.extend(this._needsClustering[e].getLatLng());return t.extend(this._nonPointGroup.getBounds()),t},eachLayer:function(t,e){var i,n=this._needsClustering.slice();for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(n),i=n.length-1;i>=0;i--)t.call(e,n[i]);this._nonPointGroup.eachLayer(t,e)},getLayers:function(){var t=[];return this.eachLayer(function(e){t.push(e)}),t},getLayer:function(t){var e=null;return t=parseInt(t,10),this.eachLayer(function(i){L.stamp(i)===t&&(e=i)}),e},hasLayer:function(t){if(!t)return!1;var e,i=this._needsClustering;for(e=i.length-1;e>=0;e--)if(i[e]===t)return!0;for(i=this._needsRemoving,e=i.length-1;e>=0;e--)if(i[e]===t)return!1;return!(!t.__parent||t.__parent._group!==this)||this._nonPointGroup.hasLayer(t)},zoomToShowLayer:function(t,e){"function"!=typeof e&&(e=function(){});var i=function(){!t._icon&&!t.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",i,this),this.off("animationend",i,this),t._icon?e():t.__parent._icon&&(this.once("spiderfied",e,this),t.__parent.spiderfy()))};if(t._icon&&this._map.getBounds().contains(t.getLatLng()))e();else if(t.__parent._zoom<this._map.getZoom())this._map.on("moveend",i,this),this._map.panTo(t.getLatLng());else{var n=function(){this._map.off("movestart",n,this),n=null};this._map.on("movestart",n,this),this._map.on("moveend",i,this),this.on("animationend",i,this),t.__parent.zoomToBounds(),n&&i.call(this)}},onAdd:function(t){this._map=t;var e,i,n;if(!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified";for(this._featureGroup.onAdd(t),this._nonPointGroup.onAdd(t),this._gridClusters||this._generateInitialClusters(),this._maxLat=t.options.crs.projection.MAX_LATITUDE,e=0,i=this._needsRemoving.length;i>e;e++)n=this._needsRemoving[e],this._removeLayer(n,!0);this._needsRemoving=[],this._zoom=this._map.getZoom(),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i)},onRemove:function(t){t.off("zoomend",this._zoomEnd,this),t.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.onRemove(t),this._nonPointGroup.onRemove(t),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(t){for(var e=t;e&&!e._icon;)e=e.__parent;return e||null},_arraySplice:function(t,e){for(var i=t.length-1;i>=0;i--)if(t[i]===e)return t.splice(i,1),!0},_removeFromGridUnclustered:function(t,e){for(var i=this._map,n=this._gridUnclustered;e>=0&&n[e].removeObject(t,i.project(t.getLatLng(),e));e--);},_removeLayer:function(t,e,i){var n=this._gridClusters,s=this._gridUnclustered,r=this._featureGroup,o=this._map;e&&this._removeFromGridUnclustered(t,this._maxZoom);var a,h=t.__parent,u=h._markers;for(this._arraySplice(u,t);h&&(h._childCount--,h._boundsNeedUpdate=!0,!(h._zoom<0));)e&&h._childCount<=1?(a=h._markers[0]===t?h._markers[1]:h._markers[0],n[h._zoom].removeObject(h,o.project(h._cLatLng,h._zoom)),s[h._zoom].addObject(a,o.project(a.getLatLng(),h._zoom)),this._arraySplice(h.__parent._childClusters,h),h.__parent._markers.push(a),a.__parent=h.__parent,h._icon&&(r.removeLayer(h),i||r.addLayer(a))):i&&h._icon||h._updateIcon(),h=h.__parent;delete t.__parent},_isOrIsParent:function(t,e){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},_propagateEvent:function(t){if(t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;t.type="cluster"+t.type}this.fire(t.type,t)},_defaultIconCreateFunction:function(t){var e=t.getChildCount(),i=" marker-cluster-";return i+=10>e?"small":100>e?"medium":"large",new L.DivIcon({html:"<div><span>"+e+"</span></div>",className:"marker-cluster"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var t=this._map,e=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick;(e||n)&&this.on("clusterclick",this._zoomOrSpiderfy,this),i&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),t.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(t){for(var e=t.layer,i=e;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===e._childCount?this.options.spiderfyOnMaxZoom&&e.spiderfy():this.options.zoomToBoundsOnClick&&e.zoomToBounds(),t.originalEvent&&13===t.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(t){var e=this._map;this._inZoomAnimation||(this._shownPolygon&&e.removeLayer(this._shownPolygon),t.layer.getChildCount()>2&&t.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(t.layer.getConvexHull(),this.options.polygonOptions),e.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var t=this.options.spiderfyOnMaxZoom,e=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,n=this._map;(t||i)&&this.off("clusterclick",this._zoomOrSpiderfy,this),e&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),n.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=this._map._zoom,this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var t=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._map._zoom,t),this._currentShownBounds=t}},_generateInitialClusters:function(){var t=this._map.getMaxZoom(),e=this.options.maxClusterRadius,i=e;"function"!=typeof e&&(i=function(){return e}),this.options.disableClusteringAtZoom&&(t=this.options.disableClusteringAtZoom-1),this._maxZoom=t,this._gridClusters={},this._gridUnclustered={};for(var n=t;n>=0;n--)this._gridClusters[n]=new L.DistanceGrid(i(n)),this._gridUnclustered[n]=new L.DistanceGrid(i(n));this._topClusterLevel=new this._markerCluster(this,-1)},_addLayer:function(t,e){var i,n,s=this._gridClusters,r=this._gridUnclustered;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(t);e>=0;e--){i=this._map.project(t.getLatLng(),e);var o=s[e].getNearObject(i);if(o)return o._addChild(t),t.__parent=o,void 0;if(o=r[e].getNearObject(i)){var a=o.__parent;a&&this._removeLayer(o,!1);var h=new this._markerCluster(this,e,o,t);s[e].addObject(h,this._map.project(h._cLatLng,e)),o.__parent=h,t.__parent=h;var u=h;for(n=e-1;n>a._zoom;n--)u=new this._markerCluster(this,n,u),s[n].addObject(u,this._map.project(o.getLatLng(),n));return a._addChild(u),this._removeFromGridUnclustered(o,e),void 0}r[e].addObject(t,i)}this._topClusterLevel._addChild(t),t.__parent=this._topClusterLevel},_enqueue:function(t){this._queue.push(t),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var t=0;t<this._queue.length;t++)this._queue[t].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){this._processQueue(),this._zoom<this._map._zoom&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,this._map._zoom)):this._zoom>this._map._zoom?(this._animationStart(),this._animationZoomOut(this._zoom,this._map._zoom)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(t){var e=this._maxLat;return e!==i&&(t.getNorth()>=e&&(t._northEast.lat=1/0),t.getSouth()<=-e&&(t._southWest.lat=-1/0)),t},_animationAddLayerNonAnimated:function(t,e){if(e===t)this._featureGroup.addLayer(t);else if(2===e._childCount){e._addToMap();var i=e.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else e._updateIcon()},_overrideMarkerIcon:function(t){var e=t.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[t]}});return e}}),L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(t,e){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,e,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(t,e){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,e,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(t,e){this._animationAddLayerNonAnimated(t,e)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(t,e){var i,n=this._getExpandedVisibleBounds(),s=this._featureGroup;this._topClusterLevel._recursively(n,t,0,function(r){var o,a=r._latlng,h=r._markers;for(n.contains(a)||(a=null),r._isSingleParent()&&t+1===e?(s.removeLayer(r),r._recursivelyAddChildrenToMap(null,e,n)):(r.clusterHide(),r._recursivelyAddChildrenToMap(a,e,n)),i=h.length-1;i>=0;i--)o=h[i],n.contains(o._latlng)||s.removeLayer(o)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(n,e),s.eachLayer(function(t){t instanceof L.MarkerCluster||!t._icon||t.clusterShow()}),this._topClusterLevel._recursively(n,t,e,function(t){t._recursivelyRestoreChildPositions(e)}),this._enqueue(function(){this._topClusterLevel._recursively(n,t,0,function(t){s.removeLayer(t),t.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(t,e){this._animationZoomOutSingle(this._topClusterLevel,t-1,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,e,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,t,this._getExpandedVisibleBounds())},_animationAddLayer:function(t,e){var i=this,n=this._featureGroup;n.addLayer(t),e!==t&&(e._childCount>2?(e._updateIcon(),this._forceLayout(),this._animationStart(),t._setPos(this._map.latLngToLayerPoint(e.getLatLng())),t.clusterHide(),this._enqueue(function(){n.removeLayer(t),t.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(e,this._map.getMaxZoom(),this._map.getZoom())))}},_animationZoomOutSingle:function(t,e,i){var n=this._getExpandedVisibleBounds();t._recursivelyAnimateChildrenInAndAddSelfToMap(n,e+1,i);var s=this;this._forceLayout(),t._recursivelyBecomeVisible(n,i),this._enqueue(function(){if(1===t._childCount){var r=t._markers[0];r.setLatLng(r.getLatLng()),r.clusterShow&&r.clusterShow()}else t._recursively(n,i,0,function(t){t._recursivelyRemoveChildrenFromMap(n,e+1)});s._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(e.body.offsetWidth)}}),L.markerClusterGroup=function(t){return new L.MarkerClusterGroup(t)},L.MarkerCluster=L.Marker.extend({initialize:function(t,e,i,n){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=t,this._zoom=e,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),n&&this._addChild(n)},getAllChildMarkers:function(t){t=t||[];for(var e=this._childClusters.length-1;e>=0;e--)this._childClusters[e].getAllChildMarkers(t);for(var i=this._markers.length-1;i>=0;i--)t.push(this._markers[i]);return t},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var t,e=this._childClusters.slice(),i=this._group._map,n=i.getBoundsZoom(this._bounds),s=this._zoom+1,r=i.getZoom();e.length>0&&n>s;){s++;var o=[];for(t=0;t<e.length;t++)o=o.concat(e[t]._childClusters);e=o}n>s?this._group._map.setView(this._latlng,s):r>=n?this._group._map.setView(this._latlng,r+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var t=new L.LatLngBounds;return t.extend(this._bounds),t},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(t,e){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(t),t instanceof L.MarkerCluster?(e||(this._childClusters.push(t),t.__parent=this),this._childCount+=t._childCount):(e||this._markers.push(t),this._childCount++),this.__parent&&this.__parent._addChild(t,!0)},_setClusterCenter:function(t){this._cLatLng||(this._cLatLng=t._cLatLng||t._latlng)},_resetBounds:function(){var t=this._bounds;t._southWest&&(t._southWest.lat=1/0,t._southWest.lng=1/0),t._northEast&&(t._northEast.lat=-1/0,t._northEast.lng=-1/0)},_recalculateBounds:function(){var t,e,i,n,s=this._markers,r=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),t=0;t<s.length;t++)i=s[t]._latlng,this._bounds.extend(i),o+=i.lat,a+=i.lng;for(t=0;t<r.length;t++)e=r[t],e._boundsNeedUpdate&&e._recalculateBounds(),this._bounds.extend(e._bounds),i=e._wLatLng,n=e._childCount,o+=i.lat*n,a+=i.lng*n;this._latlng=this._wLatLng=new L.LatLng(o/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(t){t&&(this._backupLatlng=this._latlng,this.setLatLng(t)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(t,e,i){this._recursively(t,0,i-1,function(t){var i,n,s=t._markers;for(i=s.length-1;i>=0;i--)n=s[i],n._icon&&(n._setPos(e),n.clusterHide())},function(t){var i,n,s=t._childClusters;for(i=s.length-1;i>=0;i--)n=s[i],n._icon&&(n._setPos(e),n.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(t,e,i){this._recursively(t,i,0,function(n){n._recursivelyAnimateChildrenIn(t,n._group._map.latLngToLayerPoint(n.getLatLng()).round(),e),n._isSingleParent()&&e-1===i?(n.clusterShow(),n._recursivelyRemoveChildrenFromMap(t,e)):n.clusterHide(),n._addToMap()})},_recursivelyBecomeVisible:function(t,e){this._recursively(t,0,e,null,function(t){t.clusterShow()})},_recursivelyAddChildrenToMap:function(t,e,i){this._recursively(i,-1,e,function(n){if(e!==n._zoom)for(var s=n._markers.length-1;s>=0;s--){var r=n._markers[s];i.contains(r._latlng)&&(t&&(r._backupLatlng=r.getLatLng(),r.setLatLng(t),r.clusterHide&&r.clusterHide()),n._group._featureGroup.addLayer(r))}},function(e){e._addToMap(t)})},_recursivelyRestoreChildPositions:function(t){for(var e=this._markers.length-1;e>=0;e--){var i=this._markers[e];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(t-1===this._zoom)for(var n=this._childClusters.length-1;n>=0;n--)this._childClusters[n]._restorePosition();else for(var s=this._childClusters.length-1;s>=0;s--)this._childClusters[s]._recursivelyRestoreChildPositions(t)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(t,e,i){var n,s;this._recursively(t,-1,e-1,function(t){for(s=t._markers.length-1;s>=0;s--)n=t._markers[s],i&&i.contains(n._latlng)||(t._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())},function(t){for(s=t._childClusters.length-1;s>=0;s--)n=t._childClusters[s],i&&i.contains(n._latlng)||(t._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())})},_recursively:function(t,e,i,n,s){var r,o,a=this._childClusters,h=this._zoom;if(e>h)for(r=a.length-1;r>=0;r--)o=a[r],t.intersects(o._bounds)&&o._recursively(t,e,i,n,s);else if(n&&n(this),s&&this._zoom===i&&s(this),i>h)for(r=a.length-1;r>=0;r--)o=a[r],t.intersects(o._bounds)&&o._recursively(t,e,i,n,s)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var t=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered);return delete this.options.opacityWhenUnclustered,t}}),L.DistanceGrid=function(t){this._cellSize=t,this._sqCellSize=t*t,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(t,e){var i=this._getCoord(e.x),n=this._getCoord(e.y),s=this._grid,r=s[n]=s[n]||{},o=r[i]=r[i]||[],a=L.Util.stamp(t);this._objectPoint[a]=e,o.push(t)},updateObject:function(t,e){this.removeObject(t),this.addObject(t,e)},removeObject:function(t,e){var i,n,s=this._getCoord(e.x),r=this._getCoord(e.y),o=this._grid,a=o[r]=o[r]||{},h=a[s]=a[s]||[];for(delete this._objectPoint[L.Util.stamp(t)],i=0,n=h.length;n>i;i++)if(h[i]===t)return h.splice(i,1),1===n&&delete a[s],!0},eachObject:function(t,e){var i,n,s,r,o,a,h,u=this._grid;for(i in u){o=u[i];for(n in o)for(a=o[n],s=0,r=a.length;r>s;s++)h=t.call(e,a[s]),h&&(s--,r--)}},getNearObject:function(t){var e,i,n,s,r,o,a,h,u=this._getCoord(t.x),_=this._getCoord(t.y),l=this._objectPoint,d=this._sqCellSize,c=null;for(e=_-1;_+1>=e;e++)if(s=this._grid[e])for(i=u-1;u+1>=i;i++)if(r=s[i])for(n=0,o=r.length;o>n;n++)a=r[n],h=this._sqDist(l[L.Util.stamp(a)],t),d>h&&(d=h,c=a);return c},_getCoord:function(t){return Math.floor(t/this._cellSize)},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}},function(){L.QuickHull={getDistant:function(t,e){var i=e[1].lat-e[0].lat,n=e[0].lng-e[1].lng;return n*(t.lat-e[0].lat)+i*(t.lng-e[0].lng)},findMostDistantPointFromBaseLine:function(t,e){var i,n,s,r=0,o=null,a=[];for(i=e.length-1;i>=0;i--)n=e[i],s=this.getDistant(n,t),s>0&&(a.push(n),s>r&&(r=s,o=n));return{maxPoint:o,newPoints:a}},buildConvexHull:function(t,e){var i=[],n=this.findMostDistantPointFromBaseLine(t,e);return n.maxPoint?(i=i.concat(this.buildConvexHull([t[0],n.maxPoint],n.newPoints)),i=i.concat(this.buildConvexHull([n.maxPoint,t[1]],n.newPoints))):[t[0]]},getConvexHull:function(t){var e,i=!1,n=!1,s=!1,r=!1,o=null,a=null,h=null,u=null,_=null,l=null;for(e=t.length-1;e>=0;e--){var d=t[e];(i===!1||d.lat>i)&&(o=d,i=d.lat),(n===!1||d.lat<n)&&(a=d,n=d.lat),(s===!1||d.lng>s)&&(h=d,s=d.lng),(r===!1||d.lng<r)&&(u=d,r=d.lng)}n!==i?(l=a,_=o):(l=u,_=h);var c=[].concat(this.buildConvexHull([l,_],t),this.buildConvexHull([_,l],t));return c}}}(),L.MarkerCluster.include({getConvexHull:function(){var t,e,i=this.getAllChildMarkers(),n=[];for(e=i.length-1;e>=0;e--)t=i[e].getLatLng(),n.push(t);return L.QuickHull.getConvexHull(n)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var t,e=this.getAllChildMarkers(),i=this._group,n=i._map,s=n.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,e.length>=this._circleSpiralSwitchover?t=this._generatePointsSpiral(e.length,s):(s.y+=10,t=this._generatePointsCircle(e.length,s)),this._animationSpiderfy(e,t)}},unspiderfy:function(t){this._group._inZoomAnimation||(this._animationUnspiderfy(t),this._group._spiderfied=null)},_generatePointsCircle:function(t,e){var i,n,s=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+t),r=s/this._2PI,o=this._2PI/t,a=[];for(a.length=t,i=t-1;i>=0;i--)n=this._circleStartAngle+i*o,a[i]=new L.Point(e.x+r*Math.cos(n),e.y+r*Math.sin(n))._round();return a},_generatePointsSpiral:function(t,e){var i,n=this._group.options.spiderfyDistanceMultiplier,s=n*this._spiralLengthStart,r=n*this._spiralFootSeparation,o=n*this._spiralLengthFactor*this._2PI,a=0,h=[];for(h.length=t,i=t-1;i>=0;i--)a+=r/s+5e-4*i,h[i]=new L.Point(e.x+s*Math.cos(a),e.y+s*Math.sin(a))._round(),s+=o/a;return h},_noanimationUnspiderfy:function(){var t,e,i=this._group,n=i._map,s=i._featureGroup,r=this.getAllChildMarkers();for(this.setOpacity(1),e=r.length-1;e>=0;e--)t=r[e],s.removeLayer(t),t._preSpiderfyLatlng&&(t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng),t.setZIndexOffset&&t.setZIndexOffset(0),t._spiderLeg&&(n.removeLayer(t._spiderLeg),delete t._spiderLeg);i.fire("unspiderfied",{cluster:this,markers:r}),i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(t,e){var i,n,s,r,o=this._group,a=o._map,h=o._featureGroup,u=this._group.options.spiderLegPolylineOptions;for(i=0;i<t.length;i++)r=a.layerPointToLatLng(e[i]),n=t[i],s=new L.Polyline([this._latlng,r],u),a.addLayer(s),n._spiderLeg=s,n._preSpiderfyLatlng=n._latlng,n.setLatLng(r),n.setZIndexOffset&&n.setZIndexOffset(1e6),h.addLayer(n);this.setOpacity(.3),o.fire("spiderfied",{cluster:this,markers:t})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(t,e){var n,s,r,o,a,h,u=this,_=this._group,l=_._map,d=_._featureGroup,c=this._latlng,p=l.latLngToLayerPoint(c),f=L.Path.SVG,m=L.extend({},this._group.options.spiderLegPolylineOptions),g=m.opacity;for(g===i&&(g=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),f?(m.opacity=0,m.className=(m.className||"")+" leaflet-cluster-spider-leg"):m.opacity=g,n=0;n<t.length;n++)s=t[n],h=l.layerPointToLatLng(e[n]),r=new L.Polyline([c,h],m),l.addLayer(r),s._spiderLeg=r,f&&(o=r._path,a=o.getTotalLength()+.1,o.style.strokeDasharray=a,o.style.strokeDashoffset=a),s.setZIndexOffset&&s.setZIndexOffset(1e6),s.clusterHide&&s.clusterHide(),d.addLayer(s),s._setPos&&s._setPos(p);for(_._forceLayout(),_._animationStart(),n=t.length-1;n>=0;n--)h=l.layerPointToLatLng(e[n]),s=t[n],s._preSpiderfyLatlng=s._latlng,s.setLatLng(h),s.clusterShow&&s.clusterShow(),f&&(r=s._spiderLeg,o=r._path,o.style.strokeDashoffset=0,r.setStyle({opacity:g}));this.setOpacity(.3),setTimeout(function(){_._animationEnd(),_.fire("spiderfied",{cluster:u,markers:t})},200)},_animationUnspiderfy:function(t){var e,i,n,s,r,o,a=this,h=this._group,u=h._map,_=h._featureGroup,l=t?u._latLngToNewLayerPoint(this._latlng,t.zoom,t.center):u.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(),c=L.Path.SVG;for(h._animationStart(),this.setOpacity(1),i=d.length-1;i>=0;i--)e=d[i],e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng,o=!0,e._setPos&&(e._setPos(l),o=!1),e.clusterHide&&(e.clusterHide(),o=!1),o&&_.removeLayer(e),c&&(n=e._spiderLeg,s=n._path,r=s.getTotalLength()+.1,s.style.strokeDashoffset=r,n.setStyle({opacity:0})));setTimeout(function(){var t=0;for(i=d.length-1;i>=0;i--)e=d[i],e._spiderLeg&&t++;for(i=d.length-1;i>=0;i--)e=d[i],e._spiderLeg&&(e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),t>1&&_.removeLayer(e),u.removeLayer(e._spiderLeg),delete e._spiderLeg);h._animationEnd(),h.fire("unspiderfied",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(t){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(t))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(t){this._spiderfied&&this._spiderfied.unspiderfy(t)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(t){t._spiderLeg&&(this._featureGroup.removeLayer(t),t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),this._map.removeLayer(t._spiderLeg),delete t._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(t){return t?t instanceof L.MarkerClusterGroup?t=t._topClusterLevel.getAllChildMarkers():t instanceof L.LayerGroup?t=t._layers:t instanceof L.MarkerCluster?t=t.getAllChildMarkers():t instanceof L.Marker&&(t=[t]):t=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(t),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(t),this},_flagParentsIconsNeedUpdate:function(t){var e,i;for(e in t)for(i=t[e].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(t){t instanceof L.MarkerCluster&&t._iconNeedsUpdate&&t._updateIcon()})},_refreshSingleMarkerModeMarkers:function(t){var e,i;for(e in t)i=t[e],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(t,e){var i=this.options.icon;return L.setOptions(i,t),this.setIcon(i),e&&this.__parent&&this.__parent._group.refreshClusters(this),this}})}(window,document); \ No newline at end of file diff --git a/www/js/vendor/leaflet.search.min.js b/www/js/vendor/leaflet.search.min.js deleted file mode 100644 index 97facf7ae..000000000 --- a/www/js/vendor/leaflet.search.min.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Leaflet Control Search v2.7.2 - 2017-04-08 - * - * Copyright 2017 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ -!function(a){if("function"==typeof define&&define.amd)define(["leaflet"],a);else if("undefined"!=typeof module)module.exports=a(require("leaflet"));else{if("undefined"==typeof window.L)throw"Leaflet must be loaded first";a(window.L)}}(function(a){function b(a,b){var c=b.split("."),d=c.pop(),e=c.length,f=c[0],g=1;if(e>0)for(;(a=a[f])&&e>g;)f=c[g++];return a?a[d]:void 0}function c(a){return"[object Object]"===Object.prototype.toString.call(a)}return a.Control.Search=a.Control.extend({includes:a.Mixin.Events,options:{url:"",layer:null,sourceData:null,jsonpParam:null,propertyLoc:"loc",propertyName:"title",formatData:null,filterData:null,moveToLocation:null,buildTip:null,container:"",zoom:null,minLength:1,initial:!0,casesensitive:!1,autoType:!0,delayType:400,tooltipLimit:-1,tipAutoSubmit:!0,firstTipSubmit:!1,autoResize:!0,collapsed:!0,autoCollapse:!1,autoCollapseTime:1200,textErr:"Location not found",textCancel:"Cancel",textPlaceholder:"Search...",position:"topleft",hideMarkerOnCollapse:!1,marker:{icon:!1,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}}},initialize:function(b){a.Util.setOptions(this,b||{}),this._inputMinSize=this.options.textPlaceholder?this.options.textPlaceholder.length:10,this._layer=this.options.layer||new a.LayerGroup,this._filterData=this.options.filterData||this._defaultFilterData,this._formatData=this.options.formatData||this._defaultFormatData,this._moveToLocation=this.options.moveToLocation||this._defaultMoveToLocation,this._autoTypeTmp=this.options.autoType,this._countertips=0,this._recordsCache={},this._curReq=null},onAdd:function(b){return this._map=b,this._container=a.DomUtil.create("div","leaflet-control-search"),this._input=this._createInput(this.options.textPlaceholder,"search-input"),this._tooltip=this._createTooltip("search-tooltip"),this._cancel=this._createCancel(this.options.textCancel,"search-cancel"),this._button=this._createButton(this.options.textPlaceholder,"search-button"),this._alert=this._createAlert("search-alert"),this.options.collapsed===!1&&this.expand(this.options.collapsed),this.options.marker&&(this.options.marker instanceof a.Marker||this.options.marker instanceof a.CircleMarker?this._markerSearch=this.options.marker:c(this.options.marker)&&(this._markerSearch=new a.Control.Search.Marker([0,0],this.options.marker)),this._markerSearch._isMarkerSearch=!0),this.setLayer(this._layer),b.on({resize:this._handleAutoresize},this),this._container},addTo:function(b){return this.options.container?(this._container=this.onAdd(b),this._wrapper=a.DomUtil.get(this.options.container),this._wrapper.style.position="relative",this._wrapper.appendChild(this._container)):a.Control.prototype.addTo.call(this,b),this},onRemove:function(a){this._recordsCache={}},setLayer:function(a){return this._layer=a,this._layer.addTo(this._map),this},showAlert:function(a){a=a||this.options.textErr,this._alert.style.display="block",this._alert.innerHTML=a,clearTimeout(this.timerAlert);var b=this;return this.timerAlert=setTimeout(function(){b.hideAlert()},this.options.autoCollapseTime),this},hideAlert:function(){return this._alert.style.display="none",this},cancel:function(){return this._input.value="",this._handleKeypress({keyCode:8}),this._input.size=this._inputMinSize,this._input.focus(),this._cancel.style.display="none",this._hideTooltip(),this},expand:function(b){return b="boolean"==typeof b?b:!0,this._input.style.display="block",a.DomUtil.addClass(this._container,"search-exp"),b!==!1&&(this._input.focus(),this._map.on("dragstart click",this.collapse,this)),this.fire("search:expanded"),this},collapse:function(){return this._hideTooltip(),this.cancel(),this._alert.style.display="none",this._input.blur(),this.options.collapsed&&(this._input.style.display="none",this._cancel.style.display="none",a.DomUtil.removeClass(this._container,"search-exp"),this.options.hideMarkerOnCollapse&&this._map.removeLayer(this._markerSearch),this._map.off("dragstart click",this.collapse,this)),this.fire("search:collapsed"),this},collapseDelayed:function(){if(!this.options.autoCollapse)return this;var a=this;return clearTimeout(this.timerCollapse),this.timerCollapse=setTimeout(function(){a.collapse()},this.options.autoCollapseTime),this},collapseDelayedStop:function(){return clearTimeout(this.timerCollapse),this},_createAlert:function(b){var c=a.DomUtil.create("div",b,this._container);return c.style.display="none",a.DomEvent.on(c,"click",a.DomEvent.stop,this).on(c,"click",this.hideAlert,this),c},_createInput:function(b,c){var d=a.DomUtil.create("label",c,this._container),e=a.DomUtil.create("input",c,this._container);return e.type="text",e.size=this._inputMinSize,e.value="",e.autocomplete="off",e.autocorrect="off",e.autocapitalize="off",e.placeholder=b,e.style.display="none",e.role="search",e.id=e.role+e.type+e.size,d.htmlFor=e.id,d.style.display="none",d.value=b,a.DomEvent.disableClickPropagation(e).on(e,"keydown",this._handleKeypress,this).on(e,"blur",this.collapseDelayed,this).on(e,"focus",this.collapseDelayedStop,this),e},_createCancel:function(b,c){var d=a.DomUtil.create("a",c,this._container);return d.href="#",d.title=b,d.style.display="none",d.innerHTML="<span>⊗</span>",a.DomEvent.on(d,"click",a.DomEvent.stop,this).on(d,"click",this.cancel,this),d},_createButton:function(b,c){var d=a.DomUtil.create("a",c,this._container);return d.href="#",d.title=b,a.DomEvent.on(d,"click",a.DomEvent.stop,this).on(d,"click",this._handleSubmit,this).on(d,"focus",this.collapseDelayedStop,this).on(d,"blur",this.collapseDelayed,this),d},_createTooltip:function(b){var c=a.DomUtil.create("ul",b,this._container);c.style.display="none";var d=this;return a.DomEvent.disableClickPropagation(c).on(c,"blur",this.collapseDelayed,this).on(c,"mousewheel",function(b){d.collapseDelayedStop(),a.DomEvent.stopPropagation(b)},this).on(c,"mouseover",function(a){d.collapseDelayedStop()},this),c},_createTip:function(b,c){var d;if(this.options.buildTip){if(d=this.options.buildTip.call(this,b,c),"string"==typeof d){var e=a.DomUtil.create("div");e.innerHTML=d,d=e.firstChild}}else d=a.DomUtil.create("li",""),d.innerHTML=b;return a.DomUtil.addClass(d,"search-tip"),d._text=b,this.options.tipAutoSubmit&&a.DomEvent.disableClickPropagation(d).on(d,"click",a.DomEvent.stop,this).on(d,"click",function(a){this._input.value=b,this._handleAutoresize(),this._input.focus(),this._hideTooltip(),this._handleSubmit()},this),d},_getUrl:function(a){return"function"==typeof this.options.url?this.options.url(a):this.options.url},_defaultFilterData:function(a,b){var c,d,e,f={};if(a=a.replace(/[.*+?^${}()|[\]\\]/g,""),""===a)return[];c=this.options.initial?"^":"",d=this.options.casesensitive?void 0:"i",e=new RegExp(c+a,d);for(var g in b)e.test(g)&&(f[g]=b[g]);return f},showTooltip:function(a){if(this._countertips=0,this._tooltip.innerHTML="",this._tooltip.currentSelection=-1,this.options.tooltipLimit)for(var b in a){if(this._countertips===this.options.tooltipLimit)break;this._countertips++,this._tooltip.appendChild(this._createTip(b,a[b]))}return this._countertips>0?(this._tooltip.style.display="block",this._autoTypeTmp&&this._autoType(),this._autoTypeTmp=this.options.autoType):this._hideTooltip(),this._tooltip.scrollTop=0,this._countertips},_hideTooltip:function(){return this._tooltip.style.display="none",this._tooltip.innerHTML="",0},_defaultFormatData:function(c){var d,e=this.options.propertyName,f=this.options.propertyLoc,g={};if(a.Util.isArray(f))for(d in c)g[b(c[d],e)]=a.latLng(c[d][f[0]],c[d][f[1]]);else for(d in c)g[b(c[d],e)]=a.latLng(b(c[d],f));return g},_recordsFromJsonp:function(b,c){a.Control.Search.callJsonp=c;var d=a.DomUtil.create("script","leaflet-search-jsonp",document.getElementsByTagName("body")[0]),e=a.Util.template(this._getUrl(b)+"&"+this.options.jsonpParam+"=L.Control.Search.callJsonp",{s:b});return d.type="text/javascript",d.src=e,{abort:function(){d.parentNode.removeChild(d)}}},_recordsFromAjax:function(b,c){void 0===window.XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new ActiveXObject("Microsoft.XMLHTTP.6.0")}catch(a){try{return new ActiveXObject("Microsoft.XMLHTTP.3.0")}catch(b){throw new Error("XMLHttpRequest is not supported")}}});var d=a.Browser.ie&&!window.atob&&document.querySelector,e=d?new XDomainRequest:new XMLHttpRequest,f=a.Util.template(this._getUrl(b),{s:b});e.open("GET",f);return e.onload=function(){c(JSON.parse(e.responseText))},e.onreadystatechange=function(){4===e.readyState&&200===e.status&&this.onload()},e.send(),e},_recordsFromLayer:function(){var c,d={},e=this.options.propertyName;return this._layer.eachLayer(function(f){if(!f.hasOwnProperty("_isMarkerSearch"))if(f instanceof a.Marker||f instanceof a.CircleMarker)try{if(b(f.options,e))c=f.getLatLng(),c.layer=f,d[b(f.options,e)]=c;else{if(!b(f.feature.properties,e))throw new Error("propertyName '"+e+"' not found in marker");c=f.getLatLng(),c.layer=f,d[b(f.feature.properties,e)]=c}}catch(g){console}else if(f.hasOwnProperty("feature"))try{if(!f.feature.properties.hasOwnProperty(e))throw new Error("propertyName '"+e+"' not found in feature");c=f.getBounds().getCenter(),c.layer=f,d[f.feature.properties[e]]=c}catch(g){console}else f instanceof a.LayerGroup&&f.eachLayer(function(a){c=a.getLatLng(),c.layer=a,d[a.feature.properties[e]]=c})},this),d},_autoType:function(){var a=this._input.value.length,b=this._tooltip.firstChild?this._tooltip.firstChild._text:"",c=b.length;if(0===b.indexOf(this._input.value))if(this._input.value=b,this._handleAutoresize(),this._input.createTextRange){var d=this._input.createTextRange();d.collapse(!0),d.moveStart("character",a),d.moveEnd("character",c),d.select()}else this._input.setSelectionRange?this._input.setSelectionRange(a,c):this._input.selectionStart&&(this._input.selectionStart=a,this._input.selectionEnd=c)},_hideAutoType:function(){var a;if((a=this._input.selection)&&a.empty)a.empty();else if(this._input.createTextRange){a=this._input.createTextRange(),a.collapse(!0);var b=this._input.value.length;a.moveStart("character",b),a.moveEnd("character",b),a.select()}else this._input.getSelection&&this._input.getSelection().removeAllRanges(),this._input.selectionStart=this._input.selectionEnd},_handleKeypress:function(a){switch(a.keyCode){case 27:this.collapse();break;case 13:(1==this._countertips||this.options.firstTipSubmit&&this._countertips>0)&&this._handleArrowSelect(1),this._handleSubmit();break;case 38:this._handleArrowSelect(-1);break;case 40:this._handleArrowSelect(1);break;case 8:case 45:case 46:this._autoTypeTmp=!1;break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:if(this._input.value.length?this._cancel.style.display="block":this._cancel.style.display="none",this._input.value.length>=this.options.minLength){var b=this;clearTimeout(this.timerKeypress),this.timerKeypress=setTimeout(function(){b._fillRecordsCache()},this.options.delayType)}else this._hideTooltip()}this._handleAutoresize()},searchText:function(b){var c=b.charCodeAt(b.length);this._input.value=b,this._input.style.display="block",a.DomUtil.addClass(this._container,"search-exp"),this._autoTypeTmp=!1,this._handleKeypress({keyCode:c})},_fillRecordsCache:function(){var b,c=this._input.value,d=this;this._curReq&&this._curReq.abort&&this._curReq.abort(),a.DomUtil.addClass(this._container,"search-load"),this.options.layer?(this._recordsCache=this._recordsFromLayer(),b=this._filterData(this._input.value,this._recordsCache),this.showTooltip(b),a.DomUtil.removeClass(this._container,"search-load")):(this.options.sourceData?this._retrieveData=this.options.sourceData:this.options.url&&(this._retrieveData=this.options.jsonpParam?this._recordsFromJsonp:this._recordsFromAjax),this._curReq=this._retrieveData.call(this,c,function(c){d._recordsCache=d._formatData(c),b=d.options.sourceData?d._filterData(d._input.value,d._recordsCache):d._recordsCache,d.showTooltip(b),a.DomUtil.removeClass(d._container,"search-load")}))},_handleAutoresize:function(){this._input.style.maxWidth!=this._map._container.offsetWidth&&(this._input.style.maxWidth=a.DomUtil.getStyle(this._map._container,"width")),this.options.autoResize&&this._container.offsetWidth+45<this._map._container.offsetWidth&&(this._input.size=this._input.value.length<this._inputMinSize?this._inputMinSize:this._input.value.length)},_handleArrowSelect:function(b){var c=this._tooltip.hasChildNodes()?this._tooltip.childNodes:[];for(i=0;i<c.length;i++)a.DomUtil.removeClass(c[i],"search-tip-select");if(1==b&&this._tooltip.currentSelection>=c.length-1)a.DomUtil.addClass(c[this._tooltip.currentSelection],"search-tip-select");else if(-1==b&&this._tooltip.currentSelection<=0)this._tooltip.currentSelection=-1;else if("none"!=this._tooltip.style.display){this._tooltip.currentSelection+=b,a.DomUtil.addClass(c[this._tooltip.currentSelection],"search-tip-select"),this._input.value=c[this._tooltip.currentSelection]._text;var d=c[this._tooltip.currentSelection].offsetTop;d+c[this._tooltip.currentSelection].clientHeight>=this._tooltip.scrollTop+this._tooltip.clientHeight?this._tooltip.scrollTop=d-this._tooltip.clientHeight+c[this._tooltip.currentSelection].clientHeight:d<=this._tooltip.scrollTop&&(this._tooltip.scrollTop=d)}},_handleSubmit:function(){if(this._hideAutoType(),this.hideAlert(),this._hideTooltip(),"none"==this._input.style.display)this.expand();else if(""===this._input.value)this.collapse();else{var a=this._getLocation(this._input.value);a===!1?this.showAlert():(this.showLocation(a,this._input.value),this.fire("search:locationfound",{latlng:a,text:this._input.value,layer:a.layer?a.layer:null}))}},_getLocation:function(a){return this._recordsCache.hasOwnProperty(a)?this._recordsCache[a]:!1},_defaultMoveToLocation:function(a,b,c){this.options.zoom?this._map.setView(a,this.options.zoom):this._map.panTo(a)},showLocation:function(a,b){var c=this;return c._map.once("moveend zoomend",function(b){c._markerSearch&&c._markerSearch.addTo(c._map).setLatLng(a)}),c._moveToLocation(a,b,c._map),c.options.autoCollapse&&c.collapse(),c}}),a.Control.Search.Marker=a.Marker.extend({includes:a.Mixin.Events,options:{icon:new a.Icon.Default,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}},initialize:function(b,d){a.setOptions(this,d),d.icon===!0&&(d.icon=new a.Icon.Default),a.Marker.prototype.initialize.call(this,b,d),c(this.options.circle)&&(this._circleLoc=new a.CircleMarker(b,this.options.circle))},onAdd:function(b){a.Marker.prototype.onAdd.call(this,b),this._circleLoc&&(b.addLayer(this._circleLoc),this.options.animate&&this.animate())},onRemove:function(b){a.Marker.prototype.onRemove.call(this,b),this._circleLoc&&b.removeLayer(this._circleLoc)},setLatLng:function(b){return a.Marker.prototype.setLatLng.call(this,b),this._circleLoc&&this._circleLoc.setLatLng(b),this},_initIcon:function(){this.options.icon&&a.Marker.prototype._initIcon.call(this)},_removeIcon:function(){this.options.icon&&a.Marker.prototype._removeIcon.call(this)},animate:function(){if(this._circleLoc){var a=this._circleLoc,b=200,c=5,d=parseInt(a._radius/c),e=this.options.circle.radius,f=2*a._radius,g=0;a._timerAnimLoc=setInterval(function(){g+=.5,d+=g,f-=d,a.setRadius(f),e>f&&(clearInterval(a._timerAnimLoc),a.setRadius(e))},b)}return this}}),a.Map.addInitHook(function(){this.options.searchControl&&(this.searchControl=a.control.search(this.options.searchControl),this.addControl(this.searchControl))}),a.control.search=function(b){return new a.Control.Search(b)},a.Control.Search}); \ No newline at end of file diff --git a/www/lib/ionic/js/angular/angular-api.js b/www/lib/ionic/js/angular/angular-api.js deleted file mode 100644 index ce7526eae..000000000 --- a/www/lib/ionic/js/angular/angular-api.js +++ /dev/null @@ -1,258 +0,0 @@ -// Source: https://github.com/Schweigi/angular-api-demo/blob/master/api.js -(function(window, angular, undefined) {'use strict'; - - // This file is adapted from Angular UI ngGrid project - // MIT License - // https://github.com/angular-ui/ng-grid/blob/v3.0.0-rc.20/src/js/core/factories/GridApi.js - angular.module('ngApi', []).factory('Api', ['$q', '$rootScope', function($q, $rootScope) { - /** - * Api provides the ability to register public methods events inside an app and allow - * for other components to use the api via featureName.raise.methodName and featureName.on.eventName(function(args){}). - * - * @appInstance: App which the API is for - * @apiId: Unique id in case multiple API instances do exist inside the same Angular environment - */ - var Api = function Api(appInstance, apiId) { - this.gantt = appInstance; - this.apiId = apiId; - this.eventListeners = []; - }; - - /** - * Used to execute a function while disabling the specified event listeners. - * Disables the listenerFunctions, executes the callbackFn, and then enables the listenerFunctions again - * - * @listenerFuncs: Listener function or array of listener functions to suppress. These must be the same - * @functions that were used in the .on.eventName method - * @callBackFn: Function to execute with surpressed events - * - * Example: - * var clicked = function (){ - * // Button clicked event handler - * } - * - * api.suppressEvents(clicked, function() { - * // No clicked events will be fired - * api.ui.form.main.submit.click(scope); - * }); - */ - Api.prototype.suppressEvents = function(listenerFuncs, callBackFn) { - var self = this; - var listeners = angular.isArray(listenerFuncs) ? listenerFuncs : [listenerFuncs]; - - var foundListeners = []; - listeners.forEach(function(l) { - foundListeners = self.eventListeners.filter(function(lstnr) { - return l === lstnr.handler; - }); - }); - - foundListeners.forEach(function(l) { - l.dereg(); - }); - - callBackFn(); - - foundListeners.forEach(function(l) { - l.dereg = registerEventWithAngular(l.eventId, l.handler, self.gantt, l._this); - }); - - }; - - /** - * Registers a new event for the given feature. - * - * @featureName: Name of the feature that raises the event - * @eventName: Name of the event - * - * To trigger the event call: - * .raise.eventName() - * - * To register a event listener call: - * .on.eventName(scope, callBackFn, _this) - * scope: A scope reference to add a deregister call to the scopes .$on('destroy') - * callBackFn: The function to call - * _this: Optional this context variable for callbackFn. If omitted, gantt.api will be used for the context - * - * .on.eventName returns a de-register funtion that will remove the listener. It's not necessary to use it as the listener - * will be removed when the scope is destroyed. - */ - Api.prototype.registerEvent = function(featureName, eventName) { - var self = this; - if (!self[featureName]) { - self[featureName] = {}; - } - - var feature = self[featureName]; - if (!feature.on) { - feature.on = {}; - feature.raise = {}; - feature.raisePromise = {}; - } - - var eventId = 'event:api:' + this.apiId + ':' + featureName + ':' + eventName; - - // Creating raise event method: featureName.raise.eventName - feature.raise[eventName] = function() { - $rootScope.$emit.apply($rootScope, [eventId].concat(Array.prototype.slice.call(arguments))); - }; - - // Creating raise that return a promise event method: featureName.raisePromise.eventName - feature.raisePromise[eventName] = function() { - // If no listener: continue - var listenerCount = $rootScope.$$listenerCount[eventId]; - if (!listenerCount) { - return $q.when(); - } - // Add promise reject/resolve has last arguments - var deferred = $q.defer(); - // If more than one listener : create a buffered defferred - if (listenerCount > 1) { - deferred = { - promise: deferred.promise, - notify: deferred.notify, - raw: deferred, - count: 0 , - errors: [], - results: [] - }; - deferred.checkFinish = function() { - if (deferred.count < listenerCount) return; - deferred.count = 0; - if (deferred.errors.length) { - if (deferred.errors.length == 1) { - deferred.raw.reject(deferred.errors[0]); - } - else { - deferred.raw.reject(deferred.errors); - } - deferred.errors = []; - } - else { - deferred.raw.resolve(deferred.results); - deferred.results = []; - } - }; - deferred.resolve = function(result) { - deferred.results.push(result); - deferred.count++; - deferred.checkFinish(); - }; - deferred.reject = function(err) { - deferred.errors.push(err); - deferred.count++; - deferred.checkFinish(); - }; - } - - var eventArgs = [eventId].concat(Array.prototype.slice.call(arguments)).concat([deferred]); - $rootScope.$emit.apply($rootScope, eventArgs); - return deferred.promise; - }; - - // Creating on event method: featureName.oneventName - feature.on[eventName] = function(scope, handler, _this) { - var deregAngularOn = registerEventWithAngular(eventId, handler, self.gantt, _this); - - var listener = { - handler: handler, - dereg: deregAngularOn, - eventId: eventId, - scope: scope, - _this: _this - }; - self.eventListeners.push(listener); - /*if (!self.eventListenersByEventId[eventId]) { - self.eventListenersByEventId[eventId] = {}; - } - self.eventListenersByEventId[eventId].push(self.eventListenersByEventId[eventId]);*/ - - var removeListener = function() { - listener.dereg(); - var index = self.eventListeners.indexOf(listener); - self.eventListeners.splice(index, 1); - // If empty, completely remove the event array - //if (!$rootScope.$$listenerCount[eventId]) { - // delete $rootScope.$$listeners[eventId]; - //} - }; - - scope.$on('$destroy', function() { - removeListener(); - }); - - return removeListener; - }; - }; - - function registerEventWithAngular(eventId, handler, app, _this) { - return $rootScope.$on(eventId, function() { - var args = Array.prototype.slice.call(arguments); - args.splice(0, 1); // Remove evt argument - handler.apply(_this ? _this : app, args); - }); - } - - /** - * Used to execute a function while disabling the specified event listeners. - * Disables the listenerFunctions, executes the callbackFn, and then enables the listenerFunctions again - * - * @listenerFuncs: Listener function or array of listener functions to suppress. These must be the same - * @functions that were used in the .on.eventName method - * @callBackFn: Function to execute with surpressed events - * - * Example: - * var clicked = function (){ - * // Button clicked event handler - * } - * - * api.suppressEvents(clicked, function() { - * // No clicked events will be fired - * api.ui.form.main.submit.click(scope); - * }); - */ - Api.prototype.hasListeners = function(listenerFuncs, callBackFn) { - var self = this; - var listeners = angular.isArray(listenerFuncs) ? listenerFuncs : [listenerFuncs]; - - var foundListeners = []; - listeners.forEach(function(l) { - foundListeners = self.eventListeners.filter(function(lstnr) { - return l === lstnr.handler; - }); - }); - - foundListeners.forEach(function(l) { - l.dereg(); - }); - - callBackFn(); - - foundListeners.forEach(function(l) { - l.dereg = registerEventWithAngular(l.eventId, l.handler, self.gantt, l._this); - }); - - }; - - /** - * Registers a new event for the given feature - * - * @featureName: Name of the feature - * @methodName: Name of the method - * @callBackFn: Function to execute - * @_this: Binds callBackFn 'this' to _this. Defaults to Api.app - */ - Api.prototype.registerMethod = function(featureName, methodName, callBackFn, _this) { - if (!this[featureName]) { - this[featureName] = {}; - } - - var feature = this[featureName]; - feature[methodName] = function() { - callBackFn.apply(_this || this.app, arguments); - }; - }; - - return Api; - }]); -})(window, window.angular); diff --git a/www/lib/ionic/js/angular/angular-cache.js b/www/lib/ionic/js/angular/angular-cache.js deleted file mode 100644 index 6a62e9b75..000000000 --- a/www/lib/ionic/js/angular/angular-cache.js +++ /dev/null @@ -1,1111 +0,0 @@ -/** - * angular-cache - * @version 4.6.0 - Homepage <https://github.com/jmdobry/angular-cache> - * @copyright (c) 2013-2016 angular-cache project authors - * @license MIT <https://github.com/jmdobry/angular-cache/blob/master/LICENSE> - * @overview angular-cache is a very useful replacement for Angular's $cacheFactory. - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(typeof angular === 'undefined' ? require('angular') : angular) : - typeof define === 'function' && define.amd ? define('angular-cache', ['angular'], factory) : - (global.angularCacheModuleName = factory(global.angular)); -}(this, function (angular) { 'use strict'; - - angular = 'default' in angular ? angular['default'] : angular; - - var babelHelpers = {}; - babelHelpers.typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; - }; - - /** - * @method bubbleUp - * @param {array} heap The heap. - * @param {function} weightFunc The weight function. - * @param {number} n The index of the element to bubble up. - */ - var bubbleUp = function bubbleUp(heap, weightFunc, n) { - var element = heap[n]; - var weight = weightFunc(element); - // When at 0, an element can not go up any further. - while (n > 0) { - // Compute the parent element's index, and fetch it. - var parentN = Math.floor((n + 1) / 2) - 1; - var parent = heap[parentN]; - // If the parent has a lesser weight, things are in order and we - // are done. - if (weight >= weightFunc(parent)) { - break; - } else { - heap[parentN] = element; - heap[n] = parent; - n = parentN; - } - } - }; - - /** - * @method bubbleDown - * @param {array} heap The heap. - * @param {function} weightFunc The weight function. - * @param {number} n The index of the element to sink down. - */ - var bubbleDown = function bubbleDown(heap, weightFunc, n) { - var length = heap.length; - var node = heap[n]; - var nodeWeight = weightFunc(node); - - while (true) { - var child2N = (n + 1) * 2; - var child1N = child2N - 1; - var swap = null; - if (child1N < length) { - var child1 = heap[child1N]; - var child1Weight = weightFunc(child1); - // If the score is less than our node's, we need to swap. - if (child1Weight < nodeWeight) { - swap = child1N; - } - } - // Do the same checks for the other child. - if (child2N < length) { - var child2 = heap[child2N]; - var child2Weight = weightFunc(child2); - if (child2Weight < (swap === null ? nodeWeight : weightFunc(heap[child1N]))) { - swap = child2N; - } - } - - if (swap === null) { - break; - } else { - heap[n] = heap[swap]; - heap[swap] = node; - n = swap; - } - } - }; - - function BinaryHeap(weightFunc, compareFunc) { - if (!weightFunc) { - weightFunc = function weightFunc(x) { - return x; - }; - } - if (!compareFunc) { - compareFunc = function compareFunc(x, y) { - return x === y; - }; - } - if (typeof weightFunc !== 'function') { - throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!'); - } - if (typeof compareFunc !== 'function') { - throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!'); - } - this.weightFunc = weightFunc; - this.compareFunc = compareFunc; - this.heap = []; - } - - var BHProto = BinaryHeap.prototype; - - BHProto.push = function (node) { - this.heap.push(node); - bubbleUp(this.heap, this.weightFunc, this.heap.length - 1); - }; - - BHProto.peek = function () { - return this.heap[0]; - }; - - BHProto.pop = function () { - var front = this.heap[0]; - var end = this.heap.pop(); - if (this.heap.length > 0) { - this.heap[0] = end; - bubbleDown(this.heap, this.weightFunc, 0); - } - return front; - }; - - BHProto.remove = function (node) { - var length = this.heap.length; - for (var i = 0; i < length; i++) { - if (this.compareFunc(this.heap[i], node)) { - var removed = this.heap[i]; - var end = this.heap.pop(); - if (i !== length - 1) { - this.heap[i] = end; - bubbleUp(this.heap, this.weightFunc, i); - bubbleDown(this.heap, this.weightFunc, i); - } - return removed; - } - } - return null; - }; - - BHProto.removeAll = function () { - this.heap = []; - }; - - BHProto.size = function () { - return this.heap.length; - }; - - var _Promise = null; - try { - _Promise = window.Promise; - } catch (e) {} - - var utils = { - isNumber: function isNumber(value) { - return typeof value === 'number'; - }, - isString: function isString(value) { - return typeof value === 'string'; - }, - isObject: function isObject(value) { - return value !== null && (typeof value === 'undefined' ? 'undefined' : babelHelpers.typeof(value)) === 'object'; - }, - isFunction: function isFunction(value) { - return typeof value === 'function'; - }, - fromJson: function fromJson(value) { - return JSON.parse(value); - }, - equals: function equals(a, b) { - return a === b; - }, - - Promise: _Promise - }; - - function _keys(collection) { - var keys = []; - var key = void 0; - if (!utils.isObject(collection)) { - return keys; - } - for (key in collection) { - if (collection.hasOwnProperty(key)) { - keys.push(key); - } - } - return keys; - } - - function _isPromiseLike(value) { - return value && typeof value.then === 'function'; - } - - function _stringifyNumber(number) { - if (utils.isNumber(number)) { - return number.toString(); - } - return number; - } - - function _keySet(collection) { - var keySet = {}; - var key = void 0; - if (!utils.isObject(collection)) { - return keySet; - } - for (key in collection) { - if (collection.hasOwnProperty(key)) { - keySet[key] = key; - } - } - return keySet; - } - - var defaults = { - capacity: Number.MAX_VALUE, - maxAge: Number.MAX_VALUE, - deleteOnExpire: 'none', - onExpire: null, - cacheFlushInterval: null, - recycleFreq: 1000, - storageMode: 'memory', - storageImpl: null, - disabled: false, - storagePrefix: 'cachefactory.caches.', - storeOnResolve: false, - storeOnReject: false - }; - - var caches = {}; - - function createCache(cacheId, options) { - if (cacheId in caches) { - throw new Error(cacheId + ' already exists!'); - } else if (!utils.isString(cacheId)) { - throw new Error('cacheId must be a string!'); - } - - var $$data = {}; - var $$promises = {}; - var $$storage = null; - var $$expiresHeap = new BinaryHeap(function (x) { - return x.expires; - }, utils.equals); - var $$lruHeap = new BinaryHeap(function (x) { - return x.accessed; - }, utils.equals); - - var cache = caches[cacheId] = { - - $$id: cacheId, - - destroy: function destroy() { - clearInterval(this.$$cacheFlushIntervalId); - clearInterval(this.$$recycleFreqId); - this.removeAll(); - if ($$storage) { - $$storage().removeItem(this.$$prefix + '.keys'); - $$storage().removeItem(this.$$prefix); - } - $$storage = null; - $$data = null; - $$lruHeap = null; - $$expiresHeap = null; - this.$$prefix = null; - delete caches[this.$$id]; - }, - disable: function disable() { - this.$$disabled = true; - }, - enable: function enable() { - delete this.$$disabled; - }, - get: function get(key, options) { - var _this2 = this; - - if (Array.isArray(key)) { - var _ret = function () { - var keys = key; - var values = []; - - keys.forEach(function (key) { - var value = _this2.get(key, options); - if (value !== null && value !== undefined) { - values.push(value); - } - }); - - return { - v: values - }; - }(); - - if ((typeof _ret === 'undefined' ? 'undefined' : babelHelpers.typeof(_ret)) === "object") return _ret.v; - } else { - key = _stringifyNumber(key); - - if (this.$$disabled) { - return; - } - } - - options = options || {}; - if (!utils.isString(key)) { - throw new Error('key must be a string!'); - } else if (options && !utils.isObject(options)) { - throw new Error('options must be an object!'); - } else if (options.onExpire && !utils.isFunction(options.onExpire)) { - throw new Error('options.onExpire must be a function!'); - } - - var item = void 0; - - if ($$storage) { - if ($$promises[key]) { - return $$promises[key]; - } - - var itemJson = $$storage().getItem(this.$$prefix + '.data.' + key); - - if (itemJson) { - item = utils.fromJson(itemJson); - } else { - return; - } - } else if (utils.isObject($$data)) { - if (!(key in $$data)) { - return; - } - - item = $$data[key]; - } - - var value = item.value; - var now = new Date().getTime(); - - if ($$storage) { - $$lruHeap.remove({ - key: key, - accessed: item.accessed - }); - item.accessed = now; - $$lruHeap.push({ - key: key, - accessed: now - }); - } else { - $$lruHeap.remove(item); - item.accessed = now; - $$lruHeap.push(item); - } - - if (this.$$deleteOnExpire === 'passive' && 'expires' in item && item.expires < now) { - this.remove(key); - - if (this.$$onExpire) { - this.$$onExpire(key, item.value, options.onExpire); - } else if (options.onExpire) { - options.onExpire.call(this, key, item.value); - } - value = undefined; - } else if ($$storage) { - $$storage().setItem(this.$$prefix + '.data.' + key, JSON.stringify(item)); - } - - return value; - }, - info: function info(key) { - if (key) { - var item = void 0; - if ($$storage) { - var itemJson = $$storage().getItem(this.$$prefix + '.data.' + key); - - if (itemJson) { - item = utils.fromJson(itemJson); - return { - created: item.created, - accessed: item.accessed, - expires: item.expires, - isExpired: new Date().getTime() - item.created > (item.maxAge || this.$$maxAge) - }; - } else { - return undefined; - } - } else if (utils.isObject($$data) && key in $$data) { - item = $$data[key]; - - return { - created: item.created, - accessed: item.accessed, - expires: item.expires, - isExpired: new Date().getTime() - item.created > (item.maxAge || this.$$maxAge) - }; - } else { - return undefined; - } - } else { - return { - id: this.$$id, - capacity: this.$$capacity, - maxAge: this.$$maxAge, - deleteOnExpire: this.$$deleteOnExpire, - onExpire: this.$$onExpire, - cacheFlushInterval: this.$$cacheFlushInterval, - recycleFreq: this.$$recycleFreq, - storageMode: this.$$storageMode, - storageImpl: $$storage ? $$storage() : undefined, - disabled: !!this.$$disabled, - size: $$lruHeap && $$lruHeap.size() || 0 - }; - } - }, - keys: function keys() { - if ($$storage) { - var keysJson = $$storage().getItem(this.$$prefix + '.keys'); - - if (keysJson) { - return utils.fromJson(keysJson); - } else { - return []; - } - } else { - return _keys($$data); - } - }, - keySet: function keySet() { - if ($$storage) { - var keysJson = $$storage().getItem(this.$$prefix + '.keys'); - var kSet = {}; - - if (keysJson) { - var keys = utils.fromJson(keysJson); - - for (var i = 0; i < keys.length; i++) { - kSet[keys[i]] = keys[i]; - } - } - return kSet; - } else { - return _keySet($$data); - } - }, - put: function put(key, value, options) { - var _this3 = this; - - options || (options = {}); - - var storeOnResolve = 'storeOnResolve' in options ? !!options.storeOnResolve : this.$$storeOnResolve; - var storeOnReject = 'storeOnReject' in options ? !!options.storeOnReject : this.$$storeOnReject; - - var getHandler = function getHandler(store, isError) { - return function (v) { - if (store) { - delete $$promises[key]; - if (utils.isObject(v) && 'status' in v && 'data' in v) { - v = [v.status, v.data, v.headers(), v.statusText]; - _this3.put(key, v); - } else { - _this3.put(key, v); - } - } - if (isError) { - if (utils.Promise) { - return utils.Promise.reject(v); - } else { - throw v; - } - } else { - return v; - } - }; - }; - - if (this.$$disabled || !utils.isObject($$data) || value === null || value === undefined) { - return; - } - key = _stringifyNumber(key); - - if (!utils.isString(key)) { - throw new Error('key must be a string!'); - } - - var now = new Date().getTime(); - var item = { - key: key, - value: _isPromiseLike(value) ? value.then(getHandler(storeOnResolve, false), getHandler(storeOnReject, true)) : value, - created: options.created === undefined ? now : options.created, - accessed: options.accessed === undefined ? now : options.accessed - }; - if (options.maxAge) { - item.maxAge = options.maxAge; - } - - if (options.expires === undefined) { - item.expires = item.created + (item.maxAge || this.$$maxAge); - } else { - item.expires = options.expires; - } - - if ($$storage) { - if (_isPromiseLike(item.value)) { - $$promises[key] = item.value; - return $$promises[key]; - } - var keysJson = $$storage().getItem(this.$$prefix + '.keys'); - var keys = keysJson ? utils.fromJson(keysJson) : []; - var itemJson = $$storage().getItem(this.$$prefix + '.data.' + key); - - // Remove existing - if (itemJson) { - this.remove(key); - } - // Add to expires heap - $$expiresHeap.push({ - key: key, - expires: item.expires - }); - // Add to lru heap - $$lruHeap.push({ - key: key, - accessed: item.accessed - }); - // Set item - $$storage().setItem(this.$$prefix + '.data.' + key, JSON.stringify(item)); - var exists = false; - for (var i = 0; i < keys.length; i++) { - if (keys[i] === key) { - exists = true; - break; - } - } - if (!exists) { - keys.push(key); - } - $$storage().setItem(this.$$prefix + '.keys', JSON.stringify(keys)); - } else { - // Remove existing - if ($$data[key]) { - this.remove(key); - } - // Add to expires heap - $$expiresHeap.push(item); - // Add to lru heap - $$lruHeap.push(item); - // Set item - $$data[key] = item; - delete $$promises[key]; - } - - // Handle exceeded capacity - if ($$lruHeap.size() > this.$$capacity) { - this.remove($$lruHeap.peek().key); - } - - return value; - }, - remove: function remove(key) { - key += ''; - delete $$promises[key]; - if ($$storage) { - var itemJson = $$storage().getItem(this.$$prefix + '.data.' + key); - - if (itemJson) { - var item = utils.fromJson(itemJson); - $$lruHeap.remove({ - key: key, - accessed: item.accessed - }); - $$expiresHeap.remove({ - key: key, - expires: item.expires - }); - $$storage().removeItem(this.$$prefix + '.data.' + key); - var keysJson = $$storage().getItem(this.$$prefix + '.keys'); - var keys = keysJson ? utils.fromJson(keysJson) : []; - var index = keys.indexOf(key); - - if (index >= 0) { - keys.splice(index, 1); - } - $$storage().setItem(this.$$prefix + '.keys', JSON.stringify(keys)); - return item.value; - } - } else if (utils.isObject($$data)) { - var value = $$data[key] ? $$data[key].value : undefined; - $$lruHeap.remove($$data[key]); - $$expiresHeap.remove($$data[key]); - $$data[key] = null; - delete $$data[key]; - return value; - } - }, - removeAll: function removeAll() { - if ($$storage) { - $$lruHeap.removeAll(); - $$expiresHeap.removeAll(); - var keysJson = $$storage().getItem(this.$$prefix + '.keys'); - - if (keysJson) { - var keys = utils.fromJson(keysJson); - - for (var i = 0; i < keys.length; i++) { - this.remove(keys[i]); - } - } - $$storage().setItem(this.$$prefix + '.keys', JSON.stringify([])); - } else if (utils.isObject($$data)) { - $$lruHeap.removeAll(); - $$expiresHeap.removeAll(); - for (var key in $$data) { - $$data[key] = null; - } - $$data = {}; - } else { - $$lruHeap.removeAll(); - $$expiresHeap.removeAll(); - $$data = {}; - } - $$promises = {}; - }, - removeExpired: function removeExpired() { - var now = new Date().getTime(); - var expired = {}; - var key = void 0; - var expiredItem = void 0; - - while ((expiredItem = $$expiresHeap.peek()) && expiredItem.expires <= now) { - expired[expiredItem.key] = expiredItem.value ? expiredItem.value : null; - $$expiresHeap.pop(); - } - - if ($$storage) { - for (key in expired) { - var itemJson = $$storage().getItem(this.$$prefix + '.data.' + key); - if (itemJson) { - expired[key] = utils.fromJson(itemJson).value; - this.remove(key); - } - } - } else { - for (key in expired) { - this.remove(key); - } - } - - if (this.$$onExpire) { - for (key in expired) { - this.$$onExpire(key, expired[key]); - } - } - - return expired; - }, - setCacheFlushInterval: function setCacheFlushInterval(cacheFlushInterval) { - var _this = this; - if (cacheFlushInterval === null) { - delete _this.$$cacheFlushInterval; - } else if (!utils.isNumber(cacheFlushInterval)) { - throw new Error('cacheFlushInterval must be a number!'); - } else if (cacheFlushInterval < 0) { - throw new Error('cacheFlushInterval must be greater than zero!'); - } else if (cacheFlushInterval !== _this.$$cacheFlushInterval) { - _this.$$cacheFlushInterval = cacheFlushInterval; - - clearInterval(_this.$$cacheFlushIntervalId); // eslint-disable-line - - _this.$$cacheFlushIntervalId = setInterval(function () { - _this.removeAll(); - }, _this.$$cacheFlushInterval); - } - }, - setCapacity: function setCapacity(capacity) { - if (capacity === null) { - delete this.$$capacity; - } else if (!utils.isNumber(capacity)) { - throw new Error('capacity must be a number!'); - } else if (capacity < 0) { - throw new Error('capacity must be greater than zero!'); - } else { - this.$$capacity = capacity; - } - var removed = {}; - while ($$lruHeap.size() > this.$$capacity) { - removed[$$lruHeap.peek().key] = this.remove($$lruHeap.peek().key); - } - return removed; - }, - setDeleteOnExpire: function setDeleteOnExpire(deleteOnExpire, setRecycleFreq) { - if (deleteOnExpire === null) { - delete this.$$deleteOnExpire; - } else if (!utils.isString(deleteOnExpire)) { - throw new Error('deleteOnExpire must be a string!'); - } else if (deleteOnExpire !== 'none' && deleteOnExpire !== 'passive' && deleteOnExpire !== 'aggressive') { - throw new Error('deleteOnExpire must be "none", "passive" or "aggressive"!'); - } else { - this.$$deleteOnExpire = deleteOnExpire; - } - if (setRecycleFreq !== false) { - this.setRecycleFreq(this.$$recycleFreq); - } - }, - setMaxAge: function setMaxAge(maxAge) { - if (maxAge === null) { - this.$$maxAge = Number.MAX_VALUE; - } else if (!utils.isNumber(maxAge)) { - throw new Error('maxAge must be a number!'); - } else if (maxAge < 0) { - throw new Error('maxAge must be greater than zero!'); - } else { - this.$$maxAge = maxAge; - } - var i = void 0, - keys = void 0, - key = void 0; - - $$expiresHeap.removeAll(); - - if ($$storage) { - var keysJson = $$storage().getItem(this.$$prefix + '.keys'); - - keys = keysJson ? utils.fromJson(keysJson) : []; - - for (i = 0; i < keys.length; i++) { - key = keys[i]; - var itemJson = $$storage().getItem(this.$$prefix + '.data.' + key); - - if (itemJson) { - var item = utils.fromJson(itemJson); - if (this.$$maxAge === Number.MAX_VALUE) { - item.expires = Number.MAX_VALUE; - } else { - item.expires = item.created + (item.maxAge || this.$$maxAge); - } - $$expiresHeap.push({ - key: key, - expires: item.expires - }); - } - } - } else { - keys = _keys($$data); - - for (i = 0; i < keys.length; i++) { - key = keys[i]; - if (this.$$maxAge === Number.MAX_VALUE) { - $$data[key].expires = Number.MAX_VALUE; - } else { - $$data[key].expires = $$data[key].created + ($$data[key].maxAge || this.$$maxAge); - } - $$expiresHeap.push($$data[key]); - } - } - if (this.$$deleteOnExpire === 'aggressive') { - return this.removeExpired(); - } else { - return {}; - } - }, - setOnExpire: function setOnExpire(onExpire) { - if (onExpire === null) { - delete this.$$onExpire; - } else if (!utils.isFunction(onExpire)) { - throw new Error('onExpire must be a function!'); - } else { - this.$$onExpire = onExpire; - } - }, - setOptions: function setOptions(cacheOptions, strict) { - cacheOptions = cacheOptions || {}; - strict = !!strict; - if (!utils.isObject(cacheOptions)) { - throw new Error('cacheOptions must be an object!'); - } - - if ('storagePrefix' in cacheOptions) { - this.$$storagePrefix = cacheOptions.storagePrefix; - } else if (strict) { - this.$$storagePrefix = defaults.storagePrefix; - } - - this.$$prefix = this.$$storagePrefix + this.$$id; - - if ('disabled' in cacheOptions) { - this.$$disabled = !!cacheOptions.disabled; - } else if (strict) { - this.$$disabled = defaults.disabled; - } - - if ('deleteOnExpire' in cacheOptions) { - this.setDeleteOnExpire(cacheOptions.deleteOnExpire, false); - } else if (strict) { - this.setDeleteOnExpire(defaults.deleteOnExpire, false); - } - - if ('recycleFreq' in cacheOptions) { - this.setRecycleFreq(cacheOptions.recycleFreq); - } else if (strict) { - this.setRecycleFreq(defaults.recycleFreq); - } - - if ('maxAge' in cacheOptions) { - this.setMaxAge(cacheOptions.maxAge); - } else if (strict) { - this.setMaxAge(defaults.maxAge); - } - - if ('storeOnResolve' in cacheOptions) { - this.$$storeOnResolve = !!cacheOptions.storeOnResolve; - } else if (strict) { - this.$$storeOnResolve = defaults.storeOnResolve; - } - - if ('storeOnReject' in cacheOptions) { - this.$$storeOnReject = !!cacheOptions.storeOnReject; - } else if (strict) { - this.$$storeOnReject = defaults.storeOnReject; - } - - if ('capacity' in cacheOptions) { - this.setCapacity(cacheOptions.capacity); - } else if (strict) { - this.setCapacity(defaults.capacity); - } - - if ('cacheFlushInterval' in cacheOptions) { - this.setCacheFlushInterval(cacheOptions.cacheFlushInterval); - } else if (strict) { - this.setCacheFlushInterval(defaults.cacheFlushInterval); - } - - if ('onExpire' in cacheOptions) { - this.setOnExpire(cacheOptions.onExpire); - } else if (strict) { - this.setOnExpire(defaults.onExpire); - } - - if ('storageMode' in cacheOptions || 'storageImpl' in cacheOptions) { - this.setStorageMode(cacheOptions.storageMode || defaults.storageMode, cacheOptions.storageImpl || defaults.storageImpl); - } else if (strict) { - this.setStorageMode(defaults.storageMode, defaults.storageImpl); - } - }, - setRecycleFreq: function setRecycleFreq(recycleFreq) { - if (recycleFreq === null) { - delete this.$$recycleFreq; - } else if (!utils.isNumber(recycleFreq)) { - throw new Error('recycleFreq must be a number!'); - } else if (recycleFreq < 0) { - throw new Error('recycleFreq must be greater than zero!'); - } else { - this.$$recycleFreq = recycleFreq; - } - clearInterval(this.$$recycleFreqId); - if (this.$$deleteOnExpire === 'aggressive') { - (function (self) { - self.$$recycleFreqId = setInterval(function () { - self.removeExpired(); - }, self.$$recycleFreq); - })(this); - } else { - delete this.$$recycleFreqId; - } - }, - setStorageMode: function setStorageMode(storageMode, storageImpl) { - if (!utils.isString(storageMode)) { - throw new Error('storageMode must be a string!'); - } else if (storageMode !== 'memory' && storageMode !== 'localStorage' && storageMode !== 'sessionStorage') { - throw new Error('storageMode must be "memory", "localStorage" or "sessionStorage"!'); - } - - var prevStorage = $$storage; - var prevData = $$data; - var shouldReInsert = false; - var items = {}; - - function load(prevStorage, prevData) { - var keys = this.keys(); - var length = keys.length; - if (length) { - var _key = void 0; - var prevDataIsObject = utils.isObject(prevData); - for (var i = 0; i < length; i++) { - _key = keys[i]; - if (prevStorage) { - var itemJson = prevStorage().getItem(this.$$prefix + '.data.' + _key); - if (itemJson) { - items[_key] = utils.fromJson(itemJson); - } - } else if (prevDataIsObject) { - items[_key] = prevData[_key]; - } - this.remove(_key); - } - shouldReInsert = true; - } - } - - if (!this.$$initializing) { - load.call(this, prevStorage, prevData); - } - - this.$$storageMode = storageMode; - - if (storageImpl) { - if (!utils.isObject(storageImpl)) { - throw new Error('storageImpl must be an object!'); - } else if (!('setItem' in storageImpl) || typeof storageImpl.setItem !== 'function') { - throw new Error('storageImpl must implement "setItem(key, value)"!'); - } else if (!('getItem' in storageImpl) || typeof storageImpl.getItem !== 'function') { - throw new Error('storageImpl must implement "getItem(key)"!'); - } else if (!('removeItem' in storageImpl) || typeof storageImpl.removeItem !== 'function') { - throw new Error('storageImpl must implement "removeItem(key)"!'); - } - $$storage = function $$storage() { - return storageImpl; - }; - } else if (this.$$storageMode === 'localStorage') { - try { - localStorage.setItem('cachefactory', 'cachefactory'); - localStorage.removeItem('cachefactory'); - $$storage = function $$storage() { - return localStorage; - }; - } catch (e) { - $$storage = null; - this.$$storageMode = 'memory'; - } - } else if (this.$$storageMode === 'sessionStorage') { - try { - sessionStorage.setItem('cachefactory', 'cachefactory'); - sessionStorage.removeItem('cachefactory'); - $$storage = function $$storage() { - return sessionStorage; - }; - } catch (e) { - $$storage = null; - this.$$storageMode = 'memory'; - } - } else { - $$storage = null; - this.$$storageMode = 'memory'; - } - - if (this.$$initializing) { - load.call(this, $$storage, $$data); - } - - if (shouldReInsert) { - var item = void 0; - for (var key in items) { - item = items[key]; - this.put(key, item.value, { - created: item.created, - accessed: item.accessed, - expires: item.expires - }); - } - } - }, - touch: function touch(key, options) { - var _this4 = this; - - if (key) { - var val = this.get(key, { - onExpire: function onExpire(k, v) { - return _this4.put(k, v); - } - }); - if (val) { - this.put(key, val, options); - } - } else { - var keys = this.keys(); - for (var i = 0; i < keys.length; i++) { - this.touch(keys[i], options); - } - } - }, - values: function values() { - var keys = this.keys(); - var items = []; - for (var i = 0; i < keys.length; i++) { - items.push(this.get(keys[i])); - } - return items; - } - }; - - cache.$$initializing = true; - cache.setOptions(options, true); - cache.$$initializing = false; - - return cache; - } - - function CacheFactory(cacheId, options) { - return createCache(cacheId, options); - } - - CacheFactory.createCache = createCache; - CacheFactory.defaults = defaults; - - CacheFactory.info = function () { - var keys = _keys(caches); - var info = { - size: keys.length, - caches: {} - }; - for (var opt in defaults) { - if (defaults.hasOwnProperty(opt)) { - info[opt] = defaults[opt]; - } - } - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - info.caches[key] = caches[key].info(); - } - return info; - }; - - CacheFactory.get = function (cacheId) { - return caches[cacheId]; - }; - CacheFactory.keySet = function () { - return _keySet(caches); - }; - CacheFactory.keys = function () { - return _keys(caches); - }; - CacheFactory.destroy = function (cacheId) { - if (caches[cacheId]) { - caches[cacheId].destroy(); - delete caches[cacheId]; - } - }; - CacheFactory.destroyAll = function () { - for (var cacheId in caches) { - caches[cacheId].destroy(); - } - caches = {}; - }; - CacheFactory.clearAll = function () { - for (var cacheId in caches) { - caches[cacheId].removeAll(); - } - }; - CacheFactory.removeExpiredFromAll = function () { - var expired = {}; - for (var cacheId in caches) { - expired[cacheId] = caches[cacheId].removeExpired(); - } - return expired; - }; - CacheFactory.enableAll = function () { - for (var cacheId in caches) { - caches[cacheId].$$disabled = false; - } - }; - CacheFactory.disableAll = function () { - for (var cacheId in caches) { - caches[cacheId].$$disabled = true; - } - }; - CacheFactory.touchAll = function () { - for (var cacheId in caches) { - caches[cacheId].touch(); - } - }; - - CacheFactory.utils = utils; - CacheFactory.BinaryHeap = BinaryHeap; - - CacheFactory.utils.equals = angular.equals; - CacheFactory.utils.isObject = angular.isObject; - CacheFactory.utils.fromJson = angular.fromJson; - - function BinaryHeapProvider() { - this.$get = function () { - return CacheFactory.BinaryHeap; - }; - } - - function CacheFactoryProvider() { - this.defaults = CacheFactory.defaults; - this.defaults.storagePrefix = 'angular-cache.caches.'; - - this.$get = ['$q', function ($q) { - CacheFactory.utils.Promise = $q; - return CacheFactory; - }]; - } - - angular.module('angular-cache', []).provider('BinaryHeap', BinaryHeapProvider).provider('CacheFactory', CacheFactoryProvider); - - var index = 'angular-cache'; - - return index; - -})); -//# sourceMappingURL=angular-cache.js.map \ No newline at end of file diff --git a/www/lib/ionic/js/angular/angular-chart.js b/www/lib/ionic/js/angular/angular-chart.js deleted file mode 100644 index 3a7d5bc8b..000000000 --- a/www/lib/ionic/js/angular/angular-chart.js +++ /dev/null @@ -1,400 +0,0 @@ -/*! - * angular-chart.js - An angular.js wrapper for Chart.js - * http://jtblin.github.io/angular-chart.js/ - * Version: 1.1.1 - * - * Copyright 2016 Jerome Touffe-Blin - * Released under the BSD-2-Clause license - * https://github.com/jtblin/angular-chart.js/blob/master/LICENSE - */ -(function (factory) { - 'use strict'; - if (typeof exports === 'object') { - // Node/CommonJS - module.exports = factory( - typeof angular !== 'undefined' ? angular : require('angular'), - typeof Chart !== 'undefined' ? Chart : require('chart.js')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['angular', 'chart'], factory); - } else { - // Browser globals - if (typeof angular === 'undefined') { - throw new Error('AngularJS framework needs to be included, see https://angularjs.org/'); - } else if (typeof Chart === 'undefined') { - throw new Error('Chart.js library needs to be included, see http://jtblin.github.io/angular-chart.js/'); - } - factory(angular, Chart); - } -}(function (angular, Chart) { - 'use strict'; - - Chart.defaults.global.multiTooltipTemplate = '<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>'; - Chart.defaults.global.tooltips.mode = 'label'; - Chart.defaults.global.elements.line.borderWidth = 2; - Chart.defaults.global.elements.rectangle.borderWidth = 2; - Chart.defaults.global.legend.display = false; - Chart.defaults.global.colors = [ - '#97BBCD', // blue - '#DCDCDC', // light grey - '#F7464A', // red - '#46BFBD', // green - '#FDB45C', // yellow - '#949FB1', // grey - '#4D5360' // dark grey - ]; - - var useExcanvas = typeof window.G_vmlCanvasManager === 'object' && - window.G_vmlCanvasManager !== null && - typeof window.G_vmlCanvasManager.initElement === 'function'; - - if (useExcanvas) Chart.defaults.global.animation = false; - - return angular.module('chart.js', []) - .provider('ChartJs', ChartJsProvider) - .factory('ChartJsFactory', ['ChartJs', '$timeout', ChartJsFactory]) - .directive('chartBase', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory(); }]) - .directive('chartLine', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('line'); }]) - .directive('chartBar', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('bar'); }]) - .directive('chartHorizontalBar', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('horizontalBar'); }]) - .directive('chartRadar', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('radar'); }]) - .directive('chartDoughnut', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('doughnut'); }]) - .directive('chartPie', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('pie'); }]) - .directive('chartPolarArea', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('polarArea'); }]) - .directive('chartBubble', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('bubble'); }]) - .name; - - /** - * Wrapper for chart.js - * Allows configuring chart js using the provider - * - * angular.module('myModule', ['chart.js']).config(function(ChartJsProvider) { - * ChartJsProvider.setOptions({ responsive: false }); - * ChartJsProvider.setOptions('Line', { responsive: true }); - * }))) - */ - function ChartJsProvider () { - var options = { responsive: true }; - var ChartJs = { - Chart: Chart, - getOptions: function (type) { - var typeOptions = type && options[type] || {}; - return angular.extend({}, options, typeOptions); - } - }; - - /** - * Allow to set global options during configuration - */ - this.setOptions = function (type, customOptions) { - // If no type was specified set option for the global object - if (! customOptions) { - customOptions = type; - options = angular.merge(options, customOptions); - } else { - // Set options for the specific chart - options[type] = angular.merge(options[type] || {}, customOptions); - } - - angular.merge(ChartJs.Chart.defaults, options); - }; - - this.$get = function () { - return ChartJs; - }; - } - - function ChartJsFactory (ChartJs, $timeout) { - return function chart (type) { - return { - restrict: 'CA', - scope: { - chartGetColor: '=?', - chartType: '=', - chartData: '=?', - chartLabels: '=?', - chartOptions: '=?', - chartSeries: '=?', - chartColors: '=?', - chartClick: '=?', - chartHover: '=?', - chartDatasetOverride: '=?' - }, - link: function (scope, elem/*, attrs */) { - if (useExcanvas) window.G_vmlCanvasManager.initElement(elem[0]); - - // Order of setting "watch" matter - scope.$watch('chartData', watchData, true); - scope.$watch('chartSeries', watchOther, true); - scope.$watch('chartLabels', watchOther, true); - scope.$watch('chartOptions', watchOther, true); - scope.$watch('chartColors', watchOther, true); - scope.$watch('chartDatasetOverride', watchOther, true); - scope.$watch('chartType', watchType, false); - - scope.$on('$destroy', function () { - destroyChart(scope); - }); - - scope.$on('$resize', function () { - if (scope.chart) scope.chart.resize(); - }); - - function watchData (newVal, oldVal) { - if (! newVal || ! newVal.length || (Array.isArray(newVal[0]) && ! newVal[0].length)) { - destroyChart(scope); - return; - } - var chartType = type || scope.chartType; - if (! chartType) return; - - if (scope.chart && canUpdateChart(newVal, oldVal)) - return updateChart(newVal, scope); - - createChart(chartType, scope, elem); - } - - function watchOther (newVal, oldVal) { - if (isEmpty(newVal)) return; - if (angular.equals(newVal, oldVal)) return; - var chartType = type || scope.chartType; - if (! chartType) return; - - // chart.update() doesn't work for series and labels - // so we have to re-create the chart entirely - createChart(chartType, scope, elem); - } - - function watchType (newVal, oldVal) { - if (isEmpty(newVal)) return; - if (angular.equals(newVal, oldVal)) return; - createChart(newVal, scope, elem); - } - } - }; - }; - - function createChart (type, scope, elem) { - var options = getChartOptions(type, scope); - if (! hasData(scope) || ! canDisplay(type, scope, elem, options)) return; - - var cvs = elem[0]; - var ctx = cvs.getContext('2d'); - - scope.chartGetColor = getChartColorFn(scope); - var data = getChartData(type, scope); - // Destroy old chart if it exists to avoid ghost charts issue - // https://github.com/jtblin/angular-chart.js/issues/187 - destroyChart(scope); - - scope.chart = new ChartJs.Chart(ctx, { - type: type, - data: data, - options: options - }); - scope.$emit('chart-create', scope.chart); - bindEvents(cvs, scope); - } - - function canUpdateChart (newVal, oldVal) { - if (newVal && oldVal && newVal.length && oldVal.length) { - return Array.isArray(newVal[0]) ? - newVal.length === oldVal.length && newVal.every(function (element, index) { - return element.length === oldVal[index].length; }) : - oldVal.reduce(sum, 0) > 0 ? newVal.length === oldVal.length : false; - } - return false; - } - - function sum (carry, val) { - return carry + val; - } - - function getEventHandler (scope, action, triggerOnlyOnChange) { - var lastState = { - point: void 0, - points: void 0 - }; - return function (evt) { - var atEvent = scope.chart.getElementAtEvent || scope.chart.getPointAtEvent; - var atEvents = scope.chart.getElementsAtEvent || scope.chart.getPointsAtEvent; - if (atEvents) { - var points = atEvents.call(scope.chart, evt); - var point = atEvent ? atEvent.call(scope.chart, evt)[0] : void 0; - - if (triggerOnlyOnChange === false || - (! angular.equals(lastState.points, points) && ! angular.equals(lastState.point, point)) - ) { - lastState.point = point; - lastState.points = points; - scope[action](points, evt, point); - } - } - }; - } - - function getColors (type, scope) { - var colors = angular.copy(scope.chartColors || - ChartJs.getOptions(type).chartColors || - Chart.defaults.global.colors - ); - var notEnoughColors = colors.length < scope.chartData.length; - while (colors.length < scope.chartData.length) { - colors.push(scope.chartGetColor()); - } - // mutate colors in this case as we don't want - // the colors to change on each refresh - if (notEnoughColors) scope.chartColors = colors; - return colors.map(convertColor); - } - - function convertColor (color) { - // Allows RGB and RGBA colors to be input as a string: e.g.: "rgb(159,204,0)", "rgba(159,204,0, 0.5)" - if (typeof color === 'string' && color[0] === 'r') return getColor(rgbStringToRgb(color)); - // Allows hex colors to be input as a string. - if (typeof color === 'string' && color[0] === '#') return getColor(hexToRgb(color.substr(1))); - // Allows colors to be input as an object, bypassing getColor() entirely - if (typeof color === 'object' && color !== null) return color; - return getRandomColor(); - } - - function getRandomColor () { - var color = [getRandomInt(0, 255), getRandomInt(0, 255), getRandomInt(0, 255)]; - return getColor(color); - } - - function getColor (color) { - var alpha = color[3] || 1; - color = color.slice(0, 3); - return { - backgroundColor: rgba(color, 0.2), - pointBackgroundColor: rgba(color, alpha), - pointHoverBackgroundColor: rgba(color, 0.8), - borderColor: rgba(color, alpha), - pointBorderColor: '#fff', - pointHoverBorderColor: rgba(color, alpha) - }; - } - - function getRandomInt (min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; - } - - function rgba (color, alpha) { - // rgba not supported by IE8 - return useExcanvas ? 'rgb(' + color.join(',') + ')' : 'rgba(' + color.concat(alpha).join(',') + ')'; - } - - // Credit: http://stackoverflow.com/a/11508164/1190235 - function hexToRgb (hex) { - var bigint = parseInt(hex, 16), - r = (bigint >> 16) & 255, - g = (bigint >> 8) & 255, - b = bigint & 255; - - return [r, g, b]; - } - - function rgbStringToRgb (color) { - var match = color.match(/^rgba?\(([\d,.]+)\)$/); - if (! match) throw new Error('Cannot parse rgb value'); - color = match[1].split(','); - return color.map(Number); - } - - function hasData (scope) { - return scope.chartData && scope.chartData.length; - } - - function getChartColorFn (scope) { - return typeof scope.chartGetColor === 'function' ? scope.chartGetColor : getRandomColor; - } - - function getChartData (type, scope) { - var colors = getColors(type, scope); - return Array.isArray(scope.chartData[0]) ? - getDataSets(scope.chartLabels, scope.chartData, scope.chartSeries || [], colors, scope.chartDatasetOverride) : - getData(scope.chartLabels, scope.chartData, colors, scope.chartDatasetOverride); - } - - function getDataSets (labels, data, series, colors, datasetOverride) { - return { - labels: labels, - datasets: data.map(function (item, i) { - var dataset = angular.extend({}, colors[i], { - label: series[i], - data: item - }); - if (datasetOverride && datasetOverride.length >= i) { - angular.merge(dataset, datasetOverride[i]); - } - return dataset; - }) - }; - } - - function getData (labels, data, colors, datasetOverride) { - var dataset = { - labels: labels, - datasets: [{ - data: data, - backgroundColor: colors.map(function (color) { - return color.pointBackgroundColor; - }), - hoverBackgroundColor: colors.map(function (color) { - return color.backgroundColor; - }) - }] - }; - if (datasetOverride) { - angular.merge(dataset.datasets[0], datasetOverride); - } - return dataset; - } - - function getChartOptions (type, scope) { - return angular.extend({}, ChartJs.getOptions(type), scope.chartOptions); - } - - function bindEvents (cvs, scope) { - cvs.onclick = scope.chartClick ? getEventHandler(scope, 'chartClick', false) : angular.noop; - cvs.onmousemove = scope.chartHover ? getEventHandler(scope, 'chartHover', true) : angular.noop; - } - - function updateChart (values, scope) { - if (Array.isArray(scope.chartData[0])) { - scope.chart.data.datasets.forEach(function (dataset, i) { - dataset.data = values[i]; - }); - } else { - scope.chart.data.datasets[0].data = values; - } - - scope.chart.update(); - scope.$emit('chart-update', scope.chart); - } - - function isEmpty (value) { - return ! value || - (Array.isArray(value) && ! value.length) || - (typeof value === 'object' && ! Object.keys(value).length); - } - - function canDisplay (type, scope, elem, options) { - // TODO: check parent? - if (options.responsive && elem[0].clientHeight === 0) { - $timeout(function () { - createChart(type, scope, elem); - }, 50, false); - return false; - } - return true; - } - - function destroyChart(scope) { - if(! scope.chart) return; - scope.chart.destroy(); - scope.$emit('chart-destroy', scope.chart); - } - } -})); diff --git a/www/lib/ionic/js/angular/angular-file-saver.bundle.js b/www/lib/ionic/js/angular/angular-file-saver.bundle.js deleted file mode 100644 index f0ecd84d3..000000000 --- a/www/lib/ionic/js/angular/angular-file-saver.bundle.js +++ /dev/null @@ -1,602 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else { - var a = factory(); - for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; - } -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - /* - * - * A AngularJS module that implements the HTML5 W3C saveAs() in browsers that - * do not natively support it - * - * (c) 2015 Philipp Alferov - * License: MIT - * - */ - - module.exports = 'ngFileSaver'; - - angular.module('ngFileSaver', []) - .factory('FileSaver', ['Blob', 'SaveAs', 'FileSaverUtils', __webpack_require__(1)]) - .factory('FileSaverUtils', [__webpack_require__(2)]) - .factory('Blob', ['$window', __webpack_require__(3)]) - .factory('SaveAs', [__webpack_require__(5)]); - - -/***/ }, -/* 1 */ -/***/ function(module, exports) { - - 'use strict'; - - module.exports = function FileSaver(Blob, SaveAs, FileSaverUtils) { - - function save(blob, filename, disableAutoBOM) { - try { - SaveAs(blob, filename, disableAutoBOM); - } catch(err) { - FileSaverUtils.handleErrors(err.message); - } - } - - return { - - /** - * saveAs - * Immediately starts saving a file, returns undefined. - * - * @name saveAs - * @function - * @param {Blob} data A Blob instance - * @param {Object} filename Custom filename (extension is optional) - * @param {Boolean} disableAutoBOM Disable automatically provided Unicode - * text encoding hints - * - * @return {Undefined} - */ - - saveAs: function(data, filename, disableAutoBOM) { - - if (!FileSaverUtils.isBlobInstance(data)) { - FileSaverUtils.handleErrors('Data argument should be a blob instance'); - } - - if (!FileSaverUtils.isString(filename)) { - FileSaverUtils.handleErrors('Filename argument should be a string'); - } - - return save(data, filename, disableAutoBOM); - } - }; - }; - - -/***/ }, -/* 2 */ -/***/ function(module, exports) { - - 'use strict'; - - module.exports = function FileSaverUtils() { - return { - handleErrors: function(msg) { - throw new Error(msg); - }, - isString: function(obj) { - return typeof obj === 'string' || obj instanceof String; - }, - isUndefined: function(obj) { - return typeof obj === 'undefined'; - }, - isBlobInstance: function(obj) { - return obj instanceof Blob; - } - }; - }; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - __webpack_require__(4); - - module.exports = function Blob($window) { - return $window.Blob; - }; - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - /* Blob.js - * A Blob implementation. - * 2014-07-24 - * - * By Eli Grey, http://eligrey.com - * By Devin Samarin, https://github.com/dsamarin - * License: MIT - * See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md - */ - - /*global self, unescape */ - /*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true, - plusplus: true */ - - /*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */ - - (function (view) { - "use strict"; - - view.URL = view.URL || view.webkitURL; - - if (view.Blob && view.URL) { - try { - new Blob; - return; - } catch (e) {} - } - - // Internally we use a BlobBuilder implementation to base Blob off of - // in order to support older browsers that only have BlobBuilder - var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || (function(view) { - var - get_class = function(object) { - return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1]; - } - , FakeBlobBuilder = function BlobBuilder() { - this.data = []; - } - , FakeBlob = function Blob(data, type, encoding) { - this.data = data; - this.size = data.length; - this.type = type; - this.encoding = encoding; - } - , FBB_proto = FakeBlobBuilder.prototype - , FB_proto = FakeBlob.prototype - , FileReaderSync = view.FileReaderSync - , FileException = function(type) { - this.code = this[this.name = type]; - } - , file_ex_codes = ( - "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR " - + "NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR" - ).split(" ") - , file_ex_code = file_ex_codes.length - , real_URL = view.URL || view.webkitURL || view - , real_create_object_URL = real_URL.createObjectURL - , real_revoke_object_URL = real_URL.revokeObjectURL - , URL = real_URL - , btoa = view.btoa - , atob = view.atob - - , ArrayBuffer = view.ArrayBuffer - , Uint8Array = view.Uint8Array - - , origin = /^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/ - ; - FakeBlob.fake = FB_proto.fake = true; - while (file_ex_code--) { - FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1; - } - // Polyfill URL - if (!real_URL.createObjectURL) { - URL = view.URL = function(uri) { - var - uri_info = document.createElementNS("http://www.w3.org/1999/xhtml", "a") - , uri_origin - ; - uri_info.href = uri; - if (!("origin" in uri_info)) { - if (uri_info.protocol.toLowerCase() === "data:") { - uri_info.origin = null; - } else { - uri_origin = uri.match(origin); - uri_info.origin = uri_origin && uri_origin[1]; - } - } - return uri_info; - }; - } - URL.createObjectURL = function(blob) { - var - type = blob.type - , data_URI_header - ; - if (type === null) { - type = "application/octet-stream"; - } - if (blob instanceof FakeBlob) { - data_URI_header = "data:" + type; - if (blob.encoding === "base64") { - return data_URI_header + ";base64," + blob.data; - } else if (blob.encoding === "URI") { - return data_URI_header + "," + decodeURIComponent(blob.data); - } if (btoa) { - return data_URI_header + ";base64," + btoa(blob.data); - } else { - return data_URI_header + "," + encodeURIComponent(blob.data); - } - } else if (real_create_object_URL) { - return real_create_object_URL.call(real_URL, blob); - } - }; - URL.revokeObjectURL = function(object_URL) { - if (object_URL.substring(0, 5) !== "data:" && real_revoke_object_URL) { - real_revoke_object_URL.call(real_URL, object_URL); - } - }; - FBB_proto.append = function(data/*, endings*/) { - var bb = this.data; - // decode data to a binary string - if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) { - var - str = "" - , buf = new Uint8Array(data) - , i = 0 - , buf_len = buf.length - ; - for (; i < buf_len; i++) { - str += String.fromCharCode(buf[i]); - } - bb.push(str); - } else if (get_class(data) === "Blob" || get_class(data) === "File") { - if (FileReaderSync) { - var fr = new FileReaderSync; - bb.push(fr.readAsBinaryString(data)); - } else { - // async FileReader won't work as BlobBuilder is sync - throw new FileException("NOT_READABLE_ERR"); - } - } else if (data instanceof FakeBlob) { - if (data.encoding === "base64" && atob) { - bb.push(atob(data.data)); - } else if (data.encoding === "URI") { - bb.push(decodeURIComponent(data.data)); - } else if (data.encoding === "raw") { - bb.push(data.data); - } - } else { - if (typeof data !== "string") { - data += ""; // convert unsupported types to strings - } - // decode UTF-16 to binary string - bb.push(unescape(encodeURIComponent(data))); - } - }; - FBB_proto.getBlob = function(type) { - if (!arguments.length) { - type = null; - } - return new FakeBlob(this.data.join(""), type, "raw"); - }; - FBB_proto.toString = function() { - return "[object BlobBuilder]"; - }; - FB_proto.slice = function(start, end, type) { - var args = arguments.length; - if (args < 3) { - type = null; - } - return new FakeBlob( - this.data.slice(start, args > 1 ? end : this.data.length) - , type - , this.encoding - ); - }; - FB_proto.toString = function() { - return "[object Blob]"; - }; - FB_proto.close = function() { - this.size = 0; - delete this.data; - }; - return FakeBlobBuilder; - }(view)); - - view.Blob = function(blobParts, options) { - var type = options ? (options.type || "") : ""; - var builder = new BlobBuilder(); - if (blobParts) { - for (var i = 0, len = blobParts.length; i < len; i++) { - if (Uint8Array && blobParts[i] instanceof Uint8Array) { - builder.append(blobParts[i].buffer); - } - else { - builder.append(blobParts[i]); - } - } - } - var blob = builder.getBlob(type); - if (!blob.slice && blob.webkitSlice) { - blob.slice = blob.webkitSlice; - } - return blob; - }; - - var getPrototypeOf = Object.getPrototypeOf || function(object) { - return object.__proto__; - }; - view.Blob.prototype = getPrototypeOf(new view.Blob()); - }(typeof self !== "undefined" && self || typeof window !== "undefined" && window || this.content || this)); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - module.exports = function SaveAs() { - return __webpack_require__(6).saveAs || function() {}; - }; - - -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_RESULT__;/* FileSaver.js - * A saveAs() FileSaver implementation. - * 1.3.2 - * 2016-06-16 18:25:19 - * - * By Eli Grey, http://eligrey.com - * License: MIT - * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md - */ - - /*global self */ - /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ - - /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ - - var saveAs = saveAs || (function(view) { - "use strict"; - // IE <10 is explicitly unsupported - if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) { - return; - } - var - doc = view.document - // only get URL when necessary in case Blob.js hasn't overridden it yet - , get_URL = function() { - return view.URL || view.webkitURL || view; - } - , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a") - , can_use_save_link = "download" in save_link - , click = function(node) { - var event = new MouseEvent("click"); - node.dispatchEvent(event); - } - , is_safari = /constructor/i.test(view.HTMLElement) || view.safari - , is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent) - , throw_outside = function(ex) { - (view.setImmediate || view.setTimeout)(function() { - throw ex; - }, 0); - } - , force_saveable_type = "application/octet-stream" - // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to - , arbitrary_revoke_timeout = 1000 * 40 // in ms - , revoke = function(file) { - var revoker = function() { - if (typeof file === "string") { // file is an object URL - get_URL().revokeObjectURL(file); - } else { // file is a File - file.remove(); - } - }; - setTimeout(revoker, arbitrary_revoke_timeout); - } - , dispatch = function(filesaver, event_types, event) { - event_types = [].concat(event_types); - var i = event_types.length; - while (i--) { - var listener = filesaver["on" + event_types[i]]; - if (typeof listener === "function") { - try { - listener.call(filesaver, event || filesaver); - } catch (ex) { - throw_outside(ex); - } - } - } - } - , auto_bom = function(blob) { - // prepend BOM for UTF-8 XML and text/* types (including HTML) - // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF - if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { - return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type}); - } - return blob; - } - , FileSaver = function(blob, name, no_auto_bom) { - if (!no_auto_bom) { - blob = auto_bom(blob); - } - // First try a.download, then web filesystem, then object URLs - var - filesaver = this - , type = blob.type - , force = type === force_saveable_type - , object_url - , dispatch_all = function() { - dispatch(filesaver, "writestart progress write writeend".split(" ")); - } - // on any filesys errors revert to saving with object URLs - , fs_error = function() { - if ((is_chrome_ios || (force && is_safari)) && view.FileReader) { - // Safari doesn't allow downloading of blob urls - var reader = new FileReader(); - reader.onloadend = function() { - var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;'); - var popup = view.open(url, '_blank'); - if(!popup) view.location.href = url; - url=undefined; // release reference before dispatching - filesaver.readyState = filesaver.DONE; - dispatch_all(); - }; - reader.readAsDataURL(blob); - filesaver.readyState = filesaver.INIT; - return; - } - // don't create more object URLs than needed - if (!object_url) { - object_url = get_URL().createObjectURL(blob); - } - if (force) { - view.location.href = object_url; - } else { - var opened = view.open(object_url, "_blank"); - if (!opened) { - // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html - view.location.href = object_url; - } - } - filesaver.readyState = filesaver.DONE; - dispatch_all(); - revoke(object_url); - } - ; - filesaver.readyState = filesaver.INIT; - - if (can_use_save_link) { - object_url = get_URL().createObjectURL(blob); - setTimeout(function() { - save_link.href = object_url; - save_link.download = name; - click(save_link); - dispatch_all(); - revoke(object_url); - filesaver.readyState = filesaver.DONE; - }); - return; - } - - fs_error(); - } - , FS_proto = FileSaver.prototype - , saveAs = function(blob, name, no_auto_bom) { - return new FileSaver(blob, name || blob.name || "download", no_auto_bom); - } - ; - // IE 10+ (native saveAs) - if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) { - return function(blob, name, no_auto_bom) { - name = name || blob.name || "download"; - - if (!no_auto_bom) { - blob = auto_bom(blob); - } - return navigator.msSaveOrOpenBlob(blob, name); - }; - } - - FS_proto.abort = function(){}; - FS_proto.readyState = FS_proto.INIT = 0; - FS_proto.WRITING = 1; - FS_proto.DONE = 2; - - FS_proto.error = - FS_proto.onwritestart = - FS_proto.onprogress = - FS_proto.onwrite = - FS_proto.onabort = - FS_proto.onerror = - FS_proto.onwriteend = - null; - - return saveAs; - }( - typeof self !== "undefined" && self - || typeof window !== "undefined" && window - || this.content - )); - // `self` is undefined in Firefox for Android content script context - // while `this` is nsIContentFrameMessageManager - // with an attribute `content` that corresponds to the window - - if (typeof module !== "undefined" && module.exports) { - module.exports.saveAs = saveAs; - } else if (("function" !== "undefined" && __webpack_require__(7) !== null) && (__webpack_require__(8) !== null)) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { - return saveAs; - }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = function() { throw new Error("define cannot be used indirect"); }; - - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; - - /* WEBPACK VAR INJECTION */}.call(exports, {})) - -/***/ } -/******/ ]) -}); -; \ No newline at end of file diff --git a/www/lib/ionic/js/angular/angular-fullscreen.js b/www/lib/ionic/js/angular/angular-fullscreen.js deleted file mode 100644 index 855fbbb38..000000000 --- a/www/lib/ionic/js/angular/angular-fullscreen.js +++ /dev/null @@ -1,111 +0,0 @@ -(function(window) { - var createModule = function(angular) { - var module = angular.module('FBAngular', []); - - module.factory('Fullscreen', ['$document', '$rootScope', function ($document,$rootScope) { - var document = $document[0]; - - var emitter = $rootScope.$new(); - - // listen event on document instead of element to avoid firefox limitation - // see https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode - $document.on('fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange', function(){ - emitter.$emit('FBFullscreen.change', serviceInstance.isEnabled()); - }); - - var serviceInstance = { - $on: angular.bind(emitter, emitter.$on), - all: function(options) { - serviceInstance.enable( $document.length && $document[0].body || document.documentElement, options ); - }, - enable: function(element, options) { - if(element.requestFullScreen) { - element.requestFullScreen(options); - } else if(element.mozRequestFullScreen) { - element.mozRequestFullScreen(); - } else if(element.webkitRequestFullscreen) { - element.webkitRequestFullscreen(); - } else if (element.msRequestFullscreen) { - element.msRequestFullscreen(); - } - }, - cancel: function() { - if(document.cancelFullScreen) { - document.cancelFullScreen(); - } else if(document.mozCancelFullScreen) { - document.mozCancelFullScreen(); - } else if(document.webkitExitFullscreen) { - document.webkitExitFullscreen(); - } else if (document.msExitFullscreen) { - document.msExitFullscreen(); - } - }, - isEnabled: function(){ - var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; - return fullscreenElement ? true : false; - }, - toggleAll: function(){ - serviceInstance.isEnabled() ? serviceInstance.cancel() : serviceInstance.all(); - }, - isSupported: function(){ - var docElm = document.documentElement; - var requestFullscreen = docElm.requestFullScreen || docElm.mozRequestFullScreen || docElm.webkitRequestFullscreen || docElm.msRequestFullscreen; - return requestFullscreen ? true : false; - } - }; - - return serviceInstance; - }]); - - module.directive('fullscreen', ['Fullscreen', function(Fullscreen) { - return { - link : function ($scope, $element, $attrs) { - // Watch for changes on scope if model is provided - if ($attrs.fullscreen) { - $scope.$watch($attrs.fullscreen, function(value) { - var isEnabled = Fullscreen.isEnabled(); - if (value && !isEnabled) { - Fullscreen.enable($element[0]); - $element.addClass('isInFullScreen'); - } else if (!value && isEnabled) { - Fullscreen.cancel(); - $element.removeClass('isInFullScreen'); - } - }); - - // Listen on the `FBFullscreen.change` - // the event will fire when anything changes the fullscreen mode - var removeFullscreenHandler = Fullscreen.$on('FBFullscreen.change', function(evt, isFullscreenEnabled){ - if(!isFullscreenEnabled){ - $scope.$evalAsync(function(){ - $scope.$eval($attrs.fullscreen + '= false'); - $element.removeClass('isInFullScreen'); - }); - } - }); - - $scope.$on('$destroy', function() { - removeFullscreenHandler(); - }); - - } else { - if ($attrs.onlyWatchedProperty !== undefined) { - return; - } - - $element.on('click', function (ev) { - Fullscreen.enable( $element[0] ); - }); - } - } - }; - }]); - return module; - }; - - if (typeof define === "function" && define.amd) { - define("FBAngular", ['angular'], function (angular) { return createModule(angular); } ); - } else { - createModule(window.angular); - } -})(window); diff --git a/www/lib/ionic/js/angular/angular-idle.js b/www/lib/ionic/js/angular/angular-idle.js deleted file mode 100644 index 203b153d3..000000000 --- a/www/lib/ionic/js/angular/angular-idle.js +++ /dev/null @@ -1,534 +0,0 @@ -/*** Directives and services for responding to idle users in AngularJS -* @author Mike Grabski <me@mikegrabski.com> -* @version v1.3.2 -* @link https://github.com/HackedByChinese/ng-idle.git -* @license MIT -*/ -(function(window, angular, undefined) { -'use strict'; -angular.module('ngIdle', ['ngIdle.keepalive', 'ngIdle.idle', 'ngIdle.countdown', 'ngIdle.title', 'ngIdle.localStorage']); -angular.module('ngIdle.keepalive', []) - .provider('Keepalive', function() { - var options = { - http: null, - interval: 10 * 60 - }; - - this.http = function(value) { - if (!value) throw new Error('Argument must be a string containing a URL, or an object containing the HTTP request configuration.'); - if (angular.isString(value)) { - value = { - url: value, - method: 'GET' - }; - } - - value.cache = false; - - options.http = value; - }; - - var setInterval = this.interval = function(seconds) { - seconds = parseInt(seconds); - - if (isNaN(seconds) || seconds <= 0) throw new Error('Interval must be expressed in seconds and be greater than 0.'); - options.interval = seconds; - }; - - this.$get = ['$rootScope', '$log', '$interval', '$http', - function($rootScope, $log, $interval, $http) { - - var state = { - ping: null - }; - - function handleResponse(response) { - $rootScope.$broadcast('KeepaliveResponse', response.data, response.status); - } - - function ping() { - $rootScope.$broadcast('Keepalive'); - - if (angular.isObject(options.http)) { - $http(options.http) - .then(handleResponse) - .catch(handleResponse); - } - } - - return { - _options: function() { - return options; - }, - setInterval: setInterval, - start: function() { - $interval.cancel(state.ping); - - state.ping = $interval(ping, options.interval * 1000); - return state.ping; - }, - stop: function() { - $interval.cancel(state.ping); - }, - ping: function() { - ping(); - } - }; - } - ]; - }); - -angular.module('ngIdle.idle', ['ngIdle.keepalive', 'ngIdle.localStorage']) - .provider('Idle', function() { - var options = { - idle: 20 * 60, // in seconds (default is 20min) - timeout: 30, // in seconds (default is 30sec) - autoResume: 'idle', // lets events automatically resume (unsets idle state/resets warning) - interrupt: 'mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll', - windowInterrupt: null, - keepalive: true - }; - - /** - * Sets the number of seconds a user can be idle before they are considered timed out. - * @param {Number|Boolean} seconds A positive number representing seconds OR 0 or false to disable this feature. - */ - var setTimeout = this.timeout = function(seconds) { - if (seconds === false) options.timeout = 0; - else if (angular.isNumber(seconds) && seconds >= 0) options.timeout = seconds; - else throw new Error('Timeout must be zero or false to disable the feature, or a positive integer (in seconds) to enable it.'); - }; - - this.interrupt = function(events) { - options.interrupt = events; - }; - - this.windowInterrupt = function(events) { - options.windowInterrupt = events; - }; - - var setIdle = this.idle = function(seconds) { - if (seconds <= 0) throw new Error('Idle must be a value in seconds, greater than 0.'); - - options.idle = seconds; - }; - - this.autoResume = function(value) { - if (value === true) options.autoResume = 'idle'; - else if (value === false) options.autoResume = 'off'; - else options.autoResume = value; - }; - - this.keepalive = function(enabled) { - options.keepalive = enabled === true; - }; - - this.$get = ['$interval', '$log', '$rootScope', '$document', 'Keepalive', 'IdleLocalStorage', '$window', - function($interval, $log, $rootScope, $document, Keepalive, LocalStorage, $window) { - var state = { - idle: null, - timeout: null, - idling: false, - running: false, - countdown: null - }; - - var id = new Date().getTime(); - - function startKeepalive() { - if (!options.keepalive) return; - - if (state.running) Keepalive.ping(); - - Keepalive.start(); - } - - function stopKeepalive() { - if (!options.keepalive) return; - - Keepalive.stop(); - } - - function toggleState() { - state.idling = !state.idling; - var name = state.idling ? 'IdleStart' : 'IdleEnd'; - - if (state.idling) { - $rootScope.$broadcast(name); - stopKeepalive(); - if (options.timeout) { - state.countdown = options.timeout; - countdown(); - state.timeout = $interval(countdown, 1000, options.timeout, false); - } - } else { - startKeepalive(); - $rootScope.$broadcast(name); - } - - $interval.cancel(state.idle); - } - - function countdown() { - - // check not called when no longer idling - // possible with multiple tabs - if(!state.idling){ - return; - } - - // countdown has expired, so signal timeout - if (state.countdown <= 0) { - timeout(); - return; - } - - // countdown hasn't reached zero, so warn and decrement - $rootScope.$broadcast('IdleWarn', state.countdown); - state.countdown--; - } - - function interrupted(anotherTab) { - $rootScope.$broadcast('IdleInterrupt', anotherTab); - } - - function timeout() { - stopKeepalive(); - $interval.cancel(state.idle); - $interval.cancel(state.timeout); - - state.idling = true; - state.running = false; - state.countdown = 0; - - $rootScope.$broadcast('IdleTimeout'); - } - - function changeOption(self, fn, value) { - var reset = self.running(); - - self.unwatch(); - fn(value); - if (reset) self.watch(); - } - - function getExpiry() { - var obj = LocalStorage.get('expiry'); - - return obj && obj.time ? new Date(obj.time) : null; - } - - function setExpiry(date) { - if (!date) LocalStorage.remove('expiry'); - else LocalStorage.set('expiry', {id: id, time: date}); - } - - var svc = { - _options: function() { - return options; - }, - _getNow: function() { - return new Date(); - }, - getIdle: function(){ - return options.idle; - }, - getTimeout: function(){ - return options.timeout; - }, - setIdle: function(seconds) { - changeOption(this, setIdle, seconds); - }, - setTimeout: function(seconds) { - changeOption(this, setTimeout, seconds); - }, - isExpired: function() { - var expiry = getExpiry(); - return expiry !== null && expiry <= this._getNow(); - }, - running: function() { - return state.running; - }, - idling: function() { - return state.idling; - }, - watch: function(noExpiryUpdate) { - $interval.cancel(state.idle); - $interval.cancel(state.timeout); - - // calculate the absolute expiry date, as added insurance against a browser sleeping or paused in the background - var timeout = !options.timeout ? 0 : options.timeout; - if (!noExpiryUpdate) setExpiry(new Date(new Date().getTime() + ((options.idle + timeout) * 1000))); - - - if (state.idling) toggleState(); // clears the idle state if currently idling - else if (!state.running) startKeepalive(); // if about to run, start keep alive - - state.running = true; - - state.idle = $interval(toggleState, options.idle * 1000, 0, false); - }, - unwatch: function() { - $interval.cancel(state.idle); - $interval.cancel(state.timeout); - - state.idling = false; - state.running = false; - setExpiry(null); - - stopKeepalive(); - }, - interrupt: function(anotherTab) { - if (!state.running) return; - - if (options.timeout && this.isExpired()) { - timeout(); - return; - } else { - interrupted(anotherTab); - } - - // note: you can no longer auto resume once we exceed the expiry; you will reset state by calling watch() manually - if (anotherTab || options.autoResume === 'idle' || (options.autoResume === 'notIdle' && !state.idling)) this.watch(anotherTab); - } - }; - - var lastMove = { - clientX: null, - clientY: null, - swap: function(event) { - var last = {clientX: this.clientX, clientY: this.clientY}; - this.clientX = event.clientX; - this.clientY = event.clientY; - return last; - }, - hasMoved: function(event) { - var last = this.swap(event); - if (this.clientX === null || event.movementX || event.movementY) return true; - else if (last.clientX != event.clientX || last.clientY != event.clientY) return true; - else return false; - } - }; - - $document.find('html').on(options.interrupt, function(event) { - if (event.type === 'mousemove' && event.originalEvent && event.originalEvent.movementX === 0 && event.originalEvent.movementY === 0) { - return; // Fix for Chrome desktop notifications, triggering mousemove event. - } - - if (event.type !== 'mousemove' || lastMove.hasMoved(event)) { - svc.interrupt(); - } - }); - - if(options.windowInterrupt) { - var eventList = options.windowInterrupt.split(' '); - var fn = function() { - svc.interrupt(); - }; - - for(var i=0; i<eventList.length; i++) { - if ($window.addEventListener) $window.addEventListener(eventList[i], fn, false); - else $window.attachEvent(eventList[i], fn) - } - } - - var wrap = function(event) { - if (event.key === 'ngIdle.expiry' && event.newValue && event.newValue !== event.oldValue) { - var val = angular.fromJson(event.newValue); - if (val.id === id) return; - svc.interrupt(true); - } - }; - - if ($window.addEventListener) $window.addEventListener('storage', wrap, false); - else if ($window.attachEvent) $window.attachEvent('onstorage', wrap); - - return svc; - } - ]; - }); - -angular.module('ngIdle.countdown', ['ngIdle.idle']) - .directive('idleCountdown', ['Idle', function(Idle) { - return { - restrict: 'A', - scope: { - value: '=idleCountdown' - }, - link: function($scope) { - // Initialize the scope's value to the configured timeout. - $scope.value = Idle.getTimeout(); - - $scope.$on('IdleWarn', function(e, countdown) { - $scope.$evalAsync(function() { - $scope.value = countdown; - }); - }); - - $scope.$on('IdleTimeout', function() { - $scope.$evalAsync(function() { - $scope.value = 0; - }); - }); - } - }; - }]); - -angular.module('ngIdle.title', []) - .provider('Title', function() { - var options = { - enabled: true - }; - - var setEnabled = this.enabled = function(enabled) { - options.enabled = enabled === true; - }; - - function padLeft(nr, n, str){ - return new Array(n-String(nr).length+1).join(str||'0')+nr; - } - - this.$get = ['$document', '$interpolate', function($document, $interpolate) { - var state = { - original: null, - idle: '{{minutes}}:{{seconds}} until your session times out!', - timedout: 'Your session has expired.' - }; - - return { - setEnabled: setEnabled, - isEnabled: function() { - return options.enabled; - }, - original: function(val) { - if (angular.isUndefined(val)) return state.original; - - state.original = val; - }, - store: function(overwrite) { - if (overwrite || !state.original) state.original = this.value(); - }, - value: function(val) { - if (angular.isUndefined(val)) return $document[0].title; - - $document[0].title = val; - }, - idleMessage: function(val) { - if (angular.isUndefined(val)) return state.idle; - - state.idle = val; - }, - timedOutMessage: function(val) { - if (angular.isUndefined(val)) return state.timedout; - - state.timedout = val; - }, - setAsIdle: function(countdown) { - this.store(); - - var remaining = { totalSeconds: countdown }; - remaining.minutes = Math.floor(countdown/60); - remaining.seconds = padLeft(countdown - remaining.minutes * 60, 2); - - this.value($interpolate(this.idleMessage())(remaining)); - }, - setAsTimedOut: function() { - this.store(); - - this.value(this.timedOutMessage()); - }, - restore: function() { - if (this.original()) this.value(this.original()); - } - }; - }]; - }) - .directive('title', ['Title', function(Title) { - return { - restrict: 'E', - link: function($scope, $element, $attr) { - if (!Title.isEnabled() || $attr.idleDisabled) return; - - Title.store(true); - - $scope.$on('IdleStart', function() { - Title.original($element[0].innerText); - }); - - $scope.$on('IdleWarn', function(e, countdown) { - Title.setAsIdle(countdown); - }); - - $scope.$on('IdleEnd', function() { - Title.restore(); - }); - - $scope.$on('IdleTimeout', function() { - Title.setAsTimedOut(); - }); - } - }; - }]); - -angular.module('ngIdle.localStorage', []) - .service('IdleStorageAccessor', ['$window', function($window) { - return { - get: function() { - return $window.localStorage; - } - } - }]) - .service('IdleLocalStorage', ['IdleStorageAccessor', function(IdleStorageAccessor) { - function AlternativeStorage() { - var storageMap = {}; - - this.setItem = function (key, value) { - storageMap[key] = value; - }; - - this.getItem = function (key) { - if(typeof storageMap[key] !== 'undefined' ) { - return storageMap[key]; - } - return null; - }; - - this.removeItem = function (key) { - storageMap[key] = undefined; - }; - } - - function getStorage() { - try { - var s = IdleStorageAccessor.get(); - s.setItem('ngIdleStorage', ''); - s.removeItem('ngIdleStorage'); - - return s; - } catch(err) { - return new AlternativeStorage(); - } - } - - // Safari, in Private Browsing Mode, looks like it supports localStorage but all calls to setItem - // throw QuotaExceededError. We're going to detect this and just silently drop any calls to setItem - // to avoid the entire page breaking, without having to do a check at each usage of Storage. - var storage = getStorage(); - - return { - set: function(key, value) { - storage.setItem('ngIdle.'+key, angular.toJson(value)); - }, - get: function(key) { - return angular.fromJson(storage.getItem('ngIdle.'+key)); - }, - remove: function(key) { - storage.removeItem('ngIdle.'+key); - }, - _wrapped: function() { - return storage; - } - }; -}]); - -})(window, window.angular); \ No newline at end of file diff --git a/www/lib/ionic/js/angular/angular-image-crop.js b/www/lib/ionic/js/angular/angular-image-crop.js deleted file mode 100644 index 960d0889d..000000000 --- a/www/lib/ionic/js/angular/angular-image-crop.js +++ /dev/null @@ -1,1344 +0,0 @@ -/** - * AngularJS Directive - Image Crop v1.1.0 - * Copyright (c) 2014 Andy Shora, andyshora@gmail.com, andyshora.com - * Licensed under the MPL License [http://www.nihilogic.dk/licenses/mpl-license.txt] - */ -(function() { - - /* - * DEPENDENCY - * Javascript BinaryFile - * Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/ - * Licensed under the MPL License [http://www.nihilogic.dk/licenses/mpl-license.txt] - */ - - var BinaryFile = function(strData, iDataOffset, iDataLength) { - var data = strData; - var dataOffset = iDataOffset || 0; - var dataLength = 0; - - this.getRawData = function() { - return data; - } - - if (typeof strData == "string") { - dataLength = iDataLength || data.length; - - this.getByteAt = function(iOffset) { - return data.charCodeAt(iOffset + dataOffset) & 0xFF; - } - - this.getBytesAt = function(iOffset, iLength) { - var aBytes = []; - - for (var i = 0; i < iLength; i++) { - aBytes[i] = data.charCodeAt((iOffset + i) + dataOffset) & 0xFF - } - ; - - return aBytes; - } - } else if (typeof strData == "unknown") { - dataLength = iDataLength || IEBinary_getLength(data); - - this.getByteAt = function(iOffset) { - return IEBinary_getByteAt(data, iOffset + dataOffset); - } - - this.getBytesAt = function(iOffset, iLength) { - return new VBArray(IEBinary_getBytesAt(data, iOffset + dataOffset, iLength)).toArray(); - } - } - - this.getLength = function() { - return dataLength; - } - - this.getSByteAt = function(iOffset) { - var iByte = this.getByteAt(iOffset); - if (iByte > 127) - return iByte - 256; - else - return iByte; - } - - this.getShortAt = function(iOffset, bBigEndian) { - var iShort = bBigEndian ? - (this.getByteAt(iOffset) << 8) + this.getByteAt(iOffset + 1) - : (this.getByteAt(iOffset + 1) << 8) + this.getByteAt(iOffset) - if (iShort < 0) - iShort += 65536; - return iShort; - } - this.getSShortAt = function(iOffset, bBigEndian) { - var iUShort = this.getShortAt(iOffset, bBigEndian); - if (iUShort > 32767) - return iUShort - 65536; - else - return iUShort; - } - this.getLongAt = function(iOffset, bBigEndian) { - var iByte1 = this.getByteAt(iOffset), - iByte2 = this.getByteAt(iOffset + 1), - iByte3 = this.getByteAt(iOffset + 2), - iByte4 = this.getByteAt(iOffset + 3); - - var iLong = bBigEndian ? - (((((iByte1 << 8) + iByte2) << 8) + iByte3) << 8) + iByte4 - : (((((iByte4 << 8) + iByte3) << 8) + iByte2) << 8) + iByte1; - if (iLong < 0) - iLong += 4294967296; - return iLong; - } - this.getSLongAt = function(iOffset, bBigEndian) { - var iULong = this.getLongAt(iOffset, bBigEndian); - if (iULong > 2147483647) - return iULong - 4294967296; - else - return iULong; - } - - this.getStringAt = function(iOffset, iLength) { - var aStr = []; - - var aBytes = this.getBytesAt(iOffset, iLength); - for (var j = 0; j < iLength; j++) { - aStr[j] = String.fromCharCode(aBytes[j]); - } - return aStr.join(""); - } - - this.getCharAt = function(iOffset) { - return String.fromCharCode(this.getByteAt(iOffset)); - } - this.toBase64 = function() { - return window.btoa(data); - } - this.fromBase64 = function(strBase64) { - data = window.atob(strBase64); - } - }; - /* - * DEPENDENCY - * Javascript EXIF Reader 0.1.6 - * Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/ - * Licensed under the MPL License [http://www.nihilogic.dk/licenses/mpl-license.txt] - */ - var EXIF = (function() { - - var debug = false; - - var ExifTags = { - - // version tags - 0x9000: "ExifVersion", // EXIF version - 0xA000: "FlashpixVersion", // Flashpix format version - - // colorspace tags - 0xA001: "ColorSpace", // Color space information tag - - // image configuration - 0xA002: "PixelXDimension", // Valid width of meaningful image - 0xA003: "PixelYDimension", // Valid height of meaningful image - 0x9101: "ComponentsConfiguration", // Information about channels - 0x9102: "CompressedBitsPerPixel", // Compressed bits per pixel - - // user information - 0x927C: "MakerNote", // Any desired information written by the manufacturer - 0x9286: "UserComment", // Comments by user - - // related file - 0xA004: "RelatedSoundFile", // Name of related sound file - - // date and time - 0x9003: "DateTimeOriginal", // Date and time when the original image was generated - 0x9004: "DateTimeDigitized", // Date and time when the image was stored digitally - 0x9290: "SubsecTime", // Fractions of seconds for DateTime - 0x9291: "SubsecTimeOriginal", // Fractions of seconds for DateTimeOriginal - 0x9292: "SubsecTimeDigitized", // Fractions of seconds for DateTimeDigitized - - // picture-taking conditions - 0x829A: "ExposureTime", // Exposure time (in seconds) - 0x829D: "FNumber", // F number - 0x8822: "ExposureProgram", // Exposure program - 0x8824: "SpectralSensitivity", // Spectral sensitivity - 0x8827: "ISOSpeedRatings", // ISO speed rating - 0x8828: "OECF", // Optoelectric conversion factor - 0x9201: "ShutterSpeedValue", // Shutter speed - 0x9202: "ApertureValue", // Lens aperture - 0x9203: "BrightnessValue", // Value of brightness - 0x9204: "ExposureBias", // Exposure bias - 0x9205: "MaxApertureValue", // Smallest F number of lens - 0x9206: "SubjectDistance", // Distance to subject in meters - 0x9207: "MeteringMode", // Metering mode - 0x9208: "LightSource", // Kind of light source - 0x9209: "Flash", // Flash status - 0x9214: "SubjectArea", // Location and area of main subject - 0x920A: "FocalLength", // Focal length of the lens in mm - 0xA20B: "FlashEnergy", // Strobe energy in BCPS - 0xA20C: "SpatialFrequencyResponse", // - 0xA20E: "FocalPlaneXResolution", // Number of pixels in width direction per FocalPlaneResolutionUnit - 0xA20F: "FocalPlaneYResolution", // Number of pixels in height direction per FocalPlaneResolutionUnit - 0xA210: "FocalPlaneResolutionUnit", // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution - 0xA214: "SubjectLocation", // Location of subject in image - 0xA215: "ExposureIndex", // Exposure index selected on camera - 0xA217: "SensingMethod", // Image sensor type - 0xA300: "FileSource", // Image source (3 == DSC) - 0xA301: "SceneType", // Scene type (1 == directly photographed) - 0xA302: "CFAPattern", // Color filter array geometric pattern - 0xA401: "CustomRendered", // Special processing - 0xA402: "ExposureMode", // Exposure mode - 0xA403: "WhiteBalance", // 1 = auto white balance, 2 = manual - 0xA404: "DigitalZoomRation", // Digital zoom ratio - 0xA405: "FocalLengthIn35mmFilm", // Equivalent foacl length assuming 35mm film camera (in mm) - 0xA406: "SceneCaptureType", // Type of scene - 0xA407: "GainControl", // Degree of overall image gain adjustment - 0xA408: "Contrast", // Direction of contrast processing applied by camera - 0xA409: "Saturation", // Direction of saturation processing applied by camera - 0xA40A: "Sharpness", // Direction of sharpness processing applied by camera - 0xA40B: "DeviceSettingDescription", // - 0xA40C: "SubjectDistanceRange", // Distance to subject - - // other tags - 0xA005: "InteroperabilityIFDPointer", - 0xA420: "ImageUniqueID" // Identifier assigned uniquely to each image - }; - - var TiffTags = { - 0x0100: "ImageWidth", - 0x0101: "ImageHeight", - 0x8769: "ExifIFDPointer", - 0x8825: "GPSInfoIFDPointer", - 0xA005: "InteroperabilityIFDPointer", - 0x0102: "BitsPerSample", - 0x0103: "Compression", - 0x0106: "PhotometricInterpretation", - 0x0112: "Orientation", - 0x0115: "SamplesPerPixel", - 0x011C: "PlanarConfiguration", - 0x0212: "YCbCrSubSampling", - 0x0213: "YCbCrPositioning", - 0x011A: "XResolution", - 0x011B: "YResolution", - 0x0128: "ResolutionUnit", - 0x0111: "StripOffsets", - 0x0116: "RowsPerStrip", - 0x0117: "StripByteCounts", - 0x0201: "JPEGInterchangeFormat", - 0x0202: "JPEGInterchangeFormatLength", - 0x012D: "TransferFunction", - 0x013E: "WhitePoint", - 0x013F: "PrimaryChromaticities", - 0x0211: "YCbCrCoefficients", - 0x0214: "ReferenceBlackWhite", - 0x0132: "DateTime", - 0x010E: "ImageDescription", - 0x010F: "Make", - 0x0110: "Model", - 0x0131: "Software", - 0x013B: "Artist", - 0x8298: "Copyright" - }; - - var GPSTags = { - 0x0000: "GPSVersionID", - 0x0001: "GPSLatitudeRef", - 0x0002: "GPSLatitude", - 0x0003: "GPSLongitudeRef", - 0x0004: "GPSLongitude", - 0x0005: "GPSAltitudeRef", - 0x0006: "GPSAltitude", - 0x0007: "GPSTimeStamp", - 0x0008: "GPSSatellites", - 0x0009: "GPSStatus", - 0x000A: "GPSMeasureMode", - 0x000B: "GPSDOP", - 0x000C: "GPSSpeedRef", - 0x000D: "GPSSpeed", - 0x000E: "GPSTrackRef", - 0x000F: "GPSTrack", - 0x0010: "GPSImgDirectionRef", - 0x0011: "GPSImgDirection", - 0x0012: "GPSMapDatum", - 0x0013: "GPSDestLatitudeRef", - 0x0014: "GPSDestLatitude", - 0x0015: "GPSDestLongitudeRef", - 0x0016: "GPSDestLongitude", - 0x0017: "GPSDestBearingRef", - 0x0018: "GPSDestBearing", - 0x0019: "GPSDestDistanceRef", - 0x001A: "GPSDestDistance", - 0x001B: "GPSProcessingMethod", - 0x001C: "GPSAreaInformation", - 0x001D: "GPSDateStamp", - 0x001E: "GPSDifferential" - }; - - var StringValues = { - ExposureProgram: { - 0: "Not defined", - 1: "Manual", - 2: "Normal program", - 3: "Aperture priority", - 4: "Shutter priority", - 5: "Creative program", - 6: "Action program", - 7: "Portrait mode", - 8: "Landscape mode" - }, - MeteringMode: { - 0: "Unknown", - 1: "Average", - 2: "CenterWeightedAverage", - 3: "Spot", - 4: "MultiSpot", - 5: "Pattern", - 6: "Partial", - 255: "Other" - }, - LightSource: { - 0: "Unknown", - 1: "Daylight", - 2: "Fluorescent", - 3: "Tungsten (incandescent light)", - 4: "Flash", - 9: "Fine weather", - 10: "Cloudy weather", - 11: "Shade", - 12: "Daylight fluorescent (D 5700 - 7100K)", - 13: "Day white fluorescent (N 4600 - 5400K)", - 14: "Cool white fluorescent (W 3900 - 4500K)", - 15: "White fluorescent (WW 3200 - 3700K)", - 17: "Standard light A", - 18: "Standard light B", - 19: "Standard light C", - 20: "D55", - 21: "D65", - 22: "D75", - 23: "D50", - 24: "ISO studio tungsten", - 255: "Other" - }, - Flash: { - 0x0000: "Flash did not fire", - 0x0001: "Flash fired", - 0x0005: "Strobe return light not detected", - 0x0007: "Strobe return light detected", - 0x0009: "Flash fired, compulsory flash mode", - 0x000D: "Flash fired, compulsory flash mode, return light not detected", - 0x000F: "Flash fired, compulsory flash mode, return light detected", - 0x0010: "Flash did not fire, compulsory flash mode", - 0x0018: "Flash did not fire, auto mode", - 0x0019: "Flash fired, auto mode", - 0x001D: "Flash fired, auto mode, return light not detected", - 0x001F: "Flash fired, auto mode, return light detected", - 0x0020: "No flash function", - 0x0041: "Flash fired, red-eye reduction mode", - 0x0045: "Flash fired, red-eye reduction mode, return light not detected", - 0x0047: "Flash fired, red-eye reduction mode, return light detected", - 0x0049: "Flash fired, compulsory flash mode, red-eye reduction mode", - 0x004D: "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected", - 0x004F: "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected", - 0x0059: "Flash fired, auto mode, red-eye reduction mode", - 0x005D: "Flash fired, auto mode, return light not detected, red-eye reduction mode", - 0x005F: "Flash fired, auto mode, return light detected, red-eye reduction mode" - }, - SensingMethod: { - 1: "Not defined", - 2: "One-chip color area sensor", - 3: "Two-chip color area sensor", - 4: "Three-chip color area sensor", - 5: "Color sequential area sensor", - 7: "Trilinear sensor", - 8: "Color sequential linear sensor" - }, - SceneCaptureType: { - 0: "Standard", - 1: "Landscape", - 2: "Portrait", - 3: "Night scene" - }, - SceneType: { - 1: "Directly photographed" - }, - CustomRendered: { - 0: "Normal process", - 1: "Custom process" - }, - WhiteBalance: { - 0: "Auto white balance", - 1: "Manual white balance" - }, - GainControl: { - 0: "None", - 1: "Low gain up", - 2: "High gain up", - 3: "Low gain down", - 4: "High gain down" - }, - Contrast: { - 0: "Normal", - 1: "Soft", - 2: "Hard" - }, - Saturation: { - 0: "Normal", - 1: "Low saturation", - 2: "High saturation" - }, - Sharpness: { - 0: "Normal", - 1: "Soft", - 2: "Hard" - }, - SubjectDistanceRange: { - 0: "Unknown", - 1: "Macro", - 2: "Close view", - 3: "Distant view" - }, - FileSource: { - 3: "DSC" - }, - Components: { - 0: "", - 1: "Y", - 2: "Cb", - 3: "Cr", - 4: "R", - 5: "G", - 6: "B" - } - }; - - function addEvent(element, event, handler) { - if (element.addEventListener) { - element.addEventListener(event, handler, false); - } else if (element.attachEvent) { - element.attachEvent("on" + event, handler); - } - } - - function imageHasData(img) { - return !!(img.exifdata); - } - - function getImageData(img, callback) { - BinaryAjax(img.src, function(http) { - var data = findEXIFinJPEG(http.binaryResponse); - img.exifdata = data || {}; - if (callback) { - callback.call(img) - } - }); - } - - function findEXIFinJPEG(file) { - if (file.getByteAt(0) != 0xFF || file.getByteAt(1) != 0xD8) { - return false; // not a valid jpeg - } - - var offset = 2, - length = file.getLength(), - marker; - - while (offset < length) { - if (file.getByteAt(offset) != 0xFF) { - if (debug) - console.log("Not a valid marker at offset " + offset + ", found: " + file.getByteAt(offset)); - return false; // not a valid marker, something is wrong - } - - marker = file.getByteAt(offset + 1); - - // we could implement handling for other markers here, - // but we're only looking for 0xFFE1 for EXIF data - - if (marker == 22400) { - if (debug) - console.log("Found 0xFFE1 marker"); - - return readEXIFData(file, offset + 4, file.getShortAt(offset + 2, true) - 2); - - // offset += 2 + file.getShortAt(offset+2, true); - - } else if (marker == 225) { - // 0xE1 = Application-specific 1 (for EXIF) - if (debug) - console.log("Found 0xFFE1 marker"); - - return readEXIFData(file, offset + 4, file.getShortAt(offset + 2, true) - 2); - - } else { - offset += 2 + file.getShortAt(offset + 2, true); - } - - } - - } - - - function readTags(file, tiffStart, dirStart, strings, bigEnd) { - var entries = file.getShortAt(dirStart, bigEnd), - tags = {}, - entryOffset, tag, - i; - - for (i = 0; i < entries; i++) { - entryOffset = dirStart + i * 12 + 2; - tag = strings[file.getShortAt(entryOffset, bigEnd)]; - if (!tag && debug) - console.log("Unknown tag: " + file.getShortAt(entryOffset, bigEnd)); - tags[tag] = readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd); - } - return tags; - } - - - function readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd) { - var type = file.getShortAt(entryOffset + 2, bigEnd), - numValues = file.getLongAt(entryOffset + 4, bigEnd), - valueOffset = file.getLongAt(entryOffset + 8, bigEnd) + tiffStart, - offset, - vals, val, n, - numerator, denominator; - - switch (type) { - case 1: // byte, 8-bit unsigned int - case 7: // undefined, 8-bit byte, value depending on field - if (numValues == 1) { - return file.getByteAt(entryOffset + 8, bigEnd); - } else { - offset = numValues > 4 ? valueOffset : (entryOffset + 8); - vals = []; - for (n = 0; n < numValues; n++) { - vals[n] = file.getByteAt(offset + n); - } - return vals; - } - - case 2: // ascii, 8-bit byte - offset = numValues > 4 ? valueOffset : (entryOffset + 8); - return file.getStringAt(offset, numValues - 1); - - case 3: // short, 16 bit int - if (numValues == 1) { - return file.getShortAt(entryOffset + 8, bigEnd); - } else { - offset = numValues > 2 ? valueOffset : (entryOffset + 8); - vals = []; - for (n = 0; n < numValues; n++) { - vals[n] = file.getShortAt(offset + 2 * n, bigEnd); - } - return vals; - } - - case 4: // long, 32 bit int - if (numValues == 1) { - return file.getLongAt(entryOffset + 8, bigEnd); - } else { - vals = []; - for (var n = 0; n < numValues; n++) { - vals[n] = file.getLongAt(valueOffset + 4 * n, bigEnd); - } - return vals; - } - - case 5: // rational = two long values, first is numerator, second is denominator - if (numValues == 1) { - numerator = file.getLongAt(valueOffset, bigEnd); - denominator = file.getLongAt(valueOffset + 4, bigEnd); - val = new Number(numerator / denominator); - val.numerator = numerator; - val.denominator = denominator; - return val; - } else { - vals = []; - for (n = 0; n < numValues; n++) { - numerator = file.getLongAt(valueOffset + 8 * n, bigEnd); - denominator = file.getLongAt(valueOffset + 4 + 8 * n, bigEnd); - vals[n] = new Number(numerator / denominator); - vals[n].numerator = numerator; - vals[n].denominator = denominator; - } - return vals; - } - - case 9: // slong, 32 bit signed int - if (numValues == 1) { - return file.getSLongAt(entryOffset + 8, bigEnd); - } else { - vals = []; - for (n = 0; n < numValues; n++) { - vals[n] = file.getSLongAt(valueOffset + 4 * n, bigEnd); - } - return vals; - } - - case 10: // signed rational, two slongs, first is numerator, second is denominator - if (numValues == 1) { - return file.getSLongAt(valueOffset, bigEnd) / file.getSLongAt(valueOffset + 4, bigEnd); - } else { - vals = []; - for (n = 0; n < numValues; n++) { - vals[n] = file.getSLongAt(valueOffset + 8 * n, bigEnd) / file.getSLongAt(valueOffset + 4 + 8 * n, bigEnd); - } - return vals; - } - } - } - - - function readEXIFData(file, start) { - if (file.getStringAt(start, 4) != "Exif") { - if (debug) - console.log("Not valid EXIF data! " + file.getStringAt(start, 4)); - return false; - } - - var bigEnd, - tags, tag, - exifData, gpsData, - tiffOffset = start + 6; - - // test for TIFF validity and endianness - if (file.getShortAt(tiffOffset) == 0x4949) { - bigEnd = false; - } else if (file.getShortAt(tiffOffset) == 0x4D4D) { - bigEnd = true; - } else { - if (debug) - console.log("Not valid TIFF data! (no 0x4949 or 0x4D4D)"); - return false; - } - - if (file.getShortAt(tiffOffset + 2, bigEnd) != 0x002A) { - if (debug) - console.log("Not valid TIFF data! (no 0x002A)"); - return false; - } - - if (file.getLongAt(tiffOffset + 4, bigEnd) != 0x00000008) { - if (debug) - console.log("Not valid TIFF data! (First offset not 8)", file.getShortAt(tiffOffset + 4, bigEnd)); - return false; - } - - tags = readTags(file, tiffOffset, tiffOffset + 8, TiffTags, bigEnd); - - if (tags.ExifIFDPointer) { - exifData = readTags(file, tiffOffset, tiffOffset + tags.ExifIFDPointer, ExifTags, bigEnd); - for (tag in exifData) { - switch (tag) { - case "LightSource" : - case "Flash" : - case "MeteringMode" : - case "ExposureProgram" : - case "SensingMethod" : - case "SceneCaptureType" : - case "SceneType" : - case "CustomRendered" : - case "WhiteBalance" : - case "GainControl" : - case "Contrast" : - case "Saturation" : - case "Sharpness" : - case "SubjectDistanceRange" : - case "FileSource" : - exifData[tag] = StringValues[tag][exifData[tag]]; - break; - - case "ExifVersion" : - case "FlashpixVersion" : - exifData[tag] = String.fromCharCode(exifData[tag][0], exifData[tag][1], exifData[tag][2], exifData[tag][3]); - break; - - case "ComponentsConfiguration" : - exifData[tag] = - StringValues.Components[exifData[tag][0]] - + StringValues.Components[exifData[tag][1]] - + StringValues.Components[exifData[tag][2]] - + StringValues.Components[exifData[tag][3]]; - break; - } - tags[tag] = exifData[tag]; - } - } - - if (tags.GPSInfoIFDPointer) { - gpsData = readTags(file, tiffOffset, tiffOffset + tags.GPSInfoIFDPointer, GPSTags, bigEnd); - for (tag in gpsData) { - switch (tag) { - case "GPSVersionID" : - gpsData[tag] = gpsData[tag][0] - + "." + gpsData[tag][1] - + "." + gpsData[tag][2] - + "." + gpsData[tag][3]; - break; - } - tags[tag] = gpsData[tag]; - } - } - - return tags; - } - - - function getData(img, callback) { - if (!img.complete) - return false; - if (!imageHasData(img)) { - getImageData(img, callback); - } else { - if (callback) { - callback.call(img); - } - } - return true; - } - - function getTag(img, tag) { - if (!imageHasData(img)) - return; - return img.exifdata[tag]; - } - - function getAllTags(img) { - if (!imageHasData(img)) - return {}; - var a, - data = img.exifdata, - tags = {}; - for (a in data) { - if (data.hasOwnProperty(a)) { - tags[a] = data[a]; - } - } - return tags; - } - - function pretty(img) { - if (!imageHasData(img)) - return ""; - var a, - data = img.exifdata, - strPretty = ""; - for (a in data) { - if (data.hasOwnProperty(a)) { - if (typeof data[a] == "object") { - if (data[a] instanceof Number) { - strPretty += a + " : " + data[a] + " [" + data[a].numerator + "/" + data[a].denominator + "]\r\n"; - } else { - strPretty += a + " : [" + data[a].length + " values]\r\n"; - } - } else { - strPretty += a + " : " + data[a] + "\r\n"; - } - } - } - return strPretty; - } - - function readFromBinaryFile(file) { - return findEXIFinJPEG(file); - } - - - return { - readFromBinaryFile: readFromBinaryFile, - pretty: pretty, - getTag: getTag, - getAllTags: getAllTags, - getData: getData, - Tags: ExifTags, - TiffTags: TiffTags, - GPSTags: GPSTags, - StringValues: StringValues - }; - - })(); - - angular.module('ImageCropper',[]) - .directive('imageCrop', function() { - - return { - template: '<div id="image-crop-{{ rand }}" class="ng-image-crop ng-image-crop--{{ shape }}" ng-style="moduleStyles"><section ng-style="sectionStyles" ng-show="step==1"></section><section ng-style="sectionStyles" ng-show="step==2"><canvas class="cropping-canvas" width="{{ canvasWidth }}" height="{{ canvasHeight }}" ng-mousemove="onCanvasMouseMove($event)" ng-mousedown="onCanvasMouseDown($event)"></canvas><div ng-style="croppingGuideStyles" class="cropping-guide"></div><div class="zoom-handle" ng-mousemove="onHandleMouseMove($event)" ng-mousedown="onHandleMouseDown($event)" ng-mouseup="onHandleMouseUp($event)"><span>← zoom →</span></div></section><section ng-style="sectionStyles" class="image-crop-section-final" ng-show="step==3"><img class="image-crop-final" ng-src="{{ croppedDataUri }}" /></section></div>', - replace: true, - restrict: 'AE', - scope: { - crop: '=', - width: '@', - height: '@', - shape: '@', - src: '=', - resultBlob: '=', - result: '=', - step: '=', - padding: '@', - maxSize: '@' - }, - link: function (scope, element, attributes) { - - var padding = scope.padding ? Number(scope.padding) : 200; - - scope.rand = Math.round(Math.random() * 99999); - scope.step = scope.step || 1; - scope.shape = scope.shape || 'circle'; - scope.width = parseInt(scope.width, 10) || 300; - scope.height = parseInt(scope.height, 10) || 300; - - scope.canvasWidth = scope.width + padding; - scope.canvasHeight = scope.height + padding; - - var $elm = element[0]; - - var $canvas = $elm.getElementsByClassName('cropping-canvas')[0]; - var $handle = $elm.getElementsByClassName('zoom-handle')[0]; - var $finalImg = $elm.getElementsByClassName('image-crop-final')[0]; - var $img = new Image(); - var fileReader = new FileReader(); - - var maxLeft = 0, minLeft = 0, maxTop = 0, minTop = 0, imgLoaded = false, imgWidth = 0, imgHeight = 0; - var currentX = 0, currentY = 0, dragging = false, startX = 0, startY = 0, zooming = false; - var newWidth = imgWidth, newHeight = imgHeight; - var targetX = 0, targetY = 0; - var zoom = 1; - var maxZoomGestureLength = 0; - var maxZoomedInLevel = 0, maxZoomedOutLevel = 2; - var minXPos = 0, maxXPos = (padding/2), minYPos = 0, maxYPos = (padding/2); // for dragging bounds - var maxSize = scope.maxSize ? Number(scope.maxSize) : null; //max size of the image in px - - var zoomWeight = .6; - var ctx = $canvas.getContext('2d'); - var exif = null; - var files = []; - - // ---------- INLINE STYLES ----------- // - scope.moduleStyles = { - width: (scope.width + padding) + 'px', - height: (scope.height + padding) + 'px' - }; - - scope.sectionStyles = { - width: (scope.width + padding) + 'px', - height: (scope.height + padding) + 'px' - }; - - scope.croppingGuideStyles = { - width: scope.width + 'px', - height: scope.height + 'px', - top: (padding/2)+'px', - left: (padding/2)+'px' - }; - - function handleSize(base64ImageSrc) { - - return new Promise(function(resolve, reject) { - - if(!maxSize) { - return resolve(base64ImageSrc); - } - - var img = new Image(); - img.src = base64ImageSrc; - - img.onload = function() { - - var height = img.height; - var width = img.width; - - //if the size is already ok, just return the image - if(height <= maxSize && width <= maxSize) { - return resolve(base64ImageSrc); - } - - var ratio = width/height; - - if(ratio > 1) { - width = maxSize; - height = maxSize/ratio; - } - else { - width = maxSize*ratio; - height = maxSize; - } - - width = Math.round(width); - height = Math.round(height); - - var canvas = document.createElement("canvas"); - canvas.width = width; - canvas.height = height; - - var context = canvas.getContext("2d"); - - context.drawImage(img, 0, 0, img.width, img.height, // source - 0, 0, canvas.width, canvas.height); // destination - - context.save(); - - var dataUrl = canvas.toDataURL(); - - resolve(dataUrl); - - }; - - }); - - } - - function handleEXIF(base64ImageSrc, exif) { - - return new Promise(function(resolve, reject) { - - var img = new Image(); - img.src = base64ImageSrc; - - img.onload = function() { - - var canvas = document.createElement("canvas"); - - if(exif.Orientation >= 5) { - canvas.width = img.height; - canvas.height = img.width; - } else { - canvas.width = img.width; - canvas.height = img.height; - } - - var context = canvas.getContext("2d"); - - // change mobile orientation, if required - switch(exif.Orientation){ - case 1: - // nothing - break; - case 2: - // horizontal flip - context.translate(img.width, 0); - context.scale(-1, 1); - break; - case 3: - // 180 rotate left - context.translate(img.width, img.height); - context.rotate(Math.PI); - break; - case 4: - // vertical flip - context.translate(0, img.height); - context.scale(1, -1); - break; - case 5: - // vertical flip + 90 rotate right - context.rotate(0.5 * Math.PI); - context.scale(1, -1); - break; - case 6: - // 90 rotate right - context.rotate(0.5 * Math.PI); - context.translate(0, -img.height); - break; - case 7: - // horizontal flip + 90 rotate right - context.rotate(0.5 * Math.PI); - context.translate(img.width, -img.height); - context.scale(-1, 1); - break; - case 8: - // 90 rotate left - context.rotate(-0.5 * Math.PI); - context.translate(-img.width, 0); - break; - default: - break; - } - - context.drawImage(img, 0, 0); - context.save(); - - var dataUrl = canvas.toDataURL(); - - resolve(dataUrl); - - }; - - }); - - } - - function loadImage(base64ImageSrc) { - - //get the EXIF information from the image - var byteString = atob(base64ImageSrc.split(',')[1]); - var binary = new BinaryFile(byteString, 0, byteString.length); - exif = EXIF.readFromBinaryFile(binary); - - //handle image size - handleSize(base64ImageSrc).then(function(base64ImageSrc) { - - //if the image has EXIF orientation.. - if (exif && exif.Orientation && exif.Orientation > 1) { - return handleEXIF(base64ImageSrc, exif); - } - //otherwise, just return the image without any treatment - else { - return base64ImageSrc; - } - - }).then(function(base64ImageSrc) { - - $img.src = base64ImageSrc; - - }).catch(function(error) { - console.log(error); - }); - - }; - - // ---------- EVENT HANDLERS ---------- // - fileReader.onload = function(e) { - - loadImage(this.resultBlob); - - }; - - $img.onload = function() { - - scope.step = 2; - scope.$apply(); - - ctx.drawImage($img, 0, 0); - - imgWidth = $img.width; - imgHeight = $img.height; - - minLeft = (scope.width + padding) - this.width; - minTop = (scope.height + padding) - this.height; - newWidth = imgWidth; - newHeight = imgHeight; - - if(imgWidth >= imgHeight) { - maxZoomedInLevel = ($canvas.height - padding) / imgHeight; - } else { - maxZoomedInLevel = ($canvas.width - padding) / imgWidth; - } - - maxZoomGestureLength = to2Dp(Math.sqrt(Math.pow($canvas.width, 2) + Math.pow($canvas.height, 2))); - - updateDragBounds(); - - var initialX = Math.round((minXPos + maxXPos)/2); - var initialY = Math.round((minYPos + maxYPos)/2); - - moveImage(initialX, initialY); - - }; - - function reset() { - files = []; - zoom = 1; - currentX = 0; - currentY = 0; - dragging = false; - startX = 0; - startY = 0; - zooming = false; - ctx.clearRect(0, 0, $canvas.width, $canvas.height); - $img.src = ''; - } - - // ---------- PRIVATE FUNCTIONS ---------- // - function moveImage(x, y) { - - x = x < minXPos ? minXPos : x; - x = x > maxXPos ? maxXPos : x; - y = y < minYPos ? minYPos : y; - y = y > maxYPos ? maxYPos : y; - - targetX = x; - targetY = y; - - ctx.clearRect(0, 0, $canvas.width, $canvas.height); - ctx.drawImage($img, x, y, newWidth, newHeight); - - return x == minXPos || x == maxXPos || y == minYPos || y == maxYPos; - } - - function to2Dp(val) { - return Math.round(val * 1000) / 1000; - } - - function updateDragBounds() { - // $img.width, $canvas.width, zoom - - minXPos = $canvas.width - ($img.width * zoom) - (padding/2); - minYPos = $canvas.height - ($img.height * zoom) - (padding/2); - - } - - function zoomImage(val) { - - if (!val) { - return; - } - - var proposedZoomLevel = to2Dp(zoom + val); - - if ((proposedZoomLevel < maxZoomedInLevel) || (proposedZoomLevel > maxZoomedOutLevel)) { - // image wont fill whole canvas - // or image is too far zoomed in, it's gonna get pretty pixelated! - return; - } - - zoom = proposedZoomLevel; - // console.log('zoom', zoom); - - updateDragBounds(); - - newWidth = $img.width * zoom; - newHeight = $img.height * zoom; - - var newXPos = currentX * zoom; - var newYPos = currentY * zoom; - - // check if we've exposed the gutter - if (newXPos < minXPos) { - newXPos = minXPos; - } else if (newXPos > maxXPos) { - newXPos = maxXPos; - } - - if (newYPos < minYPos) { - newYPos = minYPos; - } else if (newYPos > maxYPos) { - newYPos = maxYPos; - } - - // check if image is still going to fit the bounds of the box - ctx.clearRect(0, 0, $canvas.width, $canvas.height); - ctx.drawImage($img, newXPos, newYPos, newWidth, newHeight); - } - - function calcZoomLevel(diffX, diffY) { - - var hyp = Math.sqrt( Math.pow(diffX, 2) + Math.pow(diffY, 2) ); - var zoomGestureRatio = to2Dp(hyp / maxZoomGestureLength); - var newZoomDiff = to2Dp((maxZoomedOutLevel - maxZoomedInLevel) * zoomGestureRatio * zoomWeight); - return diffX > 0 ? -newZoomDiff : newZoomDiff; - - } - - function dataURItoBlob(dataURI) { - var byteString, - mimestring; - - if(dataURI.split(',')[0].indexOf('base64') !== -1 ) { - byteString = atob(dataURI.split(',')[1]); - } else { - byteString = decodeURI(dataURI.split(',')[1]); - } - - mimestring = dataURI.split(',')[0].split(':')[1].split(';')[0]; - - var content = new Array(); - for (var i = 0; i < byteString.length; i++) { - content[i] = byteString.charCodeAt(i); - } - - return new Blob([new Uint8Array(content)], {type: mimestring}); - } - - // ---------- SCOPE FUNCTIONS ---------- // - - scope.$watch('src', function(){ - if(scope.src) { - if(scope.step != 3) { - if(typeof(scope.src) == 'Blob') { - fileReader.readAsDataURL(scope.src); - } else { - loadImage(scope.src); - } - } - } else { - scope.step = 1; - reset(); - } - }); - - scope.$watch('crop',function(){ - if(scope.crop) { - scope.doCrop(); - scope.crop = false; - } - }); - - $finalImg.onload = function() { - var tempCanvas = document.createElement('canvas'); - tempCanvas.width = this.width - padding; - tempCanvas.height = this.height - padding; - tempCanvas.style.display = 'none'; - - var tempCanvasContext = tempCanvas.getContext('2d'); - tempCanvasContext.drawImage($finalImg, -(padding/2), -(padding/2)); - - $elm.getElementsByClassName('image-crop-section-final')[0].appendChild(tempCanvas); - - var dataUrl = tempCanvas.toDataURL(); - - scope.result = dataUrl; - scope.resultBlob = dataURItoBlob(dataUrl); - - scope.$apply(); - }; - - scope.doCrop = function() { - scope.croppedDataUri = $canvas.toDataURL(); - scope.step = 3; - }; - - scope.onCanvasMouseUp = function(e) { - - if (!dragging) { - return; - } - - e.preventDefault(); - e.stopPropagation(); // if event was on canvas, stop it propagating up - - startX = 0; - startY = 0; - dragging = false; - currentX = targetX; - currentY = targetY; - - removeBodyEventListener('mouseup', scope.onCanvasMouseUp); - removeBodyEventListener('touchend', scope.onCanvasMouseUp); - removeBodyEventListener('mousemove', scope.onCanvasMouseMove); - removeBodyEventListener('touchmove', scope.onCanvasMouseMove); - }; - - $canvas.addEventListener('touchend', scope.onCanvasMouseUp, false); - - scope.onCanvasMouseDown = function(e) { - startX = e.type === 'touchstart' ? e.changedTouches[0].clientX : e.clientX; - startY = e.type === 'touchstart' ? e.changedTouches[0].clientY : e.clientY; - zooming = false; - dragging = true; - - addBodyEventListener('mouseup', scope.onCanvasMouseUp); - addBodyEventListener('mousemove', scope.onCanvasMouseMove); - }; - - $canvas.addEventListener('touchstart', scope.onCanvasMouseDown, false); - - function addBodyEventListener(eventName, func) { - document.documentElement.addEventListener(eventName, func, false); - } - - function removeBodyEventListener(eventName, func) { - document.documentElement.removeEventListener(eventName, func); - } - - scope.onHandleMouseDown = function(e) { - - e.preventDefault(); - e.stopPropagation(); // if event was on handle, stop it propagating up - - startX = lastHandleX = (e.type === 'touchstart') ? e.changedTouches[0].clientX : e.clientX; - startY = lastHandleY = (e.type === 'touchstart') ? e.changedTouches[0].clientY : e.clientY; - dragging = false; - zooming = true; - - addBodyEventListener('mouseup', scope.onHandleMouseUp); - addBodyEventListener('touchend', scope.onHandleMouseUp); - addBodyEventListener('mousemove', scope.onHandleMouseMove); - addBodyEventListener('touchmove', scope.onHandleMouseMove); - - }; - - $handle.addEventListener('touchstart', scope.onHandleMouseDown, false); - - scope.onHandleMouseUp = function(e) { - - // this is applied on the whole section so check we're zooming - if (!zooming) { - return; - } - - e.preventDefault(); - e.stopPropagation(); // if event was on canvas, stop it propagating up - - startX = 0; - startY = 0; - zooming = false; - currentX = targetX; - currentY = targetY; - - removeBodyEventListener('mouseup', scope.onHandleMouseUp); - removeBodyEventListener('touchend', scope.onHandleMouseUp); - removeBodyEventListener('mousemove', scope.onHandleMouseMove); - removeBodyEventListener('touchmove', scope.onHandleMouseMove); - }; - - $handle.addEventListener('touchend', scope.onHandleMouseUp, false); - - scope.onCanvasMouseMove = function(e) { - - e.preventDefault(); - e.stopPropagation(); - - if (!dragging) { - return; - } - - var diffX = startX - ((e.type === 'touchmove') ? e.changedTouches[0].clientX : e.clientX); // how far mouse has moved in current drag - var diffY = startY - ((e.type === 'touchmove') ? e.changedTouches[0].clientY : e.clientY); // how far mouse has moved in current drag - /*targetX = currentX - diffX; // desired new X position - targetY = currentY - diffY; // desired new X position*/ - - moveImage(currentX - diffX, currentY - diffY); - - }; - - $canvas.addEventListener('touchmove', scope.onCanvasMouseMove, false); - - var lastHandleX = null, lastHandleY = null; - - scope.onHandleMouseMove = function(e) { - - e.stopPropagation(); - e.preventDefault(); - - // this is applied on the whole section so check we're zooming - if (!zooming) { - return false; - } - - var diffX = lastHandleX - ((e.type === 'touchmove') ? e.changedTouches[0].clientX : e.clientX); // how far mouse has moved in current drag - var diffY = lastHandleY - ((e.type === 'touchmove') ? e.changedTouches[0].clientY : e.clientY); // how far mouse has moved in current drag - - lastHandleX = (e.type === 'touchmove') ? e.changedTouches[0].clientX : e.clientX; - lastHandleY = (e.type === 'touchmove') ? e.changedTouches[0].clientY : e.clientY; - - var zoomVal = calcZoomLevel(diffX, diffY); - zoomImage(zoomVal); - - }; - - $handle.addEventListener('touchmove', scope.onHandleMouseMove, false); - - scope.onHandleMouseWheel = function(e){ - e.preventDefault(); - - zoomImage(e.deltaY > 0 ? -0.05 : 0.05); - }; - - $canvas.addEventListener('mousewheel', scope.onHandleMouseWheel); - $handle.addEventListener('mousewheel', scope.onHandleMouseWheel); - - } - }; - }); - - -})(); \ No newline at end of file diff --git a/www/lib/ionic/js/angular/angular-sanitize.js b/www/lib/ionic/js/angular/angular-sanitize.js deleted file mode 100644 index f4e25237b..000000000 --- a/www/lib/ionic/js/angular/angular-sanitize.js +++ /dev/null @@ -1,717 +0,0 @@ -/** - * @license AngularJS v1.5.3 - * (c) 2010-2016 Google, Inc. http://angularjs.org - * License: MIT - */ -(function(window, angular, undefined) {'use strict'; - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Any commits to this file should be reviewed with security in mind. * - * Changes to this file can potentially create security vulnerabilities. * - * An approval from 2 Core members with history of modifying * - * this file is required. * - * * - * Does the change somehow allow for arbitrary javascript to be executed? * - * Or allows for someone to change the prototype of built-in objects? * - * Or gives undesired access to variables likes document or window? * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -var $sanitizeMinErr = angular.$$minErr('$sanitize'); - -/** - * @ngdoc module - * @name ngSanitize - * @description - * - * # ngSanitize - * - * The `ngSanitize` module provides functionality to sanitize HTML. - * - * - * <div doc-module-components="ngSanitize"></div> - * - * See {@link ngSanitize.$sanitize `$sanitize`} for usage. - */ - -/** - * @ngdoc service - * @name $sanitize - * @kind function - * - * @description - * Sanitizes an html string by stripping all potentially dangerous tokens. - * - * The input is sanitized by parsing the HTML into tokens. All safe tokens (from a whitelist) are - * then serialized back to properly escaped html string. This means that no unsafe input can make - * it into the returned string. - * - * The whitelist for URL sanitization of attribute values is configured using the functions - * `aHrefSanitizationWhitelist` and `imgSrcSanitizationWhitelist` of {@link ng.$compileProvider - * `$compileProvider`}. - * - * The input may also contain SVG markup if this is enabled via {@link $sanitizeProvider}. - * - * @param {string} html HTML input. - * @returns {string} Sanitized HTML. - * - * @example - <example module="sanitizeExample" deps="angular-sanitize.js"> - <file name="index.html"> - <script> - angular.module('sanitizeExample', ['ngSanitize']) - .controller('ExampleController', ['$scope', '$sce', function($scope, $sce) { - $scope.snippet = - '<p style="color:blue">an html\n' + - '<em onmouseover="this.textContent=\'PWN3D!\'">click here</em>\n' + - 'snippet</p>'; - $scope.deliberatelyTrustDangerousSnippet = function() { - return $sce.trustAsHtml($scope.snippet); - }; - }]); - </script> - <div ng-controller="ExampleController"> - Snippet: <textarea ng-model="snippet" cols="60" rows="3"></textarea> - <table> - <tr> - <td>Directive</td> - <td>How</td> - <td>Source</td> - <td>Rendered</td> - </tr> - <tr id="bind-html-with-sanitize"> - <td>ng-bind-html</td> - <td>Automatically uses $sanitize</td> - <td><pre><div ng-bind-html="snippet"><br/></div></pre></td> - <td><div ng-bind-html="snippet"></div></td> - </tr> - <tr id="bind-html-with-trust"> - <td>ng-bind-html</td> - <td>Bypass $sanitize by explicitly trusting the dangerous value</td> - <td> - <pre><div ng-bind-html="deliberatelyTrustDangerousSnippet()"> -</div></pre> - </td> - <td><div ng-bind-html="deliberatelyTrustDangerousSnippet()"></div></td> - </tr> - <tr id="bind-default"> - <td>ng-bind</td> - <td>Automatically escapes</td> - <td><pre><div ng-bind="snippet"><br/></div></pre></td> - <td><div ng-bind="snippet"></div></td> - </tr> - </table> - </div> - </file> - <file name="protractor.js" type="protractor"> - it('should sanitize the html snippet by default', function() { - expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). - toBe('<p>an html\n<em>click here</em>\nsnippet</p>'); - }); - - it('should inline raw snippet if bound to a trusted value', function() { - expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()). - toBe("<p style=\"color:blue\">an html\n" + - "<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" + - "snippet</p>"); - }); - - it('should escape snippet without any filter', function() { - expect(element(by.css('#bind-default div')).getInnerHtml()). - toBe("<p style=\"color:blue\">an html\n" + - "<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" + - "snippet</p>"); - }); - - it('should update', function() { - element(by.model('snippet')).clear(); - element(by.model('snippet')).sendKeys('new <b onclick="alert(1)">text</b>'); - expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). - toBe('new <b>text</b>'); - expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()).toBe( - 'new <b onclick="alert(1)">text</b>'); - expect(element(by.css('#bind-default div')).getInnerHtml()).toBe( - "new <b onclick=\"alert(1)\">text</b>"); - }); - </file> - </example> - */ - - -/** - * @ngdoc provider - * @name $sanitizeProvider - * - * @description - * Creates and configures {@link $sanitize} instance. - */ -function $SanitizeProvider() { - var svgEnabled = false; - - this.$get = ['$$sanitizeUri', function($$sanitizeUri) { - if (svgEnabled) { - angular.extend(validElements, svgElements); - } - return function(html) { - var buf = []; - htmlParser(html, htmlSanitizeWriter(buf, function(uri, isImage) { - return !/^unsafe:/.test($$sanitizeUri(uri, isImage)); - })); - return buf.join(''); - }; - }]; - - - /** - * @ngdoc method - * @name $sanitizeProvider#enableSvg - * @kind function - * - * @description - * Enables a subset of svg to be supported by the sanitizer. - * - * <div class="alert alert-warning"> - * <p>By enabling this setting without taking other precautions, you might expose your - * application to click-hijacking attacks. In these attacks, sanitized svg elements could be positioned - * outside of the containing element and be rendered over other elements on the page (e.g. a login - * link). Such behavior can then result in phishing incidents.</p> - * - * <p>To protect against these, explicitly setup `overflow: hidden` css rule for all potential svg - * tags within the sanitized content:</p> - * - * <br> - * - * <pre><code> - * .rootOfTheIncludedContent svg { - * overflow: hidden !important; - * } - * </code></pre> - * </div> - * - * @param {boolean=} regexp New regexp to whitelist urls with. - * @returns {boolean|ng.$sanitizeProvider} Returns the currently configured value if called - * without an argument or self for chaining otherwise. - */ - this.enableSvg = function(enableSvg) { - if (angular.isDefined(enableSvg)) { - svgEnabled = enableSvg; - return this; - } else { - return svgEnabled; - } - }; -} - -function sanitizeText(chars) { - var buf = []; - var writer = htmlSanitizeWriter(buf, angular.noop); - writer.chars(chars); - return buf.join(''); -} - - -// Regular Expressions for parsing tags and attributes -var SURROGATE_PAIR_REGEXP = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, - // Match everything outside of normal chars and " (quote character) - NON_ALPHANUMERIC_REGEXP = /([^\#-~ |!])/g; - - -// Good source of info about elements and attributes -// http://dev.w3.org/html5/spec/Overview.html#semantics -// http://simon.html5.org/html-elements - -// Safe Void Elements - HTML5 -// http://dev.w3.org/html5/spec/Overview.html#void-elements -var voidElements = toMap("area,br,col,hr,img,wbr"); - -// Elements that you can, intentionally, leave open (and which close themselves) -// http://dev.w3.org/html5/spec/Overview.html#optional-tags -var optionalEndTagBlockElements = toMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), - optionalEndTagInlineElements = toMap("rp,rt"), - optionalEndTagElements = angular.extend({}, - optionalEndTagInlineElements, - optionalEndTagBlockElements); - -// Safe Block Elements - HTML5 -var blockElements = angular.extend({}, optionalEndTagBlockElements, toMap("address,article," + - "aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5," + - "h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")); - -// Inline Elements - HTML5 -var inlineElements = angular.extend({}, optionalEndTagInlineElements, toMap("a,abbr,acronym,b," + - "bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s," + - "samp,small,span,strike,strong,sub,sup,time,tt,u,var")); - -// SVG Elements -// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Elements -// Note: the elements animate,animateColor,animateMotion,animateTransform,set are intentionally omitted. -// They can potentially allow for arbitrary javascript to be executed. See #11290 -var svgElements = toMap("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph," + - "hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline," + - "radialGradient,rect,stop,svg,switch,text,title,tspan"); - -// Blocked Elements (will be stripped) -var blockedElements = toMap("script,style"); - -var validElements = angular.extend({}, - voidElements, - blockElements, - inlineElements, - optionalEndTagElements); - -//Attributes that have href and hence need to be sanitized -var uriAttrs = toMap("background,cite,href,longdesc,src,xlink:href"); - -var htmlAttrs = toMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' + - 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' + - 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' + - 'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' + - 'valign,value,vspace,width'); - -// SVG attributes (without "id" and "name" attributes) -// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Attributes -var svgAttrs = toMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,' + - 'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,' + - 'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,' + - 'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,' + - 'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,' + - 'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,' + - 'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,' + - 'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,' + - 'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,' + - 'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,' + - 'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,' + - 'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,' + - 'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,' + - 'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,' + - 'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan', true); - -var validAttrs = angular.extend({}, - uriAttrs, - svgAttrs, - htmlAttrs); - -function toMap(str, lowercaseKeys) { - var obj = {}, items = str.split(','), i; - for (i = 0; i < items.length; i++) { - obj[lowercaseKeys ? angular.lowercase(items[i]) : items[i]] = true; - } - return obj; -} - -var inertBodyElement; -(function(window) { - var doc; - if (window.document && window.document.implementation) { - doc = window.document.implementation.createHTMLDocument("inert"); - } else { - throw $sanitizeMinErr('noinert', "Can't create an inert html document"); - } - var docElement = doc.documentElement || doc.getDocumentElement(); - var bodyElements = docElement.getElementsByTagName('body'); - - // usually there should be only one body element in the document, but IE doesn't have any, so we need to create one - if (bodyElements.length === 1) { - inertBodyElement = bodyElements[0]; - } else { - var html = doc.createElement('html'); - inertBodyElement = doc.createElement('body'); - html.appendChild(inertBodyElement); - doc.appendChild(html); - } -})(window); - -/** - * @example - * htmlParser(htmlString, { - * start: function(tag, attrs) {}, - * end: function(tag) {}, - * chars: function(text) {}, - * comment: function(text) {} - * }); - * - * @param {string} html string - * @param {object} handler - */ -function htmlParser(html, handler) { - if (html === null || html === undefined) { - html = ''; - } else if (typeof html !== 'string') { - html = '' + html; - } - inertBodyElement.innerHTML = html; - - //mXSS protection - var mXSSAttempts = 5; - do { - if (mXSSAttempts === 0) { - throw $sanitizeMinErr('uinput', "Failed to sanitize html because the input is unstable"); - } - mXSSAttempts--; - - // strip custom-namespaced attributes on IE<=11 - if (document.documentMode <= 11) { - stripCustomNsAttrs(inertBodyElement); - } - html = inertBodyElement.innerHTML; //trigger mXSS - inertBodyElement.innerHTML = html; - } while (html !== inertBodyElement.innerHTML); - - var node = inertBodyElement.firstChild; - while (node) { - switch (node.nodeType) { - case 1: // ELEMENT_NODE - handler.start(node.nodeName.toLowerCase(), attrToMap(node.attributes)); - break; - case 3: // TEXT NODE - handler.chars(node.textContent); - break; - } - - var nextNode; - if (!(nextNode = node.firstChild)) { - if (node.nodeType == 1) { - handler.end(node.nodeName.toLowerCase()); - } - nextNode = node.nextSibling; - if (!nextNode) { - while (nextNode == null) { - node = node.parentNode; - if (node === inertBodyElement) break; - nextNode = node.nextSibling; - if (node.nodeType == 1) { - handler.end(node.nodeName.toLowerCase()); - } - } - } - } - node = nextNode; - } - - while (node = inertBodyElement.firstChild) { - inertBodyElement.removeChild(node); - } -} - -function attrToMap(attrs) { - var map = {}; - for (var i = 0, ii = attrs.length; i < ii; i++) { - var attr = attrs[i]; - map[attr.name] = attr.value; - } - return map; -} - - -/** - * Escapes all potentially dangerous characters, so that the - * resulting string can be safely inserted into attribute or - * element text. - * @param value - * @returns {string} escaped text - */ -function encodeEntities(value) { - return value. - replace(/&/g, '&'). - replace(SURROGATE_PAIR_REGEXP, function(value) { - var hi = value.charCodeAt(0); - var low = value.charCodeAt(1); - return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';'; - }). - replace(NON_ALPHANUMERIC_REGEXP, function(value) { - return '&#' + value.charCodeAt(0) + ';'; - }). - replace(/</g, '<'). - replace(/>/g, '>'); -} - -/** - * create an HTML/XML writer which writes to buffer - * @param {Array} buf use buf.join('') to get out sanitized html string - * @returns {object} in the form of { - * start: function(tag, attrs) {}, - * end: function(tag) {}, - * chars: function(text) {}, - * comment: function(text) {} - * } - */ -function htmlSanitizeWriter(buf, uriValidator) { - var ignoreCurrentElement = false; - var out = angular.bind(buf, buf.push); - return { - start: function(tag, attrs) { - tag = angular.lowercase(tag); - if (!ignoreCurrentElement && blockedElements[tag]) { - ignoreCurrentElement = tag; - } - if (!ignoreCurrentElement && validElements[tag] === true) { - out('<'); - out(tag); - angular.forEach(attrs, function(value, key) { - var lkey=angular.lowercase(key); - var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background'); - if (validAttrs[lkey] === true && - (uriAttrs[lkey] !== true || uriValidator(value, isImage))) { - out(' '); - out(key); - out('="'); - out(encodeEntities(value)); - out('"'); - } - }); - out('>'); - } - }, - end: function(tag) { - tag = angular.lowercase(tag); - if (!ignoreCurrentElement && validElements[tag] === true && voidElements[tag] !== true) { - out('</'); - out(tag); - out('>'); - } - if (tag == ignoreCurrentElement) { - ignoreCurrentElement = false; - } - }, - chars: function(chars) { - if (!ignoreCurrentElement) { - out(encodeEntities(chars)); - } - } - }; -} - - -/** - * When IE9-11 comes across an unknown namespaced attribute e.g. 'xlink:foo' it adds 'xmlns:ns1' attribute to declare - * ns1 namespace and prefixes the attribute with 'ns1' (e.g. 'ns1:xlink:foo'). This is undesirable since we don't want - * to allow any of these custom attributes. This method strips them all. - * - * @param node Root element to process - */ -function stripCustomNsAttrs(node) { - if (node.nodeType === Node.ELEMENT_NODE) { - var attrs = node.attributes; - for (var i = 0, l = attrs.length; i < l; i++) { - var attrNode = attrs[i]; - var attrName = attrNode.name.toLowerCase(); - if (attrName === 'xmlns:ns1' || attrName.indexOf('ns1:') === 0) { - node.removeAttributeNode(attrNode); - i--; - l--; - } - } - } - - var nextNode = node.firstChild; - if (nextNode) { - stripCustomNsAttrs(nextNode); - } - - nextNode = node.nextSibling; - if (nextNode) { - stripCustomNsAttrs(nextNode); - } -} - - - -// define ngSanitize module and register $sanitize service -angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider); - -/* global sanitizeText: false */ - -/** - * @ngdoc filter - * @name linky - * @kind function - * - * @description - * Finds links in text input and turns them into html links. Supports `http/https/ftp/mailto` and - * plain email address links. - * - * Requires the {@link ngSanitize `ngSanitize`} module to be installed. - * - * @param {string} text Input text. - * @param {string} target Window (`_blank|_self|_parent|_top`) or named frame to open links in. - * @param {object|function(url)} [attributes] Add custom attributes to the link element. - * - * Can be one of: - * - * - `object`: A map of attributes - * - `function`: Takes the url as a parameter and returns a map of attributes - * - * If the map of attributes contains a value for `target`, it overrides the value of - * the target parameter. - * - * - * @returns {string} Html-linkified and {@link $sanitize sanitized} text. - * - * @usage - <span ng-bind-html="linky_expression | linky"></span> - * - * @example - <example module="linkyExample" deps="angular-sanitize.js"> - <file name="index.html"> - <div ng-controller="ExampleController"> - Snippet: <textarea ng-model="snippet" cols="60" rows="3"></textarea> - <table> - <tr> - <th>Filter</th> - <th>Source</th> - <th>Rendered</th> - </tr> - <tr id="linky-filter"> - <td>linky filter</td> - <td> - <pre><div ng-bind-html="snippet | linky"><br></div></pre> - </td> - <td> - <div ng-bind-html="snippet | linky"></div> - </td> - </tr> - <tr id="linky-target"> - <td>linky target</td> - <td> - <pre><div ng-bind-html="snippetWithSingleURL | linky:'_blank'"><br></div></pre> - </td> - <td> - <div ng-bind-html="snippetWithSingleURL | linky:'_blank'"></div> - </td> - </tr> - <tr id="linky-custom-attributes"> - <td>linky custom attributes</td> - <td> - <pre><div ng-bind-html="snippetWithSingleURL | linky:'_self':{rel: 'nofollow'}"><br></div></pre> - </td> - <td> - <div ng-bind-html="snippetWithSingleURL | linky:'_self':{rel: 'nofollow'}"></div> - </td> - </tr> - <tr id="escaped-html"> - <td>no filter</td> - <td><pre><div ng-bind="snippet"><br></div></pre></td> - <td><div ng-bind="snippet"></div></td> - </tr> - </table> - </file> - <file name="script.js"> - angular.module('linkyExample', ['ngSanitize']) - .controller('ExampleController', ['$scope', function($scope) { - $scope.snippet = - 'Pretty text with some links:\n'+ - 'http://angularjs.org/,\n'+ - 'mailto:us@somewhere.org,\n'+ - 'another@somewhere.org,\n'+ - 'and one more: ftp://127.0.0.1/.'; - $scope.snippetWithSingleURL = 'http://angularjs.org/'; - }]); - </file> - <file name="protractor.js" type="protractor"> - it('should linkify the snippet with urls', function() { - expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). - toBe('Pretty text with some links: http://angularjs.org/, us@somewhere.org, ' + - 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); - expect(element.all(by.css('#linky-filter a')).count()).toEqual(4); - }); - - it('should not linkify snippet without the linky filter', function() { - expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()). - toBe('Pretty text with some links: http://angularjs.org/, mailto:us@somewhere.org, ' + - 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); - expect(element.all(by.css('#escaped-html a')).count()).toEqual(0); - }); - - it('should update', function() { - element(by.model('snippet')).clear(); - element(by.model('snippet')).sendKeys('new http://link.'); - expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). - toBe('new http://link.'); - expect(element.all(by.css('#linky-filter a')).count()).toEqual(1); - expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()) - .toBe('new http://link.'); - }); - - it('should work with the target property', function() { - expect(element(by.id('linky-target')). - element(by.binding("snippetWithSingleURL | linky:'_blank'")).getText()). - toBe('http://angularjs.org/'); - expect(element(by.css('#linky-target a')).getAttribute('target')).toEqual('_blank'); - }); - - it('should optionally add custom attributes', function() { - expect(element(by.id('linky-custom-attributes')). - element(by.binding("snippetWithSingleURL | linky:'_self':{rel: 'nofollow'}")).getText()). - toBe('http://angularjs.org/'); - expect(element(by.css('#linky-custom-attributes a')).getAttribute('rel')).toEqual('nofollow'); - }); - </file> - </example> - */ -angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) { - var LINKY_URL_REGEXP = - /((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i, - MAILTO_REGEXP = /^mailto:/i; - - var linkyMinErr = angular.$$minErr('linky'); - var isString = angular.isString; - - return function(text, target, attributes) { - if (text == null || text === '') return text; - if (!isString(text)) throw linkyMinErr('notstring', 'Expected string but received: {0}', text); - - var match; - var raw = text; - var html = []; - var url; - var i; - while ((match = raw.match(LINKY_URL_REGEXP))) { - // We can not end in these as they are sometimes found at the end of the sentence - url = match[0]; - // if we did not match ftp/http/www/mailto then assume mailto - if (!match[2] && !match[4]) { - url = (match[3] ? 'http://' : 'mailto:') + url; - } - i = match.index; - addText(raw.substr(0, i)); - addLink(url, match[0].replace(MAILTO_REGEXP, '')); - raw = raw.substring(i + match[0].length); - } - addText(raw); - return $sanitize(html.join('')); - - function addText(text) { - if (!text) { - return; - } - html.push(sanitizeText(text)); - } - - function addLink(url, text) { - var key; - html.push('<a '); - if (angular.isFunction(attributes)) { - attributes = attributes(url); - } - if (angular.isObject(attributes)) { - for (key in attributes) { - html.push(key + '="' + attributes[key] + '" '); - } - } else { - attributes = {}; - } - if (angular.isDefined(target) && !('target' in attributes)) { - html.push('target="', - target, - '" '); - } - html.push('href="', - url.replace(/"/g, '"'), - '">'); - addText(text); - html.push('</a>'); - } - }; -}]); - - -})(window, window.angular); diff --git a/www/lib/ionic/js/angular/angular-screenmatch.js b/www/lib/ionic/js/angular/angular-screenmatch.js deleted file mode 100644 index d63784789..000000000 --- a/www/lib/ionic/js/angular/angular-screenmatch.js +++ /dev/null @@ -1,405 +0,0 @@ -(function() { - 'use strict'; - - angular - .module('angular.screenmatch', []) - .run(polyfillInjector) - .provider('screenmatchConfig', screenmatchConfig) - .factory('screenmatch', screenmatch) - .directive('asmScreen', asmScreen); - - function screenmatchConfig() { - /* jshint validthis:true */ - this.config = { - // Configured via screenmatchConfigProvider - // - // debounce: integer (ms) - // rules: either a string eg 'bootstrap' or an obj for custom set - // extrarules: obj that extends ruleset - // nobind: bool, set to true to cancel bind on init - }; - - this.$get = function() { - return { - config: this.config - }; - }; - } - - /* @ngInject */ - function screenmatch($rootScope, $window, $interval, $timeout, screenmatchConfig) { - - var configRules = screenmatchConfig.config.rules; - var extraRules = screenmatchConfig.config.extraRules || {}; - var nobind = screenmatchConfig.config.nobind || false; - var debounce = screenmatchConfig.config.debounce || 250; - var ruleset = { - bootstrap : { - lg: '(min-width: 1200px)', - md: '(min-width: 992px) and (max-width: 1199px)', - sm: '(min-width: 768px) and (max-width: 991px)', - xs: '(max-width: 767px)' - }, - matchmedia : { - print : 'print', - screen : 'screen', - phone : '(max-width: 767px)', - tablet : '(min-width: 768px) and (max-width: 991px)', - desktop : '(min-width: 992px)', - portrait : '(orientation: portrait)', - landscape : '(orientation: landscape)' - } - }; - var rules = {}; - - var service = { - is: is, - bind: bind, - once: once, - when: when - }; - - init(); - - return service; - - ///////////////// - - //Public methods - - //Usage(is): Initializing variables which only need to be set once. - // Also used internally by other methods. - // - //Method: Checks a list of values for matchmedia truthiness. - // - //Arg: String containing a comma separated list of values to match - // - //Returns: True if any of the values is a match, else False. - // - function is(list) { - if (angular.isString(list)) { - - list = list.split(/\s*,\s*/); - - return list.some(function(size, index, arr) { - if ($window.matchMedia(rules[size]).matches) { - return true; - } - }); - } - } - - //Usage(bind): Dynamically matching the truthiness of the string passed in. - // For anything that needs to unmatch as well as match. - // Eg, DOM elements - // - //Method: Passes a list of values to is() to compare truthiness. - // If nobind is false (default), also watches for $window resize. - // On resize, evaluates if the truthiness has changed. - // - // Note : if nobind is true, there is no update on resize. - // - //Args: [1] String (passed to is()) - // [2] Scope, the scope to attach the listener to - // - //Returns: An object with the following properties: - // active : always reflects the truthiness of the match - // unbind() : deregister the watcher - function bind(list, scope) { - var prev = null; - var match = is(list); // set truthiness of match - - var bound = { - active : match, - unbind: null - }; - - if (!nobind) { - - scope = scope || $rootScope; - var watcher = scope.$on('screenmatch::resize', function () { - - prev = match; - match = is(list); - - if (prev !== match) { - bound.active = match; //update truthiness - } - }); - - bound.unbind = function () { - watcher(); //to deregister watcher - }; - } - return bound; - } - - - //Usage(once): Executing a callback that only needs to run once on a successful match. - // Eg, loading data. - // After executing callback it will deregister. - // - //Method: Passes a list of values to is() to compare truthiness. - // Fires a callback, ONCE, when a match is found. - // - // Note: if nobind is true, callback only performs a check on page load. - // - //Args: [1] String (passed to is()) - // [2] Func for callback - // [3] Scope, the scope to attach the listener to (optional) - // - //Returns: Fires the callback. No other return value. - // - function once(list, callback, scope) { - var fired = false; - var prev = null; - var match = is(list); // set truthiness of match - - if (angular.isFunction(callback)) { - - if (match) { - fired = true; - $timeout(function() { - callback(); - }); - } - - if (!nobind && !fired) { - - scope = scope || $rootScope; - var watcher = scope.$on('screenmatch::resize', function () { - - prev = match; - match = is(list); - - if (match && (prev !== match)) { - fired = true; - $timeout(function() { - callback(); - }); - } - if (fired) { - watcher(); //deregister the watcher - } - - }); - } - } - } - - //Usage(when): Executing a callback that needs to run on every successful match. - // Eg, Load something in the Dom, Start Animations. - // Optional second callback to run on every unmatch - // Eg. Stop Animations if you started them... - // - //Method: Passes a list of values to is() to compare truthiness. - // Fires a callback, when a match is made. - // Fires an optional second callback when a match is unmade. - // - // Note: if nobind is true, callback only performs a check on page load. - // - //Args: [1] String (passed to is()) - // [2] Func for true callback - // [3] Func for false callback (optional) - // [4] Scope, the scope to attach the listener to (optional) - // - //Returns: Fires the callback. No other return value. - // - function when(list, trueback, falseback, scope) { - - var prev = null; - var match = is(list); // set truthiness of match - - if (angular.isUndefined(scope) && !angular.isUndefined(falseback)) { - //if there are 3 args, check if third is scope - if (!angular.isFunction(falseback)) { - scope = falseback; - falseback = undefined; - } - } - if (angular.isFunction(trueback) && (angular.isFunction(falseback) || angular.isUndefined(falseback))) { - //fire one of the callbacks immediately - if (match) { - $timeout(function() { - trueback(); - }); - } - else { - if (falseback) { - $timeout(function() { - falseback(); - }); - } - } - - if (!nobind) { - scope = scope || $rootScope; - var watcher = scope.$on('screenmatch::resize', function () { - - prev = match; - match = is(list); - - if (prev !== match) { - if (match) { - $timeout(function() { - trueback(); - }); - } - else { - if (falseback) { - $timeout(function() { - falseback(); - }); - } - } - } - }); - - var result = { cancel : watcher }; - return result; - } - } - } - - //Private methods - - //Selects rules, default is bootstrap - //Extends rules if extra rules - function setRules() { - if (angular.isObject(configRules) && !angular.equals({}, configRules)) { - rules = configRules; - } else { - rules = ruleset[configRules] || ruleset.bootstrap; - } - - if (!angular.equals({}, extraRules) && angular.isObject(extraRules)) { - - var cleanRules = {}; - angular.forEach(extraRules, function (rule, name) { - if (angular.isString(rule)) { - cleanRules[name] = rule; - } - }); - - angular.extend(rules, cleanRules); - } - } - - //Exposes the $window resize event via broadcast - function bindResize() { - var w = angular.element($window); - var done = false; - - w.on('resize', function () { - if (!done) { //start timer - var resizeTimer = $interval(function () { - $rootScope.$broadcast('screenmatch::resize', true); - if (done) { - $interval.cancel(resizeTimer); //stop timer - done = false; //re-init timer - } - }, debounce); - } - done = true; //so timer runs once - }); - } - - function init() { - setRules(); - if (!nobind) { - bindResize(); - } - } - } - - //Usage(directive): The same as ngIf, but pass in a string to match. - // Eg, <p asm-screen='phone'> I will appear on phones </p> - - /* @ngInject */ - function asmScreen(ngIfDirective, screenmatch) { - - var ngIf = ngIfDirective[0]; - var directive = { - link: link, - terminal: ngIf.terminal, - transclude: ngIf.transclude, - priority: ngIf.priority, - restrict: ngIf.restrict - }; - - return directive; - - function link(scope, element, attrs) { - - var size = attrs.asmScreen; - - var match = screenmatch.bind(size, scope); - - attrs.ngIf = function() { - return match.active; - }; - - ngIf.link.apply(ngIf, arguments); - } - } - - - /* @ngInject */ - function polyfillInjector($window) { - - var needsPolyfill = angular.isUndefined($window.matchMedia) || !angular.isFunction($window.matchMedia('all').addListener); - - if (needsPolyfill) { - $window.matchMedia = (function () { - /*! matchMedia() polyfill - Test a CSS media type/query in JS. - * Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. - * Dual MIT/BSD license - **/ - - // For browsers that support matchMedium api such as IE 9 and webkit - var styleMedia = ($window.styleMedia || $window.media); - - // For those that don't support matchMedium - if (!styleMedia) { - var style = document.createElement('style'), - script = document.getElementsByTagName('script')[0], - info = null; - - style.type = 'text/css'; - style.id = 'matchmediajs-test'; - - script.parentNode.insertBefore(style, script); - - // 'style.currentStyle' is used by IE <= 8 - // '$window.getComputedStyle' for all other browsers - info = ('getComputedStyle' in $window) && $window.getComputedStyle(style, null) || style.currentStyle; - - styleMedia = { - matchMedium: function(media) { - var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; - - // 'style.styleSheet' is used by IE <= 8 - // 'style.textContent' for all other browsers - if (style.styleSheet) { - style.styleSheet.cssText = text; - } else { - style.textContent = text; - } - - // Test if media query is true or false - return info.width === '1px'; - } - }; - } - - return function(media) { - return { - matches: styleMedia.matchMedium(media || 'all'), - media: media || 'all' - }; - }; - - })(); - } - } -})(); diff --git a/www/lib/ionic/js/angular/angular-simple-logger.light.js b/www/lib/ionic/js/angular/angular-simple-logger.light.js deleted file mode 100644 index c1b165c8f..000000000 --- a/www/lib/ionic/js/angular/angular-simple-logger.light.js +++ /dev/null @@ -1,147 +0,0 @@ -/** - * angular-simple-logger - * - * @version: 0.1.7 - * @author: Nicholas McCready - * @date: Tue Jan 26 2016 10:15:01 GMT-0500 (EST) - * @license: MIT - */ - -(function (window, angular){ - angular.module('nemLogging', []); - -angular.module('nemLogging').provider('nemDebug', function (){ - var ourDebug = null; - - this.$get = function(){ - //avail as service - return ourDebug; - }; - - //avail at provider, config time - this.debug = ourDebug; - - return this; -}); -var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - slice = [].slice; - -angular.module('nemLogging').provider('nemSimpleLogger', [ - 'nemDebugProvider', function(nemDebugProvider) { - var LEVELS, Logger, _debugCache, _fns, _isValidLogObject, _maybeExecLevel, _wrapDebug, i, key, len, nemDebug, val; - nemDebug = nemDebugProvider.debug; - _debugCache = {}; - _fns = ['debug', 'info', 'warn', 'error', 'log']; - LEVELS = {}; - for (key = i = 0, len = _fns.length; i < len; key = ++i) { - val = _fns[key]; - LEVELS[val] = key; - } - _maybeExecLevel = function(level, current, fn) { - if (level >= current) { - return fn(); - } - }; - _isValidLogObject = function(logObject) { - var isValid, j, len1; - isValid = false; - if (!logObject) { - return isValid; - } - for (j = 0, len1 = _fns.length; j < len1; j++) { - val = _fns[j]; - isValid = (logObject[val] != null) && typeof logObject[val] === 'function'; - if (!isValid) { - break; - } - } - return isValid; - }; - - /* - Overide logeObject.debug with a nemDebug instance - see: https://github.com/visionmedia/debug/blob/master/Readme.md - */ - _wrapDebug = function(namespace, logObject) { - var debugInstance, j, len1, newLogger; - if (_debugCache[namespace] == null) { - _debugCache[namespace] = nemDebug(namespace); - } - debugInstance = _debugCache[namespace]; - newLogger = {}; - for (j = 0, len1 = _fns.length; j < len1; j++) { - val = _fns[j]; - newLogger[val] = val === 'debug' ? debugInstance : logObject[val]; - } - return newLogger; - }; - Logger = (function() { - function Logger($log1) { - var fn1, j, len1, level, logFns; - this.$log = $log1; - this.spawn = bind(this.spawn, this); - if (!this.$log) { - throw 'internalLogger undefined'; - } - if (!_isValidLogObject(this.$log)) { - throw '@$log is invalid'; - } - this.doLog = true; - logFns = {}; - fn1 = (function(_this) { - return function(level) { - logFns[level] = function() { - var args; - args = 1 <= arguments.length ? slice.call(arguments, 0) : []; - if (_this.doLog) { - return _maybeExecLevel(LEVELS[level], _this.currentLevel, function() { - var ref; - return (ref = _this.$log)[level].apply(ref, args); - }); - } - }; - return _this[level] = logFns[level]; - }; - })(this); - for (j = 0, len1 = _fns.length; j < len1; j++) { - level = _fns[j]; - fn1(level); - } - this.LEVELS = LEVELS; - this.currentLevel = LEVELS.error; - } - - Logger.prototype.spawn = function(newInternalLogger) { - if (typeof newInternalLogger === 'string') { - if (!_isValidLogObject(this.$log)) { - throw '@$log is invalid'; - } - if (!nemDebug) { - throw 'nemDebug is undefined this is probably the light version of this library sep debug logggers is not supported!'; - } - return _wrapDebug(newInternalLogger, this.$log); - } - return new Logger(newInternalLogger || this.$log); - }; - - return Logger; - - })(); - this.decorator = [ - '$log', function($delegate) { - var log; - log = new Logger($delegate); - log.currentLevel = LEVELS.debug; - return log; - } - ]; - this.$get = [ - '$log', function($log) { - return new Logger($log); - } - ]; - return this; - } -]); - -})(window, angular); \ No newline at end of file -- GitLab