1(function () { 2 if (/^(localhost|127\.0\.0\.1|0\.0\.0\.0)$/.test(window.location.hostname)) return; 3 4 var _paq = window._paq = window._paq || []; 5 _paq.push(['disableCookies']); 6 _paq.push(['trackPageView']); 7 _paq.push(['enableLinkTracking']); 8 (function () { 9 var u = 'https://shutter.matomo.cloud/'; 10 _paq.push(['setTrackerUrl', u + 'matomo.php']); 11 _paq.push(['setSiteId', '8']); 12 var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; 13 g.async = true; 14 g.src = 'https://cdn.matomo.cloud/shutter.matomo.cloud/matomo.js'; 15 s.parentNode.insertBefore(g, s); 16 })(); 17 18 var CONSENT_KEY = 'ib_analytics_consent'; 19 var consent = localStorage.getItem(CONSENT_KEY); 20 var isEN = document.documentElement.lang === 'en'; 21 var privacyHref = isEN ? '/en/privacy.html' : '/datenschutz.html'; 22 var copy = isEN ? { 23 text: 'This site uses Matomo Analytics. By default, no cookies are set. Accept to allow cookies that recognize you on future visits. ', 24 link: 'Privacy policy', 25 accept: 'Yes please', 26 decline: 'No thanks' 27 } : { 28 text: 'Diese Website verwendet Matomo Analytics. StandardmäÃig werden keine Cookies gesetzt. Akzeptieren Sie, um Cookies für die Wiedererkennung bei zukünftigen Besuchen zu erlauben. ', 29 link: 'Datenschutz', 30 accept: 'Ja, gerne', 31 decline: 'Nein danke' 32 }; 33 34 if (consent === 'accepted') { 35 _paq.push(['rememberCookieConsentGiven']); 36 } else if (consent === null) { 37 var banner = document.createElement('div'); 38 banner.id = 'ib-consent-banner'; 39 banner.style.cssText = [ 40 'position:fixed', 'bottom:24px', 'left:50%', 'transform:translateX(-50%)', 41 'z-index:9999', 'width:calc(100% - 48px)', 'max-width:640px', 42 'background:#0f2128', 'color:#e0e8ed', 'border-radius:12px', 43 'box-shadow:0 8px 32px rgba(0,0,0,0.32)', 'padding:20px 24px', 44 'font-family:Inter,system-ui,sans-serif', 'font-size:14px', 'line-height:1.6' 45 ].join(';'); 46 banner.innerHTML = [ 47 '<div style="display:flex;align-items:center;gap:20px;flex-wrap:wrap">', 48 '<p style="flex:1;margin:0;color:rgba(224,232,237,0.85)">', 49 copy.text, 50 '<a href="' + privacyHref + '" style="color:#ff9142">' + copy.link + '</a>', 51 '</p>', 52 '<div style="display:flex;gap:10px;flex-shrink:0">', 53 '<button id="ib-consent-accept" style="padding:9px 18px;border-radius:6px;background:#ff6314;color:#fff;border:none;font-weight:600;cursor:pointer;white-space:nowrap">' + copy.accept + '</button>', 54 '<button id="ib-consent-decline" style="padding:9px 18px;border-radius:6px;background:transparent;color:rgba(224,232,237,0.7);border:1px solid rgba(224,232,237,0.25);font-weight:600;cursor:pointer;white-space:nowrap">' + copy.decline + '</button>', 55 '</div>', 56 '</div>' 57 ].join(''); 58 59 document.body.appendChild(banner); 60 61 document.getElementById('ib-consent-accept').addEventListener('click', function () { 62 localStorage.setItem(CONSENT_KEY, 'accepted'); 63 banner.remove(); 64 _paq.push(['rememberCookieConsentGiven']); 65 }); 66 67 document.getElementById('ib-consent-decline').addEventListener('click', function () { 68 localStorage.setItem(CONSENT_KEY, 'declined'); 69 banner.remove(); 70 }); 71 } 72 73 document.addEventListener('click', function (e) { 74 var btn = e.target && e.target.closest('[data-matomo-category]'); 75 if (!btn || !window._paq) return; 76 var category = btn.getAttribute('data-matomo-category'); 77 var action = btn.getAttribute('data-matomo-action') || 'click'; 78 var label = btn.getAttribute('data-matomo-label') || ''; 79 window._paq.push(['trackEvent', category, action, label]); 80 }); 81})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.