Messages
Ordered list of dispatched messages across all your buses
"Contao\CoreBundle\Messenger\Message\SearchIndexMessage" |
|
|---|---|
| Caller | In SearchIndexListener.php line |
| Bus | messenger.bus.default |
| Message | Contao\CoreBundle\Messenger\Message\SearchIndexMessage {#11774 -document: Contao\CoreBundle\Search\Document {#11773 -originalDocument: null -jsonLds: null -uri: Nyholm\Psr7\Uri {#11775 -scheme: "https" -userInfo: "" -host: "dls.c5.bargon.net" -port: null -path: "/datenschutz" -query: "" -fragment: "" } -statusCode: 200 -headers: [ "cache-control" => [ "max-age=1800, private" ] "date" => [ "Sat, 04 Apr 2026 10:07:52 GMT" ] "content-type" => [ "text/html; charset=UTF-8" ] "x-cache-debug" => [ "1" ] "x-content-type-options" => [ "nosniff" ] "referrer-policy" => [ "no-referrer-when-downgrade, strict-origin-when-cross-origin" ] "permissions-policy" => [ "interest-cohort=()" ] "strict-transport-security" => [ "max-age=31536000" ] "x-cache-tags" => [ "contao.db.tl_module.39,contao.db.tl_module.40,contao.db.tl_page.68,contao.db.tl_page.48,contao.db.tl_page.49,contao.db.tl_page.50,contao.db.tl_page.18,contao.db.tl_page.60,contao.db.tl_page.101,contao.db.tl_page.5,contao.db.tl_page.45,contao.db.tl_page.46,contao.db.tl_page.75,contao.db.tl_page.47,contao.db.tl_page.61,contao.db.tl_page.71,contao.db.tl_page.38,contao.db.tl_page.14,contao.db.tl_page.15,contao.db.tl_page.16,contao.db.tl_page.17,contao.db.tl_page.43,contao.db.tl_page.44,contao.db.tl_page.6,contao.db.tl_page.77,contao.db.tl_page.69,contao.db.tl_page.70,contao.db.tl_page.76,contao.db.tl_page.3,contao.db.tl_module.91,contao.db.tl_module.86,contao.db.tl_form_field.37,contao.db.tl_form_field.83,contao.db.tl_form_field.38,contao.db.tl_form.2,contao.db.tl_module.67,contao.db.tl_article.78,contao.db.tl_content.422,contao.db.tl_content.941,contao.db.tl_module.58,contao.db.tl_content.1656,contao.db.tl_module.94,contao.db.tl_article.219,contao.db.tl_content.2875,contao.db.tl_content.2870,contao.db.tl_content.2871,contao.db.tl_content.2872,contao.db.tl_content.2873,contao.db.tl_content.2874,contao.db.tl_content.2877,contao.db.tl_content.2876,contao.db.tl_content.2878,contao.db.tl_content.2879,contao.db.tl_page.1,contao.db.tl_page.57" ] "x-frame-options" => [ "SAMEORIGIN" ] "x-xss-protection" => [ "1; mode=block" ] "x-debug-token" => [ "c6f7c9" ] "x-debug-token-link" => [ "https://dls.c5.bargon.net/_profiler/c6f7c9" ] "x-robots-tag" => [ "noindex" ] ] -body: """ \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/frontend/fe_page.html5 -->\n <!DOCTYPE html>\n <html lang="de">\n <head>\n \n <meta charset="UTF-8">\n <title>Datenschutzerklärung - DLS Vollkorn-Mühlenbäckerei GmbH</title>\n <base href="https://dls.c5.bargon.net/">\n \n <meta name="robots" content="noindex,follow">\n <meta name="description" content="">\n <meta name="generator" content="Contao Open Source CMS">\n \n <link rel="canonical" href="https://dls.c5.bargon.net/datenschutz">\n \n <meta name="viewport" content="width=device-width, initial-scale=1.0">\n <link rel="stylesheet" href="/assets/colorbox/css/colorbox.min.css?v=83af8d5b"><link rel="stylesheet" href="/assets/tablesorter/css/tablesorter.min.css?v=54af7ed9"><link rel="stylesheet" href="/assets/swipe/css/swipe.min.css?v=693e5985"><link rel="stylesheet" href="/files/template/css/animate.css?v=0ed69536"><link rel="stylesheet" href="/files/template/genericons/genericons.css?v=0ed69536"><link rel="stylesheet" href="/files/template/gylphicons/css/glyphicons.css?v=f752d113"><link rel="stylesheet" href="/assets/css/files_template_nutschell_nutshell.scss.css?v=b13f3554"><link rel="stylesheet" href="/files/template/stickyfooter/stickyfooter.css?v=b13f3554"><link rel="stylesheet" href="/files/template/superfish/css/superfish-base.css?v=c2e82606"><link rel="stylesheet" href="/files/template/superfish/css/superfish.css?v=c2e82606"><link rel="stylesheet" href="/files/template/Webfonts/Lato/lato.css?v=a8cf0e00"><link rel="stylesheet" href="/assets/css/files_template_redesign24_css_Catalog_Manager.scss.css?v=a937c135"><link rel="stylesheet" href="/files/template/redesign24/font/fontawsome/css/all.min.css?v=c6f0d1a0"><link rel="stylesheet" href="/files/template/redesign24/font/fontawsome/css/fontawesome.min.css?v=4d19a741"><link rel="stylesheet" href="/files/template/redesign24/font/fontawsome/css/regular.min.css?v=4d19a741"><link rel="stylesheet" href="/files/template/redesign24/font/fontawsome/css/solid.min.css?v=4d19a741"><link rel="stylesheet" href="/files/template/redesign24/font/fontawsome/css/svg-with-js.min.css?v=c6f0d1a0"><link rel="stylesheet" href="/files/template/redesign24/font/fontawsome/css/v4-shims.min.css?v=c6f0d1a0"><link rel="stylesheet" href="/assets/css/files_template_redesign24_css_Job_seite.scss.css?v=e0d54b4a"><link rel="stylesheet" href="/assets/css/files_template_redesign24_css_footer.scss.css?v=5e9441ed"><link rel="stylesheet" href="/files/template/css/images.css?v=d254393c"><link rel="stylesheet" href="/files/template/css/infoboxen.css?v=650e63b7"><link rel="stylesheet" href="/files/template/css/nav.css?v=35dcf5f4"><link rel="stylesheet" href="/files/template/css/print.css?v=50cc44a7"><link rel="stylesheet" href="/files/template/css/slider.css?v=50cc44a7"><link rel="stylesheet" href="/files/template/css/stoerer.css?v=cd53d694"><link rel="stylesheet" href="/files/template/css/storelocator.css?v=39a28d24"><link rel="stylesheet" href="/files/template/css/suche.css?v=39a28d24"><link rel="stylesheet" href="/files/template/css/template.css?v=bc56051d"><link rel="stylesheet" href="/files/template/css/typo.css?v=565db84e"><link rel="stylesheet" href="/files/template/css/media_query_suche.css?v=41b65082"><link rel="stylesheet" href="/files/template/css/ipad-landscape.css?v=1da9995b"><link rel="stylesheet" href="/files/template/css/ipad-portrai.css?v=30476927"><link rel="stylesheet" href="/files/template/css/mobile.css?v=58ace8c1"> <script src="/assets/jquery/js/jquery.min.js?v=2e868dd8"></script><meta name="google-site-verification" content="vCOjj0OiVboifZPL3zwe5WH5TKhOFiNNtVOo49vYriE" />\n <script src="files/template/stickyfooter/stickyfooter.js"></script>\n <script type="text/javascript" src="files/template/js/js/jquery.min.js"></script>\n <link rel="apple-touch-icon" sizes="144x144" href="files/template/favicon/apple-touch-icon.png">\n <link rel="icon" type="image/png" sizes="32x32" href="files/template/favicon/favicon-32x32.png">\n <link rel="icon" type="image/png" sizes="16x16" href="files/template/favicon/favicon-16x16.png">\n <link rel="manifest" href="files/template/favicon/site.webmanifest">\n <link rel="mask-icon" href="files/template/favicon/safari-pinned-tab.svg" color="#5bbad5">\n <link rel="shortcut icon" href="files/template/favicon/favicon.ico">\n <meta name="msapplication-TileColor" content="#da532c">\n <meta name="msapplication-config" content="files/template/favicon/browserconfig.xml">\n <meta name="theme-color" content="#ffffff">\n \n </head>\n <body id="top" class="ohne-kopfbild">\n \n \n <div id="wrapper">\n \n <header id="header">\n <div class="inside">\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <div id="logolink">\n \t<a href="https://dls.c5.bargon.net/" title="zurück zur Startseite">\n \t\t<img src="files/template/img/Logo.png" alt="DLS Logo"/>\n \t</a>\n </div>\n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <div class="mainnav">\n \t<div class="nav-wrapper">\n \t<div class="nav-inside">\n \t\t\n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/modules/mod_navigation.html5 -->\n \n <!-- indexer::stop -->\n <nav class="mod_navigation mainnav block">\n \n \n <a href="/datenschutz#skipNavigation91" class="invisible">Navigation überspringen</a>\n \n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n \n <ul class="level_1">\n <li class="submenu sibling"><a href="/ueber-uns" title="Über DLS" class="submenu sibling" aria-haspopup="true">Über uns</a>\n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n \n <ul class="level_2">\n <li><a href="/ueber-uns/nachhaltigkeit" title="Nachhaltigkeit">Nachhaltigkeit</a></li>\n <li><a href="/ueber-uns/unsere-verantwortung" title="Unsere Verantwortung">Unsere Verantwortung</a></li>\n <li class="img-100"><a href="/ueber-uns/unsere-qualitaet" title="Unsere Qualität" class="img-100">Unsere Qualität</a></li>\n <li><a href="/ueber-uns/unser-handwerk" title="Unser Handwerk">Unser Handwerk</a></li>\n <li><a href="/ueber-uns/zertifizierungen" title="Zertifizierungen">Zertifizierungen</a></li>\n <li class="ohne-kopfbild"><a href="/ueber-uns/faq" title="FAQ - Kunden fragen DLS" class="ohne-kopfbild">FAQ</a></li>\n <li class="karriere"><a href="/karriere" title="Karriere" class="karriere">Karriere</a></li>\n </ul>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n </li>\n <li class="submenu sibling"><a href="/aktuelles" title="Aktuelles" class="submenu sibling" aria-haspopup="true">Aktuelles</a>\n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n \n <ul class="level_2">\n <li class="ohne-kopfbild"><a href="/aktuelles/termine" title="Termine" class="ohne-kopfbild">Termine</a></li>\n <li class="ohne-kopfbild"><a href="/aktuelles/presse" title="Presse" class="ohne-kopfbild">Presse</a></li>\n <li class="ohne-kopfbild"><a href="/aktuelles/gewinnspiel" title="Gewinnspiel" class="ohne-kopfbild">Gewinnspiel</a></li>\n <li class="ohne-kopfbild"><a href="/aktuelles/frisch-aus-der-backstube" title="Frisch aus der Backstube" class="ohne-kopfbild">Frisch aus der Backstube</a></li>\n <li><a href="/aktuelles/dls-erleben" title="DLS erleben">DLS erleben</a></li>\n <li><a href="/ueber-uns/interview-mit-biobauer-juergen-becker" title="Interview mit Biobauer Jürgen Becker">Interview mit Biobauer Jürgen Becker</a></li>\n </ul>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n </li>\n <li class="submenu sibling"><a href="/sortiment" title="Sortiment" class="submenu sibling" aria-haspopup="true">Sortiment</a>\n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n \n <ul class="level_2">\n <li><a href="/sortiment/produktkategorien/brote" title="Brote">Brote</a></li>\n <li><a href="/sortiment/produktkategorien/broetchen" title="Brötchen">Brötchen</a></li>\n <li><a href="/sortiment/produktkategorien/kuchen" title="Kuchen">Kuchen</a></li>\n <li><a href="/sortiment/produktkategorien/dauergebaeck" title="Dauergebäck">Dauergebäck</a></li>\n <li><a href="/sortiment/snacks" title="Snacks">Teilchen & Snacks</a></li>\n <li><a href="/sortiment/saisonales" title="Saisonales">Saisonales</a></li>\n </ul>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n </li>\n <li class="img-100 sibling"><a href="/toasty" title="Toasty" class="img-100 sibling">Toasty</a></li>\n <li class="submenu ohne-kopfbild sibling"><a href="/dls-vor-ort" title="DLS vor Ort" class="submenu ohne-kopfbild sibling" aria-haspopup="true">DLS vor Ort</a>\n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n \n <ul class="level_2">\n <li class="ohne-kopfbild"><a href="/dls-vor-ort/standorte-dls-l%C3%A4den-m%C3%A4rkte" title="Standorte - DLS Läden und Märkte" class="ohne-kopfbild">Standorte - DLS Läden/Märkte</a></li>\n <li class="ohne-kopfbild"><a href="/standorte/standorte-partner-laeden" title="Standorte - Partner Läden" class="ohne-kopfbild">Standorte - Partner Läden</a></li>\n </ul>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n </li>\n <li class="kontakt sibling"><a href="/kontakt" title="Kontakt" class="kontakt sibling">Kontakt</a></li>\n </ul>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/navigation/nav_default.html5 -->\n \n <span id="skipNavigation91" class="invisible"></span>\n \n </nav>\n <!-- indexer::continue -->\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/modules/mod_navigation.html5 -->\n \n \t</div>\n \t</div>\n </div>\n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <div class="search-icon" id="such-icon" onclick="javascript:show('search-form'); return false">\n \t<img src="files/template/img/search-white.svg">\n </div>\n <div style="display: none" id="search-form">\n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/forms/form_wrapper.html5 -->\n \n <!-- indexer::stop -->\n <div class="ce_form block">\n \n \n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/forms/form_inline.html5 -->\n <form action="/suchergebnisse" method="get" enctype="application/x-www-form-urlencoded" id="search">\n <div class="formbody">\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/forms/form_text.html5 -->\n \n <div class="widget widget-text">\n \n \n <input type="text" name="keywords" id="ctrl_37" class="text" value="">\n </div>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/forms/form_text.html5 -->\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/forms/form_radio.html5 -->\n \n <div class="widget widget-radio">\n \n <fieldset id="ctrl_83" class="radio_container">\n \n \n \n \n <span><input type="radio" name="suchweiche" id="opt_83_0" class="radio" value="volltext" checked> <label id="lbl_83_0" for="opt_83_0">Volltextsuche</label></span>\n \n \n </fieldset>\n </div>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/forms/form_radio.html5 -->\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/forms/form_submit.html5 -->\n \n <div class="widget widget-submit">\n \n <button type="submit" id="ctrl_38" class="submit">Suchen</button>\n </div>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/forms/form_submit.html5 -->\n </div>\n </form>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/forms/form_inline.html5 -->\n \n </div>\n <!-- indexer::continue -->\n \n <script>\n document.currentScript.previousElementSibling.querySelector('form')?.addEventListener('submit', e => {\n // Prevent double form submission\n if (e.submitter) {\n setTimeout(() => e.submitter.disabled = true);\n setTimeout(() => e.submitter.disabled = false, 30000);\n }\n });\n </script>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/forms/form_wrapper.html5 -->\n </div>\n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n </div>\n </header>\n \n \n <div id="container">\n \n <main id="main">\n <div class="inside">\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <div class="facebook-link">\n \t<a href="https://www.facebook.com/ihredls/" title="zur Fanseite von DLS" target="_blank">\n \t\t<img src="files/content/icons/facebook-dls.png" alt="facebooklogo">\n \t</a>\n </div>\n <div class="Instragm-link">\n \t<a href="https://www.instagram.com/ihredls/" title="zur Instgramseite von DLS" target="_blank">\n \t\t<img src="files/content/icons/instagram_dls.png" alt="instagramlogo">\n \t</a>\n </div>\n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <!-- TEMPLATE START: vendor/heart-bits/contao-article-backgrounds-bundle/src/Resources/contao/templates/mod_article.html5 -->\n \n \n <div class="mod_article block" id="article-78">\n \n \n <div class="inside">\n \n <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12 ">\n \n \n <div class="content-text"> \n <h1>Hinweise zum Datenschutz</h1>\n \n \n \n \n <div class="rte">\n <p>Auf dieser Seite finden Sie Informationen zum Datenschutz im Zusammenhang mit unserem Online-Angebot, insbesondere dazu, welche personenbezogenen Daten beim Besuch unserer Website regelmäßig oder auf konkrete Anfrage hin erhoben werden. Wir informieren Sie außerdem darüber, zu welchem Zweck und auf welcher Rechtsgrundlage die Verarbeitung jeweils erfolgt und welche Rechte Ihnen als Besucher der Website diesbezüglich zustehen.<br> Wir haben uns bemüht, die Erläuterungen so verständlich wie möglich zu halten und stehen Ihnen für Nachfragen gerne zur Verfügung. Die entsprechenden Kontaktdaten finden Sie am Ende dieses Dokuments.<br> <br> Hinweis: Wenn im Folgenden Begriffe wie "Verantwortlicher", "Betroffener", "personenbezogene Daten", "Verarbeitung" etc. auftauchen, nutzen wir an diesen Stellen die Definitionen aus Artikel 4 der Europäischen Datenschutzgrundverordnung (EU-DSGVO). Den Text der EU-DSGVO finden Sie zum Beispiel hier: <a href="https://eur-lex.europa.eu/legal-content/DE/ALL/?uri=CELEX:02016R0679-20160504" target="_blank">https://eur-lex.europa.eu/legal-content/DE/ALL/?uri=CELEX:02016R0679-20160504</a>.</p>\n <h2>Verarbeitung personenbezogener Daten</h2>\n <p>Wir möchten Sie mit unserem Online-Angebot unter anderem über unsere Leistungen und Angebote informieren und Ihnen die Möglichkeit zu einfacher Kontaktaufnahme oder Inanspruchnahme unserer Leistungen geben. Soweit wir im Rahmen unseres Online-Angebotes personenbezogene Daten verarbeiten, erfolgt dies über diesen Kernzweck hinaus auch zu den jeweils in dieser Datenschutzerklärung jeweils angegebenen Zwecken.<br> <br> <strong>Aufruf unseres Online-Angebotes</strong><br> Um die von Ihnen abgerufenen Inhalte unseres Online-Angebotes (z.B. Bilder, Texte, Dokumente) an Ihren Computer übermitteln zu können, erfassen uns speichern wir die Ihrem Computer zum Zeitpunkt des Abrufes zugewiesene IP-Adresse. Rechtsgrundlage für diese Verarbeitung ist Artikel 6 Abs. 1 lit b DSGVO. Wir nutzen diese Daten außerdem zur Abwehr missbräuchlicher Nutzung und zur Verfolgung damit in Zusammenhang stehender Straftaten und berufen uns insoweit auf Artikel 6 Abs. 1 lit f (Unser berechtigtes Interesse in diesem Fall: Die Sicherstellung einer ordnungsgemäßen Datenverarbeitung und die Verfügbarkeit unseres Online-Angebotes).<br> <br> <strong>Sonstige Zwecke</strong><br> Sofern Sie uns im Rahmen einer Anfrage, einer Buchung oder Bestellung personenbezogene Daten (Namen, Adressen, Kontaktdaten) mitteilen, werden diese ausschließlich für die Bearbeitung dieser Anfrage, die Erteilung eines von Ihnen angefragten Angebotes oder zur Abwicklung eines daraus resultierenden Vertragsverhältnisses verarbeitet. Rechtsgrundlage für diese Verarbeitung ist daher Artikel 6 Abs. 1 lit b DSGVO. Ohne das Vorliegen und die Verarbeitung dieser Daten ist eine Bearbeitung Ihrer Anfrage, Buchung oder Bestellung nicht möglich. Gleichwohl können Sie, sofern die Verarbeitung der Sie betreffenden Daten im Einzelfall auf einer Einwilligung (Artikel 6 Abs. 1 lit a DSGVO) beruht, diese Einwilligung jederzeit widerrufen. Dies berührt jedoch nicht die Rechtmäßigkeit der Verarbeitung bis zum Widerruf.<br> <br> <strong>Weitergabe an Dritte</strong><br> Sofern wir im Rahmen der Verarbeitung Ihre personenbezogene Daten gegenüber anderen Personen und Unternehmen (Auftragsverarbeitern oder Dritten) offenbaren, Daten an diese übermitteln oder ihnen in sonstiger Weise Zugriff auf diese Daten gewähren, erfolgt dies in jedem Fall nur auf Basis einer gesetzlichen Erlaubnis. Diese kann sich aus Vertragserfüllung (Artikel 6 Abs. 1 lit b DSGVO) einer von Ihnen erteilten Einwilligung (Artikel 6 Abs. 1 lit a DSGVO), eine rechtlichen Verpflichtung (Artikel 6 Abs. 1 lit c DSGVO) oder aus unsereren berechtigten Interessen (Artikel 6 Abs.1 lit f DSGVO) ergeben. In Frage kommen beispielsweise Dienstleister im Bereich Webhosting, E-Mail-Marketing, Softwarenentwicklung oder Dienstleister in der Kundenbetreuung bzw. Auftragsabwicklung.<br> <br> Wenn wir Dritte mit der Verarbeitung Ihrer personenbezogenen Daten beauftragen, geschieht dies immer auf Grundlage eines entsprechenden Vertrages zur Auftragsverarbeitung gemäß Artikel 28 DSGVO. Wir wählen die Dienstleister sorgfältig aus und überprüfen regelmäßig die Einhaltung des Datenschutzes bei diesen Partnern. Bei der Übermittlung von Daten treffen wir Vorkehrungen um auszuschließen, dass andere als die vertraglich gebundenen Dienstleister Kenntnis von Ihren personenbezogenen Daten erhalten. Die von uns beauftragten Dienstleister werden durch den Vertrag zur Auftragsverarbeitung verpflichtet, Ihre Daten ausschließlich entsprechend unserer Weisungen und den jeweils gültigen Datenschutznormen zu verarbeiten. Ihnen ist zudem untersagt, die Daten zu anderen als den vereinbarten Zwecken zu verarbeiten.<br> <br> Wir verkaufen Ihre Daten nicht an Dritte und vermarkten sie auch nicht anderweitig.<br> <br> Wenn es zur Aufklärung einer rechtswidrigen Nutzung unseres Online-Angebotes oder für die Rechtsverfolgung erforderlich ist, geben wir Ihre personenbezogenen Daten auch ohne Ihre ausdrückliche Einwilligung an Strafverfolgungsbehörden sowie gegebenenfalls an geschädigte Dritte weiter, sofern konkrete Anhaltspunkte für ein gesetzwidriges beziehungsweise missbräuchliches Verhalten vorliegen. Eine Weitergabe kann auch erfolgen, wenn dies der Durchsetzung von Nutzungsbedingungen oder anderer Vereinbarungen dient. Wir sind zudem gesetzlich verpflichtet, auf Anfrage bestimmten öffentlichen Stellen Auskunft zu erteilen. Dies sind Strafverfolgungsbehörden, Behörden, die bußgeldbewehrte Ordnungswidrigkeiten verfolgen und die Finanzbehörden. Die Weitergabe Ihrer Daten erfolgt in diesen Fällen auf Grundlage unseres berechtigten Interesses an der Bekämpfung von Missbrauch, der Verfolgung von Straftaten und der Sicherung, Geltendmachung und Durchsetzung von Ansprüchen (Artikel 6 Abs. 1 lit. f DSGVO) oder zur Erfüllung einer entsprechenden gesetzlichen Verpflichtung (Artikel 6 Abs. 1 lit c DSGVO).<br> <br> <strong>Übermittlungen in Drittländer</strong><br> Sofern wir Daten in einem Drittland (also außerhalb der Europäischen Union oder des Europäischen Wirtschaftsraums) verarbeiten oder dies im Rahmen der Inanspruchnahme von Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an Dritte geschieht, stellen wir sicher, dass es nur im Rahmen der oben genannten gesetzlichen Erlaubnisse, in der Regel also zur Erfüllung (vor)vertraglicher Pflichten, auf Grundlage Ihrer Einwilligung, aufgrund einer rechtlichen Verpflichtung oder auf Grundlage unserer berechtigten Interessen geschieht. Wir stellen zudem sicher, dass wir personenbezogene Daten in einem Drittland nur bei Vorliegen besonderer Voraussetzungen gemäß Artikel 44 ff. DSGVO verarbeiten, also insbesondere auf Grundlage besonderer Garantien, wie der Feststellung eines Datenschutzniveaus, das dem der Europäischen Union enspricht. Dies umfasst auch die Beachtung offiziell anerkannter, vertraglicher Verpflichtungen (Standardvertragsklauseln der Europäischen Union).</p>\n <h2>Sicherheit der Datenverarbeitung</h2>\n <p>Wir setzen technische und organisatorische Sicherungsmaßnahmen ein, um die von Ihnen zur Verfügung gestellten personenbezogenen Daten vor zufälliger oder vorsätzlicher Manipulation, Verlust, Zerstörung oder unbefugter Kenntnisnahme durch Dritte zu schützen. Diese Vorkehrungen verlangen wir auf vertraglicher Basis auch von unseren Dienstleistern, die Kontakt zu personenbezogenen Daten haben oder bekommen könnten. Soweit Sie die Möglichkeit haben, im Rahmen unseres Online-Angebotes personenbezogene Daten mitzuteilen (Kontaktformular o.ä.), erfolgt die Übermittlung unter Einsatz einer starken Verschlüsselung.</p>\n <h2>Regelfristen für die Löschung von Daten</h2>\n <p>Wir löschen routinemäßig personenbezogene Daten, wenn vom Gesetzgeber gesetzten Fristen für Aufbewahrungspflichten abgelaufen sind. Sofern Ihre personenbezogenen Daten hiervon nicht berührt sind, werden sie gelöscht oder anonymisiert, wenn die im Rahmen dieser Datenschutzerklärung genannten Zwecke wegfallen. Wenn diese Datenschutzerklärung anderweitig keine anderen, abweichenden Bestimmungen hinsichtlich der Speicherung von Daten enthält, werden die von uns erhobenen Daten so lange gespeichert, wie sie für die genannten Zwecke, für die sie erhoben worden sind, erforderlich sind.</p>\n <h2>Missbrauchserkennung und -verfolgung</h2>\n <p>Informationen zur Erkennung von Missbrauch sowie zur Verfolgung von Missbrauch, insbesondere Ihre beim Abruf von Informationen aus unserem Online-Angebot erfasste IP-Adresse, halten wir maximal 7 Tage vor. Rechtsgrundlage hierfür ist Artikel 6 Abs. 1 lit. f DSGVO. Unser berechtigtes Interesse liegt dabei im störungsfreien Betrieb unseres Online-Angebotes sowie in der Abwehr von Missbrauch oder Angriffen auf unser Online-Angebot.</p>\n <h2>Einsatz von Cookies</h2>\n <p>Um unseren Internetauftritt für Sie benutzerfreundlich zu gestalten und optimal auf Ihre Bedürfnisse abzustimmen, setzen wir möglicherweise in einigen Bereichen Cookies ein. Als „Cookies“ werden kleine Dateien bezeichnet, die bei Nutzung unseres Online-Angebots auf Rechnern der Nutzer gespeichert werden. Innerhalb der Cookies können unterschiedliche Angaben gespeichert werden, primär dient es bei uns dazu, die Angaben zu einem Nutzer (bzw. dem Gerät auf dem das Cookie gespeichert ist) während oder auch nach seinem Besuch innerhalb eines Onlineangebotes zu speichern. <br> Temporäre Cookies Cookies (Session Coookies) sind in der Regel von grundlegender Bedeutung für die Funktion unserer Website. Dies ist zum Beispiel die Vergabe von anonymen Session-IDs zur Bündelung mehrerer Abfragen an einen Web-Server oder die fehlerfreie Funktion von Anmeldungen und Bestellungen. Diese temporären Cookies werden nach Ende Ihres Besuchs automatisch gelöscht. Andere (persistente) Cookies bleiben auf Ihrem Endgerät gespeichert bis Sie diese löschen. Diese Cookies ermöglichen es uns, Ihren Browser beim nächsten Besuch wiederzuerkennen.<br> Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies informiert werden und Cookies nur im Einzelfall erlauben, die Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie das automatische Löschen der Cookies beim Schließen des Browser aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität dieser Website eingeschränkt sein.<br> Cookies, die zur Bereitstellung bestimmter Funktionen (z.B. Warenkorbfunktion) erforderlich sind, werden auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO gespeichert. Als Anbieter dieser Funktionen haben wir ein berechtigtes Interesse an der Speicherung dieser Cookies zur technisch einwandfreien und optimalen Bereitstellung unserer Dienste. Soweit andere Cookies (z.B. Cookies zur Analyse Ihres Surfverhaltens) gespeichert werden, weisen wir in dieser Datenschutzerklärung noch an anderer Stelle gesondert darauf hin.<br> Wenn Sie nicht möchten, dass Cookies auf Ihrem Rechner gespeichert werden, können Sie die entsprechende Option in den Systemeinstellungen ihres Browsers deaktivieren. Bereits gespeicherte Cookies können in den Systemeinstellungen des Browsers gelöscht werden. Unabhängig hiervon können Sie auch generell einen Widerspruch gegen den Einsatz von dem Direktmarketing dienenden Cookies und dem damit evtl. verbundenen Tracking auf Seiten wie beispielsweise <a href="http://www.aboutads.info/choices/" target="blank">http://www.aboutads.info/choices/</a> (USA) oder <a href="http://www.youronlinechoices.com/" target="blank">http://www.youronlinechoices.com/</a> erklären.</p>\n <h2>Ihre Rechte hinsichtlich der Verarbeitung personenbezogener Daten</h2>\n <p><strong>Auskunftsrecht</strong><br> Sie haben das Recht, von uns Auskunft darüber zu verlangen, ob wir personenbezogene Daten über Sie verarbeiten. Ist das der Fall, haben wir Ihnen gemäß Artikel 15 Abs. 1 DSGVO Auskunft zu erteilen über</p>\n <ul>\n <li>die Verarbeitungszwecke;</li>\n <li>die Kategorien personenbezogener Daten, die verarbeitet werden;</li>\n <li>die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt worden sind oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen Organisationen;</li>\n <li>falls möglich die geplante Dauer, für die die personenbezogenen Daten gespeichert werden, oder, falls dies nicht möglich ist, die Kriterien für die Festlegung dieser Dauer;</li>\n <li>das Bestehen eines Rechts auf Berichtigung oder Löschung der Sie betreffenden personenbezogenen Daten oder auf Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung;</li>\n <li>das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde;</li>\n <li>wenn die personenbezogenen Daten nicht bei Ihnen erhoben werden, alle verfügbaren Informationen über die Herkunft der Daten;</li>\n <li>das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling gemäß Artikel 22 Absätze 1 und 4 DSGVO und – zumindest in diesen Fällen – aussagekräftige Informationen über die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung für Sie als betroffene Person.</li>\n </ul>\n <p>Die Auskunft ist von uns innerhalb eines Monats nach Eingang Ihrer Anfrage zu erteilen. Bitte beachten Sie, dass wir ggfls. einen Nachweis Ihrer Identiät benötigen, um den Auskunftsanspruch erfüllen zu können. <br> <br> <strong>Recht zur Berichtigung unrichtiger Daten</strong><br> Sollten die Sie betreffenden personenbezogenen Daten unrichtig sein, haben Sie ein Recht darauf, dass diese unverzüglich von uns korrigiert werden (Artikel 16 DSGVO).<br> <br> <strong>Recht auf Löschung</strong><br> Sie haben unter bestimmten Voraussetzungen ein Recht auf unverzügliche Löschun der Sie betreffenden personenbezogenen Daten. Dies ist beispielsweise der Fall, wenn die personenbezogenen Daten für die Zwecke, für die sie ursprünglich erhoben werden, nicht mehr notwendig sind, Sie eine für die Verarbeitung notwendige Einwilligung widerrufen haben oder es aus anderen Gründen an einer für die Verarbeitung notwendigen Rechtsgrundlage fehlt. Soweit Sie Widerspruch gegen die Verarbeitung erhoben haben und keine vorrangigen Gründe für die Verarbeitung der Sie betreffenden personenbezogenen Daten vorliegen, müssen die Daten ebenfalls gelöscht werden. Im Falle der Direktwerbung sind die Daten in jedem Fall zu löschen, wenn Sie gegen die Verarbeitung Widerspruch erhoben haben. Weitere Details ergeben sich aus Artikel 17 DSGVO.<br> <br> <strong>Recht auf Einschränkung der Verarbeitung</strong><br> Unter bestimmten Voraussetzungen haben Sie ein Recht auf Einschränkung der Verarbeitung der Sie betreffenden personenbezogenen Daten (Artikel 18 DSGVO). Dies ist beispielsweise dann der Fall, wenn die Verarbeitung durch uns nicht rechtmäßig ist, Sie aber eine Löschung der Daten ablehnen und stattdessen die Einschränkung der Nutzung verlangen. Ebenso ist die Verarbeitung einzuschränken, während wir auf Ihren Widerspruch hin prüfen, ob unsere berechtigten Gründe für die Verarbeitung gegen Ihren überwiegen.<br> <br> <strong>Recht auf Datenübertragbarkeit</strong><br> Aus Artikel 20 DSGVO ergibt sich Ihr Recht, die Sie betreffenden Daten, die Sie uns bereitgestellt haben, in einem gängigen, strukturierten und maschinenlesbaren Format zu erhalten bzw. diese Daten an einen anderen Verantwortlichen, zum Beispiel einen anderen Diensteanbieter, zu übergeben. Dies setzt allerdings voraus, dass die Verarbeitung dieser Daten auf einer Einwilligung oder einem Vertrag beruht und mithilfe automatisierter Verfahren erfolgt.<br> <br> <strong>Widerspruchsrecht</strong><br> Sie haben das Recht, jederzeit gemäß Artikel 21 DSGVO Widerspruch gegen die Verarbeitung Sie betreffender personenbezogener Daten einzulegen, wenn hierfür Gründe vorliegen, die sich aus Ihrer besonderen Situation ergeben, soweit es sich um Daten handelt, die auf Grundlage von Artikel 6 Abs. 1 lit. e oder f DSGVO erfolgt. Dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling. Wir werden in diesem Fall die Verarbeitung der Daten einstellen, soweit wir nicht zwingende schutzwürdige Gründe für die Verarbeitung vorweisen können, die Ihre Interessen, Rechte und Freiheiten überwiegen oder wenn die Verarbeitung der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen dient. <br> <br> Alle vorgenannten Rechte können Sie postalisch oder durch eine E-Mail an uns geltend machen. Die entsprechenden Kontaktdaten finden Sie am Ende dieses Dokuments.</p>\n <h2>Recht zur Beschwerde bei einer Aufsichtsbehörde</h2>\n <p>Sie haben die Möglichkeit, sich an eine Aufsichtsbehörde zu wenden, wenn Sie Bedenken oder konkrete Beschwerden hinsichtlich der bei uns stattfindenden Verarbeitung personenbezogener Daten haben. Beispielsweise können Sie die für uns zuständige Aufsichtsbehörde kontaktieren:<br> <br>Landesbeauftragte für Datenschutz und Informationsfreiheit Nordrhein-Westfalen<br>Postfach 20 04 44<br>40102 Düsseldorf<br>Telefon: 0211/38424-0<br>Telefax: 0211/38424-10<br>E-Mail: poststelle@ldi.nrw.de</p>\n <h2>Kontaktaufnahme</h2>\n <p>Bei der Kontaktaufnahme mit uns (z.B. per Kontaktformular, E-Mail, Telefon oder via sozialer Medien) werden von Ihnen übermittelte personenbezogene Daten zur Bearbeitung der Kontaktanfrage und deren Beantwortung gem. Art. 6 Abs. 1 lit. b) DSGVO verarbeitet. <br> Es erfolgt keine Weitergabe dieser personenbezogenen Daten an Dritte, soweit dies nicht für die Bearbeitung der Anfrage erforderlich und deshalb von der Erlaubnis nach Artikel 6 Abs. 1 lit. b DSGVO gedeckt ist.<br>Wir löschen die Anfragen, sofern die Verarbeitung nicht mehr erforderlich ist. Wir überprüfen die Erforderlichkeit alle zwei Jahre; Ferner gelten die gesetzlichen Archivierungspflichten.</p>\n <h2>Hosting</h2>\n <p>Wir nehmen für die Bereitstellung dieses Online-Angebotes Hosting-Dienstleistungen bei einem externen Dienstleister in Anspruch. Hierbei verarbeiten wir, bzw. unser Hostinganbieter Bestandsdaten, Kontaktdaten, Inhaltsdaten, Vertragsdaten, Nutzungsdaten, Meta- und Kommunikationsdaten von Kunden, Interessenten und Besuchern dieses Onlineangebotes auf Grundlage unserer berechtigten Interessen an einer effizienten und sicheren Zurverfügungstellung dieses Onlineangebotes gem. Art. 6 Abs. 1 lit. f DSGVO.<br> Mit dem entsprechenden Dienstleister haben wir eine Vereinbarung zur Auftragsverarbeitung gem. Art. 28 DSGVO abgeschlossen und gewährleisten so, dass der Datenschutz auch bei diesem umgesetzt wird.</p>\n <h2>Erhebung von Zugriffsdaten und Logfiles</h2>\n <p>Wir, bzw. unser Hostinganbieter, erhebt Protokolle und Statistiken über jeden Zugriff auf den Server, auf dem Unser Online-Angebot bereitgestellt wird. Zu diesen Zugriffsdaten gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit des Abrufs, übertragene Datenmenge, Meldung über erfolgreichen Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, Referrer URL (die zuvor besuchte Seite), IP-Adresse und der anfragende Provider. Rechtsgrundlage für diese Verarbeitung ist Art. 6 Abs. 1 lit. f. DSGVO. Unser berechtigtes Interesse liegt in der technisch einwandfreien Zuverfügungstellung dieses Online-Angebotes sowie in der Aufklärung von Missbrauchs oder strafbaren Handlungen.<br> <br> Die vorgenannten Informationen werden aus Sicherheitsgründen (z.B. zur Aufklärung von Missbrauchs- oder Betrugshandlungen) für die Dauer von maximal 7 Tagen gespeichert und danach gelöscht oder vollständig anonymisiert. Daten, deren weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung ausgenommen.</p>\n <h2>Google Analytics</h2>\n <p>Diese Web-Site benutzt Google Universal Analytics, einen Webanalysedienst der Google Inc. ("Google"). Google Universal Analytics verwendet sog. "Cookies", Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Web-Site durch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Web-Site (einschließlich Ihrer IP-Adresse) werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Rechtsgrundlage für die Nutzung von Google Analytics sind unsere berechtigten Interessen an der Analyse, Optimierung und wirtschaftlichem Betrieb unseres Onlineangebotes im Sinne des Art. 6 Abs. 1 lit. f. DSGVO. <br> <br> Google ist unter dem Privacy-Shield-Abkommen zertifiziert und bietet hierdurch eine Garantie, das europäische Datenschutzrecht einzuhalten (<a href="https://www.privacyshield.gov/participant?id=a2zt000000001L5AAI&status=Active">https://www.privacyshield.gov/participant?id=a2zt000000001L5AAI&status=Active</a>).<br> <br> Google wird diese Informationen in unserem Auftrag benutzen, um die Nutzung unseres Onlineangebotes durch die Nutzer auszuwerten, um Reports über die Aktivitäten innerhalb dieses Onlineangebotes zusammenzustellen und um weitere, mit der Nutzung dieses Onlineangebotes und der Internetnutzung verbundene Dienstleistungen, uns gegenüber zu erbringen. Dabei können aus den verarbeiteten Daten pseudonyme Nutzungsprofile der Nutzer erstellt werden.<br> <br> Wir setzen Google Analytics nur mit aktivierter IP-Anonymisierung ein. Das bedeutet, die IP-Adresse der Nutzer wird von Google innerhalb von Mitgliedstaaten der Europäischen Union oder in anderen Vertragsstaaten des Abkommens über den Europäischen Wirtschaftsraum gekürzt. Nur in Ausnahmefällen wird die volle IP-Adresse an einen Server von Google in den USA übertragen und dort gekürzt.<br> <br> Die von dem Browser des Nutzers übermittelte IP-Adresse wird nicht mit anderen Daten von Google zusammengeführt. Die Nutzer können die Speicherung der Cookies durch eine entsprechende Einstellung ihrer Browser-Software verhindern; die Nutzer können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf ihre Nutzung des Onlineangebotes bezogenen Daten an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem sie das unter folgendem Link verfügbare Browser-Plugin herunterladen und installieren: <a href="http://tools.google.com/dlpage/gaoptout?hl=de">http://tools.google.com/dlpage/gaoptout?hl=de</a>.<br> <br> Weitere Informationen zur Datennutzung durch Google, Einstellungs- und Widerspruchsmöglichkeiten, erfahren Sie in der Datenschutzerklärung von Google (<a href="https://policies.google.com/technologies/ads">https://policies.google.com/technologies/ads</a>) sowie in den Einstellungen für die Darstellung von Werbeeinblendungen durch Google (<a href="https://adssettings.google.com/authenticated">https://adssettings.google.com/authenticated</a>).<br> <br> Die personenbezogenen Daten der Nutzer werden nach 14 Monaten gelöscht oder anonymisiert.<br> <br> Nähere Informationen zu Nutzungsbedingungen und Datenschutz bei Google finden Sie unter <a href="http://www.google.com/analytics/terms/de.html" target="blank">http://www.google.com/analytics/terms/de.html</a> bzw. unter <a href="http://www.google.de/privacy.html" target="blank">http://www.google.de/privacy.html</a>.</p>\n <h2>Reichweitenmessung mit Matomo</h2>\n <p>Diese Website benutzt den Open Source Webanalysedienst Matomo, mit dem wir insbesondere Reichweitenanalysen durchführen. Rechtsgrundlage hierfür ist unser berechtigtes Interesse an Analyse, Optimierung und wirtschaftlichem Betrieb unserer Seiten (Art. 6 Abs. 1 lit f DSGVO). Wenn Sie Seiten aus unserem Online-Angebot abrufen, werden von Matomo die folgenden Daten verarbeitet:</p>\n <ul>\n <li>der von Ihnen verwendete Browsertyp und die Browserversion,</li>\n <li>das von Ihnen verwendete Betriebssystem,</li>\n <li>Ihr Herkunftsland,</li>\n <li>Datum und Uhrzeit der Serveranfrage,</li>\n <li>die Anzahl der Besuche,</li>\n <li>Ihre Verweildauer auf der Website sowie</li>\n <li>die von Ihnen betätigten externen Links.</li>\n </ul>\n <p>Die von Ihnen erfasste IP-Adresse wird anonymisiert, bevor sie gespeichert wird. <br> <br> Matomo verwendet Cookies, die auf dem Computer der Nutzer gespeichert werden und die eine Analyse der Benutzung unseres Onlineangebotes durch die Nutzer ermöglichen. Dabei können aus den verarbeiteten Daten anonymisierte Nutzungsprofile erstellt werden. Die Cookies haben eine Speicherdauer von einer Woche. Die durch das Cookie erzeugten Informationen werden nur durch uns genutzt und nicht an Dritte weitergegeben. Die Logs mit den anonymisierten Daten der Nutzer werden nach spätestens 6 Monaten von uns gelöscht.<br> <br> Sie können der anonymisierten Datenerhebung durch das Programm Matomo jederzeit mit Wirkung für die Zukunft widersprechen, indem sie auf den untenstehenden Link klicken. In diesem Fall wird in ihrem Browser ein sog. Opt-Out-Cookie abgelegt, was zur Folge hat, dass Matomo keinerlei Sitzungsdaten mehr erhebt. Wenn Sie allerdings Ihre Cookies im Browser löschen, hat dies zur Folge, dass auch das Matomo Opt-Out-Cookie gelöscht wird. Das Opt-Out muss bei einem erneuten Besuch unserer Seite wieder aktiviert werden.</p>\n </div>\n \n </div>\n \n \n \n </div><div class="col-xs-12 ">\n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <iframe src="https://stats.ballensiefen.net/index.php?module=CoreAdminHome&action=optOut&language=de" height="220" width="100%" frameborder="0" marginwidth="0" marginheight="0" style="background-color:#fff" scrolling="no"></iframe>\n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n </div><div class="col-xs-12 ">\n \n \n <div class="content-text"> \n \n \n <div class="rte">\n <h2>Onlinepräsenzen in sozialen Medien</h2>\n <p>Wir unterhalten Onlinepräsenzen innerhalb sozialer Netzwerke und Plattformen, um mit den dort aktiven Kunden, Interessenten und Nutzern kommunizieren und sie dort über unsere Leistungen informieren zu können. Beim Aufruf der jeweiligen Netzwerke und Plattformen gelten die Geschäftsbedingungen und die Datenverarbeitungsrichtlinien deren jeweiligen Betreiber. <br> <br> Soweit nicht anders im Rahmen unserer Datenschutzerklärung angegeben, verarbeiten wir die Daten der Nutzer sofern diese mit uns innerhalb der sozialen Netzwerke und Plattformen kommunizieren, z.B. Beiträge auf unseren Onlinepräsenzen verfassen oder uns Nachrichten zusenden.</p>\n <h3><strong>Unsere Angebote in sozialen Netzwerken und auf anderen Plattformen</strong></h3>\n <p>Für die von uns unterhaltenen Angebote in sozialen Netzwerken oder sonstigen Plattformen gilt:</p>\n <p>Angebote der DLS Vollkorn-Mühlenbäckerei GmbH in sozialen Netzwerken oder auf anderen Plattformen werden von uns betrieben, um auf unsere Dienstleistungen/Produkte aufmerksam machen zu können und mit Ihnen als Besucher der Seite oder Kunde unserer Angebote leichter in Kontakt treten zu können. Rechtsgrundlage für die Verarbeitung personenbezogener Daten ist daher unser berechtigtes Interesse an einer zeitgemäßen Informations- und Interaktionsmöglichkeit mit Interessenten und Kunden (Art. 6 Abs.1 lit. f).</p>\n <p>Sie können einen Teil der von uns auf Facebook, Instagramm oder LinkedIn bereitgestellten Informationen auch abrufen, ohne sich beim jeweiligen Dienst angemeldet oder dort registriert zu haben. Diese Dienste oder Plattformen werden dennoch Daten des Abrufs erhalten, beispielsweise die IP-Adresse des von Ihnen genutzten Netzwerkzugangs oder Endgerätes, Informationen über das von Ihnen genutzte Endgerät, die zum Abruf eingesetzte Software etc. Details hierzu können sie den jeweiligen Datenschutzerklärungen der Dienste entnehmen (siehe unten). </p>\n <p>Wir speichern personenbezogene Informationen, die uns von den Anbietern der sozialen Netzwerke oder anderer Plattformen im Rahmen der Nutzungsbedingungen zur Verfügung gestellt werden, nicht außerhalb dieser Netzwerke oder Plattformen und reichern sie nicht mit außerhalb dieser Netzwerke oder Plattformen gewonnenen Informationen an. Insbesondere bilden wir selbst keine Profile von Nutzern dieser sozialen Netzwerke oder Plattformen.</p>\n <h3><strong>Unser Auftritt bei Facebook und Instagram</strong></h3>\n <p><strong>Gemeinsam Verantwortliche für die Verarbeitung personenbezogener Daten im Zusammenhang mit unseren Angeboten bei Facebook (</strong>"DLS Vollkorn-Mühlenbäckerei GmbH" (fb.com/ihredls) und Instagram (instagram.com/ihredls) sind wir sowie die<br> <br> Facebook Ireland Ltd ("Facebook")<br> 4 Grand Canal Square, Grand Canal Harbour, Dublin 2, Ireland</p>\n <p>Zwischen Facebook und uns wurde eine Vereinbarung über gemeinsame Verantwortlichkeit gem. Art. 26 DSGVO geschlossen. Den Inhalt dieser Vereinbarung können Sie hier nachlesen: <a href="https://www.facebook.com/legal/terms/page_controller_addendum">https://www.facebook.com/legal/terms/page_controller_addendum</a>. <br> <br> Facebook verarbeitet die bei Nutzern erhobenen Daten insbesondere für Zwecke der (auch personalisierten) Werbung und Marktforschung. Hierzu legt Facebook Nutzerprofile an und entscheidet im ausschließlich eigenen Ermessen, wie es die gewonnenen Daten verwendet. Auch durch den Besuch unserer Facebook-Seite gewinnt Facebook solche Daten über Sie als Nutzer. Weitere Details hierzu können Sie in der Datenschutzerklärung von Facebook nachlesen: <a href="https://www.facebook.com/about/privacy">https://www.facebook.com/about/privacy</a>. </p>\n <p>Facebook erhebt diese Informationen (zum Teil) auch durch den Einsatz von sog. "Cookies", also kleinen Textdateien, die auf dem von Ihnen genutzten Endgerät gespeichert werden und dies möglich machen, Sie bei einem späteren Besuch - oder beim Besuch anderer Webseiten oder bei der Nutzung eines anderen Endgeräts - wiederzuerkennen. Die so gewonnenen Daten führt Facebook zu den oben beschriebenen Zwecken zu Profilen zusammen. In diesem Zusammenhang bietet Facebook eine Opt-Out-Möglichkeit (Widerspruchsmöglichkeit) an, die Sie unter <a href="https://www.facebook.com/settings?tabs=ads">https://www.facebook.com/settings?tabs=ads</a> finden. Alternativ können Sie auch das Opt-Out-Angebot unter <a href="https://www.youronlinechoices.com/">https://www.youronlinechoices.com</a> in Anspruch nehmen.</p>\n <p>Die Facebook Ireland Ltd. übermittelt die anfallenden Daten - also auch Sie betreffende Daten - nach eigenem Ermessen auch an den Mutterkonzern Facebook Inc., also in den USA oder weitere Drittstaaten. Der Mutterkonzern Facebook Inc. hat sich dem zwischen der Europäischen Union und den USA geschlossenen Datenschutzabkommen "Privacy Shield" angeschlossen und sich damit zu Wahrung eines Datenschutzniveaus verpflichtet, dass europäischen Datenschutzbestimmungen genügt. Weitere Details hierzu können Sie hier nachlesen: <a href="https://www.privacyshield.gov/participant?id=a2zt0000000GnywAAC&status=Active">https://www.privacyshield.gov/participant?id=a2zt0000000GnywAAC&status=Active</a>. Die Datenschutzrichtlinie von Instagram finden Sie hier: (<a href="https://help.instagram.com/519522125107875">https://help.instagram.com/519522125107875</a>).</p>\n <p>Einen Teil der auch bei Ihrem Besuch gesammelten Daten stellt uns Facebook zu statistischen Zwecken wieder zur Verfügung ("Seiten-Insights"). So erhalten wir beispielsweise Kenntnis darüber, wieviele Nutzer mit welchen Interessen zu welchen Zeiten unsere Seite besuchen, für welche Beiträge oder Themen sie sich interessieren oder in welchen Fällen im Zusammenhang mit Beiträgen eine Interaktion stattfindet (Likes, Kommentare oder geteilte Beiträge). Auf die Auswahl der uns so zur Verfügung gestellten statistischen Informationen haben wir im Einzelnen keinen Einfluß. Wir verwenden diese Daten aber ausschließlich dafür, uns über die Nutzung unserer Facebook-Seite zu informieren, damit wir Inhalte optimieren und besser mit den Nutzern der Seite interagieren können. </p>\n <p>Gemäß der zwischen uns und Facebook geschlossenen Vereinbarung über gemeinsame Verantwortlichkeit gem. Art. 26 DSGVO übernimmt Facebook insbesondere die Aufgabe, Besucher unserer Facebook-Seite über die Verarbeitung personenbezogener Daten bei Facebook und die ihm zustehenden Rechte hinsichtlich dieser Datenverarbeitung zu informieren und Auskunftsanfragen nach Artikel 15 DSGVO zu beantworten.<br> <br> Den Datenschutzbeauftragten von Facebook können Sie hier kontaktieren: <a href="https://www.facebook.com/help/contact/540977946302970">https://www.facebook.com/help/contact/540977946302970<br> </a></p>\n <h2>Einbindung von Diensten und Inhalten Dritter</h2>\n <p>Wir setzen innerhalb unseres Online-Angebotes Inhalts- oder Serviceangebote von Drittanbietern ein, um deren Inhalte und Services, wie z.B. Videos oder Schriftarten einzubinden. Dies setzt immer voraus, dass die IP-Adresse von Besuchern unserer Website an diese Drittanbieter übermittelt wird, da sie ohne die IP-Adresse die Inhalte nicht an deren Browser senden könnten. Die IP-Adresse ist damit für die Darstellung dieser Inhalte erforderlich. Die Rechtsgrundlage für diese Übermittlung ist unser berechtigtes Interesse an der Analyse, Optimierung und wirtschaftlichem Betrieb unseres Onlineangebotes im Sinne des Art. 6 Abs. 1 lit. f. DSGVO.<br> Wir bemühen uns nur solche Inhalte zu verwenden, deren jeweilige Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte verwenden. Drittanbieter können je nach Angebot so genannte Pixel-Tags (unsichtbare Grafiken) für statistische oder Marketingzwecke verwenden. Durch die "Pixel-Tags" werden zwangsläufig auch Nutzungsinformationen bezüglich unseres Online-Angebotes an den Drittanbieter übermittelt. Die pseudonymen Informationen können ferner in Cookies auf dem von Ihnen genutzten Gerät gespeichert werden. Diese Cookies können unter anderem technische Informationen zum Browser und Betriebssystem, verweisende Webseiten, Besuchszeit sowie weitere Angaben zur Nutzung unseres Onlineangebotes enthalten, als auch beim Drittanbieter mit solchen Informationen aus anderen Quellen verbunden werden.</p>\n <h2>Youtube</h2>\n <p>Wir binden vereinzelt Videos über die Plattform “YouTube” des Anbieters YouTube, LLC, 901 Cherry Ave., San Bruno, CA 94066, USA, ein. Wenn Sie innerhalb unseres Online-Angebotes eine Seite abrufen, auf der ein auf diese Weise eingebundenes Youtube-Video enthalten ist, wird eine Verbindung zu den Servern von YouTube hergestellt. Dabei wird YouTube-Server auch Ihre IP-Adresse mitgeteilt sowie die Information, welche unserer Seiten Sie besucht haben. Wenn Sie während dieses Vorgangs in Ihrem eventuell bestehenden YouTube-Account eingeloggt sind, wird Youtube diesen Abruf Ihrem persönlichen Profil zuzuordnen. Dies können Sie verhindern, indem Sie sich vor Abruf unserer Seiten aus Ihrem YouTube-Account ausloggen.<br>Die Nutzung von YouTube erfolgt aufgrund unseres Interesses einer ansprechenden Darstellung unserer Angebote und der Information von Besuchern. Dies stellt ein berechtigtes Interesse im Sinne von Art. 6 Abs. 1 lit. f DSGVO dar.<br>Weitere Informationen zum Umgang mit Nutzerdaten finden Sie hier: Datenschutzerklärung von YouTube unter: https://www.google.de/intl/de/policies/privacy. Opt-Out-Möglichkeiten für Google-Analytics (<a href="http://tools.google.com/dlpage/gaoptout?hl=de">http://tools.google.com/dlpage/gaoptout?hl=de</a>) oder die Einstellungen von Google für die Datennutzung zu Marketingzwecken (<a href="https://adssettings.google.com/">https://adssettings.google.com/</a>).</p>\n <h2>Google Fonts</h2>\n <p>Wir binden zur einheitlichen Darstellung von Schriftarten sogenannte Webfonts ein, nämlich die Fonts des Anbieters Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, ein ("Google Fonts"). Beim Aufruf einer Seite lädt Ihr Browser die benötigten Web Fonts von Servern des Anbieters Google in ihren Browsercache, um Texte und Schriftarten korrekt anzuzeigen.<br> Zu diesem Zweck muss der von Ihnen verwendete Browser Verbindung zu den Servern von Google aufnehmen und übermittelt dabei Ihre IP-Adressean Google. Die Nutzung von Google Web Fonts erfolgt auf Basis unseres berechtigten Interesses an einer einheitlichen und ansprechenden Darstellung unserer Online-Angebote im Sinne von Art. 6 Abs. 1 lit. f DSGVO. Wenn Ihr Browser Web Fonts nicht unterstützt, wird eine Standardschrift von Ihrem Computer genutzt.<br> Weitere Informationen zu Google Web Fonts finden Sie unter <a href="https://developers.google.com/fonts/faq" target="blank">https://developers.google.com/fonts/faq</a> und in der Datenschutzerklärung von Google: <a href="https://www.google.com/policies/privacy/" target="blank">https://www.google.com/policies/privacy/</a>. Möglichkeit zum Opt-Out: <a href="https://adssettings.google.com/authenticated" target="blank">https://adssettings.google.com/authenticated</a>.</p>\n <h2>Google Maps</h2>\n <p>Wir binden die Landkarten des Dienstes “Google Maps” des Anbieters Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, ein. Zur Nutzung der Funktionen von Google Maps ist es notwendig, Ihre IP Adresse zu speichern. Diese Informationen werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Der Anbieter dieser Seite hat keinen Einfluss auf diese Datenübertragung.<br> Die Nutzung von Google Maps erfolgt im Interesse einer ansprechenden Darstellung unserer Online-Angebote und an einer leichten Auffindbarkeit der von uns auf der Website angegebenen Orte. Dies stellt ein berechtigtes Interesse im Sinne von Art. 6 Abs. 1 lit. f DSGVO dar. Für weitere Informationen verweisen wir auf die Datenschutzerklärung von Google: <a href="https://www.google.com/policies/privacy">https://www.google.com/policies/privacy</a> sowie Möglichkeit zum Opt-Out: <a href="https://adssettings.google.com/authenticated">https://adssettings.google.com/authenticated</a>.</p>\n <h2>Verantwortlicher</h2>\n <p>DLS Vollkorn-Mühlenbäckerei GmbH<br>vertreten durch den Geschäftsführer David Lee Schlenker<br>Conrad-Roentgen-Straße 3<br>53773 Hennef-Hossenberg<br>Telefon: 0 22 42 - 90 50 800<br>Telefax: 0 22 42 - 90 50 801<br>E-Mail: <a href="mailto:dls@Ihredls.de">dls@Ihredls.de</a><br>Impressum: <a href="impressum.html">https://www.ihredls.de/impressum.html</a></p>\n <p>Diese Datenschutzhinweise haben den Stand 25. Mai 2018.</p>\n </div>\n \n </div>\n \n \n \n </div> \n </div>\n </div>\n \n \n <!-- TEMPLATE END: vendor/heart-bits/contao-article-backgrounds-bundle/src/Resources/contao/templates/mod_article.html5 -->\n </div>\n </main>\n \n \n \n </div>\n \n \n <footer id="footer">\n <div class="inside">\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n \n <!-- TEMPLATE START: vendor/heart-bits/contao-article-backgrounds-bundle/src/Resources/contao/templates/mod_article.html5 -->\n \n \n \n <!-- TEMPLATE START: vendor/erdmannfreunde/contao-grid-bundle/contao/templates/ce_rowStart.html5 -->\n \n <div class="row ce_rowStart flex-row">\n \n <!-- TEMPLATE END: vendor/erdmannfreunde/contao-grid-bundle/contao/templates/ce_rowStart.html5 -->\n <div class="col-xs-12 col-sm-4 col-md-3 col-lg-1 ">\n \n \n <div class="content-image"> \n <figure>\n <img src="/files/template/redesign24/img/Logo.svg" alt width="76" height="144">\n \n \n \n </figure>\n </div>\n \n \n \n </div> <div class="footer-social col-xs-12 col-sm-4 col-md-3 col-lg-1">\n \t<h5>Social</h5>\n \t<div class="social-icon">\n \t\t<a href="https://www.facebook.com/ihredls/" target="_blank">\n \t\t\t<i class="fab fa-facebook"></i>\n \t\t</a>\n \t</div>\n \t<div class="social-icon">\n \t\t<a href="https://www.instagram.com/ihredls/" target="_blank">\n \t\t\t<i class="fab fa-instagram"></i>\n \t\t</a>\n \t</div>\n </div><div class="col-xs-12 col-sm-4 col-md-3 col-lg-2 ">\n \n \n <div class="pl-1 content-text"> \n <h5>Sortiment</h5>\n \n \n \n \n <div class="rte">\n <p><a href="/sortiment/produktkategorien/brote">Brote</a><br><a href="/sortiment/produktkategorien/broetchen">Brötchen</a><br><a href="/sortiment/produktkategorien/kuchen">Kuchen</a><br><a href="/sortiment/saisonales">Saison</a></p>\n </div>\n \n </div>\n \n \n \n </div><div class="col-xs-12 col-sm-4 col-md-3 col-lg-2 ">\n \n \n <div class="content-text"> \n <h5>Partner</h5>\n \n \n \n \n <div class="rte">\n <p><a href="/downloads">Partner Infos</a><br><a href="/downloads">Partner Login</a><br><a href="/downloads">Partner Downloads</a></p>\n </div>\n \n </div>\n \n \n \n </div><div class="col-xs-12 col-sm-4 col-md-3 col-lg-2 ">\n \n \n <div class="content-text"> \n <h5>Handwerk</h5>\n \n \n \n \n <div class="rte">\n <p><a href="/ueber-uns">Über DLS</a><br><a href="/karriere">Karriere</a><br><a href="/ueber-uns/nachhaltigkeit">Nachhaltigkeit</a><br><a href="/ueber-uns/unsere-verantwortung">Verantwortung</a></p>\n </div>\n \n </div>\n \n \n \n </div><div class="col-xs-12 col-sm-4 col-md-3 col-lg-2 ">\n \n \n <div class="content-text"> \n <h5>Standorte</h5>\n \n \n \n \n <div class="rte">\n <p><a href="/dls-vor-ort/standorte-dls-l%C3%A4den-m%C3%A4rkte">DLS Filialen</a><br><a href="/standorte/standorte-partner-laeden">Partnermärkte</a><br><a href="/dls-vor-ort/standorte-dls-l%C3%A4den-m%C3%A4rkte">Ökomärkte</a><br><br></p>\n </div>\n \n </div>\n \n \n \n </div>\n <!-- TEMPLATE START: vendor/erdmannfreunde/contao-grid-bundle/contao/templates/ce_rowEnd.html5 -->\n \n </div>\n \n <!-- TEMPLATE END: vendor/erdmannfreunde/contao-grid-bundle/contao/templates/ce_rowEnd.html5 -->\n <div class="col-xs-12 ">\n \n \n <div class="footer-gally content-gallery content-gallery--cols-5"> \n \n \n <ul>\n <li> <figure>\n <a target="_blank" href="ueber-uns/zertifizierungen.html"> <img src="/files/template/redesign24/img/demeter_logo.svg" alt width="115" height="53" loading="lazy">\n \n \n </a>\n \n </figure>\n </li>\n <li> <figure>\n <a target="_blank" href="ueber-uns/zertifizierungen.html"> <picture>\n <source srcset="/assets/images/e/Logo_OG-ab38c03f.webp 1x, /assets/images/4/Logo_OG-cd986ee8.webp 4.988x, /assets/images/7/Logo_OG-73138399.webp 2x" type="image/webp" width="85" height="85">\n \n <img src="/assets/images/e/Logo_OG-b02b1bc9.png" alt srcset="/assets/images/e/Logo_OG-b02b1bc9.png 1x, /assets/images/b/Logo_OG-3dc43c83.png 4.988x, /assets/images/a/Logo_OG-d10bc55f.png 2x" width="85" height="85" loading="lazy">\n \n </picture>\n \n \n </a>\n \n </figure>\n </li>\n <li> <figure>\n <a target="_blank" href="ueber-uns/zertifizierungen.html"> <picture>\n <source srcset="/assets/images/d/bio_eu-e3c4d15a.webp 1x, /assets/images/1/bio_eu-82d11f4d.webp 1.471x" type="image/webp" width="170" height="85">\n \n <img src="/assets/images/8/bio_eu-a159cde7.png" alt srcset="/assets/images/8/bio_eu-a159cde7.png 1x, /files/template/redesign24/img/bio_eu.png 1.471x" width="170" height="85" loading="lazy">\n \n </picture>\n \n \n </a>\n \n </figure>\n </li>\n <li> <figure>\n <a target="_blank" href="ueber-uns/zertifizierungen.html"> <picture>\n <source srcset="/assets/images/6/fairbio-db064047.webp 1x, /assets/images/1/fairbio-331b0666.webp 5x, /assets/images/e/fairbio-6e1dadae.webp 2x" type="image/webp" width="93" height="85">\n \n <img src="/assets/images/9/fairbio-0e5138c0.png" alt srcset="/assets/images/9/fairbio-0e5138c0.png 1x, /assets/images/5/fairbio-f6c09985.png 5x, /assets/images/4/fairbio-e298759e.png 2x" width="93" height="85" loading="lazy">\n \n </picture>\n \n \n </a>\n \n </figure>\n </li>\n <li> <figure>\n <a href="/files/content/content_bilder/ueber_uns/zertifizierungen/sfd-unterstuetzer-2024-logo-rahmen-160px.jpg" data-lightbox="lb2878"> <picture>\n <source srcset="/assets/images/7/sfd-unterstuetzer-2024-logo-rahmen-160px-fc883bb8.webp 1x, /assets/images/b/sfd-unterstuetzer-2024-logo-rahmen-160px-cc56d560.webp 1.882x" type="image/webp" width="85" height="85">\n \n <img src="/assets/images/2/sfd-unterstuetzer-2024-logo-rahmen-160px-ca139e7f.jpg" alt srcset="/assets/images/2/sfd-unterstuetzer-2024-logo-rahmen-160px-ca139e7f.jpg 1x, /files/content/content_bilder/ueber_uns/zertifizierungen/sfd-unterstuetzer-2024-logo-rahmen-160px.jpg 1.882x" width="85" height="85" loading="lazy">\n \n </picture>\n \n \n </a>\n \n </figure>\n </li>\n </ul>\n \n \n </div>\n \n \n \n </div><div class="col-xs-12 ">\n \n \n <div class="center content-text"> \n \n \n <div class="rte">\n <p>© DLS Vollkorn Mühlenbäckerei | <a href="/impressum">Impressum</a> | <a href="/datenschutz">Datenschutz</a></p>\n </div>\n \n </div>\n \n \n \n </div> \n \n <!-- TEMPLATE END: vendor/heart-bits/contao-article-backgrounds-bundle/src/Resources/contao/templates/mod_article.html5 -->\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/modules/mod_html.html5 -->\n </div>\n </footer>\n \n </div>\n \n \n \n <!-- TEMPLATE START: templates/j_accordion.html5 -->\n \r\n <script src="/assets/jquery-ui/js/jquery-ui.min.js?v=1.13.2"></script>\r\n <script>\r\n jQuery(function($) {\r\n $(document).accordion({\r\n // Put custom options here\r\n heightStyle: 'content',\r\n header: '.toggler',\r\n active: false,\r\n collapsible: true,\r\n create: function(event, ui) {\r\n ui.header.addClass('active');\r\n $('.toggler').attr('tabindex', 0);\r\n },\r\n activate: function(event, ui) {\r\n ui.newHeader.addClass('active');\r\n ui.oldHeader.removeClass('active');\r\n $('.toggler').attr('tabindex', 0);\r\n }\r\n });\r\n });\r\n </script>\r\n \n <!-- TEMPLATE END: templates/j_accordion.html5 -->\n \n <!-- TEMPLATE START: templates/j_colorbox.html5 -->\n \r\n <script src="/assets/colorbox/js/colorbox.min.js?v=1.6.4.2"></script>\r\n <script>\r\n jQuery(function($) {\r\n $('a[data-lightbox]').map(function() {\r\n $(this).colorbox({\r\n // Put custom options here\r\n loop: false,\r\n rel: $(this).attr('data-lightbox'),\r\n current: "Bild {current} von {total}",\r\n maxWidth: '95%',\r\n maxHeight: '95%'\r\n });\r\n });\r\n });\r\n </script>\r\n \n <!-- TEMPLATE END: templates/j_colorbox.html5 -->\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/jquery/j_tablesort.html5 -->\n \n <script src="/assets/tablesorter/js/tablesorter.min.js?v=2.31.3.1"></script>\n <script>\n jQuery(function($) {\n $('.ce_table .sortable').each(function(i, table) {\n var attr = $(table).attr('data-sort-default'),\n opts = {}, s;\n \n if (attr) {\n s = attr.split('|');\n opts = { sortList: [[s[0], s[1] == 'desc' | 0]] };\n }\n \n $(table).tablesorter(opts);\n });\n });\n </script>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/jquery/j_tablesort.html5 -->\n \n <!-- TEMPLATE START: templates/j_masonary.html5 -->\n <script>\r\n /*!\r\n * Masonry PACKAGED v4.1.1\r\n * Cascading grid layout library\r\n * http://masonry.desandro.com\r\n * MIT License\r\n * by David DeSandro\r\n */\r\n \r\n !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);r.isBoxSizeOuter=s=200==t(o.width),i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,E=a.borderTopWidth+a.borderBottomWidth,z=d&&s,b=t(r.width);b!==!1&&(a.width=b+(z?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(z?0:g+E)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+E),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];t&&clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i||100)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?t():document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var r=i.toDashed(o),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(n&&n.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,o,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=this.layout.size,s=-1!=n.indexOf("%")?parseFloat(n)/100*r.width:parseInt(n,10),a=-1!=o.indexOf("%")?parseFloat(o)/100*r.height:parseInt(o,10);s=isNaN(s)?0:s,a=isNaN(a)?0:a,s-=e?r.paddingLeft:r.paddingRight,a-=i?r.paddingTop:r.paddingBottom,this.position.x=s,this.position.y=a},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=parseInt(t,10),r=parseInt(e,10),s=o===this.position.x&&r===this.position.y;if(this.setPosition(t,e),s&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,h=e-n,u={};u.transform=this.getTranslate(a,h),this.transition({to:u,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");return i.compatOptions.fitWidth="isFitWidth",i.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0},i.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},i.prototype.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},i.prototype._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this._getColGroup(n),r=Math.min.apply(Math,o),s=o.indexOf(r),a={x:this.columnWidth*s,y:r},h=r+t.size.outerHeight,u=this.cols+1-o.length,d=0;u>d;d++)this.colYs[s+d]=h;return a},i.prototype._getColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++){var o=this.colYs.slice(n,n+t);e[n]=Math.max.apply(Math,o)}return e},i.prototype._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},i.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},i.prototype._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},i.prototype.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});/*!\r\n * Masonry PACKAGED v4.1.1\r\n * Cascading grid layout library\r\n * http://masonry.desandro.com\r\n * MIT License\r\n * by David DeSandro\r\n */\r\n \r\n !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);r.isBoxSizeOuter=s=200==t(o.width),i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,E=a.borderTopWidth+a.borderBottomWidth,z=d&&s,b=t(r.width);b!==!1&&(a.width=b+(z?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(z?0:g+E)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+E),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];t&&clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i||100)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?t():document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var r=i.toDashed(o),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(n&&n.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,o,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=this.layout.size,s=-1!=n.indexOf("%")?parseFloat(n)/100*r.width:parseInt(n,10),a=-1!=o.indexOf("%")?parseFloat(o)/100*r.height:parseInt(o,10);s=isNaN(s)?0:s,a=isNaN(a)?0:a,s-=e?r.paddingLeft:r.paddingRight,a-=i?r.paddingTop:r.paddingBottom,this.position.x=s,this.position.y=a},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=parseInt(t,10),r=parseInt(e,10),s=o===this.position.x&&r===this.position.y;if(this.setPosition(t,e),s&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,h=e-n,u={};u.transform=this.getTranslate(a,h),this.transition({to:u,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");return i.compatOptions.fitWidth="isFitWidth",i.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0},i.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},i.prototype.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},i.prototype._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this._getColGroup(n),r=Math.min.apply(Math,o),s=o.indexOf(r),a={x:this.columnWidth*s,y:r},h=r+t.size.outerHeight,u=this.cols+1-o.length,d=0;u>d;d++)this.colYs[s+d]=h;return a},i.prototype._getColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++){var o=this.colYs.slice(n,n+t);e[n]=Math.max.apply(Math,o)}return e},i.prototype._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},i.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},i.prototype._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},i.prototype.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});\r\n </script>\n <!-- TEMPLATE END: templates/j_masonary.html5 -->\n \n <!-- TEMPLATE START: templates/j_hoverintent.html5 -->\n <script>/**\r\n * hoverIntent is similar to jQuery's built-in "hover" method except that\r\n * instead of firing the handlerIn function immediately, hoverIntent checks\r\n * to see if the user's mouse has slowed down (beneath the sensitivity\r\n * threshold) before firing the event. The handlerOut function is only\r\n * called after a matching handlerIn.\r\n *\r\n * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+\r\n * http://cherne.net/brian/resources/jquery.hoverIntent.html\r\n *\r\n * You may use hoverIntent under the terms of the MIT license. Basically that\r\n * means you are free to use hoverIntent as long as this header is left intact.\r\n * Copyright 2007, 2013 Brian Cherne\r\n *\r\n * // basic usage ... just like .hover()\r\n * .hoverIntent( handlerIn, handlerOut )\r\n * .hoverIntent( handlerInOut )\r\n *\r\n * // basic usage ... with event delegation!\r\n * .hoverIntent( handlerIn, handlerOut, selector )\r\n * .hoverIntent( handlerInOut, selector )\r\n *\r\n * // using a basic configuration object\r\n * .hoverIntent( config )\r\n *\r\n * @param handlerIn function OR configuration object\r\n * @param handlerOut function OR selector for delegation OR undefined\r\n * @param selector selector OR undefined\r\n * @author Brian Cherne <brian(at)cherne(dot)net>\r\n **/\r\n (function($) {\r\n $.fn.hoverIntent = function(handlerIn,handlerOut,selector) {\r\n \r\n // default configuration values\r\n var cfg = {\r\n interval: 100,\r\n sensitivity: 7,\r\n timeout: 0\r\n };\r\n \r\n if ( typeof handlerIn === "object" ) {\r\n cfg = $.extend(cfg, handlerIn );\r\n } else if ($.isFunction(handlerOut)) {\r\n cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } );\r\n } else {\r\n cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } );\r\n }\r\n \r\n // instantiate variables\r\n // cX, cY = current X and Y position of mouse, updated by mousemove event\r\n // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval\r\n var cX, cY, pX, pY;\r\n \r\n // A private function for getting mouse position\r\n var track = function(ev) {\r\n cX = ev.pageX;\r\n cY = ev.pageY;\r\n };\r\n \r\n // A private function for comparing current and previous mouse position\r\n var compare = function(ev,ob) {\r\n ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);\r\n // compare mouse positions to see if they've crossed the threshold\r\n if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {\r\n $(ob).off("mousemove.hoverIntent",track);\r\n // set hoverIntent state to true (so mouseOut can be called)\r\n ob.hoverIntent_s = 1;\r\n return cfg.over.apply(ob,[ev]);\r\n } else {\r\n // set previous coordinates for next time\r\n pX = cX; pY = cY;\r\n // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)\r\n ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );\r\n }\r\n };\r\n \r\n // A private function for delaying the mouseOut function\r\n var delay = function(ev,ob) {\r\n ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);\r\n ob.hoverIntent_s = 0;\r\n return cfg.out.apply(ob,[ev]);\r\n };\r\n \r\n // A private function for handling mouse 'hovering'\r\n var handleHover = function(e) {\r\n // copy objects to be passed into t (required for event object to be passed in IE)\r\n var ev = jQuery.extend({},e);\r\n var ob = this;\r\n \r\n // cancel hoverIntent timer if it exists\r\n if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }\r\n \r\n // if e.type == "mouseenter"\r\n if (e.type == "mouseenter") {\r\n // set "previous" X and Y position based on initial entry point\r\n pX = ev.pageX; pY = ev.pageY;\r\n // update "current" X and Y position based on mousemove\r\n $(ob).on("mousemove.hoverIntent",track);\r\n // start polling interval (self-calling timeout) to compare mouse coordinates over time\r\n if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}\r\n \r\n // else e.type == "mouseleave"\r\n } else {\r\n // unbind expensive mousemove event\r\n $(ob).off("mousemove.hoverIntent",track);\r\n // if hoverIntent state is true, then call the mouseOut function after the specified delay\r\n if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}\r\n }\r\n };\r\n \r\n // listen for mouseenter and mouseleave\r\n return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector);\r\n };\r\n })(jQuery);\r\n </script>\n <!-- TEMPLATE END: templates/j_hoverintent.html5 -->\n \n <!-- TEMPLATE START: templates/j_superfish.html5 -->\n <script>\r\n superfish/*\r\n * jQuery Superfish Menu Plugin - v1.7.7\r\n * Copyright (c) 2015\r\n *\r\n * Dual licensed under the MIT and GPL licenses:\r\n *\thttp://www.opensource.org/licenses/mit-license.php\r\n *\thttp://www.gnu.org/licenses/gpl.html\r\n */\r\n \r\n ;(function ($, w) {\r\n "use strict";\r\n \r\n var methods = (function () {\r\n // private properties and methods go here\r\n var c = {\r\n bcClass: 'sf-breadcrumb',\r\n menuClass: 'sf-js-enabled',\r\n anchorClass: 'sf-with-ul',\r\n menuArrowClass: 'sf-arrows'\r\n },\r\n ios = (function () {\r\n var ios = /^(?![\w\W]*Windows Phone)[\w\W]*(iPhone|iPad|iPod)/i.test(navigator.userAgent);\r\n if (ios) {\r\n // tap anywhere on iOS to unfocus a submenu\r\n $('html').css('cursor', 'pointer').on('click', $.noop);\r\n }\r\n return ios;\r\n })(),\r\n wp7 = (function () {\r\n var style = document.documentElement.style;\r\n return ('behavior' in style && 'fill' in style && /iemobile/i.test(navigator.userAgent));\r\n })(),\r\n unprefixedPointerEvents = (function () {\r\n return (!!w.PointerEvent);\r\n })(),\r\n toggleMenuClasses = function ($menu, o) {\r\n var classes = c.menuClass;\r\n if (o.cssArrows) {\r\n classes += ' ' + c.menuArrowClass;\r\n }\r\n $menu.toggleClass(classes);\r\n },\r\n setPathToCurrent = function ($menu, o) {\r\n return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels)\r\n .addClass(o.hoverClass + ' ' + c.bcClass)\r\n .filter(function () {\r\n return ($(this).children(o.popUpSelector).hide().show().length);\r\n }).removeClass(o.pathClass);\r\n },\r\n toggleAnchorClass = function ($li) {\r\n $li.children('a').toggleClass(c.anchorClass);\r\n $li.children('span.active').toggleClass(c.anchorClass);\r\n },\r\n toggleTouchAction = function ($menu) {\r\n var msTouchAction = $menu.css('ms-touch-action');\r\n var touchAction = $menu.css('touch-action');\r\n touchAction = touchAction || msTouchAction;\r\n touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y';\r\n $menu.css({\r\n 'ms-touch-action': touchAction,\r\n 'touch-action': touchAction\r\n });\r\n },\r\n applyHandlers = function ($menu, o) {\r\n var targets = 'li:has(' + o.popUpSelector + ')';\r\n if ($.fn.hoverIntent && !o.disableHI) {\r\n $menu.hoverIntent(over, out, targets);\r\n }\r\n else {\r\n $menu\r\n .on('mouseenter.superfish', targets, over)\r\n .on('mouseleave.superfish', targets, out);\r\n }\r\n var touchevent = 'MSPointerDown.superfish';\r\n if (unprefixedPointerEvents) {\r\n touchevent = 'pointerdown.superfish';\r\n }\r\n if (!ios) {\r\n touchevent += ' touchend.superfish';\r\n }\r\n if (wp7) {\r\n touchevent += ' mousedown.superfish';\r\n }\r\n $menu\r\n .on('focusin.superfish', 'li', over)\r\n .on('focusout.superfish', 'li', out)\r\n .on(touchevent, 'a', o, touchHandler)\r\n .on(touchevent, 'span.active', o, touchHandler);\r\n },\r\n touchHandler = function (e) {\r\n var $this = $(this),\r\n o = getOptions($this),\r\n $ul = $this.siblings(e.data.popUpSelector);\r\n \r\n if (o.onHandleTouch.call($ul) === false) {\r\n return this;\r\n }\r\n \r\n if ($ul.length > 0 && $ul.is(':hidden')) {\r\n $this.one('click.superfish', false);\r\n if (e.type === 'MSPointerDown' || e.type === 'pointerdown') {\r\n $this.trigger('focus');\r\n } else {\r\n $.proxy(over, $this.parent('li'))();\r\n }\r\n }\r\n },\r\n over = function () {\r\n var $this = $(this),\r\n o = getOptions($this);\r\n clearTimeout(o.sfTimer);\r\n $this.siblings().superfish('hide').end().superfish('show');\r\n },\r\n out = function () {\r\n var $this = $(this),\r\n o = getOptions($this);\r\n if (ios) {\r\n $.proxy(close, $this, o)();\r\n }\r\n else {\r\n clearTimeout(o.sfTimer);\r\n o.sfTimer = setTimeout($.proxy(close, $this, o), o.delay);\r\n }\r\n },\r\n close = function (o) {\r\n o.retainPath = ($.inArray(this[0], o.$path) > -1);\r\n this.superfish('hide');\r\n \r\n if (!this.parents('.' + o.hoverClass).length) {\r\n o.onIdle.call(getMenu(this));\r\n if (o.$path.length) {\r\n $.proxy(over, o.$path)();\r\n }\r\n }\r\n },\r\n getMenu = function ($el) {\r\n return $el.closest('.' + c.menuClass);\r\n },\r\n getOptions = function ($el) {\r\n return getMenu($el).data('sf-options');\r\n };\r\n \r\n return {\r\n // public methods\r\n hide: function (instant) {\r\n if (this.length) {\r\n var $this = this,\r\n o = getOptions($this);\r\n if (!o) {\r\n return this;\r\n }\r\n var not = (o.retainPath === true) ? o.$path : '',\r\n $ul = $this.find('li.' + o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector),\r\n speed = o.speedOut;\r\n \r\n if (instant) {\r\n $ul.show();\r\n speed = 0;\r\n }\r\n o.retainPath = false;\r\n \r\n if (o.onBeforeHide.call($ul) === false) {\r\n return this;\r\n }\r\n \r\n $ul.stop(true, true).animate(o.animationOut, speed, function () {\r\n var $this = $(this);\r\n o.onHide.call($this);\r\n });\r\n }\r\n return this;\r\n },\r\n show: function () {\r\n var o = getOptions(this);\r\n if (!o) {\r\n return this;\r\n }\r\n var $this = this.addClass(o.hoverClass),\r\n $ul = $this.children(o.popUpSelector);\r\n \r\n if (o.onBeforeShow.call($ul) === false) {\r\n return this;\r\n }\r\n \r\n $ul.stop(true, true).animate(o.animation, o.speed, function () {\r\n o.onShow.call($ul);\r\n });\r\n return this;\r\n },\r\n destroy: function () {\r\n return this.each(function () {\r\n var $this = $(this),\r\n o = $this.data('sf-options'),\r\n $hasPopUp;\r\n if (!o) {\r\n return false;\r\n }\r\n $hasPopUp = $this.find(o.popUpSelector).parent('li');\r\n clearTimeout(o.sfTimer);\r\n toggleMenuClasses($this, o);\r\n toggleAnchorClass($hasPopUp);\r\n toggleTouchAction($this);\r\n // remove event handlers\r\n $this.off('.superfish').off('.hoverIntent');\r\n // clear animation's inline display style\r\n $hasPopUp.children(o.popUpSelector).attr('style', function (i, style) {\r\n return style.replace(/display[^;]+;?/g, '');\r\n });\r\n // reset 'current' path classes\r\n o.$path.removeClass(o.hoverClass + ' ' + c.bcClass).addClass(o.pathClass);\r\n $this.find('.' + o.hoverClass).removeClass(o.hoverClass);\r\n o.onDestroy.call($this);\r\n $this.removeData('sf-options');\r\n });\r\n },\r\n init: function (op) {\r\n return this.each(function () {\r\n var $this = $(this);\r\n if ($this.data('sf-options')) {\r\n return false;\r\n }\r\n var o = $.extend({}, $.fn.superfish.defaults, op),\r\n $hasPopUp = $this.find(o.popUpSelector).parent('li');\r\n o.$path = setPathToCurrent($this, o);\r\n \r\n $this.data('sf-options', o);\r\n \r\n toggleMenuClasses($this, o);\r\n toggleAnchorClass($hasPopUp);\r\n toggleTouchAction($this);\r\n applyHandlers($this, o);\r\n \r\n $hasPopUp.not('.' + c.bcClass).superfish('hide', true);\r\n \r\n o.onInit.call(this);\r\n });\r\n }\r\n };\r\n })();\r\n \r\n $.fn.superfish = function (method, args) {\r\n if (methods[method]) {\r\n return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n else if (typeof method === 'object' || ! method) {\r\n return methods.init.apply(this, arguments);\r\n }\r\n else {\r\n return $.error('Method ' + method + ' does not exist on jQuery.fn.superfish');\r\n }\r\n };\r\n \r\n $.fn.superfish.defaults = {\r\n popUpSelector: 'ul,.sf-mega', // within menu context\r\n hoverClass: 'sfHover',\r\n pathClass: 'overrideThisToUse',\r\n pathLevels: 1,\r\n delay: 800,\r\n animation: {opacity: 'show'},\r\n animationOut: {opacity: 'hide'},\r\n speed: 'normal',\r\n speedOut: 'slow',\r\n cssArrows: false,\r\n disableHI: false,\r\n onInit: $.noop,\r\n onBeforeShow: $.noop,\r\n onShow: $.noop,\r\n onBeforeHide: $.noop,\r\n onHide: $.noop,\r\n onIdle: $.noop,\r\n onDestroy: $.noop,\r\n onHandleTouch: $.noop\r\n };\r\n \r\n })(jQuery, window);\r\n </script>\n <!-- TEMPLATE END: templates/j_superfish.html5 -->\n \n <!-- TEMPLATE START: templates/j_supersubs.html5 -->\n <script>\r\n /*\r\n * Supersubs v0.3b - jQuery plugin\r\n * Copyright (c) 2013 Joel Birch\r\n *\r\n * Dual licensed under the MIT and GPL licenses:\r\n * \thttp://www.opensource.org/licenses/mit-license.php\r\n * \thttp://www.gnu.org/licenses/gpl.html\r\n *\r\n *\r\n * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of\r\n * their longest list item children. If you use this, please expect bugs and report them\r\n * to the jQuery Google Group with the word 'Superfish' in the subject line.\r\n *\r\n */\r\n \r\n ;(function($){ // $ will refer to jQuery within this closure\r\n \r\n \t$.fn.supersubs = function(options){\r\n \t\tvar opts = $.extend({}, $.fn.supersubs.defaults, options);\r\n \t\t// return original object to support chaining\r\n \t\treturn this.each(function() {\r\n \t\t\t// cache selections\r\n \t\t\tvar $$ = $(this);\r\n \t\t\t// support metadata\r\n \t\t\tvar o = $.meta ? $.extend({}, opts, $$.data()) : opts;\r\n \t\t\t// cache all ul elements and show them in preparation for measurements\r\n \t\t\tvar $ULs = $$.find('ul').show();\r\n \t\t\t// get the font size of menu.\r\n \t\t\t// .css('fontSize') returns various results cross-browser, so measure an em dash instead\r\n \t\t\tvar fontsize = $('<li id="menu-fontsize">—</li>').css({\r\n \t\t\t\t'padding' : 0,\r\n \t\t\t\t'position' : 'absolute',\r\n \t\t\t\t'top' : '-999em',\r\n \t\t\t\t'width' : 'auto'\r\n \t\t\t}).appendTo($$)[0].clientWidth; //clientWidth is faster than .width()\r\n \t\t\t// remove em dash\r\n \t\t\t$('#menu-fontsize').remove();\r\n \t\t\t// loop through each ul in menu\r\n \t\t\t$ULs.each(function(i) {\t\r\n \t\t\t\t// cache this ul\r\n \t\t\t\tvar $ul = $(this);\r\n \t\t\t\t// get all (li) children of this ul\r\n \t\t\t\tvar $LIs = $ul.children();\r\n \t\t\t\t// get all anchor grand-children\r\n \t\t\t\tvar $As = $LIs.children('a');\r\n \t\t\t\t// force content to one line and save current float property\r\n \t\t\t\tvar liFloat = $LIs.css('white-space','nowrap').css('float');\r\n \t\t\t\t// remove width restrictions and floats so elements remain vertically stacked\r\n \t\t\t\t$ul.add($LIs).add($As).css({\r\n \t\t\t\t\t'float' : 'none',\r\n \t\t\t\t\t'width'\t: 'auto'\r\n \t\t\t\t});\r\n \t\t\t\t// this ul will now be shrink-wrapped to longest li due to position:absolute\r\n \t\t\t\t// so save its width as ems.\r\n \t\t\t\tvar emWidth = $ul[0].clientWidth / fontsize;\r\n \t\t\t\t// add more width to ensure lines don't turn over at certain sizes in various browsers\r\n \t\t\t\temWidth += o.extraWidth;\r\n \t\t\t\t// restrict to at least minWidth and at most maxWidth\r\n \t\t\t\tif (emWidth > o.maxWidth)\t\t{ emWidth = o.maxWidth; }\r\n \t\t\t\telse if (emWidth < o.minWidth)\t{ emWidth = o.minWidth; }\r\n \t\t\t\temWidth += 'em';\r\n \t\t\t\t// set ul to width in ems\r\n \t\t\t\t$ul.css('width',emWidth);\r\n \t\t\t\t// restore li floats to avoid IE bugs\r\n \t\t\t\t// set li width to full width of this ul\r\n \t\t\t\t// revert white-space to normal\r\n \t\t\t\t$LIs.css({\r\n \t\t\t\t\t'float' : liFloat,\r\n \t\t\t\t\t'width' : '100%',\r\n \t\t\t\t\t'white-space' : 'normal'\r\n \t\t\t\t})\r\n \t\t\t\t// update offset position of descendant ul to reflect new width of parent.\r\n \t\t\t\t// set it to 100% in case it isn't already set to this in the CSS\r\n \t\t\t\t.each(function(){\r\n \t\t\t\t\tvar $childUl = $(this).children('ul');\r\n \t\t\t\t\tvar offsetDirection = $childUl.css('left') !== undefined ? 'left' : 'right';\r\n \t\t\t\t\t$childUl.css(offsetDirection,'100%');\r\n \t\t\t\t});\r\n \t\t\t}).hide();\r\n \t\t\t\r\n \t\t});\r\n \t};\r\n \t// expose defaults\r\n \t$.fn.supersubs.defaults = {\r\n \t\tminWidth\t\t: 9,\t\t// requires em unit.\r\n \t\tmaxWidth\t\t: 25,\t\t// requires em unit.\r\n \t\textraWidth\t\t: 0\t\t\t// extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values\r\n \t};\r\n \t\r\n })(jQuery); // plugin code ends\r\n </script>\n <!-- TEMPLATE END: templates/j_supersubs.html5 -->\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/js/js_autofocus.html5 -->\n \n <script>\n (function() {\n var p = document.querySelector('p.error') || document.querySelector('p.confirm');\n if (p) {\n p.scrollIntoView();\n }\n })();\n </script>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/js/js_autofocus.html5 -->\n \n <!-- TEMPLATE START: vendor/contao/core-bundle/contao/templates/js/js_slider.html5 -->\n \n <script src="/assets/swipe/js/swipe.min.js?v=2.2.2"></script>\n <script>\n (function() {\n var e = document.querySelectorAll('.content-slider, .slider-control'), c, i;\n for (i=0; i<e.length; i+=2) {\n c = e[i].getAttribute('data-config').split(',');\n new Swipe(e[i], {\n // Put custom options here\n 'auto': parseInt(c[0]),\n 'speed': parseInt(c[1]),\n 'startSlide': parseInt(c[2]),\n 'continuous': parseInt(c[3]),\n 'menu': e[i+1]\n });\n }\n })();\n </script>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/js/js_slider.html5 -->\n \n <script type="text/javascript" src="files/template/js/animate.js"></script>\n <script type="text/javascript" src="files/template/stickyfooter/stickyfooter.js"></script>\n <script>\n /* Toggle between adding and removing the "active" and "show" classes when the user clicks on one of the "Section" buttons. The "active" class is used to add a background color to the current button when its belonging panel is open. The "show" class is used to open the specific accordion panel */\n var acc = document.getElementsByClassName("accordion");\n var i;\n \n for (i = 0; i < acc.length; i++) {\n acc[i].onclick = function(){\n this.classList.toggle("active");\n this.nextElementSibling.classList.toggle("show");\n }\n }\n \n </script>\n <script type="text/javascript">\n try {\n window.onscroll = setNavPosition;\n }\n catch(e) {\n document.documentElement.onscroll = setNavPosition;\n }\n \n function setNavPosition(){\n $('.produkt-filter').stop();\n try {\n if (document.body.scrollTop > document.documentElement.scrollTop) {\n var targetPosition = document.body.scrollTop;\n }\n else {\n var targetPosition = document.documentElement.scrollTop;\n }\n }\n catch(e) {\n var targetPosition = document.documentElement.scrollTop;\n }\n if (document.body.scrollTop > 450 || document.documentElement.scrollTop > 450) {\n $('.produkt-filter').animate({top: targetPosition+15}, 500);\n }\n else{\n \t$('.produkt-filter').animate({top:455}, 500);\n }\n }\n \n </script>\n <script>\n \t//Scroll to Top link einblenden\n $(document).ready(function() {\n $('.to-top').hide();\n $(window).scroll(function(){\n var value = 200;\n var scrolling = $(window).scrollTop();\n if (scrolling > value) {\n $('.to-top').fadeIn();\n } else {\n $('.to-top').fadeOut();\n }\n });\n $('.to-top').click(function(){\n $('html, body').animate({scrollTop:'0px'}, 1000);\n return false;\n });\n });\n \n </script>\n \n <script>\n \t//masonary\n \t$('.grid').masonry({\n itemSelector: '.grid-item',\n columnWidth: 320,\n isFitWidth: true\n });\n </script>\n \n <script>\n function show(id) {\n if(document.getElementById) {\n var mydiv = document.getElementById(id);\n mydiv.style.display = (mydiv.style.display=='block'?'none':'block');\n }\n }\n </script>\n \n <script>\n \t(function($) {\n \t\t$('#search input.radio').click(function() {\n \t\t\tlet $this = $(this);\n \t\t\tlet action = '';\n \t\t\t\n \t\t\tif ($this.attr('value') == 'produkt') {\n \t\t\t\taction = 'sortiment.html';\n \t\t\t} else {\n \t\t\t\taction = 'suchergebnisse.html';\t\n \t\t\t}\n \t\t\t\n \t\t\t$this.parents('form').attr('action', action);\n \t\t});\n \t})(jQuery);\n </script>\n \n <script>\n \t(function($) {\n \t\t$(document).ready(function(){\n \t$( "#such-button").click(function() {\n $( "#search-form").toggle();\n });\n \n });\n \t})(jQuery);\n </script>\n \n <div id="thumbnail" class="invisible" style="position: absolute; float: left; z-index: 1000;"><img style="max-height: 150px; max-width: 150px;" src="" /></div>\n \n <script>\n $(document).bind('mousemove', function(e){\n $('#thumbnail').css({\n left: e.pageX + 20,\n top: e.pageY\n });\n });\n </script>\n <script type="application/ld+json">\n {\n "@context": "https:\/\/schema.org",\n "@graph": [\n {\n "@type": "WebPage"\n },\n {\n "@id": "#\/schema\/image\/ae717905-69d3-11ee-881f-8ada7f861d63",\n "@type": "ImageObject",\n "contentUrl": "\/files\/template\/redesign24\/img\/Logo.svg"\n },\n {\n "@id": "#\/schema\/image\/b78cff80-69d3-11ee-881f-8ada7f861d63",\n "@type": "ImageObject",\n "contentUrl": "\/files\/template\/redesign24\/img\/demeter_logo.svg"\n },\n {\n "@id": "#\/schema\/image\/3085492b-845e-11ee-8ea4-8ada7f861d63",\n "@type": "ImageObject",\n "contentUrl": "\/assets\/images\/e\/Logo_OG-b02b1bc9.png"\n },\n {\n "@id": "#\/schema\/image\/256667a4-845e-11ee-8ea4-8ada7f861d63",\n "@type": "ImageObject",\n "contentUrl": "\/assets\/images\/8\/bio_eu-a159cde7.png"\n },\n {\n "@id": "#\/schema\/image\/79ebb7f5-e1e1-11ee-bd59-8ada7f861d63",\n "@type": "ImageObject",\n "contentUrl": "\/assets\/images\/9\/fairbio-0e5138c0.png"\n },\n {\n "@id": "#\/schema\/image\/c51f4d73-42ab-11ef-88ab-8ada7f861d63",\n "@type": "ImageObject",\n "contentUrl": "\/assets\/images\/2\/sfd-unterstuetzer-2024-logo-rahmen-160px-ca139e7f.jpg"\n }\n ]\n }\n </script>\n <script type="application/ld+json">\n {\n "@context": "https:\/\/schema.contao.org",\n "@graph": [\n {\n "@type": "Page",\n "fePreview": false,\n "groups": [],\n "noSearch": true,\n "pageId": 57,\n "protected": false,\n "title": "Datenschutzerklärung"\n }\n ]\n }\n </script>\n <div id="sfwdtc6f7c9" class="sf-toolbar sf-display-none" role="region" aria-label="Symfony Web Debug Toolbar"> <!-- START of Symfony Web Debug Toolbar --><div id="sfMiniToolbar-c6f7c9" class="sf-minitoolbar" data-no-turbolink data-turbo="false"> <button type="button" title="Show Symfony toolbar" id="sfToolbarMiniToggler-c6f7c9" accesskey="D" aria-expanded="false" aria-controls="sfToolbarMainContent-c6f7c9"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .9C5.8.9.9 5.8.9 12a11 11 0 1 0 22.2 0A11 11 0 0 0 12 .9zm6.5 6c-.6 0-.9-.3-.9-.8 0-.2 0-.4.2-.6l.2-.4c0-.3-.5-.4-.6-.4-1.8.1-2.3 2.5-2.7 4.4l-.2 1c1 .2 1.8 0 2.2-.3.6-.4-.2-.7-.1-1.2.1-.3.5-.5.7-.6.5 0 .7.5.7.9 0 .7-1 1.8-3 1.8l-.6-.1-.6 2.4c-.4 1.6-.8 3.8-2.4 5.7-1.4 1.7-2.9 1.9-3.5 1.9-1.2 0-1.9-.6-2-1.5 0-.8.7-1.3 1.2-1.3.6 0 1.1.5 1.1 1s-.2.6-.4.6c-.1.1-.3.2-.3.4 0 .1.1.3.4.3.5 0 .8-.3 1.1-.5 1.2-.9 1.6-2.7 2.2-5.7l.1-.7.7-3.2c-.8-.6-1.3-1.4-2.4-1.7-.6-.1-1.1.1-1.5.5-.4.5-.2 1.1.2 1.5l.7.6c.7.8 1.2 1.6 1 2.5-.3 1.5-2 2.6-4 1.9-1.8-.6-2-1.8-1.8-2.5.2-.6.6-.7 1.1-.6.5.2.6.7.6 1.2l-.1.3c-.2.1-.3.3-.3.4-.1.4.4.6.7.7.7.3 1.6-.2 1.8-.8a1 1 0 0 0-.4-1.1l-.7-.8c-.4-.4-1.1-1.4-.7-2.6.1-.5.4-.9.7-1.3a4 4 0 0 1 2.8-.6c1.2.4 1.8 1.1 2.6 1.8.5-1.2 1-2.4 1.8-3.5.9-.9 1.9-1.6 3.1-1.7 1.3.2 2.2.7 2.2 1.6 0 .4-.2 1.1-.9 1.1z"/></svg> </button></div><div id="sfToolbarClearer-c6f7c9" class="sf-toolbar-clearer"></div><div id="sfToolbarMainContent-c6f7c9" class="sf-toolbarreset notranslate clear-fix" data-no-turbolink data-turbo="false"> <div class="sf-toolbar-block sf-toolbar-block-request sf-toolbar-status-normal " > <a href="https://dls.c5.bargon.net/_profiler/c6f7c9?panel=request"> <div class="sf-toolbar-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .9C5.8.9.9 5.8.9 12a11 11 0 1 0 22.2 0A11 11 0 0 0 12 .9zm6.5 6c-.6 0-.9-.3-.9-.8 0-.2 0-.4.2-.6l.2-.4c0-.3-.5-.4-.6-.4-1.8.1-2.3 2.5-2.7 4.4l-.2 1c1 .2 1.8 0 2.2-.3.6-.4-.2-.7-.1-1.2.1-.3.5-.5.7-.6.5 0 .7.5.7.9 0 .7-1 1.8-3 1.8l-.6-.1-.6 2.4c-.4 1.6-.8 3.8-2.4 5.7-1.4 1.7-2.9 1.9-3.5 1.9-1.2 0-1.9-.6-2-1.5 0-.8.7-1.3 1.2-1.3.6 0 1.1.5 1.1 1s-.2.6-.4.6c-.1.1-.3.2-.3.4 0 .1.1.3.4.3.5 0 .8-.3 1.1-.5 1.2-.9 1.6-2.7 2.2-5.7l.1-.7.7-3.2c-.8-.6-1.3-1.4-2.4-1.7-.6-.1-1.1.1-1.5.5-.4.5-.2 1.1.2 1.5l.7.6c.7.8 1.2 1.6 1 2.5-.3 1.5-2 2.6-4 1.9-1.8-.6-2-1.8-1.8-2.5.2-.6.6-.7 1.1-.6.5.2.6.7.6 1.2l-.1.3c-.2.1-.3.3-.3.4-.1.4.4.6.7.7.7.3 1.6-.2 1.8-.8a1 1 0 0 0-.4-1.1l-.7-.8c-.4-.4-1.1-1.4-.7-2.6.1-.5.4-.9.7-1.3a4 4 0 0 1 2.8-.6c1.2.4 1.8 1.1 2.6 1.8.5-1.2 1-2.4 1.8-3.5.9-.9 1.9-1.6 3.1-1.7 1.3.2 2.2.7 2.2 1.6 0 .4-.2 1.1-.9 1.1z"/></svg> <span class="sf-toolbar-value sf-toolbar-ajax-request-counter"> Loading… </span> </div> </a> <div class="sf-toolbar-info"> <div class="sf-toolbar-info-piece"> <b>Loading the web debug toolbar…</b> </div> <div class="sf-toolbar-info-piece"> Attempt #<span id="sfLoadCounter-c6f7c9"></span> </div> <div class="sf-toolbar-info-piece"> <b> <button class="sf-cancel-button" type="button" id="sfLoadCancel-c6f7c9" title="Cancel loading">Cancel</button> </b> </div> </div></div> <button class="hide-button" type="button" id="sfToolbarHideButton-c6f7c9" title="Close Toolbar" accesskey="D" aria-expanded="true" aria-controls="sfToolbarMainContent-c6f7c9"> <svg xmlns="http://www.w3.org/2000/svg" data-icon-name="icon-tabler-x" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line></svg> </button></div><!-- END of Symfony Web Debug Toolbar --></div><style nonce="4006e0a7c62704b875d311744f16129c"> .sf-toolbarreset { --sf-toolbar-font-family-system: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --sf-toolbar-font-family-monospace: "Ubuntu Mono", "JetBrains Mono", ui-monospace, "Roboto Mono", SFMono-Regular, Menlo, Monaco, Consolas,"Liberation Mono", "Courier New", monospace; --sf-toolbar-white: #fff; --sf-toolbar-black: #000; --sf-toolbar-gray-50: #fafafa; --sf-toolbar-gray-100: #f5f5f5; --sf-toolbar-gray-200: #e5e5e5; --sf-toolbar-gray-300: #d4d4d4; --sf-toolbar-gray-400: #a3a3a3; --sf-toolbar-gray-500: #737373; --sf-toolbar-gray-600: #525252; --sf-toolbar-gray-700: #404040; --sf-toolbar-gray-800: #262626; --sf-toolbar-gray-900: #171717; --sf-toolbar-red-50: #FEFBFC; --sf-toolbar-red-100: #FCE9ED; --sf-toolbar-red-200: #F5B8C5; --sf-toolbar-red-300: #EF869C; --sf-toolbar-red-400: #E85574; --sf-toolbar-red-500: #E1244B; --sf-toolbar-red-600: #B41939; --sf-toolbar-red-700: #83122A; --sf-toolbar-red-800: #510B1A; --sf-toolbar-red-900: #20040A; --sf-toolbar-yellow-50: #fef7e1; --sf-toolbar-yellow-100: #fef2cd; --sf-toolbar-yellow-200: #fde496; --sf-toolbar-yellow-300: #fcd55f; --sf-toolbar-yellow-400: #fbc728; --sf-toolbar-yellow-500: #e6af05; --sf-toolbar-yellow-600: #af8503; --sf-toolbar-yellow-700: #785b02; --sf-toolbar-yellow-800: #413101; --sf-toolbar-yellow-900: #0a0800; --sf-toolbar-green-50: #eff5f5; --sf-toolbar-green-100: #deeaea; --sf-toolbar-green-200: #bbd5d5; --sf-toolbar-green-300: #99bfbf; --sf-toolbar-green-400: #76a9a9; --sf-toolbar-green-500: #598e8e; --sf-toolbar-green-600: #436c6c; --sf-toolbar-green-700: #2e4949; --sf-toolbar-green-800: #182727; --sf-toolbar-green-900: #030404;}.sf-minitoolbar { --sf-toolbar-gray-800: #262626; background-color: var(--sf-toolbar-gray-800); border-top-left-radius: 4px; bottom: 0; box-sizing: border-box; display: none; height: 36px; padding: 6px; position: fixed; right: 0; z-index: 99999;}.sf-minitoolbar button { background-color: transparent; padding: 0; border: none;}.sf-minitoolbar svg,.sf-minitoolbar img { --sf-toolbar-gray-200: #e5e5e5; color: var(--sf-toolbar-gray-200); max-height: 24px; max-width: 24px; display: inline;}.sf-toolbar-clearer { clear: both; height: 36px;}.sf-display-none { display: none;}.sf-toolbarreset *:not(svg rect) { box-sizing: content-box; vertical-align: baseline; letter-spacing: normal; width: auto;}.sf-toolbarreset { background-color: var(--sf-toolbar-gray-800); bottom: 0; box-shadow: inset 0 1px 0 var(--sf-toolbar-black), 0 -1px 0 rgba(0, 0, 0, 0.5); color: var(--sf-toolbar-gray-200); font: 11px var(--sf-toolbar-font-family-system); left: 0; margin: 0; padding: 0 36px 0 0; position: fixed; right: 0; text-align: left; text-transform: none; z-index: 99999; direction: ltr; /* neutralize the aliasing defined by external CSS styles */ -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto;}.sf-toolbarreset abbr { border: dashed var(--sf-toolbar-gray-500); border-width: 0 0 1px;}.sf-toolbarreset svg,.sf-toolbarreset img { height: 20px; width: 20px; display: inline-block;}.sf-toolbarreset .sf-cancel-button { color: var(--sf-toolbar-gray-700);}.sf-toolbarreset .hide-button { background: var(--sf-toolbar-gray-800); color: var(--sf-toolbar-gray-300); display: block; position: absolute; top: 2px; right: 0; width: 36px; height: 34px; cursor: pointer; text-align: center; border: none; margin: 0; padding: 0;}.sf-toolbarreset .hide-button:hover { background: var(--sf-toolbar-gray-700);}.sf-toolbarreset .hide-button svg { max-height: 18px; margin-top: 1px;}.sf-toolbar-block { cursor: default; display: block; float: left; height: 36px; margin-right: 0; position: relative; white-space: nowrap; max-width: 15%;}.sf-toolbar-block > a,.sf-toolbar-block > a:hover { display: block; text-decoration: none; background-color: transparent; color: inherit;}.sf-toolbar-block span { display: inline-block;}.sf-toolbar-block .sf-toolbar-value { color: var(--sf-toolbar-gray-100); font-size: 13px; line-height: 36px; padding: 0;}.sf-toolbar-block .sf-toolbar-label,.sf-toolbar-block .sf-toolbar-class-separator { color: var(--sf-toolbar-gray-400); font-size: 12px; margin-left: 2px;}.sf-toolbar-block .sf-toolbar-info { border-collapse: collapse; display: table; z-index: 100000;}.sf-toolbar-block hr { border-top: 1px solid var(--sf-toolbar-gray-500); margin: 4px 0; padding-top: 4px;}.sf-toolbar-block .sf-toolbar-info-piece { /* this 'border-bottom' trick is needed because 'margin-bottom' doesn't work for table rows */ border-bottom: solid transparent 3px; display: table-row;}.sf-toolbar-block .sf-toolbar-info-piece-additional,.sf-toolbar-block .sf-toolbar-info-piece-additional-detail { display: none;}.sf-toolbar-block .sf-toolbar-info-group { margin-bottom: 4px; padding-bottom: 2px; border-bottom: 1px solid #333333;}.sf-toolbar-block .sf-toolbar-info-group:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none;}.sf-toolbar-block .sf-toolbar-info-piece .sf-toolbar-status { border-radius: 4px; padding: 2px 5px; margin-bottom: 0;}.sf-toolbar-block .sf-toolbar-info-piece .sf-toolbar-status + .sf-toolbar-status { margin-left: 4px;}.sf-toolbar-block .sf-toolbar-info-piece:last-child { margin-bottom: 0;}div.sf-toolbar .sf-toolbar-block .sf-toolbar-info-piece a { color: #99CDD8; text-decoration: underline;}div.sf-toolbar .sf-toolbar-block a:hover { text-decoration: none;}.sf-toolbar-block .sf-toolbar-info-piece b { color: var(--sf-toolbar-gray-400); display: table-cell; font-size: 11px; padding: 4px 8px 4px 0;}.sf-toolbar-block:not(.sf-toolbar-block-dump) .sf-toolbar-info-piece span { color: var(--sf-toolbar-gray-100);}.sf-toolbar-block .sf-toolbar-info-piece span { font-size: 12px;}div.sf-toolbar .sf-toolbar-block .sf-toolbar-info-piece.sf-toolbar-info-php-ext a { text-decoration: none;}.sf-toolbar-block .sf-toolbar-info { background-color: var(--sf-toolbar-gray-700); border-radius: 4px; border-bottom-left-radius: 0; bottom: 36px; color: var(--sf-toolbar-gray-100); display: none; padding: 9px 0; position: absolute;}.sf-toolbar-block.sf-toolbar-block-right .sf-toolbar-info { border-bottom-left-radius: 4px; border-bottom-right-radius: 0;}.sf-toolbar-block .sf-toolbar-info:empty { visibility: hidden;}.sf-toolbar-block .sf-toolbar-status { display: inline-block; color: var(--sf-toolbar-white); background-color: var(--sf-toolbar-gray-600); padding: 3px 6px; margin: 0 4px; min-width: 15px; min-height: 13px; text-align: center;}.sf-toolbar-block .sf-toolbar-status.sf-toolbar-status-green,.sf-toolbar-block .sf-toolbar-info .sf-toolbar-status.sf-toolbar-status-green { background-color: #059669; color: var(--white);}.sf-toolbar-block .sf-toolbar-status.sf-toolbar-status-red,.sf-toolbar-block .sf-toolbar-info .sf-toolbar-status.sf-toolbar-status-red { background-color: var(--sf-toolbar-red-500); color: var(--sf-toolbar-red-50);}.sf-toolbar-block .sf-toolbar-status.sf-toolbar-status-yellow,.sf-toolbar-block .sf-toolbar-info .sf-toolbar-status.sf-toolbar-status-yellow { background-color: var(--sf-toolbar-yellow-300); color: var(--sf-toolbar-yellow-800);}.sf-toolbar-block.sf-toolbar-status-green::before,.sf-toolbar-block.sf-toolbar-status-red::before,.sf-toolbar-block.sf-toolbar-status-yellow::before { background: var(--sf-toolbar-yellow-400); border-radius: 6px; content: ''; position: absolute; bottom: 1px; left: 0; width: 98%; height: 3px; z-index: 10005;}.sf-toolbar-block.sf-toolbar-status-red::before { background: var(--sf-toolbar-red-400);}.sf-toolbar-block.sf-toolbar-status-green::before { background: var(--sf-toolbar-green-400);}.sf-toolbar-block-request.sf-toolbar-block.sf-toolbar-status-green::before,.sf-toolbar-block-request.sf-toolbar-block.sf-toolbar-status-red::before,.sf-toolbar-block-request.sf-toolbar-block.sf-toolbar-status-yellow::before { display: none;}.sf-toolbar-block-request .sf-toolbar-status { border-radius: 6px; color: #fff; display: inline-block; flex-shrink: 0; font-size: 13px; font-weight: 500; padding: 4px 8px;}.sf-toolbar-block-request .sf-toolbar-info-piece a { background-color: transparent; text-decoration: none;}.sf-toolbar-block-request .sf-toolbar-info-piece a:hover { text-decoration: underline;}.sf-toolbar-block-request .sf-toolbar-redirection-status { font-weight: normal; padding: 2px 4px; line-height: 18px;}.sf-toolbar-block.sf-toolbar-block-request .sf-toolbar-redirection-status.sf-toolbar-status-yellow { background-color: var(--sf-toolbar-yellow-300); border-radius: 4px; color: var(--sf-toolbar-yellow-800); padding: 1px 4px;}.sf-toolbar-block.sf-toolbar-block-request .sf-toolbar-info-piece .sf-toolbar-redirection-method { background: transparent; color: var(--sf-toolbar-gray-300); border: 1px solid var(--sf-toolbar-gray-400); padding: 1px 4px;}.sf-toolbar-block-request .sf-toolbar-info-piece span.sf-toolbar-redirection-method { font-size: 12px; height: 17px; line-height: 17px; margin-right: 5px;}.sf-toolbar-block-request .sf-toolbar-request-icon svg { stroke-width: 3px;}.sf-toolbar-block-ajax .sf-toolbar-icon { cursor: pointer;}.sf-toolbar-status-green .sf-toolbar-label,.sf-toolbar-status-yellow .sf-toolbar-label,.sf-toolbar-status-red .sf-toolbar-label { color: var(--sf-toolbar-white);}.sf-toolbar-block-config svg path,.sf-toolbar-block-config svg .sf-svg-path { fill: var(--sf-toolbar-white);}.sf-toolbar-block .sf-toolbar-icon { color: var(--sf-toolbar-gray-300); align-items: center; display: flex; height: 36px; padding: 0 7px; overflow: hidden; text-overflow: ellipsis;}.sf-toolbar-block:hover .sf-toolbar-icon { border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 1px 0 0 var(--sf-toolbar-black), inset 0 -1px 0 var(--sf-toolbar-black);}.sf-toolbar-block.sf-toolbar-block-right:hover .sf-toolbar-icon { box-shadow: -1px 0 0 var(--sf-toolbar-black), inset 0 -1px 0 var(--sf-toolbar-black);}.sf-toolbar-block-request .sf-toolbar-icon { padding-left: 0; padding-right: 0;}.sf-toolbar-block .sf-toolbar-icon img,.sf-toolbar-block .sf-toolbar-icon svg { border-width: 0;}.sf-toolbar-block .sf-toolbar-icon img + span,.sf-toolbar-block .sf-toolbar-icon svg + span { margin-left: 4px;}.sf-toolbar-block-config .sf-toolbar-icon .sf-toolbar-value,.sf-toolbar-block.sf-toolbar-block-sf-cli .sf-toolbar-value { margin-left: 5px;}.sf-toolbar-block-config .sf-toolbar-icon .sf-toolbar-label,.sf-toolbar-block.sf-toolbar-block-sf-cli .sf-toolbar-label { margin-left: 0;}.sf-toolbar-block:hover,.sf-toolbar-block.hover { position: relative;}.sf-toolbar-block:hover .sf-toolbar-icon,.sf-toolbar-block.hover .sf-toolbar-icon { background-color: var(--sf-toolbar-gray-700); position: relative; z-index: 10002;}.sf-toolbar-block-ajax.hover .sf-toolbar-info { z-index: 10001;}.sf-toolbar-block:hover .sf-toolbar-info,.sf-toolbar-block.hover .sf-toolbar-info { display: block; padding: 10px; max-width: 525px; max-height: 480px; word-wrap: break-word; overflow: hidden; overflow-y: auto;}.sf-toolbar-info-piece b.sf-toolbar-ajax-info { color: var(--sf-toolbar-gray-100);}.sf-toolbar-ajax-requests { border: 1px solid var(--sf-toolbar-gray-500); font-variant: tabular-nums; margin: 5px 0 0; width: 100%;}.sf-toolbar-ajax-requests td { background-color: var(--sf-toolbar-gray-700); border: 1px solid var(--sf-toolbar-gray-500); color: var(--sf-toolbar-gray-100); font-size: 12px; padding: 4px; vertical-align: middle;}.sf-toolbar-ajax-requests thead { border: 0;}.sf-toolbar-ajax-requests th { background-color: var(--sf-toolbar-gray-800); border: 1px solid var(--sf-toolbar-gray-500); color: var(--sf-toolbar-gray-200); font-size: 11px; padding: 4px;}.sf-ajax-request-url { max-width: 250px; line-height: 9px; overflow: hidden; text-overflow: ellipsis;}.sf-toolbar-ajax-requests .sf-ajax-request-url a { text-decoration: none;}.sf-toolbar-ajax-requests .sf-ajax-request-url a:hover { text-decoration: underline;}.sf-ajax-request-duration { text-align: right;}.sf-toolbar-block .sf-toolbar-info-piece .sf-toolbar-ajax-requests .sf-toolbar-status { font-size: 11px; padding: 1px 3px;}.sf-ajax-request-loading { animation: sf-blink .5s ease-in-out infinite;}@keyframes sf-blink { 0% { background: var(--sf-toolbar-gray-800); } 50% { background: var(--sf-toolbar-gray-700); } 100% { background: var(--sf-toolbar-gray-800); }}.sf-toolbar-block.sf-toolbar-block-dump .sf-toolbar-info { max-width: none; width: 100%; position: fixed; box-sizing: border-box; left: 0;}.sf-toolbar-block-dump pre.sf-dump { background-color: var(--sf-toolbar-gray-800); border-color: var(--sf-toolbar-gray-500); border-radius: 0; margin: 6px 0 12px 0;}.sf-toolbar-block-dump pre.sf-dump:last-child { margin-bottom: 0;}.sf-toolbar-block-dump pre.sf-dump .sf-dump-search-wrapper { margin-bottom: 5px;}.sf-toolbar-block-dump pre.sf-dump span.sf-dump-search-count { color: #333; font-size: 12px;}.sf-toolbar-block-dump .sf-toolbar-info-piece { display: block;}.sf-toolbar-block-dump .sf-toolbar-info-piece .sf-toolbar-file-line { color: var(--sf-toolbar-gray-400); margin-left: 4px;}.sf-toolbar-block-dump .sf-toolbar-info img { display: none;}.sf-toolbar-block-serializer .detailed-metrics { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 15px; margin-top: 15px;}/* Responsive Design */.sf-toolbar-icon .sf-toolbar-label,.sf-toolbar-icon .sf-toolbar-value { display: none;}.sf-toolbar-block-config .sf-toolbar-icon .sf-toolbar-label,.sf-cli .sf-toolbar-icon .sf-toolbar-label { display: inline-block;}/* Legacy Design - these styles are maintained to make old panels look a bit better on the new toolbar */.sf-toolbar-block .sf-toolbar-info-piece-additional-detail { color: var(--sf-toolbar-gray-400); font-size: 12px;}.sf-toolbar-status-green .sf-toolbar-info-piece-additional-detail,.sf-toolbar-status-yellow .sf-toolbar-info-piece-additional-detail,.sf-toolbar-status-red .sf-toolbar-info-piece-additional-detail { color: var(--sf-toolbar-white);}@media (min-width: 768px) { .sf-toolbar-icon .sf-toolbar-label, .sf-toolbar-icon .sf-toolbar-value { display: inline; } .sf-toolbar-block-time .sf-toolbar-icon svg, .sf-toolbar-block-memory .sf-toolbar-icon svg { display: none; } .sf-toolbar-block-time .sf-toolbar-icon svg + span, .sf-toolbar-block-memory .sf-toolbar-icon svg + span { margin-left: 0; } .sf-toolbar-block .sf-toolbar-icon { padding: 0 10px; } .sf-toolbar-block-time .sf-toolbar-icon { padding-right: 5px; } .sf-toolbar-block-memory .sf-toolbar-icon { padding-left: 5px; } .sf-toolbar-block-request .sf-toolbar-icon { display: flex; align-items: center; padding-left: 0; padding-right: 0; } .sf-toolbar-block-request .sf-toolbar-label { margin-left: 4px; margin-right: 1px; } .sf-toolbar-block-request .sf-toolbar-status + .sf-toolbar-request-icon { display: inline-flex; margin-left: 5px; } .sf-toolbar-block-request .sf-toolbar-icon .sf-toolbar-request-icon + .sf-toolbar-label { margin-left: 0; } .sf-toolbar-block-request .sf-toolbar-label + .sf-toolbar-value { margin-right: 5px; } .sf-toolbar-block-request:hover .sf-toolbar-info { max-width: none; } .sf-toolbar-block .sf-toolbar-info-piece b { font-size: 12px; } .sf-toolbar-block .sf-toolbar-info-piece span { font-size: 13px; } .sf-toolbar-block-right { float: right; margin-left: 0; margin-right: 0; } .sf-toolbarreset .sf-toolbar-block.sf-toolbar-block-right:not(.sf-toolbar-block-sf-cli) .sf-toolbar-info { border-bottom-left-radius: 4px; border-bottom-right-radius: 0; }}@media (min-width: 1024px) { .sf-toolbar-block .sf-toolbar-info-piece-additional, .sf-toolbar-block .sf-toolbar-info-piece-additional-detail { display: inline; } .sf-toolbar-block .sf-toolbar-info-piece-additional:empty, .sf-toolbar-block .sf-toolbar-info-piece-additional-detail:empty { display: none; }}/***** Error Toolbar *****/.sf-error-toolbar .sf-toolbarreset { background: var(--sf-toolbar-gray-800); color: var(--sf-toolbar-gray-100); font: 13px/36px var(--sf-toolbar-font-family-system); height: 36px; padding: 0 15px; text-align: left;}.sf-error-toolbar .sf-toolbarreset svg { height: auto;}.sf-error-toolbar .sf-toolbarreset a { color: #99cdd8; margin-left: 5px; text-decoration: underline;}.sf-error-toolbar .sf-toolbarreset a:hover { text-decoration: none;}.sf-error-toolbar .sf-toolbarreset .sf-toolbar-icon { float: left; padding: 5px 0; margin-right: 10px;}.sf-full-stack { left: 0px; font-size: 12px;}/***** Media query print: Do not print the Toolbar. *****/@media print { .sf-toolbar { display: none !important; }}</style><script nonce="9b04e23bfd5826fbfe3db79dfd9f8507">/*<![CDATA[*/ if (typeof Sfjs === 'undefined' || typeof Sfjs.loadToolbar === 'undefined') { Sfjs = (function() { "use strict"; if ('classList' in document.documentElement) { var hasClass = function (el, cssClass) { return el.classList.contains(cssClass); }; var removeClass = function(el, cssClass) { el.classList.remove(cssClass); }; var addClass = function(el, cssClass) { el.classList.add(cssClass); }; var toggleClass = function(el, cssClass) { el.classList.toggle(cssClass); }; } else { var hasClass = function (el, cssClass) { return el.className.match(new RegExp('\\b' + cssClass + '\\b')); }; var removeClass = function(el, cssClass) { el.className = el.className.replace(new RegExp('\\b' + cssClass + '\\b'), ' '); }; var addClass = function(el, cssClass) { if (!hasClass(el, cssClass)) { el.className += " " + cssClass; } }; var toggleClass = function(el, cssClass) { hasClass(el, cssClass) ? removeClass(el, cssClass) : addClass(el, cssClass); }; } var noop = function() {}; var profilerStorageKey = 'symfony/profiler/'; var addEventListener; var el = document.createElement('div'); if (!('addEventListener' in el)) { addEventListener = function (element, eventName, callback) { element.attachEvent('on' + eventName, callback); }; } else { addEventListener = function (element, eventName, callback) { element.addEventListener(eventName, callback, false); }; } var request = function(url, onSuccess, onError, payload, options, tries) { var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); options = options || {}; options.retry = options.retry || false; tries = tries || 1; /* this delays for 125, 375, 625, 875, and 1000, ... */ var delay = tries < 5 ? (tries - 0.5) * 250 : 1000; xhr.open(options.method || 'GET', url, true); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.onreadystatechange = function(state) { if (4 !== xhr.readyState) { return null; } if (xhr.status == 404 && options.retry && !options.stop) { setTimeout(function() { if (options.stop) { return; } request(url, onSuccess, onError, payload, options, tries + 1); }, delay); return null; } if (200 === xhr.status) { (onSuccess || noop)(xhr); } else { (onError || noop)(xhr); } }; if (options.onSend) { options.onSend(tries); } xhr.send(payload || ''); }; var getPreference = function(name) { if (!window.localStorage) { return null; } return localStorage.getItem(profilerStorageKey + name); }; var setPreference = function(name, value) { if (!window.localStorage) { return null; } localStorage.setItem(profilerStorageKey + name, value); }; var requestStack = []; var extractHeaders = function(xhr, stackElement) { /* Here we avoid to call xhr.getResponseHeader in order to */ /* prevent polluting the console with CORS security errors */ var allHeaders = xhr.getAllResponseHeaders(); var ret; if (ret = allHeaders.match(/^x-debug-token:\s+(.*)$/im)) { stackElement.profile = ret[1]; } if (ret = allHeaders.match(/^x-debug-token-link:\s+(.*)$/im)) { stackElement.profilerUrl = ret[1]; } if (ret = allHeaders.match(/^Symfony-Debug-Toolbar-Replace:\s+(.*)$/im)) { stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = '1' === ret[1]; } }; var successStreak = 4; var pendingRequests = 0; var renderAjaxRequests = function() { var requestCounter = document.querySelector('.sf-toolbar-ajax-request-counter'); if (!requestCounter) { return; } requestCounter.textContent = requestStack.length; var infoSpan = document.querySelector(".sf-toolbar-ajax-info"); if (infoSpan) { infoSpan.textContent = requestStack.length + ' AJAX request' + (requestStack.length !== 1 ? 's' : ''); } var ajaxToolbarPanel = document.querySelector('.sf-toolbar-block-ajax'); if (requestStack.length) { ajaxToolbarPanel.style.display = 'block'; } else { ajaxToolbarPanel.style.display = 'none'; } if (pendingRequests > 0) { addClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); } else if (successStreak < 4) { addClass(ajaxToolbarPanel, 'sf-toolbar-status-red'); removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); } else { removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); removeClass(ajaxToolbarPanel, 'sf-toolbar-status-red'); } }; var startAjaxRequest = function(index) { var tbody = document.querySelector('.sf-toolbar-ajax-request-list'); if (!tbody) { return; } var nbOfAjaxRequest = tbody.rows.length; if (nbOfAjaxRequest >= 100) { tbody.deleteRow(0); } var request = requestStack[index]; pendingRequests++; var row = document.createElement('tr'); request.DOMNode = row; var requestNumberCell = document.createElement('td'); requestNumberCell.textContent = index + 1; row.appendChild(requestNumberCell); var profilerCell = document.createElement('td'); profilerCell.textContent = 'n/a'; row.appendChild(profilerCell); var methodCell = document.createElement('td'); methodCell.textContent = request.method; row.appendChild(methodCell); var typeCell = document.createElement('td'); typeCell.textContent = request.type; row.appendChild(typeCell); var statusCodeCell = document.createElement('td'); var statusCode = document.createElement('span'); statusCode.textContent = 'n/a'; statusCodeCell.appendChild(statusCode); row.appendChild(statusCodeCell); var pathCell = document.createElement('td'); pathCell.className = 'sf-ajax-request-url'; if ('GET' === request.method) { var pathLink = document.createElement('a'); pathLink.setAttribute('href', request.url); pathLink.textContent = request.url; pathCell.appendChild(pathLink); } else { pathCell.textContent = request.url; } pathCell.setAttribute('title', request.url); row.appendChild(pathCell); var durationCell = document.createElement('td'); durationCell.className = 'sf-ajax-request-duration'; durationCell.textContent = 'n/a'; row.appendChild(durationCell); request.liveDurationHandle = setInterval(function() { durationCell.textContent = (new Date() - request.start) + ' ms'; }, 100); row.className = 'sf-ajax-request sf-ajax-request-loading'; tbody.insertBefore(row, null); var toolbarInfo = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info'); toolbarInfo.scrollTop = toolbarInfo.scrollHeight; renderAjaxRequests(); }; var finishAjaxRequest = function(index) { var request = requestStack[index]; clearInterval(request.liveDurationHandle); if (!request.DOMNode) { return; } if (request.toolbarReplace && !request.toolbarReplaceFinished && request.profile) { /* Flag as complete because finishAjaxRequest can be called multiple times. */ request.toolbarReplaceFinished = true; /* Search up through the DOM to find the toolbar's container ID. */ for (var elem = request.DOMNode; elem && elem !== document; elem = elem.parentNode) { if (elem.id.match(/^sfwdt/)) { Sfjs.loadToolbar(elem.id.replace(/^sfwdt/, ''), request.profile); break; } } } pendingRequests--; var row = request.DOMNode; /* Unpack the children from the row */ var profilerCell = row.children[1]; var methodCell = row.children[2]; var statusCodeCell = row.children[4]; var statusCodeElem = statusCodeCell.children[0]; var durationCell = row.children[6]; if (request.error) { row.className = 'sf-ajax-request sf-ajax-request-error'; methodCell.className = 'sf-ajax-request-error'; successStreak = 0; } else { row.className = 'sf-ajax-request sf-ajax-request-ok'; successStreak++; } if (request.statusCode) { if (request.statusCode < 300) { statusCodeElem.setAttribute('class', 'sf-toolbar-status'); } else if (request.statusCode < 400) { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-yellow'); } else { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red'); } statusCodeElem.textContent = request.statusCode; } else { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red'); } if (request.duration) { durationCell.textContent = request.duration + ' ms'; } if (request.profilerUrl) { profilerCell.textContent = ''; var profilerLink = document.createElement('a'); profilerLink.setAttribute('href', request.profilerUrl); profilerLink.textContent = request.profile; profilerCell.appendChild(profilerLink); } renderAjaxRequests(); }; if (window.fetch && window.fetch.polyfill === undefined) { var oldFetch = window.fetch; window.fetch = function () { var promise = oldFetch.apply(this, arguments); var url = arguments[0]; var params = arguments[1]; var paramType = Object.prototype.toString.call(arguments[0]); if (paramType === '[object Request]') { url = arguments[0].url; params = { method: arguments[0].method, credentials: arguments[0].credentials, headers: arguments[0].headers, mode: arguments[0].mode, redirect: arguments[0].redirect }; } else { url = String(url); } if (!url.match(new RegExp("^\/((index|app(_[\\w]+)?)\\.php\/)?_wdt"))) { var method = 'GET'; if (params && params.method !== undefined) { method = params.method; } var stackElement = { error: false, url: url, method: method, type: 'fetch', start: new Date() }; var idx = requestStack.push(stackElement) - 1; promise.then(function (r) { stackElement.duration = new Date() - stackElement.start; stackElement.error = r.status < 200 || r.status >= 400; stackElement.statusCode = r.status; stackElement.profile = r.headers.get('x-debug-token'); stackElement.profilerUrl = r.headers.get('x-debug-token-link'); stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = '1' === r.headers.get('Symfony-Debug-Toolbar-Replace'); finishAjaxRequest(idx); }, function (e){ stackElement.error = true; finishAjaxRequest(idx); }); startAjaxRequest(idx); } return promise; }; } if (window.XMLHttpRequest && XMLHttpRequest.prototype.addEventListener) { var proxied = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { var self = this; /* prevent logging AJAX calls to static and inline files, like templates */ var path = url; if (url.slice(0, 1) === '/') { if (0 === url.indexOf('')) { path = url.slice(0); } } else if (0 === url.indexOf('https\u003A\/\/dls.c5.bargon.net')) { path = url.slice(25); } if (!path.match(new RegExp("^\/((index|app(_[\\w]+)?)\\.php\/)?_wdt"))) { var stackElement = { error: false, url: url, method: method, type: 'xhr', start: new Date() }; var idx = requestStack.push(stackElement) - 1; this.addEventListener('readystatechange', function() { if (self.readyState == 4) { stackElement.duration = new Date() - stackElement.start; stackElement.error = self.status < 200 || self.status >= 400; stackElement.statusCode = self.status; extractHeaders(self, stackElement); finishAjaxRequest(idx); } }, false); startAjaxRequest(idx); } proxied.apply(this, Array.prototype.slice.call(arguments)); }; } return { hasClass: hasClass, removeClass: removeClass, addClass: addClass, toggleClass: toggleClass, getPreference: getPreference, setPreference: setPreference, addEventListener: addEventListener, request: request, renderAjaxRequests: renderAjaxRequests, getSfwdt: function(token) { return document.getElementById('sfwdt' + token); }, load: function(selector, url, onSuccess, onError, options) { var el = document.getElementById(selector); if (el && el.getAttribute('data-sfurl') !== url) { request( url, function(xhr) { el.innerHTML = xhr.responseText; el.setAttribute('data-sfurl', url); removeClass(el, 'loading'); var pending = pendingRequests; for (var i = 0; i < requestStack.length; i++) { startAjaxRequest(i); if (requestStack[i].duration || requestStack[i].error) { finishAjaxRequest(i); } } /* Revert the pending state in case there was a start called without a finish above. */ pendingRequests = pending; (onSuccess || noop)(xhr, el); }, function(xhr) { (onError || noop)(xhr, el); }, '', options ); } return this; }, showToolbar: function(token) { var sfwdt = this.getSfwdt(token); removeClass(sfwdt, 'sf-display-none'); if (getPreference('toolbar/displayState') == 'none') { document.getElementById('sfToolbarMainContent-' + token).style.display = 'none'; document.getElementById('sfToolbarClearer-' + token).style.display = 'none'; document.getElementById('sfMiniToolbar-' + token).style.display = 'block'; } else { document.getElementById('sfToolbarMainContent-' + token).style.display = 'block'; document.getElementById('sfToolbarClearer-' + token).style.display = 'block'; document.getElementById('sfMiniToolbar-' + token).style.display = 'none'; } }, hideToolbar: function(token) { var sfwdt = this.getSfwdt(token); addClass(sfwdt, 'sf-display-none'); }, initToolbar: function(token) { this.showToolbar(token); var hideButton = document.getElementById('sfToolbarHideButton-' + token); var hideButtonSvg = hideButton.querySelector('svg'); hideButtonSvg.setAttribute('aria-hidden', 'true'); hideButtonSvg.setAttribute('focusable', 'false'); addEventListener(hideButton, 'click', function (event) { event.preventDefault(); var p = this.parentNode; p.style.display = 'none'; (p.previousElementSibling || p.previousSibling).style.display = 'none'; document.getElementById('sfMiniToolbar-' + token).style.display = 'block'; setPreference('toolbar/displayState', 'none'); }); var showButton = document.getElementById('sfToolbarMiniToggler-' + token); var showButtonSvg = showButton.querySelector('svg'); showButtonSvg.setAttribute('aria-hidden', 'true'); showButtonSvg.setAttribute('focusable', 'false'); addEventListener(showButton, 'click', function (event) { event.preventDefault(); var elem = this.parentNode; if (elem.style.display == 'none') { document.getElementById('sfToolbarMainContent-' + token).style.display = 'none'; document.getElementById('sfToolbarClearer-' + token).style.display = 'none'; elem.style.display = 'block'; } else { document.getElementById('sfToolbarMainContent-' + token).style.display = 'block'; document.getElementById('sfToolbarClearer-' + token).style.display = 'block'; elem.style.display = 'none' } setPreference('toolbar/displayState', 'block'); }); }, loadToolbar: function(token, newToken) { var that = this; var triesCounter = document.getElementById('sfLoadCounter-' + token); var options = { retry: true, onSend: function (count) { if (count === 3) { that.initToolbar(token); } if (triesCounter) { triesCounter.textContent = count; } }, }; var cancelButton = document.getElementById('sfLoadCancel-' + token); if (cancelButton) { addEventListener(cancelButton, 'click', function (event) { event.preventDefault(); options.stop = true; that.hideToolbar(token); }); } newToken = (newToken || token); this.load( 'sfwdt' + token, 'https\u003A\/\/dls.c5.bargon.net\/_wdt\/xxxxxx'.replace(/xxxxxx/, newToken), function(xhr, el) { var toolbarContent = document.getElementById('sfToolbarMainContent-' + newToken); /* Do nothing in the edge case where the toolbar has already been replaced with a new one */ if (!toolbarContent) { return; } /* Replace the ID, it has to match the new token */ toolbarContent.parentElement.id = 'sfwdt' + newToken; /* Evaluate in global scope scripts embedded inside the toolbar */ var i, scripts = [].slice.call(el.querySelectorAll('script')); for (i = 0; i < scripts.length; ++i) { if (scripts[i].firstChild) { eval.call({}, scripts[i].firstChild.nodeValue); } } el.style.display = -1 !== xhr.responseText.indexOf('sf-toolbarreset') ? 'block' : 'none'; if (el.style.display == 'none') { return; } that.initToolbar(newToken); /* Handle toolbar-info position */ var toolbarBlocks = [].slice.call(el.querySelectorAll('.sf-toolbar-block')); for (i = 0; i < toolbarBlocks.length; ++i) { toolbarBlocks[i].onmouseover = function () { var toolbarInfo = this.querySelectorAll('.sf-toolbar-info')[0]; var pageWidth = document.body.clientWidth; var elementWidth = toolbarInfo.offsetWidth; var leftValue = (elementWidth + this.offsetLeft) - pageWidth; var rightValue = (elementWidth + (pageWidth - this.offsetLeft)) - pageWidth; /* Reset right and left value, useful on window resize */ toolbarInfo.style.right = ''; toolbarInfo.style.left = ''; if (elementWidth > pageWidth) { toolbarInfo.style.left = 0; } else if (leftValue > 0 && rightValue > 0) { toolbarInfo.style.right = (rightValue * -1) + 'px'; } else if (leftValue < 0) { toolbarInfo.style.left = 0; } else { toolbarInfo.style.right = '0px'; } }; } renderAjaxRequests(); addEventListener(document.querySelector('.sf-toolbar-ajax-clear'), 'click', function() { requestStack = []; renderAjaxRequests(); successStreak = 4; document.querySelector('.sf-toolbar-ajax-request-list').innerHTML = ''; }); addEventListener(document.querySelector('.sf-toolbar-block-ajax'), 'mouseenter', function (event) { var elem = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info'); elem.scrollTop = elem.scrollHeight; }); addEventListener(document.querySelector('.sf-toolbar-block-ajax > .sf-toolbar-icon'), 'click', function (event) { event.preventDefault(); toggleClass(this.parentNode, 'hover'); }); var dumpInfo = document.querySelector('.sf-toolbar-block-dump .sf-toolbar-info'); if (null !== dumpInfo) { addEventListener(dumpInfo, 'sfbeforedumpcollapse', function () { dumpInfo.style.minHeight = dumpInfo.getBoundingClientRect().height+'px'; }); addEventListener(dumpInfo, 'mouseleave', function () { dumpInfo.style.minHeight = ''; }); } }, function(xhr) { if (xhr.status !== 0 && !options.stop) { var sfwdt = that.getSfwdt(token); sfwdt.innerHTML = '\ <div class="sf-toolbarreset notranslate">\ <div class="sf-toolbar-icon"><svg width="26" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 26 28" enable-background="new 0 0 26 28" xml:space="preserve"><path fill="#FFFFFF" d="M13 0C5.8 0 0 5.8 0 13c0 7.2 5.8 13 13 13c7.2 0 13-5.8 13-13C26 5.8 20.2 0 13 0z M20 7.5 c-0.6 0-1-0.3-1-0.9c0-0.2 0-0.4 0.2-0.6c0.1-0.3 0.2-0.3 0.2-0.4c0-0.3-0.5-0.4-0.7-0.4c-2 0.1-2.5 2.7-2.9 4.8l-0.2 1.1 c1.1 0.2 1.9 0 2.4-0.3c0.6-0.4-0.2-0.8-0.1-1.3C18 9.2 18.4 9 18.7 8.9c0.5 0 0.8 0.5 0.8 1c0 0.8-1.1 2-3.3 1.9 c-0.3 0-0.5 0-0.7-0.1L15 14.1c-0.4 1.7-0.9 4.1-2.6 6.2c-1.5 1.8-3.1 2.1-3.8 2.1c-1.3 0-2.1-0.6-2.2-1.6c0-0.9 0.8-1.4 1.3-1.4 c0.7 0 1.2 0.5 1.2 1.1c0 0.5-0.2 0.6-0.4 0.7c-0.1 0.1-0.3 0.2-0.3 0.4c0 0.1 0.1 0.3 0.4 0.3c0.5 0 0.9-0.3 1.2-0.5 c1.3-1 1.7-2.9 2.4-6.2l0.1-0.8c0.2-1.1 0.5-2.3 0.8-3.5c-0.9-0.7-1.4-1.5-2.6-1.8c-0.8-0.2-1.3 0-1.7 0.4C8.4 10 8.6 10.7 9 11.1 l0.7 0.7c0.8 0.9 1.3 1.7 1.1 2.7c-0.3 1.6-2.1 2.8-4.3 2.1c-1.9-0.6-2.2-1.9-2-2.7c0.2-0.6 0.7-0.8 1.2-0.6 c0.5 0.2 0.7 0.8 0.6 1.3c0 0.1 0 0.1-0.1 0.3C6 15 5.9 15.2 5.9 15.3c-0.1 0.4 0.4 0.7 0.8 0.8c0.8 0.3 1.7-0.2 1.9-0.9 c0.2-0.6-0.2-1.1-0.4-1.2l-0.8-0.9c-0.4-0.4-1.2-1.5-0.8-2.8c0.2-0.5 0.5-1 0.9-1.4c1-0.7 2-0.8 3-0.6c1.3 0.4 1.9 1.2 2.8 1.9 c0.5-1.3 1.1-2.6 2-3.8c0.9-1 2-1.7 3.3-1.8C20 4.8 21 5.4 21 6.3C21 6.7 20.8 7.5 20 7.5z"/></svg></div>\ An error occurred while loading the web debug toolbar. <a href="https\u003A\/\/dls.c5.bargon.net\/_profiler\/' + newToken + '">Open the web profiler.</a>\ </div>\ '; sfwdt.setAttribute('class', 'sf-toolbar sf-error-toolbar'); } }, options ); return this; }, toggle: function(selector, elOn, elOff) { var tmp = elOn.style.display, el = document.getElementById(selector); elOn.style.display = elOff.style.display; elOff.style.display = tmp; if (el) { el.style.display = 'none' === tmp ? 'none' : 'block'; } return this; }, }; })(); } Sfjs.loadToolbar('c6f7c9');/*]]>*/</script>\n </body>\n </html>\n \n <!-- TEMPLATE END: vendor/contao/core-bundle/contao/templates/frontend/fe_page.html5 -->\n """ } -action: "delete" } |
| Envelope stamps when dispatching | No items |
| Envelope stamps after dispatch |
Symfony\Component\Messenger\Stamp\BusNameStamp {#11814 -busName: "messenger.bus.default" } Symfony\Component\Messenger\Stamp\SentStamp {#11844 -senderClass: "Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransport" -senderAlias: "contao_prio_low" } Symfony\Component\Messenger\Stamp\TransportMessageIdStamp {#11851 -id: "2341978" } |