PageSourceSearch

https://investors.amrize.com/_assets/_8f8f2e3fa3356555b3960c7df071c3c1/amrize/files/theme/js/_js/all.js

js amrize.com collected 2026-10-02 07:19:23 UTC 337,330 bytes, 5,214 lines download raw bytes

1/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */�
vendor: 15,004 bytes, lines 1-2
1
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(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.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:u,sort:t.sort,splice:t.splice},S.extend=S.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||m(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&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+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]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(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},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},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(p(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:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}
vendor: 4,356 bytes, line 2
2:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(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:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?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=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!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 J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(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]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];
vendor: 10,068 bytes, line 2
2if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(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 Te(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 Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(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=[be(we(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 Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[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?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(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=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=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]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(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&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.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(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.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&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.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){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.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},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pe
vendor: 8,547 bytes, line 2
2nding",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 S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(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,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.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=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(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},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(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[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(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(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.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&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.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=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.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=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.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 ue={};function le(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]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone
vendor: 51,416 bytes, line 2
2=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={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 ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(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"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.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<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(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)ke(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=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.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),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.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)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.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=S.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=((S.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<S(i,this).index(l):S.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(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(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[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,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&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.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:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(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=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(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=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.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 Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(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&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(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&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=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},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(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%",re.appendChild(u).appendChild(l);var e=C.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),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{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=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[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}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!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,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.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=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.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=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.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):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.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=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),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:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.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=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.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=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(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),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.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&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._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--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.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]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.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=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(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?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.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=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.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));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.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})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.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=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(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(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.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=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.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)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.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||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.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]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(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)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.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 $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,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":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),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=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.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=Ht.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||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.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]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(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=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.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&&C.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<S.inArray("script",v.dataTypes)&&(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"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.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]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(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 m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!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(_t[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&&C.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()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.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 S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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.mouseenter(e).mouseleave(t||e)}}),S.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){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
vendor: 2,832 bytes, lines 2-77
2
3
4/*!
5  * Bootstrap v4.6.0 (https://getbootstrap.com/)
6  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
7  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
8  */
9(function (global, factory) {
10  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
11  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
12  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery));
13}(this, (function (exports, $) { 'use strict';
14
15  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
17  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
18
19  function _defineProperties(target, props) {
20    for (var i = 0; i < props.length; i++) {
21      var descriptor = props[i];
22      descriptor.enumerable = descriptor.enumerable || false;
23      descriptor.configurable = true;
24      if ("value" in descriptor) descriptor.writable = true;
25      Object.defineProperty(target, descriptor.key, descriptor);
26    }
27  }
28
29  function _createClass(Constructor, protoProps, staticProps) {
30    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31    if (staticProps) _defineProperties(Constructor, staticProps);
32    return Constructor;
33  }
34
35  function _extends() {
36    _extends = Object.assign || function (target) {
37      for (var i = 1; i < arguments.length; i++) {
38        var source = arguments[i];
39
40        for (var key in source) {
41          if (Object.prototype.hasOwnProperty.call(source, key)) {
42            target[key] = source[key];
43          }
44        }
45      }
46
47      return target;
48    };
49
50    return _extends.apply(this, arguments);
51  }
52
53  function _inheritsLoose(subClass, superClass) {
54    subClass.prototype = Object.create(superClass.prototype);
55    subClass.prototype.constructor = subClass;
56    subClass.__proto__ = superClass;
57  }
58
59  /**
60   * --------------------------------------------------------------------------
61   * Bootstrap (v4.6.0): util.js
62   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
63   * --------------------------------------------------------------------------
64   */
65  /**
66   * ------------------------------------------------------------------------
67   * Private TransitionEnd Helpers
68   * ------------------------------------------------------------------------
69   */
70
71  var TRANSITION_END = 'transitionend';
72  var MAX_UID = 1000000;
73  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
74
75  function toType(obj) {
76    if (obj === null || typeof obj === 'undefined') {
77      return "" + obj;
vendor: 10,519 bytes, lines 78-390
78    }
79
80    return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
81  }
82
83  function getSpecialTransitionEndEvent() {
84    return {
85      bindType: TRANSITION_END,
86      delegateType: TRANSITION_END,
87      handle: function handle(event) {
88        if ($__default['default'](event.target).is(this)) {
89          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
90        }
91
92        return undefined;
93      }
94    };
95  }
96
97  function transitionEndEmulator(duration) {
98    var _this = this;
99
100    var called = false;
101    $__default['default'](this).one(Util.TRANSITION_END, function () {
102      called = true;
103    });
104    setTimeout(function () {
105      if (!called) {
106        Util.triggerTransitionEnd(_this);
107      }
108    }, duration);
109    return this;
110  }
111
112  function setTransitionEndSupport() {
113    $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;
114    $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
115  }
116  /**
117   * --------------------------------------------------------------------------
118   * Public Util Api
119   * --------------------------------------------------------------------------
120   */
121
122
123  var Util = {
124    TRANSITION_END: 'bsTransitionEnd',
125    getUID: function getUID(prefix) {
126      do {
127        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
128      } while (document.getElementById(prefix));
129
130      return prefix;
131    },
132    getSelectorFromElement: function getSelectorFromElement(element) {
133      var selector = element.getAttribute('data-target');
134
135      if (!selector || selector === '#') {
136        var hrefAttr = element.getAttribute('href');
137        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
138      }
139
140      try {
141        return document.querySelector(selector) ? selector : null;
142      } catch (_) {
143        return null;
144      }
145    },
146    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
147      if (!element) {
148        return 0;
149      } // Get transition-duration of the element
150
151
152      var transitionDuration = $__default['default'](element).css('transition-duration');
153      var transitionDelay = $__default['default'](element).css('transition-delay');
154      var floatTransitionDuration = parseFloat(transitionDuration);
155      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
156
157      if (!floatTransitionDuration && !floatTransitionDelay) {
158        return 0;
159      } // If multiple durations are defined, take the first
160
161
162      transitionDuration = transitionDuration.split(',')[0];
163      transitionDelay = transitionDelay.split(',')[0];
164      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
165    },
166    reflow: function reflow(element) {
167      return element.offsetHeight;
168    },
169    triggerTransitionEnd: function triggerTransitionEnd(element) {
170      $__default['default'](element).trigger(TRANSITION_END);
171    },
172    supportsTransitionEnd: function supportsTransitionEnd() {
173      return Boolean(TRANSITION_END);
174    },
175    isElement: function isElement(obj) {
176      return (obj[0] || obj).nodeType;
177    },
178    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
179      for (var property in configTypes) {
180        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
181          var expectedTypes = configTypes[property];
182          var value = config[property];
183          var valueType = value && Util.isElement(value) ? 'element' : toType(value);
184
185          if (!new RegExp(expectedTypes).test(valueType)) {
186            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
187          }
188        }
189      }
190    },
191    findShadowRoot: function findShadowRoot(element) {
192      if (!document.documentElement.attachShadow) {
193        return null;
194      } // Can find the shadow root otherwise it'll return the document
195
196
197      if (typeof element.getRootNode === 'function') {
198        var root = element.getRootNode();
199        return root instanceof ShadowRoot ? root : null;
200      }
201
202      if (element instanceof ShadowRoot) {
203        return element;
204      } // when we don't find a shadow root
205
206
207      if (!element.parentNode) {
208        return null;
209      }
210
211      return Util.findShadowRoot(element.parentNode);
212    },
213    jQueryDetection: function jQueryDetection() {
214      if (typeof $__default['default'] === 'undefined') {
215        throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
216      }
217
218      var version = $__default['default'].fn.jquery.split(' ')[0].split('.');
219      var minMajor = 1;
220      var ltMajor = 2;
221      var minMinor = 9;
222      var minPatch = 1;
223      var maxMajor = 4;
224
225      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
226        throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
227      }
228    }
229  };
230  Util.jQueryDetection();
231  setTransitionEndSupport();
232  
233   /**!
234   * @fileOverview Kickass library to create and place poppers near their reference elements.
235   * @version 1.16.1
236   * @license
237   * Copyright (c) 2016 Federico Zivolo and contributors
238   *
239   * Permission is hereby granted, free of charge, to any person obtaining a copy
240   * of this software and associated documentation files (the "Software"), to deal
241   * in the Software without restriction, including without limitation the rights
242   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
243   * copies of the Software, and to permit persons to whom the Software is
244   * furnished to do so, subject to the following conditions:
245   *
246   * The above copyright notice and this permission notice shall be included in all
247   * copies or substantial portions of the Software.
248   *
249   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
250   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
251   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
252   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
253   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
254   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
255   * SOFTWARE.
256   */
257  var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';
258
259  var timeoutDuration = function () {
260    var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
261    for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
262      if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
263        return 1;
264      }
265    }
266    return 0;
267  }();
268
269  function microtaskDebounce(fn) {
270    var called = false;
271    return function () {
272      if (called) {
273        return;
274      }
275      called = true;
276      window.Promise.resolve().then(function () {
277        called = false;
278        fn();
279      });
280    };
281  }
282
283  function taskDebounce(fn) {
284    var scheduled = false;
285    return function () {
286      if (!scheduled) {
287        scheduled = true;
288        setTimeout(function () {
289          scheduled = false;
290          fn();
291        }, timeoutDuration);
292      }
293    };
294  }
295
296  var supportsMicroTasks = isBrowser && window.Promise;
297
298  /**
299  * Create a debounced version of a method, that's asynchronously deferred
300  * but called in the minimum time possible.
301  *
302  * @method
303  * @memberof Popper.Utils
304  * @argument {Function} fn
305  * @returns {Function}
306  */
307  var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
308
309  /**
310   * Check if the given variable is a function
311   * @method
312   * @memberof Popper.Utils
313   * @argument {Any} functionToCheck - variable to check
314   * @returns {Boolean} answer to: is a function?
315   */
316  function isFunction(functionToCheck) {
317    var getType = {};
318    return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
319  }
320
321  /**
322   * Get CSS computed property of the given element
323   * @method
324   * @memberof Popper.Utils
325   * @argument {Eement} element
326   * @argument {String} property
327   */
328  function getStyleComputedProperty(element, property) {
329    if (element.nodeType !== 1) {
330      return [];
331    }
332    // NOTE: 1 DOM access here
333    var window = element.ownerDocument.defaultView;
334    var css = window.getComputedStyle(element, null);
335    return property ? css[property] : css;
336  }
337
338  /**
339   * Returns the parentNode or the host of the element
340   * @method
341   * @memberof Popper.Utils
342   * @argument {Element} element
343   * @returns {Element} parent
344   */
345  function getParentNode(element) {
346    if (element.nodeName === 'HTML') {
347      return element;
348    }
349    return element.parentNode || element.host;
350  }
351
352  /**
353   * Returns the scrolling parent of the given element
354   * @method
355   * @memberof Popper.Utils
356   * @argument {Element} element
357   * @returns {Element} scroll parent
358   */
359  function getScrollParent(element) {
360    // Return body, `getScroll` will take care to get the correct `scrollTop` from it
361    if (!element) {
362      return document.body;
363    }
364
365    switch (element.nodeName) {
366      case 'HTML':
367      case 'BODY':
368        return element.ownerDocument.body;
369      case '#document':
370        return element.body;
371    }
372
373    // Firefox want us to check `-x` and `-y` variations as well
374
375    var _getStyleComputedProp = getStyleComputedProperty(element),
376        overflow = _getStyleComputedProp.overflow,
377        overflowX = _getStyleComputedProp.overflowX,
378        overflowY = _getStyleComputedProp.overflowY;
379
380    if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
381      return element;
382    }
383
384    return getScrollParent(getParentNode(element));
385  }
386
387  /**
388   * Returns the reference node of the reference object, or the reference object itself.
389   * @method
390   * @memberof Popper.Utils
vendor: 8,396 bytes, lines 391-639
391   * @param {Element|Object} reference - the reference element (the popper will be relative to this)
392   * @returns {Element} parent
393   */
394  function getReferenceNode(reference) {
395    return reference && reference.referenceNode ? reference.referenceNode : reference;
396  }
397
398  var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
399  var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
400
401  /**
402   * Determines if the browser is Internet Explorer
403   * @method
404   * @memberof Popper.Utils
405   * @param {Number} version to check
406   * @returns {Boolean} isIE
407   */
408  function isIE(version) {
409    if (version === 11) {
410      return isIE11;
411    }
412    if (version === 10) {
413      return isIE10;
414    }
415    return isIE11 || isIE10;
416  }
417
418  /**
419   * Returns the offset parent of the given element
420   * @method
421   * @memberof Popper.Utils
422   * @argument {Element} element
423   * @returns {Element} offset parent
424   */
425  function getOffsetParent(element) {
426    if (!element) {
427      return document.documentElement;
428    }
429
430    var noOffsetParent = isIE(10) ? document.body : null;
431
432    // NOTE: 1 DOM access here
433    var offsetParent = element.offsetParent || null;
434    // Skip hidden elements which don't have an offsetParent
435    while (offsetParent === noOffsetParent && element.nextElementSibling) {
436      offsetParent = (element = element.nextElementSibling).offsetParent;
437    }
438
439    var nodeName = offsetParent && offsetParent.nodeName;
440
441    if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
442      return element ? element.ownerDocument.documentElement : document.documentElement;
443    }
444
445    // .offsetParent will return the closest TH, TD or TABLE in case
446    // no offsetParent is present, I hate this job...
447    if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
448      return getOffsetParent(offsetParent);
449    }
450
451    return offsetParent;
452  }
453
454  function isOffsetContainer(element) {
455    var nodeName = element.nodeName;
456
457    if (nodeName === 'BODY') {
458      return false;
459    }
460    return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
461  }
462
463  /**
464   * Finds the root node (document, shadowDOM root) of the given element
465   * @method
466   * @memberof Popper.Utils
467   * @argument {Element} node
468   * @returns {Element} root node
469   */
470  function getRoot(node) {
471    if (node.parentNode !== null) {
472      return getRoot(node.parentNode);
473    }
474
475    return node;
476  }
477
478  /**
479   * Finds the offset parent common to the two provided nodes
480   * @method
481   * @memberof Popper.Utils
482   * @argument {Element} element1
483   * @argument {Element} element2
484   * @returns {Element} common offset parent
485   */
486  function findCommonOffsetParent(element1, element2) {
487    // This check is needed to avoid errors in case one of the elements isn't defined for any reason
488    if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
489      return document.documentElement;
490    }
491
492    // Here we make sure to give as "start" the element that comes first in the DOM
493    var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
494    var start = order ? element1 : element2;
495    var end = order ? element2 : element1;
496
497    // Get common ancestor container
498    var range = document.createRange();
499    range.setStart(start, 0);
500    range.setEnd(end, 0);
501    var commonAncestorContainer = range.commonAncestorContainer;
502
503    // Both nodes are inside #document
504
505    if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
506      if (isOffsetContainer(commonAncestorContainer)) {
507        return commonAncestorContainer;
508      }
509
510      return getOffsetParent(commonAncestorContainer);
511    }
512
513    // one of the nodes is inside shadowDOM, find which one
514    var element1root = getRoot(element1);
515    if (element1root.host) {
516      return findCommonOffsetParent(element1root.host, element2);
517    } else {
518      return findCommonOffsetParent(element1, getRoot(element2).host);
519    }
520  }
521
522  /**
523   * Gets the scroll value of the given element in the given side (top and left)
524   * @method
525   * @memberof Popper.Utils
526   * @argument {Element} element
527   * @argument {String} side `top` or `left`
528   * @returns {number} amount of scrolled pixels
529   */
530  function getScroll(element) {
531    var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
532
533    var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
534    var nodeName = element.nodeName;
535
536    if (nodeName === 'BODY' || nodeName === 'HTML') {
537      var html = element.ownerDocument.documentElement;
538      var scrollingElement = element.ownerDocument.scrollingElement || html;
539      return scrollingElement[upperSide];
540    }
541
542    return element[upperSide];
543  }
544
545  /*
546   * Sum or subtract the element scroll values (left and top) from a given rect object
547   * @method
548   * @memberof Popper.Utils
549   * @param {Object} rect - Rect object you want to change
550   * @param {HTMLElement} element - The element from the function reads the scroll values
551   * @param {Boolean} subtract - set to true if you want to subtract the scroll values
552   * @return {Object} rect - The modifier rect object
553   */
554  function includeScroll(rect, element) {
555    var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
556
557    var scrollTop = getScroll(element, 'top');
558    var scrollLeft = getScroll(element, 'left');
559    var modifier = subtract ? -1 : 1;
560    rect.top += scrollTop * modifier;
561    rect.bottom += scrollTop * modifier;
562    rect.left += scrollLeft * modifier;
563    rect.right += scrollLeft * modifier;
564    return rect;
565  }
566
567  /*
568   * Helper to detect borders of a given element
569   * @method
570   * @memberof Popper.Utils
571   * @param {CSSStyleDeclaration} styles
572   * Result of `getStyleComputedProperty` on the given element
573   * @param {String} axis - `x` or `y`
574   * @return {number} borders - The borders size of the given axis
575   */
576
577  function getBordersSize(styles, axis) {
578    var sideA = axis === 'x' ? 'Left' : 'Top';
579    var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
580
581    return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
582  }
583
584  function getSize(axis, body, html, computedStyle) {
585    return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
586  }
587
588  function getWindowSizes(document) {
589    var body = document.body;
590    var html = document.documentElement;
591    var computedStyle = isIE(10) && getComputedStyle(html);
592
593    return {
594      height: getSize('Height', body, html, computedStyle),
595      width: getSize('Width', body, html, computedStyle)
596    };
597  }
598
599  var classCallCheck = function (instance, Constructor) {
600    if (!(instance instanceof Constructor)) {
601      throw new TypeError("Cannot call a class as a function");
602    }
603  };
604
605  var createClass = function () {
606    function defineProperties(target, props) {
607      for (var i = 0; i < props.length; i++) {
608        var descriptor = props[i];
609        descriptor.enumerable = descriptor.enumerable || false;
610        descriptor.configurable = true;
611        if ("value" in descriptor) descriptor.writable = true;
612        Object.defineProperty(target, descriptor.key, descriptor);
613      }
614    }
615
616    return function (Constructor, protoProps, staticProps) {
617      if (protoProps) defineProperties(Constructor.prototype, protoProps);
618      if (staticProps) defineProperties(Constructor, staticProps);
619      return Constructor;
620    };
621  }();
622
623
624
625
626
627  var defineProperty = function (obj, key, value) {
628    if (key in obj) {
629      Object.defineProperty(obj, key, {
630        value: value,
631        enumerable: true,
632        configurable: true,
633        writable: true
634      });
635    } else {
636      obj[key] = value;
637    }
638
639    return obj;
vendor: 11,226 bytes, lines 640-959
640  };
641
642  var _extends$1 = Object.assign || function (target) {
643    for (var i = 1; i < arguments.length; i++) {
644      var source = arguments[i];
645
646      for (var key in source) {
647        if (Object.prototype.hasOwnProperty.call(source, key)) {
648          target[key] = source[key];
649        }
650      }
651    }
652
653    return target;
654  };
655
656  /**
657   * Given element offsets, generate an output similar to getBoundingClientRect
658   * @method
659   * @memberof Popper.Utils
660   * @argument {Object} offsets
661   * @returns {Object} ClientRect like output
662   */
663  function getClientRect(offsets) {
664    return _extends$1({}, offsets, {
665      right: offsets.left + offsets.width,
666      bottom: offsets.top + offsets.height
667    });
668  }
669
670  /**
671   * Get bounding client rect of given element
672   * @method
673   * @memberof Popper.Utils
674   * @param {HTMLElement} element
675   * @return {Object} client rect
676   */
677  function getBoundingClientRect(element) {
678    var rect = {};
679
680    // IE10 10 FIX: Please, don't ask, the element isn't
681    // considered in DOM in some circumstances...
682    // This isn't reproducible in IE10 compatibility mode of IE11
683    try {
684      if (isIE(10)) {
685        rect = element.getBoundingClientRect();
686        var scrollTop = getScroll(element, 'top');
687        var scrollLeft = getScroll(element, 'left');
688        rect.top += scrollTop;
689        rect.left += scrollLeft;
690        rect.bottom += scrollTop;
691        rect.right += scrollLeft;
692      } else {
693        rect = element.getBoundingClientRect();
694      }
695    } catch (e) {}
696
697    var result = {
698      left: rect.left,
699      top: rect.top,
700      width: rect.right - rect.left,
701      height: rect.bottom - rect.top
702    };
703
704    // subtract scrollbar size from sizes
705    var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
706    var width = sizes.width || element.clientWidth || result.width;
707    var height = sizes.height || element.clientHeight || result.height;
708
709    var horizScrollbar = element.offsetWidth - width;
710    var vertScrollbar = element.offsetHeight - height;
711
712    // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
713    // we make this check conditional for performance reasons
714    if (horizScrollbar || vertScrollbar) {
715      var styles = getStyleComputedProperty(element);
716      horizScrollbar -= getBordersSize(styles, 'x');
717      vertScrollbar -= getBordersSize(styles, 'y');
718
719      result.width -= horizScrollbar;
720      result.height -= vertScrollbar;
721    }
722
723    return getClientRect(result);
724  }
725
726  function getOffsetRectRelativeToArbitraryNode(children, parent) {
727    var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
728
729    var isIE10 = isIE(10);
730    var isHTML = parent.nodeName === 'HTML';
731    var childrenRect = getBoundingClientRect(children);
732    var parentRect = getBoundingClientRect(parent);
733    var scrollParent = getScrollParent(children);
734
735    var styles = getStyleComputedProperty(parent);
736    var borderTopWidth = parseFloat(styles.borderTopWidth);
737    var borderLeftWidth = parseFloat(styles.borderLeftWidth);
738
739    // In cases where the parent is fixed, we must ignore negative scroll in offset calc
740    if (fixedPosition && isHTML) {
741      parentRect.top = Math.max(parentRect.top, 0);
742      parentRect.left = Math.max(parentRect.left, 0);
743    }
744    var offsets = getClientRect({
745      top: childrenRect.top - parentRect.top - borderTopWidth,
746      left: childrenRect.left - parentRect.left - borderLeftWidth,
747      width: childrenRect.width,
748      height: childrenRect.height
749    });
750    offsets.marginTop = 0;
751    offsets.marginLeft = 0;
752
753    // Subtract margins of documentElement in case it's being used as parent
754    // we do this only on HTML because it's the only element that behaves
755    // differently when margins are applied to it. The margins are included in
756    // the box of the documentElement, in the other cases not.
757    if (!isIE10 && isHTML) {
758      var marginTop = parseFloat(styles.marginTop);
759      var marginLeft = parseFloat(styles.marginLeft);
760
761      offsets.top -= borderTopWidth - marginTop;
762      offsets.bottom -= borderTopWidth - marginTop;
763      offsets.left -= borderLeftWidth - marginLeft;
764      offsets.right -= borderLeftWidth - marginLeft;
765
766      // Attach marginTop and marginLeft because in some circumstances we may need them
767      offsets.marginTop = marginTop;
768      offsets.marginLeft = marginLeft;
769    }
770
771    if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
772      offsets = includeScroll(offsets, parent);
773    }
774
775    return offsets;
776  }
777
778  function getViewportOffsetRectRelativeToArtbitraryNode(element) {
779    var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
780
781    var html = element.ownerDocument.documentElement;
782    var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
783    var width = Math.max(html.clientWidth, window.innerWidth || 0);
784    var height = Math.max(html.clientHeight, window.innerHeight || 0);
785
786    var scrollTop = !excludeScroll ? getScroll(html) : 0;
787    var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
788
789    var offset = {
790      top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
791      left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
792      width: width,
793      height: height
794    };
795
796    return getClientRect(offset);
797  }
798
799  /**
800   * Check if the given element is fixed or is inside a fixed parent
801   * @method
802   * @memberof Popper.Utils
803   * @argument {Element} element
804   * @argument {Element} customContainer
805   * @returns {Boolean} answer to "isFixed?"
806   */
807  function isFixed(element) {
808    var nodeName = element.nodeName;
809    if (nodeName === 'BODY' || nodeName === 'HTML') {
810      return false;
811    }
812    if (getStyleComputedProperty(element, 'position') === 'fixed') {
813      return true;
814    }
815    var parentNode = getParentNode(element);
816    if (!parentNode) {
817      return false;
818    }
819    return isFixed(parentNode);
820  }
821
822  /**
823   * Finds the first parent of an element that has a transformed property defined
824   * @method
825   * @memberof Popper.Utils
826   * @argument {Element} element
827   * @returns {Element} first transformed parent or documentElement
828   */
829
830  function getFixedPositionOffsetParent(element) {
831    // This check is needed to avoid errors in case one of the elements isn't defined for any reason
832    if (!element || !element.parentElement || isIE()) {
833      return document.documentElement;
834    }
835    var el = element.parentElement;
836    while (el && getStyleComputedProperty(el, 'transform') === 'none') {
837      el = el.parentElement;
838    }
839    return el || document.documentElement;
840  }
841
842  /**
843   * Computed the boundaries limits and return them
844   * @method
845   * @memberof Popper.Utils
846   * @param {HTMLElement} popper
847   * @param {HTMLElement} reference
848   * @param {number} padding
849   * @param {HTMLElement} boundariesElement - Element used to define the boundaries
850   * @param {Boolean} fixedPosition - Is in fixed position mode
851   * @returns {Object} Coordinates of the boundaries
852   */
853  function getBoundaries(popper, reference, padding, boundariesElement) {
854    var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
855
856    // NOTE: 1 DOM access here
857
858    var boundaries = { top: 0, left: 0 };
859    var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
860
861    // Handle viewport case
862    if (boundariesElement === 'viewport') {
863      boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
864    } else {
865      // Handle other cases based on DOM element used as boundaries
866      var boundariesNode = void 0;
867      if (boundariesElement === 'scrollParent') {
868        boundariesNode = getScrollParent(getParentNode(reference));
869        if (boundariesNode.nodeName === 'BODY') {
870          boundariesNode = popper.ownerDocument.documentElement;
871        }
872      } else if (boundariesElement === 'window') {
873        boundariesNode = popper.ownerDocument.documentElement;
874      } else {
875        boundariesNode = boundariesElement;
876      }
877
878      var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
879
880      // In case of HTML, we need a different computation
881      if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
882        var _getWindowSizes = getWindowSizes(popper.ownerDocument),
883            height = _getWindowSizes.height,
884            width = _getWindowSizes.width;
885
886        boundaries.top += offsets.top - offsets.marginTop;
887        boundaries.bottom = height + offsets.top;
888        boundaries.left += offsets.left - offsets.marginLeft;
889        boundaries.right = width + offsets.left;
890      } else {
891        // for all the other DOM elements, this one is good
892        boundaries = offsets;
893      }
894    }
895
896    // Add paddings
897    padding = padding || 0;
898    var isPaddingNumber = typeof padding === 'number';
899    boundaries.left += isPaddingNumber ? padding : padding.left || 0;
900    boundaries.top += isPaddingNumber ? padding : padding.top || 0;
901    boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
902    boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
903
904    return boundaries;
905  }
906
907  function getArea(_ref) {
908    var width = _ref.width,
909        height = _ref.height;
910
911    return width * height;
912  }
913
914  /**
915   * Utility used to transform the `auto` placement to the placement with more
916   * available space.
917   * @method
918   * @memberof Popper.Utils
919   * @argument {Object} data - The data object generated by update method
920   * @argument {Object} options - Modifiers configuration and options
921   * @returns {Object} The data object, properly modified
922   */
923  function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
924    var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
925
926    if (placement.indexOf('auto') === -1) {
927      return placement;
928    }
929
930    var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
931
932    var rects = {
933      top: {
934        width: boundaries.width,
935        height: refRect.top - boundaries.top
936      },
937      right: {
938        width: boundaries.right - refRect.right,
939        height: boundaries.height
940      },
941      bottom: {
942        width: boundaries.width,
943        height: boundaries.bottom - refRect.bottom
944      },
945      left: {
946        width: refRect.left - boundaries.left,
947        height: boundaries.height
948      }
949    };
950
951    var sortedAreas = Object.keys(rects).map(function (key) {
952      return _extends$1({
953        key: key
954      }, rects[key], {
955        area: getArea(rects[key])
956      });
957    }).sort(function (a, b) {
958      return b.area - a.area;
959    });
960
961    var filteredAreas = sortedAreas.filter(function (_ref2) {
962      var width = _ref2.width,
963          height = _ref2.height;
964      return width >= popper.clientWidth && height >= popper.clientHeight;
965    });
966
967    var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
968
969    var variation = placement.split('-')[1];
970
971    return computedPlacement + (variation ? '-' + variation : '');
972  }
973
974  /**
975   * Get offsets to the reference element
976   * @method
977   * @memberof Popper.Utils
978   * @param {Object} state
979   * @param {Element} popper - the popper element
980   * @param {Element} reference - the reference element (the popper will be relative to this)
981   * @param {Element} fixedPosition - is in fixed position mode
982   * @returns {Object} An object containing the offsets which will be applied to the popper
983   */
984  function getReferenceOffsets(state, popper, reference) {
985    var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
986
987    var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
988    return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
989  }
990
991  /**
992   * Get the outer sizes of the given element (offset size + margins)
993   * @method
994   * @memberof Popper.Utils
995   * @argument {Element} element
996   * @returns {Object}
vendor: 4,126 bytes, lines 996-1118
996 object containing width and height properties
997   */
998  function getOuterSizes(element) {
999    var window = element.ownerDocument.defaultView;
1000    var styles = window.getComputedStyle(element);
1001    var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
1002    var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
1003    var result = {
1004      width: element.offsetWidth + y,
1005      height: element.offsetHeight + x
1006    };
1007    return result;
1008  }
1009
1010  /**
1011   * Get the opposite placement of the given one
1012   * @method
1013   * @memberof Popper.Utils
1014   * @argument {String} placement
1015   * @returns {String} flipped placement
1016   */
1017  function getOppositePlacement(placement) {
1018    var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
1019    return placement.replace(/left|right|bottom|top/g, function (matched) {
1020      return hash[matched];
1021    });
1022  }
1023
1024  /**
1025   * Get offsets to the popper
1026   * @method
1027   * @memberof Popper.Utils
1028   * @param {Object} position - CSS position the Popper will get applied
1029   * @param {HTMLElement} popper - the popper element
1030   * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
1031   * @param {String} placement - one of the valid placement options
1032   * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
1033   */
1034  function getPopperOffsets(popper, referenceOffsets, placement) {
1035    placement = placement.split('-')[0];
1036
1037    // Get popper node sizes
1038    var popperRect = getOuterSizes(popper);
1039
1040    // Add position, width and height to our offsets object
1041    var popperOffsets = {
1042      width: popperRect.width,
1043      height: popperRect.height
1044    };
1045
1046    // depending by the popper placement we have to compute its offsets slightly differently
1047    var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
1048    var mainSide = isHoriz ? 'top' : 'left';
1049    var secondarySide = isHoriz ? 'left' : 'top';
1050    var measurement = isHoriz ? 'height' : 'width';
1051    var secondaryMeasurement = !isHoriz ? 'height' : 'width';
1052
1053    popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
1054    if (placement === secondarySide) {
1055      popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
1056    } else {
1057      popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
1058    }
1059
1060    return popperOffsets;
1061  }
1062
1063  /**
1064   * Mimics the `find` method of Array
1065   * @method
1066   * @memberof Popper.Utils
1067   * @argument {Array} arr
1068   * @argument prop
1069   * @argument value
1070   * @returns index or -1
1071   */
1072  function find(arr, check) {
1073    // use native find if supported
1074    if (Array.prototype.find) {
1075      return arr.find(check);
1076    }
1077
1078    // use `filter` to obtain the same behavior of `find`
1079    return arr.filter(check)[0];
1080  }
1081
1082  /**
1083   * Return the index of the matching object
1084   * @method
1085   * @memberof Popper.Utils
1086   * @argument {Array} arr
1087   * @argument prop
1088   * @argument value
1089   * @returns index or -1
1090   */
1091  function findIndex(arr, prop, value) {
1092    // use native findIndex if supported
1093    if (Array.prototype.findIndex) {
1094      return arr.findIndex(function (cur) {
1095        return cur[prop] === value;
1096      });
1097    }
1098
1099    // use `find` + `indexOf` if `findIndex` isn't supported
1100    var match = find(arr, function (obj) {
1101      return obj[prop] === value;
1102    });
1103    return arr.indexOf(match);
1104  }
1105
1106  /**
1107   * Loop trough the list of modifiers and run them in order,
1108   * each of them will then edit the data object.
1109   * @method
1110   * @memberof Popper.Utils
1111   * @param {dataObject} data
1112   * @param {Array} modifiers
1113   * @param {String} ends - Optional modifier name used as stopper
1114   * @returns {dataObject}
1115   */
1116  function runModifiers(modifiers, data, ends) {
1117    var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
1118
vendor: 8,484 bytes, lines 1119-1374
1119    modifiersToRun.forEach(function (modifier) {
1120      if (modifier['function']) {
1121        // eslint-disable-line dot-notation
1122        console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
1123      }
1124      var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
1125      if (modifier.enabled && isFunction(fn)) {
1126        // Add properties to offsets to make them a complete clientRect object
1127        // we do this before each modifier to make sure the previous one doesn't
1128        // mess with these values
1129        data.offsets.popper = getClientRect(data.offsets.popper);
1130        data.offsets.reference = getClientRect(data.offsets.reference);
1131
1132        data = fn(data, modifier);
1133      }
1134    });
1135
1136    return data;
1137  }
1138
1139  /**
1140   * Updates the position of the popper, computing the new offsets and applying
1141   * the new style.<br />
1142   * Prefer `scheduleUpdate` over `update` because of performance reasons.
1143   * @method
1144   * @memberof Popper
1145   */
1146  function update() {
1147    // if popper is destroyed, don't perform any further update
1148    if (this.state.isDestroyed) {
1149      return;
1150    }
1151
1152    var data = {
1153      instance: this,
1154      styles: {},
1155      arrowStyles: {},
1156      attributes: {},
1157      flipped: false,
1158      offsets: {}
1159    };
1160
1161    // compute reference element offsets
1162    data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
1163
1164    // compute auto placement, store placement inside the data object,
1165    // modifiers will be able to edit `placement` if needed
1166    // and refer to originalPlacement to know the original value
1167    data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
1168
1169    // store the computed placement inside `originalPlacement`
1170    data.originalPlacement = data.placement;
1171
1172    data.positionFixed = this.options.positionFixed;
1173
1174    // compute the popper offsets
1175    data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
1176
1177    data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
1178
1179    // run the modifiers
1180    data = runModifiers(this.modifiers, data);
1181
1182    // the first `update` will call `onCreate` callback
1183    // the other ones will call `onUpdate` callback
1184    if (!this.state.isCreated) {
1185      this.state.isCreated = true;
1186      this.options.onCreate(data);
1187    } else {
1188      this.options.onUpdate(data);
1189    }
1190  }
1191
1192  /**
1193   * Helper used to know if the given modifier is enabled.
1194   * @method
1195   * @memberof Popper.Utils
1196   * @returns {Boolean}
1197   */
1198  function isModifierEnabled(modifiers, modifierName) {
1199    return modifiers.some(function (_ref) {
1200      var name = _ref.name,
1201          enabled = _ref.enabled;
1202      return enabled && name === modifierName;
1203    });
1204  }
1205
1206  /**
1207   * Get the prefixed supported property name
1208   * @method
1209   * @memberof Popper.Utils
1210   * @argument {String} property (camelCase)
1211   * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
1212   */
1213  function getSupportedPropertyName(property) {
1214    var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
1215    var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
1216
1217    for (var i = 0; i < prefixes.length; i++) {
1218      var prefix = prefixes[i];
1219      var toCheck = prefix ? '' + prefix + upperProp : property;
1220      if (typeof document.body.style[toCheck] !== 'undefined') {
1221        return toCheck;
1222      }
1223    }
1224    return null;
1225  }
1226
1227  /**
1228   * Destroys the popper.
1229   * @method
1230   * @memberof Popper
1231   */
1232  function destroy() {
1233    this.state.isDestroyed = true;
1234
1235    // touch DOM only if `applyStyle` modifier is enabled
1236    if (isModifierEnabled(this.modifiers, 'applyStyle')) {
1237      this.popper.removeAttribute('x-placement');
1238      this.popper.style.position = '';
1239      this.popper.style.top = '';
1240      this.popper.style.left = '';
1241      this.popper.style.right = '';
1242      this.popper.style.bottom = '';
1243      this.popper.style.willChange = '';
1244      this.popper.style[getSupportedPropertyName('transform')] = '';
1245    }
1246
1247    this.disableEventListeners();
1248
1249    // remove the popper if user explicitly asked for the deletion on destroy
1250    // do not use `remove` because IE11 doesn't support it
1251    if (this.options.removeOnDestroy) {
1252      this.popper.parentNode.removeChild(this.popper);
1253    }
1254    return this;
1255  }
1256
1257  /**
1258   * Get the window associated with the element
1259   * @argument {Element} element
1260   * @returns {Window}
1261   */
1262  function getWindow(element) {
1263    var ownerDocument = element.ownerDocument;
1264    return ownerDocument ? ownerDocument.defaultView : window;
1265  }
1266
1267  function attachToScrollParents(scrollParent, event, callback, scrollParents) {
1268    var isBody = scrollParent.nodeName === 'BODY';
1269    var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
1270    target.addEventListener(event, callback, { passive: true });
1271
1272    if (!isBody) {
1273      attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
1274    }
1275    scrollParents.push(target);
1276  }
1277
1278  /**
1279   * Setup needed event listeners used to update the popper position
1280   * @method
1281   * @memberof Popper.Utils
1282   * @private
1283   */
1284  function setupEventListeners(reference, options, state, updateBound) {
1285    // Resize event listener on window
1286    state.updateBound = updateBound;
1287    getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
1288
1289    // Scroll event listener on scroll parents
1290    var scrollElement = getScrollParent(reference);
1291    attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
1292    state.scrollElement = scrollElement;
1293    state.eventsEnabled = true;
1294
1295    return state;
1296  }
1297
1298  /**
1299   * It will add resize/scroll events and start recalculating
1300   * position of the popper element when they are triggered.
1301   * @method
1302   * @memberof Popper
1303   */
1304  function enableEventListeners() {
1305    if (!this.state.eventsEnabled) {
1306      this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
1307    }
1308  }
1309
1310  /**
1311   * Remove event listeners used to update the popper position
1312   * @method
1313   * @memberof Popper.Utils
1314   * @private
1315   */
1316  function removeEventListeners(reference, state) {
1317    // Remove resize event listener on window
1318    getWindow(reference).removeEventListener('resize', state.updateBound);
1319
1320    // Remove scroll event listener on scroll parents
1321    state.scrollParents.forEach(function (target) {
1322      target.removeEventListener('scroll', state.updateBound);
1323    });
1324
1325    // Reset state
1326    state.updateBound = null;
1327    state.scrollParents = [];
1328    state.scrollElement = null;
1329    state.eventsEnabled = false;
1330    return state;
1331  }
1332
1333  /**
1334   * It will remove resize/scroll events and won't recalculate popper position
1335   * when they are triggered. It also won't trigger `onUpdate` callback anymore,
1336   * unless you call `update` method manually.
1337   * @method
1338   * @memberof Popper
1339   */
1340  function disableEventListeners() {
1341    if (this.state.eventsEnabled) {
1342      cancelAnimationFrame(this.scheduleUpdate);
1343      this.state = removeEventListeners(this.reference, this.state);
1344    }
1345  }
1346
1347  /**
1348   * Tells if a given input is a number
1349   * @method
1350   * @memberof Popper.Utils
1351   * @param {*} input to check
1352   * @return {Boolean}
1353   */
1354  function isNumeric(n) {
1355    return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
1356  }
1357
1358  /**
1359   * Set the style to the given popper
1360   * @method
1361   * @memberof Popper.Utils
1362   * @argument {Element} element - Element to apply the style to
1363   * @argument {Object} styles
1364   * Object with a list of properties and values which will be applied to the element
1365   */
1366  function setStyles(element, styles) {
1367    Object.keys(styles).forEach(function (prop) {
1368      var unit = '';
1369      // add unit if the value is numeric and is one of the following
1370      if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
1371        unit = 'px';
1372      }
1373      element.style[prop] = styles[prop] + unit;
1374    });
1375  }
1376
1377  /**
1378   * Set the attributes to the given popper
1379   * @method
1380   * @memberof Popper.Utils
1381   * @argument {Element} element - Element to apply the attributes to
1382   * @argument {Object} styles
1383   * Object with a list of properties and values which will be applied to the element
1384   */
1385  function setAttributes(element, attributes) {
1386    Object.keys(attributes).forEach(function (prop) {
1387      var value = attributes[prop];
1388      if (value !== false) {
1389        element.setAttribute(prop, attributes[prop]);
1390      } else {
1391        element.removeAttribute(prop);
1392      }
1393    });
1394  }
1395
1396  /**
1397   * @function
1398   * @memberof Modifiers
1399   * @argument {Object} data - The data object generated by `update` method
1400   * @argument {Object} data.styles - List of style properties - values to apply to popper element
1401   * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
1402   * @argument {Object} options - Modifiers configuration and options
1403   * @returns {Object} The same data object
1404   */
1405  function applyStyle(data) {
1406    // any property present in `data.styles` will be applied to the popper,
1407    // in this way we can make the 3rd party modifiers add custom styles to it
1408    // Be aware, modifiers could override the properties defined in the previous
1409    // lines of this modifier!
1410    setStyles(data.instance.popper, data.styles);
1411
1412    // any property present in `data.attributes` will be applied to the popper,
1413    // they will be set as HTML attributes of the element
1414    setAttributes(data.instance.popper, data.attributes);
1415
1416    // if arrowElement is defined and arrowStyles has some properties
vendor: 34,590 bytes, lines 1417-2309
1417    if (data.arrowElement && Object.keys(data.arrowStyles).length) {
1418      setStyles(data.arrowElement, data.arrowStyles);
1419    }
1420
1421    return data;
1422  }
1423
1424  /**
1425   * Set the x-placement attribute before everything else because it could be used
1426   * to add margins to the popper margins needs to be calculated to get the
1427   * correct popper offsets.
1428   * @method
1429   * @memberof Popper.modifiers
1430   * @param {HTMLElement} reference - The reference element used to position the popper
1431   * @param {HTMLElement} popper - The HTML element used as popper
1432   * @param {Object} options - Popper.js options
1433   */
1434  function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
1435    // compute reference element offsets
1436    var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
1437
1438    // compute auto placement, store placement inside the data object,
1439    // modifiers will be able to edit `placement` if needed
1440    // and refer to originalPlacement to know the original value
1441    var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
1442
1443    popper.setAttribute('x-placement', placement);
1444
1445    // Apply `position` to popper before anything else because
1446    // without the position applied we can't guarantee correct computations
1447    setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
1448
1449    return options;
1450  }
1451
1452  /**
1453   * @function
1454   * @memberof Popper.Utils
1455   * @argument {Object} data - The data object generated by `update` method
1456   * @argument {Boolean} shouldRound - If the offsets should be rounded at all
1457   * @returns {Object} The popper's position offsets rounded
1458   *
1459   * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
1460   * good as it can be within reason.
1461   * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
1462   *
1463   * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
1464   * as well on High DPI screens).
1465   *
1466   * Firefox prefers no rounding for positioning and does not have blurriness on
1467   * high DPI screens.
1468   *
1469   * Only horizontal placement and left/right values need to be considered.
1470   */
1471  function getRoundedOffsets(data, shouldRound) {
1472    var _data$offsets = data.offsets,
1473        popper = _data$offsets.popper,
1474        reference = _data$offsets.reference;
1475    var round = Math.round,
1476        floor = Math.floor;
1477
1478    var noRound = function noRound(v) {
1479      return v;
1480    };
1481
1482    var referenceWidth = round(reference.width);
1483    var popperWidth = round(popper.width);
1484
1485    var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
1486    var isVariation = data.placement.indexOf('-') !== -1;
1487    var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
1488    var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
1489
1490    var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
1491    var verticalToInteger = !shouldRound ? noRound : round;
1492
1493    return {
1494      left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
1495      top: verticalToInteger(popper.top),
1496      bottom: verticalToInteger(popper.bottom),
1497      right: horizontalToInteger(popper.right)
1498    };
1499  }
1500
1501  var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
1502
1503  /**
1504   * @function
1505   * @memberof Modifiers
1506   * @argument {Object} data - The data object generated by `update` method
1507   * @argument {Object} options - Modifiers configuration and options
1508   * @returns {Object} The data object, properly modified
1509   */
1510  function computeStyle(data, options) {
1511    var x = options.x,
1512        y = options.y;
1513    var popper = data.offsets.popper;
1514
1515    // Remove this legacy support in Popper.js v2
1516
1517    var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
1518      return modifier.name === 'applyStyle';
1519    }).gpuAcceleration;
1520    if (legacyGpuAccelerationOption !== undefined) {
1521      console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
1522    }
1523    var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
1524
1525    var offsetParent = getOffsetParent(data.instance.popper);
1526    var offsetParentRect = getBoundingClientRect(offsetParent);
1527
1528    // Styles
1529    var styles = {
1530      position: popper.position
1531    };
1532
1533    var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
1534
1535    var sideA = x === 'bottom' ? 'top' : 'bottom';
1536    var sideB = y === 'right' ? 'left' : 'right';
1537
1538    // if gpuAcceleration is set to `true` and transform is supported,
1539    //  we use `translate3d` to apply the position to the popper we
1540    // automatically use the supported prefixed version if needed
1541    var prefixedProperty = getSupportedPropertyName('transform');
1542
1543    // now, let's make a step back and look at this code closely (wtf?)
1544    // If the content of the popper grows once it's been positioned, it
1545    // may happen that the popper gets misplaced because of the new content
1546    // overflowing its reference element
1547    // To avoid this problem, we provide two options (x and y), which allow
1548    // the consumer to define the offset origin.
1549    // If we position a popper on top of a reference element, we can set
1550    // `x` to `top` to make the popper grow towards its top instead of
1551    // its bottom.
1552    var left = void 0,
1553        top = void 0;
1554    if (sideA === 'bottom') {
1555      // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
1556      // and not the bottom of the html element
1557      if (offsetParent.nodeName === 'HTML') {
1558        top = -offsetParent.clientHeight + offsets.bottom;
1559      } else {
1560        top = -offsetParentRect.height + offsets.bottom;
1561      }
1562    } else {
1563      top = offsets.top;
1564    }
1565    if (sideB === 'right') {
1566      if (offsetParent.nodeName === 'HTML') {
1567        left = -offsetParent.clientWidth + offsets.right;
1568      } else {
1569        left = -offsetParentRect.width + offsets.right;
1570      }
1571    } else {
1572      left = offsets.left;
1573    }
1574    if (gpuAcceleration && prefixedProperty) {
1575      styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
1576      styles[sideA] = 0;
1577      styles[sideB] = 0;
1578      styles.willChange = 'transform';
1579    } else {
1580      // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
1581      var invertTop = sideA === 'bottom' ? -1 : 1;
1582      var invertLeft = sideB === 'right' ? -1 : 1;
1583      styles[sideA] = top * invertTop;
1584      styles[sideB] = left * invertLeft;
1585      styles.willChange = sideA + ', ' + sideB;
1586    }
1587
1588    // Attributes
1589    var attributes = {
1590      'x-placement': data.placement
1591    };
1592
1593    // Update `data` attributes, styles and arrowStyles
1594    data.attributes = _extends$1({}, attributes, data.attributes);
1595    data.styles = _extends$1({}, styles, data.styles);
1596    data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);
1597
1598    return data;
1599  }
1600
1601  /**
1602   * Helper used to know if the given modifier depends from another one.<br />
1603   * It checks if the needed modifier is listed and enabled.
1604   * @method
1605   * @memberof Popper.Utils
1606   * @param {Array} modifiers - list of modifiers
1607   * @param {String} requestingName - name of requesting modifier
1608   * @param {String} requestedName - name of requested modifier
1609   * @returns {Boolean}
1610   */
1611  function isModifierRequired(modifiers, requestingName, requestedName) {
1612    var requesting = find(modifiers, function (_ref) {
1613      var name = _ref.name;
1614      return name === requestingName;
1615    });
1616
1617    var isRequired = !!requesting && modifiers.some(function (modifier) {
1618      return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
1619    });
1620
1621    if (!isRequired) {
1622      var _requesting = '`' + requestingName + '`';
1623      var requested = '`' + requestedName + '`';
1624      console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
1625    }
1626    return isRequired;
1627  }
1628
1629  /**
1630   * @function
1631   * @memberof Modifiers
1632   * @argument {Object} data - The data object generated by update method
1633   * @argument {Object} options - Modifiers configuration and options
1634   * @returns {Object} The data object, properly modified
1635   */
1636  function arrow(data, options) {
1637    var _data$offsets$arrow;
1638
1639    // arrow depends on keepTogether in order to work
1640    if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
1641      return data;
1642    }
1643
1644    var arrowElement = options.element;
1645
1646    // if arrowElement is a string, suppose it's a CSS selector
1647    if (typeof arrowElement === 'string') {
1648      arrowElement = data.instance.popper.querySelector(arrowElement);
1649
1650      // if arrowElement is not found, don't run the modifier
1651      if (!arrowElement) {
1652        return data;
1653      }
1654    } else {
1655      // if the arrowElement isn't a query selector we must check that the
1656      // provided DOM node is child of its popper node
1657      if (!data.instance.popper.contains(arrowElement)) {
1658        console.warn('WARNING: `arrow.element` must be child of its popper element!');
1659        return data;
1660      }
1661    }
1662
1663    var placement = data.placement.split('-')[0];
1664    var _data$offsets = data.offsets,
1665        popper = _data$offsets.popper,
1666        reference = _data$offsets.reference;
1667
1668    var isVertical = ['left', 'right'].indexOf(placement) !== -1;
1669
1670    var len = isVertical ? 'height' : 'width';
1671    var sideCapitalized = isVertical ? 'Top' : 'Left';
1672    var side = sideCapitalized.toLowerCase();
1673    var altSide = isVertical ? 'left' : 'top';
1674    var opSide = isVertical ? 'bottom' : 'right';
1675    var arrowElementSize = getOuterSizes(arrowElement)[len];
1676
1677    //
1678    // extends keepTogether behavior making sure the popper and its
1679    // reference have enough pixels in conjunction
1680    //
1681
1682    // top/left side
1683    if (reference[opSide] - arrowElementSize < popper[side]) {
1684      data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
1685    }
1686    // bottom/right side
1687    if (reference[side] + arrowElementSize > popper[opSide]) {
1688      data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
1689    }
1690    data.offsets.popper = getClientRect(data.offsets.popper);
1691
1692    // compute center of the popper
1693    var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
1694
1695    // Compute the sideValue using the updated popper offsets
1696    // take popper margin in account because we don't have this info available
1697    var css = getStyleComputedProperty(data.instance.popper);
1698    var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
1699    var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
1700    var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
1701
1702    // prevent arrowElement from being placed not contiguously to its popper
1703    sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
1704
1705    data.arrowElement = arrowElement;
1706    data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
1707
1708    return data;
1709  }
1710
1711  /**
1712   * Get the opposite placement variation of the given one
1713   * @method
1714   * @memberof Popper.Utils
1715   * @argument {String} placement variation
1716   * @returns {String} flipped placement variation
1717   */
1718  function getOppositeVariation(variation) {
1719    if (variation === 'end') {
1720      return 'start';
1721    } else if (variation === 'start') {
1722      return 'end';
1723    }
1724    return variation;
1725  }
1726
1727  /**
1728   * List of accepted placements to use as values of the `placement` option.<br />
1729   * Valid placements are:
1730   * - `auto`
1731   * - `top`
1732   * - `right`
1733   * - `bottom`
1734   * - `left`
1735   *
1736   * Each placement can have a variation from this list:
1737   * - `-start`
1738   * - `-end`
1739   *
1740   * Variations are interpreted easily if you think of them as the left to right
1741   * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
1742   * is right.<br />
1743   * Vertically (`left` and `right`), `start` is top and `end` is bottom.
1744   *
1745   * Some valid examples are:
1746   * - `top-end` (on top of reference, right aligned)
1747   * - `right-start` (on right of reference, top aligned)
1748   * - `bottom` (on bottom, centered)
1749   * - `auto-end` (on the side with more space available, alignment depends by placement)
1750   *
1751   * @static
1752   * @type {Array}
1753   * @enum {String}
1754   * @readonly
1755   * @method placements
1756   * @memberof Popper
1757   */
1758  var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
1759
1760  // Get rid of `auto` `auto-start` and `auto-end`
1761  var validPlacements = placements.slice(3);
1762
1763  /**
1764   * Given an initial placement, returns all the subsequent placements
1765   * clockwise (or counter-clockwise).
1766   *
1767   * @method
1768   * @memberof Popper.Utils
1769   * @argument {String} placement - A valid placement (it accepts variations)
1770   * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
1771   * @returns {Array} placements including their variations
1772   */
1773  function clockwise(placement) {
1774    var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1775
1776    var index = validPlacements.indexOf(placement);
1777    var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
1778    return counter ? arr.reverse() : arr;
1779  }
1780
1781  var BEHAVIORS = {
1782    FLIP: 'flip',
1783    CLOCKWISE: 'clockwise',
1784    COUNTERCLOCKWISE: 'counterclockwise'
1785  };
1786
1787  /**
1788   * @function
1789   * @memberof Modifiers
1790   * @argument {Object} data - The data object generated by update method
1791   * @argument {Object} options - Modifiers configuration and options
1792   * @returns {Object} The data object, properly modified
1793   */
1794  function flip(data, options) {
1795    // if `inner` modifier is enabled, we can't use the `flip` modifier
1796    if (isModifierEnabled(data.instance.modifiers, 'inner')) {
1797      return data;
1798    }
1799
1800    if (data.flipped && data.placement === data.originalPlacement) {
1801      // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
1802      return data;
1803    }
1804
1805    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
1806
1807    var placement = data.placement.split('-')[0];
1808    var placementOpposite = getOppositePlacement(placement);
1809    var variation = data.placement.split('-')[1] || '';
1810
1811    var flipOrder = [];
1812
1813    switch (options.behavior) {
1814      case BEHAVIORS.FLIP:
1815        flipOrder = [placement, placementOpposite];
1816        break;
1817      case BEHAVIORS.CLOCKWISE:
1818        flipOrder = clockwise(placement);
1819        break;
1820      case BEHAVIORS.COUNTERCLOCKWISE:
1821        flipOrder = clockwise(placement, true);
1822        break;
1823      default:
1824        flipOrder = options.behavior;
1825    }
1826
1827    flipOrder.forEach(function (step, index) {
1828      if (placement !== step || flipOrder.length === index + 1) {
1829        return data;
1830      }
1831
1832      placement = data.placement.split('-')[0];
1833      placementOpposite = getOppositePlacement(placement);
1834
1835      var popperOffsets = data.offsets.popper;
1836      var refOffsets = data.offsets.reference;
1837
1838      // using floor because the reference offsets may contain decimals we are not going to consider here
1839      var floor = Math.floor;
1840      var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
1841
1842      var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
1843      var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
1844      var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
1845      var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
1846
1847      var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
1848
1849      // flip the variation if required
1850      var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
1851
1852      // flips variation if reference element overflows boundaries
1853      var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
1854
1855      // flips variation if popper content overflows boundaries
1856      var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
1857
1858      var flippedVariation = flippedVariationByRef || flippedVariationByContent;
1859
1860      if (overlapsRef || overflowsBoundaries || flippedVariation) {
1861        // this boolean to detect any flip loop
1862        data.flipped = true;
1863
1864        if (overlapsRef || overflowsBoundaries) {
1865          placement = flipOrder[index + 1];
1866        }
1867
1868        if (flippedVariation) {
1869          variation = getOppositeVariation(variation);
1870        }
1871
1872        data.placement = placement + (variation ? '-' + variation : '');
1873
1874        // this object contains `position`, we want to preserve it along with
1875        // any additional property we may add in the future
1876        data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
1877
1878        data = runModifiers(data.instance.modifiers, data, 'flip');
1879      }
1880    });
1881    return data;
1882  }
1883
1884  /**
1885   * @function
1886   * @memberof Modifiers
1887   * @argument {Object} data - The data object generated by update method
1888   * @argument {Object} options - Modifiers configuration and options
1889   * @returns {Object} The data object, properly modified
1890   */
1891  function keepTogether(data) {
1892    var _data$offsets = data.offsets,
1893        popper = _data$offsets.popper,
1894        reference = _data$offsets.reference;
1895
1896    var placement = data.placement.split('-')[0];
1897    var floor = Math.floor;
1898    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
1899    var side = isVertical ? 'right' : 'bottom';
1900    var opSide = isVertical ? 'left' : 'top';
1901    var measurement = isVertical ? 'width' : 'height';
1902
1903    if (popper[side] < floor(reference[opSide])) {
1904      data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
1905    }
1906    if (popper[opSide] > floor(reference[side])) {
1907      data.offsets.popper[opSide] = floor(reference[side]);
1908    }
1909
1910    return data;
1911  }
1912
1913  /**
1914   * Converts a string containing value + unit into a px value number
1915   * @function
1916   * @memberof {modifiers~offset}
1917   * @private
1918   * @argument {String} str - Value + unit string
1919   * @argument {String} measurement - `height` or `width`
1920   * @argument {Object} popperOffsets
1921   * @argument {Object} referenceOffsets
1922   * @returns {Number|String}
1923   * Value in pixels, or original string if no values were extracted
1924   */
1925  function toValue(str, measurement, popperOffsets, referenceOffsets) {
1926    // separate value from unit
1927    var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
1928    var value = +split[1];
1929    var unit = split[2];
1930
1931    // If it's not a number it's an operator, I guess
1932    if (!value) {
1933      return str;
1934    }
1935
1936    if (unit.indexOf('%') === 0) {
1937      var element = void 0;
1938      switch (unit) {
1939        case '%p':
1940          element = popperOffsets;
1941          break;
1942        case '%':
1943        case '%r':
1944        default:
1945          element = referenceOffsets;
1946      }
1947
1948      var rect = getClientRect(element);
1949      return rect[measurement] / 100 * value;
1950    } else if (unit === 'vh' || unit === 'vw') {
1951      // if is a vh or vw, we calculate the size based on the viewport
1952      var size = void 0;
1953      if (unit === 'vh') {
1954        size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
1955      } else {
1956        size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
1957      }
1958      return size / 100 * value;
1959    } else {
1960      // if is an explicit pixel unit, we get rid of the unit and keep the value
1961      // if is an implicit unit, it's px, and we return just the value
1962      return value;
1963    }
1964  }
1965
1966  /**
1967   * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
1968   * @function
1969   * @memberof {modifiers~offset}
1970   * @private
1971   * @argument {String} offset
1972   * @argument {Object} popperOffsets
1973   * @argument {Object} referenceOffsets
1974   * @argument {String} basePlacement
1975   * @returns {Array} a two cells array with x and y offsets in numbers
1976   */
1977  function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
1978    var offsets = [0, 0];
1979
1980    // Use height if placement is left or right and index is 0 otherwise use width
1981    // in this way the first offset will use an axis and the second one
1982    // will use the other one
1983    var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
1984
1985    // Split the offset string to obtain a list of values and operands
1986    // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
1987    var fragments = offset.split(/(\+|\-)/).map(function (frag) {
1988      return frag.trim();
1989    });
1990
1991    // Detect if the offset string contains a pair of values or a single one
1992    // they could be separated by comma or space
1993    var divider = fragments.indexOf(find(fragments, function (frag) {
1994      return frag.search(/,|\s/) !== -1;
1995    }));
1996
1997    if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
1998      console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
1999    }
2000
2001    // If divider is found, we divide the list of values and operands to divide
2002    // them by ofset X and Y.
2003    var splitRegex = /\s*,\s*|\s+/;
2004    var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
2005
2006    // Convert the values with units to absolute pixels to allow our computations
2007    ops = ops.map(function (op, index) {
2008      // Most of the units rely on the orientation of the popper
2009      var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
2010      var mergeWithPrevious = false;
2011      return op
2012      // This aggregates any `+` or `-` sign that aren't considered operators
2013      // e.g.: 10 + +5 => [10, +, +5]
2014      .reduce(function (a, b) {
2015        if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
2016          a[a.length - 1] = b;
2017          mergeWithPrevious = true;
2018          return a;
2019        } else if (mergeWithPrevious) {
2020          a[a.length - 1] += b;
2021          mergeWithPrevious = false;
2022          return a;
2023        } else {
2024          return a.concat(b);
2025        }
2026      }, [])
2027      // Here we convert the string values into number values (in px)
2028      .map(function (str) {
2029        return toValue(str, measurement, popperOffsets, referenceOffsets);
2030      });
2031    });
2032
2033    // Loop trough the offsets arrays and execute the operations
2034    ops.forEach(function (op, index) {
2035      op.forEach(function (frag, index2) {
2036        if (isNumeric(frag)) {
2037          offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
2038        }
2039      });
2040    });
2041    return offsets;
2042  }
2043
2044  /**
2045   * @function
2046   * @memberof Modifiers
2047   * @argument {Object} data - The data object generated by update method
2048   * @argument {Object} options - Modifiers configuration and options
2049   * @argument {Number|String} options.offset=0
2050   * The offset value as described in the modifier description
2051   * @returns {Object} The data object, properly modified
2052   */
2053  function offset(data, _ref) {
2054    var offset = _ref.offset;
2055    var placement = data.placement,
2056        _data$offsets = data.offsets,
2057        popper = _data$offsets.popper,
2058        reference = _data$offsets.reference;
2059
2060    var basePlacement = placement.split('-')[0];
2061
2062    var offsets = void 0;
2063    if (isNumeric(+offset)) {
2064      offsets = [+offset, 0];
2065    } else {
2066      offsets = parseOffset(offset, popper, reference, basePlacement);
2067    }
2068
2069    if (basePlacement === 'left') {
2070      popper.top += offsets[0];
2071      popper.left -= offsets[1];
2072    } else if (basePlacement === 'right') {
2073      popper.top += offsets[0];
2074      popper.left += offsets[1];
2075    } else if (basePlacement === 'top') {
2076      popper.left += offsets[0];
2077      popper.top -= offsets[1];
2078    } else if (basePlacement === 'bottom') {
2079      popper.left += offsets[0];
2080      popper.top += offsets[1];
2081    }
2082
2083    data.popper = popper;
2084    return data;
2085  }
2086
2087  /**
2088   * @function
2089   * @memberof Modifiers
2090   * @argument {Object} data - The data object generated by `update` method
2091   * @argument {Object} options - Modifiers configuration and options
2092   * @returns {Object} The data object, properly modified
2093   */
2094  function preventOverflow(data, options) {
2095    var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
2096
2097    // If offsetParent is the reference element, we really want to
2098    // go one step up and use the next offsetParent as reference to
2099    // avoid to make this modifier completely useless and look like broken
2100    if (data.instance.reference === boundariesElement) {
2101      boundariesElement = getOffsetParent(boundariesElement);
2102    }
2103
2104    // NOTE: DOM access here
2105    // resets the popper's position so that the document size can be calculated excluding
2106    // the size of the popper element itself
2107    var transformProp = getSupportedPropertyName('transform');
2108    var popperStyles = data.instance.popper.style; // assignment to help minification
2109    var top = popperStyles.top,
2110        left = popperStyles.left,
2111        transform = popperStyles[transformProp];
2112
2113    popperStyles.top = '';
2114    popperStyles.left = '';
2115    popperStyles[transformProp] = '';
2116
2117    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
2118
2119    // NOTE: DOM access here
2120    // restores the original style properties after the offsets have been computed
2121    popperStyles.top = top;
2122    popperStyles.left = left;
2123    popperStyles[transformProp] = transform;
2124
2125    options.boundaries = boundaries;
2126
2127    var order = options.priority;
2128    var popper = data.offsets.popper;
2129
2130    var check = {
2131      primary: function primary(placement) {
2132        var value = popper[placement];
2133        if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
2134          value = Math.max(popper[placement], boundaries[placement]);
2135        }
2136        return defineProperty({}, placement, value);
2137      },
2138      secondary: function secondary(placement) {
2139        var mainSide = placement === 'right' ? 'left' : 'top';
2140        var value = popper[mainSide];
2141        if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
2142          value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
2143        }
2144        return defineProperty({}, mainSide, value);
2145      }
2146    };
2147
2148    order.forEach(function (placement) {
2149      var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
2150      popper = _extends$1({}, popper, check[side](placement));
2151    });
2152
2153    data.offsets.popper = popper;
2154
2155    return data;
2156  }
2157
2158  /**
2159   * @function
2160   * @memberof Modifiers
2161   * @argument {Object} data - The data object generated by `update` method
2162   * @argument {Object} options - Modifiers configuration and options
2163   * @returns {Object} The data object, properly modified
2164   */
2165  function shift(data) {
2166    var placement = data.placement;
2167    var basePlacement = placement.split('-')[0];
2168    var shiftvariation = placement.split('-')[1];
2169
2170    // if shift shiftvariation is specified, run the modifier
2171    if (shiftvariation) {
2172      var _data$offsets = data.offsets,
2173          reference = _data$offsets.reference,
2174          popper = _data$offsets.popper;
2175
2176      var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
2177      var side = isVertical ? 'left' : 'top';
2178      var measurement = isVertical ? 'width' : 'height';
2179
2180      var shiftOffsets = {
2181        start: defineProperty({}, side, reference[side]),
2182        end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
2183      };
2184
2185      data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);
2186    }
2187
2188    return data;
2189  }
2190
2191  /**
2192   * @function
2193   * @memberof Modifiers
2194   * @argument {Object} data - The data object generated by update method
2195   * @argument {Object} options - Modifiers configuration and options
2196   * @returns {Object} The data object, properly modified
2197   */
2198  function hide(data) {
2199    if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
2200      return data;
2201    }
2202
2203    var refRect = data.offsets.reference;
2204    var bound = find(data.instance.modifiers, function (modifier) {
2205      return modifier.name === 'preventOverflow';
2206    }).boundaries;
2207
2208    if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
2209      // Avoid unnecessary DOM access if visibility hasn't changed
2210      if (data.hide === true) {
2211        return data;
2212      }
2213
2214      data.hide = true;
2215      data.attributes['x-out-of-boundaries'] = '';
2216    } else {
2217      // Avoid unnecessary DOM access if visibility hasn't changed
2218      if (data.hide === false) {
2219        return data;
2220      }
2221
2222      data.hide = false;
2223      data.attributes['x-out-of-boundaries'] = false;
2224    }
2225
2226    return data;
2227  }
2228
2229  /**
2230   * @function
2231   * @memberof Modifiers
2232   * @argument {Object} data - The data object generated by `update` method
2233   * @argument {Object} options - Modifiers configuration and options
2234   * @returns {Object} The data object, properly modified
2235   */
2236  function inner(data) {
2237    var placement = data.placement;
2238    var basePlacement = placement.split('-')[0];
2239    var _data$offsets = data.offsets,
2240        popper = _data$offsets.popper,
2241        reference = _data$offsets.reference;
2242
2243    var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
2244
2245    var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
2246
2247    popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
2248
2249    data.placement = getOppositePlacement(placement);
2250    data.offsets.popper = getClientRect(popper);
2251
2252    return data;
2253  }
2254
2255  /**
2256   * Modifier function, each modifier can have a function of this type assigned
2257   * to its `fn` property.<br />
2258   * These functions will be called on each update, this means that you must
2259   * make sure they are performant enough to avoid performance bottlenecks.
2260   *
2261   * @function ModifierFn
2262   * @argument {dataObject} data - The data object generated by `update` method
2263   * @argument {Object} options - Modifiers configuration and options
2264   * @returns {dataObject} The data object, properly modified
2265   */
2266
2267  /**
2268   * Modifiers are plugins used to alter the behavior of your poppers.<br />
2269   * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
2270   * needed by the library.
2271   *
2272   * Usually you don't want to override the `order`, `fn` and `onLoad` props.
2273   * All the other properties are configurations that could be tweaked.
2274   * @namespace modifiers
2275   */
2276  var modifiers = {
2277    /**
2278     * Modifier used to shift the popper on the start or end of its reference
2279     * element.<br />
2280     * It will read the variation of the `placement` property.<br />
2281     * It can be one either `-end` or `-start`.
2282     * @memberof modifiers
2283     * @inner
2284     */
2285    shift: {
2286      /** @prop {number} order=100 - Index used to define the order of execution */
2287      order: 100,
2288      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2289      enabled: true,
2290      /** @prop {ModifierFn} */
2291      fn: shift
2292    },
2293
2294    /**
2295     * The `offset` modifier can shift your popper on both its axis.
2296     *
2297     * It accepts the following units:
2298     * - `px` or unit-less, interpreted as pixels
2299     * - `%` or `%r`, percentage relative to the length of the reference element
2300     * - `%p`, percentage relative to the length of the popper element
2301     * - `vw`, CSS viewport width unit
2302     * - `vh`, CSS viewport height unit
2303     *
2304     * For length is intended the main axis relative to the placement of the popper.<br />
2305     * This means that if the placement is `top` or `bottom`, the length will be the
2306     * `width`. In case of `left` or `right`, it will be the `height`.
2307     *
2308     * You can provide a single value (as `Number` or `String`), or a pair of values
2309     * as `String` divided by a comma or one (or more) white space
2309s.<br />
2310     * The latter is a deprecated method because it leads to confusion and will be
2311     * removed in v2.<br />
2312     * Additionally, it accepts additions and subtractions between different units.
2313     * Note that multiplications and divisions aren't supported.
2314     *
2315     * Valid examples are:
2316     * ```
2317     * 10
2318     * '10%'
2319     * '10, 10'
2320     * '10%, 10'
2321     * '10 + 10%'
2322     * '10 - 5vh + 3%'
2323     * '-10px + 5vh, 5px - 6%'
2324     * ```
2325     * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
2326     * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
2327     * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
2328     *
2329     * @memberof modifiers
2330     * @inner
2331     */
2332    offset: {
2333      /** @prop {number} order=200 - Index used to define the order of execution */
2334      order: 200,
2335      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2336      enabled: true,
2337      /** @prop {ModifierFn} */
2338      fn: offset,
2339      /** @prop {Number|String} offset=0
2340       * The offset value as described in the modifier description
2341       */
2342      offset: 0
2343    },
2344
2345    /**
2346     * Modifier used to prevent the popper from being positioned outside the boundary.
2347     *
2348     * A scenario exists where the reference itself is not within the boundaries.<br />
2349     * We can say it has "escaped the boundaries" — or just "escaped".<br />
2350     * In this case we need to decide whether the popper should either:
2351     *
2352     * - detach from the reference and remain "trapped" in the boundaries, or
2353     * - if it should ignore the boundary and "escape with its reference"
2354     *
2355     * When `escapeWithReference` is set to`true` and reference is completely
2356     * outside its boundaries, the popper will overflow (or completely leave)
2357     * the boundaries in order to remain attached to the edge of the reference.
2358     *
2359     * @memberof modifiers
2360     * @inner
2361     */
2362    preventOverflow: {
2363      /** @prop {number} order=300 - Index used to define the order of execution */
2364      order: 300,
2365      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2366      enabled: true,
2367      /** @prop {ModifierFn} */
2368      fn: preventOverflow,
2369      /**
2370       * @prop {Array} [priority=['left','right','top','bottom']]
2371       * Popper will try to prevent overflow following these priorities by default,
2372       * then, it could overflow on the left and on top of the `boundariesElement`
2373       */
2374      priority: ['left', 'right', 'top', 'bottom'],
2375      /**
2376       * @prop {number} padding=5
2377       * Amount of pixel used to define a minimum distance between the boundaries
2378       * and the popper. This makes sure the popper always has a little padding
2379       * between the edges of its container
2380       */
2381      padding: 5,
2382      /**
2383       * @prop {String|HTMLElement} boundariesElement='scrollParent'
2384       * Boundaries used by the modifier. Can be `scrollParent`, `window`,
2385       * `viewport` or any DOM element.
2386       */
2387      boundariesElement: 'scrollParent'
2388    },
2389
2390    /**
2391     * Modifier used to make sure the reference and its popper stay near each other
2392     * without leaving any gap between the two. Especially useful when the arrow is
2393     * enabled and you want to ensure that it points to its reference element.
2394     * It cares only about the first axis. You can still have poppers with margin
2395     * between the popper and its reference element.
2396     * @memberof modifiers
2397     * @inner
2398     */
2399    keepTogether: {
2400      /** @prop {number} order=400 - Index used to define the order of execution */
2401      order: 400,
2402      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2403      enabled: true,
2404      /** @prop {ModifierFn} */
2405      fn: keepTogether
2406    },
2407
2408    /**
2409     * This modifier is used to move the `arrowElement` of the popper to make
2410     * sure it is positioned between the reference element and its popper element.
2411     * It will read the outer size of the `arrowElement` node to detect how many
2412     * pixels of conjunction are needed.
2413     *
2414     * It has no effect if no `arrowElement` is provided.
2415     * @memberof modifiers
2416     * @inner
2417     */
2418    arrow: {
2419      /** @prop {number} order=500 - Index used to define the order of execution */
2420      order: 500,
2421      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2422      enabled: true,
2423      /** @prop {ModifierFn} */
2424      fn: arrow,
2425      /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
2426      element: '[x-arrow]'
2427    },
2428
2429    /**
2430     * Modifier used to flip the popper's placement when it starts to overlap its
2431     * reference element.
2432     *
2433     * Requires the `preventOverflow` modifier before it in order to work.
2434     *
2435     * **NOTE:** this modifier will interrupt the current update cycle and will
2436     * restart it if it detects the need to flip the placement.
2437     * @memberof modifiers
2438     * @inner
2439     */
2440    flip: {
2441      /** @prop {number} order=600 - Index used to define the order of execution */
2442      order: 600,
2443      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2444      enabled: true,
2445      /** @prop {ModifierFn} */
2446      fn: flip,
2447      /**
2448       * @prop {String|Array} behavior='flip'
2449       * The behavior used to change the popper's placement. It can be one of
2450       * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
2451       * placements (with optional variations)
2452       */
2453      behavior: 'flip',
2454      /**
2455       * @prop {number} padding=5
2456       * The popper will flip if it hits the edges of the `boundariesElement`
2457       */
2458      padding: 5,
2459      /**
2460       * @prop {String|HTMLElement} boundariesElement='viewport'
2461       * The element which will define the boundaries of the popper position.
2462       * The popper will never be placed outside of the defined boundaries
2463       * (except if `keepTogether` is enabled)
2464       */
2465      boundariesElement: 'viewport',
2466      /**
2467       * @prop {Boolean} flipVariations=false
2468       * The popper will switch placement variation between `-start` and `-end` when
2469       * the reference element overlaps its boundaries.
2470       *
2471       * The original placement should have a set variation.
2472       */
2473      flipVariations: false,
2474      /**
2475       * @prop {Boolean} flipVariationsByContent=false
2476       * The popper will switch placement variation between `-start` and `-end` when
2477       * the popper element overlaps its reference boundaries.
2478       *
2479       * The original placement should have a set variation.
2480       */
2481      flipVariationsByContent: false
2482    },
2483
2484    /**
2485     * Modifier used to make the popper flow toward the inner of the reference element.
2486     * By default, when this modifier is disabled, the popper will be placed outside
2487     * the reference element.
2488     * @memberof modifiers
2489     * @inner
2490     */
2491    inner: {
2492      /** @prop {number} order=700 - Index used to define the order of execution */
2493      order: 700,
2494      /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
2495      enabled: false,
2496      /** @prop {ModifierFn} */
2497      fn: inner
2498    },
2499
2500    /**
2501     * Modifier used to hide the popper when its reference element is outside of the
2502     * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
2503     * be used to hide with a CSS selector the popper when its reference is
2504     * out of boundaries.
2505     *
2506     * Requires the `preventOverflow` modifier before it in order to work.
2507     * @memberof modifiers
2508     * @inner
2509     */
2510    hide: {
2511      /** @prop {number} order=800 - Index used to define the order of execution */
2512      order: 800,
2513      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2514      enabled: true,
2515      /** @prop {ModifierFn} */
2516      fn: hide
2517    },
2518
2519    /**
2520     * Computes the style that will be applied to the popper element to gets
2521     * properly positioned.
2522     *
2523     * Note that this modifier will not touch the DOM, it just prepares the styles
2524     * so that `applyStyle` modifier can apply it. This separation is useful
2525     * in case you need to replace `applyStyle` with a custom implementation.
2526     *
2527     * This modifier has `850` as `order` value to maintain backward compatibility
2528     * with previous versions of Popper.js. Expect the modifiers ordering method
2529     * to change in future major versions of the library.
2530     *
2531     * @memberof modifiers
2532     * @inner
2533     */
2534    computeStyle: {
2535      /** @prop {number} order=850 - Index used to define the order of execution */
2536      order: 850,
2537      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2538      enabled: true,
2539      /** @prop {ModifierFn} */
2540      fn: computeStyle,
2541      /**
2542       * @prop {Boolean} gpuAcceleration=true
2543       * If true, it uses the CSS 3D transformation to position the popper.
2544       * Otherwise, it will use the `top` and `left` properties
2545       */
2546      gpuAcceleration: true,
2547      /**
2548       * @prop {string} [x='bottom']
2549       * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
2550       * Change this if your popper should grow in a direction different from `bottom`
2551       */
2552      x: 'bottom',
2553      /**
2554       * @prop {string} [x='left']
2555       * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
2556       * Change this if your popper should grow in a direction different from `right`
2557       */
2558      y: 'right'
2559    },
2560
2561    /**
2562     * Applies the computed styles to the popper element.
2563     *
2564     * All the DOM manipulations are limited to this modifier. This is useful in case
2565     * you want to integrate Popper.js inside a framework or view library and you
2566     * want to delegate all the DOM manipulations to it.
2567     *
2568     * Note that if you disable this modifier, you must make sure the popper element
2569     * has its position set to `absolute` before Popper.js can do its work!
2570     *
2571     * Just disable this modifier and define your own to achieve the desired effect.
2572     *
2573     * @memberof modifiers
2574     * @inner
2575     */
2576    applyStyle: {
2577      /** @prop {number} order=900 - Index used to define the order of execution */
2578      order: 900,
2579      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2580      enabled: true,
2581      /** @prop {ModifierFn} */
vendor: 5,215 bytes, lines 2582-2720
2582      fn: applyStyle,
2583      /** @prop {Function} */
2584      onLoad: applyStyleOnLoad,
2585      /**
2586       * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
2587       * @prop {Boolean} gpuAcceleration=true
2588       * If true, it uses the CSS 3D transformation to position the popper.
2589       * Otherwise, it will use the `top` and `left` properties
2590       */
2591      gpuAcceleration: undefined
2592    }
2593  };
2594
2595  /**
2596   * The `dataObject` is an object containing all the information used by Popper.js.
2597   * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
2598   * @name dataObject
2599   * @property {Object} data.instance The Popper.js instance
2600   * @property {String} data.placement Placement applied to popper
2601   * @property {String} data.originalPlacement Placement originally defined on init
2602   * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
2603   * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
2604   * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
2605   * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
2606   * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
2607   * @property {Object} data.boundaries Offsets of the popper boundaries
2608   * @property {Object} data.offsets The measurements of popper, reference and arrow elements
2609   * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
2610   * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
2611   * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
2612   */
2613
2614  /**
2615   * Default options provided to Popper.js constructor.<br />
2616   * These can be overridden using the `options` argument of Popper.js.<br />
2617   * To override an option, simply pass an object with the same
2618   * structure of the `options` object, as the 3rd argument. For example:
2619   * ```
2620   * new Popper(ref, pop, {
2621   *   modifiers: {
2622   *     preventOverflow: { enabled: false }
2623   *   }
2624   * })
2625   * ```
2626   * @type {Object}
2627   * @static
2628   * @memberof Popper
2629   */
2630  var Defaults = {
2631    /**
2632     * Popper's placement.
2633     * @prop {Popper.placements} placement='bottom'
2634     */
2635    placement: 'bottom',
2636
2637    /**
2638     * Set this to true if you want popper to position it self in 'fixed' mode
2639     * @prop {Boolean} positionFixed=false
2640     */
2641    positionFixed: false,
2642
2643    /**
2644     * Whether events (resize, scroll) are initially enabled.
2645     * @prop {Boolean} eventsEnabled=true
2646     */
2647    eventsEnabled: true,
2648
2649    /**
2650     * Set to true if you want to automatically remove the popper when
2651     * you call the `destroy` method.
2652     * @prop {Boolean} removeOnDestroy=false
2653     */
2654    removeOnDestroy: false,
2655
2656    /**
2657     * Callback called when the popper is created.<br />
2658     * By default, it is set to no-op.<br />
2659     * Access Popper.js instance with `data.instance`.
2660     * @prop {onCreate}
2661     */
2662    onCreate: function onCreate() {},
2663
2664    /**
2665     * Callback called when the popper is updated. This callback is not called
2666     * on the initialization/creation of the popper, but only on subsequent
2667     * updates.<br />
2668     * By default, it is set to no-op.<br />
2669     * Access Popper.js instance with `data.instance`.
2670     * @prop {onUpdate}
2671     */
2672    onUpdate: function onUpdate() {},
2673
2674    /**
2675     * List of modifiers used to modify the offsets before they are applied to the popper.
2676     * They provide most of the functionalities of Popper.js.
2677     * @prop {modifiers}
2678     */
2679    modifiers: modifiers
2680  };
2681
2682  /**
2683   * @callback onCreate
2684   * @param {dataObject} data
2685   */
2686
2687  /**
2688   * @callback onUpdate
2689   * @param {dataObject} data
2690   */
2691
2692  // Utils
2693  // Methods
2694  var Popper = function () {
2695    /**
2696     * Creates a new Popper.js instance.
2697     * @class Popper
2698     * @param {Element|referenceObject} reference - The reference element used to position the popper
2699     * @param {Element} popper - The HTML / XML element used as the popper
2700     * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
2701     * @return {Object} instance - The generated Popper.js instance
2702     */
2703    function Popper(reference, popper) {
2704      var _this = this;
2705
2706      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
2707      classCallCheck(this, Popper);
2708
2709      this.scheduleUpdate = function () {
2710        return requestAnimationFrame(_this.update);
2711      };
2712
2713      // make update() debounced, so that it only runs at most once-per-tick
2714      this.update = debounce(this.update.bind(this));
2715
2716      // with {} we create a new object with the options inside it
2717      this.options = _extends$1({}, Popper.Defaults, options);
2718
2719      // init state
2720      this.state = {
vendor: 18,066 bytes, lines 2721-3246
2721        isDestroyed: false,
2722        isCreated: false,
2723        scrollParents: []
2724      };
2725
2726      // get reference and popper elements (allow jQuery wrappers)
2727      this.reference = reference && reference.jquery ? reference[0] : reference;
2728      this.popper = popper && popper.jquery ? popper[0] : popper;
2729
2730      // Deep merge modifiers options
2731      this.options.modifiers = {};
2732      Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
2733        _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
2734      });
2735
2736      // Refactoring modifiers' list (Object => Array)
2737      this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
2738        return _extends$1({
2739          name: name
2740        }, _this.options.modifiers[name]);
2741      })
2742      // sort the modifiers by order
2743      .sort(function (a, b) {
2744        return a.order - b.order;
2745      });
2746
2747      // modifiers have the ability to execute arbitrary code when Popper.js get inited
2748      // such code is executed in the same order of its modifier
2749      // they could add new properties to their options configuration
2750      // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
2751      this.modifiers.forEach(function (modifierOptions) {
2752        if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
2753          modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
2754        }
2755      });
2756
2757      // fire the first update to position the popper in the right place
2758      this.update();
2759
2760      var eventsEnabled = this.options.eventsEnabled;
2761      if (eventsEnabled) {
2762        // setup event listeners, they will take care of update the position in specific situations
2763        this.enableEventListeners();
2764      }
2765
2766      this.state.eventsEnabled = eventsEnabled;
2767    }
2768
2769    // We can't use class properties because they don't get listed in the
2770    // class prototype and break stuff like Sinon stubs
2771
2772
2773    createClass(Popper, [{
2774      key: 'update',
2775      value: function update$$1() {
2776        return update.call(this);
2777      }
2778    }, {
2779      key: 'destroy',
2780      value: function destroy$$1() {
2781        return destroy.call(this);
2782      }
2783    }, {
2784      key: 'enableEventListeners',
2785      value: function enableEventListeners$$1() {
2786        return enableEventListeners.call(this);
2787      }
2788    }, {
2789      key: 'disableEventListeners',
2790      value: function disableEventListeners$$1() {
2791        return disableEventListeners.call(this);
2792      }
2793
2794      /**
2795       * Schedules an update. It will run on the next UI update available.
2796       * @method scheduleUpdate
2797       * @memberof Popper
2798       */
2799
2800
2801      /**
2802       * Collection of utilities useful when writing custom modifiers.
2803       * Starting from version 1.7, this method is available only if you
2804       * include `popper-utils.js` before `popper.js`.
2805       *
2806       * **DEPRECATION**: This way to access PopperUtils is deprecated
2807       * and will be removed in v2! Use the PopperUtils module directly instead.
2808       * Due to the high instability of the methods contained in Utils, we can't
2809       * guarantee them to follow semver. Use them at your own risk!
2810       * @static
2811       * @private
2812       * @type {Object}
2813       * @deprecated since version 1.8
2814       * @member Utils
2815       * @memberof Popper
2816       */
2817
2818    }]);
2819    return Popper;
2820  }();
2821
2822  /**
2823   * The `referenceObject` is an object that provides an interface compatible with Popper.js
2824   * and lets you use it as replacement of a real DOM node.<br />
2825   * You can use this method to position a popper relatively to a set of coordinates
2826   * in case you don't have a DOM node to use as reference.
2827   *
2828   * ```
2829   * new Popper(referenceObject, popperNode);
2830   * ```
2831   *
2832   * NB: This feature isn't supported in Internet Explorer 10.
2833   * @name referenceObject
2834   * @property {Function} data.getBoundingClientRect
2835   * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
2836   * @property {number} data.clientWidth
2837   * An ES6 getter that will return the width of the virtual reference element.
2838   * @property {number} data.clientHeight
2839   * An ES6 getter that will return the height of the virtual reference element.
2840   */
2841
2842
2843  Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
2844  Popper.placements = placements;
2845  Popper.Defaults = Defaults;
2846
2847  /**
2848   * ------------------------------------------------------------------------
2849   * Constants
2850   * ------------------------------------------------------------------------
2851   */
2852
2853  var NAME = 'alert';
2854  var VERSION = '4.6.0';
2855  var DATA_KEY = 'bs.alert';
2856  var EVENT_KEY = "." + DATA_KEY;
2857  var DATA_API_KEY = '.data-api';
2858  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
2859  var SELECTOR_DISMISS = '[data-dismiss="alert"]';
2860  var EVENT_CLOSE = "close" + EVENT_KEY;
2861  var EVENT_CLOSED = "closed" + EVENT_KEY;
2862  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
2863  var CLASS_NAME_ALERT = 'alert';
2864  var CLASS_NAME_FADE = 'fade';
2865  var CLASS_NAME_SHOW = 'show';
2866  /**
2867   * ------------------------------------------------------------------------
2868   * Class Definition
2869   * ------------------------------------------------------------------------
2870   */
2871
2872  var Alert = /*#__PURE__*/function () {
2873    function Alert(element) {
2874      this._element = element;
2875    } // Getters
2876
2877
2878    var _proto = Alert.prototype;
2879
2880    // Public
2881    _proto.close = function close(element) {
2882      var rootElement = this._element;
2883
2884      if (element) {
2885        rootElement = this._getRootElement(element);
2886      }
2887
2888      var customEvent = this._triggerCloseEvent(rootElement);
2889
2890      if (customEvent.isDefaultPrevented()) {
2891        return;
2892      }
2893
2894      this._removeElement(rootElement);
2895    };
2896
2897    _proto.dispose = function dispose() {
2898      $__default['default'].removeData(this._element, DATA_KEY);
2899      this._element = null;
2900    } // Private
2901    ;
2902
2903    _proto._getRootElement = function _getRootElement(element) {
2904      var selector = Util.getSelectorFromElement(element);
2905      var parent = false;
2906
2907      if (selector) {
2908        parent = document.querySelector(selector);
2909      }
2910
2911      if (!parent) {
2912        parent = $__default['default'](element).closest("." + CLASS_NAME_ALERT)[0];
2913      }
2914
2915      return parent;
2916    };
2917
2918    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
2919      var closeEvent = $__default['default'].Event(EVENT_CLOSE);
2920      $__default['default'](element).trigger(closeEvent);
2921      return closeEvent;
2922    };
2923
2924    _proto._removeElement = function _removeElement(element) {
2925      var _this = this;
2926
2927      $__default['default'](element).removeClass(CLASS_NAME_SHOW);
2928
2929      if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {
2930        this._destroyElement(element);
2931
2932        return;
2933      }
2934
2935      var transitionDuration = Util.getTransitionDurationFromElement(element);
2936      $__default['default'](element).one(Util.TRANSITION_END, function (event) {
2937        return _this._destroyElement(element, event);
2938      }).emulateTransitionEnd(transitionDuration);
2939    };
2940
2941    _proto._destroyElement = function _destroyElement(element) {
2942      $__default['default'](element).detach().trigger(EVENT_CLOSED).remove();
2943    } // Static
2944    ;
2945
2946    Alert._jQueryInterface = function _jQueryInterface(config) {
2947      return this.each(function () {
2948        var $element = $__default['default'](this);
2949        var data = $element.data(DATA_KEY);
2950
2951        if (!data) {
2952          data = new Alert(this);
2953          $element.data(DATA_KEY, data);
2954        }
2955
2956        if (config === 'close') {
2957          data[config](this);
2958        }
2959      });
2960    };
2961
2962    Alert._handleDismiss = function _handleDismiss(alertInstance) {
2963      return function (event) {
2964        if (event) {
2965          event.preventDefault();
2966        }
2967
2968        alertInstance.close(this);
2969      };
2970    };
2971
2972    _createClass(Alert, null, [{
2973      key: "VERSION",
2974      get: function get() {
2975        return VERSION;
2976      }
2977    }]);
2978
2979    return Alert;
2980  }();
2981  /**
2982   * ------------------------------------------------------------------------
2983   * Data Api implementation
2984   * ------------------------------------------------------------------------
2985   */
2986
2987
2988  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
2989  /**
2990   * ------------------------------------------------------------------------
2991   * jQuery
2992   * ------------------------------------------------------------------------
2993   */
2994
2995  $__default['default'].fn[NAME] = Alert._jQueryInterface;
2996  $__default['default'].fn[NAME].Constructor = Alert;
2997
2998  $__default['default'].fn[NAME].noConflict = function () {
2999    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
3000    return Alert._jQueryInterface;
3001  };
3002
3003  /**
3004   * ------------------------------------------------------------------------
3005   * Constants
3006   * ------------------------------------------------------------------------
3007   */
3008
3009  var NAME$1 = 'button';
3010  var VERSION$1 = '4.6.0';
3011  var DATA_KEY$1 = 'bs.button';
3012  var EVENT_KEY$1 = "." + DATA_KEY$1;
3013  var DATA_API_KEY$1 = '.data-api';
3014  var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];
3015  var CLASS_NAME_ACTIVE = 'active';
3016  var CLASS_NAME_BUTTON = 'btn';
3017  var CLASS_NAME_FOCUS = 'focus';
3018  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
3019  var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
3020  var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
3021  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
3022  var SELECTOR_INPUT = 'input:not([type="hidden"])';
3023  var SELECTOR_ACTIVE = '.active';
3024  var SELECTOR_BUTTON = '.btn';
3025  var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1;
3026  var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY$1 + DATA_API_KEY$1 + " " + ("blur" + EVENT_KEY$1 + DATA_API_KEY$1);
3027  var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$1 + DATA_API_KEY$1;
3028  /**
3029   * ------------------------------------------------------------------------
3030   * Class Definition
3031   * ------------------------------------------------------------------------
3032   */
3033
3034  var Button = /*#__PURE__*/function () {
3035    function Button(element) {
3036      this._element = element;
3037      this.shouldAvoidTriggerChange = false;
3038    } // Getters
3039
3040
3041    var _proto = Button.prototype;
3042
3043    // Public
3044    _proto.toggle = function toggle() {
3045      var triggerChangeEvent = true;
3046      var addAriaPressed = true;
3047      var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];
3048
3049      if (rootElement) {
3050        var input = this._element.querySelector(SELECTOR_INPUT);
3051
3052        if (input) {
3053          if (input.type === 'radio') {
3054            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
3055              triggerChangeEvent = false;
3056            } else {
3057              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);
3058
3059              if (activeElement) {
3060                $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);
3061              }
3062            }
3063          }
3064
3065          if (triggerChangeEvent) {
3066            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
3067            if (input.type === 'checkbox' || input.type === 'radio') {
3068              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
3069            }
3070
3071            if (!this.shouldAvoidTriggerChange) {
3072              $__default['default'](input).trigger('change');
3073            }
3074          }
3075
3076          input.focus();
3077          addAriaPressed = false;
3078        }
3079      }
3080
3081      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
3082        if (addAriaPressed) {
3083          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));
3084        }
3085
3086        if (triggerChangeEvent) {
3087          $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);
3088        }
3089      }
3090    };
3091
3092    _proto.dispose = function dispose() {
3093      $__default['default'].removeData(this._element, DATA_KEY$1);
3094      this._element = null;
3095    } // Static
3096    ;
3097
3098    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {
3099      return this.each(function () {
3100        var $element = $__default['default'](this);
3101        var data = $element.data(DATA_KEY$1);
3102
3103        if (!data) {
3104          data = new Button(this);
3105          $element.data(DATA_KEY$1, data);
3106        }
3107
3108        data.shouldAvoidTriggerChange = avoidTriggerChange;
3109
3110        if (config === 'toggle') {
3111          data[config]();
3112        }
3113      });
3114    };
3115
3116    _createClass(Button, null, [{
3117      key: "VERSION",
3118      get: function get() {
3119        return VERSION$1;
3120      }
3121    }]);
3122
3123    return Button;
3124  }();
3125  /**
3126   * ------------------------------------------------------------------------
3127   * Data Api implementation
3128   * ------------------------------------------------------------------------
3129   */
3130
3131
3132  $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
3133    var button = event.target;
3134    var initialButton = button;
3135
3136    if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {
3137      button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];
3138    }
3139
3140    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {
3141      event.preventDefault(); // work around Firefox bug #1540995
3142    } else {
3143      var inputBtn = button.querySelector(SELECTOR_INPUT);
3144
3145      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
3146        event.preventDefault(); // work around Firefox bug #1540995
3147
3148        return;
3149      }
3150
3151      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {
3152        Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');
3153      }
3154    }
3155  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
3156    var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];
3157    $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
3158  });
3159  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {
3160    // ensure correct active class is set to match the controls' actual values/states
3161    // find all checkboxes/readio buttons inside data-toggle groups
3162    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
3163
3164    for (var i = 0, len = buttons.length; i < len; i++) {
3165      var button = buttons[i];
3166      var input = button.querySelector(SELECTOR_INPUT);
3167
3168      if (input.checked || input.hasAttribute('checked')) {
3169        button.classList.add(CLASS_NAME_ACTIVE);
3170      } else {
3171        button.classList.remove(CLASS_NAME_ACTIVE);
3172      }
3173    } // find all button toggles
3174
3175
3176    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
3177
3178    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {
3179      var _button = buttons[_i];
3180
3181      if (_button.getAttribute('aria-pressed') === 'true') {
3182        _button.classList.add(CLASS_NAME_ACTIVE);
3183      } else {
3184        _button.classList.remove(CLASS_NAME_ACTIVE);
3185      }
3186    }
3187  });
3188  /**
3189   * ------------------------------------------------------------------------
3190   * jQuery
3191   * ------------------------------------------------------------------------
3192   */
3193
3194  $__default['default'].fn[NAME$1] = Button._jQueryInterface;
3195  $__default['default'].fn[NAME$1].Constructor = Button;
3196
3197  $__default['default'].fn[NAME$1].noConflict = function () {
3198    $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;
3199    return Button._jQueryInterface;
3200  };
3201
3202  /**
3203   * ------------------------------------------------------------------------
3204   * Constants
3205   * ------------------------------------------------------------------------
3206   */
3207
3208  var NAME$3 = 'collapse';
3209  var VERSION$3 = '4.6.0';
3210  var DATA_KEY$3 = 'bs.collapse';
3211  var EVENT_KEY$3 = "." + DATA_KEY$3;
3212  var DATA_API_KEY$3 = '.data-api';
3213  var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];
3214  var Default$1 = {
3215    toggle: true,
3216    parent: ''
3217  };
3218  var DefaultType$1 = {
3219    toggle: 'boolean',
3220    parent: '(string|element)'
3221  };
3222  var EVENT_SHOW = "show" + EVENT_KEY$3;
3223  var EVENT_SHOWN = "shown" + EVENT_KEY$3;
3224  var EVENT_HIDE = "hide" + EVENT_KEY$3;
3225  var EVENT_HIDDEN = "hidden" + EVENT_KEY$3;
3226  var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3;
3227  var CLASS_NAME_SHOW$1 = 'show';
3228  var CLASS_NAME_COLLAPSE = 'collapse';
3229  var CLASS_NAME_COLLAPSING = 'collapsing';
3230  var CLASS_NAME_COLLAPSED = 'collapsed';
3231  var DIMENSION_WIDTH = 'width';
3232  var DIMENSION_HEIGHT = 'height';
3233  var SELECTOR_ACTIVES = '.show, .collapsing';
3234  var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="collapse"]';
3235  /**
3236   * ------------------------------------------------------------------------
3237   * Class Definition
3238   * ------------------------------------------------------------------------
3239   */
3240
3241  var Collapse = /*#__PURE__*/function () {
3242    function Collapse(element, config) {
3243      this._isTransitioning = false;
3244      this._element = element;
3245      this._config = this._getConfig(config);
3246      this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.i
vendor: 7,290 bytes, lines 3246-3454
3246d + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
3247      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));
3248
3249      for (var i = 0, len = toggleList.length; i < len; i++) {
3250        var elem = toggleList[i];
3251        var selector = Util.getSelectorFromElement(elem);
3252        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
3253          return foundElem === element;
3254        });
3255
3256        if (selector !== null && filterElement.length > 0) {
3257          this._selector = selector;
3258
3259          this._triggerArray.push(elem);
3260        }
3261      }
3262
3263      this._parent = this._config.parent ? this._getParent() : null;
3264
3265      if (!this._config.parent) {
3266        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
3267      }
3268
3269      if (this._config.toggle) {
3270        this.toggle();
3271      }
3272    } // Getters
3273
3274
3275    var _proto = Collapse.prototype;
3276
3277    // Public
3278    _proto.toggle = function toggle() {
3279      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {
3280        this.hide();
3281      } else {
3282        this.show();
3283      }
3284    };
3285
3286    _proto.show = function show() {
3287      var _this = this;
3288
3289      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {
3290        return;
3291      }
3292
3293      var actives;
3294      var activesData;
3295
3296      if (this._parent) {
3297        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
3298          if (typeof _this._config.parent === 'string') {
3299            return elem.getAttribute('data-parent') === _this._config.parent;
3300          }
3301
3302          return elem.classList.contains(CLASS_NAME_COLLAPSE);
3303        });
3304
3305        if (actives.length === 0) {
3306          actives = null;
3307        }
3308      }
3309
3310      if (actives) {
3311        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3);
3312
3313        if (activesData && activesData._isTransitioning) {
3314          return;
3315        }
3316      }
3317
3318      var startEvent = $__default['default'].Event(EVENT_SHOW);
3319      $__default['default'](this._element).trigger(startEvent);
3320
3321      if (startEvent.isDefaultPrevented()) {
3322        return;
3323      }
3324
3325      if (actives) {
3326        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');
3327
3328        if (!activesData) {
3329          $__default['default'](actives).data(DATA_KEY$3, null);
3330        }
3331      }
3332
3333      var dimension = this._getDimension();
3334
3335      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
3336      this._element.style[dimension] = 0;
3337
3338      if (this._triggerArray.length) {
3339        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
3340      }
3341
3342      this.setTransitioning(true);
3343
3344      var complete = function complete() {
3345        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1);
3346        _this._element.style[dimension] = '';
3347
3348        _this.setTransitioning(false);
3349
3350        $__default['default'](_this._element).trigger(EVENT_SHOWN);
3351      };
3352
3353      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
3354      var scrollSize = "scroll" + capitalizedDimension;
3355      var transitionDuration = Util.getTransitionDurationFromElement(this._element);
3356      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3357      this._element.style[dimension] = this._element[scrollSize] + "px";
3358    };
3359
3360    _proto.hide = function hide() {
3361      var _this2 = this;
3362
3363      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {
3364        return;
3365      }
3366
3367      var startEvent = $__default['default'].Event(EVENT_HIDE);
3368      $__default['default'](this._element).trigger(startEvent);
3369
3370      if (startEvent.isDefaultPrevented()) {
3371        return;
3372      }
3373
3374      var dimension = this._getDimension();
3375
3376      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
3377      Util.reflow(this._element);
3378      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1);
3379      var triggerArrayLength = this._triggerArray.length;
3380
3381      if (triggerArrayLength > 0) {
3382        for (var i = 0; i < triggerArrayLength; i++) {
3383          var trigger = this._triggerArray[i];
3384          var selector = Util.getSelectorFromElement(trigger);
3385
3386          if (selector !== null) {
3387            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));
3388
3389            if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {
3390              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
3391            }
3392          }
3393        }
3394      }
3395
3396      this.setTransitioning(true);
3397
3398      var complete = function complete() {
3399        _this2.setTransitioning(false);
3400
3401        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
3402      };
3403
3404      this._element.style[dimension] = '';
3405      var transitionDuration = Util.getTransitionDurationFromElement(this._element);
3406      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3407    };
3408
3409    _proto.setTransitioning = function setTransitioning(isTransitioning) {
3410      this._isTransitioning = isTransitioning;
3411    };
3412
3413    _proto.dispose = function dispose() {
3414      $__default['default'].removeData(this._element, DATA_KEY$3);
3415      this._config = null;
3416      this._parent = null;
3417      this._element = null;
3418      this._triggerArray = null;
3419      this._isTransitioning = null;
3420    } // Private
3421    ;
3422
3423    _proto._getConfig = function _getConfig(config) {
3424      config = _extends({}, Default$1, config);
3425      config.toggle = Boolean(config.toggle); // Coerce string values
3426
3427      Util.typeCheckConfig(NAME$3, config, DefaultType$1);
3428      return config;
3429    };
3430
3431    _proto._getDimension = function _getDimension() {
3432      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);
3433      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
3434    };
3435
3436    _proto._getParent = function _getParent() {
3437      var _this3 = this;
3438
3439      var parent;
3440
3441      if (Util.isElement(this._config.parent)) {
3442        parent = this._config.parent; // It's a jQuery object
3443
3444        if (typeof this._config.parent.jquery !== 'undefined') {
3445          parent = this._config.parent[0];
3446        }
3447      } else {
3448        parent = document.querySelector(this._config.parent);
3449      }
3450
3451      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
3452      var children = [].slice.call(parent.querySelectorAll(selector));
3453      $__default['default'](children).each(function (i, element) {
3454        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
vendor: 4,200 bytes, lines 3455-3573
3455      });
3456      return parent;
3457    };
3458
3459    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
3460      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1);
3461
3462      if (triggerArray.length) {
3463        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
3464      }
3465    } // Static
3466    ;
3467
3468    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
3469      var selector = Util.getSelectorFromElement(element);
3470      return selector ? document.querySelector(selector) : null;
3471    };
3472
3473    Collapse._jQueryInterface = function _jQueryInterface(config) {
3474      return this.each(function () {
3475        var $element = $__default['default'](this);
3476        var data = $element.data(DATA_KEY$3);
3477
3478        var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {});
3479
3480        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
3481          _config.toggle = false;
3482        }
3483
3484        if (!data) {
3485          data = new Collapse(this, _config);
3486          $element.data(DATA_KEY$3, data);
3487        }
3488
3489        if (typeof config === 'string') {
3490          if (typeof data[config] === 'undefined') {
3491            throw new TypeError("No method named \"" + config + "\"");
3492          }
3493
3494          data[config]();
3495        }
3496      });
3497    };
3498
3499    _createClass(Collapse, null, [{
3500      key: "VERSION",
3501      get: function get() {
3502        return VERSION$3;
3503      }
3504    }, {
3505      key: "Default",
3506      get: function get() {
3507        return Default$1;
3508      }
3509    }]);
3510
3511    return Collapse;
3512  }();
3513  /**
3514   * ------------------------------------------------------------------------
3515   * Data Api implementation
3516   * ------------------------------------------------------------------------
3517   */
3518
3519
3520  $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {
3521    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
3522    if (event.currentTarget.tagName === 'A') {
3523      event.preventDefault();
3524    }
3525
3526    var $trigger = $__default['default'](this);
3527    var selector = Util.getSelectorFromElement(this);
3528    var selectors = [].slice.call(document.querySelectorAll(selector));
3529    $__default['default'](selectors).each(function () {
3530      var $target = $__default['default'](this);
3531      var data = $target.data(DATA_KEY$3);
3532      var config = data ? 'toggle' : $trigger.data();
3533
3534      Collapse._jQueryInterface.call($target, config);
3535    });
3536  });
3537  /**
3538   * ------------------------------------------------------------------------
3539   * jQuery
3540   * ------------------------------------------------------------------------
3541   */
3542
3543  $__default['default'].fn[NAME$3] = Collapse._jQueryInterface;
3544  $__default['default'].fn[NAME$3].Constructor = Collapse;
3545
3546  $__default['default'].fn[NAME$3].noConflict = function () {
3547    $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;
3548    return Collapse._jQueryInterface;
3549  };
3550  /**
3551   * ------------------------------------------------------------------------
3552   * Constants
3553   * ------------------------------------------------------------------------
3554   */
3555  var NAME$4 = 'dropdown';
3556  var VERSION$4 = '4.6.0';
3557  var DATA_KEY$4 = 'bs.dropdown';
3558  var EVENT_KEY$4 = "." + DATA_KEY$4;
3559  var DATA_API_KEY$4 = '.data-api';
3560  var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];
3561  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
3562
3563  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
3564
3565  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
3566
3567  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
3568
3569  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
3570
3571  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
3572
3573  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
vendor: 13,175 bytes, lines 3574-3959
3574  var EVENT_HIDE$1 = "hide" + EVENT_KEY$4;
3575  var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4;
3576  var EVENT_SHOW$1 = "show" + EVENT_KEY$4;
3577  var EVENT_SHOWN$1 = "shown" + EVENT_KEY$4;
3578  var EVENT_CLICK = "click" + EVENT_KEY$4;
3579  var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$4 + DATA_API_KEY$4;
3580  var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$4 + DATA_API_KEY$4;
3581  var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$4 + DATA_API_KEY$4;
3582  var CLASS_NAME_DISABLED = 'disabled';
3583  var CLASS_NAME_SHOW$2 = 'show';
3584  var CLASS_NAME_DROPUP = 'dropup';
3585  var CLASS_NAME_DROPRIGHT = 'dropright';
3586  var CLASS_NAME_DROPLEFT = 'dropleft';
3587  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
3588  var CLASS_NAME_POSITION_STATIC = 'position-static';
3589  var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';
3590  var SELECTOR_FORM_CHILD = '.dropdown form';
3591  var SELECTOR_MENU = '.dropdown-menu';
3592  var SELECTOR_NAVBAR_NAV = '.navbar-nav';
3593  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
3594  var PLACEMENT_TOP = 'top-start';
3595  var PLACEMENT_TOPEND = 'top-end';
3596  var PLACEMENT_BOTTOM = 'bottom-start';
3597  var PLACEMENT_BOTTOMEND = 'bottom-end';
3598  var PLACEMENT_RIGHT = 'right-start';
3599  var PLACEMENT_LEFT = 'left-start';
3600  var Default$2 = {
3601    offset: 0,
3602    flip: true,
3603    boundary: 'scrollParent',
3604    reference: 'toggle',
3605    display: 'dynamic',
3606    popperConfig: null
3607  };
3608  var DefaultType$2 = {
3609    offset: '(number|string|function)',
3610    flip: 'boolean',
3611    boundary: '(string|element)',
3612    reference: '(string|element)',
3613    display: 'string',
3614    popperConfig: '(null|object)'
3615  };
3616  /**
3617   * ------------------------------------------------------------------------
3618   * Class Definition
3619   * ------------------------------------------------------------------------
3620   */
3621
3622  var Dropdown = /*#__PURE__*/function () {
3623    function Dropdown(element, config) {
3624      this._element = element;
3625      this._popper = null;
3626      this._config = this._getConfig(config);
3627      this._menu = this._getMenuElement();
3628      this._inNavbar = this._detectNavbar();
3629
3630      this._addEventListeners();
3631    } // Getters
3632
3633
3634    var _proto = Dropdown.prototype;
3635
3636    // Public
3637    _proto.toggle = function toggle() {
3638      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {
3639        return;
3640      }
3641
3642      var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2);
3643
3644      Dropdown._clearMenus();
3645
3646      if (isActive) {
3647        return;
3648      }
3649
3650      this.show(true);
3651    };
3652
3653    _proto.show = function show(usePopper) {
3654      if (usePopper === void 0) {
3655        usePopper = false;
3656      }
3657
3658      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {
3659        return;
3660      }
3661
3662      var relatedTarget = {
3663        relatedTarget: this._element
3664      };
3665      var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget);
3666
3667      var parent = Dropdown._getParentFromElement(this._element);
3668
3669      $__default['default'](parent).trigger(showEvent);
3670
3671      if (showEvent.isDefaultPrevented()) {
3672        return;
3673      } // Totally disable Popper for Dropdowns in Navbar
3674
3675
3676      if (!this._inNavbar && usePopper) {
3677        /**
3678         * Check for Popper dependency
3679         * Popper - https://popper.js.org
3680         */
3681        if (typeof Popper === 'undefined') {
3682          throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
3683        }
3684
3685        var referenceElement = this._element;
3686
3687        if (this._config.reference === 'parent') {
3688          referenceElement = parent;
3689        } else if (Util.isElement(this._config.reference)) {
3690          referenceElement = this._config.reference; // Check if it's jQuery element
3691
3692          if (typeof this._config.reference.jquery !== 'undefined') {
3693            referenceElement = this._config.reference[0];
3694          }
3695        } // If boundary is not `scrollParent`, then set position to `static`
3696        // to allow the menu to "escape" the scroll parent's boundaries
3697        // https://github.com/twbs/bootstrap/issues/24251
3698
3699
3700        if (this._config.boundary !== 'scrollParent') {
3701          $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);
3702        }
3703
3704        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
3705      } // If this is a touch-enabled device we add extra
3706      // empty mouseover listeners to the body's immediate children;
3707      // only needed because of broken event delegation on iOS
3708      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
3709
3710
3711      if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
3712        $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);
3713      }
3714
3715      this._element.focus();
3716
3717      this._element.setAttribute('aria-expanded', true);
3718
3719      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);
3720      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget));
3721    };
3722
3723    _proto.hide = function hide() {
3724      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {
3725        return;
3726      }
3727
3728      var relatedTarget = {
3729        relatedTarget: this._element
3730      };
3731      var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);
3732
3733      var parent = Dropdown._getParentFromElement(this._element);
3734
3735      $__default['default'](parent).trigger(hideEvent);
3736
3737      if (hideEvent.isDefaultPrevented()) {
3738        return;
3739      }
3740
3741      if (this._popper) {
3742        this._popper.destroy();
3743      }
3744
3745      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);
3746      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));
3747    };
3748
3749    _proto.dispose = function dispose() {
3750      $__default['default'].removeData(this._element, DATA_KEY$4);
3751      $__default['default'](this._element).off(EVENT_KEY$4);
3752      this._element = null;
3753      this._menu = null;
3754
3755      if (this._popper !== null) {
3756        this._popper.destroy();
3757
3758        this._popper = null;
3759      }
3760    };
3761
3762    _proto.update = function update() {
3763      this._inNavbar = this._detectNavbar();
3764
3765      if (this._popper !== null) {
3766        this._popper.scheduleUpdate();
3767      }
3768    } // Private
3769    ;
3770
3771    _proto._addEventListeners = function _addEventListeners() {
3772      var _this = this;
3773
3774      $__default['default'](this._element).on(EVENT_CLICK, function (event) {
3775        event.preventDefault();
3776        event.stopPropagation();
3777
3778        _this.toggle();
3779      });
3780    };
3781
3782    _proto._getConfig = function _getConfig(config) {
3783      config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);
3784      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
3785      return config;
3786    };
3787
3788    _proto._getMenuElement = function _getMenuElement() {
3789      if (!this._menu) {
3790        var parent = Dropdown._getParentFromElement(this._element);
3791
3792        if (parent) {
3793          this._menu = parent.querySelector(SELECTOR_MENU);
3794        }
3795      }
3796
3797      return this._menu;
3798    };
3799
3800    _proto._getPlacement = function _getPlacement() {
3801      var $parentDropdown = $__default['default'](this._element.parentNode);
3802      var placement = PLACEMENT_BOTTOM; // Handle dropup
3803
3804      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
3805        placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
3806      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
3807        placement = PLACEMENT_RIGHT;
3808      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
3809        placement = PLACEMENT_LEFT;
3810      } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
3811        placement = PLACEMENT_BOTTOMEND;
3812      }
3813
3814      return placement;
3815    };
3816
3817    _proto._detectNavbar = function _detectNavbar() {
3818      return $__default['default'](this._element).closest('.navbar').length > 0;
3819    };
3820
3821    _proto._getOffset = function _getOffset() {
3822      var _this2 = this;
3823
3824      var offset = {};
3825
3826      if (typeof this._config.offset === 'function') {
3827        offset.fn = function (data) {
3828          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
3829          return data;
3830        };
3831      } else {
3832        offset.offset = this._config.offset;
3833      }
3834
3835      return offset;
3836    };
3837
3838    _proto._getPopperConfig = function _getPopperConfig() {
3839      var popperConfig = {
3840        placement: this._getPlacement(),
3841        modifiers: {
3842          offset: this._getOffset(),
3843          flip: {
3844            enabled: this._config.flip
3845          },
3846          preventOverflow: {
3847            boundariesElement: this._config.boundary
3848          }
3849        }
3850      }; // Disable Popper if we have a static display
3851
3852      if (this._config.display === 'static') {
3853        popperConfig.modifiers.applyStyle = {
3854          enabled: false
3855        };
3856      }
3857
3858      return _extends({}, popperConfig, this._config.popperConfig);
3859    } // Static
3860    ;
3861
3862    Dropdown._jQueryInterface = function _jQueryInterface(config) {
3863      return this.each(function () {
3864        var data = $__default['default'](this).data(DATA_KEY$4);
3865
3866        var _config = typeof config === 'object' ? config : null;
3867
3868        if (!data) {
3869          data = new Dropdown(this, _config);
3870          $__default['default'](this).data(DATA_KEY$4, data);
3871        }
3872
3873        if (typeof config === 'string') {
3874          if (typeof data[config] === 'undefined') {
3875            throw new TypeError("No method named \"" + config + "\"");
3876          }
3877
3878          data[config]();
3879        }
3880      });
3881    };
3882
3883    Dropdown._clearMenus = function _clearMenus(event) {
3884      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
3885        return;
3886      }
3887
3888      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));
3889
3890      for (var i = 0, len = toggles.length; i < len; i++) {
3891        var parent = Dropdown._getParentFromElement(toggles[i]);
3892
3893        var context = $__default['default'](toggles[i]).data(DATA_KEY$4);
3894        var relatedTarget = {
3895          relatedTarget: toggles[i]
3896        };
3897
3898        if (event && event.type === 'click') {
3899          relatedTarget.clickEvent = event;
3900        }
3901
3902        if (!context) {
3903          continue;
3904        }
3905
3906        var dropdownMenu = context._menu;
3907
3908        if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) {
3909          continue;
3910        }
3911
3912        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {
3913          continue;
3914        }
3915
3916        var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);
3917        $__default['default'](parent).trigger(hideEvent);
3918
3919        if (hideEvent.isDefaultPrevented()) {
3920          continue;
3921        } // If this is a touch-enabled device we remove the extra
3922        // empty mouseover listeners we added for iOS support
3923
3924
3925        if ('ontouchstart' in document.documentElement) {
3926          $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);
3927        }
3928
3929        toggles[i].setAttribute('aria-expanded', 'false');
3930
3931        if (context._popper) {
3932          context._popper.destroy();
3933        }
3934
3935        $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2);
3936        $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));
3937      }
3938    };
3939
3940    Dropdown._getParentFromElement = function _getParentFromElement(element) {
3941      var parent;
3942      var selector = Util.getSelectorFromElement(element);
3943
3944      if (selector) {
3945        parent = document.querySelector(selector);
3946      }
3947
3948      return parent || element.parentNode;
3949    } // eslint-disable-next-line complexity
3950    ;
3951
3952    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
3953      // If not input/textarea:
3954      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
3955      // If input/textarea:
3956      //  - If space key => not a dropdown command
3957      //  - If key is other than escape
3958      //    - If key is not up or down => not a dropdown command
3959      //    - If trigger inside the menu =>
vendor: 15,472 bytes, lines 3959-4420
3959 not a dropdown command
3960      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
3961        return;
3962      }
3963
3964      if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {
3965        return;
3966      }
3967
3968      var parent = Dropdown._getParentFromElement(this);
3969
3970      var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2);
3971
3972      if (!isActive && event.which === ESCAPE_KEYCODE) {
3973        return;
3974      }
3975
3976      event.preventDefault();
3977      event.stopPropagation();
3978
3979      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {
3980        if (event.which === ESCAPE_KEYCODE) {
3981          $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');
3982        }
3983
3984        $__default['default'](this).trigger('click');
3985        return;
3986      }
3987
3988      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
3989        return $__default['default'](item).is(':visible');
3990      });
3991
3992      if (items.length === 0) {
3993        return;
3994      }
3995
3996      var index = items.indexOf(event.target);
3997
3998      if (event.which === ARROW_UP_KEYCODE && index > 0) {
3999        // Up
4000        index--;
4001      }
4002
4003      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
4004        // Down
4005        index++;
4006      }
4007
4008      if (index < 0) {
4009        index = 0;
4010      }
4011
4012      items[index].focus();
4013    };
4014
4015    _createClass(Dropdown, null, [{
4016      key: "VERSION",
4017      get: function get() {
4018        return VERSION$4;
4019      }
4020    }, {
4021      key: "Default",
4022      get: function get() {
4023        return Default$2;
4024      }
4025    }, {
4026      key: "DefaultType",
4027      get: function get() {
4028        return DefaultType$2;
4029      }
4030    }]);
4031
4032    return Dropdown;
4033  }();
4034  /**
4035   * ------------------------------------------------------------------------
4036   * Data Api implementation
4037   * ------------------------------------------------------------------------
4038   */
4039
4040
4041  $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {
4042    event.preventDefault();
4043    event.stopPropagation();
4044
4045    Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');
4046  }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {
4047    e.stopPropagation();
4048  });
4049  /**
4050   * ------------------------------------------------------------------------
4051   * jQuery
4052   * ------------------------------------------------------------------------
4053   */
4054
4055  $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface;
4056  $__default['default'].fn[NAME$4].Constructor = Dropdown;
4057
4058  $__default['default'].fn[NAME$4].noConflict = function () {
4059    $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;
4060    return Dropdown._jQueryInterface;
4061  };
4062
4063
4064  /**
4065   * --------------------------------------------------------------------------
4066   * Bootstrap (v4.6.0): tools/sanitizer.js
4067   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4068   * --------------------------------------------------------------------------
4069   */
4070  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
4071  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
4072  var DefaultWhitelist = {
4073    // Global attributes allowed on any supplied element below.
4074    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
4075    a: ['target', 'href', 'title', 'rel'],
4076    area: [],
4077    b: [],
4078    br: [],
4079    col: [],
4080    code: [],
4081    div: [],
4082    em: [],
4083    hr: [],
4084    h1: [],
4085    h2: [],
4086    h3: [],
4087    h4: [],
4088    h5: [],
4089    h6: [],
4090    i: [],
4091    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
4092    li: [],
4093    ol: [],
4094    p: [],
4095    pre: [],
4096    s: [],
4097    small: [],
4098    span: [],
4099    sub: [],
4100    sup: [],
4101    strong: [],
4102    u: [],
4103    ul: []
4104  };
4105  /**
4106   * A pattern that recognizes a commonly useful subset of URLs that are safe.
4107   *
4108   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
4109   */
4110
4111  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
4112  /**
4113   * A pattern that matches safe data URLs. Only matches image, video and audio types.
4114   *
4115   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
4116   */
4117
4118  var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
4119
4120  function allowedAttribute(attr, allowedAttributeList) {
4121    var attrName = attr.nodeName.toLowerCase();
4122
4123    if (allowedAttributeList.indexOf(attrName) !== -1) {
4124      if (uriAttrs.indexOf(attrName) !== -1) {
4125        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
4126      }
4127
4128      return true;
4129    }
4130
4131    var regExp = allowedAttributeList.filter(function (attrRegex) {
4132      return attrRegex instanceof RegExp;
4133    }); // Check if a regular expression validates the attribute.
4134
4135    for (var i = 0, len = regExp.length; i < len; i++) {
4136      if (attrName.match(regExp[i])) {
4137        return true;
4138      }
4139    }
4140
4141    return false;
4142  }
4143
4144  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
4145    if (unsafeHtml.length === 0) {
4146      return unsafeHtml;
4147    }
4148
4149    if (sanitizeFn && typeof sanitizeFn === 'function') {
4150      return sanitizeFn(unsafeHtml);
4151    }
4152
4153    var domParser = new window.DOMParser();
4154    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
4155    var whitelistKeys = Object.keys(whiteList);
4156    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
4157
4158    var _loop = function _loop(i, len) {
4159      var el = elements[i];
4160      var elName = el.nodeName.toLowerCase();
4161
4162      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
4163        el.parentNode.removeChild(el);
4164        return "continue";
4165      }
4166
4167      var attributeList = [].slice.call(el.attributes);
4168      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
4169      attributeList.forEach(function (attr) {
4170        if (!allowedAttribute(attr, whitelistedAttributes)) {
4171          el.removeAttribute(attr.nodeName);
4172        }
4173      });
4174    };
4175
4176    for (var i = 0, len = elements.length; i < len; i++) {
4177      var _ret = _loop(i);
4178
4179      if (_ret === "continue") continue;
4180    }
4181
4182    return createdDocument.body.innerHTML;
4183  }
4184  /**
4185   * ------------------------------------------------------------------------
4186   * Constants
4187   * ------------------------------------------------------------------------
4188   */
4189
4190  var NAME$9 = 'tab';
4191  var VERSION$9 = '4.6.0';
4192  var DATA_KEY$9 = 'bs.tab';
4193  var EVENT_KEY$9 = "." + DATA_KEY$9;
4194  var DATA_API_KEY$7 = '.data-api';
4195  var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];
4196  var EVENT_HIDE$3 = "hide" + EVENT_KEY$9;
4197  var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9;
4198  var EVENT_SHOW$3 = "show" + EVENT_KEY$9;
4199  var EVENT_SHOWN$3 = "shown" + EVENT_KEY$9;
4200  var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$9 + DATA_API_KEY$7;
4201  var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
4202  var CLASS_NAME_ACTIVE$3 = 'active';
4203  var CLASS_NAME_DISABLED$1 = 'disabled';
4204  var CLASS_NAME_FADE$4 = 'fade';
4205  var CLASS_NAME_SHOW$6 = 'show';
4206  var SELECTOR_DROPDOWN$1 = '.dropdown';
4207  var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';
4208  var SELECTOR_ACTIVE$2 = '.active';
4209  var SELECTOR_ACTIVE_UL = '> li > .active';
4210  var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
4211  var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
4212  var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
4213  /**
4214   * ------------------------------------------------------------------------
4215   * Class Definition
4216   * ------------------------------------------------------------------------
4217   */
4218
4219  var Tab = /*#__PURE__*/function () {
4220    function Tab(element) {
4221      this._element = element;
4222    } // Getters
4223
4224
4225    var _proto = Tab.prototype;
4226
4227    // Public
4228    _proto.show = function show() {
4229      var _this = this;
4230
4231      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) {
4232        return;
4233      }
4234
4235      var target;
4236      var previous;
4237      var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];
4238      var selector = Util.getSelectorFromElement(this._element);
4239
4240      if (listElement) {
4241        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;
4242        previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));
4243        previous = previous[previous.length - 1];
4244      }
4245
4246      var hideEvent = $__default['default'].Event(EVENT_HIDE$3, {
4247        relatedTarget: this._element
4248      });
4249      var showEvent = $__default['default'].Event(EVENT_SHOW$3, {
4250        relatedTarget: previous
4251      });
4252
4253      if (previous) {
4254        $__default['default'](previous).trigger(hideEvent);
4255      }
4256
4257      $__default['default'](this._element).trigger(showEvent);
4258
4259      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
4260        return;
4261      }
4262
4263      if (selector) {
4264        target = document.querySelector(selector);
4265      }
4266
4267      this._activate(this._element, listElement);
4268
4269      var complete = function complete() {
4270        var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, {
4271          relatedTarget: _this._element
4272        });
4273        var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, {
4274          relatedTarget: previous
4275        });
4276        $__default['default'](previous).trigger(hiddenEvent);
4277        $__default['default'](_this._element).trigger(shownEvent);
4278      };
4279
4280      if (target) {
4281        this._activate(target, target.parentNode, complete);
4282      } else {
4283        complete();
4284      }
4285    };
4286
4287    _proto.dispose = function dispose() {
4288      $__default['default'].removeData(this._element, DATA_KEY$9);
4289      this._element = null;
4290    } // Private
4291    ;
4292
4293    _proto._activate = function _activate(element, container, callback) {
4294      var _this2 = this;
4295
4296      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2);
4297      var active = activeElements[0];
4298      var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4);
4299
4300      var complete = function complete() {
4301        return _this2._transitionComplete(element, active, callback);
4302      };
4303
4304      if (active && isTransitioning) {
4305        var transitionDuration = Util.getTransitionDurationFromElement(active);
4306        $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4307      } else {
4308        complete();
4309      }
4310    };
4311
4312    _proto._transitionComplete = function _transitionComplete(element, active, callback) {
4313      if (active) {
4314        $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3);
4315        var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];
4316
4317        if (dropdownChild) {
4318          $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3);
4319        }
4320
4321        if (active.getAttribute('role') === 'tab') {
4322          active.setAttribute('aria-selected', false);
4323        }
4324      }
4325
4326      $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3);
4327
4328      if (element.getAttribute('role') === 'tab') {
4329        element.setAttribute('aria-selected', true);
4330      }
4331
4332      Util.reflow(element);
4333
4334      if (element.classList.contains(CLASS_NAME_FADE$4)) {
4335        element.classList.add(CLASS_NAME_SHOW$6);
4336      }
4337
4338      if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
4339        var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0];
4340
4341        if (dropdownElement) {
4342          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));
4343          $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3);
4344        }
4345
4346        element.setAttribute('aria-expanded', true);
4347      }
4348
4349      if (callback) {
4350        callback();
4351      }
4352    } // Static
4353    ;
4354
4355    Tab._jQueryInterface = function _jQueryInterface(config) {
4356      return this.each(function () {
4357        var $this = $__default['default'](this);
4358        var data = $this.data(DATA_KEY$9);
4359
4360        if (!data) {
4361          data = new Tab(this);
4362          $this.data(DATA_KEY$9, data);
4363        }
4364
4365        if (typeof config === 'string') {
4366          if (typeof data[config] === 'undefined') {
4367            throw new TypeError("No method named \"" + config + "\"");
4368          }
4369
4370          data[config]();
4371        }
4372      });
4373    };
4374
4375    _createClass(Tab, null, [{
4376      key: "VERSION",
4377      get: function get() {
4378        return VERSION$9;
4379      }
4380    }]);
4381
4382    return Tab;
4383  }();
4384  /**
4385   * ------------------------------------------------------------------------
4386   * Data Api implementation
4387   * ------------------------------------------------------------------------
4388   */
4389  $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {
4390    event.preventDefault();
4391
4392    Tab._jQueryInterface.call($__default['default'](this), 'show');
4393  });
4394  /**
4395   * ------------------------------------------------------------------------
4396   * jQuery
4397   * ------------------------------------------------------------------------
4398   */
4399
4400  $__default['default'].fn[NAME$9] = Tab._jQueryInterface;
4401  $__default['default'].fn[NAME$9].Constructor = Tab;
4402
4403  $__default['default'].fn[NAME$9].noConflict = function () {
4404    $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;
4405    return Tab._jQueryInterface;
4406  };
4407
4408  exports.Alert = Alert;
4409  exports.Button = Button;
4410  exports.Collapse = Collapse;
4411  exports.Dropdown = Dropdown;
4412  exports.Tab = Tab;
4413  exports.Util = Util;
4414
4415  Object.defineProperty(exports, '__esModule', { value: true });
4416
4417})));
4418/* ========================================================================
4419 * Bootstrap: affix.js v3.4.1
4420 * https://getbootstrap.com/docs/3.4/javascript/#affix
4421 * ========================================================================
4422 * Copyright 2011-2019 Twitter, Inc.
4423 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4424 * ======================================================================== */
4425!function(t){"use strict";var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o);var f=this.options.target===i.DEFAULTS.target?t(this.options.target):t(document).find(this.options.target);this.$target=f.on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function e(e){return this.each(function(){var o=t(this),f=o.data("bs.affix"),n="object"==typeof e&&e;f||o.data("bs.affix",f=new i(this,n)),"string"==typeof e&&f[e]()})}i.VERSION="3.4.1",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,i,e,o){var f=this.$target.scrollTop(),n=this.$element.offset(),s=this.$target.height();if(null!=e&&"top"==this.affixed)return f<e&&"top";if("bottom"==this.affixed)return null!=e?!(f+this.unpin<=n.top)&&"bottom":!(f+s<=t-o)&&"bottom";var a=null==this.affixed,h=a?f:n.top;return null!=e&&f<=e?"top":null!=o&&h+(a?s:i)>=t-o&&"bottom"},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,f=o.top,n=o.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(n=f=o),"function"==typeof f&&(f=o.top(this.$element)),"function"==typeof n&&(n=o.bottom(this.$element));var a=this.getState(s,e,f,n);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var h="affix"+(a?"-"+a:""),r=t.Event(h+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(h).trigger(h.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-e-n})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery);
4426/*! jQuery Validation Plugin - v1.19.5 - 7/1/2022
4427 * https://jqueryvalidation.org/
4428 * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */
4429!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element
vendor: 13,156 bytes, line 4429
4429(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};a.extend(a.expr.pseudos||a.expr[":"],{blank:function(c){return!b(""+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(""+d)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=g?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){"string"==typeof c&&(c={method:c});var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.n
4429ame],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return void 0===a?"":a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);
vendor: 4,097 bytes, line 4429
4429return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()&&0===this.pendingRequest?(a(this.currentForm).trigger("submit"),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a["date"===b?"dateISO":c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]="function"==typeof d&&"normalizer"!==a?d(c):d}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var a;b[this]&&(Array.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(a=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(a[0]),Number(a[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.val
4429idator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var c,d={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,c){var e=a.port;"abort"===a.mode&&(d[e]&&d[e].abort(),d[e]=c)}):(c=a.ajax,a.ajax=function(b){var e=("mode"in b?b:a.ajaxSettings).mode,f=("port"in b?b:a.ajaxSettings).port;return"abort"===e?(d[f]&&d[f].abort(),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a});
4430/*
4431* jquery-match-height 0.7.2 by @liabru
4432* http://brm.io/jquery-match-height/
4433* License MIT
4434*/
4435!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={
4436byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,
4437r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0",
4438"padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={
4439display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),
4440this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i;
4441}n?o===-1&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})});
4442/*!
4443 * JavaScript Cookie v2.2.1
4444 * https://github.com/js-cookie/js-cookie
4445 *
4446 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
4447 * Released under the MIT license
4448 */
4449!function(e){var n;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var t=window.Cookies,o=window.Cookies=e();o.noConflict=function(){return window.Cookies=t,o}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];
4449for(var o in t)n[o]=t[o]}return n}function n(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function t(o){function r(){}function i(n,t,i){if("undefined"!=typeof document){"number"==typeof(i=e({path:"/"},r.defaults,i)).expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(t);/^[\{\[]/.test(c)&&(t=c)}catch(e){}t=o.write?o.write(t,n):encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var u in i)i[u]&&(f+="; "+u,!0!==i[u]&&(f+="="+i[u].split(";")[0]));return document.cookie=n+"="+t+f}}function c(e,t){if("undefined"!=typeof document){for(var r={},i=document.cookie?document.cookie.split("; "):[],c=0;c<i.length;c++){var f=i[c].split("="),u=f.slice(1).join("=");t||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var a=n(f[0]);if(u=(o.read||o)(u,a)||n(u),t)try{u=JSON.parse(u)}catch(e){}if(r[a]=u,e===a)break}catch(e){}}return e?r[e]:r}}return r.set=i,r.get=function(e){return c(e,!1)},r.getJSON=function(e){return c(e,!0)},r.remove=function(n,t){i(n,"",e(t,{expires:-1}))},r.defaults={},r.withConverter=t,r}(function(){})});
4450//# sourceMappingURL=/sm/b0ce608ffc029736e9ac80a8dd6a7db2da8e1d45d2dcfc92043deb2214aa30d8.map
4451/**
4452 * This script provides the interaction with the SEC filing header by allowing
4453 * users to toggle the visibility of the document dropdown box. The box can be shown or hidden
4454 * by clicking on the document links button, clicking outside the box, or tabbing out of the box.
4455 *
4456 * @author Nick Tesh
4457 */
4458
4459let filingHeader = document.querySelector("#sec-filing-header");
4460
4461if (filingHeader) {
4462    let documentBox = document.querySelector("#sec-filing-header--document-box");
4463    let documentDetails = document.querySelector("#document-details");
4464
4465    // Toggle the visibility of the documents links dropdown on click
4466    documentDetails.addEventListener("click", function() {
4467        if (documentBox.style.display === "none" || !documentBox.style.display) {
4468            documentBox.style.display = "block";
4469            documentDetails.setAttribute('aria-expanded', 'true');
4470        } else {
4471            documentBox.style.display = "none";
4472            documentDetails.setAttribute('aria-expanded', 'false');
4473        }
4474        
4475        // Toggle the class "open" on the document links button
4476        documentDetails.classList.toggle("open");
4477    });
4478
4479    // Hide the documents links dropdown when you click outside of the box
4480    document.addEventListener("click", function(event) {
4481        if (!documentBox.contains(event.target) && !documentDetails.contains(event.target) && documentBox.style.display !== "none") {
4482            documentBox.style.display = "none";
4483            documentDetails.classList.remove("open");
4484            documentDetails.setAttribute('aria-expanded', 'false');
4485        }
4486    });
4487
4488    // Hide the documents links dropdown when you tab outside of the box
4489    documentBox.addEventListener("focusout", function(event) {
4490        let isMovingOutOfDocumentBox = !documentBox.contains(event.relatedTarget);
4491        if (isMovingOutOfDocumentBox) {
4492            documentBox.style.display = "none";
4493            documentDetails.classList.remove("open");
4494            documentDetails.setAttribute('aria-expanded', 'false');
4495        }
4496    });
4497}
4498
4499/**
4500 * This script checks if the lang attribute is present on the filing HTML element
4501 * If the lang attribute is not present, it will add it and set it to "en"
4502 */
4503 
4504let htmlElement = document.documentElement;
4505
4506// Check if the 'lang' attribute is present
4507if (!htmlElement.hasAttribute('lang')) {
4508    // Set the 'lang' attribute to 'en'
4509    htmlElement.setAttribute('lang', 'en');
4510}
4511/* EqDialog class
4512 * Helper class to provide Fancybox create_dialogality using the native HTML dialog element
4513 *
4514 * See MDN documentation for details on how the native element works
4515 * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog
4516 */
4517
4518const eq_dialog_defaults = {
4519    selector: '.eq-dialog',
4520    show_close_button: true,
4521    close_button_text: 'Close dialog',
4522    aria_label: 'Dialog',
4523    // remove_inline_content: takes inline divs used for content and removes duplicates
4524    remove_inline_content: false,
4525    style: {
4526        width: '800px',
4527    },
4528    onOpen: null,
4529    description: false
4530}
4531// Default HTML template for dialog content
4532eq_dialog_defaults.template_inner = `<div class="eq-dialog-inner"></div>`;
4533eq_dialog_defaults.template_close_button = `<form class="eq-close-btn" method="dialog"><button autofocus aria-label="{{close_btn_txt}}"></button></form>`;
4534eq_dialog_defaults.template_video = `<video class="eq-dialog-video" controls autoplay>` +
4535    `<source src="{{src}}" type="{{format}}" />` +
4536    'Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!' +
4537    `</video>`;
4538
4539class EqDialog {
4540    constructor(options = {}) {
4541        this.settings = JSON.parse(JSON.stringify(eq_dialog_defaults));
4542        // override defaults if provided
4543        for (const prop in options) {
4544            this.settings[prop] = options[prop];
4545            if (prop === 'style') {
4546                for (const style_name in options.style) {
4547                    this.settings.style[style_name] = options.style[style_name];
4548                }
4549            }
4550        }
4551        
4552        // Listen for tab press, if modal is open keep focus locked
4553        document.addEventListener('keydown', (e) => {
4554            let dialog = document.querySelector('dialog[open]');
4555            if (!dialog) {
4556                return;
4557            }
4558            // Dynamically find all focusable elements and determine the first and last one
4559            let dialog_focusables = dialog.querySelectorAll('button,input,select,textarea,iframe,area,a,*[tabindex="0"]');
4560            let first_focus = dialog_focusables.item(0);
4561            let last_focus = dialog_focusables.item(dialog_focusables.length - 1);
4562            if (!e.shiftKey && e.key === 'Tab') {
4563                if (document.activeElement == last_focus) {
4564                    e.preventDefault();
4565                    first_focus.focus();
4566                }
4567            }
4568            if (e.shiftKey && e.key === 'Tab') {
4569                if (document.activeElement == first_focus) {
4570                    e.preventDefault();
4571                    last_focus.focus();
4572                }
4573            }
4574            if (first_focus == last_focus) {
4575                let close_button = dialog.querySelector("button");
4576                close_button.scrollIntoView({ behavior: "smooth", block: "center" });
4577            }
4578        });
4579    }
4580
4581    // Find all dialog buttons/links and generate HTML
4582    init() {
4583        let dialog_btns = document.querySelectorAll(this.settings.selector);
4584        dialog_btns.forEach((el) => {
4585            let dialog_type, dialog_id, href, src, textDescription;
4586            dialog_type = el.dataset.type ? el.dataset.type : false;
4587            // Determine source of dialog content from href attribute or data-target attribute
4588            href = el.getAttribute('href');
4589            src = href ? href : el.dataset.target ? el.dataset.target : false;
4590            textDescription = el.dataset.description ? el.dataset.description : false;
4591            
4592            if (!src) {
4593                console.error(`Could not determine the dialog source. Please set the attribute 'href' or 'data-target'`);
4594                return;
4595            }
4596            // Determine what kind of dialog is being created
4597            if (!dialog_type) {
4598                if (src.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)) {
4599                    dialog_type = 'image';
4600                } else if (src.match(/\.(mp4|mov|ogg|webm)((\?|#).*)?$/i)) {
4601                    dialog_type = 'video';
4602                } else if (src.match(/\.(pdf)((\?|#).*)?$/i)) {
4603                    dialog_type = 'iframe';
4604                } else if (src[0] === '#') {
4605                    dialog_type = 'inline';
4606                } else {
4607                    console.error(`Could not determine the dialog type for ${src}. Please specify the attribute 'data-type' or 'href'.`);
4608                    return;
4609                }
4610            }
4611            // Create an ID to assign to the dialog, take the existing ID attribute if there is one
4612            dialog_id = dialog_type === 'inline' && src ? src.substring(1) : this.generate_dialog_id(dialog_type);
4613            
4614            // Converts URL links to anchor link to prevent navigating away from page
4615            if (href) {
4616                el.setAttribute('href', `#${dialog_id}`);
4617                el.setAttribute('role', 'button');
4618            }
4619            // Assign event listeners the link/button to open the modal
4620            el.addEventListener('click', (e) => {
4621                e.preventDefault();
4622                let dlg = this.create_dialog({
4623                    dialog_type: dialog_type,
4624                    dialog_id: dialog_id,
4625                    src: src,
4626                    img_alt: el.dataset.imgAlt ? el.dataset.imgAlt : '',
4627                    close_button_text: el.dataset.closebtntxt ? el.dataset.closebtntxt : this.settings.close_button_text,
4628                    aria_label: el.dataset.arialabel ? el.dataset.arialabel : this.settings.aria_label,
4629                    description: textDescription
4630                });
4631                if (!dlg) {
4632                    return;
4633                }
4634                dlg.showModal();
4635                if (typeof this.settings.onOpen === 'function') {
4636                    this.settings.onOpen(dlg);
4637                }
4638            });
4639        });
4640    }
4641
4642    // Create and open a dialog immediately
4643    // The source is either the ID of a target element (without the #) or URL for the media file
4644    open(dialog_type, source, textDescription, img_alt = '') {
4645        if (dialog_type === 'inline' && !source) {
4646            console.error(`Inline dialogs must have a target.`);
4647            return;
4648        }
4649        if (dialog_type === 'image' || dialog_type === 'iframe' || dialog_type === 'video' && !source) {
4650            console.error(`Media dialogs must have a source.`);
4651            return;
4652        }
4653        let dlg = this.create_dialog({
4654            dialog_type: dialog_type,
4655            dialog_id: dialog_type === 'inline' ? source : this.generate_dialog_id(dialog_type),
4656            src: dialog_type === 'inline' ? '' : source,
4657            img_alt: img_alt,
4658            close_button_text: this.settings.close_button_text,
4659            description: textDescription
4660        });
4661        if (!dlg) {
4662            return;
4663        }
4664        dlg.showModal();
4665    }
4666
4667    /* Creates HTML dialog element with given parameters
4668     * Parameters:
4669     * dialog_id - ID of the target element the inline dialog will pull content from
4670     * src - URL of the image or iframe to be displayed
4671     * img_alt - Alt text to add to the image dialog
4672     */
4673    create_dialog(params = {}) {
4674        let settings = this.settings;
4675        let has_form = false;
4676        // Create element for dialog
4677        let dialog = document.createElement('dialog');
4678        jq(dialog).attr('aria-modal', 'true');
4679        jq(dialog).attr('aria-label', params.aria_label);
4680        dialog.classList.add('eq-dialog-wrapper');
4681        dialog.innerHTML = settings.template_inner;
4682
4683        let dialog_content = '';
4684        if (settings.show_close_button) {
4685            let close_btn_html = settings.template_close_button;
4686            close_btn_html = close_btn_html.replace('{{close_btn_txt}}', params.close_button_text);
4687            dialog_content += close_btn_html;
4688        }
4689        if (params.dialog_type === 'inline') {
4690            let inline_div = document.getElementById(params.dialog_id);
4691            if (!inline_div) {
4692                console.error('Unable to find element with ID of \'#' + params.dialog_id + '\'');
4693                return false;
4694            }
4695            has_form = inline_div.querySelector('form');
4696            dialog_content += inline_div.innerHTML;
4697            // Hide target inline div to prevent duplicate ID error
4698            if (this.settings.remove_inline_content) {
4699                inline_div.remove();
4700            } else {
4701                inline_div.style.display = 'none';
4702            }
4703        }
4704        if (params.dialog_type === 'image') {
4705            dialog_content += `<img src="${params.src}" alt="${params.img_alt}">`;
4706        }
4707        if (params.dialog_type === 'video') {
4708            let matcher = /(?:\.([^.]+))?$/;
4709            let format = 'video/' + matcher.exec(params.src)[1];
4710            let vid_tpl = settings.template_video;
4711            vid_tpl = vid_tpl.replace('{{src}}', params.src);
4712            vid_tpl = vid_tpl.replace('{{format}}', format);
4713            dialog_content += vid_tpl;
4714        }
4715        if (params.dialog_type === 'iframe') {
4716            dialog_content += `<iframe ${params.description ? 'aria-label="' + params.description + '"' : ''} src="${params.src}"></iframe>`;
4717        }
4718
4719        // Apply styling
4720        let inner_el = dialog.querySelector('.eq-dialog-inner');
4721        for (const style_name in settings.style) {
4722            inner_el.style[style_name] = settings.style[style_name];
4723        }
4724        // Add content to dialog and add it to the DOM
4725        inner_el.innerHTML = dialog_content;
4726        document.body.appendChild(dialog);
4727        
4728        // Popup specific functionality
4729        if (has_form) {
4730            hCaptchaOnLoad();
4731            validate_forms();
4732        }
4733
4734        // Add event listener to hide the dialog when it is closed
4735        dialog.addEventListener('close', () => {
4736            dialog.remove();
4737        });
4738        
4739        //Close dialog when link inside dialog is clicked
4740        jq(dialog)
4741            .find("a")
4742            .click(function () {
4743                   dialog.remove();
4744            });
4745
4746        return dialog;
4747    }
4748
4749    generate_dialog_id(dialog_type) {
4750        let index = 0;
4751        let id = dialog_type + '-dialog-' + index;
4752        while (document.getElementById(id)) {
4753            index++;
4754            id = dialog_type + '-dialog-' + index;
4755        }
4756        return id;
4757    }
4758}
4759
4760/**
4761 * table-wrapper.js - A library for automatically wrapping tables with a scrollable figure element
4762 * and applying visual indicators (shadows) to indicate horizontal and vertical scroll overflow.
4763 *
4764 * By default, horizontal scrolling is enabled, and optional attributes allow for enabling vertical
4765 * scrolling, setting maximum table heights, and customizing scroll note text and shadows.
4766 *
4767 * @class TableWrapper
4768 * @author Nick Tesh
4769 * @version 1.0.0
4770 * @param {Object} [options={}] - Configuration options to customize the library behavior.
4771 * @property {string} parentClass - Class for the parent element wrapping the table.
4772 * @property {string} figureClass - Class for the scrollable figure element wrapping the table.
4773 * @property {string} shadowLeftClass - Class for the left shadow indicator.
4774 * @property {string} shadowRightClass - Class for the right shadow indicator.
4775 * @property {string} shadowTopClass - Class for the top shadow indicator.
4776 * @property {string} shadowBottomClass - Class for the bottom shadow indicator.
4777 * @property {string} defaultAriaLabel - Default aria-label for the figure element for accessibility.
4778 * @property {string} scrollNoteClass - Class for the scroll note displayed above the parent element.
4779 */
4780class TableWrapper {
4781  /**
4782   * @constructor
4783   * @param {Object} [options={}] - Custom configuration options.
4784   */
4785  constructor(options = {}) {
4786    this.defaultOptions = {
4787      parentClass: 'tw-parent',
4788      figureClass: 'table-figure',
4789      shadowLeftClass: 'left-shadow-block',
4790      shadowRightClass: 'right-shadow-block',
4791      shadowTopClass: 'top-shadow-block',
4792      shadowBottomClass: 'bottom-shadow-block',
4793      defaultAriaLabel: 'Scrollable table',
4794      scrollNoteClass: 'tw-scroll-note',
4795    };
4796    this.options = { ...this.defaultOptions, ...options };
4797  }
4798
4799  /**
4800   * Initializes the library by wrapping tables, updating shadows, and attaching event listeners.
4801   * @public
4802   */
4803  init() {
4804    this.wrapTables();
4805    this.updateShadows();
4806    this.attachListeners();
4807  }
4808
4809  /**
4810   * Wraps tables in a scrollable figure element, applies max height, and adds shadows and scroll notes.
4811   * @private
4812   */
4813  wrapTables() {
4814    const parents = document.querySelectorAll(`.${this.options.parentClass}`);
4815    let uniqueIdCounter = 0;
4816
4817    parents.forEach((parent) => {
4818      const content = parent.querySelector('table');
4819      if (!content) return;
4820
4821      // Assign unique IDs
4822      if (!parent.id) {
4823        parent.id = `tw-parent-${uniqueIdCounter++}`;
4824      }
4825
4826      // Check if a scroll note already exists and skip adding another
4827      const existingScrollNote = parent.previousElementSibling;
4828      if (
4829        existingScrollNote?.classList.contains(this.options.scrollNoteClass)
4830      ) {
4831        return;
4832      }
4833
4834      // Wrap the table inside a figure
4835      const figure = document.createElement('figure');
4836      figure.className = this.options.figureClass;
4837      figure.setAttribute('tabindex', '0');
4838      figure.setAttribute(
4839        'aria-label',
4840        parent.dataset.ariaLabel || this.options.defaultAriaLabel,
4841      );
4842
4843      content.parentNode.insertBefore(figure, content);
4844      figure.appendChild(content);
4845
4846      // Add max-height for vertical scrolling if specified
4847      const maxHeight = parent.dataset.maxHeight;
4848      const mobileWidth = parent.dataset.mobileWidth;
4849      if (maxHeight) {
4850        if (!mobileWidth || window.innerWidth <= parseInt(mobileWidth, 10)) {
4851          figure.style.maxHeight = `${maxHeight}px`;
4852          figure.style.overflowY = 'auto';
4853        }
4854      }
4855
4856      // Add horizontal shadows
4857      parent.insertAdjacentHTML(
4858        'afterbegin',
4859        `<span class="${this.options.shadowLeftClass}" aria-hidden="true"></span>`,
4860      );
4861      parent.insertAdjacentHTML(
4862        'beforeend',
4863        `<span class="${this.options.shadowRightClass}" aria-hidden="true"></span>`,
4864      );
4865
4866      // Add vertical shadows
4867      if (maxHeight) {
4868        parent.insertAdjacentHTML(
4869          'afterbegin',
4870          `<span class="${this.options.shadowTopClass}" aria-hidden="true"></span>`,
4871        );
4872        parent.insertAdjacentHTML(
4873          'beforeend',
4874          `<span class="${this.options.shadowBottomClass}" aria-hidden="true"></span>`,
4875        );
4876      }
4877
4878      // Add dynamic scroll note above the parent
4879      const scrollNote = document.createElement('div');
4880      scrollNote.className = this.options.scrollNoteClass;
4881      scrollNote.textContent = 'Scroll to view ↔';
4882      parent.parentNode.insertBefore(scrollNote, parent);
4883    });
4884  }
4885
4886  /**
4887   * Updates the visibility of shadows based on scroll position and overflow.
4888   * @private
4889   */
4890  updateShadows() {
4891    const figures = document.querySelectorAll(`.${this.options.figureClass}`);
4892
4893    figures.forEach((figure) => {
4894      const parent = figure.closest(`.${this.options.parentClass}`);
4895      const content = figure.querySelector('table');
4896      const scrollNote = parent.previousElementSibling;
4897
4898      if (!content) return;
4899
4900      // Horizontal Shadows
4901      const scrollLeft = figure.scrollLeft;
4902      const maxScrollLeft = content.scrollWidth - figure.clientWidth;
4903
4904      const shadowLeft = parent.querySelector(
4905        `.${this.options.shadowLeftClass}`,
4906      );
4907      const shadowRight = parent.querySelector(
4908        `.${this.options.shadowRightClass}`,
4909      );
4910
4911      let hasHorizontalScroll = false;
4912      if (content.scrollWidth > figure.clientWidth) {
4913        hasHorizontalScroll = true;
4914        shadowLeft?.classList.toggle('visible', scrollLeft > 0);
4915        shadowRight?.classList.toggle('visible', scrollLeft < maxScrollLeft);
4916      } else {
4917        shadowLeft?.classList.remove('visible');
4918        shadowRight?.classList.remove('visible');
4919      }
4920
4921      // Vertical Shadows
4922      let hasVerticalScroll = false;
4923      if (figure.style.maxHeight) {
4924        const scrollTop = figure.scrollTop;
4925        const maxScrollTop = content.scrollHeight - figure.clientHeight;
4926
4927        const shadowTop = parent.querySelector(
4928          `.${this.options.shadowTopClass}`,
4929        );
4930        const shadowBottom = parent.querySelector(
4931          `.${this.options.shadowBottomClass}`,
4932        );
4933
4934        if (content.scrollHeight > figure.clientHeight) {
4935          hasVerticalScroll = true;
4936          shadowTop?.classList.toggle('visible', scrollTop > 0);
4937          shadowBottom?.classList.toggle('visible', scrollTop < maxScrollTop);
4938        } else {
4939          shadowTop?.classList.remove('visible');
4940          shadowBottom?.classList.remove('visible');
4941        }
4942      }
4943
4944      // Update scroll note based on scroll direction
4945      // This dynamically updates the "Scroll to view" note to include visual and screen reader indicators
4946      // based on the scrollable directions detected for the table:
4947      // - Horizontal scroll: Adds a "left or right" indication with a corresponding SVG icon.
4948      // - Vertical scroll: Adds an "up or down" indication with a corresponding SVG icon.
4949      // - Both horizontal and vertical scrolls: Combines both indications.
4950      // If no scrolling is detected, the note is hidden.
4951      if (scrollNote) {
4952        if (hasHorizontalScroll && hasVerticalScroll) {
4953          scrollNote.innerHTML = `
4954          <span>Scroll to view <span class="sr-only">up, down, left, or right</span></span>
4955          <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M19.2307 10.6154H0.769228C0.344384 10.6154 0 10.271 0 9.84615C0 9.4213 0.344384 9.07692 0.769228 9.07692H19.2307C19.6556 9.07692 19.9999 9.4213 19.9999 9.84615C19.9999 10.271 19.6556 10.6154 19.2307 10.6154Z"/><path d="M3.84615 13.6923C3.64927 13.6923 3.45242 13.6172 3.30223 13.467L0.225317 10.3901C-0.0751056 10.0897 -0.0751056 9.60265 0.225317 9.30223L3.30223 6.22532C3.60265 5.92489 4.08969 5.92489 4.39007 6.22532C4.69046 6.52574 4.6905 7.01278 4.39007 7.31316L1.85708 9.84615L4.39007 12.3791C4.6905 12.6795 4.6905 13.1666 4.39007 13.467C4.23988 13.6172 4.04304 13.6923 3.84615 13.6923Z"/><path d="M16.1538 13.6923C15.957 13.6923 15.7601 13.6172 15.6098 13.467C15.3094 13.1666 15.3094 12.6795 15.6098 12.3791L18.1429 9.84615L15.6099 7.31316C15.3095 7.01274 15.3095 6.5257 15.6099 6.22532C15.9103 5.92493 16.3974 5.9249 16.6978 6.22532L19.7747 9.30223C20.0751 9.60265 20.0751 10.0897 19.7747 10.3901L16.6978 13.467C16.5475 13.6172 16.3506 13.6923 16.1538 13.6923Z"/><path d="M9.38464 19.2307V0.769228C9.38464 0.344384 9.72902 0 10.1539 0C10.5787 0 10.9231 0.344384 10.9231 0.769228V19.2307C10.9231 19.6556 10.5787 19.9999 10.1539 19.9999C9.72902 19.9999 9.38464 19.6556 9.38464 19.2307Z"/><path d="M6.30771 3.84615C6.30771 3.64927 6.38278 3.45242 6.53297 3.30223L9.60989 0.225317C9.91031 -0.0751056 10.3973 -0.0751056 10.6978 0.225317L13.7747 3.30223C14.0751 3.60265 14.0751 4.08969 13.7747 4.39007C13.4743 4.69046 12.9872 4.6905 12.6868 4.39007L10.1538 1.85708L7.62089 4.39007C7.32047 4.6905 6.8334 4.6905 6.53301 4.39007C6.38278 4.23988 6.30771 4.04304 6.30771 3.84615Z"/><path d="M6.30769 16.1538C6.30769 15.957 6.38277 15.7601 6.53296 15.6098C6.83338 15.3094 7.32046 15.3094 7.62084 15.6098L10.1538 18.1429L12.6868 15.6099C12.9872 15.3095 13.4743 15.3095 13.7747 15.6099C14.0751 15.9103 14.0751 16.3974 13.7747 16.6978L10.6978 19.7747C10.3973 20.0751 9.91029 20.0751 9.60987 19.7747L6.53296 16.6978C6.38277 16.5475 6.30769 16.3506 6.30769 16.1538Z"/></svg>`;
4956        } else if (hasHorizontalScroll) {
4957          scrollNote.innerHTML = `
4958          <span>Scroll to view <span class="sr-only">left or right</span></span>
4959          <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M19.2307 10.6154H0.769228C0.344384 10.6154 0 10.271 0 9.84615C0 9.4213 0.344384 9.07692 0.769228 9.07692H19.2307C19.6556 9.07692 19.9999 9.4213 19.9999 9.84615C19.9999 10.271 19.6556 10.6154 19.2307 10.6154Z"/><path d="M3.84615 13.6923C3.64927 13.6923 3.45242 13.6172 3.30223 13.467L0.225317 10.3901C-0.0751056 10.0897 -0.0751056 9.60265 0.225317 9.30223L3.30223 6.22532C3.60265 5.92489 4.08969 5.92489 4.39007 6.22532C4.69046 6.52574 4.6905 7.01278 4.39007 7.31316L1.85708 9.84615L4.39007 12.3791C4.6905 12.6795 4.6905 13.1666 4.39007 13.467C4.23988 13.6172 4.04304 13.6923 3.84615 13.6923Z"/><path d="M16.1538 13.6923C15.957 13.6923 15.7601 13.6172 15.6098 13.467C15.3094 13.1666 15.3094 12.6795 15.6098 12.3791L18.1429 9.84615L15.6099 7.31316C15.3095 7.01274 15.3095 6.5257 15.6099 6.22532C15.9103 5.92493 16.3974 5.9249 16.6978 6.22532L19.7747 9.30223C20.0751 9.60265 20.0751 10.0897 19.7747 10.3901L16.6978 13.467C16.5475 13.6172 16.3506 13.6923 16.1538 13.6923Z"/></svg>`;
4960        } else if (hasVerticalScroll) {
4961          scrollNote.innerHTML = `
4962          <span>Scroll to view <span class="sr-only">up or down</span></span>
4963          <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M9.84617 20C9.42132 20 9.07693 19.6556 9.07693 19.2308V0.769231C9.07693 0.344385 9.42132 0 9.84617 0C10.271 0 10.6154 0.344385 10.6154 0.769231V19.2308C10.6154 19.6556 10.271 20 9.84617 20Z"/><path d="M9.84616 20C9.64928 20 9.45243 19.9249 9.30224 19.7747L6.22532 16.6978C5.92489 16.3974 5.92489 15.9103 6.22532 15.6099C6.52574 15.3095 7.01278 15.3095 7.31316 15.6099L9.84616 18.1429L12.3791 15.6099C12.6795 15.3095 13.1666 15.3095 13.467 15.6099C13.7674 15.9103 13.7674 16.3974 13.467 16.6978L10.3901 19.7747C10.2399 19.9249 10.
4963043 20 9.84616 20Z" /><path d="M12.9232 4.61543C12.7263 4.61543 12.5295 4.54031 12.3792 4.39012L9.84627 1.85712L7.31327 4.39012C7.01285 4.69054 6.52581 4.69054 6.22542 4.39012C5.92504 4.08969 5.925 3.60266 6.22542 3.30227L9.30235 0.225349C9.60277 -0.075036 10.0898 -0.0750744 10.3902 0.225349L13.4672 3.30227C13.7676 3.60269 13.7676 4.08973 13.4672 4.39012C13.3169 4.54031 13.12 4.61543 12.9232 4.61543Z"/></svg`;
4964        } else {
4965          scrollNote.style.display = 'none';
4966        }
4967        scrollNote.style.display =
4968          hasHorizontalScroll || hasVerticalScroll ? 'block' : 'none';
4969      }
4970    });
4971  }
4972
4973  /**
4974   * Attaches event listeners for scroll and resize events.
4975   * @private
4976   */
4977  attachListeners() {
4978    // Attach scroll listeners to each figure
4979    const figures = document.querySelectorAll(`.${this.options.figureClass}`);
4980    figures.forEach((figure) => {
4981      figure.addEventListener('scroll', () => this.updateShadows());
4982    });
4983
4984    // Attach resize listener to handle mobile-width logic dynamically
4985    window.addEventListener('resize', () => {
4986      this.handleResponsiveMaxHeight();
4987      this.updateShadows();
4988    });
4989  }
4990
4991  /**
4992   * Handles the application of max-height and vertical scrolling based on the specified screen width.
4993   *
4994   * This method dynamically applies or removes the `max-height` and enables or disables vertical scrolling
4995   * on the figure element based on the `data-max-height` and `data-mobile-width` attributes. If no
4996   * `data-mobile-width` is specified, the `max-height` is always applied. Additionally, this method ensures
4997   * that top and bottom shadows are shown or hidden based on the scrolling requirements.
4998   *
4999   * @private
5000   */
5001  handleResponsiveMaxHeight() {
5002    const parents = document.querySelectorAll(`.${this.options.parentClass}`);
5003    parents.forEach((parent) => {
5004      const figure = parent.querySelector(`.${this.options.figureClass}`);
5005      if (!figure) return;
5006
5007      const maxHeight = parent.dataset.maxHeight;
5008      const mobileWidth = parent.dataset.mobileWidth;
5009
5010      if (maxHeight) {
5011        if (!mobileWidth || window.innerWidth <= parseInt(mobileWidth, 10)) {
5012          // Apply max-height and enable vertical scrolling
5013          figure.style.maxHeight = `${maxHeight}px`;
5014          figure.style.overflowY = 'auto';
5015
5016          // Ensure top/bottom shadows are available for vertical scrolling
5017          const shadowTop = parent.querySelector(
5018            `.${this.options.shadowTopClass}`,
5019          );
5020          const shadowBottom = parent.querySelector(
5021            `.${this.options.shadowBottomClass}`,
5022          );
5023          shadowTop?.classList.add('visible');
5024          shadowBottom?.classList.add('visible');
5025        } else {
5026          // Clear max-height and remove vertical shadows
5027          figure.style.maxHeight = '';
5028          figure.style.overflowY = '';
5029
5030          const shadowTop = parent.querySelector(
5031            `.${this.options.shadowTopClass}`,
5032          );
5033          const shadowBottom = parent.querySelector(
5034            `.${this.options.shadowBottomClass}`,
5035          );
5036          shadowTop?.classList.remove('visible');
5037          shadowBottom?.classList.remove('visible');
5038        }
5039      }
5040    });
5041  }
5042}
5043
5044// Initialize TableWrapper
5045document.addEventListener('DOMContentLoaded', () => {
5046  const tableWrapper = new TableWrapper();
5047  tableWrapper.init();
5048});
5049/**
5050 * Custom JavaScript overrides for Elastic Search integration.
5051 */
5052
5053// This will remove attributes that are not needed
5054function waitForElm(selector) {
5055    return new Promise(resolve => {
5056        if (document.querySelector(selector)) {
5057            return resolve(document.querySelector(selector));
5058        }
5059
5060        const observer = new MutationObserver(() => {
5061            const elem = document.querySelector(selector);
5062            if (elem) {
5063                resolve(elem);
5064                observer.disconnect();
5065            }
5066        });
5067
5068        observer.observe(document.body, {
5069            childList: true,
5070            subtree: true
5071        });
5072    });
5073}
5074
5075// Wait for the Elastic Search input form to load, then remove unneeded ARIA attributes
5076waitForElm('.sui-layout-header__inner form').then((elm) => {
5077    if (elm) {
5078        elm.removeAttribute('role');
5079        elm.removeAttribute('aria-expanded');
5080        elm.removeAttribute('aria-haspopup');
5081        elm.removeAttribute('aria-labelledby');
5082    }
5083});
5084var jq=jQuery.noConflict();var companyVars=JSON.parse(document.getElementById("companyVars").innerText),asset_url=companyVars.asset_url,website_base_url=companyVars.website_base_url,ir_base_url=companyVars.ir_base_url,hCaptchaSiteKey=companyVars.hCaptchaSiteKey,isQmod=companyVars.isQmod,userSnapEnabled=companyVars.userSnapEnabled;jq.fn.accessibleClick=function(handler){jq(this).on("click keyup",function(event){if(event.type==="keyup"){var code=event.which;if(code!==32&&code!==13){return false}}handler.call(this,event)})};var captchaIDs={};function hCaptchaOnLoad(){
5085// Add hcaptcha to all forms on a page
5086jq(".h-captcha").each(function(){var form=jq(this).closest("form");window.captchaIDs[form[0].id]=hcaptcha.render(this.id,{sitekey:window.hCaptchaSiteKey,callback:function(token){jq("<input>",{type:"hidden",name:"h-captcha-response",value:token}).appendTo(form);form.submit()}})})}function validate_forms(){var validator=jq(".validate-form");validator.each(function(){var $form=jq(this);var formID=$form.attr("id");jq(this).validate({errorElement:"span",errorClass:"error eq-error",rules:{password_confirm:{equalTo:"#password",messages:{equalTo:"Passwords must be the same"}}},errorPlacement:function(error,element){var elementId=element.attr("id");var errorId=elementId+"-error";element.attr("aria-describedby",errorId);element.attr("aria-invalid","true");if(element.attr("type")==="radio"){error.prependTo(element.parent())}else{error.appendTo(element.parent())}},success:function(label){var elementId=label.attr("id").replace("-error","");var errorId=elementId+"-error";var inputElement=jq("#"+elementId);inputElement.removeAttr("aria-describedby");inputElement.removeAttr("aria-invalid");label.remove()},submitHandler:function(form){if(hcaptcha.getResponse(window.captchaIDs[formID])){form.submit()}else{hcaptcha.reset(window.captchaIDs[formID]);hcaptcha.execute(window.captchaIDs[formID])}},invalidHandler:function(event,validator){if(validator.errorList.length>=1){let errorElement=validator.errorList[0].element;errorElement.scrollIntoView({behavior:"instant",block:"center"});errorElement.focus()}}})});jq.validator.methods.email=function(value,element){return this.optional(element)||/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(value)}}jq(document).ready(function(){validate_forms();const paginationMobile=jq("#pagination--mobile");if(paginationMobile.length){jq(this).find("#pagination--mobile-select").change(function(){var selectedPage=jq(this).val();location.href=encodeURI(selectedPage)})}
5087// Add noopener to all links that open in a new tab.
5088jq('a[target="_blank"]').each(function(){var linkRel=jq(this).attr("rel");if(!linkRel||linkRel&&linkRel.indexOf("noopener")==-1){var newRel=linkRel===undefined?"":linkRel;newRel+=linkRel&&linkRel.length?" noopener":"noopener";jq(this).attr("rel",newRel)}
5089// Add descriptive text for screen readers if there's not already a title attr set
5090if(this.getAttribute("title")===null){this.setAttribute("title","Opens in a new window")}});addRequiredAsteriskToLabels();var scrollMore=document.getElementById("scroll-more");var mainContent=document.getElementById("mainContent");if(!mainContent&&scrollMore){scrollMore.style.display="none"}else if(scrollMore){jq(scrollMore).accessibleClick(function(e){e.preventDefault();
5091// Adjust scroll offset based on header height
5092let header=document.querySelector("#header");var animationDistance=window.innerWidth<=991&&header&&window.getComputedStyle(header).getPropertyValue("position")!=="fixed"?0:jq("#header").outerHeight();jq("html, body").animate({scrollTop:jq(mainContent).offset().top-animationDistance},"slow")})}jq("#header.affixed").affix({offset:{top:1}});
5093//Circle Stat with Percentage Animation
5094var divPercentage=jq(".stats-row-w-percents");if(divPercentage.length){jq(document).bind("scroll",function(ev){var scrollOffset=jq(document).scrollTop();var containerOffset=jq(".stats-row-w-percents").offset().top-window.innerHeight;if(scrollOffset>containerOffset){jq(".stats-row-w-percents .stat").each(function(){var percDiv=jq(this).find(".number"),svgElm=jq(this).find(".circle"),percentNumber=jq(this).attr("data-percent");svgElm.attr("stroke-dasharray",percentNumber+", 100");svgElm.addClass("active");jq({percentage:0}).stop(true).animate({percentage:percentNumber},{duration:2e3,step:function(){var percentageVal=Math.round(this.percentage);percDiv.text(percentageVal+"%")}}).promise().done(function(){percDiv.text(percentNumber+"%")})});jq(document).unbind("scroll")}})}var menuRight=document.getElementById("mobile-nav"),showRight=document.getElementById("showRight");jq.fn.openMobileRightMenu=function(){toggleMenuKeybind();jq(".mobile-nav-trigger").toggleClass("active");jq("body").toggleClass("push-to-left");jq(menuRight).toggleClass("cbp-spmenu-open");disableOther("showRight");if(jq(".mobile-nav-trigger").hasClass("active")){jq(".mobile-nav-trigger").attr("aria-label","Close main navigation");jq(".mobile-nav-trigger").attr("aria-expanded","true")}else{jq(".mobile-nav-trigger").attr("aria-label","Expand main navigation");
5094jq(".mobile-nav-trigger").attr("aria-expanded","false")}};jq(".main-menu a").on("click",function(){if(jq(".mobile-nav-trigger").hasClass("active")){jq(".mobile-nav-trigger").removeClass("active");jq("body").removeClass("push-to-left");jq(menuRight).removeClass("cbp-spmenu-open")}});function disableOther(button){if(button!=="showRight"){jq(showRight).toggleClass("disabled")}}function toggleMenuKeybind(){var $body=jq("body");if($body.hasClass("push-to-left")){$body.off("keydown")}else{$body.on("keydown",function(e){if(e.which==27){jq(".main-nav").toggleClass("active");jq(showRight).toggleClass("active");jq("body").toggleClass("push-to-left");jq(menuRight).toggleClass("cbp-spmenu-open");disableOther("showRight");$body.off("keydown")}})}}var fileInput=jq(".file-text input");fileInput.change(function(e){$this=jq(this);var val=$this.val().split("\\");var length=val.length;var filename=val[length-1];jq(this).parent(".file-text").children(".text-wrapper").text(filename)});jq("#sec-filing-filter select").on("change",function(e){jq(this).closest("form").submit()});var $filterSelect=jq(".row-filter .eq-select");if($filterSelect.length){$filterSelect.on("change",function(){var url=window.location.protocol+"//"+window.location.hostname+window.location.pathname;var query="";jq(".row-filter .eq-select").each(function(){var prefix="&";if(query.length===0){prefix="?"}if(jq(this).val()!=-1){query+=prefix+jq(this).attr("name")+"="+jq(this).val()}});url=url+query;if(!query){var full_url=url+"?year="+jq(this).val();if(window.location.href!=full_url){window.location.href=full_url}}else{if(window.location.href!=url){window.location.href=url}}})}if(jq(".module-resources-page").length){var viewModel=new ViewModel(JSON.parse(document.getElementById("resourcesVm").innerText))}if(jq(".news-slider").length){jq(".news-slider").slick(JSON.parse(document.getElementById("newsSlickOptions").innerText))}jq(".spr-expandable").hide();jq(".spr-toggle-expandable").click(function(){jq(this).next(".spr-expandable").toggle("blind");jq(this).toggleClass("expanded");if(jq(this).hasClass("expanded")){jq(this).attr("aria-pressed",true)}else{jq(this).attr("aria-pressed",false)}});var $majorAnnouncement=jq("#majorAnnouncement");var majorAnnouncementCookieName="eqMajorAnnouncement";if($majorAnnouncement.length){var majorAnnouncementTimestamp=$majorAnnouncement.data("timestamp");var majorAnnouncementCookie=Cookies.get(majorAnnouncementCookieName);if(majorAnnouncementCookie!=majorAnnouncementTimestamp){let announcements=new EqDialog({show_close_button:true});announcements.open("inline","majorAnnouncement");Cookies.set(majorAnnouncementCookieName,majorAnnouncementTimestamp,{secure:true,domain:window.location.hostname,expires:7})}}
5095// Add Class to body if there is a scoll bar in the page
5096if(jq(document).width()<jq(window).outerWidth()){jq("body").addClass("scrollbar")}function resize_events(){if(window.innerWidth<=991){jq(".mobile-nav-trigger").attr("tabindex",0);jq(".mobile-sub-nav-trigger").attr("tabindex",0);jq(".has-children ul li a").attr("tabindex","-1");jq(".cbp-spmenu > .main-menu ul").attr("aria-hidden","true");jq(".has-children ul").attr("aria-hidden","true");jq(".cbp-spmenu > .main-menu > li > ul").attr("aria-hidden","true");if(jq(".cbp-spmenu").hasClass("cbp-spmenu-open")){jq(".cbp-spmenu > .main-menu > li > a").attr("tabindex",0)}else{jq(".cbp-spmenu > .main-menu > li > a").attr("tabindex",-1)}}else{jq(".mobile-nav-trigger").attr("tabindex","");jq(".mobile-sub-nav-trigger").attr("tabindex","");jq(".has-children ul li a").attr("tabindex","");jq(".has-children ul").attr("aria-hidden","false");jq(".cbp-spmenu > .main-menu > li > ul").attr("aria-hidden","false");jq(".cbp-spmenu > .main-menu > li > a").attr("tabindex",0)}}resize_events();jq(window).resize(function(evt){resize_events()});jq(".mobile-nav-trigger").on("click",function(evt){evt.stopPropagation();jq(this).openMobileRightMenu();resize_events();return false});jq(".cbp-spmenu").accessibleClick(function(evt){evt.stopPropagation()});jq("body").on("click",function(evt){if(this.classList.contains("push-to-left")){jq(this).openMobileRightMenu();resize_events();return false}});var windowW=window.innerWidth;jq(window).resize(function(){windowW=window.innerWidth});jq(".main-menu > .has-children > a").accessibleClick(function(e){if(windowW>=992)return;if(this.parentElement.classList.contains("active")){this.parentElement.classList.remove("active");return}jq(".main-menu > .has-children").each(function(){this.classList.remove("active")});this.parentElement.classList.add("active")});jq("#mobile-nav ul a").accessibleClick(function(e){if(windowW>=992)return;let navMenu=document.getElementById("mobile-nav");jq("#mobile-nav").toggleClass("cbp-spmenu-open");jq("body").toggleClass("push-to-left");jq("#showRight").toggleClass("active")});jq(".mobile-sub-nav-trigger").accessibleClick(function(evt){if(evt.type!="click"){jq(this).click();return false}});
5097//Accessible click for Financial Results collapse elements
5098jq(".quarterly-results [role=button]").accessibleClick(function(evt){if(evt.type!="click"){jq(this).click();return false}});var FinancialResultsExpandBtn=jq(".expand-all-quarters");var QuarterHeaders=jq(".quarterly-results .header");FinancialResultsExpandBtn.on("click",function(e){if(jq(this).text()=="Expand All"){QuarterHeaders.filter(".collapsed").click()}else{QuarterHeaders.filter(":not(collapsed)").click()}});QuarterHeaders.on("click",function(e){if(FinancialResultsExpandBtn.length){
5099//Allow for collapse animation to complete
5100setTimeout(updateExpandBtnText,200,FinancialResultsExpandBtn,".quarterly-results .header")}});
5101// Allows upload of cover letter via styled link by triggering hidden upload/input field
5102jq("#cover_letter").on("click",function(e){e.preventDefault();jq("#upload_cover_letter:hidden").trigger("click")});jq(".chart-table-expander").on("click",function(e){e.target.classList.toggle("hidden");e.target.parentElement.querySelector(".chart-legend").classList.toggle("hidden")});jq(".report .th").each(function(){const innerContent=jq(this).html().trim();const regex=/^<sup>(\[\d+\]|\d+|\[\*\]|\*)<\/sup>$/;if(regex.test(innerContent)){jq(this).css({width:"0%","padding-left":"0"})}});
5103/**
5104     * Accessibility Fix for Radio Inputs
5105     **/let radioLabels=document.querySelectorAll(".eq-radio label");radioLabels.forEach(function(radioLabel){radioLabel.setAttribute("tabindex","0");radioLabel.addEventListener("keydown",function(e){if(e.key===" "||e.keyCode===32){e.preventDefault();let associatedRadio=document.getElementById(this.getAttribute("for"));if(associatedRadio&&!associatedRadio.checked){associatedRadio.checked=true;associatedRadio.dispatchEvent(new Event("change"))}}})});
5106// MOBILE MENU TRAP FOCUS
5107let lastNavItem=jq(".main-menu > li:last-child > a");let mobileTrigger=jq(".mobile-nav-trigger");lastNavItem.on("keydown",function(e){if(!e.shiftKey&&e.key==="Tab"&&mobileTrigger.hasClass("active")){e.preventDefault();mobileTrigger.focus()}});mobileTrigger.on("keydown",function(e){if(e.shiftKey&&e.key==="Tab"&&mobileTrigger.hasClass("active")){e.preventDefault();lastNavItem.focus()}});
5108//CCPA Request Form
5109jq('#ccpa-request-form input[name="claim"]').change(function(){let value=jq(this).val();if(value=="Resident"){jq(".show-resident").removeClass("hide");jq(".show-representative").addClass("hide");jq("#certify_resident").addClass("required");jq("#certify_resident").attr("aria-required","true");jq(".show-representative .conditional-required, #certify_representative").removeClass("required");jq(".show-representative .conditional-required, #certify_representative").removeClass("error");jq(".show-representative .conditional-required, #certify_representative").removeAttr("aria-required")}else if(value=="Representative"){jq(".show-representative").removeClass("hide");jq(".show-resident").addClass("hide");jq("#certify_resident").removeClass("required");jq("#certify_resident").removeClass("error");jq("#certify_resident").removeAttr("aria-required");jq(".show-representative .conditional-required, #certify_representative").addClass("required");jq(".show-representative .conditional-required, #certify_representative").attr("aria-required","true")}});let forms=jq("form");if(forms.length>1){const idCounts={};forms.each(function(formIndex,form){jq(form).find("input").each(function(inputIndex,input){const currentId=jq(input).attr("id");if(currentId){if(!idCounts[currentId]){idCounts[currentId]=0}idCounts[currentId]++;const uniqueId=`${currentId}_${formIndex}`;jq(input).attr("id",uniqueId);jq(form).find(`label[for="${currentId}"]`).attr("for",uniqueId)}})})}jq(".collapse").on("shown.bs.collapse",function(event){let contentElement=jq(this).find(".text")[0];if(contentElement){if(!isElementInViewport(contentElement)){contentElement.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})}}});let eq_dialogs=new EqDialog;eq_dialogs.init()});function isElementInViewport(el){var rect=el.getBoundingClientRect();return rect.top>=0&&rect.left>=0&&rect.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&rect.right<=(window.innerWidth||document.documentElement.clientWidth)}
5110// Adds asterisk to the labels of required form inputs
5111function addRequiredAsteriskToLabels(){jq("form .required").siblings("label").each(function(){let currentText=jq(this).text();jq(this).text(currentText+"*")})}
5112/**
5113 * addCustomErrorFormHandlers
5114 *
5115 * Sets up custom error handling for forms, specifically targeting required
5116 * checkboxes and radio button groups. Displays error messages and applies
5117 * border styling to elements that fail validation. Enhances accessibility by
5118 * updating ARIA attributes based on user interactions.
5119 *
5120 * - Applies different border colors for elements within dark-themed sections.
5121 * - Adds or removes error messages and styles based on validation results.
5122 * - Updates ARIA attributes for better accessibility.
5123 */function addCustomErrorFormHandlers(){const BORDER_COLOR_LIGHT="#D40033";const BORDER_COLOR_DARK="#FA003A";jq("form").on("submit",function(e){jq("ul.checkboxes.required, ul.radios.required").each(function(){let type=jq(this).hasClass("checkboxes")?"checkbox":"radio";let borderColor=jq(this).closest(".dark").length>0?BORDER_COLOR_DARK:BORDER_COLOR_LIGHT;if(jq(this).find('input[type="'+type+'"]:checked').length===0){jq(this).css("border","1p
5123x solid "+borderColor);let errorId=jq(this).parent().attr("aria-labelledby")+"-error";jq(this).parent().attr("aria-describedby",errorId);
5124// Add error message if it does not already exist
5125if(jq(this).siblings(".eq-error").length===0){jq(this).after(`<span class="eq-error" id="${errorId}">This field is required</span>`)}}else{jq(this).css("border","");jq(this).siblings(".eq-error").remove();jq(this).parent().removeAttr("aria-describedby")}})});jq(document).on("change",'ul.checkboxes input[type="checkbox"], ul.radios input[type="radio"]',function(){let ul=jq(this).closest("ul.checkboxes, ul.radios");
5126// Update ARIA attributes for accessibility
5127if(jq(this).attr("type")==="radio"){ul.find('input[type="radio"]').attr("aria-checked","false");jq(this).attr("aria-checked","true")}else{jq(this).attr("aria-checked",this.checked)}if(ul.find("input:checked").length>0){ul.css("border","");ul.siblings(".eq-error").remove()}});
5128// Initialize ARIA attributes on page load
5129jq('ul.checkboxes input[type="checkbox"], ul.radios input[type="radio"]').each(function(){jq(this).attr("aria-checked",this.checked)})}jq(document).ready(function(){addCustomErrorFormHandlers()});let windowLocationHash=window.location.hash;if(windowLocationHash.length){let hashElement=jq(windowLocationHash);if(hashElement.length){let offset=0;let header=jq("#header");let subNav=jq(".sub-navigation");if(header.length){offset+=header.outerHeight()}if(subNav.length){offset+=subNav.outerHeight()}jq("html,body").animate({scrollTop:hashElement.offset().top-offset},300)}}jq('a[href*="#"]').on("click",function(event){if(jq(this).hasClass("chart-legend-trigger")||jq(this).hasClass("accordion-btn")||jq(this).hasClass("eq-dialog")||jq(this).closest(".tab-header").length){return}if(this.hash!==""){if(this.href==window.location.href){event.preventDefault()}let hash=this.hash;let id=hash.split("#")[1];let el=document.getElementById(id);if(el&&el.classList.contains("panel-collapse")){setTimeout(()=>{smoothScrollToHash(hash)},100)}else{smoothScrollToHash(hash)}}});function smoothScrollToHash(hash){if(hash.length){let hashElement=jq(hash);if(hashElement.length){let offset=0;let header=jq("#header");let subNav=jq(".sub-navigation");if(header.length){offset+=header.outerHeight()}if(subNav.length){offset+=subNav.outerHeight()}jq("html,body").animate({scrollTop:hashElement.offset().top-offset},800,function(){
5130// Add hash (#) to URL when done scrolling
5131window.location.hash=hash})}}}function elementsAreCollapsed(selector="[data-toggle='collapse']"){if(jq(selector+".collapsed").length){return true}else{return false}}function updateExpandBtnText(btn,collapseTarget){if(!btn){return}if(elementsAreCollapsed(collapseTarget)){btn.text("Expand All")}else{btn.text("Collapse All")}}jq("[id^=ir-sec-all]").change(function(){const parentCheckbox=jq(this);const childCheckboxes=parentCheckbox.closest(".eq-checkbox").find(".ir-sec-sub");if(parentCheckbox.is(":checked")){childCheckboxes.prop("checked",true).prop("disabled",true).attr("aria-checked",true).removeAttr("checked")}else{childCheckboxes.prop("checked",false).prop("disabled",false).attr("aria-checked",false).removeAttr("checked")}});
5132// Auto-uncheck parent if any child is unchecked
5133jq(".ir-sec-sub").change(function(){const parentCheckbox=jq("#ir-sec-all");const childCheckboxes=parentCheckbox.closest(".eq-checkbox").find(".ir-sec-sub");if(!jq(this).is(":checked")){parentCheckbox.prop("checked",false).attr("aria-checked",false).removeAttr("checked")}else{const allChecked=childCheckboxes.toArray().every(checkbox=>checkbox.checked);parentCheckbox.prop("checked",allChecked).attr("aria-checked",allChecked);if(allChecked){parentCheckbox.attr("checked","checked")}else{parentCheckbox.removeAttr("checked")}}});
5134// Additional Checkbox Groups Support for Nested Structure
5135jq("[id^=ir-sec-all_][id$=_1]").change(function(){const parentCheckbox=jq(this);const childCheckboxes=parentCheckbox.closest("li.eq-checkbox").find("ul li.eq-checkbox input.ir-sec-sub");if(parentCheckbox.is(":checked")){childCheckboxes.prop("checked",true).prop("disabled",true).attr("aria-checked",true).removeAttr("checked")}
5135else{childCheckboxes.prop("checked",false).prop("disabled",false).attr("aria-checked",false).removeAttr("checked")}});jq(document).ready(function(){jq("[id^=ir-sec-all_][id$=_1]:checked").trigger("change")});
5136// Auto-uncheck parent if any child is unchecked (for nested structure)
5137jq("ul.checkboxes .ir-sec-sub").change(function(){const parentCheckbox=jq(this).closest("li.eq-checkbox").prev('input[type="checkbox"]');const childCheckboxes=parentCheckbox.closest("li.eq-checkbox").find("ul li.eq-checkbox input.ir-sec-sub");if(!jq(this).is(":checked")){parentCheckbox.prop("checked",false).attr("aria-checked",false).removeAttr("checked")}else{const allChecked=childCheckboxes.toArray().every(checkbox=>checkbox.checked);parentCheckbox.prop("checked",allChecked).attr("aria-checked",allChecked);if(allChecked){parentCheckbox.attr("checked","checked")}else{parentCheckbox.removeAttr("checked")}}});var $timelineEl=jq(".module-timeline");if($timelineEl.length){var timeline={resizePoints:function(){if(jq(window).outerWidth()<768)return;jq(".point-wrapper").each(function(){var point=jq(this).find(".point");jq(this).css("height",point.outerHeight()/1.2)})}};var resizeTimer;jq(window).on("resize",function(e){clearTimeout(resizeTimer);resizeTimer=setTimeout(timeline.resizePoints,250)});timeline.resizePoints()}
5138//Add Class to body if page has scrollbar
5139jq(window).on("resize",function(e){if(jq(document).width()<jq(window).outerWidth()){jq("body").addClass("scrollbar")}else{jq("body").removeClass("scrollbar")}});
5140// Scroll More CTA templates
5141var scrollMore=document.getElementById("scroll-more-alt");if(scrollMore){jq(scrollMore).accessibleClick(function(e){e.preventDefault();var target=jq("#scroll-more-anchor");jq("html,body").animate({scrollTop:target.offset().top-jq("#header").height()},"slow")})}document.addEventListener("DOMContentLoaded",()=>{if(document.querySelector(".report")){const reportTable=document.querySelector(".report");if(reportTable){const tdWithLinks=reportTable.querySelectorAll("td a");tdWithLinks.forEach(aElement=>{const span=document.createElement("span");span.innerHTML=aElement.innerHTML;aElement.parentNode.replaceChild(span,aElement);span.classList.add("a")})}}});
5142// Accesibility Form
5143let formCounter=0;jq(".add-request").accessibleClick(function(){formCounter++;let newFields='<div class="info-block">'+'<div class="form-group">'+'<label for="url-'+formCounter+'">URL of requested document or webpage:</label>'+'<input type="text" name="url-'+formCounter+'" id="url-'+formCounter+'" value="" class="required form-control" placeholder="ex. https://www.website.com/page" />'+"</div>"+'<div class="form-group">'+'<label for="description-'+formCounter+'">Description of request or issue related to URL:</label>'+'<textarea name="description-'+formCounter+'" id="description-'+formCounter+'" value="" class="required form-control" placeholder="Enter a description of your request or issue related to the URL inputted above"></textarea>'+"</div>"+"</div>";jq(".request-info").append(newFields);jq("#url-"+formCounter).focus()});
5144/**
5145 * Global - Decorative Image Alt Check
5146 *
5147 * This will check all images across the site to see if the image has a
5148 * empty or missing alt attribute. If so, aria-hidden="true" will be set.
5149 */jq("img").each((ind,el)=>{if(!jq(el).attr("alt")||jq(el).attr("alt").trim()===""){jq(el).attr("aria-hidden","true")}});jq(document).ready(function(){let scrollMore=document.getElementById("scroll-more-midtown");if(scrollMore){jq(scrollMore).accessibleClick(function(e){e.preventDefault();let target=jq("#scroll-more-anchor");jq("html,body").animate({scrollTop:target.offset().top-jq("#header").height()},"slow")})}});const createSuperscriptLink=id=>`<a href="#footnoteDesc${id}" aria-describedby="footnoteDesc${id}" tabindex="0" data-footnote="${id}" class="span-asterisk"><sup>*</sup></a>`;let footnoteCounter=0;function processFootnotesInSection(stats,footnotes){footnotes.forEach(footnote=>{if(footnote.textContent.trim().startsWith("*")){footnote.outerHTML=`<p id="footnoteDesc${++footnoteCounter}" class="footnote-desc" aria-label="Footnote ${footnoteCounter}" role="status" tabindex="0">${footnote.innerHTML}</p>`}});
5149stats.forEach(stat=>{let localCounter=footnoteCounter-1;stat.innerHTML=stat.innerHTML.replace(/\*/g,()=>createSuperscriptLink(++localCounter))})}function processAllFootnotes(){const sections=document.querySelectorAll(".container");sections.forEach(section=>{const stats=section.querySelectorAll(".stat p, .stat-box p");const footnotes=section.querySelectorAll(".financial-disclaimer .financial-text p, .source p");processFootnotesInSection(stats,footnotes)})}document.addEventListener("DOMContentLoaded",processAllFootnotes);
5150/**
5151 * Adjusts the scroll position to ensure the focused element is visible within the viewport.
5152 *
5153 * The function checks if the element is above the visible area or below the viewport,
5154 * and if so, it adjusts the scroll position to bring the element into view with extra space.
5155 */function adjustScrollPosition(e){const headerHeight=document.querySelector("#header").offsetHeight;const extraSpace=80;const totalHeight=headerHeight+extraSpace;const elementTop=e.target.getBoundingClientRect().top;const elementBottom=e.target.getBoundingClientRect().bottom;let is_affixed=jq(e.target).closest(".affix").length;if(!is_affixed&&(elementTop<totalHeight||elementBottom>window.innerHeight)){window.scrollTo({top:elementTop+window.scrollY-totalHeight,behavior:"smooth"})}}document.addEventListener("keydown",e=>{if(e.key==="Tab"&&e.shiftKey){document.addEventListener("focusin",adjustScrollPosition)}else{document.removeEventListener("focusin",adjustScrollPosition)}});document.querySelectorAll(".full-news-article table, .financials table").forEach((table,index)=>{const parentWrapper=document.createElement("div");parentWrapper.className="tw-parent";parentWrapper.setAttribute("data-aria-label",`Table ${index+1}`);table.parentNode.insertBefore(parentWrapper,table);parentWrapper.appendChild(table)});document.addEventListener("keydown",event=>{const activeTab=document.activeElement.closest(".tab-header .nav-link");if(!activeTab)return;const tabHeader=activeTab.closest(".tab-header");const tabs=Array.from(tabHeader.querySelectorAll(".nav-link"));const currentIndex=tabs.indexOf(activeTab);let newIndex=-1;if(event.key==="ArrowRight"){newIndex=(currentIndex+1)%tabs.length}else if(event.key==="ArrowLeft"){newIndex=(currentIndex-1+tabs.length)%tabs.length}if(newIndex>=0){event.preventDefault();
5156// Activate the new tab
5157const newTab=tabs[newIndex];newTab.focus();newTab.click()}});
5158
5159/* Site-Specific JavaScript */
5160
5161document.addEventListener('DOMContentLoaded', function () {
5162    document.querySelectorAll('a[data-toggle="tab"]').forEach(function(tab) {
5163        tab.addEventListener('shown.bs.tab', function (e) {
5164            var targetId = tab.getAttribute('href');
5165            if (targetId) {
5166                var pane = document.querySelector(targetId);
5167                if (pane) {
5168                    pane.focus();
5169                }
5170            }
5171        });
5172        // Fallback for keyboard activation
5173        tab.addEventListener('keydown', function(e) {
5174            if (e.key === 'Enter' || e.key === ' ') {
5175                setTimeout(function() {
5176                    var targetId = tab.getAttribute('href');
5177                    if (targetId) {
5178                        var pane = document.querySelector(targetId);
5179                        if (pane) {
5180                            pane.focus();
5181                        }
5182                    }
5183                }, 0);
5184            }
5185        });
5186    });
5187});
5188
5189// Compensate for scrollbar width change on megamenu hover
5190(function() {
5191    const megamenuLinks = jq('.arm-navigation.js-navigation > .arm-navigation__menu > .arm-navigation__menu-link');
5192    var targetElement = jq('#container-d6786bf766 > .header');
5193
5194    // Attach mouseleave handler once, outside the loop
5195    targetElement.on('mouseleave', function() {
5196        if (targetElement) {
5197            targetElement.width('100%');
5198        }
5199    });
5200
5201    megamenuLinks.each(function(index, link) {
5202        jq(this).on('mouseenter', function() {
5203            var widthBefore = document.documentElement.clientWidth;
5204            // Use requestAnimationFrame to check width after any layout changes
5205            requestAnimationFrame(function() {
5206                var widthAfter = window.innerWidth;
5207                var diff = widthBefore - widthAfter;
5208                if (targetElement && diff !== 0) {
5209                    targetElement.width(widthBefore + 'px');
5210                }
5211            });
5212        });
5213    });
5214})();

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.