diff --git a/.gitattributes b/.gitattributes index 9fb08b8..c1793c5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,3 +9,7 @@ *.mp3 filter=lfs diff=lfs merge=lfs -text *.mpeg4 filter=lfs diff=lfs merge=lfs -text *.mpeg filter=lfs diff=lfs merge=lfs -text +*.woff filter=lfs diff=lfs merge=lfs -text +*.woff2 filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.eot filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 99e6614..b68d806 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,51 @@ -assets/solid-state/ -*.swp -**.swp -*.tmp -*.directory -**.tmp -**.directory +# ---> Vim +# swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-v][a-z] +[._]sw[a-p] +# session +Session.vim +# temporary +.netrwhist +*~ +# auto-generated tag files +tags + +# ---> Windows +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# DS-Store +**.DS_Store +*.DS_Store + +# C3WOC Website files +assets/css/main.css +assets/css/main.min.css +assets/css/ie9.css +assets/css/ie9.min.css +.sass-cache/ +assets/css/main.css.map +assets/css/ie9.css.map +assets/css/main.min.css.map +assets/css/ie9.min.css.map +tmp/ + diff --git a/.travis.yml b/.travis.yml index 941ca71..412bde3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,16 @@ language: python python: 3.6 +git: + lfs_skip_smudge: true cache: directories: - $HOME/.cache/pip - - $HOME/.cache/lektor/builds -install: "pip install Lektor" +before_install: + - git lfs pull + - gem install sass +install: + - "pip install Lektor" + - make sass script: "lektor build" before_deploy: "echo 'c3woc.de ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC5NslYj+wtriBuKIxJfDRm9E2hnlstWR8durQ6pKvVvP7wjcoXIyAxe41GvJ9SoEhSjF7oVlzlw+zAkzl5WOZ4=' > ~/.ssh/known_hosts" deploy: diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4e7c29f --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +LEKTOR_SERVER_FLAGS=-h 127.0.0.1 + +all: build + +sass: + sass -t compressed ./assets/sass/main.scss ./assets/css/main.min.css + sass -t compressed ./assets/sass/ie9.scss ./assets/css/ie9.min.css + rm ./assets/css/main.min.css.map + rm ./assets/css/ie9.min.css.map + lektor clean --yes + lektor build + +sass-uncompressed: + sass ./assets/sass/main.scss ./assets/css/main.css + sass ./assets/sass/ie9.scss ./assets/css/ie9.css + rm ./assets/css/main.css.map + rm ./assets/css/ie9.css.map + lektor clean --yes + lektor build + +install: + pip install lektor --user + gem install sass + if hash apt 2>/dev/null; then sudo apt update; sudo apt install imagemagick -y; elif hash pacman 2>/dev/null; then sudo pacman -Sy imagemagick --noconfirm; elif hash dnf 2>/dev/null; then sudo dnf install -y imagemagick; else echo -e "Please install Imagemagick"; fi + + +build: sass + lektor build + +server: + lektor server $(LEKTOR_SERVER_FLAGS) + diff --git a/README.md b/README.md index 5a70204..b9b1340 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,9 @@ git pull upstream master Design: --------- -Das Design basiert auf [HTML5UP](https://html5up.net), genauer gesagt auf dem Design [Landed](https://html5up.net/landed). Und wurde natürlich für die Toolbox Webseite angepasst! +Das Design basiert auf [HTML5UP](https://html5up.net), genauer gesagt auf dem Design [Landed](https://html5up.net/landed). Es ist das selbe Theme wie die [Toolbox Bodensee e.V.](https://toolbox-bodensee.de) verwendet. +Früher wurde das Design [solid-state](https://html5up.net/solid-state) verwendet. Aber aufgrund von mangelnder mithilfe wurde beschlossen, das selbe und besser gepflegte Design der Toolbox zu verwenden. Wenn auch mit anderen Farben und Icons. -Bei den Menüfarben sollte die Farbauswahl aus dem [Toolbox Presse-Kit](https://github.com/ToolboxBodensee/presskit) berücksichtigt werden. ![#E64F2D](https://placehold.it/15/E64F2D/000000?text=+) `#E64F2D` Orange und ![#9B160F](https://placehold.it/15/9B160F/000000?text=+) `#9B160F` Rot sind hier die Primärfarben. CSS: ------ diff --git a/assets/.htaccess b/assets/.htaccess new file mode 100644 index 0000000..c9a4651 --- /dev/null +++ b/assets/.htaccess @@ -0,0 +1,45 @@ + + RewriteEngine On + + RewriteRule ^rezepte.xml https://c3woc.de/feed_rezepte.xml + RewriteRule ^feed.xml https://c3woc.de/feed_blog.xml + RewriteRule ^equipment/ https://c3woc.de/kontakt/ + + ### Redirect certain domains to ffbsee.net + RewriteCond %{HTTP_HOST} ^waffel\.cyber\.yt [NC,OR] + RewriteCond %{HTTP_HOST} ^www\.c3woc\.de [NC] + RewriteRule (.*) https://c3woc.de/$1 [R=301,L] + + +# COMPRESSION WITH MOD_DEFLATE + + AddOutputFilterByType DEFLATE image/svg+xml + AddOutputFilterByType DEFLATE text/plain + AddOutputFilterByType DEFLATE text/html + AddOutputFilterByType DEFLATE text/xml + AddOutputFilterByType DEFLATE text/css + AddOutputFilterByType DEFLATE text/javascript + AddOutputFilterByType DEFLATE application/xml + AddOutputFilterByType DEFLATE application/xhtml+xml + AddOutputFilterByType DEFLATE application/rss+xml + AddOutputFilterByType DEFLATE application/atom_xml + AddOutputFilterByType DEFLATE application/javascript + AddOutputFilterByType DEFLATE application/x-javascript + AddOutputFilterByType DEFLATE application/x-shockwave-flash + + +# CACHE-DURATIONS +# turns cache on for 1 month + + ExpiresActive On + ExpiresByType text/css "access plus 1 month" + ExpiresByType text/javascript "access plus 1 month" + ExpiresByType text/html "access plus 1 hour" + ExpiresByType application/javascript "access plus 1 month" + ExpiresByType image/gif "access plus 1 month" + ExpiresByType image/jpeg "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + ExpiresByType image/x-icon "access plus 1 month" + ExpiresByType application/x-font-woff "access plus 1 month" + diff --git a/assets/css/font-awesome.min.css b/assets/css/font-awesome.min.css index a74835e..897ff54 100644 --- a/assets/css/font-awesome.min.css +++ b/assets/css/font-awesome.min.css @@ -1 +1 @@ -.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} diff --git a/assets/css/font.css b/assets/css/font.css deleted file mode 100644 index 8e80fb0..0000000 --- a/assets/css/font.css +++ /dev/null @@ -1,36 +0,0 @@ -@font-face { - font-family: 'Raleway'; - font-style: normal; - font-weight: 200; - src: local('Raleway ExtraLight'), local('Raleway-ExtraLight'), url(/fonts/Raleway-ExtraLight.ttf) format('truetype'); -} -@font-face { - font-family: 'Raleway'; - font-style: normal; - font-weight: 700; - src: local('Raleway Bold'), local('Raleway-Bold'), url(/fonts/Raleway-Bold.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: italic; - font-weight: 300; - src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightItalic'), url(/fonts/SourceSansPro-LightItalic.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: italic; - font-weight: 600; - src: local('Source Sans Pro SemiBold Italic'), local('SourceSansPro-SemiBoldItalic'), url(/fonts/SourceSansPro-SemiBoldItalic.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 300; - src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(/fonts/SourceSansPro-Light.ttf) format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 600; - src: local('Source Sans Pro SemiBold'), local('SourceSansPro-SemiBold'), url(/fonts/SourceSansPro-SemiBold.ttf) format('truetype'); -} diff --git a/assets/css/ie8.css b/assets/css/ie8.css deleted file mode 100644 index be2b4aa..0000000 --- a/assets/css/ie8.css +++ /dev/null @@ -1,163 +0,0 @@ -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - -/* Basic */ - - body { - -ms-behavior: url("assets/js/backgroundsize.min.htc"); - } - -/* Type */ - - h1.major, h2.major, h3.major, h4.major, h5.major, h6.major { - border-bottom: solid 2px #ffffff; - } - - blockquote { - border-left: solid 4px #ffffff; - } - - code { - border: solid 2px #ffffff; - } - - hr { - border-bottom: solid 2px #ffffff; - } - -/* Button */ - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - position: relative; - -ms-behavior: url("assets/js/ie/PIE.htc"); - border: solid 2px #ffffff; - } - - input[type="submit"].special, - input[type="reset"].special, - input[type="button"].special, - button.special, - .button.special { - border: 0; - } - -/* Form */ - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - select, - textarea { - position: relative; - -ms-behavior: url("assets/js/ie/PIE.htc"); - background: transparent; - border: solid 2px #ffffff; - } - -/* Table */ - - table tbody tr { - border: solid 1px #ffffff; - border-left: 0; - border-right: 0; - } - - table.alt tbody tr td { - border: solid 1px #ffffff; - border-left-width: 0; - border-top-width: 0; - } - - table.alt tbody tr td:first-child { - border-left-width: 1px; - } - - table.alt tbody tr:first-child td { - border-top-width: 1px; - } - - table.alt thead { - border-bottom: 0; - } - - table.alt tfoot { - border-top: 0; - } - -/* Features */ - - .features article { - -ms-behavior: url("assets/js/ie/PIE.htc"); - position: relative; - width: 44%; - } - - .features article .image { - margin-top: 0; - margin-left: 0; - width: 100%; - } - -/* Menu */ - - #menu { - background: #2e3141; - } - - #menu h2 { - border-bottom: solid 2px #ffffff; - } - -/* Header */ - - #header { - background-color: #353849; - } - -/* Wrapper */ - - .wrapper { - margin: 0; - } - - .wrapper:before, .wrapper:after { - display: none; - } - - .wrapper.spotlight .image { - -ms-behavior: url("assets/js/ie/PIE.htc"); - } - - .wrapper.spotlight .image img { - position: relative; - -ms-behavior: url("assets/js/ie/PIE.htc"); - } - -/* Banner */ - - #banner .logo .icon { - border: solid 2px #ffffff; - -ms-behavior: url("assets/js/ie/PIE.htc"); - } - - #banner h2 { - border-bottom: solid 2px #ffffff; - } - -/* Footer */ - - #footer .inner .copyright { - border-top: solid 2px #ffffff; - } - - #footer .inner .copyright li { - border-left: solid 2px #ffffff; - } \ No newline at end of file diff --git a/assets/css/ie9.css b/assets/css/ie9.css deleted file mode 100644 index 214b972..0000000 --- a/assets/css/ie9.css +++ /dev/null @@ -1,89 +0,0 @@ -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - -/* Basic */ - - body { - background-color: #2e3141; - background-image: url("../../images/bg.jpg"); - background-size: cover; - background-attachment: fixed; - background-position: center; - } - - body:before { - background: rgba(46, 49, 65, 0.8); - content: ''; - display: block; - height: 100%; - left: 0; - position: fixed; - top: 0; - width: 100%; - } - - body > * { - position: relative; - z-index: 1; - } - -/* Features */ - - .features article { - display: inline-block; - width: 45%; - } - -/* Menu */ - - #menu .inner { - margin: 4em auto; - } - -/* Wrapper */ - - #wrapper > header { - background: none !important; - } - - .wrapper.spotlight .inner { - text-align: left !important; - } - - .wrapper.spotlight .image { - display: inline-block; - margin: 0 3em 2em 0 !important; - vertical-align: middle; - width: 24%; - } - - .wrapper.spotlight .content { - display: inline-block; - vertical-align: middle; - width: 70%; - } - -/* Banner */ - - #banner { - background: none !important; - } - -/* Footer */ - - #footer { - background: none !important; - } - - #footer .inner form { - display: inline-block; - width: 45%; - } - - #footer .inner .contact { - display: inline-block; - width: 45%; - } \ No newline at end of file diff --git a/assets/css/images/arrow.svg b/assets/css/images/arrow.svg new file mode 100644 index 0000000..78f3ab3 --- /dev/null +++ b/assets/css/images/arrow.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/css/images/close.svg b/assets/css/images/close.svg deleted file mode 100644 index 7c35469..0000000 --- a/assets/css/images/close.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/assets/css/images/ie/banner-overlay.png b/assets/css/images/ie/banner-overlay.png new file mode 100644 index 0000000..e5d2492 --- /dev/null +++ b/assets/css/images/ie/banner-overlay.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe8e42238c5513cbb9f6eb93710da48809854341a34f33b2d23691311c8f7bbe +size 113 diff --git a/assets/css/images/layers-2x.png b/assets/css/images/layers-2x.png new file mode 100644 index 0000000..d3cf7e5 --- /dev/null +++ b/assets/css/images/layers-2x.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf +size 1259 diff --git a/assets/css/images/layers.png b/assets/css/images/layers.png new file mode 100644 index 0000000..7b44754 --- /dev/null +++ b/assets/css/images/layers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6 +size 696 diff --git a/assets/css/images/marker-icon-2x.png b/assets/css/images/marker-icon-2x.png new file mode 100644 index 0000000..09e8445 --- /dev/null +++ b/assets/css/images/marker-icon-2x.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00179c4c1ee830d3a108412ae0d294f55776cfeb085c60129a39aa6fc4ae2528 +size 2464 diff --git a/assets/css/images/marker-icon.png b/assets/css/images/marker-icon.png new file mode 100644 index 0000000..b1789c7 --- /dev/null +++ b/assets/css/images/marker-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437 +size 1466 diff --git a/assets/css/images/marker-shadow.png b/assets/css/images/marker-shadow.png new file mode 100644 index 0000000..dc11121 --- /dev/null +++ b/assets/css/images/marker-shadow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:264f5c640339f042dd729062cfc04c17f8ea0f29882b538e3848ed8f10edb4da +size 618 diff --git a/assets/css/lightgallery.css b/assets/css/lightgallery.css new file mode 100644 index 0000000..5bea576 --- /dev/null +++ b/assets/css/lightgallery.css @@ -0,0 +1,985 @@ +/*! lightgallery - v1.6.11 - 2018-05-22 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2018 Sachin N; Licensed GPLv3 */ +@font-face { + font-family: 'lg'; + src: url("../fonts/lg.eot?n1z373"); + src: url("../fonts/lg.eot?#iefixn1z373") format("embedded-opentype"), url("../fonts/lg.woff?n1z373") format("woff"), url("../fonts/lg.ttf?n1z373") format("truetype"), url("../fonts/lg.svg?n1z373#lg") format("svg"); + font-weight: normal; + font-style: normal; +} +.lg-icon { + font-family: 'lg'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.lg-actions .lg-next, .lg-actions .lg-prev { + background-color: rgba(0, 0, 0, 0.45); + border-radius: 2px; + color: #999; + cursor: pointer; + display: block; + font-size: 22px; + margin-top: -10px; + padding: 8px 10px 9px; + position: absolute; + top: 50%; + z-index: 5080; + border: none; + outline: none; +} +.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled { + pointer-events: none; + opacity: 0.5; +} +.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover { + color: #FFF; +} +.lg-actions .lg-next { + right: 20px; +} +.lg-actions .lg-next:before { + content: "\e095"; +} +.lg-actions .lg-prev { + left: 20px; +} +.lg-actions .lg-prev:after { + content: "\e094"; +} + +@-webkit-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-moz-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-ms-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-webkit-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@-moz-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@-ms-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +.lg-outer.lg-right-end .lg-object { + -webkit-animation: lg-right-end 0.3s; + -o-animation: lg-right-end 0.3s; + animation: lg-right-end 0.3s; + position: relative; +} +.lg-outer.lg-left-end .lg-object { + -webkit-animation: lg-left-end 0.3s; + -o-animation: lg-left-end 0.3s; + animation: lg-left-end 0.3s; + position: relative; +} + +.lg-toolbar { + z-index: 5082; + left: 0; + position: absolute; + top: 0; + width: 100%; + background-color: rgba(0, 0, 0, 0.45); +} +.lg-toolbar .lg-icon { + color: #999; + cursor: pointer; + float: right; + font-size: 24px; + height: 47px; + line-height: 27px; + padding: 10px 0; + text-align: center; + width: 50px; + text-decoration: none !important; + outline: medium none; + -webkit-transition: color 0.2s linear; + -o-transition: color 0.2s linear; + transition: color 0.2s linear; +} +.lg-toolbar .lg-icon:hover { + color: #FFF; +} +.lg-toolbar .lg-close:after { + content: "\e070"; +} +.lg-toolbar .lg-download:after { + content: "\e0f2"; +} + +.lg-sub-html { + background-color: rgba(0, 0, 0, 0.45); + bottom: 0; + color: #EEE; + font-size: 16px; + left: 0; + padding: 10px 40px; + position: fixed; + right: 0; + text-align: center; + z-index: 5080; +} +.lg-sub-html h4 { + margin: 0; + font-size: 13px; + font-weight: bold; +} +.lg-sub-html p { + font-size: 12px; + margin: 5px 0 0; +} + +#lg-counter { + color: #999; + display: inline-block; + font-size: 16px; + padding-left: 20px; + padding-top: 12px; + vertical-align: middle; +} + +.lg-toolbar, .lg-prev, .lg-next { + opacity: 1; + -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; + -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; + -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; + transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; +} + +.lg-hide-items .lg-prev { + opacity: 0; + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); +} +.lg-hide-items .lg-next { + opacity: 0; + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); +} +.lg-hide-items .lg-toolbar { + opacity: 0; + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); +} + +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object { + -webkit-transform: scale3d(0.5, 0.5, 0.5); + transform: scale3d(0.5, 0.5, 0.5); + opacity: 0; + -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -webkit-transform-origin: 50% 50%; + -moz-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; +} +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; +} + +.lg-outer .lg-thumb-outer { + background-color: #0D0A0A; + bottom: 0; + position: absolute; + width: 100%; + z-index: 5080; + max-height: 350px; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; +} +.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; +} +.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: -o-grabbing; + cursor: -ms-grabbing; + cursor: grabbing; +} +.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; +} +.lg-outer.lg-thumb-open .lg-thumb-outer { + -webkit-transform: translate3d(0, 0%, 0); + transform: translate3d(0, 0%, 0); +} +.lg-outer .lg-thumb { + padding: 10px 0; + height: 100%; + margin-bottom: -5px; +} +.lg-outer .lg-thumb-item { + border-radius: 5px; + cursor: pointer; + float: left; + overflow: hidden; + height: 100%; + border: 2px solid #FFF; + border-radius: 4px; + margin-bottom: 5px; +} +@media (min-width: 1025px) { + .lg-outer .lg-thumb-item { + -webkit-transition: border-color 0.25s ease; + -o-transition: border-color 0.25s ease; + transition: border-color 0.25s ease; + } +} +.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover { + border-color: #a90707; +} +.lg-outer .lg-thumb-item img { + width: 100%; + height: 100%; + object-fit: cover; +} +.lg-outer.lg-has-thumb .lg-item { + padding-bottom: 120px; +} +.lg-outer.lg-can-toggle .lg-item { + padding-bottom: 0; +} +.lg-outer.lg-pull-caption-up .lg-sub-html { + -webkit-transition: bottom 0.25s ease; + -o-transition: bottom 0.25s ease; + transition: bottom 0.25s ease; +} +.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html { + bottom: 100px; +} +.lg-outer .lg-toogle-thumb { + background-color: #0D0A0A; + border-radius: 2px 2px 0 0; + color: #999; + cursor: pointer; + font-size: 24px; + height: 39px; + line-height: 27px; + padding: 5px 0; + position: absolute; + right: 20px; + text-align: center; + top: -39px; + width: 50px; +} +.lg-outer .lg-toogle-thumb:after { + content: "\e1ff"; +} +.lg-outer .lg-toogle-thumb:hover { + color: #FFF; +} + +.lg-outer .lg-video-cont { + display: inline-block; + vertical-align: middle; + max-width: 1140px; + max-height: 100%; + width: 100%; + padding: 0 5px; +} +.lg-outer .lg-video { + width: 100%; + height: 0; + padding-bottom: 56.25%; + overflow: hidden; + position: relative; +} +.lg-outer .lg-video .lg-object { + display: inline-block; + position: absolute; + top: 0; + left: 0; + width: 100% !important; + height: 100% !important; +} +.lg-outer .lg-video .lg-video-play { + width: 84px; + height: 59px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -42px; + margin-top: -30px; + z-index: 5080; + cursor: pointer; +} +.lg-outer .lg-has-iframe .lg-video { + -webkit-overflow-scrolling: touch; + overflow: auto; +} +.lg-outer .lg-has-vimeo .lg-video-play { + background: url("../img/vimeo-play.png") no-repeat scroll 0 0 transparent; +} +.lg-outer .lg-has-vimeo:hover .lg-video-play { + background: url("../img/vimeo-play.png") no-repeat scroll 0 -58px transparent; +} +.lg-outer .lg-has-html5 .lg-video-play { + background: transparent url("../img/video-play.png") no-repeat scroll 0 0; + height: 64px; + margin-left: -32px; + margin-top: -32px; + width: 64px; + opacity: 0.8; +} +.lg-outer .lg-has-html5:hover .lg-video-play { + opacity: 1; +} +.lg-outer .lg-has-youtube .lg-video-play { + background: url("../img/youtube-play.png") no-repeat scroll 0 0 transparent; +} +.lg-outer .lg-has-youtube:hover .lg-video-play { + background: url("../img/youtube-play.png") no-repeat scroll 0 -60px transparent; +} +.lg-outer .lg-video-object { + width: 100% !important; + height: 100% !important; + position: absolute; + top: 0; + left: 0; +} +.lg-outer .lg-has-video .lg-video-object { + visibility: hidden; +} +.lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play { + display: none; +} +.lg-outer .lg-has-video.lg-video-playing .lg-video-object { + visibility: visible; +} + +.lg-progress-bar { + background-color: #333; + height: 5px; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 5083; + opacity: 0; + -webkit-transition: opacity 0.08s ease 0s; + -moz-transition: opacity 0.08s ease 0s; + -o-transition: opacity 0.08s ease 0s; + transition: opacity 0.08s ease 0s; +} +.lg-progress-bar .lg-progress { + background-color: #a90707; + height: 5px; + width: 0; +} +.lg-progress-bar.lg-start .lg-progress { + width: 100%; +} +.lg-show-autoplay .lg-progress-bar { + opacity: 1; +} + +.lg-autoplay-button:after { + content: "\e01d"; +} +.lg-show-autoplay .lg-autoplay-button:after { + content: "\e01a"; +} + +.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image { + -webkit-transition-duration: 0s; + transition-duration: 0s; +} +.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap { + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; +} +.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap { + -webkit-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; +} +.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} +.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important; + -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; + backface-visibility: hidden; +} + +#lg-zoom-in:after { + content: "\e311"; +} + +#lg-actual-size { + font-size: 20px; +} +#lg-actual-size:after { + content: "\e033"; +} + +#lg-zoom-out { + opacity: 0.5; + pointer-events: none; +} +#lg-zoom-out:after { + content: "\e312"; +} +.lg-zoomed #lg-zoom-out { + opacity: 1; + pointer-events: auto; +} + +.lg-outer .lg-pager-outer { + bottom: 60px; + left: 0; + position: absolute; + right: 0; + text-align: center; + z-index: 5080; + height: 10px; +} +.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont { + overflow: visible; +} +.lg-outer .lg-pager-cont { + cursor: pointer; + display: inline-block; + overflow: hidden; + position: relative; + vertical-align: top; + margin: 0 5px; +} +.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +.lg-outer .lg-pager-cont.lg-pager-active .lg-pager { + box-shadow: 0 0 0 2px white inset; +} +.lg-outer .lg-pager-thumb-cont { + background-color: #fff; + color: #FFF; + bottom: 100%; + height: 83px; + left: 0; + margin-bottom: 20px; + margin-left: -60px; + opacity: 0; + padding: 5px; + position: absolute; + width: 120px; + border-radius: 3px; + -webkit-transition: opacity 0.15s ease 0s, -webkit-transform 0.15s ease 0s; + -moz-transition: opacity 0.15s ease 0s, -moz-transform 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s, -o-transform 0.15s ease 0s; + transition: opacity 0.15s ease 0s, transform 0.15s ease 0s; + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); +} +.lg-outer .lg-pager-thumb-cont img { + width: 100%; + height: 100%; +} +.lg-outer .lg-pager { + background-color: rgba(255, 255, 255, 0.5); + border-radius: 50%; + box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset; + display: block; + height: 12px; + -webkit-transition: box-shadow 0.3s ease 0s; + -o-transition: box-shadow 0.3s ease 0s; + transition: box-shadow 0.3s ease 0s; + width: 12px; +} +.lg-outer .lg-pager:hover, .lg-outer .lg-pager:focus { + box-shadow: 0 0 0 8px white inset; +} +.lg-outer .lg-caret { + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top: 10px dashed; + bottom: -10px; + display: inline-block; + height: 0; + left: 50%; + margin-left: -5px; + position: absolute; + vertical-align: middle; + width: 0; +} + +.lg-fullscreen:after { + content: "\e20c"; +} +.lg-fullscreen-on .lg-fullscreen:after { + content: "\e20d"; +} + +.lg-outer #lg-dropdown-overlay { + background-color: rgba(0, 0, 0, 0.25); + bottom: 0; + cursor: default; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 5081; + opacity: 0; + visibility: hidden; + -webkit-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s; + -o-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s; + transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s; +} +.lg-outer.lg-dropdown-active .lg-dropdown, .lg-outer.lg-dropdown-active #lg-dropdown-overlay { + -webkit-transition-delay: 0s; + transition-delay: 0s; + -moz-transform: translate3d(0, 0px, 0); + -o-transform: translate3d(0, 0px, 0); + -ms-transform: translate3d(0, 0px, 0); + -webkit-transform: translate3d(0, 0px, 0); + transform: translate3d(0, 0px, 0); + opacity: 1; + visibility: visible; +} +.lg-outer.lg-dropdown-active { + color: #FFF; +} + +#lg-share { display: none; } + +.lg-outer .lg-dropdown { + background-color: #fff; + border-radius: 2px; + font-size: 14px; + list-style-type: none; + margin: 0; + padding: 10px 0; + position: absolute; + right: 0; + text-align: left; + top: 50px; + opacity: 0; + visibility: hidden; + -moz-transform: translate3d(0, 5px, 0); + -o-transform: translate3d(0, 5px, 0); + -ms-transform: translate3d(0, 5px, 0); + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + -webkit-transition: -webkit-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; + -moz-transition: -moz-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; + -o-transition: -o-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; + transition: transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s; +} +.lg-outer .lg-dropdown:after { + content: ""; + display: block; + height: 0; + width: 0; + position: absolute; + border: 8px solid transparent; + border-bottom-color: #FFF; + right: 16px; + top: -16px; +} +.lg-outer .lg-dropdown > li:last-child { + margin-bottom: 0px; +} +.lg-outer .lg-dropdown > li:hover a, .lg-outer .lg-dropdown > li:hover .lg-icon { + color: #333; +} +.lg-outer .lg-dropdown a { + color: #333; + display: block; + white-space: pre; + padding: 4px 12px; + font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 12px; +} +.lg-outer .lg-dropdown a:hover { + background-color: rgba(0, 0, 0, 0.07); +} +.lg-outer .lg-dropdown .lg-dropdown-text { + display: inline-block; + line-height: 1; + margin-top: -3px; + vertical-align: middle; +} +.lg-outer .lg-dropdown .lg-icon { + color: #333; + display: inline-block; + float: none; + font-size: 20px; + height: auto; + line-height: 1; + margin-right: 8px; + padding: 0; + vertical-align: middle; + width: auto; +} +.lg-outer #lg-share { + position: relative; +} +.lg-outer #lg-share:after { + content: "\e80d"; +} +.lg-outer #lg-share-facebook .lg-icon { + color: #3b5998; +} +.lg-outer #lg-share-facebook .lg-icon:after { + content: "\e901"; +} +.lg-outer #lg-share-twitter .lg-icon { + color: #00aced; +} +.lg-outer #lg-share-twitter .lg-icon:after { + content: "\e904"; +} +.lg-outer #lg-share-googleplus .lg-icon { + color: #dd4b39; +} +.lg-outer #lg-share-googleplus .lg-icon:after { + content: "\e902"; +} +.lg-outer #lg-share-pinterest .lg-icon { + color: #cb2027; +} +.lg-outer #lg-share-pinterest .lg-icon:after { + content: "\e903"; +} + +.lg-group:after { + content: ""; + display: table; + clear: both; +} + +.lg-outer { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 5050; + text-align: left; + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-outer * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.lg-outer.lg-visible { + opacity: 1; +} +.lg-outer.lg-css3 .lg-item.lg-prev-slide, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-current { + -webkit-transition-duration: inherit !important; + transition-duration: inherit !important; + -webkit-transition-timing-function: inherit !important; + transition-timing-function: inherit !important; +} +.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; + opacity: 1; +} +.lg-outer.lg-grab img.lg-object { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; +} +.lg-outer.lg-grabbing img.lg-object { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: -o-grabbing; + cursor: -ms-grabbing; + cursor: grabbing; +} +.lg-outer .lg { + height: 100%; + width: 100%; + position: relative; + overflow: hidden; + margin-left: auto; + margin-right: auto; + max-width: 100%; + max-height: 100%; +} +.lg-outer .lg-inner { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + white-space: nowrap; +} +.lg-outer .lg-item { + background: url("../img/loading.gif") no-repeat scroll center center transparent; + display: none !important; +} +.lg-outer.lg-css3 .lg-prev-slide, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide { + display: inline-block !important; +} +.lg-outer.lg-css .lg-current { + display: inline-block !important; +} +.lg-outer .lg-item, .lg-outer .lg-img-wrap { + display: inline-block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; +} +.lg-outer .lg-item:before, .lg-outer .lg-img-wrap:before { + content: ""; + display: inline-block; + height: 50%; + width: 1px; + margin-right: -1px; +} +.lg-outer .lg-img-wrap { + position: absolute; + padding: 0 5px; + left: 0; + right: 0; + top: 0; + bottom: 0; +} +.lg-outer .lg-item.lg-complete { + background-image: none; +} +.lg-outer .lg-item.lg-current { + z-index: 5060; +} +.lg-outer .lg-image { + display: inline-block; + vertical-align: middle; + max-width: 100%; + max-height: 100%; + width: auto !important; + height: auto !important; +} +.lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play { + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play { + opacity: 1; +} +.lg-outer .lg-empty-html { + display: none; +} +.lg-outer.lg-hide-download #lg-download { + display: none; +} + +.lg-backdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 5040; + background-color: #000; + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-backdrop.in { + opacity: 1; +} + +.lg-css3.lg-no-trans .lg-prev-slide, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-current { + -webkit-transition: none 0s ease 0s !important; + -moz-transition: none 0s ease 0s !important; + -o-transition: none 0s ease 0s !important; + transition: none 0s ease 0s !important; +} +.lg-css3.lg-use-css3 .lg-item { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} +.lg-css3.lg-use-left .lg-item { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} +.lg-css3.lg-fade .lg-item { + opacity: 0; +} +.lg-css3.lg-fade .lg-item.lg-current { + opacity: 1; +} +.lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current { + -webkit-transition: opacity 0.1s ease 0s; + -moz-transition: opacity 0.1s ease 0s; + -o-transition: opacity 0.1s ease 0s; + transition: opacity 0.1s ease 0s; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item { + opacity: 0; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; +} +.lg-css3.lg-slide.lg-use-left .lg-item { + opacity: 0; + position: absolute; + left: 0; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide { + left: -100%; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide { + left: 100%; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-current { + left: 0; + opacity: 1; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-current { + -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; +} + +/*# sourceMappingURL=lightgallery.css.map */ diff --git a/assets/css/main.css b/assets/css/main.css deleted file mode 100644 index 26e494d..0000000 --- a/assets/css/main.css +++ /dev/null @@ -1,2542 +0,0 @@ -@import url(font-awesome.min.css); -@import url(font.css); -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ -/* Reset */ -html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; } - -article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { - display: block; } - -body { - line-height: 1; } - -ol, ul { - list-style: none; } - -blockquote, q { - quotes: none; } - -blockquote:before, blockquote:after, q:before, q:after { - content: ''; - content: none; } - -table { - border-collapse: collapse; - border-spacing: 0; } - -body { - -webkit-text-size-adjust: none; } - -/* Box Model */ -*, *:before, *:after { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; } - -/* Grid */ -.row { - border-bottom: solid 1px transparent; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; } - -.row > * { - float: left; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; } - -.row:after, .row:before { - content: ''; - display: block; - clear: both; - height: 0; } - -.row.uniform > * > :first-child { - margin-top: 0; } - -.row.uniform > * > :last-child { - margin-bottom: 0; } - -.row.\30 \25 > * { - padding: 0 0 0 0em; } - -.row.\30 \25 { - margin: 0 0 -1px 0em; } - -.row.uniform.\30 \25 > * { - padding: 0em 0 0 0em; } - -.row.uniform.\30 \25 { - margin: 0em 0 -1px 0em; } - -.row > * { - padding: 0 0 0 1.75em; } - -.row { - margin: 0 0 -1px -1.75em; } - -.row.uniform > * { - padding: 1.75em 0 0 1.75em; } - -.row.uniform { - margin: -1.75em 0 -1px -1.75em; } - -.row.\32 00\25 > * { - padding: 0 0 0 3.5em; } - -.row.\32 00\25 { - margin: 0 0 -1px -3.5em; } - -.row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } - -.row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } - -.row.\31 50\25 > * { - padding: 0 0 0 2.625em; } - -.row.\31 50\25 { - margin: 0 0 -1px -2.625em; } - -.row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } - -.row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } - -.row.\35 0\25 > * { - padding: 0 0 0 0.875em; } - -.row.\35 0\25 { - margin: 0 0 -1px -0.875em; } - -.row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } - -.row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } - -.row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } - -.row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } - -.row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } - -.row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } - -.\31 2u, .\31 2u\24 { - width: 100%; - clear: none; - margin-left: 0; } - -.\31 1u, .\31 1u\24 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - -.\31 0u, .\31 0u\24 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - -.\39 u, .\39 u\24 { - width: 75%; - clear: none; - margin-left: 0; } - -.\38 u, .\38 u\24 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - -.\37 u, .\37 u\24 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - -.\36 u, .\36 u\24 { - width: 50%; - clear: none; - margin-left: 0; } - -.\35 u, .\35 u\24 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - -.\34 u, .\34 u\24 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - -.\33 u, .\33 u\24 { - width: 25%; - clear: none; - margin-left: 0; } - -.\32 u, .\32 u\24 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - -.\31 u, .\31 u\24 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - -.\31 2u\24 + *, -.\31 1u\24 + *, -.\31 0u\24 + *, -.\39 u\24 + *, -.\38 u\24 + *, -.\37 u\24 + *, -.\36 u\24 + *, -.\35 u\24 + *, -.\34 u\24 + *, -.\33 u\24 + *, -.\32 u\24 + *, -.\31 u\24 + * { - clear: left; } - -.\-11u { - margin-left: 91.6666666667%; } - -.\-10u { - margin-left: 83.3333333333%; } - -.\-9u { - margin-left: 75%; } - -.\-8u { - margin-left: 66.6666666667%; } - -.\-7u { - margin-left: 58.3333333333%; } - -.\-6u { - margin-left: 50%; } - -.\-5u { - margin-left: 41.6666666667%; } - -.\-4u { - margin-left: 33.3333333333%; } - -.\-3u { - margin-left: 25%; } - -.\-2u { - margin-left: 16.6666666667%; } - -.\-1u { - margin-left: 8.3333333333%; } - -@media screen and (max-width: 1680px) { - .row > * { - padding: 0 0 0 1.75em; } - .row { - margin: 0 0 -1px -1.75em; } - .row.uniform > * { - padding: 1.75em 0 0 1.75em; } - .row.uniform { - margin: -1.75em 0 -1px -1.75em; } - .row.\32 00\25 > * { - padding: 0 0 0 3.5em; } - .row.\32 00\25 { - margin: 0 0 -1px -3.5em; } - .row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } - .row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } - .row.\31 50\25 > * { - padding: 0 0 0 2.625em; } - .row.\31 50\25 { - margin: 0 0 -1px -2.625em; } - .row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } - .row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } - .row.\35 0\25 > * { - padding: 0 0 0 0.875em; } - .row.\35 0\25 { - margin: 0 0 -1px -0.875em; } - .row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } - .row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } - .row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } - .row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } - .row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } - .row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } - .\31 2u\28xlarge\29, .\31 2u\24\28xlarge\29 { - width: 100%; - clear: none; - margin-left: 0; } - .\31 1u\28xlarge\29, .\31 1u\24\28xlarge\29 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - .\31 0u\28xlarge\29, .\31 0u\24\28xlarge\29 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - .\39 u\28xlarge\29, .\39 u\24\28xlarge\29 { - width: 75%; - clear: none; - margin-left: 0; } - .\38 u\28xlarge\29, .\38 u\24\28xlarge\29 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - .\37 u\28xlarge\29, .\37 u\24\28xlarge\29 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - .\36 u\28xlarge\29, .\36 u\24\28xlarge\29 { - width: 50%; - clear: none; - margin-left: 0; } - .\35 u\28xlarge\29, .\35 u\24\28xlarge\29 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - .\34 u\28xlarge\29, .\34 u\24\28xlarge\29 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - .\33 u\28xlarge\29, .\33 u\24\28xlarge\29 { - width: 25%; - clear: none; - margin-left: 0; } - .\32 u\28xlarge\29, .\32 u\24\28xlarge\29 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - .\31 u\28xlarge\29, .\31 u\24\28xlarge\29 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - .\31 2u\24\28xlarge\29 + *, - .\31 1u\24\28xlarge\29 + *, - .\31 0u\24\28xlarge\29 + *, - .\39 u\24\28xlarge\29 + *, - .\38 u\24\28xlarge\29 + *, - .\37 u\24\28xlarge\29 + *, - .\36 u\24\28xlarge\29 + *, - .\35 u\24\28xlarge\29 + *, - .\34 u\24\28xlarge\29 + *, - .\33 u\24\28xlarge\29 + *, - .\32 u\24\28xlarge\29 + *, - .\31 u\24\28xlarge\29 + * { - clear: left; } - .\-11u\28xlarge\29 { - margin-left: 91.6666666667%; } - .\-10u\28xlarge\29 { - margin-left: 83.3333333333%; } - .\-9u\28xlarge\29 { - margin-left: 75%; } - .\-8u\28xlarge\29 { - margin-left: 66.6666666667%; } - .\-7u\28xlarge\29 { - margin-left: 58.3333333333%; } - .\-6u\28xlarge\29 { - margin-left: 50%; } - .\-5u\28xlarge\29 { - margin-left: 41.6666666667%; } - .\-4u\28xlarge\29 { - margin-left: 33.3333333333%; } - .\-3u\28xlarge\29 { - margin-left: 25%; } - .\-2u\28xlarge\29 { - margin-left: 16.6666666667%; } - .\-1u\28xlarge\29 { - margin-left: 8.3333333333%; } } - -@media screen and (max-width: 1280px) { - .row > * { - padding: 0 0 0 1.75em; } - .row { - margin: 0 0 -1px -1.75em; } - .row.uniform > * { - padding: 1.75em 0 0 1.75em; } - .row.uniform { - margin: -1.75em 0 -1px -1.75em; } - .row.\32 00\25 > * { - padding: 0 0 0 3.5em; } - .row.\32 00\25 { - margin: 0 0 -1px -3.5em; } - .row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } - .row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } - .row.\31 50\25 > * { - padding: 0 0 0 2.625em; } - .row.\31 50\25 { - margin: 0 0 -1px -2.625em; } - .row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } - .row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } - .row.\35 0\25 > * { - padding: 0 0 0 0.875em; } - .row.\35 0\25 { - margin: 0 0 -1px -0.875em; } - .row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } - .row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } - .row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } - .row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } - .row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } - .row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } - .\31 2u\28large\29, .\31 2u\24\28large\29 { - width: 100%; - clear: none; - margin-left: 0; } - .\31 1u\28large\29, .\31 1u\24\28large\29 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - .\31 0u\28large\29, .\31 0u\24\28large\29 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - .\39 u\28large\29, .\39 u\24\28large\29 { - width: 75%; - clear: none; - margin-left: 0; } - .\38 u\28large\29, .\38 u\24\28large\29 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - .\37 u\28large\29, .\37 u\24\28large\29 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - .\36 u\28large\29, .\36 u\24\28large\29 { - width: 50%; - clear: none; - margin-left: 0; } - .\35 u\28large\29, .\35 u\24\28large\29 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - .\34 u\28large\29, .\34 u\24\28large\29 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - .\33 u\28large\29, .\33 u\24\28large\29 { - width: 25%; - clear: none; - margin-left: 0; } - .\32 u\28large\29, .\32 u\24\28large\29 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - .\31 u\28large\29, .\31 u\24\28large\29 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - .\31 2u\24\28large\29 + *, - .\31 1u\24\28large\29 + *, - .\31 0u\24\28large\29 + *, - .\39 u\24\28large\29 + *, - .\38 u\24\28large\29 + *, - .\37 u\24\28large\29 + *, - .\36 u\24\28large\29 + *, - .\35 u\24\28large\29 + *, - .\34 u\24\28large\29 + *, - .\33 u\24\28large\29 + *, - .\32 u\24\28large\29 + *, - .\31 u\24\28large\29 + * { - clear: left; } - .\-11u\28large\29 { - margin-left: 91.6666666667%; } - .\-10u\28large\29 { - margin-left: 83.3333333333%; } - .\-9u\28large\29 { - margin-left: 75%; } - .\-8u\28large\29 { - margin-left: 66.6666666667%; } - .\-7u\28large\29 { - margin-left: 58.3333333333%; } - .\-6u\28large\29 { - margin-left: 50%; } - .\-5u\28large\29 { - margin-left: 41.6666666667%; } - .\-4u\28large\29 { - margin-left: 33.3333333333%; } - .\-3u\28large\29 { - margin-left: 25%; } - .\-2u\28large\29 { - margin-left: 16.6666666667%; } - .\-1u\28large\29 { - margin-left: 8.3333333333%; } } - -@media screen and (max-width: 980px) { - .row > * { - padding: 0 0 0 1.75em; } - .row { - margin: 0 0 -1px -1.75em; } - .row.uniform > * { - padding: 1.75em 0 0 1.75em; } - .row.uniform { - margin: -1.75em 0 -1px -1.75em; } - .row.\32 00\25 > * { - padding: 0 0 0 3.5em; } - .row.\32 00\25 { - margin: 0 0 -1px -3.5em; } - .row.uniform.\32 00\25 > * { - padding: 3.5em 0 0 3.5em; } - .row.uniform.\32 00\25 { - margin: -3.5em 0 -1px -3.5em; } - .row.\31 50\25 > * { - padding: 0 0 0 2.625em; } - .row.\31 50\25 { - margin: 0 0 -1px -2.625em; } - .row.uniform.\31 50\25 > * { - padding: 2.625em 0 0 2.625em; } - .row.uniform.\31 50\25 { - margin: -2.625em 0 -1px -2.625em; } - .row.\35 0\25 > * { - padding: 0 0 0 0.875em; } - .row.\35 0\25 { - margin: 0 0 -1px -0.875em; } - .row.uniform.\35 0\25 > * { - padding: 0.875em 0 0 0.875em; } - .row.uniform.\35 0\25 { - margin: -0.875em 0 -1px -0.875em; } - .row.\32 5\25 > * { - padding: 0 0 0 0.4375em; } - .row.\32 5\25 { - margin: 0 0 -1px -0.4375em; } - .row.uniform.\32 5\25 > * { - padding: 0.4375em 0 0 0.4375em; } - .row.uniform.\32 5\25 { - margin: -0.4375em 0 -1px -0.4375em; } - .\31 2u\28medium\29, .\31 2u\24\28medium\29 { - width: 100%; - clear: none; - margin-left: 0; } - .\31 1u\28medium\29, .\31 1u\24\28medium\29 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - .\31 0u\28medium\29, .\31 0u\24\28medium\29 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - .\39 u\28medium\29, .\39 u\24\28medium\29 { - width: 75%; - clear: none; - margin-left: 0; } - .\38 u\28medium\29, .\38 u\24\28medium\29 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - .\37 u\28medium\29, .\37 u\24\28medium\29 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - .\36 u\28medium\29, .\36 u\24\28medium\29 { - width: 50%; - clear: none; - margin-left: 0; } - .\35 u\28medium\29, .\35 u\24\28medium\29 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - .\34 u\28medium\29, .\34 u\24\28medium\29 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - .\33 u\28medium\29, .\33 u\24\28medium\29 { - width: 25%; - clear: none; - margin-left: 0; } - .\32 u\28medium\29, .\32 u\24\28medium\29 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - .\31 u\28medium\29, .\31 u\24\28medium\29 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - .\31 2u\24\28medium\29 + *, - .\31 1u\24\28medium\29 + *, - .\31 0u\24\28medium\29 + *, - .\39 u\24\28medium\29 + *, - .\38 u\24\28medium\29 + *, - .\37 u\24\28medium\29 + *, - .\36 u\24\28medium\29 + *, - .\35 u\24\28medium\29 + *, - .\34 u\24\28medium\29 + *, - .\33 u\24\28medium\29 + *, - .\32 u\24\28medium\29 + *, - .\31 u\24\28medium\29 + * { - clear: left; } - .\-11u\28medium\29 { - margin-left: 91.6666666667%; } - .\-10u\28medium\29 { - margin-left: 83.3333333333%; } - .\-9u\28medium\29 { - margin-left: 75%; } - .\-8u\28medium\29 { - margin-left: 66.6666666667%; } - .\-7u\28medium\29 { - margin-left: 58.3333333333%; } - .\-6u\28medium\29 { - margin-left: 50%; } - .\-5u\28medium\29 { - margin-left: 41.6666666667%; } - .\-4u\28medium\29 { - margin-left: 33.3333333333%; } - .\-3u\28medium\29 { - margin-left: 25%; } - .\-2u\28medium\29 { - margin-left: 16.6666666667%; } - .\-1u\28medium\29 { - margin-left: 8.3333333333%; } } - -@media screen and (max-width: 736px) { - .row > * { - padding: 0 0 0 1.25em; } - .row { - margin: 0 0 -1px -1.25em; } - .row.uniform > * { - padding: 1.25em 0 0 1.25em; } - .row.uniform { - margin: -1.25em 0 -1px -1.25em; } - .row.\32 00\25 > * { - padding: 0 0 0 2.5em; } - .row.\32 00\25 { - margin: 0 0 -1px -2.5em; } - .row.uniform.\32 00\25 > * { - padding: 2.5em 0 0 2.5em; } - .row.uniform.\32 00\25 { - margin: -2.5em 0 -1px -2.5em; } - .row.\31 50\25 > * { - padding: 0 0 0 1.875em; } - .row.\31 50\25 { - margin: 0 0 -1px -1.875em; } - .row.uniform.\31 50\25 > * { - padding: 1.875em 0 0 1.875em; } - .row.uniform.\31 50\25 { - margin: -1.875em 0 -1px -1.875em; } - .row.\35 0\25 > * { - padding: 0 0 0 0.625em; } - .row.\35 0\25 { - margin: 0 0 -1px -0.625em; } - .row.uniform.\35 0\25 > * { - padding: 0.625em 0 0 0.625em; } - .row.uniform.\35 0\25 { - margin: -0.625em 0 -1px -0.625em; } - .row.\32 5\25 > * { - padding: 0 0 0 0.3125em; } - .row.\32 5\25 { - margin: 0 0 -1px -0.3125em; } - .row.uniform.\32 5\25 > * { - padding: 0.3125em 0 0 0.3125em; } - .row.uniform.\32 5\25 { - margin: -0.3125em 0 -1px -0.3125em; } - .\31 2u\28small\29, .\31 2u\24\28small\29 { - width: 100%; - clear: none; - margin-left: 0; } - .\31 1u\28small\29, .\31 1u\24\28small\29 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - .\31 0u\28small\29, .\31 0u\24\28small\29 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - .\39 u\28small\29, .\39 u\24\28small\29 { - width: 75%; - clear: none; - margin-left: 0; } - .\38 u\28small\29, .\38 u\24\28small\29 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - .\37 u\28small\29, .\37 u\24\28small\29 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - .\36 u\28small\29, .\36 u\24\28small\29 { - width: 50%; - clear: none; - margin-left: 0; } - .\35 u\28small\29, .\35 u\24\28small\29 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - .\34 u\28small\29, .\34 u\24\28small\29 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - .\33 u\28small\29, .\33 u\24\28small\29 { - width: 25%; - clear: none; - margin-left: 0; } - .\32 u\28small\29, .\32 u\24\28small\29 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - .\31 u\28small\29, .\31 u\24\28small\29 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - .\31 2u\24\28small\29 + *, - .\31 1u\24\28small\29 + *, - .\31 0u\24\28small\29 + *, - .\39 u\24\28small\29 + *, - .\38 u\24\28small\29 + *, - .\37 u\24\28small\29 + *, - .\36 u\24\28small\29 + *, - .\35 u\24\28small\29 + *, - .\34 u\24\28small\29 + *, - .\33 u\24\28small\29 + *, - .\32 u\24\28small\29 + *, - .\31 u\24\28small\29 + * { - clear: left; } - .\-11u\28small\29 { - margin-left: 91.6666666667%; } - .\-10u\28small\29 { - margin-left: 83.3333333333%; } - .\-9u\28small\29 { - margin-left: 75%; } - .\-8u\28small\29 { - margin-left: 66.6666666667%; } - .\-7u\28small\29 { - margin-left: 58.3333333333%; } - .\-6u\28small\29 { - margin-left: 50%; } - .\-5u\28small\29 { - margin-left: 41.6666666667%; } - .\-4u\28small\29 { - margin-left: 33.3333333333%; } - .\-3u\28small\29 { - margin-left: 25%; } - .\-2u\28small\29 { - margin-left: 16.6666666667%; } - .\-1u\28small\29 { - margin-left: 8.3333333333%; } } - -@media screen and (max-width: 640px) { - .row > * { - padding: 0 0 0 1.25em; } - .row { - margin: 0 0 -1px -1.25em; } - .row.uniform > * { - padding: 1.25em 0 0 1.25em; } - .row.uniform { - margin: -1.25em 0 -1px -1.25em; } - .row.\32 00\25 > * { - padding: 0 0 0 2.5em; } - .row.\32 00\25 { - margin: 0 0 -1px -2.5em; } - .row.uniform.\32 00\25 > * { - padding: 2.5em 0 0 2.5em; } - .row.uniform.\32 00\25 { - margin: -2.5em 0 -1px -2.5em; } - .row.\31 50\25 > * { - padding: 0 0 0 1.875em; } - .row.\31 50\25 { - margin: 0 0 -1px -1.875em; } - .row.uniform.\31 50\25 > * { - padding: 1.875em 0 0 1.875em; } - .row.uniform.\31 50\25 { - margin: -1.875em 0 -1px -1.875em; } - .row.\35 0\25 > * { - padding: 0 0 0 0.625em; } - .row.\35 0\25 { - margin: 0 0 -1px -0.625em; } - .row.uniform.\35 0\25 > * { - padding: 0.625em 0 0 0.625em; } - .row.uniform.\35 0\25 { - margin: -0.625em 0 -1px -0.625em; } - .row.\32 5\25 > * { - padding: 0 0 0 0.3125em; } - .row.\32 5\25 { - margin: 0 0 -1px -0.3125em; } - .row.uniform.\32 5\25 > * { - padding: 0.3125em 0 0 0.3125em; } - .row.uniform.\32 5\25 { - margin: -0.3125em 0 -1px -0.3125em; } - .\31 2u\28xsmall\29, .\31 2u\24\28xsmall\29 { - width: 100%; - clear: none; - margin-left: 0; } - .\31 1u\28xsmall\29, .\31 1u\24\28xsmall\29 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - .\31 0u\28xsmall\29, .\31 0u\24\28xsmall\29 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - .\39 u\28xsmall\29, .\39 u\24\28xsmall\29 { - width: 75%; - clear: none; - margin-left: 0; } - .\38 u\28xsmall\29, .\38 u\24\28xsmall\29 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - .\37 u\28xsmall\29, .\37 u\24\28xsmall\29 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - .\36 u\28xsmall\29, .\36 u\24\28xsmall\29 { - width: 50%; - clear: none; - margin-left: 0; } - .\35 u\28xsmall\29, .\35 u\24\28xsmall\29 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - .\34 u\28xsmall\29, .\34 u\24\28xsmall\29 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - .\33 u\28xsmall\29, .\33 u\24\28xsmall\29 { - width: 25%; - clear: none; - margin-left: 0; } - .\32 u\28xsmall\29, .\32 u\24\28xsmall\29 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - .\31 u\28xsmall\29, .\31 u\24\28xsmall\29 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - .\31 2u\24\28xsmall\29 + *, - .\31 1u\24\28xsmall\29 + *, - .\31 0u\24\28xsmall\29 + *, - .\39 u\24\28xsmall\29 + *, - .\38 u\24\28xsmall\29 + *, - .\37 u\24\28xsmall\29 + *, - .\36 u\24\28xsmall\29 + *, - .\35 u\24\28xsmall\29 + *, - .\34 u\24\28xsmall\29 + *, - .\33 u\24\28xsmall\29 + *, - .\32 u\24\28xsmall\29 + *, - .\31 u\24\28xsmall\29 + * { - clear: left; } - .\-11u\28xsmall\29 { - margin-left: 91.6666666667%; } - .\-10u\28xsmall\29 { - margin-left: 83.3333333333%; } - .\-9u\28xsmall\29 { - margin-left: 75%; } - .\-8u\28xsmall\29 { - margin-left: 66.6666666667%; } - .\-7u\28xsmall\29 { - margin-left: 58.3333333333%; } - .\-6u\28xsmall\29 { - margin-left: 50%; } - .\-5u\28xsmall\29 { - margin-left: 41.6666666667%; } - .\-4u\28xsmall\29 { - margin-left: 33.3333333333%; } - .\-3u\28xsmall\29 { - margin-left: 25%; } - .\-2u\28xsmall\29 { - margin-left: 16.6666666667%; } - .\-1u\28xsmall\29 { - margin-left: 8.3333333333%; } } - -@media screen and (max-width: 360px) { - .row > * { - padding: 0 0 0 1.25em; } - .row { - margin: 0 0 -1px -1.25em; } - .row.uniform > * { - padding: 1.25em 0 0 1.25em; } - .row.uniform { - margin: -1.25em 0 -1px -1.25em; } - .row.\32 00\25 > * { - padding: 0 0 0 2.5em; } - .row.\32 00\25 { - margin: 0 0 -1px -2.5em; } - .row.uniform.\32 00\25 > * { - padding: 2.5em 0 0 2.5em; } - .row.uniform.\32 00\25 { - margin: -2.5em 0 -1px -2.5em; } - .row.\31 50\25 > * { - padding: 0 0 0 1.875em; } - .row.\31 50\25 { - margin: 0 0 -1px -1.875em; } - .row.uniform.\31 50\25 > * { - padding: 1.875em 0 0 1.875em; } - .row.uniform.\31 50\25 { - margin: -1.875em 0 -1px -1.875em; } - .row.\35 0\25 > * { - padding: 0 0 0 0.625em; } - .row.\35 0\25 { - margin: 0 0 -1px -0.625em; } - .row.uniform.\35 0\25 > * { - padding: 0.625em 0 0 0.625em; } - .row.uniform.\35 0\25 { - margin: -0.625em 0 -1px -0.625em; } - .row.\32 5\25 > * { - padding: 0 0 0 0.3125em; } - .row.\32 5\25 { - margin: 0 0 -1px -0.3125em; } - .row.uniform.\32 5\25 > * { - padding: 0.3125em 0 0 0.3125em; } - .row.uniform.\32 5\25 { - margin: -0.3125em 0 -1px -0.3125em; } - .\31 2u\28xxsmall\29, .\31 2u\24\28xxsmall\29 { - width: 100%; - clear: none; - margin-left: 0; } - .\31 1u\28xxsmall\29, .\31 1u\24\28xxsmall\29 { - width: 91.6666666667%; - clear: none; - margin-left: 0; } - .\31 0u\28xxsmall\29, .\31 0u\24\28xxsmall\29 { - width: 83.3333333333%; - clear: none; - margin-left: 0; } - .\39 u\28xxsmall\29, .\39 u\24\28xxsmall\29 { - width: 75%; - clear: none; - margin-left: 0; } - .\38 u\28xxsmall\29, .\38 u\24\28xxsmall\29 { - width: 66.6666666667%; - clear: none; - margin-left: 0; } - .\37 u\28xxsmall\29, .\37 u\24\28xxsmall\29 { - width: 58.3333333333%; - clear: none; - margin-left: 0; } - .\36 u\28xxsmall\29, .\36 u\24\28xxsmall\29 { - width: 50%; - clear: none; - margin-left: 0; } - .\35 u\28xxsmall\29, .\35 u\24\28xxsmall\29 { - width: 41.6666666667%; - clear: none; - margin-left: 0; } - .\34 u\28xxsmall\29, .\34 u\24\28xxsmall\29 { - width: 33.3333333333%; - clear: none; - margin-left: 0; } - .\33 u\28xxsmall\29, .\33 u\24\28xxsmall\29 { - width: 25%; - clear: none; - margin-left: 0; } - .\32 u\28xxsmall\29, .\32 u\24\28xxsmall\29 { - width: 16.6666666667%; - clear: none; - margin-left: 0; } - .\31 u\28xxsmall\29, .\31 u\24\28xxsmall\29 { - width: 8.3333333333%; - clear: none; - margin-left: 0; } - .\31 2u\24\28xxsmall\29 + *, - .\31 1u\24\28xxsmall\29 + *, - .\31 0u\24\28xxsmall\29 + *, - .\39 u\24\28xxsmall\29 + *, - .\38 u\24\28xxsmall\29 + *, - .\37 u\24\28xxsmall\29 + *, - .\36 u\24\28xxsmall\29 + *, - .\35 u\24\28xxsmall\29 + *, - .\34 u\24\28xxsmall\29 + *, - .\33 u\24\28xxsmall\29 + *, - .\32 u\24\28xxsmall\29 + *, - .\31 u\24\28xxsmall\29 + * { - clear: left; } - .\-11u\28xxsmall\29 { - margin-left: 91.6666666667%; } - .\-10u\28xxsmall\29 { - margin-left: 83.3333333333%; } - .\-9u\28xxsmall\29 { - margin-left: 75%; } - .\-8u\28xxsmall\29 { - margin-left: 66.6666666667%; } - .\-7u\28xxsmall\29 { - margin-left: 58.3333333333%; } - .\-6u\28xxsmall\29 { - margin-left: 50%; } - .\-5u\28xxsmall\29 { - margin-left: 41.6666666667%; } - .\-4u\28xxsmall\29 { - margin-left: 33.3333333333%; } - .\-3u\28xxsmall\29 { - margin-left: 25%; } - .\-2u\28xxsmall\29 { - margin-left: 16.6666666667%; } - .\-1u\28xxsmall\29 { - margin-left: 8.3333333333%; } } - -/* Basic */ -@-ms-viewport { - width: device-width; } - -body { - -ms-overflow-style: scrollbar; } - -@media screen and (max-width: 640px) { - html, body { - min-width: 320px; } } - -body { - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-attachment: fixed, fixed; - background-position: center, center; } - body.is-loading *, body.is-loading *:before, body.is-loading *:after { - -moz-animation: none !important; - -webkit-animation: none !important; - -ms-animation: none !important; - animation: none !important; - -moz-transition: none !important; - -webkit-transition: none !important; - -ms-transition: none !important; - transition: none !important; } - -/* Type */ -body, input, select, textarea { - color: #ffffff; - font-family: "Source Sans Pro", Helvetica, sans-serif; - font-size: 16.5pt; - font-weight: 300; - line-height: 1.65; } - @media screen and (max-width: 1680px) { - body, input, select, textarea { - font-size: 13pt; } } - @media screen and (max-width: 1280px) { - body, input, select, textarea { - font-size: 12pt; } } - @media screen and (max-width: 980px) { - body, input, select, textarea { - font-size: 12pt; } } - @media screen and (max-width: 736px) { - body, input, select, textarea { - font-size: 12pt; } } - @media screen and (max-width: 640px) { - body, input, select, textarea { - font-size: 12pt; } } - -a { - -moz-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; - -webkit-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; - -ms-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; - transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; - border-bottom: dotted 1px rgba(255, 255, 255, 0.35); - color: #ffffff; - text-decoration: none; } - a:hover { - border-bottom-color: transparent; - color: #ffffff !important; } - a.special:not(.button) { - text-decoration: none; - border-bottom: 0; - display: block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - letter-spacing: 0.1em; - margin: 0 0 2em 0; - text-transform: uppercase; } - a.special:not(.button):before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - a.special:not(.button):before { - -moz-transition: background-color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; - border-radius: 100%; - border: solid 2px rgba(255, 255, 255, 0.125); - content: '\f105'; - display: inline-block; - font-size: 1.25em; - height: 2em; - line-height: 1.65em; - margin-right: 0.85em; - text-align: center; - text-indent: 0.15em; - vertical-align: middle; - width: 2em; } - a.special:not(.button):hover:before { - background-color: rgba(255, 255, 255, 0.025); } - a.special:not(.button):active:before { - background-color: rgba(255, 255, 255, 0.075); } - -strong, b { - color: #ffffff; - font-weight: 600; } - -em, i { - font-style: italic; } - -p { - margin: 0 0 2em 0; } - -h1, h2, h3, h4, h5, h6 { - color: #ffffff; - font-family: Raleway, Helvetica, sans-serif; - font-weight: 700; - letter-spacing: 0.1em; - margin: 0 0 1em 0; - text-transform: uppercase; } - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - color: inherit; - text-decoration: none; } - h1 span, h2 span, h3 span, h4 span, h5 span, h6 span { - font-weight: 200; } - h1.major, h2.major, h3.major, h4.major, h5.major, h6.major { - padding-bottom: 1em; - border-bottom: solid 2px rgba(255, 255, 255, 0.125); } - -h2 { - font-size: 1.2em; } - -h3 { - font-size: 0.9em; } - -h4 { - font-size: 0.7em; } - -h5 { - font-size: 0.7em; } - -h6 { - font-size: 0.7em; } - -@media screen and (max-width: 736px) { - h2 { - font-size: 1em; } - h3 { - font-size: 0.8em; } } - -sub { - font-size: 0.8em; - position: relative; - top: 0.5em; } - -sup { - font-size: 0.8em; - position: relative; - top: -0.5em; } - -blockquote { - border-left: solid 4px rgba(255, 255, 255, 0.125); - font-style: italic; - margin: 0 0 2em 0; - padding: 0.5em 0 0.5em 2em; } - -code { - background: rgba(255, 255, 255, 0.025); - border-radius: 5px; - border: solid 2px rgba(255, 255, 255, 0.125); - font-family: "Courier New", monospace; - font-size: 0.9em; - margin: 0 0.25em; - padding: 0.25em 0.65em; } - -pre { - -webkit-overflow-scrolling: touch; - font-family: "Courier New", monospace; - font-size: 0.9em; - margin: 0 0 2em 0; } - pre code { - display: block; - line-height: 1.75em; - padding: 1em 1.5em; - overflow-x: auto; } - -hr { - border: 0; - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - margin: 2.5em 0; } - hr.major { - margin: 4em 0; } - -.align-left { - text-align: left; } - -.align-center { - text-align: center; } - -.align-right { - text-align: right; } - -/* Section/Article */ -section.special, article.special { - text-align: center; } - -/* Form */ -form { - margin: 0 0 2em 0; } - form .field { - margin: 0 0 2em 0; } - form .field label { - margin-top: -1.5em; } - form .field:first-child label { - margin-top: 0; } - form > :last-child { - margin-bottom: 0; } - -label { - color: #ffffff; - display: block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - letter-spacing: 0.1em; - margin: 0 0 0.7em 0; - text-transform: uppercase; } - -input[type="text"], -input[type="password"], -input[type="email"], -input[type="tel"], -select, -textarea { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; - background: rgba(255, 255, 255, 0.025); - border-radius: 5px; - border: none; - border: solid 2px rgba(255, 255, 255, 0.125); - color: inherit; - display: block; - outline: 0; - padding: 0 1em; - text-decoration: none; - width: 100%; } - input[type="text"]:invalid, - input[type="password"]:invalid, - input[type="email"]:invalid, - input[type="tel"]:invalid, - select:invalid, - textarea:invalid { - box-shadow: none; } - input[type="text"]:focus, - input[type="password"]:focus, - input[type="email"]:focus, - input[type="tel"]:focus, - select:focus, - textarea:focus { - border-color: #5b6ba6; } - -.select-wrapper { - text-decoration: none; - display: block; - position: relative; } - .select-wrapper:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - .select-wrapper:before { - color: rgba(255, 255, 255, 0.125); - content: '\f078'; - display: block; - height: 2.75em; - line-height: 2.75em; - pointer-events: none; - position: absolute; - right: 0; - text-align: center; - top: 0; - width: 2.75em; } - .select-wrapper select::-ms-expand { - display: none; } - -select option { - color: #ffffff; - background: #2e3141; } - -input[type="text"], -input[type="password"], -input[type="email"], -select { - height: 2.75em; } - -textarea { - padding: 0.75em 1em; } - -input[type="checkbox"], -input[type="radio"] { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; - display: block; - float: left; - margin-right: -2em; - opacity: 0; - width: 1em; - z-index: -1; } - input[type="checkbox"] + label, - input[type="radio"] + label { - text-decoration: none; - color: #ffffff; - cursor: pointer; - display: inline-block; - font-size: 1em; - font-family: "Source Sans Pro", Helvetica, sans-serif; - text-transform: none; - letter-spacing: 0; - font-weight: 300; - padding-left: 2.4em; - padding-right: 0.75em; - position: relative; } - input[type="checkbox"] + label:before, - input[type="radio"] + label:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - input[type="checkbox"] + label:before, - input[type="radio"] + label:before { - background: rgba(255, 255, 255, 0.025); - border-radius: 5px; - border: solid 2px rgba(255, 255, 255, 0.125); - content: ''; - display: inline-block; - height: 1.65em; - left: 0; - line-height: 1.58125em; - position: absolute; - text-align: center; - top: 0; - width: 1.65em; } - input[type="checkbox"]:checked + label:before, - input[type="radio"]:checked + label:before { - background: #ffffff; - border-color: #ffffff; - content: '\f00c'; - color: #2e3141; } - input[type="checkbox"]:focus + label:before, - input[type="radio"]:focus + label:before { - border-color: #4c5c96; } - -input[type="checkbox"] + label:before { - border-radius: 5px; } - -input[type="radio"] + label:before { - border-radius: 100%; } - -::-webkit-input-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } - -:-moz-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } - -::-moz-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } - -:-ms-input-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } - -.polyfill-placeholder { - color: rgba(255, 255, 255, 0.35) !important; - opacity: 1.0; } - -/* Box */ -.box { - border-radius: 5px; - border: solid 2px rgba(255, 255, 255, 0.125); - margin-bottom: 2em; - padding: 1.5em; } - .box > :last-child, - .box > :last-child > :last-child, - .box > :last-child > :last-child > :last-child { - margin-bottom: 0; } - .box.alt { - border: 0; - border-radius: 0; - padding: 0; } - -/* Icon */ -.icon { - text-decoration: none; - border-bottom: none; - position: relative; } - .icon:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - .icon > .label { - display: none; } - -/* Image */ -.image { - border-radius: 5px; - border: 0; - display: inline-block; - position: relative; } - .image img { - border-radius: 5px; - display: block; } - .image.left, .image.right { - max-width: 40%; } - .image.left img, .image.right img { - width: 100%; } - .image.left { - float: left; - padding: 0 1.5em 1em 0; - top: 0.25em; } - .image.right { - float: right; - padding: 0 0 1em 1.5em; - top: 0.25em; } - .image.fit { - display: block; - margin: 0 0 2em 0; - width: 100%; } - .image.fit img { - width: 100%; } - .image.main { - display: block; - margin: 0 0 3em 0; - width: 100%; } - .image.main img { - width: 100%; } - -/* List */ -ol { - list-style: decimal; - margin: 0 0 2em 0; - padding-left: 1.25em; } - ol li { - padding-left: 0.25em; } - -ul { - list-style: disc; - margin: 0 0 2em 0; - padding-left: 1em; } - ul li { - padding-left: 0.5em; } - ul.alt { - list-style: none; - padding-left: 0; } - ul.alt li { - border-top: solid 1px rgba(255, 255, 255, 0.125); - padding: 0.5em 0; } - ul.alt li:first-child { - border-top: 0; - padding-top: 0; } - ul.icons { - cursor: default; - list-style: none; - padding-left: 0; } - ul.icons li { - display: inline-block; - padding: 0 1em 0 0; } - ul.icons li:last-child { - padding-right: 0; } - ul.icons li .icon:before { - font-size: 1.25em; } - ul.actions { - cursor: default; - list-style: none; - padding-left: 0; } - ul.actions li { - display: inline-block; - padding: 0 1em 0 0; - vertical-align: middle; } - ul.actions li:last-child { - padding-right: 0; } - ul.actions.small li { - padding: 0 0.5em 0 0; } - ul.actions.vertical li { - display: block; - padding: 1em 0 0 0; } - ul.actions.vertical li:first-child { - padding-top: 0; } - ul.actions.vertical li > * { - margin-bottom: 0; } - ul.actions.vertical.small li { - padding: 0.5em 0 0 0; } - ul.actions.vertical.small li:first-child { - padding-top: 0; } - ul.actions.fit { - display: table; - margin-left: -1em; - padding: 0; - table-layout: fixed; - width: calc(100% + 1em); } - ul.actions.fit li { - display: table-cell; - padding: 0 0 0 1em; } - ul.actions.fit li > * { - margin-bottom: 0; } - ul.actions.fit.small { - margin-left: -0.5em; - width: calc(100% + 0.5em); } - ul.actions.fit.small li { - padding: 0 0 0 0.5em; } - @media screen and (max-width: 640px) { - ul.actions { - margin: 0 0 2em 0; } - ul.actions li { - padding: 1em 0 0 0; - display: block; - text-align: center; - width: 100%; } - ul.actions li:first-child { - padding-top: 0; } - ul.actions li > * { - width: 100%; - margin: 0 !important; } - ul.actions.small li { - padding: 0.5em 0 0 0; } - ul.actions.small li:first-child { - padding-top: 0; } } - ul.contact { - list-style: none; - padding: 0; } - ul.contact li { - text-decoration: none; - margin: 2.5em 0 0 0; - padding: 0 0 0 3.25em; - position: relative; } - ul.contact li:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - ul.contact li:before { - border-radius: 100%; - border: solid 2px rgba(255, 255, 255, 0.125); - display: inline-block; - font-size: 0.8em; - height: 2.5em; - left: 0; - line-height: 2.35em; - position: absolute; - text-align: center; - top: 0; - width: 2.5em; } - ul.contact li:first-child { - margin-top: 0; } - @media screen and (max-width: 736px) { - ul.contact li { - margin: 1.5em 0 0 0; } } - ul.pagination { - cursor: default; - list-style: none; - padding-left: 0; } - ul.pagination li { - display: inline-block; - padding-left: 0; - vertical-align: middle; } - ul.pagination li > .page { - -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; - border-bottom: 0; - border-radius: 5px; - display: inline-block; - height: 1.5em; - line-height: 1.5em; - margin: 0 0.125em; - min-width: 1.5em; - padding: 0 0.5em; - text-align: center; } - ul.pagination li > .page:hover { - background-color: rgba(255, 255, 255, 0.025); } - ul.pagination li > .page.active { - background-color: #4c5c96; } - ul.pagination li:first-child { - padding-right: 0.75em; } - ul.pagination li:last-child { - padding-left: 0.75em; } - @media screen and (max-width: 640px) { - ul.pagination li:nth-child(n+2):nth-last-child(n+2) { - display: none; } - ul.pagination li .button { - width: 100%; } - ul.pagination li:first-child { - width: calc(50% - 2px); - text-align: left; - padding-right: 0.325em; } - ul.pagination li:last-child { - width: calc(50% - 2px); - text-align: right; - padding-left: 0.325em; } } - -dl { - margin: 0 0 2em 0; } - dl dt { - display: block; - font-weight: 600; - margin: 0 0 1em 0; } - dl dd { - margin-left: 2em; } - -/* Table */ -.table-wrapper { - -webkit-overflow-scrolling: touch; - overflow-x: auto; } - -table { - margin: 0 0 2em 0; - width: 100%; } - table tbody tr { - border: solid 1px rgba(255, 255, 255, 0.125); - border-left: 0; - border-right: 0; } - table tbody tr:nth-child(2n + 1) { - background-color: rgba(255, 255, 255, 0.025); } - table td { - padding: 0.75em 0.75em; } - table th { - color: #ffffff; - font-size: 0.9em; - font-weight: 600; - padding: 0 0.75em 0.75em 0.75em; - text-align: left; } - table thead { - border-bottom: solid 2px rgba(255, 255, 255, 0.125); } - table tfoot { - border-top: solid 2px rgba(255, 255, 255, 0.125); } - table.alt { - border-collapse: separate; } - table.alt tbody tr td { - border: solid 1px rgba(255, 255, 255, 0.125); - border-left-width: 0; - border-top-width: 0; } - table.alt tbody tr td:first-child { - border-left-width: 1px; } - table.alt tbody tr:first-child td { - border-top-width: 1px; } - table.alt thead { - border-bottom: 0; } - table.alt tfoot { - border-top: 0; } - -/* Button */ -input[type="submit"], -input[type="reset"], -input[type="button"], -button, -.button { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; - -moz-transition: background-color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; - background-color: transparent; - border-radius: 5px; - border: 0; - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.125); - color: #ffffff !important; - cursor: pointer; - display: inline-block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - height: 3.75em; - letter-spacing: 0.1em; - line-height: 3.75em; - padding: 0 2.25em; - text-align: center; - text-decoration: none; - text-transform: uppercase; - white-space: nowrap; } - input[type="submit"]:hover, - input[type="reset"]:hover, - input[type="button"]:hover, - button:hover, - .button:hover { - background-color: rgba(255, 255, 255, 0.025); } - input[type="submit"]:active, - input[type="reset"]:active, - input[type="button"]:active, - button:active, - .button:active { - background-color: rgba(255, 255, 255, 0.075); } - input[type="submit"].icon:before, - input[type="reset"].icon:before, - input[type="button"].icon:before, - button.icon:before, - .button.icon:before { - margin-right: 0.5em; - color: rgba(255, 255, 255, 0.35); } - input[type="submit"].special, - input[type="reset"].special, - input[type="button"].special, - button.special, - .button.special { - background-color: #4c5c96; - box-shadow: none; } - input[type="submit"].special:hover, - input[type="reset"].special:hover, - input[type="button"].special:hover, - button.special:hover, - .button.special:hover { - background-color: #53639e; } - input[type="submit"].special:active, - input[type="reset"].special:active, - input[type="button"].special:active, - button.special:active, - .button.special:active { - background-color: #45558d; } - input[type="submit"].special.icon:before, - input[type="reset"].special.icon:before, - input[type="button"].special.icon:before, - button.special.icon:before, - .button.special.icon:before { - color: #7985b0; } - input[type="submit"].fit, - input[type="reset"].fit, - input[type="button"].fit, - button.fit, - .button.fit { - display: block; - margin: 0 0 1em 0; - width: 100%; } - input[type="submit"].small, - input[type="reset"].small, - input[type="button"].small, - button.small, - .button.small { - font-size: 0.6em; } - input[type="submit"].big, - input[type="reset"].big, - input[type="button"].big, - button.big, - .button.big { - font-size: 1em; } - input[type="submit"].disabled, input[type="submit"]:disabled, - input[type="reset"].disabled, - input[type="reset"]:disabled, - input[type="button"].disabled, - input[type="button"]:disabled, - button.disabled, - button:disabled, - .button.disabled, - .button:disabled { - opacity: 0.25; } - @media screen and (max-width: 640px) { - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - padding: 0; } } - -/* Features */ -.features { - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin: 0 0 2em 0; } - .features article { - padding: 1.75em 1.75em 0.1em 1.75em ; - background-color: #353849; - border-radius: 5px; - margin: 1.5em 3em 1.5em 0; - width: calc(50% - 1.5em); } - .features article:nth-child(2n) { - margin-right: 0; } - .features article .image { - border-radius: 5px 5px 0 0; - display: block; - margin-bottom: 1.75em; - margin-left: -1.75em; - margin-top: -1.75em; - position: relative; - width: calc(100% + 3.5em); } - .features article .image img { - border-radius: 5px 5px 0 0; - width: 100%; } - @media screen and (max-width: 980px) { - .features article { - margin: 1em 2em 1em 0; - width: calc(50% - 1em); } } - @media screen and (max-width: 736px) { - .features article { - padding: 1.5em 1.5em 0.1em 1.5em ; - margin: 0.875em 1.75em 0.875em 0; - width: calc(50% - 0.875em - 1px); } - .features article .image { - margin-bottom: 1.5em; - margin-left: -1.5em; - margin-top: -1.5em; - width: calc(100% + 3em); } } - @media screen and (max-width: 640px) { - .features { - display: block; } - .features article { - width: 100%; - margin: 0 0 2em 0 !important; } } - -/* Header */ -#header { - -moz-transition: background-color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; - background-color: rgba(53, 56, 73, 0.95); - height: 3.5em; - left: 0; - line-height: 3.5em; - padding: 0 1.25em; - position: fixed; - top: 0; - width: 100%; - z-index: 10000; } - #header h1 { - -moz-transition: opacity 0.2s ease-in-out, visibility 0.2s; - -webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s; - -ms-transition: opacity 0.2s ease-in-out, visibility 0.2s; - transition: opacity 0.2s ease-in-out, visibility 0.2s; - border-bottom: 0; - font-size: 0.8em; - margin-bottom: 0; - opacity: 1; - visibility: visible; } - #header h1 a { - border: 0; } - #header nav { - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 700; - height: 3em; - letter-spacing: 0.1em; - line-height: 3em; - position: absolute; - right: 0.7em; - text-transform: uppercase; - top: 0.7em; } - #header nav a { - border: 0; - display: inline-block; - padding: 0 1em; } - #header nav a:before { - float: right; - margin-left: 0.75em; } - #header nav a[href="#menu"] { - text-decoration: none; - -moz-transition: background-color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out; - border-radius: 5px; - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.125); - padding: 0 1.35em; } - #header nav a[href="#menu"]:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - #header nav a[href="#menu"]:before { - content: '\f0c9'; } - #header nav a[href="#menu"]:hover { - background-color: rgba(255, 255, 255, 0.025); } - #header nav a[href="#menu"]:active { - background-color: rgba(255, 255, 255, 0.075); } - #header.alt { - background-color: transparent; } - #header.alt h1 { - opacity: 0; - visibility: hidden; } - @media screen and (max-width: 736px) { - #header { - height: 2.75em; - line-height: 2.75em; } - #header nav { - top: 0; - right: 0; - height: inherit; - line-height: inherit; } - #header nav a { - height: inherit; - line-height: inherit; } - #header nav a[href="#menu"] { - box-shadow: none; - padding: 0 1em; - border-radius: 0; } - #header nav a[href="#menu"]:hover, #header nav a[href="#menu"]:active { - background-color: inherit; } } - @media screen and (max-width: 640px) { - #header nav a[href="#menu"] { - width: 4em; - white-space: nowrap; - text-indent: 4em; - position: relative; } - #header nav a[href="#menu"]:before { - width: inherit; - position: absolute; - top: 0; - left: 0; - text-indent: 0; - text-align: right; - margin-left: 0; - padding-right: 1.25em; } } - -/* Menu */ -#page-wrapper { - -moz-transition: -moz-filter 0.25s ease; - -webkit-transition: -webkit-filter 0.25s ease; - -ms-transition: -ms-filter 0.25s ease; - transition: filter 0.25s ease; } - -#menu { - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-justify-content: center; - -webkit-justify-content: center; - -ms-justify-content: center; - justify-content: center; - -moz-pointer-events: none; - -webkit-pointer-events: none; - -ms-pointer-events: none; - pointer-events: none; - -moz-transition: opacity 0.35s ease, visibility 0.35s; - -webkit-transition: opacity 0.35s ease, visibility 0.35s; - -ms-transition: opacity 0.35s ease, visibility 0.35s; - transition: opacity 0.35s ease, visibility 0.35s; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - background: rgba(46, 49, 65, 0.8); - cursor: default; - height: 100%; - left: 0; - opacity: 0; - position: fixed; - text-align: center; - top: 0; - visibility: hidden; - width: 100%; } - #menu .inner { - padding: 2.5em 1.5em 0.5em 1.5em ; - -moz-transform: translateY(0.5em); - -webkit-transform: translateY(0.5em); - -ms-transform: translateY(0.5em); - transform: translateY(0.5em); - -moz-transition: opacity 0.35s ease, -moz-transform 0.35s ease; - -webkit-transition: opacity 0.35s ease, -webkit-transform 0.35s ease; - -ms-transition: opacity 0.35s ease, -ms-transform 0.35s ease; - transition: opacity 0.35s ease, transform 0.35s ease; - -webkit-overflow-scrolling: touch; - background: #4c5c96; - border-radius: 5px; - display: block; - max-width: 100%; - opacity: 0; - position: relative; - width: 18em; } - #menu h2 { - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - padding-bottom: 1em; } - #menu .close { - background-image: url("images/close.svg"); - background-position: 75% 25%; - background-repeat: no-repeat; - background-size: 2em 2em; - border: 0; - content: ''; - display: block; - height: 4em; - overflow: hidden; - position: absolute; - right: 0; - text-align: center; - text-indent: 4em; - top: 0; - width: 4em; } - #menu .links { - list-style: none; - margin-bottom: 1.5em; - padding: 0; } - #menu .links li { - padding: 0; } - #menu .links li a { - border-radius: 5px; - border: 0; - display: block; - font-family: Raleway, Helvetica, sans-serif; - font-size: 0.8em; - font-weight: 200; - letter-spacing: 0.1em; - line-height: 1.85em; - padding: 0.75em 0; - text-transform: uppercase; } - #menu .links li a:hover { - background: #45558d; } - @media screen and (max-width: 736px) { - #menu .inner { - max-height: 100%; - overflow-y: auto; - overflow-x: hidden; } - #menu .inner .close { - background-size: 1.5em 1.5em; } } - -body.is-menu-visible #page-wrapper { - -moz-filter: blur(1.5px); - -webkit-filter: blur(1.5px); - -ms-filter: blur(1.5px); - filter: blur(1.5px); } - -body.is-menu-visible #menu { - -moz-pointer-events: auto; - -webkit-pointer-events: auto; - -ms-pointer-events: auto; - pointer-events: auto; - opacity: 1; - visibility: visible; } - body.is-menu-visible #menu .inner { - -moz-transform: translateY(0); - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); - opacity: 1; } - -/* Banner */ -#banner { - padding: 10em 0 4.75em 0 ; } - #banner .inner { - margin: 0 auto; - width: 55em; } - #banner .logo { - -moz-transition: opacity 2s ease, -moz-transform 1s ease; - -webkit-transition: opacity 2s ease, -webkit-transform 1s ease; - -ms-transition: opacity 2s ease, -ms-transform 1s ease; - transition: opacity 2s ease, transform 1s ease; - -moz-transform: translateY(0); - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); - opacity: 1; - margin: 0 0 1.3em 0; } - #banner .logo .icon { - border-radius: 100%; - border: solid 2px rgba(255, 255, 255, 0.125); - cursor: default; - display: inline-block; - font-size: 2em; - height: 2.25em; - line-height: 2.25em; - text-align: center; - width: 2.25em; } - #banner h2 { - -moz-transition: opacity 0.5s ease, -moz-transform 0.5s ease, -moz-filter 0.25s ease; - -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease, -webkit-filter 0.25s ease; - -ms-transition: opacity 0.5s ease, -ms-transform 0.5s ease, -ms-filter 0.25s ease; - transition: opacity 0.5s ease, transform 0.5s ease, filter 0.25s ease; - -moz-transform: translateX(0); - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); - -moz-transition-delay: 0.65s; - -webkit-transition-delay: 0.65s; - -ms-transition-delay: 0.65s; - transition-delay: 0.65s; - -moz-filter: blur(0); - -webkit-filter: blur(0); - -ms-filter: blur(0); - filter: blur(0); - opacity: 1; - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - font-size: 2.25em; - margin-bottom: 0.8em; - padding-bottom: 0.4em; } - #banner p { - -moz-transition: opacity 0.5s ease, -moz-transform 0.5s ease, -moz-filter 0.25s ease; - -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease, -webkit-filter 0.25s ease; - -ms-transition: opacity 0.5s ease, -ms-transform 0.5s ease, -ms-filter 0.25s ease; - transition: opacity 0.5s ease, transform 0.5s ease, filter 0.25s ease; - -moz-transform: translateX(0); - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); - -moz-transition-delay: 0.8s; - -webkit-transition-delay: 0.8s; - -ms-transition-delay: 0.8s; - transition-delay: 0.8s; - -moz-filter: blur(0); - -webkit-filter: blur(0); - -ms-filter: blur(0); - filter: blur(0); - opacity: 1; - font-family: Raleway, Helvetica, sans-serif; - font-size: 1em; - font-weight: 200; - letter-spacing: 0.1em; - line-height: 2; - text-transform: uppercase; } - @media screen and (max-width: 1280px) { - #banner { - padding: 7em 0 8.25em 0 ; - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-position: center, center; - margin-bottom: -6.5em; } } - @media screen and (max-width: 980px) { - #banner { - padding: 12em 3em 12.375em 3em ; - margin-bottom: -4.75em; } - #banner .inner { - width: 100%; } } - @media screen and (max-width: 736px) { - #banner { - padding: 5em 2em 4.25em 2em ; - margin-bottom: -2.5em; } - #banner .logo { - margin: 0 0 1em 0; } - #banner .logo .icon { - font-size: 1.5em; } - #banner h2 { - font-size: 1.5em; } - #banner p { - font-size: 0.8em; } } - body.is-loading #banner .logo { - -moz-transform: translateY(0.5em); - -webkit-transform: translateY(0.5em); - -ms-transform: translateY(0.5em); - transform: translateY(0.5em); - opacity: 0; } - body.is-loading #banner h2 { - opacity: 0; - -moz-transform: translateX(0.25em); - -webkit-transform: translateX(0.25em); - -ms-transform: translateX(0.25em); - transform: translateX(0.25em); - -moz-filter: blur(2px); - -webkit-filter: blur(2px); - -ms-filter: blur(2px); - filter: blur(2px); } - body.is-loading #banner p { - opacity: 0; - -moz-transform: translateX(0.5em); - -webkit-transform: translateX(0.5em); - -ms-transform: translateX(0.5em); - transform: translateX(0.5em); - -moz-filter: blur(2px); - -webkit-filter: blur(2px); - -ms-filter: blur(2px); - filter: blur(2px); } - -/* Wrapper */ -#wrapper > header { - padding: 11em 0 2.25em 0 ; } - #wrapper > header .inner { - margin: 0 auto; - width: 55em; } - #wrapper > header h2 { - border-bottom: solid 2px rgba(255, 255, 255, 0.125); - font-size: 2em; - margin-bottom: 0.8em; - padding-bottom: 0.4em; } - #wrapper > header p { - font-family: Raleway, Helvetica, sans-serif; - font-size: 1em; - font-weight: 200; - letter-spacing: 0.1em; - line-height: 2; - text-transform: uppercase; } - -@media screen and (max-width: 1280px) { - #wrapper > header { - padding: 9em 0 6.25em 0 ; - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-position: center, 0% 30%; - margin-bottom: -6.5em; } } - -@media screen and (max-width: 980px) { - #wrapper > header { - padding: 11em 3em 7.375em 3em ; - background-size: auto, cover; - background-position: center, 0% 0%; - margin-bottom: -4.75em; } - #wrapper > header .inner { - width: 100%; } } - -@media screen and (max-width: 736px) { - #wrapper > header { - padding: 6.5em 2em 3em 2em ; - background-size: auto, 125%; - margin-bottom: -2.5em; } - #wrapper > header h2 { - font-size: 1.25em; } - #wrapper > header p { - font-size: 0.8em; } } - -.wrapper { - background-color: #2e3141; - margin: 6.5em 0; - position: relative; } - .wrapper:before, .wrapper:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%232e3141%3B' /%3E%3C/svg%3E"); } - .wrapper:before { - box-shadow: inset 0 -1px 0 0 #2e3141, 0 1px 0 0 #2e3141; } - .wrapper:after { - box-shadow: inset 0 -1px 0 0 #2e3141, 0 1px 0 0 #2e3141; } - .wrapper:before, .wrapper:after { - background-repeat: no-repeat; - background-size: 100% 100%; - content: ''; - display: block; - height: 6.5em; - position: absolute; - width: 100%; } - .wrapper:before { - left: 0; - top: -6.5em; } - .wrapper:after { - -moz-transform: scaleY(-1); - -webkit-transform: scaleY(-1); - -ms-transform: scaleY(-1); - transform: scaleY(-1); - bottom: -6.5em; - left: 0; } - .wrapper.alt:before { - -moz-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - -ms-transform: scaleX(-1); - transform: scaleX(-1); } - .wrapper.alt:after { - -moz-transform: scaleY(-1) scaleX(-1); - -webkit-transform: scaleY(-1) scaleX(-1); - -ms-transform: scaleY(-1) scaleX(-1); - transform: scaleY(-1) scaleX(-1); } - .wrapper .inner { - padding: 3em 0 1em 0 ; - margin: 0 auto; - width: 55em; } - .wrapper.style2 { - background-color: #353849; } - .wrapper.style2:before, .wrapper.style2:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23353849%3B' /%3E%3C/svg%3E"); } - .wrapper.style2:before { - box-shadow: inset 0 -1px 0 0 #353849, 0 1px 0 0 #353849; } - .wrapper.style2:after { - box-shadow: inset 0 -1px 0 0 #353849, 0 1px 0 0 #353849; } - .wrapper.style3 { - background-color: #3d4051; } - .wrapper.style3:before, .wrapper.style3:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%233d4051%3B' /%3E%3C/svg%3E"); } - .wrapper.style3:before { - box-shadow: inset 0 -1px 0 0 #3d4051, 0 1px 0 0 #3d4051; } - .wrapper.style3:after { - box-shadow: inset 0 -1px 0 0 #3d4051, 0 1px 0 0 #3d4051; } - .wrapper.style4 { - background-color: #454858; } - .wrapper.style4:before, .wrapper.style4:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23454858%3B' /%3E%3C/svg%3E"); } - .wrapper.style4:before { - box-shadow: inset 0 -1px 0 0 #454858, 0 1px 0 0 #454858; } - .wrapper.style4:after { - box-shadow: inset 0 -1px 0 0 #454858, 0 1px 0 0 #454858; } - .wrapper.style5 { - background-color: #4d5060; } - .wrapper.style5:before, .wrapper.style5:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%234d5060%3B' /%3E%3C/svg%3E"); } - .wrapper.style5:before { - box-shadow: inset 0 -1px 0 0 #4d5060, 0 1px 0 0 #4d5060; } - .wrapper.style5:after { - box-shadow: inset 0 -1px 0 0 #4d5060, 0 1px 0 0 #4d5060; } - .wrapper.style6 { - background-color: #555867; } - .wrapper.style6:before, .wrapper.style6:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23555867%3B' /%3E%3C/svg%3E"); } - .wrapper.style6:before { - box-shadow: inset 0 -1px 0 0 #555867, 0 1px 0 0 #555867; } - .wrapper.style6:after { - box-shadow: inset 0 -1px 0 0 #555867, 0 1px 0 0 #555867; } - .wrapper.spotlight { - background-color: #4c5c96; } - .wrapper.spotlight:before, .wrapper.spotlight:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%234c5c96%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight:before { - box-shadow: inset 0 -1px 0 0 #4c5c96, 0 1px 0 0 #4c5c96; } - .wrapper.spotlight:after { - box-shadow: inset 0 -1px 0 0 #4c5c96, 0 1px 0 0 #4c5c96; } - .wrapper.spotlight .inner { - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - -moz-flex-direction: row; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; } - .wrapper.spotlight .image { - border-radius: 100%; - margin: 0 3em 2em 0; - width: 22em; - overflow: hidden; - -ms-flex: 1; } - .wrapper.spotlight .image img { - border-radius: 100%; - width: 100%; } - .wrapper.spotlight .content { - width: 100%; - -ms-flex: 2; } - .wrapper.spotlight:nth-child(2n - 1) .inner { - -moz-flex-direction: row-reverse; - -webkit-flex-direction: row-reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - text-align: right; } - .wrapper.spotlight:nth-child(2n - 1) .image { - margin: 0 0 2em 3em; } - .wrapper.spotlight.style2 { - background-color: #45558d; } - .wrapper.spotlight.style2:before, .wrapper.spotlight.style2:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%2345558d%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style2:before { - box-shadow: inset 0 -1px 0 0 #45558d, 0 1px 0 0 #45558d; } - .wrapper.spotlight.style2:after { - box-shadow: inset 0 -1px 0 0 #45558d, 0 1px 0 0 #45558d; } - .wrapper.spotlight.style3 { - background-color: #3f4e85; } - .wrapper.spotlight.style3:before, .wrapper.spotlight.style3:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%233f4e85%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style3:before { - box-shadow: inset 0 -1px 0 0 #3f4e85, 0 1px 0 0 #3f4e85; } - .wrapper.spotlight.style3:after { - box-shadow: inset 0 -1px 0 0 #3f4e85, 0 1px 0 0 #3f4e85; } - .wrapper.spotlight.style4 { - background-color: #39477c; } - .wrapper.spotlight.style4:before, .wrapper.spotlight.style4:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%2339477c%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style4:before { - box-shadow: inset 0 -1px 0 0 #39477c, 0 1px 0 0 #39477c; } - .wrapper.spotlight.style4:after { - box-shadow: inset 0 -1px 0 0 #39477c, 0 1px 0 0 #39477c; } - .wrapper.spotlight.style5 { - background-color: #324072; } - .wrapper.spotlight.style5:before, .wrapper.spotlight.style5:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23324072%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style5:before { - box-shadow: inset 0 -1px 0 0 #324072, 0 1px 0 0 #324072; } - .wrapper.spotlight.style5:after { - box-shadow: inset 0 -1px 0 0 #324072, 0 1px 0 0 #324072; } - .wrapper.spotlight.style6 { - background-color: #2d3a69; } - .wrapper.spotlight.style6:before, .wrapper.spotlight.style6:after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%232d3a69%3B' /%3E%3C/svg%3E"); } - .wrapper.spotlight.style6:before { - box-shadow: inset 0 -1px 0 0 #2d3a69, 0 1px 0 0 #2d3a69; } - .wrapper.spotlight.style6:after { - box-shadow: inset 0 -1px 0 0 #2d3a69, 0 1px 0 0 #2d3a69; } - @media screen and (max-width: 980px) { - .wrapper { - margin: 4.75em 0; } - .wrapper:before, .wrapper:after { - height: 4.75em; } - .wrapper:before { - top: -4.75em; } - .wrapper:after { - bottom: -4.75em; - left: 0; } - .wrapper .inner { - padding: 3em 3em 1em 3em ; - width: 100%; } - .wrapper.spotlight .image { - margin: 0 2em 2em 0; - width: 32em; } - .wrapper.spotlight:nth-child(2n - 1) .image { - margin: 0 0 2em 2em; } } - @media screen and (max-width: 736px) { - .wrapper { - margin: 2.5em 0; } - .wrapper:before, .wrapper:after { - height: 2.5em; } - .wrapper:before { - top: -2.5em; } - .wrapper:after { - bottom: -2.5em; - left: 0; } - .wrapper .inner { - padding: 2em 2em 0.1em 2em ; } - .wrapper.spotlight .inner { - -moz-align-items: -moz-flex-start; - -webkit-align-items: -webkit-flex-start; - -ms-align-items: -ms-flex-start; - align-items: flex-start; } - .wrapper.spotlight .image { - width: 19em; - margin: 0 1.75em 2em 0; } - .wrapper.spotlight:nth-child(2n - 1) .image { - margin: 0 0 2em 1.75em; } } - @media screen and (max-width: 640px) { - .wrapper.spotlight .inner { - display: block; } - .wrapper.spotlight .image { - margin: 0 0 1em 0 !important; - max-width: 85%; - width: 12em; } } - @media screen and (max-width: 360px) { - .wrapper .inner { - padding: 2em 1.5em 0.1em 1.5em ; } } - -/* Footer */ -#footer .inner { - padding: 5em 0 3em 0 ; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-flex-direction: row; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -moz-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin: 0 auto; - width: 55em; } - #footer .inner > * { - width: 100%; } - #footer .inner form { - margin: 0 3em 0 0; - width: calc(50% - 1.5em); } - #footer .inner .contact { - width: calc(50% - 1.5em); } - #footer .inner .copyright { - border-top: solid 2px rgba(255, 255, 255, 0.125); - list-style: none; - margin: 4em 0 2em 0; - padding: 2em 0 0 0; - width: 100%; } - #footer .inner .copyright li { - border-left: solid 2px rgba(255, 255, 255, 0.125); - color: rgba(255, 255, 255, 0.35); - display: inline-block; - font-size: 0.9em; - line-height: 1; - margin-left: 1em; - padding: 0; - padding-left: 1em; } - #footer .inner .copyright li:first-child { - border-left: 0; - margin-left: 0; - padding-left: 0; } - #footer .inner .copyright li a { - color: inherit; } - -@media screen and (max-width: 1280px) { - #footer { - background-color: #2e3141; - background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/bg.jpg"); - background-size: auto, cover; - background-position: center, center; - margin-top: -6.5em; - padding-top: 6.5em; } } - -@media screen and (max-width: 980px) { - #footer { - margin-top: -4.75em; - padding-top: 4.75em; } - #footer .inner { - padding: 3em 3em 1em 3em ; - display: block; - width: 100%; } - #footer .inner form { - width: 100%; - margin: 0 0 4em 0; } - #footer .inner .contact { - width: 100%; - margin: 0 0 4em 0; } - #footer .inner .copyright { - margin: 4em 0 2em 0; } } - -@media screen and (max-width: 736px) { - #footer { - margin-top: -2.5em; - padding-top: 2.5em; } - #footer .inner { - padding: 2em 2em 0.1em 2em ; } - #footer .inner form { - margin: 0 0 3em 0; } - #footer .inner .contact { - margin: 0 0 3em 0; } } - -@media screen and (max-width: 640px) { - #footer .inner .copyright li { - border-left: 0; - display: block; - margin: 1em 0 0 0; - padding-left: 0; } - #footer .inner .copyright li:first-child { - margin-top: 0; } } - -@media screen and (max-width: 360px) { - #footer .inner { - padding: 2em 1.5em 0.1em 1.5em ; } } diff --git a/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf deleted file mode 100644 index d4de13e..0000000 Binary files a/assets/fonts/FontAwesome.otf and /dev/null differ diff --git a/assets/fonts/Raleway-Bold.ttf b/assets/fonts/Raleway-Bold.ttf deleted file mode 100644 index 55c13df..0000000 Binary files a/assets/fonts/Raleway-Bold.ttf and /dev/null differ diff --git a/assets/fonts/Raleway-ExtraLight.ttf b/assets/fonts/Raleway-ExtraLight.ttf deleted file mode 100644 index 745e8d5..0000000 Binary files a/assets/fonts/Raleway-ExtraLight.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-Light.ttf b/assets/fonts/SourceSansPro-Light.ttf deleted file mode 100644 index f9f9a3a..0000000 Binary files a/assets/fonts/SourceSansPro-Light.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-LightItalic.ttf b/assets/fonts/SourceSansPro-LightItalic.ttf deleted file mode 100644 index 712f984..0000000 Binary files a/assets/fonts/SourceSansPro-LightItalic.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-SemiBold.ttf b/assets/fonts/SourceSansPro-SemiBold.ttf deleted file mode 100644 index 8b7620f..0000000 Binary files a/assets/fonts/SourceSansPro-SemiBold.ttf and /dev/null differ diff --git a/assets/fonts/SourceSansPro-SemiBoldItalic.ttf b/assets/fonts/SourceSansPro-SemiBoldItalic.ttf deleted file mode 100644 index b51e448..0000000 Binary files a/assets/fonts/SourceSansPro-SemiBoldItalic.ttf and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot deleted file mode 100644 index c7b00d2..0000000 Binary files a/assets/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg deleted file mode 100644 index 8b66187..0000000 --- a/assets/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,685 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf deleted file mode 100644 index f221e50..0000000 Binary files a/assets/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff deleted file mode 100644 index 6e7483c..0000000 Binary files a/assets/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.woff2 b/assets/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 7eb74fd..0000000 Binary files a/assets/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/assets/fonts/lg.eot b/assets/fonts/lg.eot new file mode 100644 index 0000000..d7ec00c --- /dev/null +++ b/assets/fonts/lg.eot @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0970881145aecce7668909140fc2f552c680007c147905bae6bf87d0fca9df6c +size 4024 diff --git a/assets/fonts/lg.svg b/assets/fonts/lg.svg new file mode 100644 index 0000000..22b1a1f --- /dev/null +++ b/assets/fonts/lg.svg @@ -0,0 +1,47 @@ + + + + + + +{ + "fontFamily": "lg", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/sachinchoolur/lightGallery", + "copyright": "sachin", + "license": "MLT", + "licenseURL": "http://opensource.org/licenses/MIT", + "version": "Version 1.0", + "fontId": "lg", + "psName": "lg", + "subFamily": "Regular", + "fullName": "lg", + "description": "Font generated by IcoMoon." +} + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/fonts/lg.ttf b/assets/fonts/lg.ttf new file mode 100644 index 0000000..bb7b9cc --- /dev/null +++ b/assets/fonts/lg.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c3cb8b4780e7037479381cda6f640bb12c56b5c8dc0104b03dec0294aeec0e6 +size 3880 diff --git a/assets/fonts/lg.woff b/assets/fonts/lg.woff new file mode 100644 index 0000000..0e92d60 --- /dev/null +++ b/assets/fonts/lg.woff @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78e558964f6a4d4970dad55bc53bf6a7cdc0437d228ee2c60bc6d1dc9e0beefd +size 3956 diff --git a/assets/fonts/roboto-italic_300.ttf b/assets/fonts/roboto-italic_300.ttf new file mode 100644 index 0000000..668c21f --- /dev/null +++ b/assets/fonts/roboto-italic_300.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6121573e61d8ac4d047b34bdf3f360f6d0731a7e70576d789a1e627b0b1fb8ac +size 37232 diff --git a/assets/fonts/roboto-italic_400.ttf b/assets/fonts/roboto-italic_400.ttf new file mode 100644 index 0000000..a0c9f1e --- /dev/null +++ b/assets/fonts/roboto-italic_400.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95319bd317261b6cfd2842c17278e1c10dd95fd1fbb983f2767c10e34efa439d +size 36752 diff --git a/assets/fonts/roboto-italic_500.ttf b/assets/fonts/roboto-italic_500.ttf new file mode 100644 index 0000000..c139b31 --- /dev/null +++ b/assets/fonts/roboto-italic_500.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ff6fb737cb96a286674dceedd3f91978555ef3839a45a8d02f1811e88f9d115 +size 37120 diff --git a/assets/fonts/roboto.css b/assets/fonts/roboto.css new file mode 100644 index 0000000..0a3dcc6 --- /dev/null +++ b/assets/fonts/roboto.css @@ -0,0 +1,37 @@ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: local('Roboto Italic'), local('Roboto-Italic'), url(/fonts/roboto-italic_400.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(/fonts/roboto-italic_500.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(/fonts/roboto_400.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(/fonts/roboto_500.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(/fonts/roboto-italic_300.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(/fonts/roboto_300.ttf) format('truetype'); +} + diff --git a/assets/fonts/roboto_300.ttf b/assets/fonts/roboto_300.ttf new file mode 100644 index 0000000..6313b02 --- /dev/null +++ b/assets/fonts/roboto_300.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ee85c770966bfd58a0c807851e2c14d2c63abadcfb45ce30fbfbe871152caf2 +size 35468 diff --git a/assets/fonts/roboto_400.ttf b/assets/fonts/roboto_400.ttf new file mode 100644 index 0000000..44a6aa5 --- /dev/null +++ b/assets/fonts/roboto_400.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:466989fd178ca6ed13641893b7003e5d6ec36e42c2a816dee71f87b775ea097f +size 35408 diff --git a/assets/fonts/roboto_500.ttf b/assets/fonts/roboto_500.ttf new file mode 100644 index 0000000..becdc74 --- /dev/null +++ b/assets/fonts/roboto_500.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b464107219af95400af44c949574d9617de760e100712d4dec8f51a76c50dda1 +size 35588 diff --git a/assets/images/bg.jpg b/assets/images/banner.jpg similarity index 100% rename from assets/images/bg.jpg rename to assets/images/banner.jpg diff --git a/assets/images/c3woc.png b/assets/images/c3woc.png deleted file mode 100644 index f4f0a11..0000000 --- a/assets/images/c3woc.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d90fd06ce2734c5aec5b1390bcaa4a1fba6ad32ad55ff76b118df6362d738a2 -size 678489 diff --git a/assets/images/home/abschnitt1.jpeg b/assets/images/home/abschnitt1.jpeg new file mode 100644 index 0000000..f8c350c --- /dev/null +++ b/assets/images/home/abschnitt1.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf1cc5bf2690eddde086849c970b944d760b7c1460f0112a475cbf01a1440ee3 +size 900174 diff --git a/assets/images/home/abschnitt2.jpeg b/assets/images/home/abschnitt2.jpeg new file mode 100644 index 0000000..c30923a --- /dev/null +++ b/assets/images/home/abschnitt2.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef6a0e1d2678ac0d92448054af91dd1fbe957ff65d57ecca83fe2cde7cb79837 +size 488255 diff --git a/assets/images/home/abschnitt3.jpeg b/assets/images/home/abschnitt3.jpeg new file mode 100644 index 0000000..565e0ae --- /dev/null +++ b/assets/images/home/abschnitt3.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be56a4dc516063cb9c82951e8136d976a8927bc38c3ec160c34280b632294271 +size 683518 diff --git a/assets/images/icons/android-chrome-192x192.png b/assets/images/icons/android-chrome-192x192.png new file mode 100644 index 0000000..2f9d7e8 --- /dev/null +++ b/assets/images/icons/android-chrome-192x192.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5120b952a9c31901e2a8dcd5d05608b9c14898b91196e6018dd4addda2f6a815 +size 33464 diff --git a/assets/images/icons/android-chrome-512x512.png b/assets/images/icons/android-chrome-512x512.png new file mode 100644 index 0000000..c213c1d --- /dev/null +++ b/assets/images/icons/android-chrome-512x512.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74cc299c2c3b266e40127bd75ef7486b992eeb7ce2351058b91618472ab925e0 +size 103884 diff --git a/assets/images/icons/apple-touch-icon.png b/assets/images/icons/apple-touch-icon.png new file mode 100644 index 0000000..1e36272 --- /dev/null +++ b/assets/images/icons/apple-touch-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56c3807e96f2d6c70a3440af9e6a8bdd6a32a7fd182b5ebf53a21195cd9f5524 +size 47176 diff --git a/assets/images/icons/browserconfig.xml b/assets/images/icons/browserconfig.xml new file mode 100644 index 0000000..9ebcb51 --- /dev/null +++ b/assets/images/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/assets/images/icons/favicon-16x16.png b/assets/images/icons/favicon-16x16.png new file mode 100644 index 0000000..6942594 --- /dev/null +++ b/assets/images/icons/favicon-16x16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da8b94f1efea05d8c5a1a50b99aff0c70b8e94839af6ce578d89194cf4b6b7fd +size 759 diff --git a/assets/images/icons/favicon-32x32.png b/assets/images/icons/favicon-32x32.png new file mode 100644 index 0000000..74b875a --- /dev/null +++ b/assets/images/icons/favicon-32x32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3361813ea588dcdf03f737a30b894b9c2dcdeda937298466e99faf1b3263117e +size 2188 diff --git a/assets/images/icons/favicon.ico b/assets/images/icons/favicon.ico new file mode 100644 index 0000000..f16453a Binary files /dev/null and b/assets/images/icons/favicon.ico differ diff --git a/assets/images/icons/mstile-144x144.png b/assets/images/icons/mstile-144x144.png new file mode 100644 index 0000000..446f15f --- /dev/null +++ b/assets/images/icons/mstile-144x144.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0138ae41d7c55e41152b4c57ae9ae320a23605afaa907a7b3336b8dc36c10095 +size 23728 diff --git a/assets/images/icons/mstile-150x150.png b/assets/images/icons/mstile-150x150.png new file mode 100644 index 0000000..ec93611 --- /dev/null +++ b/assets/images/icons/mstile-150x150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:152cf1c5742cc757d2c982477d1b181cdc94f76771ddd4985663eac6a3220b28 +size 25139 diff --git a/assets/images/icons/mstile-310x310.png b/assets/images/icons/mstile-310x310.png new file mode 100644 index 0000000..b685c46 --- /dev/null +++ b/assets/images/icons/mstile-310x310.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27bc0b6f1261cb4534b5fa5e454eb5515dde36496d9f5e0e5c0f3ce392d808d0 +size 60124 diff --git a/assets/images/icons/mstile-70x70.png b/assets/images/icons/mstile-70x70.png new file mode 100644 index 0000000..a2c7557 --- /dev/null +++ b/assets/images/icons/mstile-70x70.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6389ba3a2d31ebf61712d7f0e067e8f2934bdbecc0703ce326fc1d0a43993ed +size 8089 diff --git a/assets/images/icons/safari-pinned-tab.svg b/assets/images/icons/safari-pinned-tab.svg new file mode 100644 index 0000000..71e2d66 --- /dev/null +++ b/assets/images/icons/safari-pinned-tab.svg @@ -0,0 +1,786 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/icons/site.webmanifest b/assets/images/icons/site.webmanifest new file mode 100644 index 0000000..399b806 --- /dev/null +++ b/assets/images/icons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "C3 Waffel Operation Center", + "short_name": "C3WOC", + "icons": [ + { + "src": "/images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/images/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffda1d", + "background_color": "#191a23", + "display": "standalone" +} diff --git a/assets/images/iron.jpeg b/assets/images/iron.jpeg new file mode 100644 index 0000000..7011deb --- /dev/null +++ b/assets/images/iron.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f33d22859c008739b919285c9a4e0402ee011967aa47038e2a9df5e3857d652 +size 4390804 diff --git a/assets/images/c3woc.svg b/assets/images/logo.svg similarity index 65% rename from assets/images/c3woc.svg rename to assets/images/logo.svg index e71cc18..ca4f71a 100644 --- a/assets/images/c3woc.svg +++ b/assets/images/logo.svg @@ -14,8 +14,8 @@ viewBox="0 0 74 51.999997" version="1.1" id="svg8" - inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="c3woc.svg"> + inkscape:version="0.92.4 (unknown)" + sodipodi:docname="logo.svg"> + transform="matrix(0.38152611,0,0,0.38152611,-40.420925,68.585515)"> + d="m -88.077558,116.65672 2.930508,-3.35508 v 1.07873 l -2.504172,2.80345 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,114.38037 v 0.76869 l -1.764561,2.04447 1.764561,2.06058 v 0.75255 l -2.504172,-2.82284 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,115.14906 v 4.10505 l -1.764561,-2.06058 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-47.875276,60.21464)"> + d="m -84.282622,112.46793 2.930508,-3.35508 v 1.07874 l -2.504177,2.80346 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -81.352114,110.19159 v 0.76872 l -1.76455,2.04442 1.76455,2.06062 v 0.75256 l -2.504177,-2.82286 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -81.352114,110.96031 v 4.10504 l -1.76455,-2.06062 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-36.730289,55.993355)"> + d="m -99.988408,103.6052 -2.923272,3.63123 2.923272,-2.85933 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -102.91891,108.19564 2.930502,-3.35507 v 1.07874 l -2.504172,2.80347 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -99.988408,105.91931 v 0.7687 l -1.764542,2.04445 1.764542,2.06062 v 0.75254 l -2.504172,-2.82284 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -99.988408,106.68801 v 4.10507 l -1.764542,-2.06062 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -103.67326,99.343488 2.92325,3.631262 -2.92325,-2.85933 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-47.875276,51.732327)"> + d="m -100.27488,94.805778 -2.77607,3.952453 2.8387,-3.167265 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -103.1532,99.486163 2.93052,-3.355084 v 1.078755 l -2.50416,2.803456 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -88.801142,99.366441 2.923275,3.631259 -2.923275,-2.85935 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,95.127706 -2.923268,3.631241 2.923268,-2.859301 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -88.077558,99.718133 2.930508,-3.355064 v 1.07874 l -2.504172,2.803451 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,97.441809 v 0.768686 l -1.764561,2.044445 1.764561,2.06063 v 0.75254 l -2.504172,-2.82285 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,98.210495 v 4.105075 l -1.764561,-2.06063 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,-33.039652,51.750931)"> + d="m -77.005651,103.96913 2.93051,-3.35507 v 1.07875 l -2.504178,2.80347 z" + style="fill:#cb7b01;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -74.075141,101.69281 v 0.7687 l -1.764555,2.04445 1.764555,2.06059 v 0.75257 l -2.504178,-2.82284 z" + style="fill:#db8c0e;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -74.075141,102.46151 v 4.10504 l -1.764555,-2.06059 z" + style="fill:#e09511;fill-opacity:1;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -85.14705,112.06625 -2.923268,3.63125 2.923268,-2.85932 z" + style="fill:#fdf198;stroke:none;stroke-width:0.10094545px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + transform="matrix(0.38152611,0,0,0.38152611,67.95749,31.058772)"> + d="m 119.21965,78.35078 c -1.42346,-0.960143 -2.17165,-2.512485 -2.31058,-4.794121 -0.10357,-1.700279 0.0664,-2.981593 0.79774,-6.013602 0.65312,-2.707852 0.51202,-3.272122 0.78204,-4.854079 l 0.0361,-1.394721 -0.20214,-0.371382 c -0.11117,-0.204254 -0.22149,-0.369248 -0.24518,-0.366648 -0.0734,0.008 -0.96384,1.064492 -1.50486,1.785329 -1.17974,1.571841 -1.84931,3.122277 -1.97124,4.564603 l -0.0472,0.558074 -0.38069,0.07902 c 0.67061,-5.435637 2.69494,-6.289677 3.64472,-7.348314 0.98573,-1.098691 1.46943,0.553646 0.41597,6.09459 -0.64303,3.360127 -0.94923,4.630248 -0.7581,5.675269 0.33011,1.804765 1.80293,4.322612 2.65456,5.239692 0.20524,0.22101 0.21159,0.248407 0.16036,0.691875 -0.0292,0.253966 -0.0813,0.535495 -0.11528,0.62562 -0.0977,0.257841 -0.40064,0.203583 -0.95628,-0.171217 z m -6.52865,-7.220045 -0.31849,-0.0283 0.0393,-0.291907 c 0.9267,0.103334 3.00996,-0.361964 4.06226,-0.512202 0,0.816156 0.20387,0.531886 -1.68482,0.738424 -1.32812,0.145245 -1.45753,0.151036 -2.09811,0.09409 z m 6.55051,-1.354269 c 5.78737,-1.463515 4.07843,-7.855836 4.65428,-9.204229 0.33431,-0.78282 2.79063,1.845147 5.82334,-0.357909 0.26056,0.538222 0.20833,0.633197 -0.47401,0.862107 -1.1965,0.401417 -2.7731,0.418755 -4.35321,0.04784 -0.48675,-0.114268 -0.66468,-0.13066 -0.72828,-0.06717 -0.0955,0.0954 -0.10064,0.723103 -0.0144,1.752044 0.0485,0.577216 0.032,0.82859 -0.10008,1.516837 -0.40118,2.09209 -1.18509,3.623205 -2.47101,4.826325 -0.50722,0.474567 -0.69163,0.599761 -1.0249,0.695759 -0.22354,0.06441 -0.5942,0.211303 -0.8237,0.326472 l -0.41729,0.209415 c -0.0569,-0.0842 -0.0588,-0.364269 -0.0706,-0.607536 z m -4.10074,-12.429117 c -0.1096,-0.03301 -0.31442,-0.131178 -0.45518,-0.218168 -0.21,-0.129786 -0.2827,-0.3178 -0.2827,-0.517322 2.39074,1.033518 4.3723,0.09729 6.00016,-1.739821 1.34875,-1.522125 2.07185,-3.458322 2.51877,-4.91274 0.0975,0.388271 -0.46216,2.258086 -0.99627,3.328867 -1.03168,2.068253 -2.76351,3.475758 -4.91048,3.990892 -0.59733,0.143333 -1.51418,0.176722 -1.8743,0.0683 z m -3.07804,-2.214721 c -0.4745,-0.117272 -0.75984,-0.271106 -1.10291,-0.594653 l -0.27956,-0.263654 0.17048,-0.138025 c 0.26388,-0.213691 0.91189,0.859697 1.9454,0.747645 0.52071,-0.05647 1.33483,-0.194599 1.86074,-0.341238 2.0062,-0.559407 3.03992,-0.919903 4.64111,-2.572556 2.14599,-2.427525 2.46057,-4.36392 2.51637,-4.138004 0.1905,0.771233 -2.5322,5.605607 -4.85666,6.446283 -0.76236,0.284335 -0.78306,0.254538 -2.42875,0.59755 -1.85178,0.385967 -1.91595,0.392642 -2.46623,0.256656 z m 0.0851,-2.973812 c -0.98698,0.04093 -1.56121,-0.07363 -2.05142,-0.409267 -0.55663,-0.191036 2.05142,0.409267 3.92012,-0.07714 2.72557,-0.709434 5.03449,-2.355098 4.94293,-2.26449 -1.65464,1.637248 -4.58651,2.842436 -6.81163,2.750892 z" + style="display:inline;fill:#cf7816;fill-opacity:1;stroke-width:0.07223411" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.27334267" + d="m 112.82162,44.072359 c 1.1049,1.087093 2.14906,2.840619 1.42908,3.514032 -0.91273,0.734711 -1.04567,-2.098977 -3.08234,-5.234932 0.41233,0.476493 0.81273,1.043158 1.27336,1.72152 0.57522,0.847147 1.11872,1.922767 1.48681,2.895937 0.0289,-1.132412 -0.64812,-1.968698 -1.10691,-2.896557 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 115.30968,46.374025 c -0.89441,-1.755838 -4.64676,-8.108029 -5.89761,-7.05343 -0.0366,0.0309 -0.053,-0.08057 -0.0782,-0.122725 0.0906,-0.11209 0.18705,-0.222729 0.51046,-0.276627 1.18892,-0.313872 4.65362,4.78594 5.46538,7.452783 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 117.46033,46.089299 c -0.155,-0.03226 -0.32649,-0.743399 -0.36047,-0.874506 -0.53804,-2.076711 -2.31478,-5.069557 -2.94275,-5.609659 0.87005,1.30839 1.78448,3.374207 2.17178,4.244373 0.3172,0.712718 0.49548,2.007054 0.97009,2.379181 0.17866,0.126924 0.34129,0.143726 0.43242,0.13386 0.0995,-0.05039 0.29932,-0.15647 0.42136,-0.655585 0.094,-1.008607 -0.49847,-3.066078 -1.35509,-4.759843 -0.0782,-0.154665 -0.25662,-0.512125 -0.29632,-0.49744 0,0 -0.0558,0.05818 -0.0326,0.138918 0.27326,0.776914 1.36541,3.497184 1.45704,3.986991 0.0777,0.452689 0.22655,0.964007 -0.004,1.242182 -0.18337,0.169144 -0.23918,0.250503 -0.46003,0.271538 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 120.88634,43.826191 c 0.0928,0.241624 -0.0854,0.634097 -0.26931,1.152583 -0.34681,0.921584 -1.05219,1.409677 -1.30975,1.684546 -0.91394,0.690474 -1.47267,0.907379 -2.20871,1.360723 l -1.17741,0.596087 c -0.48205,0.194491 -2.12046,0.813933 -3.51434,0.903562 -0.36929,0.02374 -2.3093,-0.03735 -3.77403,-0.71035 -0.36779,-0.168981 -0.42796,0.0071 -0.23735,0.169931 0.40697,0.347984 1.21233,0.544092 2.02515,0.650068 0.2314,0.03016 1.84989,0.09714 2.25331,0.03583 1.31625,-0.208588 2.23176,-0.41129 3.74022,-1.178496 0.46236,-0.220643 0.91995,-0.417328 1.39327,-0.692852 0.58634,-0.321618 1.17699,-0.682045 1.76926,-1.056932 0.3766,-0.241078 0.71659,-0.603302 0.94773,-1.000308 0.14747,-0.357733 0.23812,-0.710735 0.35395,-1.065835 0.17741,-0.584315 0.069,-0.714119 0.008,-0.848545 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 92.359508,51.424744 c 0.927662,-0.613849 3.163592,-1.345145 4.994846,-1.925527 5.699326,-1.589632 6.330846,-1.396833 9.848606,-1.78664 1.8478,-0.06317 2.91665,0.131286 4.05442,0.402016 -0.96677,-0.02474 -1.71487,-0.195746 -2.98176,-0.08709 -2.19461,0.330922 -3.54258,0.392009 -5.30881,0.584127 -4.213649,0.495627 -7.089793,1.863525 -10.607302,2.813136 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 110.39945,43.577245 c 0.42958,-2.06738 -3.67467,-3.661442 -7.69483,-4.31076 1.03011,0.333334 1.60994,0.445671 3.08564,0.907326 2.55361,0.999414 3.57792,1.133475 4.60919,3.403434 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 110.24658,45.20152 c -0.38467,-1.185481 -1.50194,-1.829036 -2.38491,-1.850275 -3.68574,-0.149393 -6.09496,0.07666 -9.06334,0.138275 3.82085,0.567495 10.46826,-0.636371 11.44825,1.712008 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.2733427" + d="m 107.53322,45.753017 c -5.77486,-0.596794 -16.995684,0.672171 -19.29788,1.853698 2.937519,-2.011079 14.68966,-2.919285 19.29788,-1.853698 z" /> + transform="matrix(1.7874224,0,0,1.7874224,-46.197839,-60.855823)"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 72.543733,74.789652 c -0.36515,0.452289 -0.815365,0.79876 -1.350645,1.039428 -0.531129,0.240672 -1.170143,0.361009 -1.917041,0.361009 -0.668063,0 -1.269731,-0.114127 -1.805012,-0.342334 -0.531128,-0.228221 -0.985494,-0.545654 -1.363093,-0.952296 -0.3776,-0.406642 -0.668061,-0.892133 -0.871383,-1.45646 -0.199174,-0.564322 -0.298762,-1.180514 -0.298762,-1.848573 0,-0.676361 0.107888,-1.294631 0.323657,-1.854808 0.215774,-0.564327 0.518681,-1.049811 0.90873,-1.456454 0.394197,-0.406645 0.863084,-0.722006 1.406663,-0.946073 0.543577,-0.228218 1.145247,-0.34233 1.805009,-0.34233 0.65561,0 1.236536,0.107867 1.742767,0.323654 0.510383,0.215772 0.943998,0.497934 1.300854,0.846488 -4.829228,-2.256434 -7.412928,0.637269 -7.454665,3.437133 0.07829,2.721819 2.241762,5.996977 7.411799,3.025045 0,0 0.111642,0.109303 0.16112,0.166571 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 79.335667,73.420324 c 0,0.448141 -0.08299,0.844418 -0.248968,1.188823 -0.165982,0.344404 -0.390048,0.634867 -0.672211,0.871383 -0.282161,0.232363 -0.609969,0.408716 -0.983419,0.529054 -0.3693,0.12033 -0.761422,0.180505 -1.176368,0.180505 -0.45229,0 -0.846489,-0.05188 -1.182592,-0.155613 -0.336108,-0.103747 -0.62864,-0.25726 -0.877608,-0.460588 -0.80124,-0.673862 -1.097573,-1.686168 -1.085264,-1.76194 0.0078,-0.04753 0.572592,0.500816 1.410663,1.488034 0.448413,0.528213 1.480077,0.477532 2.176091,0.451461 1.174398,-0.04397 2.46239,-1.110959 2.639676,-2.331123 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 88.591983,76.090503 -1.96684,-6.149484 c -0.05395,-0.149375 -0.103746,-0.331963 -0.149376,-0.547729 -0.02491,0.103725 -0.0498,0.20125 -0.0747,0.292539 -0.02491,0.09129 -0.05188,0.176347 -0.08092,0.25519 l -1.985512,6.149484 h -1.518689 l -2.788429,-9.000155 c 0.29267,0.0068 0.385625,0.002 0.385625,0.002 0.163656,0.181021 0.37839,1.132922 1.23903,4.410351 0.112877,0.429855 0.86107,2.883966 1.2745,4.254529 0.103422,0.342872 0.765101,0.144494 0.985839,0.110963 0.477176,-0.07246 0.442886,-1.033335 1.267676,-3.657359 0.286675,-0.912037 1.216661,-4.229922 1.59438,-3.589591 1.081142,2.850636 1.940274,6.749387 1.817411,7.469343 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 102.08738,73.426557 c -0.21577,0.560175 -0.52286,1.045663 -0.92121,1.456455 -0.39835,0.410791 -0.8776,0.732377 -1.43779,0.964743 -0.560172,0.228219 -1.182593,0.342334 -1.867249,0.342334 -0.680504,0 -1.300848,-0.114127 -1.861024,-0.342334 -0.560175,-0.232366 -1.04151,-0.553952 -1.444007,-0.964743 -0.398347,-0.410792 -0.707484,-0.89628 -0.927399,-1.456455 1.278335,1.766799 5.29785,4.217846 8.458679,0 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#cf7816;fill-opacity:1;stroke:none;stroke-width:0.31120858" + d="m 110.98287,74.789652 c -0.36514,0.452289 -0.81535,0.79876 -1.35062,1.039428 -0.53115,0.240672 -1.17016,0.361009 -1.91705,0.361009 -0.66807,0 -1.26975,-0.114127 -1.80502,-0.342334 -0.53111,-0.228221 -0.98548,-0.545654 -1.36309,-0.952296 -0.3776,-0.406642 -0.66805,-0.892133 -0.87138,-1.45646 -0.19916,-0.564322 -0.29876,-1.180514 -0.29876,-1.848573 0.56374,2.515119 1.8135,5.920729 7.42714,3.005606 0,0 0.13171,0.144515 0.17878,0.19362 z" /> + transform="matrix(0.42743884,0,0,0.42743884,64.811717,26.577986)"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 117.72613,74.007381 q -0.009,-0.0059 -0.015,-0.01268 -0.004,-0.0059 -0.007,-0.01844 -6.6e-4,-0.01198 0.004,-0.02391 0.005,-0.01197 0.0137,-0.02873 0.008,-0.01663 0.0127,-0.03933 0.004,-0.02219 0.002,-0.05423 -0.003,-0.041 -0.0219,-0.07038 -0.0175,-0.02943 -0.0472,-0.04758 -0.0295,-0.01751 -0.0702,-0.02386 -0.04,-0.0065 -0.0897,-0.0014 -0.0518,0.0052 -0.0909,0.01939 -0.0393,0.01519 -0.0648,0.03862 -0.0249,0.02341 -0.0369,0.05431 -0.0108,0.0309 -0.007,0.06808 0.003,0.03712 0.0144,0.05897 0.0122,0.0225 0.0237,0.03712 0.0126,0.01483 0.0228,0.02507 0.0108,0.01091 0.012,0.02554 0.002,0.01894 -0.012,0.02974 l -0.0524,0.05013 q -0.0327,-0.02295 -0.0564,-0.05116 -0.0229,-0.02831 -0.0387,-0.05989 -0.015,-0.03098 -0.0233,-0.06515 -0.008,-0.0335 -0.0108,-0.06755 -0.005,-0.05988 0.0108,-0.114858 0.0177,-0.05511 0.0567,-0.09881 0.039,-0.04378 0.0986,-0.07293 0.0602,-0.02865 0.13954,-0.03616 0.0712,-0.0069 0.13358,0.0073 0.0629,0.01501 0.11095,0.05045 0.0484,0.03571 0.0792,0.09161 0.0309,0.05614 0.0381,0.132414 0.007,0.07245 -0.0108,0.128837 -0.0182,0.05696 -0.0574,0.104613 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 117.85762,74.160454 q 0.0664,-0.0014 0.11967,0.0168 0.054,0.01843 0.093,0.05283 0.04,0.03493 0.0649,0.08389 0.0257,0.04955 0.0359,0.109408 0.0108,0.06234 9.1e-4,0.115358 -0.008,0.05357 -0.0346,0.09448 -0.0254,0.04065 -0.0643,0.06684 -0.0392,0.02651 -0.0885,0.03499 -0.0432,0.0073 -0.0778,0.0032 -0.0338,-0.0032 -0.0614,-0.0177 -0.0275,-0.01395 -0.0489,-0.03796 -0.0213,-0.02405 -0.0383,-0.05572 -0.012,0.08545 -0.0572,0.134324 -0.0454,0.04888 -0.12478,0.0624 -0.0675,0.01145 -0.12341,-0.0052 -0.0559,-0.01609 -0.0989,-0.05217 -0.0421,-0.03646 -0.0698,-0.08949 -0.0275,-0.05245 -0.0382,-0.114806 -0.012,-0.06798 -0.004,-0.121187 0.007,-0.05315 0.0311,-0.09582 0.0243,-0.04254 0.064,-0.07635 0.0398,-0.03368 0.0948,-0.06234 l 0.0395,0.06324 q 0.0158,0.02491 0.0142,0.04888 -6.6e-4,0.02457 -0.0192,0.03853 -0.0198,0.01483 -0.0388,0.03162 -0.0189,0.01734 -0.0325,0.03892 -0.0131,0.02155 -0.0193,0.0483 -0.005,0.02722 3.9e-4,0.0622 0.007,0.03933 0.0243,0.0665 0.0181,0.02711 0.0419,0.04289 0.0242,0.01644 0.0506,0.02155 0.0273,0.0059 0.0529,0.0014 0.0325,-0.0052 0.0576,-0.0168 0.0255,-0.01145 0.0407,-0.03642 0.0151,-0.02496 0.0185,-0.06798 0.003,-0.04236 -0.008,-0.110946 l 0.10974,-0.01869 q 0.0108,0.05665 0.0267,0.09237 0.0163,0.03571 0.0376,0.05465 0.0219,0.01927 0.0484,0.02388 0.0265,0.0044 0.0564,-6.46e-4 0.0637,-0.01091 0.0905,-0.05206 0.0268,-0.04126 0.0168,-0.100449 -0.004,-0.02751 -0.0168,-0.04922 -0.0108,-0.02179 -0.0288,-0.03815 -0.0169,-0.01554 -0.0377,-0.02483 -0.0208,-0.0092 -0.0443,-0.0118 -0.0303,-0.0059 -0.0429,-0.02173 -0.012,-0.01536 -0.0125,-0.04734 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.24965,75.759742 -0.68071,-0.02484 -0.0336,-0.120724 q -0.005,-0.02075 0.0189,-0.03609 l 0.3303,-0.2127 q 0.0168,-0.01042 0.0332,-0.02039 0.0173,-0.0092 0.0346,-0.01753 -0.0192,0.0014 -0.0394,0.002 -0.0195,0.0014 -0.0394,3.29e-4 l -0.39198,-0.01376 q -0.0288,-1.12e-4 -0.0359,-0.02491 l -0.0324,-0.115843 0.57036,-0.372059 0.0335,0.120096 q 0.004,0.01644 -1.6e-4,0.03019 -0.004,0.01358 -0.0156,0.02088 L 117.6922,75.1569 q -0.0255,0.0143 -0.0504,0.02659 -0.0247,0.01268 -0.0498,0.02361 0.028,-0.0014 0.0563,-6.46e-4 0.0284,6.46e-4 0.0582,0.0014 l 0.36411,0.01042 q 0.013,3.84e-4 0.0242,0.0082 0.0108,0.0092 0.0152,0.02405 l 0.0185,0.06641 q 0.004,0.0159 -6.6e-4,0.02903 -0.004,0.01359 -0.0155,0.02088 l -0.30732,0.193821 q -0.0253,0.01571 -0.0501,0.02962 -0.0243,0.01465 -0.0486,0.02865 0.0541,-0.0065 0.11299,-0.0071 l 0.35964,-6.46e-4 q 0.0135,0.0014 0.0244,0.0096 0.0108,0.0092 0.0152,0.02399 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.42714,76.020155 q 0.033,0.06428 0.0388,0.127283 0.005,0.06362 -0.0131,0.120366 -0.0187,0.05743 -0.064,0.105828 -0.0448,0.04857 -0.11298,0.08337 -0.0687,0.03518 -0.13434,0.04307 -0.0657,0.0078 -0.12374,-0.01 -0.0579,-0.01734 -0.10585,-0.05961 -0.0476,-0.04169 -0.0804,-0.105959 -0.0331,-0.06479 -0.0394,-0.128409 -0.005,-0.06362 0.0134,-0.121242 0.0198,-0.05702 0.0645,-0.106099 0.0448,-0.04857 0.1136,-0.08364 0.0682,-0.03485 0.13376,-0.04274 0.0659,-0.0073 0.12322,0.01019 0.0576,0.0183 0.10551,0.06046 0.0479,0.04229 0.081,0.107096 z m -0.48846,0.249652 q 0.0369,0.07212 0.10281,0.08171 0.0663,0.01 0.15984,-0.03763 0.0936,-0.04777 0.1247,-0.107781 0.0316,-0.05941 -0.004,-0.131534 -0.0374,-0.07324 -0.10509,-0.08341 -0.0669,-0.0096 -0.15985,0.03763 -0.0928,0.04754 -0.1241,0.107477 -0.0302,0.06027 0.007,0.133502 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.75095,76.858923 q -0.0108,-0.0025 -0.0186,-0.0065 -0.007,-0.0038 -0.0131,-0.01464 -0.005,-0.01073 -0.004,-0.02405 9.2e-4,-0.01358 0.002,-0.03168 9.1e-4,-0.01834 -0.002,-0.04132 -0.003,-0.02255 -0.0176,-0.05135 -0.0186,-0.03654 -0.0465,-0.0573 -0.0269,-0.02095 -0.0615,-0.02684 -0.034,-0.0052 -0.0742,0.0038 -0.0395,0.0088 -0.084,0.03155 -0.046,0.02367 -0.0775,0.0516 -0.0308,0.02852 -0.0461,0.05983 -0.0147,0.03098 -0.0143,0.06407 9.2e-4,0.03279 0.0183,0.06602 0.0171,0.03329 0.0352,0.04947 0.019,0.01644 0.0357,0.02574 0.0174,0.0092 0.0304,0.01502 0.0139,0.0065 0.0205,0.01933 0.008,0.01699 2e-4,0.03193 l -0.0301,0.06591 q -0.0389,-0.0092 -0.0712,-0.02684 -0.032,-0.01771 -0.0581,-0.04139 -0.0255,-0.02322 -0.0457,-0.05193 -0.0199,-0.0281 -0.0356,-0.05859 -0.0274,-0.05357 -0.032,-0.110927 -0.003,-0.05774 0.0163,-0.112771 0.0201,-0.05509 0.0647,-0.104136 0.0453,-0.04874 0.11638,-0.08507 0.0638,-0.03251 0.12695,-0.04216 0.0641,-0.0092 0.12176,0.0059 0.058,0.01554 0.10745,0.05592 0.0493,0.04081 0.0842,0.109049 0.0331,0.06481 0.037,0.123905 0.003,0.05969 -0.0149,0.118417 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 118.56107,77.17685 q 0.0167,-0.01042 0.0355,-0.01413 0.0189,-0.0032 0.0366,6.47e-4 0.0174,0.0045 0.0333,0.01502 0.0159,0.01091 0.0267,0.02811 0.0108,0.01698 0.0134,0.03558 0.003,0.01902 -6.3e-4,0.03654 -0.003,0.01791 -0.0148,0.03389 -0.0108,0.0159 -0.0277,0.02625 -0.0173,0.01091 -0.0362,0.01377 -0.0184,0.0025 -0.0362,-0.002 -0.0174,-0.0045 -0.0327,-0.01518 -0.0155,-0.01042 -0.0263,-0.02751 -0.0108,-0.01698 -0.0137,-0.03615 -0.003,-0.01869 6.4e-4,-0.03615 0.004,-0.01734 0.0144,-0.03291 0.0108,-0.01536 0.0284,-0.02612 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 119.35425,77.477323 q 0.002,-0.04165 -0.0108,-0.07302 -0.0138,-0.03085 -0.0401,-0.05548 -0.026,-0.0242 -0.0559,-0.03383 -0.0299,-0.0096 -0.0631,-0.0038 -0.0329,0.0059 -0.0694,0.0289 -0.0359,0.02275 -0.0742,0.06396 -0.0388,0.04172 -0.0594,0.07687 -0.0196,0.03512 -0.0246,0.06532 -0.004,0.02974 0.005,0.05477 0.0108,0.02471 0.033,0.04546 0.0358,0.03323 0.0746,0.04165 0.0389,0.0084 0.0865,0.0014 z m 0.42571,-0.227788 -0.64081,0.688053 -0.0699,-0.0651 q -0.0226,-0.02115 -0.009,-0.04748 l 0.033,-0.0549 q -0.0593,0.0059 -0.1158,-0.0084 -0.0559,-0.01413 -0.10563,-0.06027 -0.0388,-0.03622 -0.0561,-0.08259 -0.0173,-0.04643 -0.0125,-0.09896 0.005,-0.05258 0.0351,-0.110052 0.0298,-0.05703 0.084,-0.11536 0.0491,-0.05283 0.10573,-0.0848 0.0566,-0.03203 0.11446,-0.04036 0.0579,-0.0085 0.11264,0.008 0.0553,0.0159 0.10194,0.0595 0.0398,0.03705 0.0565,0.07591 0.0166,0.03886 0.0189,0.08079 l 0.23332,-0.250493 z" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Lato;-inkscape-font-specification:'Lato Bold';letter-spacing:0px;word-spacing:0px;fill:#fdf198;fill-opacity:1;stroke:none;stroke-width:0.03163674" + d="m 119.89612,77.970785 q 0.019,-0.02361 0.0289,-0.04985 0.0108,-0.0264 0.0108,-0.05278 -3.7e-4,-0.02645 -0.0139,-0.05206 -0.0126,-0.02567 -0.0397,-0.04758 -0.0526,-0.04254 -0.10748,-0.03724 -0.0542,0.0052 -0.10713,0.05405 z m -0.291,-0.114142 q -0.0285,0.0412 -0.0406,0.07854 -0.012,0.03675 -0.009,0.06972 0.003,0.03251 0.0195,0.06135 0.0175,0.0287 0.0471,0.05265 0.0295,0.02386 0.0561,0.03402 0.0273,0.01074 0.0496,0.01502 0.0232,0.0044 0.0405,0.0073 0.0177,0.0032 0.0291,0.01233 0.0152,0.01233 0.0135,0.02962 l -6.5e-4,0.07256 q -0.0394,0.0073 -0.0775,0.0032 -0.0377,-0.0044 -0.0733,-0.01698 -0.0346,-0.01252 -0.0663,-0.03168 -0.0312,-0.01881 -0.0578,-0.04023 -0.0527,-0.04254 -0.0839,-0.09641 -0.0308,-0.05438 -0.037,-0.115324 -0.005,-0.06155 0.0159,-0.127191 0.0217,-0.06617 0.0755,-0.132576 0.0419,-0.0516 0.0951,-0.0834 0.0538,-0.03227 0.11177,-0.04061 0.059,-0.0084 0.11967,0.008 0.0612,0.01698 0.11772,0.06273 0.0476,0.03862 0.0756,0.08647 0.028,0.04778 0.0333,0.100873 0.005,0.05237 -0.0128,0.108442 -0.0175,0.0558 -0.0618,0.110445 -0.0223,0.02762 -0.0361,0.03266 -0.0135,0.0044 -0.0302,-0.0092 z" /> diff --git a/assets/images/overlay.png b/assets/images/overlay.png deleted file mode 100644 index bf06802..0000000 --- a/assets/images/overlay.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29104d8dba9179915cd8e216cd8b39dce3f9d66993429a9108d2ab3797782a43 -size 4385 diff --git a/assets/images/pic01.jpg b/assets/images/pic01.jpg deleted file mode 100644 index 73767d9..0000000 --- a/assets/images/pic01.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:78832e1aa008b77a6d201ea3399a31990d2cd13d6b5106d668a80b126a4e662d -size 3313 diff --git a/assets/images/pic02.jpg b/assets/images/pic02.jpg deleted file mode 100644 index 56bc9a1..0000000 --- a/assets/images/pic02.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:33d9806555eb7bf323d6cee4060c5e56a04c638c44d320a62e9980656bf840ae -size 3711 diff --git a/assets/images/pic03.jpg b/assets/images/pic03.jpg deleted file mode 100644 index c713b2e..0000000 --- a/assets/images/pic03.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81749c7fa5d2d54f9a29c9fc57d81724c7b0936a21db84d1daaf57a0dbce5647 -size 3855 diff --git a/assets/images/pic04.jpg b/assets/images/pic04.jpg deleted file mode 100644 index 17bf55f..0000000 --- a/assets/images/pic04.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:89b4eba71b0a1cc5128069cec406aadf4d5479317e62c7c9f5b00427f2a8c7c6 -size 5677 diff --git a/assets/images/pic05.jpg b/assets/images/pic05.jpg deleted file mode 100644 index 28b717b..0000000 --- a/assets/images/pic05.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ffe865f3c75fe7e132d47984d8e2406620294df21d8abc0bf8384e8f33a16346 -size 5936 diff --git a/assets/images/pic06.jpg b/assets/images/pic06.jpg deleted file mode 100644 index 832dfbc..0000000 --- a/assets/images/pic06.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b79fb0808ec98853f8ae57af4dff88f235b42c6569ace4e679923a0b69bc9e62 -size 5887 diff --git a/assets/images/pic07.jpg b/assets/images/pic07.jpg deleted file mode 100644 index 5f21fea..0000000 --- a/assets/images/pic07.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51a8b2168fc4c6e1edc741b1208a066a4c7dab1cb20b3a518493e98864bd4d88 -size 6325 diff --git a/assets/images/pic08.jpg b/assets/images/pic08.jpg deleted file mode 100644 index 3213452..0000000 --- a/assets/images/pic08.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b58f2f223fcddb42f5a6c5831e1aa5a3752a3131996e693a7cf9ba93565e78ce -size 10066 diff --git a/assets/images/tmp.jpg b/assets/images/tmp.jpg deleted file mode 100644 index b826b0e..0000000 --- a/assets/images/tmp.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:67eb4d0286bb4c1f9edf03d54c008965f2a9c3a243121084e43fc10132b40f70 -size 286022 diff --git a/assets/images/tmp2.jpg b/assets/images/tmp2.jpg deleted file mode 100644 index 59b8a80..0000000 --- a/assets/images/tmp2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c37c24e0834c2ec7b306d1fff0c568ead9f1e657b8bdb5867e996c0d5f181fc2 -size 380468 diff --git a/assets/images/waffel.jpeg b/assets/images/waffel.jpeg new file mode 100644 index 0000000..ca6b9a6 --- /dev/null +++ b/assets/images/waffel.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00ee04ef6368e383d3010d0fffe7799a5212aa2a9247527bbb072bf61c809e59 +size 7212172 diff --git a/assets/images/waffle.jpg b/assets/images/waffle.jpg deleted file mode 100644 index 5f43383..0000000 --- a/assets/images/waffle.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3847e82cef89f7aca0f58ae4ee7d4fc24b5acb836516e17117f0d37fd390cd60 -size 7787991 diff --git a/assets/js/ie/PIE.htc b/assets/js/ie/PIE.htc deleted file mode 100644 index ca3b547..0000000 --- a/assets/js/ie/PIE.htc +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - diff --git a/assets/js/ie/backgroundsize.min.htc b/assets/js/ie/backgroundsize.min.htc deleted file mode 100644 index 3d9960d..0000000 --- a/assets/js/ie/backgroundsize.min.htc +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/assets/js/ie/html5shiv.js b/assets/js/ie/html5shiv.js deleted file mode 100644 index dcf351c..0000000 --- a/assets/js/ie/html5shiv.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); -a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; -c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| -"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); -for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d #mq-test-1 { width: 42px; }',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;ba?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; - -return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/\s*$/g,ra={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?""!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("');else if(l){var p="";p=o&&o.youtube?"lg-has-youtube":o&&o.vimeo?"lg-has-vimeo":"lg-has-html5",k.$slide.eq(b).prepend('
')}else o?(k.$slide.eq(b).prepend('
'),k.$el.trigger("hasVideo.lg",[b,f,j])):k.$slide.eq(b).prepend('
');if(k.$el.trigger("onAferAppendSlide.lg",[b]),e=k.$slide.eq(b).find(".lg-object"),i&&e.attr("sizes",i),h){e.attr("srcset",h);try{picturefill({elements:[e[0]]})}catch(a){console.warn("lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document.")}}".lg-sub-html"!==this.s.appendSubHtmlTo&&k.addHtml(b),k.$slide.eq(b).addClass("lg-loaded")}k.$slide.eq(b).find(".lg-object").on("load.lg error.lg",function(){var c=0;d&&!a("body").hasClass("lg-from-hash")&&(c=d),setTimeout(function(){k.$slide.eq(b).addClass("lg-complete"),k.$el.trigger("onSlideItemLoad.lg",[b,d||0])},c)}),o&&o.html5&&!l&&k.$slide.eq(b).addClass("lg-complete"),!0===c&&(k.$slide.eq(b).hasClass("lg-complete")?k.preload(b):k.$slide.eq(b).find(".lg-object").on("load.lg error.lg",function(){k.preload(b)}))},b.prototype.slide=function(b,c,d,e){var f=this.$outer.find(".lg-current").index(),g=this;if(!g.lGalleryOn||f!==b){var h=this.$slide.length,i=g.lGalleryOn?this.s.speed:0;if(!g.lgBusy){if(this.s.download){var j;j=g.s.dynamic?!1!==g.s.dynamicEl[b].downloadUrl&&(g.s.dynamicEl[b].downloadUrl||g.s.dynamicEl[b].src):"false"!==g.$items.eq(b).attr("data-download-url")&&(g.$items.eq(b).attr("data-download-url")||g.$items.eq(b).attr("href")||g.$items.eq(b).attr("data-src")),j?(a("#lg-download").attr("href",j),g.$outer.removeClass("lg-hide-download")):g.$outer.addClass("lg-hide-download")}if(this.$el.trigger("onBeforeSlide.lg",[f,b,c,d]),g.lgBusy=!0,clearTimeout(g.hideBartimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout(function(){g.addHtml(b)},i),this.arrowDisable(b),e||(bf&&(e="next")),c){this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide");var k,l;h>2?(k=b-1,l=b+1,0===b&&f===h-1?(l=0,k=h-1):b===h-1&&0===f&&(l=0,k=h-1)):(k=0,l=1),"prev"===e?g.$slide.eq(l).addClass("lg-next-slide"):g.$slide.eq(k).addClass("lg-prev-slide"),g.$slide.eq(b).addClass("lg-current")}else g.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),"prev"===e?(this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(f).addClass("lg-next-slide")):(this.$slide.eq(b).addClass("lg-next-slide"),this.$slide.eq(f).addClass("lg-prev-slide")),setTimeout(function(){g.$slide.removeClass("lg-current"),g.$slide.eq(b).addClass("lg-current"),g.$outer.removeClass("lg-no-trans")},50);g.lGalleryOn?(setTimeout(function(){g.loadContent(b,!0,0)},this.s.speed+50),setTimeout(function(){g.lgBusy=!1,g.$el.trigger("onAfterSlide.lg",[f,b,c,d])},this.s.speed)):(g.loadContent(b,!0,g.s.backdropDuration),g.lgBusy=!1,g.$el.trigger("onAfterSlide.lg",[f,b,c,d])),g.lGalleryOn=!0,this.s.counter&&a("#lg-counter-current").text(b+1)}g.index=b}},b.prototype.goToNextSlide=function(a){var b=this,c=b.s.loop;a&&b.$slide.length<3&&(c=!1),b.lgBusy||(b.index+10?(b.index--,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1,"prev")):c?(b.index=b.$items.length-1,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1,"prev")):b.s.slideEndAnimatoin&&!a&&(b.$outer.addClass("lg-left-end"),setTimeout(function(){b.$outer.removeClass("lg-left-end")},400)))},b.prototype.keyPress=function(){var b=this;this.$items.length>1&&a(window).on("keyup.lg",function(a){b.$items.length>1&&(37===a.keyCode&&(a.preventDefault(),b.goToPrevSlide()),39===a.keyCode&&(a.preventDefault(),b.goToNextSlide()))}),a(window).on("keydown.lg",function(a){!0===b.s.escKey&&27===a.keyCode&&(a.preventDefault(),b.$outer.hasClass("lg-thumb-open")?b.$outer.removeClass("lg-thumb-open"):b.destroy())})},b.prototype.arrow=function(){var a=this;this.$outer.find(".lg-prev").on("click.lg",function(){a.goToPrevSlide()}),this.$outer.find(".lg-next").on("click.lg",function(){a.goToNextSlide()})},b.prototype.arrowDisable=function(a){!this.s.loop&&this.s.hideControlOnEnd&&(a+10?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},b.prototype.setTranslate=function(a,b,c){this.s.useLeft?a.css("left",b):a.css({transform:"translate3d("+b+"px, "+c+"px, 0px)"})},b.prototype.touchMove=function(b,c){var d=c-b;Math.abs(d)>15&&(this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),d,0),this.setTranslate(a(".lg-prev-slide"),-this.$slide.eq(this.index).width()+d,0),this.setTranslate(a(".lg-next-slide"),this.$slide.eq(this.index).width()+d,0))},b.prototype.touchEnd=function(a){var b=this;"lg-slide"!==b.s.mode&&b.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout(function(){b.$outer.removeClass("lg-dragging"),a<0&&Math.abs(a)>b.s.swipeThreshold?b.goToNextSlide(!0):a>0&&Math.abs(a)>b.s.swipeThreshold?b.goToPrevSlide(!0):Math.abs(a)<5&&b.$el.trigger("onSlideClick.lg"),b.$slide.removeAttr("style")}),setTimeout(function(){b.$outer.hasClass("lg-dragging")||"lg-slide"===b.s.mode||b.$outer.removeClass("lg-slide")},b.s.speed+100)},b.prototype.enableSwipe=function(){var a=this,b=0,c=0,d=!1;a.s.enableSwipe&&a.doCss()&&(a.$slide.on("touchstart.lg",function(c){a.$outer.hasClass("lg-zoomed")||a.lgBusy||(c.preventDefault(),a.manageSwipeClass(),b=c.originalEvent.targetTouches[0].pageX)}),a.$slide.on("touchmove.lg",function(e){a.$outer.hasClass("lg-zoomed")||(e.preventDefault(),c=e.originalEvent.targetTouches[0].pageX,a.touchMove(b,c),d=!0)}),a.$slide.on("touchend.lg",function(){a.$outer.hasClass("lg-zoomed")||(d?(d=!1,a.touchEnd(c-b)):a.$el.trigger("onSlideClick.lg"))}))},b.prototype.enableDrag=function(){var b=this,c=0,d=0,e=!1,f=!1;b.s.enableDrag&&b.doCss()&&(b.$slide.on("mousedown.lg",function(d){b.$outer.hasClass("lg-zoomed")||b.lgBusy||a(d.target).text().trim()||(d.preventDefault(),b.manageSwipeClass(),c=d.pageX,e=!0,b.$outer.scrollLeft+=1,b.$outer.scrollLeft-=1,b.$outer.removeClass("lg-grab").addClass("lg-grabbing"),b.$el.trigger("onDragstart.lg"))}),a(window).on("mousemove.lg",function(a){e&&(f=!0,d=a.pageX,b.touchMove(c,d),b.$el.trigger("onDragmove.lg"))}),a(window).on("mouseup.lg",function(g){f?(f=!1,b.touchEnd(d-c),b.$el.trigger("onDragend.lg")):(a(g.target).hasClass("lg-object")||a(g.target).hasClass("lg-video-play"))&&b.$el.trigger("onSlideClick.lg"),e&&(e=!1,b.$outer.removeClass("lg-grabbing").addClass("lg-grab"))}))},b.prototype.manageSwipeClass=function(){var a=this.index+1,b=this.index-1;this.s.loop&&this.$slide.length>2&&(0===this.index?b=this.$slide.length-1:this.index===this.$slide.length-1&&(a=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),b>-1&&this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(a).addClass("lg-next-slide")},b.prototype.mousewheel=function(){var a=this;a.$outer.on("mousewheel.lg",function(b){b.deltaY&&(b.deltaY>0?a.goToPrevSlide():a.goToNextSlide(),b.preventDefault())})},b.prototype.closeGallery=function(){var b=this,c=!1;this.$outer.find(".lg-close").on("click.lg",function(){b.destroy()}),b.s.closable&&(b.$outer.on("mousedown.lg",function(b){c=!!(a(b.target).is(".lg-outer")||a(b.target).is(".lg-item ")||a(b.target).is(".lg-img-wrap"))}),b.$outer.on("mousemove.lg",function(){c=!1}),b.$outer.on("mouseup.lg",function(d){(a(d.target).is(".lg-outer")||a(d.target).is(".lg-item ")||a(d.target).is(".lg-img-wrap")&&c)&&(b.$outer.hasClass("lg-dragging")||b.destroy())}))},b.prototype.destroy=function(b){var c=this;b||(c.$el.trigger("onBeforeClose.lg"),a(window).scrollTop(c.prevScrollTop)),b&&(c.s.dynamic||this.$items.off("click.lg click.lgcustom"),a.removeData(c.el,"lightGallery")),this.$el.off(".lg.tm"),a.each(a.fn.lightGallery.modules,function(a){c.modules[a]&&c.modules[a].destroy()}),this.lGalleryOn=!1,clearTimeout(c.hideBartimeout),this.hideBartimeout=!1,a(window).off(".lg"),a("body").removeClass("lg-on lg-from-hash"),c.$outer&&c.$outer.removeClass("lg-visible"),a(".lg-backdrop").removeClass("in"),setTimeout(function(){c.$outer&&c.$outer.remove(),a(".lg-backdrop").remove(),b||c.$el.trigger("onCloseAfter.lg")},c.s.backdropDuration+50)},a.fn.lightGallery=function(c){return this.each(function(){if(a.data(this,"lightGallery"))try{a(this).data("lightGallery").init()}catch(a){console.error("lightGallery has not initiated properly")}else a.data(this,"lightGallery",new b(this,c))})},a.fn.lightGallery.modules={}}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},c=function(c){return this.core=a(c).data("lightGallery"),this.$el=a(c),!(this.core.$items.length<2)&&(this.core.s=a.extend({},b,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};c.prototype.init=function(){var a=this;a.core.s.autoplayControls&&a.controls(),a.core.s.progressBar&&a.core.$outer.find(".lg").append('
'),a.progress(),a.core.s.autoplay&&a.$el.one("onSlideItemLoad.lg.tm",function(){a.startlAuto()}),a.$el.on("onDragstart.lg.tm touchstart.lg.tm",function(){a.interval&&(a.cancelAuto(),a.canceledOnTouch=!0)}),a.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",function(){!a.interval&&a.canceledOnTouch&&(a.startlAuto(),a.canceledOnTouch=!1)})},c.prototype.progress=function(){var a,b,c=this;c.$el.on("onBeforeSlide.lg.tm",function(){c.core.s.progressBar&&c.fromAuto&&(a=c.core.$outer.find(".lg-progress-bar"),b=c.core.$outer.find(".lg-progress"),c.interval&&(b.removeAttr("style"),a.removeClass("lg-start"),setTimeout(function(){b.css("transition","width "+(c.core.s.speed+c.core.s.pause)+"ms ease 0s"),a.addClass("lg-start")},20))),c.fromAuto||c.core.s.fourceAutoplay||c.cancelAuto(),c.fromAuto=!1})},c.prototype.controls=function(){var b=this;a(this.core.s.appendAutoplayControlsTo).append(''),b.core.$outer.find(".lg-autoplay-button").on("click.lg",function(){a(b.core.$outer).hasClass("lg-show-autoplay")?(b.cancelAuto(),b.core.s.fourceAutoplay=!1):b.interval||(b.startlAuto(),b.core.s.fourceAutoplay=b.fourceAutoplayTemp)})},c.prototype.startlAuto=function(){var a=this;a.core.$outer.find(".lg-progress").css("transition","width "+(a.core.s.speed+a.core.s.pause)+"ms ease 0s"),a.core.$outer.addClass("lg-show-autoplay"),a.core.$outer.find(".lg-progress-bar").addClass("lg-start"),a.interval=setInterval(function(){a.core.index+11&&this.init(),this};c.prototype.init=function(){var b,c,d,e=this,f="";if(e.core.$outer.find(".lg").append('
'),e.core.s.dynamic)for(var g=0;g
';else e.core.$items.each(function(){e.core.s.exThumbImage?f+='
':f+='
'});c=e.core.$outer.find(".lg-pager-outer"),c.html(f),b=e.core.$outer.find(".lg-pager-cont"),b.on("click.lg touchend.lg",function(){var b=a(this);e.core.index=b.index(),e.core.slide(e.core.index,!1,!0,!1)}),c.on("mouseover.lg",function(){clearTimeout(d),c.addClass("lg-pager-hover")}),c.on("mouseout.lg",function(){d=setTimeout(function(){c.removeClass("lg-pager-hover")})}),e.core.$el.on("onBeforeSlide.lg.tm",function(a,c,d){b.removeClass("lg-pager-active"),b.eq(d).addClass("lg-pager-active")})},c.prototype.destroy=function(){},a.fn.lightGallery.modules.pager=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbHeight:"80px",thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,pullCaptionUp:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small",loadDailymotionThumbnail:!0},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.$el=a(c),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.core.s.animateThumb&&(this.core.s.thumbHeight="100%"),this.left=0,this.init(),this};c.prototype.init=function(){var a=this;this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&setTimeout(function(){a.core.$outer.addClass("lg-thumb-open")},700),this.core.s.pullCaptionUp&&this.core.$outer.addClass("lg-pull-caption-up"),this.build(),this.core.s.animateThumb&&this.core.doCss()?(this.core.s.enableThumbDrag&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},c.prototype.build=function(){function b(a,b,c){var g,h=d.core.isVideo(a,c)||{},i="";h.youtube||h.vimeo||h.dailymotion?h.youtube?g=d.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+h.youtube[1]+"/"+d.core.s.youtubeThumbSize+".jpg":b:h.vimeo?d.core.s.loadVimeoThumbnail?(g="//i.vimeocdn.com/video/error_"+f+".jpg",i=h.vimeo[1]):g=b:h.dailymotion&&(g=d.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+h.dailymotion[1]:b):g=b,e+='
',i=""}var c,d=this,e="",f="",g='
';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":f="640";break;case"thumbnail_medium":f="200x150";break;case"thumbnail_small":f="100x75"}if(d.core.$outer.addClass("lg-has-thumb"),d.core.$outer.find(".lg").append(g),d.$thumbOuter=d.core.$outer.find(".lg-thumb-outer"),d.thumbOuterWidth=d.$thumbOuter.width(),d.core.s.animateThumb&&d.core.$outer.find(".lg-thumb").css({width:d.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&d.$thumbOuter.css("height",d.core.s.thumbContHeight+"px"),d.core.s.dynamic)for(var h=0;hthis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(b.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||b.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||b.css("left",-this.left+"px"),this.setTranslate(this.left)}},c.prototype.enableThumbDrag=function(){var b=this,c=0,d=0,e=!1,f=!1,g=0;b.$thumbOuter.addClass("lg-grab"),b.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",function(a){b.thumbTotalWidth>b.thumbOuterWidth&&(a.preventDefault(),c=a.pageX,e=!0,b.core.$outer.scrollLeft+=1,b.core.$outer.scrollLeft-=1,b.thumbClickable=!1,b.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),a(window).on("mousemove.lg.thumb",function(a){e&&(g=b.left,f=!0,d=a.pageX,b.$thumbOuter.addClass("lg-dragging"),g-=d-c,g>b.thumbTotalWidth-b.thumbOuterWidth&&(g=b.thumbTotalWidth-b.thumbOuterWidth),g<0&&(g=0),b.setTranslate(g))}),a(window).on("mouseup.lg.thumb",function(){f?(f=!1,b.$thumbOuter.removeClass("lg-dragging"),b.left=g,Math.abs(d-c)a.thumbOuterWidth&&(c.preventDefault(),b=c.originalEvent.targetTouches[0].pageX,a.thumbClickable=!1)}),a.core.$outer.find(".lg-thumb").on("touchmove.lg",function(f){a.thumbTotalWidth>a.thumbOuterWidth&&(f.preventDefault(),c=f.originalEvent.targetTouches[0].pageX,d=!0,a.$thumbOuter.addClass("lg-dragging"),e=a.left,e-=c-b,e>a.thumbTotalWidth-a.thumbOuterWidth&&(e=a.thumbTotalWidth-a.thumbOuterWidth),e<0&&(e=0),a.setTranslate(e))}),a.core.$outer.find(".lg-thumb").on("touchend.lg",function(){a.thumbTotalWidth>a.thumbOuterWidth&&d?(d=!1,a.$thumbOuter.removeClass("lg-dragging"),Math.abs(c-b)'),a.core.$outer.find(".lg-toogle-thumb").on("click.lg",function(){a.core.$outer.toggleClass("lg-thumb-open")}))},c.prototype.thumbkeyPress=function(){var b=this;a(window).on("keydown.lg.thumb",function(a){38===a.keyCode?(a.preventDefault(),b.core.$outer.addClass("lg-thumb-open")):40===a.keyCode&&(a.preventDefault(),b.core.$outer.removeClass("lg-thumb-open"))})},c.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(a(window).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"), +this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(a,b,c,d){var e=this;if(e.core.$slide.eq(b).find(".lg-video").append(e.loadVideo(c,"lg-object",!0,b,d)),d)if(e.core.s.videojs)try{videojs(e.core.$slide.eq(b).find(".lg-html5").get(0),e.core.s.videojsOptions,function(){!e.videoLoaded&&e.core.s.autoplayFirstVideo&&this.play()})}catch(a){console.error("Make sure you have included videojs")}else!e.videoLoaded&&e.core.s.autoplayFirstVideo&&e.core.$slide.eq(b).find(".lg-html5").get(0).play()}function c(a,b){var c=this.core.$slide.eq(b).find(".lg-video-cont");c.hasClass("lg-has-iframe")||(c.css("max-width",this.core.s.videoMaxWidth),this.videoLoaded=!0)}function d(b,c,d){var e=this,f=e.core.$slide.eq(c),g=f.find(".lg-youtube").get(0),h=f.find(".lg-vimeo").get(0),i=f.find(".lg-dailymotion").get(0),j=f.find(".lg-vk").get(0),k=f.find(".lg-html5").get(0);if(g)g.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(h)try{$f(h).api("pause")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(i)i.contentWindow.postMessage("pause","*");else if(k)if(e.core.s.videojs)try{videojs(k).pause()}catch(a){console.error("Make sure you have included videojs")}else k.pause();j&&a(j).attr("src",a(j).attr("src").replace("&autoplay","&noplay"));var l;l=e.core.s.dynamic?e.core.s.dynamicEl[d].src:e.core.$items.eq(d).attr("href")||e.core.$items.eq(d).attr("data-src");var m=e.core.isVideo(l,d)||{};(m.youtube||m.vimeo||m.dailymotion||m.vk)&&e.core.$outer.addClass("lg-hide-download")}var e={videoMaxWidth:"855px",autoplayFirstVideo:!0,youtubePlayerParams:!1,vimeoPlayerParams:!1,dailymotionPlayerParams:!1,vkPlayerParams:!1,videojs:!1,videojsOptions:{}},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.videoLoaded=!1,this.init(),this};f.prototype.init=function(){var e=this;e.core.$el.on("hasVideo.lg.tm",b.bind(this)),e.core.$el.on("onAferAppendSlide.lg.tm",c.bind(this)),e.core.doCss()&&e.core.$items.length>1&&(e.core.s.enableSwipe||e.core.s.enableDrag)?e.core.$el.on("onSlideClick.lg.tm",function(){var a=e.core.$slide.eq(e.core.index);e.loadVideoOnclick(a)}):e.core.$slide.on("click.lg",function(){e.loadVideoOnclick(a(this))}),e.core.$el.on("onBeforeSlide.lg.tm",d.bind(this)),e.core.$el.on("onAfterSlide.lg.tm",function(a,b){e.core.$slide.eq(b).removeClass("lg-video-playing")}),e.core.s.autoplayFirstVideo&&e.core.$el.on("onAferAppendSlide.lg.tm",function(a,b){if(!e.core.lGalleryOn){var c=e.core.$slide.eq(b);setTimeout(function(){e.loadVideoOnclick(c)},100)}})},f.prototype.loadVideo=function(b,c,d,e,f){var g="",h=1,i="",j=this.core.isVideo(b,e)||{};if(d&&(h=this.videoLoaded?0:this.core.s.autoplayFirstVideo?1:0),j.youtube)i="?wmode=opaque&autoplay="+h+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(i=i+"&"+a.param(this.core.s.youtubePlayerParams)),g='';else if(j.vimeo)i="?autoplay="+h+"&api=1",this.core.s.vimeoPlayerParams&&(i=i+"&"+a.param(this.core.s.vimeoPlayerParams)),g='';else if(j.dailymotion)i="?wmode=opaque&autoplay="+h+"&api=postMessage",this.core.s.dailymotionPlayerParams&&(i=i+"&"+a.param(this.core.s.dailymotionPlayerParams)),g='';else if(j.html5){var k=f.substring(0,1);"."!==k&&"#"!==k||(f=a(f).html()),g=f}else j.vk&&(i="&autoplay="+h,this.core.s.vkPlayerParams&&(i=i+"&"+a.param(this.core.s.vkPlayerParams)),g='');return g},f.prototype.loadVideoOnclick=function(a){var b=this;if(a.find(".lg-object").hasClass("lg-has-poster")&&a.find(".lg-object").is(":visible"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-dailymotion").get(0),f=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{$f(d).api("play")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(e)e.contentWindow.postMessage("play","*");else if(f)if(b.core.s.videojs)try{videojs(f).play()}catch(a){console.error("Make sure you have included videojs")}else f.play();a.addClass("lg-video-playing")}else{a.addClass("lg-video-playing lg-has-video");var g,h,i=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){this.play()})}catch(a){console.error("Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(g=b.core.s.dynamicEl[b.core.index].src,h=b.core.s.dynamicEl[b.core.index].html,i(g,h)):(g=b.core.$items.eq(b.core.index).attr("href")||b.core.$items.eq(b.core.index).attr("data-src"),h=b.core.$items.eq(b.core.index).attr("data-html"),i(g,h));var j=a.find(".lg-object");a.find(".lg-video").append(j),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}},f.prototype.destroy=function(){this.videoLoaded=!1},a.fn.lightGallery.modules.video=f}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b=function(){var a=!1,b=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);return b&&parseInt(b[2],10)<54&&(a=!0),a},c={scale:1,zoom:!0,actualSize:!0,enableZoomAfter:300,useLeftForZoom:b()},d=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},c,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1,this.pageX=a(window).width()/2,this.pageY=a(window).height()/2+a(window).scrollTop()),this};d.prototype.init=function(){var b=this,c='';b.core.s.actualSize&&(c+=''),b.core.s.useLeftForZoom?b.core.$outer.addClass("lg-use-left-for-zoom"):b.core.$outer.addClass("lg-use-transition-for-zoom"),this.core.$outer.find(".lg-toolbar").append(c),b.core.$el.on("onSlideItemLoad.lg.tm.zoom",function(c,d,e){var f=b.core.s.enableZoomAfter+e;a("body").hasClass("lg-from-hash")&&e?f=0:a("body").removeClass("lg-from-hash"),b.zoomabletimeout=setTimeout(function(){b.core.$slide.eq(d).addClass("lg-zoomable")},f+30)});var d=1,e=function(c){var d,e,f=b.core.$outer.find(".lg-current .lg-image"),g=(a(window).width()-f.prop("offsetWidth"))/2,h=(a(window).height()-f.prop("offsetHeight"))/2+a(window).scrollTop();d=b.pageX-g,e=b.pageY-h;var i=(c-1)*d,j=(c-1)*e;f.css("transform","scale3d("+c+", "+c+", 1)").attr("data-scale",c),b.core.s.useLeftForZoom?f.parent().css({left:-i+"px",top:-j+"px"}).attr("data-x",i).attr("data-y",j):f.parent().css("transform","translate3d(-"+i+"px, -"+j+"px, 0)").attr("data-x",i).attr("data-y",j)},f=function(){d>1?b.core.$outer.addClass("lg-zoomed"):b.resetZoom(),d<1&&(d=1),e(d)},g=function(c,e,g,h){var i,j=e.prop("offsetWidth");i=b.core.s.dynamic?b.core.s.dynamicEl[g].width||e[0].naturalWidth||j:b.core.$items.eq(g).attr("data-width")||e[0].naturalWidth||j;var k;b.core.$outer.hasClass("lg-zoomed")?d=1:i>j&&(k=i/j,d=k||2),h?(b.pageX=a(window).width()/2,b.pageY=a(window).height()/2+a(window).scrollTop()):(b.pageX=c.pageX||c.originalEvent.targetTouches[0].pageX,b.pageY=c.pageY||c.originalEvent.targetTouches[0].pageY),f(),setTimeout(function(){b.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")},10)},h=!1;b.core.$el.on("onAferAppendSlide.lg.tm.zoom",function(a,c){var d=b.core.$slide.eq(c).find(".lg-image");d.on("dblclick",function(a){g(a,d,c)}),d.on("touchstart",function(a){h?(clearTimeout(h),h=null,g(a,d,c)):h=setTimeout(function(){h=null},300),a.preventDefault()})}),a(window).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom",function(){b.pageX=a(window).width()/2,b.pageY=a(window).height()/2+a(window).scrollTop(),e(d)}),a("#lg-zoom-out").on("click.lg",function(){b.core.$outer.find(".lg-current .lg-image").length&&(d-=b.core.s.scale,f())}),a("#lg-zoom-in").on("click.lg",function(){b.core.$outer.find(".lg-current .lg-image").length&&(d+=b.core.s.scale,f())}),a("#lg-actual-size").on("click.lg",function(a){g(a,b.core.$slide.eq(b.core.index).find(".lg-image"),b.core.index,!0)}),b.core.$el.on("onBeforeSlide.lg.tm",function(){d=1,b.resetZoom()}),b.zoomDrag(),b.zoomSwipe()},d.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale"),this.pageX=a(window).width()/2,this.pageY=a(window).height()/2+a(window).scrollTop()},d.prototype.zoomSwipe=function(){var a=this,b={},c={},d=!1,e=!1,f=!1;a.core.$slide.on("touchstart.lg",function(c){if(a.core.$outer.hasClass("lg-zoomed")){var d=a.core.$slide.eq(a.core.index).find(".lg-object");f=d.prop("offsetHeight")*d.attr("data-scale")>a.core.$outer.find(".lg").height(),e=d.prop("offsetWidth")*d.attr("data-scale")>a.core.$outer.find(".lg").width(),(e||f)&&(c.preventDefault(),b={x:c.originalEvent.targetTouches[0].pageX,y:c.originalEvent.targetTouches[0].pageY})}}),a.core.$slide.on("touchmove.lg",function(g){if(a.core.$outer.hasClass("lg-zoomed")){var h,i,j=a.core.$slide.eq(a.core.index).find(".lg-img-wrap");g.preventDefault(),d=!0,c={x:g.originalEvent.targetTouches[0].pageX,y:g.originalEvent.targetTouches[0].pageY},a.core.$outer.addClass("lg-zoom-dragging"),i=f?-Math.abs(j.attr("data-y"))+(c.y-b.y):-Math.abs(j.attr("data-y")),h=e?-Math.abs(j.attr("data-x"))+(c.x-b.x):-Math.abs(j.attr("data-x")),(Math.abs(c.x-b.x)>15||Math.abs(c.y-b.y)>15)&&(a.core.s.useLeftForZoom?j.css({left:h+"px",top:i+"px"}):j.css("transform","translate3d("+h+"px, "+i+"px, 0)"))}}),a.core.$slide.on("touchend.lg",function(){a.core.$outer.hasClass("lg-zoomed")&&d&&(d=!1,a.core.$outer.removeClass("lg-zoom-dragging"),a.touchendZoom(b,c,e,f))})},d.prototype.zoomDrag=function(){var b=this,c={},d={},e=!1,f=!1,g=!1,h=!1;b.core.$slide.on("mousedown.lg.zoom",function(d){var f=b.core.$slide.eq(b.core.index).find(".lg-object");h=f.prop("offsetHeight")*f.attr("data-scale")>b.core.$outer.find(".lg").height(),g=f.prop("offsetWidth")*f.attr("data-scale")>b.core.$outer.find(".lg").width(),b.core.$outer.hasClass("lg-zoomed")&&a(d.target).hasClass("lg-object")&&(g||h)&&(d.preventDefault(),c={x:d.pageX,y:d.pageY},e=!0,b.core.$outer.scrollLeft+=1,b.core.$outer.scrollLeft-=1,b.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))}),a(window).on("mousemove.lg.zoom",function(a){if(e){var i,j,k=b.core.$slide.eq(b.core.index).find(".lg-img-wrap");f=!0,d={x:a.pageX,y:a.pageY},b.core.$outer.addClass("lg-zoom-dragging"),j=h?-Math.abs(k.attr("data-y"))+(d.y-c.y):-Math.abs(k.attr("data-y")),i=g?-Math.abs(k.attr("data-x"))+(d.x-c.x):-Math.abs(k.attr("data-x")),b.core.s.useLeftForZoom?k.css({left:i+"px",top:j+"px"}):k.css("transform","translate3d("+i+"px, "+j+"px, 0)")}}),a(window).on("mouseup.lg.zoom",function(a){e&&(e=!1,b.core.$outer.removeClass("lg-zoom-dragging"),!f||c.x===d.x&&c.y===d.y||(d={x:a.pageX,y:a.pageY},b.touchendZoom(c,d,g,h)),f=!1),b.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")})},d.prototype.touchendZoom=function(a,b,c,d){var e=this,f=e.core.$slide.eq(e.core.index).find(".lg-img-wrap"),g=e.core.$slide.eq(e.core.index).find(".lg-object"),h=-Math.abs(f.attr("data-x"))+(b.x-a.x),i=-Math.abs(f.attr("data-y"))+(b.y-a.y),j=(e.core.$outer.find(".lg").height()-g.prop("offsetHeight"))/2,k=Math.abs(g.prop("offsetHeight")*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").height()+j),l=(e.core.$outer.find(".lg").width()-g.prop("offsetWidth"))/2,m=Math.abs(g.prop("offsetWidth")*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").width()+l);(Math.abs(b.x-a.x)>15||Math.abs(b.y-a.y)>15)&&(d&&(i<=-k?i=-k:i>=-j&&(i=-j)),c&&(h<=-m?h=-m:h>=-l&&(h=-l)),d?f.attr("data-y",Math.abs(i)):i=-Math.abs(f.attr("data-y")),c?f.attr("data-x",Math.abs(h)):h=-Math.abs(f.attr("data-x")),e.core.s.useLeftForZoom?f.css({left:h+"px",top:i+"px"}):f.css("transform","translate3d("+h+"px, "+i+"px, 0)"))},d.prototype.destroy=function(){var b=this;b.core.$el.off(".lg.zoom"),a(window).off(".lg.zoom"),b.core.$slide.off(".lg.zoom"),b.core.$el.off(".lg.tm.zoom"),b.resetZoom(),clearTimeout(b.zoomabletimeout),b.zoomabletimeout=!1},a.fn.lightGallery.modules.zoom=d}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={hash:!0},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.core.s.hash&&(this.oldHash=window.location.hash,this.init()),this};c.prototype.init=function(){var b,c=this;c.core.$el.on("onAfterSlide.lg.tm",function(a,b,d){history.replaceState?history.replaceState(null,null,window.location.pathname+window.location.search+"#lg="+c.core.s.galleryId+"&slide="+d):window.location.hash="lg="+c.core.s.galleryId+"&slide="+d}),a(window).on("hashchange.lg.hash",function(){b=window.location.hash;var a=parseInt(b.split("&slide=")[1],10);b.indexOf("lg="+c.core.s.galleryId)>-1?c.core.slide(a,!1,!1):c.core.lGalleryOn&&c.core.destroy()})},c.prototype.destroy=function(){this.core.s.hash&&(this.oldHash&&this.oldHash.indexOf("lg="+this.core.s.galleryId)<0?history.replaceState?history.replaceState(null,null,this.oldHash):window.location.hash=this.oldHash:history.replaceState?history.replaceState(null,document.title,window.location.pathname+window.location.search):window.location.hash="",this.core.$el.off(".lg.hash"))},a.fn.lightGallery.modules.hash=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(0,function(a){!function(){"use strict";var b={share:!0,facebook:!0,facebookDropdownText:"Facebook",twitter:!0,twitterDropdownText:"Twitter",googlePlus:!0,googlePlusDropdownText:"GooglePlus",pinterest:!0,pinterestDropdownText:"Pinterest"},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.core.s.share&&this.init(),this};c.prototype.init=function(){var b=this,c='",this.core.$outer.find(".lg-toolbar").append(c),this.core.$outer.find(".lg").append('
'),a("#lg-share").on("click.lg",function(){b.core.$outer.toggleClass("lg-dropdown-active")}),a("#lg-dropdown-overlay").on("click.lg",function(){b.core.$outer.removeClass("lg-dropdown-active")}),b.core.$el.on("onAfterSlide.lg.tm",function(c,d,e){setTimeout(function(){a("#lg-share-facebook").attr("href","https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(b.getSahreProps(e,"facebookShareUrl")||window.location.href)),a("#lg-share-twitter").attr("href","https://twitter.com/intent/tweet?text="+b.getSahreProps(e,"tweetText")+"&url="+encodeURIComponent(b.getSahreProps(e,"twitterShareUrl")||window.location.href)),a("#lg-share-googleplus").attr("href","https://plus.google.com/share?url="+encodeURIComponent(b.getSahreProps(e,"googleplusShareUrl")||window.location.href)),a("#lg-share-pinterest").attr("href","http://www.pinterest.com/pin/create/button/?url="+encodeURIComponent(b.getSahreProps(e,"pinterestShareUrl")||window.location.href)+"&media="+encodeURIComponent(b.getSahreProps(e,"src"))+"&description="+b.getSahreProps(e,"pinterestText"))},100)})},c.prototype.getSahreProps=function(a,b){var c="";if(this.core.s.dynamic)c=this.core.s.dynamicEl[a][b];else{var d=this.core.$items.eq(a).attr("href"),e=this.core.$items.eq(a).data(b);c="src"===b?d||e:e}return c},c.prototype.destroy=function(){},a.fn.lightGallery.modules.share=c}()}); \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js index 5fa8322..411eee2 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -1,27 +1,23 @@ /* - Solid State by HTML5 UP + Landed by HTML5 UP html5up.net | @ajlkn Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) */ (function($) { - "use strict"; - skel.breakpoints({ - xlarge: '(max-width: 1680px)', - large: '(max-width: 1280px)', - medium: '(max-width: 980px)', - small: '(max-width: 736px)', - xsmall: '(max-width: 480px)' + xlarge: '(max-width: 1680px)', + large: '(max-width: 1280px)', + medium: '(max-width: 980px)', + small: '(max-width: 736px)', + xsmall: '(max-width: 480px)' }); $(function() { var $window = $(window), - $body = $('body'), - $header = $('#header'), - $banner = $('#banner'); + $body = $('body'); // Disable animations/transitions until the page has loaded. $body.addClass('is-loading'); @@ -29,9 +25,13 @@ $window.on('load', function() { window.setTimeout(function() { $body.removeClass('is-loading'); - }, 100); + }, 0); }); + // Touch mode. + if (skel.vars.mobile) + $body.addClass('is-touch'); + // Fix: Placeholder polyfill. $('form').placeholder(); @@ -43,124 +43,171 @@ ); }); - // Header. - if (skel.vars.IEVersion < 9) - $header.removeClass('alt'); + // Scrolly links. + $('.scrolly').scrolly({ + speed: 2000 + }); - if ($banner.length > 0 - && $header.hasClass('alt')) { + // Off-Canvas Navigation. - $window.on('resize', function() { $window.trigger('scroll'); }); + // Title Bar. + $( + '
' + + '' + + '' + $('#logo').html() + '' + + '
' + ) + .appendTo($body); - $banner.scrollex({ - bottom: $header.outerHeight(), - terminate: function() { $header.removeClass('alt'); }, - enter: function() { $header.addClass('alt'); }, - leave: function() { $header.removeClass('alt'); } - }); + // Navigation Panel. + $( + '' + ) + .appendTo($body) + .panel({ + delay: 500, + hideOnClick: true, + hideOnSwipe: true, + resetScroll: true, + resetForms: true, + side: 'left', + target: $body, + visibleClass: 'navPanel-visible' + }); + + // Fix: Remove navPanel transitions on WP<10 (poor/buggy performance). + if (skel.vars.os == 'wp' && skel.vars.osVersion < 10) + $('#titleBar, #navPanel, #page-wrapper') + .css('transition', 'none'); + + // Parallax. + // Disabled on IE (choppy scrolling) and mobile platforms (poor performance). + if (skel.vars.browser == 'ie' + || skel.vars.mobile) { + + $.fn._parallax = function() { + + return $(this); + + }; } + else { - // Menu. - var $menu = $('#menu'); + $.fn._parallax = function() { - $menu._locked = false; + $(this).each(function() { - $menu._lock = function() { + var $this = $(this), + on, off; - if ($menu._locked) - return false; + on = function() { - $menu._locked = true; + $this + .css('background-position', 'center 0px'); - window.setTimeout(function() { - $menu._locked = false; - }, 350); + $window + .on('scroll._parallax', function() { - return true; + var pos = parseInt($window.scrollTop()) - parseInt($this.position().top); - }; + $this.css('background-position', 'center ' + (pos * -0.15) + 'px'); - $menu._show = function() { + }); - if ($menu._lock()) - $body.addClass('is-menu-visible'); + }; - }; + off = function() { - $menu._hide = function() { + $this + .css('background-position', ''); - if ($menu._lock()) - $body.removeClass('is-menu-visible'); + $window + .off('scroll._parallax'); - }; + }; - $menu._toggle = function() { + skel.on('change', function() { - if ($menu._lock()) - $body.toggleClass('is-menu-visible'); + if (skel.breakpoint('medium').active) + (off)(); + else + (on)(); - }; - - $menu - .appendTo($body) - .on('click', function(event) { - - event.stopPropagation(); - - // Hide. - $menu._hide(); - - }) - .find('.inner') - .on('click', '.close', function(event) { - - event.preventDefault(); - event.stopPropagation(); - event.stopImmediatePropagation(); - - // Hide. - $menu._hide(); - - }) - .on('click', function(event) { - event.stopPropagation(); - }) - .on('click', 'a', function(event) { - - var href = $(this).attr('href'); - - event.preventDefault(); - event.stopPropagation(); - - // Hide. - $menu._hide(); - - // Redirect. - window.setTimeout(function() { - window.location.href = href; - }, 350); + }); }); - $body - .on('click', 'a[href="#menu"]', function(event) { + return $(this); - event.stopPropagation(); - event.preventDefault(); + }; - // Toggle. - $menu._toggle(); + $window + .on('load resize', function() { + $window.trigger('scroll'); + }); - }) - .on('keydown', function(event) { + } - // Hide on escape. - if (event.keyCode == 27) - $menu._hide(); + + // Wrappers. + var $wrappers = $('.wrapper'); + + $wrappers + .each(function() { + + var $this = $(this), + on, off; + + on = function() { + + if (skel.canUse('transition')) { + + $this.scrollex({ + top: 120, + bottom: 0, + initialize: function(t) { $this.addClass('inactive'); }, + terminate: function(t) { $this.removeClass('inactive'); }, + enter: function(t) { $this.removeClass('inactive'); }, + + // Uncomment the line below to "rewind" when this wrapper scrolls out of view. + + //leave: function(t) { $this.addClass('inactive'); }, + + }); + + } + + }; + + off = function() { + + if (skel.canUse('transition')) + $this.unscrollex(); + + }; + + skel.on('change', function() { + + if (skel.breakpoint('medium').active) + (off)(); + else + (on)(); + + }); }); + // Banner. + var $banner = $('#banner'); + + $banner + ._parallax(); + }); -})(jQuery); \ No newline at end of file +})(jQuery); diff --git a/templates/material.html b/assets/js/openstreetmap.js similarity index 53% rename from templates/material.html rename to assets/js/openstreetmap.js index 403adfb..3a3db45 100644 --- a/templates/material.html +++ b/assets/js/openstreetmap.js @@ -1,32 +1,4 @@ -{% extends "layout.html" %} -{% block expand_header %} - - - - -{% endblock %} -{% block title %}{{ this.title }}{% endblock %} -{% block body %} -
-
-
-

{{ this.title }}

- {{ this.spruch }} -
-
-
- - -
-
-

{{ this.subtitle }}

- -
- -
- - -
- - {{ this.body }} -
-
- -{% endblock %} diff --git a/assets/js/picturefill.min.js b/assets/js/picturefill.min.js new file mode 100644 index 0000000..37ce56b --- /dev/null +++ b/assets/js/picturefill.min.js @@ -0,0 +1,4 @@ +/*! Picturefill - v2.3.1 - 2015-04-09 +* http://scottjehl.github.io/picturefill +* Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT */ +window.matchMedia||(window.matchMedia=function(){"use strict";var a=window.styleMedia||window.media;if(!a){var b=document.createElement("style"),c=document.getElementsByTagName("script")[0],d=null;b.type="text/css",b.id="matchmediajs-test",c.parentNode.insertBefore(b,c),d="getComputedStyle"in window&&window.getComputedStyle(b,null)||b.currentStyle,a={matchMedium:function(a){var c="@media "+a+"{ #matchmediajs-test { width: 1px; } }";return b.styleSheet?b.styleSheet.cssText=c:b.textContent=c,"1px"===d.width}}}return function(b){return{matches:a.matchMedium(b||"all"),media:b||"all"}}}()),function(a,b,c){"use strict";function d(b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b:"function"==typeof define&&define.amd&&define("picturefill",function(){return b}),"object"==typeof a&&(a.picturefill=b)}function e(a){var b,c,d,e,f,i=a||{};b=i.elements||g.getAllElements();for(var j=0,k=b.length;k>j;j++)if(c=b[j],d=c.parentNode,e=void 0,f=void 0,"IMG"===c.nodeName.toUpperCase()&&(c[g.ns]||(c[g.ns]={}),i.reevaluate||!c[g.ns].evaluated)){if(d&&"PICTURE"===d.nodeName.toUpperCase()){if(g.removeVideoShim(d),e=g.getMatch(c,d),e===!1)continue}else e=void 0;(d&&"PICTURE"===d.nodeName.toUpperCase()||!g.sizesSupported&&c.srcset&&h.test(c.srcset))&&g.dodgeSrcset(c),e?(f=g.processSourceSet(e),g.applyBestCandidate(f,c)):(f=g.processSourceSet(c),(void 0===c.srcset||c[g.ns].srcset)&&g.applyBestCandidate(f,c)),c[g.ns].evaluated=!0}}function f(){function c(){clearTimeout(d),d=setTimeout(h,60)}g.initTypeDetects(),e();var d,f=setInterval(function(){return e(),/^loaded|^i|^c/.test(b.readyState)?void clearInterval(f):void 0},250),h=function(){e({reevaluate:!0})};a.addEventListener?a.addEventListener("resize",c,!1):a.attachEvent&&a.attachEvent("onresize",c)}if(a.HTMLPictureElement)return void d(function(){});b.createElement("picture");var g=a.picturefill||{},h=/\s+\+?\d+(e\d+)?w/;g.ns="picturefill",function(){g.srcsetSupported="srcset"in c,g.sizesSupported="sizes"in c,g.curSrcSupported="currentSrc"in c}(),g.trim=function(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")},g.makeUrl=function(){var a=b.createElement("a");return function(b){return a.href=b,a.href}}(),g.restrictsMixedContent=function(){return"https:"===a.location.protocol},g.matchesMedia=function(b){return a.matchMedia&&a.matchMedia(b).matches},g.getDpr=function(){return a.devicePixelRatio||1},g.getWidthFromLength=function(a){var c;if(!a||a.indexOf("%")>-1!=!1||!(parseFloat(a)>0||a.indexOf("calc(")>-1))return!1;a=a.replace("vw","%"),g.lengthEl||(g.lengthEl=b.createElement("div"),g.lengthEl.style.cssText="border:0;display:block;font-size:1em;left:0;margin:0;padding:0;position:absolute;visibility:hidden",g.lengthEl.className="helper-from-picturefill-js"),g.lengthEl.style.width="0px";try{g.lengthEl.style.width=a}catch(d){}return b.body.appendChild(g.lengthEl),c=g.lengthEl.offsetWidth,0>=c&&(c=!1),b.body.removeChild(g.lengthEl),c},g.detectTypeSupport=function(b,c){var d=new a.Image;return d.onerror=function(){g.types[b]=!1,e()},d.onload=function(){g.types[b]=1===d.width,e()},d.src=c,"pending"},g.types=g.types||{},g.initTypeDetects=function(){g.types["image/jpeg"]=!0,g.types["image/gif"]=!0,g.types["image/png"]=!0,g.types["image/svg+xml"]=b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"),g.types["image/webp"]=g.detectTypeSupport("image/webp","data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=")},g.verifyTypeSupport=function(a){var b=a.getAttribute("type");if(null===b||""===b)return!0;var c=g.types[b];return"string"==typeof c&&"pending"!==c?(g.types[b]=g.detectTypeSupport(b,c),"pending"):"function"==typeof c?(c(),"pending"):c},g.parseSize=function(a){var b=/(\([^)]+\))?\s*(.+)/g.exec(a);return{media:b&&b[1],length:b&&b[2]}},g.findWidthFromSourceSize=function(c){for(var d,e=g.trim(c).split(/\s*,\s*/),f=0,h=e.length;h>f;f++){var i=e[f],j=g.parseSize(i),k=j.length,l=j.media;if(k&&(!l||g.matchesMedia(l))&&(d=g.getWidthFromLength(k)))break}return d||Math.max(a.innerWidth||0,b.documentElement.clientWidth)},g.parseSrcset=function(a){for(var b=[];""!==a;){a=a.replace(/^\s+/g,"");var c,d=a.search(/\s/g),e=null;if(-1!==d){c=a.slice(0,d);var f=c.slice(-1);if((","===f||""===c)&&(c=c.replace(/,+$/,""),e=""),a=a.slice(d+1),null===e){var g=a.indexOf(",");-1!==g?(e=a.slice(0,g),a=a.slice(g+1)):(e=a,a="")}}else c=a,a="";(c||e)&&b.push({url:c,descriptor:e})}return b},g.parseDescriptor=function(a,b){var c,d=b||"100vw",e=a&&a.replace(/(^\s+|\s+$)/g,""),f=g.findWidthFromSourceSize(d);if(e)for(var h=e.split(" "),i=h.length-1;i>=0;i--){var j=h[i],k=j&&j.slice(j.length-1);if("h"!==k&&"w"!==k||g.sizesSupported){if("x"===k){var l=j&&parseFloat(j,10);c=l&&!isNaN(l)?l:1}}else c=parseFloat(parseInt(j,10)/f)}return c||1},g.getCandidatesFromSourceSet=function(a,b){for(var c=g.parseSrcset(a),d=[],e=0,f=c.length;f>e;e++){var h=c[e];d.push({url:h.url,resolution:g.parseDescriptor(h.descriptor,b)})}return d},g.dodgeSrcset=function(a){a.srcset&&(a[g.ns].srcset=a.srcset,a.srcset="",a.setAttribute("data-pfsrcset",a[g.ns].srcset))},g.processSourceSet=function(a){var b=a.getAttribute("srcset"),c=a.getAttribute("sizes"),d=[];return"IMG"===a.nodeName.toUpperCase()&&a[g.ns]&&a[g.ns].srcset&&(b=a[g.ns].srcset),b&&(d=g.getCandidatesFromSourceSet(b,c)),d},g.backfaceVisibilityFix=function(a){var b=a.style||{},c="webkitBackfaceVisibility"in b,d=b.zoom;c&&(b.zoom=".999",c=a.offsetWidth,b.zoom=d)},g.setIntrinsicSize=function(){var c={},d=function(a,b,c){b&&a.setAttribute("width",parseInt(b/c,10))};return function(e,f){var h;e[g.ns]&&!a.pfStopIntrinsicSize&&(void 0===e[g.ns].dims&&(e[g.ns].dims=e.getAttribute("width")||e.getAttribute("height")),e[g.ns].dims||(f.url in c?d(e,c[f.url],f.resolution):(h=b.createElement("img"),h.onload=function(){if(c[f.url]=h.width,!c[f.url])try{b.body.appendChild(h),c[f.url]=h.width||h.offsetWidth,b.body.removeChild(h)}catch(a){}e.src===f.url&&d(e,c[f.url],f.resolution),e=null,h.onload=null,h=null},h.src=f.url)))}}(),g.applyBestCandidate=function(a,b){var c,d,e;a.sort(g.ascendingSort),d=a.length,e=a[d-1];for(var f=0;d>f;f++)if(c=a[f],c.resolution>=g.getDpr()){e=c;break}e&&(e.url=g.makeUrl(e.url),b.src!==e.url&&(g.restrictsMixedContent()&&"http:"===e.url.substr(0,"http:".length).toLowerCase()?void 0!==window.console&&console.warn("Blocked mixed content image "+e.url):(b.src=e.url,g.curSrcSupported||(b.currentSrc=b.src),g.backfaceVisibilityFix(b))),g.setIntrinsicSize(b,e))},g.ascendingSort=function(a,b){return a.resolution-b.resolution},g.removeVideoShim=function(a){var b=a.getElementsByTagName("video");if(b.length){for(var c=b[0],d=c.getElementsByTagName("source");d.length;)a.insertBefore(d[0],c);c.parentNode.removeChild(c)}},g.getAllElements=function(){for(var a=[],c=b.getElementsByTagName("img"),d=0,e=c.length;e>d;d++){var f=c[d];("PICTURE"===f.parentNode.nodeName.toUpperCase()||null!==f.getAttribute("srcset")||f[g.ns]&&null!==f[g.ns].srcset)&&a.push(f)}return a},g.getMatch=function(a,b){for(var c,d=b.childNodes,e=0,f=d.length;f>e;e++){var h=d[e];if(1===h.nodeType){if(h===a)return c;if("SOURCE"===h.nodeName.toUpperCase()){null!==h.getAttribute("src")&&void 0!==typeof console&&console.warn("The `src` attribute is invalid on `picture` `source` element; instead, use `srcset`.");var i=h.getAttribute("media");if(h.getAttribute("srcset")&&(!i||g.matchesMedia(i))){var j=g.verifyTypeSupport(h);if(j===!0){c=h;break}if("pending"===j)return!1}}}}return c},f(),e._=g,d(e)}(window,window.document,new window.Image); \ No newline at end of file diff --git a/assets/js/webcomponents.js b/assets/js/webcomponents.js new file mode 100644 index 0000000..daf5c22 --- /dev/null +++ b/assets/js/webcomponents.js @@ -0,0 +1,7209 @@ +/** + * @license + * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * Code distributed by Google as part of the polymer project is also + * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +// @version 0.7.24 +(function() { + window.WebComponents = window.WebComponents || { + flags: {} + }; + var file = "webcomponents.js"; + var script = document.querySelector('script[src*="' + file + '"]'); + var flags = {}; + if (!flags.noOpts) { + location.search.slice(1).split("&").forEach(function(option) { + var parts = option.split("="); + var match; + if (parts[0] && (match = parts[0].match(/wc-(.+)/))) { + flags[match[1]] = parts[1] || true; + } + }); + if (script) { + for (var i = 0, a; a = script.attributes[i]; i++) { + if (a.name !== "src") { + flags[a.name] = a.value || true; + } + } + } + if (flags.log && flags.log.split) { + var parts = flags.log.split(","); + flags.log = {}; + parts.forEach(function(f) { + flags.log[f] = true; + }); + } else { + flags.log = {}; + } + } + flags.shadow = flags.shadow || flags.shadowdom || flags.polyfill; + if (flags.shadow === "native") { + flags.shadow = false; + } else { + flags.shadow = flags.shadow || !HTMLElement.prototype.createShadowRoot; + } + if (flags.register) { + window.CustomElements = window.CustomElements || { + flags: {} + }; + window.CustomElements.flags.register = flags.register; + } + WebComponents.flags = flags; +})(); + +if (WebComponents.flags.shadow) { + if (typeof WeakMap === "undefined") { + (function() { + var defineProperty = Object.defineProperty; + var counter = Date.now() % 1e9; + var WeakMap = function() { + this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); + }; + WeakMap.prototype = { + set: function(key, value) { + var entry = key[this.name]; + if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { + value: [ key, value ], + writable: true + }); + return this; + }, + get: function(key) { + var entry; + return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; + }, + "delete": function(key) { + var entry = key[this.name]; + if (!entry || entry[0] !== key) return false; + entry[0] = entry[1] = undefined; + return true; + }, + has: function(key) { + var entry = key[this.name]; + if (!entry) return false; + return entry[0] === key; + } + }; + window.WeakMap = WeakMap; + })(); + } + window.ShadowDOMPolyfill = {}; + (function(scope) { + "use strict"; + var constructorTable = new WeakMap(); + var nativePrototypeTable = new WeakMap(); + var wrappers = Object.create(null); + function detectEval() { + if (typeof chrome !== "undefined" && chrome.app && chrome.app.runtime) { + return false; + } + if (navigator.getDeviceStorage) { + return false; + } + try { + var f = new Function("return true;"); + return f(); + } catch (ex) { + return false; + } + } + var hasEval = detectEval(); + function assert(b) { + if (!b) throw new Error("Assertion failed"); + } + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + function mixin(to, from) { + var names = getOwnPropertyNames(from); + for (var i = 0; i < names.length; i++) { + var name = names[i]; + defineProperty(to, name, getOwnPropertyDescriptor(from, name)); + } + return to; + } + function mixinStatics(to, from) { + var names = getOwnPropertyNames(from); + for (var i = 0; i < names.length; i++) { + var name = names[i]; + switch (name) { + case "arguments": + case "caller": + case "length": + case "name": + case "prototype": + case "toString": + continue; + } + defineProperty(to, name, getOwnPropertyDescriptor(from, name)); + } + return to; + } + function oneOf(object, propertyNames) { + for (var i = 0; i < propertyNames.length; i++) { + if (propertyNames[i] in object) return propertyNames[i]; + } + } + var nonEnumerableDataDescriptor = { + value: undefined, + configurable: true, + enumerable: false, + writable: true + }; + function defineNonEnumerableDataProperty(object, name, value) { + nonEnumerableDataDescriptor.value = value; + defineProperty(object, name, nonEnumerableDataDescriptor); + } + getOwnPropertyNames(window); + function getWrapperConstructor(node, opt_instance) { + var nativePrototype = node.__proto__ || Object.getPrototypeOf(node); + if (isFirefox) { + try { + getOwnPropertyNames(nativePrototype); + } catch (error) { + nativePrototype = nativePrototype.__proto__; + } + } + var wrapperConstructor = constructorTable.get(nativePrototype); + if (wrapperConstructor) return wrapperConstructor; + var parentWrapperConstructor = getWrapperConstructor(nativePrototype); + var GeneratedWrapper = createWrapperConstructor(parentWrapperConstructor); + registerInternal(nativePrototype, GeneratedWrapper, opt_instance); + return GeneratedWrapper; + } + function addForwardingProperties(nativePrototype, wrapperPrototype) { + installProperty(nativePrototype, wrapperPrototype, true); + } + function registerInstanceProperties(wrapperPrototype, instanceObject) { + installProperty(instanceObject, wrapperPrototype, false); + } + var isFirefox = /Firefox/.test(navigator.userAgent); + var dummyDescriptor = { + get: function() {}, + set: function(v) {}, + configurable: true, + enumerable: true + }; + function isEventHandlerName(name) { + return /^on[a-z]+$/.test(name); + } + function isIdentifierName(name) { + return /^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(name); + } + function getGetter(name) { + return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name) : function() { + return this.__impl4cf1e782hg__[name]; + }; + } + function getSetter(name) { + return hasEval && isIdentifierName(name) ? new Function("v", "this.__impl4cf1e782hg__." + name + " = v") : function(v) { + this.__impl4cf1e782hg__[name] = v; + }; + } + function getMethod(name) { + return hasEval && isIdentifierName(name) ? new Function("return this.__impl4cf1e782hg__." + name + ".apply(this.__impl4cf1e782hg__, arguments)") : function() { + return this.__impl4cf1e782hg__[name].apply(this.__impl4cf1e782hg__, arguments); + }; + } + function getDescriptor(source, name) { + try { + if (source === window && name === "showModalDialog") { + return dummyDescriptor; + } + return Object.getOwnPropertyDescriptor(source, name); + } catch (ex) { + return dummyDescriptor; + } + } + var isBrokenSafari = function() { + var descr = Object.getOwnPropertyDescriptor(Node.prototype, "nodeType"); + return descr && !descr.get && !descr.set; + }(); + function installProperty(source, target, allowMethod, opt_blacklist) { + var names = getOwnPropertyNames(source); + for (var i = 0; i < names.length; i++) { + var name = names[i]; + if (name === "polymerBlackList_") continue; + if (name in target) continue; + if (source.polymerBlackList_ && source.polymerBlackList_[name]) continue; + if (isFirefox) { + source.__lookupGetter__(name); + } + var descriptor = getDescriptor(source, name); + var getter, setter; + if (typeof descriptor.value === "function") { + if (allowMethod) { + target[name] = getMethod(name); + } + continue; + } + var isEvent = isEventHandlerName(name); + if (isEvent) getter = scope.getEventHandlerGetter(name); else getter = getGetter(name); + if (descriptor.writable || descriptor.set || isBrokenSafari) { + if (isEvent) setter = scope.getEventHandlerSetter(name); else setter = getSetter(name); + } + var configurable = isBrokenSafari || descriptor.configurable; + defineProperty(target, name, { + get: getter, + set: setter, + configurable: configurable, + enumerable: descriptor.enumerable + }); + } + } + function register(nativeConstructor, wrapperConstructor, opt_instance) { + if (nativeConstructor == null) { + return; + } + var nativePrototype = nativeConstructor.prototype; + registerInternal(nativePrototype, wrapperConstructor, opt_instance); + mixinStatics(wrapperConstructor, nativeConstructor); + } + function registerInternal(nativePrototype, wrapperConstructor, opt_instance) { + var wrapperPrototype = wrapperConstructor.prototype; + assert(constructorTable.get(nativePrototype) === undefined); + constructorTable.set(nativePrototype, wrapperConstructor); + nativePrototypeTable.set(wrapperPrototype, nativePrototype); + addForwardingProperties(nativePrototype, wrapperPrototype); + if (opt_instance) registerInstanceProperties(wrapperPrototype, opt_instance); + defineNonEnumerableDataProperty(wrapperPrototype, "constructor", wrapperConstructor); + wrapperConstructor.prototype = wrapperPrototype; + } + function isWrapperFor(wrapperConstructor, nativeConstructor) { + return constructorTable.get(nativeConstructor.prototype) === wrapperConstructor; + } + function registerObject(object) { + var nativePrototype = Object.getPrototypeOf(object); + var superWrapperConstructor = getWrapperConstructor(nativePrototype); + var GeneratedWrapper = createWrapperConstructor(superWrapperConstructor); + registerInternal(nativePrototype, GeneratedWrapper, object); + return GeneratedWrapper; + } + function createWrapperConstructor(superWrapperConstructor) { + function GeneratedWrapper(node) { + superWrapperConstructor.call(this, node); + } + var p = Object.create(superWrapperConstructor.prototype); + p.constructor = GeneratedWrapper; + GeneratedWrapper.prototype = p; + return GeneratedWrapper; + } + function isWrapper(object) { + return object && object.__impl4cf1e782hg__; + } + function isNative(object) { + return !isWrapper(object); + } + function wrap(impl) { + if (impl === null) return null; + assert(isNative(impl)); + var wrapper = impl.__wrapper8e3dd93a60__; + if (wrapper != null) { + return wrapper; + } + return impl.__wrapper8e3dd93a60__ = new (getWrapperConstructor(impl, impl))(impl); + } + function unwrap(wrapper) { + if (wrapper === null) return null; + assert(isWrapper(wrapper)); + return wrapper.__impl4cf1e782hg__; + } + function unsafeUnwrap(wrapper) { + return wrapper.__impl4cf1e782hg__; + } + function setWrapper(impl, wrapper) { + wrapper.__impl4cf1e782hg__ = impl; + impl.__wrapper8e3dd93a60__ = wrapper; + } + function unwrapIfNeeded(object) { + return object && isWrapper(object) ? unwrap(object) : object; + } + function wrapIfNeeded(object) { + return object && !isWrapper(object) ? wrap(object) : object; + } + function rewrap(node, wrapper) { + if (wrapper === null) return; + assert(isNative(node)); + assert(wrapper === undefined || isWrapper(wrapper)); + node.__wrapper8e3dd93a60__ = wrapper; + } + var getterDescriptor = { + get: undefined, + configurable: true, + enumerable: true + }; + function defineGetter(constructor, name, getter) { + getterDescriptor.get = getter; + defineProperty(constructor.prototype, name, getterDescriptor); + } + function defineWrapGetter(constructor, name) { + defineGetter(constructor, name, function() { + return wrap(this.__impl4cf1e782hg__[name]); + }); + } + function forwardMethodsToWrapper(constructors, names) { + constructors.forEach(function(constructor) { + names.forEach(function(name) { + constructor.prototype[name] = function() { + var w = wrapIfNeeded(this); + return w[name].apply(w, arguments); + }; + }); + }); + } + scope.addForwardingProperties = addForwardingProperties; + scope.assert = assert; + scope.constructorTable = constructorTable; + scope.defineGetter = defineGetter; + scope.defineWrapGetter = defineWrapGetter; + scope.forwardMethodsToWrapper = forwardMethodsToWrapper; + scope.isIdentifierName = isIdentifierName; + scope.isWrapper = isWrapper; + scope.isWrapperFor = isWrapperFor; + scope.mixin = mixin; + scope.nativePrototypeTable = nativePrototypeTable; + scope.oneOf = oneOf; + scope.registerObject = registerObject; + scope.registerWrapper = register; + scope.rewrap = rewrap; + scope.setWrapper = setWrapper; + scope.unsafeUnwrap = unsafeUnwrap; + scope.unwrap = unwrap; + scope.unwrapIfNeeded = unwrapIfNeeded; + scope.wrap = wrap; + scope.wrapIfNeeded = wrapIfNeeded; + scope.wrappers = wrappers; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + function newSplice(index, removed, addedCount) { + return { + index: index, + removed: removed, + addedCount: addedCount + }; + } + var EDIT_LEAVE = 0; + var EDIT_UPDATE = 1; + var EDIT_ADD = 2; + var EDIT_DELETE = 3; + function ArraySplice() {} + ArraySplice.prototype = { + calcEditDistances: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { + var rowCount = oldEnd - oldStart + 1; + var columnCount = currentEnd - currentStart + 1; + var distances = new Array(rowCount); + for (var i = 0; i < rowCount; i++) { + distances[i] = new Array(columnCount); + distances[i][0] = i; + } + for (var j = 0; j < columnCount; j++) distances[0][j] = j; + for (var i = 1; i < rowCount; i++) { + for (var j = 1; j < columnCount; j++) { + if (this.equals(current[currentStart + j - 1], old[oldStart + i - 1])) distances[i][j] = distances[i - 1][j - 1]; else { + var north = distances[i - 1][j] + 1; + var west = distances[i][j - 1] + 1; + distances[i][j] = north < west ? north : west; + } + } + } + return distances; + }, + spliceOperationsFromEditDistances: function(distances) { + var i = distances.length - 1; + var j = distances[0].length - 1; + var current = distances[i][j]; + var edits = []; + while (i > 0 || j > 0) { + if (i == 0) { + edits.push(EDIT_ADD); + j--; + continue; + } + if (j == 0) { + edits.push(EDIT_DELETE); + i--; + continue; + } + var northWest = distances[i - 1][j - 1]; + var west = distances[i - 1][j]; + var north = distances[i][j - 1]; + var min; + if (west < north) min = west < northWest ? west : northWest; else min = north < northWest ? north : northWest; + if (min == northWest) { + if (northWest == current) { + edits.push(EDIT_LEAVE); + } else { + edits.push(EDIT_UPDATE); + current = northWest; + } + i--; + j--; + } else if (min == west) { + edits.push(EDIT_DELETE); + i--; + current = west; + } else { + edits.push(EDIT_ADD); + j--; + current = north; + } + } + edits.reverse(); + return edits; + }, + calcSplices: function(current, currentStart, currentEnd, old, oldStart, oldEnd) { + var prefixCount = 0; + var suffixCount = 0; + var minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart); + if (currentStart == 0 && oldStart == 0) prefixCount = this.sharedPrefix(current, old, minLength); + if (currentEnd == current.length && oldEnd == old.length) suffixCount = this.sharedSuffix(current, old, minLength - prefixCount); + currentStart += prefixCount; + oldStart += prefixCount; + currentEnd -= suffixCount; + oldEnd -= suffixCount; + if (currentEnd - currentStart == 0 && oldEnd - oldStart == 0) return []; + if (currentStart == currentEnd) { + var splice = newSplice(currentStart, [], 0); + while (oldStart < oldEnd) splice.removed.push(old[oldStart++]); + return [ splice ]; + } else if (oldStart == oldEnd) return [ newSplice(currentStart, [], currentEnd - currentStart) ]; + var ops = this.spliceOperationsFromEditDistances(this.calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd)); + var splice = undefined; + var splices = []; + var index = currentStart; + var oldIndex = oldStart; + for (var i = 0; i < ops.length; i++) { + switch (ops[i]) { + case EDIT_LEAVE: + if (splice) { + splices.push(splice); + splice = undefined; + } + index++; + oldIndex++; + break; + + case EDIT_UPDATE: + if (!splice) splice = newSplice(index, [], 0); + splice.addedCount++; + index++; + splice.removed.push(old[oldIndex]); + oldIndex++; + break; + + case EDIT_ADD: + if (!splice) splice = newSplice(index, [], 0); + splice.addedCount++; + index++; + break; + + case EDIT_DELETE: + if (!splice) splice = newSplice(index, [], 0); + splice.removed.push(old[oldIndex]); + oldIndex++; + break; + } + } + if (splice) { + splices.push(splice); + } + return splices; + }, + sharedPrefix: function(current, old, searchLength) { + for (var i = 0; i < searchLength; i++) if (!this.equals(current[i], old[i])) return i; + return searchLength; + }, + sharedSuffix: function(current, old, searchLength) { + var index1 = current.length; + var index2 = old.length; + var count = 0; + while (count < searchLength && this.equals(current[--index1], old[--index2])) count++; + return count; + }, + calculateSplices: function(current, previous) { + return this.calcSplices(current, 0, current.length, previous, 0, previous.length); + }, + equals: function(currentValue, previousValue) { + return currentValue === previousValue; + } + }; + scope.ArraySplice = ArraySplice; + })(window.ShadowDOMPolyfill); + (function(context) { + "use strict"; + var OriginalMutationObserver = window.MutationObserver; + var callbacks = []; + var pending = false; + var timerFunc; + function handle() { + pending = false; + var copies = callbacks.slice(0); + callbacks = []; + for (var i = 0; i < copies.length; i++) { + (0, copies[i])(); + } + } + if (OriginalMutationObserver) { + var counter = 1; + var observer = new OriginalMutationObserver(handle); + var textNode = document.createTextNode(counter); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function() { + counter = (counter + 1) % 2; + textNode.data = counter; + }; + } else { + timerFunc = window.setTimeout; + } + function setEndOfMicrotask(func) { + callbacks.push(func); + if (pending) return; + pending = true; + timerFunc(handle, 0); + } + context.setEndOfMicrotask = setEndOfMicrotask; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var setEndOfMicrotask = scope.setEndOfMicrotask; + var wrapIfNeeded = scope.wrapIfNeeded; + var wrappers = scope.wrappers; + var registrationsTable = new WeakMap(); + var globalMutationObservers = []; + var isScheduled = false; + function scheduleCallback(observer) { + if (observer.scheduled_) return; + observer.scheduled_ = true; + globalMutationObservers.push(observer); + if (isScheduled) return; + setEndOfMicrotask(notifyObservers); + isScheduled = true; + } + function notifyObservers() { + isScheduled = false; + while (globalMutationObservers.length) { + var notifyList = globalMutationObservers; + globalMutationObservers = []; + notifyList.sort(function(x, y) { + return x.uid_ - y.uid_; + }); + for (var i = 0; i < notifyList.length; i++) { + var mo = notifyList[i]; + mo.scheduled_ = false; + var queue = mo.takeRecords(); + removeTransientObserversFor(mo); + if (queue.length) { + mo.callback_(queue, mo); + } + } + } + } + function MutationRecord(type, target) { + this.type = type; + this.target = target; + this.addedNodes = new wrappers.NodeList(); + this.removedNodes = new wrappers.NodeList(); + this.previousSibling = null; + this.nextSibling = null; + this.attributeName = null; + this.attributeNamespace = null; + this.oldValue = null; + } + function registerTransientObservers(ancestor, node) { + for (;ancestor; ancestor = ancestor.parentNode) { + var registrations = registrationsTable.get(ancestor); + if (!registrations) continue; + for (var i = 0; i < registrations.length; i++) { + var registration = registrations[i]; + if (registration.options.subtree) registration.addTransientObserver(node); + } + } + } + function removeTransientObserversFor(observer) { + for (var i = 0; i < observer.nodes_.length; i++) { + var node = observer.nodes_[i]; + var registrations = registrationsTable.get(node); + if (!registrations) return; + for (var j = 0; j < registrations.length; j++) { + var registration = registrations[j]; + if (registration.observer === observer) registration.removeTransientObservers(); + } + } + } + function enqueueMutation(target, type, data) { + var interestedObservers = Object.create(null); + var associatedStrings = Object.create(null); + for (var node = target; node; node = node.parentNode) { + var registrations = registrationsTable.get(node); + if (!registrations) continue; + for (var j = 0; j < registrations.length; j++) { + var registration = registrations[j]; + var options = registration.options; + if (node !== target && !options.subtree) continue; + if (type === "attributes" && !options.attributes) continue; + if (type === "attributes" && options.attributeFilter && (data.namespace !== null || options.attributeFilter.indexOf(data.name) === -1)) { + continue; + } + if (type === "characterData" && !options.characterData) continue; + if (type === "childList" && !options.childList) continue; + var observer = registration.observer; + interestedObservers[observer.uid_] = observer; + if (type === "attributes" && options.attributeOldValue || type === "characterData" && options.characterDataOldValue) { + associatedStrings[observer.uid_] = data.oldValue; + } + } + } + for (var uid in interestedObservers) { + var observer = interestedObservers[uid]; + var record = new MutationRecord(type, target); + if ("name" in data && "namespace" in data) { + record.attributeName = data.name; + record.attributeNamespace = data.namespace; + } + if (data.addedNodes) record.addedNodes = data.addedNodes; + if (data.removedNodes) record.removedNodes = data.removedNodes; + if (data.previousSibling) record.previousSibling = data.previousSibling; + if (data.nextSibling) record.nextSibling = data.nextSibling; + if (associatedStrings[uid] !== undefined) record.oldValue = associatedStrings[uid]; + scheduleCallback(observer); + observer.records_.push(record); + } + } + var slice = Array.prototype.slice; + function MutationObserverOptions(options) { + this.childList = !!options.childList; + this.subtree = !!options.subtree; + if (!("attributes" in options) && ("attributeOldValue" in options || "attributeFilter" in options)) { + this.attributes = true; + } else { + this.attributes = !!options.attributes; + } + if ("characterDataOldValue" in options && !("characterData" in options)) this.characterData = true; else this.characterData = !!options.characterData; + if (!this.attributes && (options.attributeOldValue || "attributeFilter" in options) || !this.characterData && options.characterDataOldValue) { + throw new TypeError(); + } + this.characterData = !!options.characterData; + this.attributeOldValue = !!options.attributeOldValue; + this.characterDataOldValue = !!options.characterDataOldValue; + if ("attributeFilter" in options) { + if (options.attributeFilter == null || typeof options.attributeFilter !== "object") { + throw new TypeError(); + } + this.attributeFilter = slice.call(options.attributeFilter); + } else { + this.attributeFilter = null; + } + } + var uidCounter = 0; + function MutationObserver(callback) { + this.callback_ = callback; + this.nodes_ = []; + this.records_ = []; + this.uid_ = ++uidCounter; + this.scheduled_ = false; + } + MutationObserver.prototype = { + constructor: MutationObserver, + observe: function(target, options) { + target = wrapIfNeeded(target); + var newOptions = new MutationObserverOptions(options); + var registration; + var registrations = registrationsTable.get(target); + if (!registrations) registrationsTable.set(target, registrations = []); + for (var i = 0; i < registrations.length; i++) { + if (registrations[i].observer === this) { + registration = registrations[i]; + registration.removeTransientObservers(); + registration.options = newOptions; + } + } + if (!registration) { + registration = new Registration(this, target, newOptions); + registrations.push(registration); + this.nodes_.push(target); + } + }, + disconnect: function() { + this.nodes_.forEach(function(node) { + var registrations = registrationsTable.get(node); + for (var i = 0; i < registrations.length; i++) { + var registration = registrations[i]; + if (registration.observer === this) { + registrations.splice(i, 1); + break; + } + } + }, this); + this.records_ = []; + }, + takeRecords: function() { + var copyOfRecords = this.records_; + this.records_ = []; + return copyOfRecords; + } + }; + function Registration(observer, target, options) { + this.observer = observer; + this.target = target; + this.options = options; + this.transientObservedNodes = []; + } + Registration.prototype = { + addTransientObserver: function(node) { + if (node === this.target) return; + scheduleCallback(this.observer); + this.transientObservedNodes.push(node); + var registrations = registrationsTable.get(node); + if (!registrations) registrationsTable.set(node, registrations = []); + registrations.push(this); + }, + removeTransientObservers: function() { + var transientObservedNodes = this.transientObservedNodes; + this.transientObservedNodes = []; + for (var i = 0; i < transientObservedNodes.length; i++) { + var node = transientObservedNodes[i]; + var registrations = registrationsTable.get(node); + for (var j = 0; j < registrations.length; j++) { + if (registrations[j] === this) { + registrations.splice(j, 1); + break; + } + } + } + } + }; + scope.enqueueMutation = enqueueMutation; + scope.registerTransientObservers = registerTransientObservers; + scope.wrappers.MutationObserver = MutationObserver; + scope.wrappers.MutationRecord = MutationRecord; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + function TreeScope(root, parent) { + this.root = root; + this.parent = parent; + } + TreeScope.prototype = { + get renderer() { + if (this.root instanceof scope.wrappers.ShadowRoot) { + return scope.getRendererForHost(this.root.host); + } + return null; + }, + contains: function(treeScope) { + for (;treeScope; treeScope = treeScope.parent) { + if (treeScope === this) return true; + } + return false; + } + }; + function setTreeScope(node, treeScope) { + if (node.treeScope_ !== treeScope) { + node.treeScope_ = treeScope; + for (var sr = node.shadowRoot; sr; sr = sr.olderShadowRoot) { + sr.treeScope_.parent = treeScope; + } + for (var child = node.firstChild; child; child = child.nextSibling) { + setTreeScope(child, treeScope); + } + } + } + function getTreeScope(node) { + if (node instanceof scope.wrappers.Window) { + debugger; + } + if (node.treeScope_) return node.treeScope_; + var parent = node.parentNode; + var treeScope; + if (parent) treeScope = getTreeScope(parent); else treeScope = new TreeScope(node, null); + return node.treeScope_ = treeScope; + } + scope.TreeScope = TreeScope; + scope.getTreeScope = getTreeScope; + scope.setTreeScope = setTreeScope; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; + var getTreeScope = scope.getTreeScope; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrappers = scope.wrappers; + var wrappedFuns = new WeakMap(); + var listenersTable = new WeakMap(); + var handledEventsTable = new WeakMap(); + var currentlyDispatchingEvents = new WeakMap(); + var targetTable = new WeakMap(); + var currentTargetTable = new WeakMap(); + var relatedTargetTable = new WeakMap(); + var eventPhaseTable = new WeakMap(); + var stopPropagationTable = new WeakMap(); + var stopImmediatePropagationTable = new WeakMap(); + var eventHandlersTable = new WeakMap(); + var eventPathTable = new WeakMap(); + function isShadowRoot(node) { + return node instanceof wrappers.ShadowRoot; + } + function rootOfNode(node) { + return getTreeScope(node).root; + } + function getEventPath(node, event) { + var path = []; + var current = node; + path.push(current); + while (current) { + var destinationInsertionPoints = getDestinationInsertionPoints(current); + if (destinationInsertionPoints && destinationInsertionPoints.length > 0) { + for (var i = 0; i < destinationInsertionPoints.length; i++) { + var insertionPoint = destinationInsertionPoints[i]; + if (isShadowInsertionPoint(insertionPoint)) { + var shadowRoot = rootOfNode(insertionPoint); + var olderShadowRoot = shadowRoot.olderShadowRoot; + if (olderShadowRoot) path.push(olderShadowRoot); + } + path.push(insertionPoint); + } + current = destinationInsertionPoints[destinationInsertionPoints.length - 1]; + } else { + if (isShadowRoot(current)) { + if (inSameTree(node, current) && eventMustBeStopped(event)) { + break; + } + current = current.host; + path.push(current); + } else { + current = current.parentNode; + if (current) path.push(current); + } + } + } + return path; + } + function eventMustBeStopped(event) { + if (!event) return false; + switch (event.type) { + case "abort": + case "error": + case "select": + case "change": + case "load": + case "reset": + case "resize": + case "scroll": + case "selectstart": + return true; + } + return false; + } + function isShadowInsertionPoint(node) { + return node instanceof HTMLShadowElement; + } + function getDestinationInsertionPoints(node) { + return scope.getDestinationInsertionPoints(node); + } + function eventRetargetting(path, currentTarget) { + if (path.length === 0) return currentTarget; + if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; + var currentTargetTree = getTreeScope(currentTarget); + var originalTarget = path[0]; + var originalTargetTree = getTreeScope(originalTarget); + var relativeTargetTree = lowestCommonInclusiveAncestor(currentTargetTree, originalTargetTree); + for (var i = 0; i < path.length; i++) { + var node = path[i]; + if (getTreeScope(node) === relativeTargetTree) return node; + } + return path[path.length - 1]; + } + function getTreeScopeAncestors(treeScope) { + var ancestors = []; + for (;treeScope; treeScope = treeScope.parent) { + ancestors.push(treeScope); + } + return ancestors; + } + function lowestCommonInclusiveAncestor(tsA, tsB) { + var ancestorsA = getTreeScopeAncestors(tsA); + var ancestorsB = getTreeScopeAncestors(tsB); + var result = null; + while (ancestorsA.length > 0 && ancestorsB.length > 0) { + var a = ancestorsA.pop(); + var b = ancestorsB.pop(); + if (a === b) result = a; else break; + } + return result; + } + function getTreeScopeRoot(ts) { + if (!ts.parent) return ts; + return getTreeScopeRoot(ts.parent); + } + function relatedTargetResolution(event, currentTarget, relatedTarget) { + if (currentTarget instanceof wrappers.Window) currentTarget = currentTarget.document; + var currentTargetTree = getTreeScope(currentTarget); + var relatedTargetTree = getTreeScope(relatedTarget); + var relatedTargetEventPath = getEventPath(relatedTarget, event); + var lowestCommonAncestorTree; + var lowestCommonAncestorTree = lowestCommonInclusiveAncestor(currentTargetTree, relatedTargetTree); + if (!lowestCommonAncestorTree) lowestCommonAncestorTree = relatedTargetTree.root; + for (var commonAncestorTree = lowestCommonAncestorTree; commonAncestorTree; commonAncestorTree = commonAncestorTree.parent) { + var adjustedRelatedTarget; + for (var i = 0; i < relatedTargetEventPath.length; i++) { + var node = relatedTargetEventPath[i]; + if (getTreeScope(node) === commonAncestorTree) return node; + } + } + return null; + } + function inSameTree(a, b) { + return getTreeScope(a) === getTreeScope(b); + } + var NONE = 0; + var CAPTURING_PHASE = 1; + var AT_TARGET = 2; + var BUBBLING_PHASE = 3; + var pendingError; + function dispatchOriginalEvent(originalEvent) { + if (handledEventsTable.get(originalEvent)) return; + handledEventsTable.set(originalEvent, true); + dispatchEvent(wrap(originalEvent), wrap(originalEvent.target)); + if (pendingError) { + var err = pendingError; + pendingError = null; + throw err; + } + } + function isLoadLikeEvent(event) { + switch (event.type) { + case "load": + case "beforeunload": + case "unload": + return true; + } + return false; + } + function dispatchEvent(event, originalWrapperTarget) { + if (currentlyDispatchingEvents.get(event)) throw new Error("InvalidStateError"); + currentlyDispatchingEvents.set(event, true); + scope.renderAllPending(); + var eventPath; + var overrideTarget; + var win; + if (isLoadLikeEvent(event) && !event.bubbles) { + var doc = originalWrapperTarget; + if (doc instanceof wrappers.Document && (win = doc.defaultView)) { + overrideTarget = doc; + eventPath = []; + } + } + if (!eventPath) { + if (originalWrapperTarget instanceof wrappers.Window) { + win = originalWrapperTarget; + eventPath = []; + } else { + eventPath = getEventPath(originalWrapperTarget, event); + if (!isLoadLikeEvent(event)) { + var doc = eventPath[eventPath.length - 1]; + if (doc instanceof wrappers.Document) win = doc.defaultView; + } + } + } + eventPathTable.set(event, eventPath); + if (dispatchCapturing(event, eventPath, win, overrideTarget)) { + if (dispatchAtTarget(event, eventPath, win, overrideTarget)) { + dispatchBubbling(event, eventPath, win, overrideTarget); + } + } + eventPhaseTable.set(event, NONE); + currentTargetTable.delete(event, null); + currentlyDispatchingEvents.delete(event); + return event.defaultPrevented; + } + function dispatchCapturing(event, eventPath, win, overrideTarget) { + var phase = CAPTURING_PHASE; + if (win) { + if (!invoke(win, event, phase, eventPath, overrideTarget)) return false; + } + for (var i = eventPath.length - 1; i > 0; i--) { + if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return false; + } + return true; + } + function dispatchAtTarget(event, eventPath, win, overrideTarget) { + var phase = AT_TARGET; + var currentTarget = eventPath[0] || win; + return invoke(currentTarget, event, phase, eventPath, overrideTarget); + } + function dispatchBubbling(event, eventPath, win, overrideTarget) { + var phase = BUBBLING_PHASE; + for (var i = 1; i < eventPath.length; i++) { + if (!invoke(eventPath[i], event, phase, eventPath, overrideTarget)) return; + } + if (win && eventPath.length > 0) { + invoke(win, event, phase, eventPath, overrideTarget); + } + } + function invoke(currentTarget, event, phase, eventPath, overrideTarget) { + var listeners = listenersTable.get(currentTarget); + if (!listeners) return true; + var target = overrideTarget || eventRetargetting(eventPath, currentTarget); + if (target === currentTarget) { + if (phase === CAPTURING_PHASE) return true; + if (phase === BUBBLING_PHASE) phase = AT_TARGET; + } else if (phase === BUBBLING_PHASE && !event.bubbles) { + return true; + } + if ("relatedTarget" in event) { + var originalEvent = unwrap(event); + var unwrappedRelatedTarget = originalEvent.relatedTarget; + if (unwrappedRelatedTarget) { + if (unwrappedRelatedTarget instanceof Object && unwrappedRelatedTarget.addEventListener) { + var relatedTarget = wrap(unwrappedRelatedTarget); + var adjusted = relatedTargetResolution(event, currentTarget, relatedTarget); + if (adjusted === target) return true; + } else { + adjusted = null; + } + relatedTargetTable.set(event, adjusted); + } + } + eventPhaseTable.set(event, phase); + var type = event.type; + var anyRemoved = false; + targetTable.set(event, target); + currentTargetTable.set(event, currentTarget); + listeners.depth++; + for (var i = 0, len = listeners.length; i < len; i++) { + var listener = listeners[i]; + if (listener.removed) { + anyRemoved = true; + continue; + } + if (listener.type !== type || !listener.capture && phase === CAPTURING_PHASE || listener.capture && phase === BUBBLING_PHASE) { + continue; + } + try { + if (typeof listener.handler === "function") listener.handler.call(currentTarget, event); else listener.handler.handleEvent(event); + if (stopImmediatePropagationTable.get(event)) return false; + } catch (ex) { + if (!pendingError) pendingError = ex; + } + } + listeners.depth--; + if (anyRemoved && listeners.depth === 0) { + var copy = listeners.slice(); + listeners.length = 0; + for (var i = 0; i < copy.length; i++) { + if (!copy[i].removed) listeners.push(copy[i]); + } + } + return !stopPropagationTable.get(event); + } + function Listener(type, handler, capture) { + this.type = type; + this.handler = handler; + this.capture = Boolean(capture); + } + Listener.prototype = { + equals: function(that) { + return this.handler === that.handler && this.type === that.type && this.capture === that.capture; + }, + get removed() { + return this.handler === null; + }, + remove: function() { + this.handler = null; + } + }; + var OriginalEvent = window.Event; + OriginalEvent.prototype.polymerBlackList_ = { + returnValue: true, + keyLocation: true + }; + function Event(type, options) { + if (type instanceof OriginalEvent) { + var impl = type; + if (!OriginalBeforeUnloadEvent && impl.type === "beforeunload" && !(this instanceof BeforeUnloadEvent)) { + return new BeforeUnloadEvent(impl); + } + setWrapper(impl, this); + } else { + return wrap(constructEvent(OriginalEvent, "Event", type, options)); + } + } + Event.prototype = { + get target() { + return targetTable.get(this); + }, + get currentTarget() { + return currentTargetTable.get(this); + }, + get eventPhase() { + return eventPhaseTable.get(this); + }, + get path() { + var eventPath = eventPathTable.get(this); + if (!eventPath) return []; + return eventPath.slice(); + }, + stopPropagation: function() { + stopPropagationTable.set(this, true); + }, + stopImmediatePropagation: function() { + stopPropagationTable.set(this, true); + stopImmediatePropagationTable.set(this, true); + } + }; + var supportsDefaultPrevented = function() { + var e = document.createEvent("Event"); + e.initEvent("test", true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); + if (!supportsDefaultPrevented) { + Event.prototype.preventDefault = function() { + if (!this.cancelable) return; + unsafeUnwrap(this).preventDefault(); + Object.defineProperty(this, "defaultPrevented", { + get: function() { + return true; + }, + configurable: true + }); + }; + } + registerWrapper(OriginalEvent, Event, document.createEvent("Event")); + function unwrapOptions(options) { + if (!options || !options.relatedTarget) return options; + return Object.create(options, { + relatedTarget: { + value: unwrap(options.relatedTarget) + } + }); + } + function registerGenericEvent(name, SuperEvent, prototype) { + var OriginalEvent = window[name]; + var GenericEvent = function(type, options) { + if (type instanceof OriginalEvent) setWrapper(type, this); else return wrap(constructEvent(OriginalEvent, name, type, options)); + }; + GenericEvent.prototype = Object.create(SuperEvent.prototype); + if (prototype) mixin(GenericEvent.prototype, prototype); + if (OriginalEvent) { + try { + registerWrapper(OriginalEvent, GenericEvent, new OriginalEvent("temp")); + } catch (ex) { + registerWrapper(OriginalEvent, GenericEvent, document.createEvent(name)); + } + } + return GenericEvent; + } + var UIEvent = registerGenericEvent("UIEvent", Event); + var CustomEvent = registerGenericEvent("CustomEvent", Event); + var relatedTargetProto = { + get relatedTarget() { + var relatedTarget = relatedTargetTable.get(this); + if (relatedTarget !== undefined) return relatedTarget; + return wrap(unwrap(this).relatedTarget); + } + }; + function getInitFunction(name, relatedTargetIndex) { + return function() { + arguments[relatedTargetIndex] = unwrap(arguments[relatedTargetIndex]); + var impl = unwrap(this); + impl[name].apply(impl, arguments); + }; + } + var mouseEventProto = mixin({ + initMouseEvent: getInitFunction("initMouseEvent", 14) + }, relatedTargetProto); + var focusEventProto = mixin({ + initFocusEvent: getInitFunction("initFocusEvent", 5) + }, relatedTargetProto); + var MouseEvent = registerGenericEvent("MouseEvent", UIEvent, mouseEventProto); + var FocusEvent = registerGenericEvent("FocusEvent", UIEvent, focusEventProto); + var defaultInitDicts = Object.create(null); + var supportsEventConstructors = function() { + try { + new window.FocusEvent("focus"); + } catch (ex) { + return false; + } + return true; + }(); + function constructEvent(OriginalEvent, name, type, options) { + if (supportsEventConstructors) return new OriginalEvent(type, unwrapOptions(options)); + var event = unwrap(document.createEvent(name)); + var defaultDict = defaultInitDicts[name]; + var args = [ type ]; + Object.keys(defaultDict).forEach(function(key) { + var v = options != null && key in options ? options[key] : defaultDict[key]; + if (key === "relatedTarget") v = unwrap(v); + args.push(v); + }); + event["init" + name].apply(event, args); + return event; + } + if (!supportsEventConstructors) { + var configureEventConstructor = function(name, initDict, superName) { + if (superName) { + var superDict = defaultInitDicts[superName]; + initDict = mixin(mixin({}, superDict), initDict); + } + defaultInitDicts[name] = initDict; + }; + configureEventConstructor("Event", { + bubbles: false, + cancelable: false + }); + configureEventConstructor("CustomEvent", { + detail: null + }, "Event"); + configureEventConstructor("UIEvent", { + view: null, + detail: 0 + }, "Event"); + configureEventConstructor("MouseEvent", { + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0, + ctrlKey: false, + altKey: false, + shiftKey: false, + metaKey: false, + button: 0, + relatedTarget: null + }, "UIEvent"); + configureEventConstructor("FocusEvent", { + relatedTarget: null + }, "UIEvent"); + } + var OriginalBeforeUnloadEvent = window.BeforeUnloadEvent; + function BeforeUnloadEvent(impl) { + Event.call(this, impl); + } + BeforeUnloadEvent.prototype = Object.create(Event.prototype); + mixin(BeforeUnloadEvent.prototype, { + get returnValue() { + return unsafeUnwrap(this).returnValue; + }, + set returnValue(v) { + unsafeUnwrap(this).returnValue = v; + } + }); + if (OriginalBeforeUnloadEvent) registerWrapper(OriginalBeforeUnloadEvent, BeforeUnloadEvent); + function isValidListener(fun) { + if (typeof fun === "function") return true; + return fun && fun.handleEvent; + } + function isMutationEvent(type) { + switch (type) { + case "DOMAttrModified": + case "DOMAttributeNameChanged": + case "DOMCharacterDataModified": + case "DOMElementNameChanged": + case "DOMNodeInserted": + case "DOMNodeInsertedIntoDocument": + case "DOMNodeRemoved": + case "DOMNodeRemovedFromDocument": + case "DOMSubtreeModified": + return true; + } + return false; + } + var OriginalEventTarget = window.EventTarget; + function EventTarget(impl) { + setWrapper(impl, this); + } + var methodNames = [ "addEventListener", "removeEventListener", "dispatchEvent" ]; + [ Node, Window ].forEach(function(constructor) { + var p = constructor.prototype; + methodNames.forEach(function(name) { + Object.defineProperty(p, name + "_", { + value: p[name] + }); + }); + }); + function getTargetToListenAt(wrapper) { + if (wrapper instanceof wrappers.ShadowRoot) wrapper = wrapper.host; + return unwrap(wrapper); + } + EventTarget.prototype = { + addEventListener: function(type, fun, capture) { + if (!isValidListener(fun) || isMutationEvent(type)) return; + var listener = new Listener(type, fun, capture); + var listeners = listenersTable.get(this); + if (!listeners) { + listeners = []; + listeners.depth = 0; + listenersTable.set(this, listeners); + } else { + for (var i = 0; i < listeners.length; i++) { + if (listener.equals(listeners[i])) return; + } + } + listeners.push(listener); + var target = getTargetToListenAt(this); + target.addEventListener_(type, dispatchOriginalEvent, true); + }, + removeEventListener: function(type, fun, capture) { + capture = Boolean(capture); + var listeners = listenersTable.get(this); + if (!listeners) return; + var count = 0, found = false; + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].type === type && listeners[i].capture === capture) { + count++; + if (listeners[i].handler === fun) { + found = true; + listeners[i].remove(); + } + } + } + if (found && count === 1) { + var target = getTargetToListenAt(this); + target.removeEventListener_(type, dispatchOriginalEvent, true); + } + }, + dispatchEvent: function(event) { + var nativeEvent = unwrap(event); + var eventType = nativeEvent.type; + handledEventsTable.set(nativeEvent, false); + scope.renderAllPending(); + var tempListener; + if (!hasListenerInAncestors(this, eventType)) { + tempListener = function() {}; + this.addEventListener(eventType, tempListener, true); + } + try { + return unwrap(this).dispatchEvent_(nativeEvent); + } finally { + if (tempListener) this.removeEventListener(eventType, tempListener, true); + } + } + }; + function hasListener(node, type) { + var listeners = listenersTable.get(node); + if (listeners) { + for (var i = 0; i < listeners.length; i++) { + if (!listeners[i].removed && listeners[i].type === type) return true; + } + } + return false; + } + function hasListenerInAncestors(target, type) { + for (var node = unwrap(target); node; node = node.parentNode) { + if (hasListener(wrap(node), type)) return true; + } + return false; + } + if (OriginalEventTarget) registerWrapper(OriginalEventTarget, EventTarget); + function wrapEventTargetMethods(constructors) { + forwardMethodsToWrapper(constructors, methodNames); + } + var originalElementFromPoint = document.elementFromPoint; + function elementFromPoint(self, document, x, y) { + scope.renderAllPending(); + var element = wrap(originalElementFromPoint.call(unsafeUnwrap(document), x, y)); + if (!element) return null; + var path = getEventPath(element, null); + var idx = path.lastIndexOf(self); + if (idx == -1) return null; else path = path.slice(0, idx); + return eventRetargetting(path, self); + } + function getEventHandlerGetter(name) { + return function() { + var inlineEventHandlers = eventHandlersTable.get(this); + return inlineEventHandlers && inlineEventHandlers[name] && inlineEventHandlers[name].value || null; + }; + } + function getEventHandlerSetter(name) { + var eventType = name.slice(2); + return function(value) { + var inlineEventHandlers = eventHandlersTable.get(this); + if (!inlineEventHandlers) { + inlineEventHandlers = Object.create(null); + eventHandlersTable.set(this, inlineEventHandlers); + } + var old = inlineEventHandlers[name]; + if (old) this.removeEventListener(eventType, old.wrapped, false); + if (typeof value === "function") { + var wrapped = function(e) { + var rv = value.call(this, e); + if (rv === false) e.preventDefault(); else if (name === "onbeforeunload" && typeof rv === "string") e.returnValue = rv; + }; + this.addEventListener(eventType, wrapped, false); + inlineEventHandlers[name] = { + value: value, + wrapped: wrapped + }; + } + }; + } + scope.elementFromPoint = elementFromPoint; + scope.getEventHandlerGetter = getEventHandlerGetter; + scope.getEventHandlerSetter = getEventHandlerSetter; + scope.wrapEventTargetMethods = wrapEventTargetMethods; + scope.wrappers.BeforeUnloadEvent = BeforeUnloadEvent; + scope.wrappers.CustomEvent = CustomEvent; + scope.wrappers.Event = Event; + scope.wrappers.EventTarget = EventTarget; + scope.wrappers.FocusEvent = FocusEvent; + scope.wrappers.MouseEvent = MouseEvent; + scope.wrappers.UIEvent = UIEvent; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var UIEvent = scope.wrappers.UIEvent; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var OriginalTouchEvent = window.TouchEvent; + if (!OriginalTouchEvent) return; + var nativeEvent; + try { + nativeEvent = document.createEvent("TouchEvent"); + } catch (ex) { + return; + } + var nonEnumDescriptor = { + enumerable: false + }; + function nonEnum(obj, prop) { + Object.defineProperty(obj, prop, nonEnumDescriptor); + } + function Touch(impl) { + setWrapper(impl, this); + } + Touch.prototype = { + get target() { + return wrap(unsafeUnwrap(this).target); + } + }; + var descr = { + configurable: true, + enumerable: true, + get: null + }; + [ "clientX", "clientY", "screenX", "screenY", "pageX", "pageY", "identifier", "webkitRadiusX", "webkitRadiusY", "webkitRotationAngle", "webkitForce" ].forEach(function(name) { + descr.get = function() { + return unsafeUnwrap(this)[name]; + }; + Object.defineProperty(Touch.prototype, name, descr); + }); + function TouchList() { + this.length = 0; + nonEnum(this, "length"); + } + TouchList.prototype = { + item: function(index) { + return this[index]; + } + }; + function wrapTouchList(nativeTouchList) { + var list = new TouchList(); + for (var i = 0; i < nativeTouchList.length; i++) { + list[i] = new Touch(nativeTouchList[i]); + } + list.length = i; + return list; + } + function TouchEvent(impl) { + UIEvent.call(this, impl); + } + TouchEvent.prototype = Object.create(UIEvent.prototype); + mixin(TouchEvent.prototype, { + get touches() { + return wrapTouchList(unsafeUnwrap(this).touches); + }, + get targetTouches() { + return wrapTouchList(unsafeUnwrap(this).targetTouches); + }, + get changedTouches() { + return wrapTouchList(unsafeUnwrap(this).changedTouches); + }, + initTouchEvent: function() { + throw new Error("Not implemented"); + } + }); + registerWrapper(OriginalTouchEvent, TouchEvent, nativeEvent); + scope.wrappers.Touch = Touch; + scope.wrappers.TouchEvent = TouchEvent; + scope.wrappers.TouchList = TouchList; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var nonEnumDescriptor = { + enumerable: false + }; + function nonEnum(obj, prop) { + Object.defineProperty(obj, prop, nonEnumDescriptor); + } + function NodeList() { + this.length = 0; + nonEnum(this, "length"); + } + NodeList.prototype = { + item: function(index) { + return this[index]; + } + }; + nonEnum(NodeList.prototype, "item"); + function wrapNodeList(list) { + if (list == null) return list; + var wrapperList = new NodeList(); + for (var i = 0, length = list.length; i < length; i++) { + wrapperList[i] = wrap(list[i]); + } + wrapperList.length = length; + return wrapperList; + } + function addWrapNodeListMethod(wrapperConstructor, name) { + wrapperConstructor.prototype[name] = function() { + return wrapNodeList(unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments)); + }; + } + scope.wrappers.NodeList = NodeList; + scope.addWrapNodeListMethod = addWrapNodeListMethod; + scope.wrapNodeList = wrapNodeList; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + scope.wrapHTMLCollection = scope.wrapNodeList; + scope.wrappers.HTMLCollection = scope.wrappers.NodeList; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var EventTarget = scope.wrappers.EventTarget; + var NodeList = scope.wrappers.NodeList; + var TreeScope = scope.TreeScope; + var assert = scope.assert; + var defineWrapGetter = scope.defineWrapGetter; + var enqueueMutation = scope.enqueueMutation; + var getTreeScope = scope.getTreeScope; + var isWrapper = scope.isWrapper; + var mixin = scope.mixin; + var registerTransientObservers = scope.registerTransientObservers; + var registerWrapper = scope.registerWrapper; + var setTreeScope = scope.setTreeScope; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var wrapIfNeeded = scope.wrapIfNeeded; + var wrappers = scope.wrappers; + function assertIsNodeWrapper(node) { + assert(node instanceof Node); + } + function createOneElementNodeList(node) { + var nodes = new NodeList(); + nodes[0] = node; + nodes.length = 1; + return nodes; + } + var surpressMutations = false; + function enqueueRemovalForInsertedNodes(node, parent, nodes) { + enqueueMutation(parent, "childList", { + removedNodes: nodes, + previousSibling: node.previousSibling, + nextSibling: node.nextSibling + }); + } + function enqueueRemovalForInsertedDocumentFragment(df, nodes) { + enqueueMutation(df, "childList", { + removedNodes: nodes + }); + } + function collectNodes(node, parentNode, previousNode, nextNode) { + if (node instanceof DocumentFragment) { + var nodes = collectNodesForDocumentFragment(node); + surpressMutations = true; + for (var i = nodes.length - 1; i >= 0; i--) { + node.removeChild(nodes[i]); + nodes[i].parentNode_ = parentNode; + } + surpressMutations = false; + for (var i = 0; i < nodes.length; i++) { + nodes[i].previousSibling_ = nodes[i - 1] || previousNode; + nodes[i].nextSibling_ = nodes[i + 1] || nextNode; + } + if (previousNode) previousNode.nextSibling_ = nodes[0]; + if (nextNode) nextNode.previousSibling_ = nodes[nodes.length - 1]; + return nodes; + } + var nodes = createOneElementNodeList(node); + var oldParent = node.parentNode; + if (oldParent) { + oldParent.removeChild(node); + } + node.parentNode_ = parentNode; + node.previousSibling_ = previousNode; + node.nextSibling_ = nextNode; + if (previousNode) previousNode.nextSibling_ = node; + if (nextNode) nextNode.previousSibling_ = node; + return nodes; + } + function collectNodesNative(node) { + if (node instanceof DocumentFragment) return collectNodesForDocumentFragment(node); + var nodes = createOneElementNodeList(node); + var oldParent = node.parentNode; + if (oldParent) enqueueRemovalForInsertedNodes(node, oldParent, nodes); + return nodes; + } + function collectNodesForDocumentFragment(node) { + var nodes = new NodeList(); + var i = 0; + for (var child = node.firstChild; child; child = child.nextSibling) { + nodes[i++] = child; + } + nodes.length = i; + enqueueRemovalForInsertedDocumentFragment(node, nodes); + return nodes; + } + function snapshotNodeList(nodeList) { + return nodeList; + } + function nodeWasAdded(node, treeScope) { + setTreeScope(node, treeScope); + node.nodeIsInserted_(); + } + function nodesWereAdded(nodes, parent) { + var treeScope = getTreeScope(parent); + for (var i = 0; i < nodes.length; i++) { + nodeWasAdded(nodes[i], treeScope); + } + } + function nodeWasRemoved(node) { + setTreeScope(node, new TreeScope(node, null)); + } + function nodesWereRemoved(nodes) { + for (var i = 0; i < nodes.length; i++) { + nodeWasRemoved(nodes[i]); + } + } + function ensureSameOwnerDocument(parent, child) { + var ownerDoc = parent.nodeType === Node.DOCUMENT_NODE ? parent : parent.ownerDocument; + if (ownerDoc !== child.ownerDocument) ownerDoc.adoptNode(child); + } + function adoptNodesIfNeeded(owner, nodes) { + if (!nodes.length) return; + var ownerDoc = owner.ownerDocument; + if (ownerDoc === nodes[0].ownerDocument) return; + for (var i = 0; i < nodes.length; i++) { + scope.adoptNodeNoRemove(nodes[i], ownerDoc); + } + } + function unwrapNodesForInsertion(owner, nodes) { + adoptNodesIfNeeded(owner, nodes); + var length = nodes.length; + if (length === 1) return unwrap(nodes[0]); + var df = unwrap(owner.ownerDocument.createDocumentFragment()); + for (var i = 0; i < length; i++) { + df.appendChild(unwrap(nodes[i])); + } + return df; + } + function clearChildNodes(wrapper) { + if (wrapper.firstChild_ !== undefined) { + var child = wrapper.firstChild_; + while (child) { + var tmp = child; + child = child.nextSibling_; + tmp.parentNode_ = tmp.previousSibling_ = tmp.nextSibling_ = undefined; + } + } + wrapper.firstChild_ = wrapper.lastChild_ = undefined; + } + function removeAllChildNodes(wrapper) { + if (wrapper.invalidateShadowRenderer()) { + var childWrapper = wrapper.firstChild; + while (childWrapper) { + assert(childWrapper.parentNode === wrapper); + var nextSibling = childWrapper.nextSibling; + var childNode = unwrap(childWrapper); + var parentNode = childNode.parentNode; + if (parentNode) originalRemoveChild.call(parentNode, childNode); + childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = null; + childWrapper = nextSibling; + } + wrapper.firstChild_ = wrapper.lastChild_ = null; + } else { + var node = unwrap(wrapper); + var child = node.firstChild; + var nextSibling; + while (child) { + nextSibling = child.nextSibling; + originalRemoveChild.call(node, child); + child = nextSibling; + } + } + } + function invalidateParent(node) { + var p = node.parentNode; + return p && p.invalidateShadowRenderer(); + } + function cleanupNodes(nodes) { + for (var i = 0, n; i < nodes.length; i++) { + n = nodes[i]; + n.parentNode.removeChild(n); + } + } + var originalImportNode = document.importNode; + var originalCloneNode = window.Node.prototype.cloneNode; + function cloneNode(node, deep, opt_doc) { + var clone; + if (opt_doc) clone = wrap(originalImportNode.call(opt_doc, unsafeUnwrap(node), false)); else clone = wrap(originalCloneNode.call(unsafeUnwrap(node), false)); + if (deep) { + for (var child = node.firstChild; child; child = child.nextSibling) { + clone.appendChild(cloneNode(child, true, opt_doc)); + } + if (node instanceof wrappers.HTMLTemplateElement) { + var cloneContent = clone.content; + for (var child = node.content.firstChild; child; child = child.nextSibling) { + cloneContent.appendChild(cloneNode(child, true, opt_doc)); + } + } + } + return clone; + } + function contains(self, child) { + if (!child || getTreeScope(self) !== getTreeScope(child)) return false; + for (var node = child; node; node = node.parentNode) { + if (node === self) return true; + } + return false; + } + var OriginalNode = window.Node; + function Node(original) { + assert(original instanceof OriginalNode); + EventTarget.call(this, original); + this.parentNode_ = undefined; + this.firstChild_ = undefined; + this.lastChild_ = undefined; + this.nextSibling_ = undefined; + this.previousSibling_ = undefined; + this.treeScope_ = undefined; + } + var OriginalDocumentFragment = window.DocumentFragment; + var originalAppendChild = OriginalNode.prototype.appendChild; + var originalCompareDocumentPosition = OriginalNode.prototype.compareDocumentPosition; + var originalIsEqualNode = OriginalNode.prototype.isEqualNode; + var originalInsertBefore = OriginalNode.prototype.insertBefore; + var originalRemoveChild = OriginalNode.prototype.removeChild; + var originalReplaceChild = OriginalNode.prototype.replaceChild; + var isIEOrEdge = /Trident|Edge/.test(navigator.userAgent); + var removeChildOriginalHelper = isIEOrEdge ? function(parent, child) { + try { + originalRemoveChild.call(parent, child); + } catch (ex) { + if (!(parent instanceof OriginalDocumentFragment)) throw ex; + } + } : function(parent, child) { + originalRemoveChild.call(parent, child); + }; + Node.prototype = Object.create(EventTarget.prototype); + mixin(Node.prototype, { + appendChild: function(childWrapper) { + return this.insertBefore(childWrapper, null); + }, + insertBefore: function(childWrapper, refWrapper) { + assertIsNodeWrapper(childWrapper); + var refNode; + if (refWrapper) { + if (isWrapper(refWrapper)) { + refNode = unwrap(refWrapper); + } else { + refNode = refWrapper; + refWrapper = wrap(refNode); + } + } else { + refWrapper = null; + refNode = null; + } + refWrapper && assert(refWrapper.parentNode === this); + var nodes; + var previousNode = refWrapper ? refWrapper.previousSibling : this.lastChild; + var useNative = !this.invalidateShadowRenderer() && !invalidateParent(childWrapper); + if (useNative) nodes = collectNodesNative(childWrapper); else nodes = collectNodes(childWrapper, this, previousNode, refWrapper); + if (useNative) { + ensureSameOwnerDocument(this, childWrapper); + clearChildNodes(this); + originalInsertBefore.call(unsafeUnwrap(this), unwrap(childWrapper), refNode); + } else { + if (!previousNode) this.firstChild_ = nodes[0]; + if (!refWrapper) { + this.lastChild_ = nodes[nodes.length - 1]; + if (this.firstChild_ === undefined) this.firstChild_ = this.firstChild; + } + var parentNode = refNode ? refNode.parentNode : unsafeUnwrap(this); + if (parentNode) { + originalInsertBefore.call(parentNode, unwrapNodesForInsertion(this, nodes), refNode); + } else { + adoptNodesIfNeeded(this, nodes); + } + } + enqueueMutation(this, "childList", { + addedNodes: nodes, + nextSibling: refWrapper, + previousSibling: previousNode + }); + nodesWereAdded(nodes, this); + return childWrapper; + }, + removeChild: function(childWrapper) { + assertIsNodeWrapper(childWrapper); + if (childWrapper.parentNode !== this) { + var found = false; + var childNodes = this.childNodes; + for (var ieChild = this.firstChild; ieChild; ieChild = ieChild.nextSibling) { + if (ieChild === childWrapper) { + found = true; + break; + } + } + if (!found) { + throw new Error("NotFoundError"); + } + } + var childNode = unwrap(childWrapper); + var childWrapperNextSibling = childWrapper.nextSibling; + var childWrapperPreviousSibling = childWrapper.previousSibling; + if (this.invalidateShadowRenderer()) { + var thisFirstChild = this.firstChild; + var thisLastChild = this.lastChild; + var parentNode = childNode.parentNode; + if (parentNode) removeChildOriginalHelper(parentNode, childNode); + if (thisFirstChild === childWrapper) this.firstChild_ = childWrapperNextSibling; + if (thisLastChild === childWrapper) this.lastChild_ = childWrapperPreviousSibling; + if (childWrapperPreviousSibling) childWrapperPreviousSibling.nextSibling_ = childWrapperNextSibling; + if (childWrapperNextSibling) { + childWrapperNextSibling.previousSibling_ = childWrapperPreviousSibling; + } + childWrapper.previousSibling_ = childWrapper.nextSibling_ = childWrapper.parentNode_ = undefined; + } else { + clearChildNodes(this); + removeChildOriginalHelper(unsafeUnwrap(this), childNode); + } + if (!surpressMutations) { + enqueueMutation(this, "childList", { + removedNodes: createOneElementNodeList(childWrapper), + nextSibling: childWrapperNextSibling, + previousSibling: childWrapperPreviousSibling + }); + } + registerTransientObservers(this, childWrapper); + return childWrapper; + }, + replaceChild: function(newChildWrapper, oldChildWrapper) { + assertIsNodeWrapper(newChildWrapper); + var oldChildNode; + if (isWrapper(oldChildWrapper)) { + oldChildNode = unwrap(oldChildWrapper); + } else { + oldChildNode = oldChildWrapper; + oldChildWrapper = wrap(oldChildNode); + } + if (oldChildWrapper.parentNode !== this) { + throw new Error("NotFoundError"); + } + var nextNode = oldChildWrapper.nextSibling; + var previousNode = oldChildWrapper.previousSibling; + var nodes; + var useNative = !this.invalidateShadowRenderer() && !invalidateParent(newChildWrapper); + if (useNative) { + nodes = collectNodesNative(newChildWrapper); + } else { + if (nextNode === newChildWrapper) nextNode = newChildWrapper.nextSibling; + nodes = collectNodes(newChildWrapper, this, previousNode, nextNode); + } + if (!useNative) { + if (this.firstChild === oldChildWrapper) this.firstChild_ = nodes[0]; + if (this.lastChild === oldChildWrapper) this.lastChild_ = nodes[nodes.length - 1]; + oldChildWrapper.previousSibling_ = oldChildWrapper.nextSibling_ = oldChildWrapper.parentNode_ = undefined; + if (oldChildNode.parentNode) { + originalReplaceChild.call(oldChildNode.parentNode, unwrapNodesForInsertion(this, nodes), oldChildNode); + } + } else { + ensureSameOwnerDocument(this, newChildWrapper); + clearChildNodes(this); + originalReplaceChild.call(unsafeUnwrap(this), unwrap(newChildWrapper), oldChildNode); + } + enqueueMutation(this, "childList", { + addedNodes: nodes, + removedNodes: createOneElementNodeList(oldChildWrapper), + nextSibling: nextNode, + previousSibling: previousNode + }); + nodeWasRemoved(oldChildWrapper); + nodesWereAdded(nodes, this); + return oldChildWrapper; + }, + nodeIsInserted_: function() { + for (var child = this.firstChild; child; child = child.nextSibling) { + child.nodeIsInserted_(); + } + }, + hasChildNodes: function() { + return this.firstChild !== null; + }, + get parentNode() { + return this.parentNode_ !== undefined ? this.parentNode_ : wrap(unsafeUnwrap(this).parentNode); + }, + get firstChild() { + return this.firstChild_ !== undefined ? this.firstChild_ : wrap(unsafeUnwrap(this).firstChild); + }, + get lastChild() { + return this.lastChild_ !== undefined ? this.lastChild_ : wrap(unsafeUnwrap(this).lastChild); + }, + get nextSibling() { + return this.nextSibling_ !== undefined ? this.nextSibling_ : wrap(unsafeUnwrap(this).nextSibling); + }, + get previousSibling() { + return this.previousSibling_ !== undefined ? this.previousSibling_ : wrap(unsafeUnwrap(this).previousSibling); + }, + get parentElement() { + var p = this.parentNode; + while (p && p.nodeType !== Node.ELEMENT_NODE) { + p = p.parentNode; + } + return p; + }, + get textContent() { + var s = ""; + for (var child = this.firstChild; child; child = child.nextSibling) { + if (child.nodeType != Node.COMMENT_NODE) { + s += child.textContent; + } + } + return s; + }, + set textContent(textContent) { + if (textContent == null) textContent = ""; + var removedNodes = snapshotNodeList(this.childNodes); + if (this.invalidateShadowRenderer()) { + removeAllChildNodes(this); + if (textContent !== "") { + var textNode = unsafeUnwrap(this).ownerDocument.createTextNode(textContent); + this.appendChild(textNode); + } + } else { + clearChildNodes(this); + unsafeUnwrap(this).textContent = textContent; + } + var addedNodes = snapshotNodeList(this.childNodes); + enqueueMutation(this, "childList", { + addedNodes: addedNodes, + removedNodes: removedNodes + }); + nodesWereRemoved(removedNodes); + nodesWereAdded(addedNodes, this); + }, + get childNodes() { + var wrapperList = new NodeList(); + var i = 0; + for (var child = this.firstChild; child; child = child.nextSibling) { + wrapperList[i++] = child; + } + wrapperList.length = i; + return wrapperList; + }, + cloneNode: function(deep) { + return cloneNode(this, deep); + }, + contains: function(child) { + return contains(this, wrapIfNeeded(child)); + }, + compareDocumentPosition: function(otherNode) { + return originalCompareDocumentPosition.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); + }, + isEqualNode: function(otherNode) { + return originalIsEqualNode.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); + }, + normalize: function() { + var nodes = snapshotNodeList(this.childNodes); + var remNodes = []; + var s = ""; + var modNode; + for (var i = 0, n; i < nodes.length; i++) { + n = nodes[i]; + if (n.nodeType === Node.TEXT_NODE) { + if (!modNode && !n.data.length) this.removeChild(n); else if (!modNode) modNode = n; else { + s += n.data; + remNodes.push(n); + } + } else { + if (modNode && remNodes.length) { + modNode.data += s; + cleanupNodes(remNodes); + } + remNodes = []; + s = ""; + modNode = null; + if (n.childNodes.length) n.normalize(); + } + } + if (modNode && remNodes.length) { + modNode.data += s; + cleanupNodes(remNodes); + } + } + }); + defineWrapGetter(Node, "ownerDocument"); + registerWrapper(OriginalNode, Node, document.createDocumentFragment()); + delete Node.prototype.querySelector; + delete Node.prototype.querySelectorAll; + Node.prototype = mixin(Object.create(EventTarget.prototype), Node.prototype); + scope.cloneNode = cloneNode; + scope.nodeWasAdded = nodeWasAdded; + scope.nodeWasRemoved = nodeWasRemoved; + scope.nodesWereAdded = nodesWereAdded; + scope.nodesWereRemoved = nodesWereRemoved; + scope.originalInsertBefore = originalInsertBefore; + scope.originalRemoveChild = originalRemoveChild; + scope.snapshotNodeList = snapshotNodeList; + scope.wrappers.Node = Node; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLCollection = scope.wrappers.HTMLCollection; + var NodeList = scope.wrappers.NodeList; + var getTreeScope = scope.getTreeScope; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var originalDocumentQuerySelector = document.querySelector; + var originalElementQuerySelector = document.documentElement.querySelector; + var originalDocumentQuerySelectorAll = document.querySelectorAll; + var originalElementQuerySelectorAll = document.documentElement.querySelectorAll; + var originalDocumentGetElementsByTagName = document.getElementsByTagName; + var originalElementGetElementsByTagName = document.documentElement.getElementsByTagName; + var originalDocumentGetElementsByTagNameNS = document.getElementsByTagNameNS; + var originalElementGetElementsByTagNameNS = document.documentElement.getElementsByTagNameNS; + var OriginalElement = window.Element; + var OriginalDocument = window.HTMLDocument || window.Document; + function filterNodeList(list, index, result, deep) { + var wrappedItem = null; + var root = null; + for (var i = 0, length = list.length; i < length; i++) { + wrappedItem = wrap(list[i]); + if (!deep && (root = getTreeScope(wrappedItem).root)) { + if (root instanceof scope.wrappers.ShadowRoot) { + continue; + } + } + result[index++] = wrappedItem; + } + return index; + } + function shimSelector(selector) { + return String(selector).replace(/\/deep\/|::shadow|>>>/g, " "); + } + function shimMatchesSelector(selector) { + return String(selector).replace(/:host\(([^\s]+)\)/g, "$1").replace(/([^\s]):host/g, "$1").replace(":host", "*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g, " "); + } + function findOne(node, selector) { + var m, el = node.firstElementChild; + while (el) { + if (el.matches(selector)) return el; + m = findOne(el, selector); + if (m) return m; + el = el.nextElementSibling; + } + return null; + } + function matchesSelector(el, selector) { + return el.matches(selector); + } + var XHTML_NS = "http://www.w3.org/1999/xhtml"; + function matchesTagName(el, localName, localNameLowerCase) { + var ln = el.localName; + return ln === localName || ln === localNameLowerCase && el.namespaceURI === XHTML_NS; + } + function matchesEveryThing() { + return true; + } + function matchesLocalNameOnly(el, ns, localName) { + return el.localName === localName; + } + function matchesNameSpace(el, ns) { + return el.namespaceURI === ns; + } + function matchesLocalNameNS(el, ns, localName) { + return el.namespaceURI === ns && el.localName === localName; + } + function findElements(node, index, result, p, arg0, arg1) { + var el = node.firstElementChild; + while (el) { + if (p(el, arg0, arg1)) result[index++] = el; + index = findElements(el, index, result, p, arg0, arg1); + el = el.nextElementSibling; + } + return index; + } + function querySelectorAllFiltered(p, index, result, selector, deep) { + var target = unsafeUnwrap(this); + var list; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findElements(this, index, result, p, selector, null); + } else if (target instanceof OriginalElement) { + list = originalElementQuerySelectorAll.call(target, selector); + } else if (target instanceof OriginalDocument) { + list = originalDocumentQuerySelectorAll.call(target, selector); + } else { + return findElements(this, index, result, p, selector, null); + } + return filterNodeList(list, index, result, deep); + } + var SelectorsInterface = { + querySelector: function(selector) { + var shimmed = shimSelector(selector); + var deep = shimmed !== selector; + selector = shimmed; + var target = unsafeUnwrap(this); + var wrappedItem; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findOne(this, selector); + } else if (target instanceof OriginalElement) { + wrappedItem = wrap(originalElementQuerySelector.call(target, selector)); + } else if (target instanceof OriginalDocument) { + wrappedItem = wrap(originalDocumentQuerySelector.call(target, selector)); + } else { + return findOne(this, selector); + } + if (!wrappedItem) { + return wrappedItem; + } else if (!deep && (root = getTreeScope(wrappedItem).root)) { + if (root instanceof scope.wrappers.ShadowRoot) { + return findOne(this, selector); + } + } + return wrappedItem; + }, + querySelectorAll: function(selector) { + var shimmed = shimSelector(selector); + var deep = shimmed !== selector; + selector = shimmed; + var result = new NodeList(); + result.length = querySelectorAllFiltered.call(this, matchesSelector, 0, result, selector, deep); + return result; + } + }; + var MatchesInterface = { + matches: function(selector) { + selector = shimMatchesSelector(selector); + return scope.originalMatches.call(unsafeUnwrap(this), selector); + } + }; + function getElementsByTagNameFiltered(p, index, result, localName, lowercase) { + var target = unsafeUnwrap(this); + var list; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findElements(this, index, result, p, localName, lowercase); + } else if (target instanceof OriginalElement) { + list = originalElementGetElementsByTagName.call(target, localName, lowercase); + } else if (target instanceof OriginalDocument) { + list = originalDocumentGetElementsByTagName.call(target, localName, lowercase); + } else { + return findElements(this, index, result, p, localName, lowercase); + } + return filterNodeList(list, index, result, false); + } + function getElementsByTagNameNSFiltered(p, index, result, ns, localName) { + var target = unsafeUnwrap(this); + var list; + var root = getTreeScope(this).root; + if (root instanceof scope.wrappers.ShadowRoot) { + return findElements(this, index, result, p, ns, localName); + } else if (target instanceof OriginalElement) { + list = originalElementGetElementsByTagNameNS.call(target, ns, localName); + } else if (target instanceof OriginalDocument) { + list = originalDocumentGetElementsByTagNameNS.call(target, ns, localName); + } else { + return findElements(this, index, result, p, ns, localName); + } + return filterNodeList(list, index, result, false); + } + var GetElementsByInterface = { + getElementsByTagName: function(localName) { + var result = new HTMLCollection(); + var match = localName === "*" ? matchesEveryThing : matchesTagName; + result.length = getElementsByTagNameFiltered.call(this, match, 0, result, localName, localName.toLowerCase()); + return result; + }, + getElementsByClassName: function(className) { + return this.querySelectorAll("." + className); + }, + getElementsByTagNameNS: function(ns, localName) { + var result = new HTMLCollection(); + var match = null; + if (ns === "*") { + match = localName === "*" ? matchesEveryThing : matchesLocalNameOnly; + } else { + match = localName === "*" ? matchesNameSpace : matchesLocalNameNS; + } + result.length = getElementsByTagNameNSFiltered.call(this, match, 0, result, ns || null, localName); + return result; + } + }; + scope.GetElementsByInterface = GetElementsByInterface; + scope.SelectorsInterface = SelectorsInterface; + scope.MatchesInterface = MatchesInterface; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var NodeList = scope.wrappers.NodeList; + function forwardElement(node) { + while (node && node.nodeType !== Node.ELEMENT_NODE) { + node = node.nextSibling; + } + return node; + } + function backwardsElement(node) { + while (node && node.nodeType !== Node.ELEMENT_NODE) { + node = node.previousSibling; + } + return node; + } + var ParentNodeInterface = { + get firstElementChild() { + return forwardElement(this.firstChild); + }, + get lastElementChild() { + return backwardsElement(this.lastChild); + }, + get childElementCount() { + var count = 0; + for (var child = this.firstElementChild; child; child = child.nextElementSibling) { + count++; + } + return count; + }, + get children() { + var wrapperList = new NodeList(); + var i = 0; + for (var child = this.firstElementChild; child; child = child.nextElementSibling) { + wrapperList[i++] = child; + } + wrapperList.length = i; + return wrapperList; + }, + remove: function() { + var p = this.parentNode; + if (p) p.removeChild(this); + } + }; + var ChildNodeInterface = { + get nextElementSibling() { + return forwardElement(this.nextSibling); + }, + get previousElementSibling() { + return backwardsElement(this.previousSibling); + } + }; + var NonElementParentNodeInterface = { + getElementById: function(id) { + if (/[ \t\n\r\f]/.test(id)) return null; + return this.querySelector('[id="' + id + '"]'); + } + }; + scope.ChildNodeInterface = ChildNodeInterface; + scope.NonElementParentNodeInterface = NonElementParentNodeInterface; + scope.ParentNodeInterface = ParentNodeInterface; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var ChildNodeInterface = scope.ChildNodeInterface; + var Node = scope.wrappers.Node; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var OriginalCharacterData = window.CharacterData; + function CharacterData(node) { + Node.call(this, node); + } + CharacterData.prototype = Object.create(Node.prototype); + mixin(CharacterData.prototype, { + get nodeValue() { + return this.data; + }, + set nodeValue(data) { + this.data = data; + }, + get textContent() { + return this.data; + }, + set textContent(value) { + this.data = value; + }, + get data() { + return unsafeUnwrap(this).data; + }, + set data(value) { + var oldValue = unsafeUnwrap(this).data; + enqueueMutation(this, "characterData", { + oldValue: oldValue + }); + unsafeUnwrap(this).data = value; + } + }); + mixin(CharacterData.prototype, ChildNodeInterface); + registerWrapper(OriginalCharacterData, CharacterData, document.createTextNode("")); + scope.wrappers.CharacterData = CharacterData; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var CharacterData = scope.wrappers.CharacterData; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + function toUInt32(x) { + return x >>> 0; + } + var OriginalText = window.Text; + function Text(node) { + CharacterData.call(this, node); + } + Text.prototype = Object.create(CharacterData.prototype); + mixin(Text.prototype, { + splitText: function(offset) { + offset = toUInt32(offset); + var s = this.data; + if (offset > s.length) throw new Error("IndexSizeError"); + var head = s.slice(0, offset); + var tail = s.slice(offset); + this.data = head; + var newTextNode = this.ownerDocument.createTextNode(tail); + if (this.parentNode) this.parentNode.insertBefore(newTextNode, this.nextSibling); + return newTextNode; + } + }); + registerWrapper(OriginalText, Text, document.createTextNode("")); + scope.wrappers.Text = Text; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + if (!window.DOMTokenList) { + console.warn("Missing DOMTokenList prototype, please include a " + "compatible classList polyfill such as http://goo.gl/uTcepH."); + return; + } + var unsafeUnwrap = scope.unsafeUnwrap; + var enqueueMutation = scope.enqueueMutation; + function getClass(el) { + return unsafeUnwrap(el).getAttribute("class"); + } + function enqueueClassAttributeChange(el, oldValue) { + enqueueMutation(el, "attributes", { + name: "class", + namespace: null, + oldValue: oldValue + }); + } + function invalidateClass(el) { + scope.invalidateRendererBasedOnAttribute(el, "class"); + } + function changeClass(tokenList, method, args) { + var ownerElement = tokenList.ownerElement_; + if (ownerElement == null) { + return method.apply(tokenList, args); + } + var oldValue = getClass(ownerElement); + var retv = method.apply(tokenList, args); + if (getClass(ownerElement) !== oldValue) { + enqueueClassAttributeChange(ownerElement, oldValue); + invalidateClass(ownerElement); + } + return retv; + } + var oldAdd = DOMTokenList.prototype.add; + DOMTokenList.prototype.add = function() { + changeClass(this, oldAdd, arguments); + }; + var oldRemove = DOMTokenList.prototype.remove; + DOMTokenList.prototype.remove = function() { + changeClass(this, oldRemove, arguments); + }; + var oldToggle = DOMTokenList.prototype.toggle; + DOMTokenList.prototype.toggle = function() { + return changeClass(this, oldToggle, arguments); + }; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var ChildNodeInterface = scope.ChildNodeInterface; + var GetElementsByInterface = scope.GetElementsByInterface; + var Node = scope.wrappers.Node; + var ParentNodeInterface = scope.ParentNodeInterface; + var SelectorsInterface = scope.SelectorsInterface; + var MatchesInterface = scope.MatchesInterface; + var addWrapNodeListMethod = scope.addWrapNodeListMethod; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var oneOf = scope.oneOf; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrappers = scope.wrappers; + var OriginalElement = window.Element; + var matchesNames = [ "matches", "mozMatchesSelector", "msMatchesSelector", "webkitMatchesSelector" ].filter(function(name) { + return OriginalElement.prototype[name]; + }); + var matchesName = matchesNames[0]; + var originalMatches = OriginalElement.prototype[matchesName]; + function invalidateRendererBasedOnAttribute(element, name) { + var p = element.parentNode; + if (!p || !p.shadowRoot) return; + var renderer = scope.getRendererForHost(p); + if (renderer.dependsOnAttribute(name)) renderer.invalidate(); + } + function enqueAttributeChange(element, name, oldValue) { + enqueueMutation(element, "attributes", { + name: name, + namespace: null, + oldValue: oldValue + }); + } + var classListTable = new WeakMap(); + function Element(node) { + Node.call(this, node); + } + Element.prototype = Object.create(Node.prototype); + mixin(Element.prototype, { + createShadowRoot: function() { + var newShadowRoot = new wrappers.ShadowRoot(this); + unsafeUnwrap(this).polymerShadowRoot_ = newShadowRoot; + var renderer = scope.getRendererForHost(this); + renderer.invalidate(); + return newShadowRoot; + }, + get shadowRoot() { + return unsafeUnwrap(this).polymerShadowRoot_ || null; + }, + setAttribute: function(name, value) { + var oldValue = unsafeUnwrap(this).getAttribute(name); + unsafeUnwrap(this).setAttribute(name, value); + enqueAttributeChange(this, name, oldValue); + invalidateRendererBasedOnAttribute(this, name); + }, + removeAttribute: function(name) { + var oldValue = unsafeUnwrap(this).getAttribute(name); + unsafeUnwrap(this).removeAttribute(name); + enqueAttributeChange(this, name, oldValue); + invalidateRendererBasedOnAttribute(this, name); + }, + get classList() { + var list = classListTable.get(this); + if (!list) { + list = unsafeUnwrap(this).classList; + if (!list) return; + list.ownerElement_ = this; + classListTable.set(this, list); + } + return list; + }, + get className() { + return unsafeUnwrap(this).className; + }, + set className(v) { + this.setAttribute("class", v); + }, + get id() { + return unsafeUnwrap(this).id; + }, + set id(v) { + this.setAttribute("id", v); + } + }); + matchesNames.forEach(function(name) { + if (name !== "matches") { + Element.prototype[name] = function(selector) { + return this.matches(selector); + }; + } + }); + if (OriginalElement.prototype.webkitCreateShadowRoot) { + Element.prototype.webkitCreateShadowRoot = Element.prototype.createShadowRoot; + } + mixin(Element.prototype, ChildNodeInterface); + mixin(Element.prototype, GetElementsByInterface); + mixin(Element.prototype, ParentNodeInterface); + mixin(Element.prototype, SelectorsInterface); + mixin(Element.prototype, MatchesInterface); + registerWrapper(OriginalElement, Element, document.createElementNS(null, "x")); + scope.invalidateRendererBasedOnAttribute = invalidateRendererBasedOnAttribute; + scope.matchesNames = matchesNames; + scope.originalMatches = originalMatches; + scope.wrappers.Element = Element; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Element = scope.wrappers.Element; + var defineGetter = scope.defineGetter; + var enqueueMutation = scope.enqueueMutation; + var mixin = scope.mixin; + var nodesWereAdded = scope.nodesWereAdded; + var nodesWereRemoved = scope.nodesWereRemoved; + var registerWrapper = scope.registerWrapper; + var snapshotNodeList = scope.snapshotNodeList; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrappers = scope.wrappers; + var escapeAttrRegExp = /[&\u00A0"]/g; + var escapeDataRegExp = /[&\u00A0<>]/g; + function escapeReplace(c) { + switch (c) { + case "&": + return "&"; + + case "<": + return "<"; + + case ">": + return ">"; + + case '"': + return """; + + case " ": + return " "; + } + } + function escapeAttr(s) { + return s.replace(escapeAttrRegExp, escapeReplace); + } + function escapeData(s) { + return s.replace(escapeDataRegExp, escapeReplace); + } + function makeSet(arr) { + var set = {}; + for (var i = 0; i < arr.length; i++) { + set[arr[i]] = true; + } + return set; + } + var voidElements = makeSet([ "area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr" ]); + var plaintextParents = makeSet([ "style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript" ]); + var XHTML_NS = "http://www.w3.org/1999/xhtml"; + function needsSelfClosingSlash(node) { + if (node.namespaceURI !== XHTML_NS) return true; + var doctype = node.ownerDocument.doctype; + return doctype && doctype.publicId && doctype.systemId; + } + function getOuterHTML(node, parentNode) { + switch (node.nodeType) { + case Node.ELEMENT_NODE: + var tagName = node.tagName.toLowerCase(); + var s = "<" + tagName; + var attrs = node.attributes; + for (var i = 0, attr; attr = attrs[i]; i++) { + s += " " + attr.name + '="' + escapeAttr(attr.value) + '"'; + } + if (voidElements[tagName]) { + if (needsSelfClosingSlash(node)) s += "/"; + return s + ">"; + } + return s + ">" + getInnerHTML(node) + ""; + + case Node.TEXT_NODE: + var data = node.data; + if (parentNode && plaintextParents[parentNode.localName]) return data; + return escapeData(data); + + case Node.COMMENT_NODE: + return ""; + + default: + console.error(node); + throw new Error("not implemented"); + } + } + function getInnerHTML(node) { + if (node instanceof wrappers.HTMLTemplateElement) node = node.content; + var s = ""; + for (var child = node.firstChild; child; child = child.nextSibling) { + s += getOuterHTML(child, node); + } + return s; + } + function setInnerHTML(node, value, opt_tagName) { + var tagName = opt_tagName || "div"; + node.textContent = ""; + var tempElement = unwrap(node.ownerDocument.createElement(tagName)); + tempElement.innerHTML = value; + var firstChild; + while (firstChild = tempElement.firstChild) { + node.appendChild(wrap(firstChild)); + } + } + var oldIe = /MSIE/.test(navigator.userAgent); + var OriginalHTMLElement = window.HTMLElement; + var OriginalHTMLTemplateElement = window.HTMLTemplateElement; + function HTMLElement(node) { + Element.call(this, node); + } + HTMLElement.prototype = Object.create(Element.prototype); + mixin(HTMLElement.prototype, { + get innerHTML() { + return getInnerHTML(this); + }, + set innerHTML(value) { + if (oldIe && plaintextParents[this.localName]) { + this.textContent = value; + return; + } + var removedNodes = snapshotNodeList(this.childNodes); + if (this.invalidateShadowRenderer()) { + if (this instanceof wrappers.HTMLTemplateElement) setInnerHTML(this.content, value); else setInnerHTML(this, value, this.tagName); + } else if (!OriginalHTMLTemplateElement && this instanceof wrappers.HTMLTemplateElement) { + setInnerHTML(this.content, value); + } else { + unsafeUnwrap(this).innerHTML = value; + } + var addedNodes = snapshotNodeList(this.childNodes); + enqueueMutation(this, "childList", { + addedNodes: addedNodes, + removedNodes: removedNodes + }); + nodesWereRemoved(removedNodes); + nodesWereAdded(addedNodes, this); + }, + get outerHTML() { + return getOuterHTML(this, this.parentNode); + }, + set outerHTML(value) { + var p = this.parentNode; + if (p) { + p.invalidateShadowRenderer(); + var df = frag(p, value); + p.replaceChild(df, this); + } + }, + insertAdjacentHTML: function(position, text) { + var contextElement, refNode; + switch (String(position).toLowerCase()) { + case "beforebegin": + contextElement = this.parentNode; + refNode = this; + break; + + case "afterend": + contextElement = this.parentNode; + refNode = this.nextSibling; + break; + + case "afterbegin": + contextElement = this; + refNode = this.firstChild; + break; + + case "beforeend": + contextElement = this; + refNode = null; + break; + + default: + return; + } + var df = frag(contextElement, text); + contextElement.insertBefore(df, refNode); + }, + get hidden() { + return this.hasAttribute("hidden"); + }, + set hidden(v) { + if (v) { + this.setAttribute("hidden", ""); + } else { + this.removeAttribute("hidden"); + } + } + }); + function frag(contextElement, html) { + var p = unwrap(contextElement.cloneNode(false)); + p.innerHTML = html; + var df = unwrap(document.createDocumentFragment()); + var c; + while (c = p.firstChild) { + df.appendChild(c); + } + return wrap(df); + } + function getter(name) { + return function() { + scope.renderAllPending(); + return unsafeUnwrap(this)[name]; + }; + } + function getterRequiresRendering(name) { + defineGetter(HTMLElement, name, getter(name)); + } + [ "clientHeight", "clientLeft", "clientTop", "clientWidth", "offsetHeight", "offsetLeft", "offsetTop", "offsetWidth", "scrollHeight", "scrollWidth" ].forEach(getterRequiresRendering); + function getterAndSetterRequiresRendering(name) { + Object.defineProperty(HTMLElement.prototype, name, { + get: getter(name), + set: function(v) { + scope.renderAllPending(); + unsafeUnwrap(this)[name] = v; + }, + configurable: true, + enumerable: true + }); + } + [ "scrollLeft", "scrollTop" ].forEach(getterAndSetterRequiresRendering); + function methodRequiresRendering(name) { + Object.defineProperty(HTMLElement.prototype, name, { + value: function() { + scope.renderAllPending(); + return unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments); + }, + configurable: true, + enumerable: true + }); + } + [ "focus", "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering); + registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")); + scope.wrappers.HTMLElement = HTMLElement; + scope.getInnerHTML = getInnerHTML; + scope.setInnerHTML = setInnerHTML; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var OriginalHTMLCanvasElement = window.HTMLCanvasElement; + function HTMLCanvasElement(node) { + HTMLElement.call(this, node); + } + HTMLCanvasElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLCanvasElement.prototype, { + getContext: function() { + var context = unsafeUnwrap(this).getContext.apply(unsafeUnwrap(this), arguments); + return context && wrap(context); + } + }); + registerWrapper(OriginalHTMLCanvasElement, HTMLCanvasElement, document.createElement("canvas")); + scope.wrappers.HTMLCanvasElement = HTMLCanvasElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLContentElement = window.HTMLContentElement; + function HTMLContentElement(node) { + HTMLElement.call(this, node); + } + HTMLContentElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLContentElement.prototype, { + constructor: HTMLContentElement, + get select() { + return this.getAttribute("select"); + }, + set select(value) { + this.setAttribute("select", value); + }, + setAttribute: function(n, v) { + HTMLElement.prototype.setAttribute.call(this, n, v); + if (String(n).toLowerCase() === "select") this.invalidateShadowRenderer(true); + } + }); + if (OriginalHTMLContentElement) registerWrapper(OriginalHTMLContentElement, HTMLContentElement); + scope.wrappers.HTMLContentElement = HTMLContentElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var unwrap = scope.unwrap; + var OriginalHTMLFormElement = window.HTMLFormElement; + function HTMLFormElement(node) { + HTMLElement.call(this, node); + } + HTMLFormElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLFormElement.prototype, { + get elements() { + return wrapHTMLCollection(unwrap(this).elements); + } + }); + registerWrapper(OriginalHTMLFormElement, HTMLFormElement, document.createElement("form")); + scope.wrappers.HTMLFormElement = HTMLFormElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var rewrap = scope.rewrap; + var OriginalHTMLImageElement = window.HTMLImageElement; + function HTMLImageElement(node) { + HTMLElement.call(this, node); + } + HTMLImageElement.prototype = Object.create(HTMLElement.prototype); + registerWrapper(OriginalHTMLImageElement, HTMLImageElement, document.createElement("img")); + function Image(width, height) { + if (!(this instanceof Image)) { + throw new TypeError("DOM object constructor cannot be called as a function."); + } + var node = unwrap(document.createElement("img")); + HTMLElement.call(this, node); + rewrap(node, this); + if (width !== undefined) node.width = width; + if (height !== undefined) node.height = height; + } + Image.prototype = HTMLImageElement.prototype; + scope.wrappers.HTMLImageElement = HTMLImageElement; + scope.wrappers.Image = Image; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var NodeList = scope.wrappers.NodeList; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLShadowElement = window.HTMLShadowElement; + function HTMLShadowElement(node) { + HTMLElement.call(this, node); + } + HTMLShadowElement.prototype = Object.create(HTMLElement.prototype); + HTMLShadowElement.prototype.constructor = HTMLShadowElement; + if (OriginalHTMLShadowElement) registerWrapper(OriginalHTMLShadowElement, HTMLShadowElement); + scope.wrappers.HTMLShadowElement = HTMLShadowElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var contentTable = new WeakMap(); + var templateContentsOwnerTable = new WeakMap(); + function getTemplateContentsOwner(doc) { + if (!doc.defaultView) return doc; + var d = templateContentsOwnerTable.get(doc); + if (!d) { + d = doc.implementation.createHTMLDocument(""); + while (d.lastChild) { + d.removeChild(d.lastChild); + } + templateContentsOwnerTable.set(doc, d); + } + return d; + } + function extractContent(templateElement) { + var doc = getTemplateContentsOwner(templateElement.ownerDocument); + var df = unwrap(doc.createDocumentFragment()); + var child; + while (child = templateElement.firstChild) { + df.appendChild(child); + } + return df; + } + var OriginalHTMLTemplateElement = window.HTMLTemplateElement; + function HTMLTemplateElement(node) { + HTMLElement.call(this, node); + if (!OriginalHTMLTemplateElement) { + var content = extractContent(node); + contentTable.set(this, wrap(content)); + } + } + HTMLTemplateElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTemplateElement.prototype, { + constructor: HTMLTemplateElement, + get content() { + if (OriginalHTMLTemplateElement) return wrap(unsafeUnwrap(this).content); + return contentTable.get(this); + } + }); + if (OriginalHTMLTemplateElement) registerWrapper(OriginalHTMLTemplateElement, HTMLTemplateElement); + scope.wrappers.HTMLTemplateElement = HTMLTemplateElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLMediaElement = window.HTMLMediaElement; + if (!OriginalHTMLMediaElement) return; + function HTMLMediaElement(node) { + HTMLElement.call(this, node); + } + HTMLMediaElement.prototype = Object.create(HTMLElement.prototype); + registerWrapper(OriginalHTMLMediaElement, HTMLMediaElement, document.createElement("audio")); + scope.wrappers.HTMLMediaElement = HTMLMediaElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLMediaElement = scope.wrappers.HTMLMediaElement; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var rewrap = scope.rewrap; + var OriginalHTMLAudioElement = window.HTMLAudioElement; + if (!OriginalHTMLAudioElement) return; + function HTMLAudioElement(node) { + HTMLMediaElement.call(this, node); + } + HTMLAudioElement.prototype = Object.create(HTMLMediaElement.prototype); + registerWrapper(OriginalHTMLAudioElement, HTMLAudioElement, document.createElement("audio")); + function Audio(src) { + if (!(this instanceof Audio)) { + throw new TypeError("DOM object constructor cannot be called as a function."); + } + var node = unwrap(document.createElement("audio")); + HTMLMediaElement.call(this, node); + rewrap(node, this); + node.setAttribute("preload", "auto"); + if (src !== undefined) node.setAttribute("src", src); + } + Audio.prototype = HTMLAudioElement.prototype; + scope.wrappers.HTMLAudioElement = HTMLAudioElement; + scope.wrappers.Audio = Audio; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var rewrap = scope.rewrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLOptionElement = window.HTMLOptionElement; + function trimText(s) { + return s.replace(/\s+/g, " ").trim(); + } + function HTMLOptionElement(node) { + HTMLElement.call(this, node); + } + HTMLOptionElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLOptionElement.prototype, { + get text() { + return trimText(this.textContent); + }, + set text(value) { + this.textContent = trimText(String(value)); + }, + get form() { + return wrap(unwrap(this).form); + } + }); + registerWrapper(OriginalHTMLOptionElement, HTMLOptionElement, document.createElement("option")); + function Option(text, value, defaultSelected, selected) { + if (!(this instanceof Option)) { + throw new TypeError("DOM object constructor cannot be called as a function."); + } + var node = unwrap(document.createElement("option")); + HTMLElement.call(this, node); + rewrap(node, this); + if (text !== undefined) node.text = text; + if (value !== undefined) node.setAttribute("value", value); + if (defaultSelected === true) node.setAttribute("selected", ""); + node.selected = selected === true; + } + Option.prototype = HTMLOptionElement.prototype; + scope.wrappers.HTMLOptionElement = HTMLOptionElement; + scope.wrappers.Option = Option; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLSelectElement = window.HTMLSelectElement; + function HTMLSelectElement(node) { + HTMLElement.call(this, node); + } + HTMLSelectElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLSelectElement.prototype, { + add: function(element, before) { + if (typeof before === "object") before = unwrap(before); + unwrap(this).add(unwrap(element), before); + }, + remove: function(indexOrNode) { + if (indexOrNode === undefined) { + HTMLElement.prototype.remove.call(this); + return; + } + if (typeof indexOrNode === "object") indexOrNode = unwrap(indexOrNode); + unwrap(this).remove(indexOrNode); + }, + get form() { + return wrap(unwrap(this).form); + } + }); + registerWrapper(OriginalHTMLSelectElement, HTMLSelectElement, document.createElement("select")); + scope.wrappers.HTMLSelectElement = HTMLSelectElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var OriginalHTMLTableElement = window.HTMLTableElement; + function HTMLTableElement(node) { + HTMLElement.call(this, node); + } + HTMLTableElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTableElement.prototype, { + get caption() { + return wrap(unwrap(this).caption); + }, + createCaption: function() { + return wrap(unwrap(this).createCaption()); + }, + get tHead() { + return wrap(unwrap(this).tHead); + }, + createTHead: function() { + return wrap(unwrap(this).createTHead()); + }, + createTFoot: function() { + return wrap(unwrap(this).createTFoot()); + }, + get tFoot() { + return wrap(unwrap(this).tFoot); + }, + get tBodies() { + return wrapHTMLCollection(unwrap(this).tBodies); + }, + createTBody: function() { + return wrap(unwrap(this).createTBody()); + }, + get rows() { + return wrapHTMLCollection(unwrap(this).rows); + }, + insertRow: function(index) { + return wrap(unwrap(this).insertRow(index)); + } + }); + registerWrapper(OriginalHTMLTableElement, HTMLTableElement, document.createElement("table")); + scope.wrappers.HTMLTableElement = HTMLTableElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLTableSectionElement = window.HTMLTableSectionElement; + function HTMLTableSectionElement(node) { + HTMLElement.call(this, node); + } + HTMLTableSectionElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTableSectionElement.prototype, { + constructor: HTMLTableSectionElement, + get rows() { + return wrapHTMLCollection(unwrap(this).rows); + }, + insertRow: function(index) { + return wrap(unwrap(this).insertRow(index)); + } + }); + registerWrapper(OriginalHTMLTableSectionElement, HTMLTableSectionElement, document.createElement("thead")); + scope.wrappers.HTMLTableSectionElement = HTMLTableSectionElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var wrapHTMLCollection = scope.wrapHTMLCollection; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalHTMLTableRowElement = window.HTMLTableRowElement; + function HTMLTableRowElement(node) { + HTMLElement.call(this, node); + } + HTMLTableRowElement.prototype = Object.create(HTMLElement.prototype); + mixin(HTMLTableRowElement.prototype, { + get cells() { + return wrapHTMLCollection(unwrap(this).cells); + }, + insertCell: function(index) { + return wrap(unwrap(this).insertCell(index)); + } + }); + registerWrapper(OriginalHTMLTableRowElement, HTMLTableRowElement, document.createElement("tr")); + scope.wrappers.HTMLTableRowElement = HTMLTableRowElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLContentElement = scope.wrappers.HTMLContentElement; + var HTMLElement = scope.wrappers.HTMLElement; + var HTMLShadowElement = scope.wrappers.HTMLShadowElement; + var HTMLTemplateElement = scope.wrappers.HTMLTemplateElement; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var OriginalHTMLUnknownElement = window.HTMLUnknownElement; + function HTMLUnknownElement(node) { + switch (node.localName) { + case "content": + return new HTMLContentElement(node); + + case "shadow": + return new HTMLShadowElement(node); + + case "template": + return new HTMLTemplateElement(node); + } + HTMLElement.call(this, node); + } + HTMLUnknownElement.prototype = Object.create(HTMLElement.prototype); + registerWrapper(OriginalHTMLUnknownElement, HTMLUnknownElement); + scope.wrappers.HTMLUnknownElement = HTMLUnknownElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Element = scope.wrappers.Element; + var HTMLElement = scope.wrappers.HTMLElement; + var registerWrapper = scope.registerWrapper; + var defineWrapGetter = scope.defineWrapGetter; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var mixin = scope.mixin; + var SVG_NS = "http://www.w3.org/2000/svg"; + var OriginalSVGElement = window.SVGElement; + var svgTitleElement = document.createElementNS(SVG_NS, "title"); + if (!("classList" in svgTitleElement)) { + var descr = Object.getOwnPropertyDescriptor(Element.prototype, "classList"); + Object.defineProperty(HTMLElement.prototype, "classList", descr); + delete Element.prototype.classList; + } + function SVGElement(node) { + Element.call(this, node); + } + SVGElement.prototype = Object.create(Element.prototype); + mixin(SVGElement.prototype, { + get ownerSVGElement() { + return wrap(unsafeUnwrap(this).ownerSVGElement); + } + }); + registerWrapper(OriginalSVGElement, SVGElement, document.createElementNS(SVG_NS, "title")); + scope.wrappers.SVGElement = SVGElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var OriginalSVGUseElement = window.SVGUseElement; + var SVG_NS = "http://www.w3.org/2000/svg"; + var gWrapper = wrap(document.createElementNS(SVG_NS, "g")); + var useElement = document.createElementNS(SVG_NS, "use"); + var SVGGElement = gWrapper.constructor; + var parentInterfacePrototype = Object.getPrototypeOf(SVGGElement.prototype); + var parentInterface = parentInterfacePrototype.constructor; + function SVGUseElement(impl) { + parentInterface.call(this, impl); + } + SVGUseElement.prototype = Object.create(parentInterfacePrototype); + if ("instanceRoot" in useElement) { + mixin(SVGUseElement.prototype, { + get instanceRoot() { + return wrap(unwrap(this).instanceRoot); + }, + get animatedInstanceRoot() { + return wrap(unwrap(this).animatedInstanceRoot); + } + }); + } + registerWrapper(OriginalSVGUseElement, SVGUseElement, useElement); + scope.wrappers.SVGUseElement = SVGUseElement; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var EventTarget = scope.wrappers.EventTarget; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var wrap = scope.wrap; + var OriginalSVGElementInstance = window.SVGElementInstance; + if (!OriginalSVGElementInstance) return; + function SVGElementInstance(impl) { + EventTarget.call(this, impl); + } + SVGElementInstance.prototype = Object.create(EventTarget.prototype); + mixin(SVGElementInstance.prototype, { + get correspondingElement() { + return wrap(unsafeUnwrap(this).correspondingElement); + }, + get correspondingUseElement() { + return wrap(unsafeUnwrap(this).correspondingUseElement); + }, + get parentNode() { + return wrap(unsafeUnwrap(this).parentNode); + }, + get childNodes() { + throw new Error("Not implemented"); + }, + get firstChild() { + return wrap(unsafeUnwrap(this).firstChild); + }, + get lastChild() { + return wrap(unsafeUnwrap(this).lastChild); + }, + get previousSibling() { + return wrap(unsafeUnwrap(this).previousSibling); + }, + get nextSibling() { + return wrap(unsafeUnwrap(this).nextSibling); + } + }); + registerWrapper(OriginalSVGElementInstance, SVGElementInstance); + scope.wrappers.SVGElementInstance = SVGElementInstance; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalCanvasRenderingContext2D = window.CanvasRenderingContext2D; + function CanvasRenderingContext2D(impl) { + setWrapper(impl, this); + } + mixin(CanvasRenderingContext2D.prototype, { + get canvas() { + return wrap(unsafeUnwrap(this).canvas); + }, + drawImage: function() { + arguments[0] = unwrapIfNeeded(arguments[0]); + unsafeUnwrap(this).drawImage.apply(unsafeUnwrap(this), arguments); + }, + createPattern: function() { + arguments[0] = unwrap(arguments[0]); + return unsafeUnwrap(this).createPattern.apply(unsafeUnwrap(this), arguments); + } + }); + registerWrapper(OriginalCanvasRenderingContext2D, CanvasRenderingContext2D, document.createElement("canvas").getContext("2d")); + scope.wrappers.CanvasRenderingContext2D = CanvasRenderingContext2D; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var addForwardingProperties = scope.addForwardingProperties; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalWebGLRenderingContext = window.WebGLRenderingContext; + if (!OriginalWebGLRenderingContext) return; + function WebGLRenderingContext(impl) { + setWrapper(impl, this); + } + mixin(WebGLRenderingContext.prototype, { + get canvas() { + return wrap(unsafeUnwrap(this).canvas); + }, + texImage2D: function() { + arguments[5] = unwrapIfNeeded(arguments[5]); + unsafeUnwrap(this).texImage2D.apply(unsafeUnwrap(this), arguments); + }, + texSubImage2D: function() { + arguments[6] = unwrapIfNeeded(arguments[6]); + unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this), arguments); + } + }); + var OriginalWebGLRenderingContextBase = Object.getPrototypeOf(OriginalWebGLRenderingContext.prototype); + if (OriginalWebGLRenderingContextBase !== Object.prototype) { + addForwardingProperties(OriginalWebGLRenderingContextBase, WebGLRenderingContext.prototype); + } + var instanceProperties = /WebKit/.test(navigator.userAgent) ? { + drawingBufferHeight: null, + drawingBufferWidth: null + } : {}; + registerWrapper(OriginalWebGLRenderingContext, WebGLRenderingContext, instanceProperties); + scope.wrappers.WebGLRenderingContext = WebGLRenderingContext; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Node = scope.wrappers.Node; + var GetElementsByInterface = scope.GetElementsByInterface; + var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; + var ParentNodeInterface = scope.ParentNodeInterface; + var SelectorsInterface = scope.SelectorsInterface; + var mixin = scope.mixin; + var registerObject = scope.registerObject; + var registerWrapper = scope.registerWrapper; + var OriginalDocumentFragment = window.DocumentFragment; + function DocumentFragment(node) { + Node.call(this, node); + } + DocumentFragment.prototype = Object.create(Node.prototype); + mixin(DocumentFragment.prototype, ParentNodeInterface); + mixin(DocumentFragment.prototype, SelectorsInterface); + mixin(DocumentFragment.prototype, GetElementsByInterface); + mixin(DocumentFragment.prototype, NonElementParentNodeInterface); + registerWrapper(OriginalDocumentFragment, DocumentFragment, document.createDocumentFragment()); + scope.wrappers.DocumentFragment = DocumentFragment; + var Comment = registerObject(document.createComment("")); + scope.wrappers.Comment = Comment; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var DocumentFragment = scope.wrappers.DocumentFragment; + var TreeScope = scope.TreeScope; + var elementFromPoint = scope.elementFromPoint; + var getInnerHTML = scope.getInnerHTML; + var getTreeScope = scope.getTreeScope; + var mixin = scope.mixin; + var rewrap = scope.rewrap; + var setInnerHTML = scope.setInnerHTML; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var shadowHostTable = new WeakMap(); + var nextOlderShadowTreeTable = new WeakMap(); + function ShadowRoot(hostWrapper) { + var node = unwrap(unsafeUnwrap(hostWrapper).ownerDocument.createDocumentFragment()); + DocumentFragment.call(this, node); + rewrap(node, this); + var oldShadowRoot = hostWrapper.shadowRoot; + nextOlderShadowTreeTable.set(this, oldShadowRoot); + this.treeScope_ = new TreeScope(this, getTreeScope(oldShadowRoot || hostWrapper)); + shadowHostTable.set(this, hostWrapper); + } + ShadowRoot.prototype = Object.create(DocumentFragment.prototype); + mixin(ShadowRoot.prototype, { + constructor: ShadowRoot, + get innerHTML() { + return getInnerHTML(this); + }, + set innerHTML(value) { + setInnerHTML(this, value); + this.invalidateShadowRenderer(); + }, + get olderShadowRoot() { + return nextOlderShadowTreeTable.get(this) || null; + }, + get host() { + return shadowHostTable.get(this) || null; + }, + invalidateShadowRenderer: function() { + return shadowHostTable.get(this).invalidateShadowRenderer(); + }, + elementFromPoint: function(x, y) { + return elementFromPoint(this, this.ownerDocument, x, y); + }, + getSelection: function() { + return document.getSelection(); + }, + get activeElement() { + var unwrappedActiveElement = unwrap(this).ownerDocument.activeElement; + if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null; + var activeElement = wrap(unwrappedActiveElement); + while (!this.contains(activeElement)) { + while (activeElement.parentNode) { + activeElement = activeElement.parentNode; + } + if (activeElement.host) { + activeElement = activeElement.host; + } else { + return null; + } + } + return activeElement; + } + }); + scope.wrappers.ShadowRoot = ShadowRoot; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var getTreeScope = scope.getTreeScope; + var OriginalRange = window.Range; + var ShadowRoot = scope.wrappers.ShadowRoot; + function getHost(node) { + var root = getTreeScope(node).root; + if (root instanceof ShadowRoot) { + return root.host; + } + return null; + } + function hostNodeToShadowNode(refNode, offset) { + if (refNode.shadowRoot) { + offset = Math.min(refNode.childNodes.length - 1, offset); + var child = refNode.childNodes[offset]; + if (child) { + var insertionPoint = scope.getDestinationInsertionPoints(child); + if (insertionPoint.length > 0) { + var parentNode = insertionPoint[0].parentNode; + if (parentNode.nodeType == Node.ELEMENT_NODE) { + refNode = parentNode; + } + } + } + } + return refNode; + } + function shadowNodeToHostNode(node) { + node = wrap(node); + return getHost(node) || node; + } + function Range(impl) { + setWrapper(impl, this); + } + Range.prototype = { + get startContainer() { + return shadowNodeToHostNode(unsafeUnwrap(this).startContainer); + }, + get endContainer() { + return shadowNodeToHostNode(unsafeUnwrap(this).endContainer); + }, + get commonAncestorContainer() { + return shadowNodeToHostNode(unsafeUnwrap(this).commonAncestorContainer); + }, + setStart: function(refNode, offset) { + refNode = hostNodeToShadowNode(refNode, offset); + unsafeUnwrap(this).setStart(unwrapIfNeeded(refNode), offset); + }, + setEnd: function(refNode, offset) { + refNode = hostNodeToShadowNode(refNode, offset); + unsafeUnwrap(this).setEnd(unwrapIfNeeded(refNode), offset); + }, + setStartBefore: function(refNode) { + unsafeUnwrap(this).setStartBefore(unwrapIfNeeded(refNode)); + }, + setStartAfter: function(refNode) { + unsafeUnwrap(this).setStartAfter(unwrapIfNeeded(refNode)); + }, + setEndBefore: function(refNode) { + unsafeUnwrap(this).setEndBefore(unwrapIfNeeded(refNode)); + }, + setEndAfter: function(refNode) { + unsafeUnwrap(this).setEndAfter(unwrapIfNeeded(refNode)); + }, + selectNode: function(refNode) { + unsafeUnwrap(this).selectNode(unwrapIfNeeded(refNode)); + }, + selectNodeContents: function(refNode) { + unsafeUnwrap(this).selectNodeContents(unwrapIfNeeded(refNode)); + }, + compareBoundaryPoints: function(how, sourceRange) { + return unsafeUnwrap(this).compareBoundaryPoints(how, unwrap(sourceRange)); + }, + extractContents: function() { + return wrap(unsafeUnwrap(this).extractContents()); + }, + cloneContents: function() { + return wrap(unsafeUnwrap(this).cloneContents()); + }, + insertNode: function(node) { + unsafeUnwrap(this).insertNode(unwrapIfNeeded(node)); + }, + surroundContents: function(newParent) { + unsafeUnwrap(this).surroundContents(unwrapIfNeeded(newParent)); + }, + cloneRange: function() { + return wrap(unsafeUnwrap(this).cloneRange()); + }, + isPointInRange: function(node, offset) { + return unsafeUnwrap(this).isPointInRange(unwrapIfNeeded(node), offset); + }, + comparePoint: function(node, offset) { + return unsafeUnwrap(this).comparePoint(unwrapIfNeeded(node), offset); + }, + intersectsNode: function(node) { + return unsafeUnwrap(this).intersectsNode(unwrapIfNeeded(node)); + }, + toString: function() { + return unsafeUnwrap(this).toString(); + } + }; + if (OriginalRange.prototype.createContextualFragment) { + Range.prototype.createContextualFragment = function(html) { + return wrap(unsafeUnwrap(this).createContextualFragment(html)); + }; + } + registerWrapper(window.Range, Range, document.createRange()); + scope.wrappers.Range = Range; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var Element = scope.wrappers.Element; + var HTMLContentElement = scope.wrappers.HTMLContentElement; + var HTMLShadowElement = scope.wrappers.HTMLShadowElement; + var Node = scope.wrappers.Node; + var ShadowRoot = scope.wrappers.ShadowRoot; + var assert = scope.assert; + var getTreeScope = scope.getTreeScope; + var mixin = scope.mixin; + var oneOf = scope.oneOf; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var ArraySplice = scope.ArraySplice; + function updateWrapperUpAndSideways(wrapper) { + wrapper.previousSibling_ = wrapper.previousSibling; + wrapper.nextSibling_ = wrapper.nextSibling; + wrapper.parentNode_ = wrapper.parentNode; + } + function updateWrapperDown(wrapper) { + wrapper.firstChild_ = wrapper.firstChild; + wrapper.lastChild_ = wrapper.lastChild; + } + function updateAllChildNodes(parentNodeWrapper) { + assert(parentNodeWrapper instanceof Node); + for (var childWrapper = parentNodeWrapper.firstChild; childWrapper; childWrapper = childWrapper.nextSibling) { + updateWrapperUpAndSideways(childWrapper); + } + updateWrapperDown(parentNodeWrapper); + } + function insertBefore(parentNodeWrapper, newChildWrapper, refChildWrapper) { + var parentNode = unwrap(parentNodeWrapper); + var newChild = unwrap(newChildWrapper); + var refChild = refChildWrapper ? unwrap(refChildWrapper) : null; + remove(newChildWrapper); + updateWrapperUpAndSideways(newChildWrapper); + if (!refChildWrapper) { + parentNodeWrapper.lastChild_ = parentNodeWrapper.lastChild; + if (parentNodeWrapper.lastChild === parentNodeWrapper.firstChild) parentNodeWrapper.firstChild_ = parentNodeWrapper.firstChild; + var lastChildWrapper = wrap(parentNode.lastChild); + if (lastChildWrapper) lastChildWrapper.nextSibling_ = lastChildWrapper.nextSibling; + } else { + if (parentNodeWrapper.firstChild === refChildWrapper) parentNodeWrapper.firstChild_ = refChildWrapper; + refChildWrapper.previousSibling_ = refChildWrapper.previousSibling; + } + scope.originalInsertBefore.call(parentNode, newChild, refChild); + } + function remove(nodeWrapper) { + var node = unwrap(nodeWrapper); + var parentNode = node.parentNode; + if (!parentNode) return; + var parentNodeWrapper = wrap(parentNode); + updateWrapperUpAndSideways(nodeWrapper); + if (nodeWrapper.previousSibling) nodeWrapper.previousSibling.nextSibling_ = nodeWrapper; + if (nodeWrapper.nextSibling) nodeWrapper.nextSibling.previousSibling_ = nodeWrapper; + if (parentNodeWrapper.lastChild === nodeWrapper) parentNodeWrapper.lastChild_ = nodeWrapper; + if (parentNodeWrapper.firstChild === nodeWrapper) parentNodeWrapper.firstChild_ = nodeWrapper; + scope.originalRemoveChild.call(parentNode, node); + } + var distributedNodesTable = new WeakMap(); + var destinationInsertionPointsTable = new WeakMap(); + var rendererForHostTable = new WeakMap(); + function resetDistributedNodes(insertionPoint) { + distributedNodesTable.set(insertionPoint, []); + } + function getDistributedNodes(insertionPoint) { + var rv = distributedNodesTable.get(insertionPoint); + if (!rv) distributedNodesTable.set(insertionPoint, rv = []); + return rv; + } + function getChildNodesSnapshot(node) { + var result = [], i = 0; + for (var child = node.firstChild; child; child = child.nextSibling) { + result[i++] = child; + } + return result; + } + var request = oneOf(window, [ "requestAnimationFrame", "mozRequestAnimationFrame", "webkitRequestAnimationFrame", "setTimeout" ]); + var pendingDirtyRenderers = []; + var renderTimer; + function renderAllPending() { + for (var i = 0; i < pendingDirtyRenderers.length; i++) { + var renderer = pendingDirtyRenderers[i]; + var parentRenderer = renderer.parentRenderer; + if (parentRenderer && parentRenderer.dirty) continue; + renderer.render(); + } + pendingDirtyRenderers = []; + } + function handleRequestAnimationFrame() { + renderTimer = null; + renderAllPending(); + } + function getRendererForHost(host) { + var renderer = rendererForHostTable.get(host); + if (!renderer) { + renderer = new ShadowRenderer(host); + rendererForHostTable.set(host, renderer); + } + return renderer; + } + function getShadowRootAncestor(node) { + var root = getTreeScope(node).root; + if (root instanceof ShadowRoot) return root; + return null; + } + function getRendererForShadowRoot(shadowRoot) { + return getRendererForHost(shadowRoot.host); + } + var spliceDiff = new ArraySplice(); + spliceDiff.equals = function(renderNode, rawNode) { + return unwrap(renderNode.node) === rawNode; + }; + function RenderNode(node) { + this.skip = false; + this.node = node; + this.childNodes = []; + } + RenderNode.prototype = { + append: function(node) { + var rv = new RenderNode(node); + this.childNodes.push(rv); + return rv; + }, + sync: function(opt_added) { + if (this.skip) return; + var nodeWrapper = this.node; + var newChildren = this.childNodes; + var oldChildren = getChildNodesSnapshot(unwrap(nodeWrapper)); + var added = opt_added || new WeakMap(); + var splices = spliceDiff.calculateSplices(newChildren, oldChildren); + var newIndex = 0, oldIndex = 0; + var lastIndex = 0; + for (var i = 0; i < splices.length; i++) { + var splice = splices[i]; + for (;lastIndex < splice.index; lastIndex++) { + oldIndex++; + newChildren[newIndex++].sync(added); + } + var removedCount = splice.removed.length; + for (var j = 0; j < removedCount; j++) { + var wrapper = wrap(oldChildren[oldIndex++]); + if (!added.get(wrapper)) remove(wrapper); + } + var addedCount = splice.addedCount; + var refNode = oldChildren[oldIndex] && wrap(oldChildren[oldIndex]); + for (var j = 0; j < addedCount; j++) { + var newChildRenderNode = newChildren[newIndex++]; + var newChildWrapper = newChildRenderNode.node; + insertBefore(nodeWrapper, newChildWrapper, refNode); + added.set(newChildWrapper, true); + newChildRenderNode.sync(added); + } + lastIndex += addedCount; + } + for (var i = lastIndex; i < newChildren.length; i++) { + newChildren[i].sync(added); + } + } + }; + function ShadowRenderer(host) { + this.host = host; + this.dirty = false; + this.invalidateAttributes(); + this.associateNode(host); + } + ShadowRenderer.prototype = { + render: function(opt_renderNode) { + if (!this.dirty) return; + this.invalidateAttributes(); + var host = this.host; + this.distribution(host); + var renderNode = opt_renderNode || new RenderNode(host); + this.buildRenderTree(renderNode, host); + var topMostRenderer = !opt_renderNode; + if (topMostRenderer) renderNode.sync(); + this.dirty = false; + }, + get parentRenderer() { + return getTreeScope(this.host).renderer; + }, + invalidate: function() { + if (!this.dirty) { + this.dirty = true; + var parentRenderer = this.parentRenderer; + if (parentRenderer) parentRenderer.invalidate(); + pendingDirtyRenderers.push(this); + if (renderTimer) return; + renderTimer = window[request](handleRequestAnimationFrame, 0); + } + }, + distribution: function(root) { + this.resetAllSubtrees(root); + this.distributionResolution(root); + }, + resetAll: function(node) { + if (isInsertionPoint(node)) resetDistributedNodes(node); else resetDestinationInsertionPoints(node); + this.resetAllSubtrees(node); + }, + resetAllSubtrees: function(node) { + for (var child = node.firstChild; child; child = child.nextSibling) { + this.resetAll(child); + } + if (node.shadowRoot) this.resetAll(node.shadowRoot); + if (node.olderShadowRoot) this.resetAll(node.olderShadowRoot); + }, + distributionResolution: function(node) { + if (isShadowHost(node)) { + var shadowHost = node; + var pool = poolPopulation(shadowHost); + var shadowTrees = getShadowTrees(shadowHost); + for (var i = 0; i < shadowTrees.length; i++) { + this.poolDistribution(shadowTrees[i], pool); + } + for (var i = shadowTrees.length - 1; i >= 0; i--) { + var shadowTree = shadowTrees[i]; + var shadow = getShadowInsertionPoint(shadowTree); + if (shadow) { + var olderShadowRoot = shadowTree.olderShadowRoot; + if (olderShadowRoot) { + pool = poolPopulation(olderShadowRoot); + } + for (var j = 0; j < pool.length; j++) { + destributeNodeInto(pool[j], shadow); + } + } + this.distributionResolution(shadowTree); + } + } + for (var child = node.firstChild; child; child = child.nextSibling) { + this.distributionResolution(child); + } + }, + poolDistribution: function(node, pool) { + if (node instanceof HTMLShadowElement) return; + if (node instanceof HTMLContentElement) { + var content = node; + this.updateDependentAttributes(content.getAttribute("select")); + var anyDistributed = false; + for (var i = 0; i < pool.length; i++) { + var node = pool[i]; + if (!node) continue; + if (matches(node, content)) { + destributeNodeInto(node, content); + pool[i] = undefined; + anyDistributed = true; + } + } + if (!anyDistributed) { + for (var child = content.firstChild; child; child = child.nextSibling) { + destributeNodeInto(child, content); + } + } + return; + } + for (var child = node.firstChild; child; child = child.nextSibling) { + this.poolDistribution(child, pool); + } + }, + buildRenderTree: function(renderNode, node) { + var children = this.compose(node); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + var childRenderNode = renderNode.append(child); + this.buildRenderTree(childRenderNode, child); + } + if (isShadowHost(node)) { + var renderer = getRendererForHost(node); + renderer.dirty = false; + } + }, + compose: function(node) { + var children = []; + var p = node.shadowRoot || node; + for (var child = p.firstChild; child; child = child.nextSibling) { + if (isInsertionPoint(child)) { + this.associateNode(p); + var distributedNodes = getDistributedNodes(child); + for (var j = 0; j < distributedNodes.length; j++) { + var distributedNode = distributedNodes[j]; + if (isFinalDestination(child, distributedNode)) children.push(distributedNode); + } + } else { + children.push(child); + } + } + return children; + }, + invalidateAttributes: function() { + this.attributes = Object.create(null); + }, + updateDependentAttributes: function(selector) { + if (!selector) return; + var attributes = this.attributes; + if (/\.\w+/.test(selector)) attributes["class"] = true; + if (/#\w+/.test(selector)) attributes["id"] = true; + selector.replace(/\[\s*([^\s=\|~\]]+)/g, function(_, name) { + attributes[name] = true; + }); + }, + dependsOnAttribute: function(name) { + return this.attributes[name]; + }, + associateNode: function(node) { + unsafeUnwrap(node).polymerShadowRenderer_ = this; + } + }; + function poolPopulation(node) { + var pool = []; + for (var child = node.firstChild; child; child = child.nextSibling) { + if (isInsertionPoint(child)) { + pool.push.apply(pool, getDistributedNodes(child)); + } else { + pool.push(child); + } + } + return pool; + } + function getShadowInsertionPoint(node) { + if (node instanceof HTMLShadowElement) return node; + if (node instanceof HTMLContentElement) return null; + for (var child = node.firstChild; child; child = child.nextSibling) { + var res = getShadowInsertionPoint(child); + if (res) return res; + } + return null; + } + function destributeNodeInto(child, insertionPoint) { + getDistributedNodes(insertionPoint).push(child); + var points = destinationInsertionPointsTable.get(child); + if (!points) destinationInsertionPointsTable.set(child, [ insertionPoint ]); else points.push(insertionPoint); + } + function getDestinationInsertionPoints(node) { + return destinationInsertionPointsTable.get(node); + } + function resetDestinationInsertionPoints(node) { + destinationInsertionPointsTable.set(node, undefined); + } + var selectorStartCharRe = /^(:not\()?[*.#[a-zA-Z_|]/; + function matches(node, contentElement) { + var select = contentElement.getAttribute("select"); + if (!select) return true; + select = select.trim(); + if (!select) return true; + if (!(node instanceof Element)) return false; + if (!selectorStartCharRe.test(select)) return false; + try { + return node.matches(select); + } catch (ex) { + return false; + } + } + function isFinalDestination(insertionPoint, node) { + var points = getDestinationInsertionPoints(node); + return points && points[points.length - 1] === insertionPoint; + } + function isInsertionPoint(node) { + return node instanceof HTMLContentElement || node instanceof HTMLShadowElement; + } + function isShadowHost(shadowHost) { + return shadowHost.shadowRoot; + } + function getShadowTrees(host) { + var trees = []; + for (var tree = host.shadowRoot; tree; tree = tree.olderShadowRoot) { + trees.push(tree); + } + return trees; + } + function render(host) { + new ShadowRenderer(host).render(); + } + Node.prototype.invalidateShadowRenderer = function(force) { + var renderer = unsafeUnwrap(this).polymerShadowRenderer_; + if (renderer) { + renderer.invalidate(); + return true; + } + return false; + }; + HTMLContentElement.prototype.getDistributedNodes = HTMLShadowElement.prototype.getDistributedNodes = function() { + renderAllPending(); + return getDistributedNodes(this); + }; + Element.prototype.getDestinationInsertionPoints = function() { + renderAllPending(); + return getDestinationInsertionPoints(this) || []; + }; + HTMLContentElement.prototype.nodeIsInserted_ = HTMLShadowElement.prototype.nodeIsInserted_ = function() { + this.invalidateShadowRenderer(); + var shadowRoot = getShadowRootAncestor(this); + var renderer; + if (shadowRoot) renderer = getRendererForShadowRoot(shadowRoot); + unsafeUnwrap(this).polymerShadowRenderer_ = renderer; + if (renderer) renderer.invalidate(); + }; + scope.getRendererForHost = getRendererForHost; + scope.getShadowTrees = getShadowTrees; + scope.renderAllPending = renderAllPending; + scope.getDestinationInsertionPoints = getDestinationInsertionPoints; + scope.visual = { + insertBefore: insertBefore, + remove: remove + }; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var HTMLElement = scope.wrappers.HTMLElement; + var assert = scope.assert; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var elementsWithFormProperty = [ "HTMLButtonElement", "HTMLFieldSetElement", "HTMLInputElement", "HTMLKeygenElement", "HTMLLabelElement", "HTMLLegendElement", "HTMLObjectElement", "HTMLOutputElement", "HTMLTextAreaElement" ]; + function createWrapperConstructor(name) { + if (!window[name]) return; + assert(!scope.wrappers[name]); + var GeneratedWrapper = function(node) { + HTMLElement.call(this, node); + }; + GeneratedWrapper.prototype = Object.create(HTMLElement.prototype); + mixin(GeneratedWrapper.prototype, { + get form() { + return wrap(unwrap(this).form); + } + }); + registerWrapper(window[name], GeneratedWrapper, document.createElement(name.slice(4, -7))); + scope.wrappers[name] = GeneratedWrapper; + } + elementsWithFormProperty.forEach(createWrapperConstructor); + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalSelection = window.Selection; + function Selection(impl) { + setWrapper(impl, this); + } + Selection.prototype = { + get anchorNode() { + return wrap(unsafeUnwrap(this).anchorNode); + }, + get focusNode() { + return wrap(unsafeUnwrap(this).focusNode); + }, + addRange: function(range) { + unsafeUnwrap(this).addRange(unwrapIfNeeded(range)); + }, + collapse: function(node, index) { + unsafeUnwrap(this).collapse(unwrapIfNeeded(node), index); + }, + containsNode: function(node, allowPartial) { + return unsafeUnwrap(this).containsNode(unwrapIfNeeded(node), allowPartial); + }, + getRangeAt: function(index) { + return wrap(unsafeUnwrap(this).getRangeAt(index)); + }, + removeRange: function(range) { + unsafeUnwrap(this).removeRange(unwrap(range)); + }, + selectAllChildren: function(node) { + unsafeUnwrap(this).selectAllChildren(node instanceof ShadowRoot ? unsafeUnwrap(node.host) : unwrapIfNeeded(node)); + }, + toString: function() { + return unsafeUnwrap(this).toString(); + } + }; + if (OriginalSelection.prototype.extend) { + Selection.prototype.extend = function(node, offset) { + unsafeUnwrap(this).extend(unwrapIfNeeded(node), offset); + }; + } + registerWrapper(window.Selection, Selection, window.getSelection()); + scope.wrappers.Selection = Selection; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalTreeWalker = window.TreeWalker; + function TreeWalker(impl) { + setWrapper(impl, this); + } + TreeWalker.prototype = { + get root() { + return wrap(unsafeUnwrap(this).root); + }, + get currentNode() { + return wrap(unsafeUnwrap(this).currentNode); + }, + set currentNode(node) { + unsafeUnwrap(this).currentNode = unwrapIfNeeded(node); + }, + get filter() { + return unsafeUnwrap(this).filter; + }, + parentNode: function() { + return wrap(unsafeUnwrap(this).parentNode()); + }, + firstChild: function() { + return wrap(unsafeUnwrap(this).firstChild()); + }, + lastChild: function() { + return wrap(unsafeUnwrap(this).lastChild()); + }, + previousSibling: function() { + return wrap(unsafeUnwrap(this).previousSibling()); + }, + previousNode: function() { + return wrap(unsafeUnwrap(this).previousNode()); + }, + nextNode: function() { + return wrap(unsafeUnwrap(this).nextNode()); + } + }; + registerWrapper(OriginalTreeWalker, TreeWalker); + scope.wrappers.TreeWalker = TreeWalker; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var GetElementsByInterface = scope.GetElementsByInterface; + var Node = scope.wrappers.Node; + var ParentNodeInterface = scope.ParentNodeInterface; + var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; + var Selection = scope.wrappers.Selection; + var SelectorsInterface = scope.SelectorsInterface; + var ShadowRoot = scope.wrappers.ShadowRoot; + var TreeScope = scope.TreeScope; + var cloneNode = scope.cloneNode; + var defineGetter = scope.defineGetter; + var defineWrapGetter = scope.defineWrapGetter; + var elementFromPoint = scope.elementFromPoint; + var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; + var matchesNames = scope.matchesNames; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var renderAllPending = scope.renderAllPending; + var rewrap = scope.rewrap; + var setWrapper = scope.setWrapper; + var unsafeUnwrap = scope.unsafeUnwrap; + var unwrap = scope.unwrap; + var wrap = scope.wrap; + var wrapEventTargetMethods = scope.wrapEventTargetMethods; + var wrapNodeList = scope.wrapNodeList; + var implementationTable = new WeakMap(); + function Document(node) { + Node.call(this, node); + this.treeScope_ = new TreeScope(this, null); + } + Document.prototype = Object.create(Node.prototype); + defineWrapGetter(Document, "documentElement"); + defineWrapGetter(Document, "body"); + defineWrapGetter(Document, "head"); + defineGetter(Document, "activeElement", function() { + var unwrappedActiveElement = unwrap(this).activeElement; + if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null; + var activeElement = wrap(unwrappedActiveElement); + while (!this.contains(activeElement)) { + while (activeElement.parentNode) { + activeElement = activeElement.parentNode; + } + if (activeElement.host) { + activeElement = activeElement.host; + } else { + return null; + } + } + return activeElement; + }); + function wrapMethod(name) { + var original = document[name]; + Document.prototype[name] = function() { + return wrap(original.apply(unsafeUnwrap(this), arguments)); + }; + } + [ "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode" ].forEach(wrapMethod); + var originalAdoptNode = document.adoptNode; + function adoptNodeNoRemove(node, doc) { + originalAdoptNode.call(unsafeUnwrap(doc), unwrap(node)); + adoptSubtree(node, doc); + } + function adoptSubtree(node, doc) { + if (node.shadowRoot) doc.adoptNode(node.shadowRoot); + if (node instanceof ShadowRoot) adoptOlderShadowRoots(node, doc); + for (var child = node.firstChild; child; child = child.nextSibling) { + adoptSubtree(child, doc); + } + } + function adoptOlderShadowRoots(shadowRoot, doc) { + var oldShadowRoot = shadowRoot.olderShadowRoot; + if (oldShadowRoot) doc.adoptNode(oldShadowRoot); + } + var originalGetSelection = document.getSelection; + mixin(Document.prototype, { + adoptNode: function(node) { + if (node.parentNode) node.parentNode.removeChild(node); + adoptNodeNoRemove(node, this); + return node; + }, + elementFromPoint: function(x, y) { + return elementFromPoint(this, this, x, y); + }, + importNode: function(node, deep) { + return cloneNode(node, deep, unsafeUnwrap(this)); + }, + getSelection: function() { + renderAllPending(); + return new Selection(originalGetSelection.call(unwrap(this))); + }, + getElementsByName: function(name) { + return SelectorsInterface.querySelectorAll.call(this, "[name=" + JSON.stringify(String(name)) + "]"); + } + }); + var originalCreateTreeWalker = document.createTreeWalker; + var TreeWalkerWrapper = scope.wrappers.TreeWalker; + Document.prototype.createTreeWalker = function(root, whatToShow, filter, expandEntityReferences) { + var newFilter = null; + if (filter) { + if (filter.acceptNode && typeof filter.acceptNode === "function") { + newFilter = { + acceptNode: function(node) { + return filter.acceptNode(wrap(node)); + } + }; + } else if (typeof filter === "function") { + newFilter = function(node) { + return filter(wrap(node)); + }; + } + } + return new TreeWalkerWrapper(originalCreateTreeWalker.call(unwrap(this), unwrap(root), whatToShow, newFilter, expandEntityReferences)); + }; + if (document.registerElement) { + var originalRegisterElement = document.registerElement; + Document.prototype.registerElement = function(tagName, object) { + var prototype, extendsOption; + if (object !== undefined) { + prototype = object.prototype; + extendsOption = object.extends; + } + if (!prototype) prototype = Object.create(HTMLElement.prototype); + if (scope.nativePrototypeTable.get(prototype)) { + throw new Error("NotSupportedError"); + } + var proto = Object.getPrototypeOf(prototype); + var nativePrototype; + var prototypes = []; + while (proto) { + nativePrototype = scope.nativePrototypeTable.get(proto); + if (nativePrototype) break; + prototypes.push(proto); + proto = Object.getPrototypeOf(proto); + } + if (!nativePrototype) { + throw new Error("NotSupportedError"); + } + var newPrototype = Object.create(nativePrototype); + for (var i = prototypes.length - 1; i >= 0; i--) { + newPrototype = Object.create(newPrototype); + } + [ "createdCallback", "attachedCallback", "detachedCallback", "attributeChangedCallback" ].forEach(function(name) { + var f = prototype[name]; + if (!f) return; + newPrototype[name] = function() { + if (!(wrap(this) instanceof CustomElementConstructor)) { + rewrap(this); + } + f.apply(wrap(this), arguments); + }; + }); + var p = { + prototype: newPrototype + }; + if (extendsOption) p.extends = extendsOption; + function CustomElementConstructor(node) { + if (!node) { + if (extendsOption) { + return document.createElement(extendsOption, tagName); + } else { + return document.createElement(tagName); + } + } + setWrapper(node, this); + } + CustomElementConstructor.prototype = prototype; + CustomElementConstructor.prototype.constructor = CustomElementConstructor; + scope.constructorTable.set(newPrototype, CustomElementConstructor); + scope.nativePrototypeTable.set(prototype, newPrototype); + var nativeConstructor = originalRegisterElement.call(unwrap(this), tagName, p); + return CustomElementConstructor; + }; + forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "registerElement" ]); + } + forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement, window.HTMLHtmlElement ], [ "appendChild", "compareDocumentPosition", "contains", "getElementsByClassName", "getElementsByTagName", "getElementsByTagNameNS", "insertBefore", "querySelector", "querySelectorAll", "removeChild", "replaceChild" ]); + forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLHeadElement, window.HTMLHtmlElement ], matchesNames); + forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "adoptNode", "importNode", "contains", "createComment", "createDocumentFragment", "createElement", "createElementNS", "createEvent", "createEventNS", "createRange", "createTextNode", "createTreeWalker", "elementFromPoint", "getElementById", "getElementsByName", "getSelection" ]); + mixin(Document.prototype, GetElementsByInterface); + mixin(Document.prototype, ParentNodeInterface); + mixin(Document.prototype, SelectorsInterface); + mixin(Document.prototype, NonElementParentNodeInterface); + mixin(Document.prototype, { + get implementation() { + var implementation = implementationTable.get(this); + if (implementation) return implementation; + implementation = new DOMImplementation(unwrap(this).implementation); + implementationTable.set(this, implementation); + return implementation; + }, + get defaultView() { + return wrap(unwrap(this).defaultView); + } + }); + registerWrapper(window.Document, Document, document.implementation.createHTMLDocument("")); + if (window.HTMLDocument) registerWrapper(window.HTMLDocument, Document); + wrapEventTargetMethods([ window.HTMLBodyElement, window.HTMLDocument || window.Document, window.HTMLHeadElement ]); + function DOMImplementation(impl) { + setWrapper(impl, this); + } + var originalCreateDocument = document.implementation.createDocument; + DOMImplementation.prototype.createDocument = function() { + arguments[2] = unwrap(arguments[2]); + return wrap(originalCreateDocument.apply(unsafeUnwrap(this), arguments)); + }; + function wrapImplMethod(constructor, name) { + var original = document.implementation[name]; + constructor.prototype[name] = function() { + return wrap(original.apply(unsafeUnwrap(this), arguments)); + }; + } + function forwardImplMethod(constructor, name) { + var original = document.implementation[name]; + constructor.prototype[name] = function() { + return original.apply(unsafeUnwrap(this), arguments); + }; + } + wrapImplMethod(DOMImplementation, "createDocumentType"); + wrapImplMethod(DOMImplementation, "createHTMLDocument"); + forwardImplMethod(DOMImplementation, "hasFeature"); + registerWrapper(window.DOMImplementation, DOMImplementation); + forwardMethodsToWrapper([ window.DOMImplementation ], [ "createDocument", "createDocumentType", "createHTMLDocument", "hasFeature" ]); + scope.adoptNodeNoRemove = adoptNodeNoRemove; + scope.wrappers.DOMImplementation = DOMImplementation; + scope.wrappers.Document = Document; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var EventTarget = scope.wrappers.EventTarget; + var Selection = scope.wrappers.Selection; + var mixin = scope.mixin; + var registerWrapper = scope.registerWrapper; + var renderAllPending = scope.renderAllPending; + var unwrap = scope.unwrap; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var wrap = scope.wrap; + var OriginalWindow = window.Window; + var originalGetComputedStyle = window.getComputedStyle; + var originalGetDefaultComputedStyle = window.getDefaultComputedStyle; + var originalGetSelection = window.getSelection; + function Window(impl) { + EventTarget.call(this, impl); + } + Window.prototype = Object.create(EventTarget.prototype); + OriginalWindow.prototype.getComputedStyle = function(el, pseudo) { + return wrap(this || window).getComputedStyle(unwrapIfNeeded(el), pseudo); + }; + if (originalGetDefaultComputedStyle) { + OriginalWindow.prototype.getDefaultComputedStyle = function(el, pseudo) { + return wrap(this || window).getDefaultComputedStyle(unwrapIfNeeded(el), pseudo); + }; + } + OriginalWindow.prototype.getSelection = function() { + return wrap(this || window).getSelection(); + }; + delete window.getComputedStyle; + delete window.getDefaultComputedStyle; + delete window.getSelection; + [ "addEventListener", "removeEventListener", "dispatchEvent" ].forEach(function(name) { + OriginalWindow.prototype[name] = function() { + var w = wrap(this || window); + return w[name].apply(w, arguments); + }; + delete window[name]; + }); + mixin(Window.prototype, { + getComputedStyle: function(el, pseudo) { + renderAllPending(); + return originalGetComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); + }, + getSelection: function() { + renderAllPending(); + return new Selection(originalGetSelection.call(unwrap(this))); + }, + get document() { + return wrap(unwrap(this).document); + } + }); + if (originalGetDefaultComputedStyle) { + Window.prototype.getDefaultComputedStyle = function(el, pseudo) { + renderAllPending(); + return originalGetDefaultComputedStyle.call(unwrap(this), unwrapIfNeeded(el), pseudo); + }; + } + registerWrapper(OriginalWindow, Window, window); + scope.wrappers.Window = Window; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var unwrap = scope.unwrap; + var OriginalDataTransfer = window.DataTransfer || window.Clipboard; + var OriginalDataTransferSetDragImage = OriginalDataTransfer.prototype.setDragImage; + if (OriginalDataTransferSetDragImage) { + OriginalDataTransfer.prototype.setDragImage = function(image, x, y) { + OriginalDataTransferSetDragImage.call(this, unwrap(image), x, y); + }; + } + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var registerWrapper = scope.registerWrapper; + var setWrapper = scope.setWrapper; + var unwrap = scope.unwrap; + var OriginalFormData = window.FormData; + if (!OriginalFormData) return; + function FormData(formElement) { + var impl; + if (formElement instanceof OriginalFormData) { + impl = formElement; + } else { + impl = new OriginalFormData(formElement && unwrap(formElement)); + } + setWrapper(impl, this); + } + registerWrapper(OriginalFormData, FormData, new OriginalFormData()); + scope.wrappers.FormData = FormData; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var unwrapIfNeeded = scope.unwrapIfNeeded; + var originalSend = XMLHttpRequest.prototype.send; + XMLHttpRequest.prototype.send = function(obj) { + return originalSend.call(this, unwrapIfNeeded(obj)); + }; + })(window.ShadowDOMPolyfill); + (function(scope) { + "use strict"; + var isWrapperFor = scope.isWrapperFor; + var elements = { + a: "HTMLAnchorElement", + area: "HTMLAreaElement", + audio: "HTMLAudioElement", + base: "HTMLBaseElement", + body: "HTMLBodyElement", + br: "HTMLBRElement", + button: "HTMLButtonElement", + canvas: "HTMLCanvasElement", + caption: "HTMLTableCaptionElement", + col: "HTMLTableColElement", + content: "HTMLContentElement", + data: "HTMLDataElement", + datalist: "HTMLDataListElement", + del: "HTMLModElement", + dir: "HTMLDirectoryElement", + div: "HTMLDivElement", + dl: "HTMLDListElement", + embed: "HTMLEmbedElement", + fieldset: "HTMLFieldSetElement", + font: "HTMLFontElement", + form: "HTMLFormElement", + frame: "HTMLFrameElement", + frameset: "HTMLFrameSetElement", + h1: "HTMLHeadingElement", + head: "HTMLHeadElement", + hr: "HTMLHRElement", + html: "HTMLHtmlElement", + iframe: "HTMLIFrameElement", + img: "HTMLImageElement", + input: "HTMLInputElement", + keygen: "HTMLKeygenElement", + label: "HTMLLabelElement", + legend: "HTMLLegendElement", + li: "HTMLLIElement", + link: "HTMLLinkElement", + map: "HTMLMapElement", + marquee: "HTMLMarqueeElement", + menu: "HTMLMenuElement", + menuitem: "HTMLMenuItemElement", + meta: "HTMLMetaElement", + meter: "HTMLMeterElement", + object: "HTMLObjectElement", + ol: "HTMLOListElement", + optgroup: "HTMLOptGroupElement", + option: "HTMLOptionElement", + output: "HTMLOutputElement", + p: "HTMLParagraphElement", + param: "HTMLParamElement", + pre: "HTMLPreElement", + progress: "HTMLProgressElement", + q: "HTMLQuoteElement", + script: "HTMLScriptElement", + select: "HTMLSelectElement", + shadow: "HTMLShadowElement", + source: "HTMLSourceElement", + span: "HTMLSpanElement", + style: "HTMLStyleElement", + table: "HTMLTableElement", + tbody: "HTMLTableSectionElement", + template: "HTMLTemplateElement", + textarea: "HTMLTextAreaElement", + thead: "HTMLTableSectionElement", + time: "HTMLTimeElement", + title: "HTMLTitleElement", + tr: "HTMLTableRowElement", + track: "HTMLTrackElement", + ul: "HTMLUListElement", + video: "HTMLVideoElement" + }; + function overrideConstructor(tagName) { + var nativeConstructorName = elements[tagName]; + var nativeConstructor = window[nativeConstructorName]; + if (!nativeConstructor) return; + var element = document.createElement(tagName); + var wrapperConstructor = element.constructor; + window[nativeConstructorName] = wrapperConstructor; + } + Object.keys(elements).forEach(overrideConstructor); + Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) { + window[name] = scope.wrappers[name]; + }); + })(window.ShadowDOMPolyfill); + (function(scope) { + var ShadowCSS = { + strictStyling: false, + registry: {}, + shimStyling: function(root, name, extendsName) { + var scopeStyles = this.prepareRoot(root, name, extendsName); + var typeExtension = this.isTypeExtension(extendsName); + var scopeSelector = this.makeScopeSelector(name, typeExtension); + var cssText = stylesToCssText(scopeStyles, true); + cssText = this.scopeCssText(cssText, scopeSelector); + if (root) { + root.shimmedStyle = cssText; + } + this.addCssToDocument(cssText, name); + }, + shimStyle: function(style, selector) { + return this.shimCssText(style.textContent, selector); + }, + shimCssText: function(cssText, selector) { + cssText = this.insertDirectives(cssText); + return this.scopeCssText(cssText, selector); + }, + makeScopeSelector: function(name, typeExtension) { + if (name) { + return typeExtension ? "[is=" + name + "]" : name; + } + return ""; + }, + isTypeExtension: function(extendsName) { + return extendsName && extendsName.indexOf("-") < 0; + }, + prepareRoot: function(root, name, extendsName) { + var def = this.registerRoot(root, name, extendsName); + this.replaceTextInStyles(def.rootStyles, this.insertDirectives); + this.removeStyles(root, def.rootStyles); + if (this.strictStyling) { + this.applyScopeToContent(root, name); + } + return def.scopeStyles; + }, + removeStyles: function(root, styles) { + for (var i = 0, l = styles.length, s; i < l && (s = styles[i]); i++) { + s.parentNode.removeChild(s); + } + }, + registerRoot: function(root, name, extendsName) { + var def = this.registry[name] = { + root: root, + name: name, + extendsName: extendsName + }; + var styles = this.findStyles(root); + def.rootStyles = styles; + def.scopeStyles = def.rootStyles; + var extendee = this.registry[def.extendsName]; + if (extendee) { + def.scopeStyles = extendee.scopeStyles.concat(def.scopeStyles); + } + return def; + }, + findStyles: function(root) { + if (!root) { + return []; + } + var styles = root.querySelectorAll("style"); + return Array.prototype.filter.call(styles, function(s) { + return !s.hasAttribute(NO_SHIM_ATTRIBUTE); + }); + }, + applyScopeToContent: function(root, name) { + if (root) { + Array.prototype.forEach.call(root.querySelectorAll("*"), function(node) { + node.setAttribute(name, ""); + }); + Array.prototype.forEach.call(root.querySelectorAll("template"), function(template) { + this.applyScopeToContent(template.content, name); + }, this); + } + }, + insertDirectives: function(cssText) { + cssText = this.insertPolyfillDirectivesInCssText(cssText); + return this.insertPolyfillRulesInCssText(cssText); + }, + insertPolyfillDirectivesInCssText: function(cssText) { + cssText = cssText.replace(cssCommentNextSelectorRe, function(match, p1) { + return p1.slice(0, -2) + "{"; + }); + return cssText.replace(cssContentNextSelectorRe, function(match, p1) { + return p1 + " {"; + }); + }, + insertPolyfillRulesInCssText: function(cssText) { + cssText = cssText.replace(cssCommentRuleRe, function(match, p1) { + return p1.slice(0, -1); + }); + return cssText.replace(cssContentRuleRe, function(match, p1, p2, p3) { + var rule = match.replace(p1, "").replace(p2, ""); + return p3 + rule; + }); + }, + scopeCssText: function(cssText, scopeSelector) { + var unscoped = this.extractUnscopedRulesFromCssText(cssText); + cssText = this.insertPolyfillHostInCssText(cssText); + cssText = this.convertColonHost(cssText); + cssText = this.convertColonHostContext(cssText); + cssText = this.convertShadowDOMSelectors(cssText); + if (scopeSelector) { + var self = this, cssText; + withCssRules(cssText, function(rules) { + cssText = self.scopeRules(rules, scopeSelector); + }); + } + cssText = cssText + "\n" + unscoped; + return cssText.trim(); + }, + extractUnscopedRulesFromCssText: function(cssText) { + var r = "", m; + while (m = cssCommentUnscopedRuleRe.exec(cssText)) { + r += m[1].slice(0, -1) + "\n\n"; + } + while (m = cssContentUnscopedRuleRe.exec(cssText)) { + r += m[0].replace(m[2], "").replace(m[1], m[3]) + "\n\n"; + } + return r; + }, + convertColonHost: function(cssText) { + return this.convertColonRule(cssText, cssColonHostRe, this.colonHostPartReplacer); + }, + convertColonHostContext: function(cssText) { + return this.convertColonRule(cssText, cssColonHostContextRe, this.colonHostContextPartReplacer); + }, + convertColonRule: function(cssText, regExp, partReplacer) { + return cssText.replace(regExp, function(m, p1, p2, p3) { + p1 = polyfillHostNoCombinator; + if (p2) { + var parts = p2.split(","), r = []; + for (var i = 0, l = parts.length, p; i < l && (p = parts[i]); i++) { + p = p.trim(); + r.push(partReplacer(p1, p, p3)); + } + return r.join(","); + } else { + return p1 + p3; + } + }); + }, + colonHostContextPartReplacer: function(host, part, suffix) { + if (part.match(polyfillHost)) { + return this.colonHostPartReplacer(host, part, suffix); + } else { + return host + part + suffix + ", " + part + " " + host + suffix; + } + }, + colonHostPartReplacer: function(host, part, suffix) { + return host + part.replace(polyfillHost, "") + suffix; + }, + convertShadowDOMSelectors: function(cssText) { + for (var i = 0; i < shadowDOMSelectorsRe.length; i++) { + cssText = cssText.replace(shadowDOMSelectorsRe[i], " "); + } + return cssText; + }, + scopeRules: function(cssRules, scopeSelector) { + var cssText = ""; + if (cssRules) { + Array.prototype.forEach.call(cssRules, function(rule) { + if (rule.selectorText && (rule.style && rule.style.cssText !== undefined)) { + cssText += this.scopeSelector(rule.selectorText, scopeSelector, this.strictStyling) + " {\n\t"; + cssText += this.propertiesFromRule(rule) + "\n}\n\n"; + } else if (rule.type === CSSRule.MEDIA_RULE) { + cssText += "@media " + rule.media.mediaText + " {\n"; + cssText += this.scopeRules(rule.cssRules, scopeSelector); + cssText += "\n}\n\n"; + } else { + try { + if (rule.cssText) { + cssText += rule.cssText + "\n\n"; + } + } catch (x) { + if (rule.type === CSSRule.KEYFRAMES_RULE && rule.cssRules) { + cssText += this.ieSafeCssTextFromKeyFrameRule(rule); + } + } + } + }, this); + } + return cssText; + }, + ieSafeCssTextFromKeyFrameRule: function(rule) { + var cssText = "@keyframes " + rule.name + " {"; + Array.prototype.forEach.call(rule.cssRules, function(rule) { + cssText += " " + rule.keyText + " {" + rule.style.cssText + "}"; + }); + cssText += " }"; + return cssText; + }, + scopeSelector: function(selector, scopeSelector, strict) { + var r = [], parts = selector.split(","); + parts.forEach(function(p) { + p = p.trim(); + if (this.selectorNeedsScoping(p, scopeSelector)) { + p = strict && !p.match(polyfillHostNoCombinator) ? this.applyStrictSelectorScope(p, scopeSelector) : this.applySelectorScope(p, scopeSelector); + } + r.push(p); + }, this); + return r.join(", "); + }, + selectorNeedsScoping: function(selector, scopeSelector) { + if (Array.isArray(scopeSelector)) { + return true; + } + var re = this.makeScopeMatcher(scopeSelector); + return !selector.match(re); + }, + makeScopeMatcher: function(scopeSelector) { + scopeSelector = scopeSelector.replace(/\[/g, "\\[").replace(/\]/g, "\\]"); + return new RegExp("^(" + scopeSelector + ")" + selectorReSuffix, "m"); + }, + applySelectorScope: function(selector, selectorScope) { + return Array.isArray(selectorScope) ? this.applySelectorScopeList(selector, selectorScope) : this.applySimpleSelectorScope(selector, selectorScope); + }, + applySelectorScopeList: function(selector, scopeSelectorList) { + var r = []; + for (var i = 0, s; s = scopeSelectorList[i]; i++) { + r.push(this.applySimpleSelectorScope(selector, s)); + } + return r.join(", "); + }, + applySimpleSelectorScope: function(selector, scopeSelector) { + if (selector.match(polyfillHostRe)) { + selector = selector.replace(polyfillHostNoCombinator, scopeSelector); + return selector.replace(polyfillHostRe, scopeSelector + " "); + } else { + return scopeSelector + " " + selector; + } + }, + applyStrictSelectorScope: function(selector, scopeSelector) { + scopeSelector = scopeSelector.replace(/\[is=([^\]]*)\]/g, "$1"); + var splits = [ " ", ">", "+", "~" ], scoped = selector, attrName = "[" + scopeSelector + "]"; + splits.forEach(function(sep) { + var parts = scoped.split(sep); + scoped = parts.map(function(p) { + var t = p.trim().replace(polyfillHostRe, ""); + if (t && splits.indexOf(t) < 0 && t.indexOf(attrName) < 0) { + p = t.replace(/([^:]*)(:*)(.*)/, "$1" + attrName + "$2$3"); + } + return p; + }).join(sep); + }); + return scoped; + }, + insertPolyfillHostInCssText: function(selector) { + return selector.replace(colonHostContextRe, polyfillHostContext).replace(colonHostRe, polyfillHost); + }, + propertiesFromRule: function(rule) { + var cssText = rule.style.cssText; + if (rule.style.content && !rule.style.content.match(/['"]+|attr/)) { + cssText = cssText.replace(/content:[^;]*;/g, "content: '" + rule.style.content + "';"); + } + var style = rule.style; + for (var i in style) { + if (style[i] === "initial") { + cssText += i + ": initial; "; + } + } + return cssText; + }, + replaceTextInStyles: function(styles, action) { + if (styles && action) { + if (!(styles instanceof Array)) { + styles = [ styles ]; + } + Array.prototype.forEach.call(styles, function(s) { + s.textContent = action.call(this, s.textContent); + }, this); + } + }, + addCssToDocument: function(cssText, name) { + if (cssText.match("@import")) { + addOwnSheet(cssText, name); + } else { + addCssToDocument(cssText); + } + } + }; + var selectorRe = /([^{]*)({[\s\S]*?})/gim, cssCommentRe = /\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim, cssCommentNextSelectorRe = /\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim, cssContentNextSelectorRe = /polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim, cssCommentRuleRe = /\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim, cssContentRuleRe = /(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim, cssCommentUnscopedRuleRe = /\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim, cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim, cssPseudoRe = /::(x-[^\s{,(]*)/gim, cssPartRe = /::part\(([^)]*)\)/gim, polyfillHost = "-shadowcsshost", polyfillHostContext = "-shadowcsscontext", parenSuffix = ")(?:\\((" + "(?:\\([^)(]*\\)|[^)(]*)+?" + ")\\))?([^,{]*)"; + var cssColonHostRe = new RegExp("(" + polyfillHost + parenSuffix, "gim"), cssColonHostContextRe = new RegExp("(" + polyfillHostContext + parenSuffix, "gim"), selectorReSuffix = "([>\\s~+[.,{:][\\s\\S]*)?$", colonHostRe = /\:host/gim, colonHostContextRe = /\:host-context/gim, polyfillHostNoCombinator = polyfillHost + "-no-combinator", polyfillHostRe = new RegExp(polyfillHost, "gim"), polyfillHostContextRe = new RegExp(polyfillHostContext, "gim"), shadowDOMSelectorsRe = [ />>>/g, /::shadow/g, /::content/g, /\/deep\//g, /\/shadow\//g, /\/shadow-deep\//g, /\^\^/g, /\^(?!=)/g ]; + function stylesToCssText(styles, preserveComments) { + var cssText = ""; + Array.prototype.forEach.call(styles, function(s) { + cssText += s.textContent + "\n\n"; + }); + if (!preserveComments) { + cssText = cssText.replace(cssCommentRe, ""); + } + return cssText; + } + function cssTextToStyle(cssText) { + var style = document.createElement("style"); + style.textContent = cssText; + return style; + } + function cssToRules(cssText) { + var style = cssTextToStyle(cssText); + document.head.appendChild(style); + var rules = []; + if (style.sheet) { + try { + rules = style.sheet.cssRules; + } catch (e) {} + } else { + console.warn("sheet not found", style); + } + style.parentNode.removeChild(style); + return rules; + } + var frame = document.createElement("iframe"); + frame.style.display = "none"; + function initFrame() { + frame.initialized = true; + document.body.appendChild(frame); + var doc = frame.contentDocument; + var base = doc.createElement("base"); + base.href = document.baseURI; + doc.head.appendChild(base); + } + function inFrame(fn) { + if (!frame.initialized) { + initFrame(); + } + document.body.appendChild(frame); + fn(frame.contentDocument); + document.body.removeChild(frame); + } + var isChrome = navigator.userAgent.match("Chrome"); + function withCssRules(cssText, callback) { + if (!callback) { + return; + } + var rules; + if (cssText.match("@import") && isChrome) { + var style = cssTextToStyle(cssText); + inFrame(function(doc) { + doc.head.appendChild(style.impl); + rules = Array.prototype.slice.call(style.sheet.cssRules, 0); + callback(rules); + }); + } else { + rules = cssToRules(cssText); + callback(rules); + } + } + function rulesToCss(cssRules) { + for (var i = 0, css = []; i < cssRules.length; i++) { + css.push(cssRules[i].cssText); + } + return css.join("\n\n"); + } + function addCssToDocument(cssText) { + if (cssText) { + getSheet().appendChild(document.createTextNode(cssText)); + } + } + function addOwnSheet(cssText, name) { + var style = cssTextToStyle(cssText); + style.setAttribute(name, ""); + style.setAttribute(SHIMMED_ATTRIBUTE, ""); + document.head.appendChild(style); + } + var SHIM_ATTRIBUTE = "shim-shadowdom"; + var SHIMMED_ATTRIBUTE = "shim-shadowdom-css"; + var NO_SHIM_ATTRIBUTE = "no-shim"; + var sheet; + function getSheet() { + if (!sheet) { + sheet = document.createElement("style"); + sheet.setAttribute(SHIMMED_ATTRIBUTE, ""); + sheet[SHIMMED_ATTRIBUTE] = true; + } + return sheet; + } + if (window.ShadowDOMPolyfill) { + addCssToDocument("style { display: none !important; }\n"); + var doc = ShadowDOMPolyfill.wrap(document); + var head = doc.querySelector("head"); + head.insertBefore(getSheet(), head.childNodes[0]); + document.addEventListener("DOMContentLoaded", function() { + var urlResolver = scope.urlResolver; + if (window.HTMLImports && !HTMLImports.useNative) { + var SHIM_SHEET_SELECTOR = "link[rel=stylesheet]" + "[" + SHIM_ATTRIBUTE + "]"; + var SHIM_STYLE_SELECTOR = "style[" + SHIM_ATTRIBUTE + "]"; + HTMLImports.importer.documentPreloadSelectors += "," + SHIM_SHEET_SELECTOR; + HTMLImports.importer.importsPreloadSelectors += "," + SHIM_SHEET_SELECTOR; + HTMLImports.parser.documentSelectors = [ HTMLImports.parser.documentSelectors, SHIM_SHEET_SELECTOR, SHIM_STYLE_SELECTOR ].join(","); + var originalParseGeneric = HTMLImports.parser.parseGeneric; + HTMLImports.parser.parseGeneric = function(elt) { + if (elt[SHIMMED_ATTRIBUTE]) { + return; + } + var style = elt.__importElement || elt; + if (!style.hasAttribute(SHIM_ATTRIBUTE)) { + originalParseGeneric.call(this, elt); + return; + } + if (elt.__resource) { + style = elt.ownerDocument.createElement("style"); + style.textContent = elt.__resource; + } + HTMLImports.path.resolveUrlsInStyle(style, elt.href); + style.textContent = ShadowCSS.shimStyle(style); + style.removeAttribute(SHIM_ATTRIBUTE, ""); + style.setAttribute(SHIMMED_ATTRIBUTE, ""); + style[SHIMMED_ATTRIBUTE] = true; + if (style.parentNode !== head) { + if (elt.parentNode === head) { + head.replaceChild(style, elt); + } else { + this.addElementToDocument(style); + } + } + style.__importParsed = true; + this.markParsingComplete(elt); + this.parseNext(); + }; + var hasResource = HTMLImports.parser.hasResource; + HTMLImports.parser.hasResource = function(node) { + if (node.localName === "link" && node.rel === "stylesheet" && node.hasAttribute(SHIM_ATTRIBUTE)) { + return node.__resource; + } else { + return hasResource.call(this, node); + } + }; + } + }); + } + scope.ShadowCSS = ShadowCSS; + })(window.WebComponents); +} + +(function(scope) { + if (window.ShadowDOMPolyfill) { + window.wrap = ShadowDOMPolyfill.wrapIfNeeded; + window.unwrap = ShadowDOMPolyfill.unwrapIfNeeded; + } else { + window.wrap = window.unwrap = function(n) { + return n; + }; + } +})(window.WebComponents); + +(function(scope) { + "use strict"; + var hasWorkingUrl = false; + if (!scope.forceJURL) { + try { + var u = new URL("b", "http://a"); + u.pathname = "c%20d"; + hasWorkingUrl = u.href === "http://a/c%20d"; + } catch (e) {} + } + if (hasWorkingUrl) return; + var relative = Object.create(null); + relative["ftp"] = 21; + relative["file"] = 0; + relative["gopher"] = 70; + relative["http"] = 80; + relative["https"] = 443; + relative["ws"] = 80; + relative["wss"] = 443; + var relativePathDotMapping = Object.create(null); + relativePathDotMapping["%2e"] = "."; + relativePathDotMapping[".%2e"] = ".."; + relativePathDotMapping["%2e."] = ".."; + relativePathDotMapping["%2e%2e"] = ".."; + function isRelativeScheme(scheme) { + return relative[scheme] !== undefined; + } + function invalid() { + clear.call(this); + this._isInvalid = true; + } + function IDNAToASCII(h) { + if ("" == h) { + invalid.call(this); + } + return h.toLowerCase(); + } + function percentEscape(c) { + var unicode = c.charCodeAt(0); + if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 63, 96 ].indexOf(unicode) == -1) { + return c; + } + return encodeURIComponent(c); + } + function percentEscapeQuery(c) { + var unicode = c.charCodeAt(0); + if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 96 ].indexOf(unicode) == -1) { + return c; + } + return encodeURIComponent(c); + } + var EOF = undefined, ALPHA = /[a-zA-Z]/, ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; + function parse(input, stateOverride, base) { + function err(message) { + errors.push(message); + } + var state = stateOverride || "scheme start", cursor = 0, buffer = "", seenAt = false, seenBracket = false, errors = []; + loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) { + var c = input[cursor]; + switch (state) { + case "scheme start": + if (c && ALPHA.test(c)) { + buffer += c.toLowerCase(); + state = "scheme"; + } else if (!stateOverride) { + buffer = ""; + state = "no scheme"; + continue; + } else { + err("Invalid scheme."); + break loop; + } + break; + + case "scheme": + if (c && ALPHANUMERIC.test(c)) { + buffer += c.toLowerCase(); + } else if (":" == c) { + this._scheme = buffer; + buffer = ""; + if (stateOverride) { + break loop; + } + if (isRelativeScheme(this._scheme)) { + this._isRelative = true; + } + if ("file" == this._scheme) { + state = "relative"; + } else if (this._isRelative && base && base._scheme == this._scheme) { + state = "relative or authority"; + } else if (this._isRelative) { + state = "authority first slash"; + } else { + state = "scheme data"; + } + } else if (!stateOverride) { + buffer = ""; + cursor = 0; + state = "no scheme"; + continue; + } else if (EOF == c) { + break loop; + } else { + err("Code point not allowed in scheme: " + c); + break loop; + } + break; + + case "scheme data": + if ("?" == c) { + this._query = "?"; + state = "query"; + } else if ("#" == c) { + this._fragment = "#"; + state = "fragment"; + } else { + if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { + this._schemeData += percentEscape(c); + } + } + break; + + case "no scheme": + if (!base || !isRelativeScheme(base._scheme)) { + err("Missing scheme."); + invalid.call(this); + } else { + state = "relative"; + continue; + } + break; + + case "relative or authority": + if ("/" == c && "/" == input[cursor + 1]) { + state = "authority ignore slashes"; + } else { + err("Expected /, got: " + c); + state = "relative"; + continue; + } + break; + + case "relative": + this._isRelative = true; + if ("file" != this._scheme) this._scheme = base._scheme; + if (EOF == c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._username = base._username; + this._password = base._password; + break loop; + } else if ("/" == c || "\\" == c) { + if ("\\" == c) err("\\ is an invalid code point."); + state = "relative slash"; + } else if ("?" == c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = "?"; + this._username = base._username; + this._password = base._password; + state = "query"; + } else if ("#" == c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._fragment = "#"; + this._username = base._username; + this._password = base._password; + state = "fragment"; + } else { + var nextC = input[cursor + 1]; + var nextNextC = input[cursor + 2]; + if ("file" != this._scheme || !ALPHA.test(c) || nextC != ":" && nextC != "|" || EOF != nextNextC && "/" != nextNextC && "\\" != nextNextC && "?" != nextNextC && "#" != nextNextC) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + this._path = base._path.slice(); + this._path.pop(); + } + state = "relative path"; + continue; + } + break; + + case "relative slash": + if ("/" == c || "\\" == c) { + if ("\\" == c) { + err("\\ is an invalid code point."); + } + if ("file" == this._scheme) { + state = "file host"; + } else { + state = "authority ignore slashes"; + } + } else { + if ("file" != this._scheme) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + } + state = "relative path"; + continue; + } + break; + + case "authority first slash": + if ("/" == c) { + state = "authority second slash"; + } else { + err("Expected '/', got: " + c); + state = "authority ignore slashes"; + continue; + } + break; + + case "authority second slash": + state = "authority ignore slashes"; + if ("/" != c) { + err("Expected '/', got: " + c); + continue; + } + break; + + case "authority ignore slashes": + if ("/" != c && "\\" != c) { + state = "authority"; + continue; + } else { + err("Expected authority, got: " + c); + } + break; + + case "authority": + if ("@" == c) { + if (seenAt) { + err("@ already seen."); + buffer += "%40"; + } + seenAt = true; + for (var i = 0; i < buffer.length; i++) { + var cp = buffer[i]; + if ("\t" == cp || "\n" == cp || "\r" == cp) { + err("Invalid whitespace in authority."); + continue; + } + if (":" == cp && null === this._password) { + this._password = ""; + continue; + } + var tempC = percentEscape(cp); + null !== this._password ? this._password += tempC : this._username += tempC; + } + buffer = ""; + } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { + cursor -= buffer.length; + buffer = ""; + state = "host"; + continue; + } else { + buffer += c; + } + break; + + case "file host": + if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { + if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ":" || buffer[1] == "|")) { + state = "relative path"; + } else if (buffer.length == 0) { + state = "relative path start"; + } else { + this._host = IDNAToASCII.call(this, buffer); + buffer = ""; + state = "relative path start"; + } + continue; + } else if ("\t" == c || "\n" == c || "\r" == c) { + err("Invalid whitespace in file host."); + } else { + buffer += c; + } + break; + + case "host": + case "hostname": + if (":" == c && !seenBracket) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ""; + state = "port"; + if ("hostname" == stateOverride) { + break loop; + } + } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ""; + state = "relative path start"; + if (stateOverride) { + break loop; + } + continue; + } else if ("\t" != c && "\n" != c && "\r" != c) { + if ("[" == c) { + seenBracket = true; + } else if ("]" == c) { + seenBracket = false; + } + buffer += c; + } else { + err("Invalid code point in host/hostname: " + c); + } + break; + + case "port": + if (/[0-9]/.test(c)) { + buffer += c; + } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c || stateOverride) { + if ("" != buffer) { + var temp = parseInt(buffer, 10); + if (temp != relative[this._scheme]) { + this._port = temp + ""; + } + buffer = ""; + } + if (stateOverride) { + break loop; + } + state = "relative path start"; + continue; + } else if ("\t" == c || "\n" == c || "\r" == c) { + err("Invalid code point in port: " + c); + } else { + invalid.call(this); + } + break; + + case "relative path start": + if ("\\" == c) err("'\\' not allowed in path."); + state = "relative path"; + if ("/" != c && "\\" != c) { + continue; + } + break; + + case "relative path": + if (EOF == c || "/" == c || "\\" == c || !stateOverride && ("?" == c || "#" == c)) { + if ("\\" == c) { + err("\\ not allowed in relative path."); + } + var tmp; + if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { + buffer = tmp; + } + if (".." == buffer) { + this._path.pop(); + if ("/" != c && "\\" != c) { + this._path.push(""); + } + } else if ("." == buffer && "/" != c && "\\" != c) { + this._path.push(""); + } else if ("." != buffer) { + if ("file" == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == "|") { + buffer = buffer[0] + ":"; + } + this._path.push(buffer); + } + buffer = ""; + if ("?" == c) { + this._query = "?"; + state = "query"; + } else if ("#" == c) { + this._fragment = "#"; + state = "fragment"; + } + } else if ("\t" != c && "\n" != c && "\r" != c) { + buffer += percentEscape(c); + } + break; + + case "query": + if (!stateOverride && "#" == c) { + this._fragment = "#"; + state = "fragment"; + } else if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { + this._query += percentEscapeQuery(c); + } + break; + + case "fragment": + if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { + this._fragment += c; + } + break; + } + cursor++; + } + } + function clear() { + this._scheme = ""; + this._schemeData = ""; + this._username = ""; + this._password = null; + this._host = ""; + this._port = ""; + this._path = []; + this._query = ""; + this._fragment = ""; + this._isInvalid = false; + this._isRelative = false; + } + function jURL(url, base) { + if (base !== undefined && !(base instanceof jURL)) base = new jURL(String(base)); + this._url = url; + clear.call(this); + var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""); + parse.call(this, input, null, base); + } + jURL.prototype = { + toString: function() { + return this.href; + }, + get href() { + if (this._isInvalid) return this._url; + var authority = ""; + if ("" != this._username || null != this._password) { + authority = this._username + (null != this._password ? ":" + this._password : "") + "@"; + } + return this.protocol + (this._isRelative ? "//" + authority + this.host : "") + this.pathname + this._query + this._fragment; + }, + set href(href) { + clear.call(this); + parse.call(this, href); + }, + get protocol() { + return this._scheme + ":"; + }, + set protocol(protocol) { + if (this._isInvalid) return; + parse.call(this, protocol + ":", "scheme start"); + }, + get host() { + return this._isInvalid ? "" : this._port ? this._host + ":" + this._port : this._host; + }, + set host(host) { + if (this._isInvalid || !this._isRelative) return; + parse.call(this, host, "host"); + }, + get hostname() { + return this._host; + }, + set hostname(hostname) { + if (this._isInvalid || !this._isRelative) return; + parse.call(this, hostname, "hostname"); + }, + get port() { + return this._port; + }, + set port(port) { + if (this._isInvalid || !this._isRelative) return; + parse.call(this, port, "port"); + }, + get pathname() { + return this._isInvalid ? "" : this._isRelative ? "/" + this._path.join("/") : this._schemeData; + }, + set pathname(pathname) { + if (this._isInvalid || !this._isRelative) return; + this._path = []; + parse.call(this, pathname, "relative path start"); + }, + get search() { + return this._isInvalid || !this._query || "?" == this._query ? "" : this._query; + }, + set search(search) { + if (this._isInvalid || !this._isRelative) return; + this._query = "?"; + if ("?" == search[0]) search = search.slice(1); + parse.call(this, search, "query"); + }, + get hash() { + return this._isInvalid || !this._fragment || "#" == this._fragment ? "" : this._fragment; + }, + set hash(hash) { + if (this._isInvalid) return; + this._fragment = "#"; + if ("#" == hash[0]) hash = hash.slice(1); + parse.call(this, hash, "fragment"); + }, + get origin() { + var host; + if (this._isInvalid || !this._scheme) { + return ""; + } + switch (this._scheme) { + case "data": + case "file": + case "javascript": + case "mailto": + return "null"; + } + host = this.host; + if (!host) { + return ""; + } + return this._scheme + "://" + host; + } + }; + var OriginalURL = scope.URL; + if (OriginalURL) { + jURL.createObjectURL = function(blob) { + return OriginalURL.createObjectURL.apply(OriginalURL, arguments); + }; + jURL.revokeObjectURL = function(url) { + OriginalURL.revokeObjectURL(url); + }; + } + scope.URL = jURL; +})(self); + +(function(global) { + if (global.JsMutationObserver) { + return; + } + var registrationsTable = new WeakMap(); + var setImmediate; + if (/Trident|Edge/.test(navigator.userAgent)) { + setImmediate = setTimeout; + } else if (window.setImmediate) { + setImmediate = window.setImmediate; + } else { + var setImmediateQueue = []; + var sentinel = String(Math.random()); + window.addEventListener("message", function(e) { + if (e.data === sentinel) { + var queue = setImmediateQueue; + setImmediateQueue = []; + queue.forEach(function(func) { + func(); + }); + } + }); + setImmediate = function(func) { + setImmediateQueue.push(func); + window.postMessage(sentinel, "*"); + }; + } + var isScheduled = false; + var scheduledObservers = []; + function scheduleCallback(observer) { + scheduledObservers.push(observer); + if (!isScheduled) { + isScheduled = true; + setImmediate(dispatchCallbacks); + } + } + function wrapIfNeeded(node) { + return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; + } + function dispatchCallbacks() { + isScheduled = false; + var observers = scheduledObservers; + scheduledObservers = []; + observers.sort(function(o1, o2) { + return o1.uid_ - o2.uid_; + }); + var anyNonEmpty = false; + observers.forEach(function(observer) { + var queue = observer.takeRecords(); + removeTransientObserversFor(observer); + if (queue.length) { + observer.callback_(queue, observer); + anyNonEmpty = true; + } + }); + if (anyNonEmpty) dispatchCallbacks(); + } + function removeTransientObserversFor(observer) { + observer.nodes_.forEach(function(node) { + var registrations = registrationsTable.get(node); + if (!registrations) return; + registrations.forEach(function(registration) { + if (registration.observer === observer) registration.removeTransientObservers(); + }); + }); + } + function forEachAncestorAndObserverEnqueueRecord(target, callback) { + for (var node = target; node; node = node.parentNode) { + var registrations = registrationsTable.get(node); + if (registrations) { + for (var j = 0; j < registrations.length; j++) { + var registration = registrations[j]; + var options = registration.options; + if (node !== target && !options.subtree) continue; + var record = callback(options); + if (record) registration.enqueue(record); + } + } + } + } + var uidCounter = 0; + function JsMutationObserver(callback) { + this.callback_ = callback; + this.nodes_ = []; + this.records_ = []; + this.uid_ = ++uidCounter; + } + JsMutationObserver.prototype = { + observe: function(target, options) { + target = wrapIfNeeded(target); + if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { + throw new SyntaxError(); + } + var registrations = registrationsTable.get(target); + if (!registrations) registrationsTable.set(target, registrations = []); + var registration; + for (var i = 0; i < registrations.length; i++) { + if (registrations[i].observer === this) { + registration = registrations[i]; + registration.removeListeners(); + registration.options = options; + break; + } + } + if (!registration) { + registration = new Registration(this, target, options); + registrations.push(registration); + this.nodes_.push(target); + } + registration.addListeners(); + }, + disconnect: function() { + this.nodes_.forEach(function(node) { + var registrations = registrationsTable.get(node); + for (var i = 0; i < registrations.length; i++) { + var registration = registrations[i]; + if (registration.observer === this) { + registration.removeListeners(); + registrations.splice(i, 1); + break; + } + } + }, this); + this.records_ = []; + }, + takeRecords: function() { + var copyOfRecords = this.records_; + this.records_ = []; + return copyOfRecords; + } + }; + function MutationRecord(type, target) { + this.type = type; + this.target = target; + this.addedNodes = []; + this.removedNodes = []; + this.previousSibling = null; + this.nextSibling = null; + this.attributeName = null; + this.attributeNamespace = null; + this.oldValue = null; + } + function copyMutationRecord(original) { + var record = new MutationRecord(original.type, original.target); + record.addedNodes = original.addedNodes.slice(); + record.removedNodes = original.removedNodes.slice(); + record.previousSibling = original.previousSibling; + record.nextSibling = original.nextSibling; + record.attributeName = original.attributeName; + record.attributeNamespace = original.attributeNamespace; + record.oldValue = original.oldValue; + return record; + } + var currentRecord, recordWithOldValue; + function getRecord(type, target) { + return currentRecord = new MutationRecord(type, target); + } + function getRecordWithOldValue(oldValue) { + if (recordWithOldValue) return recordWithOldValue; + recordWithOldValue = copyMutationRecord(currentRecord); + recordWithOldValue.oldValue = oldValue; + return recordWithOldValue; + } + function clearRecords() { + currentRecord = recordWithOldValue = undefined; + } + function recordRepresentsCurrentMutation(record) { + return record === recordWithOldValue || record === currentRecord; + } + function selectRecord(lastRecord, newRecord) { + if (lastRecord === newRecord) return lastRecord; + if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; + return null; + } + function Registration(observer, target, options) { + this.observer = observer; + this.target = target; + this.options = options; + this.transientObservedNodes = []; + } + Registration.prototype = { + enqueue: function(record) { + var records = this.observer.records_; + var length = records.length; + if (records.length > 0) { + var lastRecord = records[length - 1]; + var recordToReplaceLast = selectRecord(lastRecord, record); + if (recordToReplaceLast) { + records[length - 1] = recordToReplaceLast; + return; + } + } else { + scheduleCallback(this.observer); + } + records[length] = record; + }, + addListeners: function() { + this.addListeners_(this.target); + }, + addListeners_: function(node) { + var options = this.options; + if (options.attributes) node.addEventListener("DOMAttrModified", this, true); + if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); + if (options.childList) node.addEventListener("DOMNodeInserted", this, true); + if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); + }, + removeListeners: function() { + this.removeListeners_(this.target); + }, + removeListeners_: function(node) { + var options = this.options; + if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); + if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); + if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); + if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); + }, + addTransientObserver: function(node) { + if (node === this.target) return; + this.addListeners_(node); + this.transientObservedNodes.push(node); + var registrations = registrationsTable.get(node); + if (!registrations) registrationsTable.set(node, registrations = []); + registrations.push(this); + }, + removeTransientObservers: function() { + var transientObservedNodes = this.transientObservedNodes; + this.transientObservedNodes = []; + transientObservedNodes.forEach(function(node) { + this.removeListeners_(node); + var registrations = registrationsTable.get(node); + for (var i = 0; i < registrations.length; i++) { + if (registrations[i] === this) { + registrations.splice(i, 1); + break; + } + } + }, this); + }, + handleEvent: function(e) { + e.stopImmediatePropagation(); + switch (e.type) { + case "DOMAttrModified": + var name = e.attrName; + var namespace = e.relatedNode.namespaceURI; + var target = e.target; + var record = new getRecord("attributes", target); + record.attributeName = name; + record.attributeNamespace = namespace; + var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; + forEachAncestorAndObserverEnqueueRecord(target, function(options) { + if (!options.attributes) return; + if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { + return; + } + if (options.attributeOldValue) return getRecordWithOldValue(oldValue); + return record; + }); + break; + + case "DOMCharacterDataModified": + var target = e.target; + var record = getRecord("characterData", target); + var oldValue = e.prevValue; + forEachAncestorAndObserverEnqueueRecord(target, function(options) { + if (!options.characterData) return; + if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); + return record; + }); + break; + + case "DOMNodeRemoved": + this.addTransientObserver(e.target); + + case "DOMNodeInserted": + var changedNode = e.target; + var addedNodes, removedNodes; + if (e.type === "DOMNodeInserted") { + addedNodes = [ changedNode ]; + removedNodes = []; + } else { + addedNodes = []; + removedNodes = [ changedNode ]; + } + var previousSibling = changedNode.previousSibling; + var nextSibling = changedNode.nextSibling; + var record = getRecord("childList", e.target.parentNode); + record.addedNodes = addedNodes; + record.removedNodes = removedNodes; + record.previousSibling = previousSibling; + record.nextSibling = nextSibling; + forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { + if (!options.childList) return; + return record; + }); + } + clearRecords(); + } + }; + global.JsMutationObserver = JsMutationObserver; + if (!global.MutationObserver) { + global.MutationObserver = JsMutationObserver; + JsMutationObserver._isPolyfilled = true; + } +})(self); + +(function(scope) { + "use strict"; + if (!(window.performance && window.performance.now)) { + var start = Date.now(); + window.performance = { + now: function() { + return Date.now() - start; + } + }; + } + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = function() { + var nativeRaf = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; + return nativeRaf ? function(callback) { + return nativeRaf(function() { + callback(performance.now()); + }); + } : function(callback) { + return window.setTimeout(callback, 1e3 / 60); + }; + }(); + } + if (!window.cancelAnimationFrame) { + window.cancelAnimationFrame = function() { + return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function(id) { + clearTimeout(id); + }; + }(); + } + var workingDefaultPrevented = function() { + var e = document.createEvent("Event"); + e.initEvent("foo", true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); + if (!workingDefaultPrevented) { + var origPreventDefault = Event.prototype.preventDefault; + Event.prototype.preventDefault = function() { + if (!this.cancelable) { + return; + } + origPreventDefault.call(this); + Object.defineProperty(this, "defaultPrevented", { + get: function() { + return true; + }, + configurable: true + }); + }; + } + var isIE = /Trident/.test(navigator.userAgent); + if (!window.CustomEvent || isIE && typeof window.CustomEvent !== "function") { + window.CustomEvent = function(inType, params) { + params = params || {}; + var e = document.createEvent("CustomEvent"); + e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); + return e; + }; + window.CustomEvent.prototype = window.Event.prototype; + } + if (!window.Event || isIE && typeof window.Event !== "function") { + var origEvent = window.Event; + window.Event = function(inType, params) { + params = params || {}; + var e = document.createEvent("Event"); + e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable)); + return e; + }; + window.Event.prototype = origEvent.prototype; + } +})(window.WebComponents); + +window.HTMLImports = window.HTMLImports || { + flags: {} +}; + +(function(scope) { + var IMPORT_LINK_TYPE = "import"; + var useNative = Boolean(IMPORT_LINK_TYPE in document.createElement("link")); + var hasShadowDOMPolyfill = Boolean(window.ShadowDOMPolyfill); + var wrap = function(node) { + return hasShadowDOMPolyfill ? window.ShadowDOMPolyfill.wrapIfNeeded(node) : node; + }; + var rootDocument = wrap(document); + var currentScriptDescriptor = { + get: function() { + var script = window.HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null); + return wrap(script); + }, + configurable: true + }; + Object.defineProperty(document, "_currentScript", currentScriptDescriptor); + Object.defineProperty(rootDocument, "_currentScript", currentScriptDescriptor); + var isIE = /Trident/.test(navigator.userAgent); + function whenReady(callback, doc) { + doc = doc || rootDocument; + whenDocumentReady(function() { + watchImportsLoad(callback, doc); + }, doc); + } + var requiredReadyState = isIE ? "complete" : "interactive"; + var READY_EVENT = "readystatechange"; + function isDocumentReady(doc) { + return doc.readyState === "complete" || doc.readyState === requiredReadyState; + } + function whenDocumentReady(callback, doc) { + if (!isDocumentReady(doc)) { + var checkReady = function() { + if (doc.readyState === "complete" || doc.readyState === requiredReadyState) { + doc.removeEventListener(READY_EVENT, checkReady); + whenDocumentReady(callback, doc); + } + }; + doc.addEventListener(READY_EVENT, checkReady); + } else if (callback) { + callback(); + } + } + function markTargetLoaded(event) { + event.target.__loaded = true; + } + function watchImportsLoad(callback, doc) { + var imports = doc.querySelectorAll("link[rel=import]"); + var parsedCount = 0, importCount = imports.length, newImports = [], errorImports = []; + function checkDone() { + if (parsedCount == importCount && callback) { + callback({ + allImports: imports, + loadedImports: newImports, + errorImports: errorImports + }); + } + } + function loadedImport(e) { + markTargetLoaded(e); + newImports.push(this); + parsedCount++; + checkDone(); + } + function errorLoadingImport(e) { + errorImports.push(this); + parsedCount++; + checkDone(); + } + if (importCount) { + for (var i = 0, imp; i < importCount && (imp = imports[i]); i++) { + if (isImportLoaded(imp)) { + newImports.push(this); + parsedCount++; + checkDone(); + } else { + imp.addEventListener("load", loadedImport); + imp.addEventListener("error", errorLoadingImport); + } + } + } else { + checkDone(); + } + } + function isImportLoaded(link) { + return useNative ? link.__loaded || link.import && link.import.readyState !== "loading" : link.__importParsed; + } + if (useNative) { + new MutationObserver(function(mxns) { + for (var i = 0, l = mxns.length, m; i < l && (m = mxns[i]); i++) { + if (m.addedNodes) { + handleImports(m.addedNodes); + } + } + }).observe(document.head, { + childList: true + }); + function handleImports(nodes) { + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + if (isImport(n)) { + handleImport(n); + } + } + } + function isImport(element) { + return element.localName === "link" && element.rel === "import"; + } + function handleImport(element) { + var loaded = element.import; + if (loaded) { + markTargetLoaded({ + target: element + }); + } else { + element.addEventListener("load", markTargetLoaded); + element.addEventListener("error", markTargetLoaded); + } + } + (function() { + if (document.readyState === "loading") { + var imports = document.querySelectorAll("link[rel=import]"); + for (var i = 0, l = imports.length, imp; i < l && (imp = imports[i]); i++) { + handleImport(imp); + } + } + })(); + } + whenReady(function(detail) { + window.HTMLImports.ready = true; + window.HTMLImports.readyTime = new Date().getTime(); + var evt = rootDocument.createEvent("CustomEvent"); + evt.initCustomEvent("HTMLImportsLoaded", true, true, detail); + rootDocument.dispatchEvent(evt); + }); + scope.IMPORT_LINK_TYPE = IMPORT_LINK_TYPE; + scope.useNative = useNative; + scope.rootDocument = rootDocument; + scope.whenReady = whenReady; + scope.isIE = isIE; +})(window.HTMLImports); + +(function(scope) { + var modules = []; + var addModule = function(module) { + modules.push(module); + }; + var initializeModules = function() { + modules.forEach(function(module) { + module(scope); + }); + }; + scope.addModule = addModule; + scope.initializeModules = initializeModules; +})(window.HTMLImports); + +window.HTMLImports.addModule(function(scope) { + var CSS_URL_REGEXP = /(url\()([^)]*)(\))/g; + var CSS_IMPORT_REGEXP = /(@import[\s]+(?!url\())([^;]*)(;)/g; + var path = { + resolveUrlsInStyle: function(style, linkUrl) { + var doc = style.ownerDocument; + var resolver = doc.createElement("a"); + style.textContent = this.resolveUrlsInCssText(style.textContent, linkUrl, resolver); + return style; + }, + resolveUrlsInCssText: function(cssText, linkUrl, urlObj) { + var r = this.replaceUrls(cssText, urlObj, linkUrl, CSS_URL_REGEXP); + r = this.replaceUrls(r, urlObj, linkUrl, CSS_IMPORT_REGEXP); + return r; + }, + replaceUrls: function(text, urlObj, linkUrl, regexp) { + return text.replace(regexp, function(m, pre, url, post) { + var urlPath = url.replace(/["']/g, ""); + if (linkUrl) { + urlPath = new URL(urlPath, linkUrl).href; + } + urlObj.href = urlPath; + urlPath = urlObj.href; + return pre + "'" + urlPath + "'" + post; + }); + } + }; + scope.path = path; +}); + +window.HTMLImports.addModule(function(scope) { + var xhr = { + async: true, + ok: function(request) { + return request.status >= 200 && request.status < 300 || request.status === 304 || request.status === 0; + }, + load: function(url, next, nextContext) { + var request = new XMLHttpRequest(); + if (scope.flags.debug || scope.flags.bust) { + url += "?" + Math.random(); + } + request.open("GET", url, xhr.async); + request.addEventListener("readystatechange", function(e) { + if (request.readyState === 4) { + var redirectedUrl = null; + try { + var locationHeader = request.getResponseHeader("Location"); + if (locationHeader) { + redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader; + } + } catch (e) { + console.error(e.message); + } + next.call(nextContext, !xhr.ok(request) && request, request.response || request.responseText, redirectedUrl); + } + }); + request.send(); + return request; + }, + loadDocument: function(url, next, nextContext) { + this.load(url, next, nextContext).responseType = "document"; + } + }; + scope.xhr = xhr; +}); + +window.HTMLImports.addModule(function(scope) { + var xhr = scope.xhr; + var flags = scope.flags; + var Loader = function(onLoad, onComplete) { + this.cache = {}; + this.onload = onLoad; + this.oncomplete = onComplete; + this.inflight = 0; + this.pending = {}; + }; + Loader.prototype = { + addNodes: function(nodes) { + this.inflight += nodes.length; + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + this.require(n); + } + this.checkDone(); + }, + addNode: function(node) { + this.inflight++; + this.require(node); + this.checkDone(); + }, + require: function(elt) { + var url = elt.src || elt.href; + elt.__nodeUrl = url; + if (!this.dedupe(url, elt)) { + this.fetch(url, elt); + } + }, + dedupe: function(url, elt) { + if (this.pending[url]) { + this.pending[url].push(elt); + return true; + } + var resource; + if (this.cache[url]) { + this.onload(url, elt, this.cache[url]); + this.tail(); + return true; + } + this.pending[url] = [ elt ]; + return false; + }, + fetch: function(url, elt) { + flags.load && console.log("fetch", url, elt); + if (!url) { + setTimeout(function() { + this.receive(url, elt, { + error: "href must be specified" + }, null); + }.bind(this), 0); + } else if (url.match(/^data:/)) { + var pieces = url.split(","); + var header = pieces[0]; + var body = pieces[1]; + if (header.indexOf(";base64") > -1) { + body = atob(body); + } else { + body = decodeURIComponent(body); + } + setTimeout(function() { + this.receive(url, elt, null, body); + }.bind(this), 0); + } else { + var receiveXhr = function(err, resource, redirectedUrl) { + this.receive(url, elt, err, resource, redirectedUrl); + }.bind(this); + xhr.load(url, receiveXhr); + } + }, + receive: function(url, elt, err, resource, redirectedUrl) { + this.cache[url] = resource; + var $p = this.pending[url]; + for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { + this.onload(url, p, resource, err, redirectedUrl); + this.tail(); + } + this.pending[url] = null; + }, + tail: function() { + --this.inflight; + this.checkDone(); + }, + checkDone: function() { + if (!this.inflight) { + this.oncomplete(); + } + } + }; + scope.Loader = Loader; +}); + +window.HTMLImports.addModule(function(scope) { + var Observer = function(addCallback) { + this.addCallback = addCallback; + this.mo = new MutationObserver(this.handler.bind(this)); + }; + Observer.prototype = { + handler: function(mutations) { + for (var i = 0, l = mutations.length, m; i < l && (m = mutations[i]); i++) { + if (m.type === "childList" && m.addedNodes.length) { + this.addedNodes(m.addedNodes); + } + } + }, + addedNodes: function(nodes) { + if (this.addCallback) { + this.addCallback(nodes); + } + for (var i = 0, l = nodes.length, n, loading; i < l && (n = nodes[i]); i++) { + if (n.children && n.children.length) { + this.addedNodes(n.children); + } + } + }, + observe: function(root) { + this.mo.observe(root, { + childList: true, + subtree: true + }); + } + }; + scope.Observer = Observer; +}); + +window.HTMLImports.addModule(function(scope) { + var path = scope.path; + var rootDocument = scope.rootDocument; + var flags = scope.flags; + var isIE = scope.isIE; + var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; + var IMPORT_SELECTOR = "link[rel=" + IMPORT_LINK_TYPE + "]"; + var importParser = { + documentSelectors: IMPORT_SELECTOR, + importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]:not([type])", "style:not([type])", "script:not([type])", 'script[type="application/javascript"]', 'script[type="text/javascript"]' ].join(","), + map: { + link: "parseLink", + script: "parseScript", + style: "parseStyle" + }, + dynamicElements: [], + parseNext: function() { + var next = this.nextToParse(); + if (next) { + this.parse(next); + } + }, + parse: function(elt) { + if (this.isParsed(elt)) { + flags.parse && console.log("[%s] is already parsed", elt.localName); + return; + } + var fn = this[this.map[elt.localName]]; + if (fn) { + this.markParsing(elt); + fn.call(this, elt); + } + }, + parseDynamic: function(elt, quiet) { + this.dynamicElements.push(elt); + if (!quiet) { + this.parseNext(); + } + }, + markParsing: function(elt) { + flags.parse && console.log("parsing", elt); + this.parsingElement = elt; + }, + markParsingComplete: function(elt) { + elt.__importParsed = true; + this.markDynamicParsingComplete(elt); + if (elt.__importElement) { + elt.__importElement.__importParsed = true; + this.markDynamicParsingComplete(elt.__importElement); + } + this.parsingElement = null; + flags.parse && console.log("completed", elt); + }, + markDynamicParsingComplete: function(elt) { + var i = this.dynamicElements.indexOf(elt); + if (i >= 0) { + this.dynamicElements.splice(i, 1); + } + }, + parseImport: function(elt) { + elt.import = elt.__doc; + if (window.HTMLImports.__importsParsingHook) { + window.HTMLImports.__importsParsingHook(elt); + } + if (elt.import) { + elt.import.__importParsed = true; + } + this.markParsingComplete(elt); + if (elt.__resource && !elt.__error) { + elt.dispatchEvent(new CustomEvent("load", { + bubbles: false + })); + } else { + elt.dispatchEvent(new CustomEvent("error", { + bubbles: false + })); + } + if (elt.__pending) { + var fn; + while (elt.__pending.length) { + fn = elt.__pending.shift(); + if (fn) { + fn({ + target: elt + }); + } + } + } + this.parseNext(); + }, + parseLink: function(linkElt) { + if (nodeIsImport(linkElt)) { + this.parseImport(linkElt); + } else { + linkElt.href = linkElt.href; + this.parseGeneric(linkElt); + } + }, + parseStyle: function(elt) { + var src = elt; + elt = cloneStyle(elt); + src.__appliedElement = elt; + elt.__importElement = src; + this.parseGeneric(elt); + }, + parseGeneric: function(elt) { + this.trackElement(elt); + this.addElementToDocument(elt); + }, + rootImportForElement: function(elt) { + var n = elt; + while (n.ownerDocument.__importLink) { + n = n.ownerDocument.__importLink; + } + return n; + }, + addElementToDocument: function(elt) { + var port = this.rootImportForElement(elt.__importElement || elt); + port.parentNode.insertBefore(elt, port); + }, + trackElement: function(elt, callback) { + var self = this; + var done = function(e) { + elt.removeEventListener("load", done); + elt.removeEventListener("error", done); + if (callback) { + callback(e); + } + self.markParsingComplete(elt); + self.parseNext(); + }; + elt.addEventListener("load", done); + elt.addEventListener("error", done); + if (isIE && elt.localName === "style") { + var fakeLoad = false; + if (elt.textContent.indexOf("@import") == -1) { + fakeLoad = true; + } else if (elt.sheet) { + fakeLoad = true; + var csr = elt.sheet.cssRules; + var len = csr ? csr.length : 0; + for (var i = 0, r; i < len && (r = csr[i]); i++) { + if (r.type === CSSRule.IMPORT_RULE) { + fakeLoad = fakeLoad && Boolean(r.styleSheet); + } + } + } + if (fakeLoad) { + setTimeout(function() { + elt.dispatchEvent(new CustomEvent("load", { + bubbles: false + })); + }); + } + } + }, + parseScript: function(scriptElt) { + var script = document.createElement("script"); + script.__importElement = scriptElt; + script.src = scriptElt.src ? scriptElt.src : generateScriptDataUrl(scriptElt); + scope.currentScript = scriptElt; + this.trackElement(script, function(e) { + if (script.parentNode) { + script.parentNode.removeChild(script); + } + scope.currentScript = null; + }); + this.addElementToDocument(script); + }, + nextToParse: function() { + this._mayParse = []; + return !this.parsingElement && (this.nextToParseInDoc(rootDocument) || this.nextToParseDynamic()); + }, + nextToParseInDoc: function(doc, link) { + if (doc && this._mayParse.indexOf(doc) < 0) { + this._mayParse.push(doc); + var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc)); + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + if (!this.isParsed(n)) { + if (this.hasResource(n)) { + return nodeIsImport(n) ? this.nextToParseInDoc(n.__doc, n) : n; + } else { + return; + } + } + } + } + return link; + }, + nextToParseDynamic: function() { + return this.dynamicElements[0]; + }, + parseSelectorsForNode: function(node) { + var doc = node.ownerDocument || node; + return doc === rootDocument ? this.documentSelectors : this.importsSelectors; + }, + isParsed: function(node) { + return node.__importParsed; + }, + needsDynamicParsing: function(elt) { + return this.dynamicElements.indexOf(elt) >= 0; + }, + hasResource: function(node) { + if (nodeIsImport(node) && node.__doc === undefined) { + return false; + } + return true; + } + }; + function nodeIsImport(elt) { + return elt.localName === "link" && elt.rel === IMPORT_LINK_TYPE; + } + function generateScriptDataUrl(script) { + var scriptContent = generateScriptContent(script); + return "data:text/javascript;charset=utf-8," + encodeURIComponent(scriptContent); + } + function generateScriptContent(script) { + return script.textContent + generateSourceMapHint(script); + } + function generateSourceMapHint(script) { + var owner = script.ownerDocument; + owner.__importedScripts = owner.__importedScripts || 0; + var moniker = script.ownerDocument.baseURI; + var num = owner.__importedScripts ? "-" + owner.__importedScripts : ""; + owner.__importedScripts++; + return "\n//# sourceURL=" + moniker + num + ".js\n"; + } + function cloneStyle(style) { + var clone = style.ownerDocument.createElement("style"); + clone.textContent = style.textContent; + path.resolveUrlsInStyle(clone); + return clone; + } + scope.parser = importParser; + scope.IMPORT_SELECTOR = IMPORT_SELECTOR; +}); + +window.HTMLImports.addModule(function(scope) { + var flags = scope.flags; + var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; + var IMPORT_SELECTOR = scope.IMPORT_SELECTOR; + var rootDocument = scope.rootDocument; + var Loader = scope.Loader; + var Observer = scope.Observer; + var parser = scope.parser; + var importer = { + documents: {}, + documentPreloadSelectors: IMPORT_SELECTOR, + importsPreloadSelectors: [ IMPORT_SELECTOR ].join(","), + loadNode: function(node) { + importLoader.addNode(node); + }, + loadSubtree: function(parent) { + var nodes = this.marshalNodes(parent); + importLoader.addNodes(nodes); + }, + marshalNodes: function(parent) { + return parent.querySelectorAll(this.loadSelectorsForNode(parent)); + }, + loadSelectorsForNode: function(node) { + var doc = node.ownerDocument || node; + return doc === rootDocument ? this.documentPreloadSelectors : this.importsPreloadSelectors; + }, + loaded: function(url, elt, resource, err, redirectedUrl) { + flags.load && console.log("loaded", url, elt); + elt.__resource = resource; + elt.__error = err; + if (isImportLink(elt)) { + var doc = this.documents[url]; + if (doc === undefined) { + doc = err ? null : makeDocument(resource, redirectedUrl || url); + if (doc) { + doc.__importLink = elt; + this.bootDocument(doc); + } + this.documents[url] = doc; + } + elt.__doc = doc; + } + parser.parseNext(); + }, + bootDocument: function(doc) { + this.loadSubtree(doc); + this.observer.observe(doc); + parser.parseNext(); + }, + loadedAll: function() { + parser.parseNext(); + } + }; + var importLoader = new Loader(importer.loaded.bind(importer), importer.loadedAll.bind(importer)); + importer.observer = new Observer(); + function isImportLink(elt) { + return isLinkRel(elt, IMPORT_LINK_TYPE); + } + function isLinkRel(elt, rel) { + return elt.localName === "link" && elt.getAttribute("rel") === rel; + } + function hasBaseURIAccessor(doc) { + return !!Object.getOwnPropertyDescriptor(doc, "baseURI"); + } + function makeDocument(resource, url) { + var doc = document.implementation.createHTMLDocument(IMPORT_LINK_TYPE); + doc._URL = url; + var base = doc.createElement("base"); + base.setAttribute("href", url); + if (!doc.baseURI && !hasBaseURIAccessor(doc)) { + Object.defineProperty(doc, "baseURI", { + value: url + }); + } + var meta = doc.createElement("meta"); + meta.setAttribute("charset", "utf-8"); + doc.head.appendChild(meta); + doc.head.appendChild(base); + doc.body.innerHTML = resource; + if (window.HTMLTemplateElement && HTMLTemplateElement.bootstrap) { + HTMLTemplateElement.bootstrap(doc); + } + return doc; + } + if (!document.baseURI) { + var baseURIDescriptor = { + get: function() { + var base = document.querySelector("base"); + return base ? base.href : window.location.href; + }, + configurable: true + }; + Object.defineProperty(document, "baseURI", baseURIDescriptor); + Object.defineProperty(rootDocument, "baseURI", baseURIDescriptor); + } + scope.importer = importer; + scope.importLoader = importLoader; +}); + +window.HTMLImports.addModule(function(scope) { + var parser = scope.parser; + var importer = scope.importer; + var dynamic = { + added: function(nodes) { + var owner, parsed, loading; + for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { + if (!owner) { + owner = n.ownerDocument; + parsed = parser.isParsed(owner); + } + loading = this.shouldLoadNode(n); + if (loading) { + importer.loadNode(n); + } + if (this.shouldParseNode(n) && parsed) { + parser.parseDynamic(n, loading); + } + } + }, + shouldLoadNode: function(node) { + return node.nodeType === 1 && matches.call(node, importer.loadSelectorsForNode(node)); + }, + shouldParseNode: function(node) { + return node.nodeType === 1 && matches.call(node, parser.parseSelectorsForNode(node)); + } + }; + importer.observer.addCallback = dynamic.added.bind(dynamic); + var matches = HTMLElement.prototype.matches || HTMLElement.prototype.matchesSelector || HTMLElement.prototype.webkitMatchesSelector || HTMLElement.prototype.mozMatchesSelector || HTMLElement.prototype.msMatchesSelector; +}); + +(function(scope) { + var initializeModules = scope.initializeModules; + var isIE = scope.isIE; + if (scope.useNative) { + return; + } + initializeModules(); + var rootDocument = scope.rootDocument; + function bootstrap() { + window.HTMLImports.importer.bootDocument(rootDocument); + } + if (document.readyState === "complete" || document.readyState === "interactive" && !window.attachEvent) { + bootstrap(); + } else { + document.addEventListener("DOMContentLoaded", bootstrap); + } +})(window.HTMLImports); + +window.CustomElements = window.CustomElements || { + flags: {} +}; + +(function(scope) { + var flags = scope.flags; + var modules = []; + var addModule = function(module) { + modules.push(module); + }; + var initializeModules = function() { + modules.forEach(function(module) { + module(scope); + }); + }; + scope.addModule = addModule; + scope.initializeModules = initializeModules; + scope.hasNative = Boolean(document.registerElement); + scope.isIE = /Trident/.test(navigator.userAgent); + scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative); +})(window.CustomElements); + +window.CustomElements.addModule(function(scope) { + var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none"; + function forSubtree(node, cb) { + findAllElements(node, function(e) { + if (cb(e)) { + return true; + } + forRoots(e, cb); + }); + forRoots(node, cb); + } + function findAllElements(node, find, data) { + var e = node.firstElementChild; + if (!e) { + e = node.firstChild; + while (e && e.nodeType !== Node.ELEMENT_NODE) { + e = e.nextSibling; + } + } + while (e) { + if (find(e, data) !== true) { + findAllElements(e, find, data); + } + e = e.nextElementSibling; + } + return null; + } + function forRoots(node, cb) { + var root = node.shadowRoot; + while (root) { + forSubtree(root, cb); + root = root.olderShadowRoot; + } + } + function forDocumentTree(doc, cb) { + _forDocumentTree(doc, cb, []); + } + function _forDocumentTree(doc, cb, processingDocuments) { + doc = window.wrap(doc); + if (processingDocuments.indexOf(doc) >= 0) { + return; + } + processingDocuments.push(doc); + var imports = doc.querySelectorAll("link[rel=" + IMPORT_LINK_TYPE + "]"); + for (var i = 0, l = imports.length, n; i < l && (n = imports[i]); i++) { + if (n.import) { + _forDocumentTree(n.import, cb, processingDocuments); + } + } + cb(doc); + } + scope.forDocumentTree = forDocumentTree; + scope.forSubtree = forSubtree; +}); + +window.CustomElements.addModule(function(scope) { + var flags = scope.flags; + var forSubtree = scope.forSubtree; + var forDocumentTree = scope.forDocumentTree; + function addedNode(node, isAttached) { + return added(node, isAttached) || addedSubtree(node, isAttached); + } + function added(node, isAttached) { + if (scope.upgrade(node, isAttached)) { + return true; + } + if (isAttached) { + attached(node); + } + } + function addedSubtree(node, isAttached) { + forSubtree(node, function(e) { + if (added(e, isAttached)) { + return true; + } + }); + } + var hasThrottledAttached = window.MutationObserver._isPolyfilled && flags["throttle-attached"]; + scope.hasPolyfillMutations = hasThrottledAttached; + scope.hasThrottledAttached = hasThrottledAttached; + var isPendingMutations = false; + var pendingMutations = []; + function deferMutation(fn) { + pendingMutations.push(fn); + if (!isPendingMutations) { + isPendingMutations = true; + setTimeout(takeMutations); + } + } + function takeMutations() { + isPendingMutations = false; + var $p = pendingMutations; + for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { + p(); + } + pendingMutations = []; + } + function attached(element) { + if (hasThrottledAttached) { + deferMutation(function() { + _attached(element); + }); + } else { + _attached(element); + } + } + function _attached(element) { + if (element.__upgraded__ && !element.__attached) { + element.__attached = true; + if (element.attachedCallback) { + element.attachedCallback(); + } + } + } + function detachedNode(node) { + detached(node); + forSubtree(node, function(e) { + detached(e); + }); + } + function detached(element) { + if (hasThrottledAttached) { + deferMutation(function() { + _detached(element); + }); + } else { + _detached(element); + } + } + function _detached(element) { + if (element.__upgraded__ && element.__attached) { + element.__attached = false; + if (element.detachedCallback) { + element.detachedCallback(); + } + } + } + function inDocument(element) { + var p = element; + var doc = window.wrap(document); + while (p) { + if (p == doc) { + return true; + } + p = p.parentNode || p.nodeType === Node.DOCUMENT_FRAGMENT_NODE && p.host; + } + } + function watchShadow(node) { + if (node.shadowRoot && !node.shadowRoot.__watched) { + flags.dom && console.log("watching shadow-root for: ", node.localName); + var root = node.shadowRoot; + while (root) { + observe(root); + root = root.olderShadowRoot; + } + } + } + function handler(root, mutations) { + if (flags.dom) { + var mx = mutations[0]; + if (mx && mx.type === "childList" && mx.addedNodes) { + if (mx.addedNodes) { + var d = mx.addedNodes[0]; + while (d && d !== document && !d.host) { + d = d.parentNode; + } + var u = d && (d.URL || d._URL || d.host && d.host.localName) || ""; + u = u.split("/?").shift().split("/").pop(); + } + } + console.group("mutations (%d) [%s]", mutations.length, u || ""); + } + var isAttached = inDocument(root); + mutations.forEach(function(mx) { + if (mx.type === "childList") { + forEach(mx.addedNodes, function(n) { + if (!n.localName) { + return; + } + addedNode(n, isAttached); + }); + forEach(mx.removedNodes, function(n) { + if (!n.localName) { + return; + } + detachedNode(n); + }); + } + }); + flags.dom && console.groupEnd(); + } + function takeRecords(node) { + node = window.wrap(node); + if (!node) { + node = window.wrap(document); + } + while (node.parentNode) { + node = node.parentNode; + } + var observer = node.__observer; + if (observer) { + handler(node, observer.takeRecords()); + takeMutations(); + } + } + var forEach = Array.prototype.forEach.call.bind(Array.prototype.forEach); + function observe(inRoot) { + if (inRoot.__observer) { + return; + } + var observer = new MutationObserver(handler.bind(this, inRoot)); + observer.observe(inRoot, { + childList: true, + subtree: true + }); + inRoot.__observer = observer; + } + function upgradeDocument(doc) { + doc = window.wrap(doc); + flags.dom && console.group("upgradeDocument: ", doc.baseURI.split("/").pop()); + var isMainDocument = doc === window.wrap(document); + addedNode(doc, isMainDocument); + observe(doc); + flags.dom && console.groupEnd(); + } + function upgradeDocumentTree(doc) { + forDocumentTree(doc, upgradeDocument); + } + var originalCreateShadowRoot = Element.prototype.createShadowRoot; + if (originalCreateShadowRoot) { + Element.prototype.createShadowRoot = function() { + var root = originalCreateShadowRoot.call(this); + window.CustomElements.watchShadow(this); + return root; + }; + } + scope.watchShadow = watchShadow; + scope.upgradeDocumentTree = upgradeDocumentTree; + scope.upgradeDocument = upgradeDocument; + scope.upgradeSubtree = addedSubtree; + scope.upgradeAll = addedNode; + scope.attached = attached; + scope.takeRecords = takeRecords; +}); + +window.CustomElements.addModule(function(scope) { + var flags = scope.flags; + function upgrade(node, isAttached) { + if (node.localName === "template") { + if (window.HTMLTemplateElement && HTMLTemplateElement.decorate) { + HTMLTemplateElement.decorate(node); + } + } + if (!node.__upgraded__ && node.nodeType === Node.ELEMENT_NODE) { + var is = node.getAttribute("is"); + var definition = scope.getRegisteredDefinition(node.localName) || scope.getRegisteredDefinition(is); + if (definition) { + if (is && definition.tag == node.localName || !is && !definition.extends) { + return upgradeWithDefinition(node, definition, isAttached); + } + } + } + } + function upgradeWithDefinition(element, definition, isAttached) { + flags.upgrade && console.group("upgrade:", element.localName); + if (definition.is) { + element.setAttribute("is", definition.is); + } + implementPrototype(element, definition); + element.__upgraded__ = true; + created(element); + if (isAttached) { + scope.attached(element); + } + scope.upgradeSubtree(element, isAttached); + flags.upgrade && console.groupEnd(); + return element; + } + function implementPrototype(element, definition) { + if (Object.__proto__) { + element.__proto__ = definition.prototype; + } else { + customMixin(element, definition.prototype, definition.native); + element.__proto__ = definition.prototype; + } + } + function customMixin(inTarget, inSrc, inNative) { + var used = {}; + var p = inSrc; + while (p !== inNative && p !== HTMLElement.prototype) { + var keys = Object.getOwnPropertyNames(p); + for (var i = 0, k; k = keys[i]; i++) { + if (!used[k]) { + Object.defineProperty(inTarget, k, Object.getOwnPropertyDescriptor(p, k)); + used[k] = 1; + } + } + p = Object.getPrototypeOf(p); + } + } + function created(element) { + if (element.createdCallback) { + element.createdCallback(); + } + } + scope.upgrade = upgrade; + scope.upgradeWithDefinition = upgradeWithDefinition; + scope.implementPrototype = implementPrototype; +}); + +window.CustomElements.addModule(function(scope) { + var isIE = scope.isIE; + var upgradeDocumentTree = scope.upgradeDocumentTree; + var upgradeAll = scope.upgradeAll; + var upgradeWithDefinition = scope.upgradeWithDefinition; + var implementPrototype = scope.implementPrototype; + var useNative = scope.useNative; + function register(name, options) { + var definition = options || {}; + if (!name) { + throw new Error("document.registerElement: first argument `name` must not be empty"); + } + if (name.indexOf("-") < 0) { + throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '" + String(name) + "'."); + } + if (isReservedTag(name)) { + throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '" + String(name) + "'. The type name is invalid."); + } + if (getRegisteredDefinition(name)) { + throw new Error("DuplicateDefinitionError: a type with name '" + String(name) + "' is already registered"); + } + if (!definition.prototype) { + definition.prototype = Object.create(HTMLElement.prototype); + } + definition.__name = name.toLowerCase(); + if (definition.extends) { + definition.extends = definition.extends.toLowerCase(); + } + definition.lifecycle = definition.lifecycle || {}; + definition.ancestry = ancestry(definition.extends); + resolveTagName(definition); + resolvePrototypeChain(definition); + overrideAttributeApi(definition.prototype); + registerDefinition(definition.__name, definition); + definition.ctor = generateConstructor(definition); + definition.ctor.prototype = definition.prototype; + definition.prototype.constructor = definition.ctor; + if (scope.ready) { + upgradeDocumentTree(document); + } + return definition.ctor; + } + function overrideAttributeApi(prototype) { + if (prototype.setAttribute._polyfilled) { + return; + } + var setAttribute = prototype.setAttribute; + prototype.setAttribute = function(name, value) { + changeAttribute.call(this, name, value, setAttribute); + }; + var removeAttribute = prototype.removeAttribute; + prototype.removeAttribute = function(name) { + changeAttribute.call(this, name, null, removeAttribute); + }; + prototype.setAttribute._polyfilled = true; + } + function changeAttribute(name, value, operation) { + name = name.toLowerCase(); + var oldValue = this.getAttribute(name); + operation.apply(this, arguments); + var newValue = this.getAttribute(name); + if (this.attributeChangedCallback && newValue !== oldValue) { + this.attributeChangedCallback(name, oldValue, newValue); + } + } + function isReservedTag(name) { + for (var i = 0; i < reservedTagList.length; i++) { + if (name === reservedTagList[i]) { + return true; + } + } + } + var reservedTagList = [ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph" ]; + function ancestry(extnds) { + var extendee = getRegisteredDefinition(extnds); + if (extendee) { + return ancestry(extendee.extends).concat([ extendee ]); + } + return []; + } + function resolveTagName(definition) { + var baseTag = definition.extends; + for (var i = 0, a; a = definition.ancestry[i]; i++) { + baseTag = a.is && a.tag; + } + definition.tag = baseTag || definition.__name; + if (baseTag) { + definition.is = definition.__name; + } + } + function resolvePrototypeChain(definition) { + if (!Object.__proto__) { + var nativePrototype = HTMLElement.prototype; + if (definition.is) { + var inst = document.createElement(definition.tag); + nativePrototype = Object.getPrototypeOf(inst); + } + var proto = definition.prototype, ancestor; + var foundPrototype = false; + while (proto) { + if (proto == nativePrototype) { + foundPrototype = true; + } + ancestor = Object.getPrototypeOf(proto); + if (ancestor) { + proto.__proto__ = ancestor; + } + proto = ancestor; + } + if (!foundPrototype) { + console.warn(definition.tag + " prototype not found in prototype chain for " + definition.is); + } + definition.native = nativePrototype; + } + } + function instantiate(definition) { + return upgradeWithDefinition(domCreateElement(definition.tag), definition); + } + var registry = {}; + function getRegisteredDefinition(name) { + if (name) { + return registry[name.toLowerCase()]; + } + } + function registerDefinition(name, definition) { + registry[name] = definition; + } + function generateConstructor(definition) { + return function() { + return instantiate(definition); + }; + } + var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; + function createElementNS(namespace, tag, typeExtension) { + if (namespace === HTML_NAMESPACE) { + return createElement(tag, typeExtension); + } else { + return domCreateElementNS(namespace, tag); + } + } + function createElement(tag, typeExtension) { + if (tag) { + tag = tag.toLowerCase(); + } + if (typeExtension) { + typeExtension = typeExtension.toLowerCase(); + } + var definition = getRegisteredDefinition(typeExtension || tag); + if (definition) { + if (tag == definition.tag && typeExtension == definition.is) { + return new definition.ctor(); + } + if (!typeExtension && !definition.is) { + return new definition.ctor(); + } + } + var element; + if (typeExtension) { + element = createElement(tag); + element.setAttribute("is", typeExtension); + return element; + } + element = domCreateElement(tag); + if (tag.indexOf("-") >= 0) { + implementPrototype(element, HTMLElement); + } + return element; + } + var domCreateElement = document.createElement.bind(document); + var domCreateElementNS = document.createElementNS.bind(document); + var isInstance; + if (!Object.__proto__ && !useNative) { + isInstance = function(obj, ctor) { + if (obj instanceof ctor) { + return true; + } + var p = obj; + while (p) { + if (p === ctor.prototype) { + return true; + } + p = p.__proto__; + } + return false; + }; + } else { + isInstance = function(obj, base) { + return obj instanceof base; + }; + } + function wrapDomMethodToForceUpgrade(obj, methodName) { + var orig = obj[methodName]; + obj[methodName] = function() { + var n = orig.apply(this, arguments); + upgradeAll(n); + return n; + }; + } + wrapDomMethodToForceUpgrade(Node.prototype, "cloneNode"); + wrapDomMethodToForceUpgrade(document, "importNode"); + document.registerElement = register; + document.createElement = createElement; + document.createElementNS = createElementNS; + scope.registry = registry; + scope.instanceof = isInstance; + scope.reservedTagList = reservedTagList; + scope.getRegisteredDefinition = getRegisteredDefinition; + document.register = document.registerElement; +}); + +(function(scope) { + var useNative = scope.useNative; + var initializeModules = scope.initializeModules; + var isIE = scope.isIE; + if (useNative) { + var nop = function() {}; + scope.watchShadow = nop; + scope.upgrade = nop; + scope.upgradeAll = nop; + scope.upgradeDocumentTree = nop; + scope.upgradeSubtree = nop; + scope.takeRecords = nop; + scope.instanceof = function(obj, base) { + return obj instanceof base; + }; + } else { + initializeModules(); + } + var upgradeDocumentTree = scope.upgradeDocumentTree; + var upgradeDocument = scope.upgradeDocument; + if (!window.wrap) { + if (window.ShadowDOMPolyfill) { + window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded; + window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded; + } else { + window.wrap = window.unwrap = function(node) { + return node; + }; + } + } + if (window.HTMLImports) { + window.HTMLImports.__importsParsingHook = function(elt) { + if (elt.import) { + upgradeDocument(wrap(elt.import)); + } + }; + } + function bootstrap() { + upgradeDocumentTree(window.wrap(document)); + window.CustomElements.ready = true; + var requestAnimationFrame = window.requestAnimationFrame || function(f) { + setTimeout(f, 16); + }; + requestAnimationFrame(function() { + setTimeout(function() { + window.CustomElements.readyTime = Date.now(); + if (window.HTMLImports) { + window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime; + } + document.dispatchEvent(new CustomEvent("WebComponentsReady", { + bubbles: true + })); + }); + }); + } + if (document.readyState === "complete" || scope.flags.eager) { + bootstrap(); + } else if (document.readyState === "interactive" && !window.attachEvent && (!window.HTMLImports || window.HTMLImports.ready)) { + bootstrap(); + } else { + var loadEvent = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded"; + window.addEventListener(loadEvent, bootstrap); + } +})(window.CustomElements); + +(function(scope) { + if (!Function.prototype.bind) { + Function.prototype.bind = function(scope) { + var self = this; + var args = Array.prototype.slice.call(arguments, 1); + return function() { + var args2 = args.slice(); + args2.push.apply(args2, arguments); + return self.apply(scope, args2); + }; + }; + } +})(window.WebComponents); + +(function(scope) { + var style = document.createElement("style"); + style.textContent = "" + "body {" + "transition: opacity ease-in 0.2s;" + " } \n" + "body[unresolved] {" + "opacity: 0; display: block; overflow: hidden; position: relative;" + " } \n"; + var head = document.querySelector("head"); + head.insertBefore(style, head.firstChild); +})(window.WebComponents); + +(function(scope) { + window.Platform = scope; +})(window.WebComponents); \ No newline at end of file diff --git a/assets/js/webcomponents.min.js b/assets/js/webcomponents.min.js new file mode 100644 index 0000000..ad8196b --- /dev/null +++ b/assets/js/webcomponents.min.js @@ -0,0 +1,14 @@ +/** + * @license + * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * Code distributed by Google as part of the polymer project is also + * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +// @version 0.7.24 +!function(){window.WebComponents=window.WebComponents||{flags:{}};var e="webcomponents.js",t=document.querySelector('script[src*="'+e+'"]'),n={};if(!n.noOpts){if(location.search.slice(1).split("&").forEach(function(e){var t,r=e.split("=");r[0]&&(t=r[0].match(/wc-(.+)/))&&(n[t[1]]=r[1]||!0)}),t)for(var r,o=0;r=t.attributes[o];o++)"src"!==r.name&&(n[r.name]=r.value||!0);if(n.log&&n.log.split){var i=n.log.split(",");n.log={},i.forEach(function(e){n.log[e]=!0})}else n.log={}}n.shadow=n.shadow||n.shadowdom||n.polyfill,"native"===n.shadow?n.shadow=!1:n.shadow=n.shadow||!HTMLElement.prototype.createShadowRoot,n.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=n.register),WebComponents.flags=n}(),WebComponents.flags.shadow&&("undefined"==typeof WeakMap&&!function(){var e=Object.defineProperty,t=Date.now()%1e9,n=function(){this.name="__st"+(1e9*Math.random()>>>0)+(t++ +"__")};n.prototype={set:function(t,n){var r=t[this.name];return r&&r[0]===t?r[1]=n:e(t,this.name,{value:[t,n],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},"delete":function(e){var t=e[this.name];return!(!t||t[0]!==e)&&(t[0]=t[1]=void 0,!0)},has:function(e){var t=e[this.name];return!!t&&t[0]===e}},window.WeakMap=n}(),window.ShadowDOMPolyfill={},function(e){"use strict";function t(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runtime)return!1;if(navigator.getDeviceStorage)return!1;try{var e=new Function("return true;");return e()}catch(t){return!1}}function n(e){if(!e)throw new Error("Assertion failed")}function r(e,t){for(var n=W(t),r=0;r0||n>0;)if(0!=t)if(0!=n){var l,u=e[t-1][n-1],d=e[t-1][n],p=e[t][n-1];l=d0){for(var u=0;u0&&r.length>0;){var i=n.pop(),a=r.pop();if(i!==a)break;o=i}return o}function u(e,t,n){t instanceof G.Window&&(t=t.document);var o,i=A(t),a=A(n),s=r(n,e),o=l(i,a);o||(o=a.root);for(var c=o;c;c=c.parent)for(var u=0;u0;i--)if(!g(t[i],e,o,t,r))return!1;return!0}function w(e,t,n,r){var o=ie,i=t[0]||n;return g(i,e,o,t,r)}function v(e,t,n,r){for(var o=ae,i=1;i0&&g(n,e,o,t,r)}function g(e,t,n,r,o){var i=z.get(e);if(!i)return!0;var a=o||s(r,e);if(a===e){if(n===oe)return!0;n===ae&&(n=ie)}else if(n===ae&&!t.bubbles)return!0;if("relatedTarget"in t){var c=B(t),l=c.relatedTarget;if(l){if(l instanceof Object&&l.addEventListener){var d=V(l),p=u(t,e,d);if(p===a)return!0}else p=null;Z.set(t,p)}}J.set(t,n);var h=t.type,f=!1;X.set(t,a),Y.set(t,e),i.depth++;for(var m=0,w=i.length;m=0;a--)e.removeChild(i[a]),i[a].parentNode_=t;U=!1;for(var a=0;a>>/g," ")}function r(e){return String(e).replace(/:host\(([^\s]+)\)/g,"$1").replace(/([^\s]):host/g,"$1").replace(":host","*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g," ")}function o(e,t){for(var n,r=e.firstElementChild;r;){if(r.matches(t))return r;if(n=o(r,t))return n;r=r.nextElementSibling}return null}function i(e,t){return e.matches(t)}function a(e,t,n){var r=e.localName;return r===t||r===n&&e.namespaceURI===j}function s(){return!0}function c(e,t,n){return e.localName===n}function l(e,t){return e.namespaceURI===t}function u(e,t,n){return e.namespaceURI===t&&e.localName===n}function d(e,t,n,r,o,i){for(var a=e.firstElementChild;a;)r(a,o,i)&&(n[t++]=a),t=d(a,t,n,r,o,i),a=a.nextElementSibling;return t}function p(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,null);if(c instanceof N)s=S.call(c,i);else{if(!(c instanceof C))return d(this,r,o,n,i,null);s=_.call(c,i)}return t(s,r,o,a)}function h(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,a);if(c instanceof N)s=M.call(c,i,a);else{if(!(c instanceof C))return d(this,r,o,n,i,a);s=T.call(c,i,a)}return t(s,r,o,!1)}function f(n,r,o,i,a){var s,c=g(this),l=v(this).root;if(l instanceof e.wrappers.ShadowRoot)return d(this,r,o,n,i,a);if(c instanceof N)s=L.call(c,i,a);else{if(!(c instanceof C))return d(this,r,o,n,i,a);s=O.call(c,i,a)}return t(s,r,o,!1)}var m=e.wrappers.HTMLCollection,w=e.wrappers.NodeList,v=e.getTreeScope,g=e.unsafeUnwrap,b=e.wrap,y=document.querySelector,E=document.documentElement.querySelector,_=document.querySelectorAll,S=document.documentElement.querySelectorAll,T=document.getElementsByTagName,M=document.documentElement.getElementsByTagName,O=document.getElementsByTagNameNS,L=document.documentElement.getElementsByTagNameNS,N=window.Element,C=window.HTMLDocument||window.Document,j="http://www.w3.org/1999/xhtml",D={ +querySelector:function(t){var r=n(t),i=r!==t;t=r;var a,s=g(this),c=v(this).root;if(c instanceof e.wrappers.ShadowRoot)return o(this,t);if(s instanceof N)a=b(E.call(s,t));else{if(!(s instanceof C))return o(this,t);a=b(y.call(s,t))}return a&&!i&&(c=v(a).root)&&c instanceof e.wrappers.ShadowRoot?o(this,t):a},querySelectorAll:function(e){var t=n(e),r=t!==e;e=t;var o=new w;return o.length=p.call(this,i,0,o,e,r),o}},H={matches:function(t){return t=r(t),e.originalMatches.call(g(this),t)}},x={getElementsByTagName:function(e){var t=new m,n="*"===e?s:a;return t.length=h.call(this,n,0,t,e,e.toLowerCase()),t},getElementsByClassName:function(e){return this.querySelectorAll("."+e)},getElementsByTagNameNS:function(e,t){var n=new m,r=null;return r="*"===e?"*"===t?s:c:"*"===t?l:u,n.length=f.call(this,r,0,n,e||null,t),n}};e.GetElementsByInterface=x,e.SelectorsInterface=D,e.MatchesInterface=H}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;return e}function n(e){for(;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.previousSibling;return e}var r=e.wrappers.NodeList,o={get firstElementChild(){return t(this.firstChild)},get lastElementChild(){return n(this.lastChild)},get childElementCount(){for(var e=0,t=this.firstElementChild;t;t=t.nextElementSibling)e++;return e},get children(){for(var e=new r,t=0,n=this.firstElementChild;n;n=n.nextElementSibling)e[t++]=n;return e.length=t,e},remove:function(){var e=this.parentNode;e&&e.removeChild(this)}},i={get nextElementSibling(){return t(this.nextSibling)},get previousElementSibling(){return n(this.previousSibling)}},a={getElementById:function(e){return/[ \t\n\r\f]/.test(e)?null:this.querySelector('[id="'+e+'"]')}};e.ChildNodeInterface=i,e.NonElementParentNodeInterface=a,e.ParentNodeInterface=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}var n=e.ChildNodeInterface,r=e.wrappers.Node,o=e.enqueueMutation,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=window.CharacterData;t.prototype=Object.create(r.prototype),i(t.prototype,{get nodeValue(){return this.data},set nodeValue(e){this.data=e},get textContent(){return this.data},set textContent(e){this.data=e},get data(){return s(this).data},set data(e){var t=s(this).data;o(this,"characterData",{oldValue:t}),s(this).data=e}}),i(t.prototype,n),a(c,t,document.createTextNode("")),e.wrappers.CharacterData=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e>>>0}function n(e){r.call(this,e)}var r=e.wrappers.CharacterData,o=(e.enqueueMutation,e.mixin),i=e.registerWrapper,a=window.Text;n.prototype=Object.create(r.prototype),o(n.prototype,{splitText:function(e){e=t(e);var n=this.data;if(e>n.length)throw new Error("IndexSizeError");var r=n.slice(0,e),o=n.slice(e);this.data=r;var i=this.ownerDocument.createTextNode(o);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}}),i(a,n,document.createTextNode("")),e.wrappers.Text=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return i(e).getAttribute("class")}function n(e,t){a(e,"attributes",{name:"class",namespace:null,oldValue:t})}function r(t){e.invalidateRendererBasedOnAttribute(t,"class")}function o(e,o,i){var a=e.ownerElement_;if(null==a)return o.apply(e,i);var s=t(a),c=o.apply(e,i);return t(a)!==s&&(n(a,s),r(a)),c}if(!window.DOMTokenList)return void console.warn("Missing DOMTokenList prototype, please include a compatible classList polyfill such as http://goo.gl/uTcepH.");var i=e.unsafeUnwrap,a=e.enqueueMutation,s=DOMTokenList.prototype.add;DOMTokenList.prototype.add=function(){o(this,s,arguments)};var c=DOMTokenList.prototype.remove;DOMTokenList.prototype.remove=function(){o(this,c,arguments)};var l=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(){return o(this,l,arguments)}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(t,n){var r=t.parentNode;if(r&&r.shadowRoot){var o=e.getRendererForHost(r);o.dependsOnAttribute(n)&&o.invalidate()}}function n(e,t,n){u(e,"attributes",{name:t,namespace:null,oldValue:n})}function r(e){a.call(this,e)}var o=e.ChildNodeInterface,i=e.GetElementsByInterface,a=e.wrappers.Node,s=e.ParentNodeInterface,c=e.SelectorsInterface,l=e.MatchesInterface,u=(e.addWrapNodeListMethod,e.enqueueMutation),d=e.mixin,p=(e.oneOf,e.registerWrapper),h=e.unsafeUnwrap,f=e.wrappers,m=window.Element,w=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(e){return m.prototype[e]}),v=w[0],g=m.prototype[v],b=new WeakMap;r.prototype=Object.create(a.prototype),d(r.prototype,{createShadowRoot:function(){var t=new f.ShadowRoot(this);h(this).polymerShadowRoot_=t;var n=e.getRendererForHost(this);return n.invalidate(),t},get shadowRoot(){return h(this).polymerShadowRoot_||null},setAttribute:function(e,r){var o=h(this).getAttribute(e);h(this).setAttribute(e,r),n(this,e,o),t(this,e)},removeAttribute:function(e){var r=h(this).getAttribute(e);h(this).removeAttribute(e),n(this,e,r),t(this,e)},get classList(){var e=b.get(this);if(!e){if(e=h(this).classList,!e)return;e.ownerElement_=this,b.set(this,e)}return e},get className(){return h(this).className},set className(e){this.setAttribute("class",e)},get id(){return h(this).id},set id(e){this.setAttribute("id",e)}}),w.forEach(function(e){"matches"!==e&&(r.prototype[e]=function(e){return this.matches(e)})}),m.prototype.webkitCreateShadowRoot&&(r.prototype.webkitCreateShadowRoot=r.prototype.createShadowRoot),d(r.prototype,o),d(r.prototype,i),d(r.prototype,s),d(r.prototype,c),d(r.prototype,l),p(m,r,document.createElementNS(null,"x")),e.invalidateRendererBasedOnAttribute=t,e.matchesNames=w,e.originalMatches=g,e.wrappers.Element=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case'"':return""";case" ":return" "}}function n(e){return e.replace(L,t)}function r(e){return e.replace(N,t)}function o(e){for(var t={},n=0;n"):c+">"+s(e)+"";case Node.TEXT_NODE:var d=e.data;return t&&j[t.localName]?d:r(d);case Node.COMMENT_NODE:return"";default:throw console.error(e),new Error("not implemented")}}function s(e){e instanceof O.HTMLTemplateElement&&(e=e.content);for(var t="",n=e.firstChild;n;n=n.nextSibling)t+=a(n,e);return t}function c(e,t,n){var r=n||"div";e.textContent="";var o=T(e.ownerDocument.createElement(r));o.innerHTML=t;for(var i;i=o.firstChild;)e.appendChild(M(i))}function l(e){m.call(this,e)}function u(e,t){var n=T(e.cloneNode(!1));n.innerHTML=t;for(var r,o=T(document.createDocumentFragment());r=n.firstChild;)o.appendChild(r);return M(o)}function d(t){return function(){return e.renderAllPending(),S(this)[t]}}function p(e){w(l,e,d(e))}function h(t){Object.defineProperty(l.prototype,t,{get:d(t),set:function(n){e.renderAllPending(),S(this)[t]=n},configurable:!0,enumerable:!0})}function f(t){Object.defineProperty(l.prototype,t,{value:function(){return e.renderAllPending(),S(this)[t].apply(S(this),arguments)},configurable:!0,enumerable:!0})}var m=e.wrappers.Element,w=e.defineGetter,v=e.enqueueMutation,g=e.mixin,b=e.nodesWereAdded,y=e.nodesWereRemoved,E=e.registerWrapper,_=e.snapshotNodeList,S=e.unsafeUnwrap,T=e.unwrap,M=e.wrap,O=e.wrappers,L=/[&\u00A0"]/g,N=/[&\u00A0<>]/g,C=o(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),j=o(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]),D="http://www.w3.org/1999/xhtml",H=/MSIE/.test(navigator.userAgent),x=window.HTMLElement,R=window.HTMLTemplateElement;l.prototype=Object.create(m.prototype),g(l.prototype,{get innerHTML(){return s(this)},set innerHTML(e){if(H&&j[this.localName])return void(this.textContent=e);var t=_(this.childNodes);this.invalidateShadowRenderer()?this instanceof O.HTMLTemplateElement?c(this.content,e):c(this,e,this.tagName):!R&&this instanceof O.HTMLTemplateElement?c(this.content,e):S(this).innerHTML=e;var n=_(this.childNodes);v(this,"childList",{addedNodes:n,removedNodes:t}),y(t),b(n,this)},get outerHTML(){return a(this,this.parentNode)},set outerHTML(e){var t=this.parentNode;if(t){t.invalidateShadowRenderer();var n=u(t,e);t.replaceChild(n,this)}},insertAdjacentHTML:function(e,t){var n,r;switch(String(e).toLowerCase()){case"beforebegin":n=this.parentNode,r=this;break;case"afterend":n=this.parentNode,r=this.nextSibling;break;case"afterbegin":n=this,r=this.firstChild;break;case"beforeend":n=this,r=null;break;default:return}var o=u(n,t);n.insertBefore(o,r)},get hidden(){return this.hasAttribute("hidden")},set hidden(e){e?this.setAttribute("hidden",""):this.removeAttribute("hidden")}}),["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(p),["scrollLeft","scrollTop"].forEach(h),["focus","getBoundingClientRect","getClientRects","scrollIntoView"].forEach(f),E(x,l,document.createElement("b")),e.wrappers.HTMLElement=l,e.getInnerHTML=s,e.setInnerHTML=c}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.HTMLCanvasElement;t.prototype=Object.create(n.prototype),r(t.prototype,{getContext:function(){var e=i(this).getContext.apply(i(this),arguments);return e&&a(e)}}),o(s,t,document.createElement("canvas")),e.wrappers.HTMLCanvasElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=window.HTMLContentElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get select(){return this.getAttribute("select")},set select(e){this.setAttribute("select",e)},setAttribute:function(e,t){n.prototype.setAttribute.call(this,e,t),"select"===String(e).toLowerCase()&&this.invalidateShadowRenderer(!0)}}),i&&o(i,t),e.wrappers.HTMLContentElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=window.HTMLFormElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get elements(){return i(a(this).elements)}}),o(s,t,document.createElement("form")),e.wrappers.HTMLFormElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e,t){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var o=i(document.createElement("img"));r.call(this,o),a(o,this),void 0!==e&&(o.width=e),void 0!==t&&(o.height=t)}var r=e.wrappers.HTMLElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLImageElement;t.prototype=Object.create(r.prototype),o(s,t,document.createElement("img")),n.prototype=t.prototype,e.wrappers.HTMLImageElement=t,e.wrappers.Image=n}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=(e.mixin,e.wrappers.NodeList,e.registerWrapper),o=window.HTMLShadowElement;t.prototype=Object.create(n.prototype),t.prototype.constructor=t,o&&r(o,t),e.wrappers.HTMLShadowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){if(!e.defaultView)return e;var t=d.get(e);if(!t){for(t=e.implementation.createHTMLDocument("");t.lastChild;)t.removeChild(t.lastChild);d.set(e,t)}return t}function n(e){for(var n,r=t(e.ownerDocument),o=c(r.createDocumentFragment());n=e.firstChild;)o.appendChild(n);return o}function r(e){if(o.call(this,e),!p){var t=n(e);u.set(this,l(t))}}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.unsafeUnwrap,c=e.unwrap,l=e.wrap,u=new WeakMap,d=new WeakMap,p=window.HTMLTemplateElement;r.prototype=Object.create(o.prototype),i(r.prototype,{constructor:r,get content(){return p?l(s(this).content):u.get(this)}}),p&&a(p,r),e.wrappers.HTMLTemplateElement=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.registerWrapper,o=window.HTMLMediaElement;o&&(t.prototype=Object.create(n.prototype),r(o,t,document.createElement("audio")),e.wrappers.HTMLMediaElement=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){r.call(this,e)}function n(e){if(!(this instanceof n))throw new TypeError("DOM object constructor cannot be called as a function.");var t=i(document.createElement("audio"));r.call(this,t),a(t,this),t.setAttribute("preload","auto"),void 0!==e&&t.setAttribute("src",e)}var r=e.wrappers.HTMLMediaElement,o=e.registerWrapper,i=e.unwrap,a=e.rewrap,s=window.HTMLAudioElement;s&&(t.prototype=Object.create(r.prototype),o(s,t,document.createElement("audio")),n.prototype=t.prototype,e.wrappers.HTMLAudioElement=t,e.wrappers.Audio=n)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){return e.replace(/\s+/g," ").trim()}function n(e){o.call(this,e)}function r(e,t,n,i){if(!(this instanceof r))throw new TypeError("DOM object constructor cannot be called as a function.");var a=c(document.createElement("option"));o.call(this,a),s(a,this),void 0!==e&&(a.text=e),void 0!==t&&a.setAttribute("value",t),n===!0&&a.setAttribute("selected",""),a.selected=i===!0}var o=e.wrappers.HTMLElement,i=e.mixin,a=e.registerWrapper,s=e.rewrap,c=e.unwrap,l=e.wrap,u=window.HTMLOptionElement;n.prototype=Object.create(o.prototype),i(n.prototype,{get text(){return t(this.textContent)},set text(e){this.textContent=t(String(e))},get form(){return l(c(this).form)}}),a(u,n,document.createElement("option")),r.prototype=n.prototype,e.wrappers.HTMLOptionElement=n,e.wrappers.Option=r}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=window.HTMLSelectElement;t.prototype=Object.create(n.prototype),r(t.prototype,{add:function(e,t){"object"==typeof t&&(t=i(t)),i(this).add(i(e),t)},remove:function(e){return void 0===e?void n.prototype.remove.call(this):("object"==typeof e&&(e=i(e)),void i(this).remove(e))},get form(){return a(i(this).form)}}),o(s,t,document.createElement("select")),e.wrappers.HTMLSelectElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.unwrap,a=e.wrap,s=e.wrapHTMLCollection,c=window.HTMLTableElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get caption(){return a(i(this).caption)},createCaption:function(){return a(i(this).createCaption())},get tHead(){return a(i(this).tHead)},createTHead:function(){return a(i(this).createTHead())},createTFoot:function(){return a(i(this).createTFoot())},get tFoot(){return a(i(this).tFoot)},get tBodies(){return s(i(this).tBodies)},createTBody:function(){return a(i(this).createTBody())},get rows(){return s(i(this).rows)},insertRow:function(e){return a(i(this).insertRow(e))}}),o(c,t,document.createElement("table")),e.wrappers.HTMLTableElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableSectionElement;t.prototype=Object.create(n.prototype),r(t.prototype,{constructor:t,get rows(){return i(a(this).rows)},insertRow:function(e){return s(a(this).insertRow(e))}}),o(c,t,document.createElement("thead")),e.wrappers.HTMLTableSectionElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.HTMLElement,r=e.mixin,o=e.registerWrapper,i=e.wrapHTMLCollection,a=e.unwrap,s=e.wrap,c=window.HTMLTableRowElement;t.prototype=Object.create(n.prototype),r(t.prototype,{get cells(){return i(a(this).cells)},insertCell:function(e){return s(a(this).insertCell(e))}}),o(c,t,document.createElement("tr")),e.wrappers.HTMLTableRowElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){switch(e.localName){case"content":return new n(e);case"shadow":return new o(e);case"template":return new i(e)}r.call(this,e)}var n=e.wrappers.HTMLContentElement,r=e.wrappers.HTMLElement,o=e.wrappers.HTMLShadowElement,i=e.wrappers.HTMLTemplateElement,a=(e.mixin,e.registerWrapper),s=window.HTMLUnknownElement;t.prototype=Object.create(r.prototype),a(s,t),e.wrappers.HTMLUnknownElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.Element,r=e.wrappers.HTMLElement,o=e.registerWrapper,i=(e.defineWrapGetter,e.unsafeUnwrap),a=e.wrap,s=e.mixin,c="http://www.w3.org/2000/svg",l=window.SVGElement,u=document.createElementNS(c,"title");if(!("classList"in u)){var d=Object.getOwnPropertyDescriptor(n.prototype,"classList");Object.defineProperty(r.prototype,"classList",d),delete n.prototype.classList}t.prototype=Object.create(n.prototype),s(t.prototype,{get ownerSVGElement(){return a(i(this).ownerSVGElement)}}),o(l,t,document.createElementNS(c,"title")),e.wrappers.SVGElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){p.call(this,e)}var n=e.mixin,r=e.registerWrapper,o=e.unwrap,i=e.wrap,a=window.SVGUseElement,s="http://www.w3.org/2000/svg",c=i(document.createElementNS(s,"g")),l=document.createElementNS(s,"use"),u=c.constructor,d=Object.getPrototypeOf(u.prototype),p=d.constructor;t.prototype=Object.create(d),"instanceRoot"in l&&n(t.prototype,{get instanceRoot(){return i(o(this).instanceRoot)},get animatedInstanceRoot(){return i(o(this).animatedInstanceRoot)}}),r(a,t,l),e.wrappers.SVGUseElement=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.mixin,o=e.registerWrapper,i=e.unsafeUnwrap,a=e.wrap,s=window.SVGElementInstance;s&&(t.prototype=Object.create(n.prototype),r(t.prototype,{get correspondingElement(){return a(i(this).correspondingElement)},get correspondingUseElement(){return a(i(this).correspondingUseElement)},get parentNode(){return a(i(this).parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return a(i(this).firstChild)},get lastChild(){return a(i(this).lastChild)},get previousSibling(){return a(i(this).previousSibling)},get nextSibling(){return a(i(this).nextSibling)}}),o(s,t),e.wrappers.SVGElementInstance=t)}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){o(e,this)}var n=e.mixin,r=e.registerWrapper,o=e.setWrapper,i=e.unsafeUnwrap,a=e.unwrap,s=e.unwrapIfNeeded,c=e.wrap,l=window.CanvasRenderingContext2D;n(t.prototype,{get canvas(){return c(i(this).canvas)},drawImage:function(){arguments[0]=s(arguments[0]),i(this).drawImage.apply(i(this),arguments)},createPattern:function(){return arguments[0]=a(arguments[0]),i(this).createPattern.apply(i(this),arguments)}}),r(l,t,document.createElement("canvas").getContext("2d")),e.wrappers.CanvasRenderingContext2D=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){i(e,this)}var n=e.addForwardingProperties,r=e.mixin,o=e.registerWrapper,i=e.setWrapper,a=e.unsafeUnwrap,s=e.unwrapIfNeeded,c=e.wrap,l=window.WebGLRenderingContext;if(l){r(t.prototype,{get canvas(){return c(a(this).canvas)},texImage2D:function(){arguments[5]=s(arguments[5]),a(this).texImage2D.apply(a(this),arguments)},texSubImage2D:function(){arguments[6]=s(arguments[6]),a(this).texSubImage2D.apply(a(this),arguments)}});var u=Object.getPrototypeOf(l.prototype);u!==Object.prototype&&n(u,t.prototype);var d=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};o(l,t,d),e.wrappers.WebGLRenderingContext=t}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.Node,r=e.GetElementsByInterface,o=e.NonElementParentNodeInterface,i=e.ParentNodeInterface,a=e.SelectorsInterface,s=e.mixin,c=e.registerObject,l=e.registerWrapper,u=window.DocumentFragment;t.prototype=Object.create(n.prototype),s(t.prototype,i),s(t.prototype,a),s(t.prototype,r),s(t.prototype,o),l(u,t,document.createDocumentFragment()),e.wrappers.DocumentFragment=t;var d=c(document.createComment(""));e.wrappers.Comment=d}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=d(u(e).ownerDocument.createDocumentFragment());n.call(this,t),c(t,this);var o=e.shadowRoot;f.set(this,o),this.treeScope_=new r(this,a(o||e)),h.set(this,e)}var n=e.wrappers.DocumentFragment,r=e.TreeScope,o=e.elementFromPoint,i=e.getInnerHTML,a=e.getTreeScope,s=e.mixin,c=e.rewrap,l=e.setInnerHTML,u=e.unsafeUnwrap,d=e.unwrap,p=e.wrap,h=new WeakMap,f=new WeakMap;t.prototype=Object.create(n.prototype),s(t.prototype,{constructor:t,get innerHTML(){return i(this)},set innerHTML(e){l(this,e),this.invalidateShadowRenderer()},get olderShadowRoot(){return f.get(this)||null},get host(){return h.get(this)||null},invalidateShadowRenderer:function(){return h.get(this).invalidateShadowRenderer()},elementFromPoint:function(e,t){return o(this,this.ownerDocument,e,t)},getSelection:function(){return document.getSelection()},get activeElement(){var e=d(this).ownerDocument.activeElement;if(!e||!e.nodeType)return null;for(var t=p(e);!this.contains(t);){for(;t.parentNode;)t=t.parentNode;if(!t.host)return null;t=t.host}return t}}),e.wrappers.ShadowRoot=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=d(e).root;return t instanceof h?t.host:null}function n(t,n){if(t.shadowRoot){n=Math.min(t.childNodes.length-1,n);var r=t.childNodes[n];if(r){var o=e.getDestinationInsertionPoints(r);if(o.length>0){var i=o[0].parentNode;i.nodeType==Node.ELEMENT_NODE&&(t=i)}}}return t}function r(e){return e=u(e),t(e)||e}function o(e){a(e,this)}var i=e.registerWrapper,a=e.setWrapper,s=e.unsafeUnwrap,c=e.unwrap,l=e.unwrapIfNeeded,u=e.wrap,d=e.getTreeScope,p=window.Range,h=e.wrappers.ShadowRoot;o.prototype={get startContainer(){return r(s(this).startContainer)},get endContainer(){return r(s(this).endContainer)},get commonAncestorContainer(){return r(s(this).commonAncestorContainer)},setStart:function(e,t){e=n(e,t),s(this).setStart(l(e),t)},setEnd:function(e,t){e=n(e,t),s(this).setEnd(l(e),t)},setStartBefore:function(e){s(this).setStartBefore(l(e))},setStartAfter:function(e){s(this).setStartAfter(l(e))},setEndBefore:function(e){s(this).setEndBefore(l(e))},setEndAfter:function(e){s(this).setEndAfter(l(e))},selectNode:function(e){s(this).selectNode(l(e))},selectNodeContents:function(e){s(this).selectNodeContents(l(e))},compareBoundaryPoints:function(e,t){return s(this).compareBoundaryPoints(e,c(t))},extractContents:function(){return u(s(this).extractContents())},cloneContents:function(){return u(s(this).cloneContents())},insertNode:function(e){s(this).insertNode(l(e))},surroundContents:function(e){s(this).surroundContents(l(e))},cloneRange:function(){return u(s(this).cloneRange())},isPointInRange:function(e,t){return s(this).isPointInRange(l(e),t)},comparePoint:function(e,t){return s(this).comparePoint(l(e),t)},intersectsNode:function(e){return s(this).intersectsNode(l(e))},toString:function(){return s(this).toString()}},p.prototype.createContextualFragment&&(o.prototype.createContextualFragment=function(e){return u(s(this).createContextualFragment(e))}),i(window.Range,o,document.createRange()),e.wrappers.Range=o}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){e.previousSibling_=e.previousSibling,e.nextSibling_=e.nextSibling,e.parentNode_=e.parentNode}function n(n,o,i){var a=x(n),s=x(o),c=i?x(i):null;if(r(o),t(o),i)n.firstChild===i&&(n.firstChild_=i),i.previousSibling_=i.previousSibling;else{n.lastChild_=n.lastChild,n.lastChild===n.firstChild&&(n.firstChild_=n.firstChild);var l=R(a.lastChild);l&&(l.nextSibling_=l.nextSibling)}e.originalInsertBefore.call(a,s,c)}function r(n){var r=x(n),o=r.parentNode;if(o){var i=R(o);t(n),n.previousSibling&&(n.previousSibling.nextSibling_=n),n.nextSibling&&(n.nextSibling.previousSibling_=n),i.lastChild===n&&(i.lastChild_=n),i.firstChild===n&&(i.firstChild_=n),e.originalRemoveChild.call(o,r)}}function o(e){P.set(e,[])}function i(e){var t=P.get(e);return t||P.set(e,t=[]),t}function a(e){for(var t=[],n=0,r=e.firstChild;r;r=r.nextSibling)t[n++]=r;return t}function s(){for(var e=0;e=0;o--){var i=r[o],a=m(i);if(a){var s=i.olderShadowRoot;s&&(n=f(s));for(var c=0;c=0;u--)l=Object.create(l);["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(e){var t=o[e];t&&(l[e]=function(){j(this)instanceof r||O(this),t.apply(j(this),arguments)})});var d={prototype:l};i&&(d["extends"]=i),r.prototype=o,r.prototype.constructor=r,e.constructorTable.set(l,r),e.nativePrototypeTable.set(o,l);k.call(C(this),t,d);return r},E([window.HTMLDocument||window.Document],["registerElement"])}E([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"]),E([window.HTMLBodyElement,window.HTMLHeadElement,window.HTMLHtmlElement],_),E([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","createTreeWalker","elementFromPoint","getElementById","getElementsByName","getSelection"]),S(t.prototype,l),S(t.prototype,d),S(t.prototype,f),S(t.prototype,p),S(t.prototype,{get implementation(){var e=H.get(this);return e?e:(e=new a(C(this).implementation),H.set(this,e),e)},get defaultView(){return j(C(this).defaultView)}}),T(window.Document,t,document.implementation.createHTMLDocument("")),window.HTMLDocument&&T(window.HTMLDocument,t),D([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]);var A=document.implementation.createDocument;a.prototype.createDocument=function(){return arguments[2]=C(arguments[2]),j(A.apply(N(this),arguments))},s(a,"createDocumentType"),s(a,"createHTMLDocument"),c(a,"hasFeature"),T(window.DOMImplementation,a),E([window.DOMImplementation],["createDocument","createDocumentType","createHTMLDocument","hasFeature"]),e.adoptNodeNoRemove=r,e.wrappers.DOMImplementation=a,e.wrappers.Document=t}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){n.call(this,e)}var n=e.wrappers.EventTarget,r=e.wrappers.Selection,o=e.mixin,i=e.registerWrapper,a=e.renderAllPending,s=e.unwrap,c=e.unwrapIfNeeded,l=e.wrap,u=window.Window,d=window.getComputedStyle,p=window.getDefaultComputedStyle,h=window.getSelection;t.prototype=Object.create(n.prototype),u.prototype.getComputedStyle=function(e,t){return l(this||window).getComputedStyle(c(e),t)},p&&(u.prototype.getDefaultComputedStyle=function(e,t){return l(this||window).getDefaultComputedStyle(c(e),t)}),u.prototype.getSelection=function(){return l(this||window).getSelection()},delete window.getComputedStyle,delete window.getDefaultComputedStyle,delete window.getSelection,["addEventListener","removeEventListener","dispatchEvent"].forEach(function(e){u.prototype[e]=function(){var t=l(this||window);return t[e].apply(t,arguments)},delete window[e]}),o(t.prototype,{getComputedStyle:function(e,t){return a(),d.call(s(this),c(e),t)},getSelection:function(){return a(),new r(h.call(s(this)))},get document(){return l(s(this).document)}}),p&&(t.prototype.getDefaultComputedStyle=function(e,t){return a(),p.call(s(this),c(e),t)}),i(u,t,window),e.wrappers.Window=t}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrap,n=window.DataTransfer||window.Clipboard,r=n.prototype.setDragImage;r&&(n.prototype.setDragImage=function(e,n,o){r.call(this,t(e),n,o)})}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t;t=e instanceof i?e:new i(e&&o(e)),r(t,this)}var n=e.registerWrapper,r=e.setWrapper,o=e.unwrap,i=window.FormData;i&&(n(i,t,new i),e.wrappers.FormData=t)}(window.ShadowDOMPolyfill),function(e){"use strict";var t=e.unwrapIfNeeded,n=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(e){return n.call(this,t(e))}}(window.ShadowDOMPolyfill),function(e){"use strict";function t(e){var t=n[e],r=window[t];if(r){var o=document.createElement(e),i=o.constructor;window[t]=i}}var n=(e.isWrapperFor,{a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"});Object.keys(n).forEach(t),Object.getOwnPropertyNames(e.wrappers).forEach(function(t){window[t]=e.wrappers[t]})}(window.ShadowDOMPolyfill),function(e){function t(e,t){var n="";return Array.prototype.forEach.call(e,function(e){n+=e.textContent+"\n\n"}),t||(n=n.replace(d,"")),n}function n(e){var t=document.createElement("style");return t.textContent=e,t}function r(e){var t=n(e);document.head.appendChild(t);var r=[];if(t.sheet)try{r=t.sheet.cssRules}catch(o){}else console.warn("sheet not found",t);return t.parentNode.removeChild(t),r}function o(){C.initialized=!0,document.body.appendChild(C);var e=C.contentDocument,t=e.createElement("base");t.href=document.baseURI,e.head.appendChild(t)}function i(e){C.initialized||o(),document.body.appendChild(C),e(C.contentDocument),document.body.removeChild(C)}function a(e,t){if(t){var o;if(e.match("@import")&&D){var a=n(e);i(function(e){e.head.appendChild(a.impl),o=Array.prototype.slice.call(a.sheet.cssRules,0),t(o)})}else o=r(e),t(o)}}function s(e){e&&l().appendChild(document.createTextNode(e))}function c(e,t){var r=n(e);r.setAttribute(t,""),r.setAttribute(x,""),document.head.appendChild(r)}function l(){return j||(j=document.createElement("style"),j.setAttribute(x,""),j[x]=!0),j}var u={strictStyling:!1,registry:{},shimStyling:function(e,n,r){var o=this.prepareRoot(e,n,r),i=this.isTypeExtension(r),a=this.makeScopeSelector(n,i),s=t(o,!0);s=this.scopeCssText(s,a),e&&(e.shimmedStyle=s),this.addCssToDocument(s,n)},shimStyle:function(e,t){return this.shimCssText(e.textContent,t)},shimCssText:function(e,t){return e=this.insertDirectives(e),this.scopeCssText(e,t)},makeScopeSelector:function(e,t){return e?t?"[is="+e+"]":e:""},isTypeExtension:function(e){return e&&e.indexOf("-")<0},prepareRoot:function(e,t,n){var r=this.registerRoot(e,t,n);return this.replaceTextInStyles(r.rootStyles,this.insertDirectives),this.removeStyles(e,r.rootStyles),this.strictStyling&&this.applyScopeToContent(e,t),r.scopeStyles},removeStyles:function(e,t){for(var n,r=0,o=t.length;r","+","~"],r=e,o="["+t+"]";return n.forEach(function(e){var t=r.split(e);r=t.map(function(e){var t=e.trim().replace(L,"");return t&&n.indexOf(t)<0&&t.indexOf(o)<0&&(e=t.replace(/([^:]*)(:*)(.*)/,"$1"+o+"$2$3")),e}).join(e)}),r},insertPolyfillHostInCssText:function(e){return e.replace(M,b).replace(T,g)},propertiesFromRule:function(e){var t=e.style.cssText;e.style.content&&!e.style.content.match(/['"]+|attr/)&&(t=t.replace(/content:[^;]*;/g,"content: '"+e.style.content+"';"));var n=e.style;for(var r in n)"initial"===n[r]&&(t+=r+": initial; ");return t},replaceTextInStyles:function(e,t){e&&t&&(e instanceof Array||(e=[e]),Array.prototype.forEach.call(e,function(e){e.textContent=t.call(this,e.textContent)},this))},addCssToDocument:function(e,t){e.match("@import")?c(e,t):s(e)}},d=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,p=/\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim,h=/polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,f=/\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,m=/(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,w=/\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,v=/(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,g="-shadowcsshost",b="-shadowcsscontext",y=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",E=new RegExp("("+g+y,"gim"),_=new RegExp("("+b+y,"gim"),S="([>\\s~+[.,{:][\\s\\S]*)?$",T=/\:host/gim,M=/\:host-context/gim,O=g+"-no-combinator",L=new RegExp(g,"gim"),N=(new RegExp(b,"gim"),[/>>>/g,/::shadow/g,/::content/g,/\/deep\//g,/\/shadow\//g,/\/shadow-deep\//g,/\^\^/g,/\^(?!=)/g]),C=document.createElement("iframe");C.style.display="none";var j,D=navigator.userAgent.match("Chrome"),H="shim-shadowdom",x="shim-shadowdom-css",R="no-shim";if(window.ShadowDOMPolyfill){s("style { display: none !important; }\n");var I=ShadowDOMPolyfill.wrap(document),P=I.querySelector("head");P.insertBefore(l(),P.childNodes[0]),document.addEventListener("DOMContentLoaded",function(){e.urlResolver;if(window.HTMLImports&&!HTMLImports.useNative){var t="link[rel=stylesheet]["+H+"]",n="style["+H+"]";HTMLImports.importer.documentPreloadSelectors+=","+t,HTMLImports.importer.importsPreloadSelectors+=","+t,HTMLImports.parser.documentSelectors=[HTMLImports.parser.documentSelectors,t,n].join(",");var r=HTMLImports.parser.parseGeneric;HTMLImports.parser.parseGeneric=function(e){if(!e[x]){var t=e.__importElement||e;if(!t.hasAttribute(H))return void r.call(this,e);e.__resource&&(t=e.ownerDocument.createElement("style"),t.textContent=e.__resource),HTMLImports.path.resolveUrlsInStyle(t,e.href),t.textContent=u.shimStyle(t),t.removeAttribute(H,""),t.setAttribute(x,""),t[x]=!0,t.parentNode!==P&&(e.parentNode===P?P.replaceChild(t,e):this.addElementToDocument(t)),t.__importParsed=!0,this.markParsingComplete(e),this.parseNext()}};var o=HTMLImports.parser.hasResource;HTMLImports.parser.hasResource=function(e){return"link"===e.localName&&"stylesheet"===e.rel&&e.hasAttribute(H)?e.__resource:o.call(this,e)}}})}e.ShadowCSS=u}(window.WebComponents)),function(e){window.ShadowDOMPolyfill?(window.wrap=ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}}(window.WebComponents),function(e){"use strict";function t(e){return void 0!==p[e]}function n(){s.call(this),this._isInvalid=!0}function r(e){return""==e&&n.call(this),e.toLowerCase()}function o(e){var t=e.charCodeAt(0);return t>32&&t<127&&[34,35,60,62,63,96].indexOf(t)==-1?e:encodeURIComponent(e)}function i(e){var t=e.charCodeAt(0);return t>32&&t<127&&[34,35,60,62,96].indexOf(t)==-1?e:encodeURIComponent(e)}function a(e,a,s){function c(e){b.push(e)}var l=a||"scheme start",u=0,d="",v=!1,g=!1,b=[];e:for(;(e[u-1]!=f||0==u)&&!this._isInvalid;){var y=e[u];switch(l){case"scheme start":if(!y||!m.test(y)){if(a){c("Invalid scheme.");break e}d="",l="no scheme";continue}d+=y.toLowerCase(),l="scheme";break;case"scheme":if(y&&w.test(y))d+=y.toLowerCase();else{if(":"!=y){if(a){if(f==y)break e;c("Code point not allowed in scheme: "+y);break e}d="",u=0,l="no scheme";continue}if(this._scheme=d,d="",a)break e;t(this._scheme)&&(this._isRelative=!0),l="file"==this._scheme?"relative":this._isRelative&&s&&s._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==y?(this._query="?",l="query"):"#"==y?(this._fragment="#",l="fragment"):f!=y&&"\t"!=y&&"\n"!=y&&"\r"!=y&&(this._schemeData+=o(y));break;case"no scheme":if(s&&t(s._scheme)){l="relative";continue}c("Missing scheme."),n.call(this);break;case"relative or authority":if("/"!=y||"/"!=e[u+1]){c("Expected /, got: "+y),l="relative";continue}l="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=s._scheme),f==y){this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._username=s._username,this._password=s._password;break e}if("/"==y||"\\"==y)"\\"==y&&c("\\ is an invalid code point."),l="relative slash";else if("?"==y)this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query="?",this._username=s._username,this._password=s._password,l="query";else{if("#"!=y){var E=e[u+1],_=e[u+2];("file"!=this._scheme||!m.test(y)||":"!=E&&"|"!=E||f!=_&&"/"!=_&&"\\"!=_&&"?"!=_&&"#"!=_)&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password,this._path=s._path.slice(),this._path.pop()),l="relative path";continue}this._host=s._host,this._port=s._port,this._path=s._path.slice(),this._query=s._query,this._fragment="#",this._username=s._username,this._password=s._password,l="fragment"}break;case"relative slash":if("/"!=y&&"\\"!=y){"file"!=this._scheme&&(this._host=s._host,this._port=s._port,this._username=s._username,this._password=s._password),l="relative path";continue}"\\"==y&&c("\\ is an invalid code point."),l="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=y){c("Expected '/', got: "+y),l="authority ignore slashes";continue}l="authority second slash";break;case"authority second slash":if(l="authority ignore slashes","/"!=y){c("Expected '/', got: "+y);continue}break;case"authority ignore slashes":if("/"!=y&&"\\"!=y){l="authority";continue}c("Expected authority, got: "+y);break;case"authority":if("@"==y){v&&(c("@ already seen."),d+="%40"),v=!0;for(var S=0;S0){var o=n[r-1],i=h(o,e);if(i)return void(n[r-1]=i)}else t(this.observer);n[r]=e},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(e){var t=this.options;t.attributes&&e.addEventListener("DOMAttrModified",this,!0),t.characterData&&e.addEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.addEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(e){var t=this.options;t.attributes&&e.removeEventListener("DOMAttrModified",this,!0),t.characterData&&e.removeEventListener("DOMCharacterDataModified",this,!0),t.childList&&e.removeEventListener("DOMNodeInserted",this,!0),(t.childList||t.subtree)&&e.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(e){if(e!==this.target){this.addListeners_(e),this.transientObservedNodes.push(e);var t=w.get(e);t||w.set(e,t=[]),t.push(this)}},removeTransientObservers:function(){var e=this.transientObservedNodes;this.transientObservedNodes=[],e.forEach(function(e){this.removeListeners_(e);for(var t=w.get(e),n=0;n=200&&e.status<300||304===e.status||0===e.status},load:function(n,r,o){var i=new XMLHttpRequest;return(e.flags.debug||e.flags.bust)&&(n+="?"+Math.random()),i.open("GET",n,t.async),i.addEventListener("readystatechange",function(e){if(4===i.readyState){var n=null;try{var a=i.getResponseHeader("Location");a&&(n="/"===a.substr(0,1)?location.origin+a:a)}catch(e){console.error(e.message)}r.call(o,!t.ok(i)&&i,i.response||i.responseText,n)}}),i.send(),i},loadDocument:function(e,t,n){this.load(e,t,n).responseType="document"}};e.xhr=t}),window.HTMLImports.addModule(function(e){var t=e.xhr,n=e.flags,r=function(e,t){this.cache={},this.onload=e,this.oncomplete=t,this.inflight=0,this.pending={}};r.prototype={addNodes:function(e){this.inflight+=e.length;for(var t,n=0,r=e.length;n-1?atob(a):decodeURIComponent(a),setTimeout(function(){this.receive(e,r,null,a)}.bind(this),0)}else{var s=function(t,n,o){this.receive(e,r,t,n,o)}.bind(this);t.load(e,s)}else setTimeout(function(){this.receive(e,r,{error:"href must be specified"},null)}.bind(this),0)},receive:function(e,t,n,r,o){this.cache[e]=r;for(var i,a=this.pending[e],s=0,c=a.length;s=0&&this.dynamicElements.splice(t,1)},parseImport:function(e){if(e["import"]=e.__doc,window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(e),e["import"]&&(e["import"].__importParsed=!0),this.markParsingComplete(e),e.__resource&&!e.__error?e.dispatchEvent(new CustomEvent("load",{bubbles:!1})):e.dispatchEvent(new CustomEvent("error",{bubbles:!1})),e.__pending)for(var t;e.__pending.length;)t=e.__pending.shift(),t&&t({target:e});this.parseNext()},parseLink:function(e){t(e)?this.parseImport(e):(e.href=e.href,this.parseGeneric(e))},parseStyle:function(e){var t=e;e=i(e),t.__appliedElement=e,e.__importElement=t,this.parseGeneric(e)},parseGeneric:function(e){this.trackElement(e),this.addElementToDocument(e)},rootImportForElement:function(e){for(var t=e;t.ownerDocument.__importLink;)t=t.ownerDocument.__importLink;return t},addElementToDocument:function(e){var t=this.rootImportForElement(e.__importElement||e);t.parentNode.insertBefore(e,t)},trackElement:function(e,t){var n=this,r=function(o){e.removeEventListener("load",r),e.removeEventListener("error",r),t&&t(o),n.markParsingComplete(e),n.parseNext()};if(e.addEventListener("load",r),e.addEventListener("error",r),l&&"style"===e.localName){var o=!1;if(e.textContent.indexOf("@import")==-1)o=!0;else if(e.sheet){o=!0;for(var i,a=e.sheet.cssRules,s=a?a.length:0,c=0;c=0},hasResource:function(e){return!t(e)||void 0!==e.__doc}};e.parser=p,e.IMPORT_SELECTOR=d}),window.HTMLImports.addModule(function(e){function t(e){return n(e,a)}function n(e,t){return"link"===e.localName&&e.getAttribute("rel")===t}function r(e){return!!Object.getOwnPropertyDescriptor(e,"baseURI")}function o(e,t){var n=document.implementation.createHTMLDocument(a);n._URL=t;var o=n.createElement("base");o.setAttribute("href",t),n.baseURI||r(n)||Object.defineProperty(n,"baseURI",{value:t});var i=n.createElement("meta");return i.setAttribute("charset","utf-8"),n.head.appendChild(i),n.head.appendChild(o),n.body.innerHTML=e,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(n),n}var i=e.flags,a=e.IMPORT_LINK_TYPE,s=e.IMPORT_SELECTOR,c=e.rootDocument,l=e.Loader,u=e.Observer,d=e.parser,p={documents:{},documentPreloadSelectors:s,importsPreloadSelectors:[s].join(","),loadNode:function(e){h.addNode(e)},loadSubtree:function(e){var t=this.marshalNodes(e);h.addNodes(t)},marshalNodes:function(e){return e.querySelectorAll(this.loadSelectorsForNode(e))},loadSelectorsForNode:function(e){var t=e.ownerDocument||e;return t===c?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(e,n,r,a,s){if(i.load&&console.log("loaded",e,n),n.__resource=r,n.__error=a,t(n)){var c=this.documents[e];void 0===c&&(c=a?null:o(r,s||e),c&&(c.__importLink=n,this.bootDocument(c)),this.documents[e]=c),n.__doc=c}d.parseNext()},bootDocument:function(e){this.loadSubtree(e),this.observer.observe(e),d.parseNext()},loadedAll:function(){d.parseNext()}},h=new l(p.loaded.bind(p),p.loadedAll.bind(p));if(p.observer=new u,!document.baseURI){var f={get:function(){var e=document.querySelector("base");return e?e.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",f),Object.defineProperty(c,"baseURI",f)}e.importer=p,e.importLoader=h}),window.HTMLImports.addModule(function(e){var t=e.parser,n=e.importer,r={added:function(e){for(var r,o,i,a,s=0,c=e.length;s=0)){n.push(e);for(var r,o=e.querySelectorAll("link[rel="+a+"]"),s=0,c=o.length;s=0&&b(r,HTMLElement),r)}function f(e,t){var n=e[t];e[t]=function(){var e=n.apply(this,arguments);return v(e),e}}var m,w=(e.isIE,e.upgradeDocumentTree),v=e.upgradeAll,g=e.upgradeWithDefinition,b=e.implementPrototype,y=e.useNative,E=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],_={},S="http://www.w3.org/1999/xhtml",T=document.createElement.bind(document),M=document.createElementNS.bind(document);m=Object.__proto__||y?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;for(var n=e;n;){if(n===t.prototype)return!0;n=n.__proto__}return!1},f(Node.prototype,"cloneNode"),f(document,"importNode"),document.registerElement=t,document.createElement=h,document.createElementNS=p,e.registry=_,e["instanceof"]=m,e.reservedTagList=E,e.getRegisteredDefinition=l,document.register=document.registerElement}),function(e){function t(){i(window.wrap(document)),window.CustomElements.ready=!0;var e=window.requestAnimationFrame||function(e){setTimeout(e,16)};e(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})})}var n=e.useNative,r=e.initializeModules;e.isIE;if(n){var o=function(){};e.watchShadow=o,e.upgrade=o,e.upgradeAll=o,e.upgradeDocumentTree=o,e.upgradeSubtree=o,e.takeRecords=o,e["instanceof"]=function(e,t){return e instanceof t}}else r();var i=e.upgradeDocumentTree,a=e.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(e){return e}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(e){e["import"]&&a(wrap(e["import"]))}),"complete"===document.readyState||e.flags.eager)t();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var s=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(s,t)}else t()}(window.CustomElements),function(e){Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,n=Array.prototype.slice.call(arguments,1);return function(){var r=n.slice();return r.push.apply(r,arguments),t.apply(e,r)}})}(window.WebComponents),function(e){var t=document.createElement("style");t.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var n=document.querySelector("head");n.insertBefore(t,n.firstChild)}(window.WebComponents),function(e){window.Platform=e}(window.WebComponents); \ No newline at end of file diff --git a/assets/sass/base/_page.scss b/assets/sass/base/_page.scss deleted file mode 100644 index 84e97e3..0000000 --- a/assets/sass/base/_page.scss +++ /dev/null @@ -1,50 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Basic */ - - // MSIE: Required for IEMobile. - @-ms-viewport { - width: device-width; - } - - // MSIE: Prevents scrollbar from overlapping content. - body { - -ms-overflow-style: scrollbar; - } - - // Ensures page width is always >=320px. - @include breakpoint(xsmall) { - html, body { - min-width: 320px; - } - } - - body { - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-attachment: fixed, - fixed; - - background-position: center, - center; - - // Prevents animation/transition "flicker" on page load. - // Automatically added/removed by js/main.js. - &.is-loading { - *, *:before, *:after { - @include vendor('animation', 'none !important'); - @include vendor('transition', 'none !important'); - } - } - - } \ No newline at end of file diff --git a/assets/sass/base/_typography.scss b/assets/sass/base/_typography.scss deleted file mode 100644 index fa8845a..0000000 --- a/assets/sass/base/_typography.scss +++ /dev/null @@ -1,218 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Type */ - - body, input, select, textarea { - color: _palette(fg); - font-family: _font(family); - font-size: 16.5pt; - font-weight: _font(weight); - line-height: 1.65; - - @include breakpoint(xlarge) { - font-size: 13pt; - } - - @include breakpoint(large) { - font-size: 12pt; - } - - @include breakpoint(medium) { - font-size: 12pt; - } - - @include breakpoint(small) { - font-size: 12pt; - } - - @include breakpoint(xsmall) { - font-size: 12pt; - } - } - - a { - @include vendor('transition', 'color #{_duration(transition)} ease-in-out, border-bottom-color #{_duration(transition)} ease-in-out'); - border-bottom: dotted 1px _palette(fg-light); - color: _palette(fg-bold); - text-decoration: none; - - &:hover { - border-bottom-color: transparent; - color: _palette(fg-bold) !important; - } - - &.special:not(.button) { - @include icon; - border-bottom: 0; - display: block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - letter-spacing: _font(kern-heading); - margin: 0 0 _size(element-margin) 0; - text-transform: uppercase; - - &:before { - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - border-radius: 100%; - border: solid 2px _palette(border); - content: '\f105'; - display: inline-block; - font-size: 1.25em; - height: 2em; - line-height: 1.65em; - margin-right: 0.85em; - text-align: center; - text-indent: 0.15em; - vertical-align: middle; - width: 2em; - } - - &:hover { - &:before { - background-color: _palette(border-bg); - } - } - - &:active { - &:before { - background-color: _palette(border2-bg); - } - } - } - } - - strong, b { - color: _palette(fg-bold); - font-weight: _font(weight-bold); - } - - em, i { - font-style: italic; - } - - p { - margin: 0 0 _size(element-margin) 0; - } - - h1, h2, h3, h4, h5, h6 { - color: _palette(fg-bold); - font-family: _font(family-heading); - font-weight: _font(weight-heading-bold); - letter-spacing: _font(kern-heading); - margin: 0 0 (_size(element-margin) * 0.5) 0; - text-transform: uppercase; - - a { - color: inherit; - text-decoration: none; - } - - span { - font-weight: _font(weight-heading); - } - - &.major { - padding-bottom: 1em; - border-bottom: solid 2px _palette(border); - } - } - - h2 { - font-size: 1.2em; - } - - h3 { - font-size: 0.9em; - } - - h4 { - font-size: 0.7em; - } - - h5 { - font-size: 0.7em; - } - - h6 { - font-size: 0.7em; - } - - @include breakpoint(small) { - h2 { - font-size: 1em; - } - - h3 { - font-size: 0.8em - } - } - - sub { - font-size: 0.8em; - position: relative; - top: 0.5em; - } - - sup { - font-size: 0.8em; - position: relative; - top: -0.5em; - } - - blockquote { - border-left: solid 4px _palette(border); - font-style: italic; - margin: 0 0 _size(element-margin) 0; - padding: (_size(element-margin) / 4) 0 (_size(element-margin) / 4) _size(element-margin); - } - - code { - background: _palette(border-bg); - border-radius: _size(border-radius); - border: solid 2px _palette(border); - font-family: _font(family-fixed); - font-size: 0.9em; - margin: 0 0.25em; - padding: 0.25em 0.65em; - } - - pre { - -webkit-overflow-scrolling: touch; - font-family: _font(family-fixed); - font-size: 0.9em; - margin: 0 0 _size(element-margin) 0; - - code { - display: block; - line-height: 1.75em; - padding: 1em 1.5em; - overflow-x: auto; - } - } - - hr { - border: 0; - border-bottom: solid 2px _palette(border); - margin: (_size(element-margin) * 1.25) 0; - - &.major { - margin: (_size(element-margin) * 2) 0; - } - } - - .align-left { - text-align: left; - } - - .align-center { - text-align: center; - } - - .align-right { - text-align: right; - } \ No newline at end of file diff --git a/assets/sass/components/_box.scss b/assets/sass/components/_box.scss deleted file mode 100644 index 61a4d9b..0000000 --- a/assets/sass/components/_box.scss +++ /dev/null @@ -1,26 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Box */ - - .box { - border-radius: _size(border-radius); - border: solid 2px _palette(border); - margin-bottom: _size(element-margin); - padding: 1.5em; - - > :last-child, - > :last-child > :last-child, - > :last-child > :last-child > :last-child { - margin-bottom: 0; - } - - &.alt { - border: 0; - border-radius: 0; - padding: 0; - } - } \ No newline at end of file diff --git a/assets/sass/components/_button.scss b/assets/sass/components/_button.scss deleted file mode 100644 index 1a62702..0000000 --- a/assets/sass/components/_button.scss +++ /dev/null @@ -1,91 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Button */ - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - @include vendor('appearance', 'none'); - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - background-color: transparent; - border-radius: _size(border-radius); - border: 0; - box-shadow: inset 0 0 0 2px _palette(border); - color: _palette(fg-bold) !important; - cursor: pointer; - display: inline-block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - height: 3.75em; - letter-spacing: _font(kern-heading); - line-height: 3.75em; - padding: 0 2.25em; - text-align: center; - text-decoration: none; - text-transform: uppercase; - white-space: nowrap; - - &:hover { - background-color: _palette(border-bg); - } - - &:active { - background-color: _palette(border2-bg); - } - - &.icon { - &:before { - margin-right: 0.5em; - color: _palette(fg-light); - } - } - - &.special { - background-color: _palette(accent); - box-shadow: none; - - &:hover { - background-color: desaturate(lighten(_palette(accent), 3), 1.5); - } - - &:active { - background-color: saturate(darken(_palette(accent), 3), 1.5); - } - - &.icon { - &:before { - color: mix(_palette(fg-bold), _palette(accent), 25%); - } - } - } - - &.fit { - display: block; - margin: 0 0 (_size(element-margin) * 0.5) 0; - width: 100%; - } - - &.small { - font-size: 0.6em; - } - - &.big { - font-size: 1em; - } - - &.disabled, - &:disabled { - opacity: 0.25; - } - - @include breakpoint(xsmall) { - padding: 0; - } - } \ No newline at end of file diff --git a/assets/sass/components/_features.scss b/assets/sass/components/_features.scss deleted file mode 100644 index 9c6041c..0000000 --- a/assets/sass/components/_features.scss +++ /dev/null @@ -1,71 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Features */ - - .features { - @include vendor('display', 'flex'); - @include vendor('flex-wrap', 'wrap'); - margin: 0 0 _size(element-margin) 0; - - article { - @include padding(1.75em, 1.75em); - background-color: desaturate(lighten(_palette(bg), 3), 1.5); - border-radius: _size(border-radius); - margin: (_size(section-spacing, large) * 0.5) _size(section-spacing, large) (_size(section-spacing, large) * 0.5) 0; - width: calc(50% - #{_size(section-spacing, large) * 0.5}); - - &:nth-child(2n) { - margin-right: 0; - } - - .image { - border-radius: _size(border-radius) _size(border-radius) 0 0; - display: block; - margin-bottom: 1.75em; - margin-left: -1.75em; - margin-top: -1.75em; - position: relative; - width: calc(100% + #{3.5em}); - - img { - border-radius: _size(border-radius) _size(border-radius) 0 0; - width: 100%; - } - } - } - - @include breakpoint(medium) { - article { - margin: (_size(section-spacing, medium) * 0.5) _size(section-spacing, medium) (_size(section-spacing, medium) * 0.5) 0; - width: calc(50% - #{_size(section-spacing, medium) * 0.5}); - } - } - - @include breakpoint(small) { - article { - @include padding(1.5em, 1.5em); - margin: (_size(section-spacing, small) * 0.5) _size(section-spacing, small) (_size(section-spacing, small) * 0.5) 0; - width: calc(50% - #{_size(section-spacing, small) * 0.5} - 1px); - - .image { - margin-bottom: 1.5em; - margin-left: -1.5em; - margin-top: -1.5em; - width: calc(100% + #{3em}); - } - } - } - - @include breakpoint(xsmall) { - display: block; - - article { - width: 100%; - margin: 0 0 _size(element-margin) 0 !important; - } - } - } \ No newline at end of file diff --git a/assets/sass/components/_form.scss b/assets/sass/components/_form.scss deleted file mode 100644 index 2b61b5d..0000000 --- a/assets/sass/components/_form.scss +++ /dev/null @@ -1,206 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Form */ - - form { - margin: 0 0 _size(element-margin) 0; - - .field { - margin: 0 0 _size(element-margin) 0; - - label { - margin-top: _size(element-margin) * -0.75; - } - - &:first-child { - label { - margin-top: 0; - } - } - } - - > :last-child { - margin-bottom: 0; - } - } - - label { - color: _palette(fg-bold); - display: block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - letter-spacing: _font(kern-heading); - margin: 0 0 (_size(element-margin) * 0.35) 0; - text-transform: uppercase; - } - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - select, - textarea { - @include vendor('appearance', 'none'); - background: _palette(border-bg); - border-radius: _size(border-radius); - border: none; - border: solid 2px _palette(border); - color: inherit; - display: block; - outline: 0; - padding: 0 1em; - text-decoration: none; - width: 100%; - - &:invalid { - box-shadow: none; - } - - &:focus { - border-color: desaturate(lighten(_palette(accent), 6), 3); - } - } - - .select-wrapper { - @include icon; - display: block; - position: relative; - - &:before { - color: _palette(border); - content: '\f078'; - display: block; - height: _size(element-height); - line-height: _size(element-height); - pointer-events: none; - position: absolute; - right: 0; - text-align: center; - top: 0; - width: _size(element-height); - } - - select::-ms-expand { - display: none; - } - } - - select { - option { - color: _palette(fg-bold); - background: _palette(bg); - } - } - - input[type="text"], - input[type="password"], - input[type="email"], - select { - height: _size(element-height); - } - - textarea { - padding: 0.75em 1em; - } - - input[type="checkbox"], - input[type="radio"], { - @include vendor('appearance', 'none'); - display: block; - float: left; - margin-right: -2em; - opacity: 0; - width: 1em; - z-index: -1; - - & + label { - @include icon; - color: _palette(fg); - cursor: pointer; - display: inline-block; - font-size: 1em; - font-family: _font(family); - text-transform: none; - letter-spacing: 0; - font-weight: _font(weight); - padding-left: (_size(element-height) * 0.6) + 0.75em; - padding-right: 0.75em; - position: relative; - - &:before { - background: _palette(border-bg); - border-radius: _size(border-radius); - border: solid 2px _palette(border); - content: ''; - display: inline-block; - height: (_size(element-height) * 0.6); - left: 0; - line-height: (_size(element-height) * 0.575); - position: absolute; - text-align: center; - top: 0; - width: (_size(element-height) * 0.6); - } - } - - &:checked + label { - &:before { - background: _palette(fg-bold); - border-color: _palette(fg-bold); - content: '\f00c'; - color: _palette(bg); - } - } - - &:focus + label { - &:before { - border-color: _palette(accent); - } - } - } - - input[type="checkbox"] { - & + label { - &:before { - border-radius: _size(border-radius); - } - } - } - - input[type="radio"] { - & + label { - &:before { - border-radius: 100%; - } - } - } - - ::-webkit-input-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - :-moz-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - ::-moz-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - :-ms-input-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } - - .polyfill-placeholder { - color: _palette(fg-light) !important; - opacity: 1.0; - } \ No newline at end of file diff --git a/assets/sass/components/_icon.scss b/assets/sass/components/_icon.scss deleted file mode 100644 index f0c4a96..0000000 --- a/assets/sass/components/_icon.scss +++ /dev/null @@ -1,17 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Icon */ - - .icon { - @include icon; - border-bottom: none; - position: relative; - - > .label { - display: none; - } - } \ No newline at end of file diff --git a/assets/sass/components/_image.scss b/assets/sass/components/_image.scss deleted file mode 100644 index b8f6a48..0000000 --- a/assets/sass/components/_image.scss +++ /dev/null @@ -1,60 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Image */ - - .image { - border-radius: _size(border-radius); - border: 0; - display: inline-block; - position: relative; - - img { - border-radius: _size(border-radius); - display: block; - } - - &.left, - &.right { - max-width: 40%; - - img { - width: 100%; - } - } - - &.left { - float: left; - padding: 0 1.5em 1em 0; - top: 0.25em; - } - - &.right { - float: right; - padding: 0 0 1em 1.5em; - top: 0.25em; - } - - &.fit { - display: block; - margin: 0 0 _size(element-margin) 0; - width: 100%; - - img { - width: 100%; - } - } - - &.main { - display: block; - margin: 0 0 (_size(element-margin) * 1.5) 0; - width: 100%; - - img { - width: 100%; - } - } - } \ No newline at end of file diff --git a/assets/sass/components/_list.scss b/assets/sass/components/_list.scss deleted file mode 100644 index 224ccc1..0000000 --- a/assets/sass/components/_list.scss +++ /dev/null @@ -1,284 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* List */ - - ol { - list-style: decimal; - margin: 0 0 _size(element-margin) 0; - padding-left: 1.25em; - - li { - padding-left: 0.25em; - } - } - - ul { - list-style: disc; - margin: 0 0 _size(element-margin) 0; - padding-left: 1em; - - li { - padding-left: 0.5em; - } - - &.alt { - list-style: none; - padding-left: 0; - - li { - border-top: solid 1px _palette(border); - padding: 0.5em 0; - - &:first-child { - border-top: 0; - padding-top: 0; - } - } - } - - &.icons { - cursor: default; - list-style: none; - padding-left: 0; - - li { - display: inline-block; - padding: 0 1em 0 0; - - &:last-child { - padding-right: 0; - } - - .icon { - &:before { - font-size: 1.25em; - } - } - } - } - - &.actions { - cursor: default; - list-style: none; - padding-left: 0; - - li { - display: inline-block; - padding: 0 (_size(element-margin) * 0.5) 0 0; - vertical-align: middle; - - &:last-child { - padding-right: 0; - } - } - - &.small { - li { - padding: 0 (_size(element-margin) * 0.25) 0 0; - } - } - - &.vertical { - li { - display: block; - padding: (_size(element-margin) * 0.5) 0 0 0; - - &:first-child { - padding-top: 0; - } - - > * { - margin-bottom: 0; - } - } - - &.small { - li { - padding: (_size(element-margin) * 0.25) 0 0 0; - - &:first-child { - padding-top: 0; - } - } - } - } - - &.fit { - display: table; - margin-left: (_size(element-margin) * -0.5); - padding: 0; - table-layout: fixed; - width: calc(100% + #{(_size(element-margin) * 0.5)}); - - li { - display: table-cell; - padding: 0 0 0 (_size(element-margin) * 0.5); - - > * { - margin-bottom: 0; - } - } - - &.small { - margin-left: (_size(element-margin) * -0.25); - width: calc(100% + #{(_size(element-margin) * 0.25)}); - - li { - padding: 0 0 0 (_size(element-margin) * 0.25); - } - } - } - - @include breakpoint(xsmall) { - margin: 0 0 _size(element-margin) 0; - - li { - padding: (_size(element-margin) * 0.5) 0 0 0; - display: block; - text-align: center; - width: 100%; - - &:first-child { - padding-top: 0; - } - - > * { - width: 100%; - margin: 0 !important; - } - } - - &.small { - li { - padding: (_size(element-margin) * 0.25) 0 0 0; - - &:first-child { - padding-top: 0; - } - } - } - } - } - - &.contact { - list-style: none; - padding: 0; - - li { - @include icon; - margin: (_size(element-margin) * 1.25) 0 0 0; - padding: 0 0 0 3.25em; - position: relative; - - &:before { - border-radius: 100%; - border: solid 2px _palette(border); - display: inline-block; - font-size: 0.8em; - height: 2.5em; - left: 0; - line-height: 2.35em; - position: absolute; - text-align: center; - top: 0; - width: 2.5em; - } - - &:first-child { - margin-top: 0; - } - } - - @include breakpoint(small) { - li { - margin: (_size(element-margin) * 0.75) 0 0 0; - } - } - } - - &.pagination { - cursor: default; - list-style: none; - padding-left: 0; - - li { - display: inline-block; - padding-left: 0; - vertical-align: middle; - - > .page { - @include vendor('transition', ( - 'background-color #{_duration(transition)} ease-in-out', - 'color #{_duration(transition)} ease-in-out' - )); - border-bottom: 0; - border-radius: _size(border-radius); - display: inline-block; - height: 1.5em; - line-height: 1.5em; - margin: 0 0.125em; - min-width: 1.5em; - padding: 0 0.5em; - text-align: center; - - &:hover { - background-color: _palette(border-bg); - } - - &.active { - background-color: _palette(accent); - } - } - - &:first-child { - padding-right: 0.75em; - } - - &:last-child { - padding-left: 0.75em; - } - } - - @include breakpoint(xsmall) { - li { - &:nth-child(n+2):nth-last-child(n+2) { - display: none; - } - - .button { - width: 100%; - } - - &:first-child { - width: calc(50% - 2px); - text-align: left; - padding-right: 0.325em; - } - - &:last-child { - width: calc(50% - 2px); - text-align: right; - padding-left: 0.325em; - } - } - } - } - } - - dl { - margin: 0 0 _size(element-margin) 0; - - dt { - display: block; - font-weight: _font(weight-bold); - margin: 0 0 (_size(element-margin) * 0.5) 0; - } - - dd { - margin-left: _size(element-margin); - } - } \ No newline at end of file diff --git a/assets/sass/components/_section.scss b/assets/sass/components/_section.scss deleted file mode 100644 index fe22c6a..0000000 --- a/assets/sass/components/_section.scss +++ /dev/null @@ -1,13 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Section/Article */ - - section, article { - &.special { - text-align: center; - } - } \ No newline at end of file diff --git a/assets/sass/components/_table.scss b/assets/sass/components/_table.scss deleted file mode 100644 index 6d5c37c..0000000 --- a/assets/sass/components/_table.scss +++ /dev/null @@ -1,81 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Table */ - - .table-wrapper { - -webkit-overflow-scrolling: touch; - overflow-x: auto; - } - - table { - margin: 0 0 _size(element-margin) 0; - width: 100%; - - tbody { - tr { - border: solid 1px _palette(border); - border-left: 0; - border-right: 0; - - &:nth-child(2n + 1) { - background-color: _palette(border-bg); - } - } - } - - td { - padding: 0.75em 0.75em; - } - - th { - color: _palette(fg-bold); - font-size: 0.9em; - font-weight: _font(weight-bold); - padding: 0 0.75em 0.75em 0.75em; - text-align: left; - } - - thead { - border-bottom: solid 2px _palette(border); - } - - tfoot { - border-top: solid 2px _palette(border); - } - - &.alt { - border-collapse: separate; - - tbody { - tr { - td { - border: solid 1px _palette(border); - border-left-width: 0; - border-top-width: 0; - - &:first-child { - border-left-width: 1px; - } - } - - &:first-child { - td { - border-top-width: 1px; - } - } - } - } - - thead { - border-bottom: 0; - } - - tfoot { - border-top: 0; - } - } - } \ No newline at end of file diff --git a/assets/sass/ie8.scss b/assets/sass/ie8.scss deleted file mode 100644 index bc084c7..0000000 --- a/assets/sass/ie8.scss +++ /dev/null @@ -1,190 +0,0 @@ -@import 'libs/vars'; -@import 'libs/functions'; -@import 'libs/mixins'; -@import 'libs/skel'; - -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - -/* Basic */ - - body { - -ms-behavior: url('assets/js/backgroundsize.min.htc'); - } - -/* Type */ - - h1, h2, h3, h4, h5, h6 { - &.major { - border-bottom: solid 2px _palette(fg-bold); - } - } - - blockquote { - border-left: solid 4px _palette(fg-bold); - } - - code { - border: solid 2px _palette(fg-bold); - } - - hr { - border-bottom: solid 2px _palette(fg-bold); - } - -/* Button */ - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - position: relative; - -ms-behavior: url('assets/js/ie/PIE.htc'); - border: solid 2px _palette(fg-bold); - - &.special { - border: 0; - } - } - -/* Form */ - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - select, - textarea { - position: relative; - -ms-behavior: url('assets/js/ie/PIE.htc'); - background: transparent; - border: solid 2px _palette(fg-bold); - } - -/* Table */ - - table { - tbody { - tr { - border: solid 1px _palette(fg-bold); - border-left: 0; - border-right: 0; - } - } - - &.alt { - tbody { - tr { - td { - border: solid 1px _palette(fg-bold); - border-left-width: 0; - border-top-width: 0; - - &:first-child { - border-left-width: 1px; - } - } - - &:first-child { - td { - border-top-width: 1px; - } - } - } - } - - thead { - border-bottom: 0; - } - - tfoot { - border-top: 0; - } - } - } - -/* Features */ - - .features { - article { - -ms-behavior: url('assets/js/ie/PIE.htc'); - position: relative; - width: 44%; - - .image { - margin-top: 0; - margin-left: 0; - width: 100%; - } - } - } - -/* Menu */ - - #menu { - background: _palette(bg); - - h2 { - border-bottom: solid 2px _palette(fg-bold); - } - } - -/* Header */ - - #header { - background-color: desaturate(lighten(_palette(bg), 3), 1.5); - } - -/* Wrapper */ - - .wrapper { - &:before, &:after { - display: none; - } - - margin: 0; - - &.spotlight { - .image { - -ms-behavior: url('assets/js/ie/PIE.htc'); - - img { - position: relative; - -ms-behavior: url('assets/js/ie/PIE.htc'); - } - } - } - } - -/* Banner */ - - #banner { - .logo { - .icon { - border: solid 2px _palette(fg-bold); - -ms-behavior: url('assets/js/ie/PIE.htc'); - } - } - - h2 { - border-bottom: solid 2px _palette(fg-bold); - } - } - -/* Footer */ - - #footer { - .inner { - .copyright { - border-top: solid 2px _palette(fg-bold); - - li { - border-left: solid 2px _palette(fg-bold); - } - } - } - } \ No newline at end of file diff --git a/assets/sass/ie9.scss b/assets/sass/ie9.scss index e3a87ad..3acd441 100644 --- a/assets/sass/ie9.scss +++ b/assets/sass/ie9.scss @@ -1,106 +1,54 @@ -@import 'libs/vars'; -@import 'libs/functions'; -@import 'libs/mixins'; -@import 'libs/skel'; - -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - -/* Basic */ - - body { - background-color: _palette(bg); - background-image: url('../../images/bg.jpg'); - background-size: cover; - background-attachment: fixed; - background-position: center; - - &:before { - background: transparentize(_palette(bg), 0.2); - content: ''; - display: block; - height: 100%; - left: 0; - position: fixed; - top: 0; - width: 100%; - } - - > * { - position: relative; - z-index: 1; - } - } - -/* Features */ - - .features { - article { - display: inline-block; - width: 45%; - } - } - -/* Menu */ - - #menu { - .inner { - margin: 4em auto; - } - } - -/* Wrapper */ - - #wrapper { - > header { - background: none !important; - } - } - - .wrapper { - &.spotlight { - .inner { - text-align: left !important; - } - - .image { - display: inline-block; - margin: 0 _size(section-spacing, large) _size(element-margin) 0 !important; - vertical-align: middle; - width: 24%; - } - - .content { - display: inline-block; - vertical-align: middle; - width: 70%; - } - } - } - -/* Banner */ - - #banner { - background: none !important; - } - -/* Footer */ - - #footer { - background: none !important; - - .inner { - form { - display: inline-block; - width: 45%; - } - - .contact { - display: inline-block; - width: 45%; - } - } - } \ No newline at end of file +@import 'libs/vars'; +@import 'libs/functions'; +@import 'libs/mixins'; +@import 'libs/skel'; + +/* +Landed by HTML5 UP +html5up.net | @ajlkn +Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +*/ + +/* Loader */ +body.landing { + &::before, + &::after { + display: none !important; + } +} + +/* Icon */ +.icon { + &.alt { + color: inherit !important; + } + + &.major { + &.alt { + &::before { + color: _palette(fg-bold) !important; + } + } + } +} + +/* Banner */ +#banner { + &::after { + background-color: _palette(bg-transparent); + } +} + +/* Footer */ +#footer { + .icons { + .icon { + &.alt { + &::before { + color: _palette(fg-bold) !important; + } + } + } + } +} + diff --git a/assets/sass/layout/_banner.scss b/assets/sass/layout/_banner.scss deleted file mode 100644 index c9dcf56..0000000 --- a/assets/sass/layout/_banner.scss +++ /dev/null @@ -1,140 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Banner */ - - #banner { - @include padding(10em, 0, (0, 0, _size(wrapper-edges, large) * -0.5, 0)); - - .inner { - margin: 0 auto; - width: _size(inner); - } - - .logo { - @include vendor('transition', ( - 'opacity 2s ease', - 'transform 1s ease', - )); - @include vendor('transform', 'translateY(0)'); - opacity: 1; - margin: 0 0 (_size(element-margin) * 0.65) 0; - - .icon { - border-radius: 100%; - border: solid 2px _palette(border); - cursor: default; - display: inline-block; - font-size: 2em; - height: 2.25em; - line-height: 2.25em; - text-align: center; - width: 2.25em; - } - } - - h2 { - @include vendor('transition', ( - 'opacity 0.5s ease', - 'transform 0.5s ease', - 'filter 0.25s ease', - )); - @include vendor('transform', 'translateX(0)'); - @include vendor('transition-delay', '0.65s'); - @include vendor('filter', 'blur(0)'); - opacity: 1; - border-bottom: solid 2px _palette(border); - font-size: 2.25em; - margin-bottom: _size(element-margin) * 0.4; - padding-bottom: _size(element-margin) * 0.2; - } - - p { - @include vendor('transition', ( - 'opacity 0.5s ease', - 'transform 0.5s ease', - 'filter 0.25s ease', - )); - @include vendor('transform', 'translateX(0)'); - @include vendor('transition-delay', '0.8s'); - @include vendor('filter', 'blur(0)'); - opacity: 1; - font-family: _font(family-heading); - font-size: 1em; - font-weight: _font(weight-heading); - letter-spacing: _font(kern-heading); - line-height: 2; - text-transform: uppercase; - } - - @include breakpoint(large) { - @include padding(7em, 0, (0, 0, _size(wrapper-edges, large) * 0.5, 0)); - - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-position: center, - center; - - margin-bottom: (_size(wrapper-edges, large) * -1); - } - - @include breakpoint(medium) { - @include padding(12em, 3em, (0, 0, _size(wrapper-edges, medium) * 0.5, 0)); - - margin-bottom: (_size(wrapper-edges, medium) * -1); - - .inner { - width: 100%; - } - } - - @include breakpoint(small) { - @include padding(5em, 2em, (0, 0, _size(wrapper-edges, small) * 0.5, 0)); - - margin-bottom: (_size(wrapper-edges, small) * -1); - - .logo { - margin: 0 0 (_size(element-margin) * 0.5) 0; - - .icon { - font-size: 1.5em; - } - } - - h2 { - font-size: 1.5em; - } - - p { - font-size: 0.8em; - } - } - - body.is-loading & { - .logo { - @include vendor('transform', 'translateY(0.5em)'); - opacity: 0; - } - - h2 { - opacity: 0; - @include vendor('transform', 'translateX(0.25em)'); - @include vendor('filter', 'blur(2px)'); - } - - p { - opacity: 0; - @include vendor('transform', 'translateX(0.5em)'); - @include vendor('filter', 'blur(2px)'); - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_footer.scss b/assets/sass/layout/_footer.scss deleted file mode 100644 index cded8b4..0000000 --- a/assets/sass/layout/_footer.scss +++ /dev/null @@ -1,143 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Footer */ - - #footer { - .inner { - @include padding(5em, 0); - @include vendor('display', 'flex'); - @include vendor('flex-direction', 'row'); - @include vendor('flex-wrap', 'wrap'); - margin: 0 auto; - width: _size(inner); - - > * { - width: 100%; - } - - form { - margin: 0 _size(section-spacing, large) 0 0; - width: calc(50% - #{_size(section-spacing, large) * 0.5}); - } - - .contact { - width: calc(50% - #{_size(section-spacing, large) * 0.5}); - } - - .copyright { - border-top: solid 2px _palette(border); - list-style: none; - margin: (_size(element-margin) * 2) 0 _size(element-margin) 0; - padding: _size(element-margin) 0 0 0; - width: 100%; - - li { - border-left: solid 2px _palette(border); - color: _palette(fg-light); - display: inline-block; - font-size: 0.9em; - line-height: 1; - margin-left: 1em; - padding: 0; - padding-left: 1em; - - &:first-child { - border-left: 0; - margin-left: 0; - padding-left: 0; - } - - a { - color: inherit; - } - } - } - } - - @include breakpoint(large) { - - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-position: center, - center; - - margin-top: (_size(wrapper-edges, large) * -1); - padding-top: _size(wrapper-edges, large); - - } - - @include breakpoint(medium) { - margin-top: (_size(wrapper-edges, medium) * -1); - padding-top: _size(wrapper-edges, medium); - - .inner { - @include padding(3em, 3em); - display: block; - width: 100%; - - form { - width: 100%; - margin: 0 0 (_size(element-margin) * 2) 0; - } - - .contact { - width: 100%; - margin: 0 0 (_size(element-margin) * 2) 0; - } - - .copyright { - margin: (_size(element-margin) * 2) 0 _size(element-margin) 0; - } - } - } - - @include breakpoint(small) { - margin-top: (_size(wrapper-edges, small) * -1); - padding-top: _size(wrapper-edges, small); - - .inner { - @include padding(2em, 2em); - - form { - margin: 0 0 (_size(element-margin) * 1.5) 0; - } - - .contact { - margin: 0 0 (_size(element-margin) * 1.5) 0; - } - } - } - - @include breakpoint(xsmall) { - .inner { - .copyright { - li { - border-left: 0; - display: block; - margin: 1em 0 0 0; - padding-left: 0; - - &:first-child { - margin-top: 0; - } - } - } - } - } - - @include breakpoint(xxsmall) { - .inner { - @include padding(2em, 1.5em); - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_header.scss b/assets/sass/layout/_header.scss deleted file mode 100644 index cdd57a3..0000000 --- a/assets/sass/layout/_header.scss +++ /dev/null @@ -1,140 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Header */ - - #header { - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - background-color: transparentize(desaturate(lighten(_palette(bg), 3), 1.5), 0.05); - height: 3.5em; - left: 0; - line-height: 3.5em; - padding: 0 1.25em; - position: fixed; - top: 0; - width: 100%; - z-index: _misc(z-index-base); - - h1 { - @include vendor('transition', ( - 'opacity #{_duration(transition)} ease-in-out', - 'visibility #{_duration(transition)}' - )); - border-bottom: 0; - font-size: 0.8em; - margin-bottom: 0; - opacity: 1; - visibility: visible; - - a { - border: 0; - } - } - - nav { - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading-bold); - height: 3em; - letter-spacing: _font(kern-heading); - line-height: 3em; - position: absolute; - right: 0.7em; - text-transform: uppercase; - top: 0.7em; - - a { - border: 0; - display: inline-block; - padding: 0 1em; - - &:before { - float: right; - margin-left: 0.75em; - } - - &[href="#menu"] { - @include icon; - @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); - border-radius: _size(border-radius); - box-shadow: inset 0 0 0 2px _palette(border); - padding: 0 1.35em; - - &:before { - content: '\f0c9'; - } - - &:hover { - background-color: _palette(border-bg); - } - - &:active { - background-color: _palette(border2-bg); - } - } - } - } - - &.alt { - background-color: transparent; - - h1 { - opacity: 0; - visibility: hidden; - } - } - - @include breakpoint(small) { - height: 2.75em; - line-height: 2.75em; - - nav { - top: 0; - right: 0; - height: inherit; - line-height: inherit; - - a { - height: inherit; - line-height: inherit; - - &[href="#menu"] { - box-shadow: none; - padding: 0 1em; - border-radius: 0; - - &:hover, &:active { - background-color: inherit; - } - } - } - } - } - - @include breakpoint(xsmall) { - nav { - a { - &[href="#menu"] { - width: 4em; - white-space: nowrap; - text-indent: 4em; - position: relative; - - &:before { - width: inherit; - position: absolute; - top: 0; - left: 0; - text-indent: 0; - text-align: right; - margin-left: 0; - padding-right: 1.25em; - } - } - } - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_menu.scss b/assets/sass/layout/_menu.scss deleted file mode 100644 index adbc452..0000000 --- a/assets/sass/layout/_menu.scss +++ /dev/null @@ -1,127 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Menu */ - - #page-wrapper { - @include vendor('transition', 'filter 0.25s ease'); - } - - #menu { - @include vendor('align-items', 'center'); - @include vendor('display', 'flex'); - @include vendor('justify-content', 'center'); - @include vendor('pointer-events', 'none'); - @include vendor('transition', ('opacity #{_duration(menu)} ease', 'visibility #{_duration(menu)}')); - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); - background: transparentize(_palette(bg), 0.2); - cursor: default; - height: 100%; - left: 0; - opacity: 0; - position: fixed; - text-align: center; - top: 0; - visibility: hidden; - width: 100%; - - .inner { - @include padding(2.5em, 1.5em); - @include vendor('transform', 'translateY(0.5em)'); - @include vendor('transition', ('opacity #{_duration(menu)} ease','transform #{_duration(menu)} ease')); - -webkit-overflow-scrolling: touch; - background: _palette(accent); - border-radius: _size(border-radius); - display: block; - max-width: 100%; - opacity: 0; - position: relative; - width: 18em; - } - - h2 { - border-bottom: solid 2px _palette(border); - padding-bottom: 1em; - } - - .close { - background-image: url('images/close.svg'); - background-position: 75% 25%; - background-repeat: no-repeat; - background-size: 2em 2em; - border: 0; - content: ''; - display: block; - height: 4em; - overflow: hidden; - position: absolute; - right: 0; - text-align: center; - text-indent: 4em; - top: 0; - width: 4em; - } - - .links { - list-style: none; - margin-bottom: (_size(element-margin) - 0.5em); - padding: 0; - - li { - padding: 0; - - a { - border-radius: _size(border-radius); - border: 0; - display: block; - font-family: _font(family-heading); - font-size: 0.8em; - font-weight: _font(weight-heading); - letter-spacing: _font(kern-heading); - line-height: 1.85em; - padding: 0.75em 0; - text-transform: uppercase; - - &:hover { - background: saturate(darken(_palette(accent), 3), 1.5); - } - } - } - } - - @include breakpoint(small) { - .inner { - max-height: 100%; - overflow-y: auto; - overflow-x: hidden; - - .close { - background-size: 1.5em 1.5em; - } - } - } - } - - body.is-menu-visible { - #page-wrapper { - @include vendor('filter', 'blur(1.5px)'); - } - - #menu { - @include vendor('pointer-events', 'auto'); - opacity: 1; - visibility: visible; - - .inner { - @include vendor('transform', 'translateY(0)'); - opacity: 1; - } - } - } \ No newline at end of file diff --git a/assets/sass/layout/_wrapper.scss b/assets/sass/layout/_wrapper.scss deleted file mode 100644 index 48b3a3b..0000000 --- a/assets/sass/layout/_wrapper.scss +++ /dev/null @@ -1,303 +0,0 @@ -/// -/// Solid State by HTML5 UP -/// html5up.net | @ajlkn -/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -/// - -/* Wrapper */ - - /// Sets the colors of the wrapper's top/bottom edges. - /// @param {string} $color Color. - @mixin wrapper-edges-color($color: black) { - &:before, &:after { - background-image: svg-url(''); - } - - &:before { - box-shadow: inset 0 -1px 0 0 $color, 0 1px 0 0 $color; - } - - &:after { - box-shadow: inset 0 -1px 0 0 $color, 0 1px 0 0 $color; - } - } - - #wrapper { - > header { - @include padding(7.5em, 0, (3.5em, 0, _size(wrapper-edges, large) * -0.5, 0)); - - .inner { - margin: 0 auto; - width: _size(inner); - } - - h2 { - border-bottom: solid 2px _palette(border); - font-size: 2em; - margin-bottom: _size(element-margin) * 0.4; - padding-bottom: _size(element-margin) * 0.2; - } - - p { - font-family: _font(family-heading); - font-size: 1em; - font-weight: _font(weight-heading); - letter-spacing: _font(kern-heading); - line-height: 2; - text-transform: uppercase; - } - } - - @include breakpoint(large) { - > header { - @include padding(5em, 0, (4em, 0, _size(wrapper-edges, large) * 0.5, 0)); - - background-color: _palette(bg); - - background-image: linear-gradient(to top, transparentize(_palette(bg), 0.2), transparentize(_palette(bg), 0.2)), - url('../../images/bg.jpg'); - - background-size: auto, - cover; - - background-position: center, - 0% 30%; - - margin-bottom: (_size(wrapper-edges, large) * -1); - } - } - - @include breakpoint(medium) { - > header { - @include padding(7em, 3em, (4em, 0, _size(wrapper-edges, medium) * 0.5, 0)); - - background-size: auto, - cover; - - background-position: center, - 0% 0%; - - margin-bottom: (_size(wrapper-edges, medium) * -1); - - .inner { - width: 100%; - } - } - } - - @include breakpoint(small) { - > header { - @include padding(3.75em, 2em, (2.75em, 0, _size(wrapper-edges, small) * 0.5, 0)); - - background-size: auto, - 125%; - - margin-bottom: (_size(wrapper-edges, small) * -1); - - h2 { - font-size: 1.25em; - } - - p { - font-size: 0.8em; - } - } - } - } - - .wrapper { - background-color: _palette(bg); - margin: _size(wrapper-edges, large) 0; - position: relative; - @include wrapper-edges-color(_palette(bg)); - - &:before, &:after { - background-repeat: no-repeat; - background-size: 100% 100%; - content: ''; - display: block; - height: _size(wrapper-edges, large); - position: absolute; - width: 100%; - } - - &:before { - left: 0; - top: (_size(wrapper-edges, large) * -1); - } - - &:after { - @include vendor('transform', 'scaleY(-1)'); - bottom: (_size(wrapper-edges, large) * -1); - left: 0; - } - - &.alt { - &:before { - @include vendor('transform', 'scaleX(-1)'); - } - - &:after { - @include vendor('transform', 'scaleY(-1) scaleX(-1)'); - } - } - - .inner { - @include padding(3em, 0); - margin: 0 auto; - width: _size(inner); - } - - @for $i from 2 through _misc(max-wrapper-styles) { - $j: 3 * ($i - 1); - $color: desaturate(lighten(_palette(bg), $j), $j * 0.5); - - &.style#{$i} { - background-color: $color; - @include wrapper-edges-color($color); - } - } - - &.spotlight { - @include wrapper-edges-color(_palette(accent)); - background-color: _palette(accent); - - .inner { - @include vendor('display', 'flex'); - @include vendor('align-items', 'center'); - @include vendor('flex-direction', 'row'); - } - - .image { - border-radius: 100%; - margin: 0 _size(section-spacing, large) _size(element-margin) 0; - width: 22em; - overflow: hidden; - -ms-flex: 1; - - img { - border-radius: 100%; - width: 100%; - } - } - - .content { - width: 100%; - -ms-flex: 2; - } - - &:nth-child(2n - 1) { - .inner { - @include vendor('flex-direction', 'row-reverse'); - text-align: right; - } - - .image { - margin: 0 0 _size(element-margin) _size(section-spacing, large); - } - } - - @for $i from 2 through _misc(max-wrapper-styles) { - $j: 3 * ($i - 1); - $color: saturate(darken(_palette(accent), $j), $j * 0.5); - - &.style#{$i} { - background-color: $color; - @include wrapper-edges-color($color); - } - } - } - - @include breakpoint(medium) { - margin: _size(wrapper-edges, medium) 0; - - &:before, &:after { - height: _size(wrapper-edges, medium); - } - - &:before { - top: (_size(wrapper-edges, medium) * -1); - } - - &:after { - bottom: (_size(wrapper-edges, medium) * -1); - left: 0; - } - - .inner { - @include padding(3em, 3em); - width: 100%; - } - - &.spotlight { - .image { - margin: 0 _size(section-spacing, medium) _size(element-margin) 0; - width: 32em; - } - - &:nth-child(2n - 1) { - .image { - margin: 0 0 _size(element-margin) _size(section-spacing, medium); - } - } - } - } - - @include breakpoint(small) { - margin: _size(wrapper-edges, small) 0; - - &:before, &:after { - height: _size(wrapper-edges, small); - } - - &:before { - top: (_size(wrapper-edges, small) * -1); - } - - &:after { - bottom: (_size(wrapper-edges, small) * -1); - left: 0; - } - - .inner { - @include padding(2em, 2em); - } - - &.spotlight { - .inner { - @include vendor('align-items', 'flex-start'); - } - - .image { - width: 19em; - margin: 0 _size(section-spacing, small) _size(element-margin) 0; - } - - &:nth-child(2n - 1) { - .image { - margin: 0 0 _size(element-margin) _size(section-spacing, small); - } - } - } - } - - @include breakpoint(xsmall) { - &.spotlight { - .inner { - display: block; - } - - .image { - margin: 0 0 (_size(element-margin) * 0.5) 0 !important; - max-width: 85%; - width: 12em; - } - } - } - - @include breakpoint(xxsmall) { - .inner { - @include padding(2em, 1.5em); - } - } - } \ No newline at end of file diff --git a/assets/sass/libs/_functions.scss b/assets/sass/libs/_functions.scss index 0e08c1a..4970282 100644 --- a/assets/sass/libs/_functions.scss +++ b/assets/sass/libs/_functions.scss @@ -2,33 +2,33 @@ /// @param {string} $keys Key(s). /// @return {string} Value. @function _duration($keys...) { - @return val($duration, $keys...); + @return val($duration, $keys...); } /// Gets a font value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _font($keys...) { - @return val($font, $keys...); + @return val($font, $keys...); } /// Gets a misc value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _misc($keys...) { - @return val($misc, $keys...); + @return val($misc, $keys...); } /// Gets a palette value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _palette($keys...) { - @return val($palette, $keys...); + @return val($palette, $keys...); } /// Gets a size value. /// @param {string} $keys Key(s). /// @return {string} Value. @function _size($keys...) { - @return val($size, $keys...); + @return val($size, $keys...); } \ No newline at end of file diff --git a/assets/sass/libs/_mixins.scss b/assets/sass/libs/_mixins.scss index d4bf3c8..b9178bc 100644 --- a/assets/sass/libs/_mixins.scss +++ b/assets/sass/libs/_mixins.scss @@ -1,25 +1,22 @@ -/// Makes an element's :before pseudoelement a FontAwesome icon. +/// Makes an element's :before pseudoelement a "Font Awesome 5 Free" icon. /// @param {string} $content Optional content value to use. /// @param {string} $where Optional pseudoelement to target (before or after). @mixin icon($content: false, $where: before) { - text-decoration: none; + text-decoration: none; - &:#{$where} { - - @if $content { - content: $content; - } - - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; - - } + &:#{$where} { + @if $content { + content: $content; + } + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-transform: none !important; + } } /// Applies padding to an element, taking the current element-margin value into account. @@ -27,19 +24,19 @@ /// @param {mixed} $lr Left/right padding. /// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left) /// @param {bool} $important If true, adds !important. -@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) { +@mixin padding($tb, $lr, $pad: (0, 0, 0, 0), $important: null) { - @if $important { - $important: '!important'; - } + @if $important { + $important: '!important'; + } - $x: 0.1em; + $x: 0.1em; - @if unit(_size(element-margin)) == 'rem' { - $x: 0.1rem; - } + @if unit(_size(element-margin)) == 'rem' { + $x: 0.1rem; + } - padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important}; + padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important}; } @@ -48,17 +45,17 @@ /// @return {string} Encoded SVG data URL. @function svg-url($svg) { - $svg: str-replace($svg, '"', '\''); - $svg: str-replace($svg, '%', '%25'); - $svg: str-replace($svg, '<', '%3C'); - $svg: str-replace($svg, '>', '%3E'); - $svg: str-replace($svg, '&', '%26'); - $svg: str-replace($svg, '#', '%23'); - $svg: str-replace($svg, '{', '%7B'); - $svg: str-replace($svg, '}', '%7D'); - $svg: str-replace($svg, ';', '%3B'); + $svg: str-replace($svg, '"', '\''); + $svg: str-replace($svg, '%', '%25'); + $svg: str-replace($svg, '<', '%3C'); + $svg: str-replace($svg, '>', '%3E'); + $svg: str-replace($svg, '&', '%26'); + $svg: str-replace($svg, '#', '%23'); + $svg: str-replace($svg, '{', '%7B'); + $svg: str-replace($svg, '}', '%7D'); + $svg: str-replace($svg, ';', '%3B'); - @return url("data:image/svg+xml;charset=utf8,#{$svg}"); + @return url("data:image/svg+xml;charset=utf8,#{$svg}"); } @@ -67,46 +64,44 @@ /// @param {string} $horizontal-align Horizontal alignment of cells. @mixin flexgrid-base($vertical-align: null, $horizontal-align: null) { - // Grid. - @include vendor('display', 'flex'); - @include vendor('flex-wrap', 'wrap'); + // Grid. + @include vendor('display', 'flex'); + @include vendor('flex-wrap', 'wrap'); - // Vertical alignment. - @if ($vertical-align == top) { - @include vendor('align-items', 'flex-start'); - } - @else if ($vertical-align == bottom) { - @include vendor('align-items', 'flex-end'); - } - @else if ($vertical-align == center) { - @include vendor('align-items', 'center'); - } - @else { - @include vendor('align-items', 'stretch'); - } + // Vertical alignment. + @if ($vertical-align == top) { + @include vendor('align-items', 'flex-start'); + } + @else if ($vertical-align == bottom) { + @include vendor('align-items', 'flex-end'); + } + @else if ($vertical-align == center) { + @include vendor('align-items', 'center'); + } + @else { + @include vendor('align-items', 'stretch'); + } - // Horizontal alignment. - @if ($horizontal-align != null) { - text-align: $horizontal-align; - } - - // Cells. - > * { - @include vendor('flex-shrink', '1'); - @include vendor('flex-grow', '0'); - } + // Horizontal alignment. + @if ($horizontal-align != null) { + text-align: $horizontal-align; + } + // Cells. + > * { + @include vendor('flex-shrink', '1'); + @include vendor('flex-grow', '0'); + } } /// Sets up flexgrid columns. /// @param {integer} $columns Columns. @mixin flexgrid-columns($columns) { - > * { - $cell-width: 100% / $columns; - width: #{$cell-width}; - } - + > * { + $cell-width: 100% / $columns; + width: #{$cell-width}; + } } /// Sets up flexgrid gutters. @@ -114,14 +109,13 @@ /// @param {number} $gutters Gutters. @mixin flexgrid-gutters($columns, $gutters) { - // Apply padding. - > * { - $cell-width: 100% / $columns; - - padding: ($gutters * 0.5); - width: $cell-width; - } + // Apply padding. + > * { + $cell-width: 100% / $columns; + padding: ($gutters * 0.5); + width: $cell-width; + } } /// Sets up flexgrid gutters (flush). @@ -129,41 +123,41 @@ /// @param {number} $gutters Gutters. @mixin flexgrid-gutters-flush($columns, $gutters) { - // Apply padding. - > * { - $cell-width: 100% / $columns; - $cell-width-pad: $gutters / $columns; + // Apply padding. + > * { + $cell-width: 100% / $columns; + $cell-width-pad: $gutters / $columns; - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + padding: ($gutters * 0.5); + width: calc(#{$cell-width} + #{$cell-width-pad}); + } - // Clear top/bottom gutters. - > :nth-child(-n + #{$columns}) { - padding-top: 0; - } + // Clear top/bottom gutters. + > :nth-child(-n + #{$columns}) { + padding-top: 0; + } - > :nth-last-child(-n + #{$columns}) { - padding-bottom: 0; - } + > :nth-last-child(-n + #{$columns}) { + padding-bottom: 0; + } - // Clear left/right gutters. - > :nth-child(#{$columns}n + 1) { - padding-left: 0; - } + // Clear left/right gutters. + > :nth-child(#{$columns}n + 1) { + padding-left: 0; + } - > :nth-child(#{$columns}n) { - padding-right: 0; - } + > :nth-child(#{$columns}n) { + padding-right: 0; + } - // Adjust widths of leftmost and rightmost cells. - > :nth-child(#{$columns}n + 1), - > :nth-child(#{$columns}n) { - $cell-width: 100% / $columns; - $cell-width-pad: ($gutters / $columns) - ($gutters / 2); + // Adjust widths of leftmost and rightmost cells. + > :nth-child(#{$columns}n + 1), + > :nth-child(#{$columns}n) { + $cell-width: 100% / $columns; + $cell-width-pad: ($gutters / $columns) - ($gutters / 2); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + width: calc(#{$cell-width} + #{$cell-width-pad}); + } } @@ -174,60 +168,58 @@ /// @param {integer} $prev-columns Previous columns. @mixin flexgrid-gutters-flush-reset($columns, $gutters, $prev-columns) { - // Apply padding. - > * { - $cell-width: 100% / $prev-columns; - $cell-width-pad: $gutters / $prev-columns; + // Apply padding. + > * { + $cell-width: 100% / $prev-columns; + $cell-width-pad: $gutters / $prev-columns; - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + padding: ($gutters * 0.5); + width: calc(#{$cell-width} + #{$cell-width-pad}); + } - // Clear top/bottom gutters. - > :nth-child(-n + #{$prev-columns}) { - padding-top: ($gutters * 0.5); - } + // Clear top/bottom gutters. + > :nth-child(-n + #{$prev-columns}) { + padding-top: ($gutters * 0.5); + } - > :nth-last-child(-n + #{$prev-columns}) { - padding-bottom: ($gutters * 0.5); - } + > :nth-last-child(-n + #{$prev-columns}) { + padding-bottom: ($gutters * 0.5); + } - // Clear left/right gutters. - > :nth-child(#{$prev-columns}n + 1) { - padding-left: ($gutters * 0.5); - } + // Clear left/right gutters. + > :nth-child(#{$prev-columns}n + 1) { + padding-left: ($gutters * 0.5); + } - > :nth-child(#{$prev-columns}n) { - padding-right: ($gutters * 0.5); - } + > :nth-child(#{$prev-columns}n) { + padding-right: ($gutters * 0.5); + } - // Adjust widths of leftmost and rightmost cells. - > :nth-child(#{$prev-columns}n + 1), - > :nth-child(#{$prev-columns}n) { - $cell-width: 100% / $columns; - $cell-width-pad: $gutters / $columns; - - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } + // Adjust widths of leftmost and rightmost cells. + > :nth-child(#{$prev-columns}n + 1), + > :nth-child(#{$prev-columns}n) { + $cell-width: 100% / $columns; + $cell-width-pad: $gutters / $columns; + padding: ($gutters * 0.5); + width: calc(#{$cell-width} + #{$cell-width-pad}); + } } /// Adds debug styles to current flexgrid element. @mixin flexgrid-debug() { - box-shadow: 0 0 0 1px red; + box-shadow: 0 0 0 1px red; - > * { - box-shadow: inset 0 0 0 1px blue; - position: relative; - - > * { - position: relative; - box-shadow: inset 0 0 0 1px green; - } - } + > * { + box-shadow: inset 0 0 0 1px blue; + position: relative; + > * { + position: relative; + box-shadow: inset 0 0 0 1px green; + } + } } /// Initializes the current element as a flexgrid. @@ -236,87 +228,81 @@ /// @param {bool} $flush If true, clears padding around the very edge of the grid. @mixin flexgrid($settings: ()) { - // Settings. + // Settings. - // Debug. - $debug: false; + // Debug. + $debug: false; - @if (map-has-key($settings, 'debug')) { - $debug: map-get($settings, 'debug'); - } + @if (map-has-key($settings, 'debug')) { + $debug: map-get($settings, 'debug'); + } - // Vertical align. - $vertical-align: null; + // Vertical align. + $vertical-align: null; - @if (map-has-key($settings, 'vertical-align')) { - $vertical-align: map-get($settings, 'vertical-align'); - } + @if (map-has-key($settings, 'vertical-align')) { + $vertical-align: map-get($settings, 'vertical-align'); + } - // Horizontal align. - $horizontal-align: null; + // Horizontal align. + $horizontal-align: null; - @if (map-has-key($settings, 'horizontal-align')) { - $horizontal-align: map-get($settings, 'horizontal-align'); - } + @if (map-has-key($settings, 'horizontal-align')) { + $horizontal-align: map-get($settings, 'horizontal-align'); + } - // Columns. - $columns: null; + // Columns. + $columns: null; - @if (map-has-key($settings, 'columns')) { - $columns: map-get($settings, 'columns'); - } + @if (map-has-key($settings, 'columns')) { + $columns: map-get($settings, 'columns'); + } - // Gutters. - $gutters: 0; + // Gutters. + $gutters: 0; - @if (map-has-key($settings, 'gutters')) { - $gutters: map-get($settings, 'gutters'); - } + @if (map-has-key($settings, 'gutters')) { + $gutters: map-get($settings, 'gutters'); + } - // Flush. - $flush: true; + // Flush. + $flush: true; - @if (map-has-key($settings, 'flush')) { - $flush: map-get($settings, 'flush'); - } + @if (map-has-key($settings, 'flush')) { + $flush: map-get($settings, 'flush'); + } - // Initialize base grid. - @include flexgrid-base($vertical-align, $horizontal-align); + // Initialize base grid. + @include flexgrid-base($vertical-align, $horizontal-align); - // Debug? - @if ($debug) { - @include flexgrid-debug; - } + // Debug? + @if ($debug) { + @include flexgrid-debug; + } - // Columns specified? - @if ($columns != null) { + // Columns specified? + @if ($columns != null) { - // Initialize columns. - @include flexgrid-columns($columns); + // Initialize columns. + @include flexgrid-columns($columns); - // Gutters specified? - @if ($gutters > 0) { + // Gutters specified? + @if ($gutters > 0) { - // Flush gutters? - @if ($flush) { + // Flush gutters? + @if ($flush) { - // Initialize gutters (flush). - @include flexgrid-gutters-flush($columns, $gutters); - - } - - // Otherwise ... - @else { - - // Initialize gutters. - @include flexgrid-gutters($columns, $gutters); - - } - - } - - } + // Initialize gutters (flush). + @include flexgrid-gutters-flush($columns, $gutters); + } + // Otherwise ... + @else { + // Initialize gutters. + @include flexgrid-gutters($columns, $gutters); + } + } + } } /// Resizes a previously-initialized grid. @@ -326,73 +312,66 @@ /// @param {bool} $flush If true, clears padding around the very edge of the grid. @mixin flexgrid-resize($settings: ()) { - // Settings. + // Settings. + // Columns. + $columns: 1; - // Columns. - $columns: 1; + @if (map-has-key($settings, 'columns')) { + $columns: map-get($settings, 'columns'); + } - @if (map-has-key($settings, 'columns')) { - $columns: map-get($settings, 'columns'); - } + // Gutters. + $gutters: 0; - // Gutters. - $gutters: 0; + @if (map-has-key($settings, 'gutters')) { + $gutters: map-get($settings, 'gutters'); + } - @if (map-has-key($settings, 'gutters')) { - $gutters: map-get($settings, 'gutters'); - } + // Previous columns. + $prev-columns: false; - // Previous columns. - $prev-columns: false; + @if (map-has-key($settings, 'prev-columns')) { + $prev-columns: map-get($settings, 'prev-columns'); + } - @if (map-has-key($settings, 'prev-columns')) { - $prev-columns: map-get($settings, 'prev-columns'); - } + // Flush. + $flush: true; - // Flush. - $flush: true; + @if (map-has-key($settings, 'flush')) { + $flush: map-get($settings, 'flush'); + } - @if (map-has-key($settings, 'flush')) { - $flush: map-get($settings, 'flush'); - } + // Resize columns. + @include flexgrid-columns($columns); - // Resize columns. - @include flexgrid-columns($columns); + // Gutters specified? + @if ($gutters > 0) { - // Gutters specified? - @if ($gutters > 0) { + // Flush gutters? + @if ($flush) { - // Flush gutters? - @if ($flush) { + // Previous columns specified? + @if ($prev-columns) { - // Previous columns specified? - @if ($prev-columns) { + // Convert to list if it isn't one already. + @if (type-of($prev-columns) != list) { + $prev-columns: ($prev-columns); + } - // Convert to list if it isn't one already. - @if (type-of($prev-columns) != list) { - $prev-columns: ($prev-columns); - } + // Step through list of previous columns and reset them. + @each $x in $prev-columns { + @include flexgrid-gutters-flush-reset($columns, $gutters, $x); + } + } - // Step through list of previous columns and reset them. - @each $x in $prev-columns { - @include flexgrid-gutters-flush-reset($columns, $gutters, $x); - } + // Resize gutters (flush). + @include flexgrid-gutters-flush($columns, $gutters); + } - } - - // Resize gutters (flush). - @include flexgrid-gutters-flush($columns, $gutters); - - } - - // Otherwise ... - @else { - - // Resize gutters. - @include flexgrid-gutters($columns, $gutters); - - } - - } - -} \ No newline at end of file + // Otherwise ... + @else { + // Resize gutters. + @include flexgrid-gutters($columns, $gutters); + } + } +} diff --git a/assets/sass/libs/_skel.scss b/assets/sass/libs/_skel.scss index f5e0dcd..7fa27c2 100644 --- a/assets/sass/libs/_skel.scss +++ b/assets/sass/libs/_skel.scss @@ -2,586 +2,547 @@ // Vars. - /// Breakpoints. - /// @var {list} - $breakpoints: () !global; +/// Breakpoints. +/// @var {list} +$breakpoints: () !global; - /// Vendor prefixes. - /// @var {list} - $vendor-prefixes: ( - '-moz-', - '-webkit-', - '-ms-', - '' - ); +/// Vendor prefixes. +/// @var {list} +$vendor-prefixes: ( + '-moz-', + '-webkit-', + '-ms-', + '' +); - /// Properties that should be vendorized. - /// @var {list} - $vendor-properties: ( - 'align-content', - 'align-items', - 'align-self', - 'animation', - 'animation-delay', - 'animation-direction', - 'animation-duration', - 'animation-fill-mode', - 'animation-iteration-count', - 'animation-name', - 'animation-play-state', - 'animation-timing-function', - 'appearance', - 'backface-visibility', - 'box-sizing', - 'filter', - 'flex', - 'flex-basis', - 'flex-direction', - 'flex-flow', - 'flex-grow', - 'flex-shrink', - 'flex-wrap', - 'justify-content', - 'object-fit', - 'object-position', - 'order', - 'perspective', - 'pointer-events', - 'transform', - 'transform-origin', - 'transform-style', - 'transition', - 'transition-delay', - 'transition-duration', - 'transition-property', - 'transition-timing-function', - 'user-select' - ); +/// Properties that should be vendorized. +/// @var {list} +$vendor-properties: ( + 'align-content', + 'align-items', + 'align-self', + 'animation', + 'animation-delay', + 'animation-direction', + 'animation-duration', + 'animation-fill-mode', + 'animation-iteration-count', + 'animation-name', + 'animation-play-state', + 'animation-timing-function', + 'appearance', + 'backface-visibility', + 'box-sizing', + 'filter', + 'flex', + 'flex-basis', + 'flex-direction', + 'flex-flow', + 'flex-grow', + 'flex-shrink', + 'flex-wrap', + 'justify-content', + 'object-fit', + 'object-position', + 'order', + 'perspective', + 'pointer-events', + 'transform', + 'transform-origin', + 'transform-style', + 'transition', + 'transition-delay', + 'transition-duration', + 'transition-property', + 'transition-timing-function', + 'user-select' + ); - /// Values that should be vendorized. - /// @var {list} - $vendor-values: ( - 'filter', - 'flex', - 'linear-gradient', - 'radial-gradient', - 'transform' - ); +/// Values that should be vendorized. +/// @var {list} +$vendor-values: ( + 'filter', + 'flex', + 'linear-gradient', + 'radial-gradient', + 'transform' +); // Functions. - /// Removes a specific item from a list. - /// @author Hugo Giraudel - /// @param {list} $list List. - /// @param {integer} $index Index. - /// @return {list} Updated list. - @function remove-nth($list, $index) { +/// Removes a specific item from a list. +/// @author Hugo Giraudel +/// @param {list} $list List. +/// @param {integer} $index Index. +/// @return {list} Updated list. +@function remove-nth($list, $index) { - $result: null; + $result: null; - @if type-of($index) != number { - @warn "$index: #{quote($index)} is not a number for `remove-nth`."; - } - @else if $index == 0 { - @warn "List index 0 must be a non-zero integer for `remove-nth`."; - } - @else if abs($index) > length($list) { - @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; - } - @else { + @if type-of($index) != number { + @warn "$index: #{quote($index)} is not a number for `remove-nth`."; + } + @else if $index == 0 { + @warn "List index 0 must be a non-zero integer for `remove-nth`."; + } + @else if abs($index) > length($list) { + @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; + } + @else { - $result: (); - $index: if($index < 0, length($list) + $index + 1, $index); + $result: (); + $index: if($index < 0, length($list) + $index + 1, $index); - @for $i from 1 through length($list) { + @for $i from 1 through length($list) { - @if $i != $index { - $result: append($result, nth($list, $i)); - } + @if $i != $index { + $result: append($result, nth($list, $i)); + } + } + } + @return $result; +} - } +/// Replaces a substring within another string. +/// @author Hugo Giraudel +/// @param {string} $string String. +/// @param {string} $search Substring. +/// @param {string} $replace Replacement. +/// @return {string} Updated string. +@function str-replace($string, $search, $replace: '') { - } + $index: str-index($string, $search); - @return $result; + @if $index { + @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); + } + @return $string; +} - } +/// Replaces a substring within each string in a list. +/// @param {list} $strings List of strings. +/// @param {string} $search Substring. +/// @param {string} $replace Replacement. +/// @return {list} Updated list of strings. +@function str-replace-all($strings, $search, $replace: '') { - /// Replaces a substring within another string. - /// @author Hugo Giraudel - /// @param {string} $string String. - /// @param {string} $search Substring. - /// @param {string} $replace Replacement. - /// @return {string} Updated string. - @function str-replace($string, $search, $replace: '') { + @each $string in $strings { + $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace)); + } + @return $strings; +} - $index: str-index($string, $search); +/// Gets a value from a map. +/// @author Hugo Giraudel +/// @param {map} $map Map. +/// @param {string} $keys Key(s). +/// @return {string} Value. +@function val($map, $keys...) { - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } + @if nth($keys, 1) == null { + $keys: remove-nth($keys, 1); + } - @return $string; - - } - - /// Replaces a substring within each string in a list. - /// @param {list} $strings List of strings. - /// @param {string} $search Substring. - /// @param {string} $replace Replacement. - /// @return {list} Updated list of strings. - @function str-replace-all($strings, $search, $replace: '') { - - @each $string in $strings { - $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace)); - } - - @return $strings; - - } - - /// Gets a value from a map. - /// @author Hugo Giraudel - /// @param {map} $map Map. - /// @param {string} $keys Key(s). - /// @return {string} Value. - @function val($map, $keys...) { - - @if nth($keys, 1) == null { - $keys: remove-nth($keys, 1); - } - - @each $key in $keys { - $map: map-get($map, $key); - } - - @return $map; - - } + @each $key in $keys { + $map: map-get($map, $key); + } + @return $map; +} // Mixins. - /// Sets the global box model. - /// @param {string} $model Model (default is content). - @mixin boxModel($model: 'content') { +/// Sets the global box model. +/// @param {string} $model Model (default is content). +@mixin boxModel($model: 'content') { - $x: $model + '-box'; + $x: $model + '-box'; - *, *:before, *:after { - -moz-box-sizing: #{$x}; - -webkit-box-sizing: #{$x}; - box-sizing: #{$x}; - } + *, *::before, + *::after { + -moz-box-sizing: #{$x}; + -webkit-box-sizing: #{$x}; + box-sizing: #{$x}; + } +} - } +/// Wraps @content in a @media block using a given breakpoint. +/// @param {string} $breakpoint Breakpoint. +/// @param {map} $queries Additional queries. +@mixin breakpoint($breakpoint: null, $queries: null) { - /// Wraps @content in a @media block using a given breakpoint. - /// @param {string} $breakpoint Breakpoint. - /// @param {map} $queries Additional queries. - @mixin breakpoint($breakpoint: null, $queries: null) { + $query: 'screen'; - $query: 'screen'; + // Breakpoint. + @if $breakpoint and map-has-key($breakpoints, $breakpoint) { + $query: $query + ' and ' + map-get($breakpoints, $breakpoint); + } - // Breakpoint. - @if $breakpoint and map-has-key($breakpoints, $breakpoint) { - $query: $query + ' and ' + map-get($breakpoints, $breakpoint); - } + // Queries. + @if $queries { + @each $k, $v in $queries { + $query: $query + ' and (' + $k + ':' + $v + ')'; + } + } - // Queries. - @if $queries { - @each $k, $v in $queries { - $query: $query + ' and (' + $k + ':' + $v + ')'; - } - } + @media #{$query} { + @content; + } +} - @media #{$query} { - @content; +/// Wraps @content in a @media block targeting a specific orientation. +/// @param {string} $orientation Orientation. +@mixin orientation($orientation) { + @media screen and (orientation: #{$orientation}) { + @content; + } +} + +/// Utility mixin for containers. +/// @param {mixed} $width Width. +@mixin containers($width) { + +// Locked? + $lock: false; + + @if length($width) == 2 { + $width: nth($width, 1); + $lock: true; + } + + // Modifiers. + .container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; } + .container.\37 5\25 { width: $width * 0.75; } + .container.\35 0\25 { width: $width * 0.5; } + .container.\32 5\25 { width: $width * 0.25; } + + // Main class. + .container { + @if $lock { + width: $width !important; + } + @else { + width: $width; + } + } +} + +/// Utility mixin for grid. +/// @param {list} $gutters Column and row gutters (default is 40px). +/// @param {string} $breakpointName Optional breakpoint name. +@mixin grid($gutters: 40px, $breakpointName: null) { + + // Gutters. + @include grid-gutters($gutters); + @include grid-gutters($gutters, \32 00\25, 2); + @include grid-gutters($gutters, \31 50\25, 1.5); + @include grid-gutters($gutters, \35 0\25, 0.5); + @include grid-gutters($gutters, \32 5\25, 0.25); + + // Cells. + $x: ''; + + @if $breakpointName { + $x: '\\28' + $breakpointName + '\\29'; + } + + .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; } + .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; } + .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; } + .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; } + .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; } + .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; } + .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; } + .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; } + .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; } + .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; } + .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; } + .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; } + + .\31 2u\24#{$x} + *, + .\31 1u\24#{$x} + *, + .\31 0u\24#{$x} + *, + .\39 u\24#{$x} + *, + .\38 u\24#{$x} + *, + .\37 u\24#{$x} + *, + .\36 u\24#{$x} + *, + .\35 u\24#{$x} + *, + .\34 u\24#{$x} + *, + .\33 u\24#{$x} + *, + .\32 u\24#{$x} + *, + .\31 u\24#{$x} + * { + clear: left; + } + + .\-11u#{$x} { margin-left: 91.6666666667% } + .\-10u#{$x} { margin-left: 83.3333333333% } + .\-9u#{$x} { margin-left: 75% } + .\-8u#{$x} { margin-left: 66.6666666667% } + .\-7u#{$x} { margin-left: 58.3333333333% } + .\-6u#{$x} { margin-left: 50% } + .\-5u#{$x} { margin-left: 41.6666666667% } + .\-4u#{$x} { margin-left: 33.3333333333% } + .\-3u#{$x} { margin-left: 25% } + .\-2u#{$x} { margin-left: 16.6666666667% } + .\-1u#{$x} { margin-left: 8.3333333333% } +} + +/// Utility mixin for grid. +/// @param {list} $gutters Gutters. +/// @param {string} $class Optional class name. +/// @param {integer} $multiplier Multiplier (default is 1). +@mixin grid-gutters($gutters, $class: null, $multiplier: 1) { + + // Expand gutters if it's not a list. + @if length($gutters) == 1 { + $gutters: ($gutters, 0); + } + + // Get column and row gutter values. + $c: nth($gutters, 1); + $r: nth($gutters, 2); + + // Get class (if provided). + $x: ''; + + @if $class { + $x: '.' + $class; + } + + // Default. + .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); } + .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } + + // Uniform. + .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); } + .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } +} + +/// Wraps @content in vendorized keyframe blocks. +/// @param {string} $name Name. +@mixin keyframes($name) { + + @-moz-keyframes #{$name} { @content; } + @-webkit-keyframes #{$name} { @content; } + @-ms-keyframes #{$name} { @content; } + @keyframes #{$name} { @content; } +} + +/// Sets breakpoints. +/// @param {map} $x Breakpoints. +@mixin skel-breakpoints($x: ()) { + $breakpoints: $x !global; +} + +/// Initializes layout module. +/// @param {map} config Config. +@mixin skel-layout($config: ()) { + + // Config. + $configPerBreakpoint: (); + + $z: map-get($config, 'breakpoints'); + + @if $z { + $configPerBreakpoint: $z; + } + + // Reset. + $x: map-get($config, 'reset'); + + @if $x { + + /* Reset */ + @include reset($x); + } + + // Box model. + $x: map-get($config, 'boxModel'); + + @if $x { + + /* Box Model */ + @include boxModel($x); + } + + // Containers. + $containers: map-get($config, 'containers'); + + @if $containers { + + /* Containers */ + .container { + margin-left: auto; + margin-right: auto; + } + + // Use default is $containers is just "true". + @if $containers == true { + $containers: 960px; + } + + // Apply base. + @include containers($containers); + + // Apply per-breakpoint. + @each $name in map-keys($breakpoints) { + + // Get/use breakpoint setting if it exists. + $x: map-get($configPerBreakpoint, $name); + + // Per-breakpoint config exists? + @if $x { + $y: map-get($x, 'containers'); + + // Setting exists? Use it. + @if $y { + $containers: $y; } - - } - - /// Wraps @content in a @media block targeting a specific orientation. - /// @param {string} $orientation Orientation. - @mixin orientation($orientation) { - @media screen and (orientation: #{$orientation}) { - @content; - } - } - - /// Utility mixin for containers. - /// @param {mixed} $width Width. - @mixin containers($width) { - - // Locked? - $lock: false; - - @if length($width) == 2 { - $width: nth($width, 1); - $lock: true; - } - - // Modifiers. - .container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; } - .container.\37 5\25 { width: $width * 0.75; } - .container.\35 0\25 { width: $width * 0.5; } - .container.\32 5\25 { width: $width * 0.25; } - - // Main class. - .container { - @if $lock { - width: $width !important; - } - @else { - width: $width; - } - } - - } - - /// Utility mixin for grid. - /// @param {list} $gutters Column and row gutters (default is 40px). - /// @param {string} $breakpointName Optional breakpoint name. - @mixin grid($gutters: 40px, $breakpointName: null) { - - // Gutters. - @include grid-gutters($gutters); - @include grid-gutters($gutters, \32 00\25, 2); - @include grid-gutters($gutters, \31 50\25, 1.5); - @include grid-gutters($gutters, \35 0\25, 0.5); - @include grid-gutters($gutters, \32 5\25, 0.25); - - // Cells. - $x: ''; - - @if $breakpointName { - $x: '\\28' + $breakpointName + '\\29'; - } - - .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; } - .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; } - .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; } - .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; } - .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; } - .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; } - .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; } - .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; } - .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; } - .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; } - .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; } - .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; } - - .\31 2u\24#{$x} + *, - .\31 1u\24#{$x} + *, - .\31 0u\24#{$x} + *, - .\39 u\24#{$x} + *, - .\38 u\24#{$x} + *, - .\37 u\24#{$x} + *, - .\36 u\24#{$x} + *, - .\35 u\24#{$x} + *, - .\34 u\24#{$x} + *, - .\33 u\24#{$x} + *, - .\32 u\24#{$x} + *, - .\31 u\24#{$x} + * { - clear: left; - } - - .\-11u#{$x} { margin-left: 91.6666666667% } - .\-10u#{$x} { margin-left: 83.3333333333% } - .\-9u#{$x} { margin-left: 75% } - .\-8u#{$x} { margin-left: 66.6666666667% } - .\-7u#{$x} { margin-left: 58.3333333333% } - .\-6u#{$x} { margin-left: 50% } - .\-5u#{$x} { margin-left: 41.6666666667% } - .\-4u#{$x} { margin-left: 33.3333333333% } - .\-3u#{$x} { margin-left: 25% } - .\-2u#{$x} { margin-left: 16.6666666667% } - .\-1u#{$x} { margin-left: 8.3333333333% } - - } - - /// Utility mixin for grid. - /// @param {list} $gutters Gutters. - /// @param {string} $class Optional class name. - /// @param {integer} $multiplier Multiplier (default is 1). - @mixin grid-gutters($gutters, $class: null, $multiplier: 1) { - - // Expand gutters if it's not a list. - @if length($gutters) == 1 { - $gutters: ($gutters, 0); - } - - // Get column and row gutter values. - $c: nth($gutters, 1); - $r: nth($gutters, 2); - - // Get class (if provided). - $x: ''; - - @if $class { - $x: '.' + $class; - } - - // Default. - .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); } - .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } - - // Uniform. - .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); } - .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); } - - } - - /// Wraps @content in vendorized keyframe blocks. - /// @param {string} $name Name. - @mixin keyframes($name) { - - @-moz-keyframes #{$name} { @content; } - @-webkit-keyframes #{$name} { @content; } - @-ms-keyframes #{$name} { @content; } - @keyframes #{$name} { @content; } - - } - - /// - /// Sets breakpoints. - /// @param {map} $x Breakpoints. - /// - @mixin skel-breakpoints($x: ()) { - $breakpoints: $x !global; - } - - /// - /// Initializes layout module. - /// @param {map} config Config. - /// - @mixin skel-layout($config: ()) { - - // Config. - $configPerBreakpoint: (); - - $z: map-get($config, 'breakpoints'); - - @if $z { - $configPerBreakpoint: $z; - } - - // Reset. - $x: map-get($config, 'reset'); - - @if $x { - - /* Reset */ - - @include reset($x); - - } - - // Box model. - $x: map-get($config, 'boxModel'); - - @if $x { - - /* Box Model */ - - @include boxModel($x); - - } - - // Containers. - $containers: map-get($config, 'containers'); - - @if $containers { - - /* Containers */ - - .container { - margin-left: auto; - margin-right: auto; - } - - // Use default is $containers is just "true". - @if $containers == true { - $containers: 960px; - } - - // Apply base. - @include containers($containers); - - // Apply per-breakpoint. - @each $name in map-keys($breakpoints) { - - // Get/use breakpoint setting if it exists. - $x: map-get($configPerBreakpoint, $name); - - // Per-breakpoint config exists? - @if $x { - $y: map-get($x, 'containers'); - - // Setting exists? Use it. - @if $y { - $containers: $y; - } - - } - - // Create @media block. - @media screen and #{map-get($breakpoints, $name)} { - @include containers($containers); - } - - } - - } - - // Grid. - $grid: map-get($config, 'grid'); - - @if $grid { - - /* Grid */ - - // Use defaults if $grid is just "true". - @if $grid == true { - $grid: (); - } - - // Sub-setting: Gutters. - $grid-gutters: 40px; - $x: map-get($grid, 'gutters'); - - @if $x { - $grid-gutters: $x; - } - - // Rows. - .row { - border-bottom: solid 1px transparent; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - - .row > * { - float: left; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - - .row:after, .row:before { - content: ''; - display: block; - clear: both; - height: 0; - } - - .row.uniform > * > :first-child { - margin-top: 0; - } - - .row.uniform > * > :last-child { - margin-bottom: 0; - } - - // Gutters (0%). - @include grid-gutters($grid-gutters, \30 \25, 0); - - // Apply base. - @include grid($grid-gutters); - - // Apply per-breakpoint. - @each $name in map-keys($breakpoints) { - - // Get/use breakpoint setting if it exists. - $x: map-get($configPerBreakpoint, $name); - - // Per-breakpoint config exists? - @if $x { - $y: map-get($x, 'grid'); - - // Setting exists? - @if $y { - - // Sub-setting: Gutters. - $x: map-get($y, 'gutters'); - - @if $x { - $grid-gutters: $x; - } - - } - - } - - // Create @media block. - @media screen and #{map-get($breakpoints, $name)} { - @include grid($grid-gutters, $name); - } - - } - - } - - } - - /// Resets browser styles. - /// @param {string} $mode Mode (default is 'normalize'). - @mixin reset($mode: 'normalize') { - - @if $mode == 'normalize' { - - // normalize.css v3.0.2 | MIT License | git.io/normalize - html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} - - } - @else if $mode == 'full' { - - // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain) - html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none} - - } - - } - - /// Vendorizes a declaration's property and/or value(s). - /// @param {string} $property Property. - /// @param {mixed} $value String/list of value(s). - @mixin vendor($property, $value) { - - // Determine if property should expand. - $expandProperty: index($vendor-properties, $property); - - // Determine if value should expand (and if so, add '-prefix-' placeholder). - $expandValue: false; - - @each $x in $value { - @each $y in $vendor-values { - @if $y == str-slice($x, 1, str-length($y)) { - - $value: set-nth($value, index($value, $x), '-prefix-' + $x); - $expandValue: true; - - } - } - } - - // Expand property? - @if $expandProperty { - @each $vendor in $vendor-prefixes { - #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; - } - } - - // Expand just the value? - @elseif $expandValue { - @each $vendor in $vendor-prefixes { - #{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; - } - } - - // Neither? Treat them as a normal declaration. - @else { - #{$property}: #{$value}; - } - - } \ No newline at end of file + } + // Create @media block. + @media screen and #{map-get($breakpoints, $name)} { + @include containers($containers); + } + } + } + // Grid. + $grid: map-get($config, 'grid'); + + @if $grid { + + /* Grid */ + // Use defaults if $grid is just "true". + @if $grid == true { + $grid: (); + } + + // Sub-setting: Gutters. + $grid-gutters: 40px; + $x: map-get($grid, 'gutters'); + + @if $x { + $grid-gutters: $x; + } + + // Rows. + .row { + border-bottom: solid 1px transparent; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + } + + .row > * { + float: left; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + } + + .row::after, + .row::before { + content: ''; + display: block; + clear: both; + height: 0; + } + + .row.uniform > * > :first-child { + margin-top: 0; + } + + .row.uniform > * > :last-child { + margin-bottom: 0; + } + + // Gutters (0%). + @include grid-gutters($grid-gutters, \30 \25, 0); + + // Apply base. + @include grid($grid-gutters); + + // Apply per-breakpoint. + @each $name in map-keys($breakpoints) { + + // Get/use breakpoint setting if it exists. + $x: map-get($configPerBreakpoint, $name); + + // Per-breakpoint config exists? + @if $x { + $y: map-get($x, 'grid'); + + // Setting exists? + @if $y { + + // Sub-setting: Gutters. + $x: map-get($y, 'gutters'); + + @if $x { + $grid-gutters: $x; + } + } + } + // Create @media block. + @media screen and #{map-get($breakpoints, $name)} { + @include grid($grid-gutters, $name); + } + } + } +} + +/// Resets browser styles. +/// @param {string} $mode Mode (default is 'normalize'). +@mixin reset($mode: 'normalize') { + + @if $mode == 'normalize' { + + // normalize.css v3.0.2 | MIT License | git.io/normalize + html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} + + } + @else if $mode == 'full' { + + // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain) + html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote::before,blockquote::after,q::before,q::after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none} + } +} + +/// Vendorizes a declaration's property and/or value(s). +/// @param {string} $property Property. +/// @param {mixed} $value String/list of value(s). +@mixin vendor($property, $value) { + // Determine if property should expand. + $expandProperty: index($vendor-properties, $property); + + // Determine if value should expand (and if so, add '-prefix-' placeholder). + $expandValue: false; + + @each $x in $value { + @each $y in $vendor-values { + @if $y == str-slice($x, 1, str-length($y)) { + + $value: set-nth($value, index($value, $x), '-prefix-' + $x); + $expandValue: true; + } + } + } + + // Expand property? + @if $expandProperty { + @each $vendor in $vendor-prefixes { + #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; + } + } + + // Expand just the value? + @elseif $expandValue { + @each $vendor in $vendor-prefixes { + #{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; + } + } + + // Neither? Treat them as a normal declaration. + @else { + #{$property}: #{$value}; + } + +} \ No newline at end of file diff --git a/assets/sass/libs/_vars.scss b/assets/sass/libs/_vars.scss index fb5eec9..a8c405e 100644 --- a/assets/sass/libs/_vars.scss +++ b/assets/sass/libs/_vars.scss @@ -1,54 +1,55 @@ // Misc. - $misc: ( - z-index-base: 10000, - max-wrapper-styles: 6 - ); +$misc: ( + z-index-base: 10000, + z-index-overlay: 100000, + max-spotlight: 20 +); // Duration. - $duration: ( - menu: 0.35s, - transition: 0.2s - ); +$duration: ( + navPanel: 0.5s, + transition: 0.2s, + landing-fadein: 0.5s +); // Size. - $size: ( - border-radius: 5px, - element-height: 2.75em, - element-margin: 2em, - inner: 55em, - section-spacing: ( - large: 3em, - medium: 2em, - small: 1.75em - ), - wrapper-edges: ( - large: 6.5em, - medium: 4.75em, - small: 2.5em - ) - ); +$size: ( + border-radius: 4px, + element-height: 2.4em, + element-margin: 2em, + navPanel: 275px +); // Font. - $font: ( - family: ('Source Sans Pro', Helvetica, sans-serif), - family-fixed: ('Courier New', monospace), - family-heading: (Raleway, Helvetica, sans-serif), - weight: 300, - weight-bold: 600, - weight-heading: 200, - weight-heading-bold: 700, - kern-heading: 0.1em - ); +$font: ( + family: ('Roboto', Helvetica, sans-serif), + family-fixed: ('Courier New', monospace), + weight: 400, + weight-bold: 500 +); // Palette. - $palette: ( - bg: #2e3141, - fg: #ffffff, - fg-bold: #ffffff, - fg-light: rgba(255,255,255,0.35), - border: rgba(255,255,255,0.125), - border-bg: rgba(255,255,255,0.025), - border2: rgba(255,255,255,0.25), - border2-bg: rgba(255,255,255,0.075), - accent: #4c5c96 - ); \ No newline at end of file +$palette: ( + bg: #1c1d26, + bg-transparent: rgba(23, 24, 32, 0.95), + bg-very-transparent: rgba(23, 24, 32, 0.9), + fg-bold: #ffffff, + fg: rgba(255,255, 255, 0.75), + fg-light: rgba(255, 255, 255, 0.5), + fg-lighter: rgba(255, 255, 255, 0.15), + border: rgba(255, 255, 255, 0.3), + border-bg: rgba(255, 255, 255, 0.075), + border2: rgba(255, 255, 255, 0.5), + border2-bg: rgba(255, 255, 255, 0.25), + accent3: #9B160F, + link: rgba(200, 200, 255, 0.75), + accent2: #272833, + accent2-transparent:rgba(39, 40, 51, 0.965), + accent1: #E64F2D, + accent4: #D74126 +); + +//pictures startpage +$picture-startpage: ( + scroll-1: url(../images/home/abschnitt1.jpeg), +); diff --git a/assets/sass/main.scss b/assets/sass/main.scss index 783f5ba..ccf0de0 100644 --- a/assets/sass/main.scss +++ b/assets/sass/main.scss @@ -1,57 +1,119 @@ -@import 'libs/vars'; -@import 'libs/functions'; -@import 'libs/mixins'; -@import 'libs/skel'; -@import 'font-awesome.min.css'; -@import 'font.css'; - -/* - Solid State by HTML5 UP - html5up.net | @ajlkn - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - - @include skel-breakpoints(( - xlarge: '(max-width: 1680px)', - large: '(max-width: 1280px)', - medium: '(max-width: 980px)', - small: '(max-width: 736px)', - xsmall: '(max-width: 640px)', - xxsmall: '(max-width: 360px)' - )); - - @include skel-layout(( - reset: 'full', - boxModel: 'border', - grid: ( gutters: 1.75em ), - breakpoints: ( - small: ( - grid: ( gutters: 1.25em ) - ) - ) - )); - -// Base. - - @import 'base/page'; - @import 'base/typography'; - -// Component. - - @import 'components/section'; - @import 'components/form'; - @import 'components/box'; - @import 'components/icon'; - @import 'components/image'; - @import 'components/list'; - @import 'components/table'; - @import 'components/button'; - @import 'components/features'; - -// Layout. - - @import 'layout/header'; - @import 'layout/menu'; - @import 'layout/banner'; - @import 'layout/wrapper'; - @import 'layout/footer'; +@import 'libs/vars'; +@import 'libs/functions'; +@import 'libs/mixins'; +@import url("../css/font-awesome.min.css"); +@import url("../fonts/roboto.css"); +@import url("https://c3woc.de/css/spacestatus.css"); +@import "libs/skel"; +@import 'parts/startpage'; + +/* +Landed by HTML5 UP +html5up.net | @ajlkn +Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +Modified by Toolbox Bodensee e.V. +*/ + +@include skel-breakpoints(( + xlarge: '(max-width: 1680px)', + large: '(max-width: 1280px)', + medium: '(max-width: 980px)', + small: '(max-width: 933px)', + xsmall: '(max-width: 480px)' +)); + +@mixin breakpoint($point) { + @if $point == desktop { + @media (max-width: 1680px) { @content ; } + } + + @else if $point == laptop { + @media (max-width: 1280px) { @content ; } + } + + @else if $point == tablet { + @media (max-width: 980px) { @content ; } + } + + @else if $point == phablet { + @media (max-width: 933px) { @content ; } + } + + @else if $point == mobileonly { + @media (max-width: 480px) { @content ; } + } +} + +@include skel-layout(( + reset: 'full', + boxModel: 'border', + grid: ( gutters: 2.5em ), + conditionals: true, + containers: 70em, + breakpoints: ( + large: ( + containers: 90%, + ), + medium: ( + containers: (100%, true), + ) + ) +)); + +@mixin line-icon($bg: _palette(bg), $fg: _palette(fg-bold)) { + @include icon; + $size: 1px; + + &::before { + color: $bg !important; + text-shadow: + $size 0 0 $fg, + ($size * -1) 0 0 $fg, + 0 $size 0 $fg, + 0 ($size * -1) 0 $fg; + } +} + +$size-wrapper-pad-tb: 6em; +$size-wrapper-pad-lr: 3em; + +@include breakpoint(laptop) { + $size-wrapper-pad-tb: 4.5em; + $size-wrapper-pad-lr: 2.5em; +} + +@include breakpoint(tablet) { + $size-wrapper-pad-tb: 4.5em; + $size-wrapper-pad-lr: 2.5em; +} + +@include breakpoint(phablet) { + $size-wrapper-pad-tb: 3.25em; + $size-wrapper-pad-lr: 1.5em; +} + +@include breakpoint(mobileonly) { + $size-wrapper-pad-tb: 3em; + $size-wrapper-pad-lr: 1.25em; +} + +@import 'parts/basic'; +@import 'parts/loader'; +@import 'parts/section-article'; +@import 'parts/form'; +@import 'parts/box'; +@import 'parts/icon'; +@import 'parts/image'; +@import 'parts/list'; +@import 'parts/table'; +@import 'parts/button'; +@import 'parts/goto-next'; +@import 'parts/spotlight'; +@import 'parts/wrapper'; +@import 'parts/dropotron'; +@import 'parts/header'; +@import 'parts/banner'; +@import 'parts/footer'; +@import 'parts/project'; +@import 'parts/col'; + diff --git a/assets/sass/parts/_banner.scss b/assets/sass/parts/_banner.scss new file mode 100644 index 0000000..908af6e --- /dev/null +++ b/assets/sass/parts/_banner.scss @@ -0,0 +1,133 @@ +/* Banner */ +#banner { + background-attachment: fixed; + background-color: _palette(accent2); + background-image: url('../../images/banner.jpg'); + background-position: center center; + background-size: cover; + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25); + min-height: 100vh; + position: relative; + text-align: center; + z-index: (_misc(max-spotlight) + 1); + + @include breakpoint(tablet) { + background-attachment: scroll; + + .goto-next { + height: 7em; + } + } + + @include breakpoint(phablet) { + box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25); + min-height: calc(100vh - 44px); + } + + &::before { + content: ''; + display: inline-block; + height: 100vh; + vertical-align: middle; + width: 1%; + + @include breakpoint(phablet) { + height: calc(100vh - 44px); + } + } + + &::after { + content: ''; + display: block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + + .content { + display: inline-block; + margin-right: 1%; + max-width: 95%; + padding: $size-wrapper-pad-tb; + position: relative; + text-align: right; + vertical-align: middle; + z-index: 1; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb; + } + + @include breakpoint(tablet) { + padding: ($size-wrapper-pad-tb * 2) 0; + text-align: center; + } + + @include breakpoint(phablet) { + padding: ($size-wrapper-pad-tb * 1.25) $size-wrapper-pad-lr ($size-wrapper-pad-tb * 1.5) $size-wrapper-pad-lr; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb ($size-wrapper-pad-lr * 1.25) ($size-wrapper-pad-tb * 1.75) ($size-wrapper-pad-lr * 1.25); + } + + header { + display: inline-block; + vertical-align: middle; + + @include breakpoint(tablet) { + display: block; + margin: 0 0 _size(element-margin) 0; + text-align: center; + } + + h2 { + font-size: 2.5em; + margin: 0; + + @include breakpoint(phablet) { + font-size: 1.5em; + } + } + + p { + margin: (_size(element-margin) * 0.25) 0 0 0; + top: 0; + } + } + + .image { + border-radius: 0; + display: inline-block; + height: 19em; + margin-left: 3em; + margin-top: 2em; + vertical-align: middle; + width: 19em; + + @include breakpoint(tablet) { + margin: 0; + } + + @include breakpoint(phablet) { + height: 9em; + width: 9em; + } + + img { + border-radius: 0; + display: block; + width: 100%; + } + } + } +} + +body.is-touch { + #banner { + background-attachment: scroll; + } +} + diff --git a/assets/sass/parts/_basic.scss b/assets/sass/parts/_basic.scss new file mode 100644 index 0000000..bcee5c9 --- /dev/null +++ b/assets/sass/parts/_basic.scss @@ -0,0 +1,218 @@ +/* Basic */ +html, +body { + background: _palette(bg); + + @include breakpoint(phablet) { + overflow-x: hidden; + } + + @include breakpoint(mobileonly) { + min-width: 320px; + } +} + +body { + &.is-loading { + *, + *::before, + *::after { + @include vendor('animation', 'none !important'); + @include vendor('transition', 'none !important'); + } + } + + @include breakpoint(phablet) { + &.navPanel-visible { + #page-wrapper { + @include vendor('transform', 'translateX(#{_size(navPanel)})'); + } + + #titleBar { + @include vendor('transform', 'translateX(#{_size(navPanel)})'); + } + + #navPanel { + @include vendor('transform', 'translateX(0)'); + } + } + } +} + +body, +input, +select, +textarea { + color: _palette(fg); + font-family: _font(family); + font-size: 15pt; + font-weight: _font(weight); + line-height: 1.75em; + + @include breakpoint(desktop) { + font-size: 13pt; + } + + @include breakpoint(laptop) { + font-size: 12pt; + } + + @include breakpoint(tablet) { + font-size: 12pt; + } + + @include breakpoint(phablet) { + font-size: 12pt; + } + + @include breakpoint(mobileonly) { + font-size: 12pt; + } +} + +a { + @include vendor('transition', ('border-color #{_duration(transition)} ease-in-out', 'color #{_duration(transition)} ease-in-out')); + + color: _palette(link); + text-decoration: none; + + &:hover { + color: _palette(accent1) !important; + border-bottom-color: transparent; + } +} + +strong, +b { + color: _palette(fg-bold); + font-weight: _font(weight-bold); +} + +em, +i { + font-style: italic; +} + +p { + margin: 0 0 _size(element-margin) 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: _palette(fg-bold); + font-weight: _font(weight-bold); + line-height: 1em; + margin: 0 0 (_size(element-margin) * 0.5) 0; + + a { + color: inherit; + border: 0; + } +} + +h2 { + font-size: 2em; + line-height: 1.5em; + letter-spacing: -0.025em; + + @include breakpoint(phablet) { + font-size: 1.5em; + } +} + +h3 { + font-size: 1.35em; + line-height: 1.5em; + + @include breakpoint(phablet) { + font-size: 1.2em; + } +} + +h4 { + font-size: 1.1em; + line-height: 1.5em; + + @include breakpoint(phablet) { + font-size: 1em; + } +} + +h5 { + font-size: 0.9em; + line-height: 1.5em; +} + +h6 { + font-size: 0.7em; + line-height: 1.5em; +} + +sub { + font-size: 0.8em; + position: relative; + top: 0.5em; +} + +sup { + font-size: 0.8em; + position: relative; + top: -0.5em; +} + +hr { + border: 0; + border-bottom: solid 1px _palette(border); + margin: (_size(element-margin) * 1.5) 0; + + &.major { + margin: (_size(element-margin) * 2) 0; + } +} + +blockquote { + border-left: solid 4px _palette(border); + font-style: italic; + margin: 0 0 _size(element-margin) 0; + padding: 0.5em 0 0.5em 2em; +} + +code { + background: _palette(border-bg); + border-radius: _size(border-radius); + font-family: _font(family-fixed); + font-size: 0.9em; + margin: 0 0.25em; + padding: 0.25em 0.65em; +} + +pre { + -webkit-overflow-scrolling: touch; + font-family: _font(family-fixed); + font-size: 0.9em; + margin: 0 0 _size(element-margin) 0; + + code { + display: block; + line-height: 1.75em; + padding: 1em 1.5em; + overflow-x: auto; + } +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + diff --git a/assets/sass/parts/_box.scss b/assets/sass/parts/_box.scss new file mode 100644 index 0000000..e3dcb75 --- /dev/null +++ b/assets/sass/parts/_box.scss @@ -0,0 +1,20 @@ +/* Box */ +.box { + border-radius: _size(border-radius); + border: solid 1px _palette(border); + margin-bottom: _size(element-margin); + padding: 1.5em; + + > :last-child, + > :last-child > :last-child, + > :last-child > :last-child > :last-child { + margin-bottom: 0; + } + + &.alt { + border: 0; + border-radius: 0; + padding: 0; + } +} + diff --git a/assets/sass/parts/_button.scss b/assets/sass/parts/_button.scss new file mode 100644 index 0000000..79644d4 --- /dev/null +++ b/assets/sass/parts/_button.scss @@ -0,0 +1,132 @@ +/* Button */ +input[type="submit"], +input[type="reset"], +input[type="button"], +.button { + @include vendor('appearance', 'none'); + @include vendor('transition', ('background-color #{_duration(transition)} ease-in-out', 'color #{_duration(transition)} ease-in-out', 'box-shadow #{_duration(transition)} ease-in-out')); + + background-color: transparent; + border-radius: _size(border-radius); + border: 0; + box-shadow: inset 0 0 0 2px _palette(border); + color: _palette(fg-bold) !important; + cursor: pointer; + display: inline-block; + font-weight: _font(weight-bold); + height: _size(element-height); + line-height: _size(element-height); + padding: 0 2.25em; + text-align: center; + text-decoration: none; + white-space: nowrap; + + @include breakpoint(mobileonly) { + padding: 0; + } + + &:hover, + &:active { + box-shadow: inset 0 0 0 1px _palette(accent1); + color: _palette(accent1) !important; + } + + &:active { + background-color: transparentize(_palette(accent1), 0.85); + } + + &.icon { + &::before { + margin-right: 0.5em; + } + } + + &.fit { + display: block; + margin: 0 0 (_size(element-margin) * 0.5) 0; + width: 100%; + } + + &.small { + font-size: 0.8em; + } + + &.big { + font-size: 1.35em; + } + + &.special { + background-color: _palette(accent1); + box-shadow: none; + color: _palette(fg-bold) !important; + + &:hover { + background-color: lighten(_palette(accent1), 5); + } + + &:active { + background-color: darken(_palette(accent1), 5); + } + } + + &.disabled, + &:disabled { + background-color: _palette(border) !important; + box-shadow: none !important; + color: _palette(fg-bold) !important; + cursor: default; + opacity: 0.25; + } + + &.waffel-available { + background-color: LimeGreen !important; + + &.navbar { + margin-left: -15px; + } + } +} + +.no-waffles { + color: #d23128ff; +} + +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; +} +.tooltip .tooltiptext { + visibility: hidden; + position: absolute; + width: 230px; + margin-left: -100px; + font-size: 0.9em; + background-color: #555; + line-height: normal; + color: #fff; + text-align: center; + padding: 15px 0; + border-radius: 6px; + z-index: 1; + opacity: 0; + transition: opacity 0.3s; + top: 100%; + left: 50%; +} + +.tooltip .tooltiptext::after { + content: ""; + position: absolute; + bottom: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent #555 transparent; +} + +.tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; +} diff --git a/assets/sass/parts/_col.scss b/assets/sass/parts/_col.scss new file mode 100644 index 0000000..e73e7df --- /dev/null +++ b/assets/sass/parts/_col.scss @@ -0,0 +1,12 @@ +/* Columns */ +@for $i from 2 through 5 { + .col-#{$i} { + column-count: $i; + column-gap: 1vw; + + > .button { + padding: 0; + } + } +} + diff --git a/assets/sass/parts/_dropotron.scss b/assets/sass/parts/_dropotron.scss new file mode 100644 index 0000000..e538ad3 --- /dev/null +++ b/assets/sass/parts/_dropotron.scss @@ -0,0 +1,66 @@ +/* Dropotron */ +.dropotron { + background: _palette(accent2-transparent); + border-radius: _size(border-radius); + box-shadow: 0 0.075em 0.35em 0 rgba(0, 0, 0, 0.125); + list-style: none; + margin-top: calc(-0.25em + 1px); + min-width: 12em; + padding: 0.25em 0; + + > li { + border-top: solid 1px rgba(255, 255, 255, 0.035); + padding: 0; + + a, + span { + border: 0; + color: _palette(fg); + display: block; + padding: 0.1em 1em; + text-decoration: none; + } + + &:first-child { + border-top: 0; + } + + &.active { + > a, + > span { + color: _palette(accent1); + } + } + } + + &.level-0 { + font-size: 0.8em; + margin-top: 1em; + + @include breakpoint(laptop) { + font-size: 1em; + } + + &::before { + @include vendor('transform', 'rotate(45deg)'); + + background: _palette(accent2); + content: ''; + display: block; + height: 1em; + position: absolute; + right: 1.5em; + top: -0.5em; + width: 1em; + } + } +} + +body.landing { + .dropotron { + &.level-0 { + margin-top: 0; + } + } +} + diff --git a/assets/sass/parts/_footer.scss b/assets/sass/parts/_footer.scss new file mode 100644 index 0000000..590b6ce --- /dev/null +++ b/assets/sass/parts/_footer.scss @@ -0,0 +1,69 @@ +/* Footer */ +#footer { + background: _palette(accent2); + padding: $size-wrapper-pad-tb 0; + text-align: center; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb 0; + } + + @include breakpoint(tablet) { + padding: $size-wrapper-pad-tb 0; + } + + @include breakpoint(phablet) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + } + + .icons { + .icon { + &.alt { + @include line-icon(_palette(accent2), _palette(fg-light)); + } + } + } + + .copyright { + color: _palette(fg-light); + font-size: 0.8em; + line-height: 1em; + margin: 2em 0 0 0; + padding: 0; + text-align: center; + + @include breakpoint(mobileonly) { + line-height: inherit; + } + + li { + border-left: solid 1px _palette(border); + display: inline-block; + list-style: none; + margin-left: 1.5em; + padding-left: 1.5em; + + @include breakpoint(mobileonly) { + border-left: 0; + display: block; + margin: 0; + padding: 0; + } + + &:first-child { + border-left: 0; + margin-left: 0; + padding-left: 0; + } + + a { + color: inherit; + } + } + } +} + diff --git a/assets/sass/parts/_form.scss b/assets/sass/parts/_form.scss new file mode 100644 index 0000000..506e666 --- /dev/null +++ b/assets/sass/parts/_form.scss @@ -0,0 +1,182 @@ +/* Form */ +form { + margin: 0 0 _size(element-margin) 0; +} + +label { + color: _palette(fg-bold); + display: block; + font-size: 0.9em; + font-weight: _font(weight-bold); + margin: 0 0 (_size(element-margin) * 0.5) 0; +} + +input[type="text"], +input[type="password"], +input[type="email"], +select, +textarea { + @include vendor('appearance', 'none'); + @include vendor('transition', 'border-color #{_duration(transition)} ease-in-out'); + + background: transparent; + border-radius: _size(border-radius); + border: solid 1px _palette(border); + color: inherit; + display: block; + outline: 0; + padding: 0 1em; + text-decoration: none; + width: 100%; + + &:invalid { + box-shadow: none; + } + + &:focus { + border-color: _palette(accent1); + } +} + +.select-wrapper { + @include icon; + + display: block; + position: relative; + + &::before { + color: _palette(border); + content: '\f078'; + display: block; + height: _size(element-height); + line-height: _size(element-height); + pointer-events: none; + position: absolute; + right: 0; + text-align: center; + top: 0; + width: _size(element-height); + } + + select::-ms-expand { + display: none; + } +} + +input[type="text"], +input[type="password"], +input[type="email"], +select { + height: _size(element-height); +} + +textarea { + padding: 0.75em 1em; +} + +select { + option { + background-color: _palette(bg); + color: _palette(fg-bold); + } + + &:focus { + &::-ms-value { + background: transparent; + } + } +} + +input[type="checkbox"], +input[type="radio"], { + @include vendor('appearance', 'none'); + display: block; + float: left; + margin-right: -2em; + opacity: 0; + width: 1em; + z-index: -1; + + & + label { + @include icon; + + color: _palette(fg); + cursor: pointer; + display: inline-block; + font-size: 1em; + font-weight: _font(weight); + padding-left: (_size(element-height) * 0.6) + 0.75em; + padding-right: 0.75em; + position: relative; + + &::before { + border-radius: _size(border-radius); + border: solid 1px _palette(border); + content: ''; + display: inline-block; + height: (_size(element-height) * 0.6); + left: 0; + line-height: (_size(element-height) * 0.575); + position: absolute; + text-align: center; + top: 0; + width: (_size(element-height) * 0.6); + } + } + + &:checked + label { + &::before { + background: _palette(border2-bg); + color: _palette(fg-bold); + content: '\f00c'; + } + } + + &:focus + label { + &::before { + border-color: _palette(accent1); + } + } +} + +input[type="checkbox"] { + & + label { + &::before { + border-radius: _size(border-radius); + } + } +} + +input[type="radio"] { + & + label { + &::before { + border-radius: 100%; + } + } +} + +::-webkit-input-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +:-moz-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +::-moz-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +:-ms-input-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + +.formerize-placeholder { + color: _palette(fg-light) !important; + opacity: 1; +} + diff --git a/assets/sass/parts/_goto-next.scss b/assets/sass/parts/_goto-next.scss new file mode 100644 index 0000000..f2a632c --- /dev/null +++ b/assets/sass/parts/_goto-next.scss @@ -0,0 +1,38 @@ +/* Goto Next */ +.goto-next { + border: 0; + bottom: 0; + display: block; + height: 5em; + left: 50%; + margin: 0 0 0 -5em; + overflow: hidden; + position: absolute; + text-indent: 10em; + white-space: nowrap; + width: 10em; + z-index: 1; + + &::before { + background-image: url('images/arrow.svg'); + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + content: ''; + display: block; + height: 1.5em; + left: 50%; + margin: -0.75em 0 0 -1em; + position: absolute; + top: 50%; + width: 2em; + z-index: 1; + + @include breakpoint(phablet) { + height: 0.8em; + margin: -0.4em 0 0 -0.6em; + width: 1.2em; + } + } +} + diff --git a/assets/sass/parts/_header.scss b/assets/sass/parts/_header.scss new file mode 100644 index 0000000..8916206 --- /dev/null +++ b/assets/sass/parts/_header.scss @@ -0,0 +1,250 @@ +/* Header */ +#navPanel, +#titleBar { + display: none; +} + +@include breakpoint(phablet) { + #titleBar { + @include vendor('backface-visibility', 'hidden'); + @include vendor('transition', 'transform #{_duration(navPanel)} ease'); + + display: block; + height: 44px; + left: 0; + position: fixed; + top: 0; + width: 100%; + z-index: _misc(z-index-base) + 1; + background: _palette(accent2); + box-shadow: 0 0.125em 0.125em 0 rgba(0, 0, 0, 0.125); + + .title { + color: _palette(fg-bold); + display: block; + font-weight: _font(weight-bold); + height: 44px; + line-height: 44px; + text-align: center; + + a { + color: inherit; + border: 0; + } + } + + .toggle { + @include icon; + + height: 60px; + left: 0; + position: absolute; + top: 0; + width: 90px; + outline: 0; + border: 0; + + &::before { + background: _palette(accent3); + color: _palette(fg-light); + display: block; + font-size: 18px; + height: 44px; + left: 0; + line-height: 44px; + position: absolute; + text-align: center; + top: 0; + width: 54px; + } + } + } +} + +@include breakpoint(phablet) { + #navPanel { + @include vendor('backface-visibility', 'hidden'); + @include vendor('transform', 'translateX(#{_size(navPanel) * -1})'); + @include vendor('transition', ('transform #{_duration(navPanel)} ease')); + display: block; + height: 100%; + left: 0; + overflow-y: auto; + position: fixed; + top: 0; + width: _size(navPanel); + z-index: _misc(z-index-base) + 2; + background: darken(_palette(bg), 2); + padding: 0.75em 1.25em; + + .link { + border: 0; + border-top: solid 1px transparentize(_palette(border), 0.25); + color: _palette(fg); + display: block; + height: 3em; + line-height: 3em; + text-decoration: none; + + &:hover { + color: inherit !important; + } + + &:first-child { + border-top: 0; + } + + &.depth-0 { + color: _palette(fg-bold); + font-weight: _font(weight-bold); + } + + .indent-1 { + display: inline-block; + width: 1.25em; + } + + .indent-2 { + display: inline-block; + width: 2.5em; + } + + .indent-3 { + display: inline-block; + width: 3.75em; + } + + .indent-4 { + display: inline-block; + width: 5em; + } + + .indent-5 { + display: inline-block; + width: 6.25em; + } + } + } +} + +#page-wrapper { + padding-top: 3.5em; + + @include breakpoint(phablet) { + @include vendor('backface-visibility', 'hidden'); + @include vendor('transition', 'transform #{_duration(navPanel)} ease'); + + padding-bottom: 1px; + padding-top: 44px !important; + } +} + +#header { + background: _palette(accent2-transparent); + box-shadow: 0 0 0.25em 0 rgba(0, 0, 0, 0.25); + cursor: default; + height: 3.5em; + left: 0; + line-height: 3.5em; + position: fixed; + top: 0; + width: 100%; + z-index: 5000; + + @include breakpoint(phablet) { + display: none; + } + + h1 { + height: inherit; + left: 1.25em; + line-height: inherit; + margin: 0; + position: absolute; + top: 0; + } + + nav { + ul { + list-style: none; + position: relative; + float: right; + margin: 0; + padding: 0; + + li { + position: relative; + float: left; + margin: 0; + padding: 0; + color: inherit; + height: inherit; + line-height: inherit; + + a, + span { + display: block; + color: inherit; + text-decoration: none; + line-height: inherit; + padding: 0 1em; + } + + &.active { + > a, + > span { + color: _palette(accent1); + } + } + + &.last { + padding-right: 1.8em; + } + } + + ul { + display: none; + position: absolute; + top: 100%; + left: 0; + border-bottom: 2px solid rgba(255, 255, 255, 0.075); + background: _palette(accent2-transparent); + padding: 0; + + li { + float: none; + width: 11em; + overflow: hidden; + } + + &.last { + li { + width: 8em; + } + } + + a { + line-height: 100%; + padding: 10px 15px; + border-top: 2px solid rgba(255, 255, 255, 0.075); + } + + ul { + top: 0; + left: 100%; + } + } + + li:hover > ul { + display: block; + } + } + } +} + +body.landing { + #page-wrapper { + padding-top: 0; + } +} + diff --git a/assets/sass/parts/_icon.scss b/assets/sass/parts/_icon.scss new file mode 100644 index 0000000..50931f2 --- /dev/null +++ b/assets/sass/parts/_icon.scss @@ -0,0 +1,46 @@ +/* Icon */ +.icon { + @include icon; + + border-bottom: none; + position: relative; + + > .label { + display: none; + } + + &.alt { + @include line-icon; + } + + &.major { + background: _palette(accent2); + border-radius: 100%; + cursor: default; + display: inline-block; + height: 6em; + line-height: 6em; + margin: 0 0 _size(element-margin) 0; + text-align: center; + width: 6em; + + &::before { + font-size: 2.25em; + } + + &.alt { + @include line-icon(_palette(accent2)); + } + } +} + +.iconshiftdown { + line-height: 2; +} + +@for $i from 5 through 10 { + .iconshift-right-#{$i} { + margin-left: $i * 1px; + } +} + diff --git a/assets/sass/parts/_image.scss b/assets/sass/parts/_image.scss new file mode 100644 index 0000000..65cbf64 --- /dev/null +++ b/assets/sass/parts/_image.scss @@ -0,0 +1,60 @@ +/* Image */ +.image { + border-radius: _size(border-radius); + border: 0; + display: inline-block; + position: relative; + overflow: hidden; + + &::before { + content: ''; + display: block; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 1; + } + + img { + border-radius: _size(border-radius); + display: block; + } + + &.left { + float: left; + margin: 0 1.5em 1em 0; + top: 0.25em; + } + + &.right { + float: right; + margin: 0 0 1em 1.5em; + top: 0.25em; + } + + &.left, + &.right { + max-width: 40%; + + img { + width: 100%; + } + } + + &.fit { + display: block; + margin: 0 0 _size(element-margin) 0; + width: 100%; + + img { + width: 100%; + } + } + + &.mapid { + height: 70vh; + } +} + diff --git a/assets/sass/parts/_list.scss b/assets/sass/parts/_list.scss new file mode 100644 index 0000000..f95b494 --- /dev/null +++ b/assets/sass/parts/_list.scss @@ -0,0 +1,162 @@ +/* List */ +ol { + list-style: decimal; + margin: 0 0 _size(element-margin) 0; + padding-left: 1.25em; + + li { + padding-left: 0.25em; + } +} + +ul { + list-style: disc; + margin: 0 0 _size(element-margin) 0; + padding-left: 1em; + + li { + padding-left: 0.5em; + } + + &.alt { + list-style: none; + padding-left: 0; + + li { + border-top: solid 1px _palette(border); + padding: 0.5em 0; + + &:first-child { + border-top: 0; + padding-top: 0; + } + } + } + + &.icons { + cursor: default; + list-style: none; + padding-left: 0; + + li { + display: inline-block; + height: 2.5em; + line-height: 2.5em; + padding: 0 0.5em; + + .icon { + font-size: 0.8em; + + &::before { + font-size: 2em; + } + } + } + } + + &.actions { + cursor: default; + list-style: none; + padding-left: 0; + + @include breakpoint(mobileonly) { + margin: 0 0 _size(element-margin) 0; + } + + li { + display: inline-block; + padding: 0 (_size(element-margin) * 0.5) 0 0; + vertical-align: middle; + + @include breakpoint(mobileonly) { + display: block; + padding: (_size(element-margin) * 0.5) 0 0 0; + text-align: center; + width: 100%; + + &:first-child { + padding-top: 0; + } + + > * { + margin: 0 !important; + width: 100%; + } + } + + &:last-child { + padding-right: 0; + } + } + + &.small { + li { + padding: 0 (_size(element-margin) * 0.25) 0 0; + + @include breakpoint(mobileonly) { + padding: (_size(element-margin) * 0.25) 0 0 0; + + &:first-child { + padding-top: 0; + } + } + } + } + + &.vertical { + li { + display: block; + padding: (_size(element-margin) * 0.5) 0 0 0; + + &:first-child { + padding-top: 0; + } + + > * { + margin-bottom: 0; + } + } + + &.small { + li { + padding: (_size(element-margin) * 0.25) 0 0 0; + + &:first-child { + padding-top: 0; + } + } + } + } + + &.fit { + display: table; + margin-left: (_size(element-margin) * -0.5); + padding: 0; + table-layout: fixed; + width: calc(100% + #{(_size(element-margin) * 0.5)}); + + li { + display: table-cell; + padding: 0 0 0 (_size(element-margin) * 0.5); + + > * { + margin-bottom: 0; + } + } + + &.small { + margin-left: (_size(element-margin) * -0.25); + width: calc(100% + #{(_size(element-margin) * 0.25)}); + + li { + padding: 0 0 0 (_size(element-margin) * 0.25); + } + } + } + } +} + +dl { + margin: 0 0 _size(element-margin) 0; +} + diff --git a/assets/sass/parts/_loader.scss b/assets/sass/parts/_loader.scss new file mode 100644 index 0000000..a12a446 --- /dev/null +++ b/assets/sass/parts/_loader.scss @@ -0,0 +1,134 @@ +/* Loader */ +// Spinner +@include keyframes('spinner-show') { + 0% { opacity: 0; } + 100% { opacity: 1; } +} + +@include keyframes('spinner-hide') { + + 0% { + color: _palette(fg-lighter); + z-index: _misc(z-index-overlay) + 1; + + @include vendor('transform', 'scale(1) rotate(0deg)'); + } + + 99% { + color: _palette(bg); + z-index: _misc(z-index-overlay) + 1; + + @include vendor('transform', 'scale(0.5) rotate(360deg)'); + } + + 100% { + color: _palette(bg); z-index: -1; + + @include vendor('transform', 'scale(0.5) rotate(360deg)'); + } +} + +@include keyframes('spinner-rotate') { + + 0% { + + @include vendor('transform', 'scale(1) rotate(0deg)'); + } + + 100% { + + @include vendor('transform', 'scale(1) rotate(360deg)'); + } +} + +// Overlay +@include keyframes('overlay-hide') { + + 0% { + opacity: 1; + z-index: _misc(z-index-overlay); + } + + 15% { + opacity: 1; + z-index: _misc(z-index-overlay); + } + + 99% { + opacity: 0; + z-index: _misc(z-index-overlay); + } + + 100% { + opacity: 0; + z-index: -1; + } +} + +body.landing { + @include icon; + + // Spinner (inactive) + &::before { + @include vendor('animation', ('spinner-show 1.5s 1 0.25s ease forwards', 'spinner-hide 0.25s ease-in-out forwards !important')); + @include vendor('transform-origin', '50% 50%'); + + color: _palette(fg-lighter); + content: '\f1ce'; + cursor: default; + display: block; + font-family: "Font Awesome 5 Free"; + font-size: 2em; + font-weight: 900; + height: 2em; + left: 50%; + line-height: 2em; + margin: -1em 0 0 -1em; + opacity: 0; + position: fixed; + text-align: center; + top: 50%; + width: 2em; + z-index: -1; + } + + // Overlay (inactive) + &::after { + @include vendor('animation', 'overlay-hide #{_duration(landing-fadein)} ease-in forwards !important'); + + background: _palette(bg); + content: ''; + display: block; + height: 100%; + left: 0; + opacity: 0; + position: fixed; + top: 0; + width: 100%; + z-index: -1; + } + + &.is-loading { + // Spinner (active) + &::before { + @include vendor('animation', ('spinner-show 1.5s 1 0.25s ease forwards', 'spinner-rotate 0.75s infinite linear !important')); + + z-index: _misc(z-index-overlay) + 1; + } + + // Overlay (active) + &::after { + @include vendor('animation', 'none !important'); + + opacity: 1; + z-index: _misc(z-index-overlay); + } + } +} + +@media (-webkit-min-device-pixel-ratio: 2) { + body.landing::before { + line-height: 2.025em; + } +} + diff --git a/assets/sass/parts/_project.scss b/assets/sass/parts/_project.scss new file mode 100644 index 0000000..0fb2266 --- /dev/null +++ b/assets/sass/parts/_project.scss @@ -0,0 +1,12 @@ +.project { + height: 420px; +} + +.teaser { + height: 300px; +} + +.project-creator { + border-bottom: none; +} + diff --git a/assets/sass/parts/_section-article.scss b/assets/sass/parts/_section-article.scss new file mode 100644 index 0000000..c5e121b --- /dev/null +++ b/assets/sass/parts/_section-article.scss @@ -0,0 +1,79 @@ +/* Section/Article */ +section, +article { + &.special { + text-align: center; + } +} + +header { + p { + color: _palette(fg-bold); + position: relative; + margin: 0 0 (_size(element-margin) * 0.75) 0; + + @include breakpoint(phablet) { + br { + display: none; + } + } + } + + h2 + p { + font-size: 1.25em; + margin-top: (_size(element-margin) * -0.5); + line-height: 1.75em; + + @include breakpoint(phablet) { + font-size: 1em; + } + } + + h3 + p { + font-size: 1.1em; + margin-top: (_size(element-margin) * -0.4); + line-height: 1.75em; + + @include breakpoint(phablet) { + font-size: 1em; + } + } + + h4 + p, + h5 + p, + h6 + p { + font-size: 0.9em; + margin-top: (_size(element-margin) * -0.3); + line-height: 1.5em; + + @include breakpoint(phablet) { + font-size: 0.9em; + } + } + + &.major { + margin: 0 0 (_size(element-margin) * 2) 0; + position: relative; + text-align: center; + + @include breakpoint(phablet) { + margin: 0 0 _size(element-margin) 0; + } + + &::after { + background: _palette(accent1); + content: ''; + display: inline-block; + height: 0.2em; + max-width: 20em; + width: 75%; + } + } +} + +footer { + &.major { + margin: (_size(element-margin) * 2) 0 0 0; + } +} + diff --git a/assets/sass/parts/_spotlight.scss b/assets/sass/parts/_spotlight.scss new file mode 100644 index 0000000..640036f --- /dev/null +++ b/assets/sass/parts/_spotlight.scss @@ -0,0 +1,229 @@ +/* Spotlight */ +.spotlight { + background-attachment: fixed; + background-position: center center; + background-size: cover; + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25); + background-image: none; + min-height: 42em; + height: 100vh; + overflow: hidden; + position: relative; + + @include breakpoint(tablet) { + background-attachment: scroll; + height: auto; + min-height: auto; + } + + @include breakpoint(phablet) { + box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25); + } + + // Force spotlights to stack in reverse order (needed for our box + // shadows to overlap stuff in the right direction). + @for $i from 1 through _misc(max-spotlight) { + &:nth-last-of-type(#{$i}) { + z-index: #{$i}; + } + } + + &::before { + content: ''; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; + } + + .image.main { + display: block; + + @include breakpoint(tablet) { + display: block; + margin: 0; + max-height: 40vh; + overflow: hidden; + } + + @include breakpoint(phablet) { + max-height: 60vh; + } + + @include breakpoint(mobileonly) { + max-height: 50vh; + } + + img { + position: relative; + } + } + + .content { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 1s ease, opacity 1s ease'); + + background: _palette(bg-very-transparent); + border-style: solid; + + opacity: 1; + position: absolute; + + @include breakpoint(tablet) { + background-color: _palette(bg-very-transparent); + border-width: 0 !important; + border-top-width: 0.35em !important; + bottom: auto !important; + left: auto !important; + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr !important; + position: relative; + right: auto !important; + text-align: center; + top: auto !important; + width: 100% !important; + } + + @include breakpoint(phablet) { + border-top-width: 0.2em !important; + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr !important; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr !important; + } + } + + .goto-next { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 0.75s ease, opacity 1s ease-in'); + @include vendor('transition-delay', '0.5s'); + opacity: 1; + + @include breakpoint(tablet) { + display: none; + } + } + + &.top, + &.bottom { + .content { + left: 0; + padding: ($size-wrapper-pad-tb * 0.85) 0 (($size-wrapper-pad-tb * 0.85) - _size(element-margin)) 0; + width: 100%; + } + } + + &.top { + .content { + border-bottom-width: 0.35em; + top: 0; + + @include breakpoint(laptop) { + padding: ($size-wrapper-pad-tb * 0.85) 0 (($size-wrapper-pad-tb * 0.85) - _size(element-margin)) 0; + } + } + } + + &.bottom { + .content { + border-top-width: 0.35em; + bottom: 0; + + @include breakpoint(laptop) { + padding: ($size-wrapper-pad-tb * 0.85) 0 (($size-wrapper-pad-tb * 1.1) - _size(element-margin)) 0; + } + } + } + + &.left, + &.right { + .content { + height: 101%; + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + top: 0; + width: 28em; + min-width: 25%; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr; + width: 25em; + } + } + } + + &.left { + .content { + border-right-width: 0.35em; + left: 0; + } + } + + &.right { + .content { + border-left-width: 0.35em; + right: 0; + } + } + + &.style1 { + .content { + border-color: _palette(accent1-transparent); + } + } + + &.style2 { + .content { + border-color: _palette(accent1); + } + } + + &.style3 { + .content { + border-color: _palette(accent4); + } + } + + &.inactive { + .content { + opacity: 0; + } + + .goto-next { + @include vendor('transform', 'translate(0,1.5em)'); + + opacity: 0; + } + + &.top { + .content { + @include vendor('transform', 'translate(0,-5em)'); + } + } + + &.bottom { + .content { + @include vendor('transform', 'translate(0,5em)'); + } + } + + &.left { + .content { + @include vendor('transform', 'translate(-5em,0)'); + } + } + + &.right { + .content { + @include vendor('transform', 'translate(5em,0)'); + } + } + } +} + +body.is-touch { + .spotlight { + background-attachment: scroll; + } +} + diff --git a/assets/sass/parts/_startpage.scss b/assets/sass/parts/_startpage.scss new file mode 100644 index 0000000..6c3259e --- /dev/null +++ b/assets/sass/parts/_startpage.scss @@ -0,0 +1,7 @@ +//startpage +@each $scroll, $background in $picture-startpage { + ##{$scroll} { + background-image: $background; + } +} + diff --git a/assets/sass/parts/_table.scss b/assets/sass/parts/_table.scss new file mode 100644 index 0000000..1a9b611 --- /dev/null +++ b/assets/sass/parts/_table.scss @@ -0,0 +1,75 @@ +/* Table */ +.table-wrapper { + -webkit-overflow-scrolling: touch; + overflow-x: auto; +} + +table { + margin: 0 0 _size(element-margin) 0; + width: 100%; + + tbody { + tr { + border: solid 1px _palette(border); + border-left: 0; + border-right: 0; + + &:nth-child(2n + 1) { + background-color: _palette(border-bg); + } + } + } + + td { + padding: 0.75em 0.75em; + } + + th { + color: _palette(fg-bold); + font-size: 0.9em; + font-weight: _font(weight-bold); + padding: 0 0.75em 0.75em 0.75em; + text-align: left; + } + + thead { + border-bottom: solid 1px _palette(border); + } + + tfoot { + border-top: solid 1px _palette(border); + } + + &.alt { + border-collapse: separate; + + tbody { + tr { + td { + border: solid 1px _palette(border); + border-left-width: 0; + border-top-width: 0; + + &:first-child { + border-left-width: 1px; + } + } + + &:first-child { + td { + border-top-width: 1px; + } + } + } + } + + thead { + border-bottom: 0; + } + + tfoot { + border-top: 0; + } + } +} + diff --git a/assets/sass/parts/_wrapper.scss b/assets/sass/parts/_wrapper.scss new file mode 100644 index 0000000..2ac36dd --- /dev/null +++ b/assets/sass/parts/_wrapper.scss @@ -0,0 +1,116 @@ +/* Wrapper */ +.wrapper { + padding: $size-wrapper-pad-tb 0 ($size-wrapper-pad-tb - _size(element-margin)) 0; + + @include breakpoint(laptop) { + padding: $size-wrapper-pad-tb 0 ($size-wrapper-pad-tb - _size(element-margin)) 0; + } + + @include breakpoint(tablet) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr; + } + + @include breakpoint(phablet) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr; + } + + @include breakpoint(mobileonly) { + padding: $size-wrapper-pad-tb $size-wrapper-pad-lr ($size-wrapper-pad-tb - _size(element-margin)) $size-wrapper-pad-lr; + } + + &.style2 { + background: _palette(accent1); + + input[type="text"], + input[type="password"], + input[type="email"], + select, + textarea { + &:focus { + border-color: _palette(border2); + } + } + + input[type="submit"], + input[type="reset"], + input[type="button"], + .button { + &:hover, + &:active { + background-color: _palette(border-bg) !important; + box-shadow: inset 0 0 0 1px _palette(border2) !important; + color: _palette(fg-bold) !important; + } + + &:active { + background-color: _palette(border2-bg) !important; + } + + &.special { + background-color: _palette(fg-bold); + color: _palette(accent1) !important; + + &:hover, + &:active { + background-color: _palette(border-bg) !important; + box-shadow: inset 0 0 0 1px _palette(border2) !important; + color: _palette(fg-bold) !important; + } + + &:active { + background-color: _palette(border2-bg) !important; + } + } + } + } + + &.fade-down { + > .container { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 1s ease, opacity 1s ease'); + + opacity: 1; + } + + &.inactive { + > .container { + @include vendor('transform', 'translate(0,-1em)'); + + opacity: 0; + } + } + } + + &.fade-up { + > .container { + @include vendor('transform', 'translate(0,0)'); + @include vendor('transition', 'transform 1s ease, opacity 1s ease'); + + opacity: 1; + } + + &.inactive { + > .container { + @include vendor('transform', 'translate(0,1em)'); + + opacity: 0; + } + } + } + + &.fade { + > .container { + @include vendor('transition', 'opacity 1s ease'); + + opacity: 1; + } + + &.inactive { + > .container { + + opacity: 0; + } + } + } +} + diff --git a/assets/webfonts/fa-brands-400.eot b/assets/webfonts/fa-brands-400.eot index e30fd00..35df1c5 100644 Binary files a/assets/webfonts/fa-brands-400.eot and b/assets/webfonts/fa-brands-400.eot differ diff --git a/assets/webfonts/fa-brands-400.ttf b/assets/webfonts/fa-brands-400.ttf index 1543db8..08f8ffe 100644 Binary files a/assets/webfonts/fa-brands-400.ttf and b/assets/webfonts/fa-brands-400.ttf differ diff --git a/assets/webfonts/fa-brands-400.woff b/assets/webfonts/fa-brands-400.woff index c293cef..3485a9c 100644 Binary files a/assets/webfonts/fa-brands-400.woff and b/assets/webfonts/fa-brands-400.woff differ diff --git a/assets/webfonts/fa-brands-400.woff2 b/assets/webfonts/fa-brands-400.woff2 index d9f97df..b54ad05 100644 Binary files a/assets/webfonts/fa-brands-400.woff2 and b/assets/webfonts/fa-brands-400.woff2 differ diff --git a/assets/webfonts/fa-regular-400.eot b/assets/webfonts/fa-regular-400.eot index 12be17b..4ab1ad9 100644 Binary files a/assets/webfonts/fa-regular-400.eot and b/assets/webfonts/fa-regular-400.eot differ diff --git a/assets/webfonts/fa-regular-400.ttf b/assets/webfonts/fa-regular-400.ttf index abf3f48..3256094 100644 Binary files a/assets/webfonts/fa-regular-400.ttf and b/assets/webfonts/fa-regular-400.ttf differ diff --git a/assets/webfonts/fa-regular-400.woff b/assets/webfonts/fa-regular-400.woff index 257b315..d15176d 100644 Binary files a/assets/webfonts/fa-regular-400.woff and b/assets/webfonts/fa-regular-400.woff differ diff --git a/assets/webfonts/fa-regular-400.woff2 b/assets/webfonts/fa-regular-400.woff2 index 0f55b06..c170572 100644 Binary files a/assets/webfonts/fa-regular-400.woff2 and b/assets/webfonts/fa-regular-400.woff2 differ diff --git a/assets/webfonts/fa-solid-900.eot b/assets/webfonts/fa-solid-900.eot index 89e407d..43ef2b1 100644 Binary files a/assets/webfonts/fa-solid-900.eot and b/assets/webfonts/fa-solid-900.eot differ diff --git a/assets/webfonts/fa-solid-900.ttf b/assets/webfonts/fa-solid-900.ttf index 6c9fe78..801aba9 100644 Binary files a/assets/webfonts/fa-solid-900.ttf and b/assets/webfonts/fa-solid-900.ttf differ diff --git a/assets/webfonts/fa-solid-900.woff b/assets/webfonts/fa-solid-900.woff index bf52883..85d16ca 100644 Binary files a/assets/webfonts/fa-solid-900.woff and b/assets/webfonts/fa-solid-900.woff differ diff --git a/assets/webfonts/fa-solid-900.woff2 b/assets/webfonts/fa-solid-900.woff2 index 318cd3d..b7be994 100644 Binary files a/assets/webfonts/fa-solid-900.woff2 and b/assets/webfonts/fa-solid-900.woff2 differ diff --git a/assets/youtube-embed.html b/assets/youtube-embed.html new file mode 100644 index 0000000..8c25980 --- /dev/null +++ b/assets/youtube-embed.html @@ -0,0 +1,121 @@ + + + + diff --git a/c3woc.lektorproject b/c3woc.lektorproject index 6852940..72e4f9b 100644 --- a/c3woc.lektorproject +++ b/c3woc.lektorproject @@ -22,8 +22,3 @@ name = Englisch locale = en_US url_prefix = /en/ -[alternatives.ru] -name = Russisch -locale = ru_RU -url_prefix = /ru/ - diff --git a/content/blog/35c3/contents.lr b/content/blog/35c3/contents.lr index a3533b9..aa382ee 100644 --- a/content/blog/35c3/contents.lr +++ b/content/blog/35c3/contents.lr @@ -2,114 +2,100 @@ title: 35c3 --- author: L3D --- -pub_date: 2019-01-15 ---- -subtitle: Refreshing Waffles ---- -twitter_handle: L3D ---- -xml: - -Auf dem 35c3 hat das C3WOC eine halbe Tonne Waffelteig gemacht. +beitrag: Das war eine tolle Veranstaltung. Danke an alle! ---- -galerie: - -#### image #### -image: waffel_act.jpg -#### image #### -image: waffel_shift.jpg -#### image #### -image: waffel_loc.jpg -#### image #### -image: waffel_njom.jpg -#### image #### -image: waffel_weg.jpg ---- -xml_img: waffel_loc.jpg ---- -body: - -Auf dem 35c3 hat das C3WOC eine halbe Tonne Waffelteig gemacht. - - - - - - - - -Das war eine tolle Veranstaltung. Danke an alle! ---- -privatebody: - -Seit dem 35c3 haben wir nun auch einen Waffelstempel: - - -
- -
+Seit dem 35c3 haben wir nun auch einen Waffelstempel. So gab es nicht nur Waffeln zum Essen, sondern auch zum Stempeln. Neue kreationen --------------------------- +=========================== -Beim Congress haben wir neue Waffelvariationen entwickelt: - -Tschunk-Waffel - - -
-
- -
- -Döner Waffel - - - +Beim Congress haben wir neue Waffelvariationen entwickelt. Zum Beispiel die Tschunk-Waffel. Und die DönerWaffel. Delivery ----------------- -Auch die Chaospost hat Waffeln ausgetragen. Außerdem gab es ein paar Dankesbriefe. -Vielen Dank dafür. Sehr lieb! - - - +============ -Einkäufe ------------- -Beim 35c3 haben wir insgesamt um die 500kg Waffelteig angerührt. -Dafür haben wir auch beim Metro um die 1700€ gelassen. +Auch die Chaospost hat Waffeln ausgetragen. Außerdem gab es ein paar Dankesbriefe. Vielen Dank dafür. Sehr lieb! -Trotzdem haben wir insgesamt 2900€ in unserer Spendenbox gefunden. -Vielen Dank dafür! + Einkäufe +=========== - - - +Beim 35c3 haben wir insgesamt um die 500kg Waffelteig angerührt. Dafür haben wir auch beim Metro um die 1700€ gelassen. + +Trotzdem haben wir insgesamt 2900€ in unserer Spendenbox gefunden. Vielen Dank dafür! Spendenaufteilung ----------------------------- -Wir haben beschlossen den Gewinn der Spenden an dem C3WOC nahe stehenden Hackspacen zu verteilen. Uns so gehen 600€ an die [see-base](https://see-base.de) in Überlingen und 600€ an den [Platinengarten](https://platinengarten.de). Hierfür haben sich die Hackspace aber auch verpflichtet über den Einsatz der Spenden zu berichten. +=========================== -### see-base -Die see-base ist gerade dabei ihren Space zu renovieren und neu einzurichten. -Und um das mit zu finanzieren ist diese Spende gedacht. +Wir haben beschlossen den Gewinn der Spenden an dem C3WOC nahe stehenden Hackspacen zu verteilen. Uns so gehen 600€ an die [see-base](https://see-base.de/) in Überlingen und 600€ an den [Platinengarten](http://platinengarten.de). Hierfür haben sich die Hackspace aber auch verpflichtet über den Einsatz der Spenden zu berichten, sobald das Geld verwendet wurde. -### Platinengarten -Der Platinengarten möchte sich ein Lasergravur-Schneider aus China bestellen um mit Waffelsprüchen versehene Holzbretter herzustellen. -Außerdem werden die Spenden für ein Gastronom-Waffeleisen ausgegeben sowie für ein Let's Encrypt Zertifikat für deren Webseite. + see-base +================ + +Die see-base ist gerade dabei ihren Space zu renovieren und neu einzurichten. Und um das mit zu finanzieren ist diese Spende gedacht. - - - + Platinengarten +================ +Der Platinengarten möchte sich ein Lasergravur-Schneider aus China bestellen um mit Waffelsprüchen versehene Holzbretter herzustellen. Außerdem wird überlegt die Spenden für ein Gastronom-Waffeleisen ausgegeben sowie für ein Let's Encrypt Zertifikat für deren Webseite. Aber zwetifikate sind natürlich sehr teuer. + +

Das Waffeln am Congress hat sehr viel Spaß gemacht. Wir sehen uns als nächstes beim Easterhegg. + +--- +body: + + Refreshing Waffles +=================== + +Auf dem 35c3 hat das C3WOC eine halbe Tonne (500kg) Waffelteig gemacht. +--- +pub_date: 2019-01-10 +--- +shorttitle: 35c3 +--- +twitter_handle: L3D +--- +xml: Auf dem 35c3 hat das C3WOC eine halbe Tonne (500kg) Waffelteig gemacht. +--- +project: + +#### pro_img #### +image: waffel_love.jpg +#### pro_img #### +image: waffel_shift.jpg +#### pro_img #### +image: waffel_delivery.jpg +#### pro_img #### +image: waffel_sticker.jpg +#### pro_img #### +image: waffel_doener.jpg +#### pro_img #### +image: waffel_act.jpg +#### pro_img #### +image: waffel_njom.jpg +#### pro_img #### +image: waffel_beauty.jpg +#### pro_img #### +image: waffel_stempel.jpg +#### pro_img #### +image: waffel_tschunk.jpg +#### pro_img #### +image: waffel_tschunk_action.jpg +#### pro_img #### +image: waffel_tschunk_raw.jpg +#### pro_img #### +image: waffel_stamp.jpg +#### pro_img #### +image: waffel_loc.jpg +#### pro_img #### +image: waffel_weg.jpg +--- +xml_img: waffel_love.jpg diff --git a/content/blog/35c3/waffel_available.jpg b/content/blog/35c3/waffel_available.jpg deleted file mode 100644 index 68e8f7f..0000000 --- a/content/blog/35c3/waffel_available.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02979048b3923ba250786159f3ee25ba3775c945c5fa5116545e527dc21c8856 -size 511166 diff --git a/content/blog/35c3/waffel_bewaffelt.jpg b/content/blog/35c3/waffel_bewaffelt.jpg deleted file mode 100644 index 6df1d94..0000000 --- a/content/blog/35c3/waffel_bewaffelt.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95e3a37858f0e4171c829c8165879f9d03fa7ba6a4282d51ce75c00434dc6a42 -size 482819 diff --git a/content/blog/35c3/waffel_gift.jpg b/content/blog/35c3/waffel_gift.jpg deleted file mode 100644 index a81a7e8..0000000 --- a/content/blog/35c3/waffel_gift.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7524e513b37ee4d9eacbb4dc2e9004bf5bd4dc18e5c9b3e01abab34469c4c88f -size 370626 diff --git a/content/blog/35c3/waffel_schluss.jpg b/content/blog/35c3/waffel_schluss.jpg deleted file mode 100644 index 4b80e8d..0000000 --- a/content/blog/35c3/waffel_schluss.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a4847dbf636411b6333d3e6d668b3fc207c8f40c56121d9ee6726e726a96520 -size 109250 diff --git a/content/blog/camp-18/contents+en.lr b/content/blog/camp-18/contents+en.lr deleted file mode 100644 index 65cad35..0000000 --- a/content/blog/camp-18/contents+en.lr +++ /dev/null @@ -1,45 +0,0 @@ -author: L3D ---- -body: - -From the 9th to the 12th of August was the Freifunk Camp at Lake Constance. It was organized by the Hackerspace [see-base](https://see-base.de) and the Freifunk Communities [Freifunk Bodensee](https://ffbsee.net) and [Freifunk 3-Ländereck](https://ff3l.net). - -Of course the C3WOC was not missing here! - - - - - -The Freifunk Camp took place on the campus of the Waldorf School Überlingen. And it was only a few meters away from Hackerspace see-base. - - - - - - ---- -privatebody: - -Among other things, experiences on radio relay systems were built up, contact with communities and companies and with the different free radio capable routers were exchanged. - - - - -Not only people from the surrounding area came to the Freifunk Camp, but also people from Berlin, Kiel and Switzerland. - - - - - ---- -pub_date: 2018-08-21 ---- -subtitle: Waffles and Freifunk at Camping ---- -title: Freifunk Camp 2018 ---- -twitter_handle: L3D ---- -xml: From the 9th to the 12th of August was the Freifunk Camp at Lake Constance. It was organized by the Hackerspace see-base and the Freifunk communities Freifunk Bodensee and Freifunk 3-Ländereck. ---- -xml_img: waffel-standort.jpg diff --git a/content/blog/camp-18/contents.lr b/content/blog/camp-18/contents.lr index fc8a751..e67c1ee 100644 --- a/content/blog/camp-18/contents.lr +++ b/content/blog/camp-18/contents.lr @@ -2,11 +2,14 @@ title: Freifunk Camp 2018 --- author: L3D --- -pub_date: 2018-08-21 ---- -subtitle: Waffeln und Freifunk bei Camp ---- -twitter_handle: L3D +beitrag: + +Das Freifunk Camp fand auf dem Campus der Waldorfschule Überlingen statt. Und war nur wenige Meter vom Hackerspace see-base entfernt. + +Während dem Camp gab es viele Interessante Vorträge und Workshops von den einzelnen Freifunk Communitys. So wurden u.a. Erfahrungen zu Richtfunk aufbauten, Kontakt mit Gemeinden und Unternehmen und mit den unterschiedlichen Freifunk fähigen Routern ausgetauscht. + +Zum Freifunk Camp kamen nicht nur Menschen aus der Umgebung, sondern sogar Leute aus Berlin, Kiel und der Schweiz. + --- body: @@ -14,32 +17,28 @@ Vom 9. bis 12. August war das Freifunk Camp am Bodensee. Dieses wurde von dem Ha Selbstverständlich durfte hier das C3WOC nicht fehlen! - - - - -Das Freifunk Camp fand auf dem Campus der Waldorfschule Überlingen statt. Und war nur wenige Meter vom Hackerspace see-base entfernt. - - - - - - --- -privatebody: - -Während dem Camp gab es viele Interessante Vorträge und Workshops von den einzelnen Freifunk Communitys. So wurden u.a. Erfahrungen zu Richtfunk aufbauten, Kontakt mit Gemeinden und Unternehmen und mit den unterschiedlichen Freifunk fähigen Routern ausgetauscht. - - - - -Zum Freifunk Camp kamen nicht nur Menschen aus der Umgebung, sondern sogar Leute aus Berlin, Kiel und der Schweiz. - - - - - +pub_date: 2018-08-21 --- -xml: Vom 9. bis 12. August war das Freifunk Camp am Bodensee. Dieses wurde von dem Hackerspace see-base und den Freifunk Communitys Freifunk Bodensee und Freifunk 3-Ländereck veranstaltet. +shorttitle: Camp --- -xml_img: waffel-standort.jpg +twitter_handle: L3D +--- +xml: + +Vom 9. bis 12. August war das Freifunk Camp am Bodensee. Dieses wurde von dem Hackerspace see-base und den Freifunk Communitys Freifunk Bodensee und Freifunk 3-Ländereck veranstaltet. + +Selbstverständlich durfte hier das C3WOC nicht fehlen! +--- +project: + +#### pro_img #### +image: waffel-standort.jpg +#### pro_img #### +image: waffel-profi.jpg +#### pro_img #### +image: garten.jpg +#### pro_img #### +image: ambiente.jpg +--- +xml_img: waffel-profi.jpg diff --git a/content/blog/cep19/birthdaykid.JPG b/content/blog/cep19/birthdaykid.JPG new file mode 100644 index 0000000..6465f54 --- /dev/null +++ b/content/blog/cep19/birthdaykid.JPG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bb53e6fcde139453e8f80483b4746351e82495371d36be3257c0ac122a0cb63 +size 2578517 diff --git a/content/blog/cep19/cep19.jpg b/content/blog/cep19/cep19.jpg new file mode 100644 index 0000000..890f639 --- /dev/null +++ b/content/blog/cep19/cep19.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc1dc0d01ce453d655939fa6007e19e9e249bac3bef8e752b45bb3dc1750bf24 +size 154704 diff --git a/content/blog/cep19/cep_19.jpg b/content/blog/cep19/cep_19.jpg new file mode 100644 index 0000000..3f59d82 --- /dev/null +++ b/content/blog/cep19/cep_19.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73da612cacf790190fea4be423cb5ad43949645adc3f0f623ecbe02df3b9e460 +size 959148 diff --git a/content/blog/cep19/cep__19.jpg b/content/blog/cep19/cep__19.jpg new file mode 100644 index 0000000..141b7e6 --- /dev/null +++ b/content/blog/cep19/cep__19.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12a7ec9314e3571e14c3dad0ccb318c38b4c10ef9372c7d1e318fafb06b4b41d +size 914042 diff --git a/content/blog/cep19/contents.lr b/content/blog/cep19/contents.lr new file mode 100644 index 0000000..3e4fd6d --- /dev/null +++ b/content/blog/cep19/contents.lr @@ -0,0 +1,30 @@ +title: Chilli Eskalations Party +--- +author: L3D +--- +beitrag: https://www.mixcloud.com/couchsofa/couchsofa-kalo-kada-sha-la-live-at-cep19/ +--- +body: Letztes Wochenende war die Chilli Eskalations party in Heilbronn. Es gab Chilli und Waffeln! +--- +pub_date: 2019-03-15 +--- +shorttitle: CEP19 +--- +twitter_handle: L3D +--- +xml: Letztes Wochenende war die Chilli Eskalations party in Heilbronn. Es gab Chilli und Waffeln! +--- +project: + +#### pro_img #### +image: cep__19.jpg +#### pro_img #### +image: cep_19.jpg +#### pro_img #### +image: cep19.jpg +#### pro_img #### +image: index.jpg +--- +video_embeded: +--- +xml_img: index.jpg diff --git a/content/blog/cep19/index.jpg b/content/blog/cep19/index.jpg new file mode 100644 index 0000000..7707aa8 --- /dev/null +++ b/content/blog/cep19/index.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23ee0604c30ed80c78fc620f9e359a45bf0e36aeae1e1cf0210a8baca54c2c6d +size 43139 diff --git a/content/blog/cep19/mampf.JPG b/content/blog/cep19/mampf.JPG new file mode 100644 index 0000000..d66a882 --- /dev/null +++ b/content/blog/cep19/mampf.JPG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4b688f79d767d46d46e9f4b012ff69211a09b30e5b0a6c1f7efe37f798425c7 +size 1742452 diff --git a/content/blog/cep19/mozart.JPG b/content/blog/cep19/mozart.JPG new file mode 100644 index 0000000..8ba8b4b --- /dev/null +++ b/content/blog/cep19/mozart.JPG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99e5a3d8934c5ed7c2d66917a3d6d1592d4ac430af6c4dabf2214fe8b99dbe95 +size 2423204 diff --git a/content/blog/cep19/music.JPG b/content/blog/cep19/music.JPG new file mode 100644 index 0000000..2ffc8e6 --- /dev/null +++ b/content/blog/cep19/music.JPG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7f1a9b7279b31100d2aca42c147abc3031f09cba0b4fb476e53e1b805ee6131 +size 1759308 diff --git a/content/blog/cep19/schweif.JPG b/content/blog/cep19/schweif.JPG new file mode 100644 index 0000000..0653f15 --- /dev/null +++ b/content/blog/cep19/schweif.JPG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b0db0daf389c524a3c1a59b2507dfe094fce19a7f4f9f5fffae865d4778bed9 +size 915453 diff --git a/content/blog/cep19/star.JPG b/content/blog/cep19/star.JPG new file mode 100644 index 0000000..801c686 --- /dev/null +++ b/content/blog/cep19/star.JPG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99595d502725d8398e97fd4562cafbb89282ba237b121a05042130dc06bb735c +size 1158784 diff --git a/content/blog/cep19/teig.JPG b/content/blog/cep19/teig.JPG new file mode 100644 index 0000000..8a5661b --- /dev/null +++ b/content/blog/cep19/teig.JPG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b614e51f69fa19efe1941e8a00af24341612aa2b63668f9a72d0fb986cfb5cc8 +size 1343686 diff --git a/content/blog/contents+en.lr b/content/blog/contents+en.lr deleted file mode 100644 index f408ea8..0000000 --- a/content/blog/contents+en.lr +++ /dev/null @@ -1,8 +0,0 @@ -title: News ---- -sub_title: - - Tasty news. Now available as RSS
- tactical waffle operations. now available as -ICS - diff --git a/content/blog/contents.lr b/content/blog/contents.lr index 0c39a98..d75a73e 100644 --- a/content/blog/contents.lr +++ b/content/blog/contents.lr @@ -1,9 +1,9 @@ _model: blog --- -title: Neuigkeiten +title: Blog --- -sub_title: - - Leckere Neuigkeiten. Jetzt auch als RSS
- Taktische Waffeleinsätze. Jetzt auch als ICS - +description: Hier erfährst du über die neusten Projekte, Geschichten, Veranstaltungen oder sonstigen Updates, die mit Waffeln oder dem C3WOC in Zusammenhang stehen. +--- +link: /feed_blog.xml +--- +spruch: Bleibe über aktuelle Waffelmeldungen auf dem laufenden! diff --git a/content/blog/cosin-2018/contents.lr b/content/blog/cosin-2018/contents.lr index 4a2b912..75bae50 100644 --- a/content/blog/cosin-2018/contents.lr +++ b/content/blog/cosin-2018/contents.lr @@ -2,53 +2,36 @@ title: CoSin 2018 --- author: L3D --- -body: - -Das CoSin ist ein technischer und politischer Event mit Workshops, Vorträgen, Diskussionsrunden und anderem Inhalt. Einer dieser Inhalte war in diesem Jahr das C3WOC. Wir haben, dank der Unterstützung von gnrp, sva, matt und kr0l sowie dem Hackerspace see-base, einiges an Equipment aufgefahren. - - - - - -So gab es natürlich die üblichen Waffeln. Aber auch Pizza direkt aus dem Holzofen. - - - - +beitrag: Der Holzofen kommt aus dem Hackerspace see-base in Überlingen. - ---- -pub_date: 2018-07-15 ---- -subtitle: Einige Bilder der Chaos Singularity aus Biel/Bienne ---- -twitter_handle: L3D ---- -privatebody: - - - - - - - - - - - - - - Weitere Informationen zur CoSin gibt es auf cosin.ch
Die Vorträge der CoSin gibt es auf media.ccc.de als Aufzeichnung. --- -xml: - -Das CoSin ist ein technischer und politischer Event mit Workshops, Vorträgen, Diskussionsrunden und anderem Inhalt. Einer dieser Inhalte war in diesem Jahr das C3WOC. Wir haben, dank der Unterstützung von gnrp, sva, matt und kr0l sowie dem Hackerspace see-base, einiges an Equipment aufgefahren. - - -So gab es natürlich die üblichen Waffeln. Aber auch Pizza direkt aus dem Holzofen. +body: Das CoSin ist ein technischer und politischer Event mit Workshops, Vorträgen, Diskussionsrunden und anderem Inhalt. Einer dieser Inhalte war in diesem Jahr das C3WOC. Wir haben, dank der Unterstützung von gnrp, sva, matt und kr0l sowie dem Hackerspace see-base, einiges an Equipment aufgefahren. --- -xml_img: njom.jpg +pub_date: 2018-07-15 +--- +shorttitle: CoSin +--- +twitter_handle: L3D +--- +xml: Das CoSin ist ein technischer und politischer Event mit Workshops, Vorträgen, Diskussionsrunden und anderem Inhalt. Einer dieser Inhalte war in diesem Jahr das C3WOC. Wir haben, dank der Unterstützung von gnrp, sva, matt und kr0l sowie dem Hackerspace see-base, einiges an Equipment aufgefahren. +--- +project: + +#### pro_img #### +image: ofen.jpg +#### pro_img #### +image: food.jpg +#### pro_img #### +image: njom.jpg +#### pro_img #### +image: pizza.jpg +#### pro_img #### +image: waffeln.jpg +#### pro_img #### +image: pizza_klein.jpg +--- +xml_img: pizza.jpg diff --git a/content/blog/ecreating-waffles/contents.lr b/content/blog/ecreating-waffles/contents.lr new file mode 100644 index 0000000..247fc93 --- /dev/null +++ b/content/blog/ecreating-waffles/contents.lr @@ -0,0 +1,31 @@ +title: Recreating Waffles +--- +author: L3D +--- +beitrag: + +Wenn du Lust hast mitzumachen, dann melde dich doch bei uns. + +Am besten per Mail an: + +```` +waffel@c3woc.de +```` +--- +body: + +Der 35c3 steht vor der Türe. Und dieses mal wird das C3WOC mit vereinter waffelkraft Waffeln machen. + +Beim C3WOC sind leider nicht mal eine handvoll Leute, die das mit den Waffeln planen und organisieren. Und so sind wir auf die Hilfe von anderen Menschen angewiesen. Außerdem macht es viel mehr Spaß, wenn man gemeinsam Waffeln macht. +--- +pub_date: 2018-12-16 +--- +shorttitle: 35c3 - Planung +--- +twitter_handle: L3D +--- +xml: + +Der 35c3 steht vor der Türe. Und dieses mal wird das C3WOC mit vereinter waffelkraft Waffeln machen. + +Beim C3WOC sind leider nicht mal eine handvoll Leute, die das mit den Waffeln planen und organisieren. Und so sind wir auf die Hilfe von anderen Menschen angewiesen. Außerdem macht es viel mehr Spaß, wenn man gemeinsam Waffeln macht. diff --git a/content/blog/eh18/contents.lr b/content/blog/eh18/contents.lr deleted file mode 100644 index 125ae56..0000000 --- a/content/blog/eh18/contents.lr +++ /dev/null @@ -1,35 +0,0 @@ -title: Easterhegg Würzburg ---- -author: L3D ---- -body: - -Auf dem Easterhegg Würzburg war das c3WOC auch vertreten. Aber auf wunsch der Orga leider ohne Waffelequipment. So wurden leider keine essbaren Waffeln produziert, sondern wir haben uns auf Waffeln in Pixelform auf der Pixelflut beschränkt. - - - - - -Und einige neue großartige Verknüpfungen ins Chaos geknüpft um auf zukünftigen Events mit noch viel mehr Waffeln zu Waffeln. - -Das nächste größere Chaosevent mit Waffelunterstützung ist die GPN in Karlsruhe. ---- -pub_date: 2018-04-02 ---- -twitter_handle: c3woc ---- -subtitle: In Würzburg wollte es keine Waffeln geben ---- -privatebody: - - Easterhegg war trotzdem toll -========= - -Aber auch ohne essbare Waffeln war der Easterhegg ein tolles Event. -So haben sich mehr Leute gefunden, die auch einen an der Waffel haben. So können wir auf der GPN mit noch mehr vereinter Waffelpower Waffelgewalt ausüben. - -Und auch erste Verbindungen zu c3GELB wurden geknüpft. -Seit dem arbeiten wir daran zum Congress Hygienezertifiziert zu sein. -Das Stichwort hierzu lautet Frikadellendiplom. ---- -xml_img: eh18-pxl.jpg diff --git a/content/blog/eh19/contents.lr b/content/blog/eh19/contents.lr new file mode 100644 index 0000000..9e278b5 --- /dev/null +++ b/content/blog/eh19/contents.lr @@ -0,0 +1,33 @@ +title: Easterhegg Würzburg +--- +author: L3D +--- +body: + + In Würzburg wollte es keine Waffeln geben +======================= + +Auf dem Easterhegg Würzburg war das c3WOC auch vertreten. Aber auf wunsch der Orga leider ohne Waffelequipment. So wurden leider keine essbaren Waffeln produziert, sondern wir haben uns auf Waffeln in Pixelform auf der Pixelflut beschränkt. +--- +pub_date: 2018-04-02 +--- +shorttitle: EH18 +--- +twitter_handle: L3D +--- +xml: Auf dem Easterhegg Würzburg war das c3WOC auch vertreten. Aber auf wunsch der Orga leider ohne Waffelequipment. So wurden leider keine essbaren Waffeln produziert, sondern wir haben uns auf Waffeln in Pixelform auf der Pixelflut beschränkt. +--- +beitrag: + +Und einige neue großartige Verknüpfungen ins Chaos geknüpft um auf zukünftigen Events mit noch viel mehr Waffeln zu Waffeln. + +Das nächste größere Chaosevent mit Waffelunterstützung ist die GPN in Karlsruhe. + + Easterhegg war trotzdem toll +============================== + +Aber auch ohne essbare Waffeln war der Easterhegg ein tolles Event. So haben sich mehr Leute gefunden, die auch einen an der Waffel haben. So können wir auf der GPN mit noch mehr vereinter Waffelpower Waffelgewalt ausüben. + +Und auch erste Verbindungen zu C3GELB wurden geknüpft. Seit dem arbeiten wir daran zum Congress Hygienezertifiziert zu sein. Das Stichwort hierzu lautet Frikadellendiplom. +--- +xml_img: eh18-pxl.jpg diff --git a/content/blog/eh18/eh18-pxl.jpg b/content/blog/eh19/eh18-pxl.jpg similarity index 100% rename from content/blog/eh18/eh18-pxl.jpg rename to content/blog/eh19/eh18-pxl.jpg diff --git a/content/blog/fidm18/contents.lr b/content/blog/fidm18/contents.lr index 6b94f45..b7f4314 100644 --- a/content/blog/fidm18/contents.lr +++ b/content/blog/fidm18/contents.lr @@ -1,33 +1,30 @@ -title: Waffle in den Mai +title: Waffel in den Mai --- author: L3D --- -body: - -Am letzten Samstag im April 2018 war der Flash in den Mai #FidM. -Organisiert wurde er von [Freifunk Stuttgart](https://freifunk-stuttgart.de/) und fand dieses Jahr im [Shackspace](https://shackspace.de) statt. - - - - - ---- -privatebody: +beitrag: Selbstverständlich war das c3WOC auch vor Ort und hat fleißig gewaffelt. So haben wir dort ungefähr 6 KG Waffelteig vernichtet und herausgefunden, das auch Apfelmus und Vanilleeis ein hervorragender Waffelbelag ist. -Die nächste große Veranstaltung mit dem c3WOC ist die [GPN](https://gulas.ch) in Karlsruhe. +Die nächste große Veranstaltung mit dem c3WOC ist die GPN in Karlsruhe. Wir freuen uns darauf, dort gemeinsam Waffelherzen zu verbreiten. --- +body: Am letzten Samstag im April 2018 war der Flash in den Mai #FidM. Organisiert wurde er von Freifunk Stuttgart und fand dieses Jahr im Shackspace statt. +--- pub_date: 2018-04-29 --- -subtitle: Flash in den Mai +shorttitle: FidM --- -twitter_handle: l3d +twitter_handle: L3D --- -xml: Am letzten Samstag im April 2018 war der Flash in den Mai. Natürlich mit Waffeln! +xml: Am letzten Samstag im April 2018 war der Flash in den Mai #FidM. Organisiert wurde er von Freifunk Stuttgart und fand dieses Jahr im Shackspace statt. +--- +project: + +#### pro_img #### +image: FidM18.jpg --- xml_img: FidM18.jpg diff --git a/content/blog/first-post/contents.lr b/content/blog/first-post/contents.lr index f634412..0c71380 100644 --- a/content/blog/first-post/contents.lr +++ b/content/blog/first-post/contents.lr @@ -1,15 +1,19 @@ title: Webseite ist da --- -pub_date: 2018-02-24 ---- author: L3D --- -body: +beitrag: -

Es ist etwas unglaubliches geschehen!

+Das C3WOC hat nun endlich eine Webseite \o/ -Das c3woc hat nun endlich eine Webseite \o/ - -Mehr dazu auf [git.see-base.de](https://git.see-base.de/l3d/c3woc). +Diese findet ihr auf [GitHub](https://github.com/ToolboxBodensee/c3woc-website.git). Schaut dort doch mal vorbei und macht mit! --- -xml: Das c3woc hat nun endlich eine Webseite \o/ +body: Das C3WOC hat nun endlich eine Webseite \o/ +--- +pub_date: 2018-02-24 +--- +twitter_handle: L3D +--- +xml: Das C3WOC hat nun endlich eine Webseite \o/ +--- +shorttitle: Hallo Welt diff --git a/content/blog/fleischhaltige-waffeln/contents+en.lr b/content/blog/fleischhaltige-waffeln/contents+en.lr deleted file mode 100644 index 30bc4d7..0000000 --- a/content/blog/fleischhaltige-waffeln/contents+en.lr +++ /dev/null @@ -1,38 +0,0 @@ -author: L3D ---- -body: - - - - - -Today the [Toolbox](https://toolbox-bodensee.de) has developed a little bit of the waffle formula and created a new creation of the waffle dough: - - Meaty waffles --------------------------------- - -The trick is to replace the sugar in the dough with fried minced meat, onions and garlic and add fresh herbs and pepper. - -Surprisingly, this was very well received by everyone present and was also wished for soon again! ---- -privatebody: - - - - - -The exact formula can be found at the following address: - -Meaty waffles ---- -pub_date: 2018-10-25 ---- -subtitle: Waffles don't just have to be vegetarian! ---- -title: Meaty waffles ---- -twitter_handle: L3D ---- -xml: Waffles with meaty dough. Sounds unusual at first, but tastes surprisingly good. ---- -xml_img: waffle.jpg diff --git a/content/blog/fleischhaltige-waffeln/contents.lr b/content/blog/fleischhaltige-waffeln/contents.lr deleted file mode 100644 index 64315bd..0000000 --- a/content/blog/fleischhaltige-waffeln/contents.lr +++ /dev/null @@ -1,38 +0,0 @@ -title: Fleischhaltige Waffeln ---- -author: L3D ---- -pub_date: 2018-10-25 ---- -subtitle: Waffeln müssen nicht nur vegetarisch sein! ---- -twitter_handle: L3D ---- -xml: Waffeln mit Fleischhaltigen Teig. Klingt erstmal ungewöhnlich, schmeckt aber doch erstaunlich gut. ---- -xml_img: waffle.jpg ---- -body: - - - - - -Heute wurde in der [Toolbox](https://toolbox-bodensee.de) ein wenig an der Waffelformel entwickelt und eine neue kreation des Waffelteiges erstellt: - - Fleischhaltige Waffeln --------------------------------- - -Der Trick ist, den Zucker im Teig durch angebratenes Hackfleisch, Zwiebeln und Knoblauch zu ersetzen und mit frischen Kräutern und Pfeffer zu ergänzen. - -Dies kam erstaunlicherweise bei allen Anwesenden sehr gut an und wurde sich auch für demnächst wieder gewünscht! ---- -privatebody: - - - - - -Die genaue Formel findet ihr unter folgender Adresse: - -Fleischhaltige Waffel diff --git a/content/blog/fleischhaltige-waffeln/njom.jpg b/content/blog/fleischhaltige-waffeln/njom.jpg deleted file mode 100644 index 8c21374..0000000 --- a/content/blog/fleischhaltige-waffeln/njom.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5fa47cef864e42da5bc93825e1ed717920c24081c2e54a6330cbc8454f1566b -size 1852338 diff --git a/content/blog/fleischhaltige-waffeln/waffle.jpg b/content/blog/fleischhaltige-waffeln/waffle.jpg deleted file mode 100644 index dc8b70e..0000000 --- a/content/blog/fleischhaltige-waffeln/waffle.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30c372b74ac8e75d27e24e2c04533538a030bfeffa2303c2c93073c7dc3e9699 -size 844103 diff --git a/content/blog/froscon18/contents+en.lr b/content/blog/froscon18/contents+en.lr deleted file mode 100644 index 0f1d7f7..0000000 --- a/content/blog/froscon18/contents+en.lr +++ /dev/null @@ -1,55 +0,0 @@ -author: L3D ---- -body: - -On the 25th and 26th of August 2018 we were in Bonn-Rhein-Sieg University of Applied Sciences where we diligently made waffles for our guests and participants. - - - - - -There we combined light and waffles for the first time and conjure a proper lighting to the waffle environment. - - - - ---- -privatebody: - -The Froscon collected a total of over 400 euros in donations for the waffles. That will help them to make waffles great again. Even next year too. Thank you <3 - -The FrOSCon is the first event that the C3WOC has commissioned to make waffles. They offered to py the travel expenses, ingredients and the night in the hotel paid. And we agreed. - - - - - - - - - - - -Pro Tip: -In the heart of the dough, it is beneficial not to overly increase the amount and baking soda. - - - - - - - - - ---- -pub_date: 2018-08-30 ---- -subtitle: Waffles in the University of Bonn-Rhein-Sieg ---- -title: FrOSCon ---- -twitter_handle: L3D ---- -xml: Am 25. und 26. August 2018 waren wir in der Hochschule Bonn-Rhein-Sieg und haben dort für die Gäste und Teilnehmer fleißig Waffeln gemacht. ---- -xml_img: team.jpg diff --git a/content/blog/froscon18/contents.lr b/content/blog/froscon18/contents.lr index f6ddab8..10b2bfd 100644 --- a/content/blog/froscon18/contents.lr +++ b/content/blog/froscon18/contents.lr @@ -1,55 +1,40 @@ -title: FrOSCon +title: FrOSCon 2018 --- author: L3D --- -pub_date: 2018-08-30 ---- -subtitle: Waffeln in der Hochschule Bonn-Rhein-Sieg ---- -twitter_handle: L3D ---- -body: - -Am 25. und 26. August 2018 waren wir in der Hochschule Bonn-Rhein-Sieg und haben dort für die Gäste und Teilnehmer fleißig Waffeln gemacht. - - - - +beitrag: Dort haben wir zum ersten mal Licht und Waffeln kombiniert und haben eine ordentliche Beleuchtung zum Waffelstand gezaubert. - - - ---- -privatebody: - An Spenden haben wir insgesamt über 400 Euro für die FrOSCon eingesammelt. Vielen Dank <3 Die FrOSCon ist das erste Event, dass das C3WOC beauftragt hat, Waffeln zu machen. Dafür hat es uns die Reisekosten, Zutaten und die Übernachtung im Hotel bezahlt. - - - - - - - - - - -Profitipp: -Beim herstellen des Teiges, ist es vorteilhaft die Menge an Backpulver nicht übermäßig zu vergrößern. - - - - - - - - - +Profitipp: Beim herstellen des Teiges, ist es vorteilhaft die Menge an Backpulver nicht übermäßig zu vergrößern. +--- +body: Am 25. und 26. August 2018 waren wir in der Hochschule Bonn-Rhein-Sieg und haben dort für die Gäste und Teilnehmer fleißig Waffeln gemacht. +--- +pub_date: 2018-08-30 +--- +shorttitle: FrOSCon +--- +twitter_handle: L3D --- xml: Am 25. und 26. August 2018 waren wir in der Hochschule Bonn-Rhein-Sieg und haben dort für die Gäste und Teilnehmer fleißig Waffeln gemacht. --- -xml_img: team.jpg +project: + +#### pro_img #### +image: hello.jpg +#### pro_img #### +image: waffel.jpg +#### pro_img #### +image: team.jpg +#### pro_img #### +image: licht.jpg +#### pro_img #### +image: overflow.jpg +#### pro_img #### +image: teig.jpg +--- +xml_img: hello.jpg diff --git a/content/blog/geekend_nov_2018/contents.lr b/content/blog/geekend_nov_2018/contents.lr index e78467b..396b2b4 100644 --- a/content/blog/geekend_nov_2018/contents.lr +++ b/content/blog/geekend_nov_2018/contents.lr @@ -2,49 +2,50 @@ title: C6 Geekend --- author: L3D --- -pub_date: 2018-11-10 ---- -subtitle: Waffelexporte auch an Kriesengebiete! ---- -xml: +beitrag: -Waffelexporte gehen auch an Kriesengebiete! +``` +Status-Abgleich: Was funktioniert bereits? +Vernetzung der bestehenden Standorte +Cluster-Zugriff für interessierte Projekte +Weiter-Entwicklung der Software für’s Cluster-Management +Dem verspeisen von Waffeln des C3WOC +``` -Natürlich gibt es dann auch Waffeln beim C6 Geekend in Kiel! ---- -xml_img: ergebnis.jpg +Zu dem letzten Themengebiet gibt es hier ein paar Bilder: --- body: + Waffelexporte auch an Kriesengebiete! +========================= + Vom 09. bis 11. November 2018 fand das dritte Cluster-GeekEnd in Kiel statt. Zu den Themenkomplexen gehören unter anderem “Clustered Computing” für Nerds, Geeks, Hacker und andere Lebensformen. Insbesondere wurde sich an diesen Tagen folgenden Themen gewidmet: - - Status-Abgleich: Was funktioniert bereits? - Vernetzung der bestehenden Standorte - Cluster-Zugriff für interessierte Projekte - Weiter-Entwicklung der Software für’s Cluster-Management - Dem verspeisen von Waffeln des C3WOC - -Zu dem letzten Themengebiet gibt es hier ein paar Bilder: - - - - --- -privatebody: - - - - - - - - - - - - - +pub_date: 2018-11-10 +--- +shorttitle: C6 --- twitter_handle: L3D +--- +xml: + +Vom 09. bis 11. November 2018 fand das dritte Cluster-GeekEnd in Kiel statt. + +Zu den Themenkomplexen gehören unter anderem “Clustered Computing” für Nerds, Geeks, Hacker und andere Lebensformen. Insbesondere wurde sich an diesen Tagen folgenden Themen gewidmet: +--- +project: + +#### pro_img #### +image: ergebnis.jpg +#### pro_img #### +image: zutaten.jpg +#### pro_img #### +image: table.jpg +#### pro_img #### +image: ruehren.jpg +#### pro_img #### +image: teig.jpg +--- +xml_img: ergebnis.jpg diff --git a/content/blog/gluehpn/contents+en.lr b/content/blog/gluehpn/contents+en.lr deleted file mode 100644 index a337333..0000000 --- a/content/blog/gluehpn/contents+en.lr +++ /dev/null @@ -1,70 +0,0 @@ -author: L3D ---- -body: - - -Auf der Gulasch Programmier Nacht ([GPN18,5](https://entropia.de/GPN18,5)) haben wir auch dieses Jahr wieder Waffeln gebacken. - -Und da der Chaos Communication Congress direkt vor der Türe steht haben wir beschlossen Spenden zu sammeln und diese dem Open Infrastructure Orbit zukommen zu lassen. - - - - - -Insgesamt haben wir zum Ende der GPN ein Plus von 501€ die wir dem Orbit zukommen lassen haben. - -Zur Information: Den Spendenaufruf dazu gibt es hier: [blog.freifunk.net](https://blog.freifunk.net/2018/11/19/oio-auf-dem-35c3-call-for-participation-call-for-donations/)
-Spendenhistory bei Betterplaces: [betterplace.org](https://www.betterplace.org/de/projects/12172-freifunk-net/opinions#ppp-sticky-anchor) - - - - ---- -galerie: ---- -privatebody: - -Insgesamt kamen sogar fast 740€ in den Spendentopf über die drei Tage. Doch die Zutaten sowie der Belag der Waffeln haben etwa 240€ gekostet. - - -Da waren dann aber auch u.a. Zutaten für den Veganen Teig dabei. - - - - - - - - - - -Viele Leute haben uns angesprochen und meinten, dass die Waffeln sehr lecker waren. So etwas ist immer toll zu hören und bestätigt uns in unserem vorhaben! - - - - - -Am Freitag war erst ein kleiner Teil vom C3WOC vom Bodensee vertreten. Genauer gesagt der L3D. Dankenswerter Weise haben sich aber trotzdem auch ein paar Leute gefunden die beim Zutaten einkaufen, Teig machen oder Waffeln backen mitgeholfen haben. -Vielen lieben Dank hierfür! - - - - - -Am Samstag ist dann auch die Unterstützung aus Darmstadt aufgetaucht. Und es hat sich nur einmal mehr gezeigt: zusammen macht das Waffeln machen nur noch mehr spaß! - - - - ---- -pub_date: 2018-11-26 ---- -subtitle: Waffeln für den OiO ---- -title: GlühPN ---- -twitter_handle: L3D ---- -xml: Auf der GlühPN haben wir 501€ Spenden gesammelt. Diese wurden an dern Open Infrastructure Orbit beim 35c3 gespendet. ---- -xml_img: spende.jpg diff --git a/content/blog/gluehpn/contents.lr b/content/blog/gluehpn/contents.lr index ebed6cf..5499b89 100644 --- a/content/blog/gluehpn/contents.lr +++ b/content/blog/gluehpn/contents.lr @@ -1,77 +1,59 @@ title: GlühPN --- -xml: Auf der GlühPN haben wir 501€ Spenden gesammelt. Diese wurden an dern Open Infrastructure Orbit beim 35c3 gespendet. ---- author: L3D --- -pub_date: 2018-11-26 ---- -subtitle: Waffeln für den OiO ---- -twitter_handle: L3D ---- -xml_img: spende.jpg ---- -body: - - -Auf der Gulasch Programmier Nacht ([GPN18,5](https://entropia.de/GPN18,5) haben wir auch dieses Jahr wieder Waffeln gebacken. - -Und da der Chaos Communication Congress direkt vor der Türe steht haben wir beschlossen Spenden zu sammeln und diese dem Open Infrastructure Orbit zukommen zu lassen. - - - - +beitrag: Insgesamt haben wir zum Ende der GPN ein Plus von 501€ die wir dem Orbit zukommen lassen haben. Zur Information: Den Spendenaufruf dazu gibt es hier: [blog.freifunk.net](https://blog.freifunk.net/2018/11/19/oio-auf-dem-35c3-call-for-participation-call-for-donations/)
Spendenhistory bei Betterplaces: [betterplace.org](https://www.betterplace.org/de/projects/12172-freifunk-net/opinions#ppp-sticky-anchor) - - - ---- -privatebody: - Insgesamt kamen sogar fast 740€ in den Spendentopf über die drei Tage. Doch die Zutaten sowie der Belag der Waffeln haben etwa 240€ gekostet. - - Da waren dann aber auch u.a. Zutaten für den Veganen Teig dabei. - - - - - - - - - Viele Leute haben uns angesprochen und meinten, dass die Waffeln sehr lecker waren. So etwas ist immer toll zu hören und bestätigt uns in unserem vorhaben! - - - - Am Freitag war erst ein kleiner Teil vom C3WOC vom Bodensee vertreten. Genauer gesagt der L3D. Dankenswerter Weise haben sich aber trotzdem auch ein paar Leute gefunden die beim Zutaten einkaufen, Teig machen oder Waffeln backen mitgeholfen haben. -Vielen lieben Dank hierfür! - - - +Vielen lieben Dank hierfür! Am Samstag ist dann auch die Unterstützung aus Darmstadt aufgetaucht. Und es hat sich nur einmal mehr gezeigt: zusammen macht das Waffeln machen nur noch mehr spaß! - - - +--- +body: + +Auf der Gulasch Programmier Nacht ([GPN18,5](https://entropia.de/GPN18,5)) haben wir auch dieses Jahr wieder Waffeln gebacken. + +Und da der Chaos Communication Congress direkt vor der Türe steht haben wir beschlossen Spenden zu sammeln und diese dem Open Infrastructure Orbit zukommen zu lassen. +--- +pub_date: 2018-11-26 +--- +shorttitle: GPN18,5 +--- +twitter_handle: L3D +--- +xml: + +Auf der Gulasch Programmier Nacht (GPN18,5) haben wir auch dieses Jahr wieder Waffeln gebacken. + +Und da der Chaos Communication Congress direkt vor der Türe steht haben wir beschlossen Spenden zu sammeln und diese dem Open Infrastructure Orbit zukommen zu lassen. --- project: -#### image #### -image: vegan.jpg -#### image #### +#### pro_img #### +image: waffle.jpg +#### pro_img #### +image: waffle_.jpg +#### pro_img #### image: vegan.jpg +#### pro_img #### +image: beginning.jpg +#### pro_img #### +image: practise.jpg +#### pro_img #### +image: spende.jpg +#### pro_img #### +image: fine.jpg --- -galerie: +xml_img: waffle.jpg diff --git a/content/blog/gluehpn/waffle.jpg b/content/blog/gluehpn/waffle.jpg index 57c288b..5f43383 100644 --- a/content/blog/gluehpn/waffle.jpg +++ b/content/blog/gluehpn/waffle.jpg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:79865737f5a49b0e6a58c05b1a601e926ebd760674492a3dfbf8fe72fe6a925a -size 2799033 +oid sha256:3847e82cef89f7aca0f58ae4ee7d4fc24b5acb836516e17117f0d37fd390cd60 +size 7787991 diff --git a/content/blog/gluehpn/waffle_.jpg b/content/blog/gluehpn/waffle_.jpg new file mode 100644 index 0000000..57c288b --- /dev/null +++ b/content/blog/gluehpn/waffle_.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79865737f5a49b0e6a58c05b1a601e926ebd760674492a3dfbf8fe72fe6a925a +size 2799033 diff --git a/content/blog/gpn18-tag2/contents.lr b/content/blog/gpn18-tag2/contents.lr index 4fb296c..aded81e 100644 --- a/content/blog/gpn18-tag2/contents.lr +++ b/content/blog/gpn18-tag2/contents.lr @@ -1,55 +1,47 @@ title: #GPN18 Tag2 --- -author: C3WOC +author: L3D --- -body: - -Nachdem am ersten Tag der [GPN](https://gulas.ch) vorsichtig losgewaffelt wurde, war am zweiten Tag an einen Waffelstillstand nicht mehr zu denken.Unermüdlich wurde den ganzen Tag über mit schwer bewaffelten Equipment hantiert. So dass sich zum Ende des Tages stolz verkünden lässt: - -Wir haben heute 40 Liter Waffelteig eleminiert. - - - - ---- -pub_date: 2018-05-11 ---- -subtitle: Einen Waffelstillstand gibt es nicht ---- -twitter_handle: c3woc ---- -privatebody: +beitrag: Ohne die erneute Vereinigung des C3WOC aus Darmstadt und des C3WOC om Bodensee wäre das wohl unmöglich gewesen. - - - - -Mit vereinten Kräften wurde im Gulaschzelt, also der Küche bei der GPN eine nach der anderen Schüssel Waffelteig angerührt. So haben wir nach [unserem Rezept](/rezepte/) heute insgesamt 40 Liter Waffelteig angerürt. - - - - +Mit vereinten Kräften wurde im Gulaschzelt, also der Küche bei der GPN eine nach der anderen Schüssel Waffelteig angerührt. So haben wir nach unserem Rezept heute insgesamt 40 Liter Waffelteig angerürt. Das vereinigte C3WOC Waffelt nun auf der GPN mit bis zu vier Waffeleisen gleichzeitig im Betrieb und einiger Waffelkraft in Reserve. - - - +Somit war der zweite Tag der GPN ein voller Waffelerfolg. Vielen Dank an die Unterstützung von allen Beteiligen +--- +body: -Somit war der zweite Tag der GPN ein voller Waffelerfolg. -Vielen Dank an die Unterstützung von allen Beteiligen + Einen Waffelstillstand gibt es nicht +============================ - - - +Nachdem am ersten Tag der GPN vorsichtig losgewaffelt wurde, war am zweiten Tag an einen Waffelstillstand nicht mehr zu denken.Unermüdlich wurde den ganzen Tag über mit schwer bewaffelten Equipment hantiert. So dass sich zum Ende des Tages stolz verkünden lässt: +Wir haben heute 40 Liter Waffelteig eleminiert. +--- +pub_date: 2018-05-11 +--- +shorttitle: #GPN18 Tag2 +--- +twitter_handle: L3D --- xml: Nachdem am ersten Tag der GPN vorsichtig losgewaffelt wurde, war am zweiten Tag an einen Waffelstillstand nicht mehr zu denken.Unermüdlich wurde den ganzen Tag über mit schwer bewaffelten Equipment hantiert. So dass sich zum Ende des Tages stolz verkünden lässt: -Wir haben heute 40 Liter Waffelteig eleminiert. +Wir haben heute 40 Liter Waffelteig eleminiert. +--- +project: + +#### pro_img #### +image: gn8.jpg +#### pro_img #### +image: kaesescheiben.jpg +#### pro_img #### +image: zutaten.jpg +#### pro_img #### +image: 2gether.jpg --- xml_img: waffelstillstand.jpg diff --git a/content/blog/gpn18-waffelputzen/contents.lr b/content/blog/gpn18-waffelputzen/contents.lr index 94d2b6f..f35dd35 100644 --- a/content/blog/gpn18-waffelputzen/contents.lr +++ b/content/blog/gpn18-waffelputzen/contents.lr @@ -2,36 +2,35 @@ title: Faszination Waffeleisenputzen --- author: L3D --- -body: +beitrag: -Bei der [#GPN18](https://entropia.de/GPN18) wurde echt viel Gewaffelt. Und das ist auch gut so. Dennoch muss natürlich hinterher das Waffeleisen gründlich gepflegt und geputzt werden. Denn es ging durchaus nicht jeder Teig an die richtige Stelle im Eisen. - - - - ---- -privatebody: - -Und so hat haben wir beim putzen des Waffeleisens dieses echt komplett auseinander nehmen müssen. -Der Teig ist echt bis in den hintersten Winkel gekrochen. - - - - +Und so hat haben wir beim putzen des Waffeleisens dieses echt komplett auseinander nehmen müssen. Der Teig ist echt bis in den hintersten Winkel gekrochen. Sogar die Steinwolle im Waffeleisen selber war nicht mehr ganz sauber und musste getauscht werden. Das war etwas unerwartet, wir haben es aber trotzdem gemacht ;-) Nun sind wir bereit auf den nächsten Veranstaltungen nur um so mehr Waffeln zu machen ;-) +--- +body: + + Wo überall im Waffeleisen der Teig hinkommt... +================================== + +Bei der #GPN18 wurde echt viel Gewaffelt. Und das ist auch gut so. Dennoch muss natürlich hinterher das Waffeleisen gründlich gepflegt und geputzt werden. Denn es ging durchaus nicht jeder Teig an die richtige Stelle im Eisen. + --- pub_date: 2018-05-26 --- -subtitle: Wo überall im Waffeleisen der Teig hinkommt... +shorttitle: Eisen putzen --- twitter_handle: L3D --- -xml: - -Bei der GPN18 wurde echt viel Gewaffelt. Und das ist auch gut so. Dennoch muss natürlich hinterher das Waffeleisen gründlich gepflegt und geputzt werden. Denn es ging durchaus nicht jeder Teig an die richtige Stelle im Eisen. - +xml: Bei der #GPN18 wurde echt viel Gewaffelt. Und das ist auch gut so. Dennoch muss natürlich hinterher das Waffeleisen gründlich gepflegt und geputzt werden. Denn es ging durchaus nicht jeder Teig an die richtige Stelle im Eisen. --- -xml_img: waffeleisen.jpg +project: + +#### pro_img #### +image: steinwolle.jpg +#### pro_img #### +image: waffeleisen.jpg +--- +xml_img: steinwolle.jpg diff --git a/content/blog/gpn18/contents.lr b/content/blog/gpn18/contents.lr index f5586d6..7c52bc5 100644 --- a/content/blog/gpn18/contents.lr +++ b/content/blog/gpn18/contents.lr @@ -1,52 +1,52 @@ -title: Gulasch Programier Nacht +title: Waffeln auf der #GPN18 --- author: L3D --- -body: +beitrag: -Die [Gulaschprogrammiernacht](https://gulas.ch) ist eine viertägige Konferenz für Hacker, Technikbegeisterte und interessierte Laien und mit über 1000 Teilnehmern die zweitgrößte jährliche Veranstaltung des Chaos Computer Club. Hier Treffen sich Hacker, Chaoten und viele weitere Lebensformen im HFG und ZKM in Karlsruhe. - -Natürlich darf dort das C3WOC auch nicht fehlen. Daher sind wir dort bereits am Donnerstag, den ersten Tag der GPN mit den ersten Waffeleisen aufgeschlagen. - - - - + Daher sind wir dort bereits am Donnerstag, den ersten Tag der GPN mit den ersten Waffeleisen aufgeschlagen. Selbstverständlich haben wir sofort losgewaffelt! ---- -pub_date: 2018-05-10 ---- -subtitle: Waffeln auf der #GPN18 ---- -twitter_handle: c3woc ---- -privatebody: -Der Entropia hat uns in der mitte der GPN plaziert. Genauer gesagt gegenüber der großen Bar. - - - +Der Entropia hat uns in der mitte der GPN plaziert. Genauer gesagt gegenüber der großen Bar. -Dort haben wir Strom, Internet und Tschunk, also alles, was der Nerd begehrt. -Auch wenn wir es am Tag1 mit nur eingeschränkter Waffel-Manschaft langsam angehen wollten, haben wir direkt 10 Liter Waffelteig verbacken! +Dort haben wir Strom, Internet und Tschunk, also alles, was der Nerd begehrt. Auch wenn wir es am Tag1 mit nur eingeschränkter Waffel-Manschaft langsam angehen wollten, haben wir direkt 10 Liter Waffelteig verbacken! - - - - - -Hierbei ein herzliches Dankeschön an Obelix und an die ganze GPN Orga, die die Zutaten für den Waffelteig besorgt haben und die ausübung der Waffelgewalt zugelassen haben. Aber auch Danke an alle, die etwas in die Spendenkasse geworfen haben. -Das waren schon am ersten Tag 142 Euro. Das Geld wir verwendet um Primär die Zutaten zu bezahlen, aber auch um Merch wie die Aufkleber und Schürzen zu finanzieren und uns auch ein großen Banner zu besorgen, damit man uns finden kann. -Das restliche Geld kommt den Veranstaltern der GPN, also dem Entropia e.V. zu gute. - - - - +Hierbei ein herzliches Dankeschön an Obelix und an die ganze GPN Orga, die die Zutaten für den Waffelteig besorgt haben und die ausübung der Waffelgewalt zugelassen haben. Aber auch Danke an alle, die etwas in die Spendenkasse geworfen haben. Das waren schon am ersten Tag 142 Euro. Das Geld wir verwendet um Primär die Zutaten zu bezahlen, aber auch um Merch wie die Aufkleber und Schürzen zu finanzieren und uns auch ein großen Banner zu besorgen, damit man uns finden kann. Das restliche Geld kommt den Veranstaltern der GPN, also dem Entropia e.V. zu gute. Wenn Ihr uns auch weiter auf der GPN Unterstützen möchtet, freuen wir uns natürlich über Finanzielle Spenden. Noch viel lieber sind aber Trolle gesehen, die Teig machen oder sogar das Backen der Waffeln übernehmen. Hierbei nochmal ein herzlichstes Dankeschön an die Trolle von Tag 1. --- -xml: Die Gulaschprogrammiernacht ist eine viertägige Konferenz für Hacker, Technikbegeisterte und interessierte Laien und mit über 1000 Teilnehmern die zweitgrößte jährliche Veranstaltung des Chaos Computer Club. Hier Treffen sich Hacker, Chaoten und viele weitere Lebensformen im HFG und ZKM in Karlsruhe. +body: + +Die Gulaschprogrammiernacht ist eine viertägige Konferenz für Hacker, Technikbegeisterte und interessierte Laien und mit über 1000 Teilnehmern die zweitgrößte jährliche Veranstaltung des Chaos Computer Club. Hier Treffen sich Hacker, Chaoten und viele weitere Lebensformen im HFG und ZKM in Karlsruhe. + +Natürlich mit Waffeln! +--- +pub_date: 2018-05-10 +--- +shorttitle: #GPN18 +--- +twitter_handle: L3D +--- +xml: + +Die Gulaschprogrammiernacht ist eine viertägige Konferenz für Hacker, Technikbegeisterte und interessierte Laien und mit über 1000 Teilnehmern die zweitgrößte jährliche Veranstaltung des Chaos Computer Club. Hier Treffen sich Hacker, Chaoten und viele weitere Lebensformen im HFG und ZKM in Karlsruhe. + +Natürlich mit Waffeln! +--- +project: + +#### pro_img #### +image: bei_der_bar.jpg +#### pro_img #### +image: eroberung.jpg +#### pro_img #### +image: waffelpower_3.jpg +#### pro_img #### +image: waffelpower_1.jpg +#### pro_img #### +image: waffelpower_2.jpg --- xml_img: bei_der_bar.jpg diff --git a/content/blog/gwpn/contents.lr b/content/blog/gwpn/contents.lr new file mode 100644 index 0000000..1ec8264 --- /dev/null +++ b/content/blog/gwpn/contents.lr @@ -0,0 +1,68 @@ +title: Große Waffel Programier Nacht (GPN) +--- +beitrag: + +Dies durfte natürlich im Infrastructure Review nicht fehlen. + +Das C3WOC besteht aus Chaoten an verschiedenen Orten im Chaos. An der GPN haben sich die C3WOC Gründer vom Bodensee und aus Darmstadt getroffen und dort zum ersten mal auf einem großen Event Waffeln gemacht. + +Wir haben mit bis zu vier Waffeleisen gleichzeitig gebacken und dort über hundert Liter Waffelteig vernichtet. Der Entropia war so freundlich und hat beim Einkaufen die für uns benötigten Zutaten mit besorgt. Gelagert wurden die in den Kühlwagen beim Gulaschzelt. In der Gulsch- und Pizzaküche haben wir dann folgendes Rezept angerührt: + +``` +1 Flasche Eiklar +1 KG Zucker +1 KG Butter (weich) +5 Pck. Vanille +2 Pck Backpulver +2 Liter Milch +2 Kg Mehl +1 Flasche Mate +etwas dunklen Rum +``` + +Das ist übrigend die Ideale Menge für einen Eimer Waffelteig ;-) Hiervon haben wir ungefähr 10 Eimer angerührt. Zwischendrin haben wir auch mit veganen Waffel experimentiert. + +Hier ist der Trick, anstelle des Ei Apfelmus (und ein paar Bananen) zu verwenden, die Milch durch Mandelmilch zu ersetzen und anstelle der Butter Nagarine zu verwenden. Der Teig hat erstaunlich gut geschmeckt und hatte annähernd die selbe konsistenz wie eine richtige Waffel. Für veganer eine vertretbare Alternative. Für vegetarier eine ganz leckere Abwechslung. + +Auch Leute mit Glutenunverträglichkeiten gab es. Hier haben wir mit einer Glutenfreien Mehlmischung rumgespielt, die zwar etwas mehr Ei im Teig hatte, dann aber für Glutenfreie Waffeln echt gut geschmeckt hat. + +Wenn man also unbedingt möchte, kann man sowohl vegane, als auch vegetarische Waffeln zubereiten. Dennoch macht es am meisten Spaß mit dem oben genannten klassischen Waffelteig. + +Unser Eindruck ist, dass das C3WOC von vielen Lebensformen positiv gesehen wurde. Und so hoffen wir noch auf vielen weiteren Events weiter Waffeln zu dürfen. Vielleicht mit ein wenig Engel-Unterstützung... + +Wir wurden sogar in den Aufzeichnungen bei media.ccc.de erwähnt. Sowohl im [Infrastructure Review](https://media.ccc.de/v/gpn18-5-infrastructure-review-and-closing), als auch im [Dezentrale soziale Netzwerke – Theorie und Praxis](https://media.ccc.de/v/gpn18-175-dezentrale-soziale-netzwerke-theorie-und-praxis) Talk. Vielen lieben Dank hierfür <3 + +Auf der GPN habt Ihr uns knappe 1000 Euro in die Spendenbox geworfen. Davon werden wir 500€ in weitere Aufkleber und ein Waffeleisen investieren. Das übrige Geld ging an den Entropia e.V. für das besorgen der Waffelzutaten und vor allen für das ausrichten der Gulaschprogrammiernacht. + +Vielen lieben Dank Entropia! Wir kommen gerne wieder! + +Doch erstmal brauchen wir zur Erholung einen kleinen Waffelstillstand! +--- +body: Die 18. Gulaschprogrammiernacht war vom 10. bis 13. Mai 2018 in den Lichthöfen der Hochschule für Gestaltung (HfG) und den Vortragssälen des Zentrum für Kunst und Medien in Karlsruhe statt. Das C3WOC war mit vereinter Waffelkraft vertreten und so haben die Waffel-Trolle dort über 100 Liter Waffelteig während den vier Tagen verwaffelt. +--- +shorttitle: GPN + Waffel +--- +xml: Die 18. Gulaschprogrammiernacht war vom 10. bis 13. Mai 2018 in den Lichthöfen der Hochschule für Gestaltung (HfG) und den Vortragssälen des Zentrum für Kunst und Medien in Karlsruhe statt. Das C3WOC war mit vereinter Waffelkraft vertreten und so haben die Waffel-Trolle dort über 100 Liter Waffelteig während den vier Tagen verwaffelt. +--- +project: + +#### pro_img #### +image: woc.png +#### pro_img #### +image: vegan.jpg +#### pro_img #### +image: waffelpower.jpg +#### pro_img #### +image: weiter.jpg +#### pro_img #### +image: voc.png +#### pro_img #### +image: waffelstillstand.jpg +--- +xml_img: woc.png +--- +author: L3D +--- +pub_date: 2018-05-14 +--- +twitter_handle: L3D diff --git a/content/blog/wpn18/vegan.jpg b/content/blog/gwpn/vegan.jpg similarity index 100% rename from content/blog/wpn18/vegan.jpg rename to content/blog/gwpn/vegan.jpg diff --git a/content/blog/wpn18/voc.png b/content/blog/gwpn/voc.png similarity index 100% rename from content/blog/wpn18/voc.png rename to content/blog/gwpn/voc.png diff --git a/content/blog/wpn18/waffelpower.jpg b/content/blog/gwpn/waffelpower.jpg similarity index 100% rename from content/blog/wpn18/waffelpower.jpg rename to content/blog/gwpn/waffelpower.jpg diff --git a/content/blog/wpn18/waffelstillstand.jpg b/content/blog/gwpn/waffelstillstand.jpg similarity index 100% rename from content/blog/wpn18/waffelstillstand.jpg rename to content/blog/gwpn/waffelstillstand.jpg diff --git a/content/blog/wpn18/weiter.jpg b/content/blog/gwpn/weiter.jpg similarity index 100% rename from content/blog/wpn18/weiter.jpg rename to content/blog/gwpn/weiter.jpg diff --git a/content/blog/wpn18/woc.png b/content/blog/gwpn/woc.png similarity index 100% rename from content/blog/wpn18/woc.png rename to content/blog/gwpn/woc.png diff --git a/content/blog/logo/c3woc.svg.png b/content/blog/logo/c3woc.svg.png new file mode 100644 index 0000000..69611e1 --- /dev/null +++ b/content/blog/logo/c3woc.svg.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c047bdd6a1aac8ac68b5caebd80c8f16abecab8d395e0330d19ab19aa3cd1e79 +size 502703 diff --git a/content/blog/logo/contents.lr b/content/blog/logo/contents.lr index b321d93..ab95114 100644 --- a/content/blog/logo/contents.lr +++ b/content/blog/logo/contents.lr @@ -1,25 +1,24 @@ -title: Logo +title: Logo des C3WOC --- author: L3D --- -body: - -Das C3WOC hat nun endlich auch ein Logo: - - - - - +beitrag: Dieses gibt es selbstverständlich als Vektorgrafik im [git](https://gitea.see-base.de/C3WOC/c3woc-logo.git). --- -twitter_handle: DO1JLR +body: Das C3WOC hat nun ein offizielles Waffel-Logo! --- pub_date: 2018-03-01 --- -privatebody: - - -Natürlich gibts das auch im Netz als SVG im [Git](https://git.see-base.de/c3woc/c3woc-logo). +shorttitle: Logo --- -xml: +twitter_handle: L3D +--- +xml: Das C3WOC hat nun ein offizielles Waffel-Logo. +--- +project: -Das C3WOC hat nun endlich auch ein Logo \o/ +#### pro_img #### +image: c3woc.svg.png +--- +video_embeded: +--- +xml_img: c3woc.svg.png diff --git a/content/blog/makerfaire-buildup/contents.lr b/content/blog/makerfaire-buildup/contents.lr index d118b81..0df6e3c 100644 --- a/content/blog/makerfaire-buildup/contents.lr +++ b/content/blog/makerfaire-buildup/contents.lr @@ -1,36 +1,29 @@ -title: Aufbau Makerfaire 2018 +title: Aufbau Makerfaire 2018 --- author: L3D --- -pub_date: 2018-05-31 ---- -subtitle: Der aufbau läuft - C3WOC ist vor Ort! ---- -twitter_handle: L3D +beitrag: Wir freuen uns darauf, die Waffelvernichtungsmassen mit Massenvernichtungswaffeln zu versorgen! --- body: -Der Aufbau der Makerfaire 2018 läuft aktuell. Hier hat das C3WOC seinen Platz neben den Hackerspacen [see-base](https://see-base.de), [Toolbox Bodensee e.V.](https://toolbox-bodensee.de), [CCCZH](https://ccczh.ch) und der Freifunk Community [Freifunk Bodensee](https://ffbsee.de) gefunden. Hier wird sich auf ein taktisches Waffeln vorbereitet. - - Es folgen erste Bilder des Waffelstand: ------ - - - - + Der aufbau läuft - C3WOC ist vor Ort! +================================= +Der Aufbau der Makerfaire 2018 läuft aktuell. Hier hat das C3WOC seinen Platz neben den Hackerspacen see-base, Toolbox Bodensee e.V., CCCZH und der Freifunk Community Freifunk Bodensee gefunden. Hier wird sich auf ein taktisches Waffeln vorbereitet. --- -privatebody: - - - - - - - - -Wir freuen uns darauf, die Waffelvernichtungsmassen mit Massenvernichtungswaffeln zu versorgen! +pub_date: 2018-05-31 --- -xml: Es wird Waffeln geben... auf der Makerfaire Bodensee \o/ +shorttitle: Makerfaire 18 --- -xml_img: cat-01.jpg +twitter_handle: L3D +--- +xml: Der Aufbau der Makerfaire 2018 läuft aktuell. Hier hat das C3WOC seinen Platz neben den Hackerspacen see-base, Toolbox Bodensee e.V., CCCZH und der Freifunk Community Freifunk Bodensee gefunden. Hier wird sich auf ein taktisches Waffeln vorbereitet. +--- +project: + +#### pro_img #### +image: cat-01.jpg +#### pro_img #### +image: cat-03.jpg +#### pro_img #### +image: cat-02.jpg diff --git a/content/blog/makerfaire18/contents.lr b/content/blog/makerfaire18/contents.lr index d79d2e2..1b61e12 100644 --- a/content/blog/makerfaire18/contents.lr +++ b/content/blog/makerfaire18/contents.lr @@ -2,46 +2,36 @@ title: Makerfaire Bodensee 2018 --- author: L3D --- +beitrag: Sogar mit dem ersten Waffel-Livestream vom CH-VOC +--- body: - - - + In der Messe Friedrichshafen wurde fleißig gewaffelt +============================================= - - - - --- -pub_date: 2018-06-04 +pub_date: 2018-06-06 --- -subtitle: In der Messe Friedrichshafen wurde fleißig gewaffelt +shorttitle: Makerfaire --- -twitter_handle: c3woc +twitter_handle: L3D --- -privatebody: - -




- - - -




- - - - - - - - - - - - - - +xml: In der Messe Friedrichshafen wurde fleißig gewaffelt --- -xml: Waffeln auf der Makerfaire Bodensee! +project: + +#### pro_img #### +image: ballpit.jpg +#### pro_img #### +image: winkekatze02.jpg +#### pro_img #### +image: winkekatze.jpg +#### pro_img #### +image: action02.jpg +#### pro_img #### +image: waffelstillstand.jpg +#### pro_img #### +image: action01.jpg --- xml_img: action02.jpg diff --git a/assets/images/winkekatze.jpg b/content/blog/makerfaire18/winkekatze.jpg similarity index 100% rename from assets/images/winkekatze.jpg rename to content/blog/makerfaire18/winkekatze.jpg diff --git a/assets/images/winkekatze02.jpg b/content/blog/makerfaire18/winkekatze02.jpg similarity index 100% rename from assets/images/winkekatze02.jpg rename to content/blog/makerfaire18/winkekatze02.jpg diff --git a/content/blog/nicht-jeder-mag-waffeln/1.JPG b/content/blog/nicht-jeder-ag-Waffeln/1.JPG similarity index 100% rename from content/blog/nicht-jeder-mag-waffeln/1.JPG rename to content/blog/nicht-jeder-ag-Waffeln/1.JPG diff --git a/content/blog/nicht-jeder-mag-waffeln/2.JPG b/content/blog/nicht-jeder-ag-Waffeln/2.JPG similarity index 100% rename from content/blog/nicht-jeder-mag-waffeln/2.JPG rename to content/blog/nicht-jeder-ag-Waffeln/2.JPG diff --git a/content/blog/nicht-jeder-mag-waffeln/3.JPG b/content/blog/nicht-jeder-ag-Waffeln/3.JPG similarity index 100% rename from content/blog/nicht-jeder-mag-waffeln/3.JPG rename to content/blog/nicht-jeder-ag-Waffeln/3.JPG diff --git a/content/blog/nicht-jeder-mag-waffeln/4.JPG b/content/blog/nicht-jeder-ag-Waffeln/4.JPG similarity index 100% rename from content/blog/nicht-jeder-mag-waffeln/4.JPG rename to content/blog/nicht-jeder-ag-Waffeln/4.JPG diff --git a/content/blog/nicht-jeder-mag-waffeln/contents.lr b/content/blog/nicht-jeder-ag-Waffeln/contents.lr similarity index 64% rename from content/blog/nicht-jeder-mag-waffeln/contents.lr rename to content/blog/nicht-jeder-ag-Waffeln/contents.lr index 6e3cc3a..d9fa2ff 100644 --- a/content/blog/nicht-jeder-mag-waffeln/contents.lr +++ b/content/blog/nicht-jeder-ag-Waffeln/contents.lr @@ -1,4 +1,4 @@ -title: Nicht jeder mag waffeln 😭 +title: Waffeln außerhalb des Chaos sind kompliziert --- author: L3D --- @@ -6,23 +6,14 @@ body: Dieses mal wollte das C3WOC auf der GalaCon in Ludwigsburg Waffeln machen. Leider nicht für alle, sondern nur für die freiwilligen Helfer. Aber das ist doch auch etwas! - - - - - - - - - --- pub_date: 2018-07-31 --- -subtitle: Menschen auserhalb des Chaos sind kompliziert 😭 +shorttitle: kein Chaos, keine Waffel --- -twitter_handle: l3d +twitter_handle: L3D --- -privatebody: +beitrag: Nur leider hat das nicht wirklich gut geklappt. Selbstverständlich hat L3D mehrere Monate vor der GalaCon sich nicht nur als freiwilliger Helfer gemeldet, sondern auch angeboten, Waffeln zu machen. Das wurde mit großer Begeisterung von allen aufgenommen. Auch die Hauptverantwortlichen Menschen für dieses Event waren begeistert und im Forum war wochenlang nur noch von Waffeln die Rede. @@ -36,30 +27,29 @@ Doch die Orga hatte mitbekommen, dass es gestern Waffeln gab. Vermutlich wegen d Und plötzlich wusste niemand, dass es Waffeln hätte geben dürfen. Denn so etwas muss man natürlich vorher ankündigen. Einwände wie, dass das sehr wohl angekündigt wurde wurden abgetan mit, dass hatte man nicht ernst genommen. Auserdem müsse man so etwas unmittelbar vor der Veranstaltung erneut verifizieren. - - - - - - Es hat dann damit geendet, dass das Waffeleisen aus der Ponywelt verbannt wurde. (Als wäre es ein Bösewicht). Außerdem musste der neue Waffelteig vernichtet werden. Aber auf eine ganz bestialische, ekelhafte und unmenschliche Art. (Mülleimer). -Finanziell gesehen hat das C3WOC hierbei rote Zahlen geschrieben. Da sowohl die Fahrtkosten, als auch die 23€ für den Waffelteig nicht von den 14,52€ Spenden für die Waffeln am Samstag gereicht haben. Schade :-( - - - - +Finanziell gesehen hat das C3WOC hierbei rote Zahlen geschrieben. Da sowohl die Fahrtkosten, als auch die 30€ für den Waffelteig nicht von den 7,52€ Spenden für die Waffeln am Samstag gereicht haben. Schade :-( Die Helfer der GalaCon waren von den Wafffeln begeistert und fanden diese sehr lecker. -Trotzdem sind Veranstaltungen außerhalb des Chaos Umfeld problematisch. +Trotzdem sind Veranstaltungen außerhalb des Chaos Umfeld höchst problematisch. -Die GalaCon wird zumindest so bald nicht mehr mit Waffeln versorgt werden. -Schade. +Die GalaCon oder andere Veranstaltungen in Ludwigsburg werden zumindest so bald nicht mehr mit Waffeln versorgt werden. +**Schade.** --- -xml: +xml: Dieses mal wollte das C3WOC auf der GalaCon in Ludwigsburg Waffeln machen. Leider nicht für alle, sondern nur für die freiwilligen Helfer. Aber das ist doch auch etwas! +--- +project: -Ponys und Waffeln vertragen sich super. Aber wenn das ganze auf einer komerzorientierten Convention statt findet verträgt sich das nicht mit dem Open Source und Freiheitsgedanken. - -Friendship is Magic! Aber Galacon leider nicht :-/ +#### pro_img #### +image: 1.JPG +#### pro_img #### +image: 2.JPG +#### pro_img #### +image: 3.JPG +#### pro_img #### +image: 4.JPG +--- +xml_img: 4.JPG diff --git a/content/blog/nicht-jeder-mag-waffeln/contents+en.lr b/content/blog/nicht-jeder-mag-waffeln/contents+en.lr deleted file mode 100644 index e543330..0000000 --- a/content/blog/nicht-jeder-mag-waffeln/contents+en.lr +++ /dev/null @@ -1,67 +0,0 @@ -title: Not everyone likes waffles 😭 ---- -author: L3D ---- -body: - -This time the C3WOC wanted to make waffles at the GalaCon in Ludwigsburg. -Unfortunately not for all, but only for the volunteers. But that's something too! - - - - - - - - - ---- -pub_date: 2018-07-31 ---- -subtitle: Humans out of chaos are complicated.😭 ---- -twitter_handle: l3d ---- -privatebody: - -Unfortunately this didn't work out very well. Of course L3D didn't only volunteer several months before the GalaCon, but also offered to make waffles. -This was received with great enthusiasm by everyone. Also the main responsible people for this event were enthusiastic and in the forum for weeks there was only talk about waffles. - -But when the GalaCon took place, there were waffles on Saturday evening. -They were eaten enthusiastically and it was clear that the simple recipe was not enough. The GalaCon needs more waffle dough. - -Thus more ingredients were procured and on Sunday morning new waffle dough came. -But the Orga had noticed that there were waffles yesterday. Probably because of the waffle plate that was brought to the Orga's office. - -And suddenly nobody knew that there should have been waffles. Because of course you have to announce something like that beforehand. -Objections like that this was announced very well were dismissed with that one had not taken seriously. In addition, something like that had to be verified again immediately before the event. - - - - - - -It ended with the waffle iron being banned from the pony world. (As if it were a villain). - -In addition, the new waffle dough had to be destroyed. But in a very bestial, disgusting and inhuman way. (trash can). -From a financial point of view, the C3WOC has been in the red. Since both the travel costs and the 23€ for the waffle dough did not suffice from the 14,52€ donations for the waffles on Saturday. Too bad :-( - - - - - - -The helpers of the GalaCon were enthusiastic about the waffles and found them very tasty. -Nevertheless, events outside the chaos environment are problematic. - -The GalaCon will not be supplied with waffles any more at least soon. -Too bad. - ---- -xml: - -Ponies and waffles get along great. But if the whole thing takes place at a commerce-oriented convention, it's not compatible with open source and freedom. - -Friendship is Magic! But Galacon unfortunately not :-/ ---- -xml_img: 4.JPG diff --git a/content/blog/recreating-waffles/contents+en.lr b/content/blog/recreating-waffles/contents+en.lr deleted file mode 100644 index 8c79c21..0000000 --- a/content/blog/recreating-waffles/contents+en.lr +++ /dev/null @@ -1,32 +0,0 @@ -author: L3D ---- -body: - -The 35c3 is just a few days away. And this time the C3WOC with united waffle power will make some waffles. - -With the C3WOC there are unfortunately not even a handful of people who plan and organize this with the waffles. -And so we are dependent on the help of other people. Besides, it's much more fun to make waffles together. - -waffle planing 35c3 - -Please sign up here for the list and contact us if you feel like making waffles together. - ---- -privatebody: - -Unfortunately, we won't be able to make many waffles on our own. - -You can contact us through all possible channels. For example: - + Mail: [waffel@c3woc.de](mailto:waffel@c3woc.de) - + IRC: [#waffel](ircs://irc.hackint.org/#waffel) - + Rocket.Chat [#waffel](https://rocket.events.ccc.de/channel/waffel) ---- -pub_date: 2018-12-16 ---- -subtitle: Help the Waffles on 35c3 ---- -title: Recreating Waffles ---- -twitter_handle: L3D ---- -xml: There will be waffles at the Chaos Communication Congress. But for this we need your help! diff --git a/content/blog/recreating-waffles/contents.lr b/content/blog/recreating-waffles/contents.lr deleted file mode 100644 index 5c9a9e5..0000000 --- a/content/blog/recreating-waffles/contents.lr +++ /dev/null @@ -1,33 +0,0 @@ -title: Recreating Waffles ---- -author: L3D ---- -body: - -Der 35c3 steht vor der Türe. Und dieses mal wird das C3WOC mit vereinter waffelkraft Waffeln machen. - -Beim C3WOC sind leider nicht mal eine handvoll Leute, die das mit den Waffeln planen und organisieren. -Und so sind wir auf die Hilfe von anderen Menschen angewiesen. Außerdem macht es viel mehr spaß, wenn man gemeinsam Waffeln macht. - -Waffelplanung 35c3 - -Bitte trag dich doch hier in die Liste ein und melde dich bei uns, wenn du Lust hast, gemeinsam Waffeln zu machen. - -Wichtig wäre, dass du mit gängigen Hygienevorschriften vertraut bist und zum Beispiel eine Gesundheitsbelehrung beim Gesundheitsamt gemacht hast! ---- -privatebody: - -Alleine werden wir es leider nicht schaffen, wirklich viele Waffeln zu machen. - -Ihr könnt uns über alle möglichen Kanäle kontaktieren. Zum Beispiel: - + Mail: [waffel@c3woc.de](mailto:waffel@c3woc.de) - + IRC: [#waffel](ircs://irc.hackint.org/#waffel) - + Rocket.Chat [#waffel](https://rocket.events.ccc.de/channel/waffel) ---- -pub_date: 2018-12-16 ---- -subtitle: Helf den Waffeln am 35c3 ---- -twitter_handle: L3D ---- -xml: Am Chaos Communication Congress wird es Waffeln geben. Hierfür brauchen wir aber deine Hilfe! diff --git a/content/blog/regelmaessiges-waffelmeeting/contents+en.lr b/content/blog/regelmaessiges-waffelmeeting/contents+en.lr deleted file mode 100644 index 1347b55..0000000 --- a/content/blog/regelmaessiges-waffelmeeting/contents+en.lr +++ /dev/null @@ -1,18 +0,0 @@ -author: L3D ---- -body: To keep and improve the high waffle standards we started a regular waffle meeting. We will meet us every month in the cyberspace and mumble together. Then we organise ans coordinate new events and diskuss old one. ---- -privatebody: For more details (like the date) please join the irc (or write a mail). ---- -pub_date: 2018-10-02 ---- -subtitle: For the waffles ---- -title: Regular Waffle Jour Fixe ---- -twitter_handle: L3D ---- -xml: - -Für eine dauerhafte Qualitätssicherung der C3WOC Rezeptur und dem Abstimmen von Annfragen sowie die Planung und koordination bei Veranstaltungen, gibt es nun ein regelmäßiges Mumble Treffen. -Wer Interesse hat, daran teil zu nehmen darf sich gerne im IRC melden! diff --git a/content/blog/regelmaessiges-waffelmeeting/contents.lr b/content/blog/regelmaessiges-waffelmeeting/contents.lr deleted file mode 100644 index c98eafb..0000000 --- a/content/blog/regelmaessiges-waffelmeeting/contents.lr +++ /dev/null @@ -1,18 +0,0 @@ -title: Regelmäßiges Waffelmeeting ---- -author: L3D ---- -body: Für eine dauerhafte Qualitätssicherung der C3WOC Rezeptur und dem Abstimmen von Annfragen sowie die Planung und koordination bei Veranstaltungen, gibt es nun ein regelmäßiges Mumble Treffen. ---- -pub_date: 2018-10-02 ---- -subtitle: Für die Waffeln! ---- -twitter_handle: L3D ---- -privatebody: Weitere Details zu dem Treffen sind aktuell nicht permanent festgelegt und kann man im IRC erfragen. ---- -xml: - -Für eine dauerhafte Qualitätssicherung der C3WOC Rezeptur und dem Abstimmen von Annfragen sowie die Planung und koordination bei Veranstaltungen, gibt es nun ein regelmäßiges Mumble Treffen. -Wer Interesse hat, daran teil zu nehmen darf sich gerne im IRC melden! diff --git a/content/blog/tb-doenerwaffel/contents.lr b/content/blog/tb-doenerwaffel/contents.lr index 004b41d..e5fd9f9 100644 --- a/content/blog/tb-doenerwaffel/contents.lr +++ b/content/blog/tb-doenerwaffel/contents.lr @@ -1,43 +1,45 @@ +title: Döner Waffel - selber gemacht +--- author: L3D --- +beitrag: + +``` +Event: Döner Waffel herstellen +Ort: Toolbox Bodensee e.V. +Datum: 3. März 2019, ab 14 Uhr +Adresse: Bergheimer Straße 6, Markdorf +``` + +Mit der Dönerzubereitung haben wir noch keine Erfahrung. Aber Waffeln in der gewohnten Qualität wird es auf jeden Fall geben. +--- body: -Der Hack- und Makerspace Toolbox Bodensee e.V. am Bodensee hat einen Dönergrill besorgt. -Am 3. März weihen wir diesen ein und probieren es... Wir machen eine Dönerwaffel! +Der Hack- und Makerspace Toolbox Bodensee e.V. am Bodensee hat einen Dönergrill besorgt. Am 3. März weihen wir diesen ein und probieren es... Wir machen eine Dönerwaffel! + +Das soll nächstes Wochenende. am Sonntag den 3. März 2019 statt finden. In dem Vereinsheim der Toolbox in Markdorf. --- pub_date: 2019-02-21 --- -subtitle: Wir haben einen Kebabgrill ---- -title: Döner Waffel - selber gemacht +shorttitle: Dönerwaffel --- twitter_handle: L3D --- xml: -Der Hack- und Makerspace Toolbox Bodensee e.V. am Bodensee hat einen Dönergrill besort. -Am 3. März weihen wir diesen ein und probieren es... Wir machen eine Dönerwaffel! ---- -privatebody: +Der Hack- und Makerspace Toolbox Bodensee e.V. am Bodensee hat einen Dönergrill besorgt. Am 3. März weihen wir diesen ein und probieren es... Wir machen eine Dönerwaffel! + Das soll nächstes Wochenende. am Sonntag den 3. März 2019 statt finden. In dem Vereinsheim der Toolbox in Markdorf. - -```` -Event: Döner Waffel herstellen -Ort: Toolbox Bodensee e.V. -Datum: 3. März 2019, ab 14 Uhr -Adresse: Bergheimer Straße 6, Markdorf -```` -Mit der Dönerzubereitung haben wir noch keine Erfahrung. -Aber Waffeln in der gewohnten Qualität wird es auf jeden Fall geben. - --- -galerie: +project: -#### image #### +#### pro_img #### image: grill.jpg -#### image #### +#### pro_img #### image: messer.jpg -#### image #### +#### pro_img #### image: ovp.jpg --- +video_embeded: +--- xml_img: grill.jpg diff --git a/content/blog/toolbox-waffelt-jetzt/contents.lr b/content/blog/toolbox-waffelt-jetzt/contents.lr index 43af4d6..e906019 100644 --- a/content/blog/toolbox-waffelt-jetzt/contents.lr +++ b/content/blog/toolbox-waffelt-jetzt/contents.lr @@ -1,31 +1,26 @@ -title: Toolbox hat einen an der Waffel ---- author: L3D --- -body: - -Die [Toolbox Bodensee e.V.](https://toolbox-bodensee.de) ist nun auch zu den Kreis der Waffeleisenbesitzer aufgestiegen. -Dort wurde die Küche durch ein professioneles Bartscher-Waffeleisen erweitert. -Und so stand eines Tages ein riesiger Karton vor der Vereinstüre. - - - - +shorttitle: Toolbox Waffelt +--- +twitter_handle: L3D +--- +beitrag: Und die ersten ausführlichen Waffel-Tests haben ergeben, dass das Gerät echt gut ist! - - - - -Das neue Waffeleisen gehört nun der [Toolbox Küche](https://küche.toolbox-bodensee.de/) und wird wohl auch nicht nur den ein oder anderen Vereinsabend verwaffeln, sondern auch [Freifunk treffen](https://ffbsee.de), Chaostreffs [aus der Region](https://bodensee.space/) oder der ein oder anderen Chaosveranstaltung... +Das neue Waffeleisen gehört nun L3D von der Toolbox Küche und wird wohl auch nicht nur den ein oder anderen Vereinsabend verwaffeln, sondern auch Freifunk treffen, Chaostreffs aus der Region oder der ein oder anderen Chaosveranstaltung... --- -twitter_handle: DO1JLR +body: Die Toolbox Bodensee e.V. ist nun auch zu den Kreis der Waffeleisenbesitzer aufgestiegen. Dort wurde die Küche durch ein professioneles Bartscher-Waffeleisen erweitert. Und so stand eines Tages ein riesiger Karton vor der Vereinstüre. +--- +xml: Die Toolbox Bodensee e.V. ist nun auch zu den Kreis der Waffeleisenbesitzer aufgestiegen. Dort wurde die Küche durch ein professioneles Bartscher-Waffeleisen erweitert. Und so stand eines Tages ein riesiger Karton vor der Vereinstüre. +--- +project: + +#### pro_img #### +image: toolbox-kiste.jpg +#### pro_img #### +image: toolbox_1.jpg +--- +xml_img: toolbox-kiste.jpg --- pub_date: 2018-03-22 ---- -xml: - -Die Toolbox Bodensee e.V. ist nun auch zu den Kreis der Waffeleisenbesitzer aufgestiegen. -Dort wurde die Küche durch ein professioneles Bartscher-Waffeleisen erweitert. -Und so stand eines Tages ein riesiger Karton vor der Vereinstüre. diff --git a/assets/images/toolbox-kiste.jpg b/content/blog/toolbox-waffelt-jetzt/toolbox-kiste.jpg similarity index 100% rename from assets/images/toolbox-kiste.jpg rename to content/blog/toolbox-waffelt-jetzt/toolbox-kiste.jpg diff --git a/assets/images/toolbox_1.jpg b/content/blog/toolbox-waffelt-jetzt/toolbox_1.jpg similarity index 100% rename from assets/images/toolbox_1.jpg rename to content/blog/toolbox-waffelt-jetzt/toolbox_1.jpg diff --git a/content/blog/uh18/contents.lr b/content/blog/uh18/contents.lr index d5e4754..bb62aeb 100644 --- a/content/blog/uh18/contents.lr +++ b/content/blog/uh18/contents.lr @@ -2,50 +2,52 @@ title: Waffeln auf dem Schiff --- author: L3D --- -body: +beitrag: -Der [Umma Hüsla Hackathon](https://uh18.diin.io/) 2018 [#uh18](https://twitter.com/hashtag/uh18) ist ein 28-Stunden-Event, bei dem sich TeilnehmerInnen aus allen Sparten zusammenfinden. Ziel des Hackathons ist es, im Team oder auch alleine, nützliche, kreative oder unterhaltsame Prototypen und Projekte umzusetzen. - -In diesem Jahr fand der Hackathon länderübergreifend statt – genauer gesagt auf dem Bodensee, noch genauer auf einem Schiff. Das Motto des diesjährigen Hackathons lautet “Ship it”. selbstverständlich war das c3WOC auch vor Ort und hat auf dem Bodensee Waffeln gemacht! ---- -pub_date: 2018-05-05 ---- -subtitle: Umma Hüsla Hackathon ---- -twitter_handle: L3D ---- -privatebody: - - - - - - +In diesem Jahr fand der Hackathon länderübergreifend statt – genauer gesagt auf dem Bodensee, noch genauer auf einem Schiff. Das Motto des diesjährigen Hackathons lautet “Ship it”. selbstverständlich war das c3WOC auch vor Ort und hat auf dem Bodensee Waffeln gemacht! Der Hackerthon fand auf dem Schiff Voralberg statt. Los ging es im Bregenzer Hafen einmal rund um den Bodensee. - - - - - - -Selbstverständlich haben wir ein wenig Chaos auf dem Schiff gemacht und erstmal einen Sticker-Exchange aufgebaut. Und ein funktionierendes WLAN ([Freifunk](https://ffbsee.de)) zur Verfügung gestellt. - - - - - +Selbstverständlich haben wir ein wenig Chaos auf dem Schiff gemacht und erstmal einen Sticker-Exchange aufgebaut. Und ein funktionierendes WLAN (Freifunk) zur Verfügung gestellt. Mit funktionierender Infrastruktur, also einem Internet mit Uplink, konnten wir uns auch den wichtigen Dingen zuneigen: Dem Waffeln machen! -

Nun steht fest:

+ Nun steht fest: +=============== + Das C3WOC ist auch in der Lage auf dem Wasser Waffeln zu machen. Und Waffeln auf einem Schiff zu machen macht echt spaß! --- +body: + +Der Umma Hüsla Hackathon 2018 #uh18 ist ein 28-Stunden-Event, bei dem sich TeilnehmerInnen aus allen Sparten zusammenfinden. Ziel des Hackathons ist es, im Team oder auch alleine, nützliche, kreative oder unterhaltsame Prototypen und Projekte umzusetzen. + +Und was, wenn nicht Waffeln trifft darauf zu? +--- +pub_date: 2018-05-05 +--- +shorttitle: #uh18 +--- +twitter_handle: L3D +--- xml: -Der Umma Hüsla Hackathon 2018 ist ein 28-Stunden-Event, bei dem sich TeilnehmerInnen aus allen Sparten zusammenfinden. Ziel des Hackathons ist es, im Team oder auch alleine, nützliche, kreative oder unterhaltsame Prototypen und Projekte umzusetzen. +Der Umma Hüsla Hackathon 2018 #uh18 ist ein 28-Stunden-Event, bei dem sich TeilnehmerInnen aus allen Sparten zusammenfinden. Ziel des Hackathons ist es, im Team oder auch alleine, nützliche, kreative oder unterhaltsame Prototypen und Projekte umzusetzen. -In diesem Jahr fand der Hackathon länderübergreifend statt – genauer gesagt auf dem Bodensee, noch genauer auf einem Schiff. Das Motto des diesjährigen Hackathons lautet “Ship it”. selbstverständlich war das c3WOC auch vor Ort und hat auf dem Bodensee Waffeln gemacht! +Und was, wenn nicht Waffeln trifft darauf zu? --- -xml_img: schiff_1.jpg +project: + +#### pro_img #### +image: schiff_2.jpg +#### pro_img #### +image: waffel_1.jpg +#### pro_img #### +image: schiff_1.jpg +#### pro_img #### +image: hacker_1.jpg +#### pro_img #### +image: waffel_2.jpg +#### pro_img #### +image: hacker_2.jpg +--- +xml_img: schiff_2.jpg diff --git a/content/blog/upgrade-1/contents.lr b/content/blog/upgrade-1/contents.lr index 72f5b39..f68c838 100644 --- a/content/blog/upgrade-1/contents.lr +++ b/content/blog/upgrade-1/contents.lr @@ -2,57 +2,52 @@ title: Verstärkete Waffelkraft --- author: L3D --- +beitrag: Ungeduldig hatte ich auf die Lieferung der Versandfirma mehrere Wochen gewartet, die sich gerade für ländliche Gebiete extra viel Zeit nehmen und viel zu spät kommen. Wer im IRC Kanale #waffel auf HackInt war, hat diese ungeduld sicherlich mit bekommen. Endlich! +--- body: + Der Trend geht zum zweiten Waffeleisen +=========================== + Eines Abends kehrte ich nach Hause zurück und fand vor der Haustüre eine Palette mit einer Kiste drauf... - - - - - -Ungeduldig hatte ich auf die Lieferung der Versandfirma mehrere Wochen gewartet, die sich gerade für ländliche Gebiete extra viel Zeit nehmen und viel zu spät kommen. Wer im IRC Kanale #waffel auf HackInt war, hat diese ungeduld sicherlich mit bekommen. Endlich! - -

Waffeleisen auspacken

--- pub_date: 2018-06-07 --- -subtitle: Der Trend geht zum zweiten Waffeleisen +shorttitle: Nachwuchs --- twitter_handle: L3D --- -privatebody: - - - - - - - - - - - - - - - - - - - - - - - - - - -Eingeweiht wird das Waffeleisen auf der [CPU 18](https://chaos-party-ulm.de). - - - - +xml: Der Trend geht zum zweiten Waffeleisen --- -xml: C3WOC - Wir rüsten auf! +project: + +#### pro_img #### +image: a-random-box.jpg +#### pro_img #### +image: unboxing-1.jpg +#### pro_img #### +image: unboxing-2.jpg +#### pro_img #### +image: unboxing-3.jpg +#### pro_img #### +image: unboxing-4.jpg +#### pro_img #### +image: unboxing-5.jpg +#### pro_img #### +image: unboxing-6.jpg +#### pro_img #### +image: unboxing-7.jpg +#### pro_img #### +image: unboxing-8.jpg +#### pro_img #### +image: unboxing-9.jpg +#### pro_img #### +image: unboxing-10.jpg +#### pro_img #### +image: unboxing-11.jpg +#### pro_img #### +image: unboxing-11.jpg +#### pro_img #### +image: unboxing-12.jpg --- -xml_img: a-random-box.jpg +xml_img: unboxing-12.jpg diff --git a/content/blog/waffelkalender/contents+en.lr b/content/blog/waffelkalender/contents+en.lr deleted file mode 100644 index caced06..0000000 --- a/content/blog/waffelkalender/contents+en.lr +++ /dev/null @@ -1,31 +0,0 @@ -author: L3D ---- -body: - -For quite some time now, the tour dates have been published on the homepage of c3woc.de. Here we want to contribute to satisfy the hunger for waffles and record every event at which we will appear. - -Now there is also a calendar as .ICS to subscribe to: Waffelkalender. - ---- -privatebody: - -If you want us to plan a tactical weapon mission for you, just write to us! - -For example on IRC in the channel #waffel on hackint.org or directly by mail to waffle at c3woc.de. - ---- -pub_date: 2018-07-21 ---- -subtitle: Stay up to date on our tour dates! ---- -title: waffle calendar ---- -twitter_handle: L3D ---- -xml: - -Stay informed about waffles: - -https://c3woc.de/feed.xml -https://c3woc.de/#tourdaten -https://c3woc.de/waffeln.ics diff --git a/content/blog/waffelkalender/contents.lr b/content/blog/waffelkalender/contents.lr deleted file mode 100644 index 3f8f045..0000000 --- a/content/blog/waffelkalender/contents.lr +++ /dev/null @@ -1,36 +0,0 @@ -title: Waffelkalender ---- -author: L3D ---- -body: - -Schon seit längeren gibt es auf der Startseite von c3woc.de die Tourdaten veröffentlicht. Hier wollen wir dazu Beitragen den Waffelhunger zu stillen und nehmen jedes Event auf, bei dem wir erscheinen werden. - -Nun gibt es dazu auch einen kalender als .ICS zum Abonieren: Waffelkalender. - - ---- -privatebody: - - - - -Wenn ihr Lust habt, dass wir auch bei euch einen taktischen Waffeleinsatz planen, dann schreibt uns einfach an! - -Zum Beispiel im IRC Im Kanal #waffel auf hackint.org oder direkt per Mail an waffel ät c3woc.de. - - ---- -pub_date: 2018-07-21 ---- -subtitle: Bleibe über unsere Tourdaten auf dem laufenden! ---- -twitter_handle: L3D ---- -xml: - -Bleibe über Waffeln informiert: - -https://c3woc.de/feed.xml -https://c3woc.de/#tourdaten -https://c3woc.de/waffeln.ics diff --git a/content/blog/waffellove-in-darmstadt/contents.lr b/content/blog/waffellove-in-darmstadt/contents.lr index 2435c03..5c85dc6 100644 --- a/content/blog/waffellove-in-darmstadt/contents.lr +++ b/content/blog/waffellove-in-darmstadt/contents.lr @@ -2,49 +2,35 @@ title: Egal ob Wind, Regen oder Sonnenschein... --- author: Kiara --- -pub_date: 2018-06-24 ---- -subtitle: ...wir waffeln unsere Seelen rein! ---- body: - - - - - - ---- -privatebody: + ...wir waffeln unsere Seelen rein! +--------------------------------------------------- - - - -



-



-



- - - -



-



-



- - - -



-



-



- - - -



-



-



- - - --- -xml: Egal ob Wind, Regen oder Sonnenschein wir waffeln unsere Seelen rein! Auch in Darmstadt! +pub_date: 2018-06-24 --- -xml_img: waffel_4.jpg +shorttitle: Darmstadt waffelt +--- +twitter_handle: +--- +xml: Egal ob Wind, Regen oder Sonnenschein, Darmstadt waffeln seine Seelen rein! Denn der Platinengarten Waffelt jetzt auch mit. +--- +project: + +#### pro_img #### +image: waffel_1.jpg +#### pro_img #### +image: waffel_6.jpg +#### pro_img #### +image: waffel_4.jpg +#### pro_img #### +image: waffel_7.jpg +#### pro_img #### +image: waffel_8.jpg +#### pro_img #### +image: waffel_5.jpg +--- +xml_img: waffel_7.jpg +--- +beitrag: Der [Platinengarten](http://platinengarten.de) ist beim Waffeln nun auch dabei. diff --git a/content/blog/waffellove-in-darmstadt/waffel_1.jpg b/content/blog/waffellove-in-darmstadt/waffel_1.jpg old mode 100755 new mode 100644 diff --git a/content/blog/waffellove-in-darmstadt/waffel_2.jpg b/content/blog/waffellove-in-darmstadt/waffel_2.jpg old mode 100755 new mode 100644 diff --git a/content/blog/waffellove-in-darmstadt/waffel_3.jpg b/content/blog/waffellove-in-darmstadt/waffel_3.jpg deleted file mode 100755 index 3a3e20c..0000000 --- a/content/blog/waffellove-in-darmstadt/waffel_3.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:496c069cb7abd648d1100f81e915a72b3f09daad15714d5ce2a78305633270b0 -size 1106702 diff --git a/content/blog/waffellove-in-darmstadt/waffel_4.jpg b/content/blog/waffellove-in-darmstadt/waffel_4.jpg old mode 100755 new mode 100644 diff --git a/content/blog/waffellove-in-darmstadt/waffel_5.jpg b/content/blog/waffellove-in-darmstadt/waffel_5.jpg old mode 100755 new mode 100644 diff --git a/content/blog/waffellove-in-darmstadt/waffel_6.jpg b/content/blog/waffellove-in-darmstadt/waffel_6.jpg old mode 100755 new mode 100644 diff --git a/content/blog/waffellove-in-darmstadt/waffel_7.jpg b/content/blog/waffellove-in-darmstadt/waffel_7.jpg old mode 100755 new mode 100644 diff --git a/content/blog/waffellove-in-darmstadt/waffel_8.jpg b/content/blog/waffellove-in-darmstadt/waffel_8.jpg old mode 100755 new mode 100644 diff --git a/content/blog/we_tweet_about_waffles/contents.lr b/content/blog/we_tweet_about_waffles/contents.lr index 0c0402c..f3c041a 100644 --- a/content/blog/we_tweet_about_waffles/contents.lr +++ b/content/blog/we_tweet_about_waffles/contents.lr @@ -2,36 +2,35 @@ title: Waffeln sind schön --- author: L3D --- -body: - -Waffeln sind eine tolle Sache! - - - - - -Daher gibt es auch einen [Twitter](https://twitter.com/c3woc)-Account, der erstaunlich unregelmäßig über regelmäßige Waffelaktionen berichtet, Waffelbilder teilt oder andere Waffel-relatet Aktionen aufstellt. +beitrag: -Wenn ihr Lust habt, dürft ihr daher gerne den Account [@c3woc](https://twitter.com/c3woc) folgen. +Wenn ihr Lust habt, dürft ihr daher gerne den Account [@c3woc](https://twitter.com/@c3woc) folgen. + +Außerdem sind wir nun auch auf Mastodon vertreten! Dort findet man uns unter [@C3WOC@chaos.social](https://chaos.social/@C3WOC). +--- +body: Waffeln sind eine tolle Sache! --- pub_date: 2018-04-12 --- -twitter_handle: c3woc +shorttitle: Waffeln <3 --- -privatebody: - - - - - - -Außerdem sind wir nun auch auf Mastodon vertreten! -Dort findet man uns unter [c3WOC@chaos.social](https://chaos.social/@c3WOC). +twitter_handle: L3D --- xml: Waffeln sind eine tolle Sache! +Daher gibt es auch einen Twitter-Account, der erstaunlich unregelmäßig über regelmäßige Waffelaktionen berichtet, Waffelbilder teilt oder andere Waffel-relatet Aktionen aufstellt. + +Daher gibt es auch einen Twitter-Account, der erstaunlich unregelmäßig über regelmäßige Waffelaktionen berichtet, Waffelbilder teilt oder andere Waffel-relatet Aktionen aufstellt. + +--- +project: + +#### pro_img #### +image: waffel_1.jpg +#### pro_img #### +image: waffel_2.jpg --- xml_img: waffel_1.jpg diff --git a/content/blog/webseite-ist-auf-github/contents+en.lr b/content/blog/webseite-ist-auf-github/contents+en.lr deleted file mode 100644 index b201185..0000000 --- a/content/blog/webseite-ist-auf-github/contents+en.lr +++ /dev/null @@ -1,34 +0,0 @@ -author: L3D ---- -body: - -At the request of several people, the C3WOC website can now be found at GitHub. - -To be more precise it's on [github.com/ToolboxBodensee/c3woc-website](https://github.com/ToolboxBodensee/c3woc-website). - - - - ---- -privatebody: - -Also, the site is now with Travis Automated Deployed which will hopefully facilitate the cooperation of other friends of the waffle. - -So, if you feel like it: Open an issue. -Or even better: Get involved by making pull requests! - ---- -pub_date: 2018-11-05 ---- -subtitle: Edit this page even easier ---- -title: Website is on GitHub ---- -twitter_handle: L3D ---- -xml: - -At the request of several people, the C3WOC website can now be found at GitHub. -More concretely said on https://github.com/ToolboxBodensee/c3woc-website/ ---- -xml_img: github-octocat.png diff --git a/content/blog/webseite-ist-auf-github/contents.lr b/content/blog/webseite-ist-auf-github/contents.lr deleted file mode 100644 index 80c25d2..0000000 --- a/content/blog/webseite-ist-auf-github/contents.lr +++ /dev/null @@ -1,34 +0,0 @@ -title: Webseite ist auf GitHub ---- -author: L3D ---- -body: - -Auf die Anfrage mehrerer Personen hin ist die C3WOC Webseite nun bei GitHub zu finden. - -Genauer gesagt auf [github.com/ToolboxBodensee/c3woc-website](https://github.com/ToolboxBodensee/c3woc-website). - - - - ---- -privatebody: - -Außerdem wird die Seite nun mit Travis Automatisiert Deployed was hoffentlich die Mitarbeit durch andere Freunde der Waffel erleichtert. - -Also, wenn iht Lust habt: Macht ein Issue auf. -Oder noch besser: Bringt euch durch Stellen von Pull-Requests ein! - ---- -pub_date: 2018-11-05 ---- -subtitle: Diese Seite noch einfacher bearbeiten ---- -twitter_handle: L3D ---- -xml: - -Auf die Anfrage mehrerer Personen hin ist die C3WOC Webseite nun bei GitHub zu finden. -Konkreter gesagt auf https://github.com/ToolboxBodensee/c3woc-website/ ---- -xml_img: github-octocat.png diff --git a/content/blog/webseite-ist-auf-github/github-octocat.png b/content/blog/webseite-ist-auf-github/github-octocat.png deleted file mode 100644 index 7c14295..0000000 --- a/content/blog/webseite-ist-auf-github/github-octocat.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d225cd27cb19a6284fd6dc2a9af54b4d24564d3c448c5ad67fa6e86598f47823 -size 35695 diff --git a/content/blog/wpn18/contents.lr b/content/blog/wpn18/contents.lr deleted file mode 100644 index c0de51f..0000000 --- a/content/blog/wpn18/contents.lr +++ /dev/null @@ -1,85 +0,0 @@ -title: Große Waffel Programier Nacht (GPN) ---- -author: c3woc ---- -pub_date: 2018-05-14 ---- -subtitle: Die GPN hat sehr viel Spaß gemacht! ---- -twitter_handle: c3woc ---- -body: - -Die 18. Gulaschprogrammiernacht war vom 10. bis 13. Mai 2018 in den Lichthöfen der Hochschule für Gestaltung (HfG) und den Vortragssälen des Zentrum für Kunst und Medien in Karlsruhe statt. Das C3WOC war mit vereinter Waffelkraft vertreten und so haben die Waffel-Trolle dort über 100 Liter Waffelteig während den vier Tagen verwaffelt. - -Dies durfte natürlich im Infrastructure Review nicht fehlen. - - - -

20. Minute des Infrastructure Review.

-
- -Das C3WOC besteht aus Chaoten an verschiedenen Orten im Chaos. An der GPN haben sich die C3WOC Gründer vom Bodensee und aus Darmstadt getroffen und dort zum ersten mal auf einem großen Event Waffeln gemacht. - - - - ---- -privatebody: - -Wir haben mit bis zu vier Waffeleisen gleichzeitig gebacken und dort über hundert Liter Waffelteig vernichtet. -Der Entropia war so freundlich und hat beim Einkaufen die für uns benötigten Zutaten mit besorgt. Gelagert wurden die in den Kühlwagen beim Gulaschzelt. -In der Gulsch- und Pizzaküche haben wir dann folgendes Rezept angerührt: - -``` -1 Flasche Eiklar -1 KG Zucker -1 KG Butter (weich) -5 Pck. Vanille -2 Pck Backpulver -2 Liter Milch -2 Kg Mehl -1 Flasche Mate -etwas dunklen Rum -``` -Das ist übrigend die Ideale Menge für einen Eimer Waffelteig ;-) Hiervon haben wir ungefähr 10 Eimer angerührt. -Zwischendrin haben wir auch mit veganen Waffel experimentiert. - - - - - -Hier ist der Trick, anstelle des Ei Apfelmus (und ein paar Bananen) zu verwenden, die Milch durch Mandelmilch zu ersetzen und anstelle der Butter Nagarine zu verwenden. Der Teig hat erstaunlich gut geschmeckt und hatte annähernd die selbe konsistenz wie eine richtige Waffel. Für veganer eine vertretbare Alternative. Für vegetarier eine ganz leckere Abwechslung. - -Auch Leute mit Glutenunverträglichkeiten gab es. Hier haben wir mit einer Glutenfreien Mehlmischung rumgespielt, die zwar etwas mehr Ei im Teig hatte, dann aber für Glutenfreie Waffeln echt gut geschmeckt hat. - -Wenn man also unbedingt möchte, kann man sowohl vegane, als auch vegetarische Waffeln zubereiten. Dennoch macht es am meisten Spaß mit dem oben genannten klassischen Waffelteig. - - -Unser Eindruck ist, dass das C3WOC von vielen Lebensformen positiv gesehen wurde. Und so hoffen wir noch auf vielen weiteren Events weiter Waffeln zu dürfen. Vielleicht mit ein wenig Engel-Unterstützung... - - - - - -Wir wurden sogar in den Aufzeichnungen bei [media.ccc.de](https://media.ccc.de/c/gpn18) erwähnt. Sowohl im Infrastructure Review, als auch im Dezentrale soziale Netzwerke – Theorie und Praxis Talk. Vielen lieben Dank hierfür <3 - - - -

9. Minute, 40. Sekunde des Dezentrale soziale Netzwerke – Theorie und Praxis Talks.

-
- -Auf der GPN habt Ihr uns knappe 1000 Euro in die Spendenbox geworfen. -Davon werden wir 500€ in weitere Aufkleber und ein Waffeleisen investieren. Das übrige Geld ging an den Entropia e.V. für das besorgen der Waffelzutaten und vor allen für das ausrichten der Gulaschprogrammiernacht. - -Vielen lieben Dank Entropia! Wir kommen gerne wieder! - - - - - -Doch erstmal brauchen wir zur Erholung einen kleinen Waffelstillstand! ---- -xml: Die 18. Gulaschprogrammiernacht war vom 10. bis 13. Mai 2018 in den Lichthöfen der Hochschule für Gestaltung (HfG) und den Vortragssälen des Zentrum für Kunst und Medien in Karlsruhe statt. Das C3WOC war mit vereinter Waffelkraft vertreten und so haben die Waffel-Trolle dort über 100 Liter Waffelteig während den vier Tagen verwaffelt. ---- -xml_img: waffelpower.jpg diff --git a/content/contents+en.lr b/content/contents+en.lr deleted file mode 100644 index 1504d5b..0000000 --- a/content/contents+en.lr +++ /dev/null @@ -1,97 +0,0 @@ -as01b1: - -we are hacker and cyber experts from the environment of the chaos computer club.
we placed on some strategic places tactical waffle irons.
-**and we are gonna use them with no mercy.** ---- -as01d1: tactical waffle equipment ---- -as01h1: Who is the C3WOC? ---- -as01img: eisen_smal.jpg ---- -as01l1: /en/equipment ---- -as02b1: - -we use love to craft waffles.
and of course a sip of club mate.
-learn more about our waffle recipe ---- -as02d1: The waffle formula ---- -as02h1: How do we make waffles? ---- -as02img: waffel.2.jpg ---- -as02l1: /en/rezept/ ---- -as03b1: - -We're nerds and living in the cyberspace. if we don't make waffles right now we probably sending some bytes from one computer to another.
-The best way to contact us is over internet relay chat. ---- -as03d1: irc.hackint.org/#waffel ---- -as03h1: How you reach us ---- -as03img: eh18.jpg ---- -as03l1: https://webirc.hackint.org/#irc://irc.hackint.org/#waffel ---- -description: - -Our passion is it to join some random hacker events and bring the waffles to the people. And of course we will appear on some hackspaces and free network meetups. We may join some hackerthon or makerfaire too. - -obviously we may inform you about that. That could be in our [IRC](https://webirc.hackint.org/#irc://irc.hackint.org/#waffel) channel, via [twitter](https://twitter.com/c3WOC) or on [mastodon](https://chaos.social/@c3WOC). - -You can subscribe [our calendar](https://c3woc.de/waffeln.ics) to stay informed about our bigger events. - -

Our next events

- ---- -title: We love waffles ---- -where: Where are we next ---- -tour: - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -10th and 11th August 2019 - - - - - - - -
DatumVeranstaltungOrt
3. März 2019Döner Waffel experimetier partyMarkdorf, Bodensee
9. - 10. März 2019Chili Eskallationsparty 2019Heilbronn
16. März 2019Eröffnung des Chaostreff Berns HackerspaceBern
19. - 22. April 2019Easterhegg 2019Wien
30. Mai - 2. Juni 2019GPN19Karlsruhe
14. - 16. Juni 2019CosinBiel/Bienne
10. - 11. August 2019FrOSConHochschule Bonn-Rhein-Sieg
21.-25. August 2019CCCamp 2019Ziegeleipark Mildenberg 🚀
diff --git a/content/contents.lr b/content/contents.lr index e419dce..9c34b4c 100644 --- a/content/contents.lr +++ b/content/contents.lr @@ -1,101 +1,148 @@ -as01b1: +_model: start +--- +title: C3 Waffel Operation Center +--- +slogan: Wir machen Waffeln! +--- +about_header: Die Waffelformel +--- +about_text: Mit viel liebe verwandeln wir rohe Zutaten in waffelfähigen Teig. Dabei verwenden wir lang erforschte Rezepturen, die wir euch nicht verheimlichen wollen. +--- +about_text2: Nach jahrerlanger Forschung ist es uns gelungen, die Formel für den Waffelteig zu rekonstruieren. Diese galt lange als verschollen, wurde jetzt aber durch Quantentechnologie und Blockchain wieder zugänglich gemacht. +--- +about_text3: Eines der Geheimnisse von guten Waffelteig ist die frische der Zutaten. Ein anderes ist die Qualität. +--- +about_url: Waffel Rezepturen +--- +about_url2: /rezept/ +--- +icons_header: Wo kannst du uns treffen? +--- +icons_text: -Wir sind Hacker und Nerds aus dem Umfeld des Chaos Computer Club..
Wir haben an einigen strategischen Standorten Waffeleisen plaziert!
-**Und wir werden Sie einsetzen!** +Das C3WOC erfreut sich einer großen beliebtheit. Besonders im Umkreis des Chaos Computer Club und Chaosnahen veranstaltungen.
+Selbstverständlich sollen dort Waffeln nicht fehlen! --- -as01h1: Wer ist das C3WOC? +icons_1_1: fas fa-heart --- -title: Wir sind das C3WOC +icons_1_2: Seid nett zu einander --- -as01img: eisen_smal.jpg ---- -as01d1: Strategisches Waffel-Equpment ---- -as01l1: https://c3woc.de/equipment ---- -as02d1: Die Waffelformel ---- -as02h1: Wie backen wir Waffeln ---- -as02l1: /rezept/ ---- -as02b1: +icons_1_3: -Wir bereiten Waffeln mit viel Liebe zu. -Und natürlich einen Schluck Club-Mate.
-Lerne unsere Waffelmixtur kennen +Eine Waffel besteht aus fünf Herzen. Das ist nicht zufällig so! +Ein Herz steht metaphorisch für Güte und Liebe steht. Ebenso tut dies eine Waffel! --- -as02img: waffel.2.jpg +icons_2_1: fas fa-handshake --- -as03b1: - -Wir sind Nerds und Leben auch im Internet.
-Komm uns dort doch mal Besuchen!
-Am besten erreichst du uns im IRC +icons_2_2: Kommt zusammen --- -as03d1: irc.hackint.org/#waffel +icons_2_3: Eine einsame Waffel schmeckt bei weiten nicht so gut, wie eine Waffel, die man mit Freunden oder neuen Bekannten genießen kann. --- -as03h1: So erreichst du uns +icons_3_1: fas fa-flask --- -as03img: eh18.jpg +icons_3_2: Experimentiert --- -as03l1: https://webirc.hackint.org/#irc://irc.hackint.org/#waffel +icons_3_3: Mit Waffeln lassen sich viele Experimente machen oder verbessern. Angefangen von der Waffel, die die experimentierfreudigen Hacker neu motiviert. Bis hin zu neuen kreationen wie zum Beispiel die [Dönerwaffel](/rezept/doener/). --- -description: - -Wir haben es uns zur Aufgabe gemacht an einigen Hackveranstaltungen aufzutauchen und dort Waffeln zu backen. -Aber natürlich auch ab und zu einfach so in ausgewählten Hackerspacen, zu Freifunk Treffen oder auch mal auf einem Hackerthon. - -Selbstverständlich werden wir euch darüber unzuverlässig und unregelmäßig Informieren. -Dies passiert nicht nur im [IRC](https://webirc.hackint.org/#irc://irc.hackint.org/#waffel), sondern auch über Kanäle wie [Mastodon](https://chaos.social/@c3WOC) oder [Twitter](https://twitter.com/c3WOC). - -Und natürlich wird darüber auch ab und zu im Blog berichtet. Über unseren [ICS Kalender](https://c3woc.de/waffeln.ics) kannst du informiert bleiben. - - -

Unsere nächsten Events

+icons_4_1: fas fa-user-plus --- -where: Wo sind wir als nächstes +icons_4_2: Mach mit --- -tour: +icons_4_3: Einsam Waffeln backen macht keinen Spaß. Mach mit beim C3WOC und lass uns gemeinsam mit Waffeln etwas Freude, Liebe und gute Laune verbreiten! +--- +icons_4_url: /mitmachen/ +--- +icons_5_1: far fa-comments +--- +icons_5_2: Tauscht euch aus +--- +icons_5_3: Lasst uns gemeinsam über Waffeln reden. Kommt doch bei uns im IRC auf [irc.hackint.org/#waffel](https://hackint.org/connect) vorbei. +--- +icons_5_url: https://webirc.hackint.org/#irc://irc.hackint.org/#waffel +--- +icons_6_1: fa-calendar-plus +--- +icons_6_2: Kommt zu Veranstaltungen +--- +icons_6_3: Das C3WOC kommt gerne zu chaos nahen Veranstaltung um da mit euch zusammen Waffeln zu machen. Ladet uns einfach mal ein! +--- +icons_6_url: https://c3woc.de/#tourdaten +--- +icons_txt: Werde Teil des C3WOC +--- +icons_url: https://c3woc.de/mitmachen/ +--- +red_1: Wir freuen uns über neue Gesichter. +--- +red_2: - +Alleine Waffeln zu backen ist langweilig und mit der Zeit echt anstrengend. Aber zusammen macht das gleich viel mehr spaß. +Wenn mehr Menschen mitmachen, wird das Waffel backen, Planen, Organisieren und essen zu einem super Erlebnis. +--- +red_3: +Wir würden uns sehr über mehr aktive Leute, die Spaß an Waffeln haben freuen. Denn nur mit wenigen Menschen etwas zu Planen und durchzuführen ist sehr Anstrengend und funktioniert nicht für unbegrenzte Zeit. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -10th and 11th August 2019 - - - - +Bitte mach bei uns mit! +--- +red_4: Wir brauchen deine Unterstützung! +--- +icons_1_url: https://c3coc.de +--- +icons_3_url: /rezepte/ +--- +hinweis: Wenn du Lust hast, dann +--- +hinweis_txt: mach mit! +--- +hinweis_url: /mitmachen/ +--- +sections: +#### startpage_section #### +type: right +---- +header: Der Waffelblog +---- +text: Wenn du interessiert bist an Bildern und etwas Text zu Veranstaltungen, bei denen das C3WOC involviert ist oder anderen Aktionen, bei denen gewaffelt wurde oder es um Waffeln geht, dann schau doch mal in den C3WOC Blog. +---- +text2: +Wir würden auch einen Bericht von deinen Waffel Aktionen dort sehr gerne lesen! -
DatumVeranstaltungOrt
3. März 2019Döner Waffel experimetier partyMarkdorf, Bodensee
9. - 10. März 2019Chili Eskallationsparty 2019Heilbronn
16. März 2019Eröffnung des Chaostreff Berns HackerspaceBern
19. - 22. April 2019Easterhegg 2019Wien
30. Mai - 2. Juni 2019GPN19Karlsruhe
14. - 16. Juni 2019CosinBiel/Bienne
10. - 11. August 2019FrOSConHochschule Bonn-Rhein-Sieg
21.-25. August 2019CCCamp 2019Ziegeleipark Mildenberg 🚀
+Sprech uns hierfür einfach an oder noch besser: Mach einen Pull-Request auf der [Webseite](https://github.com/ToolboxBodensee/c3woc-webseite). +---- +url_text: Waffel-Blog +---- +url: /blog/ +---- +background: /images/home/abschnitt2.jpeg +#### startpage_section #### +type: left +---- +header: Equipment +---- +text: + +Für die perfekte Waffel gibt es einige Abhängigkeiten.
+Eine davon ist ganz klar das Waffeleisen. +---- +text2: Hier setzt das C3WOC auf professionelles Gastronomie Equipment. +---- +url_text: Waffellager +---- +url: /equipment/ +---- +background: /images/home/abschnitt3.jpeg +--- +render_tourdaten: yes +--- +icons_header_2: Worum geht es bei den Waffeln +--- +icons_text_2: + +Das C3WOC macht nicht einfach Waffeln, die man für Geld kaufen kann. + +Sondern es geht um viel mehr! +--- +icons_2_url: https://www.ccc.de/de/regional diff --git a/content/datenschutz/contents.lr b/content/datenschutz/contents.lr index d2b44ce..1dd18e9 100644 --- a/content/datenschutz/contents.lr +++ b/content/datenschutz/contents.lr @@ -1,8 +1,4 @@ -_model: site ---- -title: Datenschutz ---- -body: +content: Datenschutz ist auch für Waffeln und waffelnahen Lebensformen ein wichtiger Schwerpunkt. Deshalb versuchen wir hier mal verständlich zu machen, was diese Website kann und tut und darf. Bei Verständnisfragen oder Inkonsistenzen fragt bitte! @@ -23,6 +19,8 @@ garantieren, dass nicht irgendwo im HTTPS-Protokoll oder den Implementierungen, Zu unserem eigenen Schutz: Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor. --- -spruch: Mit Waffeln Daten schützen! +slogan: Welche Gefahren drohen dir hier? --- -subtitle: Welche gefahren drohen dir hier? +teaser: Welche Gefahren drohen dir auf c3woc.de? Hier erfährst du, was wir von dir speichern und wieso. +--- +title: Datenschutz diff --git a/content/eh18.jpg b/content/eh18.jpg deleted file mode 100644 index 778def9..0000000 --- a/content/eh18.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b868a16c03698996934a2513d1178f39542be8d46933a942feabf3440eeaef50 -size 90612 diff --git a/content/eisen.jpg b/content/eisen.jpg deleted file mode 100644 index 377a25d..0000000 --- a/content/eisen.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e355944a135b13cd592075edb9dfe494ebdd7e928512e32ba4c4b2daa48eff5 -size 84193 diff --git a/content/eisen_smal.jpg b/content/eisen_smal.jpg deleted file mode 100644 index 5b52692..0000000 --- a/content/eisen_smal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:684fe6d0c50d3eb4b93370c3f502189c64fd7e3d75928bf09d8e558c34d11def -size 704374 diff --git a/content/equipment/contents.lr b/content/equipment/contents.lr deleted file mode 100644 index 72fe5bd..0000000 --- a/content/equipment/contents.lr +++ /dev/null @@ -1,108 +0,0 @@ -_model: material ---- -title: Unser Equipment ---- -body: - -Wir haben Waffeleisen bei verschiedenen strategisch Relevanten Hackerspacen plaziert. -Von dort sind wir in der Lage mit vereinte Waffelgewalt gezielt Waffelherzen zu verbreiten. - -

Toolbox Bodensee e.V.

- -In der [Toolbox Bodensee e.V.](https://toolbox-bodensee.de) in Markdorf am Bodensee gibt es das ["Mate Syndikat"](https://küche.toolbox-bodensee.de/), das sich um die Küche der Toolbox kümmert. Und natürlich kann sich ein aktiver Hackerspace nicht entgehen lassen, vernünftiges Waffelequipment zu haben. - -Das Mate-Syndikat hat ein kleines Bartscher Gastro-Waffeleisen. Hier einige technische Daten: - - -``` - Energiebedarf: 2,2 kW - Waffelform: Herzform - Waffelgröße: Ø 210 mm, Höhe 16 mm - Temperaturbereich von: 0°C bis 300°C - Gewicht: 15,5 kg - Case-Gesamtgröße (außen): 54 x 41 x 34 cm - Case-Gesamtgewicht (mit Eisen): ~25kg -``` - - -

"kleines Waffeleisen"

- - -
- - - - - -
- - - - - - - -
-
- - -

see-base

- -In Ü**Berlin**gen gibt es den Hackerspace [see-base](https://see-base.de). Natürlich wird in der see-base auch gewaffelt und überregionales Waffeln für gut empfunden. So ist auch die see-base Teil des C3WOC und hat ein großes Bartscher Gastro-Waffeleisen im Sortiment. Dieses hat folgende Werte: - -``` - Energiebedarf: 2x 2,2 kW - Waffelform: Herzform - Waffelgröße: Ø 210 mm, Höhe 16 mm - Temperaturbereich von: 0°C bis 300°C - Gewicht: 23,5 kg - Case-Gesamtgröße (außen): 69x69x42cm - Case-Gesamtgewicht (mit Eisen): ~35kg -``` - -

"großes Waffeleisen:"

- -
- - - - - - -
-

-Selbstverständlich haben die beiden Gastro-Waffeleisen auch jeweils einen Pelikan-Case für den sicheren Transport zum Einsatzort. -
-
- -

Platinengarten

- -Beim [Platinengarten](http://platinengarten.de/) gibt es auch aktive Nerds mit Waffeleisen. -Hier findet man bis zu 7 Rowenta Waffeleisen, - - - -Diese orientieren sich an folgenden technischen Daten: - -``` - Energiebedarf: 900 W - Waffelform: Herzform - Waffelgröße: normalgroß - Gewicht: nicht so schwer -``` - - - - -
- -Hast du oder dein Hackerspace nicht vielleicht auch Lust, beim C3WOC mit zu machen? - -Werde Teil des C3WOC - - - ---- -spruch: Ohne Waffeleisen kann man auch keine Waffeln backen ---- -subtitle: Dezentrale Waffelpower diff --git a/content/equipment/mini.jpg b/content/equipment/mini.jpg deleted file mode 100644 index 979d57b..0000000 --- a/content/equipment/mini.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0fd834d6e7d86d2fe875c7ccdb18be42d781bb6772b344a7597405485f93acd1 -size 1496332 diff --git a/content/fame/contents.lr b/content/fame/contents.lr deleted file mode 100644 index 15571bc..0000000 --- a/content/fame/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -_model: site ---- -title: Medienberichte ---- -spruch: Waffeln sind in aller munde! ---- -subtitle: Hier wurde das C3WOC erwähnt ---- -body: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DatumVeranstaltungOrt
9.-11. November 2018C6 GeekendKiel
17. November 2018Tag der offenen Türe im Hackerspace ToolboxMarkdorf
23. - 25. November 2018Glühweinprogrammiernacht (GlühPN) Karlsruhe
1. Dezember 2018Adventsbasar beim Hackerspace see-baseÜberlingen
26.-30. Dezember 201835. Chaos Communication CongressLeipzig
19. - 22. April 2019Easterhegg 2019Wien
30. Mai - 2. Juni 2019GPN19Karlsruhe
14. - 16. Juni 2019CosinBiel/Bienne
21.-25. August 2019CCCamp 2019Ziegeleipark Mildenberg 🚀
diff --git a/content/feed.xml/contents.lr b/content/feed_rezepte.xml/contents.lr similarity index 62% rename from content/feed.xml/contents.lr rename to content/feed_rezepte.xml/contents.lr index 6935fdb..8d13df2 100644 --- a/content/feed.xml/contents.lr +++ b/content/feed_rezepte.xml/contents.lr @@ -1,4 +1,4 @@ -_template: feed.xml +_template: feed_projekte.xml --- _model: none _discoverable: no diff --git a/content/hygiene/contents+en.lr b/content/hygiene/contents+en.lr deleted file mode 100644 index 7b45ff5..0000000 --- a/content/hygiene/contents+en.lr +++ /dev/null @@ -1,43 +0,0 @@ -body: - -Hygiene is an important issue when working with fresh and tasty food. So it is irresponsible to prepare food from fresh eggs at larger events, which are still surrounded by chicken bowl ... - -**some principles that must be allways followed** - - clean work surface -================= -Clean the work surface on which dough or waffles are prepared before and after you work there. - - clean hands -=============== -Wash and / or disinfect your hands before and while working with fresh food like waffles - - apron -======= -Wear an apron while preparing dough and make waffles - - eggs -======= -If possible, do not use eggs from eggshells. Liquid eggs come in Tetra Pack packs and can be easily poured into the dough without having to peel eggs. Search for "Eiklar" to learn more about that. - - eggshells -===== -Before peeling the eggs (if there is no other way) **wash the eggs**. If you put some egg peel into the dough you have to start from scratch. Dispose the possibly infected dough and try again. -Especially with salmonella is not to joke and rather a little more caution! - - fresh food -========= -All fresh food (eggs, milk, butter, dough, etc.) must be constantly cooled. There is **no reason** to store these foods outside the refrigerator or refrigerated truck. Unless they are used immediately. - - common sense -================== -You work with fresh food. Do not do anything unwise, do not urinate in the dough, do not use dirty materials... **Use your common sense!** - -Every being in the universe knows right from wrong. You know it too. Don't mess it up! - ---- -spruch: Dough without salmonella tastes much better ---- -subtitle: Wash your hands. always. ---- -title: Hygiene diff --git a/content/hygiene/contents.lr b/content/hygiene/contents.lr deleted file mode 100644 index a4da476..0000000 --- a/content/hygiene/contents.lr +++ /dev/null @@ -1,45 +0,0 @@ -_model: site ---- -title: Hygiene ---- -body: - -Die Hygiene ist beim arbeiten mit frischen Lebensmitteln ein wichtiges Thema. So ist es unverantwortlich bei größeren Veranstaltungen Essen aus frischen Eiern zuzubereiten, die noch von Hühnerschale umeben sind... - -**einige Grundsätze, die beim Waffeln backen eingehalten werden müssen:** - - saubere Arbeitsfläche -================= -Putze die Arbeitsfläche, auf der Teig oder Waffeln zubereitet werden bevor und nachdem du dort arbeitest. - - saubere Hände -=============== -Wasche und/oder desinfiziere deine Hände, bevor du mit Lebensmitteln arbeitest - - Schürze -======= -Trage eine Schürze beim Teig- und Waffeln zubereiten - - Eier -======= -verwende nach Möglichkeit keine Eier aus Eierschalen. Eiklar kommt in Tetrapack Packungen und lässt sich Problemlos in den Teig schütten ohne Eier schälen zu müssen. - - Eierschalen -===== -Vor dem schälen der Eier (falls es unbedingt sein muss) **unbedingt die Eier abwaschen**. Ist beim öffnen der Eier Schale in den Teig gefallen musst du leider von vorne starten. Entsorge deinen möglicherweise infizierten Teig und beginne von neuen. -Gerade mit Salmonellen ist nicht zu spaßen und lieber etwas mehr vorsicht als schlagsigkeit zu genießen! - - frische Lebensmittel -========= -Alle frischen Lebensmittel (Ei, Milch, Butter, Teig etc.) müssen ständig gekühlt werden. Es gibt **keinen Grund**, diese Lebensmittel außerhalb des Kühlschrank oder Kühlwagen zu lagern. Es sei denn, sie werten unmittelbar verwendet. - - gesunder Menschenverstand -================== -Du arbeitest mit frischen Lebensmitteln. Tu nichts unüberlegtes, Uriniere nicht in den Teig, verwende keine dreckigen Behältnisse oder Materialeien... **Verwende einfach dein Gesunden Menschenverstand!** - -Every being in the universe knows right from wrong. You know it too. Don't mess it up! - ---- -spruch: Teig ohne Salmonellen schmeckt viel besser ---- -subtitle: Hände waschen. immer. diff --git a/content/impressum/contents.lr b/content/impressum/contents.lr index 8f07639..749468e 100644 --- a/content/impressum/contents.lr +++ b/content/impressum/contents.lr @@ -1,8 +1,12 @@ -_model: site +_model: page --- title: Impressum --- -body: +slogan: Hier könnt ihr uns erreichen! +--- +teaser: Das Impressum des C3 Waffel Operation Center. Hier findet ihr diverse Kontaktmöglichkeiten um schnell und einfach mit uns in Verbindung zu kommen! +--- +content: IRC: ----- @@ -27,7 +31,3 @@ C3WOC Bergheimer Str. 6-12 88677 Markdorf ``` ---- -subtitle: Kontaktmöglichkeiten ---- -spruch: So kann man uns erreichen... diff --git a/content/equipment/big_case.jpg b/content/kontakt/big_case.jpg similarity index 100% rename from content/equipment/big_case.jpg rename to content/kontakt/big_case.jpg diff --git a/content/equipment/case.jpg b/content/kontakt/case.jpg similarity index 100% rename from content/equipment/case.jpg rename to content/kontakt/case.jpg diff --git a/content/kontakt/contents.lr b/content/kontakt/contents.lr new file mode 100644 index 0000000..3ca2060 --- /dev/null +++ b/content/kontakt/contents.lr @@ -0,0 +1,88 @@ +_model: vereinsheim +--- +title: Kontakt +--- +slogan: Dort ist das C3WOC vertreten +--- +content: + + Wer beim C3WOC mitmacht: +---------------------------------------- + +Das C3WOC besteht aus Chaoten, die bereit sind Ihr Leben der Waffel zu widmen. Hierzu haben folgende Gruppierungen sich bekannt und folgende Hardware einsatzbereit: + + Toolbox Bodensee e.V. +====================== +Die [Toolbox](https://toolbox-bodensee.de) ist ein Hack- und Makerspace in Markdorf am Bodensee.
+Jeden Donnerstag Abend treffen sich dort Menschen um sich auszutauschen und gemeinsam etwas zu unternehmen. Manchmal werden auch Waffeln gemacht.
+Hierfür stehen zwei Gastronom-Waffeleisen zur Verfügung. Eines mit der klassischen Herzform. Das andere mit Brüssler Motiv. Außerdem steht ein Dönergrill zur verfügung, um zum Beispiel Dönerwaffeln frisch zuzubereiten. + + +


+ + see-base +============== +Die [see-base](https://see-base.de) ist ein Hackspace in Überlingen. Dort kommen Chaoten und Hacker zusammen um gemeinsam an Projekten zu basteln, zu löten, spaß am Gerät zu haben und sich auszutauschen.
+Natürlich auch mit einem ordentlichen Equipment an Snacks und Getränken. Und hier darf das Doppel-Gastro-Waffeleisen nicht fehlen. + + +


+ + Platinengarten e.V. +======================= +Der Platinengarten ist ein Verein in Darmstadt, der sich um das Thema Computer und Waffeln engagiert.
+Hierfür werden Rowenta Waffeleisen eingesetzt. + + + +


+ + + Und du? +================= + +Alleine Waffeln backen ist langweilig.
+[Mach mit](/mitmachen/) beim C3WOC! + +


+ + Bilder von unserem Equipment: +---------------------------------------- +--- +teaser: Das C3WOC hat an strategisch wichtigen Orten Waffeleisen deponiert. Wo genau? Das erfährst du hier! +--- +project: + +#### pro_img #### +image: eisen.jpg +#### pro_img #### +image: case.jpg +#### pro_img #### +image: eisen_bruessel.jpg +#### pro_img #### +image: doppeleisen.jpg +#### pro_img #### +image: big_case.jpg +#### pro_img #### +image: rowenta.jpg diff --git a/content/equipment/doppeleisen.jpg b/content/kontakt/doppeleisen.jpg similarity index 100% rename from content/equipment/doppeleisen.jpg rename to content/kontakt/doppeleisen.jpg diff --git a/content/equipment/eisen.jpg b/content/kontakt/eisen.jpg similarity index 100% rename from content/equipment/eisen.jpg rename to content/kontakt/eisen.jpg diff --git a/content/kontakt/eisen_bruessel.jpg b/content/kontakt/eisen_bruessel.jpg new file mode 100644 index 0000000..cf5793c --- /dev/null +++ b/content/kontakt/eisen_bruessel.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3da537b172bd6bdda7b5d5da272e83ce2a914f58a7b33efb43e6d185221fa63b +size 2470909 diff --git a/assets/images/njom.jpg b/content/kontakt/rowenta.jpg similarity index 100% rename from assets/images/njom.jpg rename to content/kontakt/rowenta.jpg diff --git a/content/mitmachen/contents.lr b/content/mitmachen/contents.lr index 13ebc1d..2b73baa 100644 --- a/content/mitmachen/contents.lr +++ b/content/mitmachen/contents.lr @@ -1,33 +1,41 @@ -_model: site +_model: vereinsheim --- -title: Sei Teil des C3WOC +title: Mitmachen --- -spruch: Waffelbacken kann jeder. +slogan: Denn geteilte Freude ist doppelte Freude! --- -subtitle: Aber damit es perfekt wird, muss auch der Teig und die Hygiene stimmen +teaser: Das C3 Waffel Operation Center braucht Verstärung. Findest du Waffeln lecker? Kennst du jemanden, der ein eigenes Waffeleisen hat? Dann mach mit! Werde Teil des C3WOC. Backe und Organisiere Waffeln. Auf lokelen kleinen Veranstaltungen bei dir und bei intergalaktischen Events wie den Chaos Communication Congress. mach einfach mit und hab spaß - am Waffelgerät! --- -body: +precontent: -Wir vom C3WOC freuen uns über jeden, der auch gute und Qualitativ hochwertige Waffeln zu schätzen weiß. +Das C3WOC besteht aus Menschen, die sich zum [Chaos Computer Club](https://ccc.de) hingezogen fühlen.
+Außerdem finden diese Menchen Waffeln nicht ganz unsympatisch. -Aber noch viel besser wäre es, wenn in jedem Hackerspace eine erfahrene Waffelcrew hat, die sich als ein Teil des C3WOC empfindet. +Wenn du dich hier wieder erkennst, dann würden wir uns sehr freuen, wenn du beim C3WOC mitmachen willst! +``` +E-Mail: waffel@c3woc.de +``` -Doch um beim C3WOC mitmachen zu dürfen, muss man gewisse Qualitätsanforderungen erfüllen, ohne die ein Waffelanschlag schnell einem Biowaffenanschlag gleich kommen kann. Dies umfasst folgende Punkte: +Was dich erwartet, sind dankbare hungrige Chaoten, denen du als Teil vom C3WOC Waffeln backen wirst. -Qualität der Zutaten -Hygiene -gepflegtes Equipment +Außerdem kommen Aufgaben wir das Planen und Organisieren von Waffelaktionen auf dich zu. -Werden diese Punkte erfüllt, würden wir uns sehr freuen, dich als Teil des C3WOC aufzunehmen. +Natürlich machen wir das bei bekannteren Veranstaltungen zusammen. Nur kleine regionale Events wie das monatliche Freeifunker-Treffen, der Chaostreff-abend oder ähnliche Events machen mehr sinn von den lokalen Menschen vor Ort - also von dir - bewaffelt zu werden.
+Auf großen Events wie der GPN, dem Congress oder dem Easterhegg machen wir das natürlich gemeinsam mit allen anwesenden C3WOC-Menschen. -Als Mitglied vom C3WOC hast du die selbstregulierte Verpflichtung leckere Waffeln mit hohen C3WOC Qualitätsstandards so oft du Lust hast zu machen. -Außerdem würden wir es sehr schätzen, mit dir bei unterschiedlichsten, meistens chaosnahen Veranstaltungen zu Waffeln. -Eigeninitiative wie das unabhängige Aufschlagen bei regionalen Events in deiner nähe schätzen wir auch sehr. Über ein paar schicke Bilder dazu für den C3WOC Blog freuen wir uns auch sehr. +Außerdem ist das gelegentliche Updaten der C3WOC Seite eine echt großartige Sache! -Als Teil des C3WOC erhältst du natürlich bestmöglichen Waffelsupport. So bekommst du auf Wunsch eine @c3woc.de Adresse und wirst mit in den Verteiler aufgenommen. Außerdem versuchen wir stets bei jeden einige C3WOC Aufkleber vorrätig zu haben. +Erkläre dein Hackerspace, Makerspace, Fablab oder Chaostreff mit zu einer offiziellen Außenstelle des C3WOC. -Melde dich bei uns und werde Teil des C3WOC: + Die C3WOC Außenstellen: +--------------------------- +--- +content: -waffel@c3woc.de +Als Teil des C3WOC stehen dir natürlich umfassende privilegien zu wie den Operator-Status im [IRC](ircs://irc.hackint.org/#waffel) oder auch die aufnahme deiner Mailadresse unter den ``waffel@c3woc.de`` Verteiler.
+Außerdem bekommst du bei interesse dein eigenes ``@c3woc.de`` Postfach oder weiterleitung! +Mach mit bei uns. Denn zusammen macht es gleich viel mehr spaß! + +Bewerbe dich an [waffel@c3woc.de](mailto:waffel@c3woc.de)! diff --git a/content/rezept/contents.lr b/content/rezept/contents.lr index 2f2c62d..e1c62cc 100644 --- a/content/rezept/contents.lr +++ b/content/rezept/contents.lr @@ -1,12 +1,18 @@ -_model: material +_model: projekte --- -title: Rezept +title: Die Formel für eine gute Waffel --- -body: +link: /feed_rezepte.xml +--- +abo: Abonniere alle Rezepte als XML Feed +--- +description: Jede Waffel ist einzigartig +--- +begruessung: -Der Standard-Waffelteig des C3WOC ist für einen 10 Liter Eimer optimiert, um auf mittleren und größeren Veranstaltungen den optimalen Waffelzustand zu erreichen! +Das normale Waffelrezept ist denkbar einfach und lautet wie folgt: -``` +
1 l Vollei-Eiklar (oder ca. 20 Eier) 1 Kg Zucker 1,25 Kg Butter (weich/geschmolzen) @@ -17,39 +23,20 @@ Der Standard-Waffelteig des C3WOC ist für einen 10 Liter Eimer optimiert, um au 2 Flaschen Club-Mate oder Flora Power etwas (dunklen) Rum eine prise Salz -``` - - Zubereitung -============ -Weiche oder geschmolzene Butter mit Ei und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. - -Weitere Rezepte: -------------------------- -Teig ohne Ei -Veganer Teig -Glutenfreier Teig -Fleischhaltiger Teig -Waffelbelag - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - - +
+Das Rezept ist optimiert auf einen größeren Waffelhunger als von 3 Menschen.
+Als "Schüssel" eignet sich hier ein lebensmittelfähiger 10-Liter Eimer perfekt.
--- -spruch: Ohne guten Teig hilft auch das beste Waffeleisen nicht weiter +desc: Die Rezeptsammlung des C3 Waffel Operation Center. Von der veganen Waffel bis hin zur legendären Dönerwaffel ist hier alles vertreten. --- -subtitle: Waffelteig +title2: Alle Rezepte --- -_template: site.html +description2: Für mehr diversität bei den Waffeln ist hier für die meisten etwas dabei! +--- +trailer: + +

+Wenn du noch eine verwendung für ein Waffeleisen steht, das hier noch nicht steht, dann würden wir uns sehr darüber freuen, wenn du bereit wärst es mit uns zu teilen! +Natürlich kannst du es auch direkt hier veröffentlichen. Denn diese Webseite kannst du [auf GitHub](https://github.com/ToolboxBodensee/c3woc-website.git) bearbeiten! diff --git a/content/rezept/doener/contents.lr b/content/rezept/doener/contents.lr new file mode 100644 index 0000000..88d7f01 --- /dev/null +++ b/content/rezept/doener/contents.lr @@ -0,0 +1,53 @@ +title: Dönerwaffel +--- +author: Dampfkadse +--- +number: 42 +--- +icon: fas fa-hamburger +--- +teaser: Die legendäre Dönerwaffel - Eine Herzhafte Waffel mit Dönerfleisch. +--- +body: + +Die Dönerwaffel wird nicht nur durch den Teig definiert, sondern vor allen auch durch den Belag. + + Für den Teig: +=============== + +``` +sehr viel Knoblauch (viel!) +frische Kräuter (oder getrocknet) +1 l Vollei-Eiklar (oder ca. 20 Eier) +kein Zucker +1,25 Kg Butter (weich/geschmolzen) +eine priese Vanillezucker (am besten aus echter Vanille) +3 Pck. Backpulver (oder 1-2 EL voll) +1,5 Liter frische Vollmilch (keine H-Milch) +2 Kg Mehl +2 Flaschen Club-Mate oder Flora Power +etwas (dunklen) Rum +eine sehr großzügige prise (Kräuter-)Salz +``` + + Für den Belag: +================= +``` +frisches, gebratenes Dönerfleisch +Dönersoße +Zaziki +``` + + Zubereitung +-------------------- + +Weiche oder geschmolzene Butter mit Ei in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. Unter ständigen rühren die weiteren Zutaten hinzugeben. Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. Teig gerne mit weiteren Gewürzen verfeinern. + +Waffeln backen. + +Waffel belegen. + + Wichtig! +-------------- + +Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei frischen Kräutern schmeckt der Teig viel besser, wen anstelle keine oder getrocknete Kräutern verwendet, muss man mit geschmacklichen einbußen rechnen. Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. diff --git a/content/rezept/eifrei/contents.lr b/content/rezept/eifrei/contents.lr deleted file mode 100644 index 2091c36..0000000 --- a/content/rezept/eifrei/contents.lr +++ /dev/null @@ -1,58 +0,0 @@ -_model: site ---- -title: Teig ohne Ei ---- -spruch: Waffeln ohne Salmoneleninfektion ---- -subtitle: %s/Ei/Apfelmus/g ---- -body: - -Ei ist ein wichtiger Bestandteil der Waffel. Das weglassen von Ei bedeutet dabei auch, die Qualität der Waffel zu verändern. Ob das aber dadurch besser oder schlechter wird, muss jeder selber bewerten. Es ist auf jeden Fall ungewöhnlich und anders als normal. - -**Der Trick** ist, das Ei durch andere Zutaten mit ähnlich bindenden Charakter zu ersetzen. Besonders gut haben sich hier eine Mischung aus Bananen und Apfelmus bewährt. Aber natürlich wollen wir eure Kreativität nicht einschränken. Probiert es einfach mal aus! - - Eifreies Rezept -========= - -``` -1 Bund Bananen -300g-500g Apfelmus (je nach Bananenanteil) -1 Kg Zucker -1,25 Kg Butter (weich/geschmolzen) -6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver -1,5 Liter frische Vollmilch (keine H-Milch) -2 Kg Mehl -2 Flaschen Club-Mate oder Flora Power -etwas (dunklen) Rum -eine prise Salz -``` - - - Zubereitung -============ -Kleingeschnittene oder Pürrierte Bananen zusammen mit dem Apfelmus, zerlassener Butter und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. - -Weitere Rezepte: -------------------------- -normaler Teig -Veganer Teig -Glutenfreier Teig -Fleischhaltiger Teig -Waffelbelag - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - - diff --git a/content/rezept/fleisch/contents.lr b/content/rezept/fleisch/contents.lr deleted file mode 100644 index e26fd23..0000000 --- a/content/rezept/fleisch/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -_model: site ---- -title: Fleischhaltige Rezeptur ---- -body: - -Auch wenn man bei Waffeln erstmal an etwas süßes denkt, so ist es trotzdem möglich herzhaft Waffeln mit Fleischfüllung zuzubereiten. Hierfür kann folgende Formel angewendet werden: - -``` -1 Packung Eiklar (oder 20 Eier) -1,5 Kg Hackfleisch (frisch angebraten) -einige Zwiebeln (gewürfelt und frisch angebraten) -viel Knoblauch -1,25 Kg Butter (weich/geschmolzen) -2-6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver -1,5 Liter frische Vollmilch (keine H-Milch) -2 Kg Mehl -2 Flaschen Club-Mate oder Flora Power -etwas (dunklen) Rum -eine große prise Salz -drei große prisen Pfeffer -frische Kräuter -``` - - Zubereitung -============ -Hackfleisch mit kleingeschnittenen Zwiebeln und Knoblauch frisch anbraten. Diesen mit den Eiern und der geschmolzenen Butter vermischen. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob das billige Hackfleisch vom Aldi und die H-Milch aus dem Sonderangebot genommen wurde oder das gute Hackfleisch vom Metzger und die frische Milch direkt vom bauern (oder aus dem Kühlregal). -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker und es könnten Waffeln entstehen, die nicht ganz der erhofften Konsistenz entsprechen. - -Weitere Rezepte: -------------------------- -normaler Teig -Teig ohne Ei -Glutenfreier Teig -Waffelbelag -Fleischhaltiger Teig - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene - ---- -spruch: Ohne Fleisch ist es keine richtige Waffel ---- -subtitle: So wird man von der Waffel satt diff --git a/content/rezept/glasur/contents.lr b/content/rezept/glasur/contents.lr deleted file mode 100644 index f194876..0000000 --- a/content/rezept/glasur/contents.lr +++ /dev/null @@ -1,54 +0,0 @@ -_model: site ---- -title: Waffelbelag ---- -body: - -Natürlich schmeckt die Waffel so auch ohne Belag schon richtig gut. -Aber für den Ultimativen Geschmack gibt es einige Zutaten, die sich als sehr leckeren Belag heraus gestellt haben. Aber auch hier sind eurer Kreativität keine Grenzen gesetzt. Mit Waffeln ist echt ziemlich viel Möglich! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Belag
Puderzucker - ein Klassiker
Schlagsahne
Sprühsahne - den wirklich billigen ersatz von Schlagsahne
Speiseeis
Schokostreusel
Honig
Sirup
Apfelmus
Obstsalat
Nutella
Bananen
Zimt
Frischkäse
Chickenwings
- -In manchen Kulturkreisen ist auch "Waffle with chicken" ein sehr beliebtes Essen. Hierfür sollte aber der Zuckeranteil im Teig drastisch reduziert werden. - -Waffelrezepte: ----------------- -normaler Teig -Teig ohne Ei -Veganer Teig -Glutenfreier Teig -Fleischhaltiger Teig - ---- -spruch: Waffeln bitte dick belegen! ---- -subtitle: Mehr Nutelle - mehr gut! diff --git a/content/rezept/gluten/contents.lr b/content/rezept/gluten/contents.lr index efae7e2..f6d0935 100644 --- a/content/rezept/gluten/contents.lr +++ b/content/rezept/gluten/contents.lr @@ -1,21 +1,22 @@ -_model: site +title: Glutenfreier Teig --- -title: Glutenfreie Waffeln +author: L3D --- body: -Menschen mit Glutenunverträglichkeit haben es nicht immer Leicht. Viele Lebensmittel enthalten Gluten. Auch der normale Waffelteig. -Aber das soll uns nicht aufhalten. Bei dieser variante des Glutenfreien Teig ersetzen wir das normale Mehr durch glutenfreies Mehl und fügen noch ein paar Bananen hinzu. +Menschen mit Glutenunverträglichkeit haben es nicht immer so einfach.
+Zum Glück ist es relativ einfach, glutenfreie Waffeln herzustellen. -Wichtig ist noch zu erwähnen, dass wir uns nicht anmaßen können, einen Teig der garantiert 100,00% Glutenfrei ist anzurühren. Aber wir sind stets bemüht Glutenarmen Teig nach folgenden Rezept zu entwerfen und so den Anteil an Gluten nahezu an 0 Prozent zu nähern. +Glutenfreies Mehl gibt es mitlerweile in den meisten Supermärkten. + +Wichtig ist noch zu erwähnen, dass wir uns nicht anmaßen können, einen Teig der garantiert 100,00% Glutenfrei ist anzurühren. Es könnte immer ein hauch gluten in der Luft sein. Aber wir sind stets bemüht glutenarmen Teig nach folgenden Rezept zu entwerfen und so den Anteil an Gluten nahezu an 0 Prozent zu nähern. Außerdem gibt es Backpulver, das auf der packung stehen hat, dass es spuren von gluten enthalten kann. ``` -1 Packung Eiklar (oder 20 Eier) -1-3 Bananen +1 l Vollei-Eiklar (oder ca. 20 Eier) 1 Kg Zucker 1,25 Kg Butter (weich/geschmolzen) -6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver +20-50g Vanillezucker (am besten aus echter Vanille) +3 Pck. Backpulver (oder 1-2 EL voll) 1,5 Liter frische Vollmilch (keine H-Milch) 2 Kg glutenfreies Mehl 2 Flaschen Club-Mate oder Flora Power @@ -23,32 +24,19 @@ etwas (dunklen) Rum eine prise Salz ``` - Zubereitung -============ -Weiche oder geschmolzene Butter mit zerkleinerten oder pürrierten Bananen, Ei und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. - Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. - -Weitere Rezepte: -------------------------- -normaler Waffelteig -Teig ohne Ei -Veganer Teig -Waffelbelag -Fleischhaltiger Teig - -Weitere Informationen: + Zubereitung ----------- -Tipps zur Teigzubereitung -Hygiene +Weiche oder geschmolzene Butter mit zerkleinerten oder pürrierten Bananen, Ei und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. Unter ständigen rühren die weiteren Zutaten hinzugeben. Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. + Wichtig! +---------------- + +Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. --- -spruch: Glutenunverträglichkeit soll dich nicht am Waffeln essen hindern! +number: 88 --- -subtitle: Waffeln für alle! +icon: fas fa-bread-slice +--- +teaser: Glutenfreie Waffeln sind sehr simpel. Einfach das normale Mehl durch glutenfreies Mehl ersetzen. diff --git a/content/rezept/knoblauch/contents.lr b/content/rezept/knoblauch/contents.lr new file mode 100644 index 0000000..565d871 --- /dev/null +++ b/content/rezept/knoblauch/contents.lr @@ -0,0 +1,39 @@ +title: Knoblauch Waffeln +--- +author: L3D +--- +icon: fab fa-apple +--- +number: 42 +--- +teaser: Herzhafte Waffeln erfreuen sich einer immer größeren belibtheit. Und mit Knoblauch... wird es noch besser! +--- +body: + +Waffelteig muss nicht suß sein.
+So erfreuen sich herzhafte Waffeln eine immer größeren beliebtheit. Und Knoblauch... geht immer! + +``` +sehr viel Knoblauch (viel!) +frische Kräuter (oder getrocknet) +1 l Vollei-Eiklar (oder ca. 20 Eier) +kein Zucker +1,25 Kg Butter (weich/geschmolzen) +eine priese Vanillezucker (am besten aus echter Vanille) +3 Pck. Backpulver (oder 1-2 EL voll) +1,5 Liter frische Vollmilch (keine H-Milch) +2 Kg Mehl +2 Flaschen Club-Mate oder Flora Power +etwas (dunklen) Rum +eine sehr großzügige prise (Kräuter-)Salz +``` + + Zubereitung +-------------------- + +Weiche oder geschmolzene Butter mit Ei in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. Unter ständigen rühren die weiteren Zutaten hinzugeben. Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. Teig gerne mit weiteren Gewürzen verfeinern. + + Wichtig! +-------------- + +Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei frischen Kräutern schmeckt der Teig viel besser, wen anstelle keine oder getrocknete Kräutern verwendet, muss man mit geschmacklichen einbußen rechnen. Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. diff --git a/content/rezept/normal/contents.lr b/content/rezept/normal/contents.lr new file mode 100644 index 0000000..309a80f --- /dev/null +++ b/content/rezept/normal/contents.lr @@ -0,0 +1,36 @@ +title: normaler Waffelteig +--- +author: L3D +--- +body: + +Der Standard-Waffelteig des C3WOC ist für einen 10 Liter Eimer optimiert, um auf mittleren und größeren Veranstaltungen den optimalen Waffelzustand zu erreichen! + +``` +1 l Vollei-Eiklar (oder ca. 20 Eier) +1 Kg Zucker +1,25 Kg Butter (weich/geschmolzen) +20-50g Vanillezucker (am besten aus echter Vanille) +3 Pck. Backpulver (oder 1-2 EL voll) +1,5 Liter frische Vollmilch (keine H-Milch) +2 Kg Mehl +2 Flaschen Club-Mate oder Flora Power +etwas (dunklen) Rum +eine prise Salz +``` + + Zubereitung +-------------------- + +Weiche oder geschmolzene Butter mit Ei und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. Unter ständigen rühren die weiteren Zutaten hinzugeben. Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. + + Wichtig! +-------------- + +Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. +--- +icon: fas fa-heart +--- +number: 1337 +--- +teaser: Das standardrezept für süße Waffeln. Nichts besonderes. Dafür ist es aber lecker. diff --git a/content/rezept/ohne-ei/contents.lr b/content/rezept/ohne-ei/contents.lr new file mode 100644 index 0000000..41fe642 --- /dev/null +++ b/content/rezept/ohne-ei/contents.lr @@ -0,0 +1,44 @@ +title: Eifreier Teig +--- +author: L3D +--- +number: 100 +--- +body: + +Ei ist ein wichtiger Bestandteil der Waffel. Das weglassen von Ei bedeutet dabei auch, die Qualität der Waffel zu verändern. Ob das aber dadurch besser oder schlechter wird, muss jeder selber bewerten. Es ist auf jeden Fall ungewöhnlich und anders als normal. + +Der Trick ist, das Ei durch andere Zutaten mit ähnlich bindenden Charakter zu ersetzen. Besonders gut haben sich hier eine Mischung aus Bananen und Apfelmus zusammen mit etwas Ahornsirup bewährt. Aber natürlich wollen wir eure Kreativität nicht einschränken. Probiert es einfach mal aus! + + + Eifreies Waffelrezept +--------------------- + +``` +Eine Bananen +300g Apfelmus (je nach Bananenanteil) +5 EL Ahornsirup +1 Kg Zucker +1,25 Kg Butter (weich/geschmolzen) +20-50g Vanillezucker (am besten aus echter Vanille) +3 Pck. Backpulver (oder 1-2 EL voll) +1,5 Liter frische Vollmilch (keine H-Milch) +2 Kg Mehl +2 Flaschen Club-Mate oder Flora Power +etwas (dunklen) Rum +eine prise Salz +``` + + Zubereitung +--------------------- + +Kleingeschnittene oder Pürrierte Banane zusammen mit dem Apfelmus, zerlassener Butter und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. Unter ständigen rühren die weiteren Zutaten hinzugeben. Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. + + Wichtig! +-------------- + +Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billige H-Milch verwendet wurde oder hochwertige Vollmilch, womöglich direkt vom Bauern seiner Vertrauens. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker. +--- +icon: fas fa-egg +--- +teaser: Das Rezept, mit dem man auch Waffeln ohne Eier zubereiten kann. diff --git a/content/rezept/tipps/contents.lr b/content/rezept/tipps/contents.lr deleted file mode 100644 index 1dfe4a0..0000000 --- a/content/rezept/tipps/contents.lr +++ /dev/null @@ -1,36 +0,0 @@ -_model: site ---- -title: Tipps zur Zubereitung des Teiges ---- -body: - -Das herstellen des Waffelteigs ist eigentlich nicht sonderlich kompliziert. - -Dennoch hat die Erfahrung auf verschiedenen Veranstaltungen gezeigt, dass man einige Dinge beachten sollte - - - Butter --------------- -Kalte Butter eignet sich leider nicht, um daraus waffelfähigen Teig herzustellen. Dafür benötigt man entweder Weiche oder noch besser geschmolzene Butter. -Beim Teig machen sollte man daher stets an einen Topf und eine Herdplatte denken! - - Backpulver ---------------- -Die geringe Menge an Backpulver bei dem Teig ist kein Zufall. Natürlich kann diese etwas variiert werden, aber wenn der Teig mit zu viel Backpulver in einem Eimer darauf wartet verwaffelt zu werden, kann es vorkommen, dass das Backpulver seine Arbeit macht und es so aussieht: - - - - - - - Küchengeräte ------------- -Beim Zubereiten des Teiges sind ordentliche Küchengeräte sehr sinnvoll. -Gerade bei großen 10 Liter eimer sind die kleinen Haushalts-Handrührgeräte nicht zu gebrauchen, da diese nicht bis an den Boden der Schüssel kommen. -Und wenn die Butter weich ist, lässt sich der Teig auch problemlos mit einem Schneebesen mit langen Stil verarbeiten. - - ---- -spruch: Teig machen kann jeder. Aber es sollte schon lecker schmecken. ---- -subtitle: Teig machen ist simpel diff --git a/content/rezept/vegan/contents.lr b/content/rezept/vegan/contents.lr index c32d204..1b97904 100644 --- a/content/rezept/vegan/contents.lr +++ b/content/rezept/vegan/contents.lr @@ -1,19 +1,24 @@ -_model: site +title: vegane Waffeln --- -title: Veganer Teig +author: L3D --- body: -Es mag seltsam klingen, aber vegane Waffeln sind kein Hexenwerk. Der Trick ist, anstelle des Ei eine Mischung aus Bananen und Apfelmus zu nehmen. Außerdem eignet sich Mandel- oder Hafermilch als sehr guter, hochwertiger Ersatz für Kuhmilch. +Es mag seltsam klingen, aber vegane Waffeln sind kein Hexenwerk. Der Trick ist, anstelle des Ei eine pflanzliche alternative zu nehmen. Außerdem eignet sich Mandel- oder Hafermilch als sehr guter, hochwertiger Ersatz für Kuhmilch. Und auch Magarine ohne tierische Anteile kann man in den meisten Läden finden! + +Das komplizierteste ist immer noch das weglassen von Ei. Denn das Ei verleiht den Teig einen extra guten Zusammenhalt, der die Waffel viel einfacher in guter konsistenz zubereiten kann. Die besten erfahrungen haben wir damit gemacht, das Ei durch eine Mischung von Apfelmus, Banane und Ahornsirup zu ersetzen. +Aber Ihr dürft hier natürlich auch gerne experimentieren! + +**Achtung: Das Rezept ist noch nicht ganz ausgereift und klebt mitunter gewaltig im Waffeleisen!** -**Achtung: Das rezept ist noch nicht ganz ausgereift und klebt mitunter gewaltig im Waffeleisen!** ``` -1 Bund Bananen -300-500 g Apfelmus (je nach Bananenmenge) +Eine Bananen +300 g Apfelmus +5 EL Ahornsirup 1 Kg Zucker -1,25 Kg vegane Magerine (weich/geschmolzen) -6 Pck. Vanillezucker (am besten aus echter Vanille) -3 Pck. Backpulver +1,5 Kg vegane Magerine (weich/geschmolzen) +50g (6 Pck.) Vanillezucker (am besten aus echter Vanille) +25g (3 Pck). Backpulver 1,5 Liter Mandel- oder Hafermilch 2 Kg Mehl 2 Flaschen Club-Mate oder Flora Power @@ -22,31 +27,22 @@ eine prise Salz ``` Zubereitung -============ -kleingeschnittene oder pürrierte Banenen zusammen mit weicher oder geschmolzener Magarine und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. -Unter ständigen rühren die weiteren Zutaten hinzugeben. -Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. +------------------- + +kleingeschnittene oder pürrierte Banenen zusammen mit weicher oder geschmolzener Magarine und Zucker in einem 10-Liter Eimer oder einer Schüssel klumpenfrei verrühren. Unter ständigen rühren die weiteren Zutaten hinzugeben. Zu guter letzt den Teig abschmecken und die Zutaten nach Gefühl variieren. +Etwas mehr öl oder Trennfett im Waffeleisen verwenden, da der Teig mitunter gewaltig kleben kann. Wichtig! -=========== -Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billiges Leitungswasser im Teig bei weiten nicht so gut wie Mandel- oder Hafermilch. Ganz abgesehen davon, dass das die grundlegende Konsistenz des Teiges stark verändern würde. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. -Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker und es könnten Waffeln entstehen, die nicht ganz der erhofften Konsistenz entsprechen. - -Weitere Rezepte: -------------------------- -normaler Teig -Teig ohne Ei -Glutenfreier Teig -Waffelbelag -Fleischhaltiger Teig - -Weitere Informationen: ------------ - -Tipps zur Teigzubereitung -Hygiene +----------------- +Die Qualität der Zutaten hat einen hohen Einfluss darauf, wie der Teig schmeckt. Hier ist es stark vorteilhaft, hochwertige Produkte zu verwenden. So schmeckt man, ob billiges Leitungswasser im Teig bei weiten nicht so gut wie Mandel- oder Hafermilch. Ganz abgesehen davon, dass das die grundlegende Konsistenz des Teiges stark verändern würde. Gerade auch bei der Vanille schmeckt der Teig viel besser, wen anstelle billigen Vanillin echter Vanillezucker verwendet wird, der womöglich noch kleine Stücken Vanille enthält. Natürlich funktioniert der Teig auch mit den günstigen Produkten. Er ist dann eben nicht mehr ganz so lecker und es könnten Waffeln entstehen, die nicht ganz der erhofften Konsistenz entsprechen. --- -spruch: Waffeln sind für jeden da. Auch für Menschen mit veganer Ernährung! +icon: fas fa-leaf --- -subtitle: alle nicht-veganen Zutaten ersetzen und Hackfleisch dazugeben! +number: 142 +--- +teaser: + +Die Formel für veganen Waffelteig. +Ganz ohne tierische Produkte wie Milch, Butter oder Eier. +Dafür aber mit Banane und Apfelmus. diff --git a/content/waffel.2.jpg b/content/waffel.2.jpg deleted file mode 100644 index 7975b2f..0000000 --- a/content/waffel.2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1f510782b5296054a1646388ba85cf1ed69ae3576ebac93e222bd2f8159b85b -size 860097 diff --git a/content/waffel.jpg b/content/waffel.jpg deleted file mode 100644 index c0934d2..0000000 --- a/content/waffel.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e1116ae21b5ab04032450f4c986c72840c6d28341c54421ffbccf7f64b6304f9 -size 109485 diff --git a/content/waffeln.ics/contents.lr b/content/waffeln.ics/contents.lr new file mode 100644 index 0000000..bf702c6 --- /dev/null +++ b/content/waffeln.ics/contents.lr @@ -0,0 +1,234 @@ +_template: waffeln.ics +--- +_model: waffeln +--- +title: C3WOC Tourdaten +--- +termine: + +#### termine #### +start: 2019-08-21 00:00:00 Europe/Berlin +---- +ende: 2019-08-25 23:42:23 Europe/Berlin +---- +event: Chaos Communication Camp 2019 +---- +ort: Ziegeleipark Mildenberg +---- +url: https://events.ccc.de/ +---- +description: Chaos Singularity (CoSin) ist ein jährlicher Event des Schweizer Chaos. Der Inhalt erstreckt sich über Technik und Politik zu Kunst und Kultur. +---- +confirmed: yes +#### termine #### +start: 2018-11-23 00:00:00 Europe/Berlin +---- +ende: 2018-11-25 23:42:23 Europe/Berlin +---- +event: GlühPN +---- +ort: HfG/ZKM Karlsruhe +---- +url: https://entropia.de/GPN18,5 +---- +description: Die Glühweinprogrammiernacht, auch GPN18,5, setzt den Schwerpunkt auf Hacken, Lounge und Zusammensein.|Wir wollen versuchen, die Vorzüge von Lounge und Hackcenter in einem zu kombinieren. Ohne großen Aufwand und locker organisiert.|Die Veranstaltung soll auch wie die GPN freien Eintritt haben und durch Spenden eurerseits finanziert werden. Die Veranstaltung findet vom Fr., 23.11.2018 bis So., 25.11.2018 in der HfG statt. +---- +confirmed: yes +#### termine #### +start: 2018-08-25 00:00:00 Europe/Berlin +---- +ende: 2018-08-26 23:42:23 Europe/Berlin +---- +event: FrOSCon +---- +ort: Sankt Augustin +---- +url: https://froscon.de/ +---- +description: Wir wurden eingeladen auf der Froscon Waffeln zu machen. Und es wird cool! +---- +confirmed: yes +#### termine #### +start: 2019-04-19 00:00:00 Europe/Berlin +---- +ende: 2019-04-22 23:42:23 Europe/Berlin +---- +event: Easterhegg 2019 +---- +ort: Wien +---- +url: https://eh19.easterhegg.eu +---- +description: Der Chaos Computer Club Wien freut sich, euch zur Easterhegg 2019 zu Ostern (19.-22.04.2019) nach Wien einladen zu dürfen! Wien ist nicht nur bekannt für Kaffee, Lipizzaner und Sachertorte, sondern auch für den berüchtigten Wiener Schmäh.|Daher ist das Motto für die EH19: Bun Intended! +---- +confirmed: +#### termine #### +start: 2019-05-30 00:00:00 Europe/Berlin +---- +ende: 2019-06-05 23:42:23 Europe/Berlin +---- +event: Gulasch Programier Nach 2019 +---- +ort: HFG und ZKM Karlsruhe +---- +url: https://entropia.de/GPN19 +---- +description: Hacken, Gulasch, Vorträge, Cloud, Tschunk, Workshops, Lounge, Mate, Spaß am Gerät.|Gulaschprogrammiernacht klingt fast wie ein Kochmarathon für schlaflose Informatikstudenten. Was 2002 in einem Karlsruher Kellerraum mit ein paar Technikbegeisterten angefangen hat, ist inzwischen zu einer der größten Veranstaltungen des Chaos Computer Clubs gewachsen. Die Themen sind breit gefächert: Den Kern bilden Hard- und Softwareentwicklung, sowie Datensicherheit. Daneben kommen aber auch Datenschutz, Netzpolitik und viele andere faszinierende Themen zum Zug: Wie kocht man das perfekte Gulasch? Kann man aus Hardwareschrott noch schönen Schmuck basteln? Wie funktioniert eigentlich eine Nähmaschine? Wie fliegt man Raumschiffe? Wo kann ich Waffeln machen...| +---- +confirmed: no +#### termine #### +start: 2019-03-09 14:00:00 Europe/Berlin +---- +ende: 2019-03-10 08:42:23 Europe/Berlin +---- +event: Chilli Eskalations Party +---- +ort: Heilbronn +---- +url: https://c3woc.de/#tourdaten +---- +description: Waffeln! Chilli! Döner!|Was man da alles machen kann...|Nur echt mit Party! +---- +confirmed: yes +#### termine #### +start: 2018-12-27 00:00:00 Europe/Berlin +---- +ende: 2018-12-30 23:42:23 Europe/Berlin +---- +event: 35. Chaos Communication Congress +---- +ort: Leipzig +---- +url: https://events.ccc.de +---- +description: Der Chaos Communication Congress ist ein mehrtägiges, in Deutschland stattfindendes Treffen der internationalen Hackerszene, das vom Chaos Computer Club (CCC) ausgerichtet und organisiert wird. Der Kongress widmet sich in zahlreichen Vorträgen und Workshops technischen und gesellschaftspolitischen Themen. |Außerdem ist er auch L3Ds Geburtstagsparty. Schließlich hat er an Tag 1 Geburtstag.|Lasst uns gemeinsam Waffeln essen und spaß haben! +---- +confirmed: yes +#### termine #### +start: 2018-12-01 09:00:00 Europe/Berlin +---- +ende: 2018-12-01 18:42:23 Europe/Berlin +---- +event: Chaotische Adventsbasar +---- +ort: see-base, Überlingen +---- +url: https://see-base.de/ +---- +description: Waffeln auf dem Basar des Hackerspace! Zusammen mit Mate, Löten, rohrpost und jede menge coolen Menschen! +---- +confirmed: yes +#### termine #### +start: 2018-08-09 00:00:00 Europe/Berlin +---- +ende: 2018-08-12 23:42:23 Europe/Berlin +---- +event: Freifunk Camp +---- +ort: see-base, Überlingen +---- +url: https://ffbsee.de/ +---- +description: Freifunkcamp am Bodensee.|Mit Waffeln \o/| +---- +confirmed: yes +#### termine #### +start: 2018-11-09 00:00:00 Europe/Berlin +---- +ende: 2018-11-11 23:42:23 Europe/Berlin +---- +event: C6 Geekend +---- +ort: Kiel +---- +url: https://c3c3.de +---- +description: Cluster und Waffeln. Was da für synergien entstehen :P +---- +confirmed: yes +#### termine #### +start: 2018-11-17 09:00:00 Europe/Berlin +---- +ende: 2018-11-17 23:42:23 Europe/Berlin +---- +event: Tag der offenen Toolbox Tür +---- +ort: Toolbox Bodensee, Markdorf +---- +url: https://toolbox-bodensee.de +---- +description: Toolbox. Heimat der Waffel. Kommt vorbei! +---- +confirmed: yes +#### termine #### +start: 2019-03-16 14:00:00 Europe/Berlin +---- +ende: 2019-03-16 23:42:23 Europe/Berlin +---- +event: Einweihung Chaostreff Bern +---- +ort: Bern +---- +url: https://www.chaosbern.ch/ +---- +description: Wie am letzten Gettogether bereits angekündigt, haben wir vom Chaostreff Bern neue Räume für einen eigenen Hackerspace gefunden [0].| Jetzt laden wir alle Lebensformen ein zur Einweihung unseres neuen Hackerspaces an der Kyburgstrasse 13. Ausserdem feiern wir zugleich das vierjährige Bestehen des Chaostreff Bern. || Datum: Samstag, 2019-03-16| Zeit: Die Türe öffnen wir um 14 Uhr.| Der Space ist den ganzen Nachmittag hindurch für alle Interessierten geöffnet, am Abend ist open end.| Ort: Kyburgstrasse 13, 3013 Bern, Schweiz ([1]) ||Im Verlauf des Nachmittags und Abends wird es einige kurze Vorträge geben zur Geschichte des Chaostreff Bern, zu unserem neuen Hackerspace und zu unserer Vision des Chaos in Bern. Ausserdem ist ein Abendessen geplant. |Ein Zeitplan wird folgen, wenn wir uns dem Datum nähern, bis dahin gilt: Rettet das Datum! || [0] https://chaostreffbern.ch/found_a_room.html [1]| https://www.openstreetmap.org/?mlat=46.95634&mlon=7.44833#map=19/46.95638/7.44833| +---- +confirmed: yes +#### termine #### +start: 2018-12-13 18:00:00 Europe/Berlin +---- +ende: 2018-12-13 23:42:23 Europe/Berlin +---- +event: Toolbox Weihnachtswaffeln +---- +ort: Toolbox Bodensee, Markdorf +---- +url: https://toolbox-bodensee.de/termine +---- +description: In der Toolbox in Makrdorf gibt es am 13. Dezember ein Weihnachtswaffeln. +---- +confirmed: yes +#### termine #### +start: 2019-06-21 00:00:00 Europe/Berlin +---- +ende: 2019-12-23 23:42:23 Europe/Berlin +---- +event: Chao Party Ulm +---- +ort: Uni Ulm +---- +url: https://chaos-party-ulm.de/ +---- +description: + +Die CPU ist ein kleineres Chaosevent in der Mensa der Uni Ulm für Erfas, ChaosTreffs, Hackerspaces, chaosnahe Menschen und allgemein jede humanuide Lebensform, die sich für die Veranstaltung interessiert. Wir bieten einen großen Raum zum miteinander herumsitzen und zum austauschen über alle erdenklichen Themen. Außerdem gibt es einen kleineren Workshop- und Seminarraum, in dem wir ein Vortragsprogramm organisieren. Da die hardwaretechnische Seite ab und an auf anderen Events etwas zu kurz kommt, gehen unsere Vorträge und Workshops mehr in diese Richtung. +---- +confirmed: yes +#### termine #### +start: 2019-08-10 13:00:00 Europe/Berlin +---- +ende: 2019-08-11 17:23:42 Europe/Berlin +---- +event: FrOSCon +---- +ort: Hochschule Bonn-Rhein-Sieg +---- +url: https://www.froscon.org/ +---- +description: Freie Software und Open Source - das sind die Themen der FrOSCon. |Jedes Jahr im Spätsommer veranstaltet der Fachbereich Informatik der Hochschule Bonn-Rhein-Sieg mit Hilfe des FrOSCon e.V. ein spannendes Programm mit Vorträgen und Workshops für Besucher aller Altersklassen, die Freie Software nutzen, kennenlernen wollen oder selbst entwickeln. | |Natürlich kann das das C3WOC als führende Gruppe von Experten im Open-Source Waffel Business nicht fehlen! +---- +confirmed: +#### termine #### +start: 2019-03-02 13:00:00 Europe/Berlin +---- +ende: 2019-03-02 18:00:00 Europe/Berlin +---- +event: Dönergrill einweihung +---- +ort: Toolbox Bodensee e.V., Markdorf +---- +url: https:/toolbox-bodensee.de/blog/einweihung-des-doenergrill/ +---- +description: Die Toolbox hat einen Dönergrill. Lass uns den mal ausprobieren und Döner waffeln machen! +---- +confirmed: yes diff --git a/databags/navigation.ini b/databags/navigation.ini new file mode 100644 index 0000000..4e39f8c --- /dev/null +++ b/databags/navigation.ini @@ -0,0 +1,22 @@ +;; Hier gibt es die Übersetzungen für die C3WOC Webseiten Navigation + +[de] +home = Start +Blog = Blog +Projekte = Rezepte +Kontakt = Kontakt +Impressum = Impressum +Datenschutz = Datenschutz +xml = als XML-Feed +mitglied = Mitglied werden +Mitgliedschaft = Mitgliedschaft +Anfahrt = Anfahrt +fragen = Häufige Fragen +spenden = Spenden +sprache = Language +German = Deutsch +Englisch = English +falls = if available +show_projekt = Alle Rezepte +default_path = 'en' + diff --git a/databags/translate.ini b/databags/translate.ini index 8a0fd2e..0d1bb4f 100644 --- a/databags/translate.ini +++ b/databags/translate.ini @@ -1,49 +1,22 @@ -# Hier finden sich generische Übersetzungen -# Für die C3WOC Webseite +;; Hier gibt es die Übersetzungen für die C3WOC Webseite [de] -close = Schließen -news = Neuigkeiten -equipment = Equipment -waffledough = Waffelteig -sanitariness = Hygiene -participate = Mitmachen -imprint = Impressum -dataprotection = Datenschutz -c3woc = C3 Waffel Operation Center -destiny = Wir machen Waffeln -we = Wir -love = Waffeln, du auch? -whoami = 'Das C3WOC besteht aus Hackern aus dem Chaosumfeld. Nimm doch mal mit uns Kontakt auf und lass uns zusammen Waffeln machen!' -mail = waffel@c3woc.de -irc = irc.hackint.org/#waffel -webirc = webirc.hackint.org -twitter = @C3WOC -mastodon = @C3WOC@chaos.social -invite = Mach bei uns mit -created = Geschrieben von -read = Weiter lesen +description = Das CCC Waffel Operation Center (C3WOC) ist eine Gruppe von Chaos Computer Club Enthusiasten, die sich dem Genuss und der Produktion von Waffeln zugewand haben... +api_url = /#tourdaten +api_url_open = /hunger/ +api_space = Waffel +api_open = wird gebacken +api_closed = stillstand +api_opening_time = Lust auf Waffeln? Lade uns doch zu einem chaosnahen event bei dir ein! +api_open_text = Es gibt gerade Waffeln! Wo genau? Das erfährst du auf c3woc.de/hunger/ +blog_von = Geschrieben von +blog_am = am +blog_weiter = weiterlesen +xmlfeed = Neues vom C3 Waffel Operation Center +projectfeed = Rezepte des C3WOC +directytlink = Direktlink zum YouTube Video +directlink = Video speichern +projekt_title_start = Dieses Rezept wurde von +projekt_title_ende = rekonstruiert und verbessert. -[en] -close = close -news = News -equipment = Equipment -waffledough = Waffledough -sanitariness = Sanitariness -participate = Participate -imprint = Imprint -dataprotection = Cyber Data Protection -c3woc = C3 Waffle Operation Center -destiny = We make waffles -we = We -love = waffles, you too? -whoami = The c3woc consists of hackers from the environment of the chaos computer club. Please contact us and let us craft some waffles together! -mail = waffle@c3woc.de -irc = irc.hackint.org/#waffel -webirc = webirc.hackint.org -twitter = @C3WOC -mastodon = @C3WOC@chaos.social -invite = Join us -created = Created by -read = Continue reading diff --git a/flowblocks/press_table.ini b/flowblocks/press_table.ini new file mode 100644 index 0000000..f7507b6 --- /dev/null +++ b/flowblocks/press_table.ini @@ -0,0 +1,19 @@ +[block] +name = Text +button_label = [[font]] + +[fields.pub_date] +label = Publication date +type = date +width = 1/4 + +[fields.text] +label = Linkname +type = string +width = 3/4 + +[fields.link] +label = Link +type = url + + diff --git a/flowblocks/image.ini b/flowblocks/pro_img.ini similarity index 100% rename from flowblocks/image.ini rename to flowblocks/pro_img.ini diff --git a/flowblocks/pro_video.ini b/flowblocks/pro_video.ini new file mode 100644 index 0000000..194edc2 --- /dev/null +++ b/flowblocks/pro_video.ini @@ -0,0 +1,33 @@ +[block] +name = Video +button_label = [[Video]] + +# [fields.image] +# label = Bild (Preview) +# type = select +# source = record.attachments.images + +# [fields.video_480] +# label = Video (480p) +# type = select +# source = record.attachments.videos + +# [fields.video_480] +# label = Video (480p) +# type = select +# source = record.attachments.videos + +# [fields.video_720] +# label = Video (720p) +# type = select +# source = record.attachments.videos + +[fields.video] +label = Video +type = select +source = record.attachments.videos + +[fields.video_url] +label = Video ID (Youtube) +type = string + diff --git a/flowblocks/startpage_section.ini b/flowblocks/startpage_section.ini new file mode 100644 index 0000000..c77b4e9 --- /dev/null +++ b/flowblocks/startpage_section.ini @@ -0,0 +1,37 @@ +[block] +name = Abschnitt +button_label = Abschnitt + +[fields.type] +label = Typ +type = select +choices = left, right +choice_labels = Links, Rechts +width = 1/4 + +[fields.header] +label = Überschrift +type = string +width = 3/4 + +[fields.text] +label = Text +type = markdown + +[fields.text2] +label = Text (klein) +type = markdown + +[fields.url_text] +label = Linktext +type = string +width = 1/2 + +[fields.url] +label = Link +type = string +width = 1/2 + +[fields.background] +label = Hintergrundbild +type = string diff --git a/flowblocks/termine.ini b/flowblocks/termine.ini new file mode 100644 index 0000000..98f2339 --- /dev/null +++ b/flowblocks/termine.ini @@ -0,0 +1,31 @@ +[block] +name = Termin +button_label = Termin + +[fields.start] +label = Start des Events [1970-01-23 13:37:23 Europe/Berlin] +type = datetime + +[fields.ende] +label = Ende des Events [1970-01-23 13:37:23 Europe/Berlin] +type = datetime + +[fields.event] +label = Eventname +type = string + +[fields.ort] +label = Veranstaltungsort +type = string + +[fields.url] +label = Link zu weiteren Informationen +type = string + +[fields.description] +label = Beschreibung ( '|' -> New line ) +type = string + +[fields.confirmed] +label = Status: bestätigt? +type = boolean diff --git a/models/blog-post.ini b/models/blog-post.ini index fb03cf1..11eb588 100644 --- a/models/blog-post.ini +++ b/models/blog-post.ini @@ -8,13 +8,18 @@ label = Title type = string size = large +[fields.shorttitle] +label = Title (kurz fürs Menü) +type = string +size = small + [fields.author] label = Author type = string width = 1/2 [fields.twitter_handle] -label = Twitter Handle +label = Mastodon Handle (https://chaos.Social) type = string width = 1/4 addon_label = @ @@ -24,31 +29,37 @@ label = Publication date type = date width = 1/4 -[fields.subtitle] -label = Untertitle -type = string -size = large +[fields.body] +label = Teaser (Website) +type = markdown [fields.xml] -label = RSS-Preview (TXT) (de-only) +label = Teaser (RSS Feed) (TEXT Only) type = text +width = 2/3 [fields.xml_img] -label = RSS-Image (de-only) +label = RSS Feed Image type = select source = record.attachments.images +width = 1/3 -[fields.body] -label = Body +[fields.beitrag] +label = Blogbeitrag type = markdown -[fields.privatebody] -label = Non Public Body -type = markdown +[fields.video_embeded] +label = Video (embedded) +type = flow +flow_blocks = pro_video -[fields.galerie] +[fields.video_is_embeded] +label = Is a Video embeded? +type = boolean +default = false + +[fields.project] label = Galerie type = flow -flow_blocks = image -width = 1/2 +flow_blocks = pro_img diff --git a/models/blog.ini b/models/blog.ini index f685b37..1c6bbfa 100644 --- a/models/blog.ini +++ b/models/blog.ini @@ -4,13 +4,20 @@ label = Blog hidden = yes [fields.title] -label = Blog +label = Title type = string -name = Blog -[fields.sub_title] -label = Untertitel -type = html +[fields.description] +label = Description +type = text + +[fields.spruch] +label = Werbespruch +type = string + +[fields.link] +label = RSS Feed +type = string [children] model = blog-post @@ -18,4 +25,4 @@ order_by = -pub_date, title [pagination] enabled = yes -per_page = 7 +per_page = 10 diff --git a/models/kalender.ini b/models/kalender.ini new file mode 100644 index 0000000..bfc197c --- /dev/null +++ b/models/kalender.ini @@ -0,0 +1,45 @@ +[model] +name = Kalender +label = {{ this.title }} +protected = yes +hidden = yes + +;----------- + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan + +[fields.ics] +label = Beschriftung ICS Datei +width = 1/2 +type = string + +[fields.ics_url] +label = Link zur ICS Kalenderdatei +width = 1/2 +type = url + +[fields.web] +label = Beschriftung Kalender-Webansicht +width = 1/2 +type = string + +[fields.web_url] +label = Link zur Kalender-Webansicht +width = 1/2 +type = url + +[fields.kalender_id] +label = Nextcloud-Kalender-ID +type = string + +[fields.content] +label = Seiteninhalt +type = markdown + diff --git a/models/material.ini b/models/material.ini deleted file mode 100644 index 83dd813..0000000 --- a/models/material.ini +++ /dev/null @@ -1,19 +0,0 @@ -[model] -name = Material (material.html) -label = {{ this.title }} - -[fields.title] -label = Title -type = string - -[fields.spruch] -label = Spruch -type = markdown - -[fields.subtitle] -label = Subtitle -type = string - -[fields.body] -label = Body -type = markdown diff --git a/models/page.ini b/models/page.ini index ed6fe5b..4a9d5c4 100644 --- a/models/page.ini +++ b/models/page.ini @@ -1,97 +1,25 @@ [model] -name = Home (page.html) +name = mormale Seite label = {{ this.title }} +protected = yes + +;------------------------------ [fields.title] -label = Title +label = Titel +addon_label = [[header]] +size = large type = string -#---------------------- - -[fields.as01h1] -label = Überschrift #1 +[fields.slogan] +label = Start-Slogan type = string -[fields.as01b1] -label = Body #1 +[fields.teaser] +label = Kurz umrissen: Was siehtg man hier? +type = text + +[fields.content] +label = Seiteninhalt type = markdown -[fields.as01l1] -label = Link #1 -type = string -width = 1/2 - -[fields.as01d1] -label = Description #1 -type = string -width = 1/2 - -[fields.as01img] -label = Bild #1 -> [276] x [276] -type = select -source = record.attachments.images - -#------------------------- - -[fields.as02h1] -label = Überschrift #2 -type = string - -[fields.as02b1] -label = Body #2 -type = markdown - -[fields.as02l1] -label = Link #2 -type = string -width = 1/2 - -[fields.as02d1] -label = Description #2 -type = string -width = 1/2 - -[fields.as02img] -label = Bild #2 -> [276] x [276] -type = select -source = record.attachments.images - -#----------------------- - -[fields.as03h1] -label = Überschrift #3 -type = string - -[fields.as03b1] -label = Body #3 -type = markdown - -[fields.as03l1] -label = Link #3 -type = string -width = 1/2 - -[fields.as03d1] -label = Description #3 -type = string -width = 1/2 - -[fields.as03img] -label = Bild #3 -> [276] x [276] -type = select -source = record.attachments.images - -#-------------------------- - -[fields.where] -label = Unten -type = markdown - -[fields.description] -label = Body -type = markdown - -[fields.tour] -label = Tourdaten -type = html - diff --git a/models/presse.ini b/models/presse.ini new file mode 100644 index 0000000..37ce287 --- /dev/null +++ b/models/presse.ini @@ -0,0 +1,72 @@ +[model] +name = Linksammlung +label = {{ this.title }} +protected = yes + +;------------------------------ + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan +type = string + +[fields.teaser] +label = Kurz umrissen: Was siehtg man hier? +type = text + +[fields.p1] +label = Überschrift 1. Tabelle +type = string + +[fields.press_1] +label = 1. Tabelle +type = flow +flow_blocks = press_table + +[fields.p2] +label = Überschrift 2. Tabelle +type = string + +[fields.press_2] +label = 2. Tabelle +type = flow +flow_blocks = press_table + + +[fields.p3] +label = Überschrift 3. Tabelle +type = string + +[fields.press_3] +label = 3. Tabelle +type = flow +flow_blocks = press_table + +[fields.p4] +label = Überschrift 4. Tabelle +type = string + +[fields.press_4] +label = 4. Tabelle +type = flow +flow_blocks = press_table + + +[fields.p5] +label = Überschrift 5. Tabelle +type = string + +[fields.press_5] +label = 5. Tabelle +type = flow +flow_blocks = press_table + +[fields.content] +label = Seiteninhalt +type = markdown + diff --git a/models/projekt-post.ini b/models/projekt-post.ini new file mode 100644 index 0000000..6db4b29 --- /dev/null +++ b/models/projekt-post.ini @@ -0,0 +1,52 @@ +[model] +name = Einzelnes Projekt +label = {{ this.title }} +hidden = yes + +[fields.title] +label = Title (bitte kurz halten) +type = string +size = large + +[fields.icon] +label = Font-Awesome Icon [fas fa-heart] +type = string + +[fields.author] +label = Author [für den Feed] +type = string +width = 1/2 + +[fields.number] +label = Priorität [benötigt zum sortieren] +type = integer +width = 1/4 + +[fields.teaser] +label = Teaser (TEXT) +type = text + +[fields.body] +label = Projektseite (Markdown) +type = markdown + +[fields.video_embeded] +label = Video (embedded) +type = flow +flow_blocks = pro_video + +[fields.video_is_embeded] +label = Is a YT-Video embeded? +type = boolean +default = false + +[fields.project] +label = Galerie +type = flow +flow_blocks = pro_img + +[fields.xml_img] +label = RSS Feed Vorschaubild +type = select +source = record.attachments.images + diff --git a/models/projekte.ini b/models/projekte.ini new file mode 100644 index 0000000..36302f3 --- /dev/null +++ b/models/projekte.ini @@ -0,0 +1,49 @@ +[model] +name = Rezepte +label = Rezepte +hidden = yes + +[fields.title] +label = Title +type = string + +[fields.description] +label = Description +type = text + +[fields.begruessung] +label = Begrüßungstext +type = markdown + +[fields.title2] +label = Title nach Begruessung +type = string + +[fields.description2] +label = Description nach Begruessung +type = markdown + +[fields.link] +label = RSS Feed +type = string + +[fields.abo] +label = Abonnieren +type = string + +[fields.trailer] +label = Last part of the site +type = markdown + +[children] +model = projekt-post +order_by = -number, title + +[pagination] +enabled = yes +per_page = 9 + +[fields.desc] +label = HTML HEAD Description +type = string + diff --git a/models/site.ini b/models/site.ini deleted file mode 100644 index 6452dcf..0000000 --- a/models/site.ini +++ /dev/null @@ -1,19 +0,0 @@ -[model] -name = Seiten (site.html) -label = {{ this.title }} - -[fields.title] -label = Title -type = string - -[fields.spruch] -label = Spruch -type = markdown - -[fields.subtitle] -label = Subtitle -type = string - -[fields.body] -label = Body -type = markdown diff --git a/models/start.ini b/models/start.ini new file mode 100644 index 0000000..2f8e714 --- /dev/null +++ b/models/start.ini @@ -0,0 +1,250 @@ +[model] +name = Startseite +label = {{ this.title }} +protected = yes + +;------------------------------ + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan +type = string + +[fields.hinweis] +label = Start-Hinweis +type = string + +[fields.hinweis_txt] +label = Start-Hinweis-Linktext +type = string + +[fields.hinweis_url] +label = Start-Hinweis-URL +type = string + +;------------------------------ + +[fields.about_header] +label = 1. Abschnitt: Überschrift +type = string + +[fields.about_background] +label = 1. Abschnitt: Pfad_Hintergrund +type = string +default = "/images/home/abschnitt1.jpeg" + +[fields.about_text] +label = 1. Abschnitt: Text 1/3 +type = markdown + +[fields.about_text2] +label = 1. Abschnitt: Text 2/3 +type = markdown + + +[fields.about_text3] +label = 1. Abschnitt: Text 3/3 +type = markdown + + +[fields.about_url] +label = 1. Abschnitt: Link-Text +type = string +choices = left +width = 1/2 + +[fields.about_url2] +label = 1. Abschnitt: Link +type = string +choices = right +width = 1/2 + + +[fields.sections] +label = Abschnitte +type = flow +flow_blocks = startpage_section + + +;----------------------------- + +[fields.icons_header] +label = 4. Abschnitt: Überschrift +type = string + +[fields.icons_text] +label = 4. Abschnitt: Text +type = markdown + +[fields.render_tourdaten] +label = Render Termine? +default = false +type = boolean + +[fields.icons_header_2] +label = 4. Abschnitt: Überschrift (nach tourdaten) +type = string + +[fields.icons_text_2] +label = 4. Abschnitt: Text (nach tourdaten) +type = markdown + + +[fields.icons_1_1] +label = 1. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_1_2] +label = 1. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_1_3] +label = 1. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_1_url] +label = 1. Icon: URL +type = string +width = 1/3 + +[fields.icons_2_1] +label = 2. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_2_2] +label = 2. Icon: Überschrifgt +type = string +width = 2/3 + +[fields.icons_2_3] +label = 2. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_2_url] +label = 2. Icon: URL +type = string +width = 1/3 + +[fields.icons_3_1] +label = 3. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_3_2] +label = 3. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_3_3] +label = 3. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_3_url] +label = 3. Icon: URL +type = string +width = 1/3 + +[fields.icons_4_1] +label = 4. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_4_2] +label = 4. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_4_3] +label = 4. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_4_url] +label = 4. Icon: URL +type = string +width = 1/3 + +[fields.icons_5_1] +label = 5. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_5_2] +label = 5. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_5_3] +label = 5. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_5_url] +label = 5. Icon: URL +type = string +width = 1/3 + +[fields.icons_6_1] +label = 6. Icon: Font Awesome +type = string +width = 1/3 + +[fields.icons_6_2] +label = 6. Icon: Überschrift +type = string +width = 2/3 + +[fields.icons_6_3] +label = 6. Icon: Beschreibung +type = markdown +width = 2/3 + +[fields.icons_6_url] +label = 6. Icon: URL +type = string +width = 1/3 + +[fields.icons_url] +label = Icon: URL +type = string +width = 1/2 + +[fields.icons_txt] +label = Icon: URL Text +type = string +width = 1/2 + +;--------------------- + +[fields.red_1] +label = Letzter Abschnitt: Überschrift +type = string + +[fields.red_2] +label = Letzter Abschnitt: Beschreibung +type = markdown + + +[fields.red_3] +label = Letzter Abschnitt: klein +type = markdown + + +[fields.red_4] +label = Letzter Abschnitt: Groß +type = string + + + + diff --git a/models/vereinsheim.ini b/models/vereinsheim.ini new file mode 100644 index 0000000..48fd1a1 --- /dev/null +++ b/models/vereinsheim.ini @@ -0,0 +1,34 @@ +[model] +name = Vereinsheim mit Karte +label = {{ this.title }} +protected = yes + +;------------------------------ + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + +[fields.slogan] +label = Start-Slogan +type = string + +[fields.teaser] +label = Kurz umrissen: Was siehtg man hier? +type = text + +[fields.precontent] +label = Seiteninhalt vor der Map +type = markdown + +[fields.content] +label = Seiteninhalt nach der Map +type = markdown + +[fields.project] +label = Galerie +type = flow +flow_blocks = pro_img + diff --git a/models/waffeln.ini b/models/waffeln.ini new file mode 100644 index 0000000..97de2ad --- /dev/null +++ b/models/waffeln.ini @@ -0,0 +1,20 @@ +[model] +name = ICS Feed +label = {{ this.title }} +protected = yes +hidden = yes + +;----------- + +[fields.title] +label = Titel +addon_label = [[header]] +size = large +type = string + + +[fields.termine] +label = Termine +type = flow +flow_blocks = termine + diff --git a/style.min.css b/style.min.css new file mode 100644 index 0000000..9e1ac2f --- /dev/null +++ b/style.min.css @@ -0,0 +1 @@ +@import url(../css/font-awesome.min.css);@import url(../fonts/roboto.css);@import url(https://toolbox-bodensee.de/css/spacestatus.css);*,.row,::after,::before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.row.\30 \25>*,.row.uniform.\30 \25>*{padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,pre code,section{display:block}.col-2,.col-3,.col-4,.col-5{column-gap:1vw}#scroll-1{background-image:url(../images/home/abschnitt1.jpeg)}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;font:inherit;vertical-align:baseline}blockquote,em,i{font-style:italic}blockquote,q{quotes:none}blockquote::after,blockquote::before,q::after,q::before{content:'';content:none}body{-webkit-text-size-adjust:none}*,::after,::before{box-sizing:border-box}.container.\31 25\25{width:100%;max-width:87.5em;min-width:70em}.container.\37 5\25{width:52.5em}.container.\35 0\25{width:35em}.container.\32 5\25{width:17.5em}.container{margin-left:auto;margin-right:auto;width:70em}@media screen and (max-width:1680px){.container.\31 25\25{width:100%;max-width:87.5em;min-width:70em}.container.\37 5\25{width:52.5em}.container.\35 0\25{width:35em}.container.\32 5\25{width:17.5em}.container{width:70em}}@media screen and (max-width:1280px){.container.\31 25\25{width:100%;max-width:112.5%;min-width:90%}.container.\37 5\25{width:67.5%}.container.\35 0\25{width:45%}.container.\32 5\25{width:22.5%}.container{width:90%}}@media screen and (max-width:980px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}@media screen and (max-width:933px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}@media screen and (max-width:480px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}.row{border-bottom:solid 1px transparent;box-sizing:border-box}.row::after,.row::before{content:'';display:block;clear:both;height:0}.row.uniform>*>:first-child{margin-top:0}.row.uniform>*>:last-child{margin-bottom:0}.row.\30 \25,.row.uniform.\30 \25{margin:0 0 -1px}.row>*{float:left;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 0u,.\31 0u\24,.\31 1u,.\31 1u\24,.\31 2u,.\31 2u\24,.\31 u,.\31 u\24,.\32 u,.\32 u\24,.\33 u,.\33 u\24,.\34 u,.\34 u\24,.\35 u,.\35 u\24,.\36 u,.\36 u\24,.\38 u,.\38 u\24,.\39 u,.\39 u\24{clear:none;margin-left:0}.\31 2u,.\31 2u\24{width:100%}.\31 1u,.\31 1u\24{width:91.6666666667%}.\31 0u,.\31 0u\24{width:83.3333333333%}.\39 u,.\39 u\24{width:75%}.\38 u,.\38 u\24{width:66.6666666667%}.\37 u,.\37 u\24{width:58.3333333333%;clear:none;margin-left:0}.\36 u,.\36 u\24{width:50%}.\35 u,.\35 u\24{width:41.6666666667%}.\34 u,.\34 u\24{width:33.3333333333%}.\33 u,.\33 u\24{width:25%}.\32 u,.\32 u\24{width:16.6666666667%}.\31 u,.\31 u\24{width:8.3333333333%}.\31 0u\24 *,.\31 1u\24 *,.\31 2u\24 *,.\31 u\24 *,.\32 u\24 *,.\33 u\24 *,.\34 u\24 *,.\35 u\24 *,.\36 u\24 *,.\37 u\24 *,.\38 u\24 *,.\39 u\24 *{clear:left}.\-11u{margin-left:91.6666666667%}.\-10u{margin-left:83.3333333333%}.\-9u{margin-left:75%}.\-8u{margin-left:66.6666666667%}.\-7u{margin-left:58.3333333333%}.\-6u{margin-left:50%}.\-5u{margin-left:41.6666666667%}.\-4u{margin-left:33.3333333333%}.\-3u{margin-left:25%}.\-2u{margin-left:16.6666666667%}.\-1u{margin-left:8.3333333333%}@media screen and (max-width:1680px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28xlarge\29,.\31 2u\28xlarge\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28xlarge\29,.\31 1u\28xlarge\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28xlarge\29,.\31 0u\28xlarge\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28xlarge\29,.\39 u\28xlarge\29{width:75%;clear:none;margin-left:0}.\38 u\24\28xlarge\29,.\38 u\28xlarge\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28xlarge\29,.\37 u\28xlarge\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28xlarge\29,.\36 u\28xlarge\29{width:50%;clear:none;margin-left:0}.\35 u\24\28xlarge\29,.\35 u\28xlarge\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28xlarge\29,.\34 u\28xlarge\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28xlarge\29,.\33 u\28xlarge\29{width:25%;clear:none;margin-left:0}.\32 u\24\28xlarge\29,.\32 u\28xlarge\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28xlarge\29,.\31 u\28xlarge\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28xlarge\29 *,.\31 1u\24\28xlarge\29 *,.\31 2u\24\28xlarge\29 *,.\31 u\24\28xlarge\29 *,.\32 u\24\28xlarge\29 *,.\33 u\24\28xlarge\29 *,.\34 u\24\28xlarge\29 *,.\35 u\24\28xlarge\29 *,.\36 u\24\28xlarge\29 *,.\37 u\24\28xlarge\29 *,.\38 u\24\28xlarge\29 *,.\39 u\24\28xlarge\29 *{clear:left}.\-11u\28xlarge\29{margin-left:91.6666666667%}.\-10u\28xlarge\29{margin-left:83.3333333333%}.\-9u\28xlarge\29{margin-left:75%}.\-8u\28xlarge\29{margin-left:66.6666666667%}.\-7u\28xlarge\29{margin-left:58.3333333333%}.\-6u\28xlarge\29{margin-left:50%}.\-5u\28xlarge\29{margin-left:41.6666666667%}.\-4u\28xlarge\29{margin-left:33.3333333333%}.\-3u\28xlarge\29{margin-left:25%}.\-2u\28xlarge\29{margin-left:16.6666666667%}.\-1u\28xlarge\29{margin-left:8.3333333333%}}@media screen and (max-width:1280px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28large\29,.\31 2u\28large\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28large\29,.\31 1u\28large\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28large\29,.\31 0u\28large\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28large\29,.\39 u\28large\29{width:75%;clear:none;margin-left:0}.\38 u\24\28large\29,.\38 u\28large\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28large\29,.\37 u\28large\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28large\29,.\36 u\28large\29{width:50%;clear:none;margin-left:0}.\35 u\24\28large\29,.\35 u\28large\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28large\29,.\34 u\28large\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28large\29,.\33 u\28large\29{width:25%;clear:none;margin-left:0}.\32 u\24\28large\29,.\32 u\28large\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28large\29,.\31 u\28large\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28large\29 *,.\31 1u\24\28large\29 *,.\31 2u\24\28large\29 *,.\31 u\24\28large\29 *,.\32 u\24\28large\29 *,.\33 u\24\28large\29 *,.\34 u\24\28large\29 *,.\35 u\24\28large\29 *,.\36 u\24\28large\29 *,.\37 u\24\28large\29 *,.\38 u\24\28large\29 *,.\39 u\24\28large\29 *{clear:left}.\-11u\28large\29{margin-left:91.6666666667%}.\-10u\28large\29{margin-left:83.3333333333%}.\-9u\28large\29{margin-left:75%}.\-8u\28large\29{margin-left:66.6666666667%}.\-7u\28large\29{margin-left:58.3333333333%}.\-6u\28large\29{margin-left:50%}.\-5u\28large\29{margin-left:41.6666666667%}.\-4u\28large\29{margin-left:33.3333333333%}.\-3u\28large\29{margin-left:25%}.\-2u\28large\29{margin-left:16.6666666667%}.\-1u\28large\29{margin-left:8.3333333333%}}@media screen and (max-width:980px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28medium\29,.\31 2u\28medium\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28medium\29,.\31 1u\28medium\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28medium\29,.\31 0u\28medium\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28medium\29,.\39 u\28medium\29{width:75%;clear:none;margin-left:0}.\38 u\24\28medium\29,.\38 u\28medium\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28medium\29,.\37 u\28medium\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28medium\29,.\36 u\28medium\29{width:50%;clear:none;margin-left:0}.\35 u\24\28medium\29,.\35 u\28medium\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28medium\29,.\34 u\28medium\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28medium\29,.\33 u\28medium\29{width:25%;clear:none;margin-left:0}.\32 u\24\28medium\29,.\32 u\28medium\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28medium\29,.\31 u\28medium\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28medium\29 *,.\31 1u\24\28medium\29 *,.\31 2u\24\28medium\29 *,.\31 u\24\28medium\29 *,.\32 u\24\28medium\29 *,.\33 u\24\28medium\29 *,.\34 u\24\28medium\29 *,.\35 u\24\28medium\29 *,.\36 u\24\28medium\29 *,.\37 u\24\28medium\29 *,.\38 u\24\28medium\29 *,.\39 u\24\28medium\29 *{clear:left}.\-11u\28medium\29{margin-left:91.6666666667%}.\-10u\28medium\29{margin-left:83.3333333333%}.\-9u\28medium\29{margin-left:75%}.\-8u\28medium\29{margin-left:66.6666666667%}.\-7u\28medium\29{margin-left:58.3333333333%}.\-6u\28medium\29{margin-left:50%}.\-5u\28medium\29{margin-left:41.6666666667%}.\-4u\28medium\29{margin-left:33.3333333333%}.\-3u\28medium\29{margin-left:25%}.\-2u\28medium\29{margin-left:16.6666666667%}.\-1u\28medium\29{margin-left:8.3333333333%}}@media screen and (max-width:933px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28small\29,.\31 2u\28small\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28small\29,.\31 1u\28small\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28small\29,.\31 0u\28small\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28small\29,.\39 u\28small\29{width:75%;clear:none;margin-left:0}.\38 u\24\28small\29,.\38 u\28small\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28small\29,.\37 u\28small\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28small\29,.\36 u\28small\29{width:50%;clear:none;margin-left:0}.\35 u\24\28small\29,.\35 u\28small\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28small\29,.\34 u\28small\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28small\29,.\33 u\28small\29{width:25%;clear:none;margin-left:0}.\32 u\24\28small\29,.\32 u\28small\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28small\29,.\31 u\28small\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28small\29 *,.\31 1u\24\28small\29 *,.\31 2u\24\28small\29 *,.\31 u\24\28small\29 *,.\32 u\24\28small\29 *,.\33 u\24\28small\29 *,.\34 u\24\28small\29 *,.\35 u\24\28small\29 *,.\36 u\24\28small\29 *,.\37 u\24\28small\29 *,.\38 u\24\28small\29 *,.\39 u\24\28small\29 *{clear:left}.\-11u\28small\29{margin-left:91.6666666667%}.\-10u\28small\29{margin-left:83.3333333333%}.\-9u\28small\29{margin-left:75%}.\-8u\28small\29{margin-left:66.6666666667%}.\-7u\28small\29{margin-left:58.3333333333%}.\-6u\28small\29{margin-left:50%}.\-5u\28small\29{margin-left:41.6666666667%}.\-4u\28small\29{margin-left:33.3333333333%}.\-3u\28small\29{margin-left:25%}.\-2u\28small\29{margin-left:16.6666666667%}.\-1u\28small\29{margin-left:8.3333333333%}}@media screen and (max-width:480px){.row>*{padding:0 0 0 2.5em}.row{margin:0 0 -1px -2.5em}.row.uniform>*{padding:2.5em 0 0 2.5em}.row.uniform{margin:-2.5em 0 -1px -2.5em}.row.\32 00\25>*{padding:0 0 0 5em}.row.\32 00\25{margin:0 0 -1px -5em}.row.uniform.\32 00\25>*{padding:5em 0 0 5em}.row.uniform.\32 00\25{margin:-5em 0 -1px -5em}.row.\31 50\25>*{padding:0 0 0 3.75em}.row.\31 50\25{margin:0 0 -1px -3.75em}.row.uniform.\31 50\25>*{padding:3.75em 0 0 3.75em}.row.uniform.\31 50\25{margin:-3.75em 0 -1px -3.75em}.row.\35 0\25>*{padding:0 0 0 1.25em}.row.\35 0\25{margin:0 0 -1px -1.25em}.row.uniform.\35 0\25>*{padding:1.25em 0 0 1.25em}.row.uniform.\35 0\25{margin:-1.25em 0 -1px -1.25em}.row.\32 5\25>*{padding:0 0 0 .625em}.row.\32 5\25{margin:0 0 -1px -.625em}.row.uniform.\32 5\25>*{padding:.625em 0 0 .625em}.row.uniform.\32 5\25{margin:-.625em 0 -1px -.625em}.\31 2u\24\28xsmall\29,.\31 2u\28xsmall\29{width:100%;clear:none;margin-left:0}.\31 1u\24\28xsmall\29,.\31 1u\28xsmall\29{width:91.6666666667%;clear:none;margin-left:0}.\31 0u\24\28xsmall\29,.\31 0u\28xsmall\29{width:83.3333333333%;clear:none;margin-left:0}.\39 u\24\28xsmall\29,.\39 u\28xsmall\29{width:75%;clear:none;margin-left:0}.\38 u\24\28xsmall\29,.\38 u\28xsmall\29{width:66.6666666667%;clear:none;margin-left:0}.\37 u\24\28xsmall\29,.\37 u\28xsmall\29{width:58.3333333333%;clear:none;margin-left:0}.\36 u\24\28xsmall\29,.\36 u\28xsmall\29{width:50%;clear:none;margin-left:0}.\35 u\24\28xsmall\29,.\35 u\28xsmall\29{width:41.6666666667%;clear:none;margin-left:0}.\34 u\24\28xsmall\29,.\34 u\28xsmall\29{width:33.3333333333%;clear:none;margin-left:0}.\33 u\24\28xsmall\29,.\33 u\28xsmall\29{width:25%;clear:none;margin-left:0}.\32 u\24\28xsmall\29,.\32 u\28xsmall\29{width:16.6666666667%;clear:none;margin-left:0}.\31 u\24\28xsmall\29,.\31 u\28xsmall\29{width:8.3333333333%;clear:none;margin-left:0}.\31 0u\24\28xsmall\29 *,.\31 1u\24\28xsmall\29 *,.\31 2u\24\28xsmall\29 *,.\31 u\24\28xsmall\29 *,.\32 u\24\28xsmall\29 *,.\33 u\24\28xsmall\29 *,.\34 u\24\28xsmall\29 *,.\35 u\24\28xsmall\29 *,.\36 u\24\28xsmall\29 *,.\37 u\24\28xsmall\29 *,.\38 u\24\28xsmall\29 *,.\39 u\24\28xsmall\29 *{clear:left}.\-11u\28xsmall\29{margin-left:91.6666666667%}.\-10u\28xsmall\29{margin-left:83.3333333333%}.\-9u\28xsmall\29{margin-left:75%}.\-8u\28xsmall\29{margin-left:66.6666666667%}.\-7u\28xsmall\29{margin-left:58.3333333333%}.\-6u\28xsmall\29{margin-left:50%}.\-5u\28xsmall\29{margin-left:41.6666666667%}.\-4u\28xsmall\29{margin-left:33.3333333333%}.\-3u\28xsmall\29{margin-left:25%}.\-2u\28xsmall\29{margin-left:16.6666666667%}.\-1u\28xsmall\29{margin-left:8.3333333333%}}body,html{background:#1c1d26}body.is-loading *,body.is-loading ::after,body.is-loading ::before{-moz-animation:none!important;-webkit-animation:none!important;-ms-animation:none!important;animation:none!important;-moz-transition:none!important;-webkit-transition:none!important;-ms-transition:none!important;transition:none!important}body,input,select,textarea{color:rgba(255,255,255,.75);font-family:Roboto,Helvetica,sans-serif;font-size:15pt;font-weight:300;line-height:1.75em}b,h1,h2,h3,h4,h5,h6,strong{color:#fff;font-weight:400}@media (max-width:1680px){body,input,select,textarea{font-size:13pt}}@media (max-width:1280px){body,input,select,textarea{font-size:12pt}}@media (max-width:980px){body,input,select,textarea{font-size:12pt}}@media (max-width:933px){body,html{overflow-x:hidden}body.navPanel-visible #page-wrapper,body.navPanel-visible #titleBar{-moz-transform:translateX(275px);-webkit-transform:translateX(275px);-ms-transform:translateX(275px);transform:translateX(275px)}body.navPanel-visible #navPanel{-moz-transform:translateX(0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}body,input,select,textarea{font-size:12pt}}@media (max-width:480px){body,html{min-width:320px}body,input,select,textarea{font-size:12pt}}a{-moz-transition:border-color .2s ease-in-out,color .2s ease-in-out;-webkit-transition:border-color .2s ease-in-out,color .2s ease-in-out;-ms-transition:border-color .2s ease-in-out,color .2s ease-in-out;transition:border-color .2s ease-in-out,color .2s ease-in-out;color:rgba(200,200,255,.75);text-decoration:none}a:hover{color:#E64F2D!important;border-bottom-color:transparent}p{margin:0 0 2em}h1,h2,h3,h4,h5,h6{line-height:1em;margin:0 0 1em}h2,h3,h4,h5,h6{line-height:1.5em}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;border:0}h2{font-size:2em;letter-spacing:-.025em}@media (max-width:933px){h2{font-size:1.5em}}h3{font-size:1.35em}@media (max-width:933px){h3{font-size:1.2em}}h4{font-size:1.1em}@media (max-width:933px){h4{font-size:1em}}h5{font-size:.9em}h6{font-size:.7em}sub,sup{font-size:.8em;position:relative}sub{top:.5em}sup{top:-.5em}code,pre{font-family:"Courier New",monospace;font-size:.9em}hr{border:0;border-bottom:solid 1px rgba(255,255,255,.3);margin:3em 0}hr.major{margin:4em 0}blockquote,pre{margin:0 0 2em}blockquote{border-left:solid 4px rgba(255,255,255,.3);padding:.5em 0 .5em 2em}#footer .icons .icon.alt:before,.icon.alt:before,.icon.major.alt:before,.icon:before,.select-wrapper:before,body.landing:before,input[type=radio] label:before,input[type=checkbox] label:before{font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none!important}code{background:rgba(255,255,255,.075);border-radius:4px;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch}pre code{line-height:1.75em;padding:1em 1.5em;overflow-x:auto}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.icon.major,.select-wrapper::before,article.special,body.landing::before,header.major,section.special{text-align:center}@-moz-keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@-ms-keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@keyframes spinner-show{0%{opacity:0}100%{opacity:1}}@-moz-keyframes spinner-hide{0%{color:rgba(255,255,255,.15);z-index:100001;-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@-webkit-keyframes spinner-hide{0%{color:rgba(255,255,255,.15);z-index:100001;-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@-ms-keyframes spinner-hide{0%,99%{z-index:100001}100%,99%{color:#1c1d26}0%{color:rgba(255,255,255,.15);-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@keyframes spinner-hide{0%{color:rgba(255,255,255,.15);z-index:100001;-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}99%{color:#1c1d26;z-index:100001;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}100%{color:#1c1d26;z-index:-1;-moz-transform:scale(.5) rotate(360deg);-webkit-transform:scale(.5) rotate(360deg);-ms-transform:scale(.5) rotate(360deg);transform:scale(.5) rotate(360deg)}}@-moz-keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@-webkit-keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@-ms-keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@keyframes spinner-rotate{0%{-moz-transform:scale(1) rotate(0);-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}100%{-moz-transform:scale(1) rotate(360deg);-webkit-transform:scale(1) rotate(360deg);-ms-transform:scale(1) rotate(360deg);transform:scale(1) rotate(360deg)}}@-moz-keyframes overlay-hide{0%,15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}}@-webkit-keyframes overlay-hide{0%,15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}}@-ms-keyframes overlay-hide{0%,15%,99%{z-index:100000}100%,99%{opacity:0}0%,15%{opacity:1}100%{z-index:-1}}@keyframes overlay-hide{0%,15%{opacity:1;z-index:100000}99%{opacity:0;z-index:100000}100%{opacity:0;z-index:-1}}body.landing{text-decoration:none}body.landing:before{display:inline-block}body.landing::after,body.landing::before{display:block;opacity:0;z-index:-1;position:fixed}body.landing::before{-moz-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;-webkit-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;-ms-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;animation:spinner-show 1.5s 1 .25s ease forwards,spinner-hide .25s ease-in-out forwards!important;-moz-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;color:rgba(255,255,255,.15);content:'\f1ce';cursor:default;font-family:"Font Awesome 5 Free";font-size:2em;font-weight:900;height:2em;left:50%;line-height:2em;margin:-1em 0 0 -1em;top:50%;width:2em}body.landing::after,header.major::after{content:''}body.landing::after{-moz-animation:overlay-hide .5s ease-in forwards!important;-webkit-animation:overlay-hide .5s ease-in forwards!important;-ms-animation:overlay-hide .5s ease-in forwards!important;animation:overlay-hide .5s ease-in forwards!important;background:#1c1d26;height:100%;left:0;top:0;width:100%}body.landing.is-loading::before{-moz-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;-webkit-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;-ms-animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;animation:spinner-show 1.5s 1 .25s ease forwards,spinner-rotate .75s infinite linear!important;z-index:100001}body.landing.is-loading::after{-moz-animation:none!important;-webkit-animation:none!important;-ms-animation:none!important;animation:none!important;opacity:1;z-index:100000}@media (-webkit-min-device-pixel-ratio:2){body.landing::before{line-height:2.025em}}header p{color:#fff;position:relative;margin:0 0 1.5em}header h2 p{font-size:1.25em;margin-top:-1em;line-height:1.75em}@media (max-width:933px){header p br{display:none}header h2 p{font-size:1em}}header h3 p{font-size:1.1em;margin-top:-.8em;line-height:1.75em}@media (max-width:933px){header h3 p{font-size:1em}header h4 p,header h5 p,header h6 p{font-size:.9em}}header h4 p,header h5 p,header h6 p{font-size:.9em;margin-top:-.6em;line-height:1.5em}header.major{margin:0 0 4em;position:relative}@media (max-width:933px){header.major{margin:0 0 2em}}header.major::after{background:#E64F2D;display:inline-block;height:.2em;max-width:20em;width:75%}footer.major{margin:4em 0 0}form{margin:0 0 2em}label{color:#fff;display:block;font-size:.9em;font-weight:400;margin:0 0 1em}input[type=text],input[type=password],input[type=email],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:border-color .2s ease-in-out;-webkit-transition:border-color .2s ease-in-out;-ms-transition:border-color .2s ease-in-out;transition:border-color .2s ease-in-out;background:0 0;border-radius:4px;border:1px solid rgba(255,255,255,.3);color:inherit;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,select:focus,textarea:focus{border-color:#E64F2D}.select-wrapper{text-decoration:none;display:block;position:relative}.select-wrapper:before{display:inline-block}.select-wrapper::before{color:rgba(255,255,255,.3);content:'\f078';display:block;height:2.4em;line-height:2.4em;pointer-events:none;position:absolute;right:0;top:0;width:2.4em}.select-wrapper select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],select{height:2.4em}textarea{padding:.75em 1em}select option{background-color:#1c1d26;color:#fff}select:focus::-ms-value{background:0 0}input[type=radio],input[type=checkbox]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=radio] label,input[type=checkbox] label{text-decoration:none;color:rgba(255,255,255,.75);cursor:pointer;display:inline-block;font-size:1em;font-weight:300;padding-left:2.19em;padding-right:.75em;position:relative}input[type=radio] label:before,input[type=checkbox] label:before{display:inline-block}input[type=radio] label::before,input[type=checkbox] label::before{border:1px solid rgba(255,255,255,.3);content:'';display:inline-block;height:1.44em;left:0;line-height:1.38em;position:absolute;text-align:center;top:0;width:1.44em}.icon,.image{position:relative}input[type=radio]:checked label::before,input[type=checkbox]:checked label::before{background:rgba(255,255,255,.25);color:#fff;content:'\f00c'}input[type=radio]:focus label::before,input[type=checkbox]:focus label::before{border-color:#E64F2D}input[type=checkbox] label::before{border-radius:4px}input[type=radio] label::before{border-radius:100%}.box,.image{border-radius:4px}::-webkit-input-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}:-moz-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}::-moz-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}:-ms-input-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}.formerize-placeholder{color:rgba(255,255,255,.5)!important;opacity:1}.box{border:1px solid rgba(255,255,255,.3);margin-bottom:2em;padding:1.5em}.box>:last-child,.box>:last-child>:last-child,.box>:last-child>:last-child>:last-child{margin-bottom:0}.box.alt{border:0;border-radius:0;padding:0}.icon{text-decoration:none;border-bottom:none}.icon:before{display:inline-block}.icon>.label{display:none}.icon.alt:before,.icon.major,.image{display:inline-block}.icon.alt{text-decoration:none}.icon.alt::before{color:#1c1d26!important;text-shadow:1px 0 0 #fff,-1px 0 0 #fff,0 1px 0 #fff,0 -1px 0 #fff}.icon.major{background:#272833;border-radius:100%;cursor:default;height:6em;line-height:6em;margin:0 0 2em;width:6em}#banner,.spotlight{background-attachment:fixed}.goto-next::before,.spotlight{background-position:center center}.image.fit,.image.fit img,.image.left img,.image.right img{width:100%}.icon.major::before{font-size:2.25em}.icon.major.alt{text-decoration:none}.icon.major.alt:before{display:inline-block}.icon.major.alt::before{color:#272833!important;text-shadow:1px 0 0 #fff,-1px 0 0 #fff,0 1px 0 #fff,0 -1px 0 #fff}.iconshiftdown{line-height:2}.iconshift-right-5{margin-left:5px}.iconshift-right-6{margin-left:6px}.iconshift-right-7{margin-left:7px}.iconshift-right-8{margin-left:8px}.iconshift-right-9{margin-left:9px}.iconshift-right-10{margin-left:10px}.image{border:0;overflow:hidden}.image::before{content:'';display:block;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1}.image img{border-radius:4px;display:block}.image.left{float:left;margin:0 1.5em 1em 0;top:.25em}.image.right{float:right;margin:0 0 1em 1.5em;top:.25em}.image.fit,ol,ul{margin:0 0 2em}.image.left,.image.right{max-width:40%}.image.fit{display:block}.image.mapid{height:70vh}ol{list-style:decimal;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;padding-left:1em}#header nav ul,.dropotron,ul.actions,ul.alt,ul.icons{list-style:none}ul li{padding-left:.5em}ul.alt{padding-left:0}ul.alt li{border-top:solid 1px rgba(255,255,255,.3);padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}ul.icons{cursor:default;padding-left:0}ul.icons li{display:inline-block;height:2.5em;line-height:2.5em;padding:0 .5em}ul.icons li .icon{font-size:.8em}ul.icons li .icon::before{font-size:2em}ul.actions{cursor:default;padding-left:0}ul.actions li{display:inline-block;padding:0 1em 0 0;vertical-align:middle}@media (max-width:480px){ul.actions{margin:0 0 2em}ul.actions li{display:block;padding:1em 0 0;text-align:center;width:100%}ul.actions li:first-child{padding-top:0}ul.actions li>*{margin:0!important;width:100%}}ul.actions.fit li>*,ul.actions.vertical li>*{margin-bottom:0}ul.actions li:last-child{padding-right:0}ul.actions.small li{padding:0 .5em 0 0}@media (max-width:480px){ul.actions.small li{padding:.5em 0 0}ul.actions.small li:first-child{padding-top:0}}ul.actions.vertical li{display:block;padding:1em 0 0}ul.actions.vertical li:first-child{padding-top:0}ul.actions.vertical.small li{padding:.5em 0 0}ul.actions.vertical.small li:first-child{padding-top:0}ul.actions.fit{display:table;margin-left:-1em;padding:0;table-layout:fixed;width:calc(100% 1em)}ul.actions.fit li{display:table-cell;padding:0 0 0 1em}ul.actions.fit.small{margin-left:-.5em;width:calc(100% .5em)}dl,table{margin:0 0 2em}ul.actions.fit.small li{padding:0 0 0 .5em}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;border-spacing:0;width:100%}table tbody tr{border:1px solid rgba(255,255,255,.3);border-left:0;border-right:0}table tbody tr:nth-child(2n 1){background-color:rgba(255,255,255,.075)}table td{padding:.75em}table th{color:#fff;font-size:.9em;font-weight:400;padding:0 .75em .75em;text-align:left}table thead{border-bottom:solid 1px rgba(255,255,255,.3)}table tfoot{border-top:solid 1px rgba(255,255,255,.3)}table.alt{border-collapse:separate}table.alt tbody tr td{border:1px solid rgba(255,255,255,.3);border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}.button,input[type=submit],input[type=reset],input[type=button]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;-ms-transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out;background-color:transparent;border-radius:4px;border:0;box-shadow:inset 0 0 0 2px rgba(255,255,255,.3);color:#fff!important;cursor:pointer;display:inline-block;font-weight:400;height:2.4em;line-height:2.4em;padding:0 2.25em;text-align:center;text-decoration:none;white-space:nowrap}@media (max-width:480px){.button,input[type=submit],input[type=reset],input[type=button]{padding:0}}.button:active,.button:hover,input[type=submit]:active,input[type=submit]:hover,input[type=reset]:active,input[type=reset]:hover,input[type=button]:active,input[type=button]:hover{box-shadow:inset 0 0 0 1px #E64F2D;color:#E64F2D!important}.button:active,input[type=submit]:active,input[type=reset]:active,input[type=button]:active{background-color:rgba(230,79,45,.15)}.button.icon::before,input[type=submit].icon::before,input[type=reset].icon::before,input[type=button].icon::before{margin-right:.5em}.button.fit,input[type=submit].fit,input[type=reset].fit,input[type=button].fit{display:block;margin:0 0 1em;width:100%}.button.small,input[type=submit].small,input[type=reset].small,input[type=button].small{font-size:.8em}.button.big,input[type=submit].big,input[type=reset].big,input[type=button].big{font-size:1.35em}.button.special,input[type=submit].special,input[type=reset].special,input[type=button].special{background-color:#E64F2D;box-shadow:none;color:#fff!important}.button.special:hover,input[type=submit].special:hover,input[type=reset].special:hover,input[type=button].special:hover{background-color:#e96244}.button.special:active,input[type=submit].special:active,input[type=reset].special:active,input[type=button].special:active{background-color:#df3f1b}.button.disabled,.button:disabled,input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled{background-color:rgba(255,255,255,.3)!important;box-shadow:none!important;color:#fff!important;cursor:default;opacity:.25}.button.tb-opened,input[type=submit].tb-opened,input[type=reset].tb-opened,input[type=button].tb-opened{background-color:#32cd32!important}.button.tb-opened.navbar,input[type=submit].tb-opened.navbar,input[type=reset].tb-opened.navbar,input[type=button].tb-opened.navbar{margin-left:-15px}.tb-closed{color:#d23128ff}.tooltip{position:relative;display:inline-block;border-bottom:1px dotted #000}.goto-next,.goto-next::before,.tooltip .tooltiptext{left:50%;position:absolute}.tooltip .tooltiptext{visibility:hidden;width:230px;margin-left:-100px;font-size:.9em;background-color:#555;line-height:normal;color:#fff;text-align:center;padding:15px 0;border-radius:6px;z-index:1;opacity:0;transition:opacity .3s;top:100%}.spotlight .content,.wrapper.fade-down>.container{-moz-transition:-moz-transform 1s ease,opacity 1s ease;-webkit-transition:-webkit-transform 1s ease,opacity 1s ease;-ms-transition:-ms-transform 1s ease,opacity 1s ease}.tooltip .tooltiptext::after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555}#banner::after,#banner::before,.dropotron.level-0::before,.goto-next::before,.spotlight::before{content:''}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}.goto-next{border:0;bottom:0;display:block;height:5em;margin:0 0 0 -5em;overflow:hidden;text-indent:10em;white-space:nowrap;width:10em;z-index:1}.goto-next::before{background-image:url(images/arrow.svg);background-repeat:no-repeat;background-size:contain;display:block;height:1.5em;margin:-.75em 0 0 -1em;top:50%;width:2em;z-index:1}.spotlight,.spotlight .image.main img{position:relative}@media (max-width:933px){.goto-next::before{height:.8em;margin:-.4em 0 0 -.6em;width:1.2em}}.spotlight{background-size:cover;box-shadow:0 .25em .5em 0 rgba(0,0,0,.25);background-image:none;min-height:42em;height:100vh;overflow:hidden}@media (max-width:980px){.spotlight{background-attachment:scroll;height:auto;min-height:auto}.spotlight .image.main{display:block;margin:0;max-height:40vh;overflow:hidden}}.spotlight:nth-last-of-type(1){z-index:1}.spotlight:nth-last-of-type(2){z-index:2}.spotlight:nth-last-of-type(3){z-index:3}.spotlight:nth-last-of-type(4){z-index:4}.spotlight:nth-last-of-type(5){z-index:5}.spotlight:nth-last-of-type(6){z-index:6}.spotlight:nth-last-of-type(7){z-index:7}.spotlight:nth-last-of-type(8){z-index:8}.spotlight:nth-last-of-type(9){z-index:9}.spotlight:nth-last-of-type(10){z-index:10}.spotlight:nth-last-of-type(11){z-index:11}.spotlight:nth-last-of-type(12){z-index:12}.spotlight:nth-last-of-type(13){z-index:13}.spotlight:nth-last-of-type(14){z-index:14}.spotlight:nth-last-of-type(15){z-index:15}.spotlight:nth-last-of-type(16){z-index:16}.spotlight:nth-last-of-type(17){z-index:17}.spotlight:nth-last-of-type(18){z-index:18}.spotlight:nth-last-of-type(19){z-index:19}.spotlight:nth-last-of-type(20){z-index:20}.spotlight::before{display:block;height:100%;left:0;top:0;width:100%}.spotlight .image.main{display:block}.spotlight .content{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);transition:transform 1s ease,opacity 1s ease;background:rgba(23,24,32,.9);border-style:solid;opacity:1;position:absolute}@media (max-width:980px){.spotlight .content{background-color:rgba(23,24,32,.9);border-width:.35em 0 0!important;bottom:auto!important;left:auto!important;padding:6em 3em 4em!important;position:relative;right:auto!important;text-align:center;top:auto!important;width:100%!important}.spotlight .goto-next{display:none}}@media (max-width:933px){.spotlight{box-shadow:0 .125em .5em 0 rgba(0,0,0,.25)}.spotlight .image.main{max-height:60vh}.spotlight .content{border-top-width:.2em!important;padding:6em 3em 4em!important}}@media (max-width:480px){.spotlight .image.main{max-height:50vh}.spotlight .content{padding:6em 3em 4em!important}}.spotlight .goto-next{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform .75s ease,opacity 1s ease-in;-webkit-transition:-webkit-transform .75s ease,opacity 1s ease-in;-ms-transition:-ms-transform .75s ease,opacity 1s ease-in;transition:transform .75s ease,opacity 1s ease-in;-moz-transition-delay:.5s;-webkit-transition-delay:.5s;-ms-transition-delay:.5s;transition-delay:.5s;opacity:1}.spotlight.bottom .content,.spotlight.top .content{left:0;padding:5.1em 0 3.1em;width:100%}.spotlight.top .content{border-bottom-width:.35em;top:0}.spotlight.bottom .content{border-top-width:.35em;bottom:0}@media (max-width:1280px){.spotlight.top .content{padding:5.1em 0 3.1em}.spotlight.bottom .content{padding:5.1em 0 4.6em}}.spotlight.left .content,.spotlight.right .content{height:101%;padding:6em 3em;top:0;width:28em;min-width:25%}@media (max-width:1280px){.spotlight.left .content,.spotlight.right .content{padding:6em 3em;width:25em}.wrapper{padding:6em 0 4em}}.spotlight.left .content{border-right-width:.35em;left:0}.spotlight.right .content{border-left-width:.35em;right:0}.spotlight.style2 .content{border-color:#E64F2D}.spotlight.style3 .content{border-color:#D74126}.spotlight.inactive .content{opacity:0}.spotlight.inactive .goto-next{-moz-transform:translate(0,1.5em);-webkit-transform:translate(0,1.5em);-ms-transform:translate(0,1.5em);transform:translate(0,1.5em);opacity:0}.spotlight.inactive.top .content{-moz-transform:translate(0,-5em);-webkit-transform:translate(0,-5em);-ms-transform:translate(0,-5em);transform:translate(0,-5em)}.spotlight.inactive.bottom .content{-moz-transform:translate(0,5em);-webkit-transform:translate(0,5em);-ms-transform:translate(0,5em);transform:translate(0,5em)}.spotlight.inactive.left .content{-moz-transform:translate(-5em,0);-webkit-transform:translate(-5em,0);-ms-transform:translate(-5em,0);transform:translate(-5em,0)}.spotlight.inactive.right .content{-moz-transform:translate(5em,0);-webkit-transform:translate(5em,0);-ms-transform:translate(5em,0);transform:translate(5em,0)}body.is-touch .spotlight{background-attachment:scroll}.wrapper{padding:6em 0 4em}@media (max-width:980px){.wrapper{padding:6em 3em 4em}}@media (max-width:933px){.wrapper{padding:6em 3em 4em}}@media (max-width:480px){.wrapper{padding:6em 3em 4em}}.wrapper.style2{background:#E64F2D}.wrapper.style2 input[type=text]:focus,.wrapper.style2 input[type=password]:focus,.wrapper.style2 input[type=email]:focus,.wrapper.style2 select:focus,.wrapper.style2 textarea:focus{border-color:rgba(255,255,255,.5)}.wrapper.style2 .button:active,.wrapper.style2 .button:hover,.wrapper.style2 input[type=submit]:active,.wrapper.style2 input[type=submit]:hover,.wrapper.style2 input[type=reset]:active,.wrapper.style2 input[type=reset]:hover,.wrapper.style2 input[type=button]:active,.wrapper.style2 input[type=button]:hover{background-color:rgba(255,255,255,.075)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)!important;color:#fff!important}.wrapper.style2 .button:active,.wrapper.style2 input[type=submit]:active,.wrapper.style2 input[type=reset]:active,.wrapper.style2 input[type=button]:active{background-color:rgba(255,255,255,.25)!important}.wrapper.style2 .button.special,.wrapper.style2 input[type=submit].special,.wrapper.style2 input[type=reset].special,.wrapper.style2 input[type=button].special{background-color:#fff;color:#E64F2D!important}.wrapper.style2 .button.special:active,.wrapper.style2 .button.special:hover,.wrapper.style2 input[type=submit].special:active,.wrapper.style2 input[type=submit].special:hover,.wrapper.style2 input[type=reset].special:active,.wrapper.style2 input[type=reset].special:hover,.wrapper.style2 input[type=button].special:active,.wrapper.style2 input[type=button].special:hover{background-color:rgba(255,255,255,.075)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)!important;color:#fff!important}.wrapper.style2 .button.special:active,.wrapper.style2 input[type=submit].special:active,.wrapper.style2 input[type=reset].special:active,.wrapper.style2 input[type=button].special:active{background-color:rgba(255,255,255,.25)!important}.wrapper.fade-down>.container{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);transition:transform 1s ease,opacity 1s ease;opacity:1}.wrapper.fade-down.inactive>.container{-moz-transform:translate(0,-1em);-webkit-transform:translate(0,-1em);-ms-transform:translate(0,-1em);transform:translate(0,-1em);opacity:0}.wrapper.fade-up>.container{-moz-transform:translate(0,0);-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-moz-transition:-moz-transform 1s ease,opacity 1s ease;-webkit-transition:-webkit-transform 1s ease,opacity 1s ease;-ms-transition:-ms-transform 1s ease,opacity 1s ease;transition:transform 1s ease,opacity 1s ease;opacity:1}.wrapper.fade-up.inactive>.container{-moz-transform:translate(0,1em);-webkit-transform:translate(0,1em);-ms-transform:translate(0,1em);transform:translate(0,1em);opacity:0}.wrapper.fade>.container{-moz-transition:opacity 1s ease;-webkit-transition:opacity 1s ease;-ms-transition:opacity 1s ease;transition:opacity 1s ease;opacity:1}.wrapper.fade.inactive>.container{opacity:0}.dropotron{background:rgba(39,40,51,.965);border-radius:4px;box-shadow:0 .075em .35em 0 rgba(0,0,0,.125);margin-top:calc(-.25em 1px);min-width:12em;padding:.25em 0}.dropotron>li{border-top:solid 1px rgba(255,255,255,.035);padding:0}.dropotron>li a,.dropotron>li span{border:0;color:rgba(255,255,255,.75);display:block;padding:.1em 1em;text-decoration:none}#header nav ul,#header nav ul li{padding:0;margin:0;position:relative}.dropotron>li:first-child{border-top:0}.dropotron>li.active>a,.dropotron>li.active>span{color:#E64F2D}.dropotron.level-0{font-size:.8em;margin-top:1em}@media (max-width:1280px){.dropotron.level-0{font-size:1em}}.dropotron.level-0::before{-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);background:#272833;display:block;height:1em;position:absolute;right:1.5em;top:-.5em;width:1em}body.landing .dropotron.level-0{margin-top:0}#navPanel,#titleBar{display:none}@media (max-width:933px){#titleBar{-moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-moz-transition:-moz-transform .5s ease;-webkit-transition:-webkit-transform .5s ease;-ms-transition:-ms-transform .5s ease;transition:transform .5s ease;display:block;height:44px;left:0;position:fixed;top:0;width:100%;z-index:10001;background:#272833;box-shadow:0 .125em .125em 0 rgba(0,0,0,.125)}#titleBar .title{color:#fff;display:block;font-weight:400;height:44px;line-height:44px;text-align:center}#titleBar .title a{color:inherit;border:0}#titleBar .toggle{text-decoration:none;height:60px;left:0;position:absolute;top:0;width:90px;outline:0;border:0}#titleBar .toggle:before{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;text-transform:none!important}#titleBar .toggle::before{background:#9B160F;color:rgba(255,255,255,.5);display:block;font-size:18px;height:44px;left:0;line-height:44px;position:absolute;text-align:center;top:0;width:54px}#navPanel{-moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-moz-transform:translateX(-275px);-webkit-transform:translateX(-275px);-ms-transform:translateX(-275px);transform:translateX(-275px);-moz-transition:-moz-transform .5s ease;-webkit-transition:-webkit-transform .5s ease;-ms-transition:-ms-transform .5s ease;transition:transform .5s ease;display:block;height:100%;left:0;overflow-y:auto;position:fixed;top:0;width:275px;z-index:10002;background:#181920;padding:.75em 1.25em}#navPanel .link{border:0;border-top:solid 1px rgba(255,255,255,.05);color:rgba(255,255,255,.75);display:block;height:3em;line-height:3em;text-decoration:none}#navPanel .link:hover{color:inherit!important}#navPanel .link:first-child{border-top:0}#navPanel .link.depth-0{color:#fff;font-weight:400}#navPanel .link .indent-1{display:inline-block;width:1.25em}#navPanel .link .indent-2{display:inline-block;width:2.5em}#navPanel .link .indent-3{display:inline-block;width:3.75em}#navPanel .link .indent-4{display:inline-block;width:5em}#navPanel .link .indent-5{display:inline-block;width:6.25em}}#header,#header nav ul ul{background:rgba(39,40,51,.965);left:0}#header h1,#header nav ul li{height:inherit;line-height:inherit}#page-wrapper{padding-top:3.5em}#header{box-shadow:0 0 .25em 0 rgba(0,0,0,.25);cursor:default;height:3.5em;line-height:3.5em;position:fixed;top:0;width:100%;z-index:5000}@media (max-width:933px){#page-wrapper{-moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-moz-transition:-moz-transform .5s ease;-webkit-transition:-webkit-transform .5s ease;-ms-transition:-ms-transform .5s ease;transition:transform .5s ease;padding-bottom:1px;padding-top:44px!important}#header{display:none}}#header h1{left:1.25em;margin:0;position:absolute;top:0}#header nav ul{float:right}#header nav ul li{float:left;color:inherit}#header nav ul li a,#header nav ul li span{display:block;color:inherit;text-decoration:none;line-height:inherit;padding:0 1em}#header nav ul li.active>a,#header nav ul li.active>span{color:#E64F2D}#header nav ul li.last{padding-right:1.8em}#header nav ul ul{display:none;position:absolute;top:100%;border-bottom:2px solid rgba(255,255,255,.075);padding:0}#header nav ul ul li{float:none;width:11em;overflow:hidden}#header nav ul ul.last li{width:8em}#header nav ul ul a{line-height:100%;padding:10px 15px;border-top:2px solid rgba(255,255,255,.075)}#header nav ul ul ul{top:0;left:100%}#header nav ul li:hover>ul{display:block}body.landing #page-wrapper{padding-top:0}#banner{background-color:#272833;background-image:url(../../images/banner.jpg);background-position:center center;background-size:cover;box-shadow:0 .25em .5em 0 rgba(0,0,0,.25);min-height:100vh;position:relative;text-align:center;z-index:21}@media (max-width:980px){#banner{background-attachment:scroll}#banner .goto-next{height:7em}}#banner::before{display:inline-block;height:100vh;vertical-align:middle;width:1%}#banner::after{display:block;height:100%;left:0;position:absolute;top:0;width:100%}#banner .content,#banner .content header{display:inline-block;vertical-align:middle}#banner .content{margin-right:1%;max-width:95%;padding:6em;position:relative;text-align:right;z-index:1}@media (max-width:1280px){#banner .content{padding:6em}}@media (max-width:980px){#banner .content{padding:12em 0;text-align:center}#banner .content header{display:block;margin:0 0 2em;text-align:center}}@media (max-width:933px){#banner{box-shadow:0 .125em .5em 0 rgba(0,0,0,.25);min-height:calc(100vh - 44px)}#banner::before{height:calc(100vh - 44px)}#banner .content{padding:7.5em 3em 9em}}@media (max-width:480px){#banner .content{padding:6em 3.75em 10.5em}}#banner .content header h2{font-size:2.5em;margin:0}#banner .content header p{margin:.5em 0 0;top:0}#banner .content .image{border-radius:0;display:inline-block;height:18em;margin-left:3em;vertical-align:middle;width:18em}@media (max-width:933px){#banner .content header h2{font-size:1.5em}#banner .content .image{height:9em;width:9em}}#banner .content .image img{border-radius:0;display:block;width:100%}body.is-touch #banner{background-attachment:scroll}#footer{background:#272833;padding:6em 0;text-align:center}@media (max-width:1280px){#footer{padding:6em 0}}@media (max-width:980px){#banner .content .image{margin:0}#footer{padding:6em 0}}@media (max-width:933px){#footer{padding:6em 3em}}@media (max-width:480px){#footer{padding:6em 3em}}#footer .icons .icon.alt{text-decoration:none}#footer .icons .icon.alt:before{display:inline-block}#footer .icons .icon.alt::before{color:#272833!important;text-shadow:1px 0 0 rgba(255,255,255,.5),-1px 0 0 rgba(255,255,255,.5),0 1px 0 rgba(255,255,255,.5),0 -1px 0 rgba(255,255,255,.5)}#footer .copyright{color:rgba(255,255,255,.5);font-size:.8em;line-height:1em;margin:2em 0 0;padding:0;text-align:center}#footer .copyright li{border-left:solid 1px rgba(255,255,255,.3);display:inline-block;list-style:none;margin-left:1.5em;padding-left:1.5em}.col-2>.button,.col-3>.button,.col-4>.button,.col-5>.button{padding:0}@media (max-width:480px){#footer .copyright{line-height:inherit}#footer .copyright li{border-left:0;display:block;margin:0;padding:0}}#footer .copyright li:first-child{border-left:0;margin-left:0;padding-left:0}#footer .copyright li a{color:inherit}.project{height:600px}.teaser{height:300px}.project-creator{border-bottom:none}.col-2{column-count:2}.col-3{column-count:3}.col-4{column-count:4}.col-5{column-count:5}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em}@import 'parts/basic'; @import 'parts/loader'; @import 'parts/section-article'; @import 'parts/form'; @import 'parts/box'; @import 'parts/icon'; @import 'parts/image'; @import 'parts/list'; @import 'parts/table'; @import 'parts/button'; @import 'parts/goto-next'; @import 'parts/spotlight'; @import 'parts/wrapper'; @import 'parts/dropotron'; @import 'parts/header'; @import 'parts/banner'; @import 'parts/footer'; @import 'parts/project'; @import 'parts/col'; @import 'libs/vars'; @import 'libs/functions'; @import 'libs/mixins'; @import url(../css/font-awesome.min.css); @import url(../fonts/roboto.css); @import url(https://toolbox-bodensee.de/css/spacestatus.css); @import "libs/skel"; @import 'parts/startpage'; @include skel-breakpoints((xlarge: '(max-width: 1680px)',large: '(max-width: 1280px)',medium: '(max-width: 980px)',small: '(max-width: 933px)',xsmall: '(max-width: 480px)')); @mixin breakpoint($point){@if $point == desktop { @media (max-width:1680px) { @content}} @else if$point==laptop{@media (max-width:1280px) { @content}} @else if$point==tablet{@media (max-width:980px) { @content}} @else if$point==phablet{@media (max-width:933px) { @content}} @else if$point==mobileonly{@media (max-width:480px) { @content}} } @include skel-layout((reset: 'full',boxModel: 'border',grid: (gutters: 2.5em),conditionals: true,containers: 70em,breakpoints: (large: (containers: 90%,),medium: (containers: (100%,true),)))); @mixin line-icon($bg: _palette(bg),$fg: _palette(fg-bold)){@include icon; $size:1px;&::before { color: $bg !important;text-shadow:$size 0 0 $fg, ($size * -1) 0 0 $fg, 0 $size 0 $fg, 0 ($size * -1) 0 $fg}}$size-wrapper-pad-tb: 6em;$size-wrapper-pad-lr: 3em; @include breakpoint(laptop){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(tablet){$size-wrapper-pad-tb:4.5em;$size-wrapper-pad-lr:2.5em}@include breakpoint(phablet){$size-wrapper-pad-tb:3.25em;$size-wrapper-pad-lr:1.5em}@include breakpoint(mobileonly){$size-wrapper-pad-tb:3em;$size-wrapper-pad-lr:1.25em} \ No newline at end of file diff --git a/templates/blocks/image.html b/templates/blocks/image.html deleted file mode 100644 index 9d2a2dc..0000000 --- a/templates/blocks/image.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/templates/blocks/press_table.html b/templates/blocks/press_table.html new file mode 100644 index 0000000..b1bad70 --- /dev/null +++ b/templates/blocks/press_table.html @@ -0,0 +1 @@ +{{ this.pub_date.strftime('%d.%m.%Y') }}{{ this.text }} diff --git a/templates/blocks/pro_img.html b/templates/blocks/pro_img.html new file mode 100644 index 0000000..0065290 --- /dev/null +++ b/templates/blocks/pro_img.html @@ -0,0 +1,4 @@ +{% set img = record.attachments.images.get(this.image) %} + + + diff --git a/templates/blocks/pro_video.html b/templates/blocks/pro_video.html new file mode 100644 index 0000000..c37e837 --- /dev/null +++ b/templates/blocks/pro_video.html @@ -0,0 +1,11 @@ +{% if this.video_url +%}
+ +
+{% + if bag('translate', this.alt, 'directytlink') %}{{ bag('translate', this.alt, 'directytlink') }}{% + else %}Direkt zum YouTube-Video{% endif %}{% endif %}{% if this.video + %} {% + if bag('translate', this.alt, 'directlink') %}{{ bag('translate', this.alt, 'directlink') }}{% + else %}Download Video{% endif %}{% endif %} +
diff --git a/templates/blocks/startpage_section.html b/templates/blocks/startpage_section.html new file mode 100644 index 0000000..cc630f1 --- /dev/null +++ b/templates/blocks/startpage_section.html @@ -0,0 +1,10 @@ +
+
+

{{ this.header }}

+ {{ this.text }} +
+ {{ this.text2 }} + +
\ No newline at end of file diff --git a/templates/blocks/termine.html b/templates/blocks/termine.html new file mode 100644 index 0000000..d81cc07 --- /dev/null +++ b/templates/blocks/termine.html @@ -0,0 +1 @@ +42 diff --git a/templates/blocks/termine.ics b/templates/blocks/termine.ics new file mode 100644 index 0000000..4099407 --- /dev/null +++ b/templates/blocks/termine.ics @@ -0,0 +1 @@ +23 diff --git a/templates/blog-post.html b/templates/blog-post.html index 6f24d52..29d930e 100644 --- a/templates/blog-post.html +++ b/templates/blog-post.html @@ -1,6 +1,35 @@ {% extends "layout.html" %} {% from "macros/blog.html" import render_blog_post %} +{% if this.project %}{% block expand_header %} + +{% if this.video_is_embeded %} + + {% endif %} +{% endblock %}{% endif %} {% block title %}{{ this.title }}{% endblock %} -{% block body %} - {{ render_blog_post(this) }} +{% block expand_description %} + +{% endblock %} +{% block body %} + +
+
+ {{ render_blog_post(this) }} +
+
+{% if this.project %} + + + + +{% endif %} {% endblock %} diff --git a/templates/blog.html b/templates/blog.html index 40c0621..d75eb78 100644 --- a/templates/blog.html +++ b/templates/blog.html @@ -1,19 +1,37 @@ {% extends "layout.html" %} {% from "macros/blog.html" import render_blog_post %} {% from "macros/pagination.html" import render_pagination %} -{% block title %}{{ this.title }}{% endblock %} -{% block body %} -
-
- -
-

{{ this.title }}

- {{ this.sub_title }} -
-
+ {% block title %}{{ this.title }}{% endblock %} +{% block body %} + +
+
+
+

{{ this.title }}

+

{{ this.description }}

+
+
+ {{ this.spruch }} + + + +
+
{% for child in this.pagination.items %} {{ render_blog_post(child, from_index=true) }} {% endfor %} - +
{{ render_pagination(this.pagination) }} +
+
+
+
{% endblock %} +{% block expand_description %} + +{% endblock %} + diff --git a/templates/feed.xml b/templates/feed.xml deleted file mode 100644 index 15e553f..0000000 --- a/templates/feed.xml +++ /dev/null @@ -1,33 +0,0 @@ -{% -set baseurl = "https://c3woc.de/" %}{% -set search = "blog" %} - - Waffel Neuigkeiten - 42{{ none|datetimeformat('YYYYMMDDhhmmss') }} - {{ none|datetimeformat('YYYY-MM-DDThh:mm:ss') }}Z - - - - {% if this.author %}{{ this.author }}{% else %}L3D{% endif %} - - Lektor Atom XML Template{% - set pages = site.query('/blog').include_undiscoverable(true).all() %}{% - for page in pages %} - - {{ page.title }} - 23{{ page.pub_date|datetimeformat('YYYYMMDDhhmmss') }} - {{ page.pub_date|datetimeformat('YYYY-MM-DDThh:mm:ss') }}Z - - - {% if page.author %}{{ page.author }}{% else %}L3D{% endif %} - - - {{ page.xml }} - {% if page.xml_img - %}<br/> - <img width="23%" src="{{ page|url }}{{ page.xml_img }}" /> - {% endif %} - - {% -endfor %} - diff --git a/templates/feed_blog.xml b/templates/feed_blog.xml new file mode 100644 index 0000000..0c0f215 --- /dev/null +++ b/templates/feed_blog.xml @@ -0,0 +1,34 @@ +{% +set baseurl = "https://c3woc.de/" %}{% +set search = "blog" %} + + {% + if bag('translate', this.alt, 'xmlfeed') %}{{ bag('translate', this.alt, 'xmlfeed') }}{% + else %}Neues aus der Toolbox{% endif %} + {{ baseurl }}feed_blog.xml + {{ none|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z + + + + {% if this.author %}{{ this.author }}{% else %}Toolbox{% endif %} + {% + set pages = site.query('/blog').include_undiscoverable(true).all() %}{% + for page in pages %}{% if not page._hidden %} + + {{ page.title }} + {{ baseurl }}{{ search }}/{{ page._id }} + {{ page.pub_date|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z + + + {% if page.author %}{{ page.author }}{% else %}Toolbox{% endif %} + + + {{ page.xml }} + {% if page.xml_img + %}<br/> + <img width="23%" src="{{ page.xml_img }}" /> + {% endif %} + +{% endif %}{% +endfor %} + diff --git a/templates/feed_projekte.xml b/templates/feed_projekte.xml new file mode 100644 index 0000000..dd7f292 --- /dev/null +++ b/templates/feed_projekte.xml @@ -0,0 +1,33 @@ +{% +set baseurl = "https://c3woc.de/" %}{% +set search = "rezept" %} + + {% + if bag('translate', this.alt, 'projectfeed') %}{{ bag('translate', this.alt, 'projectfeed') }}{% + else %}Rezepte des C3WOC{% endif %} + {{ baseurl }}feed_rezepte.xml + {{ none|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z + + + + {% if this.author %}{{ this.author }}{% else %}C3WOC{% endif %} + {% + set pages = site.query('/rezept').include_undiscoverable(true).all() %}{% + for page in pages %}{% if not page._hidden %} + + {{ page.title }} + {{ baseurl }}{{ search }}/{{ page._id }} + + + {% if page.author %}{{ page.author }}{% else %}C3WOC{% endif %} + + + {% if page.teaser %}{{ page.teaser }}{% endif %} + {% if page.xml_img + %}<br/> + <img width="23%" src="{{ page.xml_img }}" /> + {% endif %} + +{% endif %}{% +endfor %} + diff --git a/templates/kalender.html b/templates/kalender.html new file mode 100644 index 0000000..2b91265 --- /dev/null +++ b/templates/kalender.html @@ -0,0 +1,40 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block body %} + + + + + + + + +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+ + {{ this.content }} +
+
+
+{% endblock %} diff --git a/templates/layout.html b/templates/layout.html index 3998cce..e458e53 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -1,120 +1,241 @@ - - - - {% block title %}Start{% endblock %} - - - - - - - - {% block expand_header %}{% endblock %} - - - - - -
- - - - - - - - - - -
- - {% block body %}{% endblock %} -
- - - - -
- - - - - - - - - +{% set fqdn = 'c3woc.de' +%} + + + + {% block title %}Startseite{% endblock %} - c3woc.de + {% + if '/css/main.min.css'|asseturl == empty and '/css/main.css'|asseturl == empty %} + + {% + endif %} + + + {% block expand_description + %}{% + endblock %} + + + + + + + + + {% + block expand_header %}{% endblock %} + + + +
+ + {# + + Und hier werden nun die eientlichen Seiten eingebunden... + + #} + +{% block body %}{% endblock %}{# + + Und da wären wir auch schon am Ende der Webseite... + Hier noch mal fett Werbung gemacht, wo es alles etwas vom C3WOC gibt... + + So mit Twitter, Mail, IRC, Mastodon und RSS kommt da doch einiges zusammen :P + + #} + + +
+ + + + + + {% + block mainjs %} + {% + endblock %} + + diff --git a/templates/macros/blog.html b/templates/macros/blog.html index 0e17c95..1b19328 100644 --- a/templates/macros/blog.html +++ b/templates/macros/blog.html @@ -1,54 +1,50 @@ {% macro render_blog_post(post, from_index=false) %} -{% if from_index == True %} - - -
-
- {% if from_index %} -

{{ post.title }}

- {% else %} -

{{ post.title }}

- {% endif %} -

{% if bag('translate', post.alt, 'created') - %}{{ bag('translate', post.alt, 'created') }}{% else %}Geschrieben von{% endif %} {% - if post.twitter_handle %}{{ post.author or post.twitter_handle }}{% - else %}{{ post.author }}{% - endif %} {% if post.alt == 'en' %}on {{ post.pub_date }}{% else %}am {{ post.pub_date.strftime('%d. %m. %Y') }}{% endif %}

-
-
-{% else %} -
-
-
-

{{ post.title }}

-

{% if bag('translate', post.alt, 'created') - %}{{ bag('translate', post.alt, 'created') }}{% else %}Verfasst von{% endif %} {% - if post.twitter_handle %}{{ post.author or post.twitter_handle }}{% - else %}{{ post.author }}{% - endif %} {% if post.alt == 'en' %}on {{ post.pub_date }}{% else %}am {{ post.pub_date.strftime('%d. %m. %Y') }}{% endif %}

+ {% if from_index %} +


+ {% endif %} +
+
+ {% if from_index %} +

{{ post.title }}

+ {% else %} +

{{ post.title }}

+ {% endif %} +

+ {% if bag('translate', post.alt, 'blog_von') + %}{{ bag('translate', post.alt, 'blog_von') }}{% else + %}Geschrieben von{% endif %} {% if post.twitter_handle + %}{{ post.author or post.twitter_handle }}{% + else %}{{ post.author }}{% + endif %}{% if post.pub_date + %} {% if bag('translate', post.alt, 'blog_am') + %}{{ bag('translate', post.alt, 'blog_am') }}{% else + %}am{% endif %} {{ post.pub_date.strftime('%d.%m.%Y') }}{% + endif %}

+
+ +
+ {% if from_index %} + {{ post.body }} + {% else %} + {{ post.body }} + {{ post.beitrag }} + {% endif %} +
+ {% if from_index %} + {% if bag('translate', post.alt, 'blog_weiter') + %}{{ bag('translate', post.alt, 'blog_weiter') }}{% else + %}weiterlesen{% endif %} +
+ {% else %} + {% if post.video_is_embeded %}{% for blk in post.video_embeded.blocks %} + {{ blk }}
+ {% endfor %}{% + endif %} {% if post.project %} +
{% + for blk in post.project.blocks %} + {{ blk }} + {% endfor %}
{% endif %}{% + endif %}
-
-{% endif %} - -
-
-

{{ post.subtitle }}

- {{ post.body }} -{% if from_index == False %} - {{ post.privatebody }} - {% if post.galerie %}{% - for blk in post.galerie.blocks %} - {{ blk }} - {% endfor %}{% endif %} -{% else %} -

{% - if bag('translate', post.alt, 'read') - %}{{ bag('translate', post.alt, 'read') }}{% else %}Weiter lesen{% endif %}

- {{ post.title }} - {% endif %} -
-
- - - {% endmacro %} diff --git a/templates/macros/pagination.html b/templates/macros/pagination.html index bf201e1..077cc5a 100644 --- a/templates/macros/pagination.html +++ b/templates/macros/pagination.html @@ -1,25 +1,15 @@ {% macro render_pagination(pagination) %} -
-
- -
-
- {% endmacro %} diff --git a/templates/macros/projekt.html b/templates/macros/projekt.html new file mode 100644 index 0000000..be14e11 --- /dev/null +++ b/templates/macros/projekt.html @@ -0,0 +1,41 @@ +{% macro render_blog_post(post, from_index=false) %} + {% if from_index %} +
+ + + + +

{{ post.title }}

+
+ {{ post.teaser }} +
+
+ {% else %} +
+
+
+

{{ post.title }}

+
+
+ {{ post.body }} + {% if post.video_is_embeded %}{% for blk in post.video_embeded.blocks %} + {{ blk }}
+ {% endfor %}{% + endif %} + {% if post.project %} +
{% + for blk in post.project.blocks %} + {{ blk }} + {% endfor %}
{% + endif %} +
+
+
+ {% endif %} +{% endmacro %} diff --git a/templates/page.html b/templates/page.html index f4115f7..82fec0c 100644 --- a/templates/page.html +++ b/templates/page.html @@ -1,58 +1,23 @@ {% extends "layout.html" %} {% block title %}{{ this.title }}{% endblock %} -{% block body %} - - -
-
- -
-

{{ this.as01h1 }}

- {{ this.as01b1 }} - {{ this.as01d1 }} -
-
-
- - - -
-
- -
-

{{ this.as02h1 }}

- {{ this.as02b1 }} - {{ this.as02d1 }} -
-
-
- - - -
-
- -
-

{{ this.as03h1 }}

- {{ this.as03b1 }} - {{ this.as03d1 }} -
-
-
- - -
-
-

{{ this.where }}

- -
-
- - - +{% block expand_description %} + +{% endblock %} +{% block body %} +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+ {{ this.content }} +
+
+
{% endblock %} diff --git a/templates/presse.html b/templates/presse.html new file mode 100644 index 0000000..4937fde --- /dev/null +++ b/templates/presse.html @@ -0,0 +1,79 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block expand_description %} + +{% endblock %} +{% block body %} +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+

{{ this.p1 }}

{% + if this.press_1 %} +
+ + {% for blk in this.press_1.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p2 }}

{% + if this.press_2 %} +
+ + {% for blk in this.press_2.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p3 }}

{% + if this.press_3 %} +
+ + {% for blk in this.press_3.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p4 }}

{% + if this.press_4 %} +
+ + {% for blk in this.press_4.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} +

{{ this.p5 }}

{% + if this.press_5 %} +
+ + {% for blk in this.press_5.blocks %} + {{ blk }} + {% endfor %} + +
+
{% + endif %} + + {{ this.content }} +
+
+
+{% endblock %} diff --git a/templates/projekt-post.html b/templates/projekt-post.html new file mode 100644 index 0000000..cbedf83 --- /dev/null +++ b/templates/projekt-post.html @@ -0,0 +1,28 @@ +{% extends "layout.html" %} +{% from "macros/projekt.html" import render_blog_post %} +{% block expand_header %} + +{% if this.video_is_embeded %} + + {% endif %} +{% endblock %} +{% block expand_description %} + +{% endblock %} +{% block title %}{{ this.title }}{% endblock %} +{% block body %} + {{ render_blog_post(this) }} + + + + +{% endblock %} diff --git a/templates/projekte.html b/templates/projekte.html new file mode 100644 index 0000000..4964268 --- /dev/null +++ b/templates/projekte.html @@ -0,0 +1,43 @@ +{% extends "layout.html" %} +{% from "macros/projekt.html" import render_blog_post %} +{% block title + %}{{ this.title }}{% +endblock %} +{% block mainjs %}{% endblock %} +{% block body %} +
+
+
+

{{ this.title }}

+

{{ this.description }}

+
+
+ {{ this.begruessung }} +
+
+

{{ this.title2 }}

+ {{ this.description2 }} +
+
+
{% + for child in this.pagination.items|sort(attribute='number', reverse = True) %} + {{ render_blog_post(child, from_index=true) }} + {% endfor %} +
+ +
+
+
+{% endblock %} +{% block expand_description %} + +{% endblock %} diff --git a/templates/site.html b/templates/site.html deleted file mode 100644 index 5502f8a..0000000 --- a/templates/site.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "layout.html" %} -{% block title %}{{ this.title }}{% endblock %} -{% block body %} -
-
-
-

{{ this.title }}

- {{ this.spruch }} -
-
-
- - -
-
-

{{ this.subtitle }}

- {{ this.body }} -
-
- -{% endblock %} diff --git a/templates/start.html b/templates/start.html new file mode 100644 index 0000000..78b7153 --- /dev/null +++ b/templates/start.html @@ -0,0 +1,169 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block body %} + + + + + +
+
+
+
+
+
+

{{ this.about_header }}

+ {{ this.about_text }} +
+
+
+ {{ this.about_text2 }} +
+
+ {{ this.about_text3 }} + +
+
+
+
+ Next +
+ +{% for blk in this.sections.blocks %} +
+ {{ blk }} + Next +
+{% endfor %} + + +
+
+
+
+

{{ this.icons_header }}

+ {{ this.icons_text }} +
{% + if this.render_tourdaten %} +
+
+ + + + + + + + + {% + set pages = site.query('/').include_undiscoverable(true).all() %}{% + for page in pages %}{% + if page._model == 'waffeln' and page._path == '/waffeln.ics' %}{% + for blk in page.termine.blocks|sort(attribute='start', reverse = False) %}{% + if blk.start.strftime('%Y%m%d%H%M') > none|datetimeformat('yyyyMMddhhmm') %} + + + + + {% + endif %}{% + endfor %} + +
DatumVeranstaltungOrt
{% + if blk.start.strftime('%d.%m') == blk.ende.strftime('%d.%m') %}{{ blk.start.strftime('%d.%m.%y %H') }} - {{ blk.ende.strftime('%H') }} Uhr{% + else %}{{ blk.start.strftime('%d.%m') }} - {{ blk.ende.strftime('%d.%m.%Y') }}{% + endif %}{{ blk.event }}{{ blk.ort }}

+
{% + endif %}{% + endfor %} +
+

{{ this.icons_header_2 }}

+ {{ this.icons_text_2 }} +
+ {% endif %} +
+
+
+ + + +

{{ this.icons_1_2 }}

+ {{ this.icons_1_3 }} +
+
+ + + +

{{ this.icons_2_2 }}

+ {{ this.icons_2_3 }} +
+
+ + + +

{{ this.icons_3_2 }}

+ {{ this.icons_3_3 }} +
+
+ + + +

{{ this.icons_4_2 }}

+ {{ this.icons_4_3 }} +
+
+ + + +

{{ this.icons_5_2 }}

+ {{ this.icons_5_3 }} +
+
+ + + +

{{ this.icons_6_2 }}

+ {{ this.icons_6_3 }} +
+
+
+ +
+
+ + +
+
+
+

{{ this.red_1 }}

+ {{ this.red_2 }} +
+ {{ this.red_3 }} +

{{ this.red_4 }}

+
+
+ + +{% endblock %} diff --git a/templates/vereinsheim.html b/templates/vereinsheim.html new file mode 100644 index 0000000..7768f75 --- /dev/null +++ b/templates/vereinsheim.html @@ -0,0 +1,49 @@ +{% extends "layout.html" %} +{% block title %}{{ this.title }}{% endblock %} +{% block expand_header %} + + + +{% endblock %} +{% block expand_description %} + +{% endblock %} +{% block body %} +
+
+
+

{{ this.title }}

+

{{ this.slogan }}

+
+ +
+ {{ this.precontent }} + +
+
+ {{ this.content }} + {% if this.project %} +
{% + for blk in this.project.blocks %} + {{ blk }} + {% endfor + %}
{% + endif %} +
+
+
+ + + + + +{% endblock %} diff --git a/templates/waffeln.ics b/templates/waffeln.ics new file mode 100644 index 0000000..24bd557 --- /dev/null +++ b/templates/waffeln.ics @@ -0,0 +1,20 @@ +{% set fqdn = 'c3woc.de' +%}BEGIN:VCALENDAR +VERSION:2.0 +CALSCALE:GREGORIAN +PRODID:https://{{ fqdn }}/{{ this._id }} +METHOD:PUBLISH{% + for blk in this.termine.blocks|sort(attribute='start', reverse = True) %} +BEGIN:VEVENT +SUMMARY:{{ blk.event }} +ORGANIZER;CN="C3 Waffel Operation Center":MAILTO:waffel@{{ fqdn }} +DTSTART;TZID=Europe/Berlin:{{ blk.start.strftime('%Y%m%dT%H%M%S') }} +DTEND;TZID=Europe/Berlin:{{ blk.ende.strftime('%Y%m%dT%H%M%S') }} +STATUS:{% + if blk.confirmed %}CONFIRMED{% + else %}TENTATIVE{% endif %} +LOCATION:{{ blk.ort }} +DESCRIPTION:{{ blk.description|replace( "|", "\n") }}\n{{ blk.url }} +END:VEVENT{% + endfor %} +END:VCALENDAR