PageSourceSearch

https://www.dmsg-brandenburg.de/typo3temp/assets/compressed/merged…f91cf8c2273fd77b7311d996420f7.js?1731488228

js dmsg-brandenburg.de collected 2026-10-08 03:57:11 UTC 329,235 bytes, 5,239 lines download raw bytes

vendor: 10,174 bytes, lines 1-8
1
2/*!
3 * shariff - v3.2.1 - Mon, 27 May 2019 08:23:32 GMT
4 * https://github.com/heiseonline/shariff
5 * Copyright (c) 2019 Ines Pauer, Philipp Busse, Sebastian Hilbig, Erich Kramer, Deniz Sesli
6 * Licensed under the MIT license
7 */
8!function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,a){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:a})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,r){"use strict";function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function n(e,t,r){if(e&&p.isObject(e)&&e instanceof a)return e;var n=new a;return n.parse(e,t,r),n}function i(e){return p.isString(e)&&(e=n(e)),e instanceof a?e.format():a.prototype.format.call(e)}function o(e,t){return n(e,!1,!0).resolve(t)}function s(e,t){return e?n(e,!1,!0).resolveObject(t):t}var l=r(10),p=r(12);t.parse=n,t.resolve=o,t.resolveObject=s,t.format=i,t.Url=a;var u=/^([a-z0-9.+-]+:)/i,h=/:[0-9]*$/,d=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["<",">",'"',"`"," ","\r","\n","\t"],f=["{","}","|","\\","^","`"].concat(c),m=["'"].concat(f),b=["%","/","?",";","#"].concat(m),g=["/","?","#"],v=/^[+a-z0-9A-Z_-]{0,63}$/,k=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,j={javascript:!0,"javascript:":!0},z={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},P=r(13);a.prototype.parse=function(e,t,r){if(!p.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),n=-1!==a&&a<e.indexOf("#")?"?":"#",i=e.split(n),o=/\\/g;i[0]=i[0].replace(o,"/"),e=i.join(n);var s=e;if(s=s.trim(),!r&&1===e.split("#").length){var h=d.exec(s);if(h)return this.path=s,this.href=s,this.pathname=h[1],h[2]?(this.search=h[2],this.query=t?P.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var c=u.exec(s);if(c){c=c[0];var f=c.toLowerCase();this.protocol=f,s=s.substr(c.length)}if(r||c||s.match(/^\/\/[^@\/]+@[^@\/]+/)){var T="//"===s.substr(0,2);!T||c&&z[c]||(s=s.substr(2),this.slashes=!0)}if(!z[c]&&(T||c&&!y[c])){for(var w=-1,x=0;x<g.length;x++){var U=s.indexOf(g[x]);-1!==U&&(-1===w||U<w)&&(w=U)}var C,R;R=-1===w?s.lastIndexOf("@"):s.lastIndexOf("@",w),-1!==R&&(C=s.slice(0,R),s=s.slice(R+1),this.auth=decodeURIComponent(C)),w=-1;for(var x=0;x<b.length;x++){var U=s.indexOf(b[x]);-1!==U&&(-1===w||U<w)&&(w=U)}-1===w&&(w=s.length),this.host=s.slice(0,w),s=s.slice(w),this.parseHost(),this.hostname=this.hostname||"";var I="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!I)for(var D=this.hostname.split(/\./),x=0,S=D.length;x<S;x++){var L=D[x];if(L&&!L.match(v)){for(var N="",O=0,F=L.length;O<F;O++)L.charCodeAt(O)>127?N+="x":N+=L[O];if(!N.match(v)){var A=D.slice(0,x),q=D.slice(x+1),M=L.match(k);M&&(A.push(M[1]),q.unshift(M[2])),q.length&&(s="/"+q.join(".")+s),this.hostname=A.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),I||(this.hostname=l.toASCII(this.hostname));var J=this.port?":"+this.port:"",V=this.hostname||"";this.host=V+J,this.href+=this.host,I&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!j[f])for(var x=0,S=m.length;x<S;x++){var W=m[x];if(-1!==s.indexOf(W)){var G=encodeURIComponent(W);G===W&&(G=escape(W)),s=s.split(W).join(G)}}var Q=s.indexOf("#");-1!==Q&&(this.hash=s.substr(Q),s=s.slice(0,Q));var B=s.indexOf("?");if(-1!==B?(this.search=s.substr(B),this.query=s.substr(B+1),t&&(this.query=P.parse(this.query)),s=s.slice(0,B)):t&&(this.search="",this.query={}),s&&(this.pathname=s),y[f]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var J=this.pathname||"",X=this.search||"";this.path=J+X}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",a=this.hash||"",n=!1,i="";this.host?n=e+this.host:this.hostname&&(n=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(n+=":"+this.port)),this.query&&p.isObject(this.query)&&Object.keys(this.query).length&&(i=P.stringify(this.query));var o=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||y[t])&&!1!==n?(n="//"+(n||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):n||(n=""),a&&"#"!==a.charAt(0)&&(a="#"+a),o&&"?"!==o.charAt(0)&&(o="?"+o),r=r.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),o=o.replace("#","%23"),t+n+r+o+a},a.prototype.resolve=function(e){return this.resolveObject(n(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(p.isString(e)){var t=new a;t.parse(e,!1,!0),e=t}for(var r=new a,n=Object.keys(this),i=0;i<n.length;i++){var o=n[i];r[o]=this[o]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),l=0;l<s.length;l++){var u=s[l];"protocol"!==u&&(r[u]=e[u])}return y[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!y[e.protocol]){for(var h=Object.keys(e),d=0;d<h.length;d++){var c=h[d];r[c]=e[c]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||z[e.protocol])r.pathname=e.pathname;else{for(var f=(e.pathname||"").split("/");f.length&&!(e.host=f.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==f[0]&&f.unshift(""),f.length<2&&f.unshift(""),r.pathname=f.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var m=r.pathname||"",b=r.search||"";r.path=m+b}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var g=r.pathname&&"/"===r.pathname.charAt(0),v=e.host||e.pathname&&"/"===e.pathname.charAt(0),k=v||g||r.host&&e.pathname,j=k,P=r.pathname&&r.pathname.split("/")||[],f=e.pathname&&e.pathname.split("/")||[],T=r.protocol&&!y[r.protocol];if(T&&(r.hostname="",r.port=null,r.host&&(""===P[0]?P[0]=r.host:P.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===f[0]?f[0]=e.host:f.unshift(e.host)),e.host=null),k=k&&(""===f[0]||""===P[0])),v)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,P=f;else if(f.length)P||(P=[]),P.pop(),P=P.concat(f),r.search=e.search,r.query=e.query;else if(!p.isNullOrUndefined(e.search)){if(T){r.hostname=r.host=P.shift();var w=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");w&&(r.auth=w.shift(),r.host=r.hostname=w.shift())}return r.search=e.search,r.query=e.query,p.isNull(r.pathname)&&p.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!P.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var x=P.slice(-1)[0],U=(r.host||e.host||P.length>1)&&("."===x||".."===x)||""===x,C=0,R=P.length;R>=0;R--)x=P[R],"."===x?P.splice(R,1):".."===x?(P.splice(R,1),C++):C&&(P.splice(R,1),C--);if(!k&&!j)for(;C--;C)P.unshift("..");!k||""===P[0]||P[0]&&"/"===P[0].charAt(0)||P.unshift(""),U&&"/"!==P.join("/").substr(-1)&&P.push("");var I=""===P[0]||P[0]&&"/"===P[0].charAt(0);if(T){r.hostname=r.host=I?"":P.length?P.shift():"";var w=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");w&&(r.auth=w.shift(),r.host=r.hostname=w.shift())}return k=k||r.host&&P.length,k&&!I&&P.unshift(""),P.length?r.pathname=P.join("/"):(r.pathname=null,r.path=null),p.isNull(r.pathname)&&p.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=h.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";r(3),e.exports=r(4)},function(e,t){},function(e,t,r){"use strict";(function(t){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),o=r(5),s=r(6),l=r(0),p={theme:"color",backendUrl:null,infoUrl:"http://ct.de/-2467514",infoDisplay:"blank",lang:"de",langFallback:"en",mailUrl:function(){var e=l.parse(this.getURL(),!0);return e.query.view="mail",delete e.search,l.format(e)},mailBody:function(){return this.getURL()},mediaUrl:null,orientation:"horizontal",buttonStyle:"standard",referrerTrack:null,services:["twitter","facebook","info"],title:t.document.title,twitterVia:null,flattrUser:null,flattrCategory:null,url:function(){var e=t.document.location.href,r=o("link[rel=canonical]").attr("href")||this.getMeta("og:url")||"";return r.length>0&&(r.indexOf("http")<0&&(r=0!==r.indexOf("//")?t.document.location.protocol+"//"+t.document.location.host+r:t.document.location.protocol+r),e=r),e}},u=function(){function e(t,r){var n=this;a(this,e),this.element=t,o(t).empty(),this.options=o.extend({},p,r,o(t).data()),this.services=Object.keys(s).filter(function(e){return n.isEnabledService(e)}).sort(function(e,t){var r=n.options.services;return r.indexOf(e)-r.indexOf(t)}).map(function(e){return s[e](n)}),this._addButtonList(),null!==this.options.backendUrl&&"icon"!==this.options.buttonStyle&&this.get
vendor: 4,524 bytes, line 8
8Shares(this._updateCounts.bind(this))}return i(e,[{key:"isEnabledService",value:function(e){return this.options.services.indexOf(e)>-1}},{key:"$socialshareElement",value:function(){return o(this.element)}},{key:"getLocalized",value:function(e,t){return"object"===n(e[t])?void 0===e[t][this.options.lang]?e[t][this.options.langFallback]:e[t][this.options.lang]:"string"==typeof e[t]?e[t]:void 0}},{key:"getMeta",value:function(e){return o('meta[name="'+e+'"],[property="'+e+'"]').attr("content")||""}},{key:"getInfoUrl",value:function(){return this.options.infoUrl}},{key:"getInfoDisplayPopup",value:function(){return"popup"===this.options.infoDisplay}},{key:"getInfoDisplayBlank",value:function(){return"popup"!==this.options.infoDisplay&&"self"!==this.options.infoDisplay}},{key:"getURL",value:function(){return this.getOption("url")}},{key:"getOption",value:function(e){var t=this.options[e];return"function"==typeof t?t.call(this):t}},{key:"getTitle",value:function(){var e=this.getOption("title");if(o(this.element).data().title)return e;e=e||this.getMeta("DC.title");var t=this.getMeta("DC.creator");return e&&t?e+" - "+t:e}},{key:"getReferrerTrack",value:function(){return this.options.referrerTrack||""}},{key:"getShares",value:function(e){var t=l.parse(this.options.backendUrl,!0);return t.query.url=this.getURL(),delete t.search,o.getJSON(l.format(t),e)}},{key:"_updateCounts",value:function(e,t,r){var a=this;e&&o.each(e,function(e,t){a.isEnabledService(e)&&(t>=1e3&&(t=Math.round(t/1e3)+"k"),o(a.element).find("."+e+" a").append(o("<span/>").addClass("share_count").text(t)))})}},{key:"_addButtonList",value:function(){var e=this,r=o("<ul/>").addClass(["theme-"+this.options.theme,"orientation-"+this.options.orientation,"button-style-"+this.options.buttonStyle,"shariff-col-"+this.options.services.length].join(" "));this.services.forEach(function(t){var a=o("<li/>").addClass("shariff-button "+t.name),n=o("<a/>").attr("href",t.shareUrl);if("standard"===e.options.buttonStyle){var i=o("<span/>").addClass("share_text").text(e.getLocalized(t,"shareText"));n.append(i)}void 0!==t.faPrefix&&void 0!==t.faName&&n.prepend(o("<span/>").addClass(t.faPrefix+" "+t.faName)),t.popup?(n.attr("data-rel","popup"),"info"!==t.name&&n.attr("rel","nofollow")):t.blank?(n.attr("target","_blank"),"info"===t.name?n.attr("rel","noopener noreferrer"):n.attr("rel","nofollow noopener noreferrer")):"info"!==t.name&&n.attr("rel","nofollow"),n.attr("title",e.getLocalized(t,"title")),n.attr("role","button"),n.attr("aria-label",e.getLocalized(t,"title")),a.append(n),r.append(a)}),r.on("click",'[data-rel="popup"]',function(e){e.preventDefault();var r=o(this).attr("href");if(r.match(/twitter\.com\/intent\/(\w+)/)){var a=t.window;if(a.__twttr&&a.__twttr.widgets&&a.__twttr.widgets.loaded)return}t.window.open(r,"_blank","width=600,height=460")}),this.$socialshareElement().append(r)}}]),e}();e.exports=u,t.Shariff=u,o(function(){o(".shariff").each(function(){this.hasOwnProperty("shariff")||(this.shariff=new u(this))})})}).call(t,r(1))},function(e,t){e.exports=jQuery},function(e,t,r){"use strict";e.exports={addthis:r(7),buffer:r(8),diaspora:r(9),facebook:r(16),flattr:r(17),flipboard:r(18),info:r(19),linkedin:r(20),mail:r(21),pinterest:r(22),pocket:r(23),print:r(24),qzone:r(25),reddit:r(26),stumbleupon:r(27),telegram:r(28),tencent:r(29),threema:r(30),tumblr:r(31),twitter:r(32),vk:r(33),weibo:r(34),whatsapp:r(35),xing:r(36)}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"addthis",faPrefix:"fas",faName:"fa-plus",title:{bg:"Сподели в AddThis",cs:"Sdílet na AddThis",da:"Del på AddThis",de:"Bei AddThis teilen",en:"Share on AddThis",es:"Compartir en AddThis",fi:"Jaa AddThisissä",fr:"Partager sur AddThis",hr:"Podijelite na AddThis",hu:"Megosztás AddThisen",it:"Condividi su AddThis",ja:"AddThis上で共有",ko:"AddThis에서 공유하기",nl:"Delen op AddThis",no:"Del på AddThis",pl:"Udostępnij przez AddThis",pt:"Compartilhar no AddThis",ro:"Partajează pe AddThis",ru:"Поделиться на AddThis",sk:"Zdieľať na AddThis",sl:"Deli na AddThis",sr:"Podeli na AddThis",sv:"Dela på AddThis",tr:"AddThis'ta payla
8ş",zh:"在AddThis上分享"},shareUrl:"http://api.addthis.com/oexchange/0.8/offer?url="+encodeURIComponent(e.getURL())+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL());return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"buffer",faPrefix:"fab",faName:"fa-buffer",title:{bg:"Сподели в buffer",cs:"Sdílet na buffer",da:"Del på buffer",de:"Bei buffer teilen",en:"Share on buffer",es:"Compartir en buffer",fi:"Jaa bufferissä",fr:"Partager sur buffer",hr:"Podijelite na buffer",hu:"Megosztás bufferen",it:"Condividi su buffer",ja:"buffer上で共有",ko:"buffer에서 공유하기",nl:"Delen op buffer",no:"Del på buffer",pl:"Udostępnij przez buffer",pt:"Compartilhar no buffer",ro:"Partajează pe buffer",ru:"Поделиться на buffer",sk:"Zdieľať na buffer",sl:"Deli na buffer",sr:"Podeli na buffer",sv:"Dela på buffer",tr:"buffer'ta paylaş",zh:"在buffer上分享"},shareUrl:"https://buffer.com/add?text="+encodeURIComponent(e.getTitle())+"&url="+t+e.getReferrerTrack()}}},function(e,t,r){"use strict";var a=r(0);e.exports=function(e){var t=a.parse("https://share.diasporafoundation.org/",!0);return t.query.url=e.getURL(),t.query.title=e.getTitle(),t.protocol="https",delete t.search,{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"diaspora",faPrefix:"fas",faName:"fa-asterisk",title:{bg:"Сподели в diaspora*",cs:"Sdílet na diaspora*",da:"Del på diaspora*",de:"Bei diaspora* teilen",en:"Share on diaspora*",es:"Compartir en diaspora*",fi:"Jaa Diasporaissä",fr:"Partager sur diaspora*",hr:"Podijelite na diaspora*",hu:"Megosztás diaspora*",it:"Condividi su diaspora*",ja:"diaspora*上で共有",ko:"diaspora*에서 공유하기",nl:"Delen op diaspora*",no:"Del på diaspora*",pl:"Udostępnij przez diaspora*",pt:"Compartilhar no diaspora*",ro:"Partajează pe diaspora*",ru:"Поделиться на diaspora*",sk:"Zdieľať na diaspora*",sl:"Deli na diaspora*",sr:"Podeli na diaspora*-u",sv:"Dela på diaspora*",tr:"diaspora*'ta paylaş",zh:"分享至diaspora*"},shareUrl:a.format(t)+e.getReferrerTrack()}}},function(e,t,r){(function(e,a){var n;!function(a){function i(e){throw new RangeError(I[e])}function o(e,t){for(var r=e.length,a=[];r--;)a[r]=t(e[r]);return a}function s(e,t){var r=e.split("@"),a="";return r.length>1&&(a=r[0]+"@",e=r[1]),e=e.replace(R,"."),a+o(e.split("."),t).join(".")}function l(e){for(var t,r,a=[],n=0,i=e.length;n<i;)t=e.charCodeAt(n++),t>=55296&&t<=56319&&n<i?(r=e.charCodeAt(n++),56320==(64512&r)?a.push(((1023&t)<<10)+(1023&r)+65536):(a.push(t),n--)):a.push(t);return a}function p(e){return o(e,function(e){var t="";return e>65535&&(e-=65536,t+=L(e>>>10&1023|55296),e=56320|1023&e),t+=L(e)}).join("")}function u(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:k}function h(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function d(e,t,r){var a=0;for(e=r?S(e/P):e>>1,e+=S(e/t);e>D*z>>1;a+=k)e=S(e/D);return S(a+(D+1)*e/(e+y))}function c(e){var t,r,a,n,o,s,l,h,c,f,m=[],b=e.length,g=0,y=w,P=T;for(r=e.lastIndexOf(x),r<0&&(r=0),a=0;a<r;++a)e.charCodeAt(a)>=128&&i("not-basic"),m.push(e.charCodeAt(a));for(n=r>0?r+1:0;n<b;){for(o=g,s=1,l=k;n>=b&&i("invalid-input"),h=u(e.charCodeAt(n++)),(h>=k||h>S((v-g)/s))&&i("overflow"),g+=h*s,c=l<=P?j:l>=P+z?z:l-P,!(h<c);l+=k)f=k-c,s>S(v/f)&&i("overflow"),s*=f;t=m.length+1,P=d(g-o,t,0==o),S(g/t)>v-y&&i("overflow"),y+=S(g/t),g%=t,m.splice(g++,0,y)}return p(m)}function f(e){var t,r,a,n,o,s,p,u,c,f,m,b,g,y,P,U=[];for(e=l(e),b=e.length,t=w,r=0,o=T,s=0;s<b;
8++s)(m=e[s])<128&&U.push(L(m));for(a=n=U.length,n&&U.push(x);a<b;){for(p=v,s=0;s<b;++s)(m=e[s])>=t&&m<p&&(p=m);for(g=a+1,p-t>S((v-r)/g)&&i("overflow"),r+=(p-t)*g,t=p,s=0;s<b;++s)if(m=e[s],m<t&&++r>v&&i("overflow"),m==t){for(u=r,c=k;f=c<=o?j:c>=o+z?z:c-o,!(u<f);c+=k)P=u-f,y=k-f,U.push(L(h(f+P%y,0))),u=S(P/y);U.push(L(h(u,0))),o=d(r,g,a==n),r=0,++a}++r,++t}return U.join("")}function m(e){return s(e,function(e){return U.test(e)?c(e.slice(4).toLowerCase()):e})}function b(e){return s(e,function(e){return C.test(e)?"xn--"+f(e):e})}var g,v=("object"==typeof t&&t&&t.nodeType,"object"==typeof e&&e&&e.nodeType,2147483647),k=36,j=1,z=26,y=38,P=700,T=72,w=128,x="-",U=/^xn--/,C=/[^\x20-\x7E]/,R=/[\x2E\u3002\uFF0E\uFF61]/g,I={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},D=k-j,S=Math.floor,L=String.fromCharCode;g={version:"1.4.1",ucs2:{decode:l,encode:p},decode:c,encode:f,toASCII:b,toUnicode:m},void 0!==(n=function(){return g}.call(t,r,t,e))&&(e.exports=n)}()}).call(t,r(11)(e),r(1))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,r){"use strict";t.decode=t.parse=r(14),t.encode=t.stringify=r(15)},function(e,t,r){"use strict";function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,i){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var l=1e3;i&&"number"==typeof i.maxKeys&&(l=i.maxKeys);var p=e.length;l>0&&p>l&&(p=l);for(var u=0;u<p;++u){var h,d,c,f,m=e[u].replace(s,"%20"),b=m.indexOf(r);b>=0?(h=m.substr(0,b),d=m.substr(b+1)):(h=m,d=""),c=decodeURIComponent(h),f=decodeURIComponent(d),a(o,c)?n(o[c])?o[c].push(f):o[c]=[o[c],f]:o[c]=f}return o};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){"use strict";function a(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a<e.length;a++)r.push(t(e[a],a));return r}var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,s){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?a(o(e),function(o){var s=encodeURIComponent(n(o))+r;return i(e[o])?a(e[o],function(e){return s+encodeURIComponent(n(e))}).join(t):s+encodeURIComponent(n(e[o]))}).join(t):s?encodeURIComponent(n(s))+r+encodeURIComponent(n(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=Object.keys||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"facebook",faPrefix:"fab",faName:"fa-facebook-f",title:{bg:"Сподели във Facebook",cs:"Sdílet na Facebooku",da:"Del på Facebook",de:"Bei Facebook teilen",en:"Share on Facebook",es:"Compartir en Facebook",fi:"Jaa Facebookissa",fr:"Partager sur Facebook",hr:"Podijelite na Facebooku",hu:"Megosztás Facebookon",it:"Condividi su Facebook",ja:"フェイスブック上で共有",ko:"페이스북에서 공유하기",nl:"Delen op Facebook",no:"Del på Facebook",pl:"Udostępnij na Facebooku",pt:"Compartilhar no Facebook",ro:"Partajează pe Facebook",ru:"Поделиться на Facebook",sk:"Zdieľať na Facebooku",sl:"Deli na Facebooku",sr:"Podeli na Facebook-u",sv:"Dela på Facebook",tr:"Facebook'ta payla
8ş",zh:"在Facebook上分享"},shareUrl:"https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(e.getURL())+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL()),r=e.getTitle(),a=e.getMeta("description");return{popup:!0,shareText:"Flattr",name:"flattr",faPrefix:"far",faName:"fa-money-bill-alt",title:{de:"Artikel flattrn",en:"Flattr this"},shareUrl:"https://flattr.com/submit/auto?title="+encodeURIComponent(r)+"&description="+encodeURIComponent(a)+"&category="+encodeURIComponent(e.options.flattrCategory||"text")+"&user_id="+encodeURIComponent(e.options.flattrUser)+"&url="+t+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL());return{popup:!0,shareText:"flip it",name:"flipboard",faPrefix:"fab",faName:"fa-flipboard",title:{bg:"Сподели в Flipboard",cs:"Sdílet na Flipboardu",da:"Del på Flipboard",de:"Bei Flipboard teilen",en:"Share on Flipboard",es:"Compartir en Flipboard",fi:"Jaa Flipboardissä",fr:"Partager sur Flipboard",hr:"Podijelite na Flipboardu",hu:"Megosztás Flipboardon",it:"Condividi su Flipboard",ja:"Flipboard上で共有",ko:"Flipboard에서 공유하기",nl:"Delen op Flipboard",no:"Del på Flipboard",pl:"Udostępnij na Flipboardu",pt:"Compartilhar no Flipboard",ro:"Partajează pe Flipboard",ru:"Поделиться на Flipboard",sk:"Zdieľať na Flipboardu",sl:"Deli na Flipboardu",sr:"Podeli na Flipboard-u",sv:"Dela på Flipboard",tr:"Flipboard'ta paylaş",zh:"在Flipboard上分享"},shareUrl:"https://share.flipboard.com/bookmarklet/popout?v=2&title="+encodeURIComponent(e.getTitle())+"&url="+t+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{blank:e.getInfoDisplayBlank(),popup:e.getInfoDisplayPopup(),shareText:"Info",name:"info",faPrefix:"fas",faName:"fa-info",title:{bg:"Повече информация",cs:"Více informací",da:"Flere oplysninger",de:"Weitere Informationen",en:"More information",es:"Más informaciones",fi:"Lisätietoja",fr:"Plus d'informations",hr:"Više informacija",hu:"Több információ",it:"Maggiori informazioni",ja:"詳しい情報",ko:"추가 정보",nl:"Verdere informatie",no:"Mer informasjon",pl:"Więcej informacji",pt:"Mais informações",ro:"Mai multe informatii",ru:"Больше информации",sk:"Viac informácií",sl:"Več informacij",sr:"Više informacija",sv:"Mer information",tr:"Daha fazla bilgi",zh:"更多信息"},shareUrl:e.getInfoUrl()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL()),r=encodeURIComponent(e.getTitle());return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"mitteilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"シェア",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"distribuiți",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"linkedin",faPrefix:"fab",faName:"fa-linkedin-in",title:{bg:"Сподели в LinkedIn",cs:"Sdílet na LinkedIn",da:"Del på LinkedIn",de:"Bei LinkedIn teilen",en:"Share on LinkedIn",es:"Compartir en LinkedIn",fi:"Jaa LinkedInissä",fr:"Partager sur LinkedIn",hr:"Podijelite na LinkedIn",hu:"Megosztás LinkedInen",it:"Condividi su LinkedIn",ja:"LinkedIn上で共有",ko:"LinkedIn에서 공유하기",nl:"Delen op LinkedIn",no:"Del på LinkedIn",pl:"Udostępnij przez LinkedIn",pt:"Compartilhar no LinkedIn",ro:"Partajează pe LinkedIn",ru:"Поделиться на LinkedIn",sk:"Zdieľať na LinkedIn",sl:"Deli na LinkedIn",sr:"Podeli na LinkedIn-u",sv:"Dela på LinkedIn",tr:"LinkedIn'ta paylaş",zh:"在LinkedIn上分享"},shareUrl:"https://www.linkedin.com/shareArticle?mini=true&summary="+encodeURIComponent(e.getMeta("description"))+"&title="+r+"&url="+t}}},function(e,t,r){"use strict";e.exports=function(e){var t=e.getOption("mailUrl");return 0===t.indexOf("mailto:")&&(t+="?subject="+encodeURIComponent(e.getOption("mailSubject")||e.getTitle()),t+="&body="+encodeURIComponent(e.getOption("mailBody").replace(/\{url\}/i,e.getURL()))),{blank:0===t.indexOf("http"),popup:!1,shareText:{en:"mail",zh:"分享"},name:"mail",faPrefix:"fas",faName:"fa-envelope",title:{bg:"Изпрати по имейл",cs:"Poslat mailem",da:"Sende via e-mail",de:"Per E-Mail versenden",en:"Send by email",es:"Enviar por email",fi:"Lähetä sähköpostitse",fr:"Envoyer par courriel",hr:"Pošaljite emailom",hu:"Elküldés e-mailben",it:"Inviare via email",ja:"電子メールで送信",ko:"이메일로 보내기",nl:"Sturen via e-mail",no:"Send via epost",pl:"Wyślij e-mailem",pt:"Enviar por e-mail",ro:"Trimite prin e-mail",ru:"Отправить по эл. почте",sk:"Poslať e-mailom",sl:"Pošlji po elektronski pošti",sr:"Pošalji putem email-a",sv:"Skicka via e-post",tr:"E-posta ile gönder",zh:"通过电子邮件传送"},shareUrl:t}}},function(e,t,r){"use strict";var a=r(0);e.exports=function(e){var t=e.getTitle(),r=e.getMeta("DC.creator");r.length>0&&(t+=" - "+r);var n=e.getOption("mediaUrl");(!n||n.length<=0)&&(n=e.getMeta("og:image"));var i=a.parse("https://www.pinterest.com/pin/create/link/",!0);return i.query.url=e.getURL(),i.query.media=n,i.query.description=t,delete i.search,{popup:!0,shareText:"pin it",name:"pinterest",faPrefix:"fab",faName:"fa-pinterest-p",title:{bg:"Сподели в Pinterest",cs:"Přidat na Pinterest",da:"Del på Pinterest",de:"Bei Pinterest pinnen",en:"Pin it on Pinterest",es:"Compartir en Pinterest",fi:"Jaa Pinterestissä",fr:"Partager sur Pinterest",hr:"Podijelite na Pinterest",hu:"Megosztás Pinteresten",it:"Condividi su Pinterest",ja:"Pinterest上で共有",ko:"Pinterest에서 공유하기",nl:"Delen op Pinterest",no:"Del på Pinterest",pl:"Udostępnij przez Pinterest",pt:"Compartilhar no Pinterest",ro:"Partajează pe Pinterest",ru:"Поделиться на Pinterest",sk:"Zdieľať na Pinterest",sl:"Deli na Pinterest",sr:"Podeli na Pinterest-u",sv:"Dela på Pinterest",tr:"Pinterest'ta payla
8ş",zh:"分享至Pinterest"},shareUrl:a.format(i)+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL());return{popup:!0,shareText:"Pocket",name:"pocket",faPrefix:"fab",faName:"fa-get-pocket",title:{bg:"Запазване в Pocket",cs:"Uložit do Pocket",da:"Gem i Pocket",de:"In Pocket speichern",en:"Save to Pocket",es:"Guardar en Pocket",fi:"Tallenna kohtaan Pocket",fr:"Enregistrer dans Pocket",hr:"Spremi u Pocket",hu:'Mentés "Pocket"-be',it:"Salva in Pocket",ja:"「ポケット」に保存",ko:"Pocket에 저장",nl:"Opslaan in Pocket",no:"Lagre i Pocket",pl:"Zapisz w Pocket",pt:"Salvar em Pocket",ro:"Salvați în Pocket",ru:"Сохранить в Pocket",sk:"Uložiť do priečinka Pocket",sl:"Shrani v Pocket",sr:"Sačuvaj u Pocket",sv:"Spara till Pocket",tr:"Pocket e kaydet",zh:"保存到Pocket"},shareUrl:"https://getpocket.com/save?title="+encodeURIComponent(e.getTitle())+"&url="+t+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{name:"print",faPrefix:"fas",faName:"fa-print",popup:!1,shareText:{bg:"",cs:"tlačit",da:"",de:"drucken",en:"print",es:"impresión",fi:"",fr:"imprimer",hr:"",hu:"",it:"stampa",ja:"",ko:"",nl:"afdrukken",no:"",pl:"drukuj",pt:"",ro:"",ru:"Распечатать",sk:"",sl:"",sr:"",sv:"",tr:"",zh:""},title:{bg:"",cs:"tlačit",da:"",de:"drucken",en:"print",es:"impresión",fi:"",fr:"imprimer",hr:"",hu:"",it:"stampa",ja:"",ko:"",nl:"afdrukken",no:"",pl:"drukuj",pt:"",ro:"",ru:"Распечатать",sk:"",sl:"",sr:"",sv:"",tr:"",zh:""},shareUrl:"javascript:window.print();"}}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"qzone",faPrefix:"fab",faName:"fa-qq",title:{bg:"Сподели в Qzone",cs:"Sdílet na Qzone",da:"Del på Qzone",de:"Bei Qzone teilen",en:"Share on Qzone",es:"Compartir en Qzone",fi:"Jaa Qzoneissä",fr:"Partager sur Qzone",hr:"Podijelite na Qzone",hu:"Megosztás Qzone",it:"Condividi su Qzone",ja:"Qzone上で共有",ko:"Qzone에서 공유하기",nl:"Delen op Qzone",no:"Del på Qzone",pl:"Udostępnij przez Qzone",pt:"Compartilhar no Qzone",ro:"Partajează pe Qzone",ru:"Поделиться на Qzone",sk:"Zdieľať na Qzone",sl:"Deli na Qzone",sr:"Podeli na Qzone-u",sv:"Dela på Qzone",tr:"Qzone'ta paylaş",zh:"分享至QQ空间"},shareUrl:"http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+encodeURIComponent(e.getURL())+"&title="+e.getTitle()+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL()),r=encodeURIComponent(e.getTitle());return""!==r&&(r="&title="+r),{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"reddit",faPrefix:"fab",faName:"fa-reddit-alien",title:{bg:"Сподели в Reddit",cs:"Sdílet na Redditu",da:"Del på Reddit",de:"Bei Reddit teilen",en:"Share on Reddit",es:"Compartir en Reddit",fi:"Jaa Redditissä",fr:"Partager sur Reddit",hr:"Podijelite na Reddit",hu:"Megosztás Redditen",it:"Condividi su Reddit",ja:"Reddit上で共有",ko:"Reddit에서 공유하기",nl:"Delen op Reddit",no:"Del på Reddit",pl:"Udostępnij przez Reddit",pt:"Compartilhar no Reddit",ro:"Partajează pe Reddit",ru:"Поделиться на Reddit",sk:"Zdieľať na Reddit",sl:"Deli na Reddit",sr:"Podeli na Reddit-u",sv:"Dela på Reddit",tr:"Reddit'ta paylaş",zh:"分享至Reddit"},shareUrl:"https://reddit.com/submit?url="+t+r+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL()),r=encodeURIComponent(e.getTitle());return""!==r&&(r="&title="+r),{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"stumbleupon",faPrefix:"fab",faName:"fa-stumbleupon",title:{bg:"Сподели в Stumbleupon",cs:"Sdílet na Stumbleuponu",da:"Del på Stumbleupon",de
vendor: 4,562 bytes, line 8
8:"Bei Stumbleupon teilen",en:"Share on Stumbleupon",es:"Compartir en Stumbleupon",fi:"Jaa Stumbleuponissä",fr:"Partager sur Stumbleupon",hr:"Podijelite na Stumbleupon",hu:"Megosztás Stumbleupon",it:"Condividi su Stumbleupon",ja:"Stumbleupon上で共有",ko:"Stumbleupon에서 공유하기",nl:"Delen op Stumbleupon",no:"Del på Stumbleupon",pl:"Udostępnij przez Stumbleupon",pt:"Compartilhar no Stumbleupon",ro:"Partajează pe Stumbleupon",ru:"Поделиться на Stumbleupon",sk:"Zdieľať na Stumbleupon",sl:"Deli na Stumbleupon",sr:"Podeli na Stumbleupon-u",sv:"Dela på Stumbleupon",tr:"Stumbleupon'ta paylaş",zh:"分享至Stumbleupon"},shareUrl:"https://www.stumbleupon.com/submit?url="+t+r+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"telegram",faPrefix:"fab",faName:"fa-telegram",title:{bg:"Сподели в Telegram",cs:"Sdílet na Telegramu",da:"Del på Telegram",de:"Bei Telegram teilen",en:"Share on Telegram",es:"Compartir en Telegram",fi:"Jaa Telegramissä",fr:"Partager sur Telegram",hr:"Podijelite na Telegram",hu:"Megosztás Telegramen",it:"Condividi su Telegram",ja:"Telegram上で共有",ko:"Telegram에서 공유하기",nl:"Delen op Telegram",no:"Del på Telegram",pl:"Udostępnij przez Telegram",pt:"Compartilhar no Telegram",ro:"Partajează pe Telegram",ru:"Поделиться на Telegram",sk:"Zdieľať na Telegram",sl:"Deli na Telegram",sr:"Podeli na Telegram-u",sv:"Dela på Telegram",tr:"Telegram'ta paylaş",zh:"在Telegram上分享"},shareUrl:"https://t.me/share/url?url="+encodeURIComponent(e.getURL())+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"tencent-weibo",faPrefix:"fab",faName:"fa-tencent-weibo",title:{bg:"Сподели в tencent weibo",cs:"Sdílet na tencent weibo",da:"Del på tencent weibo",de:"Bei tencent weibo teilen",en:"Share on tencent weibo",es:"Compartir en tencent weibo",fi:"Jaa tencent weiboissä",fr:"Partager sur tencent weibo",hr:"Podijelite na tencent weibo",hu:"Megosztás tencent weiboen",it:"Condividi su tencent weibo",ja:"Tencent weibo上で共有",ko:"Tencent weibo에서 공유하기",nl:"Delen op tencent weibo",no:"Del på tencent weibo",pl:"Udostępnij przez tencent weibo",pt:"Compartilhar no tencent weibo",ro:"Partajează pe tencent weibo",ru:"Поделиться на tencent weibo",sk:"Zdieľať na tencent weibo",sl:"Deli na tencent weibo",sr:"Podeli na tencent weibo-u",sv:"Dela på tencent weibo",tr:"Tencent weibo'ta paylaş",zh:"分享至腾讯微博"},shareUrl:"http://v.t.qq.com/share/share.php?url="+encodeURIComponent(e.getURL())+"&title="+e.getTitle()+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL()),r=e.getTitle();return{popup:!1,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"threema",faPrefix:"fas",faName:"fa-lock",title:{bg:"Сподели в Threema",cs:"Sdílet na Threema",da:"Del på Threema",de:"Bei Threema teilen",en:"Share on Threema",es:"Compartir en Threema",fi:"Jaa Threemaissä",fr:"Partager sur Threema",hr:"Podijelite na Threema",hu:"Megosztás Threemaen",it:"Condividi su Threema",ja:"Threema上で共有",ko:"Threema에서 공유하기",nl:"Delen op Threema",no:"Del på Threema",pl:"Udostępnij przez Threema",pt:"Compartilhar no Threema",ro:"Partajează pe Threema",ru:"Поделиться на Threema",sk:"Zdieľať na Threema",sl:"Deli na Threema",sr:"Podeli na Threema-u",sv:"Dela på Threema",tr:"Threema'ta payla
8ş",zh:"在Threema上分享"},shareUrl:"threema://compose?text="+encodeURIComponent(r)+"%20"+t+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"tumblr",faPrefix:"fab",faName:"fa-tumblr",title:{bg:"Сподели в tumblr",cs:"Sdílet na tumblru",da:"Del på tumblr",de:"Bei tumblr teilen",en:"Share on tumblr",es:"Compartir en tumblr",fi:"Jaa tumblrissä",fr:"Partager sur tumblr",hr:"Podijelite na tumblr",hu:"Megosztás tumblren",it:"Condividi su tumblr",ja:"tumblr上で共有",ko:"tumblr에서 공유하기",nl:"Delen op tumblr",no:"Del på tumblr",pl:"Udostępnij przez tumblr",pt:"Compartilhar no tumblr",ro:"Partajează pe tumblr",ru:"Поделиться на tumblr",sk:"Zdieľať na tumblr",sl:"Deli na tumblr",sr:"Podeli na tumblr-u",sv:"Dela på tumblr",tr:"tumblr'ta paylaş",zh:"在tumblr上分享"},shareUrl:"http://tumblr.com/widgets/share/tool?canonicalUrl="+encodeURIComponent(e.getURL())+e.getReferrerTrack()}}},function(e,t,r){"use strict";var a=r(0),n=function(e,t){var r=document.createElement("div"),a=document.createTextNode(e);r.appendChild(a);var n=r.textContent;if(n.length<=t)return e;var i=n.substring(0,t-1).lastIndexOf(" ");return n=n.substring(0,i)+"…"};e.exports=function(e){var t=a.parse("https://twitter.com/intent/tweet",!0),r=e.getTitle();return t.query.text=n(r,120),t.query.url=e.getURL(),null!==e.options.twitterVia&&(t.query.via=e.options.twitterVia),delete t.search,{popup:!0,shareText:{en:"tweet",ja:"のつぶやき",ko:"짹짹",ru:"твит",sr:"твеет",zh:"鸣叫"},name:"twitter",faPrefix:"fab",faName:"fa-twitter",title:{bg:"Сподели в Twitter",cs:"Sdílet na Twiiteru",da:"Del på Twitter",de:"Bei Twitter teilen",en:"Share on Twitter",es:"Compartir en Twitter",fi:"Jaa Twitterissä",fr:"Partager sur Twitter",hr:"Podijelite na Twitteru",hu:"Megosztás Twitteren",it:"Condividi su Twitter",ja:"ツイッター上で共有",ko:"트위터에서 공유하기",nl:"Delen op Twitter",no:"Del på Twitter",pl:"Udostępnij na Twitterze",pt:"Compartilhar no Twitter",ro:"Partajează pe Twitter",ru:"Поделиться на Twitter",sk:"Zdieľať na Twitteri",sl:"Deli na Twitterju",sr:"Podeli na Twitter-u",sv:"Dela på Twitter",tr:"Twitter'da paylaş",zh:"在Twitter上分享"},shareUrl:a.format(t)+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"vk",faPrefix:"fab",faName:"fa-vk",title:{bg:"Сподели във VK",cs:"Sdílet na VKu",da:"Del på VK",de
vendor: 4,149 bytes, line 8
8:"Bei VK teilen",en:"Share on VK",es:"Compartir en VK",fi:"Jaa VKissa",fr:"Partager sur VK",hr:"Podijelite na VKu",hu:"Megosztás VKon",it:"Condividi su VK",ja:"フェイスブック上で共有",ko:"페이스북에서 공유하기",nl:"Delen op VK",no:"Del på VK",pl:"Udostępnij na VKu",pt:"Compartilhar no VK",ro:"Partajează pe VK",ru:"Поделиться на ВКонтакте",sk:"Zdieľať na VKu",sl:"Deli na VKu",sr:"Podeli na VK-u",sv:"Dela på VK",tr:"VK'ta paylaş",zh:"在VK上分享"},shareUrl:"https://vk.com/share.php?url="+encodeURIComponent(e.getURL())+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"weibo",faPrefix:"fab",faName:"fa-weibo",title:{bg:"Сподели в weibo",cs:"Sdílet na weibo",da:"Del på weibo",de:"Bei weibo teilen",en:"Share on weibo",es:"Compartir en weibo",fi:"Jaa weiboissä",fr:"Partager sur weibo",hr:"Podijelite na weibo",hu:"Megosztás weiboen",it:"Condividi su weibo",ja:"Weibo上で共有",ko:"Weibo에서 공유하기",nl:"Delen op weibo",no:"Del på weibo",pl:"Udostępnij przez weibo",pt:"Compartilhar no weibo",ro:"Partajează pe weibo",ru:"Поделиться на weibo",sk:"Zdieľať na weibo",sl:"Deli na weibo",sr:"Podeli na weibo-u",sv:"Dela på weibo",tr:"Weibo'ta paylaş",zh:"分享至新浪微博"},shareUrl:"http://service.weibo.com/share/share.php?url="+encodeURIComponent(e.getURL())+"&title="+e.getTitle()+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){var t=encodeURIComponent(e.getURL()),r=e.getTitle();return{popup:!1,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"whatsapp",faPrefix:"fab",faName:"fa-whatsapp",title:{bg:"Сподели в Whatsapp",cs:"Sdílet na Whatsappu",da:"Del på Whatsapp",de:"Bei Whatsapp teilen",en:"Share on Whatsapp",es:"Compartir en Whatsapp",fi:"Jaa WhatsAppissä",fr:"Partager sur Whatsapp",hr:"Podijelite na Whatsapp",hu:"Megosztás WhatsAppen",it:"Condividi su Whatsapp",ja:"Whatsapp上で共有",ko:"Whatsapp에서 공유하기",nl:"Delen op Whatsapp",no:"Del på Whatsapp",pl:"Udostępnij przez WhatsApp",pt:"Compartilhar no Whatsapp",ro:"Partajează pe Whatsapp",ru:"Поделиться на Whatsapp",sk:"Zdieľať na Whatsapp",sl:"Deli na Whatsapp",sr:"Podeli na WhatsApp-u",sv:"Dela på Whatsapp",tr:"Whatsapp'ta paylaş",zh:"在Whatsapp上分享"},shareUrl:"whatsapp://send?text="+encodeURIComponent(r)+"%20"+t+e.getReferrerTrack()}}},function(e,t,r){"use strict";e.exports=function(e){return{popup:!0,shareText:{bg:"cподеляне",cs:"sdílet",da:"del",de:"teilen",en:"share",es:"compartir",fi:"Jaa",fr:"partager",hr:"podijelite",hu:"megosztás",it:"condividi",ja:"共有",ko:"공유하기",nl:"delen",no:"del",pl:"udostępnij",pt:"compartilhar",ro:"partajează",ru:"поделиться",sk:"zdieľať",sl:"deli",sr:"podeli",sv:"dela",tr:"paylaş",zh:"分享"},name:"xing",faPrefix:"fab",faName:"fa-xing",title:{bg:"Сподели в XING",cs:"Sdílet na XINGu",da:"Del på XING",de:"Bei XING teilen",en:"Share on XING",es:"Compartir en XING",fi:"Jaa XINGissä",fr:"Partager sur XING",hr:"Podijelite na XING",hu:"Megosztás XINGen",it:"Condividi su XING",ja:"XING上で共有",ko:"XING에서 공유하기",nl:"Delen op XING",no:"Del på XING",pl:"Udostępnij przez XING",pt:"Compartilhar no XING",ro:"Partajează pe XING",ru:"Поделиться на XING",sk:"Zdieľať na XING",sl:"Deli na XING",sr:"Podeli na XING-u",sv:"Dela på XING",tr:"XING'ta payla
8ş",zh:"分享至XING"},shareUrl:"https://www.xing.com/spi/shares/new?url="+encodeURIComponent(e.getURL())+e.getReferrerTrack()}}}]);
9(function(d){typeof define=="function"&&define.amd?define(d):d()})(function(){"use strict";const d=`<div class="cc-body" id="cookieconsent:body">\r
10    <span class="cc-message" id="cookieconsent:desc">\r
11        {{description}}\r
12        {{selection}}\r
13    </span>\r
14    <div class="cc-compliance cc-highlight">\r
15        {{allow-all}}\r
16        {{allow}}\r
17        {{deny}}\r
18    </div>\r
19    <div class="powered-by">Powered by <a href="https://dp-wired.de/?ref=consent-note" rel="noopener" target="_blank">DP Wired</a></div>\r
20</div>`,f=`<div class="cc-body" id="cookieconsent:body">\r
21    <span class="cc-message" id="cookieconsent:desc">\r
22        {{description}}\r
23    </span>\r
24    <div class="cc-compliance cc-highlight">\r
25        {{allow-all}}\r
26        {{config}}\r
27        {{deny}}\r
28    </div>\r
29    <div class="powered-by">Powered by <a href="https://dp-wired.de/?ref=consent-note" rel="noopener" target="_blank">DP Wired</a></div>\r
30</div>`,h=`<div class="dp--cookie-check">\r
31    <label for="dp--cookie-require">\r
32        <input type="checkbox" id="dp--cookie-require" class="dp--check-box" checked="checked" disabled="disabled"  />\r
33        {{dpRequire}}\r
34    </label>\r
35    <label for="dp--cookie-statistics">\r
36        <input type="checkbox" id="dp--cookie-statistics" class="dp--check-box" {{checked.statistics}} value="" />\r
37        {{dpStatistik}}\r
38    </label>\r
39    <label for="dp--cookie-marketing">\r
40        <input type="checkbox" id="dp--cookie-marketing" class="dp--check-box" {{checked.marketing}} value=""  />\r
41        {{dpMarketing}}\r
42    </label>\r
43</div>\r
44`,v=`{{message}}\r
45\r
46<a class="cc-link"\r
47   role=button\r
48   href="{{href}}"\r
49   rel="noopener noreferrer nofollow"\r
50   target="{{target}}"\r
51>\r
52    {{link}}\r
53</a>\r
54`,k=`<button class="cc-btn cc-allow-all cc-w-100">\r
55    {{allow-all}}\r
56</button>\r
57`,b=`<button class="cc-btn cc-allow">\r
58    {{allow}}\r
59</button>\r
60`,y=`<button class="cc-btn cc-dismiss">\r
61    {{dismiss}}\r
62</button>\r
63`,g=`<button class="cc-btn cc-deny">\r
64    {{deny}}\r
65</button>\r
66`,w=`<button class="cc-btn cc-config" >\r
67    {{config}}\r
68</button>\r
69`,m=`<div class="dp--revoke {{classes}}">\r
70    <i class="dp--icon-fingerprint"></i>\r
71    <span class="dp--hover">{{policy}}</span>\r
72</div>\r
73`,C=`<div class="dp--overlay-inner">\r
74    <div class="dp--overlay-header">{{notice}}</div>\r
75    <div class="dp--overlay-description">{{desc}}</div>\r
76    <div class="dp--overlay-button">\r
77        <button class="db--overlay-submit" onclick="window.DPCookieConsent.forceAccept(this)" data-cookieconsent="{{type}}">\r
78            {{btn}}\r
79        </button>\r
80    </div>\r
81</div>\r
82`,x='<div aria-describedby="cookieconsent:desc" aria-label="cookieconsent-dialog" aria-live="polite" class="cc-window {{classes}}" id="cookieconsent:window" role="dialog"></div>',E=`<div aria-describedby="cookieconsent:config" aria-label="cookieconsent-dialog" aria-live="polite" class="cc-window-config cc-type-extend" id="cookieconsent:config" role="dialog">\r
83    <div class="cc-config" >\r
84        <div class="cc-config-header">\r
85            <span>{{config-header}}</span>\r
86            <button class="cc-btn-close">\r
87                <i class="dp--icon-x"></i>\r
88            </button>\r
89        </div>\r
90        <div class="cc-config-body">\r
91            <div class="cc-message">{{message}}</div>\r
92            <div>\r
93                {{cookie-group}}\r
94            </div>\r
95        </div>\r
96        <div class="cc-config-footer">\r
97            {{deny}}\r
98            {{allow}}\r
99            {{allow-all}}\r
100        </div>\r
101        <div class="powered-by">Powered by <a href="https://dp-wired.de/?ref=consent-note" rel="noopener" target="_blank">DP Wired</a></div>\r
102    </div>\r
103</div>\r
104`,B=`<div class="cc-config-group">\r
105    <div class="cc-config-group-name">\r
106        <button class="cc-btn cc-btn-collapse">\r
107            <i class="dp--icon-chevron"></i>\r
108            {{group}}\r
109        </button>\r
110\r
111        <div class="cc-form-switch">\r
112            <input class="dp--check-box" id="dp--cookie-{{group-lower}}" type="checkbox" name="" value="">\r
113            <label class="cc-check-label" for="dp--cookie-{{group-lower}}">\r
114                <div class="cc-sr-only">{{group}}</div>\r
115            </label>\r
116        </div>\r
117    </div>\r
118\r
119    <div class="cc-config-cookies">\r
120        {{config-cookie}}\r
121    </div>\r
122</div>`,A=`<ul class="cc-config-group-cookie">\r
123    <li>\r
124        <div class="cc-label">{{cookie}}</div>\r
125        <div>\r
126            {{cookie_name}}\r
127            <div class="cc-cookie-description cc-pt-2">
127{{cookie_description}}</div>\r
128        </div>\r
129    </li>\r
130    <li class="cc-pt-2">\r
131        <div class="cc-label">{{duration}}</div>\r
132        <div>{{cookie_duration}} {{cookie_duration_time}}</div>\r
133    </li>\r
134    <li class="cc-pt-2">\r
135        <div class="cc-label">{{vendor}}</div>\r
136        <div><a href="{{cookie_vendor_link}}" target="_blank">{{cookie_vendor}}</a></div>\r
137    </li>\r
138</ul>\r
139`;/*!
140  * Cookie Consent
141  * Copyright 2021 Dirk Persky (https://github.com/DirkPersky/npm-dp_cookieconsent/issues)
142  * Licensed under AGPL v3+ (https://github.com/DirkPersky/npm-dp_cookieconsent/blob/master/LICENSE)
143  */(function(i,H){if(!i.hasInitialised){(function(){if(typeof window.CustomEvent=="function")return!1;function s(o,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var t=document.createEvent("CustomEvent");return t.initCustomEvent(o,e.bubbles,e.cancelable,e.detail),t}s.prototype=window.Event.prototype,window.CustomEvent=s})(),function(){if(typeof window.Event=="function")return!1;function s(o,e){e=e||{bubbles:!0,cancelable:!0,detail:void 0};var t=document.createEvent("Event");return t.initEvent(o,e.bubbles,e.cancelable,e.detail),t}s.prototype=window.Event.prototype,window.Event=s}();var l={detectRobot:function(s){return new RegExp([/Chrome-Lighthouse/,/bot/,/spider/,/crawl/,/APIs-Google/,/AdsBot/,/Googlebot/,/mediapartners/,/Google Favicon/,/FeedFetcher/,/Google-Read-Aloud/,/DuplexWeb-Google/,/googleweblight/,/bing/,/yandex/,/baidu/,/duckduck/,/yahoo/,/ecosia/,/ia_archiver/,/semrush/].map(e=>e.source).join("|"),"i").test(s)},reformatCheckboxOptions:function(s){var o=Object.entries(s).map(e=>{var t=String(e[1]).toLowerCase()=="true";return{name:e[0],checked:t}});return o},getCookie:function(s){var o="; "+document.cookie,e=o.split("; "+s+"=");return e.length<2?void 0:JSON.parse(e.pop().split(";").shift())},setCookie:function(s,o,e,t,n,c){var r=new Date;r.setHours(r.getHours()+(e||365)*24);var a=[s+"="+JSON.stringify(o),"expires="+r.toUTCString(),"path="+(n||"/"),"SameSite=Strict"];t&&a.push("domain="+t),c&&a.push("secure"),document.cookie=a.join(";")},prepareCookie:function(s,o){var e={status:"open"},t=this.getCookie(o);return typeof t!="undefined"&&this.deepExtend(e,t),this.deepExtend(e,s),{exists:typeof t!="undefined",config:e}},getElementsByTag:function(s,o){return typeof o=="undefined"&&(o="data-cookieconsent"),document.querySelectorAll(s+"["+o+"]")},deepExtend:function(s,o){for(var e in o)o.hasOwnProperty(e)&&(e in s&&typeof s[e]=="object"&&typeof o[e]=="object"?this.deepExtend(s[e],o[e]):s[e]=o[e]);return s},appendElement:function(s,o){var e=document.createElement("div"),t=o!=null?o:document.body;e.innerHTML=this.replaceContent(s);var n=e.children[0];return t.appendChild(n),n},applyStyle:function(s){if(typeof this.options[s]!="undefined")for(const[o,e]of Object.entries(this.options[s]))for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--dp-cookie-${s}-${o}-${t}`,n)},fireEvent:function(s,o){var e;o?e=new CustomEvent(s,{detail:{$el:o}}):e=new Event(s),document.dispatchEvent(e)}};i.utils=l;var L=function(){var s={cookie:{name:"dp_cookieconsent_status",path:"/",domain:"",expiryDays:365,secure:!1},position:"bottom-right",content:{},theme:"edgeless",type:"opt-in",revokable:!0,reloadOnRevoke:!0,checkboxes:[{name:"statistics",checked:!1},{name:"marketing",checked:!1}],palette:{popup:{background:"rgba(0,0,0,0.8)",text:"#ffffff"},button:{background:"#f96332",text:"#ffffff"}},overlay:{notice:!0,box:{background:"rgba(0,0,0,0.8)",text:"#ffffff"},btn:{background:"#f96332",text:"#ffffff"}},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(){},onStatusChange:function(e,t){},onRevokeChoice:function(){},compilance:{"opt-in":d,extend:f},revokeBtn:m,overlayLayout:C,wrap:{consent:x,config:E},elements:{"allow-all":k,allow:b,dismiss:y,deny:g,config:w,selection:h,description:v}};function o(){}return o.prototype.replaceContent=function(e){var t=this.options,n=["cc-"+t.position,"cc-type-"+t.type,"cc-theme-"+t.theme,"cc-hide"];e=e.replaceAll("{{classes}}",n.join(" "));for(const[c,r]of Object.entries(t.elements))e=e.replaceAll("{{"+c+"}}",r||"");for(const[c,r]of Object.entries(t.content))e=e.replaceAll("{{"+c+"}}",r||"");return e},o.prototype.templateOverwrites=function(){let e=i.utils.getElementsByTag("script","data-dp-cookieRevoke");e.length>0&&(this.options.revokeBtn=e[0].innerHTML);let t=i.utils.getElementsByTag("script","data-dp-cookieDesc");t.length>0&&(this.options.elements.description=t[0].innerHTML);let n=i.utils.getElementsByTag("script","data-dp-cookieSelect");n.length>0&&(this.options.elements.selection=n[0].innerHTML)},o.prototype.initialise=function(e){l.deepExtend(this.options={},s),typeof e.checkboxes=="object"&&(e.checkboxes=l.reformatCheckboxOptions(e.checkboxes)),typeof e=="object"&&l.deepExtend(this.options,e);var t=this.options.onInitialise.bind(this);this.templateOverwrites(),this.options.revokable&&(this.revokeBtn=i.utils.appendElement.call(this,this.options.revokeBtn)),this.window=i.utils.appendElement.call(this,this.options.wrap.consent),this.options.type=="extend"&&i.configWindow.initialise(this.options.wrap.config),i.utils.applyStyle.call(this,"palette"),i.utils.applyStyle.call(this,"overlay"),this.addCompilance(this.window),t(this),this.bindBtns(),this.presetCheckboxes()},o.prototype.presetCheckboxes=function(){var e=i.utils.getCookie(this.options.cookie.name);typeof e!="undefined"&&l.deepExtend(this.options.checkboxes,e.checkboxes);var t=this.getCheckboxInputs(!0);t.length>0&&t.forEach(n=>{var c=n.id;c=c.replace("dp--cookie-",""),this.options.checkboxes.map((r,a)=>{r.name==c&&(n.checked=r.checked)}),c=="required"&&(n.checked=!0,n.disabled=!0)})},o.prototype.addCompilance=function(e){var t=this.options.compilance["opt-in"];typeof this.options.compilance[this.options.type]!="undefined"&&(t=this.options.compilance[this.options.type]),this.compilance=i.utils.appendElement.call(this,t,e),this.allowAllBtn=this.compilance.getElementsByClassName("cc-allow-all"),this.allowBtn=this.compilance.getElementsByClassName("cc-allow"),this.denyBtn=this.compilance.getElementsByClassName("cc-deny"),this.dismissBtn=this.compilance.getElementsByClassName("cc-dismiss"),this.configBtn=this.compilance.querySelector("button.cc-config")},o.prototype.bindBtns=function(){this.allowAllBtn.length>0&&(this.allowAllBtn[0].onclick=()=>this.allowAll.call(this)),this.allowBtn.length>0&&(this.allowBtn[0].onclick=()=>this.allow.call(this)),this.dismissBtn.length>0&&(this.dismissBtn[0].onclick=()=>this.allow.call(this)),this.denyBtn.length>0&&(this.denyBtn[0].onclick=()=>this.denyAll.call(this)),this.revokeBtn&&(this.revokeBtn.onclick=()=>this.revoke.call(this)),this.configBtn&&(this.configBtn.onclick=()=>i.configWindow.showConfig())},o.prototype.allowAll=function(){this.saveCheckboxes(!0),i.utils.fireEvent("dp--cookie-accept"),this.save()},o.prototype.denyAll=function(){this.saveCheckboxes(!1),i.utils.fireEvent("dp--cookie-deny"),this.save()},o.prototype.allow=function(){i.utils.fireEvent("dp--cookie-accept"),this.save()},o.prototype.getCheckboxInputs=function(e){var t=document.querySelectorAll('input[id^="dp--cookie-"]');if(e)return t;var n=[];return t.forEach(c=>{var r=c.id;switch(r=r.replace("dp--cookie-",""),r){case"required":break;default:n.push(c)}}),n},o.prototype.saveCheckboxes=function(e){var t=this.getCheckboxInputs();t.length>0&&t.forEach(n=>{var c=n.id;c=c.replace("dp--cookie-",""),typeof e!="undefined"&&(n.checked=e);var r=this.options.checkboxes.map((a,p)=>{if(a.name==c)return this.options.checkboxes[p].checked=n.checked,!0}).filter(a=>a);r.length||this.options.checkboxes.push({name:c,checked:n.checked})})},o.prototype.save=function(){this.saveCheckboxes(),this.close()},o.prototype.hasChanged=function(){var e=!1;return typeof this.originalCookie=="undefined"||typeof this.originalCookie.checkboxes=="undefined"?!1:(this.originalCookie.checkboxes.map((t,n)=>{var c=this.options.checkboxes[n];if(t.checked===!0&&(!c||c.checked==!1)){e=!0;var r=this.options.onStatusChange.bind(this);r(c,t)}}),e)},o.prototype.hasConsent=function(){var e=i.utils.getCookie(this.options.cookie.name);return!(typeof e=="undefined"||e.status=="open")},o.prototype.saveCookie=function(e){var t=i.utils.prepareCookie(e,this.options.cookie.name);
143!t.exists&&t.config.status=="open"||(i.utils.setCookie(this.options.cookie.name,t.config,this.options.cookie.expiryDays,this.options.cookie.domain,this.options.cookie.path,this.options.cookie.secure),this.hasConsent()&&this.hasChanged()&&this.options.reloadOnRevoke&&location.reload())},o.prototype.revoke=function(){var e=this.options.onRevokeChoice.bind(this);e(this),i.utils.fireEvent("dp--cookie-revoke"),this.open()},o.prototype.open=function(){this.revokeBtn&&this.revokeBtn.classList.add("cc-hide"),this.showPopup(),this.originalCookie=i.utils.getCookie(this.options.cookie.name);var e=this.options.onPopupOpen.bind(this);e(this),this.saveCookie({status:"open"}),document.querySelector("body").classList.add("dp--cookie-consent")},o.prototype.hidePopup=function(){this.window.classList.add("cc-hide")},o.prototype.showPopup=function(){this.window.classList.remove("cc-hide")},o.prototype.close=function(){this.hidePopup(),i.configWindow.closeConfig(),this.revokeBtn&&this.revokeBtn.classList.remove("cc-hide");var e=this.options.onPopupClose.bind(this);e(this),this.saveCookie({status:"approved",checkboxes:this.options.checkboxes}),document.querySelector("body").classList.remove("dp--cookie-consent"),this.execute()},o.prototype.execute=function(){i.Handler.execute(this.options.checkboxes),i.Overlay.execute(this.options.checkboxes)},new o}();i.popup=L;var S=function(){function s(){}return s.prototype.overlays=function(){i.popup.options.overlay.notice&&(this.templateOverwrites(),this.overlaysView("iframe"),this.overlaysView("dp-content"))},s.prototype.templateOverwrites=function(){let o=i.utils.getElementsByTag("script","data-dp-cookieIframe");o.length>0&&(i.popup.options.overlayLayout=o[0].innerHTML)},s.prototype.overlaysView=function(o){var e=i.utils.getElementsByTag(o);e.length!=0&&e.forEach(t=>{var n=t.getAttribute("data-cookieconsent-notice")||i.popup.options.content.media.notice,c=t.getAttribute("data-cookieconsent-description")||i.popup.options.content.media.desc,r=t.getAttribute("data-cookieconsent-btn")||i.popup.options.content.media.btn,a=t.getAttribute("data-cookieconsent");if(!t.hasAttribute("data-cookieconsent-overlay-loaded")){t.setAttribute("data-cookieconsent-overlay-loaded","loaded");var p=document.createElement("div");p.classList.add("dp--overlay");var u=i.popup.options.overlayLayout.replace("{{notice}}",n).replace("{{desc}}",c).replace("{{type}}",a).replace("{{btn}}",r);u=i.utils.appendElement.call(i.popup,u,p),u.getElementsByClassName("db--overlay-submit"),t.parentNode.insertBefore(p,t.nextSibling)}})},s.prototype.execute=function(o){this.executeIframe(o),this.executeContent(o)},s.prototype.ajax=function(o,e,t,n){var c=new XMLHttpRequest;c.open(o,e),c.setRequestHeader("X-Requested-With","XMLHttpRequest"),c.setRequestHeader("Content-type","text/html"),c.onload=function(){c.status<200||c.status>=300?n(c):t(c)},c.onerror=function(){n(c)},c.send()},s.prototype.executeContent=function(o){var e=i.utils.getElementsByTag("dp-content");e.length>0&&e.forEach(t=>{if(i.Handler.typeAllowed(t,o)){t.classList.add("dp--loaded"),t.setAttribute("data-cookieconsent-loaded",t.getAttribute("data-cookieconsent")),t.removeAttribute("data-cookieconsent");var n=t.getAttribute("data-src");n&&n.length>0?this.ajax("GET",n,function(c){t.innerHTML=c.response,i.utils.fireEvent("dp--cookie-content",t)},function(c){}):i.utils.fireEvent("dp--cookie-content",t)}})},s.prototype.executeIframe=function(o){var e=i.utils.getElementsByTag("iframe");e.length>0&&e.forEach(t=>{if(i.Handler.typeAllowed(t,o)){var n=t.cloneNode(!0);n.getAttribute("data-src")&&(n.src=n.getAttribute("data-src")),t.parentNode.replaceChild(n,t),n.classList.add("dp--loaded"),n.setAttribute("data-cookieconsent-loaded",n.getAttribute("data-cookieconsent")),n.removeAttribute("data-cookieconsent"),i.utils.fireEvent("dp--cookie-iframe",n)}})},new s}();i.Overlay=S;var O=function(){function s(){}return s.prototype.execute=function(o){var e=i.utils.getElementsByTag("script");e.length>0&&e.forEach(t=>{if(this.typeAllowed(t,o)){var n=t.innerHTML;n&&n.length&&(n=n.trim()),n&&n.length?(eval.call(this,n),i.utils.fireEvent("dp--cookie-fire",t)):t.getAttribute("data-src")?this.asyncJS(t.getAttribute("data-src"),function(c){i.utils.fireEvent("dp--cookie-fire",t)}):t.src&&this.asyncJS(t.src,function(c){i.utils.fireEvent("dp--cookie-fire",t)}),t.setAttribute("data-cookieconsent-loaded",t.getAttribute("data-cookieconsent")),t.removeAttribute("data-cookieconsent")}})},s.prototype.asyncLoad=function(o,e,t){var n=document,c=n.createElement(e),r=n.getElementsByTagName(e)[0];switch(e){case"script":c.src=o,c.setAttribute("defer","");break;case"link":c.rel="stylesheet",c.type="text/css",c.setAttribute("defer",""),c.href=o;break}t&&c.addEventListener("load",function(a){t(null,a)},!1),r.parentNode.insertBefore(c,r)},s.prototype.asyncJS=function(o,e){this.asyncLoad(o,"script",e)},s.prototype.typeAllowed=function(o,e){var t=o.getAttribute("data-cookieconsent"),n=e.map(c=>{if(c.name==t&&c.checked===!0)return!0});return n.indexOf(!0)!==-1},new s}();i.Handler=O,i.initialise=function(s,o){if(o||(o=function(){}),i.popup.initialise(s),i.Overlay.overlays(),o(i.popup),i.utils.fireEvent("dp--cookie-init"),i.popup.hasConsent()||l.detectRobot(navigator.userAgent)){i.popup.close(),i.utils.fireEvent("dp--cookie-accept-init");return}i.popup.open()};var P=function(){function s(){}return s.prototype.initialise=function(o){this.prepareConfig(),this.configWrap=i.utils.appendElement.call(i.popup,o),this.getElements(),this.bindBtns()},s.prototype.prepareConfig=function(){var o=i.popup.options,e=o.cookies.map(t=>{var n=t.cookies.map(c=>(this.options=i.utils.deepExtend({elements:{},content:c},o),i.popup.replaceContent.call(this,A))).join("");return this.options=i.utils.deepExtend({elements:{"config-cookie":n},content:{group:t.name,"group-lower":t.field}},o),i.popup.replaceContent.call(this,B)}).join("");i.popup.options.elements["cookie-group"]=e},s.prototype.getElements=function(){this.closeBtn=this.configWrap.querySelector("button.cc-btn-close"),this.allowAllBtn=this.configWrap.querySelector("button.cc-allow-all"),this.allowBtn=this.configWrap.querySelector("button.cc-allow"),this.denyBtn=this.configWrap.querySelector("button.cc-deny"),this.configGroups=this.configWrap.querySelectorAll(".cc-config-group")},s.prototype.bindBtns=function(){this.allowAllBtn&&(this.allowAllBtn.onclick=()=>i.popup.allowAll(this)),this.allowBtn&&(this.allowBtn.onclick=()=>i.popup.allow(this)),this.denyBtn&&(this.denyBtn.onclick=()=>i.popup.denyAll(this)),this.closeBtn&&(this.closeBtn.onclick=()=>this.hideConfig.call(this)),this.configGroups&&this.configGroups.forEach(o=>{o.querySelector(".cc-btn-collapse").onclick=()=>{var e=!o.classList.contains("cc-show");this.configGroups.forEach(t=>t.classList.remove("cc-show")),e&&o.classList.add("cc-show")}})},s.prototype.closeConfig=function(){this.configWrap&&this.configWrap.classList.remove("cc-show")},s.prototype.hideConfig=function(){i.popup.showPopup(),this.configWrap&&this.closeConfig()},s.prototype.showConfig=function(){this.configWrap&&this.configWrap.classList.add("cc-show"),i.popup.hidePopup()},new s}();i.configWindow=P,i.forceAccept=function(s){var o=s.getAttribute("data-cookieconsent"),e=i.popup.getCheckboxInputs();console.log(e),e.length>0&&(e.forEach(t=>{var n=t.id;n=n.replace("dp--cookie-",""),i.popup.hasConsent()||(t.checked=!1),n==o&&(t.checked=!0)}),i.utils.fireEvent("dp--cookie-accept")),i.popup.save()},i.forceDeny=function(s){var o=s.getAttribute("data-cookieconsent"),e=i.popup.getCheckboxInputs();e.length>0&&e.forEach(t=>{var n=t.id;n=n.replace("dp--cookie-",""),i.popup.hasConsent()||(t.checked=!1),n==o&&(t.checked=!1)}),i.popup.save()},i.hasInitialised=!0,window.DPCookieConsent=i,window.addEventListener("load",function(){window.DPCookieConsent.initialise(window.cookieconsent_options||{}),window.DPCookieConsent.loaded=!0})}})(window.DPCookieConsent||{})});
144
145/**
146 * @popperjs/core v2.10.2 - MIT License
147 */
148
149"use strict";!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){function t(e,t){return{width:(e=e.getBoundingClientRect()).width/1,height:e.height/1,top:e.top/1,right:e.right/1,bottom:e.bottom/1,left:e.left/1,x:e.left/1,y:e.top/1}}function n(e){return null==e?window:"[object Window]"!==e.toString()?(e=e.ownerDocument)&&e.defaultView||window:e}function o(e){return{scrollLeft:(e=n(e)).pageXOffset,scrollTop:e.pageYOffset}}function r(e){return e instanceof n(e).Element||e instanceof Element}function i(e){return e instanceof n(e).HTMLElement||e instanceof HTMLElement}function a(e){return"undefined"!=typeof ShadowRoot&&(e instanceof n(e).ShadowRoot||e instanceof ShadowRoot)}function s(e){return e?(e.nodeName||"").toLowerCase():null}function f(e){return((r(e)?e.ownerDocument:e.document)||window.document).documentElement}function p(e){return t(f(e)).left+o(e).scrollLeft}function c(e){return n(e).getComputedStyle(e)}function l(e){return e=c(e),/auto|scroll|overlay|hidden/.test(e.overflow+e.overflowY+e.overflowX)}function u(e,r,a){void 0===a&&(a=!1);var c=i(r);i(r)&&r.getBoundingClientRect();var u=f(r);e=t(e);var d={scrollLeft:0,scrollTop:0},m={x:0,y:0};return(c||!c&&!a)&&(("body"!==s(r)||l(u))&&(d=r!==n(r)&&i(r)?{scrollLeft:r.scrollLeft,scrollTop:r.scrollTop}:o(r)),i(r)?((m=t(r)).x+=r.clientLeft,m.y+=r.clientTop):u&&(m.x=p(u))),{x:e.left+d.scrollLeft-m.x,y:e.top+d.scrollTop-m.y,width:e.width,height:e.height}}function d(e){var n=t(e),o=e.offsetWidth,r=e.offsetHeight;return 1>=Math.abs(n.width-o)&&(o=n.width),1>=Math.abs(n.height-r)&&(r=n.height),{x:e.offsetLeft,y:e.offsetTop,width:o,height:r}}function m(e){return"html"===s(e)?e:e.assignedSlot||e.parentNode||(a(e)?e.host:null)||f(e)}function h(e){return 0<=["html","body","#document"].indexOf(s(e))?e.ownerDocument.body:i(e)&&l(e)?e:h(m(e))}function v(e,t){var o;void 0===t&&(t=[]);var r=h(e);return e=r===(null==(o=e.ownerDocument)?void 0:o.body),o=n(r),r=e?[o].concat(o.visualVie
vendor: 16,123 bytes, line 149
149wport||[],l(r)?r:[]):r,t=t.concat(r),e?t:t.concat(v(m(r)))}function g(e){return i(e)&&"fixed"!==c(e).position?e.offsetParent:null}function b(e){for(var t=n(e),o=g(e);o&&0<=["table","td","th"].indexOf(s(o))&&"static"===c(o).position;)o=g(o);if(o&&("html"===s(o)||"body"===s(o)&&"static"===c(o).position))return t;if(!o)e:{if(o=-1!==navigator.userAgent.toLowerCase().indexOf("firefox"),-1===navigator.userAgent.indexOf("Trident")||!i(e)||"fixed"!==c(e).position)for(e=m(e);i(e)&&0>["html","body"].indexOf(s(e));){var r=c(e);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||o&&"filter"===r.willChange||o&&r.filter&&"none"!==r.filter){o=e;break e}e=e.parentNode}o=null}return o||t}function y(e){function t(e){o.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){o.has(e)||(e=n.get(e))&&t(e)})),r.push(e)}var n=new Map,o=new Set,r=[];return e.forEach((function(e){n.set(e.name,e)})),e.forEach((function(e){o.has(e.name)||t(e)})),r}function w(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}function x(e){return e.split("-")[0]}function O(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&a(n))do{if(t&&e.isSameNode(t))return!0;t=t.parentNode||t.host}while(t);return!1}function j(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function E(e,r){if("viewport"===r){r=n(e);var a=f(e);r=r.visualViewport;var s=a.clientWidth;a=a.clientHeight;var l=0,u=0;r&&(s=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(l=r.offsetLeft,u=r.offsetTop)),e=j(e={width:s,height:a,x:l+p(e),y:u})}else i(r)?((e=t(r)).top+=r.clientTop,e.left+=r.clientLeft,e.bottom=e.top+r.clientHeight,e.right=e.left+r.clientWidth,e.width=r.clientWidth,e.height=r.clientHeight,e.x=e.left,e.y=e.top):(u=f(e),e=f(u),s=o(u),r=null==(a=u.ownerDocument)?void 0:a.body,a=U(e.scrollWidth,e.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),l=U(e.scrollHeight,e.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),u=-s.scrollLeft+p(u),s=-s.scrollTop,"rtl"===c(r||e).direction&&(u+=U(e.clientWidth,r?r.clientWidth:0)-a),e=j({width:a,height:l,x:u,y:s}));return e}function D(e,t,n){return t="clippingParents"===t?function(e){var t=v(m(e)),n=0<=["absolute","fixed"].indexOf(c(e).position)&&i(e)?b(e):e;return r(n)?t.filter((function(e){return r(e)&&O(e,n)&&"body"!==s(e)})):[]}(e):[].concat(t),(n=(n=[].concat(t,[n])).reduce((function(t,n){return n=E(e,n),t.top=U(n.top,t.top),t.right=z(n.right,t.right),t.bottom=z(n.bottom,t.bottom),t.left=U(n.left,t.left),t}),E(e,n[0]))).width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}function L(e){return e.split("-")[1]}function P(e){return 0<=["top","bottom"].indexOf(e)?"x":"y"}function M(e){var t=e.reference,n=e.element,o=(e=e.placement)?x(e):null;e=e?L(e):null;var r=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2;switch(o){case"top":r={x:r,y:t.y-n.height};break;case"bottom":r={x:r,y:t.y+t.height};break;case"right":r={x:t.x+t.width,y:i};break;case"left":r={x:t.x-n.width,y:i};break;default:r={x:t.x,y:t.y}}if(null!=(o=o?P(o):null))switch(i="y"===o?"height":"width",e){case"start":r[o]-=t[i]/2-n[i]/2;break;case"end":r[o]+=t[i]/2-n[i]/2}return r}function k(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function A(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function B(e,n){void 0===n&&(n={});var o=n;n=void 0===(n=o.placement)?e.placement:n;var i=o.boundary,a=void 0===i?"clippingParents":i,s=void 0===(i=o.rootBoundary)?"viewport":i;i=void 0===(i=o.elementContext)?"popper":i;var p=o.altBoundary,c=void 0!==p&&p;o=k("number"!=typeof(o=void 0===(o=o.padding)?0:o)?o:A(o,N)),p=e.rects.popper,a=D(r(c=e.elements[c?"popper"===i?"reference":"popper":i])?c:c.contextElement||f(e.elements.popper),a,s),c=M({reference:s=t(e.elements.reference),element:p,strategy:"absolute",placement:n}),p=j(Object.assign({},p,c)),s="popper"===i?p:s;var l={top:a.top-s.top+o.top,bottom:s.bottom-a.bottom+o.bottom,left:a.left-s.left+o.left,right:s.right-a.right+o.right};if(e=e.modifiersData.offset,"popper"===i&&e){var u=e[n];Object.keys(l).forEach((function(e){var t=0<=["right","bottom"].indexOf(e)?1:-1,n=0<=["top","bottom"].indexOf(e)?"y":"x";l[e]+=u[n]*t}))}return l}function W(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function T(e){void 0===e&&(e={});var t=e.defaultModifiers,n=void 0===t?[]:t,o=void 0===(e=e.defaultOptions)?X:e;return function(e,t,i){function a(){f.forEach((function(e){return e()})),f=[]}void 0===i&&(i=o);var s={placement:"bottom",orderedModifiers:[],options:Object.assign({},X,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},f=[],p=!1,c={state:s,setOptions:function(i){return i="function"==typeof i?i(s.options):i,a(),s.options=Object.assign({},o,s.options,i),s.scrollParents={reference:r(e)?v(e):e.contextElement?v(e.contextElement):[],popper:v(t)},i=function(e){var t=y(e);return _.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}(function(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}([].concat(n,s.options.modifiers))),s.orderedModifiers=i.filter((function(e){return e.enabled})),s.orderedModifiers.forEach((function(e){var t=e.name,n=e.options;n=void 0===n?{}:n,"function"==typeof(e=e.effect)&&(t=e({state:s,name:t,instance:c,options:n}),f.push(t||function(){}))})),c.update()},forceUpdate:function(){if(!p){var e=s.elements,t=e.reference;if(W(t,e=e.popper))for(s.rects={reference:u(t,b(e),"fixed"===s.options.strategy),popper:d(e)},s.reset=!1,s.placement=s.options.placement,s.orderedModifiers.forEach((function(e){return s.modifiersData[e.name]=Object.assign({},e.data)})),t=0;t<s.orderedModifiers.length;t++)if(!0===s.reset)s.reset=!1,t=-1;else{var n=s.orderedModifiers[t];e=n.fn;var o=n.options;o=void 0===o?{}:o,n=n.name,"function"==typeof e&&(s=e({state:s,options:o,name:n,instance:c})||s)}}},update:w((function(){return new Promise((function(e){c.forceUpdate(),e(s)}))})),destroy:function(){a(),p=!0}};return W(e,t)?(c.setOptions(i).then((function(e){!p&&i.onFirstUpdate&&i.onFirstUpdate(e)})),c):c}}function R(e){var t,o=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,p=e.position,l=e.gpuAcceleration,u=e.adaptive;if(!0===(e=e.roundOffsets)){e=s.y;var d=window.devicePixelRatio||1;e={x:F(F(s.x*d)/d)||0,y:F(F(e*d)/d)||0}}else e="function"==typeof e?e(s):s;e=void 0===(e=(d=e).x)?0:e,d=void 0===(d=d.y)?0:d;var m=s.hasOwnProperty("x");s=s.hasOwnProperty("y");var h,v="left",g="top",y=window;if(u){var w=b(o),x="clientHeight",O="clientWidth";w===n(o)&&("static"!==c(w=f(o)).position&&"absolute"===p&&(x="scrollHeight",O="scrollWidth")),"top"!==i&&("left"!==i&&"right"!==i||"end"!==a)||(g="bottom",d-=w[x]-r.height,d*=l?1:-1),"left"!==i&&("top"!==i&&"bottom"!==i||"end"!==a)||(v="right",e-=w[O]-r.width,e*=l?1:-1)}return o=Object.assign({position:p},u&&K),l?Object.assign({},o,((h={})[g]=s?"0":"",h[v]=m?"0":"",h.transform=1>=(y.devicePixelRatio||1)?"translate("+e+"px, "+d+"px)":"translate3d("+e+"px, "+d+"px, 0)",h)):Object.assign({},o,((t={})[g]=s?d+"px":"",t[v]=m?e+"px":"",t.transform="",t))}function H(e){return e.replace(/left|right|bottom|top/g,(function(e){return ee[e]}))}function S(e){return e.replace(/start|end/g,(function(e){return te[e]}))}function C(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function q(e){return["top","right","bottom","left"].some((function(t){return 0<=e[t]}))}var N=["top","bottom","right","left"],V=N.reduce((function(e,t){return e.concat([t+"-start",t+"-end"])}),[]),I=[].concat(N,["auto"]).reduce((function(e,t){return e.concat([t,t+"-start",t+"-end"])}),[]),_="beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "),U=Math.max,z=Math.min,F=Math.round,X={placement:"bottom",modifiers:[],strategy:"absolute"},Y={passive:!0},G={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,o=e.instance,r=(e=e.options).scroll,i=void 0===r||r,a=void 0===(e=e.resize)||e,s=n(t.elements.popper),f=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&f.forEach((function(e){e.addEventListener("scroll",o.update,Y)})),a&&s.addEventListener("resize",o.update,Y),function(){i&&f.forEach((function(e){e.removeEventListener("scroll",o.update,Y)})),a&&s.removeEventListener("resize",o.update,Y)}},data:{}},J={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state;t.modifiersData[e.name]=M({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},K={top:"auto",right:"auto",bottom:"auto",left:"auto"},Q={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options;e=void 0===(e=n.gpuAcceleration)||e;var o=n.adaptive;o=void 0===o||o,n=void 0===(n=n.roundOffsets)||n,e={placement:x(t.placement),variation:L(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:e},null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,R(Object.assign({},e,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:n})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,R(Object.assign({},e,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:n})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},Z={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},r=t.elements[e];i(r)&&s(r)&&(Object.assign(r.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],r=t.attributes[e]||{};e=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{}),i(o)&&s(o)&&(Object.assign(o.style,e),Object.keys(r).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]},$={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.name,o=void 0===(e=e.options.offset)?[0,0]:e,r=(e=I.reduce((function(e,n){var r=t.rects,i=x(n),a=0<=["left","top"].indexOf(i)?-1:1,s="function"==typeof o?o(Object.assign({},r,{placement:n})):o;return r=(r=s[0])||0,s=((s=s[1])||0)*a,i=0<=["left","right"].indexOf(i)?{x:s,y:r}:{x:r,y:s},e[n]=i,e}),{}))[t.placement],i=r.x;r=r.y,null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=r),t.modifiersData[n]=e}},ee={left:"right",right:"left",bottom:"top",top:"bottom"},te={start:"end",end:"start"},ne={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options;if(e=e.name,!t.modifiersData[e]._skip){var o=n.mainAxis;o=void 0===o||o;var r=n.altAxis;r=void 0===r||r;var i=n.fallbackPlacements,a=n.padding,s=n.boundary,f=n.rootBoundary,p=n.altBoundary,c=n.flipVariations,l=void 0===c||c,u=n.allowedAutoPlacements;c=x(n=t.options.placement),i=i||(c!==n&&l?function(e){if("auto"===x(e))return[];var t=H(e);return[S(e),t,S(t)]}(n):[H(n)]);var d=[n].concat(i).reduce((function(e,n){return e.concat("auto"===x(n)?function(e,t){void 0===t&&(t={});var n=t.boundary,o=t.rootBoundary,r=t.padding,i=t.flipVariations,a=t.allowedAutoPlacements,s=void 0===a?I:a,f=L(t.placement);0===(i=(t=f?i?V:V.filter((function(e){return L(e)===f})):N).filter((function(e){return 0<=s.indexOf(e)}))).length&&(i=t);var p=i.reduce((function(t,i){return t[i]=B(e,{placement:i,boundary:n,rootBoundary:o,padding:r})[x(i)],t}),{});return Object.keys(p).sort((function(e,t){return p[e]-p[t]}))}(t,{placement:n,boundary:s,rootBoundary:f,padding:a,flipVariations:l,allowedAutoPlacements:u}):n)}),[]);n=t.rects.reference,i=t.rects.popper;var m=new Map;c=!0;for(var h=d[0],v=0;v<d.length;v++){var g=d[v],b=x(g),y="start"===L(g),w=0<=["top","bottom"].indexOf(b),O=w?"width":"height",j=B(t,{placement:g,boundary:s,rootBoundary:f,altBoundary:p,padding:a});if(y=w?y?"right":"left":y?"bottom":"top",n[O]>i[O]&&(y=H(y)),O=H(y),w=[],o&&w.push(0>=j[b]),r&&w.push(0>=j[y],0>=j[O]),w.every((function(e){return e}))){h=g,c=!1;break}m.set(g,w)}if(c)for(o=function(e){var t=d.find((function(t){if(t=m.get(t))return t.slice(0,e).every((function(e){return e}))}));if(t)return h=t,"break"},r=l?3:1;0<r&&"break"!==o(r);r--);t.placement!==h&&(t.modifiersData[e]._skip=!0,t.placement=h,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},oe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options;e=e.name;var o=n.mainAxis,r=void 0===o||o,i=void 0!==(o=n.altAxis)&&o;o=void 0===(o=n.tether)||o;var a=n.tetherOffset,s=void 0===a?0:a,f=B(t,{boundary:n.boundary,rootBoundary:n.rootBoundary,padding:n.padding,altBoundary:n.altBoundary});n=x(t.placement);var p=L(t.placement),c=!p,l=P(n);n="x"===l?"y":"x",a=t.modifiersData.popperOffsets;var u=t.rects.reference,m=t.rects.popper,h="function"==typeof s?s(Object.assign({},t.rects,{placement:t.placement})):s;if(s={x:0,y:0},a){if(r||i){var v="y"===l?"top":"left",g="y"===l?"bottom":"right",y="y"===l?"height":"width",w=a[l],O=a[l]+f[v],j=a[l]-f[g],E=o?-m[y]/2:0,D="start"===p?u[y]:m[y];p="start"===p?-m[y]:-u[y],m=t.elements.arrow,m=o&&m?d(m):{width:0,height:0};var M=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0};v=M[v],g=M[g],m=U(0,z(u[y],m[y])),D=c?u[y]/2-E-m-v-h:D-m-v-h,u=c?-u[y]/2+E+m+g+h:p+m+g+h,c=t.elements.arrow&&b(t.elements.arrow),h=t.modifiersData.offset?t.modifiersData.offset[t.placement][l]:0,c=a[l]+D-h-(c?"y"===l?c.clientTop||0:c.clientLeft||0:0),u=a[l]+u-h,r&&(r=o?z(O,c):O,j=o?U(j,u):j,r=U(r,z(w,j)),a[l]=r,s[l]=r-w),i&&(r=(i=a[n])+f["x"===l?"top":"left"],f=i-f["x"===l?"bottom":"right"],r=o?z(r,c):r,o=o?U(f,u):f,o=U(r,z(i,o)),a[n]=o,s[n]=o-i)}t.modifiersData[e]=s}},requiresIfExists:["offset"]},re={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,r=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=x(n.placement);if(e=P(s),s=0<=["left","right"].indexOf(s)?"height":"width",i&&a){r=k("number"!=typeof(r="function"==typeof(r=r.padding)?r(Object.assign({},n.rects,{placement:n.placement})):r)?r:A(r,N));var f=d(i),p="y"===e?"top":"left",c="y"===e?"bottom":"right",l=n.rects.reference[s]+n.rects.reference[e]-a[e]-n.rects.popper[s];a=a[e]-n.rects.reference[e],a=(i=(i=b(i))?"y"===e?i.clientHeight||0:i.clientWidth||0:0)/2-f[s]/2+(l/2-a/2),s=U(r[p],z(a,i-f[s]-r[c])),n.modifiersData[o]=((t={})[e]=s,t.centerOffset=s-a,t)}},effect:function(e){var t=e.state;if(null!=(e=void 0===(e=e.options.element)?"[data-popper-arrow]":e)){if("string"==typeof e&&!(e=t.elements.popper.querySelector(e)))return;O(t.elements.popper,e)&&(t.elements.arrow=e)}},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},ie={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state;e=e.name;var n=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,i=B(t,{elementContext:"reference"}),a=B(t,{altBoundary:!0});n=C(i,n),o=C(a,o,r),r=q(n),a=q(o),t.modifiersData[e]={referenceClippingOffsets:n,popperEscapeOffsets:o,isReferenceHidden:r,hasPopperEscaped:a},t.attributes.popper=Object.assign({}
149,t.attributes.popper,{"data-popper-reference-hidden":r,"data-popper-escaped":a})}},ae=T({defaultModifiers:[G,J,Q,Z]}),se=[G,J,Q,Z,$,ne,oe,re,ie],fe=T({defaultModifiers:se});e.applyStyles=Z,e.arrow=re,e.computeStyles=Q,e.createPopper=fe,e.createPopperLite=ae,e.defaultModifiers=se,e.detectOverflow=B,e.eventListeners=G,e.flip=ne,e.hide=ie,e.offset=$,e.popperGenerator=T,e.popperOffsets=J,e.preventOverflow=oe,Object.defineProperty(e,"__esModule",{value:!0})}));
150
151
152/*!
153  * Bootstrap v5.3.2 (https://getbootstrap.com/)
154  * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
155  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
156  */
157(function (global, factory) {
158  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) :
159  typeof define === 'function' && define.amd ? define(['@popperjs/core'], factory) :
160  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap
vendor: 28,688 bytes, lines 160-1004
160 = factory(global.Popper));
161})(this, (function (Popper) { 'use strict';
162
163  function _interopNamespaceDefault(e) {
164    const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
165    if (e) {
166      for (const k in e) {
167        if (k !== 'default') {
168          const d = Object.getOwnPropertyDescriptor(e, k);
169          Object.defineProperty(n, k, d.get ? d : {
170            enumerable: true,
171            get: () => e[k]
172          });
173        }
174      }
175    }
176    n.default = e;
177    return Object.freeze(n);
178  }
179
180  const Popper__namespace = /*#__PURE__*/_interopNamespaceDefault(Popper);
181
182  /**
183   * --------------------------------------------------------------------------
184   * Bootstrap dom/data.js
185   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
186   * --------------------------------------------------------------------------
187   */
188
189  /**
190   * Constants
191   */
192
193  const elementMap = new Map();
194  const Data = {
195    set(element, key, instance) {
196      if (!elementMap.has(element)) {
197        elementMap.set(element, new Map());
198      }
199      const instanceMap = elementMap.get(element);
200
201      // make it clear we only want one instance per element
202      // can be removed later when multiple key/instances are fine to be used
203      if (!instanceMap.has(key) && instanceMap.size !== 0) {
204        // eslint-disable-next-line no-console
205        console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
206        return;
207      }
208      instanceMap.set(key, instance);
209    },
210    get(element, key) {
211      if (elementMap.has(element)) {
212        return elementMap.get(element).get(key) || null;
213      }
214      return null;
215    },
216    remove(element, key) {
217      if (!elementMap.has(element)) {
218        return;
219      }
220      const instanceMap = elementMap.get(element);
221      instanceMap.delete(key);
222
223      // free up element references if there are no instances left for an element
224      if (instanceMap.size === 0) {
225        elementMap.delete(element);
226      }
227    }
228  };
229
230  /**
231   * --------------------------------------------------------------------------
232   * Bootstrap util/index.js
233   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
234   * --------------------------------------------------------------------------
235   */
236
237  const MAX_UID = 1000000;
238  const MILLISECONDS_MULTIPLIER = 1000;
239  const TRANSITION_END = 'transitionend';
240
241  /**
242   * Properly escape IDs selectors to handle weird IDs
243   * @param {string} selector
244   * @returns {string}
245   */
246  const parseSelector = selector => {
247    if (selector && window.CSS && window.CSS.escape) {
248      // document.querySelector needs escaping to handle IDs (html5+) containing for instance /
249      selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`);
250    }
251    return selector;
252  };
253
254  // Shout-out Angus Croll (https://goo.gl/pxwQGp)
255  const toType = object => {
256    if (object === null || object === undefined) {
257      return `${object}`;
258    }
259    return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
260  };
261
262  /**
263   * Public Util API
264   */
265
266  const getUID = prefix => {
267    do {
268      prefix += Math.floor(Math.random() * MAX_UID);
269    } while (document.getElementById(prefix));
270    return prefix;
271  };
272  const getTransitionDurationFromElement = element => {
273    if (!element) {
274      return 0;
275    }
276
277    // Get transition-duration of the element
278    let {
279      transitionDuration,
280      transitionDelay
281    } = window.getComputedStyle(element);
282    const floatTransitionDuration = Number.parseFloat(transitionDuration);
283    const floatTransitionDelay = Number.parseFloat(transitionDelay);
284
285    // Return 0 if element or transition duration is not found
286    if (!floatTransitionDuration && !floatTransitionDelay) {
287      return 0;
288    }
289
290    // If multiple durations are defined, take the first
291    transitionDuration = transitionDuration.split(',')[0];
292    transitionDelay = transitionDelay.split(',')[0];
293    return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
294  };
295  const triggerTransitionEnd = element => {
296    element.dispatchEvent(new Event(TRANSITION_END));
297  };
298  const isElement = object => {
299    if (!object || typeof object !== 'object') {
300      return false;
301    }
302    if (typeof object.jquery !== 'undefined') {
303      object = object[0];
304    }
305    return typeof object.nodeType !== 'undefined';
306  };
307  const getElement = object => {
308    // it's a jQuery object or a node element
309    if (isElement(object)) {
310      return object.jquery ? object[0] : object;
311    }
312    if (typeof object === 'string' && object.length > 0) {
313      return document.querySelector(parseSelector(object));
314    }
315    return null;
316  };
317  const isVisible = element => {
318    if (!isElement(element) || element.getClientRects().length === 0) {
319      return false;
320    }
321    const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';
322    // Handle `details` element as its content may falsie appear visible when it is closed
323    const closedDetails = element.closest('details:not([open])');
324    if (!closedDetails) {
325      return elementIsVisible;
326    }
327    if (closedDetails !== element) {
328      const summary = element.closest('summary');
329      if (summary && summary.parentNode !== closedDetails) {
330        return false;
331      }
332      if (summary === null) {
333        return false;
334      }
335    }
336    return elementIsVisible;
337  };
338  const isDisabled = element => {
339    if (!element || element.nodeType !== Node.ELEMENT_NODE) {
340      return true;
341    }
342    if (element.classList.contains('disabled')) {
343      return true;
344    }
345    if (typeof element.disabled !== 'undefined') {
346      return element.disabled;
347    }
348    return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
349  };
350  const findShadowRoot = element => {
351    if (!document.documentElement.attachShadow) {
352      return null;
353    }
354
355    // Can find the shadow root otherwise it'll return the document
356    if (typeof element.getRootNode === 'function') {
357      const root = element.getRootNode();
358      return root instanceof ShadowRoot ? root : null;
359    }
360    if (element instanceof ShadowRoot) {
361      return element;
362    }
363
364    // when we don't find a shadow root
365    if (!element.parentNode) {
366      return null;
367    }
368    return findShadowRoot(element.parentNode);
369  };
370  const noop = () => {};
371
372  /**
373   * Trick to restart an element's animation
374   *
375   * @param {HTMLElement} element
376   * @return void
377   *
378   * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
379   */
380  const reflow = element => {
381    element.offsetHeight; // eslint-disable-line no-unused-expressions
382  };
383
384  const getjQuery = () => {
385    if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
386      return window.jQuery;
387    }
388    return null;
389  };
390  const DOMContentLoadedCallbacks = [];
391  const onDOMContentLoaded = callback => {
392    if (document.readyState === 'loading') {
393      // add listener on the first call when the document is in loading state
394      if (!DOMContentLoadedCallbacks.length) {
395        document.addEventListener('DOMContentLoaded', () => {
396          for (const callback of DOMContentLoadedCallbacks) {
397            callback();
398          }
399        });
400      }
401      DOMContentLoadedCallbacks.push(callback);
402    } else {
403      callback();
404    }
405  };
406  const isRTL = () => document.documentElement.dir === 'rtl';
407  const defineJQueryPlugin = plugin => {
408    onDOMContentLoaded(() => {
409      const $ = getjQuery();
410      /* istanbul ignore if */
411      if ($) {
412        const name = plugin.NAME;
413        const JQUERY_NO_CONFLICT = $.fn[name];
414        $.fn[name] = plugin.jQueryInterface;
415        $.fn[name].Constructor = plugin;
416        $.fn[name].noConflict = () => {
417          $.fn[name] = JQUERY_NO_CONFLICT;
418          return plugin.jQueryInterface;
419        };
420      }
421    });
422  };
423  const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
424    return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;
425  };
426  const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
427    if (!waitForTransition) {
428      execute(callback);
429      return;
430    }
431    const durationPadding = 5;
432    const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
433    let called = false;
434    const handler = ({
435      target
436    }) => {
437      if (target !== transitionElement) {
438        return;
439      }
440      called = true;
441      transitionElement.removeEventListener(TRANSITION_END, handler);
442      execute(callback);
443    };
444    transitionElement.addEventListener(TRANSITION_END, handler);
445    setTimeout(() => {
446      if (!called) {
447        triggerTransitionEnd(transitionElement);
448      }
449    }, emulatedDuration);
450  };
451
452  /**
453   * Return the previous/next element of a list.
454   *
455   * @param {array} list    The list of elements
456   * @param activeElement   The active element
457   * @param shouldGetNext   Choose to get next or previous element
458   * @param isCycleAllowed
459   * @return {Element|elem} The proper element
460   */
461  const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
462    const listLength = list.length;
463    let index = list.indexOf(activeElement);
464
465    // if the element does not exist in the list return an element
466    // depending on the direction and if cycle is allowed
467    if (index === -1) {
468      return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
469    }
470    index += shouldGetNext ? 1 : -1;
471    if (isCycleAllowed) {
472      index = (index + listLength) % listLength;
473    }
474    return list[Math.max(0, Math.min(index, listLength - 1))];
475  };
476
477  /**
478   * --------------------------------------------------------------------------
479   * Bootstrap dom/event-handler.js
480   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
481   * --------------------------------------------------------------------------
482   */
483
484
485  /**
486   * Constants
487   */
488
489  const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
490  const stripNameRegex = /\..*/;
491  const stripUidRegex = /::\d+$/;
492  const eventRegistry = {}; // Events storage
493  let uidEvent = 1;
494  const customEvents = {
495    mouseenter: 'mouseover',
496    mouseleave: 'mouseout'
497  };
498  const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
499
500  /**
501   * Private methods
502   */
503
504  function makeEventUid(element, uid) {
505    return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
506  }
507  function getElementEvents(element) {
508    const uid = makeEventUid(element);
509    element.uidEvent = uid;
510    eventRegistry[uid] = eventRegistry[uid] || {};
511    return eventRegistry[uid];
512  }
513  function bootstrapHandler(element, fn) {
514    return function handler(event) {
515      hydrateObj(event, {
516        delegateTarget: element
517      });
518      if (handler.oneOff) {
519        EventHandler.off(element, event.type, fn);
520      }
521      return fn.apply(element, [event]);
522    };
523  }
524  function bootstrapDelegationHandler(element, selector, fn) {
525    return function handler(event) {
526      const domElements = element.querySelectorAll(selector);
527      for (let {
528        target
529      } = event; target && target !== this; target = target.parentNode) {
530        for (const domElement of domElements) {
531          if (domElement !== target) {
532            continue;
533          }
534          hydrateObj(event, {
535            delegateTarget: target
536          });
537          if (handler.oneOff) {
538            EventHandler.off(element, event.type, selector, fn);
539          }
540          return fn.apply(target, [event]);
541        }
542      }
543    };
544  }
545  function findHandler(events, callable, delegationSelector = null) {
546    return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);
547  }
548  function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
549    const isDelegated = typeof handler === 'string';
550    // TODO: tooltip passes `false` instead of selector, so we need to check
551    const callable = isDelegated ? delegationFunction : handler || delegationFunction;
552    let typeEvent = getTypeEvent(originalTypeEvent);
553    if (!nativeEvents.has(typeEvent)) {
554      typeEvent = originalTypeEvent;
555    }
556    return [isDelegated, callable, typeEvent];
557  }
558  function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
559    if (typeof originalTypeEvent !== 'string' || !element) {
560      return;
561    }
562    let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
563
564    // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
565    // this prevents the handler from being dispatched the same way as mouseover or mouseout does
566    if (originalTypeEvent in customEvents) {
567      const wrapFunction = fn => {
568        return function (event) {
569          if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
570            return fn.call(this, event);
571          }
572        };
573      };
574      callable = wrapFunction(callable);
575    }
576    const events = getElementEvents(element);
577    const handlers = events[typeEvent] || (events[typeEvent] = {});
578    const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
579    if (previousFunction) {
580      previousFunction.oneOff = previousFunction.oneOff && oneOff;
581      return;
582    }
583    const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));
584    const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
585    fn.delegationSelector = isDelegated ? handler : null;
586    fn.callable = callable;
587    fn.oneOff = oneOff;
588    fn.uidEvent = uid;
589    handlers[uid] = fn;
590    element.addEventListener(typeEvent, fn, isDelegated);
591  }
592  function removeHandler(element, events, typeEvent, handler, delegationSelector) {
593    const fn = findHandler(events[typeEvent], handler, delegationSelector);
594    if (!fn) {
595      return;
596    }
597    element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
598    delete events[typeEvent][fn.uidEvent];
599  }
600  function removeNamespacedHandlers(element, events, typeEvent, namespace) {
601    const storeElementEvent = events[typeEvent] || {};
602    for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
603      if (handlerKey.includes(namespace)) {
604        removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
605      }
606    }
607  }
608  function getTypeEvent(event) {
609    // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
610    event = event.replace(stripNameRegex, '');
611    return customEvents[event] || event;
612  }
613  const EventHandler = {
614    on(element, event, handler, delegationFunction) {
615      addHandler(element, event, handler, delegationFunction, false);
616    },
617    one(element, event, handler, delegationFunction) {
618      addHandler(element, event, handler, delegationFunction, true);
619    },
620    off(element, originalTypeEvent, handler, delegationFunction) {
621      if (typeof originalTypeEvent !== 'string' || !element) {
622        return;
623      }
624      const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
625      const inNamespace = typeEvent !== originalTypeEvent;
626      const events = getElementEvents(element);
627      const storeElementEvent = events[typeEvent] || {};
628      const isNamespace = originalTypeEvent.startsWith('.');
629      if (typeof callable !== 'undefined') {
630        // Simplest case: handler is passed, remove that listener ONLY.
631        if (!Object.keys(storeElementEvent).length) {
632          return;
633        }
634        removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
635        return;
636      }
637      if (isNamespace) {
638        for (const elementEvent of Object.keys(events)) {
639          removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
640        }
641      }
642      for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
643        const handlerKey = keyHandlers.replace(stripUidRegex, '');
644        if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
645          removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
646        }
647      }
648    },
649    trigger(element, event, args) {
650      if (typeof event !== 'string' || !element) {
651        return null;
652      }
653      const $ = getjQuery();
654      const typeEvent = getTypeEvent(event);
655      const inNamespace = event !== typeEvent;
656      let jQueryEvent = null;
657      let bubbles = true;
658      let nativeDispatch = true;
659      let defaultPrevented = false;
660      if (inNamespace && $) {
661        jQueryEvent = $.Event(event, args);
662        $(element).trigger(jQueryEvent);
663        bubbles = !jQueryEvent.isPropagationStopped();
664        nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
665        defaultPrevented = jQueryEvent.isDefaultPrevented();
666      }
667      const evt = hydrateObj(new Event(event, {
668        bubbles,
669        cancelable: true
670      }), args);
671      if (defaultPrevented) {
672        evt.preventDefault();
673      }
674      if (nativeDispatch) {
675        element.dispatchEvent(evt);
676      }
677      if (evt.defaultPrevented && jQueryEvent) {
678        jQueryEvent.preventDefault();
679      }
680      return evt;
681    }
682  };
683  function hydrateObj(obj, meta = {}) {
684    for (const [key, value] of Object.entries(meta)) {
685      try {
686        obj[key] = value;
687      } catch (_unused) {
688        Object.defineProperty(obj, key, {
689          configurable: true,
690          get() {
691            return value;
692          }
693        });
694      }
695    }
696    return obj;
697  }
698
699  /**
700   * --------------------------------------------------------------------------
701   * Bootstrap dom/manipulator.js
702   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
703   * --------------------------------------------------------------------------
704   */
705
706  function normalizeData(value) {
707    if (value === 'true') {
708      return true;
709    }
710    if (value === 'false') {
711      return false;
712    }
713    if (value === Number(value).toString()) {
714      return Number(value);
715    }
716    if (value === '' || value === 'null') {
717      return null;
718    }
719    if (typeof value !== 'string') {
720      return value;
721    }
722    try {
723      return JSON.parse(decodeURIComponent(value));
724    } catch (_unused) {
725      return value;
726    }
727  }
728  function normalizeDataKey(key) {
729    return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);
730  }
731  const Manipulator = {
732    setDataAttribute(element, key, value) {
733      element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
734    },
735    removeDataAttribute(element, key) {
736      element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
737    },
738    getDataAttributes(element) {
739      if (!element) {
740        return {};
741      }
742      const attributes = {};
743      const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
744      for (const key of bsKeys) {
745        let pureKey = key.replace(/^bs/, '');
746        pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
747        attributes[pureKey] = normalizeData(element.dataset[key]);
748      }
749      return attributes;
750    },
751    getDataAttribute(element, key) {
752      return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
753    }
754  };
755
756  /**
757   * --------------------------------------------------------------------------
758   * Bootstrap util/config.js
759   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
760   * --------------------------------------------------------------------------
761   */
762
763
764  /**
765   * Class definition
766   */
767
768  class Config {
769    // Getters
770    static get Default() {
771      return {};
772    }
773    static get DefaultType() {
774      return {};
775    }
776    static get NAME() {
777      throw new Error('You have to implement the static method "NAME", for each component!');
778    }
779    _getConfig(config) {
780      config = this._mergeConfigObj(config);
781      config = this._configAfterMerge(config);
782      this._typeCheckConfig(config);
783      return config;
784    }
785    _configAfterMerge(config) {
786      return config;
787    }
788    _mergeConfigObj(config, element) {
789      const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse
790
791      return {
792        ...this.constructor.Default,
793        ...(typeof jsonConfig === 'object' ? jsonConfig : {}),
794        ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),
795        ...(typeof config === 'object' ? config : {})
796      };
797    }
798    _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
799      for (const [property, expectedTypes] of Object.entries(configTypes)) {
800        const value = config[property];
801        const valueType = isElement(value) ? 'element' : toType(value);
802        if (!new RegExp(expectedTypes).test(valueType)) {
803          throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
804        }
805      }
806    }
807  }
808
809  /**
810   * --------------------------------------------------------------------------
811   * Bootstrap base-component.js
812   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
813   * --------------------------------------------------------------------------
814   */
815
816
817  /**
818   * Constants
819   */
820
821  const VERSION = '5.3.2';
822
823  /**
824   * Class definition
825   */
826
827  class BaseComponent extends Config {
828    constructor(element, config) {
829      super();
830      element = getElement(element);
831      if (!element) {
832        return;
833      }
834      this._element = element;
835      this._config = this._getConfig(config);
836      Data.set(this._element, this.constructor.DATA_KEY, this);
837    }
838
839    // Public
840    dispose() {
841      Data.remove(this._element, this.constructor.DATA_KEY);
842      EventHandler.off(this._element, this.constructor.EVENT_KEY);
843      for (const propertyName of Object.getOwnPropertyNames(this)) {
844        this[propertyName] = null;
845      }
846    }
847    _queueCallback(callback, element, isAnimated = true) {
848      executeAfterTransition(callback, element, isAnimated);
849    }
850    _getConfig(config) {
851      config = this._mergeConfigObj(config, this._element);
852      config = this._configAfterMerge(config);
853      this._typeCheckConfig(config);
854      return config;
855    }
856
857    // Static
858    static getInstance(element) {
859      return Data.get(getElement(element), this.DATA_KEY);
860    }
861    static getOrCreateInstance(element, config = {}) {
862      return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);
863    }
864    static get VERSION() {
865      return VERSION;
866    }
867    static get DATA_KEY() {
868      return `bs.${this.NAME}`;
869    }
870    static get EVENT_KEY() {
871      return `.${this.DATA_KEY}`;
872    }
873    static eventName(name) {
874      return `${name}${this.EVENT_KEY}`;
875    }
876  }
877
878  /**
879   * --------------------------------------------------------------------------
880   * Bootstrap dom/selector-engine.js
881   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
882   * --------------------------------------------------------------------------
883   */
884
885  const getSelector = element => {
886    let selector = element.getAttribute('data-bs-target');
887    if (!selector || selector === '#') {
888      let hrefAttribute = element.getAttribute('href');
889
890      // The only valid content that could double as a selector are IDs or classes,
891      // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
892      // `document.querySelector` will rightfully complain it is invalid.
893      // See https://github.com/twbs/bootstrap/issues/32273
894      if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {
895        return null;
896      }
897
898      // Just in case some CMS puts out a full URL with the anchor appended
899      if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {
900        hrefAttribute = `#${hrefAttribute.split('#')[1]}`;
901      }
902      selector = hrefAttribute && hrefAttribute !== '#' ? parseSelector(hrefAttribute.trim()) : null;
903    }
904    return selector;
905  };
906  const SelectorEngine = {
907    find(selector, element = document.documentElement) {
908      return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
909    },
910    findOne(selector, element = document.documentElement) {
911      return Element.prototype.querySelector.call(element, selector);
912    },
913    children(element, selector) {
914      return [].concat(...element.children).filter(child => child.matches(selector));
915    },
916    parents(element, selector) {
917      const parents = [];
918      let ancestor = element.parentNode.closest(selector);
919      while (ancestor) {
920        parents.push(ancestor);
921        ancestor = ancestor.parentNode.closest(selector);
922      }
923      return parents;
924    },
925    prev(element, selector) {
926      let previous = element.previousElementSibling;
927      while (previous) {
928        if (previous.matches(selector)) {
929          return [previous];
930        }
931        previous = previous.previousElementSibling;
932      }
933      return [];
934    },
935    // TODO: this is now unused; remove later along with prev()
936    next(element, selector) {
937      let next = element.nextElementSibling;
938      while (next) {
939        if (next.matches(selector)) {
940          return [next];
941        }
942        next = next.nextElementSibling;
943      }
944      return [];
945    },
946    focusableChildren(element) {
947      const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(',');
948      return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));
949    },
950    getSelectorFromElement(element) {
951      const selector = getSelector(element);
952      if (selector) {
953        return SelectorEngine.findOne(selector) ? selector : null;
954      }
955      return null;
956    },
957    getElementFromSelector(element) {
958      const selector = getSelector(element);
959      return selector ? SelectorEngine.findOne(selector) : null;
960    },
961    getMultipleElementsFromSelector(element) {
962      const selector = getSelector(element);
963      return selector ? SelectorEngine.find(selector) : [];
964    }
965  };
966
967  /**
968   * --------------------------------------------------------------------------
969   * Bootstrap util/component-functions.js
970   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
971   * --------------------------------------------------------------------------
972   */
973
974  const enableDismissTrigger = (component, method = 'hide') => {
975    const clickEvent = `click.dismiss${component.EVENT_KEY}`;
976    const name = component.NAME;
977    EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
978      if (['A', 'AREA'].includes(this.tagName)) {
979        event.preventDefault();
980      }
981      if (isDisabled(this)) {
982        return;
983      }
984      const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
985      const instance = component.getOrCreateInstance(target);
986
987      // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
988      instance[method]();
989    });
990  };
991
992  /**
993   * --------------------------------------------------------------------------
994   * Bootstrap alert.js
995   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
996   * --------------------------------------------------------------------------
997   */
998
999
1000  /**
1001   * Constants
1002   */
1003
1004  const NAME$
vendor: 24,275 bytes, lines 1004-1777
1004f = 'alert';
1005  const DATA_KEY$a = 'bs.alert';
1006  const EVENT_KEY$b = `.${DATA_KEY$a}`;
1007  const EVENT_CLOSE = `close${EVENT_KEY$b}`;
1008  const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
1009  const CLASS_NAME_FADE$5 = 'fade';
1010  const CLASS_NAME_SHOW$8 = 'show';
1011
1012  /**
1013   * Class definition
1014   */
1015
1016  class Alert extends BaseComponent {
1017    // Getters
1018    static get NAME() {
1019      return NAME$f;
1020    }
1021
1022    // Public
1023    close() {
1024      const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
1025      if (closeEvent.defaultPrevented) {
1026        return;
1027      }
1028      this._element.classList.remove(CLASS_NAME_SHOW$8);
1029      const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
1030      this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
1031    }
1032
1033    // Private
1034    _destroyElement() {
1035      this._element.remove();
1036      EventHandler.trigger(this._element, EVENT_CLOSED);
1037      this.dispose();
1038    }
1039
1040    // Static
1041    static jQueryInterface(config) {
1042      return this.each(function () {
1043        const data = Alert.getOrCreateInstance(this);
1044        if (typeof config !== 'string') {
1045          return;
1046        }
1047        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
1048          throw new TypeError(`No method named "${config}"`);
1049        }
1050        data[config](this);
1051      });
1052    }
1053  }
1054
1055  /**
1056   * Data API implementation
1057   */
1058
1059  enableDismissTrigger(Alert, 'close');
1060
1061  /**
1062   * jQuery
1063   */
1064
1065  defineJQueryPlugin(Alert);
1066
1067  /**
1068   * --------------------------------------------------------------------------
1069   * Bootstrap button.js
1070   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1071   * --------------------------------------------------------------------------
1072   */
1073
1074
1075  /**
1076   * Constants
1077   */
1078
1079  const NAME$e = 'button';
1080  const DATA_KEY$9 = 'bs.button';
1081  const EVENT_KEY$a = `.${DATA_KEY$9}`;
1082  const DATA_API_KEY$6 = '.data-api';
1083  const CLASS_NAME_ACTIVE$3 = 'active';
1084  const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
1085  const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
1086
1087  /**
1088   * Class definition
1089   */
1090
1091  class Button extends BaseComponent {
1092    // Getters
1093    static get NAME() {
1094      return NAME$e;
1095    }
1096
1097    // Public
1098    toggle() {
1099      // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
1100      this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
1101    }
1102
1103    // Static
1104    static jQueryInterface(config) {
1105      return this.each(function () {
1106        const data = Button.getOrCreateInstance(this);
1107        if (config === 'toggle') {
1108          data[config]();
1109        }
1110      });
1111    }
1112  }
1113
1114  /**
1115   * Data API implementation
1116   */
1117
1118  EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {
1119    event.preventDefault();
1120    const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
1121    const data = Button.getOrCreateInstance(button);
1122    data.toggle();
1123  });
1124
1125  /**
1126   * jQuery
1127   */
1128
1129  defineJQueryPlugin(Button);
1130
1131  /**
1132   * --------------------------------------------------------------------------
1133   * Bootstrap util/swipe.js
1134   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1135   * --------------------------------------------------------------------------
1136   */
1137
1138
1139  /**
1140   * Constants
1141   */
1142
1143  const NAME$d = 'swipe';
1144  const EVENT_KEY$9 = '.bs.swipe';
1145  const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
1146  const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
1147  const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
1148  const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
1149  const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
1150  const POINTER_TYPE_TOUCH = 'touch';
1151  const POINTER_TYPE_PEN = 'pen';
1152  const CLASS_NAME_POINTER_EVENT = 'pointer-event';
1153  const SWIPE_THRESHOLD = 40;
1154  const Default$c = {
1155    endCallback: null,
1156    leftCallback: null,
1157    rightCallback: null
1158  };
1159  const DefaultType$c = {
1160    endCallback: '(function|null)',
1161    leftCallback: '(function|null)',
1162    rightCallback: '(function|null)'
1163  };
1164
1165  /**
1166   * Class definition
1167   */
1168
1169  class Swipe extends Config {
1170    constructor(element, config) {
1171      super();
1172      this._element = element;
1173      if (!element || !Swipe.isSupported()) {
1174        return;
1175      }
1176      this._config = this._getConfig(config);
1177      this._deltaX = 0;
1178      this._supportPointerEvents = Boolean(window.PointerEvent);
1179      this._initEvents();
1180    }
1181
1182    // Getters
1183    static get Default() {
1184      return Default$c;
1185    }
1186    static get DefaultType() {
1187      return DefaultType$c;
1188    }
1189    static get NAME() {
1190      return NAME$d;
1191    }
1192
1193    // Public
1194    dispose() {
1195      EventHandler.off(this._element, EVENT_KEY$9);
1196    }
1197
1198    // Private
1199    _start(event) {
1200      if (!this._supportPointerEvents) {
1201        this._deltaX = event.touches[0].clientX;
1202        return;
1203      }
1204      if (this._eventIsPointerPenTouch(event)) {
1205        this._deltaX = event.clientX;
1206      }
1207    }
1208    _end(event) {
1209      if (this._eventIsPointerPenTouch(event)) {
1210        this._deltaX = event.clientX - this._deltaX;
1211      }
1212      this._handleSwipe();
1213      execute(this._config.endCallback);
1214    }
1215    _move(event) {
1216      this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
1217    }
1218    _handleSwipe() {
1219      const absDeltaX = Math.abs(this._deltaX);
1220      if (absDeltaX <= SWIPE_THRESHOLD) {
1221        return;
1222      }
1223      const direction = absDeltaX / this._deltaX;
1224      this._deltaX = 0;
1225      if (!direction) {
1226        return;
1227      }
1228      execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
1229    }
1230    _initEvents() {
1231      if (this._supportPointerEvents) {
1232        EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
1233        EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
1234        this._element.classList.add(CLASS_NAME_POINTER_EVENT);
1235      } else {
1236        EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
1237        EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
1238        EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
1239      }
1240    }
1241    _eventIsPointerPenTouch(event) {
1242      return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
1243    }
1244
1245    // Static
1246    static isSupported() {
1247      return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
1248    }
1249  }
1250
1251  /**
1252   * --------------------------------------------------------------------------
1253   * Bootstrap carousel.js
1254   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1255   * --------------------------------------------------------------------------
1256   */
1257
1258
1259  /**
1260   * Constants
1261   */
1262
1263  const NAME$c = 'carousel';
1264  const DATA_KEY$8 = 'bs.carousel';
1265  const EVENT_KEY$8 = `.${DATA_KEY$8}`;
1266  const DATA_API_KEY$5 = '.data-api';
1267  const ARROW_LEFT_KEY$1 = 'ArrowLeft';
1268  const ARROW_RIGHT_KEY$1 = 'ArrowRight';
1269  const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
1270
1271  const ORDER_NEXT = 'next';
1272  const ORDER_PREV = 'prev';
1273  const DIRECTION_LEFT = 'left';
1274  const DIRECTION_RIGHT = 'right';
1275  const EVENT_SLIDE = `slide${EVENT_KEY$8}`;
1276  const EVENT_SLID = `slid${EVENT_KEY$8}`;
1277  const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
1278  const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
1279  const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
1280  const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
1281  const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
1282  const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
1283  const CLASS_NAME_CAROUSEL = 'carousel';
1284  const CLASS_NAME_ACTIVE$2 = 'active';
1285  const CLASS_NAME_SLIDE = 'slide';
1286  const CLASS_NAME_END = 'carousel-item-end';
1287  const CLASS_NAME_START = 'carousel-item-start';
1288  const CLASS_NAME_NEXT = 'carousel-item-next';
1289  const CLASS_NAME_PREV = 'carousel-item-prev';
1290  const SELECTOR_ACTIVE = '.active';
1291  const SELECTOR_ITEM = '.carousel-item';
1292  const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
1293  const SELECTOR_ITEM_IMG = '.carousel-item img';
1294  const SELECTOR_INDICATORS = '.carousel-indicators';
1295  const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
1296  const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
1297  const KEY_TO_DIRECTION = {
1298    [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
1299    [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
1300  };
1301  const Default$b = {
1302    interval: 5000,
1303    keyboard: true,
1304    pause: 'hover',
1305    ride: false,
1306    touch: true,
1307    wrap: true
1308  };
1309  const DefaultType$b = {
1310    interval: '(number|boolean)',
1311    // TODO:v6 remove boolean support
1312    keyboard: 'boolean',
1313    pause: '(string|boolean)',
1314    ride: '(boolean|string)',
1315    touch: 'boolean',
1316    wrap: 'boolean'
1317  };
1318
1319  /**
1320   * Class definition
1321   */
1322
1323  class Carousel extends BaseComponent {
1324    constructor(element, config) {
1325      super(element, config);
1326      this._interval = null;
1327      this._activeElement = null;
1328      this._isSliding = false;
1329      this.touchTimeout = null;
1330      this._swipeHelper = null;
1331      this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
1332      this._addEventListeners();
1333      if (this._config.ride === CLASS_NAME_CAROUSEL) {
1334        this.cycle();
1335      }
1336    }
1337
1338    // Getters
1339    static get Default() {
1340      return Default$b;
1341    }
1342    static get DefaultType() {
1343      return DefaultType$b;
1344    }
1345    static get NAME() {
1346      return NAME$c;
1347    }
1348
1349    // Public
1350    next() {
1351      this._slide(ORDER_NEXT);
1352    }
1353    nextWhenVisible() {
1354      // FIXME TODO use `document.visibilityState`
1355      // Don't call next when the page isn't visible
1356      // or the carousel or its parent isn't visible
1357      if (!document.hidden && isVisible(this._element)) {
1358        this.next();
1359      }
1360    }
1361    prev() {
1362      this._slide(ORDER_PREV);
1363    }
1364    pause() {
1365      if (this._isSliding) {
1366        triggerTransitionEnd(this._element);
1367      }
1368      this._clearInterval();
1369    }
1370    cycle() {
1371      this._clearInterval();
1372      this._updateInterval();
1373      this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
1374    }
1375    _maybeEnableCycle() {
1376      if (!this._config.ride) {
1377        return;
1378      }
1379      if (this._isSliding) {
1380        EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
1381        return;
1382      }
1383      this.cycle();
1384    }
1385    to(index) {
1386      const items = this._getItems();
1387      if (index > items.length - 1 || index < 0) {
1388        return;
1389      }
1390      if (this._isSliding) {
1391        EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
1392        return;
1393      }
1394      const activeIndex = this._getItemIndex(this._getActive());
1395      if (activeIndex === index) {
1396        return;
1397      }
1398      const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
1399      this._slide(order, items[index]);
1400    }
1401    dispose() {
1402      if (this._swipeHelper) {
1403        this._swipeHelper.dispose();
1404      }
1405      super.dispose();
1406    }
1407
1408    // Private
1409    _configAfterMerge(config) {
1410      config.defaultInterval = config.interval;
1411      return config;
1412    }
1413    _addEventListeners() {
1414      if (this._config.keyboard) {
1415        EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));
1416      }
1417      if (this._config.pause === 'hover') {
1418        EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
1419        EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
1420      }
1421      if (this._config.touch && Swipe.isSupported()) {
1422        this._addTouchEventListeners();
1423      }
1424    }
1425    _addTouchEventListeners() {
1426      for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
1427        EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());
1428      }
1429      const endCallBack = () => {
1430        if (this._config.pause !== 'hover') {
1431          return;
1432        }
1433
1434        // If it's a touch-enabled device, mouseenter/leave are fired as
1435        // part of the mouse compatibility events on first tap - the carousel
1436        // would stop cycling until user tapped out of it;
1437        // here, we listen for touchend, explicitly pause the carousel
1438        // (as if it's the second time we tap on it, mouseenter compat event
1439        // is NOT fired) and after a timeout (to allow for mouse compatibility
1440        // events to fire) we explicitly restart cycling
1441
1442        this.pause();
1443        if (this.touchTimeout) {
1444          clearTimeout(this.touchTimeout);
1445        }
1446        this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
1447      };
1448      const swipeConfig = {
1449        leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
1450        rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
1451        endCallback: endCallBack
1452      };
1453      this._swipeHelper = new Swipe(this._element, swipeConfig);
1454    }
1455    _keydown(event) {
1456      if (/input|textarea/i.test(event.target.tagName)) {
1457        return;
1458      }
1459      const direction = KEY_TO_DIRECTION[event.key];
1460      if (direction) {
1461        event.preventDefault();
1462        this._slide(this._directionToOrder(direction));
1463      }
1464    }
1465    _getItemIndex(element) {
1466      return this._getItems().indexOf(element);
1467    }
1468    _setActiveIndicatorElement(index) {
1469      if (!this._indicatorsElement) {
1470        return;
1471      }
1472      const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
1473      activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
1474      activeIndicator.removeAttribute('aria-current');
1475      const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
1476      if (newActiveIndicator) {
1477        newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
1478        newActiveIndicator.setAttribute('aria-current', 'true');
1479      }
1480    }
1481    _updateInterval() {
1482      const element = this._activeElement || this._getActive();
1483      if (!element) {
1484        return;
1485      }
1486      const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
1487      this._config.interval = elementInterval || this._config.defaultInterval;
1488    }
1489    _slide(order, element = null) {
1490      if (this._isSliding) {
1491        return;
1492      }
1493      const activeElement = this._getActive();
1494      const isNext = order === ORDER_NEXT;
1495      const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
1496      if (nextElement === activeElement) {
1497        return;
1498      }
1499      const nextElementIndex = this._getItemIndex(nextElement);
1500      const triggerEvent = eventName => {
1501        return EventHandler.trigger(this._element, eventName, {
1502          relatedTarget: nextElement,
1503          direction: this._orderToDirection(order),
1504          from: this._getItemIndex(activeElement),
1505          to: nextElementIndex
1506        });
1507      };
1508      const slideEvent = triggerEvent(EVENT_SLIDE);
1509      if (slideEvent.defaultPrevented) {
1510        return;
1511      }
1512      if (!activeElement || !nextElement) {
1513        // Some weirdness is happening, so we bail
1514        // TODO: change tests that use empty divs to avoid this check
1515        return;
1516      }
1517      const isCycling = Boolean(this._interval);
1518      this.pause();
1519      this._isSliding = true;
1520      this._setActiveIndicatorElement(nextElementIndex);
1521      this._activeElement = nextElement;
1522      const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
1523      const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
1524      nextElement.classList.add(orderClassName);
1525      reflow(nextElement);
1526      activeElement.classList.add(directionalClassName);
1527      nextElement.classList.add(directionalClassName);
1528      const completeCallBack = () => {
1529        nextElement.classList.remove(directionalClassName, orderClassName);
1530        nextElement.classList.add(CLASS_NAME_ACTIVE$2);
1531        activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
1532        this._isSliding = false;
1533        triggerEvent(EVENT_SLID);
1534      };
1535      this._queueCallback(completeCallBack, activeElement, this._isAnimated());
1536      if (isCycling) {
1537        this.cycle();
1538      }
1539    }
1540    _isAnimated() {
1541      return this._element.classList.contains(CLASS_NAME_SLIDE);
1542    }
1543    _getActive() {
1544      return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
1545    }
1546    _getItems() {
1547      return SelectorEngine.find(SELECTOR_ITEM, this._element);
1548    }
1549    _clearInterval() {
1550      if (this._interval) {
1551        clearInterval(this._interval);
1552        this._interval = null;
1553      }
1554    }
1555    _directionToOrder(direction) {
1556      if (isRTL()) {
1557        return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
1558      }
1559      return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
1560    }
1561    _orderToDirection(order) {
1562      if (isRTL()) {
1563        return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
1564      }
1565      return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
1566    }
1567
1568    // Static
1569    static jQueryInterface(config) {
1570      return this.each(function () {
1571        const data = Carousel.getOrCreateInstance(this, config);
1572        if (typeof config === 'number') {
1573          data.to(config);
1574          return;
1575        }
1576        if (typeof config === 'string') {
1577          if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
1578            throw new TypeError(`No method named "${config}"`);
1579          }
1580          data[config]();
1581        }
1582      });
1583    }
1584  }
1585
1586  /**
1587   * Data API implementation
1588   */
1589
1590  EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {
1591    const target = SelectorEngine.getElementFromSelector(this);
1592    if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
1593      return;
1594    }
1595    event.preventDefault();
1596    const carousel = Carousel.getOrCreateInstance(target);
1597    const slideIndex = this.getAttribute('data-bs-slide-to');
1598    if (slideIndex) {
1599      carousel.to(slideIndex);
1600      carousel._maybeEnableCycle();
1601      return;
1602    }
1603    if (Manipulator.getDataAttribute(this, 'slide') === 'next') {
1604      carousel.next();
1605      carousel._maybeEnableCycle();
1606      return;
1607    }
1608    carousel.prev();
1609    carousel._maybeEnableCycle();
1610  });
1611  EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
1612    const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
1613    for (const carousel of carousels) {
1614      Carousel.getOrCreateInstance(carousel);
1615    }
1616  });
1617
1618  /**
1619   * jQuery
1620   */
1621
1622  defineJQueryPlugin(Carousel);
1623
1624  /**
1625   * --------------------------------------------------------------------------
1626   * Bootstrap collapse.js
1627   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1628   * --------------------------------------------------------------------------
1629   */
1630
1631
1632  /**
1633   * Constants
1634   */
1635
1636  const NAME$b = 'collapse';
1637  const DATA_KEY$7 = 'bs.collapse';
1638  const EVENT_KEY$7 = `.${DATA_KEY$7}`;
1639  const DATA_API_KEY$4 = '.data-api';
1640  const EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
1641  const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
1642  const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
1643  const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
1644  const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
1645  const CLASS_NAME_SHOW$7 = 'show';
1646  const CLASS_NAME_COLLAPSE = 'collapse';
1647  const CLASS_NAME_COLLAPSING = 'collapsing';
1648  const CLASS_NAME_COLLAPSED = 'collapsed';
1649  const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
1650  const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';
1651  const WIDTH = 'width';
1652  const HEIGHT = 'height';
1653  const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
1654  const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
1655  const Default$a = {
1656    parent: null,
1657    toggle: true
1658  };
1659  const DefaultType$a = {
1660    parent: '(null|element)',
1661    toggle: 'boolean'
1662  };
1663
1664  /**
1665   * Class definition
1666   */
1667
1668  class Collapse extends BaseComponent {
1669    constructor(element, config) {
1670      super(element, config);
1671      this._isTransitioning = false;
1672      this._triggerArray = [];
1673      const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
1674      for (const elem of toggleList) {
1675        const selector = SelectorEngine.getSelectorFromElement(elem);
1676        const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);
1677        if (selector !== null && filterElement.length) {
1678          this._triggerArray.push(elem);
1679        }
1680      }
1681      this._initializeChildren();
1682      if (!this._config.parent) {
1683        this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
1684      }
1685      if (this._config.toggle) {
1686        this.toggle();
1687      }
1688    }
1689
1690    // Getters
1691    static get Default() {
1692      return Default$a;
1693    }
1694    static get DefaultType() {
1695      return DefaultType$a;
1696    }
1697    static get NAME() {
1698      return NAME$b;
1699    }
1700
1701    // Public
1702    toggle() {
1703      if (this._isShown()) {
1704        this.hide();
1705      } else {
1706        this.show();
1707      }
1708    }
1709    show() {
1710      if (this._isTransitioning || this._isShown()) {
1711        return;
1712      }
1713      let activeChildren = [];
1714
1715      // find active children
1716      if (this._config.parent) {
1717        activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {
1718          toggle: false
1719        }));
1720      }
1721      if (activeChildren.length && activeChildren[0]._isTransitioning) {
1722        return;
1723      }
1724      const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
1725      if (startEvent.defaultPrevented) {
1726        return;
1727      }
1728      for (const activeInstance of activeChildren) {
1729        activeInstance.hide();
1730      }
1731      const dimension = this._getDimension();
1732      this._element.classList.remove(CLASS_NAME_COLLAPSE);
1733      this._element.classList.add(CLASS_NAME_COLLAPSING);
1734      this._element.style[dimension] = 0;
1735      this._addAriaAndCollapsedClass(this._triggerArray, true);
1736      this._isTransitioning = true;
1737      const complete = () => {
1738        this._isTransitioning = false;
1739        this._element.classList.remove(CLASS_NAME_COLLAPSING);
1740        this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
1741        this._element.style[dimension] = '';
1742        EventHandler.trigger(this._element, EVENT_SHOWN$6);
1743      };
1744      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1745      const scrollSize = `scroll${capitalizedDimension}`;
1746      this._queueCallback(complete, this._element, true);
1747      this._element.style[dimension] = `${this._element[scrollSize]}px`;
1748    }
1749    hide() {
1750      if (this._isTransitioning || !this._isShown()) {
1751        return;
1752      }
1753      const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
1754      if (startEvent.defaultPrevented) {
1755        return;
1756      }
1757      const dimension = this._getDimension();
1758      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
1759      reflow(this._element);
1760      this._element.classList.add(CLASS_NAME_COLLAPSING);
1761      this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
1762      for (const trigger of this._triggerArray) {
1763        const element = SelectorEngine.getElementFromSelector(trigger);
1764        if (element && !this._isShown(element)) {
1765          this._addAriaAndCollapsedClass([trigger], false);
1766        }
1767      }
1768      this._isTransitioning = true;
1769      const complete = () => {
1770        this._isTransitioning = false;
1771        this._element.classList.remove(CLASS_NAME_COLLAPSING);
1772        this._element.classList.add(CLASS_NAME_COLLAPSE);
1773        EventHandler.trigger(this._element, EVENT_HIDDEN$6);
1774      };
1775      this._element.style[dimension] = '';
1776      this._queueCallback(complete, this._element, true);
1777    }
vendor: 8,876 bytes, lines 1778-2030
1778    _isShown(element = this._element) {
1779      return element.classList.contains(CLASS_NAME_SHOW$7);
1780    }
1781
1782    // Private
1783    _configAfterMerge(config) {
1784      config.toggle = Boolean(config.toggle); // Coerce string values
1785      config.parent = getElement(config.parent);
1786      return config;
1787    }
1788    _getDimension() {
1789      return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
1790    }
1791    _initializeChildren() {
1792      if (!this._config.parent) {
1793        return;
1794      }
1795      const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
1796      for (const element of children) {
1797        const selected = SelectorEngine.getElementFromSelector(element);
1798        if (selected) {
1799          this._addAriaAndCollapsedClass([element], this._isShown(selected));
1800        }
1801      }
1802    }
1803    _getFirstLevelChildren(selector) {
1804      const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
1805      // remove children if greater depth
1806      return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));
1807    }
1808    _addAriaAndCollapsedClass(triggerArray, isOpen) {
1809      if (!triggerArray.length) {
1810        return;
1811      }
1812      for (const element of triggerArray) {
1813        element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
1814        element.setAttribute('aria-expanded', isOpen);
1815      }
1816    }
1817
1818    // Static
1819    static jQueryInterface(config) {
1820      const _config = {};
1821      if (typeof config === 'string' && /show|hide/.test(config)) {
1822        _config.toggle = false;
1823      }
1824      return this.each(function () {
1825        const data = Collapse.getOrCreateInstance(this, _config);
1826        if (typeof config === 'string') {
1827          if (typeof data[config] === 'undefined') {
1828            throw new TypeError(`No method named "${config}"`);
1829          }
1830          data[config]();
1831        }
1832      });
1833    }
1834  }
1835
1836  /**
1837   * Data API implementation
1838   */
1839
1840  EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {
1841    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1842    if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
1843      event.preventDefault();
1844    }
1845    for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
1846      Collapse.getOrCreateInstance(element, {
1847        toggle: false
1848      }).toggle();
1849    }
1850  });
1851
1852  /**
1853   * jQuery
1854   */
1855
1856  defineJQueryPlugin(Collapse);
1857
1858  /**
1859   * --------------------------------------------------------------------------
1860   * Bootstrap dropdown.js
1861   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1862   * --------------------------------------------------------------------------
1863   */
1864
1865
1866  /**
1867   * Constants
1868   */
1869
1870  const NAME$a = 'dropdown';
1871  const DATA_KEY$6 = 'bs.dropdown';
1872  const EVENT_KEY$6 = `.${DATA_KEY$6}`;
1873  const DATA_API_KEY$3 = '.data-api';
1874  const ESCAPE_KEY$2 = 'Escape';
1875  const TAB_KEY$1 = 'Tab';
1876  const ARROW_UP_KEY$1 = 'ArrowUp';
1877  const ARROW_DOWN_KEY$1 = 'ArrowDown';
1878  const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
1879
1880  const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
1881  const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
1882  const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
1883  const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
1884  const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
1885  const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
1886  const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
1887  const CLASS_NAME_SHOW$6 = 'show';
1888  const CLASS_NAME_DROPUP = 'dropup';
1889  const CLASS_NAME_DROPEND = 'dropend';
1890  const CLASS_NAME_DROPSTART = 'dropstart';
1891  const CLASS_NAME_DROPUP_CENTER = 'dropup-center';
1892  const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';
1893  const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
1894  const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
1895  const SELECTOR_MENU = '.dropdown-menu';
1896  const SELECTOR_NAVBAR = '.navbar';
1897  const SELECTOR_NAVBAR_NAV = '.navbar-nav';
1898  const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
1899  const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';
1900  const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';
1901  const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';
1902  const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';
1903  const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';
1904  const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';
1905  const PLACEMENT_TOPCENTER = 'top';
1906  const PLACEMENT_BOTTOMCENTER = 'bottom';
1907  const Default$9 = {
1908    autoClose: true,
1909    boundary: 'clippingParents',
1910    display: 'dynamic',
1911    offset: [0, 2],
1912    popperConfig: null,
1913    reference: 'toggle'
1914  };
1915  const DefaultType$9 = {
1916    autoClose: '(boolean|string)',
1917    boundary: '(string|element)',
1918    display: 'string',
1919    offset: '(array|string|function)',
1920    popperConfig: '(null|object|function)',
1921    reference: '(string|element|object)'
1922  };
1923
1924  /**
1925   * Class definition
1926   */
1927
1928  class Dropdown extends BaseComponent {
1929    constructor(element, config) {
1930      super(element, config);
1931      this._popper = null;
1932      this._parent = this._element.parentNode; // dropdown wrapper
1933      // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
1934      this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
1935      this._inNavbar = this._detectNavbar();
1936    }
1937
1938    // Getters
1939    static get Default() {
1940      return Default$9;
1941    }
1942    static get DefaultType() {
1943      return DefaultType$9;
1944    }
1945    static get NAME() {
1946      return NAME$a;
1947    }
1948
1949    // Public
1950    toggle() {
1951      return this._isShown() ? this.hide() : this.show();
1952    }
1953    show() {
1954      if (isDisabled(this._element) || this._isShown()) {
1955        return;
1956      }
1957      const relatedTarget = {
1958        relatedTarget: this._element
1959      };
1960      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
1961      if (showEvent.defaultPrevented) {
1962        return;
1963      }
1964      this._createPopper();
1965
1966      // If this is a touch-enabled device we add extra
1967      // empty mouseover listeners to the body's immediate children;
1968      // only needed because of broken event delegation on iOS
1969      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
1970      if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
1971        for (const element of [].concat(...document.body.children)) {
1972          EventHandler.on(element, 'mouseover', noop);
1973        }
1974      }
1975      this._element.focus();
1976      this._element.setAttribute('aria-expanded', true);
1977      this._menu.classList.add(CLASS_NAME_SHOW$6);
1978      this._element.classList.add(CLASS_NAME_SHOW$6);
1979      EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
1980    }
1981    hide() {
1982      if (isDisabled(this._element) || !this._isShown()) {
1983        return;
1984      }
1985      const relatedTarget = {
1986        relatedTarget: this._element
1987      };
1988      this._completeHide(relatedTarget);
1989    }
1990    dispose() {
1991      if (this._popper) {
1992        this._popper.destroy();
1993      }
1994      super.dispose();
1995    }
1996    update() {
1997      this._inNavbar = this._detectNavbar();
1998      if (this._popper) {
1999        this._popper.update();
2000      }
2001    }
2002
2003    // Private
2004    _completeHide(relatedTarget) {
2005      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
2006      if (hideEvent.defaultPrevented) {
2007        return;
2008      }
2009
2010      // If this is a touch-enabled device we remove the extra
2011      // empty mouseover listeners we added for iOS support
2012      if ('ontouchstart' in document.documentElement) {
2013        for (const element of [].concat(...document.body.children)) {
2014          EventHandler.off(element, 'mouseover', noop);
2015        }
2016      }
2017      if (this._popper) {
2018        this._popper.destroy();
2019      }
2020      this._menu.classList.remove(CLASS_NAME_SHOW$6);
2021      this._element.classList.remove(CLASS_NAME_SHOW$6);
2022      this._element.setAttribute('aria-expanded', 'false');
2023      Manipulator.removeDataAttribute(this._menu, 'popper');
2024      EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
2025    }
2026    _getConfig(config) {
2027      config = super._getConfig(config);
2028      if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
2029        // Popper virtual elements require a getBoundingClientRect method
2030        throw new TypeError(`${NAME$a
vendor: 5,485 bytes, lines 2030-2177
2030.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
2031      }
2032      return config;
2033    }
2034    _createPopper() {
2035      if (typeof Popper__namespace === 'undefined') {
2036        throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
2037      }
2038      let referenceElement = this._element;
2039      if (this._config.reference === 'parent') {
2040        referenceElement = this._parent;
2041      } else if (isElement(this._config.reference)) {
2042        referenceElement = getElement(this._config.reference);
2043      } else if (typeof this._config.reference === 'object') {
2044        referenceElement = this._config.reference;
2045      }
2046      const popperConfig = this._getPopperConfig();
2047      this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);
2048    }
2049    _isShown() {
2050      return this._menu.classList.contains(CLASS_NAME_SHOW$6);
2051    }
2052    _getPlacement() {
2053      const parentDropdown = this._parent;
2054      if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
2055        return PLACEMENT_RIGHT;
2056      }
2057      if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
2058        return PLACEMENT_LEFT;
2059      }
2060      if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
2061        return PLACEMENT_TOPCENTER;
2062      }
2063      if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
2064        return PLACEMENT_BOTTOMCENTER;
2065      }
2066
2067      // We need to trim the value because custom properties can also include spaces
2068      const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
2069      if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
2070        return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
2071      }
2072      return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
2073    }
2074    _detectNavbar() {
2075      return this._element.closest(SELECTOR_NAVBAR) !== null;
2076    }
2077    _getOffset() {
2078      const {
2079        offset
2080      } = this._config;
2081      if (typeof offset === 'string') {
2082        return offset.split(',').map(value => Number.parseInt(value, 10));
2083      }
2084      if (typeof offset === 'function') {
2085        return popperData => offset(popperData, this._element);
2086      }
2087      return offset;
2088    }
2089    _getPopperConfig() {
2090      const defaultBsPopperConfig = {
2091        placement: this._getPlacement(),
2092        modifiers: [{
2093          name: 'preventOverflow',
2094          options: {
2095            boundary: this._config.boundary
2096          }
2097        }, {
2098          name: 'offset',
2099          options: {
2100            offset: this._getOffset()
2101          }
2102        }]
2103      };
2104
2105      // Disable Popper if we have a static display or Dropdown is in Navbar
2106      if (this._inNavbar || this._config.display === 'static') {
2107        Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove
2108        defaultBsPopperConfig.modifiers = [{
2109          name: 'applyStyles',
2110          enabled: false
2111        }];
2112      }
2113      return {
2114        ...defaultBsPopperConfig,
2115        ...execute(this._config.popperConfig, [defaultBsPopperConfig])
2116      };
2117    }
2118    _selectMenuItem({
2119      key,
2120      target
2121    }) {
2122      const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));
2123      if (!items.length) {
2124        return;
2125      }
2126
2127      // if target isn't included in items (e.g. when expanding the dropdown)
2128      // allow cycling to get the last item in case key equals ARROW_UP_KEY
2129      getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
2130    }
2131
2132    // Static
2133    static jQueryInterface(config) {
2134      return this.each(function () {
2135        const data = Dropdown.getOrCreateInstance(this, config);
2136        if (typeof config !== 'string') {
2137          return;
2138        }
2139        if (typeof data[config] === 'undefined') {
2140          throw new TypeError(`No method named "${config}"`);
2141        }
2142        data[config]();
2143      });
2144    }
2145    static clearMenus(event) {
2146      if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {
2147        return;
2148      }
2149      const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
2150      for (const toggle of openToggles) {
2151        const context = Dropdown.getInstance(toggle);
2152        if (!context || context._config.autoClose === false) {
2153          continue;
2154        }
2155        const composedPath = event.composedPath();
2156        const isMenuTarget = composedPath.includes(context._menu);
2157        if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {
2158          continue;
2159        }
2160
2161        // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
2162        if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
2163          continue;
2164        }
2165        const relatedTarget = {
2166          relatedTarget: context._element
2167        };
2168        if (event.type === 'click') {
2169          relatedTarget.clickEvent = event;
2170        }
2171        context._completeHide(relatedTarget);
2172      }
2173    }
2174    static dataApiKeydownHandler(event) {
2175      // If not an UP | DOWN | ESCAPE key => not a dropdown command
2176      // If input/textarea && if key is other than ESCAPE => not a dropdown command
2177
vendor: 2,561 bytes, lines 2178-2249
2178      const isInput = /input|textarea/i.test(event.target.tagName);
2179      const isEscapeEvent = event.key === ESCAPE_KEY$2;
2180      const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
2181      if (!isUpOrDownEvent && !isEscapeEvent) {
2182        return;
2183      }
2184      if (isInput && !isEscapeEvent) {
2185        return;
2186      }
2187      event.preventDefault();
2188
2189      // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
2190      const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
2191      const instance = Dropdown.getOrCreateInstance(getToggleButton);
2192      if (isUpOrDownEvent) {
2193        event.stopPropagation();
2194        instance.show();
2195        instance._selectMenuItem(event);
2196        return;
2197      }
2198      if (instance._isShown()) {
2199        // else is escape and we check if it is shown
2200        event.stopPropagation();
2201        instance.hide();
2202        getToggleButton.focus();
2203      }
2204    }
2205  }
2206
2207  /**
2208   * Data API implementation
2209   */
2210
2211  EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
2212  EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
2213  EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
2214  EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
2215  EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {
2216    event.preventDefault();
2217    Dropdown.getOrCreateInstance(this).toggle();
2218  });
2219
2220  /**
2221   * jQuery
2222   */
2223
2224  defineJQueryPlugin(Dropdown);
2225
2226  /**
2227   * --------------------------------------------------------------------------
2228   * Bootstrap util/backdrop.js
2229   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
2230   * --------------------------------------------------------------------------
2231   */
2232
2233
2234  /**
2235   * Constants
2236   */
2237
2238  const NAME$9 = 'backdrop';
2239  const CLASS_NAME_FADE$4 = 'fade';
2240  const CLASS_NAME_SHOW$5 = 'show';
2241  const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
2242  const Default$8 = {
2243    className: 'modal-backdrop',
2244    clickCallback: null,
2245    isAnimated: false,
2246    isVisible: true,
2247    // if false, we use the backdrop helper without adding any element to the dom
2248    rootElement: 'body' // give the choice to place backdrop under different elements
2249  };
vendor: 3,192 bytes, lines 2250-2374
2250
2251  const DefaultType$8 = {
2252    className: 'string',
2253    clickCallback: '(function|null)',
2254    isAnimated: 'boolean',
2255    isVisible: 'boolean',
2256    rootElement: '(element|string)'
2257  };
2258
2259  /**
2260   * Class definition
2261   */
2262
2263  class Backdrop extends Config {
2264    constructor(config) {
2265      super();
2266      this._config = this._getConfig(config);
2267      this._isAppended = false;
2268      this._element = null;
2269    }
2270
2271    // Getters
2272    static get Default() {
2273      return Default$8;
2274    }
2275    static get DefaultType() {
2276      return DefaultType$8;
2277    }
2278    static get NAME() {
2279      return NAME$9;
2280    }
2281
2282    // Public
2283    show(callback) {
2284      if (!this._config.isVisible) {
2285        execute(callback);
2286        return;
2287      }
2288      this._append();
2289      const element = this._getElement();
2290      if (this._config.isAnimated) {
2291        reflow(element);
2292      }
2293      element.classList.add(CLASS_NAME_SHOW$5);
2294      this._emulateAnimation(() => {
2295        execute(callback);
2296      });
2297    }
2298    hide(callback) {
2299      if (!this._config.isVisible) {
2300        execute(callback);
2301        return;
2302      }
2303      this._getElement().classList.remove(CLASS_NAME_SHOW$5);
2304      this._emulateAnimation(() => {
2305        this.dispose();
2306        execute(callback);
2307      });
2308    }
2309    dispose() {
2310      if (!this._isAppended) {
2311        return;
2312      }
2313      EventHandler.off(this._element, EVENT_MOUSEDOWN);
2314      this._element.remove();
2315      this._isAppended = false;
2316    }
2317
2318    // Private
2319    _getElement() {
2320      if (!this._element) {
2321        const backdrop = document.createElement('div');
2322        backdrop.className = this._config.className;
2323        if (this._config.isAnimated) {
2324          backdrop.classList.add(CLASS_NAME_FADE$4);
2325        }
2326        this._element = backdrop;
2327      }
2328      return this._element;
2329    }
2330    _configAfterMerge(config) {
2331      // use getElement() with the default "body" to get a fresh Element on each instantiation
2332      config.rootElement = getElement(config.rootElement);
2333      return config;
2334    }
2335    _append() {
2336      if (this._isAppended) {
2337        return;
2338      }
2339      const element = this._getElement();
2340      this._config.rootElement.append(element);
2341      EventHandler.on(element, EVENT_MOUSEDOWN, () => {
2342        execute(this._config.clickCallback);
2343      });
2344      this._isAppended = true;
2345    }
2346    _emulateAnimation(callback) {
2347      executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
2348    }
2349  }
2350
2351  /**
2352   * --------------------------------------------------------------------------
2353   * Bootstrap util/focustrap.js
2354   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
2355   * --------------------------------------------------------------------------
2356   */
2357
2358
2359  /**
2360   * Constants
2361   */
2362
2363  const NAME$8 = 'focustrap';
2364  const DATA_KEY$5 = 'bs.focustrap';
2365  const EVENT_KEY$5 = `.${DATA_KEY$5}`;
2366  const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
2367  const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
2368  const TAB_KEY = 'Tab';
2369  const TAB_NAV_FORWARD = 'forward';
2370  const TAB_NAV_BACKWARD = 'backward';
2371  const Default$7 = {
2372    autofocus: true,
2373    trapElement: null // The element to trap focus inside of
2374  };
vendor: 23,106 bytes, lines 2375-3102
2375
2376  const DefaultType$7 = {
2377    autofocus: 'boolean',
2378    trapElement: 'element'
2379  };
2380
2381  /**
2382   * Class definition
2383   */
2384
2385  class FocusTrap extends Config {
2386    constructor(config) {
2387      super();
2388      this._config = this._getConfig(config);
2389      this._isActive = false;
2390      this._lastTabNavDirection = null;
2391    }
2392
2393    // Getters
2394    static get Default() {
2395      return Default$7;
2396    }
2397    static get DefaultType() {
2398      return DefaultType$7;
2399    }
2400    static get NAME() {
2401      return NAME$8;
2402    }
2403
2404    // Public
2405    activate() {
2406      if (this._isActive) {
2407        return;
2408      }
2409      if (this._config.autofocus) {
2410        this._config.trapElement.focus();
2411      }
2412      EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop
2413      EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));
2414      EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
2415      this._isActive = true;
2416    }
2417    deactivate() {
2418      if (!this._isActive) {
2419        return;
2420      }
2421      this._isActive = false;
2422      EventHandler.off(document, EVENT_KEY$5);
2423    }
2424
2425    // Private
2426    _handleFocusin(event) {
2427      const {
2428        trapElement
2429      } = this._config;
2430      if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
2431        return;
2432      }
2433      const elements = SelectorEngine.focusableChildren(trapElement);
2434      if (elements.length === 0) {
2435        trapElement.focus();
2436      } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
2437        elements[elements.length - 1].focus();
2438      } else {
2439        elements[0].focus();
2440      }
2441    }
2442    _handleKeydown(event) {
2443      if (event.key !== TAB_KEY) {
2444        return;
2445      }
2446      this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
2447    }
2448  }
2449
2450  /**
2451   * --------------------------------------------------------------------------
2452   * Bootstrap util/scrollBar.js
2453   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
2454   * --------------------------------------------------------------------------
2455   */
2456
2457
2458  /**
2459   * Constants
2460   */
2461
2462  const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
2463  const SELECTOR_STICKY_CONTENT = '.sticky-top';
2464  const PROPERTY_PADDING = 'padding-right';
2465  const PROPERTY_MARGIN = 'margin-right';
2466
2467  /**
2468   * Class definition
2469   */
2470
2471  class ScrollBarHelper {
2472    constructor() {
2473      this._element = document.body;
2474    }
2475
2476    // Public
2477    getWidth() {
2478      // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
2479      const documentWidth = document.documentElement.clientWidth;
2480      return Math.abs(window.innerWidth - documentWidth);
2481    }
2482    hide() {
2483      const width = this.getWidth();
2484      this._disableOverFlow();
2485      // give padding to element to balance the hidden scrollbar width
2486      this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
2487      // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
2488      this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
2489      this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
2490    }
2491    reset() {
2492      this._resetElementAttributes(this._element, 'overflow');
2493      this._resetElementAttributes(this._element, PROPERTY_PADDING);
2494      this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
2495      this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
2496    }
2497    isOverflowing() {
2498      return this.getWidth() > 0;
2499    }
2500
2501    // Private
2502    _disableOverFlow() {
2503      this._saveInitialAttribute(this._element, 'overflow');
2504      this._element.style.overflow = 'hidden';
2505    }
2506    _setElementAttributes(selector, styleProperty, callback) {
2507      const scrollbarWidth = this.getWidth();
2508      const manipulationCallBack = element => {
2509        if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
2510          return;
2511        }
2512        this._saveInitialAttribute(element, styleProperty);
2513        const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
2514        element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
2515      };
2516      this._applyManipulationCallback(selector, manipulationCallBack);
2517    }
2518    _saveInitialAttribute(element, styleProperty) {
2519      const actualValue = element.style.getPropertyValue(styleProperty);
2520      if (actualValue) {
2521        Manipulator.setDataAttribute(element, styleProperty, actualValue);
2522      }
2523    }
2524    _resetElementAttributes(selector, styleProperty) {
2525      const manipulationCallBack = element => {
2526        const value = Manipulator.getDataAttribute(element, styleProperty);
2527        // We only want to remove the property if the value is `null`; the value can also be zero
2528        if (value === null) {
2529          element.style.removeProperty(styleProperty);
2530          return;
2531        }
2532        Manipulator.removeDataAttribute(element, styleProperty);
2533        element.style.setProperty(styleProperty, value);
2534      };
2535      this._applyManipulationCallback(selector, manipulationCallBack);
2536    }
2537    _applyManipulationCallback(selector, callBack) {
2538      if (isElement(selector)) {
2539        callBack(selector);
2540        return;
2541      }
2542      for (const sel of SelectorEngine.find(selector, this._element)) {
2543        callBack(sel);
2544      }
2545    }
2546  }
2547
2548  /**
2549   * --------------------------------------------------------------------------
2550   * Bootstrap modal.js
2551   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
2552   * --------------------------------------------------------------------------
2553   */
2554
2555
2556  /**
2557   * Constants
2558   */
2559
2560  const NAME$7 = 'modal';
2561  const DATA_KEY$4 = 'bs.modal';
2562  const EVENT_KEY$4 = `.${DATA_KEY$4}`;
2563  const DATA_API_KEY$2 = '.data-api';
2564  const ESCAPE_KEY$1 = 'Escape';
2565  const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
2566  const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
2567  const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
2568  const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
2569  const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
2570  const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
2571  const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
2572  const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
2573  const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
2574  const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
2575  const CLASS_NAME_OPEN = 'modal-open';
2576  const CLASS_NAME_FADE$3 = 'fade';
2577  const CLASS_NAME_SHOW$4 = 'show';
2578  const CLASS_NAME_STATIC = 'modal-static';
2579  const OPEN_SELECTOR$1 = '.modal.show';
2580  const SELECTOR_DIALOG = '.modal-dialog';
2581  const SELECTOR_MODAL_BODY = '.modal-body';
2582  const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
2583  const Default$6 = {
2584    backdrop: true,
2585    focus: true,
2586    keyboard: true
2587  };
2588  const DefaultType$6 = {
2589    backdrop: '(boolean|string)',
2590    focus: 'boolean',
2591    keyboard: 'boolean'
2592  };
2593
2594  /**
2595   * Class definition
2596   */
2597
2598  class Modal extends BaseComponent {
2599    constructor(element, config) {
2600      super(element, config);
2601      this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
2602      this._backdrop = this._initializeBackDrop();
2603      this._focustrap = this._initializeFocusTrap();
2604      this._isShown = false;
2605      this._isTransitioning = false;
2606      this._scrollBar = new ScrollBarHelper();
2607      this._addEventListeners();
2608    }
2609
2610    // Getters
2611    static get Default() {
2612      return Default$6;
2613    }
2614    static get DefaultType() {
2615      return DefaultType$6;
2616    }
2617    static get NAME() {
2618      return NAME$7;
2619    }
2620
2621    // Public
2622    toggle(relatedTarget) {
2623      return this._isShown ? this.hide() : this.show(relatedTarget);
2624    }
2625    show(relatedTarget) {
2626      if (this._isShown || this._isTransitioning) {
2627        return;
2628      }
2629      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
2630        relatedTarget
2631      });
2632      if (showEvent.defaultPrevented) {
2633        return;
2634      }
2635      this._isShown = true;
2636      this._isTransitioning = true;
2637      this._scrollBar.hide();
2638      document.body.classList.add(CLASS_NAME_OPEN);
2639      this._adjustDialog();
2640      this._backdrop.show(() => this._showElement(relatedTarget));
2641    }
2642    hide() {
2643      if (!this._isShown || this._isTransitioning) {
2644        return;
2645      }
2646      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
2647      if (hideEvent.defaultPrevented) {
2648        return;
2649      }
2650      this._isShown = false;
2651      this._isTransitioning = true;
2652      this._focustrap.deactivate();
2653      this._element.classList.remove(CLASS_NAME_SHOW$4);
2654      this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
2655    }
2656    dispose() {
2657      EventHandler.off(window, EVENT_KEY$4);
2658      EventHandler.off(this._dialog, EVENT_KEY$4);
2659      this._backdrop.dispose();
2660      this._focustrap.deactivate();
2661      super.dispose();
2662    }
2663    handleUpdate() {
2664      this._adjustDialog();
2665    }
2666
2667    // Private
2668    _initializeBackDrop() {
2669      return new Backdrop({
2670        isVisible: Boolean(this._config.backdrop),
2671        // 'static' option will be translated to true, and booleans will keep their value,
2672        isAnimated: this._isAnimated()
2673      });
2674    }
2675    _initializeFocusTrap() {
2676      return new FocusTrap({
2677        trapElement: this._element
2678      });
2679    }
2680    _showElement(relatedTarget) {
2681      // try to append dynamic modal
2682      if (!document.body.contains(this._element)) {
2683        document.body.append(this._element);
2684      }
2685      this._element.style.display = 'block';
2686      this._element.removeAttribute('aria-hidden');
2687      this._element.setAttribute('aria-modal', true);
2688      this._element.setAttribute('role', 'dialog');
2689      this._element.scrollTop = 0;
2690      const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
2691      if (modalBody) {
2692        modalBody.scrollTop = 0;
2693      }
2694      reflow(this._element);
2695      this._element.classList.add(CLASS_NAME_SHOW$4);
2696      const transitionComplete = () => {
2697        if (this._config.focus) {
2698          this._focustrap.activate();
2699        }
2700        this._isTransitioning = false;
2701        EventHandler.trigger(this._element, EVENT_SHOWN$4, {
2702          relatedTarget
2703        });
2704      };
2705      this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
2706    }
2707    _addEventListeners() {
2708      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {
2709        if (event.key !== ESCAPE_KEY$1) {
2710          return;
2711        }
2712        if (this._config.keyboard) {
2713          this.hide();
2714          return;
2715        }
2716        this._triggerBackdropTransition();
2717      });
2718      EventHandler.on(window, EVENT_RESIZE$1, () => {
2719        if (this._isShown && !this._isTransitioning) {
2720          this._adjustDialog();
2721        }
2722      });
2723      EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
2724        // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
2725        EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
2726          if (this._element !== event.target || this._element !== event2.target) {
2727            return;
2728          }
2729          if (this._config.backdrop === 'static') {
2730            this._triggerBackdropTransition();
2731            return;
2732          }
2733          if (this._config.backdrop) {
2734            this.hide();
2735          }
2736        });
2737      });
2738    }
2739    _hideModal() {
2740      this._element.style.display = 'none';
2741      this._element.setAttribute('aria-hidden', true);
2742      this._element.removeAttribute('aria-modal');
2743      this._element.removeAttribute('role');
2744      this._isTransitioning = false;
2745      this._backdrop.hide(() => {
2746        document.body.classList.remove(CLASS_NAME_OPEN);
2747        this._resetAdjustments();
2748        this._scrollBar.reset();
2749        EventHandler.trigger(this._element, EVENT_HIDDEN$4);
2750      });
2751    }
2752    _isAnimated() {
2753      return this._element.classList.contains(CLASS_NAME_FADE$3);
2754    }
2755    _triggerBackdropTransition() {
2756      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
2757      if (hideEvent.defaultPrevented) {
2758        return;
2759      }
2760      const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
2761      const initialOverflowY = this._element.style.overflowY;
2762      // return if the following background transition hasn't yet completed
2763      if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {
2764        return;
2765      }
2766      if (!isModalOverflowing) {
2767        this._element.style.overflowY = 'hidden';
2768      }
2769      this._element.classList.add(CLASS_NAME_STATIC);
2770      this._queueCallback(() => {
2771        this._element.classList.remove(CLASS_NAME_STATIC);
2772        this._queueCallback(() => {
2773          this._element.style.overflowY = initialOverflowY;
2774        }, this._dialog);
2775      }, this._dialog);
2776      this._element.focus();
2777    }
2778
2779    /**
2780     * The following methods are used to handle overflowing modals
2781     */
2782
2783    _adjustDialog() {
2784      const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
2785      const scrollbarWidth = this._scrollBar.getWidth();
2786      const isBodyOverflowing = scrollbarWidth > 0;
2787      if (isBodyOverflowing && !isModalOverflowing) {
2788        const property = isRTL() ? 'paddingLeft' : 'paddingRight';
2789        this._element.style[property] = `${scrollbarWidth}px`;
2790      }
2791      if (!isBodyOverflowing && isModalOverflowing) {
2792        const property = isRTL() ? 'paddingRight' : 'paddingLeft';
2793        this._element.style[property] = `${scrollbarWidth}px`;
2794      }
2795    }
2796    _resetAdjustments() {
2797      this._element.style.paddingLeft = '';
2798      this._element.style.paddingRight = '';
2799    }
2800
2801    // Static
2802    static jQueryInterface(config, relatedTarget) {
2803      return this.each(function () {
2804        const data = Modal.getOrCreateInstance(this, config);
2805        if (typeof config !== 'string') {
2806          return;
2807        }
2808        if (typeof data[config] === 'undefined') {
2809          throw new TypeError(`No method named "${config}"`);
2810        }
2811        data[config](relatedTarget);
2812      });
2813    }
2814  }
2815
2816  /**
2817   * Data API implementation
2818   */
2819
2820  EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {
2821    const target = SelectorEngine.getElementFromSelector(this);
2822    if (['A', 'AREA'].includes(this.tagName)) {
2823      event.preventDefault();
2824    }
2825    EventHandler.one(target, EVENT_SHOW$4, showEvent => {
2826      if (showEvent.defaultPrevented) {
2827        // only register focus restorer if modal will actually get shown
2828        return;
2829      }
2830      EventHandler.one(target, EVENT_HIDDEN$4, () => {
2831        if (isVisible(this)) {
2832          this.focus();
2833        }
2834      });
2835    });
2836
2837    // avoid conflict when clicking modal toggler while another one is open
2838    const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
2839    if (alreadyOpen) {
2840      Modal.getInstance(alreadyOpen).hide();
2841    }
2842    const data = Modal.getOrCreateInstance(target);
2843    data.toggle(this);
2844  });
2845  enableDismissTrigger(Modal);
2846
2847  /**
2848   * jQuery
2849   */
2850
2851  defineJQueryPlugin(Modal);
2852
2853  /**
2854   * --------------------------------------------------------------------------
2855   * Bootstrap offcanvas.js
2856   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
2857   * --------------------------------------------------------------------------
2858   */
2859
2860
2861  /**
2862   * Constants
2863   */
2864
2865  const NAME$6 = 'offcanvas';
2866  const DATA_KEY$3 = 'bs.offcanvas';
2867  const EVENT_KEY$3 = `.${DATA_KEY$3}`;
2868  const DATA_API_KEY$1 = '.data-api';
2869  const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
2870  const ESCAPE_KEY = 'Escape';
2871  const CLASS_NAME_SHOW$3 = 'show';
2872  const CLASS_NAME_SHOWING$1 = 'showing';
2873  const CLASS_NAME_HIDING = 'hiding';
2874  const CLASS_NAME_BACKDROP = 'offcanvas-backdrop';
2875  const OPEN_SELECTOR = '.offcanvas.show';
2876  const EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
2877  const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
2878  const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
2879  const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
2880  const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
2881  const EVENT_RESIZE = `resize${EVENT_KEY$3}`;
2882  const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
2883  const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
2884  const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
2885  const Default$5 = {
2886    backdrop: true,
2887    keyboard: true,
2888    scroll: false
2889  };
2890  const DefaultType$5 = {
2891    backdrop: '(boolean|string)',
2892    keyboard: 'boolean',
2893    scroll: 'boolean'
2894  };
2895
2896  /**
2897   * Class definition
2898   */
2899
2900  class Offcanvas extends BaseComponent {
2901    constructor(element, config) {
2902      super(element, config);
2903      this._isShown = false;
2904      this._backdrop = this._initializeBackDrop();
2905      this._focustrap = this._initializeFocusTrap();
2906      this._addEventListeners();
2907    }
2908
2909    // Getters
2910    static get Default() {
2911      return Default$5;
2912    }
2913    static get DefaultType() {
2914      return DefaultType$5;
2915    }
2916    static get NAME() {
2917      return NAME$6;
2918    }
2919
2920    // Public
2921    toggle(relatedTarget) {
2922      return this._isShown ? this.hide() : this.show(relatedTarget);
2923    }
2924    show(relatedTarget) {
2925      if (this._isShown) {
2926        return;
2927      }
2928      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
2929        relatedTarget
2930      });
2931      if (showEvent.defaultPrevented) {
2932        return;
2933      }
2934      this._isShown = true;
2935      this._backdrop.show();
2936      if (!this._config.scroll) {
2937        new ScrollBarHelper().hide();
2938      }
2939      this._element.setAttribute('aria-modal', true);
2940      this._element.setAttribute('role', 'dialog');
2941      this._element.classList.add(CLASS_NAME_SHOWING$1);
2942      const completeCallBack = () => {
2943        if (!this._config.scroll || this._config.backdrop) {
2944          this._focustrap.activate();
2945        }
2946        this._element.classList.add(CLASS_NAME_SHOW$3);
2947        this._element.classList.remove(CLASS_NAME_SHOWING$1);
2948        EventHandler.trigger(this._element, EVENT_SHOWN$3, {
2949          relatedTarget
2950        });
2951      };
2952      this._queueCallback(completeCallBack, this._element, true);
2953    }
2954    hide() {
2955      if (!this._isShown) {
2956        return;
2957      }
2958      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
2959      if (hideEvent.defaultPrevented) {
2960        return;
2961      }
2962      this._focustrap.deactivate();
2963      this._element.blur();
2964      this._isShown = false;
2965      this._element.classList.add(CLASS_NAME_HIDING);
2966      this._backdrop.hide();
2967      const completeCallback = () => {
2968        this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
2969        this._element.removeAttribute('aria-modal');
2970        this._element.removeAttribute('role');
2971        if (!this._config.scroll) {
2972          new ScrollBarHelper().reset();
2973        }
2974        EventHandler.trigger(this._element, EVENT_HIDDEN$3);
2975      };
2976      this._queueCallback(completeCallback, this._element, true);
2977    }
2978    dispose() {
2979      this._backdrop.dispose();
2980      this._focustrap.deactivate();
2981      super.dispose();
2982    }
2983
2984    // Private
2985    _initializeBackDrop() {
2986      const clickCallback = () => {
2987        if (this._config.backdrop === 'static') {
2988          EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
2989          return;
2990        }
2991        this.hide();
2992      };
2993
2994      // 'static' option will be translated to true, and booleans will keep their value
2995      const isVisible = Boolean(this._config.backdrop);
2996      return new Backdrop({
2997        className: CLASS_NAME_BACKDROP,
2998        isVisible,
2999        isAnimated: true,
3000        rootElement: this._element.parentNode,
3001        clickCallback: isVisible ? clickCallback : null
3002      });
3003    }
3004    _initializeFocusTrap() {
3005      return new FocusTrap({
3006        trapElement: this._element
3007      });
3008    }
3009    _addEventListeners() {
3010      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
3011        if (event.key !== ESCAPE_KEY) {
3012          return;
3013        }
3014        if (this._config.keyboard) {
3015          this.hide();
3016          return;
3017        }
3018        EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
3019      });
3020    }
3021
3022    // Static
3023    static jQueryInterface(config) {
3024      return this.each(function () {
3025        const data = Offcanvas.getOrCreateInstance(this, config);
3026        if (typeof config !== 'string') {
3027          return;
3028        }
3029        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
3030          throw new TypeError(`No method named "${config}"`);
3031        }
3032        data[config](this);
3033      });
3034    }
3035  }
3036
3037  /**
3038   * Data API implementation
3039   */
3040
3041  EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {
3042    const target = SelectorEngine.getElementFromSelector(this);
3043    if (['A', 'AREA'].includes(this.tagName)) {
3044      event.preventDefault();
3045    }
3046    if (isDisabled(this)) {
3047      return;
3048    }
3049    EventHandler.one(target, EVENT_HIDDEN$3, () => {
3050      // focus on trigger when it is closed
3051      if (isVisible(this)) {
3052        this.focus();
3053      }
3054    });
3055
3056    // avoid conflict when clicking a toggler of an offcanvas, while another is open
3057    const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
3058    if (alreadyOpen && alreadyOpen !== target) {
3059      Offcanvas.getInstance(alreadyOpen).hide();
3060    }
3061    const data = Offcanvas.getOrCreateInstance(target);
3062    data.toggle(this);
3063  });
3064  EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
3065    for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
3066      Offcanvas.getOrCreateInstance(selector).show();
3067    }
3068  });
3069  EventHandler.on(window, EVENT_RESIZE, () => {
3070    for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {
3071      if (getComputedStyle(element).position !== 'fixed') {
3072        Offcanvas.getOrCreateInstance(element).hide();
3073      }
3074    }
3075  });
3076  enableDismissTrigger(Offcanvas);
3077
3078  /**
3079   * jQuery
3080   */
3081
3082  defineJQueryPlugin(Offcanvas);
3083
3084  /**
3085   * --------------------------------------------------------------------------
3086   * Bootstrap util/sanitizer.js
3087   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3088   * --------------------------------------------------------------------------
3089   */
3090
3091  // js-docs-start allow-list
3092  const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
3093  const DefaultAllowlist = {
3094    // Global attributes allowed on any supplied element below.
3095    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
3096    a: ['target', 'href', 'title', 'rel'],
3097    area: [],
3098    b: [],
3099    br: [],
3100    col: [],
3101    code: [],
3102    d
vendor: 2,312 bytes, lines 3102-3169
3102iv: [],
3103    em: [],
3104    hr: [],
3105    h1: [],
3106    h2: [],
3107    h3: [],
3108    h4: [],
3109    h5: [],
3110    h6: [],
3111    i: [],
3112    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
3113    li: [],
3114    ol: [],
3115    p: [],
3116    pre: [],
3117    s: [],
3118    small: [],
3119    span: [],
3120    sub: [],
3121    sup: [],
3122    strong: [],
3123    u: [],
3124    ul: []
3125  };
3126  // js-docs-end allow-list
3127
3128  const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
3129
3130  /**
3131   * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation
3132   * contexts.
3133   *
3134   * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
3135   */
3136  // eslint-disable-next-line unicorn/better-regex
3137  const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
3138  const allowedAttribute = (attribute, allowedAttributeList) => {
3139    const attributeName = attribute.nodeName.toLowerCase();
3140    if (allowedAttributeList.includes(attributeName)) {
3141      if (uriAttributes.has(attributeName)) {
3142        return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
3143      }
3144      return true;
3145    }
3146
3147    // Check if a regular expression validates the attribute.
3148    return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
3149  };
3150  function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
3151    if (!unsafeHtml.length) {
3152      return unsafeHtml;
3153    }
3154    if (sanitizeFunction && typeof sanitizeFunction === 'function') {
3155      return sanitizeFunction(unsafeHtml);
3156    }
3157    const domParser = new window.DOMParser();
3158    const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
3159    const elements = [].concat(...createdDocument.body.querySelectorAll('*'));
3160    for (const element of elements) {
3161      const elementName = element.nodeName.toLowerCase();
3162      if (!Object.keys(allowList).includes(elementName)) {
3163        element.remove();
3164        continue;
3165      }
3166      const attributeList = [].concat(...element.attributes);
3167      const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);
3168      for (const attribute of attributeList) {
3169        if (!allowedAttribute(attribute, allowedAttributes)) {
vendor: 7,447 bytes, lines 3170-3446
3170          element.removeAttribute(attribute.nodeName);
3171        }
3172      }
3173    }
3174    return createdDocument.body.innerHTML;
3175  }
3176
3177  /**
3178   * --------------------------------------------------------------------------
3179   * Bootstrap util/template-factory.js
3180   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3181   * --------------------------------------------------------------------------
3182   */
3183
3184
3185  /**
3186   * Constants
3187   */
3188
3189  const NAME$5 = 'TemplateFactory';
3190  const Default$4 = {
3191    allowList: DefaultAllowlist,
3192    content: {},
3193    // { selector : text ,  selector2 : text2 , }
3194    extraClass: '',
3195    html: false,
3196    sanitize: true,
3197    sanitizeFn: null,
3198    template: '<div></div>'
3199  };
3200  const DefaultType$4 = {
3201    allowList: 'object',
3202    content: 'object',
3203    extraClass: '(string|function)',
3204    html: 'boolean',
3205    sanitize: 'boolean',
3206    sanitizeFn: '(null|function)',
3207    template: 'string'
3208  };
3209  const DefaultContentType = {
3210    entry: '(string|element|function|null)',
3211    selector: '(string|element)'
3212  };
3213
3214  /**
3215   * Class definition
3216   */
3217
3218  class TemplateFactory extends Config {
3219    constructor(config) {
3220      super();
3221      this._config = this._getConfig(config);
3222    }
3223
3224    // Getters
3225    static get Default() {
3226      return Default$4;
3227    }
3228    static get DefaultType() {
3229      return DefaultType$4;
3230    }
3231    static get NAME() {
3232      return NAME$5;
3233    }
3234
3235    // Public
3236    getContent() {
3237      return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);
3238    }
3239    hasContent() {
3240      return this.getContent().length > 0;
3241    }
3242    changeContent(content) {
3243      this._checkContent(content);
3244      this._config.content = {
3245        ...this._config.content,
3246        ...content
3247      };
3248      return this;
3249    }
3250    toHtml() {
3251      const templateWrapper = document.createElement('div');
3252      templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
3253      for (const [selector, text] of Object.entries(this._config.content)) {
3254        this._setContent(templateWrapper, text, selector);
3255      }
3256      const template = templateWrapper.children[0];
3257      const extraClass = this._resolvePossibleFunction(this._config.extraClass);
3258      if (extraClass) {
3259        template.classList.add(...extraClass.split(' '));
3260      }
3261      return template;
3262    }
3263
3264    // Private
3265    _typeCheckConfig(config) {
3266      super._typeCheckConfig(config);
3267      this._checkContent(config.content);
3268    }
3269    _checkContent(arg) {
3270      for (const [selector, content] of Object.entries(arg)) {
3271        super._typeCheckConfig({
3272          selector,
3273          entry: content
3274        }, DefaultContentType);
3275      }
3276    }
3277    _setContent(template, content, selector) {
3278      const templateElement = SelectorEngine.findOne(selector, template);
3279      if (!templateElement) {
3280        return;
3281      }
3282      content = this._resolvePossibleFunction(content);
3283      if (!content) {
3284        templateElement.remove();
3285        return;
3286      }
3287      if (isElement(content)) {
3288        this._putElementInTemplate(getElement(content), templateElement);
3289        return;
3290      }
3291      if (this._config.html) {
3292        templateElement.innerHTML = this._maybeSanitize(content);
3293        return;
3294      }
3295      templateElement.textContent = content;
3296    }
3297    _maybeSanitize(arg) {
3298      return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
3299    }
3300    _resolvePossibleFunction(arg) {
3301      return execute(arg, [this]);
3302    }
3303    _putElementInTemplate(element, templateElement) {
3304      if (this._config.html) {
3305        templateElement.innerHTML = '';
3306        templateElement.append(element);
3307        return;
3308      }
3309      templateElement.textContent = element.textContent;
3310    }
3311  }
3312
3313  /**
3314   * --------------------------------------------------------------------------
3315   * Bootstrap tooltip.js
3316   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3317   * --------------------------------------------------------------------------
3318   */
3319
3320
3321  /**
3322   * Constants
3323   */
3324
3325  const NAME$4 = 'tooltip';
3326  const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
3327  const CLASS_NAME_FADE$2 = 'fade';
3328  const CLASS_NAME_MODAL = 'modal';
3329  const CLASS_NAME_SHOW$2 = 'show';
3330  const SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
3331  const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
3332  const EVENT_MODAL_HIDE = 'hide.bs.modal';
3333  const TRIGGER_HOVER = 'hover';
3334  const TRIGGER_FOCUS = 'focus';
3335  const TRIGGER_CLICK = 'click';
3336  const TRIGGER_MANUAL = 'manual';
3337  const EVENT_HIDE$2 = 'hide';
3338  const EVENT_HIDDEN$2 = 'hidden';
3339  const EVENT_SHOW$2 = 'show';
3340  const EVENT_SHOWN$2 = 'shown';
3341  const EVENT_INSERTED = 'inserted';
3342  const EVENT_CLICK$1 = 'click';
3343  const EVENT_FOCUSIN$1 = 'focusin';
3344  const EVENT_FOCUSOUT$1 = 'focusout';
3345  const EVENT_MOUSEENTER = 'mouseenter';
3346  const EVENT_MOUSELEAVE = 'mouseleave';
3347  const AttachmentMap = {
3348    AUTO: 'auto',
3349    TOP: 'top',
3350    RIGHT: isRTL() ? 'left' : 'right',
3351    BOTTOM: 'bottom',
3352    LEFT: isRTL() ? 'right' : 'left'
3353  };
3354  const Default$3 = {
3355    allowList: DefaultAllowlist,
3356    animation: true,
3357    boundary: 'clippingParents',
3358    container: false,
3359    customClass: '',
3360    delay: 0,
3361    fallbackPlacements: ['top', 'right', 'bottom', 'left'],
3362    html: false,
3363    offset: [0, 6],
3364    placement: 'top',
3365    popperConfig: null,
3366    sanitize: true,
3367    sanitizeFn: null,
3368    selector: false,
3369    template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
3370    title: '',
3371    trigger: 'hover focus'
3372  };
3373  const DefaultType$3 = {
3374    allowList: 'object',
3375    animation: 'boolean',
3376    boundary: '(string|element)',
3377    container: '(string|element|boolean)',
3378    customClass: '(string|function)',
3379    delay: '(number|object)',
3380    fallbackPlacements: 'array',
3381    html: 'boolean',
3382    offset: '(array|string|function)',
3383    placement: '(string|function)',
3384    popperConfig: '(null|object|function)',
3385    sanitize: 'boolean',
3386    sanitizeFn: '(null|function)',
3387    selector: '(string|boolean)',
3388    template: 'string',
3389    title: '(string|element|function)',
3390    trigger: 'string'
3391  };
3392
3393  /**
3394   * Class definition
3395   */
3396
3397  class Tooltip extends BaseComponent {
3398    constructor(element, config) {
3399      if (typeof Popper__namespace === 'undefined') {
3400        throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
3401      }
3402      super(element, config);
3403
3404      // Private
3405      this._isEnabled = true;
3406      this._timeout = 0;
3407      this._isHovered = null;
3408      this._activeTrigger = {};
3409      this._popper = null;
3410      this._templateFactory = null;
3411      this._newContent = null;
3412
3413      // Protected
3414      this.tip = null;
3415      this._setListeners();
3416      if (!this._config.selector) {
3417        this._fixTitle();
3418      }
3419    }
3420
3421    // Getters
3422    static get Default() {
3423      return Default$3;
3424    }
3425    static get DefaultType() {
3426      return DefaultType$3;
3427    }
3428    static get NAME() {
3429      return NAME$4;
3430    }
3431
3432    // Public
3433    enable() {
3434      this._isEnabled = true;
3435    }
3436    disable() {
3437      this._isEnabled = false;
3438    }
3439    toggleEnabled() {
3440      this._isEnabled = !this._isEnabled;
3441    }
3442    toggle() {
3443      if (!this._isEnabled) {
3444        return;
3445      }
3446      this._activeTrigger.click = !this._activeTrigger.click;
vendor: 6,583 bytes, lines 3446-3634
3446
3447      if (this._isShown()) {
3448        this._leave();
3449        return;
3450      }
3451      this._enter();
3452    }
3453    dispose() {
3454      clearTimeout(this._timeout);
3455      EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
3456      if (this._element.getAttribute('data-bs-original-title')) {
3457        this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));
3458      }
3459      this._disposePopper();
3460      super.dispose();
3461    }
3462    show() {
3463      if (this._element.style.display === 'none') {
3464        throw new Error('Please use show on visible elements');
3465      }
3466      if (!(this._isWithContent() && this._isEnabled)) {
3467        return;
3468      }
3469      const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
3470      const shadowRoot = findShadowRoot(this._element);
3471      const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
3472      if (showEvent.defaultPrevented || !isInTheDom) {
3473        return;
3474      }
3475
3476      // TODO: v6 remove this or make it optional
3477      this._disposePopper();
3478      const tip = this._getTipElement();
3479      this._element.setAttribute('aria-describedby', tip.getAttribute('id'));
3480      const {
3481        container
3482      } = this._config;
3483      if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
3484        container.append(tip);
3485        EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
3486      }
3487      this._popper = this._createPopper(tip);
3488      tip.classList.add(CLASS_NAME_SHOW$2);
3489
3490      // If this is a touch-enabled device we add extra
3491      // empty mouseover listeners to the body's immediate children;
3492      // only needed because of broken event delegation on iOS
3493      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
3494      if ('ontouchstart' in document.documentElement) {
3495        for (const element of [].concat(...document.body.children)) {
3496          EventHandler.on(element, 'mouseover', noop);
3497        }
3498      }
3499      const complete = () => {
3500        EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
3501        if (this._isHovered === false) {
3502          this._leave();
3503        }
3504        this._isHovered = false;
3505      };
3506      this._queueCallback(complete, this.tip, this._isAnimated());
3507    }
3508    hide() {
3509      if (!this._isShown()) {
3510        return;
3511      }
3512      const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
3513      if (hideEvent.defaultPrevented) {
3514        return;
3515      }
3516      const tip = this._getTipElement();
3517      tip.classList.remove(CLASS_NAME_SHOW$2);
3518
3519      // If this is a touch-enabled device we remove the extra
3520      // empty mouseover listeners we added for iOS support
3521      if ('ontouchstart' in document.documentElement) {
3522        for (const element of [].concat(...document.body.children)) {
3523          EventHandler.off(element, 'mouseover', noop);
3524        }
3525      }
3526      this._activeTrigger[TRIGGER_CLICK] = false;
3527      this._activeTrigger[TRIGGER_FOCUS] = false;
3528      this._activeTrigger[TRIGGER_HOVER] = false;
3529      this._isHovered = null; // it is a trick to support manual triggering
3530
3531      const complete = () => {
3532        if (this._isWithActiveTrigger()) {
3533          return;
3534        }
3535        if (!this._isHovered) {
3536          this._disposePopper();
3537        }
3538        this._element.removeAttribute('aria-describedby');
3539        EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
3540      };
3541      this._queueCallback(complete, this.tip, this._isAnimated());
3542    }
3543    update() {
3544      if (this._popper) {
3545        this._popper.update();
3546      }
3547    }
3548
3549    // Protected
3550    _isWithContent() {
3551      return Boolean(this._getTitle());
3552    }
3553    _getTipElement() {
3554      if (!this.tip) {
3555        this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
3556      }
3557      return this.tip;
3558    }
3559    _createTipElement(content) {
3560      const tip = this._getTemplateFactory(content).toHtml();
3561
3562      // TODO: remove this check in v6
3563      if (!tip) {
3564        return null;
3565      }
3566      tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
3567      // TODO: v6 the following can be achieved with CSS only
3568      tip.classList.add(`bs-${this.constructor.NAME}-auto`);
3569      const tipId = getUID(this.constructor.NAME).toString();
3570      tip.setAttribute('id', tipId);
3571      if (this._isAnimated()) {
3572        tip.classList.add(CLASS_NAME_FADE$2);
3573      }
3574      return tip;
3575    }
3576    setContent(content) {
3577      this._newContent = content;
3578      if (this._isShown()) {
3579        this._disposePopper();
3580        this.show();
3581      }
3582    }
3583    _getTemplateFactory(content) {
3584      if (this._templateFactory) {
3585        this._templateFactory.changeContent(content);
3586      } else {
3587        this._templateFactory = new TemplateFactory({
3588          ...this._config,
3589          // the `content` var has to be after `this._config`
3590          // to override config.content in case of popover
3591          content,
3592          extraClass: this._resolvePossibleFunction(this._config.customClass)
3593        });
3594      }
3595      return this._templateFactory;
3596    }
3597    _getContentForTemplate() {
3598      return {
3599        [SELECTOR_TOOLTIP_INNER]: this._getTitle()
3600      };
3601    }
3602    _getTitle() {
3603      return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');
3604    }
3605
3606    // Private
3607    _initializeOnDelegatedTarget(event) {
3608      return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
3609    }
3610    _isAnimated() {
3611      return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
3612    }
3613    _isShown() {
3614      return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
3615    }
3616    _createPopper(tip) {
3617      const placement = execute(this._config.placement, [this, tip, this._element]);
3618      const attachment = AttachmentMap[placement.toUpperCase()];
3619      return Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment));
3620    }
3621    _getOffset() {
3622      const {
3623        offset
3624      } = this._config;
3625      if (typeof offset === 'string') {
3626        return offset.split(',').map(value => Number.parseInt(value, 10));
3627      }
3628      if (typeof offset === 'function') {
3629        return popperData => offset(popperData, this._element);
3630      }
3631      return offset;
3632    }
3633    _resolvePossibleFunction(arg) {
3634      return execute(arg, [this._element
vendor: 1,566 bytes, lines 3634-3680
3634]);
3635    }
3636    _getPopperConfig(attachment) {
3637      const defaultBsPopperConfig = {
3638        placement: attachment,
3639        modifiers: [{
3640          name: 'flip',
3641          options: {
3642            fallbackPlacements: this._config.fallbackPlacements
3643          }
3644        }, {
3645          name: 'offset',
3646          options: {
3647            offset: this._getOffset()
3648          }
3649        }, {
3650          name: 'preventOverflow',
3651          options: {
3652            boundary: this._config.boundary
3653          }
3654        }, {
3655          name: 'arrow',
3656          options: {
3657            element: `.${this.constructor.NAME}-arrow`
3658          }
3659        }, {
3660          name: 'preSetPlacement',
3661          enabled: true,
3662          phase: 'beforeMain',
3663          fn: data => {
3664            // Pre-set Popper's placement attribute in order to read the arrow sizes properly.
3665            // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement
3666            this._getTipElement().setAttribute('data-popper-placement', data.state.placement);
3667          }
3668        }]
3669      };
3670      return {
3671        ...defaultBsPopperConfig,
3672        ...execute(this._config.popperConfig, [defaultBsPopperConfig])
3673      };
3674    }
3675    _setListeners() {
3676      const triggers = this._config.trigger.split(' ');
3677      for (const trigger of triggers) {
3678        if (trigger === 'click') {
3679          EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {
3680            const context = this._initializeOnDelegatedTarget(event
vendor: 28,183 bytes, lines 3680-4545
3680);
3681            context.toggle();
3682          });
3683        } else if (trigger !== TRIGGER_MANUAL) {
3684          const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
3685          const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
3686          EventHandler.on(this._element, eventIn, this._config.selector, event => {
3687            const context = this._initializeOnDelegatedTarget(event);
3688            context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
3689            context._enter();
3690          });
3691          EventHandler.on(this._element, eventOut, this._config.selector, event => {
3692            const context = this._initializeOnDelegatedTarget(event);
3693            context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);
3694            context._leave();
3695          });
3696        }
3697      }
3698      this._hideModalHandler = () => {
3699        if (this._element) {
3700          this.hide();
3701        }
3702      };
3703      EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
3704    }
3705    _fixTitle() {
3706      const title = this._element.getAttribute('title');
3707      if (!title) {
3708        return;
3709      }
3710      if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {
3711        this._element.setAttribute('aria-label', title);
3712      }
3713      this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility
3714      this._element.removeAttribute('title');
3715    }
3716    _enter() {
3717      if (this._isShown() || this._isHovered) {
3718        this._isHovered = true;
3719        return;
3720      }
3721      this._isHovered = true;
3722      this._setTimeout(() => {
3723        if (this._isHovered) {
3724          this.show();
3725        }
3726      }, this._config.delay.show);
3727    }
3728    _leave() {
3729      if (this._isWithActiveTrigger()) {
3730        return;
3731      }
3732      this._isHovered = false;
3733      this._setTimeout(() => {
3734        if (!this._isHovered) {
3735          this.hide();
3736        }
3737      }, this._config.delay.hide);
3738    }
3739    _setTimeout(handler, timeout) {
3740      clearTimeout(this._timeout);
3741      this._timeout = setTimeout(handler, timeout);
3742    }
3743    _isWithActiveTrigger() {
3744      return Object.values(this._activeTrigger).includes(true);
3745    }
3746    _getConfig(config) {
3747      const dataAttributes = Manipulator.getDataAttributes(this._element);
3748      for (const dataAttribute of Object.keys(dataAttributes)) {
3749        if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
3750          delete dataAttributes[dataAttribute];
3751        }
3752      }
3753      config = {
3754        ...dataAttributes,
3755        ...(typeof config === 'object' && config ? config : {})
3756      };
3757      config = this._mergeConfigObj(config);
3758      config = this._configAfterMerge(config);
3759      this._typeCheckConfig(config);
3760      return config;
3761    }
3762    _configAfterMerge(config) {
3763      config.container = config.container === false ? document.body : getElement(config.container);
3764      if (typeof config.delay === 'number') {
3765        config.delay = {
3766          show: config.delay,
3767          hide: config.delay
3768        };
3769      }
3770      if (typeof config.title === 'number') {
3771        config.title = config.title.toString();
3772      }
3773      if (typeof config.content === 'number') {
3774        config.content = config.content.toString();
3775      }
3776      return config;
3777    }
3778    _getDelegateConfig() {
3779      const config = {};
3780      for (const [key, value] of Object.entries(this._config)) {
3781        if (this.constructor.Default[key] !== value) {
3782          config[key] = value;
3783        }
3784      }
3785      config.selector = false;
3786      config.trigger = 'manual';
3787
3788      // In the future can be replaced with:
3789      // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
3790      // `Object.fromEntries(keysWithDifferentValues)`
3791      return config;
3792    }
3793    _disposePopper() {
3794      if (this._popper) {
3795        this._popper.destroy();
3796        this._popper = null;
3797      }
3798      if (this.tip) {
3799        this.tip.remove();
3800        this.tip = null;
3801      }
3802    }
3803
3804    // Static
3805    static jQueryInterface(config) {
3806      return this.each(function () {
3807        const data = Tooltip.getOrCreateInstance(this, config);
3808        if (typeof config !== 'string') {
3809          return;
3810        }
3811        if (typeof data[config] === 'undefined') {
3812          throw new TypeError(`No method named "${config}"`);
3813        }
3814        data[config]();
3815      });
3816    }
3817  }
3818
3819  /**
3820   * jQuery
3821   */
3822
3823  defineJQueryPlugin(Tooltip);
3824
3825  /**
3826   * --------------------------------------------------------------------------
3827   * Bootstrap popover.js
3828   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3829   * --------------------------------------------------------------------------
3830   */
3831
3832
3833  /**
3834   * Constants
3835   */
3836
3837  const NAME$3 = 'popover';
3838  const SELECTOR_TITLE = '.popover-header';
3839  const SELECTOR_CONTENT = '.popover-body';
3840  const Default$2 = {
3841    ...Tooltip.Default,
3842    content: '',
3843    offset: [0, 8],
3844    placement: 'right',
3845    template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
3846    trigger: 'click'
3847  };
3848  const DefaultType$2 = {
3849    ...Tooltip.DefaultType,
3850    content: '(null|string|element|function)'
3851  };
3852
3853  /**
3854   * Class definition
3855   */
3856
3857  class Popover extends Tooltip {
3858    // Getters
3859    static get Default() {
3860      return Default$2;
3861    }
3862    static get DefaultType() {
3863      return DefaultType$2;
3864    }
3865    static get NAME() {
3866      return NAME$3;
3867    }
3868
3869    // Overrides
3870    _isWithContent() {
3871      return this._getTitle() || this._getContent();
3872    }
3873
3874    // Private
3875    _getContentForTemplate() {
3876      return {
3877        [SELECTOR_TITLE]: this._getTitle(),
3878        [SELECTOR_CONTENT]: this._getContent()
3879      };
3880    }
3881    _getContent() {
3882      return this._resolvePossibleFunction(this._config.content);
3883    }
3884
3885    // Static
3886    static jQueryInterface(config) {
3887      return this.each(function () {
3888        const data = Popover.getOrCreateInstance(this, config);
3889        if (typeof config !== 'string') {
3890          return;
3891        }
3892        if (typeof data[config] === 'undefined') {
3893          throw new TypeError(`No method named "${config}"`);
3894        }
3895        data[config]();
3896      });
3897    }
3898  }
3899
3900  /**
3901   * jQuery
3902   */
3903
3904  defineJQueryPlugin(Popover);
3905
3906  /**
3907   * --------------------------------------------------------------------------
3908   * Bootstrap scrollspy.js
3909   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3910   * --------------------------------------------------------------------------
3911   */
3912
3913
3914  /**
3915   * Constants
3916   */
3917
3918  const NAME$2 = 'scrollspy';
3919  const DATA_KEY$2 = 'bs.scrollspy';
3920  const EVENT_KEY$2 = `.${DATA_KEY$2}`;
3921  const DATA_API_KEY = '.data-api';
3922  const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
3923  const EVENT_CLICK = `click${EVENT_KEY$2}`;
3924  const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
3925  const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
3926  const CLASS_NAME_ACTIVE$1 = 'active';
3927  const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
3928  const SELECTOR_TARGET_LINKS = '[href]';
3929  const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
3930  const SELECTOR_NAV_LINKS = '.nav-link';
3931  const SELECTOR_NAV_ITEMS = '.nav-item';
3932  const SELECTOR_LIST_ITEMS = '.list-group-item';
3933  const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
3934  const SELECTOR_DROPDOWN = '.dropdown';
3935  const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
3936  const Default$1 = {
3937    offset: null,
3938    // TODO: v6 @deprecated, keep it for backwards compatibility reasons
3939    rootMargin: '0px 0px -25%',
3940    smoothScroll: false,
3941    target: null,
3942    threshold: [0.1, 0.5, 1]
3943  };
3944  const DefaultType$1 = {
3945    offset: '(number|null)',
3946    // TODO v6 @deprecated, keep it for backwards compatibility reasons
3947    rootMargin: 'string',
3948    smoothScroll: 'boolean',
3949    target: 'element',
3950    threshold: 'array'
3951  };
3952
3953  /**
3954   * Class definition
3955   */
3956
3957  class ScrollSpy extends BaseComponent {
3958    constructor(element, config) {
3959      super(element, config);
3960
3961      // this._element is the observablesContainer and config.target the menu links wrapper
3962      this._targetLinks = new Map();
3963      this._observableSections = new Map();
3964      this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;
3965      this._activeTarget = null;
3966      this._observer = null;
3967      this._previousScrollData = {
3968        visibleEntryTop: 0,
3969        parentScrollTop: 0
3970      };
3971      this.refresh(); // initialize
3972    }
3973
3974    // Getters
3975    static get Default() {
3976      return Default$1;
3977    }
3978    static get DefaultType() {
3979      return DefaultType$1;
3980    }
3981    static get NAME() {
3982      return NAME$2;
3983    }
3984
3985    // Public
3986    refresh() {
3987      this._initializeTargetsAndObservables();
3988      this._maybeEnableSmoothScroll();
3989      if (this._observer) {
3990        this._observer.disconnect();
3991      } else {
3992        this._observer = this._getNewObserver();
3993      }
3994      for (const section of this._observableSections.values()) {
3995        this._observer.observe(section);
3996      }
3997    }
3998    dispose() {
3999      this._observer.disconnect();
4000      super.dispose();
4001    }
4002
4003    // Private
4004    _configAfterMerge(config) {
4005      // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case
4006      config.target = getElement(config.target) || document.body;
4007
4008      // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
4009      config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
4010      if (typeof config.threshold === 'string') {
4011        config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));
4012      }
4013      return config;
4014    }
4015    _maybeEnableSmoothScroll() {
4016      if (!this._config.smoothScroll) {
4017        return;
4018      }
4019
4020      // unregister any previous listeners
4021      EventHandler.off(this._config.target, EVENT_CLICK);
4022      EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {
4023        const observableSection = this._observableSections.get(event.target.hash);
4024        if (observableSection) {
4025          event.preventDefault();
4026          const root = this._rootElement || window;
4027          const height = observableSection.offsetTop - this._element.offsetTop;
4028          if (root.scrollTo) {
4029            root.scrollTo({
4030              top: height,
4031              behavior: 'smooth'
4032            });
4033            return;
4034          }
4035
4036          // Chrome 60 doesn't support `scrollTo`
4037          root.scrollTop = height;
4038        }
4039      });
4040    }
4041    _getNewObserver() {
4042      const options = {
4043        root: this._rootElement,
4044        threshold: this._config.threshold,
4045        rootMargin: this._config.rootMargin
4046      };
4047      return new IntersectionObserver(entries => this._observerCallback(entries), options);
4048    }
4049
4050    // The logic of selection
4051    _observerCallback(entries) {
4052      const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);
4053      const activate = entry => {
4054        this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
4055        this._process(targetElement(entry));
4056      };
4057      const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
4058      const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
4059      this._previousScrollData.parentScrollTop = parentScrollTop;
4060      for (const entry of entries) {
4061        if (!entry.isIntersecting) {
4062          this._activeTarget = null;
4063          this._clearActiveClass(targetElement(entry));
4064          continue;
4065        }
4066        const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;
4067        // if we are scrolling down, pick the bigger offsetTop
4068        if (userScrollsDown && entryIsLowerThanPrevious) {
4069          activate(entry);
4070          // if parent isn't scrolled, let's keep the first visible item, breaking the iteration
4071          if (!parentScrollTop) {
4072            return;
4073          }
4074          continue;
4075        }
4076
4077        // if we are scrolling up, pick the smallest offsetTop
4078        if (!userScrollsDown && !entryIsLowerThanPrevious) {
4079          activate(entry);
4080        }
4081      }
4082    }
4083    _initializeTargetsAndObservables() {
4084      this._targetLinks = new Map();
4085      this._observableSections = new Map();
4086      const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
4087      for (const anchor of targetLinks) {
4088        // ensure that the anchor has an id and is not disabled
4089        if (!anchor.hash || isDisabled(anchor)) {
4090          continue;
4091        }
4092        const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
4093
4094        // ensure that the observableSection exists & is visible
4095        if (isVisible(observableSection)) {
4096          this._targetLinks.set(decodeURI(anchor.hash), anchor);
4097          this._observableSections.set(anchor.hash, observableSection);
4098        }
4099      }
4100    }
4101    _process(target) {
4102      if (this._activeTarget === target) {
4103        return;
4104      }
4105      this._clearActiveClass(this._config.target);
4106      this._activeTarget = target;
4107      target.classList.add(CLASS_NAME_ACTIVE$1);
4108      this._activateParents(target);
4109      EventHandler.trigger(this._element, EVENT_ACTIVATE, {
4110        relatedTarget: target
4111      });
4112    }
4113    _activateParents(target) {
4114      // Activate dropdown parents
4115      if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
4116        SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
4117        return;
4118      }
4119      for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
4120        // Set triggered links parents as active
4121        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
4122        for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
4123          item.classList.add(CLASS_NAME_ACTIVE$1);
4124        }
4125      }
4126    }
4127    _clearActiveClass(parent) {
4128      parent.classList.remove(CLASS_NAME_ACTIVE$1);
4129      const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
4130      for (const node of activeNodes) {
4131        node.classList.remove(CLASS_NAME_ACTIVE$1);
4132      }
4133    }
4134
4135    // Static
4136    static jQueryInterface(config) {
4137      return this.each(function () {
4138        const data = ScrollSpy.getOrCreateInstance(this, config);
4139        if (typeof config !== 'string') {
4140          return;
4141        }
4142        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
4143          throw new TypeError(`No method named "${config}"`);
4144        }
4145        data[config]();
4146      });
4147    }
4148  }
4149
4150  /**
4151   * Data API implementation
4152   */
4153
4154  EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
4155    for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
4156      ScrollSpy.getOrCreateInstance(spy);
4157    }
4158  });
4159
4160  /**
4161   * jQuery
4162   */
4163
4164  defineJQueryPlugin(ScrollSpy);
4165
4166  /**
4167   * --------------------------------------------------------------------------
4168   * Bootstrap tab.js
4169   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4170   * --------------------------------------------------------------------------
4171   */
4172
4173
4174  /**
4175   * Constants
4176   */
4177
4178  const NAME$1 = 'tab';
4179  const DATA_KEY$1 = 'bs.tab';
4180  const EVENT_KEY$1 = `.${DATA_KEY$1}`;
4181  const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
4182  const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
4183  const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
4184  const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
4185  const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
4186  const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
4187  const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
4188  const ARROW_LEFT_KEY = 'ArrowLeft';
4189  const ARROW_RIGHT_KEY = 'ArrowRight';
4190  const ARROW_UP_KEY = 'ArrowUp';
4191  const ARROW_DOWN_KEY = 'ArrowDown';
4192  const HOME_KEY = 'Home';
4193  const END_KEY = 'End';
4194  const CLASS_NAME_ACTIVE = 'active';
4195  const CLASS_NAME_FADE$1 = 'fade';
4196  const CLASS_NAME_SHOW$1 = 'show';
4197  const CLASS_DROPDOWN = 'dropdown';
4198  const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
4199  const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
4200  const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`;
4201  const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
4202  const SELECTOR_OUTER = '.nav-item, .list-group-item';
4203  const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
4204  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6
4205  const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
4206  const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
4207
4208  /**
4209   * Class definition
4210   */
4211
4212  class Tab extends BaseComponent {
4213    constructor(element) {
4214      super(element);
4215      this._parent = this._element.closest(SELECTOR_TAB_PANEL);
4216      if (!this._parent) {
4217        return;
4218        // TODO: should throw exception in v6
4219        // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
4220      }
4221
4222      // Set up initial aria attributes
4223      this._setInitialAttributes(this._parent, this._getChildren());
4224      EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
4225    }
4226
4227    // Getters
4228    static get NAME() {
4229      return NAME$1;
4230    }
4231
4232    // Public
4233    show() {
4234      // Shows this elem and deactivate the active sibling if exists
4235      const innerElem = this._element;
4236      if (this._elemIsActive(innerElem)) {
4237        return;
4238      }
4239
4240      // Search for active tab on same parent to deactivate it
4241      const active = this._getActiveElem();
4242      const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
4243        relatedTarget: innerElem
4244      }) : null;
4245      const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
4246        relatedTarget: active
4247      });
4248      if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
4249        return;
4250      }
4251      this._deactivate(active, innerElem);
4252      this._activate(innerElem, active);
4253    }
4254
4255    // Private
4256    _activate(element, relatedElem) {
4257      if (!element) {
4258        return;
4259      }
4260      element.classList.add(CLASS_NAME_ACTIVE);
4261      this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section
4262
4263      const complete = () => {
4264        if (element.getAttribute('role') !== 'tab') {
4265          element.classList.add(CLASS_NAME_SHOW$1);
4266          return;
4267        }
4268        element.removeAttribute('tabindex');
4269        element.setAttribute('aria-selected', true);
4270        this._toggleDropDown(element, true);
4271        EventHandler.trigger(element, EVENT_SHOWN$1, {
4272          relatedTarget: relatedElem
4273        });
4274      };
4275      this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4276    }
4277    _deactivate(element, relatedElem) {
4278      if (!element) {
4279        return;
4280      }
4281      element.classList.remove(CLASS_NAME_ACTIVE);
4282      element.blur();
4283      this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too
4284
4285      const complete = () => {
4286        if (element.getAttribute('role') !== 'tab') {
4287          element.classList.remove(CLASS_NAME_SHOW$1);
4288          return;
4289        }
4290        element.setAttribute('aria-selected', false);
4291        element.setAttribute('tabindex', '-1');
4292        this._toggleDropDown(element, false);
4293        EventHandler.trigger(element, EVENT_HIDDEN$1, {
4294          relatedTarget: relatedElem
4295        });
4296      };
4297      this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4298    }
4299    _keydown(event) {
4300      if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
4301        return;
4302      }
4303      event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
4304      event.preventDefault();
4305      const children = this._getChildren().filter(element => !isDisabled(element));
4306      let nextActiveElement;
4307      if ([HOME_KEY, END_KEY].includes(event.key)) {
4308        nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
4309      } else {
4310        const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
4311        nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
4312      }
4313      if (nextActiveElement) {
4314        nextActiveElement.focus({
4315          preventScroll: true
4316        });
4317        Tab.getOrCreateInstance(nextActiveElement).show();
4318      }
4319    }
4320    _getChildren() {
4321      // collection of inner elements
4322      return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
4323    }
4324    _getActiveElem() {
4325      return this._getChildren().find(child => this._elemIsActive(child)) || null;
4326    }
4327    _setInitialAttributes(parent, children) {
4328      this._setAttributeIfNotExists(parent, 'role', 'tablist');
4329      for (const child of children) {
4330        this._setInitialAttributesOnChild(child);
4331      }
4332    }
4333    _setInitialAttributesOnChild(child) {
4334      child = this._getInnerElement(child);
4335      const isActive = this._elemIsActive(child);
4336      const outerElem = this._getOuterElement(child);
4337      child.setAttribute('aria-selected', isActive);
4338      if (outerElem !== child) {
4339        this._setAttributeIfNotExists(outerElem, 'role', 'presentation');
4340      }
4341      if (!isActive) {
4342        child.setAttribute('tabindex', '-1');
4343      }
4344      this._setAttributeIfNotExists(child, 'role', 'tab');
4345
4346      // set attributes to the related panel too
4347      this._setInitialAttributesOnTargetPanel(child);
4348    }
4349    _setInitialAttributesOnTargetPanel(child) {
4350      const target = SelectorEngine.getElementFromSelector(child);
4351      if (!target) {
4352        return;
4353      }
4354      this._setAttributeIfNotExists(target, 'role', 'tabpanel');
4355      if (child.id) {
4356        this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`);
4357      }
4358    }
4359    _toggleDropDown(element, open) {
4360      const outerElem = this._getOuterElement(element);
4361      if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
4362        return;
4363      }
4364      const toggle = (selector, className) => {
4365        const element = SelectorEngine.findOne(selector, outerElem);
4366        if (element) {
4367          element.classList.toggle(className, open);
4368        }
4369      };
4370      toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
4371      toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
4372      outerElem.setAttribute('aria-expanded', open);
4373    }
4374    _setAttributeIfNotExists(element, attribute, value) {
4375      if (!element.hasAttribute(attribute)) {
4376        element.setAttribute(attribute, value);
4377      }
4378    }
4379    _elemIsActive(elem) {
4380      return elem.classList.contains(CLASS_NAME_ACTIVE);
4381    }
4382
4383    // Try to get the inner element (usually the .nav-link)
4384    _getInnerElement(elem) {
4385      return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
4386    }
4387
4388    // Try to get the outer element (usually the .nav-item)
4389    _getOuterElement(elem) {
4390      return elem.closest(SELECTOR_OUTER) || elem;
4391    }
4392
4393    // Static
4394    static jQueryInterface(config) {
4395      return this.each(function () {
4396        const data = Tab.getOrCreateInstance(this);
4397        if (typeof config !== 'string') {
4398          return;
4399        }
4400        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
4401          throw new TypeError(`No method named "${config}"`);
4402        }
4403        data[config]();
4404      });
4405    }
4406  }
4407
4408  /**
4409   * Data API implementation
4410   */
4411
4412  EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
4413    if (['A', 'AREA'].includes(this.tagName)) {
4414      event.preventDefault();
4415    }
4416    if (isDisabled(this)) {
4417      return;
4418    }
4419    Tab.getOrCreateInstance(this).show();
4420  });
4421
4422  /**
4423   * Initialize on focus
4424   */
4425  EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
4426    for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
4427      Tab.getOrCreateInstance(element);
4428    }
4429  });
4430  /**
4431   * jQuery
4432   */
4433
4434  defineJQueryPlugin(Tab);
4435
4436  /**
4437   * --------------------------------------------------------------------------
4438   * Bootstrap toast.js
4439   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4440   * --------------------------------------------------------------------------
4441   */
4442
4443
4444  /**
4445   * Constants
4446   */
4447
4448  const NAME = 'toast';
4449  const DATA_KEY = 'bs.toast';
4450  const EVENT_KEY = `.${DATA_KEY}`;
4451  const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
4452  const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
4453  const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
4454  const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
4455  const EVENT_HIDE = `hide${EVENT_KEY}`;
4456  const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
4457  const EVENT_SHOW = `show${EVENT_KEY}`;
4458  const EVENT_SHOWN = `shown${EVENT_KEY}`;
4459  const CLASS_NAME_FADE = 'fade';
4460  const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility
4461  const CLASS_NAME_SHOW = 'show';
4462  const CLASS_NAME_SHOWING = 'showing';
4463  const DefaultType = {
4464    animation: 'boolean',
4465    autohide: 'boolean',
4466    delay: 'number'
4467  };
4468  const Default = {
4469    animation: true,
4470    autohide: true,
4471    delay: 5000
4472  };
4473
4474  /**
4475   * Class definition
4476   */
4477
4478  class Toast extends BaseComponent {
4479    constructor(element, config) {
4480      super(element, config);
4481      this._timeout = null;
4482      this._hasMouseInteraction = false;
4483      this._hasKeyboardInteraction = false;
4484      this._setListeners();
4485    }
4486
4487    // Getters
4488    static get Default() {
4489      return Default;
4490    }
4491    static get DefaultType() {
4492      return DefaultType;
4493    }
4494    static get NAME() {
4495      return NAME;
4496    }
4497
4498    // Public
4499    show() {
4500      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
4501      if (showEvent.defaultPrevented) {
4502        return;
4503      }
4504      this._clearTimeout();
4505      if (this._config.animation) {
4506        this._element.classList.add(CLASS_NAME_FADE);
4507      }
4508      const complete = () => {
4509        this._element.classList.remove(CLASS_NAME_SHOWING);
4510        EventHandler.trigger(this._element, EVENT_SHOWN);
4511        this._maybeScheduleHide();
4512      };
4513      this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated
4514      reflow(this._element);
4515      this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
4516      this._queueCallback(complete, this._element, this._config.animation);
4517    }
4518    hide() {
4519      if (!this.isShown()) {
4520        return;
4521      }
4522      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
4523      if (hideEvent.defaultPrevented) {
4524        return;
4525      }
4526      const complete = () => {
4527        this._element.classList.add(CLASS_NAME_HIDE); // @deprecated
4528        this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
4529        EventHandler.trigger(this._element, EVENT_HIDDEN);
4530      };
4531      this._element.classList.add(CLASS_NAME_SHOWING);
4532      this._queueCallback(complete, this._element, this._config.animation);
4533    }
4534    dispose() {
4535      this._clearTimeout();
4536      if (this.isShown()) {
4537        this._element.classList.remove(CLASS_NAME_SHOW);
4538      }
4539      super.dispose();
4540    }
4541    isShown() {
4542      return this._element.classList.contains(CLASS_NAME_SHOW);
4543    }
4544
4545    // Private
vendor: 1,687 bytes, lines 4546-4599
4546
4547    _maybeScheduleHide() {
4548      if (!this._config.autohide) {
4549        return;
4550      }
4551      if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
4552        return;
4553      }
4554      this._timeout = setTimeout(() => {
4555        this.hide();
4556      }, this._config.delay);
4557    }
4558    _onInteraction(event, isInteracting) {
4559      switch (event.type) {
4560        case 'mouseover':
4561        case 'mouseout':
4562          {
4563            this._hasMouseInteraction = isInteracting;
4564            break;
4565          }
4566        case 'focusin':
4567        case 'focusout':
4568          {
4569            this._hasKeyboardInteraction = isInteracting;
4570            break;
4571          }
4572      }
4573      if (isInteracting) {
4574        this._clearTimeout();
4575        return;
4576      }
4577      const nextElement = event.relatedTarget;
4578      if (this._element === nextElement || this._element.contains(nextElement)) {
4579        return;
4580      }
4581      this._maybeScheduleHide();
4582    }
4583    _setListeners() {
4584      EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));
4585      EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));
4586      EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));
4587      EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));
4588    }
4589    _clearTimeout() {
4590      clearTimeout(this._timeout);
4591      this._timeout = null;
4592    }
4593
4594    // Static
4595    static jQueryInterface(config) {
4596      return this.each(function () {
4597        const data = Toast.getOrCreateInstance(this, config);
4598        if (typeof config === 'string') {
4599          if (typeof data[config] === 'undefined') {
4600            throw new TypeError(`No method named "${config}"`);
4601          }
4602          data[config](this);
4603        }
4604      });
4605    }
4606  }
4607
4608  /**
4609   * Data API implementation
4610   */
4611
4612  enableDismissTrigger(Toast);
4613
4614  /**
4615   * jQuery
4616   */
4617
4618  defineJQueryPlugin(Toast);
4619
4620  /**
4621   * --------------------------------------------------------------------------
4622   * Bootstrap index.umd.js
4623   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4624   * --------------------------------------------------------------------------
4625   */
4626
4627  const index_umd = {
4628    Alert,
4629    Button,
4630    Carousel,
4631    Collapse,
4632    Dropdown,
4633    Modal,
4634    Offcanvas,
4635    Popover,
4636    ScrollSpy,
4637    Tab,
4638    Toast,
4639    Tooltip
4640  };
4641
4642  return index_umd;
4643
4644}));
4645//# sourceMappingURL=bootstrap.js.map
4646
vendor: 43,577 bytes, line 4647
4647!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(d){"use strict";var s,l=window.Slick||{};s=0,(l=function(i,e){var t,o=this;o.defaults={adaptiveHeight:!1,appendArrows:d(i),appendDots:d(i),arrows:!0,arrowsPlacement:null,asNavFor:null,prevArrow:'<button class="slick-prev" type="button"><span class="slick-prev-icon" aria-hidden="true"></span><span class="slick-sr-only">Previous</span></button>',nextArrow:'<button class="slick-next" type="button"><span class="slick-next-icon" aria-hidden="true"></span><span class="slick-sr-only">Next</span></button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(i,e){return d('<button type="button"><span class="slick-dot-icon" aria-hidden="true"></span><span class="slick-sr-only">Go to slide '+(e+1)+"</span></button>")},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,infinite:!0,initialSlide:0,instructionsText:null,lazyLoad:"ondemand",mobileFirst:!1,playIcon:'<span class="slick-play-icon" aria-hidden="true"></span>',pauseIcon:'<span class="slick-pause-icon" aria-hidden="true"></span>',pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,regionLabel:"carousel",respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useAutoplayToggleButton:!0,useCSS:!0,useGroupRole:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},o.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,$instructionsText:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$pauseButton:null,$pauseIcon:null,$playIcon:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},d.extend(o,o.initials),o.activeBreakpoint=null,o.animType=null,o.animProp=null,o.breakpoints=[],o.breakpointSettings=[],o.cssTransitions=!1,o.focussed=!1,o.interrupted=!1,o.hidden="hidden",o.paused=!0,o.positionProp=null,o.respondTo=null,o.rowCount=1,o.shouldClick=!0,o.$slider=d(i),o.$slidesCache=null,o.transformType=null,o.transitionType=null,o.visibilityChange="visibilitychange",o.windowWidth=0,o.windowTimer=null,t=d(i).data("slick")||{},o.options=d.extend({},o.defaults,e,t),o.currentSlide=o.options.initialSlide,o.originalSettings=o.options,void 0!==document.mozHidden?(o.hidden="mozHidden",o.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(o.hidden="webkitHidden",o.visibilityChange="webkitvisibilitychange"),o.autoPlay=d.proxy(o.autoPlay,o),o.autoPlayClear=d.proxy(o.autoPlayClear,o),o.autoPlayIterator=d.proxy(o.autoPlayIterator,o),o.autoPlayToggleHandler=d.proxy(o.autoPlayToggleHandler,o),o.changeSlide=d.proxy(o.changeSlide,o),o.clickHandler=d.proxy(o.clickHandler,o),o.selectHandler=d.proxy(o.selectHandler,o),o.setPosition=d.proxy(o.setPosition,o),o.swipeHandler=d.proxy(o.swipeHandler,o),o.dragHandler=d.proxy(o.dragHandler,o),o.instanceUid=s++,o.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,o.registerBreakpoints(),o.init(!0)}).prototype.addSlide=l.prototype.slickAdd=function(i,e,t){var o=this;if("boolean"==typeof e)t=e,e=null;else if(e<0||e>=o.slideCount)return!1;o.unload(),"number"==typeof e?0===e&&0===o.$slides.length?d(i).appendTo(o.$slideTrack):t?d(i).insertBefore(o.$slides.eq(e)):d(i).insertAfter(o.$slides.eq(e)):!0===t?d(i).prependTo(o.$slideTrack):d(i).appendTo(o.$slideTrack),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slides.each(function(i,e){d(e).attr("data-slick-index",i),d(e).attr("role","group"),d(e).attr("aria-label","slide "+i)}),o.$slidesCache=o.$slides,o.reinit()},l.prototype.animateHeight=function(){var i,e=this;1===e.options.slidesToShow&&!0===e.options.adaptiveHeight&&!1===e.options.vertical&&(i=e.$slides.eq(e.currentSlide).outerHeight(!0),e.$list.animate({height:i},e.options.speed))},l.prototype.animateSlide=function(i,e){var t={},o=this;o.animateHeight(),!0===o.options.rtl&&!1===o.options.vertical&&(i=-i),!1===o.transformsEnabled?!1===o.options.vertical?o.$slideTrack.animate({left:i},o.options.speed,o.options.easing,e):o.$slideTrack.animate({top:i},o.options.speed,o.options.easing,e):!1===o.cssTransitions?(!0===o.options.rtl&&(o.currentLeft=-o.currentLeft),d({animStart:o.currentLeft}).animate({animStart:i},{duration:o.options.speed,easing:o.options.easing,step:function(i){i=Math.ceil(i),!1===o.options.vertical?t[o.animType]="translate("+i+"px, 0px)":t[o.animType]="translate(0px,"+i+"px)",o.$slideTrack.css(t)},complete:function(){e&&e.call()}})):(o.applyTransition(),i=Math.ceil(i),!1===o.options.vertical?t[o.animType]="translate3d("+i+"px, 0px, 0px)":t[o.animType]="translate3d(0px,"+i+"px, 0px)",o.$slideTrack.css(t),e&&setTimeout(function(){o.disableTransition(),e.call()},o.options.speed))},l.prototype.getNavTarget=function(){var i=this.options.asNavFor;return i&&null!==i&&(i=d(i).not(this.$slider)),i},l.prototype.asNavFor=function(e){var i=this.getNavTarget();null!==i&&"object"==typeof i&&i.each(function(){var i=d(this).slick("getSlick");i.unslicked||i.slideHandler(e,!0)})},l.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},l.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},l.prototype.autoPlayClear=function(){this.autoPlayTimer&&clearInterval(this.autoPlayTimer)},l.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},l.prototype.autoPlayToggleHandler=function(){var i=this;i.paused?(i.$playIcon.css("display","none"),i.$pauseIcon.css("display","inline"),i.$pauseButton.find(".slick-play-text").attr("style","display: none"),i.$pauseButton.find(".slick-pause-text").removeAttr("style"),i.slickPlay()):(i.$playIcon.css("display","inline"),i.$pauseIcon.css("display","none"),i.$pauseButton.find(".slick-play-text").removeAttr("style"),i.$pauseButton.find(".slick-pause-text").attr("style","display: none"),i.slickPause())},l.prototype.buildArrows=function(){var i=this;if(!0===i.options.arrows)if(i.$prevArrow=d(i.options.prevArrow).addClass("slick-arrow"),i.$nextArrow=d(i.options.nextArrow).addClass("slick-arrow"),i.slideCount>i.options.slidesToShow){if(i.htmlExpr.test(i.options.prevArrow))if(null!=i.options.arrowsPlacement)switch(i.options.arrowsPlacement){case"beforeSlides":case"split":console.log("test"),i.$prevArrow.prependTo(i.options.appendArrows);break;case"afterSlides":i.$prevArrow.appendTo(i.options.appendArrows)}else i.$prevArrow.prependTo(i.options.appendArrows);if(i.htmlExpr.test(i.options.nextArrow))if(null!=i.options.arrowsPlacement)switch(i.options.arrowsPlacement){case"beforeSlides":console.log("test2"),i.$prevArrow.after(i.$nextArrow);break;case"afterSlides":case"split":i.$nextArrow.appendTo(i.options.appendArrows)}else i.$nextArrow.appendTo(i.options.appendArrows);!0!==i.options.infinite&&i.$prevArrow.addClass("slick-disabled").prop("disabled",!0)}else i.$prevArrow.add(i.$nextArrow).addClass("slick-hidden").prop("disabled",!0)},l.prototype.buildDots=function(){var i,e,t=this;if(!0===t.options.dots&&t.slideCount>t.options.slidesToShow){for(t.$slider.addClass("slick-dotted"),e=d("<ul />").addClass(t.options.dotsClass),i=0;i<=t.getDotCount();i+=1)e.append(d("<li />").append(t.options.customPaging.call(this,t,i)));t.$dots=e.appendTo(t.options.appendDots),t.$dots.find("li").first().addClass("slick-active")}},l.prototype.buildOut=function(){var t=this;t.$slides=t.$slider.children(t.options.slide+":not(.slick-cloned)").addClass("slick-slide"),t.slideCount=t.$slides.length,t.$slides.each(function(i,e){d(e).attr("data-slick-index",i).data("originalStyling",d(e).attr("style")||""),t.options.useGroupRole&&d(e).attr("role","group").attr("aria-label","slide "+(i+1))}),t.$slider.addClass("slick-slider"),t.$slider.attr("role","region"),t.$slider.attr("aria-label",t.options.regionLabel),t.$slideTrack=0===t.slideCount?d('<div class="slick-track"/>').appendTo(t.$slider):t.$slides.wrapAll('<div class="slick-track"/>').parent(),t.$list=t.$slideTrack.wrap('<div class="slick-list"/>').parent(),t.$slideTrack.css("opacity",0),!0!==t.options.centerMode&&!0!==t.options.swipeToSlide||(t.options.slidesToScroll=1),d("img[data-lazy]",t.$slider).not("[src]").addClass("slick-loading"),t.setupInfinite(),t.buildArrows(),t.buildDots(),t.updateDots(),t.setSlideClasses("number"==typeof t.currentSlide?t.currentSlide:0),!0===t.options.draggable&&t.$list.addClass("draggable"),t.options.autoplay&&t.options.useAutoplayToggleButton&&(t.$pauseIcon=d(t.options.pauseIcon).attr("aria-hidden",!0),t.$playIcon=d(t.options.playIcon).attr("aria-hidden",!0),t.$pauseButton=d('<button type="button" class="slick-autoplay-toggle-button">'),t.$pauseButton.append(t.$pauseIcon),t.$pauseButton.append(t.$playIcon.css("display","none")),t.$pauseButton.append(d('<span class="slick-pause-text slick-sr-only">Pause</span>')),t.$pauseButton.append(d('<span class="slick-play-text slick-sr-only" style="display: none">Play</span>')),t.$pauseButton.prependTo(t.$slider)),null!=t.options.instructionsText&&""!=t.options.instructionsText&&(t.$instructionsText=d('<p class="slick-instructions slick-sr-only">'+t.options.instructionsText+"</p>"),t.$instructionsText.prependTo(t.$slider))},l.prototype.buildRows=function(){var i,e,t,o=this,s=document.createDocumentFragment(),n=o.$slider.children();if(0<o.options.rows){for(t=o.options.slidesPerRow*o.options.rows,e=Math.ceil(n.length/t),i=0;i<e;i++){for(var l=document.createElement("div"),r=0;r<o.options.rows;r++){for(var a=document.createElement("div"),d=0;d<o.options.slidesPerRow;d++){var p=i*t+(r*o.options.slidesPerRow+d);n.get(p)&&a.appendChild(n.get(p))}l.appendChild(a)}s.appendChild(l)}o.$slider.empty().append(s),o.$slider.children().children().children().css({width:100/o.options.slidesPerRow+"%",display:"inline-block"})}},l.prototype.checkResponsive=function(i,e){var t,o,s,n=this,l=!1,r=n.$slider.width(),a=window.innerWidth||d(window).width();if("window"===n.respondTo?s=a:"slider"===n.respondTo?s=r:"min"===n.respondTo&&(s=Math.min(a,r)),n.options.responsive&&n.options.responsive.length&&null!==n.options.responsive){for(t in o=null,n.breakpoints)n.breakpoints.hasOwnProperty(t)&&(!1===n.originalSettings.mobileFirst?s<n.breakpoints[t]&&(o=n.breakpoints[t]):s>n.breakpoints[t]&&(o=n.breakpoints[t]));null!==o?null!==n.activeBreakpoint&&o===n.activeBreakpoint&&!e||(n.activeBreakpoint=o,"unslick"===n.breakpointSettings[o]?n.unslick(o):(n.options=d.extend({},n.originalSettings,n.breakpointSettings[o]),!0===i&&(n.currentSlide=n.options.initialSlide),n.refresh(i)),l=o):null!==n.activeBreakpoint&&(n.activeBreakpoint=null,n.options=n.originalSettings,!0===i&&(n.currentSlide=n.options.initialSlide),n.refresh(i),l=o),i||!1===l||n.$slider.trigger("breakpoint",[n,l])}},l.prototype.changeSlide=function(i,e){var t,o,s=this,n=d(i.currentTarget);switch(n.is("a")&&i.preventDefault(),n.is("li")||(n=n.closest("li")),t=s.slideCount%s.options.slidesToScroll!=0?0:(s.slideCount-s.currentSlide)%s.options.slidesToScroll,i.data.message){case"previous":o=0==t?s.options.slidesToScroll:s.options.slidesToShow-t,s.slideCount>s.options.slidesToShow&&s.slideHandler(s.currentSlide-o,!1,e);break;case"next":o=0==t?s.options.slidesToScroll:t,s.slideCount>s.options.slidesToShow&&s.slideHandler(s.currentSlide+o,!1,e);break;case"index":var l=0===i.data.index?0:i.data.index||n.index()*s.options.slidesToScroll;s.slideHandler(s.checkNavigable(l),!1,e),n.children().trigger("focus");break;default:return}},l.prototype.checkNavigable=function(i){var e=this.getNavigableIndexes(),t=0;if(i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},l.prototype.cleanUpEvents=function(){var i=this;i.options.autoplay&&i.options.useAutoplayToggleButton&&i.$pauseButton.off("click.slick",i.autoPlayToggleHandler),i.options.dots&&null!==i.$dots&&d("li",i.$dots).off("click.slick",i.changeSlide).off("mouseenter.slick",d.proxy(i.interrupt,i,!0)).off("mouseleave.slick",d.proxy(i.interrupt,i,!1)),i.$slider.off("focus.slick blur.slick"),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow&&i.$prevArrow.off("click.slick",i.changeSlide),i.$nextArrow&&i.$nextArrow.off("click.slick",i.changeSlide)),i.$list.off("touchstart.slick mousedown.slick",i.swipeHandler),i.$list.off("touchmove.slick mousemove.slick",i.swipeHandler),i.$list.off("touchend.slick mouseup.slick",i.swipeHandler),i.$list.off("touchcancel.slick mouseleave.slick",i.swipeHandler),i.$list.off("click.slick",i.clickHandler),d(document).off(i.visibilityChange,i.visibility),i.cleanUpSlideEvents(),d(window).off("orientationchange.slick.slick-"+i.instanceUid,i.orientationChange),d(window).off("resize.slick.slick-"+i.instanceUid,i.resize),d("[draggable!=true]",i.$slideTrack).off("dragstart",i.preventDefault),d(window).off("load.slick.slick-"+i.instanceUid,i.setPosition)},l.prototype.cleanUpSlideEvents=function(){var i=this;i.$list.off("mouseenter.slick",d.proxy(i.interrupt,i,!0)),i.$list.off("mouseleave.slick",d.proxy(i.interrupt,i,!1))},l.prototype.cleanUpRows=function(){var i;0<this.options.rows&&((i=this.$slides.children().children()).removeAttr("style"),this.$slider.empty().append(i))},l.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},l.prototype.destroy=function(i){var e=this;e.autoPlayClear(),e.touchObject={},e.cleanUpEvents(),d(".slick-cloned",e.$slider).detach(),e.options.autoplay&&e.options.useAutoplayToggleButton&&e.$pauseButton.remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.$prevArrow.length&&(e.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").prop("disabled",!1).css("display",""),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove()),e.$nextArrow&&e.$nextArrow.length&&(e.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").prop("disabled",!1).css("display",""),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove()),e.$slides&&(e.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){d(this).attr("style",d(this).data("originalStyling"))}),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.detach(),e.$list.detach(),e.$slider.append(e.$slides)),e.cleanUpRows(),e.$slider.removeClass("slick-slider"),e.$slider.removeClass("slick-initialized"),e.$slider.removeClass("slick-dotted"),e.unslicked=!0,i||e.$slider.trigger("destroy",[e])},l.prototype.disableTransition=function(i){var e={};e[this.transitionType]="",!1===this.options.fade?this.$slideTrack.css(e):this.$slides.eq(i).css(e)},l.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},l.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},l.prototype.filterSlides=l.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},l.prototype.focusHandler=function(){var t=this;t.$slider.off("focus.slick blur.slick").on("focus.slick","*",function(i){var e=d(this);setTimeout(function(){t.options.pauseOnFocus&&e.is(":focus")&&(t.focussed=!0,t.autoPlay())},0)}).on("blur.slick","*",function(i){d(this);t.options.pauseOnFocus&&(t.focussed=!1,t.autoPlay())})},l.prototype.getCurrent=l.prototype.slickCurrentSlide=function(){return this.currentSlide},l.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},l.prototype.getLeft=function(i){var e,t,o,s,n=this,l=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),l=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(l=i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,l=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(l=n.slideOffset=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+l,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},l.prototype.getOption=l.prototype.slickGetOption=function(i){return this.options[i]},l.prototype.getNavigableIndexes=function(){for(var i=this,e=0,t=0,o=[],s=!1===i.options.infinite?i.slideCount:(e=-1*i.options.slidesToScroll,t=-1*i.options.slidesToScroll,2*i.slideCount);e<s;)o.push(e),e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;return o},l.prototype.getSlick=function(){return this},l.prototype.getSlideCount=function(){var s,n=this,i=!0===n.options.centerMode?Math.floor(n.$list.width()/2):0,l=-1*n.swipeLeft+i;return!0===n.options.swipeToSlide?(n.$slideTrack.find(".slick-slide").each(function(i,e){var t=d(e).outerWidth(),o=e.offsetLeft;if(!0!==n.options.centerMode&&(o+=t/2),l<o+t)return s=e,!1}),Math.abs(d(s).attr("data-slick-index")-n.currentSlide)||1):n.options.slidesToScroll},l.prototype.goTo=l.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:parseInt(i)}},e)},l.prototype.init=function(i){var e=this;d(e.$slider).hasClass("slick-initialized")||(d(e.$slider).addClass("slick-initialized"),e.buildRows(),e.buildOut(),e.setProps(),e.startLoad(),e.loadSlider(),e.initializeEvents(),e.updateArrows(),e.updateDots(),e.checkResponsive(!0),e.focusHandler()),i&&e.$slider.trigger("init",[e]),e.options.autoplay&&(e.paused=!1,e.autoPlay()),e.updateSlideVisibility(),null!=e.options.accessibility&&console.warn("accessibility setting is no longer supported."),null!=e.options.focusOnChange&&console.warn("focusOnChange is no longer supported."),null!=e.options.focusOnSelect&&console.warn("focusOnSelect is no longer supported.")},l.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide))},l.prototype.initDotEvents=function(){var i=this;!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&d("li",i.$dots).on("click.slick",{message:"index"},i.changeSlide),!0===i.options.dots&&!0===i.options.pauseOnDotsHover&&i.slideCount>i.options.slidesToShow&&d("li",i.$dots).on("mouseenter.slick",d.proxy(i.interrupt,i,!0)).on("mouseleave.slick",d.proxy(i.interrupt,i,!1))},l.prototype.initSlideEvents=function(){var i=this;i.options.pauseOnHover&&(i.$list.on("mouseenter.slick",d.proxy(i.interrupt,i,!0)),i.$list.on("mouseleave.slick",d.proxy(i.interrupt,i,!1)))},l.prototype.initializeEvents=function(){var i=this;i.initArrowEvents(),i.initDotEvents(),i.initSlideEvents(),i.options.autoplay&&i.options.useAutoplayToggleButton&&i.$pauseButton.on("click.slick",i.autoPlayToggleHandler),i.$list.on("touchstart.slick mousedown.slick",{action:"start"},i.swipeHandler),i.$list.on("touchmove.slick mousemove.slick",{action:"move"},i.swipeHandler),i.$list.on("touchend.slick mouseup.slick",{action:"end"},i.swipeHandler),i.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},i.swipeHandler),i.$list.on("click.slick",i.clickHandler),d(document).on(i.visibilityChange,d.proxy(i.visibility,i)),d(window).on("orientationchange.slick.slick-"+i.instanceUid,d.proxy(i.orientationChange,i)),d(window).on("resize.slick.slick-"+i.instanceUid,d.proxy(i.resize,i)),d("[draggable!=true]",i.$slideTrack).on("dragstart",i.preventDefault),d(window).on("load.slick.slick-"+i.instanceUid,i.setPosition),d(i.setPosition)},l.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},l.prototype.lazyLoad=function(){var i,e,t,n=this;function o(i){d("img[data-lazy]",i).each(function(){var i=d(this),e=d(this).attr("data-lazy"),t=d(this).attr("data-srcset"),o=d(this).attr("data-sizes")||n.$slider.attr("data-sizes"),s=document.createElement("img");s.onload=function(){i.animate({opacity:0},100,function(){t&&(i.attr("srcset",t),o&&i.attr("sizes",o)),i.attr("src",e).animate({opacity:1},200,function(){i.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,i,e])})},s.onerror=function(){i.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,i,e])},s.src=e})}if(!0===n.options.centerMode?t=!0===n.options.infinite?(e=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(e=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),n.options.slidesToShow/2+1+2+n.currentSlide):(e=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,t=Math.ceil(e+n.options.slidesToShow),!0===n.options.fade&&(0<e&&e--,t<=n.slideCount&&t++)),i=n.$slider.find(".slick-slide").slice(e,t),"anticipated"===n.options.lazyLoad)for(var s=e-1,l=t,r=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)s<0&&(s=n.slideCount-1),i=(i=i.add(r.eq(s))).add(r.eq(l)),s--,l++;o(i),n.slideCount<=n.options.slidesToShow?o(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?o(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&o(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},l.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},l.prototype.next=l.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},l.prototype.orientationChange=function(){this.checkResponsive(),this.setPosition()},l.prototype.pause=l.prototype.slickPause=function(){this.autoPlayClear(),this.paused=!0},l.prototype.play=l.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},l.prototype.postSlide=function(i){var e=this;e.unslicked||(e.$slider.trigger("afterChange",[e,i]),e.animating=!1,e.slideCount>e.options.slidesToShow&&e.setPosition(),e.swipeLeft=null,e.options.autoplay&&e.autoPlay(),e.updateSlideVisibility())},l.prototype.prev=l.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},l.prototype.preventDefault=function(i){i.preventDefault()},l.prototype.progressiveLazyLoad=function(i){i=i||1;var e,t,o,s,n,l=this,r=d("img[data-lazy]",l.$slider);r.length?(e=r.first(),t=e.attr("data-lazy"),o=e.attr("data-srcset"),s=e.attr("data-sizes")||l.$slider.attr("data-sizes"),(n=document.createElement("img")).onload=function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,e,t]),l.progressiveLazyLoad()},n.onerror=function(){i<3?setTimeout(function(){l.progressiveLazyLoad(i+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,e,t]),l.progressiveLazyLoad())},n.src=t):l.$slider.trigger("allImagesLoaded",[l])},l.prototype.refresh=function(i){var e,t=this,o=t.slideCount-t.options.slidesToShow;!t.options.infinite&&t.currentSlide>o&&(t.currentSlide=o),t.slideCount<=t.options.slidesToShow&&(t.currentSlide=0),e=t.currentSlide,t.destroy(!0),d.extend(t,t.initials,{currentSlide:e}),t.init(),i||t.changeSlide({data:{message:"index",index:e}},!1)},l.prototype.registerBreakpoints=function(){var i,e,t,o=this,s=o.options.responsive||null;if("array"===d.type(s)&&s.length){for(i in o.respondTo=o.options.respondTo||"window",s)if(t=o.breakpoints.length-1,s.hasOwnProperty(i)){for(e=s[i].breakpoint;0<=t;)o.breakpoints[t]&&o.breakpoints[t]===e&&o.breakpoints.splice(t,1),t--;o.breakpoints.push(e),o.breakpointSettings[e]=s[i].settings}o.breakpoints.sort(function(i,e){return o.options.mobileFirst?i-e:e-i})}},l.prototype.reinit=function(){var i=this;i.$slides=i.$slideTrack.children(i.options.slide).addClass("slick-slide"),i.slideCount=i.$slides.length,i.currentSlide>=i.slideCount&&0!==i.currentSlide&&(i.currentSlide=i.currentSlide-i.options.slidesToScroll),i.slideCount<=i.options.slidesToShow&&(i.currentSlide=0),i.registerBreakpoints(),i.setProps(),i.setupInfinite(),i.buildArrows(),i.updateArrows(),i.initArrowEvents(),i.buildDots(),i.updateDots(),i.initDotEvents(),i.cleanUpSlideEvents(),i.initSlideEvents(),i.checkResponsive(!1,!0),i.setSlideClasses("number"==typeof i.currentSlide?i.currentSlide:0),i.setPosition(),i.focusHandler(),i.paused=!i.options.autoplay,i.autoPlay(),i.$slider.trigger("reInit",[i])},l.prototype.resize=function(){var i=this;d(window).width()!==i.windowWidth&&(clearTimeout(i.windowDelay),i.windowDelay=window.setTimeout(function(){i.windowWidth=d(window).width(),i.checkResponsive(),i.unslicked||i.setPosition()},50))},l.prototype.removeSlide=l.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},l.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled||(!(s={})===o.cssTransitions?s[o.animType]="translate("+e+", "+t+")":s[o.animType]="translate3d("+e+", "+t+", 0px)"),o.$slideTrack.css(s)},l.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},l.prototype.setFade=function(){var t,o=this;o.$slides.each(function(i,e){t=o.slideWidth*i*-1,!0===o.options.rtl?d(e).css({position:"relative",right:t,top:0,zIndex:o.options.zIndex-2,opacity:0}):d(e).css({position:"relative",left:t,top:0,zIndex:o.options.zIndex-2,opacity:0})}),o.$slides.eq(o.currentSlide).css({zIndex:o.options.zIndex-1,opacity:1})},l.prototype.setHeight=function(){var i,e=this;1===e.options.slidesToShow&&!0===e.options.adaptiveHeight&&!1===e.options.vertical&&(i=e.$slides.eq(e.currentSlide).outerHeight(!0),e.$list.css("height",i))},l.prototype.setOption=l.prototype.slickSetOption=function(){var i,e,t,o,s,n=this,l=!1;if("object"===d.type(arguments[0])?(t=arguments[0],l=arguments[1],s="multiple"):"string"===d.type(arguments[0])&&(o=arguments[1],l=arguments[2],"responsive"===(t=arguments[0])&&"array"===d.type(arguments[1])?s="responsive":void 0!==arguments[1]&&(s="single")),"single"===s)n.options[t]=o;else if("multiple"===s)d.each(t,function(i,e){n.options[i]=e});else if("responsive"===s)for(e in o)if("array"!==d.type(n.options.responsive))n.options.responsive=[o[e]];else{for(i=n.options.responsive.length-1;0<=i;)n.options.responsive[i].breakpoint===o[e].breakpoint&&n.options.responsive.splice(i,1),i--;n.options.responsive.push(o[e])}l&&(n.unload(),n.reinit())},l.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},l.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},l.prototype.setSlideClasses=function(i){var e,t,o,s,n=this,l=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true").attr("aria-label",function(){return d(this).attr("aria-label").replace(" (centered)","")});n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode?(o=n.options.slidesToShow%2==0?1:0,s=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(s<=i&&i<=n.slideCount-1-s?n.$slides.slice(i-s+o,i+s+1).addClass("slick-active").removeAttr("aria-hidden"):(e=n.options.slidesToShow+i,l.slice(e-s+1+o,e+s+2).addClass("slick-active").removeAttr("aria-hidden")),0===i?l.eq(n.options.slidesToShow+n.slideCount+1).addClass("slick-center").attr("aria-label",function(){return d(this).attr("aria-label")+" (centered)"}):i===n.slideCount-1&&l.eq(n.options.slidesToShow).addClass("slick-center").attr("aria-label",function(){return d(this).attr("aria-label")+" (centered)"})),n.$slides.eq(i).addClass("slick-center").attr("aria-label",function(){return d(this).attr("aria-label")+" (centered)"})):0<=i&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").removeAttr("aria-hidden"):l.length<=n.options.slidesToShow?l.addClass("slick-active").removeAttr("aria-hidden"):(t=n.slideCount%n.options.slidesToShow,e=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?l.slice(e-(n.options.slidesToShow-t),e+t).addClass("slick-active").removeAttr("aria-hidden"):l.slice(e,e+n.options.slidesToShow).addClass("slick-active").removeAttr("aria-hidden")),"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},l.prototype.setupInfinite=function(){var i,e,t,o=this;if(!0===o.options.fade&&(o.options.centerMode=!1),!0===o.options.infinite&&!1===o.options.fade&&(e=null,o.slideCount>o.options.slidesToShow)){for(t=!0===o.options.centerMode?o.options.slidesToShow+1:o.options.slidesToShow,i=o.slideCount;i>o.slideCount-t;--i)e=i-1,d(o.$slides[e]).clone(!0).attr("id","").attr("data-slick-index",e-o.slideCount).prependTo(o.$slideTrack).addClass("slick-cloned");for(i=0;i<t+o.slideCount;i+=1)e=i,d(o.$slides[e]).clone(!0).attr("id","").attr("data-slick-index",e+o.slideCount).appendTo(o.$slideTrack).addClass("slick-cloned");o.$slideTrack.find(".slick-cloned").find("[id]").each(function(){d(this).attr("id","")})}},l.prototype.interrupt=function(i){i||this.autoPlay(),this.interrupted=i},l.prototype.selectHandler=function(i){var e=d(i.target).is(".slick-slide")?d(i.target):d(i.target).parents(".slick-slide"),t=(t=parseInt(e.attr("data-slick-index")))||0;this.slideCount<=this.options.slidesToShow?this.slideHandler(t,!1,!0):this.slideHandler(t)},l.prototype.slideHandler=function(i,e,t){var o,s,n,l,r,a,d=this;if(e=e||!1,!(!0===d.animating&&!0===d.options.waitForAnimate||!0===d.options.fade&&d.currentSlide===i))if(!1===e&&d.asNavFor(i),o=i,r=d.getLeft(o),l=d.getLeft(d.currentSlide),d.currentLeft=null===d.swipeLeft?l:d.swipeLeft,!1===d.options.infinite&&!1===d.options.centerMode&&(i<0||i>d.getDotCount()*d.options.slidesToScroll))!1===d.options.fade&&(o=d.currentSlide,!0!==t&&d.slideCount>d.options.slidesToShow?d.animateSlide(l,function(){d.postSlide(o)}):d.postSlide(o));else if(!1===d.options.infinite&&!0===d.options.centerMode&&(i<0||i>d.slideCount-d.options.slidesToScroll))!1===d.options.fade&&(o=d.currentSlide,!0!==t&&d.slideCount>d.options.slidesToShow?d.animateSlide(l,function(){d.postSlide(o)}):d.postSlide(o));else{if(d.options.autoplay&&clearInterval(d.autoPlayTimer),s=o<0?d.slideCount%d.options.slidesToScroll!=0?d.slideCount-d.slideCount%d.options.slidesToScroll:d.slideCount+o:o>=d.slideCount?d.slideCount%d.options.slidesToScroll!=0?0:o-d.slideCount:o,d.animating=!0,d.$slider.trigger("beforeChange",[d,d.currentSlide,s]),n=d.currentSlide,d.currentSlide=s,d.setSlideClasses(d.currentSlide),d.options.asNavFor&&(a=(a=d.getNavTarget()).slick("getSlick")).slideCount<=a.options.slidesToShow&&a.setSlideClasses(d.currentSlide),d.updateDots(),d.updateArrows(),!0===d.options.fade)return!0!==t?(d.fadeSlideOut(n),d.fadeSlide(s,function(){d.postSlide(s)})):d.postSlide(s),void d.animateHeight();!0!==t&&d.slideCount>d.options.slidesToShow?d.animateSlide(r,function(){d.postSlide(s)}):d.postSlide(s)}},l.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},l.prototype.swipeDirection=function(){var i=this,e=i.touchObject.startX-i.touchObject.curX,t=i.touchObject.startY-i.touchObject.curY,o=Math.atan2(t,e),s=Math.round(180*o/Math.PI);return s<0&&(s=360-Math.abs(s)),s<=45&&0<=s||s<=360&&315<=s?!1===i.options.rtl?"left":"right":135<=s&&s<=225?!1===i.options.rtl?"right":"left":!0===i.options.verticalSwiping?35<=s&&s<=135?"down":"up":"vertical"},l.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1;if(o.interrupted=!1,o.shouldClick=!(10<o.touchObject.swipeLength),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},l.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},l.prototype.swipeMove=function(i){var e,t,o,s,n,l=this,r=void 0!==i.originalEvent?i.originalEvent.touches:null;return!(!l.dragging||l.scrolling||r&&1!==r.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==r?r[0].pageX:i.clientX,l.touchObject.curY=void 0!==r?r[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),n=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&4<n?!(l.scrolling=!0):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=n),t=l.swipeDirection(),void 0!==i.originalEvent&&4<l.touchObject.swipeLength&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,(l.touchObject.edgeHit=!1)===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},l.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return!(t.touchObject={});void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},l.prototype.unfilterSlides=l.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},l.prototype.unload=function(){var i=this;d(".slick-cloned",i.$slider).remove(),i.$dots&&i.$dots.remove(),i.$prevArrow&&i.htmlExpr.test(i.options.prevArrow)&&i.$prevArrow.remove(),i.$nextArrow&&i.htmlExpr.test(i.options.nextArrow)&&i.$nextArrow.remove(),i.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},l.prototype.unslick=function(i){this.$slider.trigger("unslick",[this,i]),this.destroy()},l.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2);!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").prop("disabled",!1),i.$nextArrow.removeClass("slick-disabled").prop("disabled",!1),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").prop("disabled",!0),i.$nextArrow.removeClass("slick-disabled").prop("disabled",!1)):(i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode||i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode)&&(i.$nextArrow.addClass("slick-disabled").prop("disabled",!0),i.$prevArrow.removeClass("slick-disabled").prop("disabled",!1)))},l.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").find("button").removeAttr("aria-current").end().end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active").find("button").attr("aria-current",!0).end().end())},l.prototype.updateSlideVisibility=function(){this.$slideTrack.find(".slick-slide").attr("aria-hidden","true").find("a, input, button, select").attr("tabindex","-1"),this.$slideTrack.find(".slick-active").removeAttr("aria-hidden").find("a, input, button, select").removeAttr("tabindex")},l.prototype.visibility=function(){this.options.autoplay&&(document[this.hidden]?this.interrupted=!0:this.interrupted=!1)},d.fn.slick=function(){for(var i,e=this,t=arguments[0],o=Array.prototype.slice.call(arguments,1),s=e.length,n=0;n<s;n++)if("object"==typeof t||void 0===t?e[n].slick=new l(e[n],t):i=e[n].slick[t].apply(e[n].slick,o),void 0!==i)return i;return e}});
4647
4648/*
4649 * MAIN NAVIGATION
4650 */
4651
4652$(document).ready(function() {
4653
4654    /* MODE 1 */
4655
4656    if($("#mainNavbar1").length && $(".dropdown-menu").length){
4657
4658        //basic functionality
4659        prepareMenu();
4660
4661        $("#mainNavbar1 .dropdown-toggler").click(function(e) {
4662            $(this).parent().toggleClass("is-open");
4663            if($(this).attr("aria-expanded") === "false") {
4664                $(this).attr("aria-expanded", "true");
4665                if(e.originalEvent.pointerType.localeCompare("mouse") != 0) {
4666                    let $firstMenuElement = $(this).siblings("ul").children("li")[0];
4667                    $($firstMenuElement).children("a")[0].focus();
4668                }
4669            } else {
4670                $(this).attr("aria-expanded", "false");
4671                $(this).parent().find("button").attr("aria-expanded", "false");
4672                $(this).parent().find(".is-open").toggleClass("is-open");
4673            }
4674        });
4675
4676        if(screen.width < 1200) {
4677            $("#mainNavbar1 .current").parents().addClass("is-open").find("> button").attr("aria-expanded","true");
4678            $(".navigation-shortcut").attr("href","#mainNavigationMenuButton");
4679        }
4680
4681        //close dropdown with Escape-key
4682        $("#mainNavbar1 .level2").on('keydown', function (e) {
4683            if (e.key === 'Esc' || e.key === 'Escape' || e.Code === 'Escape') {
4684                e.preventDefault();
4685                let $highestListElement = $(this).parents("li").last();
4686                $($highestListElement).find(".dropdown-toggler").attr("aria-expanded", "false");
4687                $($highestListElement).find(".is-open").removeClass("is-open");
4688                $($highestListElement).removeClass("is-open");
4689                let $currentPosition = $(this).parents("li").last();
4690                let currentId = $($currentPosition).attr("id");
4691                if(!($currentPosition.hasClass("last"))) {
4692                    $("#" + currentId + " + li > a")[0].focus();
4693                } else {
4694                    $(".content-wrapper a:not(:disabled), .content-wrapper button:not(:disabled), .content-wrapper input:not(:disabled), .content-wrapper [role='button']:not(:disabled)")[0].focus();
4695                }
4696            }
4697        });
4698
4699        //close dropdown on leaving the menu
4700        if(screen.width > 1200) {            
4701            $("#mainNavbar1 .dropdown-menu:not(.level2) > li:last-child > *:last-child").on('keydown', function(e) {
4702                if (e.key === 'Tab' || e.Code === 'Tab') {
4703                    closeDropdown($(this).parents(".dropdown-menu")[0]);
4704                }
4705            });
4706
4707            $("#mainNavbar1 .dropdown-menu:not(.level2) > li:first-child > *:first-child").on('keydown', function(e) {
4708                if (e.key === 'Tab' || e.Code === 'Tab') {
4709                    if ( e.shiftKey ) {
4710                        closeDropdown($(this).parents(".dropdown-menu")[0]);
4711                    }
4712                }
4713            });
4714        } else {
4715            $("#mainNavbar1 .dropdown-menu > li:last-child > *:last-child").on('keydown', function(e) {
4716                if (e.key === 'Tab' || e.Code === 'Tab') {
4717                    closeDropdown($(this).parents(".dropdown-menu")[0]);
4718                }
4719            });
4720
4721            $("#mainNavbar1 .dropdown-menu > li:first-child > *:first-child").on('keydown', function(e) {
4722                if (e.key === 'Tab' || e.Code === 'Tab') {
4723                    if ( e.shiftKey ) {
4724                        closeDropdown($(this).parents(".dropdown-menu")[0]);
4725                    }
4726                }
4727            });
4728        }
4729    }
4730
4731    /* MODE 2 */
4732
4733    if($("#mainNavbar2").length){
4734        prepareMenu();
4735        prepareBurgerMenu();
4736    }
4737
4738    /* MODE 3 */
4739
4740    if($("#mainNavbar3").length){
4741        prepareMenu();
4742        prepareBurgerMenu();
4743    }
4744
4745    /* SEARCH */
4746
4747    if($("#search-overlay").length){
4748      $("#search-overlay-btn").click(function() {
4749          $("#search-overlay").slideToggle(200);
4750          $("body").addClass("overflow-hidden");
4751      });
4752      $("#search-overlay .overlay-close > button").click(function() {
4753          $("#search-overlay").slideToggle(200);
4754          $("body").removeClass("overflow-hidden");
4755      });
4756    }
4757
4758    /* Functions */
4759
4760    function prepareMenu() {
4761        //give aria-labels to subpage-lists
4762        let subpagesListAriaLabel = $(".navbar-nav .level2").first().attr("aria-label");
4763        let $subpagesList = $(".navbar-nav ul");
4764        for(i = 0; i < $subpagesList.length; i++) {
4765            $subpagesList.get(i).setAttribute("aria-label",$subpagesList.get(i).getAttribute("aria-label") + " " + $($subpagesList.get(i)).siblings("a").children("span").html());
4766        }
4767    }
4768
4769    function prepareBurgerMenu() {
4770        $(".navbar-toggler").click(function() {
4771            $("body").toggleClass("overflow-hidden");
4772        });
4773
4774        $(".burgermenu-navigation button").click(function() {
4775            $(this).parent().toggleClass("is-open");
4776            if($(this).attr("aria-expanded")==="false") {
4777                $(this).attr("aria-expanded", "true");
4778                let firstMenuElement = $(this).siblings("ul").children("li")[0];
4779                $(firstMenuElement).children("a")[0].focus();
4780            } else {
4781                $(this).attr("aria-expanded", "false");
4782            }
4783        });
4784
4785        let $subpagesButtonArray = $(".navbar-nav .subpages > button");
4786        $subpagesButtonArray.each(function(){
4787            let $expandableList = $(this).siblings("ul");
4788            let $pageWithSubpages = $(this).parent();
4789            let submenuId = "submenu-" + $($pageWithSubpages).attr("id").split("-")[2];
4790
4791            $(this).attr("aria-controls",submenuId);
4792            $($expandableList).attr("id",submenuId);
4793        });
4794    }
4795
4796    function closeDropdown(dropdownMenu) {
4797        let $targetButton = $(dropdownMenu).siblings("button")[0];
4798        $($targetButton).attr("aria-expanded", "false");
4799        $(dropdownMenu).parent().removeClass("is-open");
4800    }
4801});
4802
4803/*
4804 * ACCESSIBILITY JS
4805 */
4806
4807$(window).on('load', function () {
4808
4809    /* disable elements */
4810    $(".cc-deny")[0].setAttribute("disabled", "");
4811
4812    /*
4813     * Accessibility for keyboard-users
4814     * Making elements operable by keyboard
4815     * add the class operable-by-keyboard to the non oparable element
4816     */
4817
4818    const evtClick = new MouseEvent("click", {
4819        view: window,
4820        bubbles: true,
4821        cancelable: true,
4822    });
4823
4824    const evtTab = new KeyboardEvent("keydown", {
4825        code:'Tab'
4826    });
4827
4828    let nonOperableManualArray = []; /* use manual only, if it is not possible to give the class to the targeted element */
4829    let nonOperableAutomaticArray = document.getElementsByClassName("operable-by-keyboard");
4830
4831    for(let i=0; i < nonOperableManualArray.length; i++) {
4832        makeOperableByKeyboard(nonOperableManualArray[i]);
4833    }
4834
4835    for(let i=0; i < nonOperableAutomaticArray.length; i++) {
4836        makeOperableByKeyboard(nonOperableAutomaticArray[i]);
4837    }
4838
4839    function makeOperableByKeyboard(nonOperableElement){
4840        if(nonOperableElement!=null) {
4841            nonOperableElement.addEventListener('keydown', function (e) {
4842                if (e.code === 'Enter' || e.key === 'Enter' || e.code === 'Space' || e.key === ' ' ||
4843                    e.code === 'NumpadEnter' || e.code === 'Backspace' || e.key === 'Backspace') {
4844                    nonOperableElement.dispatchEvent(evtClick);
4845                    e.preventDefault();
4846                }
4847            });
4848        }
4849    }
4850
4851    /*
4852     * shift focus when entering and leaving a dialog, trap focus inside the window
4853     * Give the button, which opens the window, the class open-dialog-(window-id), substitute (window-id) with the id of the opened window, without it the focus will not shift from the open-dialog button to the dialog and the other way around
4854     * Focus will only be shifted inside the window, if the window opens in less than 200ms
4855     * Give the window the class traped-focus, without it nothing happens
4856     * Give the close-buttons the class close-dialog, without it focus will not shift back to the element, which opened the dialog-window
4857     */
4858
4859    let cookieDialogStartArray = document.getElementsByClassName("cc-revoke");
4860    let cookieDialogWindowArray = document.getElementsByClassName("cc-window");
4861    let cookieDialogEndArray = [document.getElementsByClassName("cc-allow")[0], document.getElementsByClassName("cc-allow-all")[0]];
4862
4863    let shiftDialogFocusManualArray = [[cookieDialogStartArray[0], cookieDialogWindowArray[0], cookieDialogEndArray]]; /* use only, if you cannot give any of those elements the required class */
4864    let shiftDialogFocusList =document.getElementsByClassName("traped-focus");
4865    let shiftDialogFocusAutomaticArray = new Array();
4866
4867    for(let i=0;i<shiftDialogFocusList.length;i++) {
4868        shiftDialogFocusAutomaticArray.push([document.getElementsByClassName("open-dialog-"+shiftDialogFocusList[i].id)[0], shiftDialogFocusList[i], shiftDialogFocusList[i].getElementsByClassName("close-dialog")]);
4869    }
4870
4871    for(let i=0;i<shiftDialogFocusAutomaticArray.length;i++) {
4872        shiftDialogFocus(shiftDialogFocusAutomaticArray[i]);
4873    }
4874
4875    for(let i=0;i<shiftDialogFocusManualArray.length;i++){
4876        shiftDialogFocus(shiftDialogFocusManualArray[i]);
4877    }
4878
4879    function shiftDialogFocus(dialogArray) {
4880        if(dialogArray!=null && dialogArray[1]!=null) {
4881            let focusableElements = dialogArray[1].querySelectorAll('a:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), input[type="submit"]:not([disabled]), select:not([disabled]), .operable-by-keyboard:not([disabled])');
4882            let firstFocusable = focusableElements[0];
4883            let lastFocusable = focusableElements[focusableElements.length - 1];
4884
4885            if(dialogArray[0]!=null) {
4886                dialogArray[0].addEventListener('keydown', function (e) {
4887                    if (e.code === 'Enter' || e.key === 'Enter' || e.code === 'Space' || e.key === ' ' ||
4888                        e.code === 'NumpadEnter' || e.code === 'Backspace' || e.key === 'Backspace') {
4889                        setTimeout(function() {firstFocusable.focus();}, 200);
4890                    }
4891                });
4892                if(dialogArray[2]!=null) {
4893                    for(let y=0; y<dialogArray[2].length; y++) {
4894                        if(dialogArray[2][y]!=null) {
4895                            dialogArray[2][y].addEventListener('keydown', function (e) {
4896                                if (e.code === 'Enter' || e.key === 'Enter' || e.code === 'Space' || e.key === ' ' ||
4897                                    e.code === 'NumpadEnter' || e.code === 'Backspace' || e.key === 'Backspace') {
4898                                    setTimeout(function() {dialogArray[0].focus();}, 200);
4899                                }
4900                            });
4901                        }
4902                    }
4903                }
4904            }
4905
4906            firstFocusable.addEventListener('keydown', function(e) {
4907                if (e.code === 'Tab' || e.key === 'Tab') {
4908                    if ( e.shiftKey ) {
4909                        if (document.activeElement === firstFocusable) {
4910                            lastFocusable.focus();
4911                            e.preventDefault();
4912                        }
4913                    }
4914                }
4915            });
4916
4917            lastFocusable.addEventListener('keydown', function(e) {
4918                if (e.code === 'Tab' || e.key === 'Tab') {
4919                    if ( !e.shiftKey ) {
4920                        if (document.activeElement === lastFocusable) {
4921                            firstFocusable.focus();
4922                            e.preventDefault();
4923                        }
4924                    }
4925                }
4926            });
4927        }
4928    }
4929
4930    /*
4931     * Leaving a menu with escape
4932     * Give the modal-window the class escapable-dialog
4933     * Give the button, which opens the window, the class open-dialog-(window-id), substitute (window-id) with the id of the opened window
4934     * Give the close-button the class close-dialog
4935     */
4936
4937    let escapableDialogListArray = document.getElementsByClassName("escapable-dialog");
4938    let escapableDialogAutomaticArray = new Array();
4939    let escapableDialogManualArray = []; /* use only if it is not possible to give classes to target elements */
4940
4941    for(let i=0; i < escapableDialogListArray.length; i++) {
4942        escapableDialogAutomaticArray.push([escapableDialogListArray[i], document.getElementsByClassName("open-dialog-"+escapableDialogListArray[i].id)[0], escapableDialogListArray[i].getElementsByClassName("close-dialog")[0]]);
4943    }
4944
4945    for(let i=0; i < escapableDialogAutomaticArray.length; i++) {
4946        makeEscapable(escapableDialogAutomaticArray[i][0], escapableDialogAutomaticArray[i][1], escapableDialogAutomaticArray[i][2]);
4947    }
4948
4949    for(let i=0; i < escapableDialogManualArray.length; i++) {
4950        makeEscapable(escapableDialogManualArray[i][0], escapableDialogManualArray[i][1], escapableDialogManualArray[i][2]);
4951    }
4952
4953    function makeEscapable(nonEscapableDialog, openNonEscapableDialog, closeNonEscapableDialog) {
4954        if(nonEscapableDialog!=null) {
4955            nonEscapableDialog.addEventListener('keydown', function (e) {
4956                if (e.key === 'Esc' || e.key === 'Escape' || e.Code === 'Escape') {
4957                    if(closeNonEscapableDialog!=null) {
4958                        closeNonEscapableDialog.dispatchEvent(evtClick);
4959                    }
4960                    if(openNonEscapableDialog!=null) {
4961                        openNonEscapableDialog.focus();
4962                    }
4963                }
4964            });
4965        }
4966    }
4967
4968    /* fixing tabindex */
4969    $(".cc-btn").each(function() {
4970        $(this).attr("tabindex", "0");
4971    });
4972
4973    /* aria-label */
4974    let ccWindowAriaLabel = $(".cc-checkboxes-legend").html();
4975    cookieDialogWindowArray[0].setAttribute("aria-label", ccWindowAriaLabel);
4976
4977    /* other wai-aria */
4978    cookieDialogWindowArray[0].setAttribute("aria-modal", "true");    
4979});
4980
4981
4982/*
4983 * DEFAULT JS
4984 */
4985
4986$(document).ready(function() {
4987
4988    /*** HEADER ***/
4989
4990    if($('.header-wrapper').length) {
4991
4992        /*** HEADER WRAPPER HEIGHT ***/
4993        $header = $('.header-wrapper');
4994
4995        /* Wenn kein Header-Bild/-Slider vorhanden ist auf einer Seite: */
4996        if($('.no-content-top').length) {
4997
4998            /* Dem Header folgende Klasse geben */
4999            $header.addClass('header-default');
5000            /*$header.addClass('header-fixed header-sticky');*/
5001
5002            /* Wenn gescrollt wird, Klassen zuweisen/entfernen */
5003            $(window).bind('scroll', function () {
5004                if($(window).scrollTop() > 300) {
5005                    $header.addClass('header-fixed header-small');
5006                } else if($(window).scrollTop() == 0) {
5007                    $header.removeClass('header-fixed header-small');
5008                }
5009            });
5010
5011        } else {
5012
5013            /*
5014             * Wenn ein Header-Bild/-Slider vorhanden ist auf einer Seite:
5015             * z.B. beim Seitenneuladen du nicht ganz dicht ...ähh oben bist, die Klasse header-fixed zuweisen
5016             */
5017            if($(window).scrollTop() > 0) {
5018                $header.addClass('header-fixed');
5019            }
5020
5021            /* Wenn gescrollt wird, Klassen zuweisen/entfernen */
5022            $(window).bind('scroll', function () {
5023                if($(window).scrollTop() > 300) {
5024                    $header.addClass('header-fixed header-small');
5025                } else if($(window).scrollTop() == 0) {
5026                    $header.removeClass('header-fixed header-small');
5027                }
5028            });
5029        }
5030    }
5031
5032    /*** SKIPLINKS ***/    
5033
5034    /* Main */
5035
5036    /* Meta */
5037    $("#meta-navigation-skiplink").each(function() {
5038        if($("#meta-navigation a").length > 0) {
5039            $(this).on('click', function(e) {
5040                e.preventDefault();
5041                $("#meta-navigation a")[0].focus();
5042            });
5043        } else {
5044            $(this).addClass("d-none");
5045        }
5046    });
5047
5048    /*** TABLE RESPONSIVE ***/
5049
5050    if($("table.contenttable").length){
5051        $("table.contenttable").each(function() {
5052            $(this).addClass("table").wrap("<div class='table-responsive'></div>");
5053        });
5054    }
5055
5056
5057
5058    /*** GRIDELEMENTS TABS ***/
5059
5060    if($('.tab-container').length) {
5061
5062        $transition = false;
5063        $('.tab').click(function(e)  {
5064            if($transition) {
5065                return false;
5066            }
5067            $transition = true;
5068            $parent = $(this).parent().parent();
5069            $parent.find('.tab').removeClass('active');
5070            $(this).addClass('active');
5071
5072            var tab = $(this).attr('id');
5073            $parent.find('.tab-content').fadeOut();
5074            $parent.find('.tab-content').promise().done(function(){
5075                $parent.find('.' + tab + '-content').fadeIn();
5076                $transition = false;
5077            })
5078        });
5079
5080        $('.tab-container .tab-btn, .tab-container .tab').click(function(){
5081            $(this).parent().toggleClass("open");
5082        });
5083    }
5084
5085
5086
5087    /*** TO-TOP BUTTON ***/
5088
5089    $(window).scroll(function () {
5090        /* Wenn 100 Pixel gescrolled wurde */
5091        if ($(this).scrollTop() > 100) {
5092            $('.to-top-btn').addClass("active");
5093        } else {
5094            $('.to-top-btn').removeClass("active");
5095        }
5096    });
5097
5098    /* Klick auf den Button */
5099    $('.to-top-btn').click(function () {
5100        $('body, html').animate({
5101            scrollTop: 0
5102        }, 300);
5103    });
5104});
5105
5106
5107/*! iFrame Resizer (iframeSizer.min.js ) - v4.2.11 - 2020-09-09
5108 *  Desc: Force cross domain iframes to size to content.
5109 *  Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame.
5110 *  Copyright: (c) 2020 David J. Bradshaw - [email protected]
5111 *  License: MIT
5112 */
5113
5114!function(l){if("undefined"!=typeof window){var e,m=0,g=!1,o=!1,v="message".length,I="[iFrameSizer]",x=I.length,F=null,r=window.requestAnimationFrame,h={max:1,scroll:1,bodyScroll:1,documentElementScroll:1},M={}
5114,i=null,w={autoResize:!0,bodyBackground:null,bodyMargin:null,bodyMarginV1:8,bodyPadding:null,checkOrigin:!0,inPageLinks:!1,enablePublicMethods:!0,heightCalculationMethod:"bodyOffset",id:"iFrameResizer",interval:32,log:!1,maxHeight:1/0,maxWidth:1/0,minHeight:0,minWidth:0,resizeFrom:"parent",scrolling:!1,sizeHeight:!0,sizeWidth:!1,warningTimeout:5e3,tolerance:0,widthCalculationMethod:"scroll",onClose:function(){return!0},onClosed:function(){},onInit:function(){},onMessage:function(){E("onMessage function not defined")},onResized:function(){},onScroll:function(){return!0}},k={};window.jQuery&&((e=window.jQuery).fn?e.fn.iFrameResize||(e.fn.iFrameResize=function(i){return this.filter("iframe").each(function(e,n){d(n,i)}).end()}):T("","Unable to bind to jQuery, it is not fully loaded.")),"function"==typeof define&&define.amd?define([],q):"object"==typeof module&&"object"==typeof module.exports&&(module.exports=q()),window.iFrameResize=window.iFrameResize||q()}function p(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function z(e,n,i){e.addEventListener(n,i,!1)}function O(e,n,i){e.removeEventListener(n,i,!1)}function a(e){return I+"["+function(e){var n="Host page: "+e;return window.top!==window.self&&(n=window.parentIFrame&&window.parentIFrame.getId?window.parentIFrame.getId()+": "+e:"Nested host page: "+e),n}(e)+"]"}function t(e){return M[e]?M[e].log:g}function R(e,n){s("log",e,n,t(e))}function T(e,n){s("info",e,n,t(e))}function E(e,n){s("warn",e,n,!0)}function s(e,n,i,t){!0===t&&"object"==typeof window.console&&console[e](a(n),i)}function n(n){function e(){i("Height"),i("Width"),A(function(){P(b),S(y),d("onResized",b)},b,"init")}function i(e){var n=Number(M[y]["max"+e]),i=Number(M[y]["min"+e]),t=e.toLowerCase(),o=Number(b[t]);R(y,"Checking "+t+" is in range "+i+"-"+n),o<i&&(o=i,R(y,"Set "+t+" to min value")),n<o&&(o=n,R(y,"Set "+t+" to max value")),b[t]=""+o}function t(e){return p.substr(p.indexOf(":")+v+e)}function a(e,n){!function(e,n,i){k[i]||(k[i]=setTimeout(function(){k[i]=null,e()},n))}(function(){B("Send Page Info","pageInfo:"+function(){var e=document.body.getBoundingClientRect(),n=b.iframe.getBoundingClientRect();return JSON.stringify({iframeHeight:n.height,iframeWidth:n.width,clientHeight:Math.max(document.documentElement.clientHeight,window.innerHeight||0),clientWidth:Math.max(document.documentElement.clientWidth,window.innerWidth||0),offsetTop:parseInt(n.top-e.top,10),offsetLeft:parseInt(n.left-e.left,10),scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,documentHeight:document.documentElement.clientHeight,documentWidth:document.documentElement.clientWidth,windowHeight:window.innerHeight,windowWidth:window.innerWidth})}(),e,n)},32,n)}function r(e){var n=e.getBoundingClientRect();return N(y),{x:Math.floor(Number(n.left)+Number(F.x)),y:Math.floor(Number(n.top)+Number(F.y))}}function o(e){var n=e?r(b.iframe):{x:0,y:0},i={x:Number(b.width)+n.x,y:Number(b.height)+n.y};R(y,"Reposition requested from iFrame (offset x:"+n.x+" y:"+n.y+")"),window.top!==window.self?window.parentIFrame?window.parentIFrame["scrollTo"+(e?"Offset":"")](i.x,i.y):E(y,"Unable to scroll to requested position, window.parentIFrame not found"):(F=i,s(),R(y,"--"))}function s(){!1!==d("onScroll",F)?S(y):H()}function d(e,n){return W(y,e,n)}var c,u,f,l,m,g,h,w,p=n.data,b={},y=null;"[iFrameResizerChild]Ready"===p?function(){for(var e in M)B("iFrame requested init",L(e),M[e].iframe,e)}():I===(""+p).substr(0,x)&&p.substr(x).split(":")[0]in M?(m=p.substr(x).split(":"),g=m[1]?parseInt(m[1],10):0,h=M[m[0]]&&M[m[0]].iframe,w=getComputedStyle(h),b={iframe:h,id:m[0],height:g+function(e){if("border-box"!==e.boxSizing)return 0;var n=e.paddingTop?parseInt(e.paddingTop,10):0,i=e.paddingBottom?parseInt(e.paddingBottom,10):0;return n+i}(w)+function(e){if("border-box"!==e.boxSizing)return 0;var n=e.borderTopWidth?parseInt(e.borderTopWidth,10):0,i=e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0;return n+i}(w),width:m[2],type:m[3]},y=b.id,M[y]&&(M[y].loaded=!0),(l=b.type in{true:1,false:1,undefined:1})&&R(y,"Ignoring init message from meta parent page"),!l&&(f=!0,M[u=y]||(f=!1,E(b.type+" No settings for "+u+". Message was: "+p)),f)&&(R(y,"Received: "+p),c=!0,null===b.
5114iframe&&(E(y,"IFrame ("+b.id+") not found"),c=!1),c&&function(){var e,i=n.origin,t=M[y]&&M[y].checkOrigin;if(t&&""+i!="null"&&!(t.constructor===Array?function(){var e=0,n=!1;for(R(y,"Checking connection is from allowed list of origins: "+t);e<t.length;e++)if(t[e]===i){n=!0;break}return n}():(e=M[y]&&M[y].remoteHost,R(y,"Checking connection is from: "+e),i===e)))throw new Error("Unexpected message received from: "+i+" for "+b.iframe.id+". Message was: "+n.data+". This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.");return!0}()&&function(){switch(M[y]&&M[y].firstRun&&M[y]&&(M[y].firstRun=!1),b.type){case"close":C(b.iframe);break;case"message":!function(e){R(y,"onMessage passed: {iframe: "+b.iframe.id+", message: "+e+"}"),d("onMessage",{iframe:b.iframe,message:JSON.parse(e)}),R(y,"--")}(t(6));break;case"autoResize":M[y].autoResize=JSON.parse(t(9));break;case"scrollTo":o(!1);break;case"scrollToOffset":o(!0);break;case"pageInfo":a(M[y]&&M[y].iframe,y),function(){function e(n,i){function t(){M[r]?a(M[r].iframe,r):o()}["scroll","resize"].forEach(function(e){R(r,n+e+" listener for sendPageInfo"),i(window,e,t)})}function o(){e("Remove ",O)}var r=y;e("Add ",z),M[r]&&(M[r].stopPageInfo=o)}();break;case"pageInfoStop":M[y]&&M[y].stopPageInfo&&(M[y].stopPageInfo(),delete M[y].stopPageInfo);break;case"inPageLink":!function(e){var n,i=e.split("#")[1]||"",t=decodeURIComponent(i),o=document.getElementById(t)||document.getElementsByName(t)[0];o?(n=r(o),R(y,"Moving to in page link (#"+i+") at x: "+n.x+" y: "+n.y),F={x:n.x,y:n.y},s(),R(y,"--")):window.top!==window.self?window.parentIFrame?window.parentIFrame.moveToAnchor(i):R(y,"In page link #"+i+" not found and window.parentIFrame not found"):R(y,"In page link #"+i+" not found")}(t(9));break;case"reset":j(b);break;case"init":e(),d("onInit",b.iframe);break;default:e()}}())):T(y,"Ignored: "+p)}function W(e,n,i){var t=null,o=null;if(M[e]){if("function"!=typeof(t=M[e][n]))throw new TypeError(n+" on iFrame["+e+"] is not a function");o=t(i)}return o}function b(e){var n=e.id;delete M[n]}function C(e){var n=e.id;if(!1!==W(n,"onClose",n)){R(n,"Removing iFrame: "+n);try{e.parentNode&&e.parentNode.removeChild(e)}catch(e){E(e)}W(n,"onClosed",n),R(n,"--"),b(e)}else R(n,"Close iframe cancelled by onClose event")}function N(e){null===F&&R(e,"Get page position: "+(F={x:window.pageXOffset!==l?window.pageXOffset:document.documentElement.scrollLeft,y:window.pageYOffset!==l?window.pageYOffset:document.documentElement.scrollTop}).x+","+F.y)}function S(e){null!==F&&(window.scrollTo(F.x,F.y),R(e,"Set page position: "+F.x+","+F.y),H())}function H(){F=null}function j(e){R(e.id,"Size reset requested by "+("init"===e.type?"host page":"iFrame")),N(e.id),A(function(){P(e),B("reset","reset",e.iframe,e.id)},e,"reset")}function P(n){function i(e){o||"0"!==n[e]||(o=!0,R(t,"Hidden iFrame detected, creating visibility listener"),function(){function n(){Object.keys(M).forEach(function(e){!function(n){function e(e){return"0px"===(M[n]&&M[n].iframe.style[e])}M[n]&&null!==M[n].iframe.offsetParent&&(e("height")||e("width"))&&B("Visibility change","resize",M[n].iframe,n)}(e)})}function i(e){R("window","Mutation observed: "+e[0].target+" "+e[0].type),c(n,16)}var t=p();t&&function(){var e=document.querySelector("body");new t(i).observe(e,{attributes:!0,attributeOldValue:!1,characterData:!0,characterDataOldValue:!1,childList:!0,subtree:!0})}()}())}function e(e){!function(e){n.id?(n.iframe.style[e]=n[e]+"px",R(n.id,"IFrame ("+t+") "+e+" set to "+n[e]+"px")):R("undefined","messageData id not set")}(e),i(e)}var t=n.iframe.id;M[t]&&(M[t].sizeHeight&&e("height"),M[t].sizeWidth&&e("width"))}function A(e,n,i){i!==n.type&&r&&!window.jasmine?(R(n.id,"Requesting animation frame"),r(e)):e()}function B(e,n,i,t,o){var r,a=!1;t=t||i.id,M[t]&&(i&&"contentWindow"in i&&null!==i.contentWindow?(r=M[t]&&M[t].targetOrigin,R(t,"["+e+"] Sending msg to iframe["+t+"] ("+n+") targetOrigin: "+r),i.contentWindow.postMessage(I+n,r)):E(t,"["+e+"] IFrame("+t+") not found"),o&&M[t]&&M[t].warningTimeout&&(M[t].msgTimeout=setTimeout(function(){!M[t]||M[t].loaded||a||(a=!0,E(t,"IFrame has not responded within "+M[t].warningTimeout/1e3+" seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning."))},M[t].warningTimeout)))}function L(e){return e+":"+M[e].bodyMarginV1+":"+M[e].sizeWidth+":"+M[e].log+":"+M[e].interval+":"+M[e].enablePublicMethods+":"+M[e].autoResize+":"+M[e].bodyMargin+":"+M[e].heightCalculationMethod+":"+M[e].bodyBackgroun
5114d+":"+M[e].bodyPadding+":"+M[e].tolerance+":"+M[e].inPageLinks+":"+M[e].resizeFrom+":"+M[e].widthCalculationMethod}function d(i,e){function n(e){var n=e.split("Callback");if(2===n.length){var i="on"+n[0].charAt(0).toUpperCase()+n[0].slice(1);this[i]=this[e],delete this[e],E(c,"Deprecated: '"+e+"' has been renamed '"+i+"'. The old method will be removed in the next major version.")}}var t,o,r,a,s,d,c=(""===(o=i.id)&&(i.id=(t=e&&e.id||w.id+m++,null!==document.getElementById(t)&&(t+=m++),o=t),g=(e||{}).log,R(o,"Added missing iframe ID: "+o+" ("+i.src+")")),o);function u(e){1/0!==M[c][e]&&0!==M[c][e]&&(i.style[e]=M[c][e]+"px",R(c,"Set "+e+" = "+M[c][e]+"px"))}function f(e){if(M[c]["min"+e]>M[c]["max"+e])throw new Error("Value for min"+e+" can not be greater than max"+e)}c in M&&"iFrameResizer"in i?E(c,"Ignored iFrame, already setup."):(d=(d=e)||{},M[c]={firstRun:!0,iframe:i,remoteHost:i.src&&i.src.split("/").slice(0,3).join("/")},function(e){if("object"!=typeof e)throw new TypeError("Options is not an object")}(d),Object.keys(d).forEach(n,d),function(e){for(var n in w)Object.prototype.hasOwnProperty.call(w,n)&&(M[c][n]=Object.prototype.hasOwnProperty.call(e,n)?e[n]:w[n])}(d),M[c]&&(M[c].targetOrigin=!0===M[c].checkOrigin?function(e){return""===e||null!==e.match(/^(about:blank|javascript:|file:\/\/)/)?"*":e}(M[c].remoteHost):"*"),function(){switch(R(c,"IFrame scrolling "+(M[c]&&M[c].scrolling?"enabled":"disabled")+" for "+c),i.style.overflow=!1===(M[c]&&M[c].scrolling)?"hidden":"auto",M[c]&&M[c].scrolling){case"omit":break;case!0:i.scrolling="yes";break;case!1:i.scrolling="no";break;default:i.scrolling=M[c]?M[c].scrolling:"no"}}(),f("Height"),f("Width"),u("maxHeight"),u("minHeight"),u("maxWidth"),u("minWidth"),"number"!=typeof(M[c]&&M[c].bodyMargin)&&"0"!==(M[c]&&M[c].bodyMargin)||(M[c].bodyMarginV1=M[c].bodyMargin,M[c].bodyMargin=M[c].bodyMargin+"px"),r=L(c),(s=p())&&(a=s,i.parentNode&&new a(function(e){e.forEach(function(e){Array.prototype.slice.call(e.removedNodes).forEach(function(e){e===i&&C(i)})})}).observe(i.parentNode,{childList:!0})),z(i,"load",function(){B("iFrame.onload",r,i,l,!0),function(){var e=M[c]&&M[c].firstRun,n=M[c]&&M[c].heightCalculationMethod in h;!e&&n&&j({iframe:i,height:0,width:0,type:"init"})}()}),B("init",r,i,l,!0),M[c]&&(M[c].iframe.iFrameResizer={close:C.bind(null,M[c].iframe),removeListeners:b.bind(null,M[c].iframe),resize:B.bind(null,"Window resize","resize",M[c].iframe),moveToAnchor:function(e){B("Move to anchor","moveToAnchor:"+e,M[c].iframe,c)},sendMessage:function(e){B("Send Message","message:"+(e=JSON.stringify(e)),M[c].iframe,c)}}))}function c(e,n){null===i&&(i=setTimeout(function(){i=null,e()},n))}function u(){"hidden"!==document.visibilityState&&(R("document","Trigger event: Visiblity change"),c(function(){f("Tab Visable","resize")},16))}function f(n,i){Object.keys(M).forEach(function(e){!function(e){return M[e]&&"parent"===M[e].resizeFrom&&M[e].autoResize&&!M[e].firstRun}(e)||B(n,i,M[e].iframe,e)})}function y(){z(window,"message",n),z(window,"resize",function(){!function(e){R("window","Trigger event: "+e),c(function(){f("Window "+e,"resize")},16)}("resize")}),z(document,"visibilitychange",u),z(document,"-webkit-visibilitychange",u)}function q(){function i(e,n){n&&(function(){if(!n.tagName)throw new TypeError("Object is not a valid DOM element");if("IFRAME"!==n.tagName.toUpperCase())throw new TypeError("Expected <IFRAME> tag, found <"+n.tagName+">")}(),d(n,e),t.push(n))}var t;return function(){var e,n=["moz","webkit","o","ms"];for(e=0;e<n.length&&!r;e+=1)r=window[n[e]+"RequestAnimationFrame"];r?r=r.bind(window):R("setup","RequestAnimationFrame not supported")}(),y(),function(e,n){switch(t=[],function(e){e&&e.enablePublicMethods&&E("enablePublicMethods option has been removed, public methods are now always available in the iFrame")}(e),typeof n){case"undefined":case"string":Array.prototype.forEach.call(document.querySelectorAll(n||"iframe"),i.bind(l,e));break;case"object":i(e,n);break;default:throw new TypeError("Unexpected data type ("+typeof n+")")}return t}}}();
5115
5116
5117jQuery(document).ready(function(){
5118
5119    var $modal = jQuery('#iframeModal');
5120    var $iframe = jQuery('#iframeModalIframe');
5121
5122    $modal.on('hidden.bs.modal', function (e) {
5123        $iframe.attr('src', '');
5124    });
5125
5126    $iframe.iFrameResize({
5127        //log: true,
5128        onMessage: function(data){
5129            if(data.message === 'iframeModal.close'){
5130                $modal.modal('hide');
5131            }
5132            if(data.message === 'iframeModal.reload'){
5133                //location.reload(true);
5134                window.location.href = window.location.href;
5135            }
5136            if(data.message === 'iframeModal.contentLoaded'){
5137                $modal.animate({ scrollTop: 0 }, 'slow');
5138                $modal.modal('handleUpdate');
5139            }
5140        }
5141    });
5142
5143    jQuery('.link-iframemodal-open').each(function(){
5144        jQuery(this).click(function(){
5145            var $self = jQuery(this);
5146            var src = $self.attr('href');
5147            $iframe.attr('src', src);
5148            $modal.modal('show');
5149            return false;
5150        });
5151    });
5152
5153});
5154/*
5155 * CUSTOM.JS
5156 */
5157
5158$(document).ready(function () {
5159	
5160	/*** TABS ***/
5161	if($('.tab-container').length) {
5162		
5163		$('.tab-container .tab-btn').click(function(){
5164			$('.tab-container .tab-header-wrapper').addClass("active");
5165		});
5166
5167		$('.tab-container .tab').click(function(){
5168			$('.tab-container .tab-header-wrapper').removeClass("active");
5169		});
5170	}
5171    
5172    /* Contrast */
5173    jQuery('.toolbarTop-item-contrast').click(function() {        
5174      jQuery('body').toggleClass('high-contrast');
5175    });   
5176    /*
5177    if(jQuery.cookie('z35contrast')) {
5178      jQuery('body').addClass(jQuery.cookie('z35contrast'));
5179    }
5180    jQuery('.toolbarTop-item-contrast').click(function() {        
5181      jQuery('body').toggleClass('high-contrast');
5182      if(jQuery('body').hasClass('high-contrast')){
5183        jQuery.cookie('z35contrast', 'high-contrast', { expires: 30 });
5184      }
5185      if(!jQuery('body').hasClass('high-contrast')){
5186        jQuery.cookie('z35contrast', '', { expires: 30 });
5187      }
5188    });
5189    */
5190    
5191    /* tx_news catmenu */
5192    $(function(){
5193      // bind change event to select
5194      $('#selectoptions').on('change', function () {
5195        var url = $(this).val(); // get selected value
5196        if (url) { // require a URL
5197          window.location = url; // redirect
5198        }
5199        return false;
5200      });
5201    });
5202  
5203  	$('.powermail_tab_navigation > button').click(function(){
5204        $('html, body').animate({scrollTop:$('.tx-powermail').offset().top - 360}, 'slow');
5205    });       
5206  
5207    $('.news-single .lightbox').magnificPopup({type:'image'});
5208});
5209
5210
5211$(window).on("load", function() {
5212	var url = window.location.href;
5213	var urlIndex = url.indexOf("tx_powermail_pi1");
5214	if(urlIndex > -1){
5215		if($('.tx-powermail').length){
5216			$('html, body').animate({scrollTop:$('.tx-powermail').offset().top - 420}, 'slow');
5217		}
5218	}
5219});
5220
5221/*! Magnific Popup - v1.1.0 - 2016-02-20
5222* http://dimsemenov.com/plugins/magnific-popup/
5223* Copyright (c) 2016 Dmitry Semenov; */
5224!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.
5224st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;
5224if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;
5224var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});
5224var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
5225
5226/*
5227 * CUSTOM.JS
5228 */
5229
5230$(document).ready(function () {
5231	
5232    // Toolbar Sprachswitcher Popup
5233    /*
5234    jQuery('.header-top .toolbar-language').click(function() {
5235        $(this).toggleClass("active");
5236    });
5237    */
5238     
5239});

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.