PageSourceSearch

https://sunleisureworld.com/assets_new/js/app.js?v=4.8.1

js sunleisureworld.com collected 2026-10-02 15:16:54 UTC 781,984 bytes, 9,890 lines download raw bytes

vendor: 22,881 bytes, lines 1-2
1/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}
vendor: 1,967 bytes, line 2
2return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||
vendor: 9,546 bytes, line 2
2ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||
vendor: 8,814 bytes, line 2
2(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);
vendor: 14,182 bytes, line 2
2n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;
vendor: 4,590 bytes, line 2
2return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1)
vendor: 13,972 bytes, line 2
2);!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);
vendor: 9,033 bytes, line 2
2if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return 
vendor: 2,785 bytes, lines 2-8
2M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce});
3
4/*!
5  * Bootstrap v5.3.3 (https://getbootstrap.com/)
6  * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
7  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
8  */
vendor: 21,520 bytes, lines 8-9
8
9!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=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"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function j(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function M(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${M(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${M(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=j(t.dataset[n])}return e},getDataAttribute:(t,e)=>j(t.getAttribute(`data-bs-${M(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>n(t))).join(","):null},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",jt="collapsing",Mt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(jt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(jt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(Mt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];
vendor: 18,133 bytes, line 9
9function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function je(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const Me={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:je(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:je(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=be(O),k=Fe(O)===Xt,L=[zt,Rt].indexOf(x)>=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},j=p?3:1;j>0&&"break"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function mi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?fi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},fi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:pe(t)?Je(t):t.contextElement?Je(t.contextElement):[],popper:Je(e)};var r,c,u=function(t){var e=ui(t);return de.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled}
vendor: 5,266 bytes, line 9
9)),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(pi(e,i)){a.rects={reference:di(e,$e(i),"fixed"===a.options.strategy),popper:Ce(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!pi(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var gi=mi(),_i=mi({defaultModifiers:[Re,ci,Be,_e]}),bi=mi({defaultModifiers:[Re,ci,Be,_e,li,si,hi,Me,ai]});const vi=Object.freeze(Object.defineProperty({__proto__:null,afterMain:ae,afterRead:se,afterWrite:he,applyStyles:_e,arrow:Me,auto:Kt,basePlacements:Qt,beforeMain:oe,beforeRead:ie,beforeWrite:le,bottom:Rt,clippingParents:Ut,computeStyles:Be,createPopper:bi,createPopperBase:gi,createPopperLite:_i,detectOverflow:ii,end:Yt,eventListeners:Re,flip:si,hide:ai,left:Vt,main:re,modifierPhases:de,offset:li,placements:ee,popper:Jt,popperGenerator:mi,popperOffsets:ci,preventOverflow:hi,read:ne,reference:Zt,right:qt,start:Xt,top:zt,variationPlacements:te,viewport:Gt,write:ce},Symbol.toStringTag,{value:"Module"})),yi="dropdown",wi=".bs.dropdown",Ai=".data-api",Ei="ArrowUp",Ti="ArrowDown",Ci=`hide${wi}`,Oi=`hidden${wi}`,xi=`show${wi}`,ki=`shown${wi}`,Li=`click${wi}${Ai}`,Si=`keydown${wi}${Ai}`,Di=`keyup${wi}${Ai}`,$i="show",Ii='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ni=`${Ii}.${$i}`,Pi=".dropdown-menu",ji=p()?"top-end":"top-start",Mi=p()?"top-start":"top-end",Fi=p()?"bottom-end":"bottom-start",Hi=p()?"bottom-start":"bottom-end",Wi=p()?"left-start":"right-start",Bi=p()?"right-start":"left-start",zi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qi extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,Pi)[0]||z.prev(this._element,Pi)[0]||z.findOne(Pi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return zi}static get DefaultType(){return Ri}static get NAME(){return yi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!N.trigger(this._element,xi,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add($i),this._element.classList.add($i),N.trigger(this._element,ki,t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!N.trigger(this._element,Ci,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._popper&&this._popper.destroy(),this._menu.classList.remove($i),this._element.classList.remove($i),this._element.setAttribute("aria-expanded","false"),F.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,Oi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===vi)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=bi(t,this._menu,e)}_isShown(){return this._menu.classList.contains($i)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Wi;if(t.classList.contains("dropstart"))return Bi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Mi:ji:e?Hi:Fi}
vendor: 10,248 bytes, line 9
9_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method n
vendor: 9,229 bytes, line 9
9amed "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,jn=`hide${xn}`,Mn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,jn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,Mn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,Mn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}
vendor: 5,396 bytes, line 9
9hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method n
vendor: 10,644 bytes, line 9
9amed "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",js="Home",Ms="End",Fs="active",Hs="fade",Ws="show",Bs=".dropdown-toggle",zs=`:not(${Bs})`,Rs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,js,Ms].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([js,Ms].includes(t.key))i=e[t.key===js?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io="hide",no="show",so="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return"toast"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}}));
vendor: 5,256 bytes, lines 9-20
9
10
11/*!
12 * GSAP 3.12.5
13 * https://gsap.com
14 * 
15 * @license Copyright 2024, GreenSock. All rights reserved.
16 * Subject to the terms at https://gsap.com/standard-license or for Club GSAP members, the agreement issued with that membership.
17 * @author: Jack Doyle, [email protected]
18 */
19
20!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).window=t.window||{})}(this,function(e){"use strict";function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function r(t){return"string"==typeof t}function s(t){return"function"==typeof t}function t(t){return"number"==typeof t}function u(t){return void 0===t}function v(t){return"object"==typeof t}function w(t){return!1!==t}function x(){return"undefined"!=typeof window}function y(t){return s(t)||r(t)}function P(t){return(i=yt(t,ot))&&ze}function Q(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")}function R(t,e){return!e&&console.warn(t)}function S(t,e){return t&&(ot[t]=e)&&i&&(i[t]=e)||ot}function T(){return 0}function ea(t){var e,r,i=t[0];if(v(i)||s(i)||(t=[t]),!(e=(i._gsap||{}).harness)){for(r=gt.length;r--&&!gt[r].targetTest(i););e=gt[r]}for(r=t.length;r--;)t[r]&&(t[r]._gsap||(t[r]._gsap=new Vt(t[r],e)))||t.splice(r,1);return t}function fa(t){return t._gsap||ea(Mt(t))[0]._gsap}function ga(t,e,r){return(r=t[e])&&s(r)?t[e]():u(r)&&t.getAttribute&&t.getAttribute(e)||r}function ha(t,e){return(t=t.split(",")).forEach(e)||t}function ia(t){return Math.round(1e5*t)/1e5||0}function ja(t){return Math.round(1e7*t)/1e7||0}function ka(t,e){var r=e.charAt(0),i=parseFloat(e.substr(2));return t=parseFloat(t),"+"===r?t+i:"-"===r?t-i:"*"===r?t*i:t/i}function la(t,e){for(var r=e.length,i=0;t.indexOf(e[i])<0&&++i<r;);return i<r}function ma(){var t,e,r=dt.length,i=dt.slice(0);for(ct={},t=dt.length=0;t<r;t++)(e=i[t])&&e._lazy&&(e.render(e._lazy[0],e._lazy[1],!0)._lazy=0)}function na(t,e,r,i){dt.length&&!L&&ma(),t.render(e,r,i||L&&e<0&&(t._initted||t._startAt)),dt.length&&!L&&ma()}function oa(t){var e=parseFloat(t);return(e||0===e)&&(t+"").match(at).length<2?e:r(t)?t.trim():t}function pa(t){return t}function qa(t,e){for(var r in e)r in t||(t[r]=e[r]);return t}function ta(t,e){for(var r in e)"__proto__"!==r&&"constructor"!==r&&"prototype"!==r&&(t[r]=v(e[r])?ta(t[r]||(t[r]={}),e[r]):e[r]);return t}function ua(t,e){var r,i={};for(r in t)r in e||(i[r]=t[r]);return i}function va(t){var e=t.parent||I,r=t.keyframes?function _setKeyframeDefaults(i){return function(t,e){for(var r in e)r in t||"duration"===r&&i||"ease"===r||(t[r]=e[r])}}(Z(t.keyframes)):qa;if(w(t.inherit))for(;e;)r(t,e.vars.defaults),e=e.parent||e._dp;return t}function xa(t,e,r,i,n){void 0===r&&(r="_first"),void 0===i&&(i="_last");var a,s=t[i];if(n)for(a=e[n];s&&s[n]>a;)s=s._prev;return s?(e._next=s._next,s._next=e):(e._next=t[r],t[r]=e),e._next?e._next._prev=e:t[i]=e,e._prev=s,e.parent=e._dp=t,e}function ya(t,e,r,i){void 0===r&&(r="_first"),void 0===i&&(i="_last");var n=e._prev,a=e._next;n?n._next=a:t[r]===e&&(t[r]=a),a?a._prev=n:t[i]===e&&(t[i]=n),e._next=e._prev=e.parent=null}function za(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove&&t.parent.remove(t),t._act=0}function Aa(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var r=t;r;)r._dirty=1,r=r.parent;return t}function Ca(t,e,r,i){return t._startAt&&(L?t._startAt.revert(ht):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,i))}function Ea(t){return t._repeat?Tt(t._tTime,t=t.duration()+t._rDelay)*t:0}function Ga(t,e){return(t-e._start)*e._ts+(0<=e._ts?0:e._dirty?e.totalDuration():e._tDur)}function Ha(t){return t._end=ja(t._start+(t._tDur/Math.abs(t._ts||t._rts||X)||0))}function Ia(t,e){var r=t._dp;return r&&r.smoothChildTiming&&t._ts&&(t._start=ja(r._time-(0<t._ts?e/t._ts:((t._dirty?t.totalDuration():t._tDur)-e)/-t._ts)),Ha(t),r._dirty||Aa(r,t)),t}function Ja(t,e){var r;if((e._time||!e._dur&&e._initted||e._start<t._time&&(e._dur||!e.add))&&(r=Ga(t.rawTime(),e),(!e._dur||Ot(0,e.totalDuration(),r)-e._tTime>X)&&e.render(r,!0)),Aa(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur<t.duration())for(r=t;r._dp;)0<=r.rawTime()&&r.totalTime(r._tTime),r=r._dp;t._zTime=-X}}function Ka(e,r,i,n){return r.parent&&za(r),r._start=ja((t(i)?i:i||e!==I?xt(e,i,r):e._time)+r._delay),r._end=ja(r._start+(r.totalDuration()/Math.abs(r.timeScale())||0)),xa(e,r,"_first","_last",e._sort?"_start":0),bt(r)||(e._recent=r),n||Ja(e,r),e._ts<0&&Ia(e,e._tTime),e}function La(t,e){return(ot.ScrollTrigger||Q("scrollTrigger",e))&&ot.ScrollTrigger.create(e,t)}function Ma(t,e,r,i,n){return Qt(t,e,n),t._initted?!r&&t._pt&&!L&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&f!==Rt.frame?(dt.push(t),t._lazy=[n,i],1):void 0:1}function Ra(t,e,r,i){var n=t._repeat,a=ja(e)||0,s=t._tTime/t._tDur;return s&&!i&&(t._time*=a/t._dur),t._dur=a,t._tDur=n?n<0?1e10:ja(a*(n+1)+t._rDelay*n):a,0<s&&!i&&Ia(t,t._tTime=t._tDur*s),t.parent&&Ha(t),r||Aa(t.parent,t),t}function Sa(t){return t instanceof Xt?Aa(t):Ra(t,t._dur)}
vendor: 6,707 bytes, line 20
20function Va(e,r,i){var n,a,s=t(r[1]),o=(s?2:1)+(e<2?0:1),u=r[o];if(s&&(u.duration=r[1]),u.parent=i,e){for(n=u,a=i;a&&!("immediateRender"in n);)n=a.vars.defaults||{},a=w(a.vars.inherit)&&a.parent;u.immediateRender=w(n.immediateRender),e<2?u.runBackwards=1:u.startAt=r[o-1]}return new $t(r[0],u,r[1+o])}function Wa(t,e){return t||0===t?e(t):e}function Ya(t,e){return r(t)&&(e=st.exec(t))?e[1]:""}function _a(t,e){return t&&v(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&v(t[0]))&&!t.nodeType&&t!==h}function cb(r){return r=Mt(r)[0]||R("Invalid scope")||{},function(t){var e=r.current||r.nativeElement||r;return Mt(t,e.querySelectorAll?e:e===r?R("Invalid scope")||a.createElement("div"):r)}}function db(t){return t.sort(function(){return.5-Math.random()})}function eb(t){if(s(t))return t;var p=v(t)?t:{each:t},_=jt(p.ease),m=p.from||0,g=parseFloat(p.base)||0,y={},e=0<m&&m<1,T=isNaN(m)||e,b=p.axis,w=m,x=m;return r(m)?w=x={center:.5,edges:.5,end:1}[m]||0:!e&&T&&(w=m[0],x=m[1]),function(t,e,r){var i,n,a,s,o,u,h,l,f,d=(r||p).length,c=y[d];if(!c){if(!(f="auto"===p.grid?0:(p.grid||[1,U])[1])){for(h=-U;h<(h=r[f++].getBoundingClientRect().left)&&f<d;);f<d&&f--}for(c=y[d]=[],i=T?Math.min(f,d)*w-.5:m%f,n=f===U?0:T?d*x/f-.5:m/f|0,l=U,u=h=0;u<d;u++)a=u%f-i,s=n-(u/f|0),c[u]=o=b?Math.abs("y"===b?s:a):K(a*a+s*s),h<o&&(h=o),o<l&&(l=o);"random"===m&&db(c),c.max=h-l,c.min=l,c.v=d=(parseFloat(p.amount)||parseFloat(p.each)*(d<f?d-1:b?"y"===b?d/f:f:Math.max(f,d/f))||0)*("edges"===m?-1:1),c.b=d<0?g-d:g,c.u=Ya(p.amount||p.each)||0,_=_&&d<0?Yt(_):_}return d=(c[t]-c.min)/c.max||0,ja(c.b+(_?_(d):d)*c.v)+c.u}}function fb(i){var n=Math.pow(10,((i+"").split(".")[1]||"").length);return function(e){var r=ja(Math.round(parseFloat(e)/i)*i*n);return(r-r%1)/n+(t(e)?0:Ya(e))}}function gb(h,e){var l,f,r=Z(h);return!r&&v(h)&&(l=r=h.radius||U,h.values?(h=Mt(h.values),(f=!t(h[0]))&&(l*=l)):h=fb(h.increment)),Wa(e,r?s(h)?function(t){return f=h(t),Math.abs(f-t)<=l?f:t}:function(e){for(var r,i,n=parseFloat(f?e.x:e),a=parseFloat(f?e.y:0),s=U,o=0,u=h.length;u--;)(r=f?(r=h[u].x-n)*r+(i=h[u].y-a)*i:Math.abs(h[u]-n))<s&&(s=r,o=u);return o=!l||s<=l?h[o]:e,f||o===e||t(e)?o:o+Ya(e)}:fb(h))}function hb(t,e,r,i){return Wa(Z(t)?!e:!0===r?!!(r=0):!i,function(){return Z(t)?t[~~(Math.random()*t.length)]:(r=r||1e-5)&&(i=r<1?Math.pow(10,(r+"").length-2):1)&&Math.floor(Math.round((t-r/2+Math.random()*(e-t+.99*r))/r)*r*i)/i})}function lb(e,r,t){return Wa(t,function(t){return e[~~r(t)]})}function ob(t){for(var e,r,i,n,a=0,s="";~(e=t.indexOf("random(",a));)i=t.indexOf(")",e),n="["===t.charAt(e+7),r=t.substr(e+7,i-e-7).match(n?at:tt),s+=t.substr(a,e-a)+hb(n?r:+r[0],n?0:+r[1],+r[2]||1e-5),a=i+1;return s+t.substr(a,t.length-a)}function rb(t,e,r){var i,n,a,s=t.labels,o=U;for(i in s)(n=s[i]-e)<0==!!r&&n&&o>(n=Math.abs(n))&&(a=i,o=n);return a}function tb(t){return za(t),t.scrollTrigger&&t.scrollTrigger.kill(!!L),t.progress()<1&&Ct(t,"onInterrupt"),t}function wb(t){if(t)if(t=!t.name&&t.default||t,x()||t.headless){var e=t.name,r=s(t),i=e&&!r&&t.init?function(){this._props=[]}:t,n={init:T,render:he,add:Wt,kill:ce,modifier:fe,rawVars:0},a={targetTest:0,get:0,getSetter:ne,aliases:{},register:0};if(Ft(),t!==i){if(pt[e])return;qa(i,qa(ua(t,n),a)),yt(i.prototype,yt(n,ua(t,a))),pt[i.prop=e]=i,t.targetTest&&(gt.push(i),ft[e]=1),e=("css"===e?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}S(e,i),t.register&&t.register(ze,i,_e)}else At.push(t)}function zb(t,e,r){return(6*(t+=t<0?1:1<t?-1:0)<1?e+(r-e)*t*6:t<.5?r:3*t<2?e+(r-e)*(2/3-t)*6:e)*St+.5|0}function Ab(e,r,i){var n,a,s,o,u,h,l,f,d,c,p=e?t(e)?[e>>16,e>>8&St,e&St]:0:zt.black;if(!p){if(","===e.substr(-1)&&(e=e.substr(0,e.length-1)),zt[e])p=zt[e];else if("#"===e.charAt(0)){if(e.length<6&&(e="#"+(n=e.charAt(1))+n+(a=e.charAt(2))+a+(s=e.charAt(3))+s+(5===e.length?e.charAt(4)+e.charAt(4):"")),9===e.length)return[(p=parseInt(e.substr(1,6),16))>>16,p>>8&St,p&St,parseInt(e.substr(7),16)/255];p=[(e=parseInt(e.substr(1),16))>>16,e>>8&St,e&St]}else if("hsl"===e.substr(0,3))if(p=c=e.match(tt),r){if(~e.indexOf("="))return p=e.match(et),i&&p.length<4&&(p[3]=1),p}else o=+p[0]%360/360,u=p[1]/100,n=2*(h=p[2]/100)-(a=h<=.5?h*(u+1):h+u-h*u),3<p.length&&(p[3]*=1),p[0]=zb(o+1/3,n,a),p[1]=zb(o,n,a),p[2]=zb(o-1/3,n,a);else p=e.match(tt)||zt.transparent;p=p.map(Number)}return r&&!c&&(n=p[0]/St,a=p[1]/St,s=p[2]/St,h=((l=Math.max(n,a,s))+(f=Math.min(n,a,s)))/2,l===f?o=u=0:(d=l-f,u=.5<h?d/(2-l-f):d/(l+f),o=l===n?(a-s)/d+(a<s?6:0):l===a?(s-n)/d+2:(n-a)/d+4,o*=60),p[0]=~~(o+.5),p[1]=~~(100*u+.5),p[2]=~~(100*h+.5)),i&&p.length<4&&(p[3]=1),p}function Bb(t){var r=[],i=[],n=-1;return t.split(Et).forEach(function(t){var e=t.match(rt)||[];r.push.apply(r,e),i.push(n+=e.length+1)}),r.c=i,r}function Cb(t,e,r){var i,n,a,s,o="",u=(t+o).match(Et),h=e?"hsla(":"rgba(",l=0;if(!u)return t;if(u=u.map(function(t){return(t=Ab(t,e,1))&&h+(e?t[0]+","+t[1]+"%,"+t[2]+"%,"+t[3]:t.join(","))+")"}),r&&(a=Bb(t),(i=r.c).join(o)!==a.c.join(o)))for(s=(n=t.replace(Et,"1").split(rt)).length-1;l<s;l++)o+=n[l]+(~i.indexOf(l)?u.shift()||h+"0,0,0,0)":(a.length?a:u.length?u:r).shift());if(!n)for(s=(n=t.split(Et)).length-1;l<s;l++)o+=n[l]+u[l];return o+n[s]}function Fb(t){var e,r=t.join(" ");if(Et.lastIndex=0,Et.test(r))return e=Dt.test(r),t[1]=Cb(t[1],e),t[0]=Cb(t[0],e,Bb(t[1])),!0}function Ob(t){var e=(t+"").split("("),r=Lt[e[0]];return r&&1<e.length&&r.config?r.config.apply(null,~t.indexOf("{")?[function _parseObjectInString(t){for(var e,r,i,n={},a=t.substr(1,t.length-3).split(":"),s=a[0],o=1,u=a.length;o<u;o++)r=a[o],e=o!==u-1?r.lastIndexOf(","):r.length,i=r.substr(0,e),n[s]=isNaN(i)?i.replace(Bt,"").trim():+i,s=r.substr(e+1).trim();return n}(e[1])]:function _valueInParentheses(t){var e=t.indexOf("(")+1,r=t.indexOf(")"),i=t.indexOf("(",e);return t.substring(e,~i&&i<r?t.indexOf(")",r+1):r)}(t).split(",").map(oa)):Lt._CE&&It.test(t)?Lt._CE("",t):r}function Qb(t,e){for(var r,i=t._first;i;)i instanceof Xt?Qb(i,e):!i.vars.yoyoEase||i._yoyo&&i._repeat||i._yoyo===e||(i.timeline?Qb(i.timeline,e):(r=i._ease,i._ease=i._yEase,i._yEase=r,i._yoyo=e)),i=i._next}function Sb(t,e,r,i){void 0===r&&(r=function easeOut(t){return 1-e(1-t)}),void 0===i&&(i=function easeInOut(t){return t<.5?e(2*t)/2:1-e(2*(1-t))/2});var n,a={easeIn:e,easeOut:r,easeInOut:i};return ha(t,function(t){for(var e in Lt[t]=ot[t]=a,Lt[n=t.toLowerCase()]=r,a)Lt[n+("easeIn"===e?".in":"easeOut"===e?".out":".inOut")]=Lt[t+"."+e]=a[e]}),a}function Tb(e){return function(t){return t<.5?(1-e(1-2*t))/2:.5+e(2*(t-.5))/2}}function Ub(r,t,e){function Jm(t){return 1===t?1:i*Math.pow(2,-10*t)*H((t-a)*n)+1}var i=1<=t?t:1,n=(e||(r?.3:.45))/(t<1?t:1),a=n/N*(Math.asin(1/i)||0),s="out"===r?Jm:"in"===r?function(t){return 1-Jm(1-t)}:Tb(Jm);
vendor: 5,255 bytes, line 20
20return n=N/n,s.config=function(t,e){return Ub(r,t,e)},s}function Vb(e,r){function Rm(t){return t?--t*t*((r+1)*t+r)+1:0}void 0===r&&(r=1.70158);var t="out"===e?Rm:"in"===e?function(t){return 1-Rm(1-t)}:Tb(Rm);return t.config=function(t){return Vb(e,t)},t}var F,L,l,I,h,n,a,i,o,f,d,c,p,_,m,g,b,O,k,M,C,A,z,E,D,B,Y,j,q={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},V={duration:.5,overwrite:!1,delay:0},U=1e8,X=1/U,N=2*Math.PI,G=N/4,W=0,K=Math.sqrt,J=Math.cos,H=Math.sin,$="function"==typeof ArrayBuffer&&ArrayBuffer.isView||function(){},Z=Array.isArray,tt=/(?:-?\.?\d|\.)+/gi,et=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,rt=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,it=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,nt=/[+-]=-?[.\d]+/,at=/[^,'"\[\]\s]+/gi,st=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,ot={},ut={suppressEvents:!0,isStart:!0,kill:!1},ht={suppressEvents:!0,kill:!1},lt={suppressEvents:!0},ft={},dt=[],ct={},pt={},_t={},mt=30,gt=[],vt="",yt=function _merge(t,e){for(var r in e)t[r]=e[r];return t},Tt=function _animationCycle(t,e){var r=Math.floor(t/=e);return t&&r===t?r-1:r},bt=function _isFromOrFromStart(t){var e=t.data;return"isFromStart"===e||"isStart"===e},wt={_start:0,endTime:T,totalDuration:T},xt=function _parsePosition(t,e,i){var n,a,s,o=t.labels,u=t._recent||wt,h=t.duration()>=U?u.endTime(!1):t._dur;return r(e)&&(isNaN(e)||e in o)?(a=e.charAt(0),s="%"===e.substr(-1),n=e.indexOf("="),"<"===a||">"===a?(0<=n&&(e=e.replace(/=/,"")),("<"===a?u._start:u.endTime(0<=u._repeat))+(parseFloat(e.substr(1))||0)*(s?(n<0?u:i).totalDuration()/100:1)):n<0?(e in o||(o[e]=h),o[e]):(a=parseFloat(e.charAt(n-1)+e.substr(n+1)),s&&i&&(a=a/100*(Z(i)?i[0]:i).totalDuration()),1<n?_parsePosition(t,e.substr(0,n-1),i)+a:h+a)):null==e?h:+e},Ot=function _clamp(t,e,r){return r<t?t:e<r?e:r},kt=[].slice,Mt=function toArray(t,e,i){return l&&!e&&l.selector?l.selector(t):!r(t)||i||!n&&Ft()?Z(t)?function _flatten(t,e,i){return void 0===i&&(i=[]),t.forEach(function(t){return r(t)&&!e||_a(t,1)?i.push.apply(i,Mt(t)):i.push(t)})||i}(t,i):_a(t)?kt.call(t,0):t?[t]:[]:kt.call((e||a).querySelectorAll(t),0)},Pt=function mapRange(e,t,r,i,n){var a=t-e,s=i-r;return Wa(n,function(t){return r+((t-e)/a*s||0)})},Ct=function _callback(t,e,r){var i,n,a,s=t.vars,o=s[e],u=l,h=t._ctx;if(o)return i=s[e+"Params"],n=s.callbackScope||t,r&&dt.length&&ma(),h&&(l=h),a=i?o.apply(n,i):o.call(n),l=u,a},At=[],St=255,zt={aqua:[0,St,St],lime:[0,St,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,St],navy:[0,0,128],white:[St,St,St],olive:[128,128,0],yellow:[St,St,0],orange:[St,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[St,0,0],pink:[St,192,203],cyan:[0,St,St],transparent:[St,St,St,0]},Et=function(){var t,e="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b";for(t in zt)e+="|"+t+"\\b";return new RegExp(e+")","gi")}(),Dt=/hsl[a]?\(/,Rt=(k=Date.now,M=500,C=33,A=k(),z=A,D=E=1e3/240,g={time:0,frame:0,tick:function tick(){yl(!0)},deltaRatio:function deltaRatio(t){return b/(1e3/(t||60))},wake:function wake(){o&&(!n&&x()&&(h=n=window,a=h.document||{},ot.gsap=ze,(h.gsapVersions||(h.gsapVersions=[])).push(ze.version),P(i||h.GreenSockGlobals||!h.gsap&&h||{}),At.forEach(wb)),m="undefined"!=typeof requestAnimationFrame&&requestAnimationFrame,p&&g.sleep(),_=m||function(t){return setTimeout(t,D-1e3*g.time+1|0)},c=1,yl(2))},sleep:function sleep(){(m?cancelAnimationFrame:clearTimeout)(p),c=0,_=T},lagSmoothing:function lagSmoothing(t,e){M=t||1/0,C=Math.min(e||33,M)},fps:function fps(t){E=1e3/(t||240),D=1e3*g.time+E},add:function add(n,t,e){var a=t?function(t,e,r,i){n(t,e,r,i),g.remove(a)}:n;return g.remove(n),B[e?"unshift":"push"](a),Ft(),a},remove:function remove(t,e){~(e=B.indexOf(t))&&B.splice(e,1)&&e<=O&&O--},_listeners:B=[]}),Ft=function _wake(){return!c&&Rt.wake()},Lt={},It=/^[\d.\-M][\d.\-,\s]/,Bt=/["']/g,Yt=function _invertEase(e){return function(t){return 1-e(1-t)}},jt=function _parseEase(t,e){return t&&(s(t)?t:Lt[t]||Ob(t))||e};function yl(t){var e,r,i,n,a=k()-z,s=!0===t;if((M<a||a<0)&&(A+=a-C),(0<(e=(i=(z+=a)-A)-D)||s)&&(n=++g.frame,b=i-1e3*g.time,g.time=i/=1e3,D+=e+(E<=e?4:E-e),r=1),s||(p=_(yl)),r)for(O=0;O<B.length;O++)B[O](i,b,n,t)}function gn(t){return t<j?Y*t*t:t<.7272727272727273?Y*Math.pow(t-1.5/2.75,2)+.75:t<.9090909090909092?Y*(t-=2.25/2.75)*t+.9375:Y*Math.pow(t-2.625/2.75,2)+.984375}ha("Linear,Quad,Cubic,Quart,Quint,Strong",function(t,e){var r=e<5?e+1:e;Sb(t+",Power"+(r-1),e?function(t){return Math.pow(t,r)}:function(t){return t},function(t){return 1-Math.pow(1-t,r)},function(t){return t<.5?Math.pow(2*t,r)/2:1-Math.pow(2*(1-t),r)/2})}),Lt.Linear.easeNone=Lt.none=Lt.Linear.easeIn,Sb("Elastic",Ub("in"),Ub("out"),Ub()),Y=7.5625,j=1/2.75,Sb("Bounce",function(t){return 1-gn(1-t)},gn),Sb("Expo",function(t){return t?Math.pow(2,10*(t-1)):0}),Sb("Circ",function(t){return-(K(1-t*t)-1)}),Sb("Sine",function(t){return 1===t?1:1-J(t*G)}),Sb("Back",Vb("in"),Vb("out"),Vb()),Lt.SteppedEase=Lt.steps=ot.SteppedEase={config:function config(t,e){void 0===t&&(t=1);var r=1/t,i=t+(e?0:1),n=e?1:0;return function(t){return((i*Ot(0,.99999999,t)|0)+n)*r}}},V.ease=Lt["quad.out"],ha("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt",function(t){return vt+=t+","+t+"Param
20s,"});var qt,Vt=function GSCache(t,e){this.id=W++,(t._gsap=this).target=t,this.harness=e,this.get=e?e.get:ga,this.set=e?e.getSetter:ne},Ut=((qt=Animation.prototype).delay=function delay(t){return t||0===t?(this.parent&&this.parent.smoothChildTiming&&this.startTime(this._start+t-this._delay),this._delay=t,this):this._delay},qt.duration=function duration(t){return arguments.length?this.totalDuration(0<this._repeat?t+(t+this._rDelay)*this._repeat:t):this.totalDuration()&&this._dur},qt.totalDuration=function totalDuration(t){return arguments.length?(this._dirty=0,Ra(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},qt.totalTime=function totalTime(t,e){if(Ft(),!arguments.length)return this._tTime;var r=this._dp;if(r&&r.smoothChildTiming&&this._ts){for(Ia(this,t),!r._dp||r.parent||Ja(r,this);r&&r.parent;)r.parent._time!==r._start+(0<=r._ts?r._tTime/r._ts:(r.totalDuration()-r._tTime)/-r._ts)&&r.totalTime(r._tTime,!0),r=r.parent;!this.parent&&this._dp.autoRemoveChildren&&(0<this._ts&&t<this._tDur||this._ts<0&&0<t||!this._tDur&&!t)&&Ka(this._dp,this,this._start-this._delay)}return(this._tTime!==t||!this._dur&&!e||this._initted&&Math.abs(this._zTime)===X||!t&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=t),na(this,t,e)),this},qt.time=function time(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+Ea(this))%(this._dur+this._rDelay)||(t?this._dur:0),e):this._time},qt.totalProgress=function totalProgress(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):0<this.rawTime()?1:0},qt.progress=function progress(t,e){return arguments.length?this.totalTime(this.duration()*(!this._yoyo||1&this.iteration()?t:1-t)+Ea(this),e):this.duration()?Math.min(1,this._time/this._dur):0<this.rawTime()?1:0},qt.iteration=function iteration(t,e){var r=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*r,e):this._repeat?Tt(this._tTime,r)+1:1},qt.timeScale=function timeScale(t,e){if(!arguments.length)return this._rts===-X?0:this._rts;if(this._rts===t)return this;var r=this.parent&&this._ts?Ga(this.parent._time,this):this._tTime;return this._rts=+t||0,this._ts=this._ps||t===-X?0:this._rts,this.totalTime(Ot(-Math.abs(this._delay),this._tDur,r),!1!==e),Ha(this),function _recacheAncestors(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t}(this)},qt.paused=function paused(t){return arguments.length?(this._ps!==t&&((this._ps=t)?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Ft(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&Math.abs(this._zTime)!==X&&(this._tTime-=X)))),this):this._ps},qt.startTime=function startTime(t){if(arguments.length){this._start=t;var e=this.parent||this._dp;return!e||!e._sort&&this.parent||Ka(e,this,t-this._delay),this}return this._start},qt.endTime=function endTime(t){return this._start+(w(t)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},qt.rawTime=function rawTime(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?Ga(e.rawTime(t),this):this._tTime:this._tTime},qt.revert=function revert(t){void 0===t&&(t=lt);var e=L;return L=t,(this._initted||this._startAt)&&(this.timeline&&this.timeline.revert(t),this.totalTime(-.01,t.suppressEvents)),"nested"!==this.data&&!1!==t.kill&&this.kill(),L=e,this},qt.globalTime=function globalTime(t){for(var e=this,r=arguments.length?t:e.rawTime();e;)r=e._start+r/(Math.abs(e._ts)||1),e=e._dp;return!this.parent&&this._sat?this._sat.globalTime(t):r},qt.repeat=function repeat(t){return arguments.length?(this._repeat=t===1/0?-2:t,Sa(this)):-2===this._repeat?1/0:this._repeat},qt.repeatDelay=function repeatDelay(t){if(arguments.length){var e=this._time;return this._rDelay=t,Sa(this),e?this.time(e):this}return this._rDelay},qt.yoyo=function yoyo(t){return arguments.length?(this._yoyo=t,this):this._yoyo},qt.seek=function seek(t,e){return this.totalTime(xt(this,t),w(e))},qt.restart=function restart(t,e){return this.play().totalTime(t?-this._delay:0,w(e))},qt.play=function play(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},qt.reverse=function reverse(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},qt.pause=function pause(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},qt.resume=function resume(){return this.paused(!1)},qt.reversed=function reversed(t){return arguments.length?(!!t!==this.reversed()&&this.timeScale(-this._rts||(t?-X:0)),this):this._rts<0}
vendor: 3,228 bytes, line 20
20,qt.invalidate=function invalidate(){return this._initted=this._act=0,this._zTime=-X,this},qt.isActive=function isActive(){var t,e=this.parent||this._dp,r=this._start;return!(e&&!(this._ts&&this._initted&&e.isActive()&&(t=e.rawTime(!0))>=r&&t<this.endTime(!0)-X))},qt.eventCallback=function eventCallback(t,e,r){var i=this.vars;return 1<arguments.length?(e?(i[t]=e,r&&(i[t+"Params"]=r),"onUpdate"===t&&(this._onUpdate=e)):delete i[t],this):i[t]},qt.then=function then(t){var i=this;return new Promise(function(e){function Co(){var t=i.then;i.then=null,s(r)&&(r=r(i))&&(r.then||r===i)&&(i.then=t),e(r),i.then=t}var r=s(t)?t:pa;i._initted&&1===i.totalProgress()&&0<=i._ts||!i._tTime&&i._ts<0?Co():i._prom=Co})},qt.kill=function kill(){tb(this)},Animation);function Animation(t){this.vars=t,this._delay=+t.delay||0,(this._repeat=t.repeat===1/0?-2:t.repeat||0)&&(this._rDelay=t.repeatDelay||0,this._yoyo=!!t.yoyo||!!t.yoyoEase),this._ts=1,Ra(this,+t.duration,1,1),this.data=t.data,l&&(this._ctx=l).data.push(this),c||Rt.wake()}qa(Ut.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-X,_prom:0,_ps:!1,_rts:1});var Xt=function(i){function Timeline(t,e){var r;return void 0===t&&(t={}),(r=i.call(this,t)||this).labels={},r.smoothChildTiming=!!t.smoothChildTiming,r.autoRemoveChildren=!!t.autoRemoveChildren,r._sort=w(t.sortChildren),I&&Ka(t.parent||I,_assertThisInitialized(r),e),t.reversed&&r.reverse(),t.paused&&r.paused(!0),t.scrollTrigger&&La(_assertThisInitialized(r),t.scrollTrigger),r}_inheritsLoose(Timeline,i);var e=Timeline.prototype;return e.to=function to(t,e,r){return Va(0,arguments,this),this},e.from=function from(t,e,r){return Va(1,arguments,this),this},e.fromTo=function fromTo(t,e,r,i){return Va(2,arguments,this),this},e.set=function set(t,e,r){return e.duration=0,e.parent=this,va(e).repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new $t(t,e,xt(this,r),1),this},e.call=function call(t,e,r){return Ka(this,$t.delayedCall(0,t,e),r)},e.staggerTo=function staggerTo(t,e,r,i,n,a,s){return r.duration=e,r.stagger=r.stagger||i,r.onComplete=a,r.onCompleteParams=s,r.parent=this,new $t(t,r,xt(this,n)),this},e.staggerFrom=function staggerFrom(t,e,r,i,n,a,s){return r.runBackwards=1,va(r).immediateRender=w(r.immediateRender),this.staggerTo(t,e,r,i,n,a,s)},e.staggerFromTo=function staggerFromTo(t,e,r,i,n,a,s,o){return i.startAt=r,va(i).immediateRender=w(i.immediateRender),this.staggerTo(t,e,i,n,a,s,o)},e.render=function render(t,e,r){var i,n,a,s,o,u,h,l,f,d,c,p,_=this._time,m=this._dirty?this.totalDuration():this._tDur,g=this._dur,v=t<=0?0:ja(t),y=this._zTime<0!=t<0&&(this._initted||!g);if(this!==I&&m<v&&0<=t&&(v=m),v!==this._tTime||r||y){if(_!==this._time&&g&&(v+=this._time-_,t+=this._time-_),i=v,f=this._start,u=!(l=this._ts),y&&(g||(_=this._zTime),!t&&e||(this._zTime=t)),this._repeat){if(c=this._yoyo,o=g+this._rDelay,this._repeat<-1&&t<0)return this.totalTime(100*o+t,e,r);if(i=ja(v%o),v===m?(s=this._repeat,i=g):((s=~~(v/o))&&s===v/o&&(i=g,s--),g<i&&(i=g)),d=Tt(this._tTime,o),!_&&this._tTime&&d!==s&&this._tTime-d*o-this._dur<=0&&(d=s),c&&1&s&&(i=g-i,p=1),s!==d&&!this._lock){var T=c&&1&d,b=T===(c&&
vendor: 44,758 bytes, line 20
201&s);if(s<d&&(T=!T),_=T?0:v%g?g:v,this._lock=1,this.render(_||(p?0:ja(s*o)),e,!g)._lock=0,this._tTime=v,!e&&this.parent&&Ct(this,"onRepeat"),this.vars.repeatRefresh&&!p&&(this.invalidate()._lock=1),_&&_!==this._time||u!=!this._ts||this.vars.onRepeat&&!this.parent&&!this._act)return this;if(g=this._dur,m=this._tDur,b&&(this._lock=2,_=T?g:-1e-4,this.render(_,!0),this.vars.repeatRefresh&&!p&&this.invalidate()),this._lock=0,!this._ts&&!u)return this;Qb(this,p)}}if(this._hasPause&&!this._forcing&&this._lock<2&&(h=function _findNextPauseTween(t,e,r){var i;if(e<r)for(i=t._first;i&&i._start<=r;){if("isPause"===i.data&&i._start>e)return i;i=i._next}else for(i=t._last;i&&i._start>=r;){if("isPause"===i.data&&i._start<e)return i;i=i._prev}}(this,ja(_),ja(i)))&&(v-=i-(i=h._start)),this._tTime=v,this._time=i,this._act=!l,this._initted||(this._onUpdate=this.vars.onUpdate,this._initted=1,this._zTime=t,_=0),!_&&i&&!e&&!s&&(Ct(this,"onStart"),this._tTime!==v))return this;if(_<=i&&0<=t)for(n=this._first;n;){if(a=n._next,(n._act||i>=n._start)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(0<n._ts?(i-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(i-n._start)*n._ts,e,r),i!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=-X);break}}n=a}else{n=this._last;for(var w=t<0?t:i;n;){if(a=n._prev,(n._act||w<=n._end)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(0<n._ts?(w-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(w-n._start)*n._ts,e,r||L&&(n._initted||n._startAt)),i!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=w?-X:X);break}}n=a}}if(h&&!e&&(this.pause(),h.render(_<=i?0:-X)._zTime=_<=i?1:-1,this._ts))return this._start=f,Ha(this),this.render(t,e,r);this._onUpdate&&!e&&Ct(this,"onUpdate",!0),(v===m&&this._tTime>=this.totalDuration()||!v&&_)&&(f!==this._start&&Math.abs(l)===Math.abs(this._ts)||this._lock||(!t&&g||!(v===m&&0<this._ts||!v&&this._ts<0)||za(this,1),e||t<0&&!_||!v&&!_&&m||(Ct(this,v===m&&0<=t?"onComplete":"onReverseComplete",!0),!this._prom||v<m&&0<this.timeScale()||this._prom())))}return this},e.add=function add(e,i){var n=this;if(t(i)||(i=xt(this,i,e)),!(e instanceof Ut)){if(Z(e))return e.forEach(function(t){return n.add(t,i)}),this;if(r(e))return this.addLabel(e,i);if(!s(e))return this;e=$t.delayedCall(0,e)}return this!==e?Ka(this,e,i):this},e.getChildren=function getChildren(t,e,r,i){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),void 0===i&&(i=-U);for(var n=[],a=this._first;a;)a._start>=i&&(a instanceof $t?e&&n.push(a):(r&&n.push(a),t&&n.push.apply(n,a.getChildren(!0,e,r)))),a=a._next;return n},e.getById=function getById(t){for(var e=this.getChildren(1,1,1),r=e.length;r--;)if(e[r].vars.id===t)return e[r]},e.remove=function remove(t){return r(t)?this.removeLabel(t):s(t)?this.killTweensOf(t):(ya(this,t),t===this._recent&&(this._recent=this._last),Aa(this))},e.totalTime=function totalTime(t,e){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=ja(Rt.time-(0<this._ts?t/this._ts:(this.totalDuration()-t)/-this._ts))),i.prototype.totalTime.call(this,t,e),this._forcing=0,this):this._tTime},e.addLabel=function addLabel(t,e){return this.labels[t]=xt(this,e),this},e.removeLabel=function removeLabel(t){return delete this.labels[t],this},e.addPause=function addPause(t,e,r){var i=$t.delayedCall(0,e||T,r);return i.data="isPause",this._hasPause=1,Ka(this,i,xt(this,t))},e.removePause=function removePause(t){var e=this._first;for(t=xt(this,t);e;)e._start===t&&"isPause"===e.data&&za(e),e=e._next},e.killTweensOf=function killTweensOf(t,e,r){for(var i=this.getTweensOf(t,r),n=i.length;n--;)Nt!==i[n]&&i[n].kill(t,e);return this},e.getTweensOf=function getTweensOf(e,r){for(var i,n=[],a=Mt(e),s=this._first,o=t(r);s;)s instanceof $t?la(s._targets,a)&&(o?(!Nt||s._initted&&s._ts)&&s.globalTime(0)<=r&&s.globalTime(s.totalDuration())>r:!r||s.isActive())&&n.push(s):(i=s.getTweensOf(a,r)).length&&n.push.apply(n,i),s=s._next;return n},e.tweenTo=function tweenTo(t,e){e=e||{};var r,i=this,n=xt(i,t),a=e.startAt,s=e.onStart,o=e.onStartParams,u=e.immediateRender,h=$t.to(i,qa({ease:e.ease||"none",lazy:!1,immediateRender:!1,time:n,overwrite:"auto",duration:e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale())||X,onStart:function onStart(){if(i.pause(),!r){var t=e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale());h._dur!==t&&Ra(h,t,0,1).render(h._time,!0,!0),r=1}s&&s.apply(h,o||[])}},e));return u?h.render(0):h},e.tweenFromTo=function tweenFromTo(t,e,r){return this.tweenTo(e,qa({startAt:{time:xt(this,t)}},r))},e.recent=function recent(){return this._recent},e.nextLabel=function nextLabel(t){return void 0===t&&(t=this._time),rb(this,xt(this,t))},e.previousLabel=function previousLabel(t){return void 0===t&&(t=this._time),rb(this,xt(this,t),1)},e.currentLabel=function currentLabel(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+X)},e.shiftChildren=function shiftChildren(t,e,r){void 0===r&&(r=0);for(var i,n=this._first,a=this.labels;n;)n._start>=r&&(n._start+=t,n._end+=t),n=n._next;if(e)for(i in a)a[i]>=r&&(a[i]+=t);return Aa(this)},e.invalidate=function invalidate(t){var e=this._first;for(this._lock=0;e;)e.invalidate(t),e=e._next;return i.prototype.invalidate.call(this,t)},e.clear=function clear(t){void 0===t&&(t=!0);for(var e,r=this._first;r;)e=r._next,this.remove(r),r=e;return this._dp&&(this._time=this._tTime=this._pTime=0),t&&(this.labels={}),Aa(this)},e.totalDuration=function totalDuration(t){var e,r,i,n=0,a=this,s=a._last,o=U;if(arguments.length)return a.timeScale((a._repeat<0?a.duration():a.totalDuration())/(a.reversed()?-t:t));if(a._dirty){for(i=a.parent;s;)e=s._prev,s._dirty&&s.totalDuration(),o<(r=s._start)&&a._sort&&s._ts&&!a._lock?(a._lock=1,Ka(a,s,r-s._delay,1)._lock=0):o=r,r<0&&s._ts&&(n-=r,(!i&&!a._dp||i&&i.smoothChildTiming)&&(a._start+=r/a._ts,a._time-=r,a._tTime-=r),a.shiftChildren(-r,!1,-Infinity),o=0),s._end>n&&s._ts&&(n=s._end),s=e;Ra(a,a===I&&a._time>n?a._time:n,1,1),a._dirty=0}return a._tDur},Timeline.updateRoot=function updateRoot(t){if(I._ts&&(na(I,Ga(t,I)),f=Rt.frame),Rt.frame>=mt){mt+=q.autoSleep||120;var e=I._first;if((!e||!e._ts)&&q.autoSleep&&Rt._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||Rt.sleep()}}},Timeline}(Ut);qa(Xt.prototype,{_lock:0,_hasPause:0,_forcing:0});function ac(t,e,i,n,a,o){var u,h,l,f;if(pt[t]&&!1!==(u=new pt[t]).init(a,u.rawVars?e[t]:function _processVars(t,e,i,n,a){if(s(t)&&(t=Kt(t,a,e,i,n)),!v(t)||t.style&&t.nodeType||Z(t)||$(t))return r(t)?Kt(t,a,e,i,n):t;var o,u={};for(o in t)u[o]=Kt(t[o],a,e,i,n);return u}(e[t],n,a,o,i),i,n,o)&&(i._pt=h=new _e(i._pt,a,t,0,1,u.render,u,0,u.priority),i!==d))for(l=i._ptLookup[i._targets.indexOf(a)],f=u._props.length;f--;)l[u._props[f]]=h;return u}function gc(t,r,e,i){var n,a,s=r.ease||i||"power1.inOut";if(Z(r))a=e[t]||(e[t]=[]),r.forEach(function(t,e){return a.push({t:e/(r.length-1)*100,v:t,e:s})});else for(n in r)a=e[n]||(e[n]=[]),"ease"===n||a.push({t:parseFloat(t),v:r[n],e:s})}var Nt,Gt,Wt=function _addPropTween(t,e,i,n,a,o,u,h,l,f){s(n)&&(n=n(a||0,t,o));var d,c=t[e],p="get"!==i?i:s(c)?l?t[e.indexOf("set")||!s(t["get"+e.substr(3)])?e:"get"+e.substr(3)](l):t[e]():c,_=s(c)?l?re:te:Zt;if(r(n)&&(~n.indexOf("random(")&&(n=ob(n)),"="===n.charAt(1)&&(!(d=ka(p,n)+(Ya(p)||0))&&0!==d||(n=d))),!f||p!==n||Gt)return isNaN(p*n)||""===n?(c||e in t||Q(e,n),function _addComplexStringPropTween(t,e,r,i,n,a,s){var o,u,h,l,f,d,c,p,_=new _e(this._pt,t,e,0,1,ue,null,n),m=0,g=0;for(_.b=r,_.e=i,r+="",(c=~(i+="").indexOf("random("))&&(i=ob(i)),a&&(a(p=[r,i],t,e),r=p[0],i=p[1]),u=r.match(it)||[];o=it.exec(i);)l=o[0],f=i.substring(m,o.index),h?h=(h+1)%5:"rgba("===f.substr(-5)&&(h=1),l!==u[g++]&&(d=parseFloat(u[g-1])||0,_._pt={_next:_._pt,p:f||1===g?f:",",s:d,c:"="===l.charAt(1)?ka(d,l)-d:parseFloat(l)-d,m:h&&h<4?Math.round:0},m=it.lastIndex);return _.c=m<i.length?i.substring(m,i.length):"",_.fp=s,(nt.test(i)||c)&&(_.e=0),this._pt=_}.call(this,t,e,p,n,_,h||q.stringFilter,l)):(d=new _e(this._pt,t,e,+p||0,n-(p||0),"boolean"==typeof c?se:ae,0,_),l&&(d.fp=l),u&&d.modifier(u,this,t),this._pt=d)},Qt=function _initTween(t,e,r){var i,n,a,s,o,u,h,l,f,d,c,p,_,m=t.vars,g=m.ease,v=m.startAt,y=m.immediateRender,T=m.lazy,b=m.onUpdate,x=m.runBackwards,O=m.yoyoEase,k=m.keyframes,M=m.autoRevert,P=t._dur,C=t._startAt,A=t._targets,S=t.parent,z=S&&"nested"===S.data?S.vars.targets:A,E="auto"===t._overwrite&&!F,D=t.timeline;if(!D||k&&g||(g="none"),t._ease=jt(g,V.ease),t._yEase=O?Yt(jt(!0===O?g:O,V.ease)):0,O&&t._yoyo&&!t._repeat&&(O=t._yEase,t._yEase=t._ease,t._ease=O),t._from=!D&&!!m.runBackwards,!D||k&&!m.stagger){if(p=(l=A[0]?fa(A[0]).harness:0)&&m[l.prop],i=ua(m,ft),C&&(C._zTime<0&&C.progress(1),e<0&&x&&y&&!M?C.render(-1,!0):C.revert(x&&P?ht:ut),C._lazy=0),v){if(za(t._startAt=$t.set(A,qa({data:"isStart",overwrite:!1,parent:S,immediateRender:!0,lazy:!C&&w(T),startAt:null,delay:0,onUpdate:b&&function(){return Ct(t,"onUpdate")},stagger:0},v))),t._startAt._dp=0,t._startAt._sat=t,e<0&&(L||!y&&!M)&&t._startAt.revert(ht),y&&P&&e<=0&&r<=0)return void(e&&(t._zTime=e))}else if(x&&P&&!C)if(e&&(y=!1),a=qa({overwrite:!1,data:"isFromStart",lazy:y&&!C&&w(T),immediateRender:y,stagger:0,parent:S},i),p&&(a[l.prop]=p),za(t._startAt=$t.set(A,a)),t._startAt._dp=0,t._startAt._sat=t,e<0&&(L?t._startAt.revert(ht):t._startAt.render(-1,!0)),t._zTime=e,y){if(!e)return}else _initTween(t._startAt,X,X);for(t._pt=t._ptCache=0,T=P&&w(T)||T&&!P,n=0;n<A.length;n++){if(h=(o=A[n])._gsap||ea(A)[n]._gsap,t._ptLookup[n]=d={},ct[h.id]&&dt.length&&ma(),c=z===A?n:z.indexOf(o),l&&!1!==(f=new l).init(o,p||i,t,c,z)&&(t._pt=s=new _e(t._pt,o,f.name,0,1,f.render,f,0,f.priority),f._props.forEach(function(t){d[t]=s}),f.priority&&(u=1)),!l||p)for(a in i)pt[a]&&(f=ac(a,i,t,c,o,z))?f.priority&&(u=1):d[a]=s=Wt.call(t,o,a,"get",i[a],c,z,0,m.stringFilter);t._op&&t._op[n]&&t.kill(o,t._op[n]),E&&t._pt&&(Nt=t,I.killTweensOf(o,d,t.globalTime(e)),_=!t.parent,Nt=0),t._pt&&T&&(ct[h.id]=1)}u&&pe(t),t._onInit&&t._onInit(t)}t._onUpdate=b,t._initted=(!t._op||t._pt)&&!_,k&&e<=0&&D.render(U,!0,!0)},Kt=function _parseFuncOrString(t,e,i,n,a){return s(t)?t.call(e,i,n,a):r(t)&&~t.indexOf("random(")?ob(t):t},Jt=vt+"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert",Ht={};ha(Jt+",id,stagger,delay,duration,paused,scrollTrigger",function(t){return Ht[t]=1});var $t=function(D){function Tween(e,r,i,n){var a;"number"==typeof r&&(i.duration=r,r=i,i=null);var s,o,u,h,l,f,d,c,p=(a=D.call(this,n?r:va(r))||this).vars,_=p.duration,m=p.delay,g=p.immediateRender,T=p.stagger,b=p.overwrite,x=p.keyframes,O=p.defaults,k=p.scrollTrigger,M=p.yoyoEase,P=r.parent||I,C=(Z(e)||$(e)?t(e[0]):"length"in r)?[e]:Mt(e);if(a._targets=C.length?ea(C):R("GSAP target "+e+" not found. https://gsap.com",!q.nullTargetWarn)||[],a._ptLookup=[],a._overwrite=b,x||T||y(_)||y(m)){if(r=a.vars,(s=a.timeline=new Xt({data:"nested",defaults:O||{},targets:P&&"nested"===P.data?P.vars.targets:C})).kill(),s.parent=s._dp=_assertThisInitialized(a),s._start=0,T||y(_)||y(m)){if(h=C.length,d=T&&eb(T),v(T))for(l in T)~Jt.indexOf(l)&&((c=c||{})[l]=T[l]);for(o=0;o<h;o++)(u=ua(r,Ht)).stagger=0,M&&(u.yoyoEase=M),c&&yt(u,c),f=C[o],u.duration=+Kt(_,_assertThisInitialized(a),o,f,C),u.delay=(+Kt(m,_assertThisInitialized(a),o,f,C)||0)-a._delay,!T&&1===h&&u.delay&&(a._delay=m=u.delay,a._start+=m,u.delay=0),s.to(f,u,d?d(o,f,C):0),s._ease=Lt.none;s.duration()?_=m=0:a.timeline=0}else if(x){va(qa(s.vars.defaults,{ease:"none"})),s._ease=jt(x.ease||r.ease||"none");var A,S,z,E=0;if(Z(x))x.forEach(function(t){return s.to(C,t,">")}),s.duration();else{for(l in u={},x)"ease"===l||"easeEach"===l||gc(l,x[l],u,x.easeEach);for(l in u)for(A=u[l].sort(function(t,e){return t.t-e.t}),o=E=0;o<A.length;o++)(z={ease:(S=A[o]).e,duration:(S.t-(o?A[o-1].t:0))/100*_})[l]=S.v,s.to(C,z,E),E+=z.duration;s.duration()<_&&s.to({},{duration:_-s.duration()})}}_||a.duration(_=s.duration())}else a.timeline=0;return!0!==b||F||(Nt=_assertThisInitialized(a),I.killTweensOf(C),Nt=0),Ka(P,_assertThisInitialized(a),i),r.reversed&&a.reverse(),r.paused&&a.paused(!0),(g||!_&&!x&&a._start===ja(P._time)&&w(g)&&function _hasNoPausedAncestors(t){return!t||t._ts&&_hasNoPausedAncestors(t.parent)}(_assertThisInitialized(a))&&"nested"!==P.data)&&(a._tTime=-X,a.render(Math.max(0,-m)||0)),k&&La(_assertThisInitialized(a),k),a}_inheritsLoose(Tween,D);var e=Tween.prototype;return e.render=function render(t,e,r){var i,n,a,s,o,u,h,l,f,d=this._time,c=this._tDur,p=this._dur,_=t<0,m=c-X<t&&!_?c:t<X?0:t;if(p){if(m!==this._tTime||!t||r||!this._initted&&this._tTime||this._startAt&&this._zTime<0!=_){if(i=m,l=this.timeline,this._repeat){if(s=p+this._rDelay,this._repeat<-1&&_)return this.totalTime(100*s+t,e,r);if(i=ja(m%s),m===c?(a=this._repeat,i=p):((a=~~(m/s))&&a===ja(m/s)&&(i=p,a--),p<i&&(i=p)),(u=this._yoyo&&1&a)&&(f=this._yEase,i=p-i),o=Tt(this._tTime,s),i===d&&!r&&this._initted&&a===o)return this._tTime=m,this;a!==o&&(l&&this._yEase&&Qb(l,u),this.vars.repeatRefresh&&!u&&!this._lock&&this._time!==s&&this._initted&&(this._lock=r=1,this.render(ja(s*a),!0).invalidate()._lock=0))}if(!this._initted){if(Ma(this,_?t:i,r,e,m))return this._tTime=0,this;if(!(d===this._time||r&&this.vars.repeatRefresh&&a!==o))return this;if(p!==this._dur)return this.render(t,e,r)}if(this._tTime=m,this._time=i,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=h=(f||this._ease)(i/p),this._from&&(this.ratio=h=1-h),i&&!d&&!e&&!a&&(Ct(this,"onStart"),this._tTime!==m))return this;for(n=this._pt;n;)n.r(h,n.d),n=n._next;l&&l.render(t<0?t:l._dur*l._ease(i/this._dur),e,r)||this._startAt&&(this._zTime=t),this._onUpdate&&!e&&(_&&Ca(this,t,0,r),Ct(this,"onUpdate")),this._repeat&&a!==o&&this.vars.onRepeat&&!e&&this.parent&&Ct(this,"onRepeat"),m!==this._tDur&&m||this._tTime!==m||(_&&!this._onUpdate&&Ca(this,t,0,!0),!t&&p||!(m===this._tDur&&0<this._ts||!m&&this._ts<0)||za(this,1),e||_&&!d||!(m||d||u)||(Ct(this,m===c?"onComplete":"onReverseComplete",!0),!this._prom||m<c&&0<this.timeScale()||this._prom()))}}else!function _renderZeroDurationTween(t,e,r,i){var n,a,s,o=t.ratio,u=e<0||!e&&(!t._start&&function _parentPlayheadIsBeforeStart(t){var e=t.parent;return e&&e._ts&&e._initted&&!e._lock&&(e.rawTime()<0||_parentPlayheadIsBeforeStart(e))}(t)&&(t._initted||!bt(t))||(t._ts<0||t._dp._ts<0)&&!bt(t))?0:1,h=t._rDelay,l=0;if(h&&t._repeat&&(l=Ot(0,t._tDur,e),a=Tt(l,h),t._yoyo&&1&a&&(u=1-u),a!==Tt(t._tTime,h)&&(o=1-u,t.vars.repeatRefresh&&t._initted&&t.invalidate())),u!==o||L||i||t._zTime===X||!e&&t._zTime){if(!t._initted&&Ma(t,e,i,r,l))return;for(s=t._zTime,t._zTime=e||(r?X:0),r=r||e&&!s,t.ratio=u,t._from&&(u=1-u),t._time=0,t._tTime=l,n=t._pt;n;)n.r(u,n.d),n=n._next;e<0&&Ca(t,e,0,!0),t._onUpdate&&!r&&Ct(t,"onUpdate"),l&&t._repeat&&!r&&t.parent&&Ct(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===u&&(u&&za(t,1),r||L||(Ct(t,u?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)}(this,t,e,r);return this},e.targets=function targets(){return this._targets},e.invalidate=function invalidate(t){return t&&this.vars.runBackwards||(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(t),D.prototype.invalidate.call(this,t)},e.resetTo=function resetTo(t,e,r,i,n){c||Rt.wake(),this._ts||this.play();var a,s=Math.min(this._dur,(this._dp._time-this._start)*this._ts);return this._initted||Qt(this,s),a=this._ease(s/this._dur),function _updatePropTweens(t,e,r,i,n,a,s,o){var u,h,l,f,d=(t._pt&&t._ptCache||(t._ptCache={}))[e];if(!d)for(d=t._ptCache[e]=[],l=t._ptLookup,f=t._targets.length;f--;){if((u=l[f][e])&&u.d&&u.d._pt)for(u=u.d._pt;u&&u.p!==e&&u.fp!==e;)u=u._next;if(!u)return Gt=1,t.vars[e]="+=0",Qt(t,s),Gt=0,o?R(e+" not eligible for reset"):1;d.push(u)}for(f=d.length;f--;)(u=(h=d[f])._pt||h).s=!i&&0!==i||n?u.s+(i||0)+a*u.c:i,u.c=r-u.s,h.e&&(h.e=ia(r)+Ya(h.e)),h.b&&(h.b=u.s+Ya(h.b))}(this,t,e,r,i,a,s,n)?this.resetTo(t,e,r,i,1):(Ia(this,0),this.parent||xa(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},e.kill=function kill(t,e){if(void 0===e&&(e="all"),!(t||e&&"all"!==e))return this._lazy=this._pt=0,this.parent?tb(this):this;if(this.timeline){var i=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,Nt&&!0!==Nt.vars.overwrite)._first||tb(this),this.parent&&i!==this.timeline.totalDuration()&&Ra(this,this._dur*this.timeline._tDur/i,0,1),this}var n,a,s,o,u,h,l,f=this._targets,d=t?Mt(t):f,c=this._ptLookup,p=this._pt;if((!e||"all"===e)&&function _arraysMatch(t,e){for(var r=t.length,i=r===e.length;i&&r--&&t[r]===e[r];);return r<0}(f,d))return"all"===e&&(this._pt=0),tb(this);for(n=this._op=this._op||[],"all"!==e&&(r(e)&&(u={},ha(e,function(t){return u[t]=1}),e=u),e=function _addAliasesToVars(t,e){var r,i,n,a,s=t[0]?fa(t[0]).harness:0,o=s&&s.aliases;if(!o)return e;for(i in r=yt({},e),o)if(i in r)for(n=(a=o[i].split(",")).length;n--;)r[a[n]]=r[i];return r}(f,e)),l=f.length;l--;)if(~d.indexOf(f[l]))for(u in a=c[l],"all"===e?(n[l]=e,o=a,s={}):(s=n[l]=n[l]||{},o=e),o)(h=a&&a[u])&&("kill"in h.d&&!0!==h.d.kill(u)||ya(this,h,"_pt"),delete a[u]),"all"!==s&&(s[u]=1);return this._initted&&!this._pt&&p&&tb(this),this},Tween.to=function to(t,e,r){return new Tween(t,e,r)},Tween.from=function from(t,e){return Va(1,arguments)},Tween.delayedCall=function delayedCall(t,e,r,i){return new Tween(e,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:e,onReverseComplete:e,onCompleteParams:r,onReverseCompleteParams:r,callbackScope:i})},Tween.fromTo=function fromTo(t,e,r){return Va(2,arguments)},Tween.set=function set(t,e){return e.duration=0,e.repeatDelay||(e.repeat=0),new Tween(t,e)},Tween.killTweensOf=function killTweensOf(t,e,r){return I.killTweensOf(t,e,r)},Tween}(Ut);qa($t.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),ha("staggerTo,staggerFrom,staggerFromTo",function(r){$t[r]=function(){var t=new Xt,e=kt.call(arguments,0);return e.splice("staggerFromTo"===r?5:4,0,0),t[r].apply(t,e)}});function oc(t,e,r){return t.setAttribute(e,r)}function wc(t,e,r,i){i.mSet(t,e,i.m.call(i.tween,r,i.mt),i)}var Zt=function _setterPlain(t,e,r){return t[e]=r},te=function _setterFunc(t,e,r){return t[e](r)},re=function _setterFuncWithParam(t,e,r,i){return t[e](i.fp,r)},ne=function _getSetter(t,e){return s(t[e])?te:u(t[e])&&t.setAttribute?oc:Zt},ae=function _renderPlain(t,e){return e.set(e.t,e.p,Math.round(1e6*(e.s+e.c*t))/1e6,e)},se=function _renderBoolean(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},ue=function _renderComplexString(t,e){var r=e._pt,i="";if(!t&&e.b)i=e.b;else if(1===t&&e.e)i=e.e;else{for(;r;)i=r.p+(r.m?r.m(r.s+r.c*t):Math.round(1e4*(r.s+r.c*t))/1e4)+i,r=r._next;i+=e.c}e.set(e.t,e.p,i,e)},he=function _renderPropTweens(t,e){for(var r=e._pt;r;)r.r(t,r.d),r=r._next},fe=function _addPluginModifier(t,e,r,i){for(var n,a=this._pt;a;)n=a._next,a.p===i&&a.modifier(t,e,r),a=n},ce=function _killPropTweensOf(t){for(var e,r,i=this._pt;i;)r=i._next,i.p===t&&!i.op||i.op===t?ya(this,i,"_pt"):i.dep||(e=1),i=r;return!e},pe=function _sortPropTweensByPriority(t){for(var e,r,i,n,a=t._pt;a;){for(e=a._next,r=i;r&&r.pr>a.pr;)r=r._next;(a._prev=r?r._prev:n)?a._prev._next=a:i=a,(a._next=r)?r._prev=a:n=a,a=e}t._pt=i},_e=(PropTween.prototype.modifier=function modifier(t,e,r){this.mSet=this.mSet||this.set,this.set=wc,this.m=t,this.mt=r,this.tween=e},PropTween);function PropTween(t,e,r,i,n,a,s,o,u){this.t=e,this.s=i,this.c=n,this.p=r,this.r=a||ae,this.d=s||this,this.set=o||Zt,this.pr=u||0,(this._next=t)&&(t._prev=this)}ha(vt+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",function(t){return ft[t]=1}),ot.TweenMax=ot.TweenLite=$t,ot.TimelineLite=ot.TimelineMax=Xt,I=new Xt({sortChildren:!1,defaults:V,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),q.stringFilter=Fb;function Ec(t){return(ye[t]||Te).map(function(t){return t()})}function Fc(){var t=Date.now(),o=[];2<t-Oe&&(Ec("matchMediaInit"),ge.forEach(function(t){var e,r,i,n,a=t.queries,s=t.conditions;for(r in a)(e=h.matchMedia(a[r]).matches)&&(i=1),e!==s[r]&&(s[r]=e,n=1);n&&(t.revert(),i&&o.push(t))}),Ec("matchMediaRevert"),o.forEach(function(e){return e.onMatch(e,function(t){return e.add(null,t)})}),Oe=t,Ec("matchMedia"))}var me,ge=[],ye={},Te=[],Oe=0,Me=0,Pe=((me=Context.prototype).add=function add(t,i,n){function Gw(){var t,e=l,r=a.selector;return e&&e!==a&&e.data.push(a),n&&(a.selector=cb(n)),l=a,t=i.apply(a,arguments),s(t)&&a._r.push(t),l=e,a.selector=r,a.isReverted=!1,t}s(t)&&(n=i,i=t,t=s);var a=this;return a.last=Gw,t===s?Gw(a,function(t){return a.add(null,t)}):t?a[t]=Gw:Gw},me.ignore=function ignore(t){var e=l;l=null,t(this),l=e},me.getTweens=function getTweens(){var e=[];return this.data.forEach(function(t){return t instanceof Context?e.push.apply(e,t.getTweens()):t instanceof $t&&!(t.parent&&"nested"===t.parent.data)&&e.push(t)}),e},me.clear=function clear(){this._r.length=this.data.length=0},me.kill=function kill(i,t){var n=this;if(i?function(){for(var t,e=n.getTweens(),r=n.data.length;r--;)"isFlip"===(t=n.data[r]).data&&(t.revert(),t.getChildren(!0,!0,!1).forEach(function(t){return e.splice(e.indexOf(t),1)}));for(e.map(function(t){return{g:t._dur||t._delay||t._sat&&!t._sat.vars.immediateRender?t.globalTime(0):-1/0,t:t}}).sort(function(t,e){return e.g-t.g||-1/0}).forEach(function(t){return t.t.revert(i)}),r=n.data.length;r--;)(t=n.data[r])instanceof Xt?"nested"!==t.data&&(t.scrollTrigger&&t.scrollTrigger.revert(),t.kill()):t instanceof $t||!t.revert||t.revert(i);n._r.forEach(function(t){return t(i,n)}),n.isReverted=!0}():this.data.forEach(function(t){return t.kill&&t.kill()}),this.clear(),t)for(var e=ge.length;e--;)ge[e].id===this.id&&ge.splice(e,1)},me.revert=function revert(t){this.kill(t||{})},Context);function Context(t,e){this.selector=e&&cb(e),this.data=[],this._r=[],this.isReverted=!1,this.id=Me++,t&&this.add(t)}var Ce,Ae=((Ce=MatchMedia.prototype).add=function add(t,e,r){v(t)||(t={matches:t});var i,n,a,s=new Pe(0,r||this.scope),o=s.conditions={};for(n in l&&!s.selector&&(s.selector=l.selector),this.contexts.push(s),e=s.add("onMatch",e),s.queries=t)"all"===n?a=1:(i=h.matchMedia(t[n]))&&(ge.indexOf(s)<0&&ge.push(s),(o[n]=i.matches)&&(a=1),i.addListener?i.addListener(Fc):i.addEventListener("change",Fc));return a&&e(s,function(t){return s.add(null,t)}),this},Ce.revert=function revert(t){this.kill(t||{})},Ce.kill=function kill(e){this.contexts.forEach(function(t){return t.kill(e,!0)})},MatchMedia);function MatchMedia(t){this.contexts=[],this.scope=t,l&&l.data.push(this)}var Se={registerPlugin:function registerPlugin(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];e.forEach(function(t){return wb(t)})},timeline:function timeline(t){return new Xt(t)},getTweensOf:function getTweensOf(t,e){return I.getTweensOf(t,e)},getProperty:function getProperty(i,t,e,n){r(i)&&(i=Mt(i)[0]);var a=fa(i||{}).get,s=e?pa:oa;return"native"===e&&(e=""),i?t?s((pt[t]&&pt[t].get||a)(i,t,e,n)):function(t,e,r){return s((pt[t]&&pt[t].get||a)(i,t,e,r))}:i},quickSetter:function quickSetter(r,e,i){if(1<(r=Mt(r)).length){var n=r.map(function(t){return ze.quickSetter(t,e,i)}),a=n.length;return function(t){for(var e=a;e--;)n[e](t)}}r=r[0]||{};var s=pt[e],o=fa(r),u=o.harness&&(o.harness.aliases||{})[e]||e,h=s?function(t){var e=new s;d._pt=0,e.init(r,i?t+i:t,d,0,[r]),e.render(1,e),d._pt&&he(1,d)}:o.set(r,u);return s?h:function(t){return h(r,u,i?t+i:t,o,1)}},quickTo:function quickTo(t,i,e){function $x(t,e,r){return n.resetTo(i,t,e,r)}var r,n=ze.to(t,yt(((r={})[i]="+=0.1",r.paused=!0,r),e||{}));return $x.tween=n,$x},isTweening:function isTweening(t){return 0<I.getTweensOf(t,!0).length},defaults:function defaults(t){return t&&t.ease&&(t.ease=jt(t.ease,V.ease)),ta(V,t||{})},config:function config(t){return ta(q,t||{})},registerEffect:function registerEffect(t){var i=t.name,n=t.effect,e=t.plugins,a=t.defaults,r=t.extendTimeline;(e||"").split(",").forEach(function(t){return t&&!pt[t]&&!ot[t]&&R(i+" effect requires "+t+" plugin.")}),_t[i]=function(t,e,r){return n(Mt(t),qa(e||{},a),r)},r&&(Xt.prototype[i]=function(t,e,r){return this.add(_t[i](t,v(e)?e:(r=e)&&{},this),r)})},registerEase:function registerEase(t,e){Lt[t]=jt(e)},parseEase:function parseEase(t,e){return arguments.length?jt(t,e):Lt},getById:function getById(t){return I.getById(t)},exportRoot:function exportRoot(t,e){void 0===t&&(t={});var r,i,n=new Xt(t);for(n.smoothChildTiming=w(t.smoothChildTiming),I.remove(n),n._dp=0,n._time=n._tTime=I._time,r=I._first;r;)i=r._next,!e&&!r._dur&&r instanceof $t&&r.vars.onComplete===r._targets[0]||Ka(n,r,r._start-r._delay),r=i;return Ka(I,n,0),n},context:function context(t,e){return t?new Pe(t,e):l},matchMedia:function matchMedia(t){return new Ae(t)},matchMediaRefresh:function matchMediaRefresh(){return ge.forEach(function(t){var e,r,i=t.conditions;for(r in i)i[r]&&(i[r]=!1,e=1);e&&t.revert()})||Fc()},addEventListener:function addEventListener(t,e){var r=ye[t]||(ye[t]=[]);~r.indexOf(e)||r.push(e)},removeEventListener:function removeEventListener(t,e){var r=ye[t],i=r&&r.indexOf(e);0<=i&&r.splice(i,1)},utils:{wrap:function wrap(e,t,r){var i=t-e;return Z(e)?lb(e,wrap(0,e.length),t):Wa(r,function(t){return(i+(t-e)%i)%i+e})},wrapYoyo:function wrapYoyo(e,t,r){var i=t-e,n=2*i;return Z(e)?lb(e,wrapYoyo(0,e.length-1),t):Wa(r,function(t){return e+(i<(t=(n+(t-e)%n)%n||0)?n-t:t)})},distribute:eb,random:hb,snap:gb,normalize:function normalize(t,e,r){return Pt(t,e,0,1,r)},getUnit:Ya,clamp:function clamp(e,r,t){return Wa(t,function(t){return Ot(e,r,t)})},splitColor:Ab,toArray:Mt,selector:cb,mapRange:Pt,pipe:function pipe(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(t){return e.reduce(function(t,e){return e(t)},t)}},unitize:function unitize(e,r){return function(t){return e(parseFloat(t))+(r||Ya(t))}},interpolate:function interpolate(e,i,t,n){var a=isNaN(e+i)?0:function(t){return(1-t)*e+t*i};if(!a){var s,o,u,h,l,f=r(e),d={};if(!0===t&&(n=1)&&(t=null),f)e={p:e},i={p:i};else if(Z(e)&&!Z(i)){for(u=[],h=e.length,l=h-2,o=1;o<h;o++)u.push(interpolate(e[o-1],e[o]));h--,a=function func(t){t*=h;var e=Math.min(l,~~t);return u[e](t-e)},t=i}else n||(e=yt(Z(e)?[]:{},e));if(!u){for(s in i)Wt.call(d,e,s,"get",i[s]);a=function func(t){return he(t,d)||(f?e.p:e)}}}return Wa(t,a)},shuffle:db},install:P,effects:_t,ticker:Rt,updateRoot:Xt.updateRoot,plugins:pt,globalTimeline:I,core:{PropTween:_e,globals:S,Tween:$t,Timeline:Xt,Animation:Ut,getCache:fa,_removeLinkedListItem:ya,reverting:function reverting(){return L},context:function context(t){return t&&l&&(l.data.push(t),t._ctx=l),l},suppressOverwrites:function suppressOverwrites(t){return F=t}}};ha("to,from,fromTo,delayedCall,set,killTweensOf",function(t){return Se[t]=$t[t]}),Rt.add(Xt.updateRoot),d=Se.to({},{duration:0});function Jc(t,e){for(var r=t._pt;r&&r.p!==e&&r.op!==e&&r.fp!==e;)r=r._next;return r}function Lc(t,a){return{name:t,rawVars:1,init:function init(t,n,e){e._onInit=function(t){var e,i;if(r(n)&&(e={},ha(n,function(t){return e[t]=1}),n=e),a){for(i in e={},n)e[i]=a(n[i]);n=e}!function _addModifiers(t,e){var r,i,n,a=t._targets;for(r in e)for(i=a.length;i--;)(n=(n=t._ptLookup[i][r])&&n.d)&&(n._pt&&(n=Jc(n,r)),n&&n.modifier&&n.modifier(e[r],t,a[i],r))}(t,n)}}}}var ze=Se.registerPlugin({name:"attr",init:function init(t,e,r,i,n){var a,s,o;for(a in this.tween=r,e)o=t.getAttribute(a)||"",(s=this.add(t,"setAttribute",(o||0)+"",e[a],i,n,0,0,a)).op=a,s.b=o,this._props.push(a)},render:function render(t,e){for(var r=e._pt;r;)L?r.set(r.t,r.p,r.b,r):r.r(t,r.d),r=r._next}},{name:"endArray",init:function init(t,e){for(var r=e.length;r--;)this.add(t,r,t[r]||0,e[r],0,0,0,0,0,1)}},Lc("roundProps",fb),Lc("modifiers"),Lc("snap",gb))||Se;$t.version=Xt.version=ze.version="3.12.5",o=1,x()&&Ft();function vd(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function wd(t,e){return e.set(e.t,e.p,1===t?e.e:Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function xd(t,e){return e.set(e.t,e.p,t?Math.round(1e4*(e.s+e.c*t))/1e4+e.u:e.b,e)}function yd(t,e){var r=e.s+e.c*t;e.set(e.t,e.p,~~(r+(r<0?-.5:.5))+e.u,e)}function zd(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)}function Ad(t,e){return e.set(e.t,e.p,1!==t?e.b:e.e,e)}function Bd(t,e,r){return t.style[e]=r}function Cd(t,e,r){return t.style.setProperty(e,r)}function Dd(t,e,r){return t._gsap[e]=r}function Ed(t,e,r){return t._gsap.scaleX=t._gsap.scaleY=r}function Fd(t,e,r,i,n){var a=t._gsap;a.scaleX=a.scaleY=r,a.renderTransform(n,a)}function Gd(t,e,r,i,n){var a=t._gsap;a[e]=r,a.renderTransform(n,a)}function Jd(t,e){var r=this,i=this.target,n=i.style,a=i._gsap;if(t in ar&&n){if(this.tfm=this.tfm||{},"transform"===t)return dr.transform.split(",").forEach(function(t){return Jd.call(r,t,e)});if(~(t=dr[t]||t).indexOf(",")?t.split(",").forEach(function(t){return r.tfm[t]=yr(i,t)}):this.tfm[t]=a.x?a[t]:yr(i,t),t===pr&&(this.tfm.zOrigin=a.zOrigin),0<=this.props.indexOf(cr))return;a.svg&&(this.svgo=i.getAttribute("data-svg-origin"),this.props.push(pr,e,"")),t=cr}(n||e)&&this.props.push(t,e,n[t])}function Kd(t){t.translate&&(t.removeProperty("translate"),t.removeProperty("scale"),t.removeProperty("rotate"))}function Ld(){var t,e,r=this.props,i=this.target,n=i.style,a=i._gsap;for(t=0;t<r.length;t+=3)r[t+1]?i[r[t]]=r[t+2]:r[t+2]?n[r[t]]=r[t+2]:n.removeProperty("--"===r[t].substr(0,2)?r[t]:r[t].replace(hr,"-$1").toLowerCase());if(this.tfm){for(e in this.tfm)a[e]=this.tfm[e];a.svg&&(a.renderTransform(),i.setAttribute("data-svg-origin",this.svgo||"")),(t=Be())&&t.isStart||n[cr]||(Kd(n),a.zOrigin&&n[pr]&&(n[pr]+=" "+a.zOrigin+"px",a.zOrigin=0,a.renderTransform()),a.uncache=1)}}function Md(t,e){var r={target:t,props:[],revert:Ld,save:Jd};return t._gsap||ze.core.getCache(t),e&&e.split(",").forEach(function(t){return r.save(t)}),r}function Od(t,e){var r=De.createElementNS?De.createElementNS((e||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),t):De.createElement(t);return r&&r.style?r:De.createElement(t)}function Pd(t,e,r){var i=getComputedStyle(t);return i[e]||i.getPropertyValue(e.replace(hr,"-$1").toLowerCase())||i.getPropertyValue(e)||!r&&Pd(t,mr(e)||e,1)||""}function Sd(){(function _windowExists(){return"undefined"!=typeof window})()&&window.document&&(Ee=window,De=Ee.document,Re=De.documentElement,Le=Od("div")||{style:{}},Od("div"),cr=mr(cr),pr=cr+"Origin",Le.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",Ye=!!mr("perspective"),Be=ze.core.reverting,Fe=1)}function Td(t){var e,r=Od("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),i=this.parentNode,n=this.nextSibling,a=this.style.cssText;if(Re.appendChild(r),r.appendChild(this),this.style.display="block",t)try{e=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=Td}catch(t){}else this._gsapBBox&&(e=this._gsapBBox());return i&&(n?i.insertBefore(this,n):i.appendChild(this)),Re.removeChild(r),this.style.cssText=a,e}function Ud(t,e){for(var r=e.length;r--;)if(t.hasAttribute(e[r]))return t.getAttribute(e[r])}function Vd(e){var r;try{r=e.getBBox()}catch(t){r=Td.call(e,!0)}return r&&(r.width||r.height)||e.getBBox===Td||(r=Td.call(e,!0)),!r||r.width||r.x||r.y?r:{x:+Ud(e,["x","cx","x1"])||0,y:+Ud(e,["y","cy","y1"])||0,width:0,height:0}}function Wd(t){return!(!t.getCTM||t.parentNode&&!t.ownerSVGElement||!Vd(t))}function Xd(t,e){if(e){var r,i=t.style;e in ar&&e!==pr&&(e=cr),i.removeProperty?("ms"!==(r=e.substr(0,2))&&"webkit"!==e.substr(0,6)||(e="-"+e),i.removeProperty("--"===r?e:e.replace(hr,"-$1").toLowerCase())):i.removeAttribute(e)}}function Yd(t,e,r,i,n,a){var s=new _e(t._pt,e,r,0,1,a?Ad:zd);return(t._pt=s).b=i,s.e=n,t._props.push(r),s}function _d(t,e,r,i){var n,a,s,o,u=parseFloat(r)||0,h=(r+"").trim().substr((u+"").length)||"px",l=Le.style,f=lr.test(e),d="svg"===t.tagName.toLowerCase(),c=(d?"client":"offset")+(f?"Width":"Height"),p="px"===i,_="%"===i;if(i===h||!u||gr[i]||gr[h])return u;if("px"===h||p||(u=_d(t,e,r,"px")),o=t.getCTM&&Wd(t),(_||"%"===h)&&(ar[e]||~e.indexOf("adius")))return n=o?t.getBBox()[f?"width":"height"]:t[c],ia(_?u/n*100:u/100*n);if(l[f?"width":"height"]=100+(p?h:i),a=~e.indexOf("adius")||"em"===i&&t.appendChild&&!d?t:t.parentNode,o&&(a=(t.ownerSVGElement||{}).parentNode),a&&a!==De&&a.appendChild||(a=De.body),(s=a._gsap)&&_&&s.width&&f&&s.time===Rt.time&&!s.uncache)return ia(u/s.width*100);if(!_||"height"!==e&&"width"!==e)!_&&"%"!==h||vr[Pd(a,"display")]||(l.position=Pd(t,"position")),a===t&&(l.position="static"),a.appendChild(Le),n=Le[c],a.removeChild(Le),l.position="absolute";else{var m=t.style[e];t.style[e]=100+i,n=t[c],m?t.style[e]=m:Xd(t,e)}return f&&_&&((s=fa(a)).time=Rt.time,s.width=a[c]),ia(p?n*u/100:n&&u?100/n*u:0)}function be(t,e,r,i){if(!r||"none"===r){var n=mr(e,t,1),a=n&&Pd(t,n,1);a&&a!==r?(e=n,r=a):"borderColor"===e&&(r=Pd(t,"borderTopColor"))}var s,o,u,h,l,f,d,c,p,_,m,g=new _e(this._pt,t.style,e,0,1,ue),v=0,y=0;if(g.b=r,g.e=i,r+="","auto"===(i+="")&&(f=t.style[e],t.style[e]=i,i=Pd(t,e)||i,f?t.style[e]=f:Xd(t,e)),Fb(s=[r,i]),i=s[1],u=(r=s[0]).match(rt)||[],(i.match(rt)||[]).length){for(;o=rt.exec(i);)d=o[0],p=i.substring(v,o.index),l?l=(l+1)%5:"rgba("!==p.substr(-5)&&"hsla("!==p.substr(-5)||(l=1),d!==(f=u[y++]||"")&&(h=parseFloat(f)||0,m=f.substr((h+"").length),"="===d.charAt(1)&&(d=ka(h,d)+m),c=parseFloat(d),_=d.substr((c+"").length),v=rt.lastIndex-_.length,_||(_=_||q.units[e]||m,v===i.length&&(i+=_,g.e+=_)),m!==_&&(h=_d(t,e,f,_)||0),g._pt={_next:g._pt,p:p||1===y?p:",",s:h,c:c-h,m:l&&l<4||"zIndex"===e?Math.round:0});g.c=v<i.length?i.substring(v,i.length):""}else g.r="display"===e&&"none"===i?Ad:zd;return nt.test(i)&&(g.e=0),this._pt=g}function de(t){var e=t.split(" "),r=e[0],i=e[1]||"50%";return"top"!==r&&"bottom"!==r&&"left"!==i&&"right"!==i||(t=r,r=i,i=t),e[0]=Tr[r]||r,e[1]=Tr[i]||i,e.join(" ")}function ee(t,e){if(e.tween&&e.tween._time===e.tween._dur){var r,i,n,a=e.t,s=a.style,o=e.u,u=a._gsap;if("all"===o||!0===o)s.cssText="",i=1;else for(n=(o=o.split(",")).length;-1<--n;)r=o[n],ar[r]&&(i=1,r="transformOrigin"===r?pr:cr),Xd(a,r);i&&(Xd(a,cr),u&&(u.svg&&a.removeAttribute("transform"),Or(a,1),u.uncache=1,Kd(s)))}}function ie(t){return"matrix(1, 0, 0, 1, 0, 0)"===t||"none"===t||!t}function je(t){var e=Pd(t,cr);return ie(e)?wr:e.substr(7).match(et).map(ia)}function ke(t,e){var r,i,n,a,s=t._gsap||fa(t),o=t.style,u=je(t);return s.svg&&t.getAttribute("transform")?"1,0,0,1,0,0"===(u=[(n=t.transform.baseVal.consolidate().matrix).a,n.b,n.c,n.d,n.e,n.f]).join(",")?wr:u:(u!==wr||t.offsetParent||t===Re||s.svg||(n=o.display,o.display="block",(r=t.parentNode)&&t.offsetParent||(a=1,i=t.nextElementSibling,Re.appendChild(t)),u=je(t),n?o.display=n:Xd(t,"display"),a&&(i?r.insertBefore(t,i):r?r.appendChild(t):Re.removeChild(t))),e&&6<u.length?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)}function le(t,e,r,i,n,a){var s,o,u,h=t._gsap,l=n||ke(t,!0),f=h.xOrigin||0,d=h.yOrigin||0,c=h.xOffset||0,p=h.yOffset||0,_=l[0],m=l[1],g=l[2],v=l[3],y=l[4],T=l[5],b=e.split(" "),w=parseFloat(b[0])||0,x=parseFloat(b[1])||0;r?l!==wr&&(o=_*v-m*g)&&(u=w*(-m/o)+x*(_/o)-(_*T-m*y)/o,w=w*(v/o)+x*(-g/o)+(g*T-v*y)/o,x=u):(w=(s=Vd(t)).x+(~b[0].indexOf("%")?w/100*s.width:w),x=s.y+(~(b[1]||b[0]).indexOf("%")?x/100*s.height:x)),i||!1!==i&&h.smooth?(y=w-f,T=x-d,h.xOffset=c+(y*_+T*g)-y,h.yOffset=p+(y*m+T*v)-T):h.xOffset=h.yOffset=0,h.xOrigin=w,h.yOrigin=x,h.smooth=!!i,h.origin=e,h.originIsAbsolute=!!r,t.style[pr]="0px 0px",a&&(Yd(a,h,"xOrigin",f,w),Yd(a,h,"yOrigin",d,x),Yd(a,h,"xOffset",c,h.xOffset),Yd(a,h,"yOffset",p,h.yOffset)),t.setAttribute("data-svg-origin",w+" "+x)}function oe(t,e,r){var i=Ya(e);return ia(parseFloat(e)+parseFloat(_d(t,"x",r+"px",i)))+i}function ve(t,e,i,n,a){var s,o,u=360,h=r(a),l=parseFloat(a)*(h&&~a.indexOf("rad")?sr:1)-n,f=n+l+"deg";return h&&("short"===(s=a.split("_")[1])&&(l%=u)!==l%180&&(l+=l<0?u:-u),"cw"===s&&l<0?l=(l+36e9)%u-~~(l/u)*u:"ccw"===s&&0<l&&(l=(l-36e9)%u-~~(l/u)*u)),t._pt=o=new _e(t._pt,e,i,n,l,wd),o.e=f,o.u="deg",t._props.push(i),o}function we(t,e){for(var r in e)t[r]=e[r];return t}function xe(t,e,r){var i,n,a,s,o,u,h,l=we({},r._gsap),f=r.style;for(n in l.svg?(a=r.getAttribute("transform"),r.setAttribute("transform",""),f[cr]=e,i=Or(r,1),Xd(r,cr),r.setAttribute("transform",a)):(a=getComputedStyle(r)[cr],f[cr]=e,i=Or(r,1),f[cr]=a),ar)(a=l[n])!==(s=i[n])&&"perspective,force3D,transformOrigin,svgOrigin".indexOf(n)<0&&(o=Ya(a)!==(h=Ya(s))?_d(r,n,a,h):parseFloat(a),u=parseFloat(s),t._pt=new _e(t._pt,i,n,o,u-o,vd),t._pt.u=h||0,t._props.push(n));we(i,l)}var Ee,De,Re,Fe,Le,Ie,Be,Ye,qe=Lt.Power0,Ve=Lt.Power1,Ue=Lt.Power2,Xe=Lt.Power3,Ne=Lt.Power4,Ge=Lt.Linear,We=Lt.Quad,Qe=Lt.Cubic,Ke=Lt.Quart,Je=Lt.Quint,He=Lt.Strong,$e=Lt.Elastic,Ze=Lt.Back,tr=Lt.SteppedEase,er=Lt.Bounce,rr=Lt.Sine,ir=Lt.Expo,nr=Lt.Circ,ar={},sr=180/Math.PI,or=Math.PI/180,ur=Math.atan2,hr=/([A-Z])/g,lr=/(left|right|width|margin|padding|x)/i,fr=/[\s,\(]\S/,dr={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},cr="transform",pr=cr+"Origin",_r="O,Moz,ms,Ms,Webkit".split(","),mr=function _checkPropPrefix(t,e,r){var i=(e||Le).style,n=5;if(t in i&&!r)return t;for(t=t.charAt(0).toUpperCase()+t.substr(1);n--&&!(_r[n]+t in i););return n<0?null:(3===n?"ms":0<=n?_r[n]:"")+t},gr={deg:1,rad:1,turn:1},vr={grid:1,flex:1},yr=function _get(t,e,r,i){var n;return Fe||Sd(),e in dr&&"transform"!==e&&~(e=dr[e]).indexOf(",")&&(e=e.split(",")[0]),ar[e]&&"transform"!==e?(n=Or(t,i),n="transformOrigin"!==e?n[e]:n.svg?n.origin:kr(Pd(t,pr))+" "+n.zOrigin+"px"):(n=t.style[e])&&"auto"!==n&&!i&&!~(n+"").indexOf("calc(")||(n=br[e]&&br[e](t,e,r)||Pd(t,e)||ga(t,e)||("opacity"===e?1:0)),r&&!~(n+"").trim().indexOf(" ")?_d(t,e,n,r)+r:n},Tr={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},br={clearProps:function clearProps(t,e,r,i,n){if("isFromStart"!==n.data){var a=t._pt=new _e(t._pt,e,r,0,0,ee);return a.u=i,a.pr=-10,a.tween=n,t._props.push(r),1}}},wr=[1,0,0,1,0,0],xr={},Or=function _parseTransform(t,e){var r=t._gsap||new Vt(t);if("x"in r&&!e&&!r.uncache)return r;var i,n,a,s,o,u,h,l,f,d,c,p,_,m,g,v,y,T,b,w,x,O,k,M,P,C,A,S,z,E,D,R,F=t.style,L=r.scaleX<0,I="deg",B=getComputedStyle(t),Y=Pd(t,pr)||"0";return i=n=a=u=h=l=f=d=c=0,s=o=1,r.svg=!(!t.getCTM||!Wd(t)),B.translate&&("none"===B.translate&&"none"===B.scale&&"none"===B.rotate||(F[cr]=("none"!==B.translate?"translate3d("+(B.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+("none"!==B.rotate?"rotate("+B.rotate+") ":"")+("none"!==B.scale?"scale("+B.scale.split(" ").join(",")+") ":"")+("none"!==B[cr]?B[cr]:"")),F.scale=F.rotate=F.translate="none"),m=ke(t,r.svg),r.svg&&(M=r.uncache?(P=t.getBBox(),Y=r.xOrigin-P.x+"px "+(r.yOrigin-P.y)+"px",""):!e&&t.getAttribute("data-svg-origin"),le(t,M||Y,!!M||r.originIsAbsolute,!1!==r.smooth,m)),p=r.xOrigin||0,_=r.yOrigin||0,m!==wr&&(T=m[0],b=m[1],w=m[2],x=m[3],i=O=m[4],n=k=m[5],6===m.length?(s=Math.sqrt(T*T+b*b),o=Math.sqrt(x*x+w*w),u=T||b?ur(b,T)*sr:0,(f=w||x?ur(w,x)*sr+u:0)&&(o*=Math.abs(Math.cos(f*or))),r.svg&&(i-=p-(p*T+_*w),n-=_-(p*b+_*x))):(R=m[6],E=m[7],A=m[8],S=m[9],z=m[10],D=m[11],i=m[12],n=m[13],a=m[14],h=(g=ur(R,z))*sr,g&&(M=O*(v=Math.cos(-g))+A*(y=Math.sin(-g)),P=k*v+S*y,C=R*v+z*y,A=O*-y+A*v,S=k*-y+S*v,z=R*-y+z*v,D=E*-y+D*v,O=M,k=P,R=C),l=(g=ur(-w,z))*sr,g&&(v=Math.cos(-g),D=x*(y=Math.sin(-g))+D*v,T=M=T*v-A*y,b=P=b*v-S*y,w=C=w*v-z*y),u=(g=ur(b,T))*sr,g&&(M=T*(v=Math.cos(g))+b*(y=Math.sin(g)),P=O*v+k*y,b=b*v-T*y,k=k*v-O*y,T=M,O=P),h&&359.9<Math.abs(h)+Math.abs(u)&&(h=u=0,l=180-l),s=ia(Math.sqrt(T*T+b*b+w*w)),o=ia(Math.sqrt(k*k+R*R)),g=ur(O,k),f=2e-4<Math.abs(g)?g*sr:0,c=D?1/(D<0?-D:D):0),r.svg&&(M=t.getAttribute("transform"),r.forceCSS=t.setAttribute("transform","")||!ie(Pd(t,cr)),M&&t.setAttribute("transform",M))),90<Math.abs(f)&&Math.abs(f)<270&&(L?(s*=-1,f+=u<=0?180:-180,u+=u<=0?180:-180):(o*=-1,f+=f<=0?180:-180)),e=e||r.uncache,r.x=i-((r.xPercent=i&&(!e&&r.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-i)?-50:0)))?t.offsetWidth*r.xPercent/100:0)+"px",r.y=n-((r.yPercent=n&&(!e&&r.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-n)?-50:0)))?t.offsetHeight*r.yPercent/100:0)+"px",r.z=a+"px",r.scaleX=ia(s),r.scaleY=ia(o),r.rotation=ia(u)+I,r.rotationX=ia(h)+I,r.rotationY=ia(l)+I,r.skewX=f+I,r.skewY=d+I,r.transformPerspective=c+"px",(r.zOrigin=parseFloat(Y.split(" ")[2])||!e&&r.zOrigin||0)&&(F[pr]=kr(Y)),r.xOffset=r.yOffset=0,r.force3D=q.force3D,r.renderTransform=r.svg?zr:Ye?Sr:Mr,r.uncache=0,r},kr=function _firstTwoOnly(t){return(t=t.split(" "))[0]+" "+t[1]},Mr=function _renderNon3DTransforms(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,Sr(t,e)},Pr="0deg",Cr="0px",Ar=") ",Sr=function _renderCSSTransforms(t,e){var r=e||this,i=r.xPercent,n=r.yPercent,a=r.x,s=r.y,o=r.z,u=r.rotation,h=r.rotationY,l=r.rotationX,f=r.skewX,d=r.skewY,c=r.scaleX,p=r.scaleY,_=r.transformPerspective,m=r.force3D,g=r.target,v=r.zOrigin,y="",T="auto"===m&&t&&1!==t||!0===m;if(v&&(l!==Pr||h!==Pr)){var b,w=parseFloat(h)*or,x=Math.sin(w),O=Math.cos(w);w=parseFloat(l)*or,b=Math.cos(w),a=oe(g,a,x*b*-v),s=oe(g,s,-Math.sin(w)*-v),o=oe(g,o,O*b*-v+v)}_!==Cr&&(y+="perspective("+_+Ar),(i||n)&&(y+="translate("+i+"%, "+n+"%) "),!T&&a===Cr&&s===Cr&&o===Cr||(y+=o!==Cr||T?"translate3d("+a+", "+s+", "+o+") ":"translate("+a+", "+s+Ar),u!==Pr&&(y+="rotate("+u+Ar),h!==Pr&&(y+="rotateY("+h+Ar),l!==Pr&&(y+="rotateX("+l+Ar),f===Pr&&d===Pr||(y+="skew("+f+", "+d+Ar),1===c&&1===p||(y+="scale("+c+", "+p+Ar),g.style[cr]=y||"translate(0, 0)"},zr=function _renderSVGTransforms(t,e){var r,i,n,a,s,o=e||this,u=o.xPercent,h=o.yPercent,l=o.x,f=o.y,d=o.rotation,c=o.skewX,p=o.skewY,_=o.scaleX,m=o.scaleY,g=o.target,v=o.xOrigin,y=o.yOrigin,T=o.xOffset,b=o.yOffset,w=o.forceCSS,x=parseFloat(l),O=parseFloat(f);d=parseFloat(d),c=parseFloat(c),(p=parseFloat(p))&&(c+=p=parseFloat(p),d+=p),d||c?(d*=or,c*=or,r=Math.cos(d)*_,i=Math.sin(d)*_,n=Math.sin(d-c)*-m,a=Math.cos(d-c)*m,c&&(p*=or,s=Math.tan(c-p),n*=s=Math.sqrt(1+s*s),a*=s,p&&(s=Math.tan(p),r*=s=Math.sqrt(1+s*s),i*=s)),r=ia(r),i=ia(i),n=ia(n),a=ia(a)):(r=_,a=m,i=n=0),(x&&!~(l+"").indexOf("px")||O&&!~(f+"").indexOf("px"))&&(x=_d(g,"x",l,"px"),O=_d(g,"y",f,"px")),(v||y||T||b)&&(x=ia(x+v-(v*r+y*n)+T),O=ia(O+y-(v*i+y*a)+b)),(u||h)&&(s=g.getBBox(),x=ia(x+u/100*s.width),O=ia(O+h/100*s.height)),s="matrix("+r+","+i+","+n+","+a+","+x+","+O+")",g.setAttribute("transform",s),w&&(g.style[cr]=s)};ha("padding,margin,Width,Radius",function(e,r){var t="Right",i="Bottom",n="Left",o=(r<3?["Top",t,i,n]:["Top"+n,"Top"+t,i+t,i+n]).map(function(t){return r<2?e+t:"border"+t+e});br[1<r?"border"+e:e]=function(e,t,r,i,n){var a,s;if(arguments.length<4)return a=o.map(function(t){return yr(e,t,r)}),5===(s=a.join(" ")).split(a[0]).length?a[0]:s;a=(i+"").split(" "),s={},o.forEach(function(t,e){return s[t]=a[e]=a[e]||a[(e-1)/2|0]}),e.init(t,s,n)}});var Er,Dr,Rr,Fr={name:"css",register:Sd,targetTest:function targetTest(t){return t.style&&t.nodeType},init:function init(t,e,i,n,a){var s,o,u,h,l,f,d,c,p,_,m,g,v,y,T,b,w=this._props,x=t.style,O=i.vars.startAt;for(d in Fe||Sd(),this.styles=this.styles||Md(t),b=this.styles.props,this.tween=i,e)if("autoRound"!==d&&(o=e[d],!pt[d]||!ac(d,e,i,n,t,a)))if(l=typeof o,f=br[d],"function"===l&&(l=typeof(o=o.call(i,n,t,a))),"string"===l&&~o.indexOf("random(")&&(o=ob(o)),f)f(this,t,d,o,i)&&(T=1);else if("--"===d.substr(0,2))s=(getComputedStyle(t).getPropertyValue(d)+"").trim(),o+="",Et.lastIndex=0,Et.test(s)||(c=Ya(s),p=Ya(o)),p?c!==p&&(s=_d(t,d,s,p)+p):c&&(o+=c),this.add(x,"setProperty",s,o,n,a,0,0,d),w.push(d),b.push(d,0,x[d]);else if("undefined"!==l){if(O&&d in O?(s="function"==typeof O[d]?O[d].call(i,n,t,a):O[d],r(s)&&~s.indexOf("random(")&&(s=ob(s)),Ya(s+"")||"auto"===s||(s+=q.units[d]||Ya(yr(t,d))||""),"="===(s+"").charAt(1)&&(s=yr(t,d))):s=yr(t,d),h=parseFloat(s),(_="string"===l&&"="===o.charAt(1)&&o.substr(0,2))&&(o=o.substr(2)),u=parseFloat(o),d in dr&&("autoAlpha"===d&&(1===h&&"hidden"===yr(t,"visibility")&&u&&(h=0),b.push("visibility",0,x.visibility),Yd(this,x,"visibility",h?"inherit":"hidden",u?"inherit":"hidden",!u)),"scale"!==d&&"transform"!==d&&~(d=dr[d]).indexOf(",")&&(d=d.split(",")[0])),m=d in ar)if(this.styles.save(d),g||((v=t._gsap).renderTransform&&!e.parseTransform||Or(t,e.parseTransform),y=!1!==e.smoothOrigin&&v.smooth,(g=this._pt=new _e(this._pt,x,cr,0,1,v.renderTransform,v,0,-1)).dep=1),"scale"===d)this._pt=new _e(this._pt,v,"scaleY",v.scaleY,(_?ka(v.scaleY,_+u):u)-v.scaleY||0,vd),this._pt.u=0,w.push("scaleY",d),d+="X";else{if("transformOrigin"===d){b.push(pr,0,x[pr]),o=de(o),v.svg?le(t,o,0,y,0,this):((p=parseFloat(o.split(" ")[2])||0)!==v.zOrigin&&Yd(this,v,"zOrigin",v.zOrigin,p),Yd(this,x,d,kr(s),kr(o)));continue}if("svgOrigin"===d){le(t,o,1,y,0,this);continue}
20if(d in xr){ve(this,v,d,h,_?ka(h,_+o):o);continue}if("smoothOrigin"===d){Yd(this,v,"smooth",v.smooth,o);continue}if("force3D"===d){v[d]=o;continue}if("transform"===d){xe(this,o,t);continue}}else d in x||(d=mr(d)||d);if(m||(u||0===u)&&(h||0===h)&&!fr.test(o)&&d in x)u=u||0,(c=(s+"").substr((h+"").length))!==(p=Ya(o)||(d in q.units?q.units[d]:c))&&(h=_d(t,d,s,p)),this._pt=new _e(this._pt,m?v:x,d,h,(_?ka(h,_+u):u)-h,m||"px"!==p&&"zIndex"!==d||!1===e.autoRound?vd:yd),this._pt.u=p||0,c!==p&&"%"!==p&&(this._pt.b=s,this._pt.r=xd);else if(d in x)be.call(this,t,d,s,_?_+o:o);else if(d in t)this.add(t,d,s||t[d],_?_+o:o,n,a);else if("parseTransform"!==d){Q(d,o);continue}m||(d in x?b.push(d,0,x[d]):b.push(d,1,s||t[d])),w.push(d)}T&&pe(this)},render:function render(t,e){if(e.tween._time||!Be())for(var r=e._pt;r;)r.r(t,r.d),r=r._next;else e.styles.revert()},get:yr,aliases:dr,getSetter:function getSetter(t,e,r){var i=dr[e];return i&&i.indexOf(",")<0&&(e=i),e in ar&&e!==pr&&(t._gsap.x||yr(t,"x"))?r&&Ie===r?"scale"===e?Ed:Dd:(Ie=r||{})&&("scale"===e?Fd:Gd):t.style&&!u(t.style[e])?Bd:~e.indexOf("-")?Cd:ne(t,e)},core:{_removeProperty:Xd,_getMatrix:ke}};ze.utils.checkPrefix=mr,ze.core.getStyleSaver=Md,Rr=ha((Er="x,y,z,scale,scaleX,scaleY,xPercent,yPercent")+","+(Dr="rotation,rotationX,rotationY,skewX,skewY")+",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective",function(t){ar[t]=1}),ha(Dr,function(t){q.units[t]="deg",xr[t]=1}),dr[Rr[13]]=Er+","+Dr,ha("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY",function(t){var e=t.split(":");dr[e[1]]=Rr[e[0]]}),ha("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(t){q.units[t]="px"}),ze.registerPlugin(Fr);var Lr=ze.registerPlugin(Fr)||ze,Ir=Lr.core.Tween;e.Back=Ze,e.Bounce=er,e.CSSPlugin=Fr,e.Circ=nr,e.Cubic=Qe,e.Elastic=$e,e.Expo=ir,e.Linear=Ge,e.Power0=qe,e.Power1=Ve,e.Power2=Ue,e.Power3=Xe,e.Power4=Ne,e.Quad=We,e.Quart=Ke,e.Quint=Je,e.Sine=rr,e.SteppedEase=tr,e.Strong=He,e.TimelineLite=Xt,e.TimelineMax=Xt,e.TweenLite=$t,e.TweenMax=Ir,e.default=Lr,e.gsap=Lr;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
21
22
23/*!
24 * ScrollTrigger 3.12.5
25 * https://gsap.com
26 * 
27 * @license Copyright 2024, GreenSock. All rights reserved.
28 * Subject to the terms at https://gsap.com/standard-license or for Club GSAP members, the agreement issued with that membership.
29 * @author: Jack Doyle, [email protected]
30 */
31
32!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(){return Ce||"undefined"!=typeof window&&(Ce=window.gsap)&&Ce.registerPlugin&&Ce}function z(e,t){return~Le.indexOf(e)&&Le[Le.indexOf(e)+1][t]}function A(e){return!!~t.indexOf(e)}function B(e,t,r,n,o){return e.addEventListener(t,r,{passive:!1!==n,capture:!!o})}function C(e,t,r,n){return e.removeEventListener(t,r,!!n)}function F(){return De&&De.isPressed||Ie.cache++}function G(r,n){function dd(e){if(e||0===e){o&&(Se.history.scrollRestoration="manual");var t=De&&De.isPressed;e=dd.v=Math.round(e)||(De&&De.iOS?1:0),r(e),dd.cacheID=Ie.cache,t&&i("ss",e)}else(n||Ie.cache!==dd.cacheID||i("ref"))&&(dd.cacheID=Ie.cache,dd.v=r());return dd.v+dd.offset}return dd.offset=0,r&&dd}function J(e,t){return(t&&t._ctx&&t._ctx.selector||Ce.utils.toArray)(e)[0]||("string"==typeof e&&!1!==Ce.config().nullTargetWarn?console.warn("Element not found:",e):null)}function K(t,e){var r=e.s,n=e.sc;A(t)&&(t=ke.scrollingElement||Pe);var o=Ie.indexOf(t),i=n===Fe.sc?1:2;~o||(o=Ie.push(t)-1),Ie[o+i]||B(t,"scroll",F);var a=Ie[o+i],s=a||(Ie[o+i]=G(z(t,r),!0)||(A(t)?n:G(function(e){return arguments.length?t[r]=e:t[r]})));return s.target=t,a||(s.smooth="smooth"===Ce.getProperty(t,"scrollBehavior")),s}function L(e,t,o){function Cd(e,t){var r=ze();t||n<r-s?(a=i,i=e,l=s,s=r):o?i+=e:i=a+(e-a)/(r-l)*(s-l)}var i=e,a=e,s=ze(),l=s,n=t||50,c=Math.max(500,3*n);return{update:Cd,reset:function reset(){a=i=o?0:i,l=s=0},getVelocity:function getVelocity(e){var t=l,r=a,n=ze();return!e&&0!==e||e===i||Cd(e),s===l||c<n-l?0:(i+(o?r:-r))/((o?n:s)-t)*1e3}}}function M(e,t){return t&&!e._gsapAllow&&e.preventDefault(),e.changedTouches?e.changedTouches[0]:e}function N(e){var t=Math.max.apply(Math,e),r=Math.min.apply(Math,e);return Math.abs(t)>=Math.abs(r)?t:r}function O(){(Ae=Ce.core.globals().ScrollTrigger)&&Ae.core&&function _integrate(){var e=Ae.core,r=e.bridge||{},t=e._scrollers,n=e._proxies;t.push.apply(t,Ie),n.push.apply(n,Le),Ie=t,Le=n,i=function _bridge(e,t){return r[e](t)}}()}function P(e){return Ce=e||r(),!Te&&Ce&&"undefined"!=typeof document&&document.body&&(Se=window,Pe=(ke=
vendor: 38,423 bytes, line 32
32document).documentElement,Me=ke.body,t=[Se,ke,Pe,Me],Ce.utils.clamp,Be=Ce.core.context||function(){},Oe="onpointerenter"in Me?"pointer":"mouse",Ee=k.isTouch=Se.matchMedia&&Se.matchMedia("(hover: none), (pointer: coarse)").matches?1:"ontouchstart"in Se||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints?2:0,Re=k.eventTypes=("ontouchstart"in Pe?"touchstart,touchmove,touchcancel,touchend":"onpointerdown"in Pe?"pointerdown,pointermove,pointercancel,pointerup":"mousedown,mousemove,mouseup,mouseup").split(","),setTimeout(function(){return o=0},500),O(),Te=1),Te}var Ce,Te,Se,ke,Pe,Me,Ee,Oe,Ae,t,De,Re,Be,o=1,qe=[],Ie=[],Le=[],ze=Date.now,i=function _bridge(e,t){return t},n="scrollLeft",a="scrollTop",Ye={s:n,p:"left",p2:"Left",os:"right",os2:"Right",d:"width",d2:"Width",a:"x",sc:G(function(e){return arguments.length?Se.scrollTo(e,Fe.sc()):Se.pageXOffset||ke[n]||Pe[n]||Me[n]||0})},Fe={s:a,p:"top",p2:"Top",os:"bottom",os2:"Bottom",d:"height",d2:"Height",a:"y",op:Ye,sc:G(function(e){return arguments.length?Se.scrollTo(Ye.sc(),e):Se.pageYOffset||ke[a]||Pe[a]||Me[a]||0})};Ye.op=Fe,Ie.cache=0;var k=(Observer.prototype.init=function init(e){Te||P(Ce)||console.warn("Please gsap.registerPlugin(Observer)"),Ae||O();var o=e.tolerance,a=e.dragMinimum,t=e.type,i=e.target,r=e.lineHeight,n=e.debounce,s=e.preventDefault,l=e.onStop,c=e.onStopDelay,u=e.ignore,f=e.wheelSpeed,d=e.event,p=e.onDragStart,g=e.onDragEnd,h=e.onDrag,v=e.onPress,b=e.onRelease,m=e.onRight,y=e.onLeft,x=e.onUp,w=e.onDown,_=e.onChangeX,T=e.onChangeY,S=e.onChange,k=e.onToggleX,E=e.onToggleY,D=e.onHover,R=e.onHoverEnd,q=e.onMove,I=e.ignoreCheck,z=e.isNormalizer,Y=e.onGestureStart,H=e.onGestureEnd,X=e.onWheel,W=e.onEnable,V=e.onDisable,U=e.onClick,j=e.scrollSpeed,G=e.capture,Q=e.allowClicks,Z=e.lockAxis,$=e.onLockAxis;function cf(){return xe=ze()}function df(e,t){return(se.event=e)&&u&&~u.indexOf(e.target)||t&&he&&"touch"!==e.pointerType||I&&I(e,t)}function ff(){var e=se.deltaX=N(me),t=se.deltaY=N(ye),r=Math.abs(e)>=o,n=Math.abs(t)>=o;S&&(r||n)&&S(se,e,t,me,ye),r&&(m&&0<se.deltaX&&m(se),y&&se.deltaX<0&&y(se),_&&_(se),k&&se.deltaX<0!=le<0&&k(se),le=se.deltaX,me[0]=me[1]=me[2]=0),n&&(w&&0<se.deltaY&&w(se),x&&se.deltaY<0&&x(se),T&&T(se),E&&se.deltaY<0!=ce<0&&E(se),ce=se.deltaY,ye[0]=ye[1]=ye[2]=0),(ne||re)&&(q&&q(se),re&&(h(se),re=!1),ne=!1),ie&&!(ie=!1)&&$&&$(se),oe&&(X(se),oe=!1),ee=0}function gf(e,t,r){me[r]+=e,ye[r]+=t,se._vx.update(e),se._vy.update(t),n?ee=ee||requestAnimationFrame(ff):ff()}function hf(e,t){Z&&!ae&&(se.axis=ae=Math.abs(e)>Math.abs(t)?"x":"y",ie=!0),"y"!==ae&&(me[2]+=e,se._vx.update(e,!0)),"x"!==ae&&(ye[2]+=t,se._vy.update(t,!0)),n?ee=ee||requestAnimationFrame(ff):ff()}function jf(e){if(!df(e,1)){var t=(e=M(e,s)).clientX,r=e.clientY,n=t-se.x,o=r-se.y,i=se.isDragging;se.x=t,se.y=r,(i||Math.abs(se.startX-t)>=a||Math.abs(se.startY-r)>=a)&&(h&&(re=!0),i||(se.isDragging=!0),hf(n,o),i||p&&p(se))}}function mf(e){return e.touches&&1<e.touches.length&&(se.isGesturing=!0)&&Y(e,se.isDragging)}function nf(){return(se.isGesturing=!1)||H(se)}function of(e){if(!df(e)){var t=fe(),r=de();gf((t-pe)*j,(r-ge)*j,1),pe=t,ge=r,l&&te.restart(!0)}}function pf(e){if(!df(e)){e=M(e,s),X&&(oe=!0);var t=(1===e.deltaMode?r:2===e.deltaMode?Se.innerHeight:1)*f;gf(e.deltaX*t,e.deltaY*t,0),l&&!z&&te.restart(!0)}}function qf(e){if(!df(e)){var t=e.clientX,r=e.clientY,n=t-se.x,o=r-se.y;se.x=t,se.y=r,ne=!0,l&&te.restart(!0),(n||o)&&hf(n,o)}}function rf(e){se.event=e,D(se)}function sf(e){se.event=e,R(se)}function tf(e){return df(e)||M(e,s)&&U(se)}this.target=i=J(i)||Pe,this.vars=e,u=u&&Ce.utils.toArray(u),o=o||1e-9,a=a||0,f=f||1,j=j||1,t=t||"wheel,touch,pointer",n=!1!==n,r=r||parseFloat(Se.getComputedStyle(Me).lineHeight)||22;var ee,te,re,ne,oe,ie,ae,se=this,le=0,ce=0,ue=e.passive||!s,fe=K(i,Ye),de=K(i,Fe),pe=fe(),ge=de(),he=~t.indexOf("touch")&&!~t.indexOf("pointer")&&"pointerdown"===Re[0],ve=A(i),be=i.ownerDocument||ke,me=[0,0,0],ye=[0,0,0],xe=0,we=se.onPress=function(e){df(e,1)||e&&e.button||(se.axis=ae=null,te.pause(),se.isPressed=!0,e=M(e),le=ce=0,se.startX=se.x=e.clientX,se.startY=se.y=e.clientY,se._vx.reset(),se._vy.reset(),B(z?i:be,Re[1],jf,ue,!0),se.deltaX=se.deltaY=0,v&&v(se))},_e=se.onRelease=function(t){if(!df(t,1)){C(z?i:be,Re[1],jf,!0);var e=!isNaN(se.y-se.startY),r=se.isDragging,n=r&&(3<Math.abs(se.x-se.startX)||3<Math.abs(se.y-se.startY)),o=M(t);!n&&e&&(se._vx.reset(),se._vy.reset(),s&&Q&&Ce.delayedCall(.08,function(){if(300<ze()-xe&&!t.defaultPrevented)if(t.target.click)t.target.click();else if(be.createEvent){var e=be.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,Se,1,o.screenX,o.screenY,o.clientX,o.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(e)}})),se.isDragging=se.isGesturing=se.isPressed=!1,l&&r&&!z&&te.restart(!0),g&&r&&g(se),b&&b(se,n)}};te=se._dc=Ce.delayedCall(c||.25,function onStopFunc(){se._vx.reset(),se._vy.reset(),te.pause(),l&&l(se)}).pause(),se.deltaX=se.deltaY=0,se._vx=L(0,50,!0),se._vy=L(0,50,!0),se.scrollX=fe,se.scrollY=de,se.isDragging=se.isGesturing=se.isPressed=!1,Be(this),se.enable=function(e){return se.isEnabled||(B(ve?be:i,"scroll",F),0<=t.indexOf("scroll")&&B(ve?be:i,"scroll",of,ue,G),0<=t.indexOf("wheel")&&B(i,"wheel",pf,ue,G),(0<=t.indexOf("touch")&&Ee||0<=t.indexOf("pointer"))&&(B(i,Re[0],we,ue,G),B(be,Re[2],_e),B(be,Re[3],_e),Q&&B(i,"click",cf,!0,!0),U&&B(i,"click",tf),Y&&B(be,"gesturestart",mf),H&&B(be,"gestureend",nf),D&&B(i,Oe+"enter",rf),R&&B(i,Oe+"leave",sf),q&&B(i,Oe+"move",qf)),se.isEnabled=!0,e&&e.type&&we(e),W&&W(se)),se},se.disable=function(){se.isEnabled&&(qe.filter(function(e){return e!==se&&A(e.target)}).length||C(ve?be:i,"scroll",F),se.isPressed&&(se._vx.reset(),se._vy.reset(),C(z?i:be,Re[1],jf,!0)),C(ve?be:i,"scroll",of,G),C(i,"wheel",pf,G),C(i,Re[0],we,G),C(be,Re[2],_e),C(be,Re[3],_e),C(i,"click",cf,!0),C(i,"click",tf),C(be,"gesturestart",mf),C(be,"gestureend",nf),C(i,Oe+"enter",rf),C(i,Oe+"leave",sf),C(i,Oe+"move",qf),se.isEnabled=se.isPressed=se.isDragging=!1,V&&V(se))},se.kill=se.revert=function(){se.disable();var e=qe.indexOf(se);0<=e&&qe.splice(e,1),De===se&&(De=0)},qe.push(se),z&&A(i)&&(De=se),se.enable(d)},function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}(Observer,[{key:"velocityX",get:function get(){return this._vx.getVelocity()}},{key:"velocityY",get:function get(){return this._vy.getVelocity()}}]),Observer);function Observer(e){this.init(e)}k.version="3.12.5",k.create=function(e){return new k(e)},k.register=P,k.getAll=function(){return qe.slice()},k.getById=function(t){return qe.filter(function(e){return e.vars.id===t})[0]},r()&&Ce.registerPlugin(k);function Ca(e,t,r){var n=ct(e)&&("clamp("===e.substr(0,6)||-1<e.indexOf("max"));return(r["_"+t+"Clamp"]=n)?e.substr(6,e.length-7):e}function Da(e,t){return!t||ct(e)&&"clamp("===e.substr(0,6)?e:"clamp("+e+")"}function Fa(){return Ge=1}function Ga(){return Ge=0}function Ha(e){return e}function Ia(e){return Math.round(1e5*e)/1e5||0}function Ja(){return"undefined"!=typeof window}function Ka(){return He||Ja()&&(He=window.gsap)&&He.registerPlugin&&He}function La(e){return!!~l.indexOf(e)}function Ma(e){return("Height"===e?T:Ne["inner"+e])||Je["client"+e]||We["client"+e]}function Na(e){return z(e,"getBoundingClientRect")||(La(e)?function(){return Ot.width=Ne.innerWidth,Ot.height=T,Ot}:function(){return wt(e)})}function Qa(e,t){var r=t.s,n=t.d2,o=t.d,i=t.a;return Math.max(0,(r="scroll"+n)&&(i=z(e,r))?i()-Na(e)()[o]:La(e)?(Je[r]||We[r])-Ma(n):e[r]-e["offset"+n])}function Ra(e,t){for(var r=0;r<g.length;r+=3)t&&!~t.indexOf(g[r+1])||e(g[r],g[r+1],g[r+2])}function Ta(e){return"function"==typeof e}function Ua(e){return"number"==typeof e}function Va(e){return"object"==typeof e}function Wa(e,t,r){return e&&e.progress(t?0:1)&&r&&e.pause()}function Xa(e,t){if(e.enabled){var r=e._ctx?e._ctx.add(function(){return t(e)}):t(e);r&&r.totalTime&&(e.callbackAnimation=r)}}function mb(e){return Ne.getComputedStyle(e)}function ob(e,t){for(var r in t)r in e||(e[r]=t[r]);return e}function qb(e,t){var r=t.d2;return e["offset"+r]||e["client"+r]||0}function rb(e){var t,r=[],n=e.labels,o=e.duration();for(t in n)r.push(n[t]/o);return r}function tb(o){var i=He.utils.snap(o),a=Array.isArray(o)&&o.slice(0).sort(function(e,t){return e-t});return a?function(e,t,r){var n;if(void 0===r&&(r=.001),!t)return i(e);if(0<t){for(e-=r,n=0;n<a.length;n++)if(a[n]>=e)return a[n];return a[n-1]}for(n=a.length,e+=r;n--;)if(a[n]<=e)return a[n];return a[0]}:function(e,t,r){void 0===r&&(r=.001);var n=i(e);return!t||Math.abs(n-e)<r||n-e<0==t<0?n:i(t<0?e-o:e+o)}}function vb(t,r,e,n){return e.split(",").forEach(function(e){return t(r,e,n)})}function wb(e,t,r,n,o){return e.addEventListener(t,r,{passive:!n,capture:!!o})}function xb(e,t,r,n){return e.removeEventListener(t,r,!!n)}function yb(e,t,r){(r=r&&r.wheelHandler)&&(e(t,"wheel",r),e(t,"touchmove",r))}function Cb(e,t){if(ct(e)){var r=e.indexOf("="),n=~r?(e.charAt(r-1)+1)*parseFloat(e.substr(r+1)):0;~r&&(e.indexOf("%")>r&&(n*=t/100),e=e.substr(0,r-1)),e=n+(e in H?H[e]*t:~e.indexOf("%")?parseFloat(e)*t/100:parseFloat(e)||0)}return e}function Db(e,t,r,n,o,i,a,s){var l=o.startColor,c=o.endColor,u=o.fontSize,f=o.indent,d=o.fontWeight,p=Xe.createElement("div"),g=La(r)||"fixed"===z(r,"pinType"),h=-1!==e.indexOf("scroller"),v=g?We:r,b=-1!==e.indexOf("start"),m=b?l:c,y="border-color:"+m+";font-size:"+u+";color:"+m+";font-weight:"+d+";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;";return y+="position:"+((h||s)&&g?"fixed;":"absolute;"),!h&&!s&&g||(y+=(n===Fe?q:I)+":"+(i+parseFloat(f))+"px;"),a&&(y+="box-sizing:border-box;text-align:left;width:"+a.offsetWidth+"px;"),p._isStart=b,p.setAttribute("class","gsap-marker-"+e+(t?" marker-"+t:"")),p.style.cssText=y,p.innerText=t||0===t?e+"-"+t:e,v.children[0]?v.insertBefore(p,v.children[0]):v.appendChild(p),p._offset=p["offset"+n.op.d2],X(p,0,n,b),p}function Ib(){return 34<at()-st&&(D=D||requestAnimationFrame(Z))}function Jb(){v&&v.isPressed&&!(v.startX>We.clientWidth)||(Ie.cache++,v?D=D||requestAnimationFrame(Z):Z(),st||U("scrollStart"),st=at())}function Kb(){y=Ne.innerWidth,m=Ne.innerHeight}function Lb(){Ie.cache++,je||h||Xe.fullscreenElement||Xe.webkitFullscreenElement||b&&y===Ne.innerWidth&&!(Math.abs(Ne.innerHeight-m)>.25*Ne.innerHeight)||c.restart(!0)}function Ob(){return xb(ne,"scrollEnd",Ob)||Pt(!0)}function Rb(e){for(var t=0;t<j.length;t+=5)(!e||j[t+4]&&j[t+4].query===e)&&(j[t].style.cssText=j[t+1],j[t].getBBox&&j[t].setAttribute("transform",j[t+2]||""),j[t+3].uncache=1)}function Sb(e,t){var r;for(Qe=0;Qe<Tt.length;Qe++)!(r=Tt[Qe])||t&&r._ctx!==t||(e?r.kill(1):r.revert(!0,!0));S=!0,t&&Rb(t),t||U("revert")}function Tb(e,t){Ie.cache++,!t&&rt||Ie.forEach(function(e){return Ta(e)&&e.cacheID++&&(e.rec=0)}),ct(e)&&(Ne.history.scrollRestoration=w=e)}function Yb(){We.appendChild(_),T=!v&&_.offsetHeight||Ne.innerHeight,We.removeChild(_)}function Zb(t){return Ve(".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end").forEach(function(e){return e.style.display=t?"none":"block"})}function gc(e,t,r,n){if(!e._gsap.swappedIn){for(var o,i=$.length,a=t.style,s=e.style;i--;)a[o=$[i]]=r[o];a.position="absolute"===r.position?"absolute":"relative","inline"===r.display&&(a.display="inline-block"),s[I]=s[q]="auto",a.flexBasis=r.flexBasis||"auto",a.overflow="visible",a.boxSizing="border-box",a[ft]=qb(e,Ye)+xt,a[dt]=qb(e,Fe)+xt,a[bt]=s[mt]=s.top=s.left="0",Et(n),s[ft]=s.maxWidth=r[ft],s[dt]=s.maxHeight=r[dt],s[bt]=r[bt],e.parentNode!==t&&(e.parentNode.insertBefore(t,e),t.appendChild(e)),e._gsap.swappedIn=!0}}function jc(e){for(var t=ee.length,r=e.style,n=[],o=0;o<t;o++)n.push(ee[o],r[ee[o]]);return n.t=e,n}function mc(e,t,r,n,o,i,a,s,l,c,u,f,d,p){Ta(e)&&(e=e(s)),ct(e)&&"max"===e.substr(0,3)&&(e=f+("="===e.charAt(4)?Cb("0"+e.substr(3),r):0));var g,h,v,b=d?d.time():0;if(d&&d.seek(0),isNaN(e)||(e=+e),Ua(e))d&&(e=He.utils.mapRange(d.scrollTrigger.start,d.scrollTrigger.end,0,f,e)),a&&X(a,r,n,!0);else{Ta(t)&&(t=t(s));var m,y,x,w,_=(e||"0").split(" ");v=J(t,s)||We,(m=wt(v)||{})&&(m.left||m.top)||"none"!==mb(v).display||(w=v.style.display,v.style.display="block",m=wt(v),w?v.style.display=w:v.style.removeProperty("display")),y=Cb(_[0],m[n.d]),x=Cb(_[1]||"0",r),e=m[n.p]-l[n.p]-c+y+o-x,a&&X(a,x,n,r-x<20||a._isStart&&20<x),r-=r-x}if(p&&(s[p]=e||-.001,e<0&&(e=0)),i){var C=e+r,T=i._isStart;g="scroll"+n.d2,X(i,C,n,T&&20<C||!T&&(u?Math.max(We[g],Je[g]):i.parentNode[g])<=C+1),u&&(l=wt(a),u&&(i.style[n.op.p]=l[n.op.p]-n.op.m-i._offset+xt))}return d&&v&&(g=wt(v),d.seek(f),h=wt(v),d._caScrollDist=g[n.p]-h[n.p],e=e/d._caScrollDist*f),d&&d.seek(b),d?e:Math.round(e)}function oc(e,t,r,n){if(e.parentNode!==t){var o,i,a=e.style;if(t===We){for(o in e._stOrig=a.cssText,i=mb(e))+o||re.test(o)||!i[o]||"string"!=typeof a[o]||"0"===o||(a[o]=i[o]);a.top=r,a.left=n}else a.cssText=e._stOrig;He.core.getCache(e).uncache=1,t.appendChild(e)}}function pc(r,e,n){var o=e,i=o;return function(e){var t=Math.round(r());return t!==o&&t!==i&&3<Math.abs(t-o)&&3<Math.abs(t-i)&&(e=t,n&&n()),i=o,o=e}}function qc(e,t,r){var n={};n[t.p]="+="+r,He.set(e,n)}function rc(c,e){function Ck(e,t,r,n,o){var i=Ck.tween,a=t.onComplete,s={};r=r||u();var l=pc(u,r,function(){i.kill(),Ck.tween=0});return o=n&&o||0,n=n||e-r,i&&i.kill(),t[f]=e,t.inherit=!1,(t.modifiers=s)[f]=function(){return l(r+n*i.ratio+o*i.ratio*i.ratio)},t.onUpdate=function(){Ie.cache++,Ck.tween&&Z()},t.onComplete=function(){Ck.tween=0,a&&a.call(i)},i=Ck.tween=He.to(c,t)}var u=K(c,e),f="_scroll"+e.p2;return(c[f]=u).wheelHandler=function(){return Ck.tween&&Ck.tween.kill()&&(Ck.tween=0)},wb(c,"wheel",u.wheelHandler),ne.isTouch&&wb(c,"touchmove",u.wheelHandler),Ck}var He,s,Ne,Xe,Je,We,l,c,Ve,Ue,Ke,u,je,Ge,f,Qe,d,p,g,Ze,$e,h,v,b,m,y,E,x,w,_,T,S,et,tt,D,rt,nt,ot,it=1,at=Date.now,R=at(),st=0,lt=0,ct=function _isString(e){return"string"==typeof e},ut=Math.abs,q="right",I="bottom",ft="width",dt="height",pt="Right",gt="Left",ht="Top",vt="Bottom",bt="padding",mt="margin",yt="Width",Y="Height",xt="px",wt=function _getBounds(e,t){var r=t&&"matrix(1, 0, 0, 1, 0, 0)"!==mb(e)[f]&&He.to(e,{x:0,y:0,xPercent:0,yPercent:0,rotation:0,rotationX:0,rotationY:0,scale:1,skewX:0,skewY:0}).progress(1),n=e.getBoundingClientRect();return r&&r.progress(0).kill(),n},_t={startColor:"green",endColor:"red",indent:0,fontSize:"16px",fontWeight:"normal"},Ct={toggleActions:"play",anticipatePin:0},H={top:0,left:0,center:.5,bottom:1,right:1},X=function _positionMarker(e,t,r,n){var o={display:"block"},i=r[n?"os2":"p2"],a=r[n?"p2":"os2"];e._isFlipped=n,o[r.a+"Percent"]=n?-100:0,o[r.a]=n?"1px":0,o["border"+i+yt]=1,o["border"+a+yt]=0,o[r.p]=t+"px",He.set(e,o)},Tt=[],St={},W={},V=[],U=function _dispatch(e){return W[e]&&W[e].map(function(e){return e()})||V},j=[],kt=0,Pt=function _refreshAll(e,t){if(!st||e||S){Yb(),rt=ne.isRefreshing=!0,Ie.forEach(function(e){return Ta(e)&&++e.cacheID&&(e.rec=e())});var r=U("refreshInit");Ze&&ne.sort(),t||Sb(),Ie.forEach(function(e){Ta(e)&&(e.smooth&&(e.target.style.scrollBehavior="auto"),e(0))}),Tt.slice(0).forEach(function(e){return e.refresh()}),S=!1,Tt.forEach(function(e){if(e._subPinOffset&&e.pin){var t=e.vars.horizontal?"offsetWidth":"offsetHeight",r=e.pin[t];e.revert(!0,1),e.adjustPinSpacing(e.pin[t]-r),e.refresh()}}),et=1,Zb(!0),Tt.forEach(function(e){var t=Qa(e.scroller,e._dir),r="max"===e.vars.end||e._endClamp&&e.end>t,n=e._startClamp&&e.start>=t;(r||n)&&e.setPositions(n?t-1:e.start,r?Math.max(n?t:e.start+1,t):e.end,!0)}),Zb(!1),et=0,r.forEach(function(e){return e&&e.render&&e.render(-1)}),Ie.forEach(function(e){Ta(e)&&(e.smooth&&requestAnimationFrame(function(){return e.target.style.scrollBehavior="smooth"}),e.rec&&e(e.rec))}),Tb(w,1),c.pause(),kt++,Z(rt=2),Tt.forEach(function(e){return Ta(e.vars.onRefresh)&&e.vars.onRefresh(e)}),rt=ne.isRefreshing=!1,U("refresh")}else wb(ne,"scrollEnd",Ob)},Q=0,Mt=1,Z=function _updateAll(e){if(2===e||!rt&&!S){ne.isUpdating=!0,ot&&ot.update(0);var t=Tt.length,r=at(),n=50<=r-R,o=t&&Tt[0].scroll();if(Mt=o<Q?-1:1,rt||(Q=o),n&&(st&&!Ge&&200<r-st&&(st=0,U("scrollEnd")),Ke=R,R=r),Mt<0){for(Qe=t;0<Qe--;)Tt[Qe]&&Tt[Qe].update(0,n);Mt=1}else for(Qe=0;Qe<t;Qe++)Tt[Qe]&&Tt[Qe].update(0,n);ne.isUpdating=!1}D=0},$=["left","top",I,q,mt+vt,mt+pt,mt+ht,mt+gt,"display","flexShrink","float","zIndex","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridArea","justifySelf","alignSelf","placeSelf","order"],ee=$.concat([ft,dt,"boxSizing","max"+yt,"max"+Y,"position",mt,bt,bt+ht,bt+pt,bt+vt,bt+gt]),te=/([A-Z])/g,Et=function _setState(e){if(e){var t,r,n=e.t.style,o=e.length,i=0;for((e.t._gsap||He.core.getCache(e.t)).uncache=1;i<o;i+=2)r=e[i+1],t=e[i],r?n[t]=r:n[t]&&n.removeProperty(t.replace(te,"-$1").toLowerCase())}},Ot={left:0,top:0},re=/(webkit|moz|length|cssText|inset)/i,ne=(ScrollTrigger.prototype.init=function init(E,O){if(this.progress=this.start=0,this.vars&&this.kill(!0,!0),lt){var A,n,p,D,R,B,q,I,L,Y,F,e,H,N,X,W,V,U,t,j,b,G,Q,m,Z,y,$,x,r,w,_,ee,o,g,te,re,ne,C,i,T=(E=ob(ct(E)||Ua(E)||E.nodeType?{trigger:E}:E,Ct)).onUpdate,S=E.toggleClass,a=E.id,k=E.onToggle,oe=E.onRefresh,P=E.scrub,ie=E.trigger,ae=E.pin,se=E.pinSpacing,le=E.invalidateOnRefresh,M=E.anticipatePin,s=E.onScrubComplete,h=E.onSnapComplete,ce=E.once,ue=E.snap,fe=E.pinReparent,l=E.pinSpacer,de=E.containerAnimation,pe=E.fastScrollEnd,ge=E.preventOverlaps,he=E.horizontal||E.containerAnimation&&!1!==E.horizontal?Ye:Fe,ve=!P&&0!==P,be=J(E.scroller||Ne),c=He.core.getCache(be),me=La(be),ye="fixed"===("pinType"in E?E.pinType:z(be,"pinType")||me&&"fixed"),xe=[E.onEnter,E.onLeave,E.onEnterBack,E.onLeaveBack],we=ve&&E.toggleActions.split(" "),_e="markers"in E?E.markers:Ct.markers,Ce=me?0:parseFloat(mb(be)["border"+he.p2+yt])||0,Te=this,Se=E.onRefreshInit&&function(){return E.onRefreshInit(Te)},ke=function _getSizeFunc(e,t,r){var n=r.d,o=r.d2,i=r.a;return(i=z(e,"getBoundingClientRect"))?function(){return i()[n]}:function(){return(t?Ma(o):e["client"+o])||0}}(be,me,he),Pe=function _getOffsetsFunc(e,t){return!t||~Le.indexOf(e)?Na(e):function(){return Ot}}(be,me),Me=0,Ee=0,Oe=0,Ae=K(be,he);if(Te._startClamp=Te._endClamp=!1,Te._dir=he,M*=45,Te.scroller=be,Te.scroll=de?de.time.bind(de):Ae,D=Ae(),Te.vars=E,O=O||E.animation,"refreshPriority"in E&&(Ze=1,-9999===E.refreshPriority&&(ot=Te)),c.tweenScroll=c.tweenScroll||{top:rc(be,Fe),left:rc(be,Ye)},Te.tweenTo=A=c.tweenScroll[he.p],Te.scrubDuration=function(e){(o=Ua(e)&&e)?ee?ee.duration(e):ee=He.to(O,{ease:"expo",totalProgress:"+=0",inherit:!1,duration:o,paused:!0,onComplete:function onComplete(){return s&&s(Te)}}):(ee&&ee.progress(1).kill(),ee=0)},O&&(O.vars.lazy=!1,O._initted&&!Te.isReverted||!1!==O.vars.immediateRender&&!1!==E.immediateRender&&O.duration()&&O.render(0,!0,!0),Te.animation=O.pause(),(O.scrollTrigger=Te).scrubDuration(P),w=0,a=a||O.vars.id),ue&&(Va(ue)&&!ue.push||(ue={snapTo:ue}),"scrollBehavior"in We.style&&He.set(me?[We,Je]:be,{scrollBehavior:"auto"}),Ie.forEach(function(e){return Ta(e)&&e.target===(me?Xe.scrollingElement||Je:be)&&(e.smooth=!1)}),p=Ta(ue.snapTo)?ue.snapTo:"labels"===ue.snapTo?function _getClosestLabel(t){return function(e){return He.utils.snap(rb(t),e)}}(O):"labelsDirectional"===ue.snapTo?function _getLabelAtDirection(r){return function(e,t){return tb(rb(r))(e,t.direction)}}(O):!1!==ue.directional?function(e,t){return tb(ue.snapTo)(e,at()-Ee<500?0:t.direction)}:He.utils.snap(ue.snapTo),g=ue.duration||{min:.1,max:2},g=Va(g)?Ue(g.min,g.max):Ue(g,g),te=He.delayedCall(ue.delay||o/2||.1,function(){var e=Ae(),t=at()-Ee<500,r=A.tween;if(!(t||Math.abs(Te.getVelocity())<10)||r||Ge||Me===e)Te.isActive&&Me!==e&&te.restart(!0);else{var n,o,i=(e-B)/N,a=O&&!ve?O.totalProgress():i,s=t?0:(a-_)/(at()-Ke)*1e3||0,l=He.utils.clamp(-i,1-i,ut(s/2)*s/.185),c=i+(!1===ue.inertia?0:l),u=ue.onStart,f=ue.onInterrupt,d=ue.onComplete;if(n=p(c,Te),Ua(n)||(n=c),o=Math.round(B+n*N),e<=q&&B<=e&&o!==e){if(r&&!r._initted&&r.data<=ut(o-e))return;!1===ue.inertia&&(l=n-i),A(o,{duration:g(ut(.185*Math.max(ut(c-a),ut(n-a))/s/.05||0)),ease:ue.ease||"power3",data:ut(o-e),onInterrupt:function onInterrupt(){return te.restart(!0)&&f&&f(Te)},onComplete:function onComplete(){Te.update(),Me=Ae(),O&&(ee?ee.resetTo("totalProgress",n,O._tTime/O._tDur):O.progress(n)),w=_=O&&!ve?O.totalProgress():Te.progress,h&&h(Te),d&&d(Te)}},e,l*N,o-e-l*N),u&&u(Te,A.tween)}}}).pause()),a&&(St[a]=Te),i=(i=(ie=Te.trigger=J(ie||!0!==ae&&ae))&&ie._gsap&&ie._gsap.stRevert)&&i(Te),ae=!0===ae?ie:J(ae),ct(S)&&(S={targets:ie,className:S}),ae&&(!1===se||se===mt||(se=!(!se&&ae.parentNode&&ae.parentNode.style&&"flex"===mb(ae.parentNode).display)&&bt),Te.pin=ae,(n=He.core.getCache(ae)).spacer?X=n.pinState:(l&&((l=J(l))&&!l.nodeType&&(l=l.current||l.nativeElement),n.spacerIsNative=!!l,l&&(n.spacerState=jc(l))),n.spacer=U=l||Xe.createElement("div"),U.classList.add("pin-spacer"),a&&U.classList.add("pin-spacer-"+a),n.pinState=X=jc(ae)),!1!==E.force3D&&He.set(ae,{force3D:!0}),Te.spacer=U=n.spacer,r=mb(ae),m=r[se+he.os2],j=He.getProperty(ae),b=He.quickSetter(ae,he.a,xt),gc(ae,U,r),V=jc(ae)),_e){e=Va(_e)?ob(_e,_t):_t,Y=Db("scroller-start",a,be,he,e,0),F=Db("scroller-end",a,be,he,e,0,Y),t=Y["offset"+he.op.d2];var u=J(z(be,"content")||be);I=this.markerStart=Db("start",a,u,he,e,t,0,de),L=this.markerEnd=Db("end",a,u,he,e,t,0,de),de&&(C=He.quickSetter([I,L],he.a,xt)),ye||Le.length&&!0===z(be,"fixedMarkers")||(function _makePositionable(e){var t=mb(e).position;e.style.position="absolute"===t||"fixed"===t?t:"relative"}(me?We:be),He.set([Y,F],{force3D:!0}),y=He.quickSetter(Y,he.a,xt),x=He.quickSetter(F,he.a,xt))}if(de){var f=de.vars.onUpdate,d=de.vars.onUpdateParams;de.eventCallback("onUpdate",function(){Te.update(0,0,1),f&&f.apply(de,d||[])})}if(Te.previous=function(){return Tt[Tt.indexOf(Te)-1]},Te.next=function(){return Tt[Tt.indexOf(Te)+1]},Te.revert=function(e,t){if(!t)return Te.kill(!0);var r=!1!==e||!Te.enabled,n=je;r!==Te.isReverted&&(r&&(re=Math.max(Ae(),Te.scroll.rec||0),Oe=Te.progress,ne=O&&O.progress()),I&&[I,L,Y,F].forEach(function(e){return e.style.display=r?"none":"block"}),r&&(je=Te).update(r),!ae||fe&&Te.isActive||(r?function _swapPinOut(e,t,r){Et(r);var n=e._gsap;if(n.spacerIsNative)Et(n.spacerState);else if(e._gsap.swappedIn){var o=t.parentNode;o&&(o.insertBefore(e,t),o.removeChild(t))}e._gsap.swappedIn=!1}(ae,U,X):gc(ae,U,mb(ae),Z)),r||Te.update(r),je=n,Te.isReverted=r)},Te.refresh=function(e,t,r,n){if(!je&&Te.enabled||t)if(ae&&e&&st)wb(ScrollTrigger,"scrollEnd",Ob);else{!rt&&Se&&Se(Te),je=Te,A.tween&&!r&&(A.tween.kill(),A.tween=0),ee&&ee.pause(),le&&O&&O.revert({kill:!1}).invalidate(),Te.isReverted||Te.revert(!0,!0),Te._subPinOffset=!1;var o,i,a,s,l,c,u,f,d,p,g,h,v,b=ke(),m=Pe(),y=de?de.duration():Qa(be,he),x=N<=.01,w=0,_=n||0,C=Va(r)?r.end:E.end,T=E.endTrigger||ie,S=Va(r)?r.start:E.start||(0!==E.start&&ie?ae?"0 0":"0 100%":0),k=Te.pinnedContainer=E.pinnedContainer&&J(E.pinnedContainer,Te),P=ie&&Math.max(0,Tt.indexOf(Te))||0,M=P;for(_e&&Va(r)&&(h=He.getProperty(Y,he.p),v=He.getProperty(F,he.p));M--;)(c=Tt[M]).end||c.refresh(0,1)||(je=Te),!(u=c.pin)||u!==ie&&u!==ae&&u!==k||c.isReverted||((p=p||[]).unshift(c),c.revert(!0,!0)),c!==Tt[M]&&(P--,M--);for(Ta(S)&&(S=S(Te)),S=Ca(S,"start",Te),B=mc(S,ie,b,he,Ae(),I,Y,Te,m,Ce,ye,y,de,Te._startClamp&&"_startClamp")||(ae?-.001:0),Ta(C)&&(C=C(Te)),ct(C)&&!C.indexOf("+=")&&(~C.indexOf(" ")?C=(ct(S)?S.split(" ")[0]:"")+C:(w=Cb(C.substr(2),b),C=ct(S)?S:(de?He.utils.mapRange(0,de.duration(),de.scrollTrigger.start,de.scrollTrigger.end,B):B)+w,T=ie)),C=Ca(C,"end",Te),q=Math.max(B,mc(C||(T?"100% 0":y),T,b,he,Ae()+w,L,F,Te,m,Ce,ye,y,de,Te._endClamp&&"_endClamp"))||-.001,w=0,M=P;M--;)(u=(c=Tt[M]).pin)&&c.start-c._pinPush<=B&&!de&&0<c.end&&(o=c.end-(Te._startClamp?Math.max(0,c.start):c.start),(u===ie&&c.start-c._pinPush<B||u===k)&&isNaN(S)&&(w+=o*(1-c.progress)),u===ae&&(_+=o));if(B+=w,q+=w,Te._startClamp&&(Te._startClamp+=w),Te._endClamp&&!rt&&(Te._endClamp=q||-.001,q=Math.min(q,Qa(be,he))),N=q-B||(B-=.01)&&.001,x&&(Oe=He.utils.clamp(0,1,He.utils.normalize(B,q,re))),Te._pinPush=_,I&&w&&((o={})[he.a]="+="+w,k&&(o[he.p]="-="+Ae()),He.set([I,L],o)),!ae||et&&Te.end>=Qa(be,he)){if(ie&&Ae()&&!de)for(i=ie.parentNode;i&&i!==We;)i._pinOffset&&(B-=i._pinOffset,q-=i._pinOffset),i=i.parentNode}else o=mb(ae),s=he===Fe,a=Ae(),G=parseFloat(j(he.a))+_,!y&&1<q&&(g={style:g=(me?Xe.scrollingElement||Je:be).style,value:g["overflow"+he.a.toUpperCase()]},me&&"scroll"!==mb(We)["overflow"+he.a.toUpperCase()]&&(g.style["overflow"+he.a.toUpperCase()]="scroll")),gc(ae,U,o),V=jc(ae),i=wt(ae,!0),f=ye&&K(be,s?Ye:Fe)(),se?((Z=[se+he.os2,N+_+xt]).t=U,(M=se===bt?qb(ae,he)+N+_:0)&&(Z.push(he.d,M+xt),"auto"!==U.style.flexBasis&&(U.style.flexBasis=M+xt)),Et(Z),k&&Tt.forEach(function(e){e.pin===k&&!1!==e.vars.pinSpacing&&(e._subPinOffset=!0)}),ye&&Ae(re)):(M=qb(ae,he))&&"auto"!==U.style.flexBasis&&(U.style.flexBasis=M+xt),ye&&((l={top:i.top+(s?a-B:f)+xt,left:i.left+(s?f:a-B)+xt,boxSizing:"border-box",position:"fixed"})[ft]=l.maxWidth=Math.ceil(i.width)+xt,l[dt]=l.maxHeight=Math.ceil(i.height)+xt,l[mt]=l[mt+ht]=l[mt+pt]=l[mt+vt]=l[mt+gt]="0",l[bt]=o[bt],l[bt+ht]=o[bt+ht],l[bt+pt]=o[bt+pt],l[bt+vt]=o[bt+vt],l[bt+gt]=o[bt+gt],W=function _copyState(e,t,r){for(var n,o=[],i=e.length,a=r?8:0;a<i;a+=2)n=e[a],o.push(n,n in t?t[n]:e[a+1]);return o.t=e.t,o}(X,l,fe),rt&&Ae(0)),O?(d=O._initted,$e(1),O.render(O.duration(),!0,!0),Q=j(he.a)-G+N+_,$=1<Math.abs(N-Q),ye&&$&&W.splice(W.length-2,2),O.render(0,!0,!0),d||O.invalidate(!0),O.parent||O.totalTime(O.totalTime()),$e(0)):Q=N,g&&(g.value?g.style["overflow"+he.a.toUpperCase()]=g.value:g.style.removeProperty("overflow-"+he.a));p&&p.forEach(function(e){return e.revert(!1,!0)}),Te.start=B,Te.end=q,D=R=rt?re:Ae(),de||rt||(D<re&&Ae(re),Te.scroll.rec=0),Te.revert(!1,!0),Ee=at(),te&&(Me=-1,te.restart(!0)),je=0,O&&ve&&(O._initted||ne)&&O.progress()!==ne&&O.progress(ne||0,!0).render(O.time(),!0,!0),(x||Oe!==Te.progress||de||le)&&(O&&!ve&&O.totalProgress(de&&B<-.001&&!Oe?He.utils.normalize(B,q,0):Oe,!0),Te.progress=x||(D-B)/N===Oe?0:Oe),ae&&se&&(U._pinOffset=Math.round(Te.progress*Q)),ee&&ee.invalidate(),isNaN(h)||(h-=He.getProperty(Y,he.p),v-=He.getProperty(F,he.p),qc(Y,he,h),qc(I,he,h-(n||0)),qc(F,he,v),qc(L,he,v-(n||0))),x&&!rt&&Te.update(),!oe||rt||H||(H=!0,oe(Te),H=!1)}},Te.getVelocity=function(){return(Ae()-R)/(at()-Ke)*1e3||0},Te.endAnimation=function(){Wa(Te.callbackAnimation),O&&(ee?ee.progress(1):O.paused()?ve||Wa(O,Te.direction<0,1):Wa(O,O.reversed()))},Te.labelToScroll=function(e){return O&&O.labels&&(B||Te.refresh()||B)+O.labels[e]/O.duration()*N||0},Te.getTrailing=function(t){var e=Tt.indexOf(Te),r=0<Te.direction?Tt.slice(0,e).reverse():Tt.slice(e+1);return(ct(t)?r.filter(function(e){return e.vars.preventOverlaps===t}):r).filter(function(e){return 0<Te.direction?e.end<=B:e.start>=q})},Te.update=function(e,t,r){if(!de||r||e){var n,o,i,a,s,l,c,u=!0===rt?re:Te.scroll(),f=e?0:(u-B)/N,d=f<0?0:1<f?1:f||0,p=Te.progress;if(t&&(R=D,D=de?Ae():u,ue&&(_=w,w=O&&!ve?O.totalProgress():d)),M&&ae&&!je&&!it&&st&&(!d&&B<u+(u-R)/(at()-Ke)*M?d=1e-4:1===d&&q>u+(u-R)/(at()-Ke)*M&&(d=.9999)),d!==p&&Te.enabled){if(a=(s=(n=Te.isActive=!!d&&d<1)!=(!!p&&p<1))||!!d!=!!p,Te.direction=p<d?1:-1,Te.progress=d,a&&!je&&(o=d&&!p?0:1===d?1:1===p?2:3,ve&&(i=!s&&"none"!==we[o+1]&&we[o+1]||we[o],c=O&&("complete"===i||"reset"===i||i in O))),ge&&(s||c)&&(c||P||!O)&&(Ta(ge)?ge(Te):Te.getTrailing(ge).forEach(function(e){return e.endAnimation()})),ve||(!ee||je||it?O&&O.totalProgress(d,!(!je||!Ee&&!e)):(ee._dp._time-ee._start!==ee._time&&ee.render(ee._dp._time-ee._start),ee.resetTo?ee.resetTo("totalProgress",d,O._tTime/O._tDur):(ee.vars.totalProgress=d,ee.invalidate().restart()))),ae)if(e&&se&&(U.style[se+he.os2]=m),ye){if(a){if(l=!e&&p<d&&u<q+1&&u+1>=Qa(be,he),fe)if(e||!n&&!l)oc(ae,U);else{var g=wt(ae,!0),h=u-B;oc(ae,We,g.top+(he===Fe?h:0)+xt,g.left+(he===Fe?0:h)+xt)}Et(n||l?W:V),$&&d<1&&n||b(G+(1!==d||l?0:Q))}}else b(Ia(G+Q*d));!ue||A.tween||je||it||te.restart(!0),S&&(s||ce&&d&&(d<1||!tt))&&Ve(S.targets).forEach(function(e){return e.classList[n||ce?"add":"remove"](S.className)}),!T||ve||e||T(Te),a&&!je?(ve&&(c&&("complete"===i?O.pause().totalProgress(1):"reset"===i?O.restart(!0).pause():"restart"===i?O.restart(!0):O[i]()),T&&T(Te)),!s&&tt||(k&&s&&Xa(Te,k),xe[o]&&Xa(Te,xe[o]),ce&&(1===d?Te.kill(!1,1):xe[o]=0),s||xe[o=1===d?1:3]&&Xa(Te,xe[o])),pe&&!n&&Math.abs(Te.getVelocity())>(Ua(pe)?pe:2500)&&(Wa(Te.callbackAnimation),ee?ee.progress(1):Wa(O,"reverse"===i?1:!d,1))):ve&&T&&!je&&T(Te)}if(x){var v=de?u/de.duration()*(de._caScrollDist||0):u;y(v+(Y._isFlipped?1:0)),x(v)}C&&C(-u/de.duration()*(de._caScrollDist||0))}},Te.enable=function(e,t){Te.enabled||(Te.enabled=!0,wb(be,"resize",Lb),me||wb(be,"scroll",Jb),Se&&wb(ScrollTrigger,"refreshInit",Se),!1!==e&&(Te.progress=Oe=0,D=R=Me=Ae()),!1!==t&&Te.refresh())},Te.getTween=function(e){return e&&A?A.tween:ee},Te.setPositions=function(e,t,r,n){if(de){var o=de.scrollTrigger,i=de.duration(),a=o.end-o.start;e=o.start+a*e/i,t=o.start+a*t/i}Te.refresh(!1,!1,{start:Da(e,r&&!!Te._startClamp),end:Da(t,r&&!!Te._endClamp)},n),Te.update()},Te.adjustPinSpacing=function(e){if(Z&&e){var t=Z.indexOf(he.d)+1;Z[t]=parseFloat(Z[t])+e+xt,Z[1]=parseFloat(Z[1])+e+xt,Et(Z)}},Te.disable=function(e,t){if(Te.enabled&&(!1!==e&&Te.revert(!0,!0),Te.enabled=Te.isActive=!1,t||ee&&ee.pause(),re=0,n&&(n.uncache=1),Se&&xb(ScrollTrigger,"refreshInit",Se),te&&(te.pause(),A.tween&&A.tween.kill()&&(A.tween=0)),!me)){for(var r=Tt.length;r--;)if(Tt[r].scroller===be&&Tt[r]!==Te)return;xb(be,"resize",Lb),me||xb(be,"scroll",Jb)}},Te.kill=function(e,t){Te.disable(e,t),ee&&!t&&ee.kill(),a&&delete St[a];var r=Tt.indexOf(Te);0<=r&&Tt.splice(r,1),r===Qe&&0<Mt&&Qe--,r=0,Tt.forEach(function(e){return e.scroller===Te.scroller&&(r=1)}),r||rt||(Te.scroll.rec=0),O&&(O.scrollTrigger=null,e&&O.revert({kill:!1}),t||O.kill()),I&&[I,L,Y,F].forEach(function(e){return e.parentNode&&e.parentNode.removeChild(e)}),ot===Te&&(ot=0),ae&&(n&&(n.uncache=1),r=0,Tt.forEach(function(e){return e.pin===ae&&r++}),r||(n.spacer=0)),E.onKill&&E.onKill(Te)},Tt.push(Te),Te.enable(!1,!1),i&&i(Te),O&&O.add&&!N){var v=Te.update;Te.update=function(){Te.update=v,B||q||Te.refresh()},He.delayedCall(.01,Te.update),N=.01,B=q=0}else Te.refresh();ae&&function _queueRefreshAll(){if(nt!==kt){var e=nt=kt;requestAnimationFrame(function(){return e===kt&&Pt(!0)})}}()}else this.update=this.refresh=this.kill=Ha},ScrollTrigger.register=function register(e){return s||(He=e||Ka(),Ja()&&window.document&&ScrollTrigger.enable(),s=lt),s},ScrollTrigger.defaults=function defaults(e){if(e)for(var t in e)Ct[t]=e[t];return Ct},ScrollTrigger.disable=function disable(t,r){lt=0,Tt.forEach(function(e){return e[r?"kill":"disable"](t)}),xb(Ne,"wheel",Jb),xb(Xe,"scroll",Jb),clearInterval(u),xb(Xe,"touchcancel",Ha),xb(We,"touchstart",Ha),vb(xb,Xe,"pointerdown,touchstart,mousedown",Fa),vb(xb,Xe,"pointerup,touchend,mouseup",Ga),c.kill(),Ra(xb);for(var e=0;e<Ie.length;e+=3)yb(xb,Ie[e],Ie[e+1]),yb(xb,Ie[e],Ie[e+2])},ScrollTrigger.enable=function enable(){if(Ne=window,Xe=document,Je=Xe.documentElement,We=Xe.body,He&&(Ve=He.utils.toArray,Ue=He.utils.clamp,x=He.core.context||Ha,$e=He.core.suppressOverwrites||Ha,w=Ne.history.scrollRestoration||"auto",Q=Ne.pageYOffset,He.core.globals("ScrollTrigger",ScrollTrigger),We)){lt=1,(_=document.createElement("div")).style.height="100vh",_.style.position="absolute",Yb(),function _rafBugFix(){return lt&&requestAnimationFrame(_rafBugFix)}(),k.register(He),ScrollTrigger.isTouch=k.isTouch,E=k.isTouch&&/(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent),b=1===k.isTouch,wb(Ne,"wheel",Jb),l=[Ne,Xe,Je,We],He.matchMedia?(ScrollTrigger.matchMedia=function(e){var t,r=He.matchMedia();for(t in e)r.add(t,e[t]);return r},He.addEventListener("matchMediaInit",function(){return Sb()}),He.addEventListener("matchMediaRevert",function(){return Rb()}),He.addEventListener("matchMedia",function(){Pt(0,1),U("matchMedia")}),He.matchMedia("(orientation: portrait)",function(){return Kb(),Kb})):console.warn("Requires GSAP 3.11.0 or later"),Kb(),wb(Xe,"scroll",Jb);var e,t,r=We.style,n=r.borderTopStyle,o=He.core.Animation.prototype;for(o.revert||Object.defineProperty(o,"revert",{value:function value(){return this.time(-.01,!0)}}),r.borderTopStyle="solid",e=wt(We),Fe.m=Math.round(e.top+Fe.sc())||0,Ye.m=Math.round(e.left+Ye.sc())||0,n?r.borderTopStyle=n:r.removeProperty("border-top-style"),u=setInterval(Ib,250),He.delayedCall(.5,function(){return it=0}),wb(Xe,"touchcancel",Ha),wb(We,"touchstart",Ha),vb(wb,Xe,"pointerdown,touchstart,mousedown",Fa),vb(wb,Xe,"pointerup,touchend,mouseup",Ga),f=He.utils.checkPrefix("transform"),ee.push(f),s=at(),c=He.delayedCall(.2,Pt).pause(),g=[Xe,"visibilitychange",function(){var e=Ne.innerWidth,t=Ne.innerHeight;Xe.hidden?(d=e,p=t):d===e&&p===t||Lb()},Xe,"DOMContentLoaded",Pt,Ne,"load",Pt,Ne,"resize",Lb],Ra(wb),Tt.forEach(function(e){return e.enable(0,1)}),t=0;t<Ie.length;t+=3)yb(xb,Ie[t],Ie[t+1]),yb(xb,Ie[t],Ie[t+2])}},ScrollTrigger.config=function config(e){"limitCallbacks"in e&&(tt=!!e.limitCallbacks);var t=e.syncInterval;t&&clearInterval(u)||(u=t)&&setInterval(Ib,t),"ignoreMobileResize"in e&&(b=1===ScrollTrigger.isTouch&&e.ignoreMobileResize),"autoRefreshEvents"in e&&(Ra(xb)||Ra(wb,e.autoRefreshEvents||"none"),h=-1===(e.autoRefreshEvents+"").indexOf("resize"))},ScrollTrigger.scrollerProxy=function scrollerProxy(e,t){var r=J(e),n=Ie.indexOf(r),o=La(r);~n&&Ie.splice(n,o?6:2),t&&(o?Le.unshift(Ne,t,We,t,Je,t):Le.unshift(r,t))},ScrollTrigger.clearMatchMedia=function clearMatchMedia(t){Tt.forEach(function(e){return e._ctx&&e._ctx.query===t&&e._ctx.kill(!0,!0)})},ScrollTrigger.isInViewport=function isInViewport(e,t,r){var n=(ct(e)?J(e):e).getBoundingClientRect(),o=n[r?ft:dt]*t||0;return r?0<n.right-o&&n.left+o<Ne.innerWidth:0<n.bottom-o&&n.top+o<Ne.innerHeight},ScrollTrigger.positionInViewport=function positionInViewport(e,t,r){ct(e)&&(e=J(e));var n=e.getBoundingClientRect(),o=n[r?ft:dt],i=null==t?o/2:t in H?H[t]*o:~t.indexOf("%")?parseFloat(t)*o/100:parseFloat(t)||0;return r?(n.left+i)/Ne.innerWidth:(n.top+i)/Ne.innerHeight},ScrollTrigger.killAll=function killAll(e){if(Tt.slice(0).forEach(function(e){return"ScrollSmoother"!==e.vars.id&&e.kill()}),!0!==e){var t=W.killAll||[];W={},t.forEach(function(e){return e()})}},ScrollTrigger);function ScrollTrigger(e,t){s||ScrollTrigger.register(He)||console.warn("Please gsap.registerPlugin(ScrollTrigger)"),x(this),this.init(e,t)}ne.version="3.12.5",ne.saveStyles=function(e){return e?Ve(e).forEach(function(e){if(e&&e.style){var t=j.indexOf(e);0<=t&&j.splice(t,5),j.push(e,e.style.cssText,e.getBBox&&e.getAttribute("transform"),He.core.getCache(e),x())}}):j},ne.revert=function(e,t){return Sb(!e,t)},ne.create=function(e,t){return new ne(e,t)},ne.refresh=function(e){return e?Lb():(s||ne.register())&&Pt(!0)},ne.update=function(e){return++Ie.cache&&Z(!0===e?2:0)},ne.clearScrollMemory=Tb,ne.maxScroll=function(e,t){return Qa(e,t?Ye:Fe)},ne.getScrollFunc=function(e,t){return K(J(e),t?Ye:Fe)},ne.getById=function(e){return St[e]},ne.getAll=function(){return Tt.filter(function(e){return"ScrollSmoother"!==e.vars.id})},ne.isScrolling=function(){return!!st},ne.snapDirectional=tb,ne.addEventListener=function(e,t){var r=W[e]||(W[e]=[]);~r.indexOf(t)||r.push(t)},ne.removeEventListener=function(e,t){var r=W[e],n=r&&r.indexOf(t);0<=n&&r.splice(n,1)},ne.batch=function(e,t){function Cp(e,t){var r=[],n=[],o=He.delayedCall(i,function(){t(r,n),r=[],n=[]}).pause();return function(e){r.length||o.restart(!0),r.push(e.trigger),n.push(e),a<=r.length&&o.progress(1)}}var r,n=[],o={},i=t.interval||.016,a=t.batchMax||1e9;for(r in t)o[r]="on"===r.substr(0,2)&&Ta(t[r])&&"onRefreshInit"!==r?Cp(0,t[r]):t[r];return Ta(a)&&(a=a(),wb(ne,"refresh",function(){return a=t.batchMax()})),Ve(e).forEach(function(e){var t={};for(r in o)t[r]=o[r];t.trigger=e,n.push(ne.create(t))}),n};function tc(e,t,r,n){return n<t?e(n):t<0&&e(0),n<r?(n-t)/(r-t):r<0?t/(t-r):1}function uc(e,t){!0===t?e.style.removeProperty("touch-action"):e.style.touchAction=!0===t?"auto":t?"pan-"+t+(k.isTouch?" pinch-zoom":""):"none",e===Je&&uc(We,t)}function wc(e){var t,r=e.event,n=e.target,o=e.axis,i=(r.changedTouches?r.changedTouches[0]:r).target,a=i._gsap||He.core.getCache(i),s=at();if(!a._isScrollT||2e3<s-a._isScrollT){for(;i&&i!==We&&(i.scrollHeight<=i.clientHeight&&i.scrollWidth<=i.clientWidth||!ie[(t=mb(i)).overflowY]&&!ie[t.overflowX]);)i=i.parentNode;a._isScroll=i&&i!==n&&!La(i)&&(ie[(t=mb(i)).overflowY]||ie[t.overflowX]),a._isScrollT=s}!a._isScroll&&"x"!==o||(r.stopPropagation(),r._gsapAllow=!0)}function xc(e,t,r,n){return k.create({target:e,capture:!0,debounce:!1,lockAxis:!0,type:t,onWheel:n=n&&wc,onPress:n,onDrag:n,onScroll:n,onEnable:function onEnable(){return r&&wb(Xe,k.eventTypes[0],se,!1,!0)},onDisable:function onDisable(){return xb(Xe,k.eventTypes[0],se,!0)}})}function Bc(e){function zq(){return o=!1}function Cq(){i=Qa(p,Fe),S=Ue(E?1:0,i),f&&(T=Ue(0,Qa(p,Ye))),l=kt}function Dq(){v._gsap.y=Ia(parseFloat(v._gsap.y)+b.offset)+"px",v.style.transform="matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, "+parseFloat(v._gsap.y)+", 0, 1)",b.offset=b.cacheID=0}function Jq(){Cq(),a.isActive()&&a.vars.scrollY>i&&(b()>i?a.progress(1)&&b(i):a.resetTo("scrollY",i))}Va(e)||(e={}),e.preventDefault=e.isNormalizer=e.allowClicks=!0,e.type||(e.type="wheel,touch"),e.debounce=!!e.debounce,e.id=e.id||"normalizer";var n,i,l,o,a,c,u,s,f=e.normalizeScrollX,t=e.momentum,r=e.allowNestedScroll,d=e.onRelease,p=J(e.target)||Je,g=He.core.globals().ScrollSmoother,h=g&&g.get(),v=E&&(e.content&&J(e.content)||h&&!1!==e.content&&!h.smooth()&&h.content()),b=K(p,Fe),m=K(p,Ye),y=1,x=(k.isTouch&&Ne.visualViewport?Ne.visualViewport.scale*Ne.visualViewport.width:Ne.outerWidth)/Ne.innerWidth,w=0,_=Ta(t)?function(){return t(n)}:function(){return t||2.8},C=xc(p,e.type,!0,r),T=Ha,S=Ha;return v&&He.set(v,{y:"+=0"}),e.ignoreCheck=function(e){return E&&"touchmove"===e.type&&function ignoreDrag(){if(o){requestAnimationFrame(zq);var e=Ia(n.deltaY/2),t=S(b.v-e);if(v&&t!==b.v+b.offset){b.offset=t-b.v;var r=Ia((parseFloat(v&&v._gsap.y)||0)-b.offset);v.style.transform="matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, "+r+", 0, 1)",v._gsap.y=r+"px",b.cacheID=Ie.cache,Z()}return!0}b.offset&&Dq(),o=!0}()||1.05<y&&"touchstart"!==e.type||n.isGesturing||e.touches&&1<e.touches.length},e.onPress=function(){o=!1;var e=y;
32y=Ia((Ne.visualViewport&&Ne.visualViewport.scale||1)/x),a.pause(),e!==y&&uc(p,1.01<y||!f&&"x"),c=m(),u=b(),Cq(),l=kt},e.onRelease=e.onGestureStart=function(e,t){if(b.offset&&Dq(),t){Ie.cache++;var r,n,o=_();f&&(n=(r=m())+.05*o*-e.velocityX/.227,o*=tc(m,r,n,Qa(p,Ye)),a.vars.scrollX=T(n)),n=(r=b())+.05*o*-e.velocityY/.227,o*=tc(b,r,n,Qa(p,Fe)),a.vars.scrollY=S(n),a.invalidate().duration(o).play(.01),(E&&a.vars.scrollY>=i||i-1<=r)&&He.to({},{onUpdate:Jq,duration:o})}else s.restart(!0);d&&d(e)},e.onWheel=function(){a._ts&&a.pause(),1e3<at()-w&&(l=0,w=at())},e.onChange=function(e,t,r,n,o){if(kt!==l&&Cq(),t&&f&&m(T(n[2]===t?c+(e.startX-e.x):m()+t-n[1])),r){b.offset&&Dq();var i=o[2]===r,a=i?u+e.startY-e.y:b()+r-o[1],s=S(a);i&&a!==s&&(u+=s-a),b(s)}(r||t)&&Z()},e.onEnable=function(){uc(p,!f&&"x"),ne.addEventListener("refresh",Jq),wb(Ne,"resize",Jq),b.smooth&&(b.target.style.scrollBehavior="auto",b.smooth=m.smooth=!1),C.enable()},e.onDisable=function(){uc(p,!0),xb(Ne,"resize",Jq),ne.removeEventListener("refresh",Jq),C.kill()},e.lockAxis=!1!==e.lockAxis,((n=new k(e)).iOS=E)&&!b()&&b(1),E&&He.ticker.add(Ha),s=n._dc,a=He.to(n,{ease:"power4",paused:!0,inherit:!1,scrollX:f?"+=0.1":"+=0",scrollY:"+=0.1",modifiers:{scrollY:pc(b,b(),function(){return a.pause()})},onUpdate:Z,onComplete:s.vars.onComplete}),n}var oe,ie={auto:1,scroll:1},ae=/(input|label|select|textarea)/i,se=function _captureInputs(e){var t=ae.test(e.target.tagName);(t||oe)&&(e._gsapAllow=!0,oe=t)};ne.sort=function(e){return Tt.sort(e||function(e,t){return-1e6*(e.vars.refreshPriority||0)+e.start-(t.start+-1e6*(t.vars.refreshPriority||0))})},ne.observe=function(e){return new k(e)},ne.normalizeScroll=function(e){if(void 0===e)return v;if(!0===e&&v)return v.enable();if(!1===e)return v&&v.kill(),void(v=e);var t=e instanceof k?e:Bc(e);return v&&v.target===t.target&&v.kill(),La(t.target)&&(v=t),t},ne.core={_getVelocityProp:L,_inputObserver:xc,_scrollers:Ie,_proxies:Le,bridge:{ss:function ss(){st||U("scrollStart"),st=at()},ref:function ref(){return je}}},Ka()&&He.registerPlugin(ne),e.ScrollTrigger=ne,e.default=ne;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
33
34
35!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).window=t.window||{})}(this,(function(t){"use strict";const e=(t,e=1e4)=>(t=parseFloat(t+"")||0,Math.round((t+Number.EPSILON)*e)/e),i=function(t){if(!(t&&t instanceof Element&&t.offsetParent))return!1;const e=t.scrollHeight>t.clientHeight,i=window.getComputedStyle(t).overflowY,n=-1!==i.indexOf("hidden"),s=-1!==i.indexOf("visible");return e&&!n&&!s},n=function(t,e=void 0){return!(!t||t===document.body||e&&t===e)&&(i(t)?t:n(t.parentElement,e))},s=function(t){var e=(new DOMParser).parseFromString(t,"text/html").body;if(e.childElementCount>1){for(var i=document.createElement("div");e.firstChild;)i.appendChild(e.firstChild);return i}return e.firstChild},o=t=>`${t||""}`.split(" ").filter((t=>!!t)),a=(t,e,i)=>{t&&o(e).forEach((e=>{t.classList.toggle(e,i||!1)}))};class r{constructor(t){Object.defineProperty(this,"pageX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pageY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nativePointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.nativePointer=t,this.pageX=t.pageX,this.pageY=t.pageY,this.clientX=t.clientX,this.clientY=t.clientY,this.id=self.Touch&&t instanceof Touch?t.identifier:-1,this.time=Date.now()}}const l={passive:!1};class c{constructor(t,{start:e=(()=>!0),move:i=(()=>{}),end:n=(()=>{})}){Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"startCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"moveCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"endCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"currentPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"startPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.element=t,this.startCallback=e,this.moveCallback=i,this.endCallback=n;for(const t of["onPointerStart","onTouchStart","onMove","onTouchEnd","onPointerEnd","onWindowBlur"])this[t]=this[t].bind(this);this.element.addEventListener("mousedown",this.onPointerStart,l),this.element.addEventListener("touchstart",this.onTouchStart,l),this.element.addEventListener("touchmove",this.onMove,l),this.element.addEventListener("touchend",this.onTouchEnd),this.element.addEventListener("touchcancel",this.onTouchEnd)}onPointerStart(t){if(!t.buttons||0!==t.button)return;const e=new r(t);this.currentPointers.some((t=>
vendor: 21,981 bytes, line 35
35t.id===e.id))||this.triggerPointerStart(e,t)&&(window.addEventListener("mousemove",this.onMove),window.addEventListener("mouseup",this.onPointerEnd),window.addEventListener("blur",this.onWindowBlur))}onTouchStart(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerStart(new r(e),t);window.addEventListener("blur",this.onWindowBlur)}onMove(t){const e=this.currentPointers.slice(),i="changedTouches"in t?Array.from(t.changedTouches||[]).map((t=>new r(t))):[new r(t)],n=[];for(const t of i){const e=this.currentPointers.findIndex((e=>e.id===t.id));e<0||(n.push(t),this.currentPointers[e]=t)}n.length&&this.moveCallback(t,this.currentPointers.slice(),e)}onPointerEnd(t){t.buttons>0&&0!==t.button||(this.triggerPointerEnd(t,new r(t)),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur))}onTouchEnd(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerEnd(t,new r(e))}triggerPointerStart(t,e){return!!this.startCallback(e,t,this.currentPointers.slice())&&(this.currentPointers.push(t),this.startPointers.push(t),!0)}triggerPointerEnd(t,e){const i=this.currentPointers.findIndex((t=>t.id===e.id));i<0||(this.currentPointers.splice(i,1),this.startPointers.splice(i,1),this.endCallback(t,e,this.currentPointers.slice()))}onWindowBlur(){this.clear()}clear(){for(;this.currentPointers.length;){const t=this.currentPointers[this.currentPointers.length-1];this.currentPointers.splice(this.currentPointers.length-1,1),this.startPointers.splice(this.currentPointers.length-1,1),this.endCallback(new Event("touchend",{bubbles:!0,cancelable:!0,clientX:t.clientX,clientY:t.clientY}),t,this.currentPointers.slice())}}stop(){this.element.removeEventListener("mousedown",this.onPointerStart,l),this.element.removeEventListener("touchstart",this.onTouchStart,l),this.element.removeEventListener("touchmove",this.onMove,l),this.element.removeEventListener("touchend",this.onTouchEnd),this.element.removeEventListener("touchcancel",this.onTouchEnd),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur)}}function h(t,e){return e?Math.sqrt(Math.pow(e.clientX-t.clientX,2)+Math.pow(e.clientY-t.clientY,2)):0}function d(t,e){return e?{clientX:(t.clientX+e.clientX)/2,clientY:(t.clientY+e.clientY)/2}:t}const u=t=>"object"==typeof t&&null!==t&&t.constructor===Object&&"[object Object]"===Object.prototype.toString.call(t),p=(t,...e)=>{const i=e.length;for(let n=0;n<i;n++){const i=e[n]||{};Object.entries(i).forEach((([e,i])=>{const n=Array.isArray(i)?[]:{};t[e]||Object.assign(t,{[e]:n}),u(i)?Object.assign(t[e],p(n,i)):Array.isArray(i)?Object.assign(t,{[e]:[...i]}):Object.assign(t,{[e]:i})}))}return t},f=function(t,e){return t.split(".").reduce(((t,e)=>"object"==typeof t?t[e]:void 0),e)};class g{constructor(t={}){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.setOptions(t);for(const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))t.startsWith("on")&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}setOptions(t){this.options=t?p({},this.constructor.defaults,t):{};for(const[t,e]of Object.entries(this.option("on")||{}))this.on(t,e)}option(t,...e){let i=f(t,this.options);return i&&"function"==typeof i&&(i=i.call(this,this,...e)),i}optionFor(t,e,i,...n){let s=f(e,t);var o;"string"!=typeof(o=s)||isNaN(o)||isNaN(parseFloat(o))||(s=parseFloat(s)),"true"===s&&(s=!0),"false"===s&&(s=!1),s&&"function"==typeof s&&(s=s.call(this,this,t,...n));let a=f(e,this.options);return a&&"function"==typeof a?s=a.call(this,this,t,...n,s):void 0===s&&(s=a),void 0===s?i:s}cn(t){const e=this.options.classes;return e&&e[t]||""}localize(t,e=[]){t=String(t).replace(/\{\{(\w+).?(\w+)?\}\}/g,((t,e,i)=>{let n="";return i?n=this.option(`${e[0]+e.toLowerCase().substring(1)}.l10n.${i}`):e&&(n=this.option(`l10n.${e}`)),n||(n=t),n}));for(let i=0;i<e.length;i++)t=t.split(e[i][0]).join(e[i][1]);return t=t.replace(/\{\{(.*?)\}\}/g,((t,e)=>e))}on(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),this.events||(this.events=new Map),i.forEach((t=>{let i=this.events.get(t);i||(this.events.set(t,[]),i=[]),i.includes(e)||i.push(e),this.events.set(t,i)}))}off(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),i.forEach((t=>{const i=this.events.get(t);if(Array.isArray(i)){const t=i.indexOf(e);t>-1&&i.splice(t,1)}}))}emit(t,...e){[...this.events.get(t)||[]].forEach((t=>t(this,...e))),"*"!==t&&this.emit("*",t,...e)}}Object.defineProperty(g,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.36"}),Object.defineProperty(g,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{}});class m extends g{constructor(t={}){super(t),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}})}attachPlugins(t={}){const e=new Map;for(const[i,n]of Object.entries(t)){const t=this.option(i),s=this.plugins[i];s||!1===t?s&&!1===t&&(s.detach(),delete this.plugins[i]):e.set(i,new n(this,t||{}))}for(const[t,i]of e)this.plugins[t]=i,i.attach()}detachPlugins(t){t=t||Object.keys(this.plugins);for(const e of t){const t=this.plugins[e];t&&t.detach(),delete this.plugins[e]}return this.emit("detachPlugins"),this}}var v;!function(t){t[t.Init=0]="Init",t[t.Error=1]="Error",t[t.Ready=2]="Ready",t[t.Panning=3]="Panning",t[t.Mousemove=4]="Mousemove",t[t.Destroy=5]="Destroy"}(v||(v={}));const b=["a","b","c","d","e","f"],y={PANUP:"Move up",PANDOWN:"Move down",PANLEFT:"Move left",PANRIGHT:"Move right",ZOOMIN:"Zoom in",ZOOMOUT:"Zoom out",TOGGLEZOOM:"Toggle zoom level",TOGGLE1TO1:"Toggle zoom level",ITERATEZOOM:"Toggle zoom level",ROTATECCW:"Rotate counterclockwise",ROTATECW:"Rotate clockwise",FLIPX:"Flip horizontally",FLIPY:"Flip vertically",FITX:"Fit horizontally",FITY:"Fit vertically",RESET:"Reset",TOGGLEFS:"Toggle fullscreen"},w={content:null,width:"auto",height:"auto",panMode:"drag",touch:!0,dragMinThreshold:3,lockAxis:!1,mouseMoveFactor:1,mouseMoveFriction:.12,zoom:!0,pinchToZoom:!0,panOnlyZoomed:"auto",minScale:1,maxScale:2,friction:.25,dragFriction:.35,decelFriction:.05,click:"toggleZoom",dblClick:!1,wheel:"zoom",wheelLimit:7,spinner:!0,bounds:"auto",infinite:!1,rubberband:!0,bounce:!0,maxVelocity:75,transformParent:!1,classes:{content:"f-panzoom__content",isLoading:"is-loading",canZoomIn:"can-zoom_in",canZoomOut:"can-zoom_out",isDraggable:"is-draggable",isDragging:"is-dragging",inFullscreen:"in-fullscreen",htmlHasFullscreen:"with-panzoom-in-fullscreen"},l10n:y},x='<circle cx="25" cy="25" r="20"></circle>',E='<div class="f-spinner"><svg viewBox="0 0 50 50">'+x+x+"</svg></div>",S=t=>t&&null!==t&&t instanceof Element&&"nodeType"in t,P=(t,e)=>{t&&o(e).forEach((e=>{t.classList.remove(e)}))},C=(t,e)=>{t&&o(e).forEach((e=>{t.classList.add(e)}))},T={a:1,b:0,c:0,d:1,e:0,f:0},M=1e5,O=1e4,A="mousemove",L="drag",z="content",R="auto";let k=null,I=null;class D extends m{get fits(){return this.contentRect.width-this.contentRect.fitWidth<1&&this.contentRect.height-this.contentRect.fitHeight<1}get isTouchDevice(){return null===I&&(I=window.matchMedia("(hover: none)").matches),I}get isMobile(){return null===k&&(k=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)),k}get panMode(){return this.options.panMode!==A||this.isTouchDevice?L:A}get panOnlyZoomed(){const t=this.options.panOnlyZoomed;return t===R?this.isTouchDevice:t}get isInfinite(){return this.option("infinite")}get angle(){return 180*Math.atan2(this.current.b,this.current.a)/Math.PI||0}get targetAngle(){return 180*Math.atan2(this.target.b,this.target.a)/Math.PI||0}get scale(){const{a:t,b:e}=this.current;return Math.sqrt(t*t+e*e)||1}get targetScale(){const{a:t,b:e}=this.target;return Math.sqrt(t*t+e*e)||1}get minScale(){return this.option("minScale")||1}get fullScale(){const{contentRect:t}=this;return t.fullWidth/t.fitWidth||1}get maxScale(){return this.fullScale*(this.option("maxScale")||1)||1}get coverScale(){const{containerRect:t,contentRect:e}=this,i=Math.max(t.height/e.fitHeight,t.width/e.fitWidth)||1;return Math.min(this.fullScale,i)}get isScaling(){return Math.abs(this.targetScale-this.scale)>1e-5&&!this.isResting}get isContentLoading(){const t=this.content;return!!(t&&t instanceof HTMLImageElement)&&!t.complete}get isResting(){if(this.isBouncingX||this.isBouncingY)return!1;for(const t of b){const e="e"==t||"f"===t?1e-4:1e-5;if(Math.abs(this.target[t]-this.current[t])>e)return!1}return!(!this.ignoreBounds&&!this.checkBounds().inBounds)}constructor(t,e={},i={}){var n;if(super(e),Object.defineProperty(this,"pointerTracker",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"updateTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"rAF",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"isTicking",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreBounds",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingX",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingY",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"clicks",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"trackingPoints",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"cwd",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"pmme",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"friction",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:v.Init}),Object.defineProperty(this,"isDragging",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"content",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"spinner",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"containerRect",{enumerable:!0,configurable:!0,writable:!0,value:{width:0,height:0,innerWidth:0,innerHeight:0}}),Object.defineProperty(this,"contentRect",{enumerable:!0,configurable:!0,writable:!0,value:{top:0,right:0,bottom:0,left:0,fullWidth:0,fullHeight:0,fitWidth:0,fitHeight:0,width:0,height:0}}),Object.defineProperty(this,"dragStart",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,top:0,left:0,time:0}}),Object.defineProperty(this,"dragOffset",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,time:0}}),Object.defineProperty(this,"current",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},T)}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},T)}),Object.defineProperty(this,"velocity",{enumerable:!0,configurable:!0,writable:!0,value:{a:0,b:0,c:0,d:0,e:0,f:0}}),Object.defineProperty(this,"lockedAxis",{enumerable:!0,configurable:!0,writable:!0,value:!1}),!t)throw new Error("Container Element Not Found");this.container=t,this.initContent(),this.attachPlugins(Object.assign(Object.assign({},D.Plugins),i)),this.emit("attachPlugins"),this.emit("init");const o=this.content;if(o.addEventListener("load",this.onLoad),o.addEventListener("error",this.onError),this.isContentLoading){if(this.option("spinner")){t.classList.add(this.cn("isLoading"));const e=s(E);!t.contains(o)||o.parentElement instanceof HTMLPictureElement?this.spinner=t.appendChild(e):this.spinner=(null===(n=o.parentElement)||void 0===n?void 0:n.insertBefore(e,o))||null}this.emit("beforeLoad")}else queueMicrotask((()=>{this.enable()}))}initContent(){const{container:t}=this,e=this.cn(z);let i=this.option(z)||t.querySelector(`.${e}`);if(i||(i=t.querySelector("img,picture")||t.firstElementChild,i&&C(i,e)),i instanceof HTMLPictureElement&&(i=i.querySelector("img")),!i)throw new Error("No content found");this.content=i}onLoad(){const{spinner:t,container:e,state:i}=this;t&&(t.remove(),this.spinner=null),this.option("spinner")&&e.classList.remove(this.cn("isLoading")),this.emit("afterLoad"),i===v.Init?this.enable():this.updateMetrics()}onError(){this.state!==v.Destroy&&(this.spinner&&(this.spinner.remove(),this.spinner=null),this.stop(),this.detachEvents(),this.state=v.Error,this.emit("error"))}getNextScale(t){const{fullScale:e,targetScale:i,coverScale:n,maxScale:s,minScale:o}=this;let a=o;switch(t){case"toggleMax":a=i-o<.5*(s-o)?s:o;break;case"toggleCover":a=i-o<.5*(n-o)?n:o;break;case"toggleZoom":a=i-o<.5*(e-o)?e:o;break;case"iterateZoom":let t=[1,e,s].sort(((t,e)=>t-e)),r=t.findIndex((t=>t>i+1e-5));a=t[r]||1}return a}attachObserver(){var t;const e=()=>{const{container:t,containerRect:e}=this;return Math.abs(e.width-t.getBoundingClientRect().width)>.1||Math.abs(e.height-t.getBoundingClientRect().height)>.1};this.resizeObserver||void 0===window.ResizeObserver||(this.resizeObserver=new ResizeObserver((()=>{this.updateTimer||(e()?(this.onResize(),this.isMobile&&(this.updateTimer=setTimeout((()=>{e()&&this.onResize(),this.updateTimer=null}),500))):this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null))}))),null===(t=this.resizeObserver)||void 0===t||t.observe(this.container)}detachObserver(){var t;null===(t=this.resizeObserver)||void 0===t||t.disconnect()}attachEvents(){const{container:t}=this;t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("wheel",this.onWheel,{passive:!1}),this.pointerTracker=new c(t,{start:this.onPointerDown,move:this.onPointerMove,end:this.onPointerUp}),document.addEventListener(A,this.onMouseMove)}detachEvents(){var t;const{container:e}=this;e.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),e.removeEventListener("wheel",this.onWheel,{passive:!1}),null===(t=this.pointerTracker)||void 0===t||t.stop(),this.pointerTracker=null,document.removeEventListener(A,this.onMouseMove),document.removeEventListener("keydown",this.onKeydown,!0),this.clickTimer&&(clearTimeout(this.clickTimer),this.clickTimer=null),this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null)}animate(){this.setTargetForce();const t=this.friction,e=this.option("maxVelocity");for(const i of b)t?(this.velocity[i]*=1-t,e&&!this.isScaling&&(this.velocity[i]=Math.max(Math.min(this.velocity[i],e),-1*e)),this.current[i]+=this.velocity[i]):this.current[i]=this.target[i];this.setTransform(),this.setEdgeForce(),!this.isResting||this.isDragging?this.rAF=requestAnimationFrame((()=>this.animate())):this.stop("current")}setTargetForce(){for(const t of b)"e"===t&&this.isBouncingX||"f"===t&&this.isBouncingY||(this.velocity[t]=(1/(1-this.friction)-1)*(this.target[t]-this.current[t]))}checkBounds(t=0,e=0){const{current:i}=this,n=i.e+t,s=i.f+e,o=this.getBounds(),{x:a,y:r}=o,l=a.min,c=a.max,h=r.min,d=r.max;let u=0,p=0;return l!==1/0&&n<l?u=l-n:c!==1/0&&n>c&&(u=c-n),h!==1/0&&s<h?p=h-s:d!==1/0&&s>d&&(p=d-s),Math.abs(u)<1e-4&&(u=0),Math.abs(p)<1e-4&&(p=0),Object.assign(Object.assign({},o),{xDiff:u,yDiff:p,inBounds:!u&&!p})}clampTargetBounds(){const{target:t}=this,{x:e,y:i}=this.getBounds();e.min!==1/0&&(t.e=Math.max(t.e,e.min)),e.max!==1/0&&(t.e=Math.min(t.e,e.max)),i.min!==1/0&&(t.f=Math.max(t.f,i.min)),i.max!==1/0&&(t.f=Math.min(t.f,i.max))}calculateContentDim(t=this.current){const{content:e,contentRect:i}=this,{fitWidth:n,fitHeight:s,fullWidth:o,fullHeight:a}=i;let r=o,l=a;if(this.option("zoom")||0!==this.angle){const i=!(e instanceof HTMLImageElement)&&("none"===window.getComputedStyle(e).maxWidth||"none"===window.getComputedStyle(e).maxHeight),c=i?o:n,h=i?a:s,d=this.getMatrix(t),u=new DOMPoint(0,0).matrixTransform(d),p=new DOMPoint(0+c,0).matrixTransform(d),f=new DOMPoint(0+c,0+h).matrixTransform(d),g=new DOMPoint(0,0+h).matrixTransform(d),m=Math.abs(f.x-u.x),v=Math.abs(f.y-u.y),b=Math.abs(g.x-p.x),y=Math.abs(g.y-p.y);r=Math.max(m,b),l=Math.max(v,y)}return{contentWidth:r,contentHeight:l}}setEdgeForce(){if(this.ignoreBounds||this.isDragging||this.panMode===A||this.targetScale<this.scale)return this.isBouncingX=!1,void(this.isBouncingY=!1);const{target:t}=this,{x:e,y:i,xDiff:n,yDiff:s}=this.checkBounds();const o=this.option("maxVelocity");let a=this.velocity.e,r=this.velocity.f;0!==n?(this.isBouncingX=!0,n*a<=0?a+=.14*n:(a=.14*n,e.min!==1/0&&(this.target.e=Math.max(t.e,e.min)),e.max!==1/0&&(this.target.e=Math.min(t.e,e.max))),o&&(a=Math.max(Math.min(a,o),-1*o))):this.isBouncingX=!1,0!==s?(this.isBouncingY=!0,s*r<=0?r+=.14*s:(r=.14*s,i.min!==1/0&&(this.target.f=Math.max(t.f,i.min)),i.max!==1/0&&(this.target.f=Math.min(t.f,i.max))),o&&(r=Math.max(Math.min(r,o),-1*o))):this.isBouncingY=!1,this.isBouncingX&&(this.velocity.e=a),this.isBouncingY&&(this.velocity.f=r)}enable(){const{content:t}=this,e=new DOMMatrixReadOnly(window.getComputedStyle(t).transform);for(const t of b)this.current[t]=this.target[t]=e[t];this.updateMetrics(),this.attachObserver(),this.attachEvents(),this.state=v.Ready,this.emit("ready")}onClick(t){var e;"click"===t.type&&0===t.detail&&(this.dragOffset.x=0,this.dragOffset.y=0),this.isDragging&&(null===(e=this.pointerTracker)||void 0===e||e.clear(),this.trackingPoints=[],this.startDecelAnim());const i=t.target;if(!i||t.defaultPrevented)return;if(i.hasAttribute("disabled"))return t.preventDefault(),void t.stopPropagation();if((()=>{const t=window.getSelection();return t&&"Range"===t.type})()&&!i.closest("button"))return;const n=i.closest("[data-panzoom-action]"),s=i.closest("[data-panzoom-change]"),o=n||s,a=o&&S(o)?o.dataset:null;if(a){const e=a.panzoomChange,i=a.panzoomAction;if((e||i)&&t.preventDefault(),e){let t={};try{t=JSON.parse(e)}catch(t){console&&console.warn("The given data was not valid JSON")}return void this.applyChange(t)}if(i)return void(this[i]&&this[i]())}if(Math.abs(this.dragOffset.x)>3||Math.abs(this.dragOffset.y)>3)return t.preventDefault(),void t.stopPropagation();if(i.closest("[data-fancybox]"))return;const r=this.content.getBoundingClientRect(),l=this.dragStart;if(l.time&&!this.canZoomOut()&&(Math.abs(r.x-l.x)>2||Math.abs(r.y-l.y)>2))return;this.dragStart.time=0;const c=e=>{this.option("zoom",t)&&e&&"string"==typeof e&&/(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e)&&"function"==typeof this[e]&&(t.preventDefault(),this[e]({event:t}))},h=this.option("click",t),d=this.option("dblClick",t);d?(this.clicks++,1==this.clicks&&(this.clickTimer=setTimeout((()=>{1===this.clicks?(this.emit("click",t),!t.defaultPrevented&&h&&c(h)):(this.emit("dblClick",t),t.defaultPrevented||c(d)),this.clicks=0,this.clickTimer=null}),350))):(this.emit("click",t),!t.defaultPrevented&&h&&c(h))}addTrackingPoint(t){const e=this.trackingPoints.filter((t=>t.time>Date.now()-100));e.push(t),this.trackingPoints=e}onPointerDown(t,e,i){var n;if(!1===this.option("touch",t))return!1;this.pwt=0,this.dragOffset={x:0,y:0,time:0},this.trackingPoints=[];const s=this.content.getBoundingClientRect();if(this.dragStart={x:s.x,y:s.y,top:s.top,left:s.left,time:Date.now()},this.clickTimer)return!1;if(this.panMode===A&&this.targetScale>1)return t.preventDefault(),t.stopPropagation(),!1;const o=t.composedPath()[0];if(!i.length){if(["TEXTAREA","OPTION","INPUT","SELECT","VIDEO","IFRAME"].includes(o.nodeName)||o.closest("[contenteditable],[data-selectable],[data-draggable],[data-clickable],[data-panzoom-change],[data-panzoom-action]"))return!1;null===(n=window.getSelection())||void 0===n||n.removeAllRanges()}if("mousedown"===t.type)["A","BUTTON"].includes(o.nodeName)||t.preventDefault();else if(Math.abs(this.velocity.a)>.3)return!1;return this.target.e=this.current.e,this.target.f=this.current.f,this.stop(),this.isDragging||(this.isDragging=!0,this.addTrackingPoint(e),this.emit("touchStart",t)),!0}onPointerMove(t,i,s){if(!1===this.option("touch",t))return;if(!this.isDragging)return;if(i.length<2&&this.panOnlyZoomed&&e(this.targetScale)<=e(this.minScale))return;if(this.emit("touchMove",t),t.defaultPrevented)return;this.addTrackingPoint(i[0]);const{content:o}=this,a=d(s[0],s[1]),r=d(i[0],i[1]);let l=0,c=0;if(i.length>1){const t=o.getBoundingClientRect();l=a.clientX-t.left-.5*t.width,c=a.clientY-t.top-.5*t.height}const u=h(s[0],s[1]),p=h(i[0],i[1]);let f=u?p/u:1,g=r.clientX-a.clientX,m=r.clientY-a.clientY;this.dragOffset.x+=g,this.dragOffset.y+=m,this.dragOffset.time=Date.now()-this.dragStart.time;let v=e(this.targetScale)===e(this.minScale)&&this.option("lockAxis");if(v&&!this.lockedAxis)if("xy"===v||"y"===v||"touchmove"===t.type){if(Math.abs(this.dragOffset.x)<6&&Math.abs(this.dragOffset.y)<6)return void t.preventDefault();const e=Math.abs(180*Math.atan2(this.dragOffset.y,this.dragOffset.x)/Math.PI);this.lockedAxis=e>45&&e<135?"y":"x",this.dragOffset.x=0,this.dragOffset.y=0,g=0,m=0}else this.lockedAxis=v;if(n(t.target,this.content)&&(v="x",this.dragOffset.y=0),v&&"xy"!==v&&this.lockedAxis!==v&&e(this.targetScale)===e(this.minScale))return;t.cancelable&&t.preventDefault(),this.container.classList.add(this.cn("isDragging"));const b=this.checkBounds(g,m);this.option("rubberband")?("x"!==this.isInfinite&&(b.xDiff>0&&g<0||b.xDiff<0&&g>0)&&(g*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitWidth*b.xDiff))),"y"!==this.isInfinite&&(b.yDiff>0&&m<0||b.yDiff<0&&m>0)&&(m*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitHeight*b.yDiff)))):(b.xDiff&&(g=0),b.yDiff&&(m=0));const y=this.targetScale,w=this.minScale,x=this.maxScale;y<.5*w&&(f=Math.max(f,w)),y>
vendor: 13,574 bytes, line 35
351.5*x&&(f=Math.min(f,x)),"y"===this.lockedAxis&&e(y)===e(w)&&(g=0),"x"===this.lockedAxis&&e(y)===e(w)&&(m=0),this.applyChange({originX:l,originY:c,panX:g,panY:m,scale:f,friction:this.option("dragFriction"),ignoreBounds:!0})}onPointerUp(t,e,i){if(i.length)return this.dragOffset.x=0,this.dragOffset.y=0,void(this.trackingPoints=[]);this.container.classList.remove(this.cn("isDragging")),this.isDragging&&(this.addTrackingPoint(e),this.panOnlyZoomed&&this.contentRect.width-this.contentRect.fitWidth<1&&this.contentRect.height-this.contentRect.fitHeight<1&&(this.trackingPoints=[]),n(t.target,this.content)&&"y"===this.lockedAxis&&(this.trackingPoints=[]),this.emit("touchEnd",t),this.isDragging=!1,this.lockedAxis=!1,this.state!==v.Destroy&&(t.defaultPrevented||this.startDecelAnim()))}startDecelAnim(){var t;const i=this.isScaling;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const t of b)this.velocity[t]=0;this.target.e=this.current.e,this.target.f=this.current.f,P(this.container,"is-scaling"),P(this.container,"is-animating"),this.isTicking=!1;const{trackingPoints:n}=this,s=n[0],o=n[n.length-1];let a=0,r=0,l=0;o&&s&&(a=o.clientX-s.clientX,r=o.clientY-s.clientY,l=o.time-s.time);const c=(null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1;1!==c&&(a*=c,r*=c);let h=0,d=0,u=0,p=0,f=this.option("decelFriction");const g=this.targetScale;if(l>0){u=Math.abs(a)>3?a/(l/30):0,p=Math.abs(r)>3?r/(l/30):0;const t=this.option("maxVelocity");t&&(u=Math.max(Math.min(u,t),-1*t),p=Math.max(Math.min(p,t),-1*t))}u&&(h=u/(1/(1-f)-1)),p&&(d=p/(1/(1-f)-1)),("y"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"y"===this.lockedAxis&&e(g)===this.minScale)&&(h=u=0),("x"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"x"===this.lockedAxis&&e(g)===this.minScale)&&(d=p=0);const m=this.dragOffset.x,v=this.dragOffset.y,y=this.option("dragMinThreshold")||0;Math.abs(m)<y&&Math.abs(v)<y&&(h=d=0,u=p=0),(this.option("zoom")&&(g<this.minScale-1e-5||g>this.maxScale+1e-5)||i&&!h&&!d)&&(f=.35),this.applyChange({panX:h,panY:d,friction:f}),this.emit("decel",u,p,m,v)}onWheel(t){var e=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const i=Math.max(-1,Math.min(1,e));if(this.emit("wheel",t,i),this.panMode===A)return;if(t.defaultPrevented)return;const n=this.option("wheel");"pan"===n?(t.preventDefault(),this.panOnlyZoomed&&!this.canZoomOut()||this.applyChange({panX:2*-t.deltaX,panY:2*-t.deltaY,bounce:!1})):"zoom"===n&&!1!==this.option("zoom")&&this.zoomWithWheel(t)}onMouseMove(t){this.panWithMouse(t)}onKeydown(t){"Escape"===t.key&&this.toggleFS()}onResize(){this.updateMetrics(),this.checkBounds().inBounds||this.requestTick()}setTransform(){this.emit("beforeTransform");const{current:t,target:i,content:n,contentRect:s}=this,o=Object.assign({},T);for(const n of b){const s="e"==n||"f"===n?O:M;o[n]=e(t[n],s),Math.abs(i[n]-t[n])<("e"==n||"f"===n?.51:.001)&&(t[n]=i[n])}let{a:a,b:r,c:l,d:c,e:h,f:d}=o,u=`matrix(${a}, ${r}, ${l}, ${c}, ${h}, ${d})`,p=n.parentElement instanceof HTMLPictureElement?n.parentElement:n;if(this.option("transformParent")&&(p=p.parentElement||p),p.style.transform===u)return;p.style.transform=u;const{contentWidth:f,contentHeight:g}=this.calculateContentDim();s.width=f,s.height=g,this.emit("afterTransform")}updateMetrics(t=!1){var i;if(!this||this.state===v.Destroy)return;if(this.isContentLoading)return;const n=Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1),{container:s,content:o}=this,a=o instanceof HTMLImageElement,r=s.getBoundingClientRect(),l=getComputedStyle(this.container);let c=r.width*n,h=r.height*n;const d=parseFloat(l.paddingTop)+parseFloat(l.paddingBottom),u=c-(parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)),p=h-d;this.containerRect={width:c,height:h,innerWidth:u,innerHeight:p};const f=parseFloat(o.dataset.width||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalWidth:t instanceof SVGElement?t.width.baseVal.value:Math.max(t.offsetWidth,t.scrollWidth),e||0})(o),g=parseFloat(o.dataset.height||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalHeight:t instanceof SVGElement?t.height.baseVal.value:Math.max(t.offsetHeight,t.scrollHeight),e||0})(o);let m=this.option("width",f)||R,b=this.option("height",g)||R;const y=m===R,w=b===R;"number"!=typeof m&&(m=f),"number"!=typeof b&&(b=g),y&&(m=f*(b/g)),w&&(b=g/(f/m));let x=o.parentElement instanceof HTMLPictureElement?o.parentElement:o;this.option("transformParent")&&(x=x.parentElement||x);const E=x.getAttribute("style")||"";x.style.setProperty("transform","none","important"),a&&(x.style.width="",x.style.height=""),x.offsetHeight;const S=o.getBoundingClientRect();let P=S.width*n,C=S.height*n,T=P,M=C;P=Math.min(P,m),C=Math.min(C,b),a?({width:P,height:C}=((t,e,i,n)=>{const s=i/t,o=n/e,a=Math.min(s,o);return{width:t*=a,height:e*=a}})(m,b,P,C)):(P=Math.min(P,m),C=Math.min(C,b));let O=.5*(M-C),A=.5*(T-P);this.contentRect=Object.assign(Object.assign({},this.contentRect),{top:S.top-r.top+O,bottom:r.bottom-S.bottom+O,left:S.left-r.left+A,right:r.right-S.right+A,fitWidth:P,fitHeight:C,width:P,height:C,fullWidth:m,fullHeight:b}),x.style.cssText=E,a&&(x.style.width=`${P}px`,x.style.height=`${C}px`),this.setTransform(),!0!==t&&this.emit("refresh"),this.ignoreBounds||(e(this.targetScale)<e(this.minScale)?this.zoomTo(this.minScale,{friction:0}):this.targetScale>this.maxScale?this.zoomTo(this.maxScale,{friction:0}):this.state===v.Init||this.checkBounds().inBounds||this.requestTick()),this.updateControls()}calculateBounds(){const{contentWidth:t,contentHeight:i}=this.calculateContentDim(this.target),{targetScale:n,lockedAxis:s}=this,{fitWidth:o,fitHeight:a}=this.contentRect;let r=0,l=0,c=0,h=0;const d=this.option("infinite");if(!0===d||s&&d===s)r=-1/0,c=1/0,l=-1/0,h=1/0;else{let{containerRect:s,contentRect:d}=this,u=e(o*n,O),p=e(a*n,O),{innerWidth:f,innerHeight:g}=s;if(s.width===u&&(f=s.width),s.width===p&&(g=s.height),t>f){c=.5*(t-f),r=-1*c;let e=.5*(d.right-d.left);r+=e,c+=e}if(o>f&&t<f&&(r-=.5*(o-f),c-=.5*(o-f)),i>g){h=.5*(i-g),l=-1*h;let t=.5*(d.bottom-d.top);l+=t,h+=t}a>g&&i<g&&(r-=.5*(a-g),c-=.5*(a-g))}return{x:{min:r,max:c},y:{min:l,max:h}}}getBounds(){const t=this.option("bounds");return t!==R?t:this.calculateBounds()}updateControls(){const t=this,i=t.container,{panMode:n,contentRect:s,targetScale:o,minScale:r}=t;let l=r,c=t.option("click")||!1;c&&(l=t.getNextScale(c));let h=t.canZoomIn(),d=t.canZoomOut(),u=n===L&&!!this.option("touch"),p=d&&u;if(u&&(e(o)<e(r)&&!this.panOnlyZoomed&&(p=!0),(e(s.width,1)>e(s.fitWidth,1)||e(s.height,1)>e(s.fitHeight,1))&&(p=!0)),e(s.width*o,1)<e(s.fitWidth,1)&&(p=!1),n===A&&(p=!1),a(i,this.cn("isDraggable"),p),!this.option("zoom"))return;let f=h&&e(l)>e(o),g=!f&&!p&&d&&e(l)<e(o);a(i,this.cn("canZoomIn"),f),a(i,this.cn("canZoomOut"),g);for(const t of i.querySelectorAll("[data-panzoom-action]")){let e=!1,i=!1;switch(t.dataset.panzoomAction){case"zoomIn":h?e=!0:i=!0;break;case"zoomOut":d?e=!0:i=!0;break;case"toggleZoom":case"iterateZoom":h||d?e=!0:i=!0;const n=t.querySelector("g");n&&(n.style.display=h?"":"none")}e?(t.removeAttribute("disabled"),t.removeAttribute("tabindex")):i&&(t.setAttribute("disabled",""),t.setAttribute("tabindex","-1"))}}panTo({x:t=this.target.e,y:e=this.target.f,scale:i=this.targetScale,friction:n=this.option("friction"),angle:s=0,originX:o=0,originY:a=0,flipX:r=!1,flipY:l=!1,ignoreBounds:c=!1}){this.state!==v.Destroy&&this.applyChange({panX:t-this.target.e,panY:e-this.target.f,scale:i/this.targetScale,angle:s,originX:o,originY:a,friction:n,flipX:r,flipY:l,ignoreBounds:c})}applyChange({panX:t=0,panY:i=0,scale:n=1,angle:s=0,originX:o=-this.current.e,originY:a=-this.current.f,friction:r=this.option("friction"),flipX:l=!1,flipY:c=!1,ignoreBounds:h=!1,bounce:d=this.option("bounce")}){const u=this.state;if(u===v.Destroy)return;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.friction=r||0,this.ignoreBounds=h;const{current:p}=this,f=p.e,g=p.f,m=this.getMatrix(this.target);let y=(new DOMMatrix).translate(f,g).translate(o,a).translate(t,i);if(this.option("zoom")){if(!h){const t=this.targetScale,e=this.minScale,i=this.maxScale;t*n<e&&(n=e/t),t*n>i&&(n=i/t)}y=y.scale(n)}y=y.translate(-o,-a).translate(-f,-g).multiply(m),s&&(y=y.rotate(s)),l&&(y=y.scale(-1,1)),c&&(y=y.scale(1,-1));for(const t of b)"e"!==t&&"f"!==t&&(y[t]>this.minScale+1e-5||y[t]<this.minScale-1e-5)?this.target[t]=y[t]:this.target[t]=e(y[t],O);(this.targetScale<this.scale||Math.abs(n-1)>.1||this.panMode===A||!1===d)&&!h&&this.clampTargetBounds(),u===v.Init?this.animate():this.isResting||(this.state=v.Panning,this.requestTick())}stop(t=!1){if(this.state===v.Init||this.state===v.Destroy)return;const e=this.isTicking;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const e of b)this.velocity[e]=0,"current"===t?this.current[e]=this.target[e]:"target"===t&&(this.target[e]=this.current[e]);this.setTransform(),P(this.container,"is-scaling"),P(this.container,"is-animating"),this.isTicking=!1,this.state=v.Ready,e&&(this.emit("endAnimation"),this.updateControls())}requestTick(){this.isTicking||(this.emit("startAnimation"),this.updateControls(),C(this.container,"is-animating"),this.isScaling&&C(this.container,"is-scaling")),this.isTicking=!0,this.rAF||(this.rAF=requestAnimationFrame((()=>this.animate())))}panWithMouse(t,i=this.option("mouseMoveFriction")){if(this.pmme=t,this.panMode!==A||!t)return;if(e(this.targetScale)<=e(this.minScale))return;this.emit("mouseMove",t);const{container:n,containerRect:s,contentRect:o}=this,a=s.width,r=s.height,l=n.getBoundingClientRect(),c=(t.clientX||0)-l.left,h=(t.clientY||0)-l.top;let{contentWidth:d,contentHeight:u}=this.calculateContentDim(this.target);const p=this.option("mouseMoveFactor");p>1&&(d!==a&&(d*=p),u!==r&&(u*=p));let f=.5*(d-a)-c/a*100/100*(d-a);f+=.5*(o.right-o.left);let g=.5*(u-r)-h/r*100/100*(u-r);g+=.5*(o.bottom-o.top),this.applyChange({panX:f-this.target.e,panY:g-this.target.f,friction:i})}zoomWithWheel(t){if(this.state===v.Destroy||this.state===v.Init)return;const i=Date.now();if(i-this.pwt<45)return void t.preventDefault();this.pwt=i;var n=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const s=Math.max(-1,Math.min(1,n)),{targetScale:o,maxScale:a,minScale:r}=this;let l=o*(100+45*s)/100;e(l)<e(r)&&e(o)<=e(r)?(this.cwd+=Math.abs(s),l=r):e(l)>e(a)&&e(o)>=e(a)?(this.cwd+=Math.abs(s),l=a):(this.cwd=0,l=Math.max(Math.min(l,a),r)),this.cwd>this.option("wheelLimit")||(t.preventDefault(),e(l)!==e(o)&&this.zoomTo(l,{event:t}))}canZoomIn(){return this.option("zoom")&&(e(this.contentRect.width,1)<e(this.contentRect.fitWidth,1)||e(this.targetScale)<e(this.maxScale))}canZoomOut(){return this.option("zoom")&&e(this.targetScale)>e(this.minScale)}zoomIn(t=1.25,e){this.zoomTo(this.targetScale*t,e)}zoomOut(t=.8,e){this.zoomTo(this.targetScale*t,e)}zoomToFit(t){this.zoomTo("fit",t)}zoomToCover(t){this.zoomTo("cover",t)}zoomToFull(t){this.zoomTo("full",t)}zoomToMax(t){this.zoomTo("max",t)}toggleZoom(t){this.zoomTo(this.getNextScale("toggleZoom"),t)}toggleMax(t){this.zoomTo(this.getNextScale("toggleMax"),t)}toggleCover(t){this.zoomTo(this.getNextScale("toggleCover"),t)}iterateZoom(t){this.zoomTo("next",t)}zoomTo(t=1,{friction:e=R,originX:i=R,originY:n=R,event:s}={}){if(this.isContentLoading||this.state===v.Destroy)return;const{targetScale:o,fullScale:a,maxScale:r,coverScale:l}=this;if(this.stop(),this.panMode===A&&(s=this.pmme||s),s||i===R||n===R){const t=this.content.getBoundingClientRect(),e=this.container.getBoundingClientRect(),o=s?s.clientX:e.left+.5*e.width,a=s?s.clientY:e.top+.5*e.height;i=o-t.left-.5*t.width,n=a-t.top-.5*t.height}let c=1;"number"==typeof t?c=t:"full"===t?c=a:"cover"===t?c=l:"max"===t?c=r:"fit"===t?c=1:"next"===t&&(c=this.getNextScale("iterateZoom")),c=c/o||1,e=e===R?c>1?.15:.25:e,this.applyChange({scale:c,originX:i,originY:n,friction:e}),s&&this.panMode===A&&this.panWithMouse(s,e)}rotateCCW(){this.applyChange({angle:-90})}rotateCW(){this.applyChange({angle:90})}flipX(){this.applyChange({flipX:!0})}flipY(){this.applyChange({flipY:!0})}fitX(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.height-(e.top+.5*e.fitHeight)-i.f,scale:t.width/e.fitWidth/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}fitY(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.innerHeight-(e.top+.5*e.fitHeight)-i.f,scale:t.height/e.fitHeight/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}toggleFS(){const{container:t}=this,e=this.cn("inFullscreen"),i=this.cn("htmlHasFullscreen");t.classList.toggle(e);const n=t.classList.contains(e);n?(document.documentElement.classList.add(i),document.addEventListener("keydown",this.onKeydown,!0)):(document.documentElement.classList.remove(i),document.removeEventListener("keydown",this.onKeydown,!0)),this.updateMetrics(),this.emit(n?"enterFS":"exitFS")}getMatrix(t=this.current){const{a:e,b:i,c:n,d:s,e:o,f:a}=t;return new DOMMatrix([e,i,n,s,o,a])}reset(t){if(this.state!==v.Init&&this.state!==v.Destroy){this.stop("current");for(const t of b)this.target[t]=T[t];this.target.a=this.minScale,this.target.d=this.minScale,this.clampTargetBounds(),this.isResting||(this.friction=void 0===t?this.option("friction"):t,this.state=v.Panning,this.requestTick())}}
vendor: 6,597 bytes, line 35
35destroy(){this.stop(),this.state=v.Destroy,this.detachEvents(),this.detachObserver();const{container:t,content:e}=this,i=this.option("classes")||{};for(const e of Object.values(i))t.classList.remove(e+"");e&&(e.removeEventListener("load",this.onLoad),e.removeEventListener("error",this.onError)),this.detachPlugins()}}Object.defineProperty(D,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:w}),Object.defineProperty(D,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}});const F=function(t,e){let i=!0;return(...n)=>{i&&(i=!1,t(...n),setTimeout((()=>{i=!0}),e))}},j=(t,e)=>{let i=[];return t.childNodes.forEach((t=>{t.nodeType!==Node.ELEMENT_NODE||e&&!t.matches(e)||i.push(t)})),i},B={viewport:null,track:null,enabled:!0,slides:[],axis:"x",transition:"fade",preload:1,slidesPerPage:"auto",initialPage:0,friction:.12,Panzoom:{decelFriction:.12},center:!0,infinite:!0,fill:!0,dragFree:!1,adaptiveHeight:!1,direction:"ltr",classes:{container:"f-carousel",viewport:"f-carousel__viewport",track:"f-carousel__track",slide:"f-carousel__slide",isLTR:"is-ltr",isRTL:"is-rtl",isHorizontal:"is-horizontal",isVertical:"is-vertical",inTransition:"in-transition",isSelected:"is-selected"},l10n:{NEXT:"Next slide",PREV:"Previous slide",GOTO:"Go to slide #%d"}};var H;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Destroy=2]="Destroy"}(H||(H={}));const N=t=>{if("string"==typeof t||t instanceof HTMLElement)t={html:t};else{const e=t.thumb;void 0!==e&&("string"==typeof e&&(t.thumbSrc=e),e instanceof HTMLImageElement&&(t.thumbEl=e,t.thumbElSrc=e.src,t.thumbSrc=e.src),delete t.thumb)}return Object.assign({html:"",el:null,isDom:!1,class:"",customClass:"",index:-1,dim:0,gap:0,pos:0,transition:!1},t)},_=(t={})=>Object.assign({index:-1,slides:[],dim:0,pos:-1},t);class $ extends g{constructor(t,e){super(e),Object.defineProperty(this,"instance",{enumerable:!0,configurable:!0,writable:!0,value:t})}attach(){}detach(){}}const W={classes:{list:"f-carousel__dots",isDynamic:"is-dynamic",hasDots:"has-dots",dot:"f-carousel__dot",isBeforePrev:"is-before-prev",isPrev:"is-prev",isCurrent:"is-current",isNext:"is-next",isAfterNext:"is-after-next"},dotTpl:'<button type="button" data-carousel-page="%i" aria-label="{{GOTO}}"><span class="f-carousel__dot" aria-hidden="true"></span></button>',dynamicFrom:11,maxCount:1/0,minCount:2};class X extends ${constructor(){super(...arguments),Object.defineProperty(this,"isDynamic",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"list",{enumerable:!0,configurable:!0,writable:!0,value:null})}onRefresh(){this.refresh()}build(){let t=this.list;if(!t){t=document.createElement("ul"),C(t,this.cn("list")),t.setAttribute("role","tablist");const e=this.instance.container;e.appendChild(t),C(e,this.cn("hasDots")),this.list=t}return t}refresh(){var t;const e=this.instance.pages.length,i=Math.min(2,this.option("minCount")),n=Math.max(2e3,this.option("maxCount")),s=this.option("dynamicFrom");if(e<i||e>n)return void this.cleanup();const o="number"==typeof s&&e>5&&e>=s,r=!this.list||this.isDynamic!==o||this.list.children.length!==e;r&&this.cleanup();const l=this.build();if(a(l,this.cn("isDynamic"),!!o),r)for(let t=0;t<e;t++)l.append(this.createItem(t));let c,h=0;for(const e of[...l.children]){const i=h===this.instance.page;i&&(c=e),a(e,this.cn("isCurrent"),i),null===(t=e.children[0])||void 0===t||t.setAttribute("aria-selected",i?"true":"false");for(const t of["isBeforePrev","isPrev","isNext","isAfterNext"])P(e,this.cn(t));h++}if(c=c||l.firstChild,o&&c){const t=c.previousElementSibling,e=t&&t.previousElementSibling;C(t,this.cn("isPrev")),C(e,this.cn("isBeforePrev"));const i=c.nextElementSibling,n=i&&i.nextElementSibling;C(i,this.cn("isNext")),C(n,this.cn("isAfterNext"))}this.isDynamic=o}createItem(t=0){var e;const i=document.createElement("li");i.setAttribute("role","presentation");const n=s(this.instance.localize(this.option("dotTpl"),[["%d",t+1]]).replace(/\%i/g,t+""));return i.appendChild(n),null===(e=i.children[0])||void 0===e||e.setAttribute("role","tab"),i}cleanup(){this.list&&(this.list.remove(),this.list=null),this.isDynamic=!1,P(this.instance.container,this.cn("hasDots"))}attach(){this.instance.on(["refresh","change"],this.onRefresh)}detach(){this.instance.off(["refresh","change"],this.onRefresh),this.cleanup()}}Object.defineProperty(X,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:W});const q="disabled",Y="next",V="prev";class Z extends ${constructor(){super(...arguments),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"prev",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"next",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"isDom",{enumerable:!0,configurable:!0,writable:!0,value:!1})}onRefresh(){const t=this.instance,e=t.pages.length,i=t.page;if(e<2)return void this.cleanup();this.build();let n=this.prev,s=this.next;n&&s&&(n.removeAttribute(q),s.removeAttribute(q),t.isInfinite||(i<=0&&n.setAttribute(q,""),i>=e-1&&s.setAttribute(q,"")))}addBtn(t){var e;const i=this.instance,n=document.createElement("button");n.setAttribute("tabindex","0"),n.setAttribute("title",i.localize(`{{${t.toUpperCase()}}}`)),C(n,this.cn("button")+" "+this.cn(t===Y?"isNext":"isPrev"));const s=i.isRTL?t===Y?V:Y:t;var o;return n.innerHTML=i.localize(this.option(`${s}Tpl`)),n.dataset[`carousel${o=t,o?o.match("^[a-z]")?o.charAt(0).toUpperCase()+o.substring(1):o:""}`]="true",null===(e=this.container)||void 0===e||e.appendChild(n),n}build(){const t=this.instance.container,e=this.cn("container");let{container:i,prev:n,next:s}=this;i||(i=t.querySelector("."+e),this.isDom=!!i),i||(i=document.createElement("div"),C(i,e),t.appendChild(i)),this.container=i,s||(s=i.querySelector("[data-carousel-next]")),s||(s=this.addBtn(Y)),this.next=s,n||(n=i.querySelector("[data-carousel-prev]")),n||(n=this.addBtn(V)),this.prev=n}cleanup(){this.isDom||(this.prev&&this.prev.remove(),this.next&&this.next.remove(),this.container&&this.container.remove()),this.prev=null,this.next=null,this.container=null,this.isDom=!1}attach(){this.instance.on(["refresh","change"],this.onRefresh)}detach(){this.instance.off(["refresh","change"],this.onRefresh),this.cleanup()}}Object.defineProperty(Z,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{classes:{container:"f-carousel__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"},nextTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"/></svg>
35',prevTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"/></svg>'}});class U extends ${constructor(){super(...arguments),Object.defineProperty(this,"selectedIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"nav",{enumerable:!0,configurable:!0,writable:!0,value:null})}addAsTargetFor(t){this.target=this.instance,this.nav=t,this.attachEvents()}addAsNavFor(t){this.nav=this.instance,this.target=t,this.attachEvents()}attachEvents(){const{nav:t,target:e}=this;t&&e&&(t.options.initialSlide=e.options.initialPage,t.state===H.Ready?this.onNavReady(t):t.on("ready",this.onNavReady),e.state===H.Ready?this.onTargetReady(e):e.on("ready",this.onTargetReady))}onNavReady(t){t.on("createSlide",this.onNavCreateSlide),t.on("Panzoom.click",this.onNavClick),t.on("Panzoom.touchEnd",this.onNavTouch),this.onTargetChange()}onTargetReady(t){t.on("change",this.onTargetChange),t.on("Panzoom.refresh",this.onTargetChange),this.onTargetChange()}onNavClick(t,e,i){this.onNavTouch(t,t.panzoom,i)}onNavTouch(t,e,i){var n,s;if(Math.abs(e.dragOffset.x)>3||Math.abs(e.dragOffset.y)>3)return;const o=i.target,{nav:a,target:r}=this;if(!a||!r||!o)return;const l=o.closest("[data-index]");if(i.stopPropagation(),i.preventDefault(),!l)return;const c=parseInt(l.dataset.index||"",10)||0,h=r.getPageForSlide(c),d=a.getPageForSlide(c);a.slideTo(d),r.slideTo(h,{friction:(null===(s=null===(n=this.nav)||void 0===n?void 0:n.plugins)||void 0===s?void 0:s.Sync.option("friction"))||0}),this.markSelectedSlide(c)}onNavCreateSlide(t,e){e.index===this.selectedIndex&&this.markSelectedSlide(e.index)}onTargetChange(){var t,e;const{target:i,nav:n}=this;if(!i||!n)return;if(n.state!==H.Ready||i.state!==H.Ready)return;const s=null===(e=null===(t=i.pages[i.page])||void 0===t?void 0:t.slides[0])||void 0===e?void 0:e.index,o=n.getPageForSlide(s);this.markSelectedSlide(s),n.slideTo(o,null===n.prevPage&&null===i.prevPage?{friction:0}:void 0)}markSelectedSlide(t){const e=this.nav;e&&e.state===H.Ready&&(this.selectedIndex=t,[...e.slides].map((e=>{e.el&&e.el.classList[e.index===t?"add":"remove"]("is-nav-selected")})))}attach(){const t=this;let e=t.options.target,i=t.options.nav;e?t.addAsNavFor(e):i&&t.addAsTargetFor(i)}detach(){const t=this,e=t.nav,i=t.target;e&&(e.off("ready",t.onNavReady),e.off("createSlide",t.onNavCreateSlide),e.off("Panzoom.click",t.onNavClick),e.off("Panzoom.touchEnd",t.onNavTouch)),t.nav=null,i&&(i.off("ready",t.onTargetReady),i.off("refresh",t.onTargetChange),i.off("change",t.onTargetChange)),t.target=null}}Object.defineProperty(U,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{friction:.35}});const G={Navigation:Z,Dots:X,Sync:U},K="animationend",J="isSelected",Q="slide";class tt extends m{get axis(){return this.isHorizontal?"e":"f"}get isEnabled(){return this.state===H.Ready}get isInfinite(){let t=!1;const{contentDim:e,viewportDim:i,pages:n,slides:s}=this,o=s[0];return n.length>=2&&o&&e+o.dim>=i&&(t=this.option("infinite")),t}get isRTL(){return"rtl"===this.option("direction")}get isHorizontal(){return"x"===this.option("axis")}constructor(t,e={},i={}){if(super(),Object.defineProperty(this,"bp",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"lp",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"userOptions",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:H.Init}),Object.defineProperty(this,"page",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"prevPage",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"viewport",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"slides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pages",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"panzoom",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"inTransition",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"contentDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"viewportDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),"string"==typeof t&&(t=document.querySelector(t)),!t||!S(t))throw new Error("No Element found");this.container=t,this.slideNext=F(this.slideNext.bind(this),150),this.slidePrev=F(this.slidePrev.bind(this),150),this.userOptions=e,this.userPlugins=i,queueMicrotask((()=>{this.processOptions()}))}processOptions(){var t,e;const i=p({},tt.defaults,this.userOptions);let n="";const s=i.breakpoints;if(s&&u(s))for(const[t,e]of Object.entries(s))window.matchMedia(t).matches&&u(e)&&(n+=t,p(i,e));n===this.bp&&this.state!==H.Init||(this.bp=n,this.state===H.Ready&&(i.initialSlide=(null===(e=null===(t=this.pages[this.page])||void 0===t?void 0:t.slides[0])||void 0===e?void 0:e.index)||0),this.state!==H.Init&&this.destroy(),super.setOptions(i),!1===this.option("enabled")?this.attachEvents():setTimeout((()=>{this.init()}),0))}
vendor: 19,959 bytes, line 35
35init(){this.state=H.Init,this.emit("init"),this.attachPlugins(Object.assign(Object.assign({},tt.Plugins),this.userPlugins)),this.emit("attachPlugins"),this.initLayout(),this.initSlides(),this.updateMetrics(),this.setInitialPosition(),this.initPanzoom(),this.attachEvents(),this.state=H.Ready,this.emit("ready")}initLayout(){const{container:t}=this,e=this.option("classes");C(t,this.cn("container")),a(t,e.isLTR,!this.isRTL),a(t,e.isRTL,this.isRTL),a(t,e.isVertical,!this.isHorizontal),a(t,e.isHorizontal,this.isHorizontal);let i=this.option("viewport")||t.querySelector(`.${e.viewport}`);i||(i=document.createElement("div"),C(i,e.viewport),i.append(...j(t,`.${e.slide}`)),t.prepend(i)),i.addEventListener("scroll",this.onScroll);let n=this.option("track")||t.querySelector(`.${e.track}`);n||(n=document.createElement("div"),C(n,e.track),n.append(...Array.from(i.childNodes))),n.setAttribute("aria-live","polite"),i.contains(n)||i.prepend(n),this.viewport=i,this.track=n,this.emit("initLayout")}initSlides(){const{track:t}=this;if(!t)return;const e=[...this.slides],i=[];[...j(t,`.${this.cn(Q)}`)].forEach((t=>{if(S(t)){const e=N({el:t,isDom:!0,index:this.slides.length});i.push(e)}}));for(let t of[...this.option("slides",[])||[],...e])i.push(N(t));this.slides=i;for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;for(const t of i)this.emit("beforeInitSlide",t,t.index),this.emit("initSlide",t,t.index);this.emit("initSlides")}setInitialPage(){const t=this.option("initialSlide");this.page="number"==typeof t?this.getPageForSlide(t):parseInt(this.option("initialPage",0)+"",10)||0}setInitialPosition(){const{track:t,pages:e,isHorizontal:i}=this;if(!t||!e.length)return;let n=this.page;e[n]||(this.page=n=0);const s=(e[n].pos||0)*(this.isRTL&&i?1:-1),o=i?`${s}px`:"0",a=i?"0":`${s}px`;t.style.transform=`translate3d(${o}, ${a}, 0) scale(1)`,this.option("adaptiveHeight")&&this.setViewportHeight()}initPanzoom(){this.panzoom&&(this.panzoom.destroy(),this.panzoom=null);const t=this.option("Panzoom")||{};this.panzoom=new D(this.viewport,p({},{content:this.track,zoom:!1,panOnlyZoomed:!1,lockAxis:this.isHorizontal?"x":"y",infinite:this.isInfinite,click:!1,dblClick:!1,touch:t=>!(this.pages.length<2&&!t.options.infinite),bounds:()=>this.getBounds(),maxVelocity:t=>Math.abs(t.target[this.axis]-t.current[this.axis])<2*this.viewportDim?100:0},t)),this.panzoom.on("*",((t,e,...i)=>{this.emit(`Panzoom.${e}`,t,...i)})),this.panzoom.on("decel",this.onDecel),this.panzoom.on("refresh",this.onRefresh),this.panzoom.on("beforeTransform",this.onBeforeTransform),this.panzoom.on("endAnimation",this.onEndAnimation)}attachEvents(){const t=this.container;t&&(t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("slideTo",this.onSlideTo)),window.addEventListener("resize",this.onResize)}createPages(){let t=[];const{contentDim:e,viewportDim:i}=this;let n=this.option("slidesPerPage");n=("auto"===n||e<=i)&&!1!==this.option("fill")?1/0:parseFloat(n+"");let s=0,o=0,a=0;for(const e of this.slides)(!t.length||o+e.dim-i>.05||a>=n)&&(t.push(_()),s=t.length-1,o=0,a=0),t[s].slides.push(e),o+=e.dim+e.gap,a++;return t}processPages(){const t=this.pages,{contentDim:i,viewportDim:n,isInfinite:s}=this,o=this.option("center"),a=this.option("fill"),r=a&&o&&i>n&&!s;if(t.forEach(((t,e)=>{var s;t.index=e,t.pos=(null===(s=t.slides[0])||void 0===s?void 0:s.pos)||0,t.dim=0;for(const[e,i]of t.slides.entries())t.dim+=i.dim,e<t.slides.length-1&&(t.dim+=i.gap);r&&t.pos+.5*t.dim<.5*n?t.pos=0:r&&t.pos+.5*t.dim>=i-.5*n?t.pos=i-n:o&&(t.pos+=-.5*(n-t.dim))})),t.forEach((t=>{a&&!s&&i>n&&(t.pos=Math.max(t.pos,0),t.pos=Math.min(t.pos,i-n)),t.pos=e(t.pos,1e3),t.dim=e(t.dim,1e3),Math.abs(t.pos)<=.1&&(t.pos=0)})),s)return t;const l=[];let c;return t.forEach((t=>{const e=Object.assign({},t);c&&e.pos===c.pos?(c.dim+=e.dim,c.slides=[...c.slides,...e.slides]):(e.index=l.length,c=e,l.push(e))})),l}getPageFromIndex(t=0){const e=this.pages.length;let i;return t=parseInt((t||0).toString())||0,i=this.isInfinite?(t%e+e)%e:Math.max(Math.min(t,e-1),0),i}getSlideMetrics(t){var i,n;const s=this.isHorizontal?"width":"height";let o=0,a=0,r=t.el;const l=!(!r||r.parentNode);if(r?o=parseFloat(r.dataset[s]||"")||0:(r=document.createElement("div"),r.style.visibility="hidden",(this.track||document.body).prepend(r)),C(r,this.cn(Q)+" "+t.class+" "+t.customClass),o)r.style[s]=`${o}px`,r.style["width"===s?"height":"width"]="";else{l&&(this.track||document.body).prepend(r),o=r.getBoundingClientRect()[s]*Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1);let t=r[this.isHorizontal?"offsetWidth":"offsetHeight"];t-1>o&&(o=t)}const c=getComputedStyle(r);return"content-box"===c.boxSizing&&(this.isHorizontal?(o+=parseFloat(c.paddingLeft)||0,o+=parseFloat(c.paddingRight)||0):(o+=parseFloat(c.paddingTop)||0,o+=parseFloat(c.paddingBottom)||0)),a=parseFloat(c[this.isHorizontal?"marginRight":"marginBottom"])||0,l?null===(n=r.parentElement)||void 0===n||n.removeChild(r):t.el||r.remove(),{dim:e(o,1e3),gap:e(a,1e3)}}getBounds(){const{isInfinite:t,isRTL:e,isHorizontal:i,pages:n}=this;let s={min:0,max:0};if(t)s={min:-1/0,max:1/0};else if(n.length){const t=n[0].pos,o=n[n.length-1].pos;s=e&&i?{min:t,max:o}:{min:-1*o,max:-1*t}}return{x:i?s:{min:0,max:0},y:i?{min:0,max:0}:s}}repositionSlides(){let t,{isHorizontal:i,isRTL:n,isInfinite:s,viewport:o,viewportDim:a,contentDim:r,page:l,pages:c,slides:h,panzoom:d}=this,u=0,p=0,f=0,g=0;d?g=-1*d.current[this.axis]:c[l]&&(g=c[l].pos||0),t=i?n?"right":"left":"top",n&&i&&(g*=-1);for(const i of h){const n=i.el;n?("top"===t?(n.style.right="",n.style.left=""):n.style.top="",i.index!==u?n.style[t]=0===p?"":`${e(p,1e3)}px`:n.style[t]="",f+=i.dim+i.gap,u++):p+=i.dim+i.gap}if(s&&f&&o){let n=getComputedStyle(o),s="padding",l=i?"Right":"Bottom",c=parseFloat(n[s+(i?"Left":"Top")]);g-=c,a+=c,a+=parseFloat(n[s+l]);for(const i of h)i.el&&(e(i.pos)<e(a)&&e(i.pos+i.dim+i.gap)<e(g)&&e(g)>e(r-a)&&(i.el.style[t]=`${e(p+f,1e3)}px`),e(i.pos+i.gap)>=e(r-a)&&e(i.pos)>e(g+a)&&e(g)<e(a)&&(i.el.style[t]=`-${e(f,1e3)}px`))}let m,v,b=[...this.inTransition];if(b.length>1&&(m=c[b[0]],v=c[b[1]]),m&&v){let i=0;for(const n of h)n.el?this.inTransition.has(n.index)&&m.slides.indexOf(n)<0&&(n.el.style[t]=`${e(i+(m.pos-v.pos),1e3)}px`):i+=n.dim+n.gap}}createSlideEl(t){const{track:e,slides:i}=this;if(!e||!t)return;if(t.el&&t.el.parentNode)return;const n=t.el||document.createElement("div");C(n,this.cn(Q)),C(n,t.class),C(n,t.customClass);const s=t.html;s&&(s instanceof HTMLElement?n.appendChild(s):n.innerHTML=t.html+"");const o=[];i.forEach(((t,e)=>{t.el&&o.push(e)}));const a=t.index;let r=null;if(o.length){r=i[o.reduce(((t,e)=>Math.abs(e-a)<Math.abs(t-a)?e:t))]}const l=r&&r.el&&r.el.parentNode?r.index<t.index?r.el.nextSibling:r.el:null;e.insertBefore(n,e.contains(l)?l:null),t.el=n,this.emit("createSlide",t)}removeSlideEl(t,e=!1){const i=null==t?void 0:t.el;if(!i||!i.parentNode)return;const n=this.cn(J);if(i.classList.contains(n)&&(P(i,n),this.emit("unselectSlide",t)),t.isDom&&!e)return i.removeAttribute("aria-hidden"),i.removeAttribute("data-index"),void(i.style.left="");this.emit("removeSlide",t);const s=new CustomEvent(K);i.dispatchEvent(s),t.el&&(t.el.remove(),t.el=null)}transitionTo(t=0,e=this.option("transition")){var i,n,s,o;if(!e)return!1;const a=this.page,{pages:r,panzoom:l}=this;t=parseInt((t||0).toString())||0;const c=this.getPageFromIndex(t);if(!l||!r[c]||r.length<2||Math.abs(((null===(n=null===(i=r[a])||void 0===i?void 0:i.slides[0])||void 0===n?void 0:n.dim)||0)-this.viewportDim)>1)return!1;let h=t>a?1:-1;this.isInfinite&&(0===a&&t===r.length-1&&(h=-1),a===r.length-1&&0===t&&(h=1));const d=r[c].pos*(this.isRTL?1:-1);if(a===c&&Math.abs(d-l.target[this.axis])<1)return!1;this.clearTransitions();const u=l.isResting;C(this.container,this.cn("inTransition"));const p=(null===(s=r[a])||void 0===s?void 0:s.slides[0])||null,f=(null===(o=r[c])||void 0===o?void 0:o.slides[0])||null;this.inTransition.add(f.index),this.createSlideEl(f);let g=p.el,m=f.el;u||e===Q||(e="fadeFast",g=null);const v=this.isRTL?"next":"prev",b=this.isRTL?"prev":"next";return g&&(this.inTransition.add(p.index),p.transition=e,g.addEventListener(K,this.onAnimationEnd),g.classList.add(`f-${e}Out`,`to-${h>0?b:v}`)),m&&(f.transition=e,m.addEventListener(K,this.onAnimationEnd),m.classList.add(`f-${e}In`,`from-${h>0?v:b}`)),l.current[this.axis]=d,l.target[this.axis]=d,l.requestTick(),this.onChange(c),!0}manageSlideVisiblity(){const t=new Set,e=new Set,i=this.getVisibleSlides(parseFloat(this.option("preload",0)+"")||0);for(const n of this.slides)i.has(n)?t.add(n):e.add(n);for(const e of this.inTransition)t.add(this.slides[e]);for(const e of t)this.createSlideEl(e),this.lazyLoadSlide(e);for(const i of e)t.has(i)||this.removeSlideEl(i);this.markSelectedSlides(),this.repositionSlides()}markSelectedSlides(){if(!this.pages[this.page]||!this.pages[this.page].slides)return;const t="aria-hidden";let e=this.cn(J);if(e)for(const i of this.slides){const n=i.el;n&&(n.dataset.index=`${i.index}`,n.classList.contains("f-thumbs__slide")?this.getVisibleSlides(0).has(i)?n.removeAttribute(t):n.setAttribute(t,"true"):this.pages[this.page].slides.includes(i)?(n.classList.contains(e)||(C(n,e),this.emit("selectSlide",i)),n.removeAttribute(t)):(n.classList.contains(e)&&(P(n,e),this.emit("unselectSlide",i)),n.setAttribute(t,"true")))}}flipInfiniteTrack(){const{axis:t,isHorizontal:e,isInfinite:i,isRTL:n,viewportDim:s,contentDim:o}=this,a=this.panzoom;if(!a||!i)return;let r=a.current[t],l=a.target[t]-r,c=0,h=.5*s;n&&e?(r<-h&&(c=-1,r+=o),r>o-h&&(c=1,r-=o)):(r>h&&(c=1,r-=o),r<-o+h&&(c=-1,r+=o)),c&&(a.current[t]=r,a.target[t]=r+l)}lazyLoadImg(t,e){const i=this,n="f-fadeIn",o="is-preloading";let a=!1,r=null;const l=()=>{a||(a=!0,r&&(r.remove(),r=null),P(e,o),e.complete&&(C(e,n),setTimeout((()=>{P(e,n)}),350)),this.option("adaptiveHeight")&&t.el&&this.pages[this.page].slides.indexOf(t)>-1&&(i.updateMetrics(),i.setViewportHeight()),this.emit("load",t))};C(e,o),e.src=e.dataset.lazySrcset||e.dataset.lazySrc||"",delete e.dataset.lazySrc,delete e.dataset.lazySrcset,e.addEventListener("error",(()=>{l()})),e.addEventListener("load",(()=>{l()})),setTimeout((()=>{const i=e.parentNode;i&&t.el&&(e.complete?l():a||(r=s(E),i.insertBefore(r,e)))}),300)}lazyLoadSlide(t){const e=t&&t.el;if(!e)return;const i=new Set;let n=Array.from(e.querySelectorAll("[data-lazy-src],[data-lazy-srcset]"));e.dataset.lazySrc&&n.push(e),n.map((t=>{t instanceof HTMLImageElement?i.add(t):t instanceof HTMLElement&&t.dataset.lazySrc&&(t.style.backgroundImage=`url('${t.dataset.lazySrc}')`,delete t.dataset.lazySrc)}));for(const e of i)this.lazyLoadImg(t,e)}onAnimationEnd(t){var e;const i=t.target,n=i?parseInt(i.dataset.index||"",10)||0:-1,s=this.slides[n],o=t.animationName;if(!i||!s||!o)return;const a=!!this.inTransition.has(n)&&s.transition;a&&o.substring(0,a.length+2)===`f-${a}`&&this.inTransition.delete(n),this.inTransition.size||this.clearTransitions(),n===this.page&&(null===(e=this.panzoom)||void 0===e?void 0:e.isResting)&&this.emit("settle")}onDecel(t,e=0,i=0,n=0,s=0){if(this.option("dragFree"))return void this.setPageFromPosition();const{isRTL:o,isHorizontal:a,axis:r,pages:l}=this,c=l.length,h=Math.abs(Math.atan2(i,e)/(Math.PI/180));let d=0;if(d=h>45&&h<135?a?0:i:a?e:0,!c)return;let u=this.page,p=o&&a?1:-1;const f=t.current[r]*p;let{pageIndex:g}=this.getPageFromPosition(f);Math.abs(d)>5?(l[u].dim<document.documentElement["client"+(this.isHorizontal?"Width":"Height")]-1&&(u=g),u=o&&a?d<0?u-1:u+1:d<0?u+1:u-1):u=0===n&&0===s?u:g,this.slideTo(u,{transition:!1,friction:t.option("decelFriction")})}onClick(t){const e=t.target,i=e&&S(e)?e.dataset:null;let n,s;i&&(void 0!==i.carouselPage?(s="slideTo",n=i.carouselPage):void 0!==i.carouselNext?s="slideNext":void 0!==i.carouselPrev&&(s="slidePrev")),s?(t.preventDefault(),t.stopPropagation(),e&&!e.hasAttribute("disabled")&&this[s](n)):this.emit("click",t)}onSlideTo(t){const e=t.detail||0;this.slideTo(this.getPageForSlide(e),{friction:0})}onChange(t,e=0){const i=this.page;this.prevPage=i,this.page=t,this.option("adaptiveHeight")&&this.setViewportHeight(),t!==i&&(this.markSelectedSlides(),this.emit("change",t,i,e))}onRefresh(){let t=this.contentDim,e=this.viewportDim;this.updateMetrics(),this.contentDim===t&&this.viewportDim===e||this.slideTo(this.page,{friction:0,transition:!1})}onScroll(){var t;null===(t=this.viewport)||void 0===t||t.scroll(0,0)}onResize(){this.option("breakpoints")&&this.processOptions()}onBeforeTransform(t){this.lp!==t.current[this.axis]&&(this.flipInfiniteTrack(),this.manageSlideVisiblity()),this.lp=t.current.e}onEndAnimation(){this.inTransition.size||this.emit("settle")}reInit(t=null,e=null){this.destroy(),this.state=H.Init,this.prevPage=null,this.userOptions=t||this.userOptions,this.userPlugins=e||this.userPlugins,this.processOptions()}slideTo(t=0,{friction:e=this.option("friction"),transition:i=this.option("transition")}={}){if(this.state===H.Destroy)return;t=parseInt((t||0).toString())||0;const n=this.getPageFromIndex(t),{axis:s,isHorizontal:o,isRTL:a,pages:r,panzoom:l}=this,c=r.length,h=a&&o?1:-1;if(!l||!c)return;if(this.page!==n){const e=new Event("beforeChange",{bubbles:!0,cancelable:!0});if(this.emit("beforeChange",e,t),e.defaultPrevented)return}if(this.transitionTo(t,i))return;let d=r[n].pos;if(this.isInfinite){const e=this.contentDim,i=l.target[s]*h;if(2===c)d+=e*Math.floor(parseFloat(t+"")/2);else{d=[d,d-e,d+e].reduce((function(t,e){return Math.abs(e-i)<Math.abs(t-i)?e:t}))}}d*=h,Math.abs(l.target[s]-d)<1||(l.panTo({x:o?d:0,y:o?0:d,friction:e}),this.onChange(n))}slideToClosest(t){if(this.panzoom){const{pageIndex:e}=this.getPageFromPosition();this.slideTo(e,t)}}slideNext(){this.slideTo(this.page+1)}slidePrev(){this.slideTo(this.page-1)}clearTransitions(){this.inTransition.clear(),P(this.container,this.cn("inTransition"));const t=["to-prev","to-next","from-prev","from-next"];for(const e of this.slides){const i=e.el;if(i){i.removeEventListener(K,this.onAnimationEnd),i.classList.remove(...t);const n=e.transition;n&&i.classList.remove(`f-${n}Out`,`f-${n}In`)}}this.manageSlideVisiblity()}addSlide(t,e){var i,n,s,o;const a=this.panzoom,r=(null===(i=this.pages[this.page])||void 0===i?void 0:i.pos)||0,l=(null===(n=this.pages[this.page])||void 0===n?void 0:n.dim)||0,c=this.contentDim<this.viewportDim;let h=Array.isArray(e)?e:[e];const d=[];for(const t of h)d.push(N(t));this.slides.splice(t,0,...d);for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;for(const t of d)this.emit("beforeInitSlide",t,t.index);if(this.page>=t&&(this.page+=d.length),this.updateMetrics(),a){const e=(null===(s=this.pages[this.page])||void 0===s?void 0:s.pos)||0,i=(null===(o=this.pages[this.page])||void 0===o?void 0:o.dim)||0,n=this.pages.length||1,h=this.isRTL?l-i:i-l,d=this.isRTL?r-e:e-r;c&&1===n?(t<=this.page&&(a.current[this.axis]-=h,a.target[this.axis]-=h),a.panTo({[this.isHorizontal?"x":"y"]:-1*e})):d&&t<=this.page&&(a.target[this.axis]-=d,a.current[this.axis]-=d,a.requestTick())}for(const t of d)this.emit("initSlide",t,t.index)}prependSlide(t){this.addSlide(0,t)}appendSlide(t){this.addSlide(this.slides.length,t)}removeSlide(t){const e=this.slides.length;t=(t%e+e)%e;const i=this.slides[t];if(i){this.removeSlideEl(i,!0),this.slides.splice(t,1);for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;this.updateMetrics(),this.slideTo(this.page,{friction:0,transition:!1}),this.emit("destroySlide",i)}}updateMetrics(){const{panzoom:t,viewport:i,track:n,slides:s,isHorizontal:o,isInfinite:a}=this;if(!n)return;const r=o?"width":"height",l=o?"offsetWidth":"offsetHeight";if(i){let t=Math.max(i[l],e(i.getBoundingClientRect()[r],1e3)),n=getComputedStyle(i),s="padding",a=o?"Right":"Bottom";t-=parseFloat(n[s+(o?"Left":"Top")])+parseFloat(n[s+a]),this.viewportDim=t}let c,h=0;for(const[t,i]of s.entries()){let n=0,o=0;!i.el&&c?(n=c.dim,o=c.gap):(({dim:n,gap:o}=this.getSlideMetrics(i)),c=i),n=e(n,1e3),o=e(o,1e3),i.dim=n,i.gap=o,i.pos=h,h+=n,(a||t<s.length-1)&&(h+=o)}h=e(h,1e3),this.contentDim=h,t&&(t.contentRect[r]=h,t.contentRect[o?"fullWidth":"fullHeight"]=h),this.pages=this.createPages(),this.pages=this.processPages(),this.state===H.Init&&this.setInitialPage(),this.page=Math.max(0,Math.min(this.page,this.pages.length-1)),this.manageSlideVisiblity(),this.emit("refresh")}getProgress(t,i=!1,n=!1){void 0===t&&(t=this.page);const s=this,o=s.panzoom,a=s.contentDim,r=s.pages[t]||0;if(!r||!o)return t>this.page?-1:1;let l=-1*o.current.e,c=e((l-r.pos)/(1*r.dim),1e3),h=c,d=c;this.isInfinite&&!0!==n&&(h=e((l-r.pos+a)/(1*r.dim),1e3),d=e((l-r.pos-a)/(1*r.dim),1e3));let u=[c,h,d].reduce((function(t,e){return Math.abs(e)<Math.abs(t)?e:t}));return i?u:u>1?1:u<-1?-1:u}setViewportHeight(){const{page:t,pages:e,viewport:i,isHorizontal:n}=this;if(!i||!e[t])return;let s=0;n&&this.track&&(this.track.style.height="auto",e[t].slides.forEach((t=>{t.el&&(s=Math.max(s,t.el.offsetHeight))}))),i.style.height=s?`${s}px`:""}getPageForSlide(t){for(const e of this.pages)for(const i of e.slides)if(i.index===t)return e.index;return-1}getVisibleSlides(t=0){var e;const i=new Set;let{panzoom:n,contentDim:s,viewportDim:o,pages:a,page:r}=this;if(o){s=s+(null===(e=this.slides[this.slides.length-1])||void 0===e?void 0:e.gap)||0;let l=0;l=n&&n.state!==v.Init&&n.state!==v.Destroy?-1*n.current[this.axis]:a[r]&&a[r].pos||0,this.isInfinite&&(l-=Math.floor(l/s)*s),this.isRTL&&this.isHorizontal&&(l*=-1);const c=l-o*t,h=l+o*(t+1),d=this.isInfinite?[-1,0,1]:[0];for(const t of this.slides)for(const e of d){const n=t.pos+e*s,o=n+t.dim+t.gap;n<h&&o>c&&i.add(t)}}return i}getPageFromPosition(t){const{viewportDim:e,contentDim:i,slides:n,pages:s,panzoom:o}=this,a=s.length,r=n.length,l=n[0],c=n[r-1],h=this.option("center");let d=0,u=0,p=0,f=void 0===t?-1*((null==o?void 0:o.target[this.axis])||0):t;h&&(f+=.5*e),this.isInfinite?(f<l.pos-.5*c.gap&&(f-=i,p=-1),f>c.pos+c.dim+.5*c.gap&&(f-=i,p=1)):f=Math.max(l.pos||0,Math.min(f,c.pos));let g=c,m=n.find((t=>{const e=t.pos-.5*g.gap,i=t.pos+t.dim+.5*t.gap;return g=t,f>=e&&f<i}));return m||(m=c),u=this.getPageForSlide(m.index),d=u+p*a,{page:d,pageIndex:u}}setPageFromPosition(){const{pageIndex:t}=this.getPageFromPosition();this.onChange(t)}destroy(){if([H.Destroy].includes(this.state))return;this.state=H.Destroy;const{container:t,viewport:e,track:i,slides:n,panzoom:s}=this,o=this.option("classes");t.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),t.removeEventListener("slideTo",this.onSlideTo),window.removeEventListener("resize",this.onResize),s&&(s.destroy(),this.panzoom=null),n&&n.forEach((t=>{this.removeSlideEl(t)})),this.detachPlugins(),e&&(e.removeEventListener("scroll",this.onScroll),e.offsetParent&&i&&i.offsetParent&&e.replaceWith(...i.childNodes));for(const[e,i]of Object.entries(o))"container"!==e&&i&&t.classList.remove(i);this.track=null,this.viewport=null,this.page=0,this.slides=[];const a=this.events.get("ready");this.events=new Map,a&&this.events.set("ready",a)}}Object.defineProperty(tt,"Panzoom",{enumerable:!0,configurable:!0,writable:!0,value:D}),Object.defineProperty(tt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:B}),Object.defineProperty(tt,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:G});const et=function(t){if(!S(t))return 0;const e=window.scrollY,i=window.innerHeight,n=e+i,s=t.getBoundingClientRect(),o=s.y+e,a=s.height,r=o+a;if(e>r||n<o)return 0;if(e<o&&n>r)return 100;if(o<e&&r>n)return 100;let l=a;o<e&&(l-=e-o),r>n&&(l-=r-n);const c=l/i*100;return Math.round(c)},it=!("undefined"==typeof window||!window.document||!window.document.createElement);let nt;const st=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not
35([tabindex^="-"]):not([disabled]):not([aria-hidden])'].join(","),ot=t=>{if(t&&it){void 0===nt&&document.createElement("div").focus({get preventScroll(){return nt=!0,!1}});try{if(nt)t.focus({preventScroll:!0});else{const e=window.scrollY||document.body.scrollTop,i=window.scrollX||document.body.scrollLeft;t.focus(),document.body.scrollTo({top:e,left:i,behavior:"auto"})}}catch(t){}}},at=()=>{const t=document;let e,i="",n="",s="";return t.fullscreenEnabled?(i="requestFullscreen",n="exitFullscreen",s="fullscreenElement"):t.webkitFullscreenEnabled&&(i="webkitRequestFullscreen",n="webkitExitFullscreen",s="webkitFullscreenElement"),i&&(e={request:function(e=t.documentElement){return"webkitRequestFullscreen"===i?e[i](Element.ALLOW_KEYBOARD_INPUT):e[i]()},exit:function(){return t[s]&&t[n]()},isFullscreen:function(){return t[s]}}),e},rt={animated:!0,autoFocus:!0,backdropClick:"close",Carousel:{classes:{container:"fancybox__carousel",viewport:"fancybox__viewport",track:"fancybox__track",slide:"fancybox__slide"}},closeButton:"auto",closeExisting:!1,commonCaption:!1,compact:()=>window.matchMedia("(max-width: 578px), (max-height: 578px)").matches,contentClick:"toggleZoom",contentDblClick:!1,defaultType:"image",defaultDisplay:"flex",dragToClose:!0,Fullscreen:{autoStart:!1},groupAll:!1,groupAttr:"data-fancybox",hideClass:"f-fadeOut",hideScrollbar:!0,idle:3500,keyboard:{Escape:"close",Delete:"close",Backspace:"close",PageUp:"next",PageDown:"prev",ArrowUp:"prev",ArrowDown:"next",ArrowRight:"next",ArrowLeft:"prev"},l10n:Object.assign(Object.assign({},y),{CLOSE:"Close",NEXT:"Next",PREV:"Previous",MODAL:"You can close this modal content with the ESC key",ERROR:"Something Went Wrong, Please Try Again Later",IMAGE_ERROR:"Image Not Found",ELEMENT_NOT_FOUND:"HTML Element Not Found",AJAX_NOT_FOUND:"Error Loading AJAX : Not Found",AJAX_FORBIDDEN:"Error Loading AJAX : Forbidden",IFRAME_ERROR:"Error Loading Page",TOGGLE_ZOOM:"Toggle zoom level",TOGGLE_THUMBS:"Toggle thumbnails",TOGGLE_SLIDESHOW:"Toggle slideshow",TOGGLE_FULLSCREEN:"Toggle full-screen mode",DOWNLOAD:"Download"}),parentEl:null,placeFocusBack:!0,showClass:"f-zoomInUp",startIndex:0,tpl:{closeButton:'<button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg></button>',main:'<div class="fancybox__container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n    <div class="fancybox__backdrop"></div>\n    <div class="fancybox__carousel"></div>\n    <div class="fancybox__footer"></div>\n  </div>'},trapFocus:!0,wheel:"zoom"};var lt,ct;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Closing=2]="Closing",t[t.CustomClosing=3]="CustomClosing",t[t.Destroy=4]="Destroy"}(lt||(lt={})),function(t){t[t.Loading=0]="Loading",t[t.Opening=1]="Opening",t[t.Ready=2]="Ready",t[t.Closing=3]="Closing"}(ct||(ct={}));let ht="",dt=!1,ut=!1,pt=null;const ft=()=>{let t="",e="";const i=Ae.getInstance();if(i){const n=i.carousel,s=i.getSlide();if(n&&s){let o=s.slug||void 0,a=s.triggerEl||void 0;e=o||(i.option("slug")||""),!e&&a&&a.dataset&&(e=a.dataset.fancybox||""),e&&"true"!==e&&(t="#"+e+(!o&&n.slides.length>1?"-"+(s.index+1):""))}}return{hash:t,slug:e,index:1}},gt=()=>{const t=new URL(document.URL).hash,e=t.slice(1).split("-"),i=e[e.length-1],n=i&&/^\+?\d+$/.test(i)&&parseInt(e.pop()||"1",10)||1;return{hash:t,slug:e.join("-"),index:n}},mt=()=>{const{slug:t,index:e}=gt();if(!t)return;let i=document.querySelector(`[data-slug="${t}"]`);if(i&&i.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})),Ae.getInstance())return;const n=document.querySelectorAll(`[data-fancybox="${t}"]`);n.length&&(i=n[e-1],i&&i.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})))},vt=()=>{if(!1===Ae.defaults.Hash)return;const t=Ae.getInstance();if(!1===(null==t?void 0:t.options.Hash))return;const{slug:e,index:i}=gt(),{slug:n}=ft();t&&(e===n?t.jumpTo(i-1):(dt=!0,t.close())),mt()},bt=()=>{pt&&clearTimeout(pt),queueMicrotask((()=>{vt()}))},yt=()=>{window.addEventListener("hashchange",bt,!1),setTimeout((()=>{vt()}),500)};it&&(/complete|interactive|loaded/.test(document.readyState)?yt():document.addEventListener("DOMContentLoaded",yt));const wt="is-zooming-in";class xt extends ${onCreateSlide(t,e,i){const n=this.instance.optionFor(i,"src")||"";i.el&&"image"===i.type&&"string"==typeof n&&this.setImage(i,n)}onRemoveSlide(t,e,i){i.panzoom&&i.panzoom.destroy(),i.panzoom=void 0,i.imageEl=void 0}onChange(t,e,i,n){P(this.instance.container,wt);for(const t of e.slides){const e=t.panzoom;e&&t.index!==i&&e.reset(.35)}}onClose(){var t;const e=this.instance,i=e.container,n=e.getSlide();if(!i||!i.parentElement||!n)return;const{el:s,contentEl:o,panzoom:a,thumbElSrc:r}=n;if(!s||!r||!o||!a||a.isContentLoading||a.state===v.Init||a.state===v.Destroy)return;a.updateMetrics();let l=this.getZoomInfo(n);if(!l)return;this.instance.state=lt.CustomClosing,i.classList.remove(wt),i.classList.add("is-zooming-out"),o.style.backgroundImage=`url('${r}')`;const c=i.getBoundingClientRect();
vendor: 4,252 bytes, line 35
351===((null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1)&&Object.assign(i.style,{position:"absolute",top:`${i.offsetTop+window.scrollY}px`,left:`${i.offsetLeft+window.scrollX}px`,bottom:"auto",right:"auto",width:`${c.width}px`,height:`${c.height}px`,overflow:"hidden"});const{x:h,y:d,scale:u,opacity:p}=l;if(p){const t=((t,e,i,n)=>{const s=e-t,o=n-i;return e=>i+((e-t)/s*o||0)})(a.scale,u,1,0);a.on("afterTransform",(()=>{o.style.opacity=t(a.scale)+""}))}a.on("endAnimation",(()=>{e.destroy()})),a.target.a=u,a.target.b=0,a.target.c=0,a.target.d=u,a.panTo({x:h,y:d,scale:u,friction:p?.2:.33,ignoreBounds:!0}),a.isResting&&e.destroy()}setImage(t,e){const i=this.instance;t.src=e,this.process(t,e).then((e=>{const{contentEl:n,imageEl:s,thumbElSrc:o,el:a}=t;if(i.isClosing()||!n||!s)return;n.offsetHeight;const r=!!i.isOpeningSlide(t)&&this.getZoomInfo(t);if(this.option("protected")&&a){a.addEventListener("contextmenu",(t=>{t.preventDefault()}));const t=document.createElement("div");C(t,"fancybox-protected"),n.appendChild(t)}if(o&&r){const s=e.contentRect,a=Math.max(s.fullWidth,s.fullHeight);let c=null;!r.opacity&&a>1200&&(c=document.createElement("img"),C(c,"fancybox-ghost"),c.src=o,n.appendChild(c));const h=()=>{c&&(C(c,"f-fadeFastOut"),setTimeout((()=>{c&&(c.remove(),c=null)}),200))};(l=o,new Promise(((t,e)=>{const i=new Image;i.onload=t,i.onerror=e,i.src=l}))).then((()=>{i.hideLoading(t),t.state=ct.Opening,this.instance.emit("reveal",t),this.zoomIn(t).then((()=>{h(),this.instance.done(t)}),(()=>{})),c&&setTimeout((()=>{h()}),a>2500?800:200)}),(()=>{i.hideLoading(t),i.revealContent(t)}))}else{const n=this.optionFor(t,"initialSize"),s=this.optionFor(t,"zoom"),o={event:i.prevMouseMoveEvent||i.options.event,friction:s?.12:0};let a=i.optionFor(t,"showClass")||void 0,r=!0;i.isOpeningSlide(t)&&("full"===n?e.zoomToFull(o):"cover"===n?e.zoomToCover(o):"max"===n?e.zoomToMax(o):r=!1,e.stop("current")),r&&a&&(a=e.isDragging?"f-fadeIn":""),i.hideLoading(t),i.revealContent(t,a)}var l}),(()=>{i.setError(t,"{{IMAGE_ERROR}}")}))}process(t,e){return new Promise(((i,n)=>{var o;const a=this.instance,r=t.el;a.clearContent(t),a.showLoading(t);let l=this.optionFor(t,"content");if("string"==typeof l&&(l=s(l)),!l||!S(l)){if(l=document.createElement("img"),l instanceof HTMLImageElement){let i="",n=t.caption;i="string"==typeof n&&n?n.replace(/<[^>]+>/gi,"").substring(0,1e3):`Image ${t.index+1} of ${(null===(o=a.carousel)||void 0===o?void 0:o.pages.length)||1}`,l.src=e||"",l.alt=i,l.draggable=!1,t.srcset&&l.setAttribute("srcset",t.srcset),this.instance.isOpeningSlide(t)&&(l.fetchPriority="high")}t.sizes&&l.setAttribute("sizes",t.sizes)}C(l,"fancybox-image"),t.imageEl=l,a.setContent(t,l,!1);t.panzoom=new D(r,p({transformParent:!0},this.option("Panzoom")||{},{content:l,width:(e,i)=>a.optionFor(t,"width","auto",i)||"auto",height:(e,i)=>a.optionFor(t,"height","auto",i)||"auto",wheel:()=>{const t=a.option("wheel");return("zoom"===t||"pan"==t)&&t},click:(e,i)=>{var n,s;if(a.isCompact||a.isClosing())return!1;if(t.index!==(null===(n=a.getSlide())||void 0===n?void 0:n.index))return!1;if(i){const t=i.composedPath()[0];if(["A","BUTTON","TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].includes(t.nodeName))return!1}let o=!i||i.target&&(null===(s=t.contentEl)||void 0===s?void 0:s.contains(i.target));return a.option(o?"contentClick":"backdropClick")||!1},dblClick:()=>a.isCompact?"toggleZoom":a.option("contentDblClick")||!1,spinner:!1,panOnlyZoomed:!0,wheelLimit:1/0,on:{ready:t=>{i(t)},error:()=>{n()},destroy:()=>{n()}}}))}))}zoomIn(t){return new Promise(((e,i)=>{const n=this.instance,s=n.container,{panzoom:o,contentEl:a,el:r}=t;o&&o.updateMetrics();const l=this.getZoomInfo(t);if(!(l&&r&&a&&o&&s))return void i();const{x:c,y:h,scale:d,opacity:u}=l,p=()=>{t.state!==ct.Closing&&(u&&(a.style.opacity=Math.max(Math.min(1,1-(1-o.scale)/(1-d)),0)+""),o.scale>=1&&o.scale>o.targetScale-.1&&e(o))},f=t=>{(t.scale<.99||t.scale>1.01)&&!t.isDragging||(P(s,wt),a.style.opacity="",t.off("endAnimation",f),t.off("touchStart",f),t.off("afterTransform",p),e(t))};o.on("endAnimation",f),o.on("touchStart",f),o.on("afterTransform",p),o.on(["error","destroy"],(()=>{i()})),o.panTo({x:c,y:h,scale:d,friction:0,ignoreBounds:!0}),o.stop("current");
vendor: 12,286 bytes, line 35
35const g={event:"mousemove"===o.panMode?n.prevMouseMoveEvent||n.options.event:void 0},m=this.optionFor(t,"initialSize");C(s,wt),n.hideLoading(t),"full"===m?o.zoomToFull(g):"cover"===m?o.zoomToCover(g):"max"===m?o.zoomToMax(g):o.reset(.172)}))}getZoomInfo(t){const{el:e,imageEl:i,thumbEl:n,panzoom:s}=t,o=this.instance,a=o.container;if(!e||!i||!n||!s||et(n)<3||!this.optionFor(t,"zoom")||!a||o.state===lt.Destroy)return!1;if("0"===getComputedStyle(a).getPropertyValue("--f-images-zoom"))return!1;const r=window.visualViewport||null;if(1!==(r?r.scale:1))return!1;let{top:l,left:c,width:h,height:d}=n.getBoundingClientRect(),{top:u,left:p,fitWidth:f,fitHeight:g}=s.contentRect;if(!(h&&d&&f&&g))return!1;const m=s.container.getBoundingClientRect();p+=m.left,u+=m.top;const v=-1*(p+.5*f-(c+.5*h)),b=-1*(u+.5*g-(l+.5*d)),y=h/f;let w=this.option("zoomOpacity")||!1;return"auto"===w&&(w=Math.abs(h/d-f/g)>.1),{x:v,y:b,scale:y,opacity:w}}attach(){const t=this,e=t.instance;e.on("Carousel.change",t.onChange),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.removeSlide",t.onRemoveSlide),e.on("close",t.onClose)}detach(){const t=this,e=t.instance;e.off("Carousel.change",t.onChange),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.removeSlide",t.onRemoveSlide),e.off("close",t.onClose)}}Object.defineProperty(xt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{initialSize:"fit",Panzoom:{maxScale:1},protected:!1,zoom:!0,zoomOpacity:"auto"}}),"function"==typeof SuppressedError&&SuppressedError;const Et="html",St="image",Pt="map",Ct="youtube",Tt="vimeo",Mt="html5video",Ot=(t,e={})=>{const i=new URL(t),n=new URLSearchParams(i.search),s=new URLSearchParams;for(const[t,i]of[...n,...Object.entries(e)]){let e=i+"";if("t"===t){let t=e.match(/((\d*)m)?(\d*)s?/);t&&s.set("start",60*parseInt(t[2]||"0")+parseInt(t[3]||"0")+"")}else s.set(t,e)}let o=s+"",a=t.match(/#t=((.*)?\d+s)/);return a&&(o+=`#t=${a[1]}`),o},At={ajax:null,autoSize:!0,iframeAttr:{allow:"autoplay; fullscreen",scrolling:"auto"},preload:!0,videoAutoplay:!0,videoRatio:16/9,videoTpl:'<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n  <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>',videoFormat:"",vimeo:{byline:1,color:"00adef",controls:1,dnt:1,muted:0},youtube:{controls:1,enablejsapi:1,nocookie:1,rel:0,fs:1}},Lt=["image","html","ajax","inline","clone","iframe","map","pdf","html5video","youtube","vimeo"];class zt extends ${onBeforeInitSlide(t,e,i){this.processType(i)}onCreateSlide(t,e,i){this.setContent(i)}onClearContent(t,e){e.xhr&&(e.xhr.abort(),e.xhr=null);const i=e.iframeEl;i&&(i.onload=i.onerror=null,i.src="//about:blank",e.iframeEl=null);const n=e.contentEl,s=e.placeholderEl;if("inline"===e.type&&n&&s)n.classList.remove("fancybox__content"),"none"!==getComputedStyle(n).getPropertyValue("display")&&(n.style.display="none"),setTimeout((()=>{s&&(n&&s.parentNode&&s.parentNode.insertBefore(n,s),s.remove())}),0),e.contentEl=void 0,e.placeholderEl=void 0;else for(;e.el&&e.el.firstChild;)e.el.removeChild(e.el.firstChild)}onSelectSlide(t,e,i){i.state===ct.Ready&&this.playVideo()}onUnselectSlide(t,e,i){var n,s;if(i.type===Mt){try{null===(s=null===(n=i.el)||void 0===n?void 0:n.querySelector("video"))||void 0===s||s.pause()}catch(t){}return}let o;i.type===Tt?o={method:"pause",value:"true"}:i.type===Ct&&(o={event:"command",func:"pauseVideo"}),o&&i.iframeEl&&i.iframeEl.contentWindow&&i.iframeEl.contentWindow.postMessage(JSON.stringify(o),"*"),i.poller&&clearTimeout(i.poller)}onDone(t,e){t.isCurrentSlide(e)&&!t.isClosing()&&this.playVideo()}onRefresh(t,e){e.slides.forEach((t=>{t.el&&(this.resizeIframe(t),this.setAspectRatio(t))}))}onMessage(t){try{let e=JSON.parse(t.data);if("https://player.vimeo.com"===t.origin){if("ready"===e.event)for(let e of Array.from(document.getElementsByClassName("fancybox__iframe")))e instanceof HTMLIFrameElement&&e.contentWindow===t.source&&(e.dataset.ready="true")}else if(t.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/)&&"onReady"===e.event){const t=document.getElementById(e.id);t&&(t.dataset.ready="true")}}catch(t){}}loadAjaxContent(t){const e=this.instance.optionFor(t,"src")||"";this.instance.showLoading(t);const i=this.instance,n=new XMLHttpRequest;i.showLoading(t),n.onreadystatechange=function(){n.readyState===XMLHttpRequest.DONE&&i.state===lt.Ready&&(i.hideLoading(t),200===n.status?i.setContent(t,n.responseText):i.setError(t,404===n.status?"{{AJAX_NOT_FOUND}}":"{{AJAX_FORBIDDEN}}"))};const s=t.ajax||null;n.open(s?"POST":"GET",e+""),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(s),t.xhr=n}setInlineContent(t){let e=null;if(S(t.src))e=t.src;else if("string"==typeof t.src){const i=t.src.split("#",2).pop();e=i?document.getElementById(i):null}if(e){if("clone"===t.type||e.closest(".fancybox__slide")){e=e.cloneNode(!0);const i=e.dataset.animationName;i&&(e.classList.remove(i),delete e.dataset.animationName);let n=e.getAttribute("id");n=n?`${n}--clone`:`clone-${this.instance.id}-${t.index}`,e.setAttribute("id",n)}else if(e.parentNode){const i=document.createElement("div");i.classList.add("fancybox-placeholder"),e.parentNode.insertBefore(i,e),t.placeholderEl=i}this.instance.setContent(t,e)}else this.instance.setError(t,"{{ELEMENT_NOT_FOUND}}")}setIframeContent(t){const{src:e,el:i}=t;if(!e||"string"!=typeof e||!i)return;i.classList.add("is-loading");const n=this.instance,s=document.createElement("iframe");s.className="fancybox__iframe",s.setAttribute("id",`fancybox__iframe_${n.id}_${t.index}`);for(const[e,i]of Object.entries(this.optionFor(t,"iframeAttr")||{}))s.setAttribute(e,i);s.onerror=()=>{n.setError(t,"{{IFRAME_ERROR}}")},t.iframeEl=s;const o=this.optionFor(t,"preload");if("iframe"!==t.type||!1===o)return s.setAttribute("src",t.src+""),n.setContent(t,s,!1),this.resizeIframe(t),void n.revealContent(t);n.showLoading(t),s.onload=()=>{if(!s.src.length)return;const e="true"!==s.dataset.ready;s.dataset.ready="true",this.resizeIframe(t),e?n.revealContent(t):n.hideLoading(t)},s.setAttribute("src",e),n.setContent(t,s,!1)}resizeIframe(t){const{type:e,iframeEl:i}=t;if(e===Ct||e===Tt)return;const n=null==i?void 0:i.parentElement;if(!i||!n)return;let s=t.autoSize;void 0===s&&(s=this.optionFor(t,"autoSize"));let o=t.width||0,a=t.height||0;o&&a&&(s=!1);const r=n&&n.style;if(!1!==t.preload&&!1!==s&&r)try{const t=window.getComputedStyle(n),e=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),s=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),l=i.contentWindow;if(l){const t=l.document,i=t.getElementsByTagName(Et)[0],n=t.body;r.width="",n.style.overflow="hidden",o=o||i.scrollWidth+e,r.width=`${o}px`,n.style.overflow="",r.flex="0 0 auto",r.height=`${n.scrollHeight}px`,a=i.scrollHeight+s}}catch(t){}if(o||a){const t={flex:"0 1 auto",width:"",height:""};o&&"auto"!==o&&(t.width=`${o}px`),a&&"auto"!==a&&(t.height=`${a}px`),Object.assign(r,t)}}playVideo(){const t=this.instance.getSlide();if(!t)return;const{el:e}=t;if(!e||!e.offsetParent)return;if(!this.optionFor(t,"videoAutoplay"))return;if(t.type===Mt)try{const t=e.querySelector("video");if(t){const e=t.play();void 0!==e&&e.then((()=>{})).catch((e=>{t.muted=!0,t.play()}))}}catch(t){}if(t.type!==Ct&&t.type!==Tt)return;const i=()=>{if(t.iframeEl&&t.iframeEl.contentWindow){let e;if("true"===t.iframeEl.dataset.ready)return e=t.type===Ct?{event:"command",func:"playVideo"}:{method:"play",value:"true"},e&&t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"),void(t.poller=void 0);t.type===Ct&&(e={event:"listening",id:t.iframeEl.getAttribute("id")},t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"))}t.poller=setTimeout(i,250)};i()}processType(t){if(t.html)return t.type=Et,t.src=t.html,void(t.html="");const e=this.instance.optionFor(t,"src","");if(!e||"string"!=typeof e)return;let i=t.type,n=null;if(n=e.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i)){const s=this.optionFor(t,Ct),{nocookie:o}=s,a=function(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(t);s<n.length;s++)e.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(t,n[s])&&(i[n[s]]=t[n[s]])}return i}(s,["nocookie"]),r=`www.youtube${o?"-nocookie":""}.com`,l=Ot(e,a),c=encodeURIComponent(n[2]);t.videoId=c,t.src=`https://${r}/embed/${c}?${l}`,t.thumbSrc=t.thumbSrc||`https://i.ytimg.com/vi/${c}/mqdefault.jpg`,i=Ct}else if(n=e.match(/^.+vimeo.com\/(?:\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/)){const s=Ot(e,this.optionFor(t,Tt)),o=encodeURIComponent(n[1]),a=n[4]||"";t.videoId=o,t.src=`https://player.vimeo.com/video/${o}?${a?`h=${a}${s?"&":""}`:""}${s}`,i=Tt}if(!i&&t.triggerEl){const e=t.triggerEl.dataset.type;Lt.includes(e)&&(i=e)}i||"string"==typeof e&&("#"===e.charAt(0)?i="inline":(n=e.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(i=Mt,t.videoFormat=t.videoFormat||"video/"+("ogv"===n[1]?"ogg":n[1])):e.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?i=St:e.match(/\.(pdf)((\?|#).*)?$/i)&&(i="pdf")),(n=e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i))?(t.src=`https://maps.google.${n[1]}/?ll=${(n[2]?n[2]+"&z="+Math.floor(parseFloat(n[3]))+(n[4]?n[4].replace(/^\//,"&"):""):n[4]+"").replace(/\?/,"&")}&output=${n[4]&&n[4].indexOf("layer=c")>0?"svembed":"embed"}`,i=Pt):(n=e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i))&&(t.src=`https://maps.google.${n[1]}/maps?q=${n[2].replace("query=","q=").replace("api=1","")}&output=embed`,i=Pt),i=i||this.instance.option("defaultType"),t.type=i,i===St&&(t.thumbSrc=t.thumbSrc||t.src)}setContent(t){const e=this.instance.optionFor(t,"src")||"";if(t&&t.type&&e){switch(t.type){case Et:this.instance.setContent(t,e);break;case Mt:const i=this.option("videoTpl");i&&this.instance.setContent(t,i.replace(/\{\{src\}\}/gi,e+"").replace(/\{\{format\}\}/gi,this.optionFor(t,"videoFormat")||"").replace(/\{\{poster\}\}/gi,t.poster||t.thumbSrc||""));break;case"inline":case"clone":this.setInlineContent(t);break;case"ajax":this.loadAjaxContent(t);break;case"pdf":case Pt:case Ct:case Tt:t.preload=!1;case"iframe":this.setIframeContent(t)}this.setAspectRatio(t)}}setAspectRatio(t){const e=t.contentEl;if(!(t.el&&e&&t.type&&[Ct,Tt,Mt].includes(t.type)))return;let i,n=t.width||"auto",s=t.height||"auto";if("auto"===n||"auto"===s){i=this.optionFor(t,"videoRatio");const e=(i+"").match(/(\d+)\s*\/\s?(\d+)/);i=e&&e.length>2?parseFloat(e[1])/parseFloat(e[2]):parseFloat(i+"")}else n&&s&&(i=n/s);if(!i)return;e.style.aspectRatio="",e.style.width="",e.style.height="",e.offsetHeight;const o=e.getBoundingClientRect(),a=o.width||1,r=o.height||1;e.style.aspectRatio=i+"",i<a/r?(s="auto"===s?r:Math.min(r,s),e.style.width="auto",e.style.height=`${s}px`):(n="auto"===n?a:Math.min(a,n),e.style.width=`${n}px`,e.style.height="auto")}attach(){const t=this,e=t.instance;e.on("Carousel.beforeInitSlide",t.onBeforeInitSlide),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.selectSlide",t.onSelectSlide),e.on("Carousel.unselectSlide",t.onUnselectSlide),e.on("Carousel.Panzoom.refresh",t.onRefresh),e.on("done",t.onDone),e.on("clearContent",t.onClearContent),window.addEventListener("message",t.onMessage)}detach(){const t=this,e=t.instance;e.off("Carousel.beforeInitSlide",t.onBeforeInitSlide),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.selectSlide",t.onSelectSlide),e.off("Carousel.unselectSlide",t.onUnselectSlide),e.off("Carousel.Panzoom.refresh",t.onRefresh),e.off("done",t.onDone),e.off("clearContent",t.onClearContent),window.removeEventListener("message",t.onMessage)}}Object.defineProperty(zt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:At});const Rt="play",kt="pause",It="ready";class Dt extends ${constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:
vendor: 4,793 bytes, line 35
35It}),Object.defineProperty(this,"inHover",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"timer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"progressBar",{enumerable:!0,configurable:!0,writable:!0,value:null})}get isActive(){return this.state!==It}onReady(t){this.option("autoStart")&&(t.isInfinite||t.page<t.pages.length-1)&&this.start()}onChange(){this.removeProgressBar(),this.pause()}onSettle(){this.resume()}onVisibilityChange(){"visible"===document.visibilityState?this.resume():this.pause()}onMouseEnter(){this.inHover=!0,this.pause()}onMouseLeave(){var t;this.inHover=!1,(null===(t=this.instance.panzoom)||void 0===t?void 0:t.isResting)&&this.resume()}onTimerEnd(){const t=this.instance;"play"===this.state&&(t.isInfinite||t.page!==t.pages.length-1?t.slideNext():t.slideTo(0))}removeProgressBar(){this.progressBar&&(this.progressBar.remove(),this.progressBar=null)}createProgressBar(){var t;if(!this.option("showProgress"))return null;this.removeProgressBar();const e=this.instance,i=(null===(t=e.pages[e.page])||void 0===t?void 0:t.slides)||[];let n=this.option("progressParentEl");if(n||(n=(1===i.length?i[0].el:null)||e.viewport),!n)return null;const s=document.createElement("div");return C(s,"f-progress"),n.prepend(s),this.progressBar=s,s.offsetHeight,s}set(){const t=this,e=t.instance;if(e.pages.length<2)return;if(t.timer)return;const i=t.option("timeout");t.state=Rt,C(e.container,"has-autoplay");let n=t.createProgressBar();n&&(n.style.transitionDuration=`${i}ms`,n.style.transform="scaleX(1)"),t.timer=setTimeout((()=>{t.timer=null,t.inHover||t.onTimerEnd()}),i),t.emit("set")}clear(){const t=this;t.timer&&(clearTimeout(t.timer),t.timer=null),t.removeProgressBar()}start(){const t=this;if(t.set(),t.state!==It){if(t.option("pauseOnHover")){const e=t.instance.container;e.addEventListener("mouseenter",t.onMouseEnter,!1),e.addEventListener("mouseleave",t.onMouseLeave,!1)}document.addEventListener("visibilitychange",t.onVisibilityChange,!1),t.emit("start")}}stop(){const t=this,e=t.state,i=t.instance.container;t.clear(),t.state=It,i.removeEventListener("mouseenter",t.onMouseEnter,!1),i.removeEventListener("mouseleave",t.onMouseLeave,!1),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),P(i,"has-autoplay"),e!==It&&t.emit("stop")}pause(){const t=this;t.state===Rt&&(t.state=kt,t.clear(),t.emit(kt))}resume(){const t=this,e=t.instance;if(e.isInfinite||e.page!==e.pages.length-1)if(t.state!==Rt){if(t.state===kt&&!t.inHover){const e=new Event("resume",{bubbles:!0,cancelable:!0});t.emit("resume",e),e.defaultPrevented||t.set()}}else t.set();else t.stop()}toggle(){this.state===Rt||this.state===kt?this.stop():this.start()}attach(){const t=this,e=t.instance;e.on("ready",t.onReady),e.on("Panzoom.startAnimation",t.onChange),e.on("Panzoom.endAnimation",t.onSettle),e.on("Panzoom.touchMove",t.onChange)}detach(){const t=this,e=t.instance;e.off("ready",t.onReady),e.off("Panzoom.startAnimation",t.onChange),e.off("Panzoom.endAnimation",t.onSettle),e.off("Panzoom.touchMove",t.onChange),t.stop()}}Object.defineProperty(Dt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{autoStart:!0,pauseOnHover:!0,progressParentEl:null,showProgress:!0,timeout:3e3}});class Ft extends ${constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null})}onPrepare(t){const e=t.carousel;if(!e)return;const i=t.container;i&&(e.options.Autoplay=p({autoStart:!1},this.option("Autoplay")||{},{pauseOnHover:!1,timeout:this.option("timeout"),progressParentEl:()=>this.option("progressParentEl")||null,on:{start:()=>{t.emit("startSlideshow")},set:e=>{var n;i.classList.add("has-slideshow"),(null===(n=t.getSlide())||void 0===n?void 0:n.state)!==ct.Ready&&e.pause()},stop:()=>{i.classList.remove("has-slideshow"),t.isCompact||t.endIdle(),t.emit("endSlideshow")},resume:(e,i)=>{var n,s,o;!i||!i.cancelable||(null===(n=t.getSlide())||void 0===n?void 0:n.state)===ct.Ready&&(null===(o=null===(s=t.carousel)||void 0===s?void 0:s.panzoom)||void 0===o?void 0:o.isResting)||i.preventDefault()}}}),e.attachPlugins({Autoplay:Dt}),this.ref=e.plugins.Autoplay)}onReady(t){const e=t.carousel,i=this.ref;i&&e&&this.option("playOnStart")&&(e.isInfinite||e.page<e.pages.length-1)&&i.start()}onDone(t,e){const i=this.ref,n=t.carousel;if(!i||!n)return;const s=e.panzoom;s&&s.on("startAnimation",(()=>{t.isCurrentSlide(e)&&i.stop()})),t.isCurrentSlide(e)&&i.resume()}onKeydown(t,e){var i;const n=this.ref;n&&e===this.option("key")&&"BUTTON"!==(null===(i=document.activeElement)||void 0===i?void 0:i.nodeName)&&n.toggle()}attach(){const t=this,e=t.instance;e.on("Carousel.init",t.onPrepare),e.on("Carousel.ready",t.onReady),e.on("done",t.onDone),e.on("key
35down",t.onKeydown)}detach(){const t=this,e=t.instance;e.off("Carousel.init",t.onPrepare),e.off("Carousel.ready",t.onReady),e.off("done",t.onDone),e.off("keydown",t.onKeydown)}}Object.defineProperty(Ft,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{key:" ",playOnStart:!1,progressParentEl:t=>{var e;return(null===(e=t.instance.container)||void 0===e?void 0:e.querySelector(".fancybox__toolbar [data-fancybox-toggle-slideshow]"))||t.instance.container},timeout:3e3}});const jt={classes:{container:"f-thumbs f-carousel__thumbs",viewport:"f-thumbs__viewport",track:"f-thumbs__track",slide:"f-thumbs__slide",isResting:"is-resting",isSelected:"is-selected",isLoading:"is-loading",hasThumbs:"has-thumbs"},minCount:2,parentEl:null,thumbTpl:'<button class="f-thumbs__slide__button" tabindex="0" type="button" aria-label="{{GOTO}}" data-carousel-index="%i"><img class="f-thumbs__slide__img" data-lazy-src="{{%s}}" alt="" /></button>',type:"modern"};var Bt;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Hidden=2]="Hidden"}(Bt||(Bt={}));const Ht="isResting",Nt="thumbWidth",_t="thumbHeight",$t="thumbClipWidth";let Wt=class extends ${constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"modern"}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"thumbWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbClipWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbExtraGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:Bt.Init})}get isModern(){return"modern"===this.type}onInitSlide(t,e){const i=e.el?e.el.dataset:void 0;i&&(e.thumbSrc=i.thumbSrc||e.thumbSrc||"",e[$t]=parseFloat(i[$t]||"")||e[$t]||0,e[_t]=parseFloat(i.thumbHeight||"")||e[_t]||0),this.addSlide(e)}onInitSlides(){this.build()}onChange(){var t;if(!this.isModern)return;const e=this.container,i=this.instance,n=i.panzoom,s=this.carousel,o=s?s.panzoom:null,r=i.page;if(n&&s&&o){if(n.isDragging){P(e,this.cn(Ht));let n=(null===(t=s.pages[r])||void 0===t?void 0:t.pos)||0;n+=i.getProgress(r)*(this[$t]+this.thumbGap);let a=o.getBounds();-1*n>a.x.min&&-1*n<a.x.max&&o.panTo({x:-1*n,friction:.12})}else a(e,this.cn(Ht),n.isResting);this.shiftModern()}}onRefresh(){this.updateProps();for(const t of this.instance.slides||[])this.resizeModernSlide(t);this.shiftModern()}isDisabled(){const t=this.option("minCount")||0;if(t){const e=this.instance;let i=0;for(const t of e.slides||[])t.thumbSrc&&i++;if(i<t)return!0}const e=this.option("type");return["modern","classic"].indexOf(e)<0}getThumb(t){const e=this.option("thumbTpl")||"";return{html:this.instance.localize(e,[["%i",t.index],["%d",t.index+1],["%s",t.thumbSrc||"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"]])}}addSlide(t){const e=this.carousel;e&&e.addSlide(t.index,this.getThumb(t))}getSlides(){const t=[];for(const e of this.instance.slides||[])t.push(this.getThumb(e));return t}resizeModernSlide(t){this.isModern&&(t[Nt]=t[$t]&&t[_t]?Math.round(this[_t]*(t[$t]/t[_t])):this[Nt])}updateProps(){const t=this.container;if(!t)return;const e=e=>parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-"+e))||0;this.thumbGap=e("gap"),this.thumbExtraGap=e("extra-gap"),this[Nt]=e("width")||40,this[$t]=e("clip-width")||40,this[_t]=e("height")||40}build(){const t=this;if(t.state!==Bt.Init)return;if(t.isDisabled())return void t.emit("disabled");const e=t.instance,i=e.container,n=t.getSlides(),s=t.option("type");t.type=s;const o=t.option("parentEl"),a=t.cn("container"),r=t.cn("track");let l=null==o?void 0:o.querySelector("."+a);l||(l=document.createElement("div"),C(l,a),o?o.appendChild(l):i.after(l)),C(l,`is-${s}`),C(i,t.cn("hasThumbs")),t.container=l,t.updateProps();let c=l.querySelector("."+r);c||(c=document.createElement("div"),C(c,t.cn("track")),l.appendChild(c)),t.track=c;const h=p({},{track:c,infinite:!1,center:!0,fill:"classic"===s,dragFree:!0,slidesPerPage:1,transition:!1,preload:.25,friction:.12,Panzoom:{maxVelocity:0},Dots:!1,Navigation:!1,classes:{container:"f-thumbs",viewport:"f-thumbs__viewport",track:"f-thumbs__track",slide:"f-thumbs__slide"}},t.option("Carousel")||{},{Sync:{target:e},slides:n}),d=new e.constructor(l,h);d.on("createSlide",((e,i)=>{t.setProps(i.index),t.emit("createSlide",i,i.el)})),d.on("ready",(()=>{t.shiftModern(),t.emit("ready")})),d.on("refresh",(()=>{t.shiftModern()})),d.on("Panzoom.click",((e,i,n)=>{t.onClick(n)})),t.carousel=d,t.state=Bt.Ready}onClick(t){t.preventDefault(),t.stopPropagation();const e=this.instance,{pages:i,page:n}=e,s=t=>{if(t){const e=t.closest("[data-carousel-index]");if(e)return[parseInt(e.dataset.carouselIndex||"",10)||0,e]}return[-1,void 0]},o=(t,e)=>{const i=document.elementFromPoint(t,e);return i?s(i):[-1,void 0]};let[a,r]=s(t.target);if(a>-1)return;const l=this[$t],c=t.clientX,h=t.clientY;let[d,u]=o(c-l,h),[p,f]=o(c+l,h);u&&f?(a=Math.abs(c-u.getBoundingClientRect().right)<Math.abs(c-f.getBoundingClientRect().left)?d:
vendor: 4,266 bytes, line 35
35p,a===n&&(a=a===d?p:d)):u?a=d:f&&(a=p),a>-1&&i[a]&&e.slideTo(a)}getShift(t){var e;const i=this,{instance:n}=i,s=i.carousel;if(!n||!s)return 0;const o=i[Nt],a=i[$t],r=i.thumbGap,l=i.thumbExtraGap;if(!(null===(e=s.slides[t])||void 0===e?void 0:e.el))return 0;const c=.5*(o-a),h=n.pages.length-1;let d=n.getProgress(0),u=n.getProgress(h),p=n.getProgress(t,!1,!0),f=0,g=c+l+r;const m=d<0&&d>-1,v=u>0&&u<1;return 0===t?(f=g*Math.abs(d),v&&1===d&&(f-=g*Math.abs(u))):t===h?(f=g*Math.abs(u)*-1,m&&-1===u&&(f+=g*Math.abs(d))):m||v?(f=-1*g,f+=g*Math.abs(d),f+=g*(1-Math.abs(u))):f=g*p,f}setProps(t){var i;const n=this;if(!n.isModern)return;const{instance:s}=n,o=n.carousel;if(s&&o){const a=null===(i=o.slides[t])||void 0===i?void 0:i.el;if(a&&a.childNodes.length){let i=e(1-Math.abs(s.getProgress(t))),o=e(n.getShift(t));a.style.setProperty("--progress",i?i+"":""),a.style.setProperty("--shift",o+"")}}}shiftModern(){const t=this;if(!t.isModern)return;const{instance:e,track:i}=t,n=e.panzoom,s=t.carousel;if(!(e&&i&&n&&s))return;if(n.state===v.Init||n.state===v.Destroy)return;for(const i of e.slides)t.setProps(i.index);let o=(t[$t]+t.thumbGap)*(s.slides.length||0);i.style.setProperty("--width",o+"")}cleanup(){const t=this;t.carousel&&t.carousel.destroy(),t.carousel=null,t.container&&t.container.remove(),t.container=null,t.track&&t.track.remove(),t.track=null,t.state=Bt.Init,P(t.instance.container,t.cn("hasThumbs"))}attach(){const t=this,e=t.instance;e.on("initSlide",t.onInitSlide),e.state===H.Init?e.on("initSlides",t.onInitSlides):t.onInitSlides(),e.on(["change","Panzoom.afterTransform"],t.onChange),e.on("Panzoom.refresh",t.onRefresh)}detach(){const t=this,e=t.instance;e.off("initSlide",t.onInitSlide),e.off("initSlides",t.onInitSlides),e.off(["change","Panzoom.afterTransform"],t.onChange),e.off("Panzoom.refresh",t.onRefresh),t.cleanup()}};Object.defineProperty(Wt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:jt});const Xt=Object.assign(Object.assign({},jt),{key:"t",showOnStart:!0,parentEl:null}),qt="is-masked",Yt="aria-hidden";class Vt extends ${constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"hidden",{enumerable:!0,configurable:!0,writable:!0,value:!1})}get isEnabled(){const t=this.ref;return t&&!t.isDisabled()}get isHidden(){return this.hidden}onClick(t,e){e.stopPropagation()}onCreateSlide(t,e){var i,n,s;const o=(null===(s=null===(n=null===(i=this.instance)||void 0===i?void 0:i.carousel)||void 0===n?void 0:n.slides[e.index])||void 0===s?void 0:s.type)||"",a=e.el;if(a&&o){let t=`for-${o}`;["video","youtube","vimeo","html5video"].includes(o)&&(t+=" for-video"),C(a,t)}}onInit(){var t;const e=this,i=e.instance,n=i.carousel;if(e.ref||!n)return;const s=e.option("parentEl")||i.footer||i.container;if(!s)return;const o=p({},e.options,{parentEl:s,classes:{container:"f-thumbs fancybox__thumbs"},Carousel:{Sync:{friction:i.option("Carousel.friction")||0}},on:{ready:t=>{const i=t.container;i&&this.hidden&&(e.refresh(),i.style.transition="none",e.hide(),i.offsetHeight,queueMicrotask((()=>{i.style.transition="",e.show()})))}}});o.Carousel=o.Carousel||{},o.Carousel.on=p((null===(t=e.options.Carousel)||void 0===t?void 0:t.on)||{},{click:this.onClick,createSlide:this.onCreateSlide}),n.options.Thumbs=o,n.attachPlugins({Thumbs:Wt}),e.ref=n.plugins.Thumbs,e.option("showOnStart")||(e.ref.state=Bt.Hidden,e.hidden=!0)}onResize(){var t;const e=null===(t=this.ref)||void 0===t?void 0:t.container;e&&(e.style.maxHeight="")}onKeydown(t,e){const i=this.option("key");i&&i===e&&this.toggle()}toggle(){const t=this.ref;if(t&&!t.isDisabled())return t.state===Bt.Hidden?(t.state=Bt.Init,void t.build()):void(this.hidden?this.show():this.hide())}show(){const t=this.ref;if(!t||t.isDisabled())return;const e=t.container;e&&(this.refresh(),e.offsetHeight,e.removeAttribute(Yt),e.classList.remove(qt),this.hidden=!1)}hide(){const t=this.ref,e=t&&t.container;e&&(this.refresh(),e.offsetHeight,e.classList.add(qt),e.setAttribute(Yt,"true")),this.hidden=!0}refresh(){const t=this.ref;if(!t||!t.state)return;const e=t.container,i=(null==e?void 0:e.firstChild)||null;e&&i&&i.childNodes.length&&(e.style.maxHeight=`${i.getBoundingClientRect().height}px`)}
vendor: 6,220 bytes, line 35
35attach(){const t=this,e=t.instance;e.state===lt.Init?e.on("Carousel.init",t.onInit):t.onInit(),e.on("resize",t.onResize),e.on("keydown",t.onKeydown)}detach(){var t;const e=this,i=e.instance;i.off("Carousel.init",e.onInit),i.off("resize",e.onResize),i.off("keydown",e.onKeydown),null===(t=i.carousel)||void 0===t||t.detachPlugins(["Thumbs"]),e.ref=null}}Object.defineProperty(Vt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:Xt});const Zt={panLeft:{icon:'<svg><path d="M5 12h14M5 12l6 6M5 12l6-6"/></svg>',change:{panX:-100}},panRight:{icon:'<svg><path d="M5 12h14M13 18l6-6M13 6l6 6"/></svg>',change:{panX:100}},panUp:{icon:'<svg><path d="M12 5v14M18 11l-6-6M6 11l6-6"/></svg>',change:{panY:-100}},panDown:{icon:'<svg><path d="M12 5v14M18 13l-6 6M6 13l6 6"/></svg>',change:{panY:100}},zoomIn:{icon:'<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M11 8v6M8 11h6"/></svg>',action:"zoomIn"},zoomOut:{icon:'<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"zoomOut"},toggle1to1:{icon:'<svg><path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/></svg>',action:"toggleZoom"},toggleZoom:{icon:'<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"toggleZoom"},iterateZoom:{icon:'<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"iterateZoom"},rotateCCW:{icon:'<svg><path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/></svg>',action:"rotateCCW"},rotateCW:{icon:'<svg><path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/></svg>',action:"rotateCW"},flipX:{icon:'<svg style="stroke-width: 1.3"><path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/></svg>',action:"flipX"},flipY:{icon:'<svg style="stroke-width: 1.3"><path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/></svg>',action:"flipY"},fitX:{icon:'<svg><path d="M4 12V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v6M10 18H3M21 18h-7M6 15l-3 3 3 3M18 15l3 3-3 3"/></svg>',action:"fitX"},fitY:{icon:'<svg><path d="M12 20H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6M18 14v7M18 3v7M15 18l3 3 3-3M15 6l3-3 3 3"/></svg>',action:"fitY"},reset:{icon:'<svg><path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/></svg>',action:"reset"},toggleFS:{icon:'<svg><g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g></svg>',action:"toggleFS"}};var Ut;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Disabled=2]="Disabled"}(Ut||(Ut={}));const Gt={absolute:"auto",display:{left:["infobar"],middle:[],right:["iterateZoom","slideshow","fullscreen","thumbs","close"]},enabled:"auto",items:{infobar:{tpl:'<div class="fancybox__infobar" tabindex="-1"><span data-fancybox-current-index></span>/<span data-fancybox-count></span></div>'},download:{tpl:'<a class="f-button" title="{{DOWNLOAD}}" data-fancybox-download href="javasript:;"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></a>'},prev:{tpl:'<button class="f-button" title="{{PREV}}" data-fancybox-prev><svg><path d="m15 6-6 6 6 6"/></svg></button>'},next:{tpl:'<button class="f-button" title="{{NEXT}}" data-fancybox-next><svg><path d="m9 6 6 6-6 6"/></svg></button>'},slideshow:{tpl:'<button class="f-button" title="{{TOGGLE_SLIDESHOW}}" data-fancybox-toggle-slideshow><svg><g><path d="M8 4v16l13 -8z"></path></g><g><path d="M8 4v15M17 4v15"/></g></svg></button>'},fullscreen:{tpl:'<button class="f-button" title="{{TOGGLE_FULLSCREEN}}" data-fancybox-toggle-fullscreen><svg><g><path d="M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2M16 4h2a2 2 0 0 1 2 2v2M16 20h2a2 2 0 0 0 2-2v-2"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>'},thumbs:{tpl:'<button class="f-button" title="{{TOGGLE_THUMBS}}" data-fancybox-toggle-thumbs><svg><circle cx="5.5" cy="5.5" r="1"/><circle cx="12" cy="5.5" r="1"/><circle cx="18.5" cy="5.5" r="1"/><circle cx="5.5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="18.5" cy="12" r="1"/><circle cx="5.5" cy="18.5" r="1"/><circle cx="12" cy="18.5" r="1"/><circle cx="18.5" cy="18.5" r="1"/></svg></button>'},close:{tpl:'<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg><path d="m19.5 4.5-15 15M4.5 4.5l15 15"/></svg></button>'}},parentEl:null},Kt={tabindex:"-1",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Jt="has-toolbar",Qt="fancybox__toolbar";class te extends ${constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:Ut.Init}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null})}onReady(t){var e;if(!t.carousel)return;let i=this.option("display"),n=this.option("absolute"),s=this.option("enabled");if("auto"===s){const t=this.instance.carousel;let e=0;if(t)for(const i of t.slides)(i.panzoom||"image"===i.type)&&e++;e||(s=!1)}s||(i=void 0);let o=0;const a={left:[],middle:[],right:[]};if(i)for(const t of["left","middle","right"])for(const n of i[t]){const i=this.createEl(n);i&&(null===(e=a[t])||void 0===e||e.push(i),o++)}let r=null;if(o&&(r=this.createContainer()),r){for(const[t,e]of Object.entries(a)){const i=document.createElement("div");C(i,Qt+"__column is-"+t);for(const t of e)i.appendChild(t);"auto"!==n||"middle"!==t||e.length||(n=!0),r.appendChild(i)}!0===n&&C(r,"is-absolute"),this.state=Ut.Ready,this.onRefresh()}else this.state=Ut.Disabled}onClick(t){var e,i;const n=this.instance,s=n.getSlide(),o=null==s?void 0:s.panzoom,a=t.target,r=a&&S(a)?a.dataset:null;if(!r)return;if(void 0!==r.fancyboxToggleThumbs)return t.preventDefault(),t.stopPropagation(),void(null===(e=n.plugins.Thumbs
vendor: 26,214 bytes, line 35
35)||void 0===e||e.toggle());if(void 0!==r.fancyboxToggleFullscreen)return t.preventDefault(),t.stopPropagation(),void this.instance.toggleFullscreen();if(void 0!==r.fancyboxToggleSlideshow){t.preventDefault(),t.stopPropagation();const e=null===(i=n.carousel)||void 0===i?void 0:i.plugins.Autoplay;let s=e.isActive;return o&&"mousemove"===o.panMode&&!s&&o.reset(),void(s?e.stop():e.start())}const l=r.panzoomAction,c=r.panzoomChange;if((c||l)&&(t.preventDefault(),t.stopPropagation()),c){let t={};try{t=JSON.parse(c)}catch(t){}o&&o.applyChange(t)}else l&&o&&o[l]&&o[l]()}onChange(){this.onRefresh()}onRefresh(){if(this.instance.isClosing())return;const t=this.container;if(!t)return;const e=this.instance.getSlide();if(!e||e.state!==ct.Ready)return;const i=e&&!e.error&&e.panzoom;for(const e of t.querySelectorAll("[data-panzoom-action]"))i?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));let n=i&&i.canZoomIn(),s=i&&i.canZoomOut();for(const e of t.querySelectorAll('[data-panzoom-action="zoomIn"]'))n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="zoomOut"]'))s?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="toggleZoom"],[data-panzoom-action="iterateZoom"]')){s||n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));const t=e.querySelector("g");t&&(t.style.display=n?"":"none")}}onDone(t,e){var i;null===(i=e.panzoom)||void 0===i||i.on("afterTransform",(()=>{this.instance.isCurrentSlide(e)&&this.onRefresh()})),this.instance.isCurrentSlide(e)&&this.onRefresh()}createContainer(){const t=this.instance.container;if(!t)return null;const e=this.option("parentEl")||t;let i=e.querySelector("."+Qt);return i||(i=document.createElement("div"),C(i,Qt),e.prepend(i)),i.addEventListener("click",this.onClick,{passive:!1,capture:!0}),t&&C(t,Jt),this.container=i,i}createEl(t){const e=this.instance,i=e.carousel;if(!i)return null;if("toggleFS"===t)return null;if("fullscreen"===t&&!at())return null;let n=null;const o=i.slides.length||0;let a=0,r=0;for(const t of i.slides)(t.panzoom||"image"===t.type)&&a++,("image"===t.type||t.downloadSrc)&&r++;if(o<2&&["infobar","prev","next"].includes(t))return n;if(void 0!==Zt[t]&&!a)return null;if("download"===t&&!r)return null;if("thumbs"===t){const t=e.plugins.Thumbs;if(!t||!t.isEnabled)return null}if("slideshow"===t){if(!i.plugins.Autoplay||o<2)return null}if(void 0!==Zt[t]){const e=Zt[t];n=document.createElement("button"),n.setAttribute("title",this.instance.localize(`{{${t.toUpperCase()}}}`)),C(n,"f-button"),e.action&&(n.dataset.panzoomAction=e.action),e.change&&(n.dataset.panzoomChange=JSON.stringify(e.change)),n.appendChild(s(this.instance.localize(e.icon)))}else{const e=(this.option("items")||[])[t];e&&(n=s(this.instance.localize(e.tpl)),"function"==typeof e.click&&n.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),"function"==typeof e.click&&e.click.call(this,this,t)})))}const l=null==n?void 0:n.querySelector("svg");if(l)for(const[t,e]of Object.entries(Kt))l.getAttribute(t)||l.setAttribute(t,String(e));return n}removeContainer(){const t=this.container;t&&t.remove(),this.container=null,this.state=Ut.Disabled;const e=this.instance.container;e&&P(e,Jt)}attach(){const t=this,e=t.instance;e.on("Carousel.initSlides",t.onReady),e.on("done",t.onDone),e.on(["reveal","Carousel.change"],t.onChange),t.onReady(t.instance)}detach(){const t=this,e=t.instance;e.off("Carousel.initSlides",t.onReady),e.off("done",t.onDone),e.off(["reveal","Carousel.change"],t.onChange),t.removeContainer()}}Object.defineProperty(te,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:Gt});const ee={Hash:class extends ${onReady(){dt=!1}onChange(t){pt&&clearTimeout(pt);const{hash:e}=ft(),{hash:i}=gt(),n=t.isOpeningSlide(t.getSlide());n&&(ht=i===e?"":i),e&&e!==i&&(pt=setTimeout((()=>{try{if(t.state===lt.Ready){let t="replaceState";n&&!ut&&(t="pushState",ut=!0),window.history[t]({},document.title,window.location.pathname+window.location.search+e)}}catch(t){}}),300))}onClose(t){if(pt&&clearTimeout(pt),!dt&&ut)return ut=!1,dt=!1,void window.history.back();if(!dt)try{window.history.replaceState({},document.title,window.location.pathname+window.location.search+(ht||""))}catch(t){}}attach(){const t=this.instance;t.on("ready",this.onReady),t.on(["Carousel.ready","Carousel.change"],this.onChange),t.on("close",this.onClose)}detach(){const t=this.instance;t.off("ready",this.onReady),t.off(["Carousel.ready","Carousel.change"],this.onChange),t.off("close",this.onClose)}static parseURL(){return gt()}static startFromUrl(){mt()}static destroy(){window.removeEventListener("hashchange",bt,!1)}},Html:zt,Images:xt,Slideshow:Ft,Thumbs:Vt,Toolbar:te},ie="with-fancybox",ne="hide-scrollbar",se="--fancybox-scrollbar-compensate",oe="--fancybox-body-margin",ae="aria-hidden",re="is-using-tab",le="is-animated",ce="is-compact",he="is-loading",de="is-opening",ue="has-caption",pe="disabled",fe="tabindex",ge="download",me="href",ve="src",be=t=>"string"==typeof t,ye=function(){var t=window.getSelection();return!!t&&"Range"===t.type};let we,xe=null,Ee=null,Se=0,Pe=0,Ce=0,Te=0;const Me=new Map;let Oe=0;class Ae extends m{get isIdle(){return this.idle}get isCompact(){return this.option("compact")}constructor(t=[],e={},i={}){super(e),Object.defineProperty(this,"userSlides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"idle",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"idleTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"ignoreFocusChange",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"startedFs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:lt.Init}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"caption",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"footer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastFocus",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"prevMouseMoveEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),we||(we=at()),this.id=e.id||++Oe,Me.set(this.id,this),this.userSlides=t,this.userPlugins=i,queueMicrotask((()=>{this.init()}))}init(){if(this.state===lt.Destroy)return;this.state=lt.Init,this.attachPlugins(Object.assign(Object.assign({},Ae.Plugins),this.userPlugins)),this.emit("init"),this.emit("attachPlugins"),!0===this.option("hideScrollbar")&&(()=>{if(!it)return;const t=document,e=t.body,i=t.documentElement;if(e.classList.contains(ne))return;let n=window.innerWidth-i.getBoundingClientRect().width;const s=parseFloat(window.getComputedStyle(e).marginRight);n<0&&(n=0),i.style.setProperty(se,`${n}px`),s&&e.style.setProperty(oe,`${s}px`),e.classList.add(ne)})(),this.initLayout(),this.scale();const t=()=>{this.initCarousel(this.userSlides),this.state=lt.Ready,this.attachEvents(),this.emit("ready"),setTimeout((()=>{this.container&&this.container.setAttribute(ae,"false")}),16)};this.option("Fullscreen.autoStart")&&we&&!we.isFullscreen()?we.request().then((()=>{this.startedFs=!0,t()})).catch((()=>t())):t()}initLayout(){var t,e;const i=this.option("parentEl")||document.body,n=s(this.localize(this.option("tpl.main")||""));if(n){if(n.setAttribute("id",`fancybox-${this.id}`),n.setAttribute("aria-label",this.localize("{{MODAL}}")),n.classList.toggle(ce,this.isCompact),C(n,this.option("mainClass")||""),C(n,de),this.container=n,this.footer=n.querySelector(".fancybox__footer"),i.appendChild(n),C(document.documentElement,ie),xe&&Ee||(xe=document.createElement("span"),C(xe,"fancybox-focus-guard"),xe.setAttribute(fe,"0"),xe.setAttribute(ae,"true"),xe.setAttribute("aria-label","Focus guard"),Ee=xe.cloneNode(),null===(t=n.parentElement)||void 0===t||t.insertBefore(xe,n),null===(e=n.parentElement)||void 0===e||e.append(Ee)),n.addEventListener("mousedown",(t=>{Se=t.pageX,Pe=t.pageY,P(n,re)})),this.option("closeExisting"))for(const t of Me.values())t.id!==this.id&&t.close();else this.option("animated")&&(C(n,le),setTimeout((()=>{this.isClosing()||P(n,le)}),350));this.emit("initLayout")}}initCarousel(t){const e=this.container;if(!e)return;const n=e.querySelector(".fancybox__carousel");if(!n)return;const s=this.carousel=new tt(n,p({},{slides:t,transition:"fade",Panzoom:{lockAxis:this.option("dragToClose")?"xy":"x",infinite:!!this.option("dragToClose")&&"y"},Dots:!1,Navigation:{classes:{container:"fancybox__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"}},initialPage:this.option("startIndex"),l10n:this.option("l10n")},this.option("Carousel")||{}));s.on("*",((t,e,...i)=>{this.emit(`Carousel.${e}`,t,...i)})),s.on(["ready","change"],(()=>{this.manageCaption()})),this.on("Carousel.removeSlide",((t,e,i)=>{this.clearContent(i),i.state=void 0})),s.on("Panzoom.touchStart",(()=>{var t,e;this.isCompact||this.endIdle(),(null===(t=document.activeElement)||void 0===t?void 0:t.closest(".f-thumbs"))&&(null===(e=this.container)||void 0===e||e.focus())})),s.on("settle",(()=>{this.idleTimer||this.isCompact||!this.option("idle")||this.setIdle(),this.option("autoFocus")&&!this.isClosing&&this.checkFocus()})),this.option("dragToClose")&&(s.on("Panzoom.afterTransform",((t,e)=>{const n=this.getSlide();if(n&&i(n.el))return;const s=this.container;if(s){const t=Math.abs(e.current.f),i=t<1?"":Math.max(.5,Math.min(1,1-t/e.contentRect.fitHeight*1.5));s.style.setProperty("--fancybox-ts",i?"0s":""),s.style.setProperty("--fancybox-opacity",i+"")}})),s.on("Panzoom.touchEnd",((t,e,n)=>{var s;const o=this.getSlide();if(o&&i(o.el))return;if(e.isMobile&&document.activeElement&&-1!==["TEXTAREA","INPUT"].indexOf(null===(s=document.activeElement)||void 0===s?void 0:s.nodeName))return;const a=Math.abs(e.dragOffset.y);"y"===e.lockedAxis&&(a>=200||a>=50&&e.dragOffset.time<300)&&(n&&n.cancelable&&n.preventDefault(),this.close(n,"f-throwOut"+(e.current.f<0?"Up":"Down")))}))),s.on("change",(t=>{var e;let i=null===(e=this.getSlide())||void 0===e?void 0:e.triggerEl;if(i){const e=new CustomEvent("slideTo",{bubbles:!0,cancelable:!0,detail:t.page});i.dispatchEvent(e)}})),s.on(["refresh","change"],(t=>{const e=this.container;if(!e)return;for(const i of e.querySelectorAll("[data-fancybox-current-index]"))i.innerHTML=t.page+1;for(const i of e.querySelectorAll("[data-fancybox-count]"))i.innerHTML=t.pages.length;if(!t.isInfinite){for(const i of e.querySelectorAll("[data-fancybox-next]"))t.page<t.pages.length-1?(i.removeAttribute(pe),i.removeAttribute(fe)):(i.setAttribute(pe,""),i.setAttribute(fe,"-1"));for(const i of e.querySelectorAll("[data-fancybox-prev]"))t.page>0?(i.removeAttribute(pe),i.removeAttribute(fe)):(i.setAttribute(pe,""),i.setAttribute(fe,"-1"))}const i=this.getSlide();if(!i)return;let n=i.downloadSrc||"";n||"image"!==i.type||i.error||!be(i[ve])||(n=i[ve]);for(const t of e.querySelectorAll("[data-fancybox-download]")){const e=i.downloadFilename;n?(t.removeAttribute(pe),t.removeAttribute(fe),t.setAttribute(me,n),t.setAttribute(ge,e||n),t.setAttribute("target","_blank")):(t.setAttribute(pe,""),t.setAttribute(fe,"-1"),t.removeAttribute(me),t.removeAttribute(ge))}})),this.emit("initCarousel")}attachEvents(){const t=this,e=t.container;if(!e)return;e.addEventListener("click",t.onClick,{passive:!1,capture:!1}),e.addEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),document.addEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),document.addEventListener("visibilitychange",t.onVisibilityChange,!1),document.addEventListener("mousemove",t.onMousemove),t.option("trapFocus")&&document.addEventListener("focus",t.onFocus,!0),window.addEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.addEventListener("scroll",t.onResize),i.addEventListener("resize",t.onResize))}detachEvents(){const t=this,e=t.container;if(!e)return;document.removeEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),e.removeEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),e.removeEventListener("click",t.onClick,{passive:!1,capture:!1}),document.removeEventListener("mousemove",t.onMousemove),window.removeEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.removeEventListener("resize",t.onResize),i.removeEventListener("scroll",t.onResize)),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),document.removeEventListener("focus",t.onFocus,!0)}scale(){const t=this.container;if(!t)return;const e=window.visualViewport,i=Math.max(1,(null==e?void 0:e.scale)||1);let n="",s="",o="";if(e&&i>1){let t=`${e.offsetLeft}px`,a=`${e.offsetTop}px`;n=e.width*i+"px",s=e.height*i+"px",o=`translate3d(${t}, ${a}, 0) scale(${1/i})`}t.style.transform=o,t.style.width=n,t.style.height=s}onClick(t){var e;const{container:i,isCompact:n}=this;if(!i||this.isClosing())return;!n&&this.option("idle")&&this.resetIdle();const s=t.composedPath()[0];if(s.closest(".fancybox-spinner")||s.closest("[data-fancybox-close]"))return t.preventDefault(),void this.close(t);if(s.closest("[data-fancybox-prev]"))return t.preventDefault(),void this.prev();if(s.closest("[data-fancybox-next]"))return t.preventDefault(),void this.next();if("click"===t.type&&0===t.detail)return;if(Math.abs(t.pageX-Se)>30||Math.abs(t.pageY-Pe)>30)return;const o=document.activeElement;if(ye()&&o&&i.contains(o))return;if(n&&"image"===(null===(e=this.getSlide())||void 0===e?void 0:e.type))return void(this.clickTimer?(clearTimeout(this.clickTimer),this.clickTimer=null):this.clickTimer=setTimeout((()=>{this.toggleIdle(),this.clickTimer=null}),350));if(this.emit("click",t),t.defaultPrevented)return;let a=!1;if(s.closest(".fancybox__content")){if(o){if(o.closest("[contenteditable]"))return;s.matches(st)||o.blur()}if(ye())return;a=this.option("contentClick")}else s.closest(".fancybox__carousel")&&!s.matches(st)&&(a=this.option("backdropClick"));"close"===a?(t.preventDefault(),this.close(t)):"next"===a?(t.preventDefault(),this.next()):"prev"===a&&(t.preventDefault(),this.prev())}onWheel(t){const e=t.target;let i=this.option("wheel",t);e.closest(".fancybox__thumbs")&&(i="slide");const s="slide"===i,o=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t})),a=Math.max(-1,Math.min(1,o)),r=Date.now();this.pwt&&r-this.pwt<300?s&&t.preventDefault():(this.pwt=r,this.emit("wheel",t,a),t.defaultPrevented||("close"===i?(t.preventDefault(),this.close(t)):"slide"===i&&(n(e)||(t.preventDefault(),this[a>0?"prev":"next"]()))))}onScroll(){window.scrollTo(Ce,Te)}onKeydown(t){if(!this.isTopmost())return;this.isCompact||!this.option("idle")||this.isClosing()||this.resetIdle();const e=t.key,i=this.option("keyboard");if(!i)return;const n=t.composedPath()[0],s=document.activeElement&&document.activeElement.classList,o=s&&s.contains("f-button")||n.dataset.carouselPage||n.dataset.carouselIndex;if("Escape"!==e&&!o&&S(n)){if(n.isContentEditable||-1!==["TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].indexOf(n.nodeName))return}if("Tab"===t.key?C(this.container,re):P(this.container,re),t.ctrlKey||t.altKey||t.shiftKey)return;this.emit("keydown",e,t);const a=i[e];a&&"function"==typeof this[a]&&(t.preventDefault(),this[a]())}onResize(){const t=this.container;if(!t)return;const e=this.isCompact;t.classList.toggle(ce,e),this.manageCaption(this.getSlide()),this.isCompact?this.clearIdle():this.endIdle(),this.scale(),this.emit("resize")}onFocus(t){this.isTopmost()&&this.checkFocus(t)}onMousemove(t){this.prevMouseMoveEvent=t,!this.isCompact&&this.option("idle")&&this.resetIdle()}onVisibilityChange(){"visible"===document.visibilityState?this.checkFocus():this.endIdle()}manageCloseBtn(t){const e=this.optionFor(t,"closeButton")||!1;if("auto"===e){const t=this.plugins.Toolbar;if(t&&t.state===Ut.Ready)return}if(!e)return;if(!t.contentEl||t.closeBtnEl)return;const i=this.option("tpl.closeButton");if(i){const e=s(this.localize(i));t.closeBtnEl=t.contentEl.appendChild(e),t.el&&C(t.el,"has-close-btn")}}manageCaption(t=void 0){var e,i;const n="fancybox__caption",s=this.container;if(!s)return;P(s,ue);const o=this.isCompact||this.option("commonCaption"),a=!o;if(this.caption&&this.stop(this.caption),a&&this.caption&&(this.caption.remove(),this.caption=null),o&&!this.caption)for(const t of(null===(e=this.carousel)||void 0===e?void 0:e.slides)||[])t.captionEl&&(t.captionEl.remove(),t.captionEl=void 0,P(t.el,ue),null===(i=t.el)||void 0===i||i.removeAttribute("aria-labelledby"));if(t||(t=this.getSlide()),!t||o&&!this.isCurrentSlide(t))return;const r=t.el;let l=this.optionFor(t,"caption","");if(!l)return void(o&&this.caption&&this.animate(this.caption,"f-fadeOut",(()=>{this.caption&&(this.caption.innerHTML="")})));let c=null;if(a){if(c=t.captionEl||null,r&&!c){const e=n+`_${this.id}_${t.index}`;c=document.createElement("div"),C(c,n),c.setAttribute("id",e),t.captionEl=r.appendChild(c),C(r,ue),r.setAttribute("aria-labelledby",e)}}else{if(c=this.caption,c||(c=s.querySelector("."+n)),!c){c=document.createElement("div"),c.dataset.fancyboxCaption="",C(c,n);(this.footer||s).prepend(c)}C(s,ue),this.caption=c}c&&(c.innerHTML="",be(l)||"number"==typeof l?c.innerHTML=l+"":l instanceof HTMLElement&&c.appendChild(l))}checkFocus(t){this.focus(t)}focus(t){var e;if(this.ignoreFocusChange)return;const i=document.activeElement||null,n=(null==t?void 0:t.target)||null,s=this.container,o=null===(e=this.carousel)||void 0===e?void 0:e.viewport;if(!s||!o)return;if(!t&&i&&s.contains(i))return;const a=this.getSlide(),r=a&&a.state===ct.Ready?a.el:null;if(!r||r.contains(i)||s===i)return;t&&t.cancelable&&t.preventDefault(),this.ignoreFocusChange=!0;const l=Array.from(s.querySelectorAll(st));let c=[],h=null;for(let t of l){const e=!t.offsetParent||!!t.closest('[aria-hidden="true"]'),i=r&&r.contains(t),n=!o.contains(t);if(t===s||(i||n)&&!e){c.push(t);const e=t.dataset.origTabindex;void 0!==e&&e&&(t.tabIndex=parseFloat(e)),t.removeAttribute("data-orig-tabindex"),!t.hasAttribute("autoFocus")&&h||(h=t)}else{const e=void 0===t.dataset.origTabindex?t.getAttribute("tabindex")||"":t.dataset.origTabindex;e&&(t.dataset.origTabindex=e),t.tabIndex=-1}}let d=null;t?(!n||c.indexOf(n)<0)&&(d=h||s,c.length&&(i===Ee?d=c[0]:this.lastFocus!==s&&i!==xe||(d=c[c.length-1]))):d=a&&"image"===a.type?s:h||s,d&&ot(d),this.lastFocus=document.activeElement,this.ignoreFocusChange=!1}next(){const t=this.carousel;t&&t.pages.length>1&&t.slideNext()}prev(){const t=this.carousel;t&&t.pages.length>1&&t.slidePrev()}jumpTo(...t){this.carousel&&this.carousel.slideTo(...t)}isTopmost(){var t;return(null===(t=Ae.getInstance())||void 0===t?void 0:t.id)==this.id}animate(t=null,e="",i){if(!t||!e)return void(i&&i());this.stop(t);const n=s=>{s.target===t&&t.dataset.animationName&&(t.removeEventListener("animationend",n),delete t.dataset.animationName,i&&i(),P(t,e))};t.dataset.animationName=e,t.addEventListener("animationend",n),C(t,e)}stop(t){t&&t.dispatchEvent(new CustomEvent("animationend",{bubbles:!1,cancelable:!0,currentTarget:t}))}setContent(t,e="",i=!0){if(this.isClosing())return;const n=t.el;if(!n)return;let o=null;if(S(e)?o=e:(o=s(e+""),S(o)||(o=document.createElement("div"),o.innerHTML=e+"")),["img","picture","iframe","video","audio"].includes(o.nodeName.toLowerCase())){const t=document.createElement("div");t.appendChild(o),o=t}S(o)&&t.filter&&!t.error&&(o=o.querySelector(t.filter)),o&&S(o)?(C(o,"fancybox__content"),t.id&&o.setAttribute("id",t.id),n.classList.add(`has-${t.error?"error":t.type||"unknown"}`),n.prepend(o),"none"===o.style.display&&(o.style.display=""),"none"===getComputedStyle(o).getPropertyValue("display")&&(o.style.display=t.display||this.option("defaultDisplay")||"flex"),t.contentEl=o,i&&this.revealContent(t),this.manageCloseBtn(t),this.manageCaption(t)):this.setError(t,"{{ELEMENT_NOT_FOUND}}")}revealContent(t,e){const i=t.el,n=t.contentEl;i&&n&&(this.emit("reveal",t),this.hideLoading(t),t.state=ct.Opening,(e=this.isOpeningSlide(t)?void 0===e?this.optionFor(t,"showClass"):e:"f-fadeIn")?this.animate(n,e,(()=>{this.done(t)})):this.done(t))}done(t){this.isClosing()||(t.state=ct.Ready,this.emit("done",t),C(t.el,"is-done"),this.isCurrentSlide(t)&&this.option("autoFocus")&&queueMicrotask((()=>{var e;null===(e=t.panzoom)||void 0===e||e.updateControls(),this.option("autoFocus")&&this.focus()})),this.isOpeningSlide(t)&&(P(this.container,de),!this.isCompact&&this.option("idle")&&this.setIdle()))}isCurrentSlide(t){const e=this.getSlide();return!(!t||!e)&&e.index===t.index}isOpeningSlide(t){var e,i;return null===(null===(e=this.carousel)||void 0===e?void 0:e.prevPage)&&t&&t.index===(null===(i=this.getSlide())||void 0===i?void 0:i.index)}showLoading(t){t.state=ct.Loading;const e=t.el;if(!e)return;C(e,he),this.emit("loading",t),t.spinnerEl||setTimeout((()=>{if(!this.isClosing()&&!t.spinnerEl&&t.state===ct.Loading){let i=s(E);C(i,"fancybox-spinner"),t.spinnerEl=i,e.prepend(i),this.animate(i,"f-fadeIn")}}),250)}hideLoading(t){const e=t.el;if(!e)return;const i=t.spinnerEl;this.isClosing()?null==i||i.remove():(P(e,he),i&&this.animate(i,"f-fadeOut",(()=>{i.remove()})),t.state===ct.Loading&&(this.emit("loaded",t),t.state=ct.Ready))}setError(t,e){if(this.isClosing())return;const i=new Event("error",{bubbles:!0,cancelable:!0});if(this.emit("error",i,t),i.defaultPrevented)return;t.error=e,this.hideLoading(t),this.clearContent(t);const n=document.createElement("div");n.classList.add("fancybox-error"),n.innerHTML=this.localize(e||"<p>{{ERROR}}</p>"),this.setContent(t,n)}clearContent(t){if(void 0===t.state)return;this.emit("clearContent",t),t.contentEl&&(t.contentEl.remove(),t.contentEl=void 0);const e=t.el;e&&(P(e,"has-error"),P(e,"has-unknown"),P(e,`has-${t.type||"unknown"}`)),t.closeBtnEl&&t.closeBtnEl.remove(),t.closeBtnEl=void 0,t.captionEl&&t.captionEl.remove(),t.captionEl=void 0,t.spinnerEl&&t.spinnerEl.remove(),t.spinnerEl=void 0}getSlide(){var t;const e=this.carousel;return(null===(t=null==e?void 0:e.pages[null==e?void 0:e.page])||void 0===t?void 0:t.slides[0])||void 0}close(t,e){if(this.isClosing())return;const i=new Event("shouldClose",{bubbles:!0,cancelable:!0});if(this.emit("shouldClose",i,t),i.defaultPrevented)return;t&&t.cancelable&&(t.preventDefault(),t.stopPropagation());const n=()=>{this.proceedClose(t,e)};this.startedFs&&we&&we.isFullscreen()?Promise.resolve(we.exit()).then((()=>n())):n()}clearIdle(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null}setIdle(t=!1){const e=()=>{this.clearIdle(),this.idle=!0,C(this.container,"is-idle"),this.emit("setIdle")};if(this.clearIdle(),!this.isClosing())if(t)e();else{const t=this.option("idle");t&&(this.idleTimer=setTimeout(e,t))}}endIdle(){this.clearIdle(),this.idle&&!this.isClosing()&&(this.idle=!1,P(this.container,"is-idle"),this.emit("endIdle"))}resetIdle(){this.endIdle(),this.setIdle()}toggleIdle(){this.idle?this.endIdle():this.setIdle(!0)}toggleFullscreen(){we&&(we.isFullscreen()?we.exit():we.request().then((()=>{this.startedFs=!0})))}isClosing(){return[lt.Closing,lt.CustomClosing,lt.Destroy].includes(this.state)}proceedClose(t,e){var i,n;this.state=lt.Closing,this.clearIdle(),this.detachEvents();const s=this.container,o=this.carousel,a=this.getSlide(),r=a&&this.option("placeFocusBack")?a.triggerEl||this.option("triggerEl"):null;if(r&&(et(r)?ot(r):r.focus()),s&&(P(s,de),C(s,"is-closing"),s.setAttribute(ae,"true"),this.option("animated")&&C(s,le),s.style.pointerEvents="none"),o){o.clearTransitions(),null===(i=o.panzoom)||void 0===i||i.destroy(),null===(n=o.plugins.Navigation)||void 0===n||n.detach();for(const t of o.slides){t.state=ct.Closing,this.hideLoading(t);const e=t.contentEl;e&&this.stop(e);const i=null==t?void 0:t.panzoom;i&&(i.stop(),i.detachEvents(),i.detachObserver()),this.isCurrentSlide(t)||o.emit("removeSlide",t)}}Ce=window.scrollX,Te=window.scrollY,window.addEventListener("scroll",this.onScroll),this.emit("close",t),this.state!==lt.CustomClosing?(void 0===e&&a&&(e=this.optionFor(a,"hideClass")),e&&a?(this.animate(a.contentEl,e,(()=>{o&&o.emit("removeSlide",a)})),setTimeout((()=>{this.destroy()}),500)):this.destroy()):setTimeout((()=>{this.destroy()}),500)}destroy(){var t;if(this.state===lt.Destroy)return;window.removeEventListener("scroll",this.onScroll),this.state=lt.Destroy,null===(t=this.carousel)||void 0===t||t.destroy();const e=this.container;e&&e.remove(),Me.delete(this.id);const i=Ae.getInstance();i?i.focus():(xe&&(xe.remove(),xe=null),Ee&&(Ee.remove(),Ee=null),P(document.documentElement,ie),(()=>{if(!it)return;const t=document,e=t.body;e.classList.remove(ne),e.style.setProperty(oe,""),t.documentElement.style.setProperty(se,"")})(),this.emit("destroy"))}static bind(t,e,i){if(!it)return;let n,s="",o={};if(void 0===t?n=document.body:be(t)?(n=document.body,s=t,"object"==typeof e&&(o=e||{})):(n=t,be(e)&&(s=e),"object"==typeof i&&(o=i||{})),!n||!S(n))return;s=s||"[data-fancybox]";const a=Ae.openers.get(n)||new Map;a.set(s,o),Ae.openers.set(n,a),1===a.size&&n.addEventListener("click",Ae.fromEvent)}static unbind(t,e){let i,n="";if(be(t)?(i=document.body,n=t):(i=t,be(e)&&(n=e)),!i)return;const s=Ae.openers.get(i);s&&n&&s.delete(n),n&&s||(Ae.openers.delete(i),i.removeEventListener("click",Ae.fromEvent))}static destroy(){let t;for(;t=Ae.getInstance();)t.destroy();for(const t of Ae.openers.keys())t.removeEventListener("click",Ae.from
35Event);Ae.openers=new Map}static fromEvent(t){if(t.defaultPrevented)return;if(t.button&&0!==t.button)return;if(t.ctrlKey||t.metaKey||t.shiftKey)return;let e=t.composedPath()[0];const i=e.closest("[data-fancybox-trigger]");if(i){const t=i.dataset.fancyboxTrigger||"",n=document.querySelectorAll(`[data-fancybox="${t}"]`),s=parseInt(i.dataset.fancyboxIndex||"",10)||0;e=n[s]||e}if(!(e&&e instanceof Element))return;let n,s,o,a;if([...Ae.openers].reverse().find((([t,i])=>!(!t.contains(e)||![...i].reverse().find((([i,r])=>{let l=e.closest(i);return!!l&&(n=t,s=i,o=l,a=r,!0)}))))),!n||!s||!o)return;a=a||{},t.preventDefault(),e=o;let r=[],l=p({},rt,a);l.event=t,l.triggerEl=e,l.delegate=i;const c=l.groupAll,h=l.groupAttr,d=h&&e?e.getAttribute(`${h}`):"";if((!e||d||c)&&(r=[].slice.call(n.querySelectorAll(s))),e&&!c&&(r=d?r.filter((t=>t.getAttribute(`${h}`)===d)):[e]),!r.length)return;const u=Ae.getInstance();return u&&u.options.triggerEl&&r.indexOf(u.options.triggerEl)>-1?void 0:(e&&(l.startIndex=r.indexOf(e)),Ae.fromNodes(r,l))}static fromSelector(t,e,i){let n=null,s="",o={};if(be(t)?(n=document.body,s=t,"object"==typeof e&&(o=e||{})):t instanceof HTMLElement&&be(e)&&(n=t,s=e,"object"==typeof i&&(o=i||{})),!n||!s)return!1;const a=Ae.openers.get(n);return!!a&&(o=p({},a.get(s)||{},o),!!o&&Ae.fromNodes(Array.from(n.querySelectorAll(s)),o))}static fromNodes(t,e){e=p({},rt,e||{});const i=[];for(const n of t){const t=n.dataset||{},s=t[ve]||n.getAttribute(me)||n.getAttribute("currentSrc")||n.getAttribute(ve)||void 0;let o;const a=e.delegate;let r;a&&i.length===e.startIndex&&(o=a instanceof HTMLImageElement?a:a.querySelector("img:not([aria-hidden])")),o||(o=n instanceof HTMLImageElement?n:n.querySelector("img:not([aria-hidden])")),o&&(r=o.currentSrc||o[ve]||void 0,!r&&o.dataset&&(r=o.dataset.lazySrc||o.dataset[ve]||void 0));const l={src:s,triggerEl:n,thumbEl:o,thumbElSrc:r,thumbSrc:r};for(const e in t){let i=t[e]+"";i="false"!==i&&("true"===i||i),l[e]=i}i.push(l)}return new Ae(i,e)}static getInstance(t){if(t)return Me.get(t);return Array.from(Me.values()).reverse().find((t=>!t.isClosing()&&t))||null}static getSlide(){var t;return(null===(t=Ae.getInstance())||void 0===t?void 0:t.getSlide())||null}static show(t=[],e={}){return new Ae(t,e)}static next(){const t=Ae.getInstance();t&&t.next()}static prev(){const t=Ae.getInstance();t&&t.prev()}static close(t=!0,...e){if(t)for(const t of Me.values())t.close(...e);else{const t=Ae.getInstance();t&&t.close(...e)}}}Object.defineProperty(Ae,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.36"}),Object.defineProperty(Ae,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:rt}),Object.defineProperty(Ae,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:ee}),Object.defineProperty(Ae,"openers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),t.Carousel=tt,t.Fancybox=Ae,t.Panzoom=D}));
36
37/**
38 * Swiper 11.1.12
39 * Most modern mobile touch slider and framework with hardware accelerated transitions
40 * https://swiperjs.com
41 *
42 * Copyright 2014-2024 Vladimir Kharlampidi
43 *
44 * Released under the MIT License
45 *
46 * Released on: September 1, 2024
47 */
48
49var Swiper = (function () {
50  'use strict';
51
52  /**
53   * SSR Window 4.0.2
54   * Better handling for window object in SSR environment
55   * https://github.com/nolimits4web/ssr-window
56   *
57   * Copyright 2021, Vladimir Kharlampidi
58   *
59   * Licensed under MIT
60   *
61   * Released on: December 13, 2021
62   */
63  /* eslint-disable no-param-reassign */
64  function isObject$1(obj) {
65    return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
66  }
67  function extend$1(target, src) {
68    if (target === void 0) {
69      target = {};
70    }
71    if (src === void 0) {
72      src = {};
73    }
74    Object.keys(src).forEach(key => {
75      if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$1(src[key]) && isObject$1(target[key]) && Object.keys(src[key]).length > 0) {
76        extend$1(target[key], src[key]);
77      }
78    });
79  }
80  const ssrDocument = {
81    body: {},
82    addEventListener() {},
83    removeEventListener() {},
84    activeElement: {
85      blur() {},
86      nodeName: ''
87    },
88    querySelector() {
89      return null;
90    },
91    querySelectorAll() {
92      return [];
93    },
94    getElementById() {
95      return null;
96    },
97    createEvent() {
98      return {
99        initEvent() {}
100      };
101    },
102    createElement() {
103      return {
104        children: [],
105        childNodes: [],
106        style: {},
107        setAttribute() {},
108        getElementsByTagName() {
109          return [];
110        }
111      };
112    },
113    createElementNS() {
114      return {};
115    },
116    importNode() {
117      return null;
118    },
119    location: {
120      hash: '',
121      host: '',
122      hostname: '',
123      href: '',
124      origin: '',
125      pathname: '',
126      protocol: '',
127      search: ''
128    }
129  };
130  function getDocument() {
131    const doc = typeof document !== 'undefined' ? document : {};
132    extend$1(doc, ssrDocument);
133    return doc;
134  }
135  const ssrWindow = {
136    document: ssrDocument,
137    navigator: {
138      userAgent: ''
139    },
140    location: {
141      hash: '',
142      host: '',
143      hostname: '',
144      href: '',
145      origin: '',
146      pathname: '',
147      protocol: '',
148      search: ''
149    },
150    history: {
151      replaceState() {},
152      pushState() {},
153      go() {},
154      back() {}
155    },
156    CustomEvent: function CustomEvent() {
157      return this;
158    },
159    addEventListener() {},
160    removeEventListener() {},
161    getComputedStyle() {
162      return {
163        getPropertyValue() {
164          return '';
165        }
166      };
167    },
168    Image() {},
169    Date() {},
170    screen: {},
171    setTimeout() {},
172    clearTimeout() {},
173    matchMedia() {
174      return {};
175    },
176    requestAnimationFrame(callback) {
177      if (typeof setTimeout === 'undefined') {
178        callback();
179        return null;
180      }
181      return setTimeout(callback, 0);
182    },
183    cancelAnimationFrame(id) {
184      if (typeof setTimeout === 'undefined') {
185        return;
186      }
187      clearTimeout(id);
188    }
189  };
190  function getWindow() {
191    const win = typeof window !== 'undefined' ? window : {};
192    extend$1(win, ssrWindow);
193    return win;
194  }
195
vendor: 7,364 bytes, lines 196-409
196  function classesToTokens(classes) {
197    if (classes === void 0) {
198      classes = '';
199    }
200    return classes.trim().split(' ').filter(c => !!c.trim());
201  }
202
203  function deleteProps(obj) {
204    const object = obj;
205    Object.keys(object).forEach(key => {
206      try {
207        object[key] = null;
208      } catch (e) {
209        // no getter for object
210      }
211      try {
212        delete object[key];
213      } catch (e) {
214        // something got wrong
215      }
216    });
217  }
218  function nextTick(callback, delay) {
219    if (delay === void 0) {
220      delay = 0;
221    }
222    return setTimeout(callback, delay);
223  }
224  function now() {
225    return Date.now();
226  }
227  function getComputedStyle$1(el) {
228    const window = getWindow();
229    let style;
230    if (window.getComputedStyle) {
231      style = window.getComputedStyle(el, null);
232    }
233    if (!style && el.currentStyle) {
234      style = el.currentStyle;
235    }
236    if (!style) {
237      style = el.style;
238    }
239    return style;
240  }
241  function getTranslate(el, axis) {
242    if (axis === void 0) {
243      axis = 'x';
244    }
245    const window = getWindow();
246    let matrix;
247    let curTransform;
248    let transformMatrix;
249    const curStyle = getComputedStyle$1(el);
250    if (window.WebKitCSSMatrix) {
251      curTransform = curStyle.transform || curStyle.webkitTransform;
252      if (curTransform.split(',').length > 6) {
253        curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
254      }
255      // Some old versions of Webkit choke when 'none' is passed; pass
256      // empty string instead in this case
257      transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
258    } else {
259      transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
260      matrix = transformMatrix.toString().split(',');
261    }
262    if (axis === 'x') {
263      // Latest Chrome and webkits Fix
264      if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;
265      // Crazy IE10 Matrix
266      else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
267      // Normal Browsers
268      else curTransform = parseFloat(matrix[4]);
269    }
270    if (axis === 'y') {
271      // Latest Chrome and webkits Fix
272      if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;
273      // Crazy IE10 Matrix
274      else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
275      // Normal Browsers
276      else curTransform = parseFloat(matrix[5]);
277    }
278    return curTransform || 0;
279  }
280  function isObject(o) {
281    return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
282  }
283  function isNode(node) {
284    // eslint-disable-next-line
285    if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
286      return node instanceof HTMLElement;
287    }
288    return node && (node.nodeType === 1 || node.nodeType === 11);
289  }
290  function extend() {
291    const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
292    const noExtend = ['__proto__', 'constructor', 'prototype'];
293    for (let i = 1; i < arguments.length; i += 1) {
294      const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
295      if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
296        const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
297        for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
298          const nextKey = keysArray[nextIndex];
299          const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
300          if (desc !== undefined && desc.enumerable) {
301            if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
302              if (nextSource[nextKey].__swiper__) {
303                to[nextKey] = nextSource[nextKey];
304              } else {
305                extend(to[nextKey], nextSource[nextKey]);
306              }
307            } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
308              to[nextKey] = {};
309              if (nextSource[nextKey].__swiper__) {
310                to[nextKey] = nextSource[nextKey];
311              } else {
312                extend(to[nextKey], nextSource[nextKey]);
313              }
314            } else {
315              to[nextKey] = nextSource[nextKey];
316            }
317          }
318        }
319      }
320    }
321    return to;
322  }
323  function setCSSProperty(el, varName, varValue) {
324    el.style.setProperty(varName, varValue);
325  }
326  function animateCSSModeScroll(_ref) {
327    let {
328      swiper,
329      targetPosition,
330      side
331    } = _ref;
332    const window = getWindow();
333    const startPosition = -swiper.translate;
334    let startTime = null;
335    let time;
336    const duration = swiper.params.speed;
337    swiper.wrapperEl.style.scrollSnapType = 'none';
338    window.cancelAnimationFrame(swiper.cssModeFrameID);
339    const dir = targetPosition > startPosition ? 'next' : 'prev';
340    const isOutOfBound = (current, target) => {
341      return dir === 'next' && current >= target || dir === 'prev' && current <= target;
342    };
343    const animate = () => {
344      time = new Date().getTime();
345      if (startTime === null) {
346        startTime = time;
347      }
348      const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
349      const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
350      let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
351      if (isOutOfBound(currentPosition, targetPosition)) {
352        currentPosition = targetPosition;
353      }
354      swiper.wrapperEl.scrollTo({
355        [side]: currentPosition
356      });
357      if (isOutOfBound(currentPosition, targetPosition)) {
358        swiper.wrapperEl.style.overflow = 'hidden';
359        swiper.wrapperEl.style.scrollSnapType = '';
360        setTimeout(() => {
361          swiper.wrapperEl.style.overflow = '';
362          swiper.wrapperEl.scrollTo({
363            [side]: currentPosition
364          });
365        });
366        window.cancelAnimationFrame(swiper.cssModeFrameID);
367        return;
368      }
369      swiper.cssModeFrameID = window.requestAnimationFrame(animate);
370    };
371    animate();
372  }
373  function getSlideTransformEl(slideEl) {
374    return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
375  }
376  function elementChildren(element, selector) {
377    if (selector === void 0) {
378      selector = '';
379    }
380    const children = [...element.children];
381    if (element instanceof HTMLSlotElement) {
382      children.push(...element.assignedElements());
383    }
384    if (!selector) {
385      return children;
386    }
387    return children.filter(el => el.matches(selector));
388  }
389  function elementIsChildOf(el, parent) {
390    const isChild = parent.contains(el);
391    if (!isChild && parent instanceof HTMLSlotElement) {
392      const children = [...parent.assignedElements()];
393      return children.includes(el);
394    }
395    return isChild;
396  }
397  function showWarning(text) {
398    try {
399      console.warn(text);
400      return;
401    } catch (err) {
402      // err
403    }
404  }
405  function createElement(tag, classes) {
406    if (classes === void 0) {
407      classes = [];
408    }
409    const el = document.createElement(tag);
vendor: 3,772 bytes, lines 410-528
410    el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));
411    return el;
412  }
413  function elementOffset(el) {
414    const window = getWindow();
415    const document = getDocument();
416    const box = el.getBoundingClientRect();
417    const body = document.body;
418    const clientTop = el.clientTop || body.clientTop || 0;
419    const clientLeft = el.clientLeft || body.clientLeft || 0;
420    const scrollTop = el === window ? window.scrollY : el.scrollTop;
421    const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
422    return {
423      top: box.top + scrollTop - clientTop,
424      left: box.left + scrollLeft - clientLeft
425    };
426  }
427  function elementPrevAll(el, selector) {
428    const prevEls = [];
429    while (el.previousElementSibling) {
430      const prev = el.previousElementSibling; // eslint-disable-line
431      if (selector) {
432        if (prev.matches(selector)) prevEls.push(prev);
433      } else prevEls.push(prev);
434      el = prev;
435    }
436    return prevEls;
437  }
438  function elementNextAll(el, selector) {
439    const nextEls = [];
440    while (el.nextElementSibling) {
441      const next = el.nextElementSibling; // eslint-disable-line
442      if (selector) {
443        if (next.matches(selector)) nextEls.push(next);
444      } else nextEls.push(next);
445      el = next;
446    }
447    return nextEls;
448  }
449  function elementStyle(el, prop) {
450    const window = getWindow();
451    return window.getComputedStyle(el, null).getPropertyValue(prop);
452  }
453  function elementIndex(el) {
454    let child = el;
455    let i;
456    if (child) {
457      i = 0;
458      // eslint-disable-next-line
459      while ((child = child.previousSibling) !== null) {
460        if (child.nodeType === 1) i += 1;
461      }
462      return i;
463    }
464    return undefined;
465  }
466  function elementParents(el, selector) {
467    const parents = []; // eslint-disable-line
468    let parent = el.parentElement; // eslint-disable-line
469    while (parent) {
470      if (selector) {
471        if (parent.matches(selector)) parents.push(parent);
472      } else {
473        parents.push(parent);
474      }
475      parent = parent.parentElement;
476    }
477    return parents;
478  }
479  function elementTransitionEnd(el, callback) {
480    function fireCallBack(e) {
481      if (e.target !== el) return;
482      callback.call(el, e);
483      el.removeEventListener('transitionend', fireCallBack);
484    }
485    if (callback) {
486      el.addEventListener('transitionend', fireCallBack);
487    }
488  }
489  function elementOuterSize(el, size, includeMargins) {
490    const window = getWindow();
491    if (includeMargins) {
492      return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));
493    }
494    return el.offsetWidth;
495  }
496  function makeElementsArray(el) {
497    return (Array.isArray(el) ? el : [el]).filter(e => !!e);
498  }
499  function getRotateFix(swiper) {
500    return v => {
501      if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {
502        return v + 0.001;
503      }
504      return v;
505    };
506  }
507
508  let support;
509  function calcSupport() {
510    const window = getWindow();
511    const document = getDocument();
512    return {
513      smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
514      touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
515    };
516  }
517  function getSupport() {
518    if (!support) {
519      support = calcSupport();
520    }
521    return support;
522  }
523
524  let deviceCached;
525  function calcDevice(_temp) {
526    let {
527      userAgent
528    } = _temp === void 0 ? {} : _temp;
vendor: 4,996 bytes, lines 529-687
529    const support = getSupport();
530    const window = getWindow();
531    const platform = window.navigator.platform;
532    const ua = userAgent || window.navigator.userAgent;
533    const device = {
534      ios: false,
535      android: false
536    };
537    const screenWidth = window.screen.width;
538    const screenHeight = window.screen.height;
539    const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
540    let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
541    const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
542    const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
543    const windows = platform === 'Win32';
544    let macos = platform === 'MacIntel';
545
546    // iPadOs 13 fix
547    const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
548    if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
549      ipad = ua.match(/(Version)\/([\d.]+)/);
550      if (!ipad) ipad = [0, 1, '13_0_0'];
551      macos = false;
552    }
553
554    // Android
555    if (android && !windows) {
556      device.os = 'android';
557      device.android = true;
558    }
559    if (ipad || iphone || ipod) {
560      device.os = 'ios';
561      device.ios = true;
562    }
563
564    // Export object
565    return device;
566  }
567  function getDevice(overrides) {
568    if (overrides === void 0) {
569      overrides = {};
570    }
571    if (!deviceCached) {
572      deviceCached = calcDevice(overrides);
573    }
574    return deviceCached;
575  }
576
577  let browser;
578  function calcBrowser() {
579    const window = getWindow();
580    const device = getDevice();
581    let needPerspectiveFix = false;
582    function isSafari() {
583      const ua = window.navigator.userAgent.toLowerCase();
584      return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
585    }
586    if (isSafari()) {
587      const ua = String(window.navigator.userAgent);
588      if (ua.includes('Version/')) {
589        const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
590        needPerspectiveFix = major < 16 || major === 16 && minor < 2;
591      }
592    }
593    const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
594    const isSafariBrowser = isSafari();
595    const need3dFix = isSafariBrowser || isWebView && device.ios;
596    return {
597      isSafari: needPerspectiveFix || isSafariBrowser,
598      needPerspectiveFix,
599      need3dFix,
600      isWebView
601    };
602  }
603  function getBrowser() {
604    if (!browser) {
605      browser = calcBrowser();
606    }
607    return browser;
608  }
609
610  function Resize(_ref) {
611    let {
612      swiper,
613      on,
614      emit
615    } = _ref;
616    const window = getWindow();
617    let observer = null;
618    let animationFrame = null;
619    const resizeHandler = () => {
620      if (!swiper || swiper.destroyed || !swiper.initialized) return;
621      emit('beforeResize');
622      emit('resize');
623    };
624    const createObserver = () => {
625      if (!swiper || swiper.destroyed || !swiper.initialized) return;
626      observer = new ResizeObserver(entries => {
627        animationFrame = window.requestAnimationFrame(() => {
628          const {
629            width,
630            height
631          } = swiper;
632          let newWidth = width;
633          let newHeight = height;
634          entries.forEach(_ref2 => {
635            let {
636              contentBoxSize,
637              contentRect,
638              target
639            } = _ref2;
640            if (target && target !== swiper.el) return;
641            newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
642            newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
643          });
644          if (newWidth !== width || newHeight !== height) {
645            resizeHandler();
646          }
647        });
648      });
649      observer.observe(swiper.el);
650    };
651    const removeObserver = () => {
652      if (animationFrame) {
653        window.cancelAnimationFrame(animationFrame);
654      }
655      if (observer && observer.unobserve && swiper.el) {
656        observer.unobserve(swiper.el);
657        observer = null;
658      }
659    };
660    const orientationChangeHandler = () => {
661      if (!swiper || swiper.destroyed || !swiper.initialized) return;
662      emit('orientationchange');
663    };
664    on('init', () => {
665      if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
666        createObserver();
667        return;
668      }
669      window.addEventListener('resize', resizeHandler);
670      window.addEventListener('orientationchange', orientationChangeHandler);
671    });
672    on('destroy', () => {
673      removeObserver();
674      window.removeEventListener('resize', resizeHandler);
675      window.removeEventListener('orientationchange', orientationChangeHandler);
676    });
677  }
678
679  function Observer(_ref) {
680    let {
681      swiper,
682      extendParams,
683      on,
684      emit
685    } = _ref;
686    const observers = [];
687    const window = getWindow
vendor: 9,007 bytes, lines 687-944
687();
688    const attach = function (target, options) {
689      if (options === void 0) {
690        options = {};
691      }
692      const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
693      const observer = new ObserverFunc(mutations => {
694        // The observerUpdate event should only be triggered
695        // once despite the number of mutations.  Additional
696        // triggers are redundant and are very costly
697        if (swiper.__preventObserver__) return;
698        if (mutations.length === 1) {
699          emit('observerUpdate', mutations[0]);
700          return;
701        }
702        const observerUpdate = function observerUpdate() {
703          emit('observerUpdate', mutations[0]);
704        };
705        if (window.requestAnimationFrame) {
706          window.requestAnimationFrame(observerUpdate);
707        } else {
708          window.setTimeout(observerUpdate, 0);
709        }
710      });
711      observer.observe(target, {
712        attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
713        childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,
714        characterData: typeof options.characterData === 'undefined' ? true : options.characterData
715      });
716      observers.push(observer);
717    };
718    const init = () => {
719      if (!swiper.params.observer) return;
720      if (swiper.params.observeParents) {
721        const containerParents = elementParents(swiper.hostEl);
722        for (let i = 0; i < containerParents.length; i += 1) {
723          attach(containerParents[i]);
724        }
725      }
726      // Observe container
727      attach(swiper.hostEl, {
728        childList: swiper.params.observeSlideChildren
729      });
730
731      // Observe wrapper
732      attach(swiper.wrapperEl, {
733        attributes: false
734      });
735    };
736    const destroy = () => {
737      observers.forEach(observer => {
738        observer.disconnect();
739      });
740      observers.splice(0, observers.length);
741    };
742    extendParams({
743      observer: false,
744      observeParents: false,
745      observeSlideChildren: false
746    });
747    on('init', init);
748    on('destroy', destroy);
749  }
750
751  /* eslint-disable no-underscore-dangle */
752
753  var eventsEmitter = {
754    on(events, handler, priority) {
755      const self = this;
756      if (!self.eventsListeners || self.destroyed) return self;
757      if (typeof handler !== 'function') return self;
758      const method = priority ? 'unshift' : 'push';
759      events.split(' ').forEach(event => {
760        if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
761        self.eventsListeners[event][method](handler);
762      });
763      return self;
764    },
765    once(events, handler, priority) {
766      const self = this;
767      if (!self.eventsListeners || self.destroyed) return self;
768      if (typeof handler !== 'function') return self;
769      function onceHandler() {
770        self.off(events, onceHandler);
771        if (onceHandler.__emitterProxy) {
772          delete onceHandler.__emitterProxy;
773        }
774        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
775          args[_key] = arguments[_key];
776        }
777        handler.apply(self, args);
778      }
779      onceHandler.__emitterProxy = handler;
780      return self.on(events, onceHandler, priority);
781    },
782    onAny(handler, priority) {
783      const self = this;
784      if (!self.eventsListeners || self.destroyed) return self;
785      if (typeof handler !== 'function') return self;
786      const method = priority ? 'unshift' : 'push';
787      if (self.eventsAnyListeners.indexOf(handler) < 0) {
788        self.eventsAnyListeners[method](handler);
789      }
790      return self;
791    },
792    offAny(handler) {
793      const self = this;
794      if (!self.eventsListeners || self.destroyed) return self;
795      if (!self.eventsAnyListeners) return self;
796      const index = self.eventsAnyListeners.indexOf(handler);
797      if (index >= 0) {
798        self.eventsAnyListeners.splice(index, 1);
799      }
800      return self;
801    },
802    off(events, handler) {
803      const self = this;
804      if (!self.eventsListeners || self.destroyed) return self;
805      if (!self.eventsListeners) return self;
806      events.split(' ').forEach(event => {
807        if (typeof handler === 'undefined') {
808          self.eventsListeners[event] = [];
809        } else if (self.eventsListeners[event]) {
810          self.eventsListeners[event].forEach((eventHandler, index) => {
811            if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
812              self.eventsListeners[event].splice(index, 1);
813            }
814          });
815        }
816      });
817      return self;
818    },
819    emit() {
820      const self = this;
821      if (!self.eventsListeners || self.destroyed) return self;
822      if (!self.eventsListeners) return self;
823      let events;
824      let data;
825      let context;
826      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
827        args[_key2] = arguments[_key2];
828      }
829      if (typeof args[0] === 'string' || Array.isArray(args[0])) {
830        events = args[0];
831        data = args.slice(1, args.length);
832        context = self;
833      } else {
834        events = args[0].events;
835        data = args[0].data;
836        context = args[0].context || self;
837      }
838      data.unshift(context);
839      const eventsArray = Array.isArray(events) ? events : events.split(' ');
840      eventsArray.forEach(event => {
841        if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
842          self.eventsAnyListeners.forEach(eventHandler => {
843            eventHandler.apply(context, [event, ...data]);
844          });
845        }
846        if (self.eventsListeners && self.eventsListeners[event]) {
847          self.eventsListeners[event].forEach(eventHandler => {
848            eventHandler.apply(context, data);
849          });
850        }
851      });
852      return self;
853    }
854  };
855
856  function updateSize() {
857    const swiper = this;
858    let width;
859    let height;
860    const el = swiper.el;
861    if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
862      width = swiper.params.width;
863    } else {
864      width = el.clientWidth;
865    }
866    if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
867      height = swiper.params.height;
868    } else {
869      height = el.clientHeight;
870    }
871    if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
872      return;
873    }
874
875    // Subtract paddings
876    width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);
877    height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);
878    if (Number.isNaN(width)) width = 0;
879    if (Number.isNaN(height)) height = 0;
880    Object.assign(swiper, {
881      width,
882      height,
883      size: swiper.isHorizontal() ? width : height
884    });
885  }
886
887  function updateSlides() {
888    const swiper = this;
889    function getDirectionPropertyValue(node, label) {
890      return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
891    }
892    const params = swiper.params;
893    const {
894      wrapperEl,
895      slidesEl,
896      size: swiperSize,
897      rtlTranslate: rtl,
898      wrongRTL
899    } = swiper;
900    const isVirtual = swiper.virtual && params.virtual.enabled;
901    const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
902    const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);
903    const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
904    let snapGrid = [];
905    const slidesGrid = [];
906    const slidesSizesGrid = [];
907    let offsetBefore = params.slidesOffsetBefore;
908    if (typeof offsetBefore === 'function') {
909      offsetBefore = params.slidesOffsetBefore.call(swiper);
910    }
911    let offsetAfter = params.slidesOffsetAfter;
912    if (typeof offsetAfter === 'function') {
913      offsetAfter = params.slidesOffsetAfter.call(swiper);
914    }
915    const previousSnapGridLength = swiper.snapGrid.length;
916    const previousSlidesGridLength = swiper.slidesGrid.length;
917    let spaceBetween = params.spaceBetween;
918    let slidePosition = -offsetBefore;
919    let prevSlideSize = 0;
920    let index = 0;
921    if (typeof swiperSize === 'undefined') {
922      return;
923    }
924    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
925      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
926    } else if (typeof spaceBetween === 'string') {
927      spaceBetween = parseFloat(spaceBetween);
928    }
929    swiper.virtualSize = -spaceBetween;
930
931    // reset margins
932    slides.forEach(slideEl => {
933      if (rtl) {
934        slideEl.style.marginLeft = '';
935      } else {
936        slideEl.style.marginRight = '';
937      }
938      slideEl.style.marginBottom = '';
939      slideEl.style.marginTop = '';
940    });
941
942    // reset cssMode offsets
943    if (params.centeredSlides && params.cssMode) {
944      setCSSProperty
944(wrapperEl, '--swiper-centered-offset-before', '');
945      setCSSProperty
vendor: 7,943 bytes, lines 945-1130
945(wrapperEl, '--swiper-centered-offset-after', '');
946    }
947    const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
948    if (gridEnabled) {
949      swiper.grid.initSlides(slides);
950    } else if (swiper.grid) {
951      swiper.grid.unsetSlides();
952    }
953
954    // Calc slides
955    let slideSize;
956    const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
957      return typeof params.breakpoints[key].slidesPerView !== 'undefined';
958    }).length > 0;
959    for (let i = 0; i < slidesLength; i += 1) {
960      slideSize = 0;
961      let slide;
962      if (slides[i]) slide = slides[i];
963      if (gridEnabled) {
964        swiper.grid.updateSlide(i, slide, slides);
965      }
966      if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line
967
968      if (params.slidesPerView === 'auto') {
969        if (shouldResetSlideSize) {
970          slides[i].style[swiper.getDirectionLabel('width')] = ``;
971        }
972        const slideStyles = getComputedStyle(slide);
973        const currentTransform = slide.style.transform;
974        const currentWebKitTransform = slide.style.webkitTransform;
975        if (currentTransform) {
976          slide.style.transform = 'none';
977        }
978        if (currentWebKitTransform) {
979          slide.style.webkitTransform = 'none';
980        }
981        if (params.roundLengths) {
982          slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);
983        } else {
984          // eslint-disable-next-line
985          const width = getDirectionPropertyValue(slideStyles, 'width');
986          const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
987          const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
988          const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
989          const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
990          const boxSizing = slideStyles.getPropertyValue('box-sizing');
991          if (boxSizing && boxSizing === 'border-box') {
992            slideSize = width + marginLeft + marginRight;
993          } else {
994            const {
995              clientWidth,
996              offsetWidth
997            } = slide;
998            slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
999          }
1000        }
1001        if (currentTransform) {
1002          slide.style.transform = currentTransform;
1003        }
1004        if (currentWebKitTransform) {
1005          slide.style.webkitTransform = currentWebKitTransform;
1006        }
1007        if (params.roundLengths) slideSize = Math.floor(slideSize);
1008      } else {
1009        slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
1010        if (params.roundLengths) slideSize = Math.floor(slideSize);
1011        if (slides[i]) {
1012          slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;
1013        }
1014      }
1015      if (slides[i]) {
1016        slides[i].swiperSlideSize = slideSize;
1017      }
1018      slidesSizesGrid.push(slideSize);
1019      if (params.centeredSlides) {
1020        slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
1021        if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
1022        if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
1023        if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
1024        if (params.roundLengths) slidePosition = Math.floor(slidePosition);
1025        if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
1026        slidesGrid.push(slidePosition);
1027      } else {
1028        if (params.roundLengths) slidePosition = Math.floor(slidePosition);
1029        if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
1030        slidesGrid.push(slidePosition);
1031        slidePosition = slidePosition + slideSize + spaceBetween;
1032      }
1033      swiper.virtualSize += slideSize + spaceBetween;
1034      prevSlideSize = slideSize;
1035      index += 1;
1036    }
1037    swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
1038    if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
1039      wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
1040    }
1041    if (params.setWrapperSize) {
1042      wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
1043    }
1044    if (gridEnabled) {
1045      swiper.grid.updateWrapperSize(slideSize, snapGrid);
1046    }
1047
1048    // Remove last grid elements depending on width
1049    if (!params.centeredSlides) {
1050      const newSlidesGrid = [];
1051      for (let i = 0; i < snapGrid.length; i += 1) {
1052        let slidesGridItem = snapGrid[i];
1053        if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
1054        if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
1055          newSlidesGrid.push(slidesGridItem);
1056        }
1057      }
1058      snapGrid = newSlidesGrid;
1059      if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
1060        snapGrid.push(swiper.virtualSize - swiperSize);
1061      }
1062    }
1063    if (isVirtual && params.loop) {
1064      const size = slidesSizesGrid[0] + spaceBetween;
1065      if (params.slidesPerGroup > 1) {
1066        const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);
1067        const groupSize = size * params.slidesPerGroup;
1068        for (let i = 0; i < groups; i += 1) {
1069          snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);
1070        }
1071      }
1072      for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {
1073        if (params.slidesPerGroup === 1) {
1074          snapGrid.push(snapGrid[snapGrid.length - 1] + size);
1075        }
1076        slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);
1077        swiper.virtualSize += size;
1078      }
1079    }
1080    if (snapGrid.length === 0) snapGrid = [0];
1081    if (spaceBetween !== 0) {
1082      const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');
1083      slides.filter((_, slideIndex) => {
1084        if (!params.cssMode || params.loop) return true;
1085        if (slideIndex === slides.length - 1) {
1086          return false;
1087        }
1088        return true;
1089      }).forEach(slideEl => {
1090        slideEl.style[key] = `${spaceBetween}px`;
1091      });
1092    }
1093    if (params.centeredSlides && params.centeredSlidesBounds) {
1094      let allSlidesSize = 0;
1095      slidesSizesGrid.forEach(slideSizeValue => {
1096        allSlidesSize += slideSizeValue + (spaceBetween || 0);
1097      });
1098      allSlidesSize -= spaceBetween;
1099      const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;
1100      snapGrid = snapGrid.map(snap => {
1101        if (snap <= 0) return -offsetBefore;
1102        if (snap > maxSnap) return maxSnap + offsetAfter;
1103        return snap;
1104      });
1105    }
1106    if (params.centerInsufficientSlides) {
1107      let allSlidesSize = 0;
1108      slidesSizesGrid.forEach(slideSizeValue => {
1109        allSlidesSize += slideSizeValue + (spaceBetween || 0);
1110      });
1111      allSlidesSize -= spaceBetween;
1112      const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);
1113      if (allSlidesSize + offsetSize < swiperSize) {
1114        const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
1115        snapGrid.forEach((snap, snapIndex) => {
1116          snapGrid[snapIndex] = snap - allSlidesOffset;
1117        });
1118        slidesGrid.forEach((snap, snapIndex) => {
1119          slidesGrid[snapIndex] = snap + allSlidesOffset;
1120        });
1121      }
1122    }
1123    Object.assign(swiper, {
1124      slides,
1125      snapGrid,
1126      slidesGrid,
1127      slidesSizesGrid
1128    });
1129    if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
1130      setCSSProperty
1130(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
1131      setCSSProperty
vendor: 9,653 bytes, lines 1131-1368
1131(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
1132      const addToSnapGrid = -swiper.snapGrid[0];
1133      const addToSlidesGrid = -swiper.slidesGrid[0];
1134      swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
1135      swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
1136    }
1137    if (slidesLength !== previousSlidesLength) {
1138      swiper.emit('slidesLengthChange');
1139    }
1140    if (snapGrid.length !== previousSnapGridLength) {
1141      if (swiper.params.watchOverflow) swiper.checkOverflow();
1142      swiper.emit('snapGridLengthChange');
1143    }
1144    if (slidesGrid.length !== previousSlidesGridLength) {
1145      swiper.emit('slidesGridLengthChange');
1146    }
1147    if (params.watchSlidesProgress) {
1148      swiper.updateSlidesOffset();
1149    }
1150    swiper.emit('slidesUpdated');
1151    if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
1152      const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
1153      const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);
1154      if (slidesLength <= params.maxBackfaceHiddenSlides) {
1155        if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);
1156      } else if (hasClassBackfaceClassAdded) {
1157        swiper.el.classList.remove(backFaceHiddenClass);
1158      }
1159    }
1160  }
1161
1162  function updateAutoHeight(speed) {
1163    const swiper = this;
1164    const activeSlides = [];
1165    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
1166    let newHeight = 0;
1167    let i;
1168    if (typeof speed === 'number') {
1169      swiper.setTransition(speed);
1170    } else if (speed === true) {
1171      swiper.setTransition(swiper.params.speed);
1172    }
1173    const getSlideByIndex = index => {
1174      if (isVirtual) {
1175        return swiper.slides[swiper.getSlideIndexByData(index)];
1176      }
1177      return swiper.slides[index];
1178    };
1179    // Find slides currently in view
1180    if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
1181      if (swiper.params.centeredSlides) {
1182        (swiper.visibleSlides || []).forEach(slide => {
1183          activeSlides.push(slide);
1184        });
1185      } else {
1186        for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
1187          const index = swiper.activeIndex + i;
1188          if (index > swiper.slides.length && !isVirtual) break;
1189          activeSlides.push(getSlideByIndex(index));
1190        }
1191      }
1192    } else {
1193      activeSlides.push(getSlideByIndex(swiper.activeIndex));
1194    }
1195
1196    // Find new height from highest slide in view
1197    for (i = 0; i < activeSlides.length; i += 1) {
1198      if (typeof activeSlides[i] !== 'undefined') {
1199        const height = activeSlides[i].offsetHeight;
1200        newHeight = height > newHeight ? height : newHeight;
1201      }
1202    }
1203
1204    // Update Height
1205    if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
1206  }
1207
1208  function updateSlidesOffset() {
1209    const swiper = this;
1210    const slides = swiper.slides;
1211    // eslint-disable-next-line
1212    const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
1213    for (let i = 0; i < slides.length; i += 1) {
1214      slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
1215    }
1216  }
1217
1218  const toggleSlideClasses$1 = (slideEl, condition, className) => {
1219    if (condition && !slideEl.classList.contains(className)) {
1220      slideEl.classList.add(className);
1221    } else if (!condition && slideEl.classList.contains(className)) {
1222      slideEl.classList.remove(className);
1223    }
1224  };
1225  function updateSlidesProgress(translate) {
1226    if (translate === void 0) {
1227      translate = this && this.translate || 0;
1228    }
1229    const swiper = this;
1230    const params = swiper.params;
1231    const {
1232      slides,
1233      rtlTranslate: rtl,
1234      snapGrid
1235    } = swiper;
1236    if (slides.length === 0) return;
1237    if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
1238    let offsetCenter = -translate;
1239    if (rtl) offsetCenter = translate;
1240    swiper.visibleSlidesIndexes = [];
1241    swiper.visibleSlides = [];
1242    let spaceBetween = params.spaceBetween;
1243    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
1244      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
1245    } else if (typeof spaceBetween === 'string') {
1246      spaceBetween = parseFloat(spaceBetween);
1247    }
1248    for (let i = 0; i < slides.length; i += 1) {
1249      const slide = slides[i];
1250      let slideOffset = slide.swiperSlideOffset;
1251      if (params.cssMode && params.centeredSlides) {
1252        slideOffset -= slides[0].swiperSlideOffset;
1253      }
1254      const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
1255      const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
1256      const slideBefore = -(offsetCenter - slideOffset);
1257      const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
1258      const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
1259      const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
1260      if (isVisible) {
1261        swiper.visibleSlides.push(slide);
1262        swiper.visibleSlidesIndexes.push(i);
1263      }
1264      toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);
1265      toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);
1266      slide.progress = rtl ? -slideProgress : slideProgress;
1267      slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
1268    }
1269  }
1270
1271  function updateProgress(translate) {
1272    const swiper = this;
1273    if (typeof translate === 'undefined') {
1274      const multiplier = swiper.rtlTranslate ? -1 : 1;
1275      // eslint-disable-next-line
1276      translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
1277    }
1278    const params = swiper.params;
1279    const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
1280    let {
1281      progress,
1282      isBeginning,
1283      isEnd,
1284      progressLoop
1285    } = swiper;
1286    const wasBeginning = isBeginning;
1287    const wasEnd = isEnd;
1288    if (translatesDiff === 0) {
1289      progress = 0;
1290      isBeginning = true;
1291      isEnd = true;
1292    } else {
1293      progress = (translate - swiper.minTranslate()) / translatesDiff;
1294      const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;
1295      const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;
1296      isBeginning = isBeginningRounded || progress <= 0;
1297      isEnd = isEndRounded || progress >= 1;
1298      if (isBeginningRounded) progress = 0;
1299      if (isEndRounded) progress = 1;
1300    }
1301    if (params.loop) {
1302      const firstSlideIndex = swiper.getSlideIndexByData(0);
1303      const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);
1304      const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];
1305      const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];
1306      const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];
1307      const translateAbs = Math.abs(translate);
1308      if (translateAbs >= firstSlideTranslate) {
1309        progressLoop = (translateAbs - firstSlideTranslate) / translateMax;
1310      } else {
1311        progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;
1312      }
1313      if (progressLoop > 1) progressLoop -= 1;
1314    }
1315    Object.assign(swiper, {
1316      progress,
1317      progressLoop,
1318      isBeginning,
1319      isEnd
1320    });
1321    if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
1322    if (isBeginning && !wasBeginning) {
1323      swiper.emit('reachBeginning toEdge');
1324    }
1325    if (isEnd && !wasEnd) {
1326      swiper.emit('reachEnd toEdge');
1327    }
1328    if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
1329      swiper.emit('fromEdge');
1330    }
1331    swiper.emit('progress', progress);
1332  }
1333
1334  const toggleSlideClasses = (slideEl, condition, className) => {
1335    if (condition && !slideEl.classList.contains(className)) {
1336      slideEl.classList.add(className);
1337    } else if (!condition && slideEl.classList.contains(className)) {
1338      slideEl.classList.remove(className);
1339    }
1340  };
1341  function updateSlidesClasses() {
1342    const swiper = this;
1343    const {
1344      slides,
1345      params,
1346      slidesEl,
1347      activeIndex
1348    } = swiper;
1349    const isVirtual = swiper.virtual && params.virtual.enabled;
1350    const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
1351    const getFilteredSlide = selector => {
1352      return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
1353    };
1354    let activeSlide;
1355    let prevSlide;
1356    let nextSlide;
1357    if (isVirtual) {
1358      if (params.loop) {
1359        let slideIndex = activeIndex - swiper.virtual.slidesBefore;
1360        if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;
1361        if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;
1362        activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`);
1363      } else {
1364        activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`);
1365      }
1366    } else {
1367      if (gridEnabled) {
1368        activeSlide = slides.fi
1368lter(slideEl => slideEl.column === activeIndex)[0];
1369        nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];
1370        prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]
vendor: 6,254 bytes, lines 1370-1535
1370;
1371      } else {
1372        activeSlide = slides[activeIndex];
1373      }
1374    }
1375    if (activeSlide) {
1376      if (!gridEnabled) {
1377        // Next Slide
1378        nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
1379        if (params.loop && !nextSlide) {
1380          nextSlide = slides[0];
1381        }
1382
1383        // Prev Slide
1384        prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
1385        if (params.loop && !prevSlide === 0) {
1386          prevSlide = slides[slides.length - 1];
1387        }
1388      }
1389    }
1390    slides.forEach(slideEl => {
1391      toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
1392      toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
1393      toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
1394    });
1395    swiper.emitSlidesClasses();
1396  }
1397
1398  const processLazyPreloader = (swiper, imageEl) => {
1399    if (!swiper || swiper.destroyed || !swiper.params) return;
1400    const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
1401    const slideEl = imageEl.closest(slideSelector());
1402    if (slideEl) {
1403      let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);
1404      if (!lazyEl && swiper.isElement) {
1405        if (slideEl.shadowRoot) {
1406          lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
1407        } else {
1408          // init later
1409          requestAnimationFrame(() => {
1410            if (slideEl.shadowRoot) {
1411              lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
1412              if (lazyEl) lazyEl.remove();
1413            }
1414          });
1415        }
1416      }
1417      if (lazyEl) lazyEl.remove();
1418    }
1419  };
1420  const unlazy = (swiper, index) => {
1421    if (!swiper.slides[index]) return;
1422    const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
1423    if (imageEl) imageEl.removeAttribute('loading');
1424  };
1425  const preload = swiper => {
1426    if (!swiper || swiper.destroyed || !swiper.params) return;
1427    let amount = swiper.params.lazyPreloadPrevNext;
1428    const len = swiper.slides.length;
1429    if (!len || !amount || amount < 0) return;
1430    amount = Math.min(amount, len);
1431    const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
1432    const activeIndex = swiper.activeIndex;
1433    if (swiper.params.grid && swiper.params.grid.rows > 1) {
1434      const activeColumn = activeIndex;
1435      const preloadColumns = [activeColumn - amount];
1436      preloadColumns.push(...Array.from({
1437        length: amount
1438      }).map((_, i) => {
1439        return activeColumn + slidesPerView + i;
1440      }));
1441      swiper.slides.forEach((slideEl, i) => {
1442        if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
1443      });
1444      return;
1445    }
1446    const slideIndexLastInView = activeIndex + slidesPerView - 1;
1447    if (swiper.params.rewind || swiper.params.loop) {
1448      for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
1449        const realIndex = (i % len + len) % len;
1450        if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
1451      }
1452    } else {
1453      for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
1454        if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
1455          unlazy(swiper, i);
1456        }
1457      }
1458    }
1459  };
1460
1461  function getActiveIndexByTranslate(swiper) {
1462    const {
1463      slidesGrid,
1464      params
1465    } = swiper;
1466    const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
1467    let activeIndex;
1468    for (let i = 0; i < slidesGrid.length; i += 1) {
1469      if (typeof slidesGrid[i + 1] !== 'undefined') {
1470        if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
1471          activeIndex = i;
1472        } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
1473          activeIndex = i + 1;
1474        }
1475      } else if (translate >= slidesGrid[i]) {
1476        activeIndex = i;
1477      }
1478    }
1479    // Normalize slideIndex
1480    if (params.normalizeSlideIndex) {
1481      if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
1482    }
1483    return activeIndex;
1484  }
1485  function updateActiveIndex(newActiveIndex) {
1486    const swiper = this;
1487    const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
1488    const {
1489      snapGrid,
1490      params,
1491      activeIndex: previousIndex,
1492      realIndex: previousRealIndex,
1493      snapIndex: previousSnapIndex
1494    } = swiper;
1495    let activeIndex = newActiveIndex;
1496    let snapIndex;
1497    const getVirtualRealIndex = aIndex => {
1498      let realIndex = aIndex - swiper.virtual.slidesBefore;
1499      if (realIndex < 0) {
1500        realIndex = swiper.virtual.slides.length + realIndex;
1501      }
1502      if (realIndex >= swiper.virtual.slides.length) {
1503        realIndex -= swiper.virtual.slides.length;
1504      }
1505      return realIndex;
1506    };
1507    if (typeof activeIndex === 'undefined') {
1508      activeIndex = getActiveIndexByTranslate(swiper);
1509    }
1510    if (snapGrid.indexOf(translate) >= 0) {
1511      snapIndex = snapGrid.indexOf(translate);
1512    } else {
1513      const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
1514      snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
1515    }
1516    if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
1517    if (activeIndex === previousIndex && !swiper.params.loop) {
1518      if (snapIndex !== previousSnapIndex) {
1519        swiper.snapIndex = snapIndex;
1520        swiper.emit('snapIndexChange');
1521      }
1522      return;
1523    }
1524    if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
1525      swiper.realIndex = getVirtualRealIndex(activeIndex);
1526      return;
1527    }
1528    const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
1529
1530    // Get real index
1531    let realIndex;
1532    if (swiper.virtual && params.virtual.enabled && params.loop) {
1533      realIndex = getVirtualRealIndex(activeIndex);
1534    } else if (gridEnabled) {
1535      const firstSlideInColumn = swiper.slides.fi
1535lter(slideEl => slideEl.column === activeIndex)[0]
vendor: 8,348 bytes, lines 1535-1817
1535;
1536      let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
1537      if (Number.isNaN(activeSlideIndex)) {
1538        activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);
1539      }
1540      realIndex = Math.floor(activeSlideIndex / params.grid.rows);
1541    } else if (swiper.slides[activeIndex]) {
1542      const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');
1543      if (slideIndex) {
1544        realIndex = parseInt(slideIndex, 10);
1545      } else {
1546        realIndex = activeIndex;
1547      }
1548    } else {
1549      realIndex = activeIndex;
1550    }
1551    Object.assign(swiper, {
1552      previousSnapIndex,
1553      snapIndex,
1554      previousRealIndex,
1555      realIndex,
1556      previousIndex,
1557      activeIndex
1558    });
1559    if (swiper.initialized) {
1560      preload(swiper);
1561    }
1562    swiper.emit('activeIndexChange');
1563    swiper.emit('snapIndexChange');
1564    if (swiper.initialized || swiper.params.runCallbacksOnInit) {
1565      if (previousRealIndex !== realIndex) {
1566        swiper.emit('realIndexChange');
1567      }
1568      swiper.emit('slideChange');
1569    }
1570  }
1571
1572  function updateClickedSlide(el, path) {
1573    const swiper = this;
1574    const params = swiper.params;
1575    let slide = el.closest(`.${params.slideClass}, swiper-slide`);
1576    if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
1577      [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {
1578        if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {
1579          slide = pathEl;
1580        }
1581      });
1582    }
1583    let slideFound = false;
1584    let slideIndex;
1585    if (slide) {
1586      for (let i = 0; i < swiper.slides.length; i += 1) {
1587        if (swiper.slides[i] === slide) {
1588          slideFound = true;
1589          slideIndex = i;
1590          break;
1591        }
1592      }
1593    }
1594    if (slide && slideFound) {
1595      swiper.clickedSlide = slide;
1596      if (swiper.virtual && swiper.params.virtual.enabled) {
1597        swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);
1598      } else {
1599        swiper.clickedIndex = slideIndex;
1600      }
1601    } else {
1602      swiper.clickedSlide = undefined;
1603      swiper.clickedIndex = undefined;
1604      return;
1605    }
1606    if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
1607      swiper.slideToClickedSlide();
1608    }
1609  }
1610
1611  var update = {
1612    updateSize,
1613    updateSlides,
1614    updateAutoHeight,
1615    updateSlidesOffset,
1616    updateSlidesProgress,
1617    updateProgress,
1618    updateSlidesClasses,
1619    updateActiveIndex,
1620    updateClickedSlide
1621  };
1622
1623  function getSwiperTranslate(axis) {
1624    if (axis === void 0) {
1625      axis = this.isHorizontal() ? 'x' : 'y';
1626    }
1627    const swiper = this;
1628    const {
1629      params,
1630      rtlTranslate: rtl,
1631      translate,
1632      wrapperEl
1633    } = swiper;
1634    if (params.virtualTranslate) {
1635      return rtl ? -translate : translate;
1636    }
1637    if (params.cssMode) {
1638      return translate;
1639    }
1640    let currentTranslate = getTranslate(wrapperEl, axis);
1641    currentTranslate += swiper.cssOverflowAdjustment();
1642    if (rtl) currentTranslate = -currentTranslate;
1643    return currentTranslate || 0;
1644  }
1645
1646  function setTranslate(translate, byController) {
1647    const swiper = this;
1648    const {
1649      rtlTranslate: rtl,
1650      params,
1651      wrapperEl,
1652      progress
1653    } = swiper;
1654    let x = 0;
1655    let y = 0;
1656    const z = 0;
1657    if (swiper.isHorizontal()) {
1658      x = rtl ? -translate : translate;
1659    } else {
1660      y = translate;
1661    }
1662    if (params.roundLengths) {
1663      x = Math.floor(x);
1664      y = Math.floor(y);
1665    }
1666    swiper.previousTranslate = swiper.translate;
1667    swiper.translate = swiper.isHorizontal() ? x : y;
1668    if (params.cssMode) {
1669      wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
1670    } else if (!params.virtualTranslate) {
1671      if (swiper.isHorizontal()) {
1672        x -= swiper.cssOverflowAdjustment();
1673      } else {
1674        y -= swiper.cssOverflowAdjustment();
1675      }
1676      wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
1677    }
1678
1679    // Check if we need to update progress
1680    let newProgress;
1681    const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
1682    if (translatesDiff === 0) {
1683      newProgress = 0;
1684    } else {
1685      newProgress = (translate - swiper.minTranslate()) / translatesDiff;
1686    }
1687    if (newProgress !== progress) {
1688      swiper.updateProgress(translate);
1689    }
1690    swiper.emit('setTranslate', swiper.translate, byController);
1691  }
1692
1693  function minTranslate() {
1694    return -this.snapGrid[0];
1695  }
1696
1697  function maxTranslate() {
1698    return -this.snapGrid[this.snapGrid.length - 1];
1699  }
1700
1701  function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
1702    if (translate === void 0) {
1703      translate = 0;
1704    }
1705    if (speed === void 0) {
1706      speed = this.params.speed;
1707    }
1708    if (runCallbacks === void 0) {
1709      runCallbacks = true;
1710    }
1711    if (translateBounds === void 0) {
1712      translateBounds = true;
1713    }
1714    const swiper = this;
1715    const {
1716      params,
1717      wrapperEl
1718    } = swiper;
1719    if (swiper.animating && params.preventInteractionOnTransition) {
1720      return false;
1721    }
1722    const minTranslate = swiper.minTranslate();
1723    const maxTranslate = swiper.maxTranslate();
1724    let newTranslate;
1725    if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;
1726
1727    // Update progress
1728    swiper.updateProgress(newTranslate);
1729    if (params.cssMode) {
1730      const isH = swiper.isHorizontal();
1731      if (speed === 0) {
1732        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
1733      } else {
1734        if (!swiper.support.smoothScroll) {
1735          animateCSSModeScroll({
1736            swiper,
1737            targetPosition: -newTranslate,
1738            side: isH ? 'left' : 'top'
1739          });
1740          return true;
1741        }
1742        wrapperEl.scrollTo({
1743          [isH ? 'left' : 'top']: -newTranslate,
1744          behavior: 'smooth'
1745        });
1746      }
1747      return true;
1748    }
1749    if (speed === 0) {
1750      swiper.setTransition(0);
1751      swiper.setTranslate(newTranslate);
1752      if (runCallbacks) {
1753        swiper.emit('beforeTransitionStart', speed, internal);
1754        swiper.emit('transitionEnd');
1755      }
1756    } else {
1757      swiper.setTransition(speed);
1758      swiper.setTranslate(newTranslate);
1759      if (runCallbacks) {
1760        swiper.emit('beforeTransitionStart', speed, internal);
1761        swiper.emit('transitionStart');
1762      }
1763      if (!swiper.animating) {
1764        swiper.animating = true;
1765        if (!swiper.onTranslateToWrapperTransitionEnd) {
1766          swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
1767            if (!swiper || swiper.destroyed) return;
1768            if (e.target !== this) return;
1769            swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
1770            swiper.onTranslateToWrapperTransitionEnd = null;
1771            delete swiper.onTranslateToWrapperTransitionEnd;
1772            swiper.animating = false;
1773            if (runCallbacks) {
1774              swiper.emit('transitionEnd');
1775            }
1776          };
1777        }
1778        swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
1779      }
1780    }
1781    return true;
1782  }
1783
1784  var translate = {
1785    getTranslate: getSwiperTranslate,
1786    setTranslate,
1787    minTranslate,
1788    maxTranslate,
1789    translateTo
1790  };
1791
1792  function setTransition(duration, byController) {
1793    const swiper = this;
1794    if (!swiper.params.cssMode) {
1795      swiper.wrapperEl.style.transitionDuration = `${duration}ms`;
1796      swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';
1797    }
1798    swiper.emit('setTransition', duration, byController);
1799  }
1800
1801  function transitionEmit(_ref) {
1802    let {
1803      swiper,
1804      runCallbacks,
1805      direction,
1806      step
1807    } = _ref;
1808    const {
1809      activeIndex,
1810      previousIndex
1811    } = swiper;
1812    let dir = direction;
1813    if (!dir) {
1814      if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
1815    }
1816    swiper.emit(`transition${step}`);
1817    if (runCallbacks && 
vendor: 3,350 bytes, lines 1817-1929
1817activeIndex !== previousIndex) {
1818      if (dir === 'reset') {
1819        swiper.emit(`slideResetTransition${step}`);
1820        return;
1821      }
1822      swiper.emit(`slideChangeTransition${step}`);
1823      if (dir === 'next') {
1824        swiper.emit(`slideNextTransition${step}`);
1825      } else {
1826        swiper.emit(`slidePrevTransition${step}`);
1827      }
1828    }
1829  }
1830
1831  function transitionStart(runCallbacks, direction) {
1832    if (runCallbacks === void 0) {
1833      runCallbacks = true;
1834    }
1835    const swiper = this;
1836    const {
1837      params
1838    } = swiper;
1839    if (params.cssMode) return;
1840    if (params.autoHeight) {
1841      swiper.updateAutoHeight();
1842    }
1843    transitionEmit({
1844      swiper,
1845      runCallbacks,
1846      direction,
1847      step: 'Start'
1848    });
1849  }
1850
1851  function transitionEnd(runCallbacks, direction) {
1852    if (runCallbacks === void 0) {
1853      runCallbacks = true;
1854    }
1855    const swiper = this;
1856    const {
1857      params
1858    } = swiper;
1859    swiper.animating = false;
1860    if (params.cssMode) return;
1861    swiper.setTransition(0);
1862    transitionEmit({
1863      swiper,
1864      runCallbacks,
1865      direction,
1866      step: 'End'
1867    });
1868  }
1869
1870  var transition = {
1871    setTransition,
1872    transitionStart,
1873    transitionEnd
1874  };
1875
1876  function slideTo(index, speed, runCallbacks, internal, initial) {
1877    if (index === void 0) {
1878      index = 0;
1879    }
1880    if (runCallbacks === void 0) {
1881      runCallbacks = true;
1882    }
1883    if (typeof index === 'string') {
1884      index = parseInt(index, 10);
1885    }
1886    const swiper = this;
1887    let slideIndex = index;
1888    if (slideIndex < 0) slideIndex = 0;
1889    const {
1890      params,
1891      snapGrid,
1892      slidesGrid,
1893      previousIndex,
1894      activeIndex,
1895      rtlTranslate: rtl,
1896      wrapperEl,
1897      enabled
1898    } = swiper;
1899    if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {
1900      return false;
1901    }
1902    if (typeof speed === 'undefined') {
1903      speed = swiper.params.speed;
1904    }
1905    const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
1906    let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
1907    if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
1908    const translate = -snapGrid[snapIndex];
1909    // Normalize slideIndex
1910    if (params.normalizeSlideIndex) {
1911      for (let i = 0; i < slidesGrid.length; i += 1) {
1912        const normalizedTranslate = -Math.floor(translate * 100);
1913        const normalizedGrid = Math.floor(slidesGrid[i] * 100);
1914        const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
1915        if (typeof slidesGrid[i + 1] !== 'undefined') {
1916          if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
1917            slideIndex = i;
1918          } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
1919            slideIndex = i + 1;
1920          }
1921        } else if (normalizedTranslate >= normalizedGrid) {
1922          slideIndex = i;
1923        }
1924      }
1925    }
1926    // Directions locks
1927    if (swiper.initialized && slideIndex !== activeIndex) {
1928      if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
1929        return false;
vendor: 8,697 bytes, lines 1930-2169
1930      }
1931      if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
1932        if ((activeIndex || 0) !== slideIndex) {
1933          return false;
1934        }
1935      }
1936    }
1937    if (slideIndex !== (previousIndex || 0) && runCallbacks) {
1938      swiper.emit('beforeSlideChangeStart');
1939    }
1940
1941    // Update progress
1942    swiper.updateProgress(translate);
1943    let direction;
1944    if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';
1945
1946    // initial virtual
1947    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
1948    const isInitialVirtual = isVirtual && initial;
1949    // Update Index
1950    if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {
1951      swiper.updateActiveIndex(slideIndex);
1952      // Update Height
1953      if (params.autoHeight) {
1954        swiper.updateAutoHeight();
1955      }
1956      swiper.updateSlidesClasses();
1957      if (params.effect !== 'slide') {
1958        swiper.setTranslate(translate);
1959      }
1960      if (direction !== 'reset') {
1961        swiper.transitionStart(runCallbacks, direction);
1962        swiper.transitionEnd(runCallbacks, direction);
1963      }
1964      return false;
1965    }
1966    if (params.cssMode) {
1967      const isH = swiper.isHorizontal();
1968      const t = rtl ? translate : -translate;
1969      if (speed === 0) {
1970        if (isVirtual) {
1971          swiper.wrapperEl.style.scrollSnapType = 'none';
1972          swiper._immediateVirtual = true;
1973        }
1974        if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {
1975          swiper._cssModeVirtualInitialSet = true;
1976          requestAnimationFrame(() => {
1977            wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
1978          });
1979        } else {
1980          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
1981        }
1982        if (isVirtual) {
1983          requestAnimationFrame(() => {
1984            swiper.wrapperEl.style.scrollSnapType = '';
1985            swiper._immediateVirtual = false;
1986          });
1987        }
1988      } else {
1989        if (!swiper.support.smoothScroll) {
1990          animateCSSModeScroll({
1991            swiper,
1992            targetPosition: t,
1993            side: isH ? 'left' : 'top'
1994          });
1995          return true;
1996        }
1997        wrapperEl.scrollTo({
1998          [isH ? 'left' : 'top']: t,
1999          behavior: 'smooth'
2000        });
2001      }
2002      return true;
2003    }
2004    swiper.setTransition(speed);
2005    swiper.setTranslate(translate);
2006    swiper.updateActiveIndex(slideIndex);
2007    swiper.updateSlidesClasses();
2008    swiper.emit('beforeTransitionStart', speed, internal);
2009    swiper.transitionStart(runCallbacks, direction);
2010    if (speed === 0) {
2011      swiper.transitionEnd(runCallbacks, direction);
2012    } else if (!swiper.animating) {
2013      swiper.animating = true;
2014      if (!swiper.onSlideToWrapperTransitionEnd) {
2015        swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
2016          if (!swiper || swiper.destroyed) return;
2017          if (e.target !== this) return;
2018          swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
2019          swiper.onSlideToWrapperTransitionEnd = null;
2020          delete swiper.onSlideToWrapperTransitionEnd;
2021          swiper.transitionEnd(runCallbacks, direction);
2022        };
2023      }
2024      swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
2025    }
2026    return true;
2027  }
2028
2029  function slideToLoop(index, speed, runCallbacks, internal) {
2030    if (index === void 0) {
2031      index = 0;
2032    }
2033    if (runCallbacks === void 0) {
2034      runCallbacks = true;
2035    }
2036    if (typeof index === 'string') {
2037      const indexAsNumber = parseInt(index, 10);
2038      index = indexAsNumber;
2039    }
2040    const swiper = this;
2041    if (swiper.destroyed) return;
2042    if (typeof speed === 'undefined') {
2043      speed = swiper.params.speed;
2044    }
2045    const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
2046    let newIndex = index;
2047    if (swiper.params.loop) {
2048      if (swiper.virtual && swiper.params.virtual.enabled) {
2049        // eslint-disable-next-line
2050        newIndex = newIndex + swiper.virtual.slidesBefore;
2051      } else {
2052        let targetSlideIndex;
2053        if (gridEnabled) {
2054          const slideIndex = newIndex * swiper.params.grid.rows;
2055          targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
2056        } else {
2057          targetSlideIndex = swiper.getSlideIndexByData(newIndex);
2058        }
2059        const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;
2060        const {
2061          centeredSlides
2062        } = swiper.params;
2063        let slidesPerView = swiper.params.slidesPerView;
2064        if (slidesPerView === 'auto') {
2065          slidesPerView = swiper.slidesPerViewDynamic();
2066        } else {
2067          slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
2068          if (centeredSlides && slidesPerView % 2 === 0) {
2069            slidesPerView = slidesPerView + 1;
2070          }
2071        }
2072        let needLoopFix = cols - targetSlideIndex < slidesPerView;
2073        if (centeredSlides) {
2074          needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
2075        }
2076        if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {
2077          needLoopFix = false;
2078        }
2079        if (needLoopFix) {
2080          const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';
2081          swiper.loopFix({
2082            direction,
2083            slideTo: true,
2084            activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
2085            slideRealIndex: direction === 'next' ? swiper.realIndex : undefined
2086          });
2087        }
2088        if (gridEnabled) {
2089          const slideIndex = newIndex * swiper.params.grid.rows;
2090          newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
2091        } else {
2092          newIndex = swiper.getSlideIndexByData(newIndex);
2093        }
2094      }
2095    }
2096    requestAnimationFrame(() => {
2097      swiper.slideTo(newIndex, speed, runCallbacks, internal);
2098    });
2099    return swiper;
2100  }
2101
2102  /* eslint no-unused-vars: "off" */
2103  function slideNext(speed, runCallbacks, internal) {
2104    if (runCallbacks === void 0) {
2105      runCallbacks = true;
2106    }
2107    const swiper = this;
2108    const {
2109      enabled,
2110      params,
2111      animating
2112    } = swiper;
2113    if (!enabled || swiper.destroyed) return swiper;
2114    if (typeof speed === 'undefined') {
2115      speed = swiper.params.speed;
2116    }
2117    let perGroup = params.slidesPerGroup;
2118    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
2119      perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
2120    }
2121    const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
2122    const isVirtual = swiper.virtual && params.virtual.enabled;
2123    if (params.loop) {
2124      if (animating && !isVirtual && params.loopPreventsSliding) return false;
2125      swiper.loopFix({
2126        direction: 'next'
2127      });
2128      // eslint-disable-next-line
2129      swiper._clientLeft = swiper.wrapperEl.clientLeft;
2130      if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {
2131        requestAnimationFrame(() => {
2132          swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
2133        });
2134        return true;
2135      }
2136    }
2137    if (params.rewind && swiper.isEnd) {
2138      return swiper.slideTo(0, speed, runCallbacks, internal);
2139    }
2140    return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
2141  }
2142
2143  /* eslint no-unused-vars: "off" */
2144  function slidePrev(speed, runCallbacks, internal) {
2145    if (runCallbacks === void 0) {
2146      runCallbacks = true;
2147    }
2148    const swiper = this;
2149    const {
2150      params,
2151      snapGrid,
2152      slidesGrid,
2153      rtlTranslate,
2154      enabled,
2155      animating
2156    } = swiper;
2157    if (!enabled || swiper.destroyed) return swiper;
2158    if (typeof speed === 'undefined') {
2159      speed = swiper.params.speed;
2160    }
2161    const isVirtual = swiper.virtual && params.virtual.enabled;
2162    if (params.loop) {
2163      if (animating && !isVirtual && params.loopPreventsSliding) return false;
2164      swiper.loopFix({
2165        direction: 'prev'
2166      });
2167      // eslint-disable-next-line
2168      swiper._clientLeft = swiper.wrapperEl.clientLeft;
2169    }
vendor: 11,243 bytes, lines 2170-2443
2170    const translate = rtlTranslate ? swiper.translate : -swiper.translate;
2171    function normalize(val) {
2172      if (val < 0) return -Math.floor(Math.abs(val));
2173      return Math.floor(val);
2174    }
2175    const normalizedTranslate = normalize(translate);
2176    const normalizedSnapGrid = snapGrid.map(val => normalize(val));
2177    let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
2178    if (typeof prevSnap === 'undefined' && params.cssMode) {
2179      let prevSnapIndex;
2180      snapGrid.forEach((snap, snapIndex) => {
2181        if (normalizedTranslate >= snap) {
2182          // prevSnap = snap;
2183          prevSnapIndex = snapIndex;
2184        }
2185      });
2186      if (typeof prevSnapIndex !== 'undefined') {
2187        prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
2188      }
2189    }
2190    let prevIndex = 0;
2191    if (typeof prevSnap !== 'undefined') {
2192      prevIndex = slidesGrid.indexOf(prevSnap);
2193      if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
2194      if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
2195        prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
2196        prevIndex = Math.max(prevIndex, 0);
2197      }
2198    }
2199    if (params.rewind && swiper.isBeginning) {
2200      const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
2201      return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
2202    } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
2203      requestAnimationFrame(() => {
2204        swiper.slideTo(prevIndex, speed, runCallbacks, internal);
2205      });
2206      return true;
2207    }
2208    return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
2209  }
2210
2211  /* eslint no-unused-vars: "off" */
2212  function slideReset(speed, runCallbacks, internal) {
2213    if (runCallbacks === void 0) {
2214      runCallbacks = true;
2215    }
2216    const swiper = this;
2217    if (swiper.destroyed) return;
2218    if (typeof speed === 'undefined') {
2219      speed = swiper.params.speed;
2220    }
2221    return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
2222  }
2223
2224  /* eslint no-unused-vars: "off" */
2225  function slideToClosest(speed, runCallbacks, internal, threshold) {
2226    if (runCallbacks === void 0) {
2227      runCallbacks = true;
2228    }
2229    if (threshold === void 0) {
2230      threshold = 0.5;
2231    }
2232    const swiper = this;
2233    if (swiper.destroyed) return;
2234    if (typeof speed === 'undefined') {
2235      speed = swiper.params.speed;
2236    }
2237    let index = swiper.activeIndex;
2238    const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
2239    const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
2240    const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
2241    if (translate >= swiper.snapGrid[snapIndex]) {
2242      // The current translate is on or after the current snap index, so the choice
2243      // is between the current index and the one after it.
2244      const currentSnap = swiper.snapGrid[snapIndex];
2245      const nextSnap = swiper.snapGrid[snapIndex + 1];
2246      if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
2247        index += swiper.params.slidesPerGroup;
2248      }
2249    } else {
2250      // The current translate is before the current snap index, so the choice
2251      // is between the current index and the one before it.
2252      const prevSnap = swiper.snapGrid[snapIndex - 1];
2253      const currentSnap = swiper.snapGrid[snapIndex];
2254      if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
2255        index -= swiper.params.slidesPerGroup;
2256      }
2257    }
2258    index = Math.max(index, 0);
2259    index = Math.min(index, swiper.slidesGrid.length - 1);
2260    return swiper.slideTo(index, speed, runCallbacks, internal);
2261  }
2262
2263  function slideToClickedSlide() {
2264    const swiper = this;
2265    if (swiper.destroyed) return;
2266    const {
2267      params,
2268      slidesEl
2269    } = swiper;
2270    const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
2271    let slideToIndex = swiper.clickedIndex;
2272    let realIndex;
2273    const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;
2274    if (params.loop) {
2275      if (swiper.animating) return;
2276      realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
2277      if (params.centeredSlides) {
2278        if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
2279          swiper.loopFix();
2280          slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
2281          nextTick(() => {
2282            swiper.slideTo(slideToIndex);
2283          });
2284        } else {
2285          swiper.slideTo(slideToIndex);
2286        }
2287      } else if (slideToIndex > swiper.slides.length - slidesPerView) {
2288        swiper.loopFix();
2289        slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
2290        nextTick(() => {
2291          swiper.slideTo(slideToIndex);
2292        });
2293      } else {
2294        swiper.slideTo(slideToIndex);
2295      }
2296    } else {
2297      swiper.slideTo(slideToIndex);
2298    }
2299  }
2300
2301  var slide = {
2302    slideTo,
2303    slideToLoop,
2304    slideNext,
2305    slidePrev,
2306    slideReset,
2307    slideToClosest,
2308    slideToClickedSlide
2309  };
2310
2311  function loopCreate(slideRealIndex) {
2312    const swiper = this;
2313    const {
2314      params,
2315      slidesEl
2316    } = swiper;
2317    if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
2318    const initSlides = () => {
2319      const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);
2320      slides.forEach((el, index) => {
2321        el.setAttribute('data-swiper-slide-index', index);
2322      });
2323    };
2324    const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
2325    const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
2326    const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
2327    const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
2328    const addBlankSlides = amountOfSlides => {
2329      for (let i = 0; i < amountOfSlides; i += 1) {
2330        const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);
2331        swiper.slidesEl.append(slideEl);
2332      }
2333    };
2334    if (shouldFillGroup) {
2335      if (params.loopAddBlankSlides) {
2336        const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;
2337        addBlankSlides(slidesToAdd);
2338        swiper.recalcSlides();
2339        swiper.updateSlides();
2340      } else {
2341        showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
2342      }
2343      initSlides();
2344    } else if (shouldFillGrid) {
2345      if (params.loopAddBlankSlides) {
2346        const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;
2347        addBlankSlides(slidesToAdd);
2348        swiper.recalcSlides();
2349        swiper.updateSlides();
2350      } else {
2351        showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
2352      }
2353      initSlides();
2354    } else {
2355      initSlides();
2356    }
2357    swiper.loopFix({
2358      slideRealIndex,
2359      direction: params.centeredSlides ? undefined : 'next'
2360    });
2361  }
2362
2363  function loopFix(_temp) {
2364    let {
2365      slideRealIndex,
2366      slideTo = true,
2367      direction,
2368      setTranslate,
2369      activeSlideIndex,
2370      byController,
2371      byMousewheel
2372    } = _temp === void 0 ? {} : _temp;
2373    const swiper = this;
2374    if (!swiper.params.loop) return;
2375    swiper.emit('beforeLoopFix');
2376    const {
2377      slides,
2378      allowSlidePrev,
2379      allowSlideNext,
2380      slidesEl,
2381      params
2382    } = swiper;
2383    const {
2384      centeredSlides
2385    } = params;
2386    swiper.allowSlidePrev = true;
2387    swiper.allowSlideNext = true;
2388    if (swiper.virtual && params.virtual.enabled) {
2389      if (slideTo) {
2390        if (!params.centeredSlides && swiper.snapIndex === 0) {
2391          swiper.slideTo(swiper.virtual.slides.length, 0, false, true);
2392        } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {
2393          swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);
2394        } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {
2395          swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);
2396        }
2397      }
2398      swiper.allowSlidePrev = allowSlidePrev;
2399      swiper.allowSlideNext = allowSlideNext;
2400      swiper.emit('loopFix');
2401      return;
2402    }
2403    let slidesPerView = params.slidesPerView;
2404    if (slidesPerView === 'auto') {
2405      slidesPerView = swiper.slidesPerViewDynamic();
2406    } else {
2407      slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));
2408      if (centeredSlides && slidesPerView % 2 === 0) {
2409        slidesPerView = slidesPerView + 1;
2410      }
2411    }
2412    const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
2413    let loopedSlides = slidesPerGroup;
2414    if (loopedSlides % slidesPerGroup !== 0) {
2415      loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;
2416    }
2417    loopedSlides += params.loopAdditionalSlides;
2418    swiper.loopedSlides = loopedSlides;
2419    const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
2420    if (slides.length < slidesPerView + loopedSlides) {
2421      showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');
2422    } else if (gridEnabled && params.grid.fill === 'row') {
2423      showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');
2424    }
2425    const prependSlidesIndexes = [];
2426    const appendSlidesIndexes = [];
2427    let activeIndex = swiper.activeIndex;
2428    if (typeof activeSlideIndex === 'undefined') {
2429      activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);
2430    } else {
2431      activeIndex = activeSlideIndex;
2432    }
2433    const isNext = direction === 'next' || !direction;
2434    const isPrev = direction === 'prev' || !direction;
2435    let slidesPrepended = 0;
2436    let slidesAppended = 0;
2437    const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;
2438    const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;
2439    const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);
2440    // prepend last slides before start
2441    if (activeColIndexWithShift < loopedSlides) {
2442      slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);
2443      for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
vendor: 5,443 bytes, lines 2444-2576
2444        const index = i - Math.floor(i / cols) * cols;
2445        if (gridEnabled) {
2446          const colIndexToPrepend = cols - index - 1;
2447          for (let i = slides.length - 1; i >= 0; i -= 1) {
2448            if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);
2449          }
2450          // slides.forEach((slide, slideIndex) => {
2451          //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);
2452          // });
2453        } else {
2454          prependSlidesIndexes.push(cols - index - 1);
2455        }
2456      }
2457    } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {
2458      slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);
2459      for (let i = 0; i < slidesAppended; i += 1) {
2460        const index = i - Math.floor(i / cols) * cols;
2461        if (gridEnabled) {
2462          slides.forEach((slide, slideIndex) => {
2463            if (slide.column === index) appendSlidesIndexes.push(slideIndex);
2464          });
2465        } else {
2466          appendSlidesIndexes.push(index);
2467        }
2468      }
2469    }
2470    swiper.__preventObserver__ = true;
2471    requestAnimationFrame(() => {
2472      swiper.__preventObserver__ = false;
2473    });
2474    if (isPrev) {
2475      prependSlidesIndexes.forEach(index => {
2476        slides[index].swiperLoopMoveDOM = true;
2477        slidesEl.prepend(slides[index]);
2478        slides[index].swiperLoopMoveDOM = false;
2479      });
2480    }
2481    if (isNext) {
2482      appendSlidesIndexes.forEach(index => {
2483        slides[index].swiperLoopMoveDOM = true;
2484        slidesEl.append(slides[index]);
2485        slides[index].swiperLoopMoveDOM = false;
2486      });
2487    }
2488    swiper.recalcSlides();
2489    if (params.slidesPerView === 'auto') {
2490      swiper.updateSlides();
2491    } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {
2492      swiper.slides.forEach((slide, slideIndex) => {
2493        swiper.grid.updateSlide(slideIndex, slide, swiper.slides);
2494      });
2495    }
2496    if (params.watchSlidesProgress) {
2497      swiper.updateSlidesOffset();
2498    }
2499    if (slideTo) {
2500      if (prependSlidesIndexes.length > 0 && isPrev) {
2501        if (typeof slideRealIndex === 'undefined') {
2502          const currentSlideTranslate = swiper.slidesGrid[activeIndex];
2503          const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];
2504          const diff = newSlideTranslate - currentSlideTranslate;
2505          if (byMousewheel) {
2506            swiper.setTranslate(swiper.translate - diff);
2507          } else {
2508            swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);
2509            if (setTranslate) {
2510              swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
2511              swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
2512            }
2513          }
2514        } else {
2515          if (setTranslate) {
2516            const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;
2517            swiper.slideTo(swiper.activeIndex + shift, 0, false, true);
2518            swiper.touchEventsData.currentTranslate = swiper.translate;
2519          }
2520        }
2521      } else if (appendSlidesIndexes.length > 0 && isNext) {
2522        if (typeof slideRealIndex === 'undefined') {
2523          const currentSlideTranslate = swiper.slidesGrid[activeIndex];
2524          const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];
2525          const diff = newSlideTranslate - currentSlideTranslate;
2526          if (byMousewheel) {
2527            swiper.setTranslate(swiper.translate - diff);
2528          } else {
2529            swiper.slideTo(activeIndex - slidesAppended, 0, false, true);
2530            if (setTranslate) {
2531              swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
2532              swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
2533            }
2534          }
2535        } else {
2536          const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;
2537          swiper.slideTo(swiper.activeIndex - shift, 0, false, true);
2538        }
2539      }
2540    }
2541    swiper.allowSlidePrev = allowSlidePrev;
2542    swiper.allowSlideNext = allowSlideNext;
2543    if (swiper.controller && swiper.controller.control && !byController) {
2544      const loopParams = {
2545        slideRealIndex,
2546        direction,
2547        setTranslate,
2548        activeSlideIndex,
2549        byController: true
2550      };
2551      if (Array.isArray(swiper.controller.control)) {
2552        swiper.controller.control.forEach(c => {
2553          if (!c.destroyed && c.params.loop) c.loopFix({
2554            ...loopParams,
2555            slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false
2556          });
2557        });
2558      } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {
2559        swiper.controller.control.loopFix({
2560          ...loopParams,
2561          slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false
2562        });
2563      }
2564    }
2565    swiper.emit('loopFix');
2566  }
2567
2568  function loopDestroy() {
2569    const swiper = this;
2570    const {
2571      params,
2572      slidesEl
2573    } = swiper;
2574    if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
2575    swiper.recalcSlides();
2576    const newSlidesOrder = [];
vendor: 5,514 bytes, lines 2577-2742
2577    swiper.slides.forEach(slideEl => {
2578      const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;
2579      newSlidesOrder[index] = slideEl;
2580    });
2581    swiper.slides.forEach(slideEl => {
2582      slideEl.removeAttribute('data-swiper-slide-index');
2583    });
2584    newSlidesOrder.forEach(slideEl => {
2585      slidesEl.append(slideEl);
2586    });
2587    swiper.recalcSlides();
2588    swiper.slideTo(swiper.realIndex, 0);
2589  }
2590
2591  var loop = {
2592    loopCreate,
2593    loopFix,
2594    loopDestroy
2595  };
2596
2597  function setGrabCursor(moving) {
2598    const swiper = this;
2599    if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
2600    const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
2601    if (swiper.isElement) {
2602      swiper.__preventObserver__ = true;
2603    }
2604    el.style.cursor = 'move';
2605    el.style.cursor = moving ? 'grabbing' : 'grab';
2606    if (swiper.isElement) {
2607      requestAnimationFrame(() => {
2608        swiper.__preventObserver__ = false;
2609      });
2610    }
2611  }
2612
2613  function unsetGrabCursor() {
2614    const swiper = this;
2615    if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
2616      return;
2617    }
2618    if (swiper.isElement) {
2619      swiper.__preventObserver__ = true;
2620    }
2621    swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
2622    if (swiper.isElement) {
2623      requestAnimationFrame(() => {
2624        swiper.__preventObserver__ = false;
2625      });
2626    }
2627  }
2628
2629  var grabCursor = {
2630    setGrabCursor,
2631    unsetGrabCursor
2632  };
2633
2634  // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
2635  function closestElement(selector, base) {
2636    if (base === void 0) {
2637      base = this;
2638    }
2639    function __closestFrom(el) {
2640      if (!el || el === getDocument() || el === getWindow()) return null;
2641      if (el.assignedSlot) el = el.assignedSlot;
2642      const found = el.closest(selector);
2643      if (!found && !el.getRootNode) {
2644        return null;
2645      }
2646      return found || __closestFrom(el.getRootNode().host);
2647    }
2648    return __closestFrom(base);
2649  }
2650  function preventEdgeSwipe(swiper, event, startX) {
2651    const window = getWindow();
2652    const {
2653      params
2654    } = swiper;
2655    const edgeSwipeDetection = params.edgeSwipeDetection;
2656    const edgeSwipeThreshold = params.edgeSwipeThreshold;
2657    if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
2658      if (edgeSwipeDetection === 'prevent') {
2659        event.preventDefault();
2660        return true;
2661      }
2662      return false;
2663    }
2664    return true;
2665  }
2666  function onTouchStart(event) {
2667    const swiper = this;
2668    const document = getDocument();
2669    let e = event;
2670    if (e.originalEvent) e = e.originalEvent;
2671    const data = swiper.touchEventsData;
2672    if (e.type === 'pointerdown') {
2673      if (data.pointerId !== null && data.pointerId !== e.pointerId) {
2674        return;
2675      }
2676      data.pointerId = e.pointerId;
2677    } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {
2678      data.touchId = e.targetTouches[0].identifier;
2679    }
2680    if (e.type === 'touchstart') {
2681      // don't proceed touch event
2682      preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
2683      return;
2684    }
2685    const {
2686      params,
2687      touches,
2688      enabled
2689    } = swiper;
2690    if (!enabled) return;
2691    if (!params.simulateTouch && e.pointerType === 'mouse') return;
2692    if (swiper.animating && params.preventInteractionOnTransition) {
2693      return;
2694    }
2695    if (!swiper.animating && params.cssMode && params.loop) {
2696      swiper.loopFix();
2697    }
2698    let targetEl = e.target;
2699    if (params.touchEventsTarget === 'wrapper') {
2700      if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;
2701    }
2702    if ('which' in e && e.which === 3) return;
2703    if ('button' in e && e.button > 0) return;
2704    if (data.isTouched && data.isMoved) return;
2705
2706    // change target el for shadow root component
2707    const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
2708    // eslint-disable-next-line
2709    const eventPath = e.composedPath ? e.composedPath() : e.path;
2710    if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {
2711      targetEl = eventPath[0];
2712    }
2713    const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
2714    const isTargetShadow = !!(e.target && e.target.shadowRoot);
2715
2716    // use closestElement for shadow root element to get the actual closest for nested shadow root element
2717    if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {
2718      swiper.allowClick = true;
2719      return;
2720    }
2721    if (params.swipeHandler) {
2722      if (!targetEl.closest(params.swipeHandler)) return;
2723    }
2724    touches.currentX = e.pageX;
2725    touches.currentY = e.pageY;
2726    const startX = touches.currentX;
2727    const startY = touches.currentY;
2728
2729    // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
2730
2731    if (!preventEdgeSwipe(swiper, e, startX)) {
2732      return;
2733    }
2734    Object.assign(data, {
2735      isTouched: true,
2736      isMoved: false,
2737      allowTouchCallbacks: true,
2738      isScrolling: undefined,
2739      startMoving: undefined
2740    });
2741    touches.startX = startX;
2742    touches.startY = startY;
vendor: 4,730 bytes, lines 2743-2872
2743    data.touchStartTime = now();
2744    swiper.allowClick = true;
2745    swiper.updateSize();
2746    swiper.swipeDirection = undefined;
2747    if (params.threshold > 0) data.allowThresholdMove = false;
2748    let preventDefault = true;
2749    if (targetEl.matches(data.focusableElements)) {
2750      preventDefault = false;
2751      if (targetEl.nodeName === 'SELECT') {
2752        data.isTouched = false;
2753      }
2754    }
2755    if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {
2756      document.activeElement.blur();
2757    }
2758    const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
2759    if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
2760      e.preventDefault();
2761    }
2762    if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
2763      swiper.freeMode.onTouchStart();
2764    }
2765    swiper.emit('touchStart', e);
2766  }
2767
2768  function onTouchMove(event) {
2769    const document = getDocument();
2770    const swiper = this;
2771    const data = swiper.touchEventsData;
2772    const {
2773      params,
2774      touches,
2775      rtlTranslate: rtl,
2776      enabled
2777    } = swiper;
2778    if (!enabled) return;
2779    if (!params.simulateTouch && event.pointerType === 'mouse') return;
2780    let e = event;
2781    if (e.originalEvent) e = e.originalEvent;
2782    if (e.type === 'pointermove') {
2783      if (data.touchId !== null) return; // return from pointer if we use touch
2784      const id = e.pointerId;
2785      if (id !== data.pointerId) return;
2786    }
2787    let targetTouch;
2788    if (e.type === 'touchmove') {
2789      targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];
2790      if (!targetTouch || targetTouch.identifier !== data.touchId) return;
2791    } else {
2792      targetTouch = e;
2793    }
2794    if (!data.isTouched) {
2795      if (data.startMoving && data.isScrolling) {
2796        swiper.emit('touchMoveOpposite', e);
2797      }
2798      return;
2799    }
2800    const pageX = targetTouch.pageX;
2801    const pageY = targetTouch.pageY;
2802    if (e.preventedByNestedSwiper) {
2803      touches.startX = pageX;
2804      touches.startY = pageY;
2805      return;
2806    }
2807    if (!swiper.allowTouchMove) {
2808      if (!e.target.matches(data.focusableElements)) {
2809        swiper.allowClick = false;
2810      }
2811      if (data.isTouched) {
2812        Object.assign(touches, {
2813          startX: pageX,
2814          startY: pageY,
2815          currentX: pageX,
2816          currentY: pageY
2817        });
2818        data.touchStartTime = now();
2819      }
2820      return;
2821    }
2822    if (params.touchReleaseOnEdges && !params.loop) {
2823      if (swiper.isVertical()) {
2824        // Vertical
2825        if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
2826          data.isTouched = false;
2827          data.isMoved = false;
2828          return;
2829        }
2830      } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {
2831        return;
2832      }
2833    }
2834    if (document.activeElement) {
2835      if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
2836        data.isMoved = true;
2837        swiper.allowClick = false;
2838        return;
2839      }
2840    }
2841    if (data.allowTouchCallbacks) {
2842      swiper.emit('touchMove', e);
2843    }
2844    touches.previousX = touches.currentX;
2845    touches.previousY = touches.currentY;
2846    touches.currentX = pageX;
2847    touches.currentY = pageY;
2848    const diffX = touches.currentX - touches.startX;
2849    const diffY = touches.currentY - touches.startY;
2850    if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
2851    if (typeof data.isScrolling === 'undefined') {
2852      let touchAngle;
2853      if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
2854        data.isScrolling = false;
2855      } else {
2856        // eslint-disable-next-line
2857        if (diffX * diffX + diffY * diffY >= 25) {
2858          touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
2859          data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
2860        }
2861      }
2862    }
2863    if (data.isScrolling) {
2864      swiper.emit('touchMoveOpposite', e);
2865    }
2866    if (typeof data.startMoving === 'undefined') {
2867      if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
2868        data.startMoving = true;
2869      }
2870    }
2871    if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {
2872      data.isTouched = false;
vendor: 6,762 bytes, lines 2873-3037
2873      return;
2874    }
2875    if (!data.startMoving) {
2876      return;
2877    }
2878    swiper.allowClick = false;
2879    if (!params.cssMode && e.cancelable) {
2880      e.preventDefault();
2881    }
2882    if (params.touchMoveStopPropagation && !params.nested) {
2883      e.stopPropagation();
2884    }
2885    let diff = swiper.isHorizontal() ? diffX : diffY;
2886    let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;
2887    if (params.oneWayMovement) {
2888      diff = Math.abs(diff) * (rtl ? 1 : -1);
2889      touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);
2890    }
2891    touches.diff = diff;
2892    diff *= params.touchRatio;
2893    if (rtl) {
2894      diff = -diff;
2895      touchesDiff = -touchesDiff;
2896    }
2897    const prevTouchesDirection = swiper.touchesDirection;
2898    swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
2899    swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';
2900    const isLoop = swiper.params.loop && !params.cssMode;
2901    const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;
2902    if (!data.isMoved) {
2903      if (isLoop && allowLoopFix) {
2904        swiper.loopFix({
2905          direction: swiper.swipeDirection
2906        });
2907      }
2908      data.startTranslate = swiper.getTranslate();
2909      swiper.setTransition(0);
2910      if (swiper.animating) {
2911        const evt = new window.CustomEvent('transitionend', {
2912          bubbles: true,
2913          cancelable: true,
2914          detail: {
2915            bySwiperTouchMove: true
2916          }
2917        });
2918        swiper.wrapperEl.dispatchEvent(evt);
2919      }
2920      data.allowMomentumBounce = false;
2921      // Grab Cursor
2922      if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
2923        swiper.setGrabCursor(true);
2924      }
2925      swiper.emit('sliderFirstMove', e);
2926    }
2927    let loopFixed;
2928    new Date().getTime();
2929    if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {
2930      Object.assign(touches, {
2931        startX: pageX,
2932        startY: pageY,
2933        currentX: pageX,
2934        currentY: pageY,
2935        startTranslate: data.currentTranslate
2936      });
2937      data.loopSwapReset = true;
2938      data.startTranslate = data.currentTranslate;
2939      return;
2940    }
2941    swiper.emit('sliderMove', e);
2942    data.isMoved = true;
2943    data.currentTranslate = diff + data.startTranslate;
2944    let disableParentSwiper = true;
2945    let resistanceRatio = params.resistanceRatio;
2946    if (params.touchReleaseOnEdges) {
2947      resistanceRatio = 0;
2948    }
2949    if (diff > 0) {
2950      if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {
2951        swiper.loopFix({
2952          direction: 'prev',
2953          setTranslate: true,
2954          activeSlideIndex: 0
2955        });
2956      }
2957      if (data.currentTranslate > swiper.minTranslate()) {
2958        disableParentSwiper = false;
2959        if (params.resistance) {
2960          data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
2961        }
2962      }
2963    } else if (diff < 0) {
2964      if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {
2965        swiper.loopFix({
2966          direction: 'next',
2967          setTranslate: true,
2968          activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))
2969        });
2970      }
2971      if (data.currentTranslate < swiper.maxTranslate()) {
2972        disableParentSwiper = false;
2973        if (params.resistance) {
2974          data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
2975        }
2976      }
2977    }
2978    if (disableParentSwiper) {
2979      e.preventedByNestedSwiper = true;
2980    }
2981
2982    // Directions locks
2983    if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
2984      data.currentTranslate = data.startTranslate;
2985    }
2986    if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
2987      data.currentTranslate = data.startTranslate;
2988    }
2989    if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
2990      data.currentTranslate = data.startTranslate;
2991    }
2992
2993    // Threshold
2994    if (params.threshold > 0) {
2995      if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
2996        if (!data.allowThresholdMove) {
2997          data.allowThresholdMove = true;
2998          touches.startX = touches.currentX;
2999          touches.startY = touches.currentY;
3000          data.currentTranslate = data.startTranslate;
3001          touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
3002          return;
3003        }
3004      } else {
3005        data.currentTranslate = data.startTranslate;
3006        return;
3007      }
3008    }
3009    if (!params.followFinger || params.cssMode) return;
3010
3011    // Update active index in free mode
3012    if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
3013      swiper.updateActiveIndex();
3014      swiper.updateSlidesClasses();
3015    }
3016    if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
3017      swiper.freeMode.onTouchMove();
3018    }
3019    // Update progress
3020    swiper.updateProgress(data.currentTranslate);
3021    // Update translate
3022    swiper.setTranslate(data.currentTranslate);
3023  }
3024
3025  function onTouchEnd(event) {
3026    const swiper = this;
3027    const data = swiper.touchEventsData;
3028    let e = event;
3029    if (e.originalEvent) e = e.originalEvent;
3030    let targetTouch;
3031    const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';
3032    if (!isTouchEvent) {
3033      if (data.touchId !== null) return; // return from pointer if we use touch
3034      if (e.pointerId !== data.pointerId) return;
3035      targetTouch = e;
3036    } else {
3037      targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]
vendor: 8,866 bytes, lines 3037-3300
3037;
3038      if (!targetTouch || targetTouch.identifier !== data.touchId) return;
3039    }
3040    if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {
3041      const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);
3042      if (!proceed) {
3043        return;
3044      }
3045    }
3046    data.pointerId = null;
3047    data.touchId = null;
3048    const {
3049      params,
3050      touches,
3051      rtlTranslate: rtl,
3052      slidesGrid,
3053      enabled
3054    } = swiper;
3055    if (!enabled) return;
3056    if (!params.simulateTouch && e.pointerType === 'mouse') return;
3057    if (data.allowTouchCallbacks) {
3058      swiper.emit('touchEnd', e);
3059    }
3060    data.allowTouchCallbacks = false;
3061    if (!data.isTouched) {
3062      if (data.isMoved && params.grabCursor) {
3063        swiper.setGrabCursor(false);
3064      }
3065      data.isMoved = false;
3066      data.startMoving = false;
3067      return;
3068    }
3069
3070    // Return Grab Cursor
3071    if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
3072      swiper.setGrabCursor(false);
3073    }
3074
3075    // Time diff
3076    const touchEndTime = now();
3077    const timeDiff = touchEndTime - data.touchStartTime;
3078
3079    // Tap, doubleTap, Click
3080    if (swiper.allowClick) {
3081      const pathTree = e.path || e.composedPath && e.composedPath();
3082      swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);
3083      swiper.emit('tap click', e);
3084      if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
3085        swiper.emit('doubleTap doubleClick', e);
3086      }
3087    }
3088    data.lastClickTime = now();
3089    nextTick(() => {
3090      if (!swiper.destroyed) swiper.allowClick = true;
3091    });
3092    if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {
3093      data.isTouched = false;
3094      data.isMoved = false;
3095      data.startMoving = false;
3096      return;
3097    }
3098    data.isTouched = false;
3099    data.isMoved = false;
3100    data.startMoving = false;
3101    let currentPos;
3102    if (params.followFinger) {
3103      currentPos = rtl ? swiper.translate : -swiper.translate;
3104    } else {
3105      currentPos = -data.currentTranslate;
3106    }
3107    if (params.cssMode) {
3108      return;
3109    }
3110    if (params.freeMode && params.freeMode.enabled) {
3111      swiper.freeMode.onTouchEnd({
3112        currentPos
3113      });
3114      return;
3115    }
3116
3117    // Find current slide
3118    const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;
3119    let stopIndex = 0;
3120    let groupSize = swiper.slidesSizesGrid[0];
3121    for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
3122      const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
3123      if (typeof slidesGrid[i + increment] !== 'undefined') {
3124        if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
3125          stopIndex = i;
3126          groupSize = slidesGrid[i + increment] - slidesGrid[i];
3127        }
3128      } else if (swipeToLast || currentPos >= slidesGrid[i]) {
3129        stopIndex = i;
3130        groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
3131      }
3132    }
3133    let rewindFirstIndex = null;
3134    let rewindLastIndex = null;
3135    if (params.rewind) {
3136      if (swiper.isBeginning) {
3137        rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
3138      } else if (swiper.isEnd) {
3139        rewindFirstIndex = 0;
3140      }
3141    }
3142    // Find current slide size
3143    const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
3144    const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
3145    if (timeDiff > params.longSwipesMs) {
3146      // Long touches
3147      if (!params.longSwipes) {
3148        swiper.slideTo(swiper.activeIndex);
3149        return;
3150      }
3151      if (swiper.swipeDirection === 'next') {
3152        if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
3153      }
3154      if (swiper.swipeDirection === 'prev') {
3155        if (ratio > 1 - params.longSwipesRatio) {
3156          swiper.slideTo(stopIndex + increment);
3157        } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
3158          swiper.slideTo(rewindLastIndex);
3159        } else {
3160          swiper.slideTo(stopIndex);
3161        }
3162      }
3163    } else {
3164      // Short swipes
3165      if (!params.shortSwipes) {
3166        swiper.slideTo(swiper.activeIndex);
3167        return;
3168      }
3169      const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
3170      if (!isNavButtonTarget) {
3171        if (swiper.swipeDirection === 'next') {
3172          swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
3173        }
3174        if (swiper.swipeDirection === 'prev') {
3175          swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
3176        }
3177      } else if (e.target === swiper.navigation.nextEl) {
3178        swiper.slideTo(stopIndex + increment);
3179      } else {
3180        swiper.slideTo(stopIndex);
3181      }
3182    }
3183  }
3184
3185  function onResize() {
3186    const swiper = this;
3187    const {
3188      params,
3189      el
3190    } = swiper;
3191    if (el && el.offsetWidth === 0) return;
3192
3193    // Breakpoints
3194    if (params.breakpoints) {
3195      swiper.setBreakpoint();
3196    }
3197
3198    // Save locks
3199    const {
3200      allowSlideNext,
3201      allowSlidePrev,
3202      snapGrid
3203    } = swiper;
3204    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
3205
3206    // Disable locks on resize
3207    swiper.allowSlideNext = true;
3208    swiper.allowSlidePrev = true;
3209    swiper.updateSize();
3210    swiper.updateSlides();
3211    swiper.updateSlidesClasses();
3212    const isVirtualLoop = isVirtual && params.loop;
3213    if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
3214      swiper.slideTo(swiper.slides.length - 1, 0, false, true);
3215    } else {
3216      if (swiper.params.loop && !isVirtual) {
3217        swiper.slideToLoop(swiper.realIndex, 0, false, true);
3218      } else {
3219        swiper.slideTo(swiper.activeIndex, 0, false, true);
3220      }
3221    }
3222    if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
3223      clearTimeout(swiper.autoplay.resizeTimeout);
3224      swiper.autoplay.resizeTimeout = setTimeout(() => {
3225        if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
3226          swiper.autoplay.resume();
3227        }
3228      }, 500);
3229    }
3230    // Return locks after resize
3231    swiper.allowSlidePrev = allowSlidePrev;
3232    swiper.allowSlideNext = allowSlideNext;
3233    if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
3234      swiper.checkOverflow();
3235    }
3236  }
3237
3238  function onClick(e) {
3239    const swiper = this;
3240    if (!swiper.enabled) return;
3241    if (!swiper.allowClick) {
3242      if (swiper.params.preventClicks) e.preventDefault();
3243      if (swiper.params.preventClicksPropagation && swiper.animating) {
3244        e.stopPropagation();
3245        e.stopImmediatePropagation();
3246      }
3247    }
3248  }
3249
3250  function onScroll() {
3251    const swiper = this;
3252    const {
3253      wrapperEl,
3254      rtlTranslate,
3255      enabled
3256    } = swiper;
3257    if (!enabled) return;
3258    swiper.previousTranslate = swiper.translate;
3259    if (swiper.isHorizontal()) {
3260      swiper.translate = -wrapperEl.scrollLeft;
3261    } else {
3262      swiper.translate = -wrapperEl.scrollTop;
3263    }
3264    // eslint-disable-next-line
3265    if (swiper.translate === 0) swiper.translate = 0;
3266    swiper.updateActiveIndex();
3267    swiper.updateSlidesClasses();
3268    let newProgress;
3269    const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
3270    if (translatesDiff === 0) {
3271      newProgress = 0;
3272    } else {
3273      newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
3274    }
3275    if (newProgress !== swiper.progress) {
3276      swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
3277    }
3278    swiper.emit('setTranslate', swiper.translate, false);
3279  }
3280
3281  function onLoad(e) {
3282    const swiper = this;
3283    processLazyPreloader(swiper, e.target);
3284    if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
3285      return;
3286    }
3287    swiper.update();
3288  }
3289
3290  function onDocumentTouchStart() {
3291    const swiper = this;
3292    if (swiper.documentTouchHandlerProceeded) return;
3293    swiper.documentTouchHandlerProceeded = true;
3294    if (swiper.params.touchReleaseOnEdges) {
3295      swiper.el.style.touchAction = 'auto';
3296    }
3297  }
3298
3299  const events = (swiper, method) => {
3300    const document = getDocument
vendor: 3,137 bytes, lines 3300-3412
3300();
3301    const {
3302      params,
3303      el,
3304      wrapperEl,
3305      device
3306    } = swiper;
3307    const capture = !!params.nested;
3308    const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
3309    const swiperMethod = method;
3310    if (!el || typeof el === 'string') return;
3311
3312    // Touch Events
3313    document[domMethod]('touchstart', swiper.onDocumentTouchStart, {
3314      passive: false,
3315      capture
3316    });
3317    el[domMethod]('touchstart', swiper.onTouchStart, {
3318      passive: false
3319    });
3320    el[domMethod]('pointerdown', swiper.onTouchStart, {
3321      passive: false
3322    });
3323    document[domMethod]('touchmove', swiper.onTouchMove, {
3324      passive: false,
3325      capture
3326    });
3327    document[domMethod]('pointermove', swiper.onTouchMove, {
3328      passive: false,
3329      capture
3330    });
3331    document[domMethod]('touchend', swiper.onTouchEnd, {
3332      passive: true
3333    });
3334    document[domMethod]('pointerup', swiper.onTouchEnd, {
3335      passive: true
3336    });
3337    document[domMethod]('pointercancel', swiper.onTouchEnd, {
3338      passive: true
3339    });
3340    document[domMethod]('touchcancel', swiper.onTouchEnd, {
3341      passive: true
3342    });
3343    document[domMethod]('pointerout', swiper.onTouchEnd, {
3344      passive: true
3345    });
3346    document[domMethod]('pointerleave', swiper.onTouchEnd, {
3347      passive: true
3348    });
3349    document[domMethod]('contextmenu', swiper.onTouchEnd, {
3350      passive: true
3351    });
3352
3353    // Prevent Links Clicks
3354    if (params.preventClicks || params.preventClicksPropagation) {
3355      el[domMethod]('click', swiper.onClick, true);
3356    }
3357    if (params.cssMode) {
3358      wrapperEl[domMethod]('scroll', swiper.onScroll);
3359    }
3360
3361    // Resize handler
3362    if (params.updateOnWindowResize) {
3363      swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);
3364    } else {
3365      swiper[swiperMethod]('observerUpdate', onResize, true);
3366    }
3367
3368    // Images loader
3369    el[domMethod]('load', swiper.onLoad, {
3370      capture: true
3371    });
3372  };
3373  function attachEvents() {
3374    const swiper = this;
3375    const {
3376      params
3377    } = swiper;
3378    swiper.onTouchStart = onTouchStart.bind(swiper);
3379    swiper.onTouchMove = onTouchMove.bind(swiper);
3380    swiper.onTouchEnd = onTouchEnd.bind(swiper);
3381    swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);
3382    if (params.cssMode) {
3383      swiper.onScroll = onScroll.bind(swiper);
3384    }
3385    swiper.onClick = onClick.bind(swiper);
3386    swiper.onLoad = onLoad.bind(swiper);
3387    events(swiper, 'on');
3388  }
3389  function detachEvents() {
3390    const swiper = this;
3391    events(swiper, 'off');
3392  }
3393  var events$1 = {
3394    attachEvents,
3395    detachEvents
3396  };
3397
3398  const isGridEnabled = (swiper, params) => {
3399    return swiper.grid && params.grid && params.grid.rows > 1;
3400  };
3401  function setBreakpoint() {
3402    const swiper = this;
3403    const {
3404      realIndex,
3405      initialized,
3406      params,
3407      el
3408    } = swiper;
3409    const breakpoints = params.breakpoints;
3410    if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;
3411
3412    // Get breakpoint for window width and update parameters
vendor: 3,397 bytes, lines 3413-3492
3413    const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);
3414    if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
3415    const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
3416    const breakpointParams = breakpointOnlyParams || swiper.originalParams;
3417    const wasMultiRow = isGridEnabled(swiper, params);
3418    const isMultiRow = isGridEnabled(swiper, breakpointParams);
3419    const wasGrabCursor = swiper.params.grabCursor;
3420    const isGrabCursor = breakpointParams.grabCursor;
3421    const wasEnabled = params.enabled;
3422    if (wasMultiRow && !isMultiRow) {
3423      el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
3424      swiper.emitContainerClasses();
3425    } else if (!wasMultiRow && isMultiRow) {
3426      el.classList.add(`${params.containerModifierClass}grid`);
3427      if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
3428        el.classList.add(`${params.containerModifierClass}grid-column`);
3429      }
3430      swiper.emitContainerClasses();
3431    }
3432    if (wasGrabCursor && !isGrabCursor) {
3433      swiper.unsetGrabCursor();
3434    } else if (!wasGrabCursor && isGrabCursor) {
3435      swiper.setGrabCursor();
3436    }
3437
3438    // Toggle navigation, pagination, scrollbar
3439    ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
3440      if (typeof breakpointParams[prop] === 'undefined') return;
3441      const wasModuleEnabled = params[prop] && params[prop].enabled;
3442      const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
3443      if (wasModuleEnabled && !isModuleEnabled) {
3444        swiper[prop].disable();
3445      }
3446      if (!wasModuleEnabled && isModuleEnabled) {
3447        swiper[prop].enable();
3448      }
3449    });
3450    const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
3451    const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
3452    const wasLoop = params.loop;
3453    if (directionChanged && initialized) {
3454      swiper.changeDirection();
3455    }
3456    extend(swiper.params, breakpointParams);
3457    const isEnabled = swiper.params.enabled;
3458    const hasLoop = swiper.params.loop;
3459    Object.assign(swiper, {
3460      allowTouchMove: swiper.params.allowTouchMove,
3461      allowSlideNext: swiper.params.allowSlideNext,
3462      allowSlidePrev: swiper.params.allowSlidePrev
3463    });
3464    if (wasEnabled && !isEnabled) {
3465      swiper.disable();
3466    } else if (!wasEnabled && isEnabled) {
3467      swiper.enable();
3468    }
3469    swiper.currentBreakpoint = breakpoint;
3470    swiper.emit('_beforeBreakpoint', breakpointParams);
3471    if (initialized) {
3472      if (needsReLoop) {
3473        swiper.loopDestroy();
3474        swiper.loopCreate(realIndex);
3475        swiper.updateSlides();
3476      } else if (!wasLoop && hasLoop) {
3477        swiper.loopCreate(realIndex);
3478        swiper.updateSlides();
3479      } else if (wasLoop && !hasLoop) {
3480        swiper.loopDestroy();
3481      }
3482    }
3483    swiper.emit('breakpoint', breakpointParams);
3484  }
3485
3486  function getBreakpoint(breakpoints, base, containerEl) {
3487    if (base === void 0) {
3488      base = 'window';
3489    }
3490    if (!breakpoints || base === 'container' && !containerEl) return undefined;
3491    let breakpoint = false;
3492    const window = getWindow
vendor: 7,245 bytes, lines 3492-3761
3492();
3493    const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
3494    const points = Object.keys(breakpoints).map(point => {
3495      if (typeof point === 'string' && point.indexOf('@') === 0) {
3496        const minRatio = parseFloat(point.substr(1));
3497        const value = currentHeight * minRatio;
3498        return {
3499          value,
3500          point
3501        };
3502      }
3503      return {
3504        value: point,
3505        point
3506      };
3507    });
3508    points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
3509    for (let i = 0; i < points.length; i += 1) {
3510      const {
3511        point,
3512        value
3513      } = points[i];
3514      if (base === 'window') {
3515        if (window.matchMedia(`(min-width: ${value}px)`).matches) {
3516          breakpoint = point;
3517        }
3518      } else if (value <= containerEl.clientWidth) {
3519        breakpoint = point;
3520      }
3521    }
3522    return breakpoint || 'max';
3523  }
3524
3525  var breakpoints = {
3526    setBreakpoint,
3527    getBreakpoint
3528  };
3529
3530  function prepareClasses(entries, prefix) {
3531    const resultClasses = [];
3532    entries.forEach(item => {
3533      if (typeof item === 'object') {
3534        Object.keys(item).forEach(classNames => {
3535          if (item[classNames]) {
3536            resultClasses.push(prefix + classNames);
3537          }
3538        });
3539      } else if (typeof item === 'string') {
3540        resultClasses.push(prefix + item);
3541      }
3542    });
3543    return resultClasses;
3544  }
3545  function addClasses() {
3546    const swiper = this;
3547    const {
3548      classNames,
3549      params,
3550      rtl,
3551      el,
3552      device
3553    } = swiper;
3554    // prettier-ignore
3555    const suffixes = prepareClasses(['initialized', params.direction, {
3556      'free-mode': swiper.params.freeMode && params.freeMode.enabled
3557    }, {
3558      'autoheight': params.autoHeight
3559    }, {
3560      'rtl': rtl
3561    }, {
3562      'grid': params.grid && params.grid.rows > 1
3563    }, {
3564      'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
3565    }, {
3566      'android': device.android
3567    }, {
3568      'ios': device.ios
3569    }, {
3570      'css-mode': params.cssMode
3571    }, {
3572      'centered': params.cssMode && params.centeredSlides
3573    }, {
3574      'watch-progress': params.watchSlidesProgress
3575    }], params.containerModifierClass);
3576    classNames.push(...suffixes);
3577    el.classList.add(...classNames);
3578    swiper.emitContainerClasses();
3579  }
3580
3581  function removeClasses() {
3582    const swiper = this;
3583    const {
3584      el,
3585      classNames
3586    } = swiper;
3587    if (!el || typeof el === 'string') return;
3588    el.classList.remove(...classNames);
3589    swiper.emitContainerClasses();
3590  }
3591
3592  var classes = {
3593    addClasses,
3594    removeClasses
3595  };
3596
3597  function checkOverflow() {
3598    const swiper = this;
3599    const {
3600      isLocked: wasLocked,
3601      params
3602    } = swiper;
3603    const {
3604      slidesOffsetBefore
3605    } = params;
3606    if (slidesOffsetBefore) {
3607      const lastSlideIndex = swiper.slides.length - 1;
3608      const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
3609      swiper.isLocked = swiper.size > lastSlideRightEdge;
3610    } else {
3611      swiper.isLocked = swiper.snapGrid.length === 1;
3612    }
3613    if (params.allowSlideNext === true) {
3614      swiper.allowSlideNext = !swiper.isLocked;
3615    }
3616    if (params.allowSlidePrev === true) {
3617      swiper.allowSlidePrev = !swiper.isLocked;
3618    }
3619    if (wasLocked && wasLocked !== swiper.isLocked) {
3620      swiper.isEnd = false;
3621    }
3622    if (wasLocked !== swiper.isLocked) {
3623      swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
3624    }
3625  }
3626  var checkOverflow$1 = {
3627    checkOverflow
3628  };
3629
3630  var defaults = {
3631    init: true,
3632    direction: 'horizontal',
3633    oneWayMovement: false,
3634    swiperElementNodeName: 'SWIPER-CONTAINER',
3635    touchEventsTarget: 'wrapper',
3636    initialSlide: 0,
3637    speed: 300,
3638    cssMode: false,
3639    updateOnWindowResize: true,
3640    resizeObserver: true,
3641    nested: false,
3642    createElements: false,
3643    eventsPrefix: 'swiper',
3644    enabled: true,
3645    focusableElements: 'input, select, option, textarea, button, video, label',
3646    // Overrides
3647    width: null,
3648    height: null,
3649    //
3650    preventInteractionOnTransition: false,
3651    // ssr
3652    userAgent: null,
3653    url: null,
3654    // To support iOS's swipe-to-go-back gesture (when being used in-app).
3655    edgeSwipeDetection: false,
3656    edgeSwipeThreshold: 20,
3657    // Autoheight
3658    autoHeight: false,
3659    // Set wrapper width
3660    setWrapperSize: false,
3661    // Virtual Translate
3662    virtualTranslate: false,
3663    // Effects
3664    effect: 'slide',
3665    // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
3666
3667    // Breakpoints
3668    breakpoints: undefined,
3669    breakpointsBase: 'window',
3670    // Slides grid
3671    spaceBetween: 0,
3672    slidesPerView: 1,
3673    slidesPerGroup: 1,
3674    slidesPerGroupSkip: 0,
3675    slidesPerGroupAuto: false,
3676    centeredSlides: false,
3677    centeredSlidesBounds: false,
3678    slidesOffsetBefore: 0,
3679    // in px
3680    slidesOffsetAfter: 0,
3681    // in px
3682    normalizeSlideIndex: true,
3683    centerInsufficientSlides: false,
3684    // Disable swiper and hide navigation when container not overflow
3685    watchOverflow: true,
3686    // Round length
3687    roundLengths: false,
3688    // Touches
3689    touchRatio: 1,
3690    touchAngle: 45,
3691    simulateTouch: true,
3692    shortSwipes: true,
3693    longSwipes: true,
3694    longSwipesRatio: 0.5,
3695    longSwipesMs: 300,
3696    followFinger: true,
3697    allowTouchMove: true,
3698    threshold: 5,
3699    touchMoveStopPropagation: false,
3700    touchStartPreventDefault: true,
3701    touchStartForcePreventDefault: false,
3702    touchReleaseOnEdges: false,
3703    // Unique Navigation Elements
3704    uniqueNavElements: true,
3705    // Resistance
3706    resistance: true,
3707    resistanceRatio: 0.85,
3708    // Progress
3709    watchSlidesProgress: false,
3710    // Cursor
3711    grabCursor: false,
3712    // Clicks
3713    preventClicks: true,
3714    preventClicksPropagation: true,
3715    slideToClickedSlide: false,
3716    // loop
3717    loop: false,
3718    loopAddBlankSlides: true,
3719    loopAdditionalSlides: 0,
3720    loopPreventsSliding: true,
3721    // rewind
3722    rewind: false,
3723    // Swiping/no swiping
3724    allowSlidePrev: true,
3725    allowSlideNext: true,
3726    swipeHandler: null,
3727    // '.swipe-handler',
3728    noSwiping: true,
3729    noSwipingClass: 'swiper-no-swiping',
3730    noSwipingSelector: null,
3731    // Passive Listeners
3732    passiveListeners: true,
3733    maxBackfaceHiddenSlides: 10,
3734    // NS
3735    containerModifierClass: 'swiper-',
3736    // NEW
3737    slideClass: 'swiper-slide',
3738    slideBlankClass: 'swiper-slide-blank',
3739    slideActiveClass: 'swiper-slide-active',
3740    slideVisibleClass: 'swiper-slide-visible',
3741    slideFullyVisibleClass: 'swiper-slide-fully-visible',
3742    slideNextClass: 'swiper-slide-next',
3743    slidePrevClass: 'swiper-slide-prev',
3744    wrapperClass: 'swiper-wrapper',
3745    lazyPreloaderClass: 'swiper-lazy-preloader',
3746    lazyPreloadPrevNext: 0,
3747    // Callbacks
3748    runCallbacksOnInit: true,
3749    // Internals
3750    _emitClasses: false
3751  };
3752
3753  function moduleExtendParams(params, allModulesParams) {
3754    return function extendParams(obj) {
3755      if (obj === void 0) {
3756        obj = {};
3757      }
3758      const moduleParamName = Object.keys(obj)[0];
3759      const moduleParams = obj[moduleParamName];
3760      if (typeof moduleParams !== 'object' || moduleParams === null) {
3761        extend
vendor: 1,554 bytes, lines 3761-3810
3761(allModulesParams, obj);
3762        return;
3763      }
3764      if (params[moduleParamName] === true) {
3765        params[moduleParamName] = {
3766          enabled: true
3767        };
3768      }
3769      if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {
3770        params[moduleParamName].auto = true;
3771      }
3772      if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {
3773        params[moduleParamName].auto = true;
3774      }
3775      if (!(moduleParamName in params && 'enabled' in moduleParams)) {
3776        extend(allModulesParams, obj);
3777        return;
3778      }
3779      if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
3780        params[moduleParamName].enabled = true;
3781      }
3782      if (!params[moduleParamName]) params[moduleParamName] = {
3783        enabled: false
3784      };
3785      extend(allModulesParams, obj);
3786    };
3787  }
3788
3789  /* eslint no-param-reassign: "off" */
3790  const prototypes = {
3791    eventsEmitter,
3792    update,
3793    translate,
3794    transition,
3795    slide,
3796    loop,
3797    grabCursor,
3798    events: events$1,
3799    breakpoints,
3800    checkOverflow: checkOverflow$1,
3801    classes
3802  };
3803  const extendedDefaults = {};
3804  class Swiper {
3805    constructor() {
3806      let el;
3807      let params;
3808      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3809        args[_key] = arguments[_key];
3810      }
vendor: 2,062 bytes, lines 3811-3868
3811      if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
3812        params = args[0];
3813      } else {
3814        [el, params] = args;
3815      }
3816      if (!params) params = {};
3817      params = extend({}, params);
3818      if (el && !params.el) params.el = el;
3819      const document = getDocument();
3820      if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {
3821        const swipers = [];
3822        document.querySelectorAll(params.el).forEach(containerEl => {
3823          const newParams = extend({}, params, {
3824            el: containerEl
3825          });
3826          swipers.push(new Swiper(newParams));
3827        });
3828        // eslint-disable-next-line no-constructor-return
3829        return swipers;
3830      }
3831
3832      // Swiper Instance
3833      const swiper = this;
3834      swiper.__swiper__ = true;
3835      swiper.support = getSupport();
3836      swiper.device = getDevice({
3837        userAgent: params.userAgent
3838      });
3839      swiper.browser = getBrowser();
3840      swiper.eventsListeners = {};
3841      swiper.eventsAnyListeners = [];
3842      swiper.modules = [...swiper.__modules__];
3843      if (params.modules && Array.isArray(params.modules)) {
3844        swiper.modules.push(...params.modules);
3845      }
3846      const allModulesParams = {};
3847      swiper.modules.forEach(mod => {
3848        mod({
3849          params,
3850          swiper,
3851          extendParams: moduleExtendParams(params, allModulesParams),
3852          on: swiper.on.bind(swiper),
3853          once: swiper.once.bind(swiper),
3854          off: swiper.off.bind(swiper),
3855          emit: swiper.emit.bind(swiper)
3856        });
3857      });
3858
3859      // Extend defaults with modules params
3860      const swiperParams = extend({}, defaults, allModulesParams);
3861
3862      // Extend defaults with passed params
3863      swiper.params = extend({}, swiperParams, extendedDefaults, params);
3864      swiper.originalParams = extend({}, swiper.params);
3865      swiper.passedParams = extend({}, params);
3866
3867      // add event listeners
3868      if (swiper.params && swiper.params.on) {
vendor: 3,531 bytes, lines 3869-3989
3869        Object.keys(swiper.params.on).forEach(eventName => {
3870          swiper.on(eventName, swiper.params.on[eventName]);
3871        });
3872      }
3873      if (swiper.params && swiper.params.onAny) {
3874        swiper.onAny(swiper.params.onAny);
3875      }
3876
3877      // Extend Swiper
3878      Object.assign(swiper, {
3879        enabled: swiper.params.enabled,
3880        el,
3881        // Classes
3882        classNames: [],
3883        // Slides
3884        slides: [],
3885        slidesGrid: [],
3886        snapGrid: [],
3887        slidesSizesGrid: [],
3888        // isDirection
3889        isHorizontal() {
3890          return swiper.params.direction === 'horizontal';
3891        },
3892        isVertical() {
3893          return swiper.params.direction === 'vertical';
3894        },
3895        // Indexes
3896        activeIndex: 0,
3897        realIndex: 0,
3898        //
3899        isBeginning: true,
3900        isEnd: false,
3901        // Props
3902        translate: 0,
3903        previousTranslate: 0,
3904        progress: 0,
3905        velocity: 0,
3906        animating: false,
3907        cssOverflowAdjustment() {
3908          // Returns 0 unless `translate` is > 2**23
3909          // Should be subtracted from css values to prevent overflow
3910          return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
3911        },
3912        // Locks
3913        allowSlideNext: swiper.params.allowSlideNext,
3914        allowSlidePrev: swiper.params.allowSlidePrev,
3915        // Touch Events
3916        touchEventsData: {
3917          isTouched: undefined,
3918          isMoved: undefined,
3919          allowTouchCallbacks: undefined,
3920          touchStartTime: undefined,
3921          isScrolling: undefined,
3922          currentTranslate: undefined,
3923          startTranslate: undefined,
3924          allowThresholdMove: undefined,
3925          // Form elements to match
3926          focusableElements: swiper.params.focusableElements,
3927          // Last click time
3928          lastClickTime: 0,
3929          clickTimeout: undefined,
3930          // Velocities
3931          velocities: [],
3932          allowMomentumBounce: undefined,
3933          startMoving: undefined,
3934          pointerId: null,
3935          touchId: null
3936        },
3937        // Clicks
3938        allowClick: true,
3939        // Touches
3940        allowTouchMove: swiper.params.allowTouchMove,
3941        touches: {
3942          startX: 0,
3943          startY: 0,
3944          currentX: 0,
3945          currentY: 0,
3946          diff: 0
3947        },
3948        // Images
3949        imagesToLoad: [],
3950        imagesLoaded: 0
3951      });
3952      swiper.emit('_swiper');
3953
3954      // Init
3955      if (swiper.params.init) {
3956        swiper.init();
3957      }
3958
3959      // Return app instance
3960      // eslint-disable-next-line no-constructor-return
3961      return swiper;
3962    }
3963    getDirectionLabel(property) {
3964      if (this.isHorizontal()) {
3965        return property;
3966      }
3967      // prettier-ignore
3968      return {
3969        'width': 'height',
3970        'margin-top': 'margin-left',
3971        'margin-bottom ': 'margin-right',
3972        'margin-left': 'margin-top',
3973        'margin-right': 'margin-bottom',
3974        'padding-left': 'padding-top',
3975        'padding-right': 'padding-bottom',
3976        'marginRight': 'marginBottom'
3977      }[property];
3978    }
3979    getSlideIndex(slideEl) {
3980      const {
3981        slidesEl,
3982        params
3983      } = this;
3984      const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);
3985      const firstSlideIndex = elementIndex(slides[0]);
3986      return elementIndex(slideEl) - firstSlideIndex;
3987    }
3988    getSlideIndexByData(index) {
3989      return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0])
vendor: 8,478 bytes, lines 3989-4233
3989;
3990    }
3991    recalcSlides() {
3992      const swiper = this;
3993      const {
3994        slidesEl,
3995        params
3996      } = swiper;
3997      swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);
3998    }
3999    enable() {
4000      const swiper = this;
4001      if (swiper.enabled) return;
4002      swiper.enabled = true;
4003      if (swiper.params.grabCursor) {
4004        swiper.setGrabCursor();
4005      }
4006      swiper.emit('enable');
4007    }
4008    disable() {
4009      const swiper = this;
4010      if (!swiper.enabled) return;
4011      swiper.enabled = false;
4012      if (swiper.params.grabCursor) {
4013        swiper.unsetGrabCursor();
4014      }
4015      swiper.emit('disable');
4016    }
4017    setProgress(progress, speed) {
4018      const swiper = this;
4019      progress = Math.min(Math.max(progress, 0), 1);
4020      const min = swiper.minTranslate();
4021      const max = swiper.maxTranslate();
4022      const current = (max - min) * progress + min;
4023      swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
4024      swiper.updateActiveIndex();
4025      swiper.updateSlidesClasses();
4026    }
4027    emitContainerClasses() {
4028      const swiper = this;
4029      if (!swiper.params._emitClasses || !swiper.el) return;
4030      const cls = swiper.el.className.split(' ').filter(className => {
4031        return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
4032      });
4033      swiper.emit('_containerClasses', cls.join(' '));
4034    }
4035    getSlideClasses(slideEl) {
4036      const swiper = this;
4037      if (swiper.destroyed) return '';
4038      return slideEl.className.split(' ').filter(className => {
4039        return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
4040      }).join(' ');
4041    }
4042    emitSlidesClasses() {
4043      const swiper = this;
4044      if (!swiper.params._emitClasses || !swiper.el) return;
4045      const updates = [];
4046      swiper.slides.forEach(slideEl => {
4047        const classNames = swiper.getSlideClasses(slideEl);
4048        updates.push({
4049          slideEl,
4050          classNames
4051        });
4052        swiper.emit('_slideClass', slideEl, classNames);
4053      });
4054      swiper.emit('_slideClasses', updates);
4055    }
4056    slidesPerViewDynamic(view, exact) {
4057      if (view === void 0) {
4058        view = 'current';
4059      }
4060      if (exact === void 0) {
4061        exact = false;
4062      }
4063      const swiper = this;
4064      const {
4065        params,
4066        slides,
4067        slidesGrid,
4068        slidesSizesGrid,
4069        size: swiperSize,
4070        activeIndex
4071      } = swiper;
4072      let spv = 1;
4073      if (typeof params.slidesPerView === 'number') return params.slidesPerView;
4074      if (params.centeredSlides) {
4075        let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
4076        let breakLoop;
4077        for (let i = activeIndex + 1; i < slides.length; i += 1) {
4078          if (slides[i] && !breakLoop) {
4079            slideSize += Math.ceil(slides[i].swiperSlideSize);
4080            spv += 1;
4081            if (slideSize > swiperSize) breakLoop = true;
4082          }
4083        }
4084        for (let i = activeIndex - 1; i >= 0; i -= 1) {
4085          if (slides[i] && !breakLoop) {
4086            slideSize += slides[i].swiperSlideSize;
4087            spv += 1;
4088            if (slideSize > swiperSize) breakLoop = true;
4089          }
4090        }
4091      } else {
4092        // eslint-disable-next-line
4093        if (view === 'current') {
4094          for (let i = activeIndex + 1; i < slides.length; i += 1) {
4095            const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
4096            if (slideInView) {
4097              spv += 1;
4098            }
4099          }
4100        } else {
4101          // previous
4102          for (let i = activeIndex - 1; i >= 0; i -= 1) {
4103            const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
4104            if (slideInView) {
4105              spv += 1;
4106            }
4107          }
4108        }
4109      }
4110      return spv;
4111    }
4112    update() {
4113      const swiper = this;
4114      if (!swiper || swiper.destroyed) return;
4115      const {
4116        snapGrid,
4117        params
4118      } = swiper;
4119      // Breakpoints
4120      if (params.breakpoints) {
4121        swiper.setBreakpoint();
4122      }
4123      [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => {
4124        if (imageEl.complete) {
4125          processLazyPreloader(swiper, imageEl);
4126        }
4127      });
4128      swiper.updateSize();
4129      swiper.updateSlides();
4130      swiper.updateProgress();
4131      swiper.updateSlidesClasses();
4132      function setTranslate() {
4133        const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
4134        const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
4135        swiper.setTranslate(newTranslate);
4136        swiper.updateActiveIndex();
4137        swiper.updateSlidesClasses();
4138      }
4139      let translated;
4140      if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
4141        setTranslate();
4142        if (params.autoHeight) {
4143          swiper.updateAutoHeight();
4144        }
4145      } else {
4146        if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
4147          const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
4148          translated = swiper.slideTo(slides.length - 1, 0, false, true);
4149        } else {
4150          translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
4151        }
4152        if (!translated) {
4153          setTranslate();
4154        }
4155      }
4156      if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
4157        swiper.checkOverflow();
4158      }
4159      swiper.emit('update');
4160    }
4161    changeDirection(newDirection, needUpdate) {
4162      if (needUpdate === void 0) {
4163        needUpdate = true;
4164      }
4165      const swiper = this;
4166      const currentDirection = swiper.params.direction;
4167      if (!newDirection) {
4168        // eslint-disable-next-line
4169        newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
4170      }
4171      if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
4172        return swiper;
4173      }
4174      swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);
4175      swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);
4176      swiper.emitContainerClasses();
4177      swiper.params.direction = newDirection;
4178      swiper.slides.forEach(slideEl => {
4179        if (newDirection === 'vertical') {
4180          slideEl.style.width = '';
4181        } else {
4182          slideEl.style.height = '';
4183        }
4184      });
4185      swiper.emit('changeDirection');
4186      if (needUpdate) swiper.update();
4187      return swiper;
4188    }
4189    changeLanguageDirection(direction) {
4190      const swiper = this;
4191      if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;
4192      swiper.rtl = direction === 'rtl';
4193      swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;
4194      if (swiper.rtl) {
4195        swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);
4196        swiper.el.dir = 'rtl';
4197      } else {
4198        swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);
4199        swiper.el.dir = 'ltr';
4200      }
4201      swiper.update();
4202    }
4203    mount(element) {
4204      const swiper = this;
4205      if (swiper.mounted) return true;
4206
4207      // Find el
4208      let el = element || swiper.params.el;
4209      if (typeof el === 'string') {
4210        el = document.querySelector(el);
4211      }
4212      if (!el) {
4213        return false;
4214      }
4215      el.swiper = swiper;
4216      if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
4217        swiper.isElement = true;
4218      }
4219      const getWrapperSelector = () => {
4220        return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
4221      };
4222      const getWrapper = () => {
4223        if (el && el.shadowRoot && el.shadowRoot.querySelector) {
4224          const res = el.shadowRoot.querySelector(getWrapperSelector());
4225          // Children needs to return slot items
4226          return res;
4227        }
4228        return elementChildren(el, getWrapperSelector())[0];
4229      };
4230      // Find Wrapper
4231      let wrapperEl = getWrapper();
4232      if (!wrapperEl && swiper.params.createElements) {
4233        wrapperEl = createElement
4233('div', swiper.params.wrapperClass);
4234        el.append(wrapperEl);
4235        elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {
4236          wrapperEl.append(slideEl);
4237        });
4238      }
4239      Object.assign(swiper, {
4240        el,
4241        wrapperEl,
4242        slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
4243        hostEl: swiper.isElement ? el.parentNode.host : el,
4244        mounted: true,
4245        // RTL
4246        rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',
4247        rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),
4248        wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'
4249      });
4250      return true;
4251    }
4252    init(el) {
4253      const swiper = this;
4254      if (swiper.initialized) return swiper;
4255      const mounted = swiper.mount(el);
4256      if (mounted === false) return swiper;
4257      swiper.emit('beforeInit');
4258
4259      // Set breakpoint
4260      if (swiper.params.breakpoints) {
4261        swiper.setBreakpoint();
4262      }
4263
4264      // Add Classes
4265      swiper.addClasses();
4266
4267      // Update size
4268      swiper.updateSize();
4269
4270      // Update slides
4271      swiper.updateSlides();
4272      if (swiper.params.watchOverflow) {
4273        swiper.checkOverflow();
4274      }
4275
4276      // Set Grab Cursor
4277      if (swiper.params.grabCursor && swiper.enabled) {
4278        swiper.setGrabCursor();
4279      }
4280
4281      // Slide To Initial Slide
4282      if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
4283        swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);
4284      } else {
4285        swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
4286      }
4287
4288      // Create loop
4289      if (swiper.params.loop) {
4290        swiper.loopCreate();
4291      }
4292
4293      // Attach events
4294      swiper.attachEvents();
4295      const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')];
4296      if (swiper.isElement) {
4297        lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]'));
4298      }
4299      lazyElements.forEach(imageEl => {
4300        if (imageEl.complete) {
4301          processLazyPreloader(swiper, imageEl);
4302        } else {
4303          imageEl.addEventListener('load', e => {
4304            processLazyPreloader(swiper, e.target);
4305          });
4306        }
4307      });
4308      preload(swiper);
4309
4310      // Init Flag
4311      swiper.initialized = true;
4312      preload(swiper);
4313
4314      // Emit
4315      swiper.emit('init');
4316      swiper.emit('afterInit');
4317      return swiper;
4318    }
4319    destroy(deleteInstance, cleanStyles) {
4320      if (deleteInstance === void 0) {
4321        deleteInstance = true;
4322      }
4323      if (cleanStyles === void 0) {
4324        cleanStyles = true;
4325      }
4326      const swiper = this;
4327      const {
4328        params,
4329        el,
4330        wrapperEl,
4331        slides
4332      } = swiper;
4333      if (typeof swiper.params === 'undefined' || swiper.destroyed) {
4334        return null;
4335      }
4336      swiper.emit('beforeDestroy');
4337
4338      // Init Flag
4339      swiper.initialized = false;
4340
4341      // Detach events
4342      swiper.detachEvents();
4343
4344      // Destroy loop
4345      if (params.loop) {
4346        swiper.loopDestroy();
4347      }
4348
4349      // Cleanup styles
4350      if (cleanStyles) {
4351        swiper.removeClasses();
4352        if (el && typeof el !== 'string') {
4353          el.removeAttribute('style');
4354        }
4355        if (wrapperEl) {
4356          wrapperEl.removeAttribute('style');
4357        }
4358        if (slides && slides.length) {
vendor: 5,540 bytes, lines 4359-4536
4359          slides.forEach(slideEl => {
4360            slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
4361            slideEl.removeAttribute('style');
4362            slideEl.removeAttribute('data-swiper-slide-index');
4363          });
4364        }
4365      }
4366      swiper.emit('destroy');
4367
4368      // Detach emitter events
4369      Object.keys(swiper.eventsListeners).forEach(eventName => {
4370        swiper.off(eventName);
4371      });
4372      if (deleteInstance !== false) {
4373        if (swiper.el && typeof swiper.el !== 'string') {
4374          swiper.el.swiper = null;
4375        }
4376        deleteProps(swiper);
4377      }
4378      swiper.destroyed = true;
4379      return null;
4380    }
4381    static extendDefaults(newDefaults) {
4382      extend(extendedDefaults, newDefaults);
4383    }
4384    static get extendedDefaults() {
4385      return extendedDefaults;
4386    }
4387    static get defaults() {
4388      return defaults;
4389    }
4390    static installModule(mod) {
4391      if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
4392      const modules = Swiper.prototype.__modules__;
4393      if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
4394        modules.push(mod);
4395      }
4396    }
4397    static use(module) {
4398      if (Array.isArray(module)) {
4399        module.forEach(m => Swiper.installModule(m));
4400        return Swiper;
4401      }
4402      Swiper.installModule(module);
4403      return Swiper;
4404    }
4405  }
4406  Object.keys(prototypes).forEach(prototypeGroup => {
4407    Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
4408      Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
4409    });
4410  });
4411  Swiper.use([Resize, Observer]);
4412
4413  function Virtual(_ref) {
4414    let {
4415      swiper,
4416      extendParams,
4417      on,
4418      emit
4419    } = _ref;
4420    extendParams({
4421      virtual: {
4422        enabled: false,
4423        slides: [],
4424        cache: true,
4425        renderSlide: null,
4426        renderExternal: null,
4427        renderExternalUpdate: true,
4428        addSlidesBefore: 0,
4429        addSlidesAfter: 0
4430      }
4431    });
4432    let cssModeTimeout;
4433    const document = getDocument();
4434    swiper.virtual = {
4435      cache: {},
4436      from: undefined,
4437      to: undefined,
4438      slides: [],
4439      offset: 0,
4440      slidesGrid: []
4441    };
4442    const tempDOM = document.createElement('div');
4443    function renderSlide(slide, index) {
4444      const params = swiper.params.virtual;
4445      if (params.cache && swiper.virtual.cache[index]) {
4446        return swiper.virtual.cache[index];
4447      }
4448      // eslint-disable-next-line
4449      let slideEl;
4450      if (params.renderSlide) {
4451        slideEl = params.renderSlide.call(swiper, slide, index);
4452        if (typeof slideEl === 'string') {
4453          tempDOM.innerHTML = slideEl;
4454          slideEl = tempDOM.children[0];
4455        }
4456      } else if (swiper.isElement) {
4457        slideEl = createElement('swiper-slide');
4458      } else {
4459        slideEl = createElement('div', swiper.params.slideClass);
4460      }
4461      slideEl.setAttribute('data-swiper-slide-index', index);
4462      if (!params.renderSlide) {
4463        slideEl.innerHTML = slide;
4464      }
4465      if (params.cache) {
4466        swiper.virtual.cache[index] = slideEl;
4467      }
4468      return slideEl;
4469    }
4470    function update(force, beforeInit) {
4471      const {
4472        slidesPerView,
4473        slidesPerGroup,
4474        centeredSlides,
4475        loop: isLoop,
4476        initialSlide
4477      } = swiper.params;
4478      if (beforeInit && !isLoop && initialSlide > 0) {
4479        return;
4480      }
4481      const {
4482        addSlidesBefore,
4483        addSlidesAfter
4484      } = swiper.params.virtual;
4485      const {
4486        from: previousFrom,
4487        to: previousTo,
4488        slides,
4489        slidesGrid: previousSlidesGrid,
4490        offset: previousOffset
4491      } = swiper.virtual;
4492      if (!swiper.params.cssMode) {
4493        swiper.updateActiveIndex();
4494      }
4495      const activeIndex = swiper.activeIndex || 0;
4496      let offsetProp;
4497      if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
4498      let slidesAfter;
4499      let slidesBefore;
4500      if (centeredSlides) {
4501        slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
4502        slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
4503      } else {
4504        slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
4505        slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
4506      }
4507      let from = activeIndex - slidesBefore;
4508      let to = activeIndex + slidesAfter;
4509      if (!isLoop) {
4510        from = Math.max(from, 0);
4511        to = Math.min(to, slides.length - 1);
4512      }
4513      let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
4514      if (isLoop && activeIndex >= slidesBefore) {
4515        from -= slidesBefore;
4516        if (!centeredSlides) offset += swiper.slidesGrid[0];
4517      } else if (isLoop && activeIndex < slidesBefore) {
4518        from = -slidesBefore;
4519        if (centeredSlides) offset += swiper.slidesGrid[0];
4520      }
4521      Object.assign(swiper.virtual, {
4522        from,
4523        to,
4524        offset,
4525        slidesGrid: swiper.slidesGrid,
4526        slidesBefore,
4527        slidesAfter
4528      });
4529      function onRendered() {
4530        swiper.updateSlides();
4531        swiper.updateProgress();
4532        swiper.updateSlidesClasses();
4533        emit('virtualUpdate');
4534      }
4535      if (previousFrom === from && previousTo === to && !force) {
4536        if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
vendor: 1,316 bytes, lines 4537-4578
4537          swiper.slides.forEach(slideEl => {
4538            slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
4539          });
4540        }
4541        swiper.updateProgress();
4542        emit('virtualUpdate');
4543        return;
4544      }
4545      if (swiper.params.virtual.renderExternal) {
4546        swiper.params.virtual.renderExternal.call(swiper, {
4547          offset,
4548          from,
4549          to,
4550          slides: function getSlides() {
4551            const slidesToRender = [];
4552            for (let i = from; i <= to; i += 1) {
4553              slidesToRender.push(slides[i]);
4554            }
4555            return slidesToRender;
4556          }()
4557        });
4558        if (swiper.params.virtual.renderExternalUpdate) {
4559          onRendered();
4560        } else {
4561          emit('virtualUpdate');
4562        }
4563        return;
4564      }
4565      const prependIndexes = [];
4566      const appendIndexes = [];
4567      const getSlideIndex = index => {
4568        let slideIndex = index;
4569        if (index < 0) {
4570          slideIndex = slides.length + index;
4571        } else if (slideIndex >= slides.length) {
4572          // eslint-disable-next-line
4573          slideIndex = slideIndex - slides.length;
4574        }
4575        return slideIndex;
4576      };
4577      if (force) {
4578        swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}
4578, swiper-slide`)).forEach(slideEl => {
4579          slideEl.remove();
4580        });
4581      } else {
4582        for (let i = previousFrom; i <= previousTo; i += 1) {
4583          if (i < from || i > to) {
4584            const slideIndex = getSlideIndex(i);
4585            swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
4586              slideEl.remove();
4587            });
4588          }
4589        }
4590      }
4591      const loopFrom = isLoop ? -slides.length : 0;
4592      const loopTo = isLoop ? slides.length * 2 : slides.length;
4593      for (let i = loopFrom; i < loopTo; i += 1) {
4594        if (i >= from && i <= to) {
4595          const slideIndex = getSlideIndex(i);
4596          if (typeof previousTo === 'undefined' || force) {
4597            appendIndexes.push(slideIndex);
4598          } else {
4599            if (i > previousTo) appendIndexes.push(slideIndex);
4600            if (i < previousFrom) prependIndexes.push(slideIndex);
4601          }
4602        }
4603      }
4604      appendIndexes.forEach(index => {
4605        swiper.slidesEl.append(renderSlide(slides[index], index));
4606      });
4607      if (isLoop) {
4608        for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
4609          const index = prependIndexes[i];
4610          swiper.slidesEl.prepend(renderSlide(slides[index], index));
4611        }
4612      } else {
4613        prependIndexes.sort((a, b) => b - a);
4614        prependIndexes.forEach(index => {
4615          swiper.slidesEl.prepend(renderSlide(slides[index], index));
4616        });
4617      }
4618      elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(sli
vendor: 5,044 bytes, lines 4618-4748
4618deEl => {
4619        slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
4620      });
4621      onRendered();
4622    }
4623    function appendSlide(slides) {
4624      if (typeof slides === 'object' && 'length' in slides) {
4625        for (let i = 0; i < slides.length; i += 1) {
4626          if (slides[i]) swiper.virtual.slides.push(slides[i]);
4627        }
4628      } else {
4629        swiper.virtual.slides.push(slides);
4630      }
4631      update(true);
4632    }
4633    function prependSlide(slides) {
4634      const activeIndex = swiper.activeIndex;
4635      let newActiveIndex = activeIndex + 1;
4636      let numberOfNewSlides = 1;
4637      if (Array.isArray(slides)) {
4638        for (let i = 0; i < slides.length; i += 1) {
4639          if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
4640        }
4641        newActiveIndex = activeIndex + slides.length;
4642        numberOfNewSlides = slides.length;
4643      } else {
4644        swiper.virtual.slides.unshift(slides);
4645      }
4646      if (swiper.params.virtual.cache) {
4647        const cache = swiper.virtual.cache;
4648        const newCache = {};
4649        Object.keys(cache).forEach(cachedIndex => {
4650          const cachedEl = cache[cachedIndex];
4651          const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
4652          if (cachedElIndex) {
4653            cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
4654          }
4655          newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
4656        });
4657        swiper.virtual.cache = newCache;
4658      }
4659      update(true);
4660      swiper.slideTo(newActiveIndex, 0);
4661    }
4662    function removeSlide(slidesIndexes) {
4663      if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
4664      let activeIndex = swiper.activeIndex;
4665      if (Array.isArray(slidesIndexes)) {
4666        for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
4667          if (swiper.params.virtual.cache) {
4668            delete swiper.virtual.cache[slidesIndexes[i]];
4669            // shift cache indexes
4670            Object.keys(swiper.virtual.cache).forEach(key => {
4671              if (key > slidesIndexes) {
4672                swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
4673                swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
4674                delete swiper.virtual.cache[key];
4675              }
4676            });
4677          }
4678          swiper.virtual.slides.splice(slidesIndexes[i], 1);
4679          if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
4680          activeIndex = Math.max(activeIndex, 0);
4681        }
4682      } else {
4683        if (swiper.params.virtual.cache) {
4684          delete swiper.virtual.cache[slidesIndexes];
4685          // shift cache indexes
4686          Object.keys(swiper.virtual.cache).forEach(key => {
4687            if (key > slidesIndexes) {
4688              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
4689              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
4690              delete swiper.virtual.cache[key];
4691            }
4692          });
4693        }
4694        swiper.virtual.slides.splice(slidesIndexes, 1);
4695        if (slidesIndexes < activeIndex) activeIndex -= 1;
4696        activeIndex = Math.max(activeIndex, 0);
4697      }
4698      update(true);
4699      swiper.slideTo(activeIndex, 0);
4700    }
4701    function removeAllSlides() {
4702      swiper.virtual.slides = [];
4703      if (swiper.params.virtual.cache) {
4704        swiper.virtual.cache = {};
4705      }
4706      update(true);
4707      swiper.slideTo(0, 0);
4708    }
4709    on('beforeInit', () => {
4710      if (!swiper.params.virtual.enabled) return;
4711      let domSlidesAssigned;
4712      if (typeof swiper.passedParams.virtual.slides === 'undefined') {
4713        const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
4714        if (slides && slides.length) {
4715          swiper.virtual.slides = [...slides];
4716          domSlidesAssigned = true;
4717          slides.forEach((slideEl, slideIndex) => {
4718            slideEl.setAttribute('data-swiper-slide-index', slideIndex);
4719            swiper.virtual.cache[slideIndex] = slideEl;
4720            slideEl.remove();
4721          });
4722        }
4723      }
4724      if (!domSlidesAssigned) {
4725        swiper.virtual.slides = swiper.params.virtual.slides;
4726      }
4727      swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
4728      swiper.params.watchSlidesProgress = true;
4729      swiper.originalParams.watchSlidesProgress = true;
4730      update(false, true);
4731    });
4732    on('setTranslate', () => {
4733      if (!swiper.params.virtual.enabled) return;
4734      if (swiper.params.cssMode && !swiper._immediateVirtual) {
4735        clearTimeout(cssModeTimeout);
4736        cssModeTimeout = setTimeout(() => {
4737          update();
4738        }, 100);
4739      } else {
4740        update();
4741      }
4742    });
4743    on('init update resize', () => {
4744      if (!swiper.params.virtual.enabled) return;
4745      if (swiper.params.cssMode) {
4746        setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
4747      }
4748    });
vendor: 4,242 bytes, lines 4749-4853
4749    Object.assign(swiper.virtual, {
4750      appendSlide,
4751      prependSlide,
4752      removeSlide,
4753      removeAllSlides,
4754      update
4755    });
4756  }
4757
4758  /* eslint-disable consistent-return */
4759  function Keyboard(_ref) {
4760    let {
4761      swiper,
4762      extendParams,
4763      on,
4764      emit
4765    } = _ref;
4766    const document = getDocument();
4767    const window = getWindow();
4768    swiper.keyboard = {
4769      enabled: false
4770    };
4771    extendParams({
4772      keyboard: {
4773        enabled: false,
4774        onlyInViewport: true,
4775        pageUpDown: true
4776      }
4777    });
4778    function handle(event) {
4779      if (!swiper.enabled) return;
4780      const {
4781        rtlTranslate: rtl
4782      } = swiper;
4783      let e = event;
4784      if (e.originalEvent) e = e.originalEvent; // jquery fix
4785      const kc = e.keyCode || e.charCode;
4786      const pageUpDown = swiper.params.keyboard.pageUpDown;
4787      const isPageUp = pageUpDown && kc === 33;
4788      const isPageDown = pageUpDown && kc === 34;
4789      const isArrowLeft = kc === 37;
4790      const isArrowRight = kc === 39;
4791      const isArrowUp = kc === 38;
4792      const isArrowDown = kc === 40;
4793      // Directions locks
4794      if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
4795        return false;
4796      }
4797      if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
4798        return false;
4799      }
4800      if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
4801        return undefined;
4802      }
4803      if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {
4804        return undefined;
4805      }
4806      if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
4807        let inView = false;
4808        // Check that swiper should be inside of visible area of window
4809        if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {
4810          return undefined;
4811        }
4812        const el = swiper.el;
4813        const swiperWidth = el.clientWidth;
4814        const swiperHeight = el.clientHeight;
4815        const windowWidth = window.innerWidth;
4816        const windowHeight = window.innerHeight;
4817        const swiperOffset = elementOffset(el);
4818        if (rtl) swiperOffset.left -= el.scrollLeft;
4819        const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
4820        for (let i = 0; i < swiperCoord.length; i += 1) {
4821          const point = swiperCoord[i];
4822          if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
4823            if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
4824            inView = true;
4825          }
4826        }
4827        if (!inView) return undefined;
4828      }
4829      if (swiper.isHorizontal()) {
4830        if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
4831          if (e.preventDefault) e.preventDefault();else e.returnValue = false;
4832        }
4833        if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
4834        if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
4835      } else {
4836        if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
4837          if (e.preventDefault) e.preventDefault();else e.returnValue = false;
4838        }
4839        if (isPageDown || isArrowDown) swiper.slideNext();
4840        if (isPageUp || isArrowUp) swiper.slidePrev();
4841      }
4842      emit('keyPress', kc);
4843      return undefined;
4844    }
4845    function enable() {
4846      if (swiper.keyboard.enabled) return;
4847      document.addEventListener('keydown', handle);
4848      swiper.keyboard.enabled = true;
4849    }
4850    function disable() {
4851      if (!swiper.keyboard.enabled) return;
4852      document.removeEventListener('keydown', handle);
4853      swiper.keyboard.enabled = false;
vendor: 28,436 bytes, lines 4854-5622
4854    }
4855    on('init', () => {
4856      if (swiper.params.keyboard.enabled) {
4857        enable();
4858      }
4859    });
4860    on('destroy', () => {
4861      if (swiper.keyboard.enabled) {
4862        disable();
4863      }
4864    });
4865    Object.assign(swiper.keyboard, {
4866      enable,
4867      disable
4868    });
4869  }
4870
4871  /* eslint-disable consistent-return */
4872  function Mousewheel(_ref) {
4873    let {
4874      swiper,
4875      extendParams,
4876      on,
4877      emit
4878    } = _ref;
4879    const window = getWindow();
4880    extendParams({
4881      mousewheel: {
4882        enabled: false,
4883        releaseOnEdges: false,
4884        invert: false,
4885        forceToAxis: false,
4886        sensitivity: 1,
4887        eventsTarget: 'container',
4888        thresholdDelta: null,
4889        thresholdTime: null,
4890        noMousewheelClass: 'swiper-no-mousewheel'
4891      }
4892    });
4893    swiper.mousewheel = {
4894      enabled: false
4895    };
4896    let timeout;
4897    let lastScrollTime = now();
4898    let lastEventBeforeSnap;
4899    const recentWheelEvents = [];
4900    function normalize(e) {
4901      // Reasonable defaults
4902      const PIXEL_STEP = 10;
4903      const LINE_HEIGHT = 40;
4904      const PAGE_HEIGHT = 800;
4905      let sX = 0;
4906      let sY = 0; // spinX, spinY
4907      let pX = 0;
4908      let pY = 0; // pixelX, pixelY
4909
4910      // Legacy
4911      if ('detail' in e) {
4912        sY = e.detail;
4913      }
4914      if ('wheelDelta' in e) {
4915        sY = -e.wheelDelta / 120;
4916      }
4917      if ('wheelDeltaY' in e) {
4918        sY = -e.wheelDeltaY / 120;
4919      }
4920      if ('wheelDeltaX' in e) {
4921        sX = -e.wheelDeltaX / 120;
4922      }
4923
4924      // side scrolling on FF with DOMMouseScroll
4925      if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
4926        sX = sY;
4927        sY = 0;
4928      }
4929      pX = sX * PIXEL_STEP;
4930      pY = sY * PIXEL_STEP;
4931      if ('deltaY' in e) {
4932        pY = e.deltaY;
4933      }
4934      if ('deltaX' in e) {
4935        pX = e.deltaX;
4936      }
4937      if (e.shiftKey && !pX) {
4938        // if user scrolls with shift he wants horizontal scroll
4939        pX = pY;
4940        pY = 0;
4941      }
4942      if ((pX || pY) && e.deltaMode) {
4943        if (e.deltaMode === 1) {
4944          // delta in LINE units
4945          pX *= LINE_HEIGHT;
4946          pY *= LINE_HEIGHT;
4947        } else {
4948          // delta in PAGE units
4949          pX *= PAGE_HEIGHT;
4950          pY *= PAGE_HEIGHT;
4951        }
4952      }
4953
4954      // Fall-back if spin cannot be determined
4955      if (pX && !sX) {
4956        sX = pX < 1 ? -1 : 1;
4957      }
4958      if (pY && !sY) {
4959        sY = pY < 1 ? -1 : 1;
4960      }
4961      return {
4962        spinX: sX,
4963        spinY: sY,
4964        pixelX: pX,
4965        pixelY: pY
4966      };
4967    }
4968    function handleMouseEnter() {
4969      if (!swiper.enabled) return;
4970      swiper.mouseEntered = true;
4971    }
4972    function handleMouseLeave() {
4973      if (!swiper.enabled) return;
4974      swiper.mouseEntered = false;
4975    }
4976    function animateSlider(newEvent) {
4977      if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
4978        // Prevent if delta of wheel scroll delta is below configured threshold
4979        return false;
4980      }
4981      if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
4982        // Prevent if time between scrolls is below configured threshold
4983        return false;
4984      }
4985
4986      // If the movement is NOT big enough and
4987      // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
4988      //   Don't go any further (avoid insignificant scroll movement).
4989      if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {
4990        // Return false as a default
4991        return true;
4992      }
4993      // If user is scrolling towards the end:
4994      //   If the slider hasn't hit the latest slide or
4995      //   if the slider is a loop and
4996      //   if the slider isn't moving right now:
4997      //     Go to next slide and
4998      //     emit a scroll event.
4999      // Else (the user is scrolling towards the beginning) and
5000      // if the slider hasn't hit the first slide or
5001      // if the slider is a loop and
5002      // if the slider isn't moving right now:
5003      //   Go to prev slide and
5004      //   emit a scroll event.
5005      if (newEvent.direction < 0) {
5006        if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
5007          swiper.slideNext();
5008          emit('scroll', newEvent.raw);
5009        }
5010      } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
5011        swiper.slidePrev();
5012        emit('scroll', newEvent.raw);
5013      }
5014      // If you got here is because an animation has been triggered so store the current time
5015      lastScrollTime = new window.Date().getTime();
5016      // Return false as a default
5017      return false;
5018    }
5019    function releaseScroll(newEvent) {
5020      const params = swiper.params.mousewheel;
5021      if (newEvent.direction < 0) {
5022        if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
5023          // Return true to animate scroll on edges
5024          return true;
5025        }
5026      } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
5027        // Return true to animate scroll on edges
5028        return true;
5029      }
5030      return false;
5031    }
5032    function handle(event) {
5033      let e = event;
5034      let disableParentSwiper = true;
5035      if (!swiper.enabled) return;
5036
5037      // Ignore event if the target or its parents have the swiper-no-mousewheel class
5038      if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
5039      const params = swiper.params.mousewheel;
5040      if (swiper.params.cssMode) {
5041        e.preventDefault();
5042      }
5043      let targetEl = swiper.el;
5044      if (swiper.params.mousewheel.eventsTarget !== 'container') {
5045        targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
5046      }
5047      const targetElContainsTarget = targetEl && targetEl.contains(e.target);
5048      if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;
5049      if (e.originalEvent) e = e.originalEvent; // jquery fix
5050      let delta = 0;
5051      const rtlFactor = swiper.rtlTranslate ? -1 : 1;
5052      const data = normalize(e);
5053      if (params.forceToAxis) {
5054        if (swiper.isHorizontal()) {
5055          if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
5056        } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
5057      } else {
5058        delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
5059      }
5060      if (delta === 0) return true;
5061      if (params.invert) delta = -delta;
5062
5063      // Get the scroll positions
5064      let positions = swiper.getTranslate() + delta * params.sensitivity;
5065      if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
5066      if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();
5067
5068      // When loop is true:
5069      //     the disableParentSwiper will be true.
5070      // When loop is false:
5071      //     if the scroll positions is not on edge,
5072      //     then the disableParentSwiper will be true.
5073      //     if the scroll on edge positions,
5074      //     then the disableParentSwiper will be false.
5075      disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
5076      if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
5077      if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
5078        // Register the new event in a variable which stores the relevant data
5079        const newEvent = {
5080          time: now(),
5081          delta: Math.abs(delta),
5082          direction: Math.sign(delta),
5083          raw: event
5084        };
5085
5086        // Keep the most recent events
5087        if (recentWheelEvents.length >= 2) {
5088          recentWheelEvents.shift(); // only store the last N events
5089        }
5090
5091        const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
5092        recentWheelEvents.push(newEvent);
5093
5094        // If there is at least one previous recorded event:
5095        //   If direction has changed or
5096        //   if the scroll is quicker than the previous one:
5097        //     Animate the slider.
5098        // Else (this is the first time the wheel is moved):
5099        //     Animate the slider.
5100        if (prevEvent) {
5101          if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
5102            animateSlider(newEvent);
5103          }
5104        } else {
5105          animateSlider(newEvent);
5106        }
5107
5108        // If it's time to release the scroll:
5109        //   Return now so you don't hit the preventDefault.
5110        if (releaseScroll(newEvent)) {
5111          return true;
5112        }
5113      } else {
5114        // Freemode or scrollContainer:
5115
5116        // If we recently snapped after a momentum scroll, then ignore wheel events
5117        // to give time for the deceleration to finish. Stop ignoring after 500 msecs
5118        // or if it's a new scroll (larger delta or inverse sign as last event before
5119        // an end-of-momentum snap).
5120        const newEvent = {
5121          time: now(),
5122          delta: Math.abs(delta),
5123          direction: Math.sign(delta)
5124        };
5125        const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
5126        if (!ignoreWheelEvents) {
5127          lastEventBeforeSnap = undefined;
5128          let position = swiper.getTranslate() + delta * params.sensitivity;
5129          const wasBeginning = swiper.isBeginning;
5130          const wasEnd = swiper.isEnd;
5131          if (position >= swiper.minTranslate()) position = swiper.minTranslate();
5132          if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
5133          swiper.setTransition(0);
5134          swiper.setTranslate(position);
5135          swiper.updateProgress();
5136          swiper.updateActiveIndex();
5137          swiper.updateSlidesClasses();
5138          if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
5139            swiper.updateSlidesClasses();
5140          }
5141          if (swiper.params.loop) {
5142            swiper.loopFix({
5143              direction: newEvent.direction < 0 ? 'next' : 'prev',
5144              byMousewheel: true
5145            });
5146          }
5147          if (swiper.params.freeMode.sticky) {
5148            // When wheel scrolling starts with sticky (aka snap) enabled, then detect
5149            // the end of a momentum scroll by storing recent (N=15?) wheel events.
5150            // 1. do all N events have decreasing or same (absolute value) delta?
5151            // 2. did all N events arrive in the last M (M=500?) msecs?
5152            // 3. does the earliest event have an (absolute value) delta that's
5153            //    at least P (P=1?) larger than the most recent event's delta?
5154            // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
5155            // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
5156            // Snap immediately and ignore remaining wheel events in this scroll.
5157            // See comment above for "remaining wheel events in this scroll" determination.
5158            // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
5159            clearTimeout(timeout);
5160            timeout = undefined;
5161            if (recentWheelEvents.length >= 15) {
5162              recentWheelEvents.shift(); // only store the last N events
5163            }
5164
5165            const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
5166            const firstEvent = recentWheelEvents[0];
5167            recentWheelEvents.push(newEvent);
5168            if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
5169              // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
5170              recentWheelEvents.splice(0);
5171            } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
5172              // We're at the end of the deceleration of a momentum scroll, so there's no need
5173              // to wait for more events. Snap ASAP on the next tick.
5174              // Also, because there's some remaining momentum we'll bias the snap in the
5175              // direction of the ongoing scroll because it's better UX for the scroll to snap
5176              // in the same direction as the scroll instead of reversing to snap.  Therefore,
5177              // if it's already scrolled more than 20% in the current direction, keep going.
5178              const snapToThreshold = delta > 0 ? 0.8 : 0.2;
5179              lastEventBeforeSnap = newEvent;
5180              recentWheelEvents.splice(0);
5181              timeout = nextTick(() => {
5182                if (swiper.destroyed || !swiper.params) return;
5183                swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
5184              }, 0); // no delay; move on next tick
5185            }
5186
5187            if (!timeout) {
5188              // if we get here, then we haven't detected the end of a momentum scroll, so
5189              // we'll consider a scroll "complete" when there haven't been any wheel events
5190              // for 500ms.
5191              timeout = nextTick(() => {
5192                if (swiper.destroyed || !swiper.params) return;
5193                const snapToThreshold = 0.5;
5194                lastEventBeforeSnap = newEvent;
5195                recentWheelEvents.splice(0);
5196                swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
5197              }, 500);
5198            }
5199          }
5200
5201          // Emit event
5202          if (!ignoreWheelEvents) emit('scroll', e);
5203
5204          // Stop autoplay
5205          if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();
5206          // Return page scroll on edge positions
5207          if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {
5208            return true;
5209          }
5210        }
5211      }
5212      if (e.preventDefault) e.preventDefault();else e.returnValue = false;
5213      return false;
5214    }
5215    function events(method) {
5216      let targetEl = swiper.el;
5217      if (swiper.params.mousewheel.eventsTarget !== 'container') {
5218        targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
5219      }
5220      targetEl[method]('mouseenter', handleMouseEnter);
5221      targetEl[method]('mouseleave', handleMouseLeave);
5222      targetEl[method]('wheel', handle);
5223    }
5224    function enable() {
5225      if (swiper.params.cssMode) {
5226        swiper.wrapperEl.removeEventListener('wheel', handle);
5227        return true;
5228      }
5229      if (swiper.mousewheel.enabled) return false;
5230      events('addEventListener');
5231      swiper.mousewheel.enabled = true;
5232      return true;
5233    }
5234    function disable() {
5235      if (swiper.params.cssMode) {
5236        swiper.wrapperEl.addEventListener(event, handle);
5237        return true;
5238      }
5239      if (!swiper.mousewheel.enabled) return false;
5240      events('removeEventListener');
5241      swiper.mousewheel.enabled = false;
5242      return true;
5243    }
5244    on('init', () => {
5245      if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
5246        disable();
5247      }
5248      if (swiper.params.mousewheel.enabled) enable();
5249    });
5250    on('destroy', () => {
5251      if (swiper.params.cssMode) {
5252        enable();
5253      }
5254      if (swiper.mousewheel.enabled) disable();
5255    });
5256    Object.assign(swiper.mousewheel, {
5257      enable,
5258      disable
5259    });
5260  }
5261
5262  function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
5263    if (swiper.params.createElements) {
5264      Object.keys(checkProps).forEach(key => {
5265        if (!params[key] && params.auto === true) {
5266          let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];
5267          if (!element) {
5268            element = createElement('div', checkProps[key]);
5269            element.className = checkProps[key];
5270            swiper.el.append(element);
5271          }
5272          params[key] = element;
5273          originalParams[key] = element;
5274        }
5275      });
5276    }
5277    return params;
5278  }
5279
5280  function Navigation(_ref) {
5281    let {
5282      swiper,
5283      extendParams,
5284      on,
5285      emit
5286    } = _ref;
5287    extendParams({
5288      navigation: {
5289        nextEl: null,
5290        prevEl: null,
5291        hideOnClick: false,
5292        disabledClass: 'swiper-button-disabled',
5293        hiddenClass: 'swiper-button-hidden',
5294        lockClass: 'swiper-button-lock',
5295        navigationDisabledClass: 'swiper-navigation-disabled'
5296      }
5297    });
5298    swiper.navigation = {
5299      nextEl: null,
5300      prevEl: null
5301    };
5302    function getEl(el) {
5303      let res;
5304      if (el && typeof el === 'string' && swiper.isElement) {
5305        res = swiper.el.querySelector(el);
5306        if (res) return res;
5307      }
5308      if (el) {
5309        if (typeof el === 'string') res = [...document.querySelectorAll(el)];
5310        if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {
5311          res = swiper.el.querySelector(el);
5312        } else if (res && res.length === 1) {
5313          res = res[0];
5314        }
5315      }
5316      if (el && !res) return el;
5317      // if (Array.isArray(res) && res.length === 1) res = res[0];
5318      return res;
5319    }
5320    function toggleEl(el, disabled) {
5321      const params = swiper.params.navigation;
5322      el = makeElementsArray(el);
5323      el.forEach(subEl => {
5324        if (subEl) {
5325          subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));
5326          if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;
5327          if (swiper.params.watchOverflow && swiper.enabled) {
5328            subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
5329          }
5330        }
5331      });
5332    }
5333    function update() {
5334      // Update Navigation Buttons
5335      const {
5336        nextEl,
5337        prevEl
5338      } = swiper.navigation;
5339      if (swiper.params.loop) {
5340        toggleEl(prevEl, false);
5341        toggleEl(nextEl, false);
5342        return;
5343      }
5344      toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);
5345      toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);
5346    }
5347    function onPrevClick(e) {
5348      e.preventDefault();
5349      if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
5350      swiper.slidePrev();
5351      emit('navigationPrev');
5352    }
5353    function onNextClick(e) {
5354      e.preventDefault();
5355      if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
5356      swiper.slideNext();
5357      emit('navigationNext');
5358    }
5359    function init() {
5360      const params = swiper.params.navigation;
5361      swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
5362        nextEl: 'swiper-button-next',
5363        prevEl: 'swiper-button-prev'
5364      });
5365      if (!(params.nextEl || params.prevEl)) return;
5366      let nextEl = getEl(params.nextEl);
5367      let prevEl = getEl(params.prevEl);
5368      Object.assign(swiper.navigation, {
5369        nextEl,
5370        prevEl
5371      });
5372      nextEl = makeElementsArray(nextEl);
5373      prevEl = makeElementsArray(prevEl);
5374      const initButton = (el, dir) => {
5375        if (el) {
5376          el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
5377        }
5378        if (!swiper.enabled && el) {
5379          el.classList.add(...params.lockClass.split(' '));
5380        }
5381      };
5382      nextEl.forEach(el => initButton(el, 'next'));
5383      prevEl.forEach(el => initButton(el, 'prev'));
5384    }
5385    function destroy() {
5386      let {
5387        nextEl,
5388        prevEl
5389      } = swiper.navigation;
5390      nextEl = makeElementsArray(nextEl);
5391      prevEl = makeElementsArray(prevEl);
5392      const destroyButton = (el, dir) => {
5393        el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
5394        el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));
5395      };
5396      nextEl.forEach(el => destroyButton(el, 'next'));
5397      prevEl.forEach(el => destroyButton(el, 'prev'));
5398    }
5399    on('init', () => {
5400      if (swiper.params.navigation.enabled === false) {
5401        // eslint-disable-next-line
5402        disable();
5403      } else {
5404        init();
5405        update();
5406      }
5407    });
5408    on('toEdge fromEdge lock unlock', () => {
5409      update();
5410    });
5411    on('destroy', () => {
5412      destroy();
5413    });
5414    on('enable disable', () => {
5415      let {
5416        nextEl,
5417        prevEl
5418      } = swiper.navigation;
5419      nextEl = makeElementsArray(nextEl);
5420      prevEl = makeElementsArray(prevEl);
5421      if (swiper.enabled) {
5422        update();
5423        return;
5424      }
5425      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));
5426    });
5427    on('click', (_s, e) => {
5428      let {
5429        nextEl,
5430        prevEl
5431      } = swiper.navigation;
5432      nextEl = makeElementsArray(nextEl);
5433      prevEl = makeElementsArray(prevEl);
5434      const targetEl = e.target;
5435      let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);
5436      if (swiper.isElement && !targetIsButton) {
5437        const path = e.path || e.composedPath && e.composedPath();
5438        if (path) {
5439          targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));
5440        }
5441      }
5442      if (swiper.params.navigation.hideOnClick && !targetIsButton) {
5443        if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
5444        let isHidden;
5445        if (nextEl.length) {
5446          isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);
5447        } else if (prevEl.length) {
5448          isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);
5449        }
5450        if (isHidden === true) {
5451          emit('navigationShow');
5452        } else {
5453          emit('navigationHide');
5454        }
5455        [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));
5456      }
5457    });
5458    const enable = () => {
5459      swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));
5460      init();
5461      update();
5462    };
5463    const disable = () => {
5464      swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));
5465      destroy();
5466    };
5467    Object.assign(swiper.navigation, {
5468      enable,
5469      disable,
5470      update,
5471      init,
5472      destroy
5473    });
5474  }
5475
5476  function classesToSelector(classes) {
5477    if (classes === void 0) {
5478      classes = '';
5479    }
5480    return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line
5481  .replace(/ /g, '.')}`;
5482  }
5483
5484  function Pagination(_ref) {
5485    let {
5486      swiper,
5487      extendParams,
5488      on,
5489      emit
5490    } = _ref;
5491    const pfx = 'swiper-pagination';
5492    extendParams({
5493      pagination: {
5494        el: null,
5495        bulletElement: 'span',
5496        clickable: false,
5497        hideOnClick: false,
5498        renderBullet: null,
5499        renderProgressbar: null,
5500        renderFraction: null,
5501        renderCustom: null,
5502        progressbarOpposite: false,
5503        type: 'bullets',
5504        // 'bullets' or 'progressbar' or 'fraction' or 'custom'
5505        dynamicBullets: false,
5506        dynamicMainBullets: 1,
5507        formatFractionCurrent: number => number,
5508        formatFractionTotal: number => number,
5509        bulletClass: `${pfx}-bullet`,
5510        bulletActiveClass: `${pfx}-bullet-active`,
5511        modifierClass: `${pfx}-`,
5512        currentClass: `${pfx}-current`,
5513        totalClass: `${pfx}-total`,
5514        hiddenClass: `${pfx}-hidden`,
5515        progressbarFillClass: `${pfx}-progressbar-fill`,
5516        progressbarOppositeClass: `${pfx}-progressbar-opposite`,
5517        clickableClass: `${pfx}-clickable`,
5518        lockClass: `${pfx}-lock`,
5519        horizontalClass: `${pfx}-horizontal`,
5520        verticalClass: `${pfx}-vertical`,
5521        paginationDisabledClass: `${pfx}-disabled`
5522      }
5523    });
5524    swiper.pagination = {
5525      el: null,
5526      bullets: []
5527    };
5528    let bulletSize;
5529    let dynamicBulletIndex = 0;
5530    function isPaginationDisabled() {
5531      return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
5532    }
5533    function setSideBullets(bulletEl, position) {
5534      const {
5535        bulletActiveClass
5536      } = swiper.params.pagination;
5537      if (!bulletEl) return;
5538      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
5539      if (bulletEl) {
5540        bulletEl.classList.add(`${bulletActiveClass}-${position}`);
5541        bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
5542        if (bulletEl) {
5543          bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
5544        }
5545      }
5546    }
5547    function getMoveDirection(prevIndex, nextIndex, length) {
5548      prevIndex = prevIndex % length;
5549      nextIndex = nextIndex % length;
5550      if (nextIndex === prevIndex + 1) {
5551        return 'next';
5552      } else if (nextIndex === prevIndex - 1) {
5553        return 'previous';
5554      }
5555      return;
5556    }
5557    function onBulletClick(e) {
5558      const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));
5559      if (!bulletEl) {
5560        return;
5561      }
5562      e.preventDefault();
5563      const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;
5564      if (swiper.params.loop) {
5565        if (swiper.realIndex === index) return;
5566        const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);
5567        if (moveDirection === 'next') {
5568          swiper.slideNext();
5569        } else if (moveDirection === 'previous') {
5570          swiper.slidePrev();
5571        } else {
5572          swiper.slideToLoop(index);
5573        }
5574      } else {
5575        swiper.slideTo(index);
5576      }
5577    }
5578    function update() {
5579      // Render || Update Pagination bullets/items
5580      const rtl = swiper.rtl;
5581      const params = swiper.params.pagination;
5582      if (isPaginationDisabled()) return;
5583      let el = swiper.pagination.el;
5584      el = makeElementsArray(el);
5585      // Current/Total
5586      let current;
5587      let previousIndex;
5588      const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
5589      const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
5590      if (swiper.params.loop) {
5591        previousIndex = swiper.previousRealIndex || 0;
5592        current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
5593      } else if (typeof swiper.snapIndex !== 'undefined') {
5594        current = swiper.snapIndex;
5595        previousIndex = swiper.previousSnapIndex;
5596      } else {
5597        previousIndex = swiper.previousIndex || 0;
5598        current = swiper.activeIndex || 0;
5599      }
5600      // Types
5601      if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
5602        const bullets = swiper.pagination.bullets;
5603        let firstIndex;
5604        let lastIndex;
5605        let midIndex;
5606        if (params.dynamicBullets) {
5607          bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
5608          el.forEach(subEl => {
5609            subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
5610          });
5611          if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
5612            dynamicBulletIndex += current - (previousIndex || 0);
5613            if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
5614              dynamicBulletIndex = params.dynamicMainBullets - 1;
5615            } else if (dynamicBulletIndex < 0) {
5616              dynamicBulletIndex = 0;
5617            }
5618          }
5619          firstIndex = Math.max(current - dynamicBulletIndex, 0);
5620          lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
5621          midIndex = (lastIndex + firstIndex) / 2;
5622        }
vendor: 5,261 bytes, lines 5623-5733
5623        bullets.forEach(bulletEl => {
5624          const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();
5625          bulletEl.classList.remove(...classesToRemove);
5626        });
5627        if (el.length > 1) {
5628          bullets.forEach(bullet => {
5629            const bulletIndex = elementIndex(bullet);
5630            if (bulletIndex === current) {
5631              bullet.classList.add(...params.bulletActiveClass.split(' '));
5632            } else if (swiper.isElement) {
5633              bullet.setAttribute('part', 'bullet');
5634            }
5635            if (params.dynamicBullets) {
5636              if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
5637                bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
5638              }
5639              if (bulletIndex === firstIndex) {
5640                setSideBullets(bullet, 'prev');
5641              }
5642              if (bulletIndex === lastIndex) {
5643                setSideBullets(bullet, 'next');
5644              }
5645            }
5646          });
5647        } else {
5648          const bullet = bullets[current];
5649          if (bullet) {
5650            bullet.classList.add(...params.bulletActiveClass.split(' '));
5651          }
5652          if (swiper.isElement) {
5653            bullets.forEach((bulletEl, bulletIndex) => {
5654              bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
5655            });
5656          }
5657          if (params.dynamicBullets) {
5658            const firstDisplayedBullet = bullets[firstIndex];
5659            const lastDisplayedBullet = bullets[lastIndex];
5660            for (let i = firstIndex; i <= lastIndex; i += 1) {
5661              if (bullets[i]) {
5662                bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
5663              }
5664            }
5665            setSideBullets(firstDisplayedBullet, 'prev');
5666            setSideBullets(lastDisplayedBullet, 'next');
5667          }
5668        }
5669        if (params.dynamicBullets) {
5670          const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
5671          const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
5672          const offsetProp = rtl ? 'right' : 'left';
5673          bullets.forEach(bullet => {
5674            bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
5675          });
5676        }
5677      }
5678      el.forEach((subEl, subElIndex) => {
5679        if (params.type === 'fraction') {
5680          subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {
5681            fractionEl.textContent = params.formatFractionCurrent(current + 1);
5682          });
5683          subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {
5684            totalEl.textContent = params.formatFractionTotal(total);
5685          });
5686        }
5687        if (params.type === 'progressbar') {
5688          let progressbarDirection;
5689          if (params.progressbarOpposite) {
5690            progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
5691          } else {
5692            progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
5693          }
5694          const scale = (current + 1) / total;
5695          let scaleX = 1;
5696          let scaleY = 1;
5697          if (progressbarDirection === 'horizontal') {
5698            scaleX = scale;
5699          } else {
5700            scaleY = scale;
5701          }
5702          subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {
5703            progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
5704            progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
5705          });
5706        }
5707        if (params.type === 'custom' && params.renderCustom) {
5708          subEl.innerHTML = params.renderCustom(swiper, current + 1, total);
5709          if (subElIndex === 0) emit('paginationRender', subEl);
5710        } else {
5711          if (subElIndex === 0) emit('paginationRender', subEl);
5712          emit('paginationUpdate', subEl);
5713        }
5714        if (swiper.params.watchOverflow && swiper.enabled) {
5715          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
5716        }
5717      });
5718    }
5719    function render() {
5720      // Render Container
5721      const params = swiper.params.pagination;
5722      if (isPaginationDisabled()) return;
5723      const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;
5724      let el = swiper.pagination.el;
5725      el = makeElementsArray(el);
5726      let paginationHTML = '';
5727      if (params.type === 'bullets') {
5728        let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
5729        if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
5730          numberOfBullets = slidesLength;
5731        }
5732        for (let i = 0; i < numberOfBullets; i += 1) {
5733          if (params.renderBullet) {
vendor: 12,548 bytes, lines 5734-6100
5734            paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
5735          } else {
5736            // prettier-ignore
5737            paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
5738          }
5739        }
5740      }
5741      if (params.type === 'fraction') {
5742        if (params.renderFraction) {
5743          paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
5744        } else {
5745          paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
5746        }
5747      }
5748      if (params.type === 'progressbar') {
5749        if (params.renderProgressbar) {
5750          paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
5751        } else {
5752          paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
5753        }
5754      }
5755      swiper.pagination.bullets = [];
5756      el.forEach(subEl => {
5757        if (params.type !== 'custom') {
5758          subEl.innerHTML = paginationHTML || '';
5759        }
5760        if (params.type === 'bullets') {
5761          swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));
5762        }
5763      });
5764      if (params.type !== 'custom') {
5765        emit('paginationRender', el[0]);
5766      }
5767    }
5768    function init() {
5769      swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
5770        el: 'swiper-pagination'
5771      });
5772      const params = swiper.params.pagination;
5773      if (!params.el) return;
5774      let el;
5775      if (typeof params.el === 'string' && swiper.isElement) {
5776        el = swiper.el.querySelector(params.el);
5777      }
5778      if (!el && typeof params.el === 'string') {
5779        el = [...document.querySelectorAll(params.el)];
5780      }
5781      if (!el) {
5782        el = params.el;
5783      }
5784      if (!el || el.length === 0) return;
5785      if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
5786        el = [...swiper.el.querySelectorAll(params.el)];
5787        // check if it belongs to another nested Swiper
5788        if (el.length > 1) {
5789          el = el.filter(subEl => {
5790            if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;
5791            return true;
5792          })[0];
5793        }
5794      }
5795      if (Array.isArray(el) && el.length === 1) el = el[0];
5796      Object.assign(swiper.pagination, {
5797        el
5798      });
5799      el = makeElementsArray(el);
5800      el.forEach(subEl => {
5801        if (params.type === 'bullets' && params.clickable) {
5802          subEl.classList.add(...(params.clickableClass || '').split(' '));
5803        }
5804        subEl.classList.add(params.modifierClass + params.type);
5805        subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5806        if (params.type === 'bullets' && params.dynamicBullets) {
5807          subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
5808          dynamicBulletIndex = 0;
5809          if (params.dynamicMainBullets < 1) {
5810            params.dynamicMainBullets = 1;
5811          }
5812        }
5813        if (params.type === 'progressbar' && params.progressbarOpposite) {
5814          subEl.classList.add(params.progressbarOppositeClass);
5815        }
5816        if (params.clickable) {
5817          subEl.addEventListener('click', onBulletClick);
5818        }
5819        if (!swiper.enabled) {
5820          subEl.classList.add(params.lockClass);
5821        }
5822      });
5823    }
5824    function destroy() {
5825      const params = swiper.params.pagination;
5826      if (isPaginationDisabled()) return;
5827      let el = swiper.pagination.el;
5828      if (el) {
5829        el = makeElementsArray(el);
5830        el.forEach(subEl => {
5831          subEl.classList.remove(params.hiddenClass);
5832          subEl.classList.remove(params.modifierClass + params.type);
5833          subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5834          if (params.clickable) {
5835            subEl.classList.remove(...(params.clickableClass || '').split(' '));
5836            subEl.removeEventListener('click', onBulletClick);
5837          }
5838        });
5839      }
5840      if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
5841    }
5842    on('changeDirection', () => {
5843      if (!swiper.pagination || !swiper.pagination.el) return;
5844      const params = swiper.params.pagination;
5845      let {
5846        el
5847      } = swiper.pagination;
5848      el = makeElementsArray(el);
5849      el.forEach(subEl => {
5850        subEl.classList.remove(params.horizontalClass, params.verticalClass);
5851        subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5852      });
5853    });
5854    on('init', () => {
5855      if (swiper.params.pagination.enabled === false) {
5856        // eslint-disable-next-line
5857        disable();
5858      } else {
5859        init();
5860        render();
5861        update();
5862      }
5863    });
5864    on('activeIndexChange', () => {
5865      if (typeof swiper.snapIndex === 'undefined') {
5866        update();
5867      }
5868    });
5869    on('snapIndexChange', () => {
5870      update();
5871    });
5872    on('snapGridLengthChange', () => {
5873      render();
5874      update();
5875    });
5876    on('destroy', () => {
5877      destroy();
5878    });
5879    on('enable disable', () => {
5880      let {
5881        el
5882      } = swiper.pagination;
5883      if (el) {
5884        el = makeElementsArray(el);
5885        el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
5886      }
5887    });
5888    on('lock unlock', () => {
5889      update();
5890    });
5891    on('click', (_s, e) => {
5892      const targetEl = e.target;
5893      const el = makeElementsArray(swiper.pagination.el);
5894      if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
5895        if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
5896        const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
5897        if (isHidden === true) {
5898          emit('paginationShow');
5899        } else {
5900          emit('paginationHide');
5901        }
5902        el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
5903      }
5904    });
5905    const enable = () => {
5906      swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
5907      let {
5908        el
5909      } = swiper.pagination;
5910      if (el) {
5911        el = makeElementsArray(el);
5912        el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
5913      }
5914      init();
5915      render();
5916      update();
5917    };
5918    const disable = () => {
5919      swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
5920      let {
5921        el
5922      } = swiper.pagination;
5923      if (el) {
5924        el = makeElementsArray(el);
5925        el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
5926      }
5927      destroy();
5928    };
5929    Object.assign(swiper.pagination, {
5930      enable,
5931      disable,
5932      render,
5933      update,
5934      init,
5935      destroy
5936    });
5937  }
5938
5939  function Scrollbar(_ref) {
5940    let {
5941      swiper,
5942      extendParams,
5943      on,
5944      emit
5945    } = _ref;
5946    const document = getDocument();
5947    let isTouched = false;
5948    let timeout = null;
5949    let dragTimeout = null;
5950    let dragStartPos;
5951    let dragSize;
5952    let trackSize;
5953    let divider;
5954    extendParams({
5955      scrollbar: {
5956        el: null,
5957        dragSize: 'auto',
5958        hide: false,
5959        draggable: false,
5960        snapOnRelease: true,
5961        lockClass: 'swiper-scrollbar-lock',
5962        dragClass: 'swiper-scrollbar-drag',
5963        scrollbarDisabledClass: 'swiper-scrollbar-disabled',
5964        horizontalClass: `swiper-scrollbar-horizontal`,
5965        verticalClass: `swiper-scrollbar-vertical`
5966      }
5967    });
5968    swiper.scrollbar = {
5969      el: null,
5970      dragEl: null
5971    };
5972    function setTranslate() {
5973      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
5974      const {
5975        scrollbar,
5976        rtlTranslate: rtl
5977      } = swiper;
5978      const {
5979        dragEl,
5980        el
5981      } = scrollbar;
5982      const params = swiper.params.scrollbar;
5983      const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;
5984      let newSize = dragSize;
5985      let newPos = (trackSize - dragSize) * progress;
5986      if (rtl) {
5987        newPos = -newPos;
5988        if (newPos > 0) {
5989          newSize = dragSize - newPos;
5990          newPos = 0;
5991        } else if (-newPos + dragSize > trackSize) {
5992          newSize = trackSize + newPos;
5993        }
5994      } else if (newPos < 0) {
5995        newSize = dragSize + newPos;
5996        newPos = 0;
5997      } else if (newPos + dragSize > trackSize) {
5998        newSize = trackSize - newPos;
5999      }
6000      if (swiper.isHorizontal()) {
6001        dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;
6002        dragEl.style.width = `${newSize}px`;
6003      } else {
6004        dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;
6005        dragEl.style.height = `${newSize}px`;
6006      }
6007      if (params.hide) {
6008        clearTimeout(timeout);
6009        el.style.opacity = 1;
6010        timeout = setTimeout(() => {
6011          el.style.opacity = 0;
6012          el.style.transitionDuration = '400ms';
6013        }, 1000);
6014      }
6015    }
6016    function setTransition(duration) {
6017      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
6018      swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;
6019    }
6020    function updateSize() {
6021      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
6022      const {
6023        scrollbar
6024      } = swiper;
6025      const {
6026        dragEl,
6027        el
6028      } = scrollbar;
6029      dragEl.style.width = '';
6030      dragEl.style.height = '';
6031      trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;
6032      divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
6033      if (swiper.params.scrollbar.dragSize === 'auto') {
6034        dragSize = trackSize * divider;
6035      } else {
6036        dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
6037      }
6038      if (swiper.isHorizontal()) {
6039        dragEl.style.width = `${dragSize}px`;
6040      } else {
6041        dragEl.style.height = `${dragSize}px`;
6042      }
6043      if (divider >= 1) {
6044        el.style.display = 'none';
6045      } else {
6046        el.style.display = '';
6047      }
6048      if (swiper.params.scrollbar.hide) {
6049        el.style.opacity = 0;
6050      }
6051      if (swiper.params.watchOverflow && swiper.enabled) {
6052        scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);
6053      }
6054    }
6055    function getPointerPosition(e) {
6056      return swiper.isHorizontal() ? e.clientX : e.clientY;
6057    }
6058    function setDragPosition(e) {
6059      const {
6060        scrollbar,
6061        rtlTranslate: rtl
6062      } = swiper;
6063      const {
6064        el
6065      } = scrollbar;
6066      let positionRatio;
6067      positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
6068      positionRatio = Math.max(Math.min(positionRatio, 1), 0);
6069      if (rtl) {
6070        positionRatio = 1 - positionRatio;
6071      }
6072      const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
6073      swiper.updateProgress(position);
6074      swiper.setTranslate(position);
6075      swiper.updateActiveIndex();
6076      swiper.updateSlidesClasses();
6077    }
6078    function onDragStart(e) {
6079      const params = swiper.params.scrollbar;
6080      const {
6081        scrollbar,
6082        wrapperEl
6083      } = swiper;
6084      const {
6085        el,
6086        dragEl
6087      } = scrollbar;
6088      isTouched = true;
6089      dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
6090      e.preventDefault();
6091      e.stopPropagation();
6092      wrapperEl.style.transitionDuration = '100ms';
6093      dragEl.style.transitionDuration = '100ms';
6094      setDragPosition(e);
6095      clearTimeout(dragTimeout);
6096      el.style.transitionDuration = '0ms';
6097      if (params.hide) {
6098        el.style.opacity = 1;
6099      }
6100      if (swiper.params.cssMode) {
vendor: 6,010 bytes, lines 6101-6288
6101        swiper.wrapperEl.style['scroll-snap-type'] = 'none';
6102      }
6103      emit('scrollbarDragStart', e);
6104    }
6105    function onDragMove(e) {
6106      const {
6107        scrollbar,
6108        wrapperEl
6109      } = swiper;
6110      const {
6111        el,
6112        dragEl
6113      } = scrollbar;
6114      if (!isTouched) return;
6115      if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;
6116      setDragPosition(e);
6117      wrapperEl.style.transitionDuration = '0ms';
6118      el.style.transitionDuration = '0ms';
6119      dragEl.style.transitionDuration = '0ms';
6120      emit('scrollbarDragMove', e);
6121    }
6122    function onDragEnd(e) {
6123      const params = swiper.params.scrollbar;
6124      const {
6125        scrollbar,
6126        wrapperEl
6127      } = swiper;
6128      const {
6129        el
6130      } = scrollbar;
6131      if (!isTouched) return;
6132      isTouched = false;
6133      if (swiper.params.cssMode) {
6134        swiper.wrapperEl.style['scroll-snap-type'] = '';
6135        wrapperEl.style.transitionDuration = '';
6136      }
6137      if (params.hide) {
6138        clearTimeout(dragTimeout);
6139        dragTimeout = nextTick(() => {
6140          el.style.opacity = 0;
6141          el.style.transitionDuration = '400ms';
6142        }, 1000);
6143      }
6144      emit('scrollbarDragEnd', e);
6145      if (params.snapOnRelease) {
6146        swiper.slideToClosest();
6147      }
6148    }
6149    function events(method) {
6150      const {
6151        scrollbar,
6152        params
6153      } = swiper;
6154      const el = scrollbar.el;
6155      if (!el) return;
6156      const target = el;
6157      const activeListener = params.passiveListeners ? {
6158        passive: false,
6159        capture: false
6160      } : false;
6161      const passiveListener = params.passiveListeners ? {
6162        passive: true,
6163        capture: false
6164      } : false;
6165      if (!target) return;
6166      const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
6167      target[eventMethod]('pointerdown', onDragStart, activeListener);
6168      document[eventMethod]('pointermove', onDragMove, activeListener);
6169      document[eventMethod]('pointerup', onDragEnd, passiveListener);
6170    }
6171    function enableDraggable() {
6172      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
6173      events('on');
6174    }
6175    function disableDraggable() {
6176      if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
6177      events('off');
6178    }
6179    function init() {
6180      const {
6181        scrollbar,
6182        el: swiperEl
6183      } = swiper;
6184      swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
6185        el: 'swiper-scrollbar'
6186      });
6187      const params = swiper.params.scrollbar;
6188      if (!params.el) return;
6189      let el;
6190      if (typeof params.el === 'string' && swiper.isElement) {
6191        el = swiper.el.querySelector(params.el);
6192      }
6193      if (!el && typeof params.el === 'string') {
6194        el = document.querySelectorAll(params.el);
6195        if (!el.length) return;
6196      } else if (!el) {
6197        el = params.el;
6198      }
6199      if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {
6200        el = swiperEl.querySelector(params.el);
6201      }
6202      if (el.length > 0) el = el[0];
6203      el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
6204      let dragEl;
6205      if (el) {
6206        dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));
6207        if (!dragEl) {
6208          dragEl = createElement('div', swiper.params.scrollbar.dragClass);
6209          el.append(dragEl);
6210        }
6211      }
6212      Object.assign(scrollbar, {
6213        el,
6214        dragEl
6215      });
6216      if (params.draggable) {
6217        enableDraggable();
6218      }
6219      if (el) {
6220        el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));
6221      }
6222    }
6223    function destroy() {
6224      const params = swiper.params.scrollbar;
6225      const el = swiper.scrollbar.el;
6226      if (el) {
6227        el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
6228      }
6229      disableDraggable();
6230    }
6231    on('changeDirection', () => {
6232      if (!swiper.scrollbar || !swiper.scrollbar.el) return;
6233      const params = swiper.params.scrollbar;
6234      let {
6235        el
6236      } = swiper.scrollbar;
6237      el = makeElementsArray(el);
6238      el.forEach(subEl => {
6239        subEl.classList.remove(params.horizontalClass, params.verticalClass);
6240        subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
6241      });
6242    });
6243    on('init', () => {
6244      if (swiper.params.scrollbar.enabled === false) {
6245        // eslint-disable-next-line
6246        disable();
6247      } else {
6248        init();
6249        updateSize();
6250        setTranslate();
6251      }
6252    });
6253    on('update resize observerUpdate lock unlock changeDirection', () => {
6254      updateSize();
6255    });
6256    on('setTranslate', () => {
6257      setTranslate();
6258    });
6259    on('setTransition', (_s, duration) => {
6260      setTransition(duration);
6261    });
6262    on('enable disable', () => {
6263      const {
6264        el
6265      } = swiper.scrollbar;
6266      if (el) {
6267        el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));
6268      }
6269    });
6270    on('destroy', () => {
6271      destroy();
6272    });
6273    const enable = () => {
6274      swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));
6275      if (swiper.scrollbar.el) {
6276        swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));
6277      }
6278      init();
6279      updateSize();
6280      setTranslate();
6281    };
6282    const disable = () => {
6283      swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));
6284      if (swiper.scrollbar.el) {
6285        swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));
6286      }
6287      destroy();
6288    };
vendor: 57,258 bytes, lines 6289-7884
6289    Object.assign(swiper.scrollbar, {
6290      enable,
6291      disable,
6292      updateSize,
6293      setTranslate,
6294      init,
6295      destroy
6296    });
6297  }
6298
6299  function Parallax(_ref) {
6300    let {
6301      swiper,
6302      extendParams,
6303      on
6304    } = _ref;
6305    extendParams({
6306      parallax: {
6307        enabled: false
6308      }
6309    });
6310    const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';
6311    const setTransform = (el, progress) => {
6312      const {
6313        rtl
6314      } = swiper;
6315      const rtlFactor = rtl ? -1 : 1;
6316      const p = el.getAttribute('data-swiper-parallax') || '0';
6317      let x = el.getAttribute('data-swiper-parallax-x');
6318      let y = el.getAttribute('data-swiper-parallax-y');
6319      const scale = el.getAttribute('data-swiper-parallax-scale');
6320      const opacity = el.getAttribute('data-swiper-parallax-opacity');
6321      const rotate = el.getAttribute('data-swiper-parallax-rotate');
6322      if (x || y) {
6323        x = x || '0';
6324        y = y || '0';
6325      } else if (swiper.isHorizontal()) {
6326        x = p;
6327        y = '0';
6328      } else {
6329        y = p;
6330        x = '0';
6331      }
6332      if (x.indexOf('%') >= 0) {
6333        x = `${parseInt(x, 10) * progress * rtlFactor}%`;
6334      } else {
6335        x = `${x * progress * rtlFactor}px`;
6336      }
6337      if (y.indexOf('%') >= 0) {
6338        y = `${parseInt(y, 10) * progress}%`;
6339      } else {
6340        y = `${y * progress}px`;
6341      }
6342      if (typeof opacity !== 'undefined' && opacity !== null) {
6343        const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
6344        el.style.opacity = currentOpacity;
6345      }
6346      let transform = `translate3d(${x}, ${y}, 0px)`;
6347      if (typeof scale !== 'undefined' && scale !== null) {
6348        const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
6349        transform += ` scale(${currentScale})`;
6350      }
6351      if (rotate && typeof rotate !== 'undefined' && rotate !== null) {
6352        const currentRotate = rotate * progress * -1;
6353        transform += ` rotate(${currentRotate}deg)`;
6354      }
6355      el.style.transform = transform;
6356    };
6357    const setTranslate = () => {
6358      const {
6359        el,
6360        slides,
6361        progress,
6362        snapGrid,
6363        isElement
6364      } = swiper;
6365      const elements = elementChildren(el, elementsSelector);
6366      if (swiper.isElement) {
6367        elements.push(...elementChildren(swiper.hostEl, elementsSelector));
6368      }
6369      elements.forEach(subEl => {
6370        setTransform(subEl, progress);
6371      });
6372      slides.forEach((slideEl, slideIndex) => {
6373        let slideProgress = slideEl.progress;
6374        if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
6375          slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
6376        }
6377        slideProgress = Math.min(Math.max(slideProgress, -1), 1);
6378        slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {
6379          setTransform(subEl, slideProgress);
6380        });
6381      });
6382    };
6383    const setTransition = function (duration) {
6384      if (duration === void 0) {
6385        duration = swiper.params.speed;
6386      }
6387      const {
6388        el,
6389        hostEl
6390      } = swiper;
6391      const elements = [...el.querySelectorAll(elementsSelector)];
6392      if (swiper.isElement) {
6393        elements.push(...hostEl.querySelectorAll(elementsSelector));
6394      }
6395      elements.forEach(parallaxEl => {
6396        let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;
6397        if (duration === 0) parallaxDuration = 0;
6398        parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;
6399      });
6400    };
6401    on('beforeInit', () => {
6402      if (!swiper.params.parallax.enabled) return;
6403      swiper.params.watchSlidesProgress = true;
6404      swiper.originalParams.watchSlidesProgress = true;
6405    });
6406    on('init', () => {
6407      if (!swiper.params.parallax.enabled) return;
6408      setTranslate();
6409    });
6410    on('setTranslate', () => {
6411      if (!swiper.params.parallax.enabled) return;
6412      setTranslate();
6413    });
6414    on('setTransition', (_swiper, duration) => {
6415      if (!swiper.params.parallax.enabled) return;
6416      setTransition(duration);
6417    });
6418  }
6419
6420  function Zoom(_ref) {
6421    let {
6422      swiper,
6423      extendParams,
6424      on,
6425      emit
6426    } = _ref;
6427    const window = getWindow();
6428    extendParams({
6429      zoom: {
6430        enabled: false,
6431        limitToOriginalSize: false,
6432        maxRatio: 3,
6433        minRatio: 1,
6434        toggle: true,
6435        containerClass: 'swiper-zoom-container',
6436        zoomedSlideClass: 'swiper-slide-zoomed'
6437      }
6438    });
6439    swiper.zoom = {
6440      enabled: false
6441    };
6442    let currentScale = 1;
6443    let isScaling = false;
6444    let fakeGestureTouched;
6445    let fakeGestureMoved;
6446    const evCache = [];
6447    const gesture = {
6448      originX: 0,
6449      originY: 0,
6450      slideEl: undefined,
6451      slideWidth: undefined,
6452      slideHeight: undefined,
6453      imageEl: undefined,
6454      imageWrapEl: undefined,
6455      maxRatio: 3
6456    };
6457    const image = {
6458      isTouched: undefined,
6459      isMoved: undefined,
6460      currentX: undefined,
6461      currentY: undefined,
6462      minX: undefined,
6463      minY: undefined,
6464      maxX: undefined,
6465      maxY: undefined,
6466      width: undefined,
6467      height: undefined,
6468      startX: undefined,
6469      startY: undefined,
6470      touchesStart: {},
6471      touchesCurrent: {}
6472    };
6473    const velocity = {
6474      x: undefined,
6475      y: undefined,
6476      prevPositionX: undefined,
6477      prevPositionY: undefined,
6478      prevTime: undefined
6479    };
6480    let scale = 1;
6481    Object.defineProperty(swiper.zoom, 'scale', {
6482      get() {
6483        return scale;
6484      },
6485      set(value) {
6486        if (scale !== value) {
6487          const imageEl = gesture.imageEl;
6488          const slideEl = gesture.slideEl;
6489          emit('zoomChange', value, imageEl, slideEl);
6490        }
6491        scale = value;
6492      }
6493    });
6494    function getDistanceBetweenTouches() {
6495      if (evCache.length < 2) return 1;
6496      const x1 = evCache[0].pageX;
6497      const y1 = evCache[0].pageY;
6498      const x2 = evCache[1].pageX;
6499      const y2 = evCache[1].pageY;
6500      const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
6501      return distance;
6502    }
6503    function getMaxRatio() {
6504      const params = swiper.params.zoom;
6505      const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
6506      if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {
6507        const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;
6508        return Math.min(imageMaxRatio, maxRatio);
6509      }
6510      return maxRatio;
6511    }
6512    function getScaleOrigin() {
6513      if (evCache.length < 2) return {
6514        x: null,
6515        y: null
6516      };
6517      const box = gesture.imageEl.getBoundingClientRect();
6518      return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];
6519    }
6520    function getSlideSelector() {
6521      return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
6522    }
6523    function eventWithinSlide(e) {
6524      const slideSelector = getSlideSelector();
6525      if (e.target.matches(slideSelector)) return true;
6526      if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;
6527      return false;
6528    }
6529    function eventWithinZoomContainer(e) {
6530      const selector = `.${swiper.params.zoom.containerClass}`;
6531      if (e.target.matches(selector)) return true;
6532      if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;
6533      return false;
6534    }
6535
6536    // Events
6537    function onGestureStart(e) {
6538      if (e.pointerType === 'mouse') {
6539        evCache.splice(0, evCache.length);
6540      }
6541      if (!eventWithinSlide(e)) return;
6542      const params = swiper.params.zoom;
6543      fakeGestureTouched = false;
6544      fakeGestureMoved = false;
6545      evCache.push(e);
6546      if (evCache.length < 2) {
6547        return;
6548      }
6549      fakeGestureTouched = true;
6550      gesture.scaleStart = getDistanceBetweenTouches();
6551      if (!gesture.slideEl) {
6552        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
6553        if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];
6554        let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
6555        if (imageEl) {
6556          imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
6557        }
6558        gesture.imageEl = imageEl;
6559        if (imageEl) {
6560          gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];
6561        } else {
6562          gesture.imageWrapEl = undefined;
6563        }
6564        if (!gesture.imageWrapEl) {
6565          gesture.imageEl = undefined;
6566          return;
6567        }
6568        gesture.maxRatio = getMaxRatio();
6569      }
6570      if (gesture.imageEl) {
6571        const [originX, originY] = getScaleOrigin();
6572        gesture.originX = originX;
6573        gesture.originY = originY;
6574        gesture.imageEl.style.transitionDuration = '0ms';
6575      }
6576      isScaling = true;
6577    }
6578    function onGestureChange(e) {
6579      if (!eventWithinSlide(e)) return;
6580      const params = swiper.params.zoom;
6581      const zoom = swiper.zoom;
6582      const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
6583      if (pointerIndex >= 0) evCache[pointerIndex] = e;
6584      if (evCache.length < 2) {
6585        return;
6586      }
6587      fakeGestureMoved = true;
6588      gesture.scaleMove = getDistanceBetweenTouches();
6589      if (!gesture.imageEl) {
6590        return;
6591      }
6592      zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
6593      if (zoom.scale > gesture.maxRatio) {
6594        zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
6595      }
6596      if (zoom.scale < params.minRatio) {
6597        zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
6598      }
6599      gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
6600    }
6601    function onGestureEnd(e) {
6602      if (!eventWithinSlide(e)) return;
6603      if (e.pointerType === 'mouse' && e.type === 'pointerout') return;
6604      const params = swiper.params.zoom;
6605      const zoom = swiper.zoom;
6606      const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
6607      if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);
6608      if (!fakeGestureTouched || !fakeGestureMoved) {
6609        return;
6610      }
6611      fakeGestureTouched = false;
6612      fakeGestureMoved = false;
6613      if (!gesture.imageEl) return;
6614      zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
6615      gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;
6616      gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
6617      currentScale = zoom.scale;
6618      isScaling = false;
6619      if (zoom.scale > 1 && gesture.slideEl) {
6620        gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
6621      } else if (zoom.scale <= 1 && gesture.slideEl) {
6622        gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
6623      }
6624      if (zoom.scale === 1) {
6625        gesture.originX = 0;
6626        gesture.originY = 0;
6627        gesture.slideEl = undefined;
6628      }
6629    }
6630    let allowTouchMoveTimeout;
6631    function allowTouchMove() {
6632      swiper.touchEventsData.preventTouchMoveFromPointerMove = false;
6633    }
6634    function preventTouchMove() {
6635      clearTimeout(allowTouchMoveTimeout);
6636      swiper.touchEventsData.preventTouchMoveFromPointerMove = true;
6637      allowTouchMoveTimeout = setTimeout(() => {
6638        allowTouchMove();
6639      });
6640    }
6641    function onTouchStart(e) {
6642      const device = swiper.device;
6643      if (!gesture.imageEl) return;
6644      if (image.isTouched) return;
6645      if (device.android && e.cancelable) e.preventDefault();
6646      image.isTouched = true;
6647      const event = evCache.length > 0 ? evCache[0] : e;
6648      image.touchesStart.x = event.pageX;
6649      image.touchesStart.y = event.pageY;
6650    }
6651    function onTouchMove(e) {
6652      if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {
6653        return;
6654      }
6655      const zoom = swiper.zoom;
6656      if (!gesture.imageEl) {
6657        return;
6658      }
6659      if (!image.isTouched || !gesture.slideEl) {
6660        return;
6661      }
6662      if (!image.isMoved) {
6663        image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
6664        image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
6665        image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;
6666        image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;
6667        gesture.slideWidth = gesture.slideEl.offsetWidth;
6668        gesture.slideHeight = gesture.slideEl.offsetHeight;
6669        gesture.imageWrapEl.style.transitionDuration = '0ms';
6670      }
6671      // Define if we need image drag
6672      const scaledWidth = image.width * zoom.scale;
6673      const scaledHeight = image.height * zoom.scale;
6674      image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
6675      image.maxX = -image.minX;
6676      image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
6677      image.maxY = -image.minY;
6678      image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;
6679      image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;
6680      const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));
6681      if (touchesDiff > 5) {
6682        swiper.allowClick = false;
6683      }
6684      if (!image.isMoved && !isScaling) {
6685        if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {
6686          image.isTouched = false;
6687          allowTouchMove();
6688          return;
6689        }
6690        if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {
6691          image.isTouched = false;
6692          allowTouchMove();
6693          return;
6694        }
6695      }
6696      if (e.cancelable) {
6697        e.preventDefault();
6698      }
6699      e.stopPropagation();
6700      preventTouchMove();
6701      image.isMoved = true;
6702      const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
6703      const {
6704        originX,
6705        originY
6706      } = gesture;
6707      image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);
6708      image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);
6709      if (image.currentX < image.minX) {
6710        image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
6711      }
6712      if (image.currentX > image.maxX) {
6713        image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
6714      }
6715      if (image.currentY < image.minY) {
6716        image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
6717      }
6718      if (image.currentY > image.maxY) {
6719        image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
6720      }
6721
6722      // Velocity
6723      if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
6724      if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
6725      if (!velocity.prevTime) velocity.prevTime = Date.now();
6726      velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
6727      velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
6728      if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
6729      if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
6730      velocity.prevPositionX = image.touchesCurrent.x;
6731      velocity.prevPositionY = image.touchesCurrent.y;
6732      velocity.prevTime = Date.now();
6733      gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
6734    }
6735    function onTouchEnd() {
6736      const zoom = swiper.zoom;
6737      if (!gesture.imageEl) return;
6738      if (!image.isTouched || !image.isMoved) {
6739        image.isTouched = false;
6740        image.isMoved = false;
6741        return;
6742      }
6743      image.isTouched = false;
6744      image.isMoved = false;
6745      let momentumDurationX = 300;
6746      let momentumDurationY = 300;
6747      const momentumDistanceX = velocity.x * momentumDurationX;
6748      const newPositionX = image.currentX + momentumDistanceX;
6749      const momentumDistanceY = velocity.y * momentumDurationY;
6750      const newPositionY = image.currentY + momentumDistanceY;
6751
6752      // Fix duration
6753      if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
6754      if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
6755      const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
6756      image.currentX = newPositionX;
6757      image.currentY = newPositionY;
6758      // Define if we need image drag
6759      const scaledWidth = image.width * zoom.scale;
6760      const scaledHeight = image.height * zoom.scale;
6761      image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
6762      image.maxX = -image.minX;
6763      image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
6764      image.maxY = -image.minY;
6765      image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
6766      image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
6767      gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;
6768      gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
6769    }
6770    function onTransitionEnd() {
6771      const zoom = swiper.zoom;
6772      if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {
6773        if (gesture.imageEl) {
6774          gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
6775        }
6776        if (gesture.imageWrapEl) {
6777          gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
6778        }
6779        gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);
6780        zoom.scale = 1;
6781        currentScale = 1;
6782        gesture.slideEl = undefined;
6783        gesture.imageEl = undefined;
6784        gesture.imageWrapEl = undefined;
6785        gesture.originX = 0;
6786        gesture.originY = 0;
6787      }
6788    }
6789    function zoomIn(e) {
6790      const zoom = swiper.zoom;
6791      const params = swiper.params.zoom;
6792      if (!gesture.slideEl) {
6793        if (e && e.target) {
6794          gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
6795        }
6796        if (!gesture.slideEl) {
6797          if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
6798            gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
6799          } else {
6800            gesture.slideEl = swiper.slides[swiper.activeIndex];
6801          }
6802        }
6803        let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
6804        if (imageEl) {
6805          imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
6806        }
6807        gesture.imageEl = imageEl;
6808        if (imageEl) {
6809          gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];
6810        } else {
6811          gesture.imageWrapEl = undefined;
6812        }
6813      }
6814      if (!gesture.imageEl || !gesture.imageWrapEl) return;
6815      if (swiper.params.cssMode) {
6816        swiper.wrapperEl.style.overflow = 'hidden';
6817        swiper.wrapperEl.style.touchAction = 'none';
6818      }
6819      gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
6820      let touchX;
6821      let touchY;
6822      let offsetX;
6823      let offsetY;
6824      let diffX;
6825      let diffY;
6826      let translateX;
6827      let translateY;
6828      let imageWidth;
6829      let imageHeight;
6830      let scaledWidth;
6831      let scaledHeight;
6832      let translateMinX;
6833      let translateMinY;
6834      let translateMaxX;
6835      let translateMaxY;
6836      let slideWidth;
6837      let slideHeight;
6838      if (typeof image.touchesStart.x === 'undefined' && e) {
6839        touchX = e.pageX;
6840        touchY = e.pageY;
6841      } else {
6842        touchX = image.touchesStart.x;
6843        touchY = image.touchesStart.y;
6844      }
6845      const forceZoomRatio = typeof e === 'number' ? e : null;
6846      if (currentScale === 1 && forceZoomRatio) {
6847        touchX = undefined;
6848        touchY = undefined;
6849        image.touchesStart.x = undefined;
6850        image.touchesStart.y = undefined;
6851      }
6852      const maxRatio = getMaxRatio();
6853      zoom.scale = forceZoomRatio || maxRatio;
6854      currentScale = forceZoomRatio || maxRatio;
6855      if (e && !(currentScale === 1 && forceZoomRatio)) {
6856        slideWidth = gesture.slideEl.offsetWidth;
6857        slideHeight = gesture.slideEl.offsetHeight;
6858        offsetX = elementOffset(gesture.slideEl).left + window.scrollX;
6859        offsetY = elementOffset(gesture.slideEl).top + window.scrollY;
6860        diffX = offsetX + slideWidth / 2 - touchX;
6861        diffY = offsetY + slideHeight / 2 - touchY;
6862        imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
6863        imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
6864        scaledWidth = imageWidth * zoom.scale;
6865        scaledHeight = imageHeight * zoom.scale;
6866        translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
6867        translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
6868        translateMaxX = -translateMinX;
6869        translateMaxY = -translateMinY;
6870        translateX = diffX * zoom.scale;
6871        translateY = diffY * zoom.scale;
6872        if (translateX < translateMinX) {
6873          translateX = translateMinX;
6874        }
6875        if (translateX > translateMaxX) {
6876          translateX = translateMaxX;
6877        }
6878        if (translateY < translateMinY) {
6879          translateY = translateMinY;
6880        }
6881        if (translateY > translateMaxY) {
6882          translateY = translateMaxY;
6883        }
6884      } else {
6885        translateX = 0;
6886        translateY = 0;
6887      }
6888      if (forceZoomRatio && zoom.scale === 1) {
6889        gesture.originX = 0;
6890        gesture.originY = 0;
6891      }
6892      gesture.imageWrapEl.style.transitionDuration = '300ms';
6893      gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;
6894      gesture.imageEl.style.transitionDuration = '300ms';
6895      gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
6896    }
6897    function zoomOut() {
6898      const zoom = swiper.zoom;
6899      const params = swiper.params.zoom;
6900      if (!gesture.slideEl) {
6901        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
6902          gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
6903        } else {
6904          gesture.slideEl = swiper.slides[swiper.activeIndex];
6905        }
6906        let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
6907        if (imageEl) {
6908          imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
6909        }
6910        gesture.imageEl = imageEl;
6911        if (imageEl) {
6912          gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];
6913        } else {
6914          gesture.imageWrapEl = undefined;
6915        }
6916      }
6917      if (!gesture.imageEl || !gesture.imageWrapEl) return;
6918      if (swiper.params.cssMode) {
6919        swiper.wrapperEl.style.overflow = '';
6920        swiper.wrapperEl.style.touchAction = '';
6921      }
6922      zoom.scale = 1;
6923      currentScale = 1;
6924      image.touchesStart.x = undefined;
6925      image.touchesStart.y = undefined;
6926      gesture.imageWrapEl.style.transitionDuration = '300ms';
6927      gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
6928      gesture.imageEl.style.transitionDuration = '300ms';
6929      gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
6930      gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
6931      gesture.slideEl = undefined;
6932      gesture.originX = 0;
6933      gesture.originY = 0;
6934    }
6935
6936    // Toggle Zoom
6937    function zoomToggle(e) {
6938      const zoom = swiper.zoom;
6939      if (zoom.scale && zoom.scale !== 1) {
6940        // Zoom Out
6941        zoomOut();
6942      } else {
6943        // Zoom In
6944        zoomIn(e);
6945      }
6946    }
6947    function getListeners() {
6948      const passiveListener = swiper.params.passiveListeners ? {
6949        passive: true,
6950        capture: false
6951      } : false;
6952      const activeListenerWithCapture = swiper.params.passiveListeners ? {
6953        passive: false,
6954        capture: true
6955      } : true;
6956      return {
6957        passiveListener,
6958        activeListenerWithCapture
6959      };
6960    }
6961
6962    // Attach/Detach Events
6963    function enable() {
6964      const zoom = swiper.zoom;
6965      if (zoom.enabled) return;
6966      zoom.enabled = true;
6967      const {
6968        passiveListener,
6969        activeListenerWithCapture
6970      } = getListeners();
6971
6972      // Scale image
6973      swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);
6974      swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6975      ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6976        swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);
6977      });
6978
6979      // Move image
6980      swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);
6981    }
6982    function disable() {
6983      const zoom = swiper.zoom;
6984      if (!zoom.enabled) return;
6985      zoom.enabled = false;
6986      const {
6987        passiveListener,
6988        activeListenerWithCapture
6989      } = getListeners();
6990
6991      // Scale image
6992      swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);
6993      swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6994      ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6995        swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);
6996      });
6997
6998      // Move image
6999      swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);
7000    }
7001    on('init', () => {
7002      if (swiper.params.zoom.enabled) {
7003        enable();
7004      }
7005    });
7006    on('destroy', () => {
7007      disable();
7008    });
7009    on('touchStart', (_s, e) => {
7010      if (!swiper.zoom.enabled) return;
7011      onTouchStart(e);
7012    });
7013    on('touchEnd', (_s, e) => {
7014      if (!swiper.zoom.enabled) return;
7015      onTouchEnd();
7016    });
7017    on('doubleTap', (_s, e) => {
7018      if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
7019        zoomToggle(e);
7020      }
7021    });
7022    on('transitionEnd', () => {
7023      if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
7024        onTransitionEnd();
7025      }
7026    });
7027    on('slideChange', () => {
7028      if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
7029        onTransitionEnd();
7030      }
7031    });
7032    Object.assign(swiper.zoom, {
7033      enable,
7034      disable,
7035      in: zoomIn,
7036      out: zoomOut,
7037      toggle: zoomToggle
7038    });
7039  }
7040
7041  /* eslint no-bitwise: ["error", { "allow": [">>"] }] */
7042  function Controller(_ref) {
7043    let {
7044      swiper,
7045      extendParams,
7046      on
7047    } = _ref;
7048    extendParams({
7049      controller: {
7050        control: undefined,
7051        inverse: false,
7052        by: 'slide' // or 'container'
7053      }
7054    });
7055
7056    swiper.controller = {
7057      control: undefined
7058    };
7059    function LinearSpline(x, y) {
7060      const binarySearch = function search() {
7061        let maxIndex;
7062        let minIndex;
7063        let guess;
7064        return (array, val) => {
7065          minIndex = -1;
7066          maxIndex = array.length;
7067          while (maxIndex - minIndex > 1) {
7068            guess = maxIndex + minIndex >> 1;
7069            if (array[guess] <= val) {
7070              minIndex = guess;
7071            } else {
7072              maxIndex = guess;
7073            }
7074          }
7075          return maxIndex;
7076        };
7077      }();
7078      this.x = x;
7079      this.y = y;
7080      this.lastIndex = x.length - 1;
7081      // Given an x value (x2), return the expected y2 value:
7082      // (x1,y1) is the known point before given value,
7083      // (x3,y3) is the known point after given value.
7084      let i1;
7085      let i3;
7086      this.interpolate = function interpolate(x2) {
7087        if (!x2) return 0;
7088
7089        // Get the indexes of x1 and x3 (the array indexes before and after given x2):
7090        i3 = binarySearch(this.x, x2);
7091        i1 = i3 - 1;
7092
7093        // We have our indexes i1 & i3, so we can calculate already:
7094        // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
7095        return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
7096      };
7097      return this;
7098    }
7099    function getInterpolateFunction(c) {
7100      swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
7101    }
7102    function setTranslate(_t, byController) {
7103      const controlled = swiper.controller.control;
7104      let multiplier;
7105      let controlledTranslate;
7106      const Swiper = swiper.constructor;
7107      function setControlledTranslate(c) {
7108        if (c.destroyed) return;
7109
7110        // this will create an Interpolate function based on the snapGrids
7111        // x is the Grid of the scrolled scroller and y will be the controlled scroller
7112        // it makes sense to create this only once and recall it for the interpolation
7113        // the function does a lot of value caching for performance
7114        const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
7115        if (swiper.params.controller.by === 'slide') {
7116          getInterpolateFunction(c);
7117          // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
7118          // but it did not work out
7119          controlledTranslate = -swiper.controller.spline.interpolate(-translate);
7120        }
7121        if (!controlledTranslate || swiper.params.controller.by === 'container') {
7122          multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
7123          if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
7124            multiplier = 1;
7125          }
7126          controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
7127        }
7128        if (swiper.params.controller.inverse) {
7129          controlledTranslate = c.maxTranslate() - controlledTranslate;
7130        }
7131        c.updateProgress(controlledTranslate);
7132        c.setTranslate(controlledTranslate, swiper);
7133        c.updateActiveIndex();
7134        c.updateSlidesClasses();
7135      }
7136      if (Array.isArray(controlled)) {
7137        for (let i = 0; i < controlled.length; i += 1) {
7138          if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
7139            setControlledTranslate(controlled[i]);
7140          }
7141        }
7142      } else if (controlled instanceof Swiper && byController !== controlled) {
7143        setControlledTranslate(controlled);
7144      }
7145    }
7146    function setTransition(duration, byController) {
7147      const Swiper = swiper.constructor;
7148      const controlled = swiper.controller.control;
7149      let i;
7150      function setControlledTransition(c) {
7151        if (c.destroyed) return;
7152        c.setTransition(duration, swiper);
7153        if (duration !== 0) {
7154          c.transitionStart();
7155          if (c.params.autoHeight) {
7156            nextTick(() => {
7157              c.updateAutoHeight();
7158            });
7159          }
7160          elementTransitionEnd(c.wrapperEl, () => {
7161            if (!controlled) return;
7162            c.transitionEnd();
7163          });
7164        }
7165      }
7166      if (Array.isArray(controlled)) {
7167        for (i = 0; i < controlled.length; i += 1) {
7168          if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
7169            setControlledTransition(controlled[i]);
7170          }
7171        }
7172      } else if (controlled instanceof Swiper && byController !== controlled) {
7173        setControlledTransition(controlled);
7174      }
7175    }
7176    function removeSpline() {
7177      if (!swiper.controller.control) return;
7178      if (swiper.controller.spline) {
7179        swiper.controller.spline = undefined;
7180        delete swiper.controller.spline;
7181      }
7182    }
7183    on('beforeInit', () => {
7184      if (typeof window !== 'undefined' && (
7185      // eslint-disable-line
7186      typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {
7187        const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];
7188        controlElements.forEach(controlElement => {
7189          if (!swiper.controller.control) swiper.controller.control = [];
7190          if (controlElement && controlElement.swiper) {
7191            swiper.controller.control.push(controlElement.swiper);
7192          } else if (controlElement) {
7193            const eventName = `${swiper.params.eventsPrefix}init`;
7194            const onControllerSwiper = e => {
7195              swiper.controller.control.push(e.detail[0]);
7196              swiper.update();
7197              controlElement.removeEventListener(eventName, onControllerSwiper);
7198            };
7199            controlElement.addEventListener(eventName, onControllerSwiper);
7200          }
7201        });
7202        return;
7203      }
7204      swiper.controller.control = swiper.params.controller.control;
7205    });
7206    on('update', () => {
7207      removeSpline();
7208    });
7209    on('resize', () => {
7210      removeSpline();
7211    });
7212    on('observerUpdate', () => {
7213      removeSpline();
7214    });
7215    on('setTranslate', (_s, translate, byController) => {
7216      if (!swiper.controller.control || swiper.controller.control.destroyed) return;
7217      swiper.controller.setTranslate(translate, byController);
7218    });
7219    on('setTransition', (_s, duration, byController) => {
7220      if (!swiper.controller.control || swiper.controller.control.destroyed) return;
7221      swiper.controller.setTransition(duration, byController);
7222    });
7223    Object.assign(swiper.controller, {
7224      setTranslate,
7225      setTransition
7226    });
7227  }
7228
7229  function A11y(_ref) {
7230    let {
7231      swiper,
7232      extendParams,
7233      on
7234    } = _ref;
7235    extendParams({
7236      a11y: {
7237        enabled: true,
7238        notificationClass: 'swiper-notification',
7239        prevSlideMessage: 'Previous slide',
7240        nextSlideMessage: 'Next slide',
7241        firstSlideMessage: 'This is the first slide',
7242        lastSlideMessage: 'This is the last slide',
7243        paginationBulletMessage: 'Go to slide {{index}}',
7244        slideLabelMessage: '{{index}} / {{slidesLength}}',
7245        containerMessage: null,
7246        containerRoleDescriptionMessage: null,
7247        containerRole: null,
7248        itemRoleDescriptionMessage: null,
7249        slideRole: 'group',
7250        id: null,
7251        scrollOnFocus: true
7252      }
7253    });
7254    swiper.a11y = {
7255      clicked: false
7256    };
7257    let liveRegion = null;
7258    let preventFocusHandler;
7259    let focusTargetSlideEl;
7260    let visibilityChangedTimestamp = new Date().getTime();
7261    function notify(message) {
7262      const notification = liveRegion;
7263      if (notification.length === 0) return;
7264      notification.innerHTML = '';
7265      notification.innerHTML = message;
7266    }
7267    function getRandomNumber(size) {
7268      if (size === void 0) {
7269        size = 16;
7270      }
7271      const randomChar = () => Math.round(16 * Math.random()).toString(16);
7272      return 'x'.repeat(size).replace(/x/g, randomChar);
7273    }
7274    function makeElFocusable(el) {
7275      el = makeElementsArray(el);
7276      el.forEach(subEl => {
7277        subEl.setAttribute('tabIndex', '0');
7278      });
7279    }
7280    function makeElNotFocusable(el) {
7281      el = makeElementsArray(el);
7282      el.forEach(subEl => {
7283        subEl.setAttribute('tabIndex', '-1');
7284      });
7285    }
7286    function addElRole(el, role) {
7287      el = makeElementsArray(el);
7288      el.forEach(subEl => {
7289        subEl.setAttribute('role', role);
7290      });
7291    }
7292    function addElRoleDescription(el, description) {
7293      el = makeElementsArray(el);
7294      el.forEach(subEl => {
7295        subEl.setAttribute('aria-roledescription', description);
7296      });
7297    }
7298    function addElControls(el, controls) {
7299      el = makeElementsArray(el);
7300      el.forEach(subEl => {
7301        subEl.setAttribute('aria-controls', controls);
7302      });
7303    }
7304    function addElLabel(el, label) {
7305      el = makeElementsArray(el);
7306      el.forEach(subEl => {
7307        subEl.setAttribute('aria-label', label);
7308      });
7309    }
7310    function addElId(el, id) {
7311      el = makeElementsArray(el);
7312      el.forEach(subEl => {
7313        subEl.setAttribute('id', id);
7314      });
7315    }
7316    function addElLive(el, live) {
7317      el = makeElementsArray(el);
7318      el.forEach(subEl => {
7319        subEl.setAttribute('aria-live', live);
7320      });
7321    }
7322    function disableEl(el) {
7323      el = makeElementsArray(el);
7324      el.forEach(subEl => {
7325        subEl.setAttribute('aria-disabled', true);
7326      });
7327    }
7328    function enableEl(el) {
7329      el = makeElementsArray(el);
7330      el.forEach(subEl => {
7331        subEl.setAttribute('aria-disabled', false);
7332      });
7333    }
7334    function onEnterOrSpaceKey(e) {
7335      if (e.keyCode !== 13 && e.keyCode !== 32) return;
7336      const params = swiper.params.a11y;
7337      const targetEl = e.target;
7338      if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
7339        if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;
7340      }
7341      if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
7342        const prevEls = makeElementsArray(swiper.navigation.prevEl);
7343        const nextEls = makeElementsArray(swiper.navigation.nextEl);
7344        if (nextEls.includes(targetEl)) {
7345          if (!(swiper.isEnd && !swiper.params.loop)) {
7346            swiper.slideNext();
7347          }
7348          if (swiper.isEnd) {
7349            notify(params.lastSlideMessage);
7350          } else {
7351            notify(params.nextSlideMessage);
7352          }
7353        }
7354        if (prevEls.includes(targetEl)) {
7355          if (!(swiper.isBeginning && !swiper.params.loop)) {
7356            swiper.slidePrev();
7357          }
7358          if (swiper.isBeginning) {
7359            notify(params.firstSlideMessage);
7360          } else {
7361            notify(params.prevSlideMessage);
7362          }
7363        }
7364      }
7365      if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {
7366        targetEl.click();
7367      }
7368    }
7369    function updateNavigation() {
7370      if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
7371      const {
7372        nextEl,
7373        prevEl
7374      } = swiper.navigation;
7375      if (prevEl) {
7376        if (swiper.isBeginning) {
7377          disableEl(prevEl);
7378          makeElNotFocusable(prevEl);
7379        } else {
7380          enableEl(prevEl);
7381          makeElFocusable(prevEl);
7382        }
7383      }
7384      if (nextEl) {
7385        if (swiper.isEnd) {
7386          disableEl(nextEl);
7387          makeElNotFocusable(nextEl);
7388        } else {
7389          enableEl(nextEl);
7390          makeElFocusable(nextEl);
7391        }
7392      }
7393    }
7394    function hasPagination() {
7395      return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
7396    }
7397    function hasClickablePagination() {
7398      return hasPagination() && swiper.params.pagination.clickable;
7399    }
7400    function updatePagination() {
7401      const params = swiper.params.a11y;
7402      if (!hasPagination()) return;
7403      swiper.pagination.bullets.forEach(bulletEl => {
7404        if (swiper.params.pagination.clickable) {
7405          makeElFocusable(bulletEl);
7406          if (!swiper.params.pagination.renderBullet) {
7407            addElRole(bulletEl, 'button');
7408            addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, elementIndex(bulletEl) + 1));
7409          }
7410        }
7411        if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {
7412          bulletEl.setAttribute('aria-current', 'true');
7413        } else {
7414          bulletEl.removeAttribute('aria-current');
7415        }
7416      });
7417    }
7418    const initNavEl = (el, wrapperId, message) => {
7419      makeElFocusable(el);
7420      if (el.tagName !== 'BUTTON') {
7421        addElRole(el, 'button');
7422        el.addEventListener('keydown', onEnterOrSpaceKey);
7423      }
7424      addElLabel(el, message);
7425      addElControls(el, wrapperId);
7426    };
7427    const handlePointerDown = e => {
7428      if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
7429        preventFocusHandler = true;
7430      }
7431      swiper.a11y.clicked = true;
7432    };
7433    const handlePointerUp = () => {
7434      preventFocusHandler = false;
7435      requestAnimationFrame(() => {
7436        requestAnimationFrame(() => {
7437          if (!swiper.destroyed) {
7438            swiper.a11y.clicked = false;
7439          }
7440        });
7441      });
7442    };
7443    const onVisibilityChange = e => {
7444      visibilityChangedTimestamp = new Date().getTime();
7445    };
7446    const handleFocus = e => {
7447      if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
7448      if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
7449      const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
7450      if (!slideEl || !swiper.slides.includes(slideEl)) return;
7451      focusTargetSlideEl = slideEl;
7452      const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
7453      const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
7454      if (isActive || isVisible) return;
7455      if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
7456      if (swiper.isHorizontal()) {
7457        swiper.el.scrollLeft = 0;
7458      } else {
7459        swiper.el.scrollTop = 0;
7460      }
7461      requestAnimationFrame(() => {
7462        if (preventFocusHandler) return;
7463        if (swiper.params.loop) {
7464          swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);
7465        } else {
7466          swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
7467        }
7468        preventFocusHandler = false;
7469      });
7470    };
7471    const initSlides = () => {
7472      const params = swiper.params.a11y;
7473      if (params.itemRoleDescriptionMessage) {
7474        addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
7475      }
7476      if (params.slideRole) {
7477        addElRole(swiper.slides, params.slideRole);
7478      }
7479      const slidesLength = swiper.slides.length;
7480      if (params.slideLabelMessage) {
7481        swiper.slides.forEach((slideEl, index) => {
7482          const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
7483          const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
7484          addElLabel(slideEl, ariaLabelMessage);
7485        });
7486      }
7487    };
7488    const init = () => {
7489      const params = swiper.params.a11y;
7490      swiper.el.append(liveRegion);
7491
7492      // Container
7493      const containerEl = swiper.el;
7494      if (params.containerRoleDescriptionMessage) {
7495        addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
7496      }
7497      if (params.containerMessage) {
7498        addElLabel(containerEl, params.containerMessage);
7499      }
7500      if (params.containerRole) {
7501        addElRole(containerEl, params.containerRole);
7502      }
7503
7504      // Wrapper
7505      const wrapperEl = swiper.wrapperEl;
7506      const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
7507      const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
7508      addElId(wrapperEl, wrapperId);
7509      addElLive(wrapperEl, live);
7510
7511      // Slide
7512      initSlides();
7513
7514      // Navigation
7515      let {
7516        nextEl,
7517        prevEl
7518      } = swiper.navigation ? swiper.navigation : {};
7519      nextEl = makeElementsArray(nextEl);
7520      prevEl = makeElementsArray(prevEl);
7521      if (nextEl) {
7522        nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
7523      }
7524      if (prevEl) {
7525        prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
7526      }
7527
7528      // Pagination
7529      if (hasClickablePagination()) {
7530        const paginationEl = makeElementsArray(swiper.pagination.el);
7531        paginationEl.forEach(el => {
7532          el.addEventListener('keydown', onEnterOrSpaceKey);
7533        });
7534      }
7535
7536      // Tab focus
7537      const document = getDocument();
7538      document.addEventListener('visibilitychange', onVisibilityChange);
7539      swiper.el.addEventListener('focus', handleFocus, true);
7540      swiper.el.addEventListener('focus', handleFocus, true);
7541      swiper.el.addEventListener('pointerdown', handlePointerDown, true);
7542      swiper.el.addEventListener('pointerup', handlePointerUp, true);
7543    };
7544    function destroy() {
7545      if (liveRegion) liveRegion.remove();
7546      let {
7547        nextEl,
7548        prevEl
7549      } = swiper.navigation ? swiper.navigation : {};
7550      nextEl = makeElementsArray(nextEl);
7551      prevEl = makeElementsArray(prevEl);
7552      if (nextEl) {
7553        nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
7554      }
7555      if (prevEl) {
7556        prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
7557      }
7558
7559      // Pagination
7560      if (hasClickablePagination()) {
7561        const paginationEl = makeElementsArray(swiper.pagination.el);
7562        paginationEl.forEach(el => {
7563          el.removeEventListener('keydown', onEnterOrSpaceKey);
7564        });
7565      }
7566      const document = getDocument();
7567      document.removeEventListener('visibilitychange', onVisibilityChange);
7568      // Tab focus
7569      if (swiper.el && typeof swiper.el !== 'string') {
7570        swiper.el.removeEventListener('focus', handleFocus, true);
7571        swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
7572        swiper.el.removeEventListener('pointerup', handlePointerUp, true);
7573      }
7574    }
7575    on('beforeInit', () => {
7576      liveRegion = createElement('span', swiper.params.a11y.notificationClass);
7577      liveRegion.setAttribute('aria-live', 'assertive');
7578      liveRegion.setAttribute('aria-atomic', 'true');
7579    });
7580    on('afterInit', () => {
7581      if (!swiper.params.a11y.enabled) return;
7582      init();
7583    });
7584    on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
7585      if (!swiper.params.a11y.enabled) return;
7586      initSlides();
7587    });
7588    on('fromEdge toEdge afterInit lock unlock', () => {
7589      if (!swiper.params.a11y.enabled) return;
7590      updateNavigation();
7591    });
7592    on('paginationUpdate', () => {
7593      if (!swiper.params.a11y.enabled) return;
7594      updatePagination();
7595    });
7596    on('destroy', () => {
7597      if (!swiper.params.a11y.enabled) return;
7598      destroy();
7599    });
7600  }
7601
7602  function History(_ref) {
7603    let {
7604      swiper,
7605      extendParams,
7606      on
7607    } = _ref;
7608    extendParams({
7609      history: {
7610        enabled: false,
7611        root: '',
7612        replaceState: false,
7613        key: 'slides',
7614        keepQuery: false
7615      }
7616    });
7617    let initialized = false;
7618    let paths = {};
7619    const slugify = text => {
7620      return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
7621    };
7622    const getPathValues = urlOverride => {
7623      const window = getWindow();
7624      let location;
7625      if (urlOverride) {
7626        location = new URL(urlOverride);
7627      } else {
7628        location = window.location;
7629      }
7630      const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
7631      const total = pathArray.length;
7632      const key = pathArray[total - 2];
7633      const value = pathArray[total - 1];
7634      return {
7635        key,
7636        value
7637      };
7638    };
7639    const setHistory = (key, index) => {
7640      const window = getWindow();
7641      if (!initialized || !swiper.params.history.enabled) return;
7642      let location;
7643      if (swiper.params.url) {
7644        location = new URL(swiper.params.url);
7645      } else {
7646        location = window.location;
7647      }
7648      const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index];
7649      let value = slugify(slide.getAttribute('data-history'));
7650      if (swiper.params.history.root.length > 0) {
7651        let root = swiper.params.history.root;
7652        if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
7653        value = `${root}/${key ? `${key}/` : ''}${value}`;
7654      } else if (!location.pathname.includes(key)) {
7655        value = `${key ? `${key}/` : ''}${value}`;
7656      }
7657      if (swiper.params.history.keepQuery) {
7658        value += location.search;
7659      }
7660      const currentState = window.history.state;
7661      if (currentState && currentState.value === value) {
7662        return;
7663      }
7664      if (swiper.params.history.replaceState) {
7665        window.history.replaceState({
7666          value
7667        }, null, value);
7668      } else {
7669        window.history.pushState({
7670          value
7671        }, null, value);
7672      }
7673    };
7674    const scrollToSlide = (speed, value, runCallbacks) => {
7675      if (value) {
7676        for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
7677          const slide = swiper.slides[i];
7678          const slideHistory = slugify(slide.getAttribute('data-history'));
7679          if (slideHistory === value) {
7680            const index = swiper.getSlideIndex(slide);
7681            swiper.slideTo(index, speed, runCallbacks);
7682          }
7683        }
7684      } else {
7685        swiper.slideTo(0, speed, runCallbacks);
7686      }
7687    };
7688    const setHistoryPopState = () => {
7689      paths = getPathValues(swiper.params.url);
7690      scrollToSlide(swiper.params.speed, paths.value, false);
7691    };
7692    const init = () => {
7693      const window = getWindow();
7694      if (!swiper.params.history) return;
7695      if (!window.history || !window.history.pushState) {
7696        swiper.params.history.enabled = false;
7697        swiper.params.hashNavigation.enabled = true;
7698        return;
7699      }
7700      initialized = true;
7701      paths = getPathValues(swiper.params.url);
7702      if (!paths.key && !paths.value) {
7703        if (!swiper.params.history.replaceState) {
7704          window.addEventListener('popstate', setHistoryPopState);
7705        }
7706        return;
7707      }
7708      scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
7709      if (!swiper.params.history.replaceState) {
7710        window.addEventListener('popstate', setHistoryPopState);
7711      }
7712    };
7713    const destroy = () => {
7714      const window = getWindow();
7715      if (!swiper.params.history.replaceState) {
7716        window.removeEventListener('popstate', setHistoryPopState);
7717      }
7718    };
7719    on('init', () => {
7720      if (swiper.params.history.enabled) {
7721        init();
7722      }
7723    });
7724    on('destroy', () => {
7725      if (swiper.params.history.enabled) {
7726        destroy();
7727      }
7728    });
7729    on('transitionEnd _freeModeNoMomentumRelease', () => {
7730      if (initialized) {
7731        setHistory(swiper.params.history.key, swiper.activeIndex);
7732      }
7733    });
7734    on('slideChange', () => {
7735      if (initialized && swiper.params.cssMode) {
7736        setHistory(swiper.params.history.key, swiper.activeIndex);
7737      }
7738    });
7739  }
7740
7741  function HashNavigation(_ref) {
7742    let {
7743      swiper,
7744      extendParams,
7745      emit,
7746      on
7747    } = _ref;
7748    let initialized = false;
7749    const document = getDocument();
7750    const window = getWindow();
7751    extendParams({
7752      hashNavigation: {
7753        enabled: false,
7754        replaceState: false,
7755        watchState: false,
7756        getSlideIndex(_s, hash) {
7757          if (swiper.virtual && swiper.params.virtual.enabled) {
7758            const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];
7759            if (!slideWithHash) return 0;
7760            const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
7761            return index;
7762          }
7763          return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]);
7764        }
7765      }
7766    });
7767    const onHashChange = () => {
7768      emit('hashChange');
7769      const newHash = document.location.hash.replace('#', '');
7770      const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
7771      const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
7772      if (newHash !== activeSlideHash) {
7773        const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
7774        if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
7775        swiper.slideTo(newIndex);
7776      }
7777    };
7778    const setHash = () => {
7779      if (!initialized || !swiper.params.hashNavigation.enabled) return;
7780      const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
7781      const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
7782      if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
7783        window.history.replaceState(null, null, `#${activeSlideHash}` || '');
7784        emit('hashSet');
7785      } else {
7786        document.location.hash = activeSlideHash || '';
7787        emit('hashSet');
7788      }
7789    };
7790    const init = () => {
7791      if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
7792      initialized = true;
7793      const hash = document.location.hash.replace('#', '');
7794      if (hash) {
7795        const speed = 0;
7796        const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
7797        swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
7798      }
7799      if (swiper.params.hashNavigation.watchState) {
7800        window.addEventListener('hashchange', onHashChange);
7801      }
7802    };
7803    const destroy = () => {
7804      if (swiper.params.hashNavigation.watchState) {
7805        window.removeEventListener('hashchange', onHashChange);
7806      }
7807    };
7808    on('init', () => {
7809      if (swiper.params.hashNavigation.enabled) {
7810        init();
7811      }
7812    });
7813    on('destroy', () => {
7814      if (swiper.params.hashNavigation.enabled) {
7815        destroy();
7816      }
7817    });
7818    on('transitionEnd _freeModeNoMomentumRelease', () => {
7819      if (initialized) {
7820        setHash();
7821      }
7822    });
7823    on('slideChange', () => {
7824      if (initialized && swiper.params.cssMode) {
7825        setHash();
7826      }
7827    });
7828  }
7829
7830  /* eslint no-underscore-dangle: "off" */
7831  /* eslint no-use-before-define: "off" */
7832  function Autoplay(_ref) {
7833    let {
7834      swiper,
7835      extendParams,
7836      on,
7837      emit,
7838      params
7839    } = _ref;
7840    swiper.autoplay = {
7841      running: false,
7842      paused: false,
7843      timeLeft: 0
7844    };
7845    extendParams({
7846      autoplay: {
7847        enabled: false,
7848        delay: 3000,
7849        waitForTransition: true,
7850        disableOnInteraction: false,
7851        stopOnLastSlide: false,
7852        reverseDirection: false,
7853        pauseOnMouseEnter: false
7854      }
7855    });
7856    let timeout;
7857    let raf;
7858    let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;
7859    let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;
7860    let autoplayTimeLeft;
7861    let autoplayStartTime = new Date().getTime();
7862    let wasPaused;
7863    let isTouched;
7864    let pausedByTouch;
7865    let touchStartTimeout;
7866    let slideChanged;
7867    let pausedByInteraction;
7868    let pausedByPointerEnter;
7869    function onTransitionEnd(e) {
7870      if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;
7871      if (e.target !== swiper.wrapperEl) return;
7872      swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);
7873      if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {
7874        return;
7875      }
7876      resume();
7877    }
7878    const calcTimeLeft = () => {
7879      if (swiper.destroyed || !swiper.autoplay.running) return;
7880      if (swiper.autoplay.paused) {
7881        wasPaused = true;
7882      } else if (wasPaused) {
7883        autoplayDelayCurrent = autoplayTimeLeft;
7884        wasPaused = false;
vendor: 4,427 bytes, lines 7885-8004
7885      }
7886      const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();
7887      swiper.autoplay.timeLeft = timeLeft;
7888      emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);
7889      raf = requestAnimationFrame(() => {
7890        calcTimeLeft();
7891      });
7892    };
7893    const getSlideDelay = () => {
7894      let activeSlideEl;
7895      if (swiper.virtual && swiper.params.virtual.enabled) {
7896        activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];
7897      } else {
7898        activeSlideEl = swiper.slides[swiper.activeIndex];
7899      }
7900      if (!activeSlideEl) return undefined;
7901      const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
7902      return currentSlideDelay;
7903    };
7904    const run = delayForce => {
7905      if (swiper.destroyed || !swiper.autoplay.running) return;
7906      cancelAnimationFrame(raf);
7907      calcTimeLeft();
7908      let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
7909      autoplayDelayTotal = swiper.params.autoplay.delay;
7910      autoplayDelayCurrent = swiper.params.autoplay.delay;
7911      const currentSlideDelay = getSlideDelay();
7912      if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
7913        delay = currentSlideDelay;
7914        autoplayDelayTotal = currentSlideDelay;
7915        autoplayDelayCurrent = currentSlideDelay;
7916      }
7917      autoplayTimeLeft = delay;
7918      const speed = swiper.params.speed;
7919      const proceed = () => {
7920        if (!swiper || swiper.destroyed) return;
7921        if (swiper.params.autoplay.reverseDirection) {
7922          if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {
7923            swiper.slidePrev(speed, true, true);
7924            emit('autoplay');
7925          } else if (!swiper.params.autoplay.stopOnLastSlide) {
7926            swiper.slideTo(swiper.slides.length - 1, speed, true, true);
7927            emit('autoplay');
7928          }
7929        } else {
7930          if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {
7931            swiper.slideNext(speed, true, true);
7932            emit('autoplay');
7933          } else if (!swiper.params.autoplay.stopOnLastSlide) {
7934            swiper.slideTo(0, speed, true, true);
7935            emit('autoplay');
7936          }
7937        }
7938        if (swiper.params.cssMode) {
7939          autoplayStartTime = new Date().getTime();
7940          requestAnimationFrame(() => {
7941            run();
7942          });
7943        }
7944      };
7945      if (delay > 0) {
7946        clearTimeout(timeout);
7947        timeout = setTimeout(() => {
7948          proceed();
7949        }, delay);
7950      } else {
7951        requestAnimationFrame(() => {
7952          proceed();
7953        });
7954      }
7955
7956      // eslint-disable-next-line
7957      return delay;
7958    };
7959    const start = () => {
7960      autoplayStartTime = new Date().getTime();
7961      swiper.autoplay.running = true;
7962      run();
7963      emit('autoplayStart');
7964    };
7965    const stop = () => {
7966      swiper.autoplay.running = false;
7967      clearTimeout(timeout);
7968      cancelAnimationFrame(raf);
7969      emit('autoplayStop');
7970    };
7971    const pause = (internal, reset) => {
7972      if (swiper.destroyed || !swiper.autoplay.running) return;
7973      clearTimeout(timeout);
7974      if (!internal) {
7975        pausedByInteraction = true;
7976      }
7977      const proceed = () => {
7978        emit('autoplayPause');
7979        if (swiper.params.autoplay.waitForTransition) {
7980          swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);
7981        } else {
7982          resume();
7983        }
7984      };
7985      swiper.autoplay.paused = true;
7986      if (reset) {
7987        if (slideChanged) {
7988          autoplayTimeLeft = swiper.params.autoplay.delay;
7989        }
7990        slideChanged = false;
7991        proceed();
7992        return;
7993      }
7994      const delay = autoplayTimeLeft || swiper.params.autoplay.delay;
7995      autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);
7996      if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;
7997      if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;
7998      proceed();
7999    };
8000    const resume = () => {
8001      if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;
8002      autoplayStartTime = new Date().getTime();
8003      if (pausedByInteraction) {
8004        pausedByInteraction = false;
vendor: 20,091 bytes, lines 8005-8565
8005        run(autoplayTimeLeft);
8006      } else {
8007        run();
8008      }
8009      swiper.autoplay.paused = false;
8010      emit('autoplayResume');
8011    };
8012    const onVisibilityChange = () => {
8013      if (swiper.destroyed || !swiper.autoplay.running) return;
8014      const document = getDocument();
8015      if (document.visibilityState === 'hidden') {
8016        pausedByInteraction = true;
8017        pause(true);
8018      }
8019      if (document.visibilityState === 'visible') {
8020        resume();
8021      }
8022    };
8023    const onPointerEnter = e => {
8024      if (e.pointerType !== 'mouse') return;
8025      pausedByInteraction = true;
8026      pausedByPointerEnter = true;
8027      if (swiper.animating || swiper.autoplay.paused) return;
8028      pause(true);
8029    };
8030    const onPointerLeave = e => {
8031      if (e.pointerType !== 'mouse') return;
8032      pausedByPointerEnter = false;
8033      if (swiper.autoplay.paused) {
8034        resume();
8035      }
8036    };
8037    const attachMouseEvents = () => {
8038      if (swiper.params.autoplay.pauseOnMouseEnter) {
8039        swiper.el.addEventListener('pointerenter', onPointerEnter);
8040        swiper.el.addEventListener('pointerleave', onPointerLeave);
8041      }
8042    };
8043    const detachMouseEvents = () => {
8044      if (swiper.el && typeof swiper.el !== 'string') {
8045        swiper.el.removeEventListener('pointerenter', onPointerEnter);
8046        swiper.el.removeEventListener('pointerleave', onPointerLeave);
8047      }
8048    };
8049    const attachDocumentEvents = () => {
8050      const document = getDocument();
8051      document.addEventListener('visibilitychange', onVisibilityChange);
8052    };
8053    const detachDocumentEvents = () => {
8054      const document = getDocument();
8055      document.removeEventListener('visibilitychange', onVisibilityChange);
8056    };
8057    on('init', () => {
8058      if (swiper.params.autoplay.enabled) {
8059        attachMouseEvents();
8060        attachDocumentEvents();
8061        start();
8062      }
8063    });
8064    on('destroy', () => {
8065      detachMouseEvents();
8066      detachDocumentEvents();
8067      if (swiper.autoplay.running) {
8068        stop();
8069      }
8070    });
8071    on('_freeModeStaticRelease', () => {
8072      if (pausedByTouch || pausedByInteraction) {
8073        resume();
8074      }
8075    });
8076    on('_freeModeNoMomentumRelease', () => {
8077      if (!swiper.params.autoplay.disableOnInteraction) {
8078        pause(true, true);
8079      } else {
8080        stop();
8081      }
8082    });
8083    on('beforeTransitionStart', (_s, speed, internal) => {
8084      if (swiper.destroyed || !swiper.autoplay.running) return;
8085      if (internal || !swiper.params.autoplay.disableOnInteraction) {
8086        pause(true, true);
8087      } else {
8088        stop();
8089      }
8090    });
8091    on('sliderFirstMove', () => {
8092      if (swiper.destroyed || !swiper.autoplay.running) return;
8093      if (swiper.params.autoplay.disableOnInteraction) {
8094        stop();
8095        return;
8096      }
8097      isTouched = true;
8098      pausedByTouch = false;
8099      pausedByInteraction = false;
8100      touchStartTimeout = setTimeout(() => {
8101        pausedByInteraction = true;
8102        pausedByTouch = true;
8103        pause(true);
8104      }, 200);
8105    });
8106    on('touchEnd', () => {
8107      if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;
8108      clearTimeout(touchStartTimeout);
8109      clearTimeout(timeout);
8110      if (swiper.params.autoplay.disableOnInteraction) {
8111        pausedByTouch = false;
8112        isTouched = false;
8113        return;
8114      }
8115      if (pausedByTouch && swiper.params.cssMode) resume();
8116      pausedByTouch = false;
8117      isTouched = false;
8118    });
8119    on('slideChange', () => {
8120      if (swiper.destroyed || !swiper.autoplay.running) return;
8121      slideChanged = true;
8122    });
8123    Object.assign(swiper.autoplay, {
8124      start,
8125      stop,
8126      pause,
8127      resume
8128    });
8129  }
8130
8131  function Thumb(_ref) {
8132    let {
8133      swiper,
8134      extendParams,
8135      on
8136    } = _ref;
8137    extendParams({
8138      thumbs: {
8139        swiper: null,
8140        multipleActiveThumbs: true,
8141        autoScrollOffset: 0,
8142        slideThumbActiveClass: 'swiper-slide-thumb-active',
8143        thumbsContainerClass: 'swiper-thumbs'
8144      }
8145    });
8146    let initialized = false;
8147    let swiperCreated = false;
8148    swiper.thumbs = {
8149      swiper: null
8150    };
8151    function onThumbClick() {
8152      const thumbsSwiper = swiper.thumbs.swiper;
8153      if (!thumbsSwiper || thumbsSwiper.destroyed) return;
8154      const clickedIndex = thumbsSwiper.clickedIndex;
8155      const clickedSlide = thumbsSwiper.clickedSlide;
8156      if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;
8157      if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
8158      let slideToIndex;
8159      if (thumbsSwiper.params.loop) {
8160        slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
8161      } else {
8162        slideToIndex = clickedIndex;
8163      }
8164      if (swiper.params.loop) {
8165        swiper.slideToLoop(slideToIndex);
8166      } else {
8167        swiper.slideTo(slideToIndex);
8168      }
8169    }
8170    function init() {
8171      const {
8172        thumbs: thumbsParams
8173      } = swiper.params;
8174      if (initialized) return false;
8175      initialized = true;
8176      const SwiperClass = swiper.constructor;
8177      if (thumbsParams.swiper instanceof SwiperClass) {
8178        swiper.thumbs.swiper = thumbsParams.swiper;
8179        Object.assign(swiper.thumbs.swiper.originalParams, {
8180          watchSlidesProgress: true,
8181          slideToClickedSlide: false
8182        });
8183        Object.assign(swiper.thumbs.swiper.params, {
8184          watchSlidesProgress: true,
8185          slideToClickedSlide: false
8186        });
8187        swiper.thumbs.swiper.update();
8188      } else if (isObject(thumbsParams.swiper)) {
8189        const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
8190        Object.assign(thumbsSwiperParams, {
8191          watchSlidesProgress: true,
8192          slideToClickedSlide: false
8193        });
8194        swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
8195        swiperCreated = true;
8196      }
8197      swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
8198      swiper.thumbs.swiper.on('tap', onThumbClick);
8199      return true;
8200    }
8201    function update(initial) {
8202      const thumbsSwiper = swiper.thumbs.swiper;
8203      if (!thumbsSwiper || thumbsSwiper.destroyed) return;
8204      const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
8205
8206      // Activate thumbs
8207      let thumbsToActivate = 1;
8208      const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
8209      if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
8210        thumbsToActivate = swiper.params.slidesPerView;
8211      }
8212      if (!swiper.params.thumbs.multipleActiveThumbs) {
8213        thumbsToActivate = 1;
8214      }
8215      thumbsToActivate = Math.floor(thumbsToActivate);
8216      thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
8217      if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
8218        for (let i = 0; i < thumbsToActivate; i += 1) {
8219          elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
8220            slideEl.classList.add(thumbActiveClass);
8221          });
8222        }
8223      } else {
8224        for (let i = 0; i < thumbsToActivate; i += 1) {
8225          if (thumbsSwiper.slides[swiper.realIndex + i]) {
8226            thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);
8227          }
8228        }
8229      }
8230      const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
8231      const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
8232      if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
8233        const currentThumbsIndex = thumbsSwiper.activeIndex;
8234        let newThumbsIndex;
8235        let direction;
8236        if (thumbsSwiper.params.loop) {
8237          const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];
8238          newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
8239          direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
8240        } else {
8241          newThumbsIndex = swiper.realIndex;
8242          direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
8243        }
8244        if (useOffset) {
8245          newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
8246        }
8247        if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
8248          if (thumbsSwiper.params.centeredSlides) {
8249            if (newThumbsIndex > currentThumbsIndex) {
8250              newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
8251            } else {
8252              newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
8253            }
8254          } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
8255          thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
8256        }
8257      }
8258    }
8259    on('beforeInit', () => {
8260      const {
8261        thumbs
8262      } = swiper.params;
8263      if (!thumbs || !thumbs.swiper) return;
8264      if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {
8265        const document = getDocument();
8266        const getThumbsElementAndInit = () => {
8267          const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;
8268          if (thumbsElement && thumbsElement.swiper) {
8269            thumbs.swiper = thumbsElement.swiper;
8270            init();
8271            update(true);
8272          } else if (thumbsElement) {
8273            const eventName = `${swiper.params.eventsPrefix}init`;
8274            const onThumbsSwiper = e => {
8275              thumbs.swiper = e.detail[0];
8276              thumbsElement.removeEventListener(eventName, onThumbsSwiper);
8277              init();
8278              update(true);
8279              thumbs.swiper.update();
8280              swiper.update();
8281            };
8282            thumbsElement.addEventListener(eventName, onThumbsSwiper);
8283          }
8284          return thumbsElement;
8285        };
8286        const watchForThumbsToAppear = () => {
8287          if (swiper.destroyed) return;
8288          const thumbsElement = getThumbsElementAndInit();
8289          if (!thumbsElement) {
8290            requestAnimationFrame(watchForThumbsToAppear);
8291          }
8292        };
8293        requestAnimationFrame(watchForThumbsToAppear);
8294      } else {
8295        init();
8296        update(true);
8297      }
8298    });
8299    on('slideChange update resize observerUpdate', () => {
8300      update();
8301    });
8302    on('setTransition', (_s, duration) => {
8303      const thumbsSwiper = swiper.thumbs.swiper;
8304      if (!thumbsSwiper || thumbsSwiper.destroyed) return;
8305      thumbsSwiper.setTransition(duration);
8306    });
8307    on('beforeDestroy', () => {
8308      const thumbsSwiper = swiper.thumbs.swiper;
8309      if (!thumbsSwiper || thumbsSwiper.destroyed) return;
8310      if (swiperCreated) {
8311        thumbsSwiper.destroy();
8312      }
8313    });
8314    Object.assign(swiper.thumbs, {
8315      init,
8316      update
8317    });
8318  }
8319
8320  function freeMode(_ref) {
8321    let {
8322      swiper,
8323      extendParams,
8324      emit,
8325      once
8326    } = _ref;
8327    extendParams({
8328      freeMode: {
8329        enabled: false,
8330        momentum: true,
8331        momentumRatio: 1,
8332        momentumBounce: true,
8333        momentumBounceRatio: 1,
8334        momentumVelocityRatio: 1,
8335        sticky: false,
8336        minimumVelocity: 0.02
8337      }
8338    });
8339    function onTouchStart() {
8340      if (swiper.params.cssMode) return;
8341      const translate = swiper.getTranslate();
8342      swiper.setTranslate(translate);
8343      swiper.setTransition(0);
8344      swiper.touchEventsData.velocities.length = 0;
8345      swiper.freeMode.onTouchEnd({
8346        currentPos: swiper.rtl ? swiper.translate : -swiper.translate
8347      });
8348    }
8349    function onTouchMove() {
8350      if (swiper.params.cssMode) return;
8351      const {
8352        touchEventsData: data,
8353        touches
8354      } = swiper;
8355      // Velocity
8356      if (data.velocities.length === 0) {
8357        data.velocities.push({
8358          position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
8359          time: data.touchStartTime
8360        });
8361      }
8362      data.velocities.push({
8363        position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
8364        time: now()
8365      });
8366    }
8367    function onTouchEnd(_ref2) {
8368      let {
8369        currentPos
8370      } = _ref2;
8371      if (swiper.params.cssMode) return;
8372      const {
8373        params,
8374        wrapperEl,
8375        rtlTranslate: rtl,
8376        snapGrid,
8377        touchEventsData: data
8378      } = swiper;
8379      // Time diff
8380      const touchEndTime = now();
8381      const timeDiff = touchEndTime - data.touchStartTime;
8382      if (currentPos < -swiper.minTranslate()) {
8383        swiper.slideTo(swiper.activeIndex);
8384        return;
8385      }
8386      if (currentPos > -swiper.maxTranslate()) {
8387        if (swiper.slides.length < snapGrid.length) {
8388          swiper.slideTo(snapGrid.length - 1);
8389        } else {
8390          swiper.slideTo(swiper.slides.length - 1);
8391        }
8392        return;
8393      }
8394      if (params.freeMode.momentum) {
8395        if (data.velocities.length > 1) {
8396          const lastMoveEvent = data.velocities.pop();
8397          const velocityEvent = data.velocities.pop();
8398          const distance = lastMoveEvent.position - velocityEvent.position;
8399          const time = lastMoveEvent.time - velocityEvent.time;
8400          swiper.velocity = distance / time;
8401          swiper.velocity /= 2;
8402          if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
8403            swiper.velocity = 0;
8404          }
8405          // this implies that the user stopped moving a finger then released.
8406          // There would be no events with distance zero, so the last event is stale.
8407          if (time > 150 || now() - lastMoveEvent.time > 300) {
8408            swiper.velocity = 0;
8409          }
8410        } else {
8411          swiper.velocity = 0;
8412        }
8413        swiper.velocity *= params.freeMode.momentumVelocityRatio;
8414        data.velocities.length = 0;
8415        let momentumDuration = 1000 * params.freeMode.momentumRatio;
8416        const momentumDistance = swiper.velocity * momentumDuration;
8417        let newPosition = swiper.translate + momentumDistance;
8418        if (rtl) newPosition = -newPosition;
8419        let doBounce = false;
8420        let afterBouncePosition;
8421        const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
8422        let needsLoopFix;
8423        if (newPosition < swiper.maxTranslate()) {
8424          if (params.freeMode.momentumBounce) {
8425            if (newPosition + swiper.maxTranslate() < -bounceAmount) {
8426              newPosition = swiper.maxTranslate() - bounceAmount;
8427            }
8428            afterBouncePosition = swiper.maxTranslate();
8429            doBounce = true;
8430            data.allowMomentumBounce = true;
8431          } else {
8432            newPosition = swiper.maxTranslate();
8433          }
8434          if (params.loop && params.centeredSlides) needsLoopFix = true;
8435        } else if (newPosition > swiper.minTranslate()) {
8436          if (params.freeMode.momentumBounce) {
8437            if (newPosition - swiper.minTranslate() > bounceAmount) {
8438              newPosition = swiper.minTranslate() + bounceAmount;
8439            }
8440            afterBouncePosition = swiper.minTranslate();
8441            doBounce = true;
8442            data.allowMomentumBounce = true;
8443          } else {
8444            newPosition = swiper.minTranslate();
8445          }
8446          if (params.loop && params.centeredSlides) needsLoopFix = true;
8447        } else if (params.freeMode.sticky) {
8448          let nextSlide;
8449          for (let j = 0; j < snapGrid.length; j += 1) {
8450            if (snapGrid[j] > -newPosition) {
8451              nextSlide = j;
8452              break;
8453            }
8454          }
8455          if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
8456            newPosition = snapGrid[nextSlide];
8457          } else {
8458            newPosition = snapGrid[nextSlide - 1];
8459          }
8460          newPosition = -newPosition;
8461        }
8462        if (needsLoopFix) {
8463          once('transitionEnd', () => {
8464            swiper.loopFix();
8465          });
8466        }
8467        // Fix duration
8468        if (swiper.velocity !== 0) {
8469          if (rtl) {
8470            momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
8471          } else {
8472            momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
8473          }
8474          if (params.freeMode.sticky) {
8475            // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
8476            // event, then durations can be 20+ seconds to slide one (or zero!) slides.
8477            // It's easy to see this when simulating touch with mouse events. To fix this,
8478            // limit single-slide swipes to the default slide duration. This also has the
8479            // nice side effect of matching slide speed if the user stopped moving before
8480            // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
8481            // For faster swipes, also apply limits (albeit higher ones).
8482            const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
8483            const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
8484            if (moveDistance < currentSlideSize) {
8485              momentumDuration = params.speed;
8486            } else if (moveDistance < 2 * currentSlideSize) {
8487              momentumDuration = params.speed * 1.5;
8488            } else {
8489              momentumDuration = params.speed * 2.5;
8490            }
8491          }
8492        } else if (params.freeMode.sticky) {
8493          swiper.slideToClosest();
8494          return;
8495        }
8496        if (params.freeMode.momentumBounce && doBounce) {
8497          swiper.updateProgress(afterBouncePosition);
8498          swiper.setTransition(momentumDuration);
8499          swiper.setTranslate(newPosition);
8500          swiper.transitionStart(true, swiper.swipeDirection);
8501          swiper.animating = true;
8502          elementTransitionEnd(wrapperEl, () => {
8503            if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
8504            emit('momentumBounce');
8505            swiper.setTransition(params.speed);
8506            setTimeout(() => {
8507              swiper.setTranslate(afterBouncePosition);
8508              elementTransitionEnd(wrapperEl, () => {
8509                if (!swiper || swiper.destroyed) return;
8510                swiper.transitionEnd();
8511              });
8512            }, 0);
8513          });
8514        } else if (swiper.velocity) {
8515          emit('_freeModeNoMomentumRelease');
8516          swiper.updateProgress(newPosition);
8517          swiper.setTransition(momentumDuration);
8518          swiper.setTranslate(newPosition);
8519          swiper.transitionStart(true, swiper.swipeDirection);
8520          if (!swiper.animating) {
8521            swiper.animating = true;
8522            elementTransitionEnd(wrapperEl, () => {
8523              if (!swiper || swiper.destroyed) return;
8524              swiper.transitionEnd();
8525            });
8526          }
8527        } else {
8528          swiper.updateProgress(newPosition);
8529        }
8530        swiper.updateActiveIndex();
8531        swiper.updateSlidesClasses();
8532      } else if (params.freeMode.sticky) {
8533        swiper.slideToClosest();
8534        return;
8535      } else if (params.freeMode) {
8536        emit('_freeModeNoMomentumRelease');
8537      }
8538      if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
8539        emit('_freeModeStaticRelease');
8540        swiper.updateProgress();
8541        swiper.updateActiveIndex();
8542        swiper.updateSlidesClasses();
8543      }
8544    }
8545    Object.assign(swiper, {
8546      freeMode: {
8547        onTouchStart,
8548        onTouchMove,
8549        onTouchEnd
8550      }
8551    });
8552  }
8553
8554  function Grid(_ref) {
8555    let {
8556      swiper,
8557      extendParams,
8558      on
8559    } = _ref;
8560    extendParams({
8561      grid: {
8562        rows: 1,
8563        fill: 'column'
8564      }
8565    });
vendor: 1,326 bytes, lines 8566-8600
8566    let slidesNumberEvenToRows;
8567    let slidesPerRow;
8568    let numFullColumns;
8569    let wasMultiRow;
8570    const getSpaceBetween = () => {
8571      let spaceBetween = swiper.params.spaceBetween;
8572      if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
8573        spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
8574      } else if (typeof spaceBetween === 'string') {
8575        spaceBetween = parseFloat(spaceBetween);
8576      }
8577      return spaceBetween;
8578    };
8579    const initSlides = slides => {
8580      const {
8581        slidesPerView
8582      } = swiper.params;
8583      const {
8584        rows,
8585        fill
8586      } = swiper.params.grid;
8587      const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
8588      numFullColumns = Math.floor(slidesLength / rows);
8589      if (Math.floor(slidesLength / rows) === slidesLength / rows) {
8590        slidesNumberEvenToRows = slidesLength;
8591      } else {
8592        slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
8593      }
8594      if (slidesPerView !== 'auto' && fill === 'row') {
8595        slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
8596      }
8597      slidesPerRow = slidesNumberEvenToRows / rows;
8598    };
8599    const unsetSlides = () => {
8600      if (swiper.slides) {
vendor: 38,235 bytes, lines 8601-9675
8601        swiper.slides.forEach(slide => {
8602          if (slide.swiperSlideGridSet) {
8603            slide.style.height = '';
8604            slide.style[swiper.getDirectionLabel('margin-top')] = '';
8605          }
8606        });
8607      }
8608    };
8609    const updateSlide = (i, slide, slides) => {
8610      const {
8611        slidesPerGroup
8612      } = swiper.params;
8613      const spaceBetween = getSpaceBetween();
8614      const {
8615        rows,
8616        fill
8617      } = swiper.params.grid;
8618      const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
8619      // Set slides order
8620      let newSlideOrderIndex;
8621      let column;
8622      let row;
8623      if (fill === 'row' && slidesPerGroup > 1) {
8624        const groupIndex = Math.floor(i / (slidesPerGroup * rows));
8625        const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
8626        const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
8627        row = Math.floor(slideIndexInGroup / columnsInGroup);
8628        column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
8629        newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
8630        slide.style.order = newSlideOrderIndex;
8631      } else if (fill === 'column') {
8632        column = Math.floor(i / rows);
8633        row = i - column * rows;
8634        if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
8635          row += 1;
8636          if (row >= rows) {
8637            row = 0;
8638            column += 1;
8639          }
8640        }
8641      } else {
8642        row = Math.floor(i / slidesPerRow);
8643        column = i - row * slidesPerRow;
8644      }
8645      slide.row = row;
8646      slide.column = column;
8647      slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
8648      slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
8649      slide.swiperSlideGridSet = true;
8650    };
8651    const updateWrapperSize = (slideSize, snapGrid) => {
8652      const {
8653        centeredSlides,
8654        roundLengths
8655      } = swiper.params;
8656      const spaceBetween = getSpaceBetween();
8657      const {
8658        rows
8659      } = swiper.params.grid;
8660      swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
8661      swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
8662      if (!swiper.params.cssMode) {
8663        swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
8664      }
8665      if (centeredSlides) {
8666        const newSlidesGrid = [];
8667        for (let i = 0; i < snapGrid.length; i += 1) {
8668          let slidesGridItem = snapGrid[i];
8669          if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
8670          if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
8671        }
8672        snapGrid.splice(0, snapGrid.length);
8673        snapGrid.push(...newSlidesGrid);
8674      }
8675    };
8676    const onInit = () => {
8677      wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
8678    };
8679    const onUpdate = () => {
8680      const {
8681        params,
8682        el
8683      } = swiper;
8684      const isMultiRow = params.grid && params.grid.rows > 1;
8685      if (wasMultiRow && !isMultiRow) {
8686        el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
8687        numFullColumns = 1;
8688        swiper.emitContainerClasses();
8689      } else if (!wasMultiRow && isMultiRow) {
8690        el.classList.add(`${params.containerModifierClass}grid`);
8691        if (params.grid.fill === 'column') {
8692          el.classList.add(`${params.containerModifierClass}grid-column`);
8693        }
8694        swiper.emitContainerClasses();
8695      }
8696      wasMultiRow = isMultiRow;
8697    };
8698    on('init', onInit);
8699    on('update', onUpdate);
8700    swiper.grid = {
8701      initSlides,
8702      unsetSlides,
8703      updateSlide,
8704      updateWrapperSize
8705    };
8706  }
8707
8708  function appendSlide(slides) {
8709    const swiper = this;
8710    const {
8711      params,
8712      slidesEl
8713    } = swiper;
8714    if (params.loop) {
8715      swiper.loopDestroy();
8716    }
8717    const appendElement = slideEl => {
8718      if (typeof slideEl === 'string') {
8719        const tempDOM = document.createElement('div');
8720        tempDOM.innerHTML = slideEl;
8721        slidesEl.append(tempDOM.children[0]);
8722        tempDOM.innerHTML = '';
8723      } else {
8724        slidesEl.append(slideEl);
8725      }
8726    };
8727    if (typeof slides === 'object' && 'length' in slides) {
8728      for (let i = 0; i < slides.length; i += 1) {
8729        if (slides[i]) appendElement(slides[i]);
8730      }
8731    } else {
8732      appendElement(slides);
8733    }
8734    swiper.recalcSlides();
8735    if (params.loop) {
8736      swiper.loopCreate();
8737    }
8738    if (!params.observer || swiper.isElement) {
8739      swiper.update();
8740    }
8741  }
8742
8743  function prependSlide(slides) {
8744    const swiper = this;
8745    const {
8746      params,
8747      activeIndex,
8748      slidesEl
8749    } = swiper;
8750    if (params.loop) {
8751      swiper.loopDestroy();
8752    }
8753    let newActiveIndex = activeIndex + 1;
8754    const prependElement = slideEl => {
8755      if (typeof slideEl === 'string') {
8756        const tempDOM = document.createElement('div');
8757        tempDOM.innerHTML = slideEl;
8758        slidesEl.prepend(tempDOM.children[0]);
8759        tempDOM.innerHTML = '';
8760      } else {
8761        slidesEl.prepend(slideEl);
8762      }
8763    };
8764    if (typeof slides === 'object' && 'length' in slides) {
8765      for (let i = 0; i < slides.length; i += 1) {
8766        if (slides[i]) prependElement(slides[i]);
8767      }
8768      newActiveIndex = activeIndex + slides.length;
8769    } else {
8770      prependElement(slides);
8771    }
8772    swiper.recalcSlides();
8773    if (params.loop) {
8774      swiper.loopCreate();
8775    }
8776    if (!params.observer || swiper.isElement) {
8777      swiper.update();
8778    }
8779    swiper.slideTo(newActiveIndex, 0, false);
8780  }
8781
8782  function addSlide(index, slides) {
8783    const swiper = this;
8784    const {
8785      params,
8786      activeIndex,
8787      slidesEl
8788    } = swiper;
8789    let activeIndexBuffer = activeIndex;
8790    if (params.loop) {
8791      activeIndexBuffer -= swiper.loopedSlides;
8792      swiper.loopDestroy();
8793      swiper.recalcSlides();
8794    }
8795    const baseLength = swiper.slides.length;
8796    if (index <= 0) {
8797      swiper.prependSlide(slides);
8798      return;
8799    }
8800    if (index >= baseLength) {
8801      swiper.appendSlide(slides);
8802      return;
8803    }
8804    let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
8805    const slidesBuffer = [];
8806    for (let i = baseLength - 1; i >= index; i -= 1) {
8807      const currentSlide = swiper.slides[i];
8808      currentSlide.remove();
8809      slidesBuffer.unshift(currentSlide);
8810    }
8811    if (typeof slides === 'object' && 'length' in slides) {
8812      for (let i = 0; i < slides.length; i += 1) {
8813        if (slides[i]) slidesEl.append(slides[i]);
8814      }
8815      newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
8816    } else {
8817      slidesEl.append(slides);
8818    }
8819    for (let i = 0; i < slidesBuffer.length; i += 1) {
8820      slidesEl.append(slidesBuffer[i]);
8821    }
8822    swiper.recalcSlides();
8823    if (params.loop) {
8824      swiper.loopCreate();
8825    }
8826    if (!params.observer || swiper.isElement) {
8827      swiper.update();
8828    }
8829    if (params.loop) {
8830      swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
8831    } else {
8832      swiper.slideTo(newActiveIndex, 0, false);
8833    }
8834  }
8835
8836  function removeSlide(slidesIndexes) {
8837    const swiper = this;
8838    const {
8839      params,
8840      activeIndex
8841    } = swiper;
8842    let activeIndexBuffer = activeIndex;
8843    if (params.loop) {
8844      activeIndexBuffer -= swiper.loopedSlides;
8845      swiper.loopDestroy();
8846    }
8847    let newActiveIndex = activeIndexBuffer;
8848    let indexToRemove;
8849    if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
8850      for (let i = 0; i < slidesIndexes.length; i += 1) {
8851        indexToRemove = slidesIndexes[i];
8852        if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
8853        if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
8854      }
8855      newActiveIndex = Math.max(newActiveIndex, 0);
8856    } else {
8857      indexToRemove = slidesIndexes;
8858      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
8859      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
8860      newActiveIndex = Math.max(newActiveIndex, 0);
8861    }
8862    swiper.recalcSlides();
8863    if (params.loop) {
8864      swiper.loopCreate();
8865    }
8866    if (!params.observer || swiper.isElement) {
8867      swiper.update();
8868    }
8869    if (params.loop) {
8870      swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
8871    } else {
8872      swiper.slideTo(newActiveIndex, 0, false);
8873    }
8874  }
8875
8876  function removeAllSlides() {
8877    const swiper = this;
8878    const slidesIndexes = [];
8879    for (let i = 0; i < swiper.slides.length; i += 1) {
8880      slidesIndexes.push(i);
8881    }
8882    swiper.removeSlide(slidesIndexes);
8883  }
8884
8885  function Manipulation(_ref) {
8886    let {
8887      swiper
8888    } = _ref;
8889    Object.assign(swiper, {
8890      appendSlide: appendSlide.bind(swiper),
8891      prependSlide: prependSlide.bind(swiper),
8892      addSlide: addSlide.bind(swiper),
8893      removeSlide: removeSlide.bind(swiper),
8894      removeAllSlides: removeAllSlides.bind(swiper)
8895    });
8896  }
8897
8898  function effectInit(params) {
8899    const {
8900      effect,
8901      swiper,
8902      on,
8903      setTranslate,
8904      setTransition,
8905      overwriteParams,
8906      perspective,
8907      recreateShadows,
8908      getEffectParams
8909    } = params;
8910    on('beforeInit', () => {
8911      if (swiper.params.effect !== effect) return;
8912      swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
8913      if (perspective && perspective()) {
8914        swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
8915      }
8916      const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
8917      Object.assign(swiper.params, overwriteParamsResult);
8918      Object.assign(swiper.originalParams, overwriteParamsResult);
8919    });
8920    on('setTranslate', () => {
8921      if (swiper.params.effect !== effect) return;
8922      setTranslate();
8923    });
8924    on('setTransition', (_s, duration) => {
8925      if (swiper.params.effect !== effect) return;
8926      setTransition(duration);
8927    });
8928    on('transitionEnd', () => {
8929      if (swiper.params.effect !== effect) return;
8930      if (recreateShadows) {
8931        if (!getEffectParams || !getEffectParams().slideShadows) return;
8932        // remove shadows
8933        swiper.slides.forEach(slideEl => {
8934          slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());
8935        });
8936        // create new one
8937        recreateShadows();
8938      }
8939    });
8940    let requireUpdateOnVirtual;
8941    on('virtualUpdate', () => {
8942      if (swiper.params.effect !== effect) return;
8943      if (!swiper.slides.length) {
8944        requireUpdateOnVirtual = true;
8945      }
8946      requestAnimationFrame(() => {
8947        if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
8948          setTranslate();
8949          requireUpdateOnVirtual = false;
8950        }
8951      });
8952    });
8953  }
8954
8955  function effectTarget(effectParams, slideEl) {
8956    const transformEl = getSlideTransformEl(slideEl);
8957    if (transformEl !== slideEl) {
8958      transformEl.style.backfaceVisibility = 'hidden';
8959      transformEl.style['-webkit-backface-visibility'] = 'hidden';
8960    }
8961    return transformEl;
8962  }
8963
8964  function effectVirtualTransitionEnd(_ref) {
8965    let {
8966      swiper,
8967      duration,
8968      transformElements,
8969      allSlides
8970    } = _ref;
8971    const {
8972      activeIndex
8973    } = swiper;
8974    const getSlide = el => {
8975      if (!el.parentElement) {
8976        // assume shadow root
8977        const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];
8978        return slide;
8979      }
8980      return el.parentElement;
8981    };
8982    if (swiper.params.virtualTranslate && duration !== 0) {
8983      let eventTriggered = false;
8984      let transitionEndTarget;
8985      if (allSlides) {
8986        transitionEndTarget = transformElements;
8987      } else {
8988        transitionEndTarget = transformElements.filter(transformEl => {
8989          const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;
8990          return swiper.getSlideIndex(el) === activeIndex;
8991        });
8992      }
8993      transitionEndTarget.forEach(el => {
8994        elementTransitionEnd(el, () => {
8995          if (eventTriggered) return;
8996          if (!swiper || swiper.destroyed) return;
8997          eventTriggered = true;
8998          swiper.animating = false;
8999          const evt = new window.CustomEvent('transitionend', {
9000            bubbles: true,
9001            cancelable: true
9002          });
9003          swiper.wrapperEl.dispatchEvent(evt);
9004        });
9005      });
9006    }
9007  }
9008
9009  function EffectFade(_ref) {
9010    let {
9011      swiper,
9012      extendParams,
9013      on
9014    } = _ref;
9015    extendParams({
9016      fadeEffect: {
9017        crossFade: false
9018      }
9019    });
9020    const setTranslate = () => {
9021      const {
9022        slides
9023      } = swiper;
9024      const params = swiper.params.fadeEffect;
9025      for (let i = 0; i < slides.length; i += 1) {
9026        const slideEl = swiper.slides[i];
9027        const offset = slideEl.swiperSlideOffset;
9028        let tx = -offset;
9029        if (!swiper.params.virtualTranslate) tx -= swiper.translate;
9030        let ty = 0;
9031        if (!swiper.isHorizontal()) {
9032          ty = tx;
9033          tx = 0;
9034        }
9035        const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);
9036        const targetEl = effectTarget(params, slideEl);
9037        targetEl.style.opacity = slideOpacity;
9038        targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
9039      }
9040    };
9041    const setTransition = duration => {
9042      const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
9043      transformElements.forEach(el => {
9044        el.style.transitionDuration = `${duration}ms`;
9045      });
9046      effectVirtualTransitionEnd({
9047        swiper,
9048        duration,
9049        transformElements,
9050        allSlides: true
9051      });
9052    };
9053    effectInit({
9054      effect: 'fade',
9055      swiper,
9056      on,
9057      setTranslate,
9058      setTransition,
9059      overwriteParams: () => ({
9060        slidesPerView: 1,
9061        slidesPerGroup: 1,
9062        watchSlidesProgress: true,
9063        spaceBetween: 0,
9064        virtualTranslate: !swiper.params.cssMode
9065      })
9066    });
9067  }
9068
9069  function EffectCube(_ref) {
9070    let {
9071      swiper,
9072      extendParams,
9073      on
9074    } = _ref;
9075    extendParams({
9076      cubeEffect: {
9077        slideShadows: true,
9078        shadow: true,
9079        shadowOffset: 20,
9080        shadowScale: 0.94
9081      }
9082    });
9083    const createSlideShadows = (slideEl, progress, isHorizontal) => {
9084      let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
9085      let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
9086      if (!shadowBefore) {
9087        shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
9088        slideEl.append(shadowBefore);
9089      }
9090      if (!shadowAfter) {
9091        shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
9092        slideEl.append(shadowAfter);
9093      }
9094      if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
9095      if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
9096    };
9097    const recreateShadows = () => {
9098      // create new ones
9099      const isHorizontal = swiper.isHorizontal();
9100      swiper.slides.forEach(slideEl => {
9101        const progress = Math.max(Math.min(slideEl.progress, 1), -1);
9102        createSlideShadows(slideEl, progress, isHorizontal);
9103      });
9104    };
9105    const setTranslate = () => {
9106      const {
9107        el,
9108        wrapperEl,
9109        slides,
9110        width: swiperWidth,
9111        height: swiperHeight,
9112        rtlTranslate: rtl,
9113        size: swiperSize,
9114        browser
9115      } = swiper;
9116      const r = getRotateFix(swiper);
9117      const params = swiper.params.cubeEffect;
9118      const isHorizontal = swiper.isHorizontal();
9119      const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
9120      let wrapperRotate = 0;
9121      let cubeShadowEl;
9122      if (params.shadow) {
9123        if (isHorizontal) {
9124          cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
9125          if (!cubeShadowEl) {
9126            cubeShadowEl = createElement('div', 'swiper-cube-shadow');
9127            swiper.wrapperEl.append(cubeShadowEl);
9128          }
9129          cubeShadowEl.style.height = `${swiperWidth}px`;
9130        } else {
9131          cubeShadowEl = el.querySelector('.swiper-cube-shadow');
9132          if (!cubeShadowEl) {
9133            cubeShadowEl = createElement('div', 'swiper-cube-shadow');
9134            el.append(cubeShadowEl);
9135          }
9136        }
9137      }
9138      for (let i = 0; i < slides.length; i += 1) {
9139        const slideEl = slides[i];
9140        let slideIndex = i;
9141        if (isVirtual) {
9142          slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);
9143        }
9144        let slideAngle = slideIndex * 90;
9145        let round = Math.floor(slideAngle / 360);
9146        if (rtl) {
9147          slideAngle = -slideAngle;
9148          round = Math.floor(-slideAngle / 360);
9149        }
9150        const progress = Math.max(Math.min(slideEl.progress, 1), -1);
9151        let tx = 0;
9152        let ty = 0;
9153        let tz = 0;
9154        if (slideIndex % 4 === 0) {
9155          tx = -round * 4 * swiperSize;
9156          tz = 0;
9157        } else if ((slideIndex - 1) % 4 === 0) {
9158          tx = 0;
9159          tz = -round * 4 * swiperSize;
9160        } else if ((slideIndex - 2) % 4 === 0) {
9161          tx = swiperSize + round * 4 * swiperSize;
9162          tz = swiperSize;
9163        } else if ((slideIndex - 3) % 4 === 0) {
9164          tx = -swiperSize;
9165          tz = 3 * swiperSize + swiperSize * 4 * round;
9166        }
9167        if (rtl) {
9168          tx = -tx;
9169        }
9170        if (!isHorizontal) {
9171          ty = tx;
9172          tx = 0;
9173        }
9174        const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
9175        if (progress <= 1 && progress > -1) {
9176          wrapperRotate = slideIndex * 90 + progress * 90;
9177          if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
9178        }
9179        slideEl.style.transform = transform;
9180        if (params.slideShadows) {
9181          createSlideShadows(slideEl, progress, isHorizontal);
9182        }
9183      }
9184      wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;
9185      wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;
9186      if (params.shadow) {
9187        if (isHorizontal) {
9188          cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;
9189        } else {
9190          const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
9191          const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
9192          const scale1 = params.shadowScale;
9193          const scale2 = params.shadowScale / multiplier;
9194          const offset = params.shadowOffset;
9195          cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;
9196        }
9197      }
9198      const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
9199      wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;
9200      wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
9201    };
9202    const setTransition = duration => {
9203      const {
9204        el,
9205        slides
9206      } = swiper;
9207      slides.forEach(slideEl => {
9208        slideEl.style.transitionDuration = `${duration}ms`;
9209        slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {
9210          subEl.style.transitionDuration = `${duration}ms`;
9211        });
9212      });
9213      if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
9214        const shadowEl = el.querySelector('.swiper-cube-shadow');
9215        if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;
9216      }
9217    };
9218    effectInit({
9219      effect: 'cube',
9220      swiper,
9221      on,
9222      setTranslate,
9223      setTransition,
9224      recreateShadows,
9225      getEffectParams: () => swiper.params.cubeEffect,
9226      perspective: () => true,
9227      overwriteParams: () => ({
9228        slidesPerView: 1,
9229        slidesPerGroup: 1,
9230        watchSlidesProgress: true,
9231        resistanceRatio: 0,
9232        spaceBetween: 0,
9233        centeredSlides: false,
9234        virtualTranslate: true
9235      })
9236    });
9237  }
9238
9239  function createShadow(suffix, slideEl, side) {
9240    const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
9241    const shadowContainer = getSlideTransformEl(slideEl);
9242    let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
9243    if (!shadowEl) {
9244      shadowEl = createElement('div', shadowClass.split(' '));
9245      shadowContainer.append(shadowEl);
9246    }
9247    return shadowEl;
9248  }
9249
9250  function EffectFlip(_ref) {
9251    let {
9252      swiper,
9253      extendParams,
9254      on
9255    } = _ref;
9256    extendParams({
9257      flipEffect: {
9258        slideShadows: true,
9259        limitRotation: true
9260      }
9261    });
9262    const createSlideShadows = (slideEl, progress) => {
9263      let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
9264      let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
9265      if (!shadowBefore) {
9266        shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
9267      }
9268      if (!shadowAfter) {
9269        shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
9270      }
9271      if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
9272      if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
9273    };
9274    const recreateShadows = () => {
9275      // Set shadows
9276      swiper.params.flipEffect;
9277      swiper.slides.forEach(slideEl => {
9278        let progress = slideEl.progress;
9279        if (swiper.params.flipEffect.limitRotation) {
9280          progress = Math.max(Math.min(slideEl.progress, 1), -1);
9281        }
9282        createSlideShadows(slideEl, progress);
9283      });
9284    };
9285    const setTranslate = () => {
9286      const {
9287        slides,
9288        rtlTranslate: rtl
9289      } = swiper;
9290      const params = swiper.params.flipEffect;
9291      const rotateFix = getRotateFix(swiper);
9292      for (let i = 0; i < slides.length; i += 1) {
9293        const slideEl = slides[i];
9294        let progress = slideEl.progress;
9295        if (swiper.params.flipEffect.limitRotation) {
9296          progress = Math.max(Math.min(slideEl.progress, 1), -1);
9297        }
9298        const offset = slideEl.swiperSlideOffset;
9299        const rotate = -180 * progress;
9300        let rotateY = rotate;
9301        let rotateX = 0;
9302        let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
9303        let ty = 0;
9304        if (!swiper.isHorizontal()) {
9305          ty = tx;
9306          tx = 0;
9307          rotateX = -rotateY;
9308          rotateY = 0;
9309        } else if (rtl) {
9310          rotateY = -rotateY;
9311        }
9312        slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
9313        if (params.slideShadows) {
9314          createSlideShadows(slideEl, progress);
9315        }
9316        const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
9317        const targetEl = effectTarget(params, slideEl);
9318        targetEl.style.transform = transform;
9319      }
9320    };
9321    const setTransition = duration => {
9322      const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
9323      transformElements.forEach(el => {
9324        el.style.transitionDuration = `${duration}ms`;
9325        el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
9326          shadowEl.style.transitionDuration = `${duration}ms`;
9327        });
9328      });
9329      effectVirtualTransitionEnd({
9330        swiper,
9331        duration,
9332        transformElements
9333      });
9334    };
9335    effectInit({
9336      effect: 'flip',
9337      swiper,
9338      on,
9339      setTranslate,
9340      setTransition,
9341      recreateShadows,
9342      getEffectParams: () => swiper.params.flipEffect,
9343      perspective: () => true,
9344      overwriteParams: () => ({
9345        slidesPerView: 1,
9346        slidesPerGroup: 1,
9347        watchSlidesProgress: true,
9348        spaceBetween: 0,
9349        virtualTranslate: !swiper.params.cssMode
9350      })
9351    });
9352  }
9353
9354  function EffectCoverflow(_ref) {
9355    let {
9356      swiper,
9357      extendParams,
9358      on
9359    } = _ref;
9360    extendParams({
9361      coverflowEffect: {
9362        rotate: 50,
9363        stretch: 0,
9364        depth: 100,
9365        scale: 1,
9366        modifier: 1,
9367        slideShadows: true
9368      }
9369    });
9370    const setTranslate = () => {
9371      const {
9372        width: swiperWidth,
9373        height: swiperHeight,
9374        slides,
9375        slidesSizesGrid
9376      } = swiper;
9377      const params = swiper.params.coverflowEffect;
9378      const isHorizontal = swiper.isHorizontal();
9379      const transform = swiper.translate;
9380      const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
9381      const rotate = isHorizontal ? params.rotate : -params.rotate;
9382      const translate = params.depth;
9383      const r = getRotateFix(swiper);
9384      // Each slide offset from center
9385      for (let i = 0, length = slides.length; i < length; i += 1) {
9386        const slideEl = slides[i];
9387        const slideSize = slidesSizesGrid[i];
9388        const slideOffset = slideEl.swiperSlideOffset;
9389        const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
9390        const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
9391        let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
9392        let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
9393        // var rotateZ = 0
9394        let translateZ = -translate * Math.abs(offsetMultiplier);
9395        let stretch = params.stretch;
9396        // Allow percentage to make a relative stretch for responsive sliders
9397        if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
9398          stretch = parseFloat(params.stretch) / 100 * slideSize;
9399        }
9400        let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
9401        let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
9402        let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
9403
9404        // Fix for ultra small values
9405        if (Math.abs(translateX) < 0.001) translateX = 0;
9406        if (Math.abs(translateY) < 0.001) translateY = 0;
9407        if (Math.abs(translateZ) < 0.001) translateZ = 0;
9408        if (Math.abs(rotateY) < 0.001) rotateY = 0;
9409        if (Math.abs(rotateX) < 0.001) rotateX = 0;
9410        if (Math.abs(scale) < 0.001) scale = 0;
9411        const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;
9412        const targetEl = effectTarget(params, slideEl);
9413        targetEl.style.transform = slideTransform;
9414        slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
9415        if (params.slideShadows) {
9416          // Set shadows
9417          let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
9418          let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
9419          if (!shadowBeforeEl) {
9420            shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');
9421          }
9422          if (!shadowAfterEl) {
9423            shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
9424          }
9425          if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
9426          if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
9427        }
9428      }
9429    };
9430    const setTransition = duration => {
9431      const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
9432      transformElements.forEach(el => {
9433        el.style.transitionDuration = `${duration}ms`;
9434        el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
9435          shadowEl.style.transitionDuration = `${duration}ms`;
9436        });
9437      });
9438    };
9439    effectInit({
9440      effect: 'coverflow',
9441      swiper,
9442      on,
9443      setTranslate,
9444      setTransition,
9445      perspective: () => true,
9446      overwriteParams: () => ({
9447        watchSlidesProgress: true
9448      })
9449    });
9450  }
9451
9452  function EffectCreative(_ref) {
9453    let {
9454      swiper,
9455      extendParams,
9456      on
9457    } = _ref;
9458    extendParams({
9459      creativeEffect: {
9460        limitProgress: 1,
9461        shadowPerProgress: false,
9462        progressMultiplier: 1,
9463        perspective: true,
9464        prev: {
9465          translate: [0, 0, 0],
9466          rotate: [0, 0, 0],
9467          opacity: 1,
9468          scale: 1
9469        },
9470        next: {
9471          translate: [0, 0, 0],
9472          rotate: [0, 0, 0],
9473          opacity: 1,
9474          scale: 1
9475        }
9476      }
9477    });
9478    const getTranslateValue = value => {
9479      if (typeof value === 'string') return value;
9480      return `${value}px`;
9481    };
9482    const setTranslate = () => {
9483      const {
9484        slides,
9485        wrapperEl,
9486        slidesSizesGrid
9487      } = swiper;
9488      const params = swiper.params.creativeEffect;
9489      const {
9490        progressMultiplier: multiplier
9491      } = params;
9492      const isCenteredSlides = swiper.params.centeredSlides;
9493      const rotateFix = getRotateFix(swiper);
9494      if (isCenteredSlides) {
9495        const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
9496        wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;
9497      }
9498      for (let i = 0; i < slides.length; i += 1) {
9499        const slideEl = slides[i];
9500        const slideProgress = slideEl.progress;
9501        const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);
9502        let originalProgress = progress;
9503        if (!isCenteredSlides) {
9504          originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);
9505        }
9506        const offset = slideEl.swiperSlideOffset;
9507        const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
9508        const r = [0, 0, 0];
9509        let custom = false;
9510        if (!swiper.isHorizontal()) {
9511          t[1] = t[0];
9512          t[0] = 0;
9513        }
9514        let data = {
9515          translate: [0, 0, 0],
9516          rotate: [0, 0, 0],
9517          scale: 1,
9518          opacity: 1
9519        };
9520        if (progress < 0) {
9521          data = params.next;
9522          custom = true;
9523        } else if (progress > 0) {
9524          data = params.prev;
9525          custom = true;
9526        }
9527        // set translate
9528        t.forEach((value, index) => {
9529          t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
9530        });
9531        // set rotates
9532        r.forEach((value, index) => {
9533          let val = data.rotate[index] * Math.abs(progress * multiplier);
9534          r[index] = val;
9535        });
9536        slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
9537        const translateString = t.join(', ');
9538        const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;
9539        const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
9540        const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
9541        const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;
9542
9543        // Set shadows
9544        if (custom && data.shadow || !custom) {
9545          let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
9546          if (!shadowEl && data.shadow) {
9547            shadowEl = createShadow('creative', slideEl);
9548          }
9549          if (shadowEl) {
9550            const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
9551            shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
9552          }
9553        }
9554        const targetEl = effectTarget(params, slideEl);
9555        targetEl.style.transform = transform;
9556        targetEl.style.opacity = opacityString;
9557        if (data.origin) {
9558          targetEl.style.transformOrigin = data.origin;
9559        }
9560      }
9561    };
9562    const setTransition = duration => {
9563      const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
9564      transformElements.forEach(el => {
9565        el.style.transitionDuration = `${duration}ms`;
9566        el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
9567          shadowEl.style.transitionDuration = `${duration}ms`;
9568        });
9569      });
9570      effectVirtualTransitionEnd({
9571        swiper,
9572        duration,
9573        transformElements,
9574        allSlides: true
9575      });
9576    };
9577    effectInit({
9578      effect: 'creative',
9579      swiper,
9580      on,
9581      setTranslate,
9582      setTransition,
9583      perspective: () => swiper.params.creativeEffect.perspective,
9584      overwriteParams: () => ({
9585        watchSlidesProgress: true,
9586        virtualTranslate: !swiper.params.cssMode
9587      })
9588    });
9589  }
9590
9591  function EffectCards(_ref) {
9592    let {
9593      swiper,
9594      extendParams,
9595      on
9596    } = _ref;
9597    extendParams({
9598      cardsEffect: {
9599        slideShadows: true,
9600        rotate: true,
9601        perSlideRotate: 2,
9602        perSlideOffset: 8
9603      }
9604    });
9605    const setTranslate = () => {
9606      const {
9607        slides,
9608        activeIndex,
9609        rtlTranslate: rtl
9610      } = swiper;
9611      const params = swiper.params.cardsEffect;
9612      const {
9613        startTranslate,
9614        isTouched
9615      } = swiper.touchEventsData;
9616      const currentTranslate = rtl ? -swiper.translate : swiper.translate;
9617      for (let i = 0; i < slides.length; i += 1) {
9618        const slideEl = slides[i];
9619        const slideProgress = slideEl.progress;
9620        const progress = Math.min(Math.max(slideProgress, -4), 4);
9621        let offset = slideEl.swiperSlideOffset;
9622        if (swiper.params.centeredSlides && !swiper.params.cssMode) {
9623          swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;
9624        }
9625        if (swiper.params.centeredSlides && swiper.params.cssMode) {
9626          offset -= slides[0].swiperSlideOffset;
9627        }
9628        let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
9629        let tY = 0;
9630        const tZ = -100 * Math.abs(progress);
9631        let scale = 1;
9632        let rotate = -params.perSlideRotate * progress;
9633        let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;
9634        const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
9635        const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
9636        const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
9637        if (isSwipeToNext || isSwipeToPrev) {
9638          const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
9639          rotate += -28 * progress * subProgress;
9640          scale += -0.5 * subProgress;
9641          tXAdd += 96 * subProgress;
9642          tY = `${-25 * subProgress * Math.abs(progress)}%`;
9643        }
9644        if (progress < 0) {
9645          // next
9646          tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
9647        } else if (progress > 0) {
9648          // prev
9649          tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
9650        } else {
9651          tX = `${tX}px`;
9652        }
9653        if (!swiper.isHorizontal()) {
9654          const prevY = tY;
9655          tY = tX;
9656          tX = prevY;
9657        }
9658        const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
9659
9660        /* eslint-disable */
9661        const transform = `
9662        translate3d(${tX}, ${tY}, ${tZ}px)
9663        rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
9664        scale(${scaleString})
9665      `;
9666        /* eslint-enable */
9667
9668        if (params.slideShadows) {
9669          // Set shadows
9670          let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
9671          if (!shadowEl) {
9672            shadowEl = createShadow('cards', slideEl);
9673          }
9674          if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
9675        }
9676        slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
9677        const targetEl = effectTarget(params, slideEl);
9678        targetEl.style.transform = transform;
9679      }
9680    };
9681    const setTransition = duration => {
9682      const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
9683      transformElements.forEach(el => {
9684        el.style.transitionDuration = `${duration}ms`;
9685        el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
9686          shadowEl.style.transitionDuration = `${duration}ms`;
9687        });
9688      });
9689      effectVirtualTransitionEnd({
9690        swiper,
9691        duration,
9692        transformElements
9693      });
9694    };
9695    effectInit({
9696      effect: 'cards',
9697      swiper,
9698      on,
9699      setTranslate,
9700      setTransition,
9701      perspective: () => true,
9702      overwriteParams: () => ({
9703        watchSlidesProgress: true,
9704        virtualTranslate: !swiper.params.cssMode
9705      })
9706    });
9707  }
9708
9709  /**
9710   * Swiper 11.1.12
9711   * Most modern mobile touch slider and framework with hardware accelerated transitions
9712   * https://swiperjs.com
9713   *
9714   * Copyright 2014-2024 Vladimir Kharlampidi
9715   *
9716   * Released under the MIT License
9717   *
9718   * Released on: September 1, 2024
9719   */
9720
9721
9722  // Swiper Class
9723  const modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];
9724  Swiper.use(modules);
9725
9726  return Swiper;
9727
9728})();
9729
9730!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(t||self).Typed=s()}(this,function(){function t(){return t=Object.assign?Object.assign.bind():function(t){for(var s=1;s<arguments.length;s++){var e=arguments[s];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},t.apply(this,arguments)}var s={strings:["These are the default values...","You know what you should do?","Use your own!","Have a great day!"],stringsElement:null,typeSpeed:0,startDelay:0,backSpeed:0,smartBackspace:!0,shuffle:!1,backDelay:700,fadeOut:!1,fadeOutClass:"typed-fade-out",fadeOutDelay:500,loop:!1,loopCount:Infinity,showCursor:!0,cursorChar:"|",autoInsertCss:!0,attr:null,bindInputFocusEvents:!1,contentType:"html",onBegin:function(t){},onComplete:function(t){},preStringTyped:function(t,s){},onStringTyped:function(t,s){},onLastStringBackspaced:function(t){},onTypingPaused:function(t,s){},onTypingResumed:function(t,s){},onReset:function(t){},onStop:function(t,s){},onStart:function(t,s){},onDestroy:function(t){}},e=new(/*#__PURE__*/function(){function e(){}var n=e.prototype;return n.load=function(e,n,i){if(e.el="string"==typeof i?document.querySelector(i):i,e.options=t({},s,n),e.isInput="input"===e.el.tagName.toLowerCase(),e.attr=e.options.attr,e.bindInputFocusEvents=e.options.bindInputFocusEvents,e.showCursor=!e.isInput&&e.options.showCursor,e.cursorChar=e.options.cursorChar,e.cursorBlinking=!0,e.elContent=e.attr?e.el.getAttribute(e.attr):e.el.textContent,e.contentType=e.options.contentType,e.typeSpeed=e.options.typeSpeed,e.startDelay=e.options.startDelay,e.backSpeed=e.options.backSpeed,e.smartBackspace=e.options.smartBackspace,e.backDelay=e.options.backDelay,e.fadeOut=e.options.fadeOut,e.fadeOutClass=e.options.fadeOutClass,e.fadeOutDelay=e.options.fadeOutDelay,e.isPaused=!1,e.strings=e.options.strings.map(function(t){return t.trim()}),e.stringsElement="string"==typeof e.options.stringsElement?document.querySelector(e.options.stringsElement):e.options.stringsElement,e.stringsElement){e.strings=[],e.stringsElement.style.cssText="clip: rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;";var r=Array.prototype.slice.apply(e.stringsElement.children),o=r.length;if(o)for(var a=0;a<o;a+=1)e.strings.push(r[a].innerHTML.trim())}for(var u in e.strPos=0,e.currentElContent=this.getCurrentElContent(e),e.currentElContent&&e.currentElContent.length>0&&(e.strPos=e.currentElContent.length-1,e.strings.unshift(e.currentElContent)),e.sequence=[],e.strings)e.sequence[u]=u;e.arrayPos=0,e.stopNum=0,e.loop=e.options.loop,e.loopCount=e.options.loopCount,e.curLoop=0,e.shuffle=e.options.shuffle,e.pause={status:!1,t
vendor: 5,359 bytes, lines 9730-9731
9730ypewrite:!0,curString:"",curStrPos:0},e.typingComplete=!1,e.autoInsertCss=e.options.autoInsertCss,e.autoInsertCss&&(this.appendCursorAnimationCss(e),this.appendFadeOutAnimationCss(e))},n.getCurrentElContent=function(t){return t.attr?t.el.getAttribute(t.attr):t.isInput?t.el.value:"html"===t.contentType?t.el.innerHTML:t.el.textContent},n.appendCursorAnimationCss=function(t){var s="data-typed-js-cursor-css";if(t.showCursor&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n        .typed-cursor{\n          opacity: 1;\n        }\n        .typed-cursor.typed-cursor--blink{\n          animation: typedjsBlink 0.7s infinite;\n          -webkit-animation: typedjsBlink 0.7s infinite;\n                  animation: typedjsBlink 0.7s infinite;\n        }\n        @keyframes typedjsBlink{\n          50% { opacity: 0.0; }\n        }\n        @-webkit-keyframes typedjsBlink{\n          0% { opacity: 1; }\n          50% { opacity: 0.0; }\n          100% { opacity: 1; }\n        }\n      ",document.body.appendChild(e)}},n.appendFadeOutAnimationCss=function(t){var s="data-typed-fadeout-js-css";if(t.fadeOut&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n        .typed-fade-out{\n          opacity: 0;\n          transition: opacity .25s;\n        }\n        .typed-cursor.typed-cursor--blink.typed-fade-out{\n          -webkit-animation: 0;\n          animation: 0;\n        }\n      ",document.body.appendChild(e)}},e}()),n=new(/*#__PURE__*/function(){function t(){}var s=t.prototype;return s.typeHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if("<"===n||"&"===n){var i;for(i="<"===n?">":";";t.substring(s+1).charAt(0)!==i&&!(1+ ++s>t.length););s++}return s},s.backSpaceHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if(">"===n||";"===n){var i;for(i=">"===n?"<":"&";t.substring(s-1).charAt(0)!==i&&!(--s<0););s--}return s},t}());/*#__PURE__*/
9731return function(){function t(t,s){e.load(this,s,t),this.begin()}var s=t.prototype;return s.toggle=function(){this.pause.status?this.start():this.stop()},s.stop=function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))},s.start=function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))},s.destroy=function(){this.reset(!1),this.options.onDestroy(this)},s.reset=function(t){void 0===t&&(t=!0),clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,t&&(this.insertCursor(),this.options.onReset(this),this.begin())},s.begin=function(){var t=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout(function(){0===t.strPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos):t.backspace(t.strings[t.sequence[t.arrayPos]],t.strPos)},this.startDelay)},s.typewrite=function(t,s){var e=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var i=this.humanizer(this.typeSpeed),r=1;!0!==this.pause.status?this.timeout=setTimeout(function(){s=n.typeHtmlChars(t,s,e);var i=0,o=t.substring(s);if("^"===o.charAt(0)&&/^\^\d+/.test(o)){var a=1;a+=(o=/\d+/.exec(o)[0]).length,i=parseInt(o),e.temporaryPause=!0,e.options.onTypingPaused(e.arrayPos,e),t=t.substring(0,s)+t.substring(s+a),e.toggleBlinking(!0)}if("`"===o.charAt(0)){for(;"`"!==t.substring(s+r).charAt(0)&&(r++,!(s+r>t.length)););var u=t.substring(0,s),p=t.substring(u.length+1,s+r),c=t.substring(s+r+1);t=u+p+c,r--}e.timeout=setTimeout(function(){e.toggleBlinking(!1),s>=t.length?e.doneTyping(t,s):e.keepTyping(t,s,r),e.temporaryPause&&(e.temporaryPause=!1,e.options.onTypingResumed(e.arrayPos,e))},i)},i):this.setPauseStatus(t,s,!0)},s.keepTyping=function(t,s,e){0===s&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this));var n=t.substring(0,s+=e);this.replaceText(n),this.typewrite(t,s)},s.doneTyping=function(t,s){var e=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){e.backspace(t,s)},this.backDelay))},s.backspace=function(t,s){var e=this;if(!0!==this.pause.status){if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var i=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){s=n.backSpaceHtmlChars(t,s,e);var i=t.substring(0,s);if(e.replaceText(i),e.smartBackspace){var r=e.strings[e.arrayPos+1];e.stopNum=r&&i===r.substring(0,s)?s:0}s>e.stopNum?(s--,e.backspace(t,s)):s<=e.stopNum&&(e.arrayPos++,e.arrayPos===e.strings.length?(e.arrayPos=0,e.options.onLastStringBackspaced(),e.shuffleStringsIfNeeded(),e.begin()):e.typewrite(e.strings[e.sequence[e.arrayPos
9731]],s))},i)}else this.setPauseStatus(t,s,!1)},s.complete=function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0},s.setPauseStatus=function(t,s,e){this.pause.typewrite=e,this.pause.curString=t,this.pause.curStrPos=s},s.toggleBlinking=function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))},s.humanizer=function(t){return Math.round(Math.random()*t/2)+t},s.shuffleStringsIfNeeded=function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))},s.initFadeOut=function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)},s.replaceText=function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t},s.bindFocusEvents=function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(s){t.stop()}),this.el.addEventListener("blur",function(s){t.el.value&&0!==t.el.value.length||t.start()}))},s.insertCursor=function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))},t}()});
9732
9733
9734ScrollTrigger.batch(document.querySelectorAll('.stagger'), {
9735  onToggle: batch => {
9736    gsap.to(batch, {duration: 0.7, opacity: 1, y: 0, stagger: 0.2, overwrite: true});
9737  }
9738});
9739
9740ScrollTrigger.batch(document.querySelectorAll('.fade'), {  
9741  start: "top 80%", 
9742  end: "bottom 20%", 
9743  onToggle: (batch, self) => {
9744    gsap.to(batch, {duration: 0.5, opacity: 1, stagger: 0.2, overwrite: true})
9745  }
9746});
9747
9748let headerBottom = gsap.timeline({ paused: true })
9749
9750headerBottom.to($('.header-main').find('.header-bottom'), {
9751  height: 0,
9752  alpha: 0,
9753  autoAlpha: 0,
9754  duration: .3,
9755  ease: 'power2.in',
9756});
9757
9758headerBottom.reverse()
9759
9760//For Header 
9761ScrollTrigger.create({
9762  trigger: ".header-main",
9763  start: 'top top',
9764  end: "100% 0%",
9765  endTrigger: "html",
9766  toggleClass:  "active",
9767  onToggle: (self) => {
9768    self.direction == 1 ? headerBottom.reversed(!headerBottom.reversed()) : headerBottom.reversed(!headerBottom.reversed())
9769  }
9770});
9771
9772
9773//For Search Card 
9774ScrollTrigger.create({
9775  trigger: ".hero-search-card",
9776  start: 'top top',
9777  end: 99999,
9778  endTrigger: "html",
9779  onToggle: (self) => {
9780    self.direction == 1 ? $('body').addClass('search-active')  : $('body').removeClass('search-active')
9781  },
9782  onUpdate: () => {
9783    $('body').removeClass('hs-active') 
9784  }
9785});
9786
9787
9788$(document).on("click", "[data-scrollto]", function(e) {
9789  e.preventDefault();
9790  let scrollToElm = $(this).data("scrollto");
9791  let scrollPos =
9792      $('[data-scroll-id="' + scrollToElm + '"]').offset().top -
9793      $(".header-main").outerHeight();
9794  $("html,body").stop().animate({
9795      scrollTop: scrollPos
9796  }, 700);
9797  $(".menu-active .h-active").trigger("click");
9798});
9799
9800
9801//For language
9802$(document).on("click", ".lang-dropdown li>a", function () {
9803  let lang = $(this).data("lang");
9804  let languageSelect = document.querySelector("select.goog-te-combo");
9805
9806  languageSelect.value = lang;
9807  languageSelect.dispatchEvent(new Event("change"));
9808  
9809  $("#lang-select").text(lang);
9810  $("#switchType").attr("flag-name", lang);
9811});
9812
9813
9814// for typing slider
9815$('.search-group .st-wrap .st-slide-text').each(function(){
9816  let typed = new Typed($(this).get(0), {
9817    strings: ["Destinations", "Tour", "Package", "Transfer", "Thailand", "India", "Singapore", "Malaysia", "UAE", "Indonesia"],
9818    loop:true, 
9819    typeSpeed: 60,
9820    backSpeed: 60
9821  });
9822});
9823
9824//For search on focus
9825$(document).on('focus', '.search-group>input', function(){
9826  $(this).parent().find('.st-wrap').stop().fadeOut(400);
9827});
9828
9829//For document click
9830$(document).on('click', function(e){
9831  if(!$(e.target).closest('.search-group').length){
9832    $('.search-group .st-wrap').stop().fadeIn(400);
9833  }
9834});
9835
9836$(document).on('click', '.tab-nav-wrapper li>a', function(e) {
9837  e.preventDefault();
9838  let dataId = $(this).attr('data-id');
9839  $('.tab-nav-wrapper li>a').removeClass('active')
9840  $(this).addClass('active')
9841  $('.tab-wrapper .tab-item[tab-id="' + dataId + '"]').fadeIn().siblings().hide()
9842});
9843
9844// Mega Menu
9845function megaMenu() {
9846  $(".megamenu").each(function() {
9847    $(this).css({ "width": $('.bottom-nav')[0].offsetWidth });
9848  });
9849}
9850
9851megaMenu();
9852
9853$(window).on("resize", function() {
9854  megaMenu();
9855});
9856
9857$(document).on('mouseenter', '.megamenu .mg-list li>a', function() {
9858  let navId = $(this).attr('menu-id');
9859  $(this).parent().addClass('active').siblings().removeClass('active');
9860  $('.mg-wrap .mg-item[menu-item="' + navId + '"]').fadeIn().siblings().hide();
9861});
9862
9863
9864$(document).on("click", "#userMenuToggle", function(event) {
9865  $("body").addClass("um-active");
9866});
9867
9868$(document).on("click", "#menuToggle", function(event) {
9869  $("body").toggleClass("menu-active");
9870});
9871
9872
9873$(document).on('click', '.nav >li >a', function(e) {
9874  $(this).parent().toggleClass('active').siblings().removeClass('active').find(".submenu, .megamenu").removeClass('menu-open');
9875  $(this).parent().find(".submenu, .megamenu").toggleClass('menu-open');
9876});
9877
9878$(document).on('click', '.close-icon', function() {
9879  $(this).parents('.submenu, .megamenu').removeClass('menu-open')
9880});
9881
9882$(document).on("click", "#userMenuClose", function(event) {
9883  $("body").removeClass("um-active");
9884});
9885
9886$(document).on("click", "#searchToggle", function(event) {
9887  $("body").toggleClass("hs-active");
9888});
9889
9890

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.