김예미

update menu1 - design

Showing 140 changed files with 10288 additions and 262 deletions
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 +/*!
2 + * Bootstrap v4.3.1 (https://getbootstrap.com/)
3 + * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 + */
6 +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t=t||self).bootstrap={},t.jQuery)}(this,function(t,p){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function l(o){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},e=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.forEach(function(t){var e,n,i;e=o,i=r[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return o}p=p&&p.hasOwnProperty("default")?p.default:p;var e="transitionend";function n(t){var e=this,n=!1;return p(this).one(m.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||m.triggerTransitionEnd(e)},t),this}var m={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=p(t).css("transition-duration"),n=p(t).css("transition-delay"),i=parseFloat(e),o=parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){p(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&m.isElement(r)?"element":(a=r,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"!=typeof t.getRootNode)return t instanceof ShadowRoot?t:t.parentNode?m.findShadowRoot(t.parentNode):null;var e=t.getRootNode();return e instanceof ShadowRoot?e:null}};p.fn.emulateTransitionEnd=n,p.event.special[m.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(p(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var o="alert",r="bs.alert",a="."+r,c=p.fn[o],h={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},u="alert",f="fade",d="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){p.removeData(this._element,r),this._element=null},t._getRootElement=function(t){var e=m.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=p(t).closest("."+u)[0]),n},t._triggerCloseEvent=function(t){var e=p.Event(h.CLOSE);return p(t).trigger(e),e},t._removeElement=function(e){var n=this;if(p(e).removeClass(d),p(e).hasClass(f)){var t=m.getTransitionDurationFromElement(e);p(e).one(m.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){p(t).detach().trigger(h.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(r);e||(e=new i(this),t.data(r,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();p(document).on(h.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),p.fn[o]=g._jQueryInterface,p.fn[o].Constructor=g,p.fn[o].noConflict=function(){return p.fn[o]=c,g._jQueryInterface};var _="button",v="bs.button",y="."+v,E=".data-api",b=p.fn[_],w="active",C="btn",T="focus",S='[data-toggle^="button"]',D='[data-toggle="buttons"]',I='input:not([type="hidden"])',A=".active",O=".btn",N={CLICK_DATA_API:"click"+y+E,FOCUS_BLUR_DATA_API:"focus"+y+E+" blur"+y+E},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=p(this._element).closest(D)[0];if(n){var i=this._element.querySelector(I);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(w))t=!1;else{var o=n.querySelector(A);o&&p(o).removeClass(w)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(w),p(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(w)),t&&p(this._element).toggleClass(w)},t.dispose=function(){p.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=p(this).data(v);t||(t=new n(this),p(this).data(v,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),n}();p(document).on(N.CLICK_DATA_API,S,function(t){t.preventDefault();var e=t.target;p(e).hasClass(C)||(e=p(e).closest(O)),k._jQueryInterface.call(p(e),"toggle")}).on(N.FOCUS_BLUR_DATA_API,S,function(t){var e=p(t.target).closest(O)[0];p(e).toggleClass(T,/^focus(in)?$/.test(t.type))}),p.fn[_]=k._jQueryInterface,p.fn[_].Constructor=k,p.fn[_].noConflict=function(){return p.fn[_]=b,k._jQueryInterface};var L="carousel",x="bs.carousel",P="."+x,H=".data-api",j=p.fn[L],R={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},F={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},M="next",W="prev",U="left",B="right",q={SLIDE:"slide"+P,SLID:"slid"+P,KEYDOWN:"keydown"+P,MOUSEENTER:"mouseenter"+P,MOUSELEAVE:"mouseleave"+P,TOUCHSTART:"touchstart"+P,TOUCHMOVE:"touchmove"+P,TOUCHEND:"touchend"+P,POINTERDOWN:"pointerdown"+P,POINTERUP:"pointerup"+P,DRAG_START:"dragstart"+P,LOAD_DATA_API:"load"+P+H,CLICK_DATA_API:"click"+P+H},K="carousel",Q="active",V="slide",Y="carousel-item-right",z="carousel-item-left",X="carousel-item-next",G="carousel-item-prev",$="pointer-event",J=".active",Z=".active.carousel-item",tt=".carousel-item",et=".carousel-item img",nt=".carousel-item-next, .carousel-item-prev",it=".carousel-indicators",ot="[data-slide], [data-slide-to]",rt='[data-ride="carousel"]',st={TOUCH:"touch",PEN:"pen"},at=function(){function r(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(it),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=r.prototype;return t.next=function(){this._isSliding||this._slide(M)},t.nextWhenVisible=function(){!document.hidden&&p(this._element).is(":visible")&&"hidden"!==p(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(W)},t.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(nt)&&(m.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=this._element.querySelector(Z);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)p(this._element).one(q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?M:W;this._slide(i,this._items[t])}},t.dispose=function(){p(this._element).off(P),p.removeData(this._element,x),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=l({},R,t),m.typeCheckConfig(L,t,F),t},t._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;0<e&&this.prev(),e<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&p(this._element).on(q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&p(this._element).on(q.MOUSEENTER,function(t){return e.pause(t)}).on(q.MOUSELEAVE,function(t){return e.cycle(t)}),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var n=this;if(this._touchSupported){var e=function(t){n._pointerEvent&&st[t.originalEvent.pointerType.toUpperCase()]?n.touchStartX=t.originalEvent.clientX:n._pointerEvent||(n.touchStartX=t.originalEvent.touches[0].clientX)},i=function(t){n._pointerEvent&&st[t.originalEvent.pointerType.toUpperCase()]&&(n.touchDeltaX=t.originalEvent.clientX-n.touchStartX),n._handleSwipe(),"hover"===n._config.pause&&(n.pause(),n.touchTimeout&&clearTimeout(n.touchTimeout),n.touchTimeout=setTimeout(function(t){return n.cycle(t)},500+n._config.interval))};p(this._element.querySelectorAll(et)).on(q.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(p(this._element).on(q.POINTERDOWN,function(t){return e(t)}),p(this._element).on(q.POINTERUP,function(t){return i(t)}),this._element.classList.add($)):(p(this._element).on(q.TOUCHSTART,function(t){return e(t)}),p(this._element).on(q.TOUCHMOVE,function(t){var e;(e=t).originalEvent.touches&&1<e.originalEvent.touches.length?n.touchDeltaX=0:n.touchDeltaX=e.originalEvent.touches[0].clientX-n.touchStartX}),p(this._element).on(q.TOUCHEND,function(t){return i(t)}))}},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(tt)):[],this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===M,i=t===W,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===W?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(Z)),o=p.Event(q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return p(this._element).trigger(o),o},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(J));p(e).removeClass(Q);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&p(n).addClass(Q)}},t._slide=function(t,e){var n,i,o,r=this,s=this._element.querySelector(Z),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(o=t===M?(n=z,i=X,U):(n=Y,i=G,B),l&&p(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=p.Event(q.SLID,{relatedTarget:l,direction:o,from:a,to:c});if(p(this._element).hasClass(V)){p(l).addClass(i),m.reflow(l),p(s).addClass(n),p(l).addClass(n);var f=parseInt(l.getAttribute("data-interval"),10);this._config.interval=f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,f):this._config.defaultInterval||this._config.interval;var d=m.getTransitionDurationFromElement(s);p(s).one(m.TRANSITION_END,function(){p(l).removeClass(n+" "+i).addClass(Q),p(s).removeClass(Q+" "+i+" "+n),r._isSliding=!1,setTimeout(function(){return p(r._element).trigger(u)},0)}).emulateTransitionEnd(d)}else p(s).removeClass(Q),p(l).addClass(Q),this._isSliding=!1,p(this._element).trigger(u);h&&this.cycle()}},r._jQueryInterface=function(i){return this.each(function(){var t=p(this).data(x),e=l({},R,p(this).data());"object"==typeof i&&(e=l({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new r(this,e),p(this).data(x,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&e.ride&&(t.pause(),t.cycle())})},r._dataApiClickHandler=function(t){var e=m.getSelectorFromElement(this);if(e){var n=p(e)[0];if(n&&p(n).hasClass(K)){var i=l({},p(n).data(),p(this).data()),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),r._jQueryInterface.call(p(n),i),o&&p(n).data(x).to(o),t.preventDefault()}}},s(r,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return R}}]),r}();p(document).on(q.CLICK_DATA_API,ot,at._dataApiClickHandler),p(window).on(q.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(rt)),e=0,n=t.length;e<n;e++){var i=p(t[e]);at._jQueryInterface.call(i,i.data())}}),p.fn[L]=at._jQueryInterface,p.fn[L].Constructor=at,p.fn[L].noConflict=function(){return p.fn[L]=j,at._jQueryInterface};var lt="collapse",ct="bs.collapse",ht="."+ct,ut=p.fn[lt],ft={toggle:!0,parent:""},dt={toggle:"boolean",parent:"(string|element)"},pt={SHOW:"show"+ht,SHOWN:"shown"+ht,HIDE:"hide"+ht,HIDDEN:"hidden"+ht,CLICK_DATA_API:"click"+ht+".data-api"},mt="show",gt="collapse",_t="collapsing",vt="collapsed",yt="width",Et="height",bt=".show, .collapsing",wt='[data-toggle="collapse"]',Ct=function(){function a(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(wt)),i=0,o=n.length;i<o;i++){var r=n[i],s=m.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(t){return t===e});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){p(this._element).hasClass(mt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!p(this._element).hasClass(mt)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(bt)).filter(function(t){return"string"==typeof n._config.parent?t.getAttribute("data-parent")===n._config.parent:t.classList.contains(gt)})).length&&(t=null),!(t&&(e=p(t).not(this._selector).data(ct))&&e._isTransitioning))){var i=p.Event(pt.SHOW);if(p(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(p(t).not(this._selector),"hide"),e||p(t).data(ct,null));var o=this._getDimension();p(this._element).removeClass(gt).addClass(_t),this._element.style[o]=0,this._triggerArray.length&&p(this._triggerArray).removeClass(vt).attr("aria-expanded",!0),this.setTransitioning(!0);var r="scroll"+(o[0].toUpperCase()+o.slice(1)),s=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(){p(n._element).removeClass(_t).addClass(gt).addClass(mt),n._element.style[o]="",n.setTransitioning(!1),p(n._element).trigger(pt.SHOWN)}).emulateTransitionEnd(s),this._element.style[o]=this._element[r]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&p(this._element).hasClass(mt)){var e=p.Event(pt.HIDE);if(p(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",m.reflow(this._element),p(this._element).addClass(_t).removeClass(gt).removeClass(mt);var i=this._triggerArray.length;if(0<i)for(var o=0;o<i;o++){var r=this._triggerArray[o],s=m.getSelectorFromElement(r);if(null!==s)p([].slice.call(document.querySelectorAll(s))).hasClass(mt)||p(r).addClass(vt).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(){t.setTransitioning(!1),p(t._element).removeClass(_t).addClass(gt).trigger(pt.HIDDEN)}).emulateTransitionEnd(a)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){p.removeData(this._element,ct),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=l({},ft,t)).toggle=Boolean(t.toggle),m.typeCheckConfig(lt,t,dt),t},t._getDimension=function(){return p(this._element).hasClass(yt)?yt:Et},t._getParent=function(){var t,n=this;m.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(t.querySelectorAll(e));return p(i).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){var n=p(t).hasClass(mt);e.length&&p(e).toggleClass(vt,!n).attr("aria-expanded",n)},a._getTargetFromElement=function(t){var e=m.getSelectorFromElement(t);return e?document.querySelector(e):null},a._jQueryInterface=function(i){return this.each(function(){var t=p(this),e=t.data(ct),n=l({},ft,t.data(),"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(ct,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ft}}]),a}();p(document).on(pt.CLICK_DATA_API,wt,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=p(this),e=m.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(e));p(i).each(function(){var t=p(this),e=t.data(ct)?"toggle":n.data();Ct._jQueryInterface.call(t,e)})}),p.fn[lt]=Ct._jQueryInterface,p.fn[lt].Constructor=Ct,p.fn[lt].noConflict=function(){return p.fn[lt]=ut,Ct._jQueryInterface};for(var Tt="undefined"!=typeof window&&"undefined"!=typeof document,St=["Edge","Trident","Firefox"],Dt=0,It=0;It<St.length;It+=1)if(Tt&&0<=navigator.userAgent.indexOf(St[It])){Dt=1;break}var At=Tt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},Dt))}};function Ot(t){return t&&"[object Function]"==={}.toString.call(t)}function Nt(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function kt(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function Lt(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Nt(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:Lt(kt(t))}var xt=Tt&&!(!window.MSInputMethodContext||!document.documentMode),Pt=Tt&&/MSIE 10/.test(navigator.userAgent);function Ht(t){return 11===t?xt:10===t?Pt:xt||Pt}function jt(t){if(!t)return document.documentElement;for(var e=Ht(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===Nt(n,"position")?jt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function Rt(t){return null!==t.parentNode?Rt(t.parentNode):t}function Ft(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&jt(s.firstElementChild)!==s?jt(l):l;var c=Rt(t);return c.host?Ft(c.host,e):Ft(t,Rt(e).host)}function Mt(t){var e="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"!==n&&"HTML"!==n)return t[e];var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}function Wt(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function Ut(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Ht(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function Bt(t){var e=t.body,n=t.documentElement,i=Ht(10)&&getComputedStyle(n);return{height:Ut("Height",e,n,i),width:Ut("Width",e,n,i)}}var qt=function(){function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}}(),Kt=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Qt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Vt(t){return Qt({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Yt(t){var e={};try{if(Ht(10)){e=t.getBoundingClientRect();var n=Mt(t,"top"),i=Mt(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?Bt(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var h=Nt(t);l-=Wt(h,"x"),c-=Wt(h,"y"),o.width-=l,o.height-=c}return Vt(o)}function zt(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Ht(10),o="HTML"===e.nodeName,r=Yt(t),s=Yt(e),a=Lt(t),l=Nt(e),c=parseFloat(l.borderTopWidth,10),h=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=Vt({top:r.top-s.top-c,left:r.left-s.left-h,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var f=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-f,u.bottom-=c-f,u.left-=h-d,u.right-=h-d,u.marginTop=f,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Mt(e,"top"),o=Mt(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Xt(t){if(!t||!t.parentElement||Ht())return document.documentElement;for(var e=t.parentElement;e&&"none"===Nt(e,"transform");)e=e.parentElement;return e||document.documentElement}function Gt(t,e,n,i){var o=4<arguments.length&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Xt(t):Ft(t,e);if("viewport"===i)r=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=zt(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:Mt(n),a=e?0:Mt(n,"left");return Vt({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=Lt(kt(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=zt(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===Nt(e,"position"))return!0;var i=kt(e);return!!i&&t(i)}(s))r=l;else{var c=Bt(t.ownerDocument),h=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=h+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var f="number"==typeof(n=n||0);return r.left+=f?n:n.left||0,r.top+=f?n:n.top||0,r.right-=f?n:n.right||0,r.bottom-=f?n:n.bottom||0,r}function $t(t,e,i,n,o){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Gt(i,n,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Qt({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight}),h=0<c.length?c[0].key:l[0].key,u=t.split("-")[1];return h+(u?"-"+u:"")}function Jt(t,e,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return zt(n,i?Xt(e):Ft(e,n),i)}function Zt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function te(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function ee(t,e,n){n=n.split("-")[0];var i=Zt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[te(a)],o}function ne(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ie(t,n,e){return(void 0===e?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=ne(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",e))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var e=t.function||t.fn;t.enabled&&Ot(e)&&(n.offsets.popper=Vt(n.offsets.popper),n.offsets.reference=Vt(n.offsets.reference),n=e(n,t))}),n}function oe(t,n){return t.some(function(t){var e=t.name;return t.enabled&&e===n})}function re(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function se(t){var e=t.ownerDocument;return e?e.defaultView:window}function ae(t,e,n,i){n.updateBound=i,se(t).addEventListener("resize",n.updateBound,{passive:!0});var o=Lt(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(Lt(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function le(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,se(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function ce(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function he(n,i){Object.keys(i).forEach(function(t){var e="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&ce(i[t])&&(e="px"),n.style[t]=i[t]+e})}var ue=Tt&&/Firefox/i.test(navigator.userAgent);function fe(t,e,n){var i=ne(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var de=["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"],pe=de.slice(3);function me(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=pe.indexOf(t),i=pe.slice(n+1).concat(pe.slice(0,n));return e?i.reverse():i}var ge="flip",_e="clockwise",ve="counterclockwise";function ye(t,o,r,e){var s=[0,0],a=-1!==["right","left"].indexOf(e),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),i=n.indexOf(ne(n,function(t){return-1!==t.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(t,e){var n=(1===e?!a:a)?"height":"width",i=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,i=!0,t):i?(t[t.length-1]+=e,i=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0!==s.indexOf("%"))return"vh"!==s&&"vw"!==s?r:("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Vt(a)[e]/100*r}(t,n,o,r)})})).forEach(function(n,i){n.forEach(function(t,e){ce(t)&&(s[i]+=t*("-"===n[e-1]?-1:1))})}),s}var Ee={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",h={start:Kt({},l,r[l]),end:Kt({},l,r[l]+r[c]-s[c])};t.offsets.popper=Qt({},s,h[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=ce(+n)?[+n,0]:ye(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,i){var e=i.boundariesElement||jt(t.instance.popper);t.instance.reference===e&&(e=jt(e));var n=re("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[n];o.top="",o.left="",o[n]="";var l=Gt(t.instance.popper,t.instance.reference,i.padding,e,t.positionFixed);o.top=r,o.left=s,o[n]=a,i.boundaries=l;var c=i.priority,h=t.offsets.popper,u={primary:function(t){var e=h[t];return h[t]<l[t]&&!i.escapeWithReference&&(e=Math.max(h[t],l[t])),Kt({},t,e)},secondary:function(t){var e="right"===t?"left":"top",n=h[e];return h[t]>l[t]&&!i.escapeWithReference&&(n=Math.min(h[e],l[t]-("right"===t?h.width:h.height))),Kt({},e,n)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";h=Qt({},h,u[e](t))}),t.offsets.popper=h,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!fe(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",h=l?"Top":"Left",u=h.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=Zt(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=Vt(t.offsets.popper);var m=a[u]+a[c]/2-p/2,g=Nt(t.instance.popper),_=parseFloat(g["margin"+h],10),v=parseFloat(g["border"+h+"Width"],10),y=m-t.offsets.popper[u]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=i,t.offsets.arrow=(Kt(n={},u,Math.round(y)),Kt(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,m){if(oe(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var g=Gt(p.instance.popper,p.instance.reference,m.padding,m.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=te(_),y=p.placement.split("-")[1]||"",E=[];switch(m.behavior){case ge:E=[_,v];break;case _e:E=me(_);break;case ve:E=me(_,!0);break;default:E=m.behavior}return E.forEach(function(t,e){if(_!==t||E.length===e+1)return p;_=p.placement.split("-")[0],v=te(_);var n,i=p.offsets.popper,o=p.offsets.reference,r=Math.floor,s="left"===_&&r(i.right)>r(o.left)||"right"===_&&r(i.left)<r(o.right)||"top"===_&&r(i.bottom)>r(o.top)||"bottom"===_&&r(i.top)<r(o.bottom),a=r(i.left)<r(g.left),l=r(i.right)>r(g.right),c=r(i.top)<r(g.top),h=r(i.bottom)>r(g.bottom),u="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&h,f=-1!==["top","bottom"].indexOf(_),d=!!m.flipVariations&&(f&&"start"===y&&a||f&&"end"===y&&l||!f&&"start"===y&&c||!f&&"end"===y&&h);(s||u||d)&&(p.flipped=!0,(s||u)&&(_=E[e+1]),d&&(y="end"===(n=y)?"start":"start"===n?"end":n),p.placement=_+(y?"-"+y:""),p.offsets.popper=Qt({},p.offsets.popper,ee(p.instance.popper,p.offsets.reference,p.placement)),p=ie(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=te(e),t.offsets.popper=Vt(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!fe(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=ne(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=ne(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s,a,l,c,h,u,f,d,p,m,g,_,v,y,E=void 0!==r?r:e.gpuAcceleration,b=jt(t.instance.popper),w=Yt(b),C={position:o.position},T=(s=t,a=window.devicePixelRatio<2||!ue,l=s.offsets,c=l.popper,h=l.reference,u=Math.round,f=Math.floor,d=function(t){return t},p=u(h.width),m=u(c.width),g=-1!==["left","right"].indexOf(s.placement),_=-1!==s.placement.indexOf("-"),y=a?u:d,{left:(v=a?g||_||p%2==m%2?u:f:d)(p%2==1&&m%2==1&&!_&&a?c.left-1:c.left),top:y(c.top),bottom:y(c.bottom),right:v(c.right)}),S="bottom"===n?"top":"bottom",D="right"===i?"left":"right",I=re("transform"),A=void 0,O=void 0;if(O="bottom"===S?"HTML"===b.nodeName?-b.clientHeight+T.bottom:-w.height+T.bottom:T.top,A="right"===D?"HTML"===b.nodeName?-b.clientWidth+T.right:-w.width+T.right:T.left,E&&I)C[I]="translate3d("+A+"px, "+O+"px, 0)",C[S]=0,C[D]=0,C.willChange="transform";else{var N="bottom"===S?-1:1,k="right"===D?-1:1;C[S]=O*N,C[D]=A*k,C.willChange=S+", "+D}var L={"x-placement":t.placement};return t.attributes=Qt({},L,t.attributes),t.styles=Qt({},C,t.styles),t.arrowStyles=Qt({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return he(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&he(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Jt(o,e,t,n.positionFixed),s=$t(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),he(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},be=function(){function r(t,e){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=At(this.update.bind(this)),this.options=Qt({},r.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys(Qt({},r.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=Qt({},r.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Qt({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&Ot(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return qt(r,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Jt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=$t(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=ee(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ie(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,oe(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[re("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ae(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return le.call(this)}}]),r}();be.Utils=("undefined"!=typeof window?window:global).PopperUtils,be.placements=de,be.Defaults=Ee;var we="dropdown",Ce="bs.dropdown",Te="."+Ce,Se=".data-api",De=p.fn[we],Ie=new RegExp("38|40|27"),Ae={HIDE:"hide"+Te,HIDDEN:"hidden"+Te,SHOW:"show"+Te,SHOWN:"shown"+Te,CLICK:"click"+Te,CLICK_DATA_API:"click"+Te+Se,KEYDOWN_DATA_API:"keydown"+Te+Se,KEYUP_DATA_API:"keyup"+Te+Se},Oe="disabled",Ne="show",ke="dropup",Le="dropright",xe="dropleft",Pe="dropdown-menu-right",He="position-static",je='[data-toggle="dropdown"]',Re=".dropdown form",Fe=".dropdown-menu",Me=".navbar-nav",We=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ue="top-start",Be="top-end",qe="bottom-start",Ke="bottom-end",Qe="right-start",Ve="left-start",Ye={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},ze={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Xe=function(){function c(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=c.prototype;return t.toggle=function(){if(!this._element.disabled&&!p(this._element).hasClass(Oe)){var t=c._getParentFromElement(this._element),e=p(this._menu).hasClass(Ne);if(c._clearMenus(),!e){var n={relatedTarget:this._element},i=p.Event(Ae.SHOW,n);if(p(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof be)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var o=this._element;"parent"===this._config.reference?o=t:m.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&p(t).addClass(He),this._popper=new be(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===p(t).closest(Me).length&&p(document.body).children().on("mouseover",null,p.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),p(this._menu).toggleClass(Ne),p(t).toggleClass(Ne).trigger(p.Event(Ae.SHOWN,n))}}}},t.show=function(){if(!(this._element.disabled||p(this._element).hasClass(Oe)||p(this._menu).hasClass(Ne))){var t={relatedTarget:this._element},e=p.Event(Ae.SHOW,t),n=c._getParentFromElement(this._element);p(n).trigger(e),e.isDefaultPrevented()||(p(this._menu).toggleClass(Ne),p(n).toggleClass(Ne).trigger(p.Event(Ae.SHOWN,t)))}},t.hide=function(){if(!this._element.disabled&&!p(this._element).hasClass(Oe)&&p(this._menu).hasClass(Ne)){var t={relatedTarget:this._element},e=p.Event(Ae.HIDE,t),n=c._getParentFromElement(this._element);p(n).trigger(e),e.isDefaultPrevented()||(p(this._menu).toggleClass(Ne),p(n).toggleClass(Ne).trigger(p.Event(Ae.HIDDEN,t)))}},t.dispose=function(){p.removeData(this._element,Ce),p(this._element).off(Te),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;p(this._element).on(Ae.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=l({},this.constructor.Default,p(this._element).data(),t),m.typeCheckConfig(we,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=c._getParentFromElement(this._element);t&&(this._menu=t.querySelector(Fe))}return this._menu},t._getPlacement=function(){var t=p(this._element.parentNode),e=qe;return t.hasClass(ke)?(e=Ue,p(this._menu).hasClass(Pe)&&(e=Be)):t.hasClass(Le)?e=Qe:t.hasClass(xe)?e=Ve:p(this._menu).hasClass(Pe)&&(e=Ke),e},t._detectNavbar=function(){return 0<p(this._element).closest(".navbar").length},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},c._jQueryInterface=function(e){return this.each(function(){var t=p(this).data(Ce);if(t||(t=new c(this,"object"==typeof e?e:null),p(this).data(Ce,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},c._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=[].slice.call(document.querySelectorAll(je)),n=0,i=e.length;n<i;n++){var o=c._getParentFromElement(e[n]),r=p(e[n]).data(Ce),s={relatedTarget:e[n]};if(t&&"click"===t.type&&(s.clickEvent=t),r){var a=r._menu;if(p(o).hasClass(Ne)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&p.contains(o,t.target))){var l=p.Event(Ae.HIDE,s);p(o).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),e[n].setAttribute("aria-expanded","false"),p(a).removeClass(Ne),p(o).removeClass(Ne).trigger(p.Event(Ae.HIDDEN,s)))}}}},c._getParentFromElement=function(t){var e,n=m.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},c._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||p(t.target).closest(Fe).length)):Ie.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!p(this).hasClass(Oe))){var e=c._getParentFromElement(this),n=p(e).hasClass(Ne);if(n&&(!n||27!==t.which&&32!==t.which)){var i=[].slice.call(e.querySelectorAll(We));if(0!==i.length){var o=i.indexOf(t.target);38===t.which&&0<o&&o--,40===t.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===t.which){var r=e.querySelector(je);p(r).trigger("focus")}p(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ye}},{key:"DefaultType",get:function(){return ze}}]),c}();p(document).on(Ae.KEYDOWN_DATA_API,je,Xe._dataApiKeydownHandler).on(Ae.KEYDOWN_DATA_API,Fe,Xe._dataApiKeydownHandler).on(Ae.CLICK_DATA_API+" "+Ae.KEYUP_DATA_API,Xe._clearMenus).on(Ae.CLICK_DATA_API,je,function(t){t.preventDefault(),t.stopPropagation(),Xe._jQueryInterface.call(p(this),"toggle")}).on(Ae.CLICK_DATA_API,Re,function(t){t.stopPropagation()}),p.fn[we]=Xe._jQueryInterface,p.fn[we].Constructor=Xe,p.fn[we].noConflict=function(){return p.fn[we]=De,Xe._jQueryInterface};var Ge="modal",$e="bs.modal",Je="."+$e,Ze=p.fn[Ge],tn={backdrop:!0,keyboard:!0,focus:!0,show:!0},en={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},nn={HIDE:"hide"+Je,HIDDEN:"hidden"+Je,SHOW:"show"+Je,SHOWN:"shown"+Je,FOCUSIN:"focusin"+Je,RESIZE:"resize"+Je,CLICK_DISMISS:"click.dismiss"+Je,KEYDOWN_DISMISS:"keydown.dismiss"+Je,MOUSEUP_DISMISS:"mouseup.dismiss"+Je,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Je,CLICK_DATA_API:"click"+Je+".data-api"},on="modal-dialog-scrollable",rn="modal-scrollbar-measure",sn="modal-backdrop",an="modal-open",ln="fade",cn="show",hn=".modal-dialog",un=".modal-body",fn='[data-toggle="modal"]',dn='[data-dismiss="modal"]',pn=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",mn=".sticky-top",gn=function(){function o(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(hn),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var t=o.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){p(this._element).hasClass(ln)&&(this._isTransitioning=!0);var n=p.Event(nn.SHOW,{relatedTarget:t});p(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),p(this._element).on(nn.CLICK_DISMISS,dn,function(t){return e.hide(t)}),p(this._dialog).on(nn.MOUSEDOWN_DISMISS,function(){p(e._element).one(nn.MOUSEUP_DISMISS,function(t){p(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=p.Event(nn.HIDE);if(p(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=p(this._element).hasClass(ln);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),p(document).off(nn.FOCUSIN),p(this._element).removeClass(cn),p(this._element).off(nn.CLICK_DISMISS),p(this._dialog).off(nn.MOUSEDOWN_DISMISS),i){var o=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(o)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return p(t).off(Je)}),p(document).off(nn.FOCUSIN),p.removeData(this._element,$e),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=l({},tn,t),m.typeCheckConfig(Ge,t,en),t},t._showElement=function(t){var e=this,n=p(this._element).hasClass(ln);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),p(this._dialog).hasClass(on)?this._dialog.querySelector(un).scrollTop=0:this._element.scrollTop=0,n&&m.reflow(this._element),p(this._element).addClass(cn),this._config.focus&&this._enforceFocus();var i=p.Event(nn.SHOWN,{relatedTarget:t}),o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,p(e._element).trigger(i)};if(n){var r=m.getTransitionDurationFromElement(this._dialog);p(this._dialog).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o()},t._enforceFocus=function(){var e=this;p(document).off(nn.FOCUSIN).on(nn.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===p(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?p(this._element).on(nn.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||p(this._element).off(nn.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?p(window).on(nn.RESIZE,function(t){return e.handleUpdate(t)}):p(window).off(nn.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){p(document.body).removeClass(an),t._resetAdjustments(),t._resetScrollbar(),p(t._element).trigger(nn.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(p(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=p(this._element).hasClass(ln)?ln:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=sn,n&&this._backdrop.classList.add(n),p(this._backdrop).appendTo(document.body),p(this._element).on(nn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&m.reflow(this._backdrop),p(this._backdrop).addClass(cn),!t)return;if(!n)return void t();var i=m.getTransitionDurationFromElement(this._backdrop);p(this._backdrop).one(m.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){p(this._backdrop).removeClass(cn);var o=function(){e._removeBackdrop(),t&&t()};if(p(this._element).hasClass(ln)){var r=m.getTransitionDurationFromElement(this._backdrop);p(this._backdrop).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var o=this;if(this._isBodyOverflowing){var t=[].slice.call(document.querySelectorAll(pn)),e=[].slice.call(document.querySelectorAll(mn));p(t).each(function(t,e){var n=e.style.paddingRight,i=p(e).css("padding-right");p(e).data("padding-right",n).css("padding-right",parseFloat(i)+o._scrollbarWidth+"px")}),p(e).each(function(t,e){var n=e.style.marginRight,i=p(e).css("margin-right");p(e).data("margin-right",n).css("margin-right",parseFloat(i)-o._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=p(document.body).css("padding-right");p(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}p(document.body).addClass(an)},t._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(pn));p(t).each(function(t,e){var n=p(e).data("padding-right");p(e).removeData("padding-right"),e.style.paddingRight=n||""});var e=[].slice.call(document.querySelectorAll(""+mn));p(e).each(function(t,e){var n=p(e).data("margin-right");"undefined"!=typeof n&&p(e).css("margin-right",n).removeData("margin-right")});var n=p(document.body).data("padding-right");p(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=rn,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(n,i){return this.each(function(){var t=p(this).data($e),e=l({},tn,p(this).data(),"object"==typeof n&&n?n:{});if(t||(t=new o(this,e),p(this).data($e,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return tn}}]),o}();p(document).on(nn.CLICK_DATA_API,fn,function(t){var e,n=this,i=m.getSelectorFromElement(this);i&&(e=document.querySelector(i));var o=p(e).data($e)?"toggle":l({},p(e).data(),p(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var r=p(e).one(nn.SHOW,function(t){t.isDefaultPrevented()||r.one(nn.HIDDEN,function(){p(n).is(":visible")&&n.focus()})});gn._jQueryInterface.call(p(e),o,this)}),p.fn[Ge]=gn._jQueryInterface,p.fn[Ge].Constructor=gn,p.fn[Ge].noConflict=function(){return p.fn[Ge]=Ze,gn._jQueryInterface};var _n=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},yn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,En=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function bn(t,s,e){if(0===t.length)return t;if(e&&"function"==typeof e)return e(t);for(var n=(new window.DOMParser).parseFromString(t,"text/html"),a=Object.keys(s),l=[].slice.call(n.body.querySelectorAll("*")),i=function(t,e){var n=l[t],i=n.nodeName.toLowerCase();if(-1===a.indexOf(n.nodeName.toLowerCase()))return n.parentNode.removeChild(n),"continue";var o=[].slice.call(n.attributes),r=[].concat(s["*"]||[],s[i]||[]);o.forEach(function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===_n.indexOf(n)||Boolean(t.nodeValue.match(yn)||t.nodeValue.match(En));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,r)||n.removeAttribute(t.nodeName)})},o=0,r=l.length;o<r;o++)i(o);return n.body.innerHTML}var wn="tooltip",Cn="bs.tooltip",Tn="."+Cn,Sn=p.fn[wn],Dn="bs-tooltip",In=new RegExp("(^|\\s)"+Dn+"\\S+","g"),An=["sanitize","whiteList","sanitizeFn"],On={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Nn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},kn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:vn},Ln="show",xn="out",Pn={HIDE:"hide"+Tn,HIDDEN:"hidden"+Tn,SHOW:"show"+Tn,SHOWN:"shown"+Tn,INSERTED:"inserted"+Tn,CLICK:"click"+Tn,FOCUSIN:"focusin"+Tn,FOCUSOUT:"focusout"+Tn,MOUSEENTER:"mouseenter"+Tn,MOUSELEAVE:"mouseleave"+Tn},Hn="fade",jn="show",Rn=".tooltip-inner",Fn=".arrow",Mn="hover",Wn="focus",Un="click",Bn="manual",qn=function(){function i(t,e){if("undefined"==typeof be)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=p(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(p(this.getTipElement()).hasClass(jn))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),p.removeData(this.element,this.constructor.DATA_KEY),p(this.element).off(this.constructor.EVENT_KEY),p(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&p(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===p(this.element).css("display"))throw new Error("Please use show on visible elements");var t=p.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){p(this.element).trigger(t);var n=m.findShadowRoot(this.element),i=p.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=m.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&p(o).addClass(Hn);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();p(o).data(this.constructor.DATA_KEY,this),p.contains(this.element.ownerDocument.documentElement,this.tip)||p(o).appendTo(l),p(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new be(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Fn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),p(o).addClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().on("mouseover",null,p.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,p(e.element).trigger(e.constructor.Event.SHOWN),t===xn&&e._leave(null,e)};if(p(this.tip).hasClass(Hn)){var h=m.getTransitionDurationFromElement(this.tip);p(this.tip).one(m.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=p.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==Ln&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),p(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(p(this.element).trigger(i),!i.isDefaultPrevented()){if(p(n).removeClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),this._activeTrigger[Un]=!1,this._activeTrigger[Wn]=!1,this._activeTrigger[Mn]=!1,p(this.tip).hasClass(Hn)){var r=m.getTransitionDurationFromElement(n);p(n).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){p(this.getTipElement()).addClass(Dn+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(p(t.querySelectorAll(Rn)),this.getTitle()),p(t).removeClass(Hn+" "+jn)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=bn(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?p(e).parent().is(t)||t.empty().append(e):t.text(p(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:m.isElement(this.config.container)?p(this.config.container):p(document).find(this.config.container)},t._getAttachment=function(t){return Nn[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)p(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Bn){var e=t===Mn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Mn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;p(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),p(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Wn:Mn]=!0),p(e.getTipElement()).hasClass(jn)||e._hoverState===Ln?e._hoverState=Ln:(clearTimeout(e._timeout),e._hoverState=Ln,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Ln&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Wn:Mn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=xn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===xn&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=p(this.element).data();return Object.keys(e).forEach(function(t){-1!==An.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),m.typeCheckConfig(wn,t,this.constructor.DefaultType),t.sanitize&&(t.template=bn(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(In);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(p(t).removeClass(Hn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=p(this).data(Cn),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),p(this).data(Cn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return kn}},{key:"NAME",get:function(){return wn}},{key:"DATA_KEY",get:function(){return Cn}},{key:"Event",get:function(){return Pn}},{key:"EVENT_KEY",get:function(){return Tn}},{key:"DefaultType",get:function(){return On}}]),i}();p.fn[wn]=qn._jQueryInterface,p.fn[wn].Constructor=qn,p.fn[wn].noConflict=function(){return p.fn[wn]=Sn,qn._jQueryInterface};var Kn="popover",Qn="bs.popover",Vn="."+Qn,Yn=p.fn[Kn],zn="bs-popover",Xn=new RegExp("(^|\\s)"+zn+"\\S+","g"),Gn=l({},qn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),$n=l({},qn.DefaultType,{content:"(string|element|function)"}),Jn="fade",Zn="show",ti=".popover-header",ei=".popover-body",ni={HIDE:"hide"+Vn,HIDDEN:"hidden"+Vn,SHOW:"show"+Vn,SHOWN:"shown"+Vn,INSERTED:"inserted"+Vn,CLICK:"click"+Vn,FOCUSIN:"focusin"+Vn,FOCUSOUT:"focusout"+Vn,MOUSEENTER:"mouseenter"+Vn,MOUSELEAVE:"mouseleave"+Vn},ii=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){p(this.getTipElement()).addClass(zn+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},o.setContent=function(){var t=p(this.getTipElement());this.setElementContent(t.find(ti),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ei),e),t.removeClass(Jn+" "+Zn)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(Xn);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=p(this).data(Qn),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),p(this).data(Qn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Gn}},{key:"NAME",get:function(){return Kn}},{key:"DATA_KEY",get:function(){return Qn}},{key:"Event",get:function(){return ni}},{key:"EVENT_KEY",get:function(){return Vn}},{key:"DefaultType",get:function(){return $n}}]),i}(qn);p.fn[Kn]=ii._jQueryInterface,p.fn[Kn].Constructor=ii,p.fn[Kn].noConflict=function(){return p.fn[Kn]=Yn,ii._jQueryInterface};var oi="scrollspy",ri="bs.scrollspy",si="."+ri,ai=p.fn[oi],li={offset:10,method:"auto",target:""},ci={offset:"number",method:"string",target:"(string|element)"},hi={ACTIVATE:"activate"+si,SCROLL:"scroll"+si,LOAD_DATA_API:"load"+si+".data-api"},ui="dropdown-item",fi="active",di='[data-spy="scroll"]',pi=".nav, .list-group",mi=".nav-link",gi=".nav-item",_i=".list-group-item",vi=".dropdown",yi=".dropdown-item",Ei=".dropdown-toggle",bi="offset",wi="position",Ci=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+mi+","+this._config.target+" "+_i+","+this._config.target+" "+yi,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,p(this._scrollElement).on(hi.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?bi:wi,o="auto"===this._config.method?t:this._config.method,r=o===wi?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,n=m.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[p(e)[o]().top+r,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){p.removeData(this._element,ri),p(this._scrollElement).off(si),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=l({},li,"object"==typeof t&&t?t:{})).target){var e=p(t.target).attr("id");e||(e=m.getUID(oi),p(t.target).attr("id",e)),t.target="#"+e}return m.typeCheckConfig(oi,t,ci),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=p([].slice.call(document.querySelectorAll(t.join(","))));n.hasClass(ui)?(n.closest(vi).find(Ei).addClass(fi),n.addClass(fi)):(n.addClass(fi),n.parents(pi).prev(mi+", "+_i).addClass(fi),n.parents(pi).prev(gi).children(mi).addClass(fi)),p(this._scrollElement).trigger(hi.ACTIVATE,{relatedTarget:e})},t._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(fi)}).forEach(function(t){return t.classList.remove(fi)})},n._jQueryInterface=function(e){return this.each(function(){var t=p(this).data(ri);if(t||(t=new n(this,"object"==typeof e&&e),p(this).data(ri,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return li}}]),n}();p(window).on(hi.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(di)),e=t.length;e--;){var n=p(t[e]);Ci._jQueryInterface.call(n,n.data())}}),p.fn[oi]=Ci._jQueryInterface,p.fn[oi].Constructor=Ci,p.fn[oi].noConflict=function(){return p.fn[oi]=ai,Ci._jQueryInterface};var Ti="bs.tab",Si="."+Ti,Di=p.fn.tab,Ii={HIDE:"hide"+Si,HIDDEN:"hidden"+Si,SHOW:"show"+Si,SHOWN:"shown"+Si,CLICK_DATA_API:"click"+Si+".data-api"},Ai="dropdown-menu",Oi="active",Ni="disabled",ki="fade",Li="show",xi=".dropdown",Pi=".nav, .list-group",Hi=".active",ji="> li > .active",Ri='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Fi=".dropdown-toggle",Mi="> .dropdown-menu .active",Wi=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&p(this._element).hasClass(Oi)||p(this._element).hasClass(Ni))){var t,i,e=p(this._element).closest(Pi)[0],o=m.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?ji:Hi;i=(i=p.makeArray(p(e).find(r)))[i.length-1]}var s=p.Event(Ii.HIDE,{relatedTarget:this._element}),a=p.Event(Ii.SHOW,{relatedTarget:i});if(i&&p(i).trigger(s),p(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=p.Event(Ii.HIDDEN,{relatedTarget:n._element}),e=p.Event(Ii.SHOWN,{relatedTarget:i});p(i).trigger(t),p(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){p.removeData(this._element,Ti),this._element=null},t._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?p(e).children(Hi):p(e).find(ji))[0],r=n&&o&&p(o).hasClass(ki),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=m.getTransitionDurationFromElement(o);p(o).removeClass(Li).one(m.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){p(e).removeClass(Oi);var i=p(e.parentNode).find(Mi)[0];i&&p(i).removeClass(Oi),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(p(t).addClass(Oi),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),m.reflow(t),t.classList.contains(ki)&&t.classList.add(Li),t.parentNode&&p(t.parentNode).hasClass(Ai)){var o=p(t).closest(xi)[0];if(o){var r=[].slice.call(o.querySelectorAll(Fi));p(r).addClass(Oi)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(Ti);if(e||(e=new i(this),t.data(Ti,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();p(document).on(Ii.CLICK_DATA_API,Ri,function(t){t.preventDefault(),Wi._jQueryInterface.call(p(this),"show")}),p.fn.tab=Wi._jQueryInterface,p.fn.tab.Constructor=Wi,p.fn.tab.noConflict=function(){return p.fn.tab=Di,Wi._jQueryInterface};var Ui="toast",Bi="bs.toast",qi="."+Bi,Ki=p.fn[Ui],Qi={CLICK_DISMISS:"click.dismiss"+qi,HIDE:"hide"+qi,HIDDEN:"hidden"+qi,SHOW:"show"+qi,SHOWN:"shown"+qi},Vi="fade",Yi="hide",zi="show",Xi="showing",Gi={animation:"boolean",autohide:"boolean",delay:"number"},$i={animation:!0,autohide:!0,delay:500},Ji='[data-dismiss="toast"]',Zi=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this;p(this._element).trigger(Qi.SHOW),this._config.animation&&this._element.classList.add(Vi);var e=function(){t._element.classList.remove(Xi),t._element.classList.add(zi),p(t._element).trigger(Qi.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(Yi),this._element.classList.add(Xi),this._config.animation){var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},t.hide=function(t){var e=this;this._element.classList.contains(zi)&&(p(this._element).trigger(Qi.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(zi)&&this._element.classList.remove(zi),p(this._element).off(Qi.CLICK_DISMISS),p.removeData(this._element,Bi),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},$i,p(this._element).data(),"object"==typeof t&&t?t:{}),m.typeCheckConfig(Ui,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;p(this._element).on(Qi.CLICK_DISMISS,Ji,function(){return t.hide(!0)})},t._close=function(){var t=this,e=function(){t._element.classList.add(Yi),p(t._element).trigger(Qi.HIDDEN)};if(this._element.classList.remove(zi),this._config.animation){var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(Bi);if(e||(e=new i(this,"object"==typeof n&&n),t.data(Bi,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Gi}},{key:"Default",get:function(){return $i}}]),i}();p.fn[Ui]=Zi._jQueryInterface,p.fn[Ui].Constructor=Zi,p.fn[Ui].noConflict=function(){return p.fn[Ui]=Ki,Zi._jQueryInterface},function(){if("undefined"==typeof p)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=p.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=m,t.Alert=g,t.Button=k,t.Carousel=at,t.Collapse=Ct,t.Dropdown=Xe,t.Modal=gn,t.Popover=ii,t.Scrollspy=Ci,t.Tab=Wi,t.Toast=Zi,t.Tooltip=qn,Object.defineProperty(t,"__esModule",{value:!0})});
7 +//# sourceMappingURL=bootstrap.bundle.min.js.map
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 +/*!
2 + * Bootstrap v4.3.1 (https://getbootstrap.com/)
3 + * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 + */
6 +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function l(o){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},e=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.forEach(function(t){var e,n,i;e=o,i=r[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return o}g=g&&g.hasOwnProperty("default")?g.default:g,u=u&&u.hasOwnProperty("default")?u.default:u;var e="transitionend";function n(t){var e=this,n=!1;return g(this).one(_.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||_.triggerTransitionEnd(e)},t),this}var _={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=g(t).css("transition-duration"),n=g(t).css("transition-delay"),i=parseFloat(e),o=parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){g(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&_.isElement(r)?"element":(a=r,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"!=typeof t.getRootNode)return t instanceof ShadowRoot?t:t.parentNode?_.findShadowRoot(t.parentNode):null;var e=t.getRootNode();return e instanceof ShadowRoot?e:null}};g.fn.emulateTransitionEnd=n,g.event.special[_.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(g(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var o="alert",r="bs.alert",a="."+r,c=g.fn[o],h={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",m="show",p=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){g.removeData(this._element,r),this._element=null},t._getRootElement=function(t){var e=_.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=g(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=g.Event(h.CLOSE);return g(t).trigger(e),e},t._removeElement=function(e){var n=this;if(g(e).removeClass(m),g(e).hasClass(d)){var t=_.getTransitionDurationFromElement(e);g(e).one(_.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){g(t).detach().trigger(h.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(r);e||(e=new i(this),t.data(r,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();g(document).on(h.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),g.fn[o]=p._jQueryInterface,g.fn[o].Constructor=p,g.fn[o].noConflict=function(){return g.fn[o]=c,p._jQueryInterface};var v="button",y="bs.button",E="."+y,C=".data-api",T=g.fn[v],S="active",b="btn",I="focus",D='[data-toggle^="button"]',w='[data-toggle="buttons"]',A='input:not([type="hidden"])',N=".active",O=".btn",k={CLICK_DATA_API:"click"+E+C,FOCUS_BLUR_DATA_API:"focus"+E+C+" blur"+E+C},P=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(w)[0];if(n){var i=this._element.querySelector(A);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(S))t=!1;else{var o=n.querySelector(N);o&&g(o).removeClass(S)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(S),g(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(S)),t&&g(this._element).toggleClass(S)},t.dispose=function(){g.removeData(this._element,y),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(y);t||(t=new n(this),g(this).data(y,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),n}();g(document).on(k.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;g(e).hasClass(b)||(e=g(e).closest(O)),P._jQueryInterface.call(g(e),"toggle")}).on(k.FOCUS_BLUR_DATA_API,D,function(t){var e=g(t.target).closest(O)[0];g(e).toggleClass(I,/^focus(in)?$/.test(t.type))}),g.fn[v]=P._jQueryInterface,g.fn[v].Constructor=P,g.fn[v].noConflict=function(){return g.fn[v]=T,P._jQueryInterface};var L="carousel",j="bs.carousel",H="."+j,R=".data-api",x=g.fn[L],F={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},U={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},W="next",q="prev",M="left",K="right",Q={SLIDE:"slide"+H,SLID:"slid"+H,KEYDOWN:"keydown"+H,MOUSEENTER:"mouseenter"+H,MOUSELEAVE:"mouseleave"+H,TOUCHSTART:"touchstart"+H,TOUCHMOVE:"touchmove"+H,TOUCHEND:"touchend"+H,POINTERDOWN:"pointerdown"+H,POINTERUP:"pointerup"+H,DRAG_START:"dragstart"+H,LOAD_DATA_API:"load"+H+R,CLICK_DATA_API:"click"+H+R},B="carousel",V="active",Y="slide",z="carousel-item-right",X="carousel-item-left",$="carousel-item-next",G="carousel-item-prev",J="pointer-event",Z=".active",tt=".active.carousel-item",et=".carousel-item",nt=".carousel-item img",it=".carousel-item-next, .carousel-item-prev",ot=".carousel-indicators",rt="[data-slide], [data-slide-to]",st='[data-ride="carousel"]',at={TOUCH:"touch",PEN:"pen"},lt=function(){function r(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(ot),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=r.prototype;return t.next=function(){this._isSliding||this._slide(W)},t.nextWhenVisible=function(){!document.hidden&&g(this._element).is(":visible")&&"hidden"!==g(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(q)},t.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(it)&&(_.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=this._element.querySelector(tt);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)g(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?W:q;this._slide(i,this._items[t])}},t.dispose=function(){g(this._element).off(H),g.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=l({},F,t),_.typeCheckConfig(L,t,U),t},t._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;0<e&&this.prev(),e<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&g(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&g(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var n=this;if(this._touchSupported){var e=function(t){n._pointerEvent&&at[t.originalEvent.pointerType.toUpperCase()]?n.touchStartX=t.originalEvent.clientX:n._pointerEvent||(n.touchStartX=t.originalEvent.touches[0].clientX)},i=function(t){n._pointerEvent&&at[t.originalEvent.pointerType.toUpperCase()]&&(n.touchDeltaX=t.originalEvent.clientX-n.touchStartX),n._handleSwipe(),"hover"===n._config.pause&&(n.pause(),n.touchTimeout&&clearTimeout(n.touchTimeout),n.touchTimeout=setTimeout(function(t){return n.cycle(t)},500+n._config.interval))};g(this._element.querySelectorAll(nt)).on(Q.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(g(this._element).on(Q.POINTERDOWN,function(t){return e(t)}),g(this._element).on(Q.POINTERUP,function(t){return i(t)}),this._element.classList.add(J)):(g(this._element).on(Q.TOUCHSTART,function(t){return e(t)}),g(this._element).on(Q.TOUCHMOVE,function(t){var e;(e=t).originalEvent.touches&&1<e.originalEvent.touches.length?n.touchDeltaX=0:n.touchDeltaX=e.originalEvent.touches[0].clientX-n.touchStartX}),g(this._element).on(Q.TOUCHEND,function(t){return i(t)}))}},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(et)):[],this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===W,i=t===q,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===q?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(tt)),o=g.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return g(this._element).trigger(o),o},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(Z));g(e).removeClass(V);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&g(n).addClass(V)}},t._slide=function(t,e){var n,i,o,r=this,s=this._element.querySelector(tt),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(o=t===W?(n=X,i=$,M):(n=z,i=G,K),l&&g(l).hasClass(V))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=g.Event(Q.SLID,{relatedTarget:l,direction:o,from:a,to:c});if(g(this._element).hasClass(Y)){g(l).addClass(i),_.reflow(l),g(s).addClass(n),g(l).addClass(n);var f=parseInt(l.getAttribute("data-interval"),10);this._config.interval=f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,f):this._config.defaultInterval||this._config.interval;var d=_.getTransitionDurationFromElement(s);g(s).one(_.TRANSITION_END,function(){g(l).removeClass(n+" "+i).addClass(V),g(s).removeClass(V+" "+i+" "+n),r._isSliding=!1,setTimeout(function(){return g(r._element).trigger(u)},0)}).emulateTransitionEnd(d)}else g(s).removeClass(V),g(l).addClass(V),this._isSliding=!1,g(this._element).trigger(u);h&&this.cycle()}},r._jQueryInterface=function(i){return this.each(function(){var t=g(this).data(j),e=l({},F,g(this).data());"object"==typeof i&&(e=l({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new r(this,e),g(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&e.ride&&(t.pause(),t.cycle())})},r._dataApiClickHandler=function(t){var e=_.getSelectorFromElement(this);if(e){var n=g(e)[0];if(n&&g(n).hasClass(B)){var i=l({},g(n).data(),g(this).data()),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),r._jQueryInterface.call(g(n),i),o&&g(n).data(j).to(o),t.preventDefault()}}},s(r,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return F}}]),r}();g(document).on(Q.CLICK_DATA_API,rt,lt._dataApiClickHandler),g(window).on(Q.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(st)),e=0,n=t.length;e<n;e++){var i=g(t[e]);lt._jQueryInterface.call(i,i.data())}}),g.fn[L]=lt._jQueryInterface,g.fn[L].Constructor=lt,g.fn[L].noConflict=function(){return g.fn[L]=x,lt._jQueryInterface};var ct="collapse",ht="bs.collapse",ut="."+ht,ft=g.fn[ct],dt={toggle:!0,parent:""},gt={toggle:"boolean",parent:"(string|element)"},_t={SHOW:"show"+ut,SHOWN:"shown"+ut,HIDE:"hide"+ut,HIDDEN:"hidden"+ut,CLICK_DATA_API:"click"+ut+".data-api"},mt="show",pt="collapse",vt="collapsing",yt="collapsed",Et="width",Ct="height",Tt=".show, .collapsing",St='[data-toggle="collapse"]',bt=function(){function a(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(St)),i=0,o=n.length;i<o;i++){var r=n[i],s=_.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(t){return t===e});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){g(this._element).hasClass(mt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!g(this._element).hasClass(mt)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(Tt)).filter(function(t){return"string"==typeof n._config.parent?t.getAttribute("data-parent")===n._config.parent:t.classList.contains(pt)})).length&&(t=null),!(t&&(e=g(t).not(this._selector).data(ht))&&e._isTransitioning))){var i=g.Event(_t.SHOW);if(g(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(g(t).not(this._selector),"hide"),e||g(t).data(ht,null));var o=this._getDimension();g(this._element).removeClass(pt).addClass(vt),this._element.style[o]=0,this._triggerArray.length&&g(this._triggerArray).removeClass(yt).attr("aria-expanded",!0),this.setTransitioning(!0);var r="scroll"+(o[0].toUpperCase()+o.slice(1)),s=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){g(n._element).removeClass(vt).addClass(pt).addClass(mt),n._element.style[o]="",n.setTransitioning(!1),g(n._element).trigger(_t.SHOWN)}).emulateTransitionEnd(s),this._element.style[o]=this._element[r]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&g(this._element).hasClass(mt)){var e=g.Event(_t.HIDE);if(g(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",_.reflow(this._element),g(this._element).addClass(vt).removeClass(pt).removeClass(mt);var i=this._triggerArray.length;if(0<i)for(var o=0;o<i;o++){var r=this._triggerArray[o],s=_.getSelectorFromElement(r);if(null!==s)g([].slice.call(document.querySelectorAll(s))).hasClass(mt)||g(r).addClass(yt).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){t.setTransitioning(!1),g(t._element).removeClass(vt).addClass(pt).trigger(_t.HIDDEN)}).emulateTransitionEnd(a)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){g.removeData(this._element,ht),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=l({},dt,t)).toggle=Boolean(t.toggle),_.typeCheckConfig(ct,t,gt),t},t._getDimension=function(){return g(this._element).hasClass(Et)?Et:Ct},t._getParent=function(){var t,n=this;_.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(t.querySelectorAll(e));return g(i).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){var n=g(t).hasClass(mt);e.length&&g(e).toggleClass(yt,!n).attr("aria-expanded",n)},a._getTargetFromElement=function(t){var e=_.getSelectorFromElement(t);return e?document.querySelector(e):null},a._jQueryInterface=function(i){return this.each(function(){var t=g(this),e=t.data(ht),n=l({},dt,t.data(),"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(ht,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return dt}}]),a}();g(document).on(_t.CLICK_DATA_API,St,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=g(this),e=_.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(e));g(i).each(function(){var t=g(this),e=t.data(ht)?"toggle":n.data();bt._jQueryInterface.call(t,e)})}),g.fn[ct]=bt._jQueryInterface,g.fn[ct].Constructor=bt,g.fn[ct].noConflict=function(){return g.fn[ct]=ft,bt._jQueryInterface};var It="dropdown",Dt="bs.dropdown",wt="."+Dt,At=".data-api",Nt=g.fn[It],Ot=new RegExp("38|40|27"),kt={HIDE:"hide"+wt,HIDDEN:"hidden"+wt,SHOW:"show"+wt,SHOWN:"shown"+wt,CLICK:"click"+wt,CLICK_DATA_API:"click"+wt+At,KEYDOWN_DATA_API:"keydown"+wt+At,KEYUP_DATA_API:"keyup"+wt+At},Pt="disabled",Lt="show",jt="dropup",Ht="dropright",Rt="dropleft",xt="dropdown-menu-right",Ft="position-static",Ut='[data-toggle="dropdown"]',Wt=".dropdown form",qt=".dropdown-menu",Mt=".navbar-nav",Kt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Qt="top-start",Bt="top-end",Vt="bottom-start",Yt="bottom-end",zt="right-start",Xt="left-start",$t={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Gt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Jt=function(){function c(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=c.prototype;return t.toggle=function(){if(!this._element.disabled&&!g(this._element).hasClass(Pt)){var t=c._getParentFromElement(this._element),e=g(this._menu).hasClass(Lt);if(c._clearMenus(),!e){var n={relatedTarget:this._element},i=g.Event(kt.SHOW,n);if(g(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof u)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var o=this._element;"parent"===this._config.reference?o=t:_.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&g(t).addClass(Ft),this._popper=new u(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===g(t).closest(Mt).length&&g(document.body).children().on("mouseover",null,g.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),g(this._menu).toggleClass(Lt),g(t).toggleClass(Lt).trigger(g.Event(kt.SHOWN,n))}}}},t.show=function(){if(!(this._element.disabled||g(this._element).hasClass(Pt)||g(this._menu).hasClass(Lt))){var t={relatedTarget:this._element},e=g.Event(kt.SHOW,t),n=c._getParentFromElement(this._element);g(n).trigger(e),e.isDefaultPrevented()||(g(this._menu).toggleClass(Lt),g(n).toggleClass(Lt).trigger(g.Event(kt.SHOWN,t)))}},t.hide=function(){if(!this._element.disabled&&!g(this._element).hasClass(Pt)&&g(this._menu).hasClass(Lt)){var t={relatedTarget:this._element},e=g.Event(kt.HIDE,t),n=c._getParentFromElement(this._element);g(n).trigger(e),e.isDefaultPrevented()||(g(this._menu).toggleClass(Lt),g(n).toggleClass(Lt).trigger(g.Event(kt.HIDDEN,t)))}},t.dispose=function(){g.removeData(this._element,Dt),g(this._element).off(wt),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;g(this._element).on(kt.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=l({},this.constructor.Default,g(this._element).data(),t),_.typeCheckConfig(It,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=c._getParentFromElement(this._element);t&&(this._menu=t.querySelector(qt))}return this._menu},t._getPlacement=function(){var t=g(this._element.parentNode),e=Vt;return t.hasClass(jt)?(e=Qt,g(this._menu).hasClass(xt)&&(e=Bt)):t.hasClass(Ht)?e=zt:t.hasClass(Rt)?e=Xt:g(this._menu).hasClass(xt)&&(e=Yt),e},t._detectNavbar=function(){return 0<g(this._element).closest(".navbar").length},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},c._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(Dt);if(t||(t=new c(this,"object"==typeof e?e:null),g(this).data(Dt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},c._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=[].slice.call(document.querySelectorAll(Ut)),n=0,i=e.length;n<i;n++){var o=c._getParentFromElement(e[n]),r=g(e[n]).data(Dt),s={relatedTarget:e[n]};if(t&&"click"===t.type&&(s.clickEvent=t),r){var a=r._menu;if(g(o).hasClass(Lt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&g.contains(o,t.target))){var l=g.Event(kt.HIDE,s);g(o).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),e[n].setAttribute("aria-expanded","false"),g(a).removeClass(Lt),g(o).removeClass(Lt).trigger(g.Event(kt.HIDDEN,s)))}}}},c._getParentFromElement=function(t){var e,n=_.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},c._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||g(t.target).closest(qt).length)):Ot.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!g(this).hasClass(Pt))){var e=c._getParentFromElement(this),n=g(e).hasClass(Lt);if(n&&(!n||27!==t.which&&32!==t.which)){var i=[].slice.call(e.querySelectorAll(Kt));if(0!==i.length){var o=i.indexOf(t.target);38===t.which&&0<o&&o--,40===t.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===t.which){var r=e.querySelector(Ut);g(r).trigger("focus")}g(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return $t}},{key:"DefaultType",get:function(){return Gt}}]),c}();g(document).on(kt.KEYDOWN_DATA_API,Ut,Jt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API,qt,Jt._dataApiKeydownHandler).on(kt.CLICK_DATA_API+" "+kt.KEYUP_DATA_API,Jt._clearMenus).on(kt.CLICK_DATA_API,Ut,function(t){t.preventDefault(),t.stopPropagation(),Jt._jQueryInterface.call(g(this),"toggle")}).on(kt.CLICK_DATA_API,Wt,function(t){t.stopPropagation()}),g.fn[It]=Jt._jQueryInterface,g.fn[It].Constructor=Jt,g.fn[It].noConflict=function(){return g.fn[It]=Nt,Jt._jQueryInterface};var Zt="modal",te="bs.modal",ee="."+te,ne=g.fn[Zt],ie={backdrop:!0,keyboard:!0,focus:!0,show:!0},oe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},re={HIDE:"hide"+ee,HIDDEN:"hidden"+ee,SHOW:"show"+ee,SHOWN:"shown"+ee,FOCUSIN:"focusin"+ee,RESIZE:"resize"+ee,CLICK_DISMISS:"click.dismiss"+ee,KEYDOWN_DISMISS:"keydown.dismiss"+ee,MOUSEUP_DISMISS:"mouseup.dismiss"+ee,MOUSEDOWN_DISMISS:"mousedown.dismiss"+ee,CLICK_DATA_API:"click"+ee+".data-api"},se="modal-dialog-scrollable",ae="modal-scrollbar-measure",le="modal-backdrop",ce="modal-open",he="fade",ue="show",fe=".modal-dialog",de=".modal-body",ge='[data-toggle="modal"]',_e='[data-dismiss="modal"]',me=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",pe=".sticky-top",ve=function(){function o(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(fe),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var t=o.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){g(this._element).hasClass(he)&&(this._isTransitioning=!0);var n=g.Event(re.SHOW,{relatedTarget:t});g(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),g(this._element).on(re.CLICK_DISMISS,_e,function(t){return e.hide(t)}),g(this._dialog).on(re.MOUSEDOWN_DISMISS,function(){g(e._element).one(re.MOUSEUP_DISMISS,function(t){g(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=g.Event(re.HIDE);if(g(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=g(this._element).hasClass(he);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),g(document).off(re.FOCUSIN),g(this._element).removeClass(ue),g(this._element).off(re.CLICK_DISMISS),g(this._dialog).off(re.MOUSEDOWN_DISMISS),i){var o=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(o)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return g(t).off(ee)}),g(document).off(re.FOCUSIN),g.removeData(this._element,te),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=l({},ie,t),_.typeCheckConfig(Zt,t,oe),t},t._showElement=function(t){var e=this,n=g(this._element).hasClass(he);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),g(this._dialog).hasClass(se)?this._dialog.querySelector(de).scrollTop=0:this._element.scrollTop=0,n&&_.reflow(this._element),g(this._element).addClass(ue),this._config.focus&&this._enforceFocus();var i=g.Event(re.SHOWN,{relatedTarget:t}),o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,g(e._element).trigger(i)};if(n){var r=_.getTransitionDurationFromElement(this._dialog);g(this._dialog).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o()},t._enforceFocus=function(){var e=this;g(document).off(re.FOCUSIN).on(re.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===g(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?g(this._element).on(re.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||g(this._element).off(re.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?g(window).on(re.RESIZE,function(t){return e.handleUpdate(t)}):g(window).off(re.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){g(document.body).removeClass(ce),t._resetAdjustments(),t._resetScrollbar(),g(t._element).trigger(re.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(g(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=g(this._element).hasClass(he)?he:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=le,n&&this._backdrop.classList.add(n),g(this._backdrop).appendTo(document.body),g(this._element).on(re.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&_.reflow(this._backdrop),g(this._backdrop).addClass(ue),!t)return;if(!n)return void t();var i=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){g(this._backdrop).removeClass(ue);var o=function(){e._removeBackdrop(),t&&t()};if(g(this._element).hasClass(he)){var r=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var o=this;if(this._isBodyOverflowing){var t=[].slice.call(document.querySelectorAll(me)),e=[].slice.call(document.querySelectorAll(pe));g(t).each(function(t,e){var n=e.style.paddingRight,i=g(e).css("padding-right");g(e).data("padding-right",n).css("padding-right",parseFloat(i)+o._scrollbarWidth+"px")}),g(e).each(function(t,e){var n=e.style.marginRight,i=g(e).css("margin-right");g(e).data("margin-right",n).css("margin-right",parseFloat(i)-o._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=g(document.body).css("padding-right");g(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}g(document.body).addClass(ce)},t._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(me));g(t).each(function(t,e){var n=g(e).data("padding-right");g(e).removeData("padding-right"),e.style.paddingRight=n||""});var e=[].slice.call(document.querySelectorAll(""+pe));g(e).each(function(t,e){var n=g(e).data("margin-right");"undefined"!=typeof n&&g(e).css("margin-right",n).removeData("margin-right")});var n=g(document.body).data("padding-right");g(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=ae,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(n,i){return this.each(function(){var t=g(this).data(te),e=l({},ie,g(this).data(),"object"==typeof n&&n?n:{});if(t||(t=new o(this,e),g(this).data(te,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ie}}]),o}();g(document).on(re.CLICK_DATA_API,ge,function(t){var e,n=this,i=_.getSelectorFromElement(this);i&&(e=document.querySelector(i));var o=g(e).data(te)?"toggle":l({},g(e).data(),g(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var r=g(e).one(re.SHOW,function(t){t.isDefaultPrevented()||r.one(re.HIDDEN,function(){g(n).is(":visible")&&n.focus()})});ve._jQueryInterface.call(g(e),o,this)}),g.fn[Zt]=ve._jQueryInterface,g.fn[Zt].Constructor=ve,g.fn[Zt].noConflict=function(){return g.fn[Zt]=ne,ve._jQueryInterface};var ye=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Ee={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Ce=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,Te=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function Se(t,s,e){if(0===t.length)return t;if(e&&"function"==typeof e)return e(t);for(var n=(new window.DOMParser).parseFromString(t,"text/html"),a=Object.keys(s),l=[].slice.call(n.body.querySelectorAll("*")),i=function(t,e){var n=l[t],i=n.nodeName.toLowerCase();if(-1===a.indexOf(n.nodeName.toLowerCase()))return n.parentNode.removeChild(n),"continue";var o=[].slice.call(n.attributes),r=[].concat(s["*"]||[],s[i]||[]);o.forEach(function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===ye.indexOf(n)||Boolean(t.nodeValue.match(Ce)||t.nodeValue.match(Te));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,r)||n.removeAttribute(t.nodeName)})},o=0,r=l.length;o<r;o++)i(o);return n.body.innerHTML}var be="tooltip",Ie="bs.tooltip",De="."+Ie,we=g.fn[be],Ae="bs-tooltip",Ne=new RegExp("(^|\\s)"+Ae+"\\S+","g"),Oe=["sanitize","whiteList","sanitizeFn"],ke={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Pe={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Le={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ee},je="show",He="out",Re={HIDE:"hide"+De,HIDDEN:"hidden"+De,SHOW:"show"+De,SHOWN:"shown"+De,INSERTED:"inserted"+De,CLICK:"click"+De,FOCUSIN:"focusin"+De,FOCUSOUT:"focusout"+De,MOUSEENTER:"mouseenter"+De,MOUSELEAVE:"mouseleave"+De},xe="fade",Fe="show",Ue=".tooltip-inner",We=".arrow",qe="hover",Me="focus",Ke="click",Qe="manual",Be=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Fe))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(xe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:We},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),g(o).addClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===He&&e._leave(null,e)};if(g(this.tip).hasClass(xe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=g.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==je&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),g(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(g(this.element).trigger(i),!i.isDefaultPrevented()){if(g(n).removeClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ke]=!1,this._activeTrigger[Me]=!1,this._activeTrigger[qe]=!1,g(this.tip).hasClass(xe)){var r=_.getTransitionDurationFromElement(n);g(n).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Ae+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ue)),this.getTitle()),g(t).removeClass(xe+" "+Fe)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Se(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Pe[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Qe){var e=t===qe?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===qe?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),g(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Me:qe]=!0),g(e.getTipElement()).hasClass(Fe)||e._hoverState===je?e._hoverState=je:(clearTimeout(e._timeout),e._hoverState=je,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===je&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Me:qe]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=He,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===He&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==Oe.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(be,t,this.constructor.DefaultType),t.sanitize&&(t.template=Se(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ne);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(xe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ie),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ie,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Le}},{key:"NAME",get:function(){return be}},{key:"DATA_KEY",get:function(){return Ie}},{key:"Event",get:function(){return Re}},{key:"EVENT_KEY",get:function(){return De}},{key:"DefaultType",get:function(){return ke}}]),i}();g.fn[be]=Be._jQueryInterface,g.fn[be].Constructor=Be,g.fn[be].noConflict=function(){return g.fn[be]=we,Be._jQueryInterface};var Ve="popover",Ye="bs.popover",ze="."+Ye,Xe=g.fn[Ve],$e="bs-popover",Ge=new RegExp("(^|\\s)"+$e+"\\S+","g"),Je=l({},Be.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Ze=l({},Be.DefaultType,{content:"(string|element|function)"}),tn="fade",en="show",nn=".popover-header",on=".popover-body",rn={HIDE:"hide"+ze,HIDDEN:"hidden"+ze,SHOW:"show"+ze,SHOWN:"shown"+ze,INSERTED:"inserted"+ze,CLICK:"click"+ze,FOCUSIN:"focusin"+ze,FOCUSOUT:"focusout"+ze,MOUSEENTER:"mouseenter"+ze,MOUSELEAVE:"mouseleave"+ze},sn=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){g(this.getTipElement()).addClass($e+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},o.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(nn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(on),e),t.removeClass(tn+" "+en)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ge);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ye),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ye,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Je}},{key:"NAME",get:function(){return Ve}},{key:"DATA_KEY",get:function(){return Ye}},{key:"Event",get:function(){return rn}},{key:"EVENT_KEY",get:function(){return ze}},{key:"DefaultType",get:function(){return Ze}}]),i}(Be);g.fn[Ve]=sn._jQueryInterface,g.fn[Ve].Constructor=sn,g.fn[Ve].noConflict=function(){return g.fn[Ve]=Xe,sn._jQueryInterface};var an="scrollspy",ln="bs.scrollspy",cn="."+ln,hn=g.fn[an],un={offset:10,method:"auto",target:""},fn={offset:"number",method:"string",target:"(string|element)"},dn={ACTIVATE:"activate"+cn,SCROLL:"scroll"+cn,LOAD_DATA_API:"load"+cn+".data-api"},gn="dropdown-item",_n="active",mn='[data-spy="scroll"]',pn=".nav, .list-group",vn=".nav-link",yn=".nav-item",En=".list-group-item",Cn=".dropdown",Tn=".dropdown-item",Sn=".dropdown-toggle",bn="offset",In="position",Dn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+vn+","+this._config.target+" "+En+","+this._config.target+" "+Tn,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,g(this._scrollElement).on(dn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?bn:In,o="auto"===this._config.method?t:this._config.method,r=o===In?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,n=_.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[g(e)[o]().top+r,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){g.removeData(this._element,ln),g(this._scrollElement).off(cn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=l({},un,"object"==typeof t&&t?t:{})).target){var e=g(t.target).attr("id");e||(e=_.getUID(an),g(t.target).attr("id",e)),t.target="#"+e}return _.typeCheckConfig(an,t,fn),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=g([].slice.call(document.querySelectorAll(t.join(","))));n.hasClass(gn)?(n.closest(Cn).find(Sn).addClass(_n),n.addClass(_n)):(n.addClass(_n),n.parents(pn).prev(vn+", "+En).addClass(_n),n.parents(pn).prev(yn).children(vn).addClass(_n)),g(this._scrollElement).trigger(dn.ACTIVATE,{relatedTarget:e})},t._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(_n)}).forEach(function(t){return t.classList.remove(_n)})},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(ln);if(t||(t=new n(this,"object"==typeof e&&e),g(this).data(ln,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return un}}]),n}();g(window).on(dn.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(mn)),e=t.length;e--;){var n=g(t[e]);Dn._jQueryInterface.call(n,n.data())}}),g.fn[an]=Dn._jQueryInterface,g.fn[an].Constructor=Dn,g.fn[an].noConflict=function(){return g.fn[an]=hn,Dn._jQueryInterface};var wn="bs.tab",An="."+wn,Nn=g.fn.tab,On={HIDE:"hide"+An,HIDDEN:"hidden"+An,SHOW:"show"+An,SHOWN:"shown"+An,CLICK_DATA_API:"click"+An+".data-api"},kn="dropdown-menu",Pn="active",Ln="disabled",jn="fade",Hn="show",Rn=".dropdown",xn=".nav, .list-group",Fn=".active",Un="> li > .active",Wn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',qn=".dropdown-toggle",Mn="> .dropdown-menu .active",Kn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&g(this._element).hasClass(Pn)||g(this._element).hasClass(Ln))){var t,i,e=g(this._element).closest(xn)[0],o=_.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?Un:Fn;i=(i=g.makeArray(g(e).find(r)))[i.length-1]}var s=g.Event(On.HIDE,{relatedTarget:this._element}),a=g.Event(On.SHOW,{relatedTarget:i});if(i&&g(i).trigger(s),g(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=g.Event(On.HIDDEN,{relatedTarget:n._element}),e=g.Event(On.SHOWN,{relatedTarget:i});g(i).trigger(t),g(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){g.removeData(this._element,wn),this._element=null},t._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?g(e).children(Fn):g(e).find(Un))[0],r=n&&o&&g(o).hasClass(jn),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=_.getTransitionDurationFromElement(o);g(o).removeClass(Hn).one(_.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){g(e).removeClass(Pn);var i=g(e.parentNode).find(Mn)[0];i&&g(i).removeClass(Pn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(g(t).addClass(Pn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),_.reflow(t),t.classList.contains(jn)&&t.classList.add(Hn),t.parentNode&&g(t.parentNode).hasClass(kn)){var o=g(t).closest(Rn)[0];if(o){var r=[].slice.call(o.querySelectorAll(qn));g(r).addClass(Pn)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(wn);if(e||(e=new i(this),t.data(wn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();g(document).on(On.CLICK_DATA_API,Wn,function(t){t.preventDefault(),Kn._jQueryInterface.call(g(this),"show")}),g.fn.tab=Kn._jQueryInterface,g.fn.tab.Constructor=Kn,g.fn.tab.noConflict=function(){return g.fn.tab=Nn,Kn._jQueryInterface};var Qn="toast",Bn="bs.toast",Vn="."+Bn,Yn=g.fn[Qn],zn={CLICK_DISMISS:"click.dismiss"+Vn,HIDE:"hide"+Vn,HIDDEN:"hidden"+Vn,SHOW:"show"+Vn,SHOWN:"shown"+Vn},Xn="fade",$n="hide",Gn="show",Jn="showing",Zn={animation:"boolean",autohide:"boolean",delay:"number"},ti={animation:!0,autohide:!0,delay:500},ei='[data-dismiss="toast"]',ni=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this;g(this._element).trigger(zn.SHOW),this._config.animation&&this._element.classList.add(Xn);var e=function(){t._element.classList.remove(Jn),t._element.classList.add(Gn),g(t._element).trigger(zn.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove($n),this._element.classList.add(Jn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},t.hide=function(t){var e=this;this._element.classList.contains(Gn)&&(g(this._element).trigger(zn.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Gn)&&this._element.classList.remove(Gn),g(this._element).off(zn.CLICK_DISMISS),g.removeData(this._element,Bn),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},ti,g(this._element).data(),"object"==typeof t&&t?t:{}),_.typeCheckConfig(Qn,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;g(this._element).on(zn.CLICK_DISMISS,ei,function(){return t.hide(!0)})},t._close=function(){var t=this,e=function(){t._element.classList.add($n),g(t._element).trigger(zn.HIDDEN)};if(this._element.classList.remove(Gn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(Bn);if(e||(e=new i(this,"object"==typeof n&&n),t.data(Bn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Zn}},{key:"Default",get:function(){return ti}}]),i}();g.fn[Qn]=ni._jQueryInterface,g.fn[Qn].Constructor=ni,g.fn[Qn].noConflict=function(){return g.fn[Qn]=Yn,ni._jQueryInterface},function(){if("undefined"==typeof g)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=g.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=_,t.Alert=p,t.Button=P,t.Carousel=lt,t.Collapse=bt,t.Dropdown=Jt,t.Modal=ve,t.Popover=sn,t.Scrollspy=Dn,t.Tab=Kn,t.Toast=ni,t.Tooltip=Be,Object.defineProperty(t,"__esModule",{value:!0})});
7 +//# sourceMappingURL=bootstrap.min.js.map
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
1 +//
2 +// Base styles
3 +//
4 +
5 +.alert {
6 + position: relative;
7 + padding: $alert-padding-y $alert-padding-x;
8 + margin-bottom: $alert-margin-bottom;
9 + border: $alert-border-width solid transparent;
10 + @include border-radius($alert-border-radius);
11 +}
12 +
13 +// Headings for larger alerts
14 +.alert-heading {
15 + // Specified to prevent conflicts of changing $headings-color
16 + color: inherit;
17 +}
18 +
19 +// Provide class for links that match alerts
20 +.alert-link {
21 + font-weight: $alert-link-font-weight;
22 +}
23 +
24 +
25 +// Dismissible alerts
26 +//
27 +// Expand the right padding and account for the close button's positioning.
28 +
29 +.alert-dismissible {
30 + padding-right: $close-font-size + $alert-padding-x * 2;
31 +
32 + // Adjust close link position
33 + .close {
34 + position: absolute;
35 + top: 0;
36 + right: 0;
37 + padding: $alert-padding-y $alert-padding-x;
38 + color: inherit;
39 + }
40 +}
41 +
42 +
43 +// Alternate styles
44 +//
45 +// Generate contextual modifier classes for colorizing the alert.
46 +
47 +@each $color, $value in $theme-colors {
48 + .alert-#{$color} {
49 + @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));
50 + }
51 +}
1 +// Base class
2 +//
3 +// Requires one of the contextual, color modifier classes for `color` and
4 +// `background-color`.
5 +
6 +.badge {
7 + display: inline-block;
8 + padding: $badge-padding-y $badge-padding-x;
9 + @include font-size($badge-font-size);
10 + font-weight: $badge-font-weight;
11 + line-height: 1;
12 + text-align: center;
13 + white-space: nowrap;
14 + vertical-align: baseline;
15 + @include border-radius($badge-border-radius);
16 + @include transition($badge-transition);
17 +
18 + @at-root a#{&} {
19 + @include hover-focus {
20 + text-decoration: none;
21 + }
22 + }
23 +
24 + // Empty badges collapse automatically
25 + &:empty {
26 + display: none;
27 + }
28 +}
29 +
30 +// Quick fix for badges in buttons
31 +.btn .badge {
32 + position: relative;
33 + top: -1px;
34 +}
35 +
36 +// Pill badges
37 +//
38 +// Make them extra rounded with a modifier to replace v3's badges.
39 +
40 +.badge-pill {
41 + padding-right: $badge-pill-padding-x;
42 + padding-left: $badge-pill-padding-x;
43 + @include border-radius($badge-pill-border-radius);
44 +}
45 +
46 +// Colors
47 +//
48 +// Contextual variations (linked badges get darker on :hover).
49 +
50 +@each $color, $value in $theme-colors {
51 + .badge-#{$color} {
52 + @include badge-variant($value);
53 + }
54 +}
1 +.breadcrumb {
2 + display: flex;
3 + flex-wrap: wrap;
4 + padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5 + margin-bottom: $breadcrumb-margin-bottom;
6 + list-style: none;
7 + background-color: $breadcrumb-bg;
8 + @include border-radius($breadcrumb-border-radius);
9 +}
10 +
11 +.breadcrumb-item {
12 + // The separator between breadcrumbs (by default, a forward-slash: "/")
13 + + .breadcrumb-item {
14 + padding-left: $breadcrumb-item-padding;
15 +
16 + &::before {
17 + display: inline-block; // Suppress underlining of the separator in modern browsers
18 + padding-right: $breadcrumb-item-padding;
19 + color: $breadcrumb-divider-color;
20 + content: $breadcrumb-divider;
21 + }
22 + }
23 +
24 + // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
25 + // without `<ul>`s. The `::before` pseudo-element generates an element
26 + // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
27 + //
28 + // To trick IE into suppressing the underline, we give the pseudo-element an
29 + // underline and then immediately remove it.
30 + + .breadcrumb-item:hover::before {
31 + text-decoration: underline;
32 + }
33 + // stylelint-disable-next-line no-duplicate-selectors
34 + + .breadcrumb-item:hover::before {
35 + text-decoration: none;
36 + }
37 +
38 + &.active {
39 + color: $breadcrumb-active-color;
40 + }
41 +}
1 +// stylelint-disable selector-no-qualifying-type
2 +
3 +// Make the div behave like a button
4 +.btn-group,
5 +.btn-group-vertical {
6 + position: relative;
7 + display: inline-flex;
8 + vertical-align: middle; // match .btn alignment given font-size hack above
9 +
10 + > .btn {
11 + position: relative;
12 + flex: 1 1 auto;
13 +
14 + // Bring the hover, focused, and "active" buttons to the front to overlay
15 + // the borders properly
16 + @include hover {
17 + z-index: 1;
18 + }
19 + &:focus,
20 + &:active,
21 + &.active {
22 + z-index: 1;
23 + }
24 + }
25 +}
26 +
27 +// Optional: Group multiple button groups together for a toolbar
28 +.btn-toolbar {
29 + display: flex;
30 + flex-wrap: wrap;
31 + justify-content: flex-start;
32 +
33 + .input-group {
34 + width: auto;
35 + }
36 +}
37 +
38 +.btn-group {
39 + // Prevent double borders when buttons are next to each other
40 + > .btn:not(:first-child),
41 + > .btn-group:not(:first-child) {
42 + margin-left: -$btn-border-width;
43 + }
44 +
45 + // Reset rounded corners
46 + > .btn:not(:last-child):not(.dropdown-toggle),
47 + > .btn-group:not(:last-child) > .btn {
48 + @include border-right-radius(0);
49 + }
50 +
51 + > .btn:not(:first-child),
52 + > .btn-group:not(:first-child) > .btn {
53 + @include border-left-radius(0);
54 + }
55 +}
56 +
57 +// Sizing
58 +//
59 +// Remix the default button sizing classes into new ones for easier manipulation.
60 +
61 +.btn-group-sm > .btn { @extend .btn-sm; }
62 +.btn-group-lg > .btn { @extend .btn-lg; }
63 +
64 +
65 +//
66 +// Split button dropdowns
67 +//
68 +
69 +.dropdown-toggle-split {
70 + padding-right: $btn-padding-x * .75;
71 + padding-left: $btn-padding-x * .75;
72 +
73 + &::after,
74 + .dropup &::after,
75 + .dropright &::after {
76 + margin-left: 0;
77 + }
78 +
79 + .dropleft &::before {
80 + margin-right: 0;
81 + }
82 +}
83 +
84 +.btn-sm + .dropdown-toggle-split {
85 + padding-right: $btn-padding-x-sm * .75;
86 + padding-left: $btn-padding-x-sm * .75;
87 +}
88 +
89 +.btn-lg + .dropdown-toggle-split {
90 + padding-right: $btn-padding-x-lg * .75;
91 + padding-left: $btn-padding-x-lg * .75;
92 +}
93 +
94 +
95 +// The clickable button for toggling the menu
96 +// Set the same inset shadow as the :active state
97 +.btn-group.show .dropdown-toggle {
98 + @include box-shadow($btn-active-box-shadow);
99 +
100 + // Show no shadow for `.btn-link` since it has no other button styles.
101 + &.btn-link {
102 + @include box-shadow(none);
103 + }
104 +}
105 +
106 +
107 +//
108 +// Vertical button groups
109 +//
110 +
111 +.btn-group-vertical {
112 + flex-direction: column;
113 + align-items: flex-start;
114 + justify-content: center;
115 +
116 + > .btn,
117 + > .btn-group {
118 + width: 100%;
119 + }
120 +
121 + > .btn:not(:first-child),
122 + > .btn-group:not(:first-child) {
123 + margin-top: -$btn-border-width;
124 + }
125 +
126 + // Reset rounded corners
127 + > .btn:not(:last-child):not(.dropdown-toggle),
128 + > .btn-group:not(:last-child) > .btn {
129 + @include border-bottom-radius(0);
130 + }
131 +
132 + > .btn:not(:first-child),
133 + > .btn-group:not(:first-child) > .btn {
134 + @include border-top-radius(0);
135 + }
136 +}
137 +
138 +
139 +// Checkbox and radio options
140 +//
141 +// In order to support the browser's form validation feedback, powered by the
142 +// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
143 +// `display: none;` or `visibility: hidden;` as that also hides the popover.
144 +// Simply visually hiding the inputs via `opacity` would leave them clickable in
145 +// certain cases which is prevented by using `clip` and `pointer-events`.
146 +// This way, we ensure a DOM element is visible to position the popover from.
147 +//
148 +// See https://github.com/twbs/bootstrap/pull/12794 and
149 +// https://github.com/twbs/bootstrap/pull/14559 for more information.
150 +
151 +.btn-group-toggle {
152 + > .btn,
153 + > .btn-group > .btn {
154 + margin-bottom: 0; // Override default `<label>` value
155 +
156 + input[type="radio"],
157 + input[type="checkbox"] {
158 + position: absolute;
159 + clip: rect(0, 0, 0, 0);
160 + pointer-events: none;
161 + }
162 + }
163 +}
1 +// stylelint-disable selector-no-qualifying-type
2 +
3 +//
4 +// Base styles
5 +//
6 +
7 +.btn {
8 + display: inline-block;
9 + font-family: $btn-font-family;
10 + font-weight: $btn-font-weight;
11 + color: $body-color;
12 + text-align: center;
13 + vertical-align: middle;
14 + user-select: none;
15 + background-color: transparent;
16 + border: $btn-border-width solid transparent;
17 + @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
18 + @include transition($btn-transition);
19 +
20 + @include hover {
21 + color: $body-color;
22 + text-decoration: none;
23 + }
24 +
25 + &:focus,
26 + &.focus {
27 + outline: 0;
28 + box-shadow: $btn-focus-box-shadow;
29 + }
30 +
31 + // Disabled comes first so active can properly restyle
32 + &.disabled,
33 + &:disabled {
34 + opacity: $btn-disabled-opacity;
35 + @include box-shadow(none);
36 + }
37 +
38 + &:not(:disabled):not(.disabled):active,
39 + &:not(:disabled):not(.disabled).active {
40 + @include box-shadow($btn-active-box-shadow);
41 +
42 + &:focus {
43 + @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
44 + }
45 + }
46 +}
47 +
48 +// Future-proof disabling of clicks on `<a>` elements
49 +a.btn.disabled,
50 +fieldset:disabled a.btn {
51 + pointer-events: none;
52 +}
53 +
54 +
55 +//
56 +// Alternate buttons
57 +//
58 +
59 +@each $color, $value in $theme-colors {
60 + .btn-#{$color} {
61 + @include button-variant($value, $value);
62 + }
63 +}
64 +
65 +@each $color, $value in $theme-colors {
66 + .btn-outline-#{$color} {
67 + @include button-outline-variant($value);
68 + }
69 +}
70 +
71 +
72 +//
73 +// Link buttons
74 +//
75 +
76 +// Make a button look and behave like a link
77 +.btn-link {
78 + font-weight: $font-weight-normal;
79 + color: $link-color;
80 + text-decoration: $link-decoration;
81 +
82 + @include hover {
83 + color: $link-hover-color;
84 + text-decoration: $link-hover-decoration;
85 + }
86 +
87 + &:focus,
88 + &.focus {
89 + text-decoration: $link-hover-decoration;
90 + box-shadow: none;
91 + }
92 +
93 + &:disabled,
94 + &.disabled {
95 + color: $btn-link-disabled-color;
96 + pointer-events: none;
97 + }
98 +
99 + // No need for an active state here
100 +}
101 +
102 +
103 +//
104 +// Button Sizes
105 +//
106 +
107 +.btn-lg {
108 + @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
109 +}
110 +
111 +.btn-sm {
112 + @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
113 +}
114 +
115 +
116 +//
117 +// Block button
118 +//
119 +
120 +.btn-block {
121 + display: block;
122 + width: 100%;
123 +
124 + // Vertically space out multiple block buttons
125 + + .btn-block {
126 + margin-top: $btn-block-spacing-y;
127 + }
128 +}
129 +
130 +// Specificity overrides
131 +input[type="submit"],
132 +input[type="reset"],
133 +input[type="button"] {
134 + &.btn-block {
135 + width: 100%;
136 + }
137 +}
1 +//
2 +// Base styles
3 +//
4 +
5 +.card {
6 + position: relative;
7 + display: flex;
8 + flex-direction: column;
9 + min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
10 + word-wrap: break-word;
11 + background-color: $card-bg;
12 + background-clip: border-box;
13 + border: $card-border-width solid $card-border-color;
14 + @include border-radius($card-border-radius);
15 +
16 + > hr {
17 + margin-right: 0;
18 + margin-left: 0;
19 + }
20 +
21 + > .list-group:first-child {
22 + .list-group-item:first-child {
23 + @include border-top-radius($card-border-radius);
24 + }
25 + }
26 +
27 + > .list-group:last-child {
28 + .list-group-item:last-child {
29 + @include border-bottom-radius($card-border-radius);
30 + }
31 + }
32 +}
33 +
34 +.card-body {
35 + // Enable `flex-grow: 1` for decks and groups so that card blocks take up
36 + // as much space as possible, ensuring footers are aligned to the bottom.
37 + flex: 1 1 auto;
38 + padding: $card-spacer-x;
39 + color: $card-color;
40 +}
41 +
42 +.card-title {
43 + margin-bottom: $card-spacer-y;
44 +}
45 +
46 +.card-subtitle {
47 + margin-top: -$card-spacer-y / 2;
48 + margin-bottom: 0;
49 +}
50 +
51 +.card-text:last-child {
52 + margin-bottom: 0;
53 +}
54 +
55 +.card-link {
56 + @include hover {
57 + text-decoration: none;
58 + }
59 +
60 + + .card-link {
61 + margin-left: $card-spacer-x;
62 + }
63 +}
64 +
65 +//
66 +// Optional textual caps
67 +//
68 +
69 +.card-header {
70 + padding: $card-spacer-y $card-spacer-x;
71 + margin-bottom: 0; // Removes the default margin-bottom of <hN>
72 + color: $card-cap-color;
73 + background-color: $card-cap-bg;
74 + border-bottom: $card-border-width solid $card-border-color;
75 +
76 + &:first-child {
77 + @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
78 + }
79 +
80 + + .list-group {
81 + .list-group-item:first-child {
82 + border-top: 0;
83 + }
84 + }
85 +}
86 +
87 +.card-footer {
88 + padding: $card-spacer-y $card-spacer-x;
89 + background-color: $card-cap-bg;
90 + border-top: $card-border-width solid $card-border-color;
91 +
92 + &:last-child {
93 + @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);
94 + }
95 +}
96 +
97 +
98 +//
99 +// Header navs
100 +//
101 +
102 +.card-header-tabs {
103 + margin-right: -$card-spacer-x / 2;
104 + margin-bottom: -$card-spacer-y;
105 + margin-left: -$card-spacer-x / 2;
106 + border-bottom: 0;
107 +}
108 +
109 +.card-header-pills {
110 + margin-right: -$card-spacer-x / 2;
111 + margin-left: -$card-spacer-x / 2;
112 +}
113 +
114 +// Card image
115 +.card-img-overlay {
116 + position: absolute;
117 + top: 0;
118 + right: 0;
119 + bottom: 0;
120 + left: 0;
121 + padding: $card-img-overlay-padding;
122 +}
123 +
124 +.card-img {
125 + width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
126 + @include border-radius($card-inner-border-radius);
127 +}
128 +
129 +// Card image caps
130 +.card-img-top {
131 + width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
132 + @include border-top-radius($card-inner-border-radius);
133 +}
134 +
135 +.card-img-bottom {
136 + width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
137 + @include border-bottom-radius($card-inner-border-radius);
138 +}
139 +
140 +
141 +// Card deck
142 +
143 +.card-deck {
144 + display: flex;
145 + flex-direction: column;
146 +
147 + .card {
148 + margin-bottom: $card-deck-margin;
149 + }
150 +
151 + @include media-breakpoint-up(sm) {
152 + flex-flow: row wrap;
153 + margin-right: -$card-deck-margin;
154 + margin-left: -$card-deck-margin;
155 +
156 + .card {
157 + display: flex;
158 + // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
159 + flex: 1 0 0%;
160 + flex-direction: column;
161 + margin-right: $card-deck-margin;
162 + margin-bottom: 0; // Override the default
163 + margin-left: $card-deck-margin;
164 + }
165 + }
166 +}
167 +
168 +
169 +//
170 +// Card groups
171 +//
172 +
173 +.card-group {
174 + display: flex;
175 + flex-direction: column;
176 +
177 + // The child selector allows nested `.card` within `.card-group`
178 + // to display properly.
179 + > .card {
180 + margin-bottom: $card-group-margin;
181 + }
182 +
183 + @include media-breakpoint-up(sm) {
184 + flex-flow: row wrap;
185 + // The child selector allows nested `.card` within `.card-group`
186 + // to display properly.
187 + > .card {
188 + // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
189 + flex: 1 0 0%;
190 + margin-bottom: 0;
191 +
192 + + .card {
193 + margin-left: 0;
194 + border-left: 0;
195 + }
196 +
197 + // Handle rounded corners
198 + @if $enable-rounded {
199 + &:not(:last-child) {
200 + @include border-right-radius(0);
201 +
202 + .card-img-top,
203 + .card-header {
204 + // stylelint-disable-next-line property-blacklist
205 + border-top-right-radius: 0;
206 + }
207 + .card-img-bottom,
208 + .card-footer {
209 + // stylelint-disable-next-line property-blacklist
210 + border-bottom-right-radius: 0;
211 + }
212 + }
213 +
214 + &:not(:first-child) {
215 + @include border-left-radius(0);
216 +
217 + .card-img-top,
218 + .card-header {
219 + // stylelint-disable-next-line property-blacklist
220 + border-top-left-radius: 0;
221 + }
222 + .card-img-bottom,
223 + .card-footer {
224 + // stylelint-disable-next-line property-blacklist
225 + border-bottom-left-radius: 0;
226 + }
227 + }
228 + }
229 + }
230 + }
231 +}
232 +
233 +
234 +//
235 +// Columns
236 +//
237 +
238 +.card-columns {
239 + .card {
240 + margin-bottom: $card-columns-margin;
241 + }
242 +
243 + @include media-breakpoint-up(sm) {
244 + column-count: $card-columns-count;
245 + column-gap: $card-columns-gap;
246 + orphans: 1;
247 + widows: 1;
248 +
249 + .card {
250 + display: inline-block; // Don't let them vertically span multiple columns
251 + width: 100%; // Don't let their width change
252 + }
253 + }
254 +}
255 +
256 +
257 +//
258 +// Accordion
259 +//
260 +
261 +.accordion {
262 + > .card {
263 + overflow: hidden;
264 +
265 + &:not(:first-of-type) {
266 + .card-header:first-child {
267 + @include border-radius(0);
268 + }
269 +
270 + &:not(:last-of-type) {
271 + border-bottom: 0;
272 + @include border-radius(0);
273 + }
274 + }
275 +
276 + &:first-of-type {
277 + border-bottom: 0;
278 + @include border-bottom-radius(0);
279 + }
280 +
281 + &:last-of-type {
282 + @include border-top-radius(0);
283 + }
284 +
285 + .card-header {
286 + margin-bottom: -$card-border-width;
287 + }
288 + }
289 +}
1 +// Notes on the classes:
2 +//
3 +// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
4 +// even when their scroll action started on a carousel, but for compatibility (with Firefox)
5 +// we're preventing all actions instead
6 +// 2. The .carousel-item-left and .carousel-item-right is used to indicate where
7 +// the active slide is heading.
8 +// 3. .active.carousel-item is the current slide.
9 +// 4. .active.carousel-item-left and .active.carousel-item-right is the current
10 +// slide in its in-transition state. Only one of these occurs at a time.
11 +// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right
12 +// is the upcoming slide in transition.
13 +
14 +.carousel {
15 + position: relative;
16 +}
17 +
18 +.carousel.pointer-event {
19 + touch-action: pan-y;
20 +}
21 +
22 +.carousel-inner {
23 + position: relative;
24 + width: 100%;
25 + overflow: hidden;
26 + @include clearfix();
27 +}
28 +
29 +.carousel-item {
30 + position: relative;
31 + display: none;
32 + float: left;
33 + width: 100%;
34 + margin-right: -100%;
35 + backface-visibility: hidden;
36 + @include transition($carousel-transition);
37 +}
38 +
39 +.carousel-item.active,
40 +.carousel-item-next,
41 +.carousel-item-prev {
42 + display: block;
43 +}
44 +
45 +.carousel-item-next:not(.carousel-item-left),
46 +.active.carousel-item-right {
47 + transform: translateX(100%);
48 +}
49 +
50 +.carousel-item-prev:not(.carousel-item-right),
51 +.active.carousel-item-left {
52 + transform: translateX(-100%);
53 +}
54 +
55 +
56 +//
57 +// Alternate transitions
58 +//
59 +
60 +.carousel-fade {
61 + .carousel-item {
62 + opacity: 0;
63 + transition-property: opacity;
64 + transform: none;
65 + }
66 +
67 + .carousel-item.active,
68 + .carousel-item-next.carousel-item-left,
69 + .carousel-item-prev.carousel-item-right {
70 + z-index: 1;
71 + opacity: 1;
72 + }
73 +
74 + .active.carousel-item-left,
75 + .active.carousel-item-right {
76 + z-index: 0;
77 + opacity: 0;
78 + @include transition(0s $carousel-transition-duration opacity);
79 + }
80 +}
81 +
82 +
83 +//
84 +// Left/right controls for nav
85 +//
86 +
87 +.carousel-control-prev,
88 +.carousel-control-next {
89 + position: absolute;
90 + top: 0;
91 + bottom: 0;
92 + z-index: 1;
93 + // Use flex for alignment (1-3)
94 + display: flex; // 1. allow flex styles
95 + align-items: center; // 2. vertically center contents
96 + justify-content: center; // 3. horizontally center contents
97 + width: $carousel-control-width;
98 + color: $carousel-control-color;
99 + text-align: center;
100 + opacity: $carousel-control-opacity;
101 + @include transition($carousel-control-transition);
102 +
103 + // Hover/focus state
104 + @include hover-focus {
105 + color: $carousel-control-color;
106 + text-decoration: none;
107 + outline: 0;
108 + opacity: $carousel-control-hover-opacity;
109 + }
110 +}
111 +.carousel-control-prev {
112 + left: 0;
113 + @if $enable-gradients {
114 + background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));
115 + }
116 +}
117 +.carousel-control-next {
118 + right: 0;
119 + @if $enable-gradients {
120 + background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));
121 + }
122 +}
123 +
124 +// Icons for within
125 +.carousel-control-prev-icon,
126 +.carousel-control-next-icon {
127 + display: inline-block;
128 + width: $carousel-control-icon-width;
129 + height: $carousel-control-icon-width;
130 + background: no-repeat 50% / 100% 100%;
131 +}
132 +.carousel-control-prev-icon {
133 + background-image: $carousel-control-prev-icon-bg;
134 +}
135 +.carousel-control-next-icon {
136 + background-image: $carousel-control-next-icon-bg;
137 +}
138 +
139 +
140 +// Optional indicator pips
141 +//
142 +// Add an ordered list with the following class and add a list item for each
143 +// slide your carousel holds.
144 +
145 +.carousel-indicators {
146 + position: absolute;
147 + right: 0;
148 + bottom: 0;
149 + left: 0;
150 + z-index: 15;
151 + display: flex;
152 + justify-content: center;
153 + padding-left: 0; // override <ol> default
154 + // Use the .carousel-control's width as margin so we don't overlay those
155 + margin-right: $carousel-control-width;
156 + margin-left: $carousel-control-width;
157 + list-style: none;
158 +
159 + li {
160 + box-sizing: content-box;
161 + flex: 0 1 auto;
162 + width: $carousel-indicator-width;
163 + height: $carousel-indicator-height;
164 + margin-right: $carousel-indicator-spacer;
165 + margin-left: $carousel-indicator-spacer;
166 + text-indent: -999px;
167 + cursor: pointer;
168 + background-color: $carousel-indicator-active-bg;
169 + background-clip: padding-box;
170 + // Use transparent borders to increase the hit area by 10px on top and bottom.
171 + border-top: $carousel-indicator-hit-area-height solid transparent;
172 + border-bottom: $carousel-indicator-hit-area-height solid transparent;
173 + opacity: .5;
174 + @include transition($carousel-indicator-transition);
175 + }
176 +
177 + .active {
178 + opacity: 1;
179 + }
180 +}
181 +
182 +
183 +// Optional captions
184 +//
185 +//
186 +
187 +.carousel-caption {
188 + position: absolute;
189 + right: (100% - $carousel-caption-width) / 2;
190 + bottom: 20px;
191 + left: (100% - $carousel-caption-width) / 2;
192 + z-index: 10;
193 + padding-top: 20px;
194 + padding-bottom: 20px;
195 + color: $carousel-caption-color;
196 + text-align: center;
197 +}
1 +.close {
2 + float: right;
3 + @include font-size($close-font-size);
4 + font-weight: $close-font-weight;
5 + line-height: 1;
6 + color: $close-color;
7 + text-shadow: $close-text-shadow;
8 + opacity: .5;
9 +
10 + // Override <a>'s hover style
11 + @include hover {
12 + color: $close-color;
13 + text-decoration: none;
14 + }
15 +
16 + &:not(:disabled):not(.disabled) {
17 + @include hover-focus {
18 + opacity: .75;
19 + }
20 + }
21 +}
22 +
23 +// Additional properties for button version
24 +// iOS requires the button element instead of an anchor tag.
25 +// If you want the anchor version, it requires `href="#"`.
26 +// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
27 +
28 +// stylelint-disable-next-line selector-no-qualifying-type
29 +button.close {
30 + padding: 0;
31 + background-color: transparent;
32 + border: 0;
33 + appearance: none;
34 +}
35 +
36 +// Future-proof disabling of clicks on `<a>` elements
37 +
38 +// stylelint-disable-next-line selector-no-qualifying-type
39 +a.close.disabled {
40 + pointer-events: none;
41 +}
1 +// Inline code
2 +code {
3 + @include font-size($code-font-size);
4 + color: $code-color;
5 + word-break: break-word;
6 +
7 + // Streamline the style when inside anchors to avoid broken underline and more
8 + a > & {
9 + color: inherit;
10 + }
11 +}
12 +
13 +// User input typically entered via keyboard
14 +kbd {
15 + padding: $kbd-padding-y $kbd-padding-x;
16 + @include font-size($kbd-font-size);
17 + color: $kbd-color;
18 + background-color: $kbd-bg;
19 + @include border-radius($border-radius-sm);
20 + @include box-shadow($kbd-box-shadow);
21 +
22 + kbd {
23 + padding: 0;
24 + @include font-size(100%);
25 + font-weight: $nested-kbd-font-weight;
26 + @include box-shadow(none);
27 + }
28 +}
29 +
30 +// Blocks of code
31 +pre {
32 + display: block;
33 + @include font-size($code-font-size);
34 + color: $pre-color;
35 +
36 + // Account for some code outputs that place code tags in pre tags
37 + code {
38 + @include font-size(inherit);
39 + color: inherit;
40 + word-break: normal;
41 + }
42 +}
43 +
44 +// Enable scrollable blocks of code
45 +.pre-scrollable {
46 + max-height: $pre-scrollable-max-height;
47 + overflow-y: scroll;
48 +}
1 +// Embedded icons from Open Iconic.
2 +// Released under MIT and copyright 2014 Waybury.
3 +// https://useiconic.com/open
4 +
5 +
6 +// Checkboxes and radios
7 +//
8 +// Base class takes care of all the key behavioral aspects.
9 +
10 +.custom-control {
11 + position: relative;
12 + display: block;
13 + min-height: $font-size-base * $line-height-base;
14 + padding-left: $custom-control-gutter + $custom-control-indicator-size;
15 +}
16 +
17 +.custom-control-inline {
18 + display: inline-flex;
19 + margin-right: $custom-control-spacer-x;
20 +}
21 +
22 +.custom-control-input {
23 + position: absolute;
24 + z-index: -1; // Put the input behind the label so it doesn't overlay text
25 + opacity: 0;
26 +
27 + &:checked ~ .custom-control-label::before {
28 + color: $custom-control-indicator-checked-color;
29 + border-color: $custom-control-indicator-checked-border-color;
30 + @include gradient-bg($custom-control-indicator-checked-bg);
31 + @include box-shadow($custom-control-indicator-checked-box-shadow);
32 + }
33 +
34 + &:focus ~ .custom-control-label::before {
35 + // the mixin is not used here to make sure there is feedback
36 + @if $enable-shadows {
37 + box-shadow: $input-box-shadow, $input-focus-box-shadow;
38 + } @else {
39 + box-shadow: $custom-control-indicator-focus-box-shadow;
40 + }
41 + }
42 +
43 + &:focus:not(:checked) ~ .custom-control-label::before {
44 + border-color: $custom-control-indicator-focus-border-color;
45 + }
46 +
47 + &:not(:disabled):active ~ .custom-control-label::before {
48 + color: $custom-control-indicator-active-color;
49 + background-color: $custom-control-indicator-active-bg;
50 + border-color: $custom-control-indicator-active-border-color;
51 + @include box-shadow($custom-control-indicator-active-box-shadow);
52 + }
53 +
54 + &:disabled {
55 + ~ .custom-control-label {
56 + color: $custom-control-label-disabled-color;
57 +
58 + &::before {
59 + background-color: $custom-control-indicator-disabled-bg;
60 + }
61 + }
62 + }
63 +}
64 +
65 +// Custom control indicators
66 +//
67 +// Build the custom controls out of pseudo-elements.
68 +
69 +.custom-control-label {
70 + position: relative;
71 + margin-bottom: 0;
72 + vertical-align: top;
73 +
74 + // Background-color and (when enabled) gradient
75 + &::before {
76 + position: absolute;
77 + top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
78 + left: -($custom-control-gutter + $custom-control-indicator-size);
79 + display: block;
80 + width: $custom-control-indicator-size;
81 + height: $custom-control-indicator-size;
82 + pointer-events: none;
83 + content: "";
84 + background-color: $custom-control-indicator-bg;
85 + border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;
86 + @include box-shadow($custom-control-indicator-box-shadow);
87 + }
88 +
89 + // Foreground (icon)
90 + &::after {
91 + position: absolute;
92 + top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
93 + left: -($custom-control-gutter + $custom-control-indicator-size);
94 + display: block;
95 + width: $custom-control-indicator-size;
96 + height: $custom-control-indicator-size;
97 + content: "";
98 + background: no-repeat 50% / #{$custom-control-indicator-bg-size};
99 + }
100 +}
101 +
102 +
103 +// Checkboxes
104 +//
105 +// Tweak just a few things for checkboxes.
106 +
107 +.custom-checkbox {
108 + .custom-control-label::before {
109 + @include border-radius($custom-checkbox-indicator-border-radius);
110 + }
111 +
112 + .custom-control-input:checked ~ .custom-control-label {
113 + &::after {
114 + background-image: $custom-checkbox-indicator-icon-checked;
115 + }
116 + }
117 +
118 + .custom-control-input:indeterminate ~ .custom-control-label {
119 + &::before {
120 + border-color: $custom-checkbox-indicator-indeterminate-border-color;
121 + @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);
122 + @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);
123 + }
124 + &::after {
125 + background-image: $custom-checkbox-indicator-icon-indeterminate;
126 + }
127 + }
128 +
129 + .custom-control-input:disabled {
130 + &:checked ~ .custom-control-label::before {
131 + background-color: $custom-control-indicator-checked-disabled-bg;
132 + }
133 + &:indeterminate ~ .custom-control-label::before {
134 + background-color: $custom-control-indicator-checked-disabled-bg;
135 + }
136 + }
137 +}
138 +
139 +// Radios
140 +//
141 +// Tweak just a few things for radios.
142 +
143 +.custom-radio {
144 + .custom-control-label::before {
145 + // stylelint-disable-next-line property-blacklist
146 + border-radius: $custom-radio-indicator-border-radius;
147 + }
148 +
149 + .custom-control-input:checked ~ .custom-control-label {
150 + &::after {
151 + background-image: $custom-radio-indicator-icon-checked;
152 + }
153 + }
154 +
155 + .custom-control-input:disabled {
156 + &:checked ~ .custom-control-label::before {
157 + background-color: $custom-control-indicator-checked-disabled-bg;
158 + }
159 + }
160 +}
161 +
162 +
163 +// switches
164 +//
165 +// Tweak a few things for switches
166 +
167 +.custom-switch {
168 + padding-left: $custom-switch-width + $custom-control-gutter;
169 +
170 + .custom-control-label {
171 + &::before {
172 + left: -($custom-switch-width + $custom-control-gutter);
173 + width: $custom-switch-width;
174 + pointer-events: all;
175 + // stylelint-disable-next-line property-blacklist
176 + border-radius: $custom-switch-indicator-border-radius;
177 + }
178 +
179 + &::after {
180 + top: calc(#{(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2)} + #{$custom-control-indicator-border-width * 2});
181 + left: calc(#{-($custom-switch-width + $custom-control-gutter)} + #{$custom-control-indicator-border-width * 2});
182 + width: $custom-switch-indicator-size;
183 + height: $custom-switch-indicator-size;
184 + background-color: $custom-control-indicator-border-color;
185 + // stylelint-disable-next-line property-blacklist
186 + border-radius: $custom-switch-indicator-border-radius;
187 + @include transition(transform .15s ease-in-out, $custom-forms-transition);
188 + }
189 + }
190 +
191 + .custom-control-input:checked ~ .custom-control-label {
192 + &::after {
193 + background-color: $custom-control-indicator-bg;
194 + transform: translateX($custom-switch-width - $custom-control-indicator-size);
195 + }
196 + }
197 +
198 + .custom-control-input:disabled {
199 + &:checked ~ .custom-control-label::before {
200 + background-color: $custom-control-indicator-checked-disabled-bg;
201 + }
202 + }
203 +}
204 +
205 +
206 +// Select
207 +//
208 +// Replaces the browser default select with a custom one, mostly pulled from
209 +// https://primer.github.io/.
210 +//
211 +
212 +.custom-select {
213 + display: inline-block;
214 + width: 100%;
215 + height: $custom-select-height;
216 + padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
217 + font-family: $custom-select-font-family;
218 + @include font-size($custom-select-font-size);
219 + font-weight: $custom-select-font-weight;
220 + line-height: $custom-select-line-height;
221 + color: $custom-select-color;
222 + vertical-align: middle;
223 + background: $custom-select-background;
224 + background-color: $custom-select-bg;
225 + border: $custom-select-border-width solid $custom-select-border-color;
226 + @include border-radius($custom-select-border-radius, 0);
227 + @include box-shadow($custom-select-box-shadow);
228 + appearance: none;
229 +
230 + &:focus {
231 + border-color: $custom-select-focus-border-color;
232 + outline: 0;
233 + @if $enable-shadows {
234 + box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;
235 + } @else {
236 + box-shadow: $custom-select-focus-box-shadow;
237 + }
238 +
239 + &::-ms-value {
240 + // For visual consistency with other platforms/browsers,
241 + // suppress the default white text on blue background highlight given to
242 + // the selected option text when the (still closed) <select> receives focus
243 + // in IE and (under certain conditions) Edge.
244 + // See https://github.com/twbs/bootstrap/issues/19398.
245 + color: $input-color;
246 + background-color: $input-bg;
247 + }
248 + }
249 +
250 + &[multiple],
251 + &[size]:not([size="1"]) {
252 + height: auto;
253 + padding-right: $custom-select-padding-x;
254 + background-image: none;
255 + }
256 +
257 + &:disabled {
258 + color: $custom-select-disabled-color;
259 + background-color: $custom-select-disabled-bg;
260 + }
261 +
262 + // Hides the default caret in IE11
263 + &::-ms-expand {
264 + display: none;
265 + }
266 +}
267 +
268 +.custom-select-sm {
269 + height: $custom-select-height-sm;
270 + padding-top: $custom-select-padding-y-sm;
271 + padding-bottom: $custom-select-padding-y-sm;
272 + padding-left: $custom-select-padding-x-sm;
273 + @include font-size($custom-select-font-size-sm);
274 +}
275 +
276 +.custom-select-lg {
277 + height: $custom-select-height-lg;
278 + padding-top: $custom-select-padding-y-lg;
279 + padding-bottom: $custom-select-padding-y-lg;
280 + padding-left: $custom-select-padding-x-lg;
281 + @include font-size($custom-select-font-size-lg);
282 +}
283 +
284 +
285 +// File
286 +//
287 +// Custom file input.
288 +
289 +.custom-file {
290 + position: relative;
291 + display: inline-block;
292 + width: 100%;
293 + height: $custom-file-height;
294 + margin-bottom: 0;
295 +}
296 +
297 +.custom-file-input {
298 + position: relative;
299 + z-index: 2;
300 + width: 100%;
301 + height: $custom-file-height;
302 + margin: 0;
303 + opacity: 0;
304 +
305 + &:focus ~ .custom-file-label {
306 + border-color: $custom-file-focus-border-color;
307 + box-shadow: $custom-file-focus-box-shadow;
308 + }
309 +
310 + &:disabled ~ .custom-file-label {
311 + background-color: $custom-file-disabled-bg;
312 + }
313 +
314 + @each $lang, $value in $custom-file-text {
315 + &:lang(#{$lang}) ~ .custom-file-label::after {
316 + content: $value;
317 + }
318 + }
319 +
320 + ~ .custom-file-label[data-browse]::after {
321 + content: attr(data-browse);
322 + }
323 +}
324 +
325 +.custom-file-label {
326 + position: absolute;
327 + top: 0;
328 + right: 0;
329 + left: 0;
330 + z-index: 1;
331 + height: $custom-file-height;
332 + padding: $custom-file-padding-y $custom-file-padding-x;
333 + font-family: $custom-file-font-family;
334 + font-weight: $custom-file-font-weight;
335 + line-height: $custom-file-line-height;
336 + color: $custom-file-color;
337 + background-color: $custom-file-bg;
338 + border: $custom-file-border-width solid $custom-file-border-color;
339 + @include border-radius($custom-file-border-radius);
340 + @include box-shadow($custom-file-box-shadow);
341 +
342 + &::after {
343 + position: absolute;
344 + top: 0;
345 + right: 0;
346 + bottom: 0;
347 + z-index: 3;
348 + display: block;
349 + height: $custom-file-height-inner;
350 + padding: $custom-file-padding-y $custom-file-padding-x;
351 + line-height: $custom-file-line-height;
352 + color: $custom-file-button-color;
353 + content: "Browse";
354 + @include gradient-bg($custom-file-button-bg);
355 + border-left: inherit;
356 + @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
357 + }
358 +}
359 +
360 +// Range
361 +//
362 +// Style range inputs the same across browsers. Vendor-specific rules for pseudo
363 +// elements cannot be mixed. As such, there are no shared styles for focus or
364 +// active states on prefixed selectors.
365 +
366 +.custom-range {
367 + width: 100%;
368 + height: calc(#{$custom-range-thumb-height} + #{$custom-range-thumb-focus-box-shadow-width * 2});
369 + padding: 0; // Need to reset padding
370 + background-color: transparent;
371 + appearance: none;
372 +
373 + &:focus {
374 + outline: none;
375 +
376 + // Pseudo-elements must be split across multiple rulesets to have an effect.
377 + // No box-shadow() mixin for focus accessibility.
378 + &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
379 + &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
380 + &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
381 + }
382 +
383 + &::-moz-focus-outer {
384 + border: 0;
385 + }
386 +
387 + &::-webkit-slider-thumb {
388 + width: $custom-range-thumb-width;
389 + height: $custom-range-thumb-height;
390 + margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific
391 + @include gradient-bg($custom-range-thumb-bg);
392 + border: $custom-range-thumb-border;
393 + @include border-radius($custom-range-thumb-border-radius);
394 + @include box-shadow($custom-range-thumb-box-shadow);
395 + @include transition($custom-forms-transition);
396 + appearance: none;
397 +
398 + &:active {
399 + @include gradient-bg($custom-range-thumb-active-bg);
400 + }
401 + }
402 +
403 + &::-webkit-slider-runnable-track {
404 + width: $custom-range-track-width;
405 + height: $custom-range-track-height;
406 + color: transparent; // Why?
407 + cursor: $custom-range-track-cursor;
408 + background-color: $custom-range-track-bg;
409 + border-color: transparent;
410 + @include border-radius($custom-range-track-border-radius);
411 + @include box-shadow($custom-range-track-box-shadow);
412 + }
413 +
414 + &::-moz-range-thumb {
415 + width: $custom-range-thumb-width;
416 + height: $custom-range-thumb-height;
417 + @include gradient-bg($custom-range-thumb-bg);
418 + border: $custom-range-thumb-border;
419 + @include border-radius($custom-range-thumb-border-radius);
420 + @include box-shadow($custom-range-thumb-box-shadow);
421 + @include transition($custom-forms-transition);
422 + appearance: none;
423 +
424 + &:active {
425 + @include gradient-bg($custom-range-thumb-active-bg);
426 + }
427 + }
428 +
429 + &::-moz-range-track {
430 + width: $custom-range-track-width;
431 + height: $custom-range-track-height;
432 + color: transparent;
433 + cursor: $custom-range-track-cursor;
434 + background-color: $custom-range-track-bg;
435 + border-color: transparent; // Firefox specific?
436 + @include border-radius($custom-range-track-border-radius);
437 + @include box-shadow($custom-range-track-box-shadow);
438 + }
439 +
440 + &::-ms-thumb {
441 + width: $custom-range-thumb-width;
442 + height: $custom-range-thumb-height;
443 + margin-top: 0; // Edge specific
444 + margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
445 + margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
446 + @include gradient-bg($custom-range-thumb-bg);
447 + border: $custom-range-thumb-border;
448 + @include border-radius($custom-range-thumb-border-radius);
449 + @include box-shadow($custom-range-thumb-box-shadow);
450 + @include transition($custom-forms-transition);
451 + appearance: none;
452 +
453 + &:active {
454 + @include gradient-bg($custom-range-thumb-active-bg);
455 + }
456 + }
457 +
458 + &::-ms-track {
459 + width: $custom-range-track-width;
460 + height: $custom-range-track-height;
461 + color: transparent;
462 + cursor: $custom-range-track-cursor;
463 + background-color: transparent;
464 + border-color: transparent;
465 + border-width: $custom-range-thumb-height / 2;
466 + @include box-shadow($custom-range-track-box-shadow);
467 + }
468 +
469 + &::-ms-fill-lower {
470 + background-color: $custom-range-track-bg;
471 + @include border-radius($custom-range-track-border-radius);
472 + }
473 +
474 + &::-ms-fill-upper {
475 + margin-right: 15px; // arbitrary?
476 + background-color: $custom-range-track-bg;
477 + @include border-radius($custom-range-track-border-radius);
478 + }
479 +
480 + &:disabled {
481 + &::-webkit-slider-thumb {
482 + background-color: $custom-range-thumb-disabled-bg;
483 + }
484 +
485 + &::-webkit-slider-runnable-track {
486 + cursor: default;
487 + }
488 +
489 + &::-moz-range-thumb {
490 + background-color: $custom-range-thumb-disabled-bg;
491 + }
492 +
493 + &::-moz-range-track {
494 + cursor: default;
495 + }
496 +
497 + &::-ms-thumb {
498 + background-color: $custom-range-thumb-disabled-bg;
499 + }
500 + }
501 +}
502 +
503 +.custom-control-label::before,
504 +.custom-file-label,
505 +.custom-select {
506 + @include transition($custom-forms-transition);
507 +}
1 +// The dropdown wrapper (`<div>`)
2 +.dropup,
3 +.dropright,
4 +.dropdown,
5 +.dropleft {
6 + position: relative;
7 +}
8 +
9 +.dropdown-toggle {
10 + white-space: nowrap;
11 +
12 + // Generate the caret automatically
13 + @include caret;
14 +}
15 +
16 +// The dropdown menu
17 +.dropdown-menu {
18 + position: absolute;
19 + top: 100%;
20 + left: 0;
21 + z-index: $zindex-dropdown;
22 + display: none; // none by default, but block on "open" of the menu
23 + float: left;
24 + min-width: $dropdown-min-width;
25 + padding: $dropdown-padding-y 0;
26 + margin: $dropdown-spacer 0 0; // override default ul
27 + @include font-size($dropdown-font-size);
28 + color: $dropdown-color;
29 + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
30 + list-style: none;
31 + background-color: $dropdown-bg;
32 + background-clip: padding-box;
33 + border: $dropdown-border-width solid $dropdown-border-color;
34 + @include border-radius($dropdown-border-radius);
35 + @include box-shadow($dropdown-box-shadow);
36 +}
37 +
38 +@each $breakpoint in map-keys($grid-breakpoints) {
39 + @include media-breakpoint-up($breakpoint) {
40 + $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
41 +
42 + .dropdown-menu#{$infix}-left {
43 + right: auto;
44 + left: 0;
45 + }
46 +
47 + .dropdown-menu#{$infix}-right {
48 + right: 0;
49 + left: auto;
50 + }
51 + }
52 +}
53 +
54 +// Allow for dropdowns to go bottom up (aka, dropup-menu)
55 +// Just add .dropup after the standard .dropdown class and you're set.
56 +.dropup {
57 + .dropdown-menu {
58 + top: auto;
59 + bottom: 100%;
60 + margin-top: 0;
61 + margin-bottom: $dropdown-spacer;
62 + }
63 +
64 + .dropdown-toggle {
65 + @include caret(up);
66 + }
67 +}
68 +
69 +.dropright {
70 + .dropdown-menu {
71 + top: 0;
72 + right: auto;
73 + left: 100%;
74 + margin-top: 0;
75 + margin-left: $dropdown-spacer;
76 + }
77 +
78 + .dropdown-toggle {
79 + @include caret(right);
80 + &::after {
81 + vertical-align: 0;
82 + }
83 + }
84 +}
85 +
86 +.dropleft {
87 + .dropdown-menu {
88 + top: 0;
89 + right: 100%;
90 + left: auto;
91 + margin-top: 0;
92 + margin-right: $dropdown-spacer;
93 + }
94 +
95 + .dropdown-toggle {
96 + @include caret(left);
97 + &::before {
98 + vertical-align: 0;
99 + }
100 + }
101 +}
102 +
103 +// When enabled Popper.js, reset basic dropdown position
104 +// stylelint-disable-next-line no-duplicate-selectors
105 +.dropdown-menu {
106 + &[x-placement^="top"],
107 + &[x-placement^="right"],
108 + &[x-placement^="bottom"],
109 + &[x-placement^="left"] {
110 + right: auto;
111 + bottom: auto;
112 + }
113 +}
114 +
115 +// Dividers (basically an `<hr>`) within the dropdown
116 +.dropdown-divider {
117 + @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);
118 +}
119 +
120 +// Links, buttons, and more within the dropdown menu
121 +//
122 +// `<button>`-specific styles are denoted with `// For <button>s`
123 +.dropdown-item {
124 + display: block;
125 + width: 100%; // For `<button>`s
126 + padding: $dropdown-item-padding-y $dropdown-item-padding-x;
127 + clear: both;
128 + font-weight: $font-weight-normal;
129 + color: $dropdown-link-color;
130 + text-align: inherit; // For `<button>`s
131 + white-space: nowrap; // prevent links from randomly breaking onto new lines
132 + background-color: transparent; // For `<button>`s
133 + border: 0; // For `<button>`s
134 +
135 + // Prevent dropdown overflow if there's no padding
136 + // See https://github.com/twbs/bootstrap/pull/27703
137 + @if $dropdown-padding-y == 0 {
138 + &:first-child {
139 + @include border-top-radius($dropdown-inner-border-radius);
140 + }
141 +
142 + &:last-child {
143 + @include border-bottom-radius($dropdown-inner-border-radius);
144 + }
145 + }
146 +
147 + @include hover-focus {
148 + color: $dropdown-link-hover-color;
149 + text-decoration: none;
150 + @include gradient-bg($dropdown-link-hover-bg);
151 + }
152 +
153 + &.active,
154 + &:active {
155 + color: $dropdown-link-active-color;
156 + text-decoration: none;
157 + @include gradient-bg($dropdown-link-active-bg);
158 + }
159 +
160 + &.disabled,
161 + &:disabled {
162 + color: $dropdown-link-disabled-color;
163 + pointer-events: none;
164 + background-color: transparent;
165 + // Remove CSS gradients if they're enabled
166 + @if $enable-gradients {
167 + background-image: none;
168 + }
169 + }
170 +}
171 +
172 +.dropdown-menu.show {
173 + display: block;
174 +}
175 +
176 +// Dropdown section headers
177 +.dropdown-header {
178 + display: block;
179 + padding: $dropdown-padding-y $dropdown-item-padding-x;
180 + margin-bottom: 0; // for use with heading elements
181 + @include font-size($font-size-sm);
182 + color: $dropdown-header-color;
183 + white-space: nowrap; // as with > li > a
184 +}
185 +
186 +// Dropdown text
187 +.dropdown-item-text {
188 + display: block;
189 + padding: $dropdown-item-padding-y $dropdown-item-padding-x;
190 + color: $dropdown-link-color;
191 +}
1 +// stylelint-disable selector-no-qualifying-type
2 +
3 +//
4 +// Textual form controls
5 +//
6 +
7 +.form-control {
8 + display: block;
9 + width: 100%;
10 + height: $input-height;
11 + padding: $input-padding-y $input-padding-x;
12 + font-family: $input-font-family;
13 + @include font-size($input-font-size);
14 + font-weight: $input-font-weight;
15 + line-height: $input-line-height;
16 + color: $input-color;
17 + background-color: $input-bg;
18 + background-clip: padding-box;
19 + border: $input-border-width solid $input-border-color;
20 +
21 + // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
22 + @include border-radius($input-border-radius, 0);
23 +
24 + @include box-shadow($input-box-shadow);
25 + @include transition($input-transition);
26 +
27 + // Unstyle the caret on `<select>`s in IE10+.
28 + &::-ms-expand {
29 + background-color: transparent;
30 + border: 0;
31 + }
32 +
33 + // Customize the `:focus` state to imitate native WebKit styles.
34 + @include form-control-focus();
35 +
36 + // Placeholder
37 + &::placeholder {
38 + color: $input-placeholder-color;
39 + // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
40 + opacity: 1;
41 + }
42 +
43 + // Disabled and read-only inputs
44 + //
45 + // HTML5 says that controls under a fieldset > legend:first-child won't be
46 + // disabled if the fieldset is disabled. Due to implementation difficulty, we
47 + // don't honor that edge case; we style them as disabled anyway.
48 + &:disabled,
49 + &[readonly] {
50 + background-color: $input-disabled-bg;
51 + // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
52 + opacity: 1;
53 + }
54 +}
55 +
56 +select.form-control {
57 + &:focus::-ms-value {
58 + // Suppress the nested default white text on blue background highlight given to
59 + // the selected option text when the (still closed) <select> receives focus
60 + // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to
61 + // match the appearance of the native widget.
62 + // See https://github.com/twbs/bootstrap/issues/19398.
63 + color: $input-color;
64 + background-color: $input-bg;
65 + }
66 +}
67 +
68 +// Make file inputs better match text inputs by forcing them to new lines.
69 +.form-control-file,
70 +.form-control-range {
71 + display: block;
72 + width: 100%;
73 +}
74 +
75 +
76 +//
77 +// Labels
78 +//
79 +
80 +// For use with horizontal and inline forms, when you need the label (or legend)
81 +// text to align with the form controls.
82 +.col-form-label {
83 + padding-top: calc(#{$input-padding-y} + #{$input-border-width});
84 + padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});
85 + margin-bottom: 0; // Override the `<label>/<legend>` default
86 + @include font-size(inherit); // Override the `<legend>` default
87 + line-height: $input-line-height;
88 +}
89 +
90 +.col-form-label-lg {
91 + padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});
92 + padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});
93 + @include font-size($input-font-size-lg);
94 + line-height: $input-line-height-lg;
95 +}
96 +
97 +.col-form-label-sm {
98 + padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});
99 + padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});
100 + @include font-size($input-font-size-sm);
101 + line-height: $input-line-height-sm;
102 +}
103 +
104 +
105 +// Readonly controls as plain text
106 +//
107 +// Apply class to a readonly input to make it appear like regular plain
108 +// text (without any border, background color, focus indicator)
109 +
110 +.form-control-plaintext {
111 + display: block;
112 + width: 100%;
113 + padding-top: $input-padding-y;
114 + padding-bottom: $input-padding-y;
115 + margin-bottom: 0; // match inputs if this class comes on inputs with default margins
116 + line-height: $input-line-height;
117 + color: $input-plaintext-color;
118 + background-color: transparent;
119 + border: solid transparent;
120 + border-width: $input-border-width 0;
121 +
122 + &.form-control-sm,
123 + &.form-control-lg {
124 + padding-right: 0;
125 + padding-left: 0;
126 + }
127 +}
128 +
129 +
130 +// Form control sizing
131 +//
132 +// Build on `.form-control` with modifier classes to decrease or increase the
133 +// height and font-size of form controls.
134 +//
135 +// Repeated in `_input_group.scss` to avoid Sass extend issues.
136 +
137 +.form-control-sm {
138 + height: $input-height-sm;
139 + padding: $input-padding-y-sm $input-padding-x-sm;
140 + @include font-size($input-font-size-sm);
141 + line-height: $input-line-height-sm;
142 + @include border-radius($input-border-radius-sm);
143 +}
144 +
145 +.form-control-lg {
146 + height: $input-height-lg;
147 + padding: $input-padding-y-lg $input-padding-x-lg;
148 + @include font-size($input-font-size-lg);
149 + line-height: $input-line-height-lg;
150 + @include border-radius($input-border-radius-lg);
151 +}
152 +
153 +// stylelint-disable-next-line no-duplicate-selectors
154 +select.form-control {
155 + &[size],
156 + &[multiple] {
157 + height: auto;
158 + }
159 +}
160 +
161 +textarea.form-control {
162 + height: auto;
163 +}
164 +
165 +// Form groups
166 +//
167 +// Designed to help with the organization and spacing of vertical forms. For
168 +// horizontal forms, use the predefined grid classes.
169 +
170 +.form-group {
171 + margin-bottom: $form-group-margin-bottom;
172 +}
173 +
174 +.form-text {
175 + display: block;
176 + margin-top: $form-text-margin-top;
177 +}
178 +
179 +
180 +// Form grid
181 +//
182 +// Special replacement for our grid system's `.row` for tighter form layouts.
183 +
184 +.form-row {
185 + display: flex;
186 + flex-wrap: wrap;
187 + margin-right: -$form-grid-gutter-width / 2;
188 + margin-left: -$form-grid-gutter-width / 2;
189 +
190 + > .col,
191 + > [class*="col-"] {
192 + padding-right: $form-grid-gutter-width / 2;
193 + padding-left: $form-grid-gutter-width / 2;
194 + }
195 +}
196 +
197 +
198 +// Checkboxes and radios
199 +//
200 +// Indent the labels to position radios/checkboxes as hanging controls.
201 +
202 +.form-check {
203 + position: relative;
204 + display: block;
205 + padding-left: $form-check-input-gutter;
206 +}
207 +
208 +.form-check-input {
209 + position: absolute;
210 + margin-top: $form-check-input-margin-y;
211 + margin-left: -$form-check-input-gutter;
212 +
213 + &:disabled ~ .form-check-label {
214 + color: $text-muted;
215 + }
216 +}
217 +
218 +.form-check-label {
219 + margin-bottom: 0; // Override default `<label>` bottom margin
220 +}
221 +
222 +.form-check-inline {
223 + display: inline-flex;
224 + align-items: center;
225 + padding-left: 0; // Override base .form-check
226 + margin-right: $form-check-inline-margin-x;
227 +
228 + // Undo .form-check-input defaults and add some `margin-right`.
229 + .form-check-input {
230 + position: static;
231 + margin-top: 0;
232 + margin-right: $form-check-inline-input-margin-x;
233 + margin-left: 0;
234 + }
235 +}
236 +
237 +
238 +// Form validation
239 +//
240 +// Provide feedback to users when form field values are valid or invalid. Works
241 +// primarily for client-side validation via scoped `:invalid` and `:valid`
242 +// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
243 +// server side validation.
244 +
245 +@each $state, $data in $form-validation-states {
246 + @include form-validation-state($state, map-get($data, color), map-get($data, icon));
247 +}
248 +
249 +// Inline forms
250 +//
251 +// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
252 +// forms begin stacked on extra small (mobile) devices and then go inline when
253 +// viewports reach <768px.
254 +//
255 +// Requires wrapping inputs and labels with `.form-group` for proper display of
256 +// default HTML form controls and our custom form controls (e.g., input groups).
257 +
258 +.form-inline {
259 + display: flex;
260 + flex-flow: row wrap;
261 + align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)
262 +
263 + // Because we use flex, the initial sizing of checkboxes is collapsed and
264 + // doesn't occupy the full-width (which is what we want for xs grid tier),
265 + // so we force that here.
266 + .form-check {
267 + width: 100%;
268 + }
269 +
270 + // Kick in the inline
271 + @include media-breakpoint-up(sm) {
272 + label {
273 + display: flex;
274 + align-items: center;
275 + justify-content: center;
276 + margin-bottom: 0;
277 + }
278 +
279 + // Inline-block all the things for "inline"
280 + .form-group {
281 + display: flex;
282 + flex: 0 0 auto;
283 + flex-flow: row wrap;
284 + align-items: center;
285 + margin-bottom: 0;
286 + }
287 +
288 + // Allow folks to *not* use `.form-group`
289 + .form-control {
290 + display: inline-block;
291 + width: auto; // Prevent labels from stacking above inputs in `.form-group`
292 + vertical-align: middle;
293 + }
294 +
295 + // Make static controls behave like regular ones
296 + .form-control-plaintext {
297 + display: inline-block;
298 + }
299 +
300 + .input-group,
301 + .custom-select {
302 + width: auto;
303 + }
304 +
305 + // Remove default margin on radios/checkboxes that were used for stacking, and
306 + // then undo the floating of radios and checkboxes to match.
307 + .form-check {
308 + display: flex;
309 + align-items: center;
310 + justify-content: center;
311 + width: auto;
312 + padding-left: 0;
313 + }
314 + .form-check-input {
315 + position: relative;
316 + flex-shrink: 0;
317 + margin-top: 0;
318 + margin-right: $form-check-input-margin-x;
319 + margin-left: 0;
320 + }
321 +
322 + .custom-control {
323 + align-items: center;
324 + justify-content: center;
325 + }
326 + .custom-control-label {
327 + margin-bottom: 0;
328 + }
329 + }
330 +}
1 +// Bootstrap functions
2 +//
3 +// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
4 +
5 +// Ascending
6 +// Used to evaluate Sass maps like our grid breakpoints.
7 +@mixin _assert-ascending($map, $map-name) {
8 + $prev-key: null;
9 + $prev-num: null;
10 + @each $key, $num in $map {
11 + @if $prev-num == null or unit($num) == "%" {
12 + // Do nothing
13 + } @else if not comparable($prev-num, $num) {
14 + @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
15 + } @else if $prev-num >= $num {
16 + @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
17 + }
18 + $prev-key: $key;
19 + $prev-num: $num;
20 + }
21 +}
22 +
23 +// Starts at zero
24 +// Used to ensure the min-width of the lowest breakpoint starts at 0.
25 +@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
26 + $values: map-values($map);
27 + $first-value: nth($values, 1);
28 + @if $first-value != 0 {
29 + @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
30 + }
31 +}
32 +
33 +// Replace `$search` with `$replace` in `$string`
34 +// Used on our SVG icon backgrounds for custom forms.
35 +//
36 +// @author Hugo Giraudel
37 +// @param {String} $string - Initial string
38 +// @param {String} $search - Substring to replace
39 +// @param {String} $replace ('') - New value
40 +// @return {String} - Updated string
41 +@function str-replace($string, $search, $replace: "") {
42 + $index: str-index($string, $search);
43 +
44 + @if $index {
45 + @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
46 + }
47 +
48 + @return $string;
49 +}
50 +
51 +// Color contrast
52 +@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {
53 + $r: red($color);
54 + $g: green($color);
55 + $b: blue($color);
56 +
57 + $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
58 +
59 + @if ($yiq >= $yiq-contrasted-threshold) {
60 + @return $dark;
61 + } @else {
62 + @return $light;
63 + }
64 +}
65 +
66 +// Retrieve color Sass maps
67 +@function color($key: "blue") {
68 + @return map-get($colors, $key);
69 +}
70 +
71 +@function theme-color($key: "primary") {
72 + @return map-get($theme-colors, $key);
73 +}
74 +
75 +@function gray($key: "100") {
76 + @return map-get($grays, $key);
77 +}
78 +
79 +// Request a theme color level
80 +@function theme-color-level($color-name: "primary", $level: 0) {
81 + $color: theme-color($color-name);
82 + $color-base: if($level > 0, $black, $white);
83 + $level: abs($level);
84 +
85 + @return mix($color-base, $color, $level * $theme-color-interval);
86 +}
1 +// Container widths
2 +//
3 +// Set the container width, and override it for fixed navbars in media queries.
4 +
5 +@if $enable-grid-classes {
6 + .container {
7 + @include make-container();
8 + @include make-container-max-widths();
9 + }
10 +}
11 +
12 +// Fluid container
13 +//
14 +// Utilizes the mixin meant for fixed width containers, but with 100% width for
15 +// fluid, full width layouts.
16 +
17 +@if $enable-grid-classes {
18 + .container-fluid {
19 + @include make-container();
20 + }
21 +}
22 +
23 +// Row
24 +//
25 +// Rows contain and clear the floats of your columns.
26 +
27 +@if $enable-grid-classes {
28 + .row {
29 + @include make-row();
30 + }
31 +
32 + // Remove the negative margin from default .row, then the horizontal padding
33 + // from all immediate children columns (to prevent runaway style inheritance).
34 + .no-gutters {
35 + margin-right: 0;
36 + margin-left: 0;
37 +
38 + > .col,
39 + > [class*="col-"] {
40 + padding-right: 0;
41 + padding-left: 0;
42 + }
43 + }
44 +}
45 +
46 +// Columns
47 +//
48 +// Common styles for small and large grid columns
49 +
50 +@if $enable-grid-classes {
51 + @include make-grid-columns();
52 +}
1 +// Responsive images (ensure images don't scale beyond their parents)
2 +//
3 +// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
4 +// We previously tried the "images are responsive by default" approach in Bootstrap v2,
5 +// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
6 +// which weren't expecting the images within themselves to be involuntarily resized.
7 +// See also https://github.com/twbs/bootstrap/issues/18178
8 +.img-fluid {
9 + @include img-fluid;
10 +}
11 +
12 +
13 +// Image thumbnails
14 +.img-thumbnail {
15 + padding: $thumbnail-padding;
16 + background-color: $thumbnail-bg;
17 + border: $thumbnail-border-width solid $thumbnail-border-color;
18 + @include border-radius($thumbnail-border-radius);
19 + @include box-shadow($thumbnail-box-shadow);
20 +
21 + // Keep them at most 100% wide
22 + @include img-fluid;
23 +}
24 +
25 +//
26 +// Figures
27 +//
28 +
29 +.figure {
30 + // Ensures the caption's text aligns with the image.
31 + display: inline-block;
32 +}
33 +
34 +.figure-img {
35 + margin-bottom: $spacer / 2;
36 + line-height: 1;
37 +}
38 +
39 +.figure-caption {
40 + @include font-size($figure-caption-font-size);
41 + color: $figure-caption-color;
42 +}
1 +// stylelint-disable selector-no-qualifying-type
2 +
3 +//
4 +// Base styles
5 +//
6 +
7 +.input-group {
8 + position: relative;
9 + display: flex;
10 + flex-wrap: wrap; // For form validation feedback
11 + align-items: stretch;
12 + width: 100%;
13 +
14 + > .form-control,
15 + > .form-control-plaintext,
16 + > .custom-select,
17 + > .custom-file {
18 + position: relative; // For focus state's z-index
19 + flex: 1 1 auto;
20 + // Add width 1% and flex-basis auto to ensure that button will not wrap out
21 + // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.
22 + width: 1%;
23 + margin-bottom: 0;
24 +
25 + + .form-control,
26 + + .custom-select,
27 + + .custom-file {
28 + margin-left: -$input-border-width;
29 + }
30 + }
31 +
32 + // Bring the "active" form control to the top of surrounding elements
33 + > .form-control:focus,
34 + > .custom-select:focus,
35 + > .custom-file .custom-file-input:focus ~ .custom-file-label {
36 + z-index: 3;
37 + }
38 +
39 + // Bring the custom file input above the label
40 + > .custom-file .custom-file-input:focus {
41 + z-index: 4;
42 + }
43 +
44 + > .form-control,
45 + > .custom-select {
46 + &:not(:last-child) { @include border-right-radius(0); }
47 + &:not(:first-child) { @include border-left-radius(0); }
48 + }
49 +
50 + // Custom file inputs have more complex markup, thus requiring different
51 + // border-radius overrides.
52 + > .custom-file {
53 + display: flex;
54 + align-items: center;
55 +
56 + &:not(:last-child) .custom-file-label,
57 + &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
58 + &:not(:first-child) .custom-file-label { @include border-left-radius(0); }
59 + }
60 +}
61 +
62 +
63 +// Prepend and append
64 +//
65 +// While it requires one extra layer of HTML for each, dedicated prepend and
66 +// append elements allow us to 1) be less clever, 2) simplify our selectors, and
67 +// 3) support HTML5 form validation.
68 +
69 +.input-group-prepend,
70 +.input-group-append {
71 + display: flex;
72 +
73 + // Ensure buttons are always above inputs for more visually pleasing borders.
74 + // This isn't needed for `.input-group-text` since it shares the same border-color
75 + // as our inputs.
76 + .btn {
77 + position: relative;
78 + z-index: 2;
79 +
80 + &:focus {
81 + z-index: 3;
82 + }
83 + }
84 +
85 + .btn + .btn,
86 + .btn + .input-group-text,
87 + .input-group-text + .input-group-text,
88 + .input-group-text + .btn {
89 + margin-left: -$input-border-width;
90 + }
91 +}
92 +
93 +.input-group-prepend { margin-right: -$input-border-width; }
94 +.input-group-append { margin-left: -$input-border-width; }
95 +
96 +
97 +// Textual addons
98 +//
99 +// Serves as a catch-all element for any text or radio/checkbox input you wish
100 +// to prepend or append to an input.
101 +
102 +.input-group-text {
103 + display: flex;
104 + align-items: center;
105 + padding: $input-padding-y $input-padding-x;
106 + margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
107 + @include font-size($input-font-size); // Match inputs
108 + font-weight: $font-weight-normal;
109 + line-height: $input-line-height;
110 + color: $input-group-addon-color;
111 + text-align: center;
112 + white-space: nowrap;
113 + background-color: $input-group-addon-bg;
114 + border: $input-border-width solid $input-group-addon-border-color;
115 + @include border-radius($input-border-radius);
116 +
117 + // Nuke default margins from checkboxes and radios to vertically center within.
118 + input[type="radio"],
119 + input[type="checkbox"] {
120 + margin-top: 0;
121 + }
122 +}
123 +
124 +
125 +// Sizing
126 +//
127 +// Remix the default form control sizing classes into new ones for easier
128 +// manipulation.
129 +
130 +.input-group-lg > .form-control:not(textarea),
131 +.input-group-lg > .custom-select {
132 + height: $input-height-lg;
133 +}
134 +
135 +.input-group-lg > .form-control,
136 +.input-group-lg > .custom-select,
137 +.input-group-lg > .input-group-prepend > .input-group-text,
138 +.input-group-lg > .input-group-append > .input-group-text,
139 +.input-group-lg > .input-group-prepend > .btn,
140 +.input-group-lg > .input-group-append > .btn {
141 + padding: $input-padding-y-lg $input-padding-x-lg;
142 + @include font-size($input-font-size-lg);
143 + line-height: $input-line-height-lg;
144 + @include border-radius($input-border-radius-lg);
145 +}
146 +
147 +.input-group-sm > .form-control:not(textarea),
148 +.input-group-sm > .custom-select {
149 + height: $input-height-sm;
150 +}
151 +
152 +.input-group-sm > .form-control,
153 +.input-group-sm > .custom-select,
154 +.input-group-sm > .input-group-prepend > .input-group-text,
155 +.input-group-sm > .input-group-append > .input-group-text,
156 +.input-group-sm > .input-group-prepend > .btn,
157 +.input-group-sm > .input-group-append > .btn {
158 + padding: $input-padding-y-sm $input-padding-x-sm;
159 + @include font-size($input-font-size-sm);
160 + line-height: $input-line-height-sm;
161 + @include border-radius($input-border-radius-sm);
162 +}
163 +
164 +.input-group-lg > .custom-select,
165 +.input-group-sm > .custom-select {
166 + padding-right: $custom-select-padding-x + $custom-select-indicator-padding;
167 +}
168 +
169 +
170 +// Prepend and append rounded corners
171 +//
172 +// These rulesets must come after the sizing ones to properly override sm and lg
173 +// border-radius values when extending. They're more specific than we'd like
174 +// with the `.input-group >` part, but without it, we cannot override the sizing.
175 +
176 +
177 +.input-group > .input-group-prepend > .btn,
178 +.input-group > .input-group-prepend > .input-group-text,
179 +.input-group > .input-group-append:not(:last-child) > .btn,
180 +.input-group > .input-group-append:not(:last-child) > .input-group-text,
181 +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
182 +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
183 + @include border-right-radius(0);
184 +}
185 +
186 +.input-group > .input-group-append > .btn,
187 +.input-group > .input-group-append > .input-group-text,
188 +.input-group > .input-group-prepend:not(:first-child) > .btn,
189 +.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
190 +.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
191 +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
192 + @include border-left-radius(0);
193 +}
1 +.jumbotron {
2 + padding: $jumbotron-padding ($jumbotron-padding / 2);
3 + margin-bottom: $jumbotron-padding;
4 + color: $jumbotron-color;
5 + background-color: $jumbotron-bg;
6 + @include border-radius($border-radius-lg);
7 +
8 + @include media-breakpoint-up(sm) {
9 + padding: ($jumbotron-padding * 2) $jumbotron-padding;
10 + }
11 +}
12 +
13 +.jumbotron-fluid {
14 + padding-right: 0;
15 + padding-left: 0;
16 + @include border-radius(0);
17 +}
1 +// Base class
2 +//
3 +// Easily usable on <ul>, <ol>, or <div>.
4 +
5 +.list-group {
6 + display: flex;
7 + flex-direction: column;
8 +
9 + // No need to set list-style: none; since .list-group-item is block level
10 + padding-left: 0; // reset padding because ul and ol
11 + margin-bottom: 0;
12 +}
13 +
14 +
15 +// Interactive list items
16 +//
17 +// Use anchor or button elements instead of `li`s or `div`s to create interactive
18 +// list items. Includes an extra `.active` modifier class for selected items.
19 +
20 +.list-group-item-action {
21 + width: 100%; // For `<button>`s (anchors become 100% by default though)
22 + color: $list-group-action-color;
23 + text-align: inherit; // For `<button>`s (anchors inherit)
24 +
25 + // Hover state
26 + @include hover-focus {
27 + z-index: 1; // Place hover/focus items above their siblings for proper border styling
28 + color: $list-group-action-hover-color;
29 + text-decoration: none;
30 + background-color: $list-group-hover-bg;
31 + }
32 +
33 + &:active {
34 + color: $list-group-action-active-color;
35 + background-color: $list-group-action-active-bg;
36 + }
37 +}
38 +
39 +
40 +// Individual list items
41 +//
42 +// Use on `li`s or `div`s within the `.list-group` parent.
43 +
44 +.list-group-item {
45 + position: relative;
46 + display: block;
47 + padding: $list-group-item-padding-y $list-group-item-padding-x;
48 + // Place the border on the list items and negative margin up for better styling
49 + margin-bottom: -$list-group-border-width;
50 + color: $list-group-color;
51 + background-color: $list-group-bg;
52 + border: $list-group-border-width solid $list-group-border-color;
53 +
54 + &:first-child {
55 + @include border-top-radius($list-group-border-radius);
56 + }
57 +
58 + &:last-child {
59 + margin-bottom: 0;
60 + @include border-bottom-radius($list-group-border-radius);
61 + }
62 +
63 + &.disabled,
64 + &:disabled {
65 + color: $list-group-disabled-color;
66 + pointer-events: none;
67 + background-color: $list-group-disabled-bg;
68 + }
69 +
70 + // Include both here for `<a>`s and `<button>`s
71 + &.active {
72 + z-index: 2; // Place active items above their siblings for proper border styling
73 + color: $list-group-active-color;
74 + background-color: $list-group-active-bg;
75 + border-color: $list-group-active-border-color;
76 + }
77 +}
78 +
79 +
80 +// Horizontal
81 +//
82 +// Change the layout of list group items from vertical (default) to horizontal.
83 +
84 +@each $breakpoint in map-keys($grid-breakpoints) {
85 + @include media-breakpoint-up($breakpoint) {
86 + $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
87 +
88 + .list-group-horizontal#{$infix} {
89 + flex-direction: row;
90 +
91 + .list-group-item {
92 + margin-right: -$list-group-border-width;
93 + margin-bottom: 0;
94 +
95 + &:first-child {
96 + @include border-left-radius($list-group-border-radius);
97 + @include border-top-right-radius(0);
98 + }
99 +
100 + &:last-child {
101 + margin-right: 0;
102 + @include border-right-radius($list-group-border-radius);
103 + @include border-bottom-left-radius(0);
104 + }
105 + }
106 + }
107 + }
108 +}
109 +
110 +
111 +// Flush list items
112 +//
113 +// Remove borders and border-radius to keep list group items edge-to-edge. Most
114 +// useful within other components (e.g., cards).
115 +
116 +.list-group-flush {
117 + .list-group-item {
118 + border-right: 0;
119 + border-left: 0;
120 + @include border-radius(0);
121 +
122 + &:last-child {
123 + margin-bottom: -$list-group-border-width;
124 + }
125 + }
126 +
127 + &:first-child {
128 + .list-group-item:first-child {
129 + border-top: 0;
130 + }
131 + }
132 +
133 + &:last-child {
134 + .list-group-item:last-child {
135 + margin-bottom: 0;
136 + border-bottom: 0;
137 + }
138 + }
139 +}
140 +
141 +
142 +// Contextual variants
143 +//
144 +// Add modifier classes to change text and background color on individual items.
145 +// Organizationally, this must come after the `:hover` states.
146 +
147 +@each $color, $value in $theme-colors {
148 + @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));
149 +}
1 +.media {
2 + display: flex;
3 + align-items: flex-start;
4 +}
5 +
6 +.media-body {
7 + flex: 1;
8 +}
1 +// Toggles
2 +//
3 +// Used in conjunction with global variables to enable certain theme features.
4 +
5 +// Vendor
6 +@import "vendor/rfs";
7 +
8 +// Deprecate
9 +@import "mixins/deprecate";
10 +
11 +// Utilities
12 +@import "mixins/breakpoints";
13 +@import "mixins/hover";
14 +@import "mixins/image";
15 +@import "mixins/badge";
16 +@import "mixins/resize";
17 +@import "mixins/screen-reader";
18 +@import "mixins/size";
19 +@import "mixins/reset-text";
20 +@import "mixins/text-emphasis";
21 +@import "mixins/text-hide";
22 +@import "mixins/text-truncate";
23 +@import "mixins/visibility";
24 +
25 +// // Components
26 +@import "mixins/alert";
27 +@import "mixins/buttons";
28 +@import "mixins/caret";
29 +@import "mixins/pagination";
30 +@import "mixins/lists";
31 +@import "mixins/list-group";
32 +@import "mixins/nav-divider";
33 +@import "mixins/forms";
34 +@import "mixins/table-row";
35 +
36 +// // Skins
37 +@import "mixins/background-variant";
38 +@import "mixins/border-radius";
39 +@import "mixins/box-shadow";
40 +@import "mixins/gradients";
41 +@import "mixins/transition";
42 +
43 +// // Layout
44 +@import "mixins/clearfix";
45 +@import "mixins/grid-framework";
46 +@import "mixins/grid";
47 +@import "mixins/float";
1 +// .modal-open - body class for killing the scroll
2 +// .modal - container to scroll within
3 +// .modal-dialog - positioning shell for the actual modal
4 +// .modal-content - actual modal w/ bg and corners and stuff
5 +
6 +
7 +.modal-open {
8 + // Kill the scroll on the body
9 + overflow: hidden;
10 +
11 + .modal {
12 + overflow-x: hidden;
13 + overflow-y: auto;
14 + }
15 +}
16 +
17 +// Container that the modal scrolls within
18 +.modal {
19 + position: fixed;
20 + top: 0;
21 + left: 0;
22 + z-index: $zindex-modal;
23 + display: none;
24 + width: 100%;
25 + height: 100%;
26 + overflow: hidden;
27 + // Prevent Chrome on Windows from adding a focus outline. For details, see
28 + // https://github.com/twbs/bootstrap/pull/10951.
29 + outline: 0;
30 + // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
31 + // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
32 + // See also https://github.com/twbs/bootstrap/issues/17695
33 +}
34 +
35 +// Shell div to position the modal with bottom padding
36 +.modal-dialog {
37 + position: relative;
38 + width: auto;
39 + margin: $modal-dialog-margin;
40 + // allow clicks to pass through for custom click handling to close modal
41 + pointer-events: none;
42 +
43 + // When fading in the modal, animate it to slide down
44 + .modal.fade & {
45 + @include transition($modal-transition);
46 + transform: $modal-fade-transform;
47 + }
48 + .modal.show & {
49 + transform: $modal-show-transform;
50 + }
51 +}
52 +
53 +.modal-dialog-scrollable {
54 + display: flex; // IE10/11
55 + max-height: calc(100% - #{$modal-dialog-margin * 2});
56 +
57 + .modal-content {
58 + max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11
59 + overflow: hidden;
60 + }
61 +
62 + .modal-header,
63 + .modal-footer {
64 + flex-shrink: 0;
65 + }
66 +
67 + .modal-body {
68 + overflow-y: auto;
69 + }
70 +}
71 +
72 +.modal-dialog-centered {
73 + display: flex;
74 + align-items: center;
75 + min-height: calc(100% - #{$modal-dialog-margin * 2});
76 +
77 + // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)
78 + &::before {
79 + display: block; // IE10
80 + height: calc(100vh - #{$modal-dialog-margin * 2});
81 + content: "";
82 + }
83 +
84 + // Ensure `.modal-body` shows scrollbar (IE10/11)
85 + &.modal-dialog-scrollable {
86 + flex-direction: column;
87 + justify-content: center;
88 + height: 100%;
89 +
90 + .modal-content {
91 + max-height: none;
92 + }
93 +
94 + &::before {
95 + content: none;
96 + }
97 + }
98 +}
99 +
100 +// Actual modal
101 +.modal-content {
102 + position: relative;
103 + display: flex;
104 + flex-direction: column;
105 + width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
106 + // counteract the pointer-events: none; in the .modal-dialog
107 + color: $modal-content-color;
108 + pointer-events: auto;
109 + background-color: $modal-content-bg;
110 + background-clip: padding-box;
111 + border: $modal-content-border-width solid $modal-content-border-color;
112 + @include border-radius($modal-content-border-radius);
113 + @include box-shadow($modal-content-box-shadow-xs);
114 + // Remove focus outline from opened modal
115 + outline: 0;
116 +}
117 +
118 +// Modal background
119 +.modal-backdrop {
120 + position: fixed;
121 + top: 0;
122 + left: 0;
123 + z-index: $zindex-modal-backdrop;
124 + width: 100vw;
125 + height: 100vh;
126 + background-color: $modal-backdrop-bg;
127 +
128 + // Fade for backdrop
129 + &.fade { opacity: 0; }
130 + &.show { opacity: $modal-backdrop-opacity; }
131 +}
132 +
133 +// Modal header
134 +// Top section of the modal w/ title and dismiss
135 +.modal-header {
136 + display: flex;
137 + align-items: flex-start; // so the close btn always stays on the upper right corner
138 + justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
139 + padding: $modal-header-padding;
140 + border-bottom: $modal-header-border-width solid $modal-header-border-color;
141 + @include border-top-radius($modal-content-border-radius);
142 +
143 + .close {
144 + padding: $modal-header-padding;
145 + // auto on the left force icon to the right even when there is no .modal-title
146 + margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;
147 + }
148 +}
149 +
150 +// Title text within header
151 +.modal-title {
152 + margin-bottom: 0;
153 + line-height: $modal-title-line-height;
154 +}
155 +
156 +// Modal body
157 +// Where all modal content resides (sibling of .modal-header and .modal-footer)
158 +.modal-body {
159 + position: relative;
160 + // Enable `flex-grow: 1` so that the body take up as much space as possible
161 + // when should there be a fixed height on `.modal-dialog`.
162 + flex: 1 1 auto;
163 + padding: $modal-inner-padding;
164 +}
165 +
166 +// Footer (for actions)
167 +.modal-footer {
168 + display: flex;
169 + align-items: center; // vertically center
170 + justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
171 + padding: $modal-inner-padding;
172 + border-top: $modal-footer-border-width solid $modal-footer-border-color;
173 + @include border-bottom-radius($modal-content-border-radius);
174 +
175 + // Easily place margin between footer elements
176 + > :not(:first-child) { margin-left: .25rem; }
177 + > :not(:last-child) { margin-right: .25rem; }
178 +}
179 +
180 +// Measure scrollbar width for padding body during modal show/hide
181 +.modal-scrollbar-measure {
182 + position: absolute;
183 + top: -9999px;
184 + width: 50px;
185 + height: 50px;
186 + overflow: scroll;
187 +}
188 +
189 +// Scale up the modal
190 +@include media-breakpoint-up(sm) {
191 + // Automatically set modal's width for larger viewports
192 + .modal-dialog {
193 + max-width: $modal-md;
194 + margin: $modal-dialog-margin-y-sm-up auto;
195 + }
196 +
197 + .modal-dialog-scrollable {
198 + max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
199 +
200 + .modal-content {
201 + max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
202 + }
203 + }
204 +
205 + .modal-dialog-centered {
206 + min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
207 +
208 + &::before {
209 + height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
210 + }
211 + }
212 +
213 + .modal-content {
214 + @include box-shadow($modal-content-box-shadow-sm-up);
215 + }
216 +
217 + .modal-sm { max-width: $modal-sm; }
218 +}
219 +
220 +@include media-breakpoint-up(lg) {
221 + .modal-lg,
222 + .modal-xl {
223 + max-width: $modal-lg;
224 + }
225 +}
226 +
227 +@include media-breakpoint-up(xl) {
228 + .modal-xl { max-width: $modal-xl; }
229 +}
1 +// Base class
2 +//
3 +// Kickstart any navigation component with a set of style resets. Works with
4 +// `<nav>`s or `<ul>`s.
5 +
6 +.nav {
7 + display: flex;
8 + flex-wrap: wrap;
9 + padding-left: 0;
10 + margin-bottom: 0;
11 + list-style: none;
12 +}
13 +
14 +.nav-link {
15 + display: block;
16 + padding: $nav-link-padding-y $nav-link-padding-x;
17 +
18 + @include hover-focus {
19 + text-decoration: none;
20 + }
21 +
22 + // Disabled state lightens text
23 + &.disabled {
24 + color: $nav-link-disabled-color;
25 + pointer-events: none;
26 + cursor: default;
27 + }
28 +}
29 +
30 +//
31 +// Tabs
32 +//
33 +
34 +.nav-tabs {
35 + border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
36 +
37 + .nav-item {
38 + margin-bottom: -$nav-tabs-border-width;
39 + }
40 +
41 + .nav-link {
42 + border: $nav-tabs-border-width solid transparent;
43 + @include border-top-radius($nav-tabs-border-radius);
44 +
45 + @include hover-focus {
46 + border-color: $nav-tabs-link-hover-border-color;
47 + }
48 +
49 + &.disabled {
50 + color: $nav-link-disabled-color;
51 + background-color: transparent;
52 + border-color: transparent;
53 + }
54 + }
55 +
56 + .nav-link.active,
57 + .nav-item.show .nav-link {
58 + color: $nav-tabs-link-active-color;
59 + background-color: $nav-tabs-link-active-bg;
60 + border-color: $nav-tabs-link-active-border-color;
61 + }
62 +
63 + .dropdown-menu {
64 + // Make dropdown border overlap tab border
65 + margin-top: -$nav-tabs-border-width;
66 + // Remove the top rounded corners here since there is a hard edge above the menu
67 + @include border-top-radius(0);
68 + }
69 +}
70 +
71 +
72 +//
73 +// Pills
74 +//
75 +
76 +.nav-pills {
77 + .nav-link {
78 + @include border-radius($nav-pills-border-radius);
79 + }
80 +
81 + .nav-link.active,
82 + .show > .nav-link {
83 + color: $nav-pills-link-active-color;
84 + background-color: $nav-pills-link-active-bg;
85 + }
86 +}
87 +
88 +
89 +//
90 +// Justified variants
91 +//
92 +
93 +.nav-fill {
94 + .nav-item {
95 + flex: 1 1 auto;
96 + text-align: center;
97 + }
98 +}
99 +
100 +.nav-justified {
101 + .nav-item {
102 + flex-basis: 0;
103 + flex-grow: 1;
104 + text-align: center;
105 + }
106 +}
107 +
108 +
109 +// Tabbable tabs
110 +//
111 +// Hide tabbable panes to start, show them when `.active`
112 +
113 +.tab-content {
114 + > .tab-pane {
115 + display: none;
116 + }
117 + > .active {
118 + display: block;
119 + }
120 +}
1 +// Contents
2 +//
3 +// Navbar
4 +// Navbar brand
5 +// Navbar nav
6 +// Navbar text
7 +// Navbar divider
8 +// Responsive navbar
9 +// Navbar position
10 +// Navbar themes
11 +
12 +
13 +// Navbar
14 +//
15 +// Provide a static navbar from which we expand to create full-width, fixed, and
16 +// other navbar variations.
17 +
18 +.navbar {
19 + position: relative;
20 + display: flex;
21 + flex-wrap: wrap; // allow us to do the line break for collapsing content
22 + align-items: center;
23 + justify-content: space-between; // space out brand from logo
24 + padding: $navbar-padding-y $navbar-padding-x;
25 +
26 + // Because flex properties aren't inherited, we need to redeclare these first
27 + // few properties so that content nested within behave properly.
28 + > .container,
29 + > .container-fluid {
30 + display: flex;
31 + flex-wrap: wrap;
32 + align-items: center;
33 + justify-content: space-between;
34 + }
35 +}
36 +
37 +
38 +// Navbar brand
39 +//
40 +// Used for brand, project, or site names.
41 +
42 +.navbar-brand {
43 + display: inline-block;
44 + padding-top: $navbar-brand-padding-y;
45 + padding-bottom: $navbar-brand-padding-y;
46 + margin-right: $navbar-padding-x;
47 + @include font-size($navbar-brand-font-size);
48 + line-height: inherit;
49 + white-space: nowrap;
50 +
51 + @include hover-focus {
52 + text-decoration: none;
53 + }
54 +}
55 +
56 +
57 +// Navbar nav
58 +//
59 +// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
60 +
61 +.navbar-nav {
62 + display: flex;
63 + flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
64 + padding-left: 0;
65 + margin-bottom: 0;
66 + list-style: none;
67 +
68 + .nav-link {
69 + padding-right: 0;
70 + padding-left: 0;
71 + }
72 +
73 + .dropdown-menu {
74 + position: static;
75 + float: none;
76 + }
77 +}
78 +
79 +
80 +// Navbar text
81 +//
82 +//
83 +
84 +.navbar-text {
85 + display: inline-block;
86 + padding-top: $nav-link-padding-y;
87 + padding-bottom: $nav-link-padding-y;
88 +}
89 +
90 +
91 +// Responsive navbar
92 +//
93 +// Custom styles for responsive collapsing and toggling of navbar contents.
94 +// Powered by the collapse Bootstrap JavaScript plugin.
95 +
96 +// When collapsed, prevent the toggleable navbar contents from appearing in
97 +// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
98 +// on the `.navbar` parent.
99 +.navbar-collapse {
100 + flex-basis: 100%;
101 + flex-grow: 1;
102 + // For always expanded or extra full navbars, ensure content aligns itself
103 + // properly vertically. Can be easily overridden with flex utilities.
104 + align-items: center;
105 +}
106 +
107 +// Button for toggling the navbar when in its collapsed state
108 +.navbar-toggler {
109 + padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
110 + @include font-size($navbar-toggler-font-size);
111 + line-height: 1;
112 + background-color: transparent; // remove default button style
113 + border: $border-width solid transparent; // remove default button style
114 + @include border-radius($navbar-toggler-border-radius);
115 +
116 + @include hover-focus {
117 + text-decoration: none;
118 + }
119 +}
120 +
121 +// Keep as a separate element so folks can easily override it with another icon
122 +// or image file as needed.
123 +.navbar-toggler-icon {
124 + display: inline-block;
125 + width: 1.5em;
126 + height: 1.5em;
127 + vertical-align: middle;
128 + content: "";
129 + background: no-repeat center center;
130 + background-size: 100% 100%;
131 +}
132 +
133 +// Generate series of `.navbar-expand-*` responsive classes for configuring
134 +// where your navbar collapses.
135 +.navbar-expand {
136 + @each $breakpoint in map-keys($grid-breakpoints) {
137 + $next: breakpoint-next($breakpoint, $grid-breakpoints);
138 + $infix: breakpoint-infix($next, $grid-breakpoints);
139 +
140 + &#{$infix} {
141 + @include media-breakpoint-down($breakpoint) {
142 + > .container,
143 + > .container-fluid {
144 + padding-right: 0;
145 + padding-left: 0;
146 + }
147 + }
148 +
149 + @include media-breakpoint-up($next) {
150 + flex-flow: row nowrap;
151 + justify-content: flex-start;
152 +
153 + .navbar-nav {
154 + flex-direction: row;
155 +
156 + .dropdown-menu {
157 + position: absolute;
158 + }
159 +
160 + .nav-link {
161 + padding-right: $navbar-nav-link-padding-x;
162 + padding-left: $navbar-nav-link-padding-x;
163 + }
164 + }
165 +
166 + // For nesting containers, have to redeclare for alignment purposes
167 + > .container,
168 + > .container-fluid {
169 + flex-wrap: nowrap;
170 + }
171 +
172 + .navbar-collapse {
173 + display: flex !important; // stylelint-disable-line declaration-no-important
174 +
175 + // Changes flex-bases to auto because of an IE10 bug
176 + flex-basis: auto;
177 + }
178 +
179 + .navbar-toggler {
180 + display: none;
181 + }
182 + }
183 + }
184 + }
185 +}
186 +
187 +
188 +// Navbar themes
189 +//
190 +// Styles for switching between navbars with light or dark background.
191 +
192 +// Dark links against a light background
193 +.navbar-light {
194 + .navbar-brand {
195 + color: $navbar-light-brand-color;
196 +
197 + @include hover-focus {
198 + color: $navbar-light-brand-hover-color;
199 + }
200 + }
201 +
202 + .navbar-nav {
203 + .nav-link {
204 + color: $navbar-light-color;
205 +
206 + @include hover-focus {
207 + color: $navbar-light-hover-color;
208 + }
209 +
210 + &.disabled {
211 + color: $navbar-light-disabled-color;
212 + }
213 + }
214 +
215 + .show > .nav-link,
216 + .active > .nav-link,
217 + .nav-link.show,
218 + .nav-link.active {
219 + color: $navbar-light-active-color;
220 + }
221 + }
222 +
223 + .navbar-toggler {
224 + color: $navbar-light-color;
225 + border-color: $navbar-light-toggler-border-color;
226 + }
227 +
228 + .navbar-toggler-icon {
229 + background-image: $navbar-light-toggler-icon-bg;
230 + }
231 +
232 + .navbar-text {
233 + color: $navbar-light-color;
234 + a {
235 + color: $navbar-light-active-color;
236 +
237 + @include hover-focus {
238 + color: $navbar-light-active-color;
239 + }
240 + }
241 + }
242 +}
243 +
244 +// White links against a dark background
245 +.navbar-dark {
246 + .navbar-brand {
247 + color: $navbar-dark-brand-color;
248 +
249 + @include hover-focus {
250 + color: $navbar-dark-brand-hover-color;
251 + }
252 + }
253 +
254 + .navbar-nav {
255 + .nav-link {
256 + color: $navbar-dark-color;
257 +
258 + @include hover-focus {
259 + color: $navbar-dark-hover-color;
260 + }
261 +
262 + &.disabled {
263 + color: $navbar-dark-disabled-color;
264 + }
265 + }
266 +
267 + .show > .nav-link,
268 + .active > .nav-link,
269 + .nav-link.show,
270 + .nav-link.active {
271 + color: $navbar-dark-active-color;
272 + }
273 + }
274 +
275 + .navbar-toggler {
276 + color: $navbar-dark-color;
277 + border-color: $navbar-dark-toggler-border-color;
278 + }
279 +
280 + .navbar-toggler-icon {
281 + background-image: $navbar-dark-toggler-icon-bg;
282 + }
283 +
284 + .navbar-text {
285 + color: $navbar-dark-color;
286 + a {
287 + color: $navbar-dark-active-color;
288 +
289 + @include hover-focus {
290 + color: $navbar-dark-active-color;
291 + }
292 + }
293 + }
294 +}
1 +.pagination {
2 + display: flex;
3 + @include list-unstyled();
4 + @include border-radius();
5 +}
6 +
7 +.page-link {
8 + position: relative;
9 + display: block;
10 + padding: $pagination-padding-y $pagination-padding-x;
11 + margin-left: -$pagination-border-width;
12 + line-height: $pagination-line-height;
13 + color: $pagination-color;
14 + background-color: $pagination-bg;
15 + border: $pagination-border-width solid $pagination-border-color;
16 +
17 + &:hover {
18 + z-index: 2;
19 + color: $pagination-hover-color;
20 + text-decoration: none;
21 + background-color: $pagination-hover-bg;
22 + border-color: $pagination-hover-border-color;
23 + }
24 +
25 + &:focus {
26 + z-index: 2;
27 + outline: $pagination-focus-outline;
28 + box-shadow: $pagination-focus-box-shadow;
29 + }
30 +}
31 +
32 +.page-item {
33 + &:first-child {
34 + .page-link {
35 + margin-left: 0;
36 + @include border-left-radius($border-radius);
37 + }
38 + }
39 + &:last-child {
40 + .page-link {
41 + @include border-right-radius($border-radius);
42 + }
43 + }
44 +
45 + &.active .page-link {
46 + z-index: 1;
47 + color: $pagination-active-color;
48 + background-color: $pagination-active-bg;
49 + border-color: $pagination-active-border-color;
50 + }
51 +
52 + &.disabled .page-link {
53 + color: $pagination-disabled-color;
54 + pointer-events: none;
55 + // Opinionated: remove the "hand" cursor set previously for .page-link
56 + cursor: auto;
57 + background-color: $pagination-disabled-bg;
58 + border-color: $pagination-disabled-border-color;
59 + }
60 +}
61 +
62 +
63 +//
64 +// Sizing
65 +//
66 +
67 +.pagination-lg {
68 + @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);
69 +}
70 +
71 +.pagination-sm {
72 + @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);
73 +}
1 +.popover {
2 + position: absolute;
3 + top: 0;
4 + left: 0;
5 + z-index: $zindex-popover;
6 + display: block;
7 + max-width: $popover-max-width;
8 + // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
9 + // So reset our font and text properties to avoid inheriting weird values.
10 + @include reset-text();
11 + @include font-size($popover-font-size);
12 + // Allow breaking very long words so they don't overflow the popover's bounds
13 + word-wrap: break-word;
14 + background-color: $popover-bg;
15 + background-clip: padding-box;
16 + border: $popover-border-width solid $popover-border-color;
17 + @include border-radius($popover-border-radius);
18 + @include box-shadow($popover-box-shadow);
19 +
20 + .arrow {
21 + position: absolute;
22 + display: block;
23 + width: $popover-arrow-width;
24 + height: $popover-arrow-height;
25 + margin: 0 $border-radius-lg;
26 +
27 + &::before,
28 + &::after {
29 + position: absolute;
30 + display: block;
31 + content: "";
32 + border-color: transparent;
33 + border-style: solid;
34 + }
35 + }
36 +}
37 +
38 +.bs-popover-top {
39 + margin-bottom: $popover-arrow-height;
40 +
41 + > .arrow {
42 + bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
43 +
44 + &::before {
45 + bottom: 0;
46 + border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
47 + border-top-color: $popover-arrow-outer-color;
48 + }
49 +
50 + &::after {
51 + bottom: $popover-border-width;
52 + border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
53 + border-top-color: $popover-arrow-color;
54 + }
55 + }
56 +}
57 +
58 +.bs-popover-right {
59 + margin-left: $popover-arrow-height;
60 +
61 + > .arrow {
62 + left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
63 + width: $popover-arrow-height;
64 + height: $popover-arrow-width;
65 + margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
66 +
67 + &::before {
68 + left: 0;
69 + border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
70 + border-right-color: $popover-arrow-outer-color;
71 + }
72 +
73 + &::after {
74 + left: $popover-border-width;
75 + border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
76 + border-right-color: $popover-arrow-color;
77 + }
78 + }
79 +}
80 +
81 +.bs-popover-bottom {
82 + margin-top: $popover-arrow-height;
83 +
84 + > .arrow {
85 + top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
86 +
87 + &::before {
88 + top: 0;
89 + border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
90 + border-bottom-color: $popover-arrow-outer-color;
91 + }
92 +
93 + &::after {
94 + top: $popover-border-width;
95 + border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
96 + border-bottom-color: $popover-arrow-color;
97 + }
98 + }
99 +
100 + // This will remove the popover-header's border just below the arrow
101 + .popover-header::before {
102 + position: absolute;
103 + top: 0;
104 + left: 50%;
105 + display: block;
106 + width: $popover-arrow-width;
107 + margin-left: -$popover-arrow-width / 2;
108 + content: "";
109 + border-bottom: $popover-border-width solid $popover-header-bg;
110 + }
111 +}
112 +
113 +.bs-popover-left {
114 + margin-right: $popover-arrow-height;
115 +
116 + > .arrow {
117 + right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
118 + width: $popover-arrow-height;
119 + height: $popover-arrow-width;
120 + margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
121 +
122 + &::before {
123 + right: 0;
124 + border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
125 + border-left-color: $popover-arrow-outer-color;
126 + }
127 +
128 + &::after {
129 + right: $popover-border-width;
130 + border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
131 + border-left-color: $popover-arrow-color;
132 + }
133 + }
134 +}
135 +
136 +.bs-popover-auto {
137 + &[x-placement^="top"] {
138 + @extend .bs-popover-top;
139 + }
140 + &[x-placement^="right"] {
141 + @extend .bs-popover-right;
142 + }
143 + &[x-placement^="bottom"] {
144 + @extend .bs-popover-bottom;
145 + }
146 + &[x-placement^="left"] {
147 + @extend .bs-popover-left;
148 + }
149 +}
150 +
151 +
152 +// Offset the popover to account for the popover arrow
153 +.popover-header {
154 + padding: $popover-header-padding-y $popover-header-padding-x;
155 + margin-bottom: 0; // Reset the default from Reboot
156 + @include font-size($font-size-base);
157 + color: $popover-header-color;
158 + background-color: $popover-header-bg;
159 + border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);
160 + $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});
161 + @include border-top-radius($offset-border-width);
162 +
163 + &:empty {
164 + display: none;
165 + }
166 +}
167 +
168 +.popover-body {
169 + padding: $popover-body-padding-y $popover-body-padding-x;
170 + color: $popover-body-color;
171 +}
1 +// stylelint-disable declaration-no-important, selector-no-qualifying-type
2 +
3 +// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
4 +
5 +// ==========================================================================
6 +// Print styles.
7 +// Inlined to avoid the additional HTTP request:
8 +// https://www.phpied.com/delay-loading-your-print-css/
9 +// ==========================================================================
10 +
11 +@if $enable-print-styles {
12 + @media print {
13 + *,
14 + *::before,
15 + *::after {
16 + // Bootstrap specific; comment out `color` and `background`
17 + //color: $black !important; // Black prints faster
18 + text-shadow: none !important;
19 + //background: transparent !important;
20 + box-shadow: none !important;
21 + }
22 +
23 + a {
24 + &:not(.btn) {
25 + text-decoration: underline;
26 + }
27 + }
28 +
29 + // Bootstrap specific; comment the following selector out
30 + //a[href]::after {
31 + // content: " (" attr(href) ")";
32 + //}
33 +
34 + abbr[title]::after {
35 + content: " (" attr(title) ")";
36 + }
37 +
38 + // Bootstrap specific; comment the following selector out
39 + //
40 + // Don't show links that are fragment identifiers,
41 + // or use the `javascript:` pseudo protocol
42 + //
43 +
44 + //a[href^="#"]::after,
45 + //a[href^="javascript:"]::after {
46 + // content: "";
47 + //}
48 +
49 + pre {
50 + white-space: pre-wrap !important;
51 + }
52 + pre,
53 + blockquote {
54 + border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px
55 + page-break-inside: avoid;
56 + }
57 +
58 + //
59 + // Printing Tables:
60 + // http://css-discuss.incutio.com/wiki/Printing_Tables
61 + //
62 +
63 + thead {
64 + display: table-header-group;
65 + }
66 +
67 + tr,
68 + img {
69 + page-break-inside: avoid;
70 + }
71 +
72 + p,
73 + h2,
74 + h3 {
75 + orphans: 3;
76 + widows: 3;
77 + }
78 +
79 + h2,
80 + h3 {
81 + page-break-after: avoid;
82 + }
83 +
84 + // Bootstrap specific changes start
85 +
86 + // Specify a size and min-width to make printing closer across browsers.
87 + // We don't set margin here because it breaks `size` in Chrome. We also
88 + // don't use `!important` on `size` as it breaks in Chrome.
89 + @page {
90 + size: $print-page-size;
91 + }
92 + body {
93 + min-width: $print-body-min-width !important;
94 + }
95 + .container {
96 + min-width: $print-body-min-width !important;
97 + }
98 +
99 + // Bootstrap components
100 + .navbar {
101 + display: none;
102 + }
103 + .badge {
104 + border: $border-width solid $black;
105 + }
106 +
107 + .table {
108 + border-collapse: collapse !important;
109 +
110 + td,
111 + th {
112 + background-color: $white !important;
113 + }
114 + }
115 +
116 + .table-bordered {
117 + th,
118 + td {
119 + border: 1px solid $gray-300 !important;
120 + }
121 + }
122 +
123 + .table-dark {
124 + color: inherit;
125 +
126 + th,
127 + td,
128 + thead th,
129 + tbody + tbody {
130 + border-color: $table-border-color;
131 + }
132 + }
133 +
134 + .table .thead-dark th {
135 + color: inherit;
136 + border-color: $table-border-color;
137 + }
138 +
139 + // Bootstrap specific changes end
140 + }
141 +}
1 +// Disable animation if transitions are disabled
2 +@if $enable-transitions {
3 + @keyframes progress-bar-stripes {
4 + from { background-position: $progress-height 0; }
5 + to { background-position: 0 0; }
6 + }
7 +}
8 +
9 +.progress {
10 + display: flex;
11 + height: $progress-height;
12 + overflow: hidden; // force rounded corners by cropping it
13 + @include font-size($progress-font-size);
14 + background-color: $progress-bg;
15 + @include border-radius($progress-border-radius);
16 + @include box-shadow($progress-box-shadow);
17 +}
18 +
19 +.progress-bar {
20 + display: flex;
21 + flex-direction: column;
22 + justify-content: center;
23 + color: $progress-bar-color;
24 + text-align: center;
25 + white-space: nowrap;
26 + background-color: $progress-bar-bg;
27 + @include transition($progress-bar-transition);
28 +}
29 +
30 +.progress-bar-striped {
31 + @include gradient-striped();
32 + background-size: $progress-height $progress-height;
33 +}
34 +
35 +@if $enable-transitions {
36 + .progress-bar-animated {
37 + animation: progress-bar-stripes $progress-bar-animation-timing;
38 +
39 + @media (prefers-reduced-motion: reduce) {
40 + animation: none;
41 + }
42 + }
43 +}
1 +// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
2 +
3 +// Reboot
4 +//
5 +// Normalization of HTML elements, manually forked from Normalize.css to remove
6 +// styles targeting irrelevant browsers while applying new styles.
7 +//
8 +// Normalize is licensed MIT. https://github.com/necolas/normalize.css
9 +
10 +
11 +// Document
12 +//
13 +// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
14 +// 2. Change the default font family in all browsers.
15 +// 3. Correct the line height in all browsers.
16 +// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.
17 +// 5. Change the default tap highlight to be completely transparent in iOS.
18 +
19 +*,
20 +*::before,
21 +*::after {
22 + box-sizing: border-box; // 1
23 +}
24 +
25 +html {
26 + font-family: sans-serif; // 2
27 + line-height: 1.15; // 3
28 + -webkit-text-size-adjust: 100%; // 4
29 + -webkit-tap-highlight-color: rgba($black, 0); // 5
30 +}
31 +
32 +// Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)
33 +// TODO: remove in v5
34 +// stylelint-disable-next-line selector-list-comma-newline-after
35 +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
36 + display: block;
37 +}
38 +
39 +// Body
40 +//
41 +// 1. Remove the margin in all browsers.
42 +// 2. As a best practice, apply a default `background-color`.
43 +// 3. Set an explicit initial text-align value so that we can later use
44 +// the `inherit` value on things like `<th>` elements.
45 +
46 +body {
47 + margin: 0; // 1
48 + font-family: $font-family-base;
49 + @include font-size($font-size-base);
50 + font-weight: $font-weight-base;
51 + line-height: $line-height-base;
52 + color: $body-color;
53 + text-align: left; // 3
54 + background-color: $body-bg; // 2
55 +}
56 +
57 +// Suppress the focus outline on elements that cannot be accessed via keyboard.
58 +// This prevents an unwanted focus outline from appearing around elements that
59 +// might still respond to pointer events.
60 +//
61 +// Credit: https://github.com/suitcss/base
62 +[tabindex="-1"]:focus {
63 + outline: 0 !important;
64 +}
65 +
66 +
67 +// Content grouping
68 +//
69 +// 1. Add the correct box sizing in Firefox.
70 +// 2. Show the overflow in Edge and IE.
71 +
72 +hr {
73 + box-sizing: content-box; // 1
74 + height: 0; // 1
75 + overflow: visible; // 2
76 +}
77 +
78 +
79 +//
80 +// Typography
81 +//
82 +
83 +// Remove top margins from headings
84 +//
85 +// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
86 +// margin for easier control within type scales as it avoids margin collapsing.
87 +// stylelint-disable-next-line selector-list-comma-newline-after
88 +h1, h2, h3, h4, h5, h6 {
89 + margin-top: 0;
90 + margin-bottom: $headings-margin-bottom;
91 +}
92 +
93 +// Reset margins on paragraphs
94 +//
95 +// Similarly, the top margin on `<p>`s get reset. However, we also reset the
96 +// bottom margin to use `rem` units instead of `em`.
97 +p {
98 + margin-top: 0;
99 + margin-bottom: $paragraph-margin-bottom;
100 +}
101 +
102 +// Abbreviations
103 +//
104 +// 1. Duplicate behavior to the data-* attribute for our tooltip plugin
105 +// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
106 +// 3. Add explicit cursor to indicate changed behavior.
107 +// 4. Remove the bottom border in Firefox 39-.
108 +// 5. Prevent the text-decoration to be skipped.
109 +
110 +abbr[title],
111 +abbr[data-original-title] { // 1
112 + text-decoration: underline; // 2
113 + text-decoration: underline dotted; // 2
114 + cursor: help; // 3
115 + border-bottom: 0; // 4
116 + text-decoration-skip-ink: none; // 5
117 +}
118 +
119 +address {
120 + margin-bottom: 1rem;
121 + font-style: normal;
122 + line-height: inherit;
123 +}
124 +
125 +ol,
126 +ul,
127 +dl {
128 + margin-top: 0;
129 + margin-bottom: 1rem;
130 +}
131 +
132 +ol ol,
133 +ul ul,
134 +ol ul,
135 +ul ol {
136 + margin-bottom: 0;
137 +}
138 +
139 +dt {
140 + font-weight: $dt-font-weight;
141 +}
142 +
143 +dd {
144 + margin-bottom: .5rem;
145 + margin-left: 0; // Undo browser default
146 +}
147 +
148 +blockquote {
149 + margin: 0 0 1rem;
150 +}
151 +
152 +b,
153 +strong {
154 + font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari
155 +}
156 +
157 +small {
158 + @include font-size(80%); // Add the correct font size in all browsers
159 +}
160 +
161 +//
162 +// Prevent `sub` and `sup` elements from affecting the line height in
163 +// all browsers.
164 +//
165 +
166 +sub,
167 +sup {
168 + position: relative;
169 + @include font-size(75%);
170 + line-height: 0;
171 + vertical-align: baseline;
172 +}
173 +
174 +sub { bottom: -.25em; }
175 +sup { top: -.5em; }
176 +
177 +
178 +//
179 +// Links
180 +//
181 +
182 +a {
183 + color: $link-color;
184 + text-decoration: $link-decoration;
185 + background-color: transparent; // Remove the gray background on active links in IE 10.
186 +
187 + @include hover {
188 + color: $link-hover-color;
189 + text-decoration: $link-hover-decoration;
190 + }
191 +}
192 +
193 +// And undo these styles for placeholder links/named anchors (without href)
194 +// which have not been made explicitly keyboard-focusable (without tabindex).
195 +// It would be more straightforward to just use a[href] in previous block, but that
196 +// causes specificity issues in many other styles that are too complex to fix.
197 +// See https://github.com/twbs/bootstrap/issues/19402
198 +
199 +a:not([href]):not([tabindex]) {
200 + color: inherit;
201 + text-decoration: none;
202 +
203 + @include hover-focus {
204 + color: inherit;
205 + text-decoration: none;
206 + }
207 +
208 + &:focus {
209 + outline: 0;
210 + }
211 +}
212 +
213 +
214 +//
215 +// Code
216 +//
217 +
218 +pre,
219 +code,
220 +kbd,
221 +samp {
222 + font-family: $font-family-monospace;
223 + @include font-size(1em); // Correct the odd `em` font sizing in all browsers.
224 +}
225 +
226 +pre {
227 + // Remove browser default top margin
228 + margin-top: 0;
229 + // Reset browser default of `1em` to use `rem`s
230 + margin-bottom: 1rem;
231 + // Don't allow content to break outside
232 + overflow: auto;
233 +}
234 +
235 +
236 +//
237 +// Figures
238 +//
239 +
240 +figure {
241 + // Apply a consistent margin strategy (matches our type styles).
242 + margin: 0 0 1rem;
243 +}
244 +
245 +
246 +//
247 +// Images and content
248 +//
249 +
250 +img {
251 + vertical-align: middle;
252 + border-style: none; // Remove the border on images inside links in IE 10-.
253 +}
254 +
255 +svg {
256 + // Workaround for the SVG overflow bug in IE10/11 is still required.
257 + // See https://github.com/twbs/bootstrap/issues/26878
258 + overflow: hidden;
259 + vertical-align: middle;
260 +}
261 +
262 +
263 +//
264 +// Tables
265 +//
266 +
267 +table {
268 + border-collapse: collapse; // Prevent double borders
269 +}
270 +
271 +caption {
272 + padding-top: $table-cell-padding;
273 + padding-bottom: $table-cell-padding;
274 + color: $table-caption-color;
275 + text-align: left;
276 + caption-side: bottom;
277 +}
278 +
279 +th {
280 + // Matches default `<td>` alignment by inheriting from the `<body>`, or the
281 + // closest parent with a set `text-align`.
282 + text-align: inherit;
283 +}
284 +
285 +
286 +//
287 +// Forms
288 +//
289 +
290 +label {
291 + // Allow labels to use `margin` for spacing.
292 + display: inline-block;
293 + margin-bottom: $label-margin-bottom;
294 +}
295 +
296 +// Remove the default `border-radius` that macOS Chrome adds.
297 +//
298 +// Details at https://github.com/twbs/bootstrap/issues/24093
299 +button {
300 + // stylelint-disable-next-line property-blacklist
301 + border-radius: 0;
302 +}
303 +
304 +// Work around a Firefox/IE bug where the transparent `button` background
305 +// results in a loss of the default `button` focus styles.
306 +//
307 +// Credit: https://github.com/suitcss/base/
308 +button:focus {
309 + outline: 1px dotted;
310 + outline: 5px auto -webkit-focus-ring-color;
311 +}
312 +
313 +input,
314 +button,
315 +select,
316 +optgroup,
317 +textarea {
318 + margin: 0; // Remove the margin in Firefox and Safari
319 + font-family: inherit;
320 + @include font-size(inherit);
321 + line-height: inherit;
322 +}
323 +
324 +button,
325 +input {
326 + overflow: visible; // Show the overflow in Edge
327 +}
328 +
329 +button,
330 +select {
331 + text-transform: none; // Remove the inheritance of text transform in Firefox
332 +}
333 +
334 +// Remove the inheritance of word-wrap in Safari.
335 +//
336 +// Details at https://github.com/twbs/bootstrap/issues/24990
337 +select {
338 + word-wrap: normal;
339 +}
340 +
341 +
342 +// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
343 +// controls in Android 4.
344 +// 2. Correct the inability to style clickable types in iOS and Safari.
345 +button,
346 +[type="button"], // 1
347 +[type="reset"],
348 +[type="submit"] {
349 + -webkit-appearance: button; // 2
350 +}
351 +
352 +// Opinionated: add "hand" cursor to non-disabled button elements.
353 +@if $enable-pointer-cursor-for-buttons {
354 + button,
355 + [type="button"],
356 + [type="reset"],
357 + [type="submit"] {
358 + &:not(:disabled) {
359 + cursor: pointer;
360 + }
361 + }
362 +}
363 +
364 +// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
365 +button::-moz-focus-inner,
366 +[type="button"]::-moz-focus-inner,
367 +[type="reset"]::-moz-focus-inner,
368 +[type="submit"]::-moz-focus-inner {
369 + padding: 0;
370 + border-style: none;
371 +}
372 +
373 +input[type="radio"],
374 +input[type="checkbox"] {
375 + box-sizing: border-box; // 1. Add the correct box sizing in IE 10-
376 + padding: 0; // 2. Remove the padding in IE 10-
377 +}
378 +
379 +
380 +input[type="date"],
381 +input[type="time"],
382 +input[type="datetime-local"],
383 +input[type="month"] {
384 + // Remove the default appearance of temporal inputs to avoid a Mobile Safari
385 + // bug where setting a custom line-height prevents text from being vertically
386 + // centered within the input.
387 + // See https://bugs.webkit.org/show_bug.cgi?id=139848
388 + // and https://github.com/twbs/bootstrap/issues/11266
389 + -webkit-appearance: listbox;
390 +}
391 +
392 +textarea {
393 + overflow: auto; // Remove the default vertical scrollbar in IE.
394 + // Textareas should really only resize vertically so they don't break their (horizontal) containers.
395 + resize: vertical;
396 +}
397 +
398 +fieldset {
399 + // Browsers set a default `min-width: min-content;` on fieldsets,
400 + // unlike e.g. `<div>`s, which have `min-width: 0;` by default.
401 + // So we reset that to ensure fieldsets behave more like a standard block element.
402 + // See https://github.com/twbs/bootstrap/issues/12359
403 + // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
404 + min-width: 0;
405 + // Reset the default outline behavior of fieldsets so they don't affect page layout.
406 + padding: 0;
407 + margin: 0;
408 + border: 0;
409 +}
410 +
411 +// 1. Correct the text wrapping in Edge and IE.
412 +// 2. Correct the color inheritance from `fieldset` elements in IE.
413 +legend {
414 + display: block;
415 + width: 100%;
416 + max-width: 100%; // 1
417 + padding: 0;
418 + margin-bottom: .5rem;
419 + @include font-size(1.5rem);
420 + line-height: inherit;
421 + color: inherit; // 2
422 + white-space: normal; // 1
423 +}
424 +
425 +progress {
426 + vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.
427 +}
428 +
429 +// Correct the cursor style of increment and decrement buttons in Chrome.
430 +[type="number"]::-webkit-inner-spin-button,
431 +[type="number"]::-webkit-outer-spin-button {
432 + height: auto;
433 +}
434 +
435 +[type="search"] {
436 + // This overrides the extra rounded corners on search inputs in iOS so that our
437 + // `.form-control` class can properly style them. Note that this cannot simply
438 + // be added to `.form-control` as it's not specific enough. For details, see
439 + // https://github.com/twbs/bootstrap/issues/11586.
440 + outline-offset: -2px; // 2. Correct the outline style in Safari.
441 + -webkit-appearance: none;
442 +}
443 +
444 +//
445 +// Remove the inner padding in Chrome and Safari on macOS.
446 +//
447 +
448 +[type="search"]::-webkit-search-decoration {
449 + -webkit-appearance: none;
450 +}
451 +
452 +//
453 +// 1. Correct the inability to style clickable types in iOS and Safari.
454 +// 2. Change font properties to `inherit` in Safari.
455 +//
456 +
457 +::-webkit-file-upload-button {
458 + font: inherit; // 2
459 + -webkit-appearance: button; // 1
460 +}
461 +
462 +//
463 +// Correct element displays
464 +//
465 +
466 +output {
467 + display: inline-block;
468 +}
469 +
470 +summary {
471 + display: list-item; // Add the correct display in all browsers
472 + cursor: pointer;
473 +}
474 +
475 +template {
476 + display: none; // Add the correct display in IE
477 +}
478 +
479 +// Always hide an element with the `hidden` HTML attribute (from PureCSS).
480 +// Needed for proper display in IE 10-.
481 +[hidden] {
482 + display: none !important;
483 +}
1 +:root {
2 + // Custom variable values only support SassScript inside `#{}`.
3 + @each $color, $value in $colors {
4 + --#{$color}: #{$value};
5 + }
6 +
7 + @each $color, $value in $theme-colors {
8 + --#{$color}: #{$value};
9 + }
10 +
11 + @each $bp, $value in $grid-breakpoints {
12 + --breakpoint-#{$bp}: #{$value};
13 + }
14 +
15 + // Use `inspect` for lists so that quoted items keep the quotes.
16 + // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
17 + --font-family-sans-serif: #{inspect($font-family-sans-serif)};
18 + --font-family-monospace: #{inspect($font-family-monospace)};
19 +}
1 +//
2 +// Rotating border
3 +//
4 +
5 +@keyframes spinner-border {
6 + to { transform: rotate(360deg); }
7 +}
8 +
9 +.spinner-border {
10 + display: inline-block;
11 + width: $spinner-width;
12 + height: $spinner-height;
13 + vertical-align: text-bottom;
14 + border: $spinner-border-width solid currentColor;
15 + border-right-color: transparent;
16 + // stylelint-disable-next-line property-blacklist
17 + border-radius: 50%;
18 + animation: spinner-border .75s linear infinite;
19 +}
20 +
21 +.spinner-border-sm {
22 + width: $spinner-width-sm;
23 + height: $spinner-height-sm;
24 + border-width: $spinner-border-width-sm;
25 +}
26 +
27 +//
28 +// Growing circle
29 +//
30 +
31 +@keyframes spinner-grow {
32 + 0% {
33 + transform: scale(0);
34 + }
35 + 50% {
36 + opacity: 1;
37 + }
38 +}
39 +
40 +.spinner-grow {
41 + display: inline-block;
42 + width: $spinner-width;
43 + height: $spinner-height;
44 + vertical-align: text-bottom;
45 + background-color: currentColor;
46 + // stylelint-disable-next-line property-blacklist
47 + border-radius: 50%;
48 + opacity: 0;
49 + animation: spinner-grow .75s linear infinite;
50 +}
51 +
52 +.spinner-grow-sm {
53 + width: $spinner-width-sm;
54 + height: $spinner-height-sm;
55 +}
1 +//
2 +// Basic Bootstrap table
3 +//
4 +
5 +.table {
6 + width: 100%;
7 + margin-bottom: $spacer;
8 + color: $table-color;
9 + background-color: $table-bg; // Reset for nesting within parents with `background-color`.
10 +
11 + th,
12 + td {
13 + padding: $table-cell-padding;
14 + vertical-align: top;
15 + border-top: $table-border-width solid $table-border-color;
16 + }
17 +
18 + thead th {
19 + vertical-align: bottom;
20 + border-bottom: (2 * $table-border-width) solid $table-border-color;
21 + }
22 +
23 + tbody + tbody {
24 + border-top: (2 * $table-border-width) solid $table-border-color;
25 + }
26 +}
27 +
28 +
29 +//
30 +// Condensed table w/ half padding
31 +//
32 +
33 +.table-sm {
34 + th,
35 + td {
36 + padding: $table-cell-padding-sm;
37 + }
38 +}
39 +
40 +
41 +// Border versions
42 +//
43 +// Add or remove borders all around the table and between all the columns.
44 +
45 +.table-bordered {
46 + border: $table-border-width solid $table-border-color;
47 +
48 + th,
49 + td {
50 + border: $table-border-width solid $table-border-color;
51 + }
52 +
53 + thead {
54 + th,
55 + td {
56 + border-bottom-width: 2 * $table-border-width;
57 + }
58 + }
59 +}
60 +
61 +.table-borderless {
62 + th,
63 + td,
64 + thead th,
65 + tbody + tbody {
66 + border: 0;
67 + }
68 +}
69 +
70 +// Zebra-striping
71 +//
72 +// Default zebra-stripe styles (alternating gray and transparent backgrounds)
73 +
74 +.table-striped {
75 + tbody tr:nth-of-type(#{$table-striped-order}) {
76 + background-color: $table-accent-bg;
77 + }
78 +}
79 +
80 +
81 +// Hover effect
82 +//
83 +// Placed here since it has to come after the potential zebra striping
84 +
85 +.table-hover {
86 + tbody tr {
87 + @include hover {
88 + color: $table-hover-color;
89 + background-color: $table-hover-bg;
90 + }
91 + }
92 +}
93 +
94 +
95 +// Table backgrounds
96 +//
97 +// Exact selectors below required to override `.table-striped` and prevent
98 +// inheritance to nested tables.
99 +
100 +@each $color, $value in $theme-colors {
101 + @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));
102 +}
103 +
104 +@include table-row-variant(active, $table-active-bg);
105 +
106 +
107 +// Dark styles
108 +//
109 +// Same table markup, but inverted color scheme: dark background and light text.
110 +
111 +// stylelint-disable-next-line no-duplicate-selectors
112 +.table {
113 + .thead-dark {
114 + th {
115 + color: $table-dark-color;
116 + background-color: $table-dark-bg;
117 + border-color: $table-dark-border-color;
118 + }
119 + }
120 +
121 + .thead-light {
122 + th {
123 + color: $table-head-color;
124 + background-color: $table-head-bg;
125 + border-color: $table-border-color;
126 + }
127 + }
128 +}
129 +
130 +.table-dark {
131 + color: $table-dark-color;
132 + background-color: $table-dark-bg;
133 +
134 + th,
135 + td,
136 + thead th {
137 + border-color: $table-dark-border-color;
138 + }
139 +
140 + &.table-bordered {
141 + border: 0;
142 + }
143 +
144 + &.table-striped {
145 + tbody tr:nth-of-type(odd) {
146 + background-color: $table-dark-accent-bg;
147 + }
148 + }
149 +
150 + &.table-hover {
151 + tbody tr {
152 + @include hover {
153 + color: $table-dark-hover-color;
154 + background-color: $table-dark-hover-bg;
155 + }
156 + }
157 + }
158 +}
159 +
160 +
161 +// Responsive tables
162 +//
163 +// Generate series of `.table-responsive-*` classes for configuring the screen
164 +// size of where your table will overflow.
165 +
166 +.table-responsive {
167 + @each $breakpoint in map-keys($grid-breakpoints) {
168 + $next: breakpoint-next($breakpoint, $grid-breakpoints);
169 + $infix: breakpoint-infix($next, $grid-breakpoints);
170 +
171 + &#{$infix} {
172 + @include media-breakpoint-down($breakpoint) {
173 + display: block;
174 + width: 100%;
175 + overflow-x: auto;
176 + -webkit-overflow-scrolling: touch;
177 +
178 + // Prevent double border on horizontal scroll due to use of `display: block;`
179 + > .table-bordered {
180 + border: 0;
181 + }
182 + }
183 + }
184 + }
185 +}
1 +.toast {
2 + max-width: $toast-max-width;
3 + overflow: hidden; // cheap rounded corners on nested items
4 + @include font-size($toast-font-size);
5 + color: $toast-color;
6 + background-color: $toast-background-color;
7 + background-clip: padding-box;
8 + border: $toast-border-width solid $toast-border-color;
9 + box-shadow: $toast-box-shadow;
10 + backdrop-filter: blur(10px);
11 + opacity: 0;
12 + @include border-radius($toast-border-radius);
13 +
14 + &:not(:last-child) {
15 + margin-bottom: $toast-padding-x;
16 + }
17 +
18 + &.showing {
19 + opacity: 1;
20 + }
21 +
22 + &.show {
23 + display: block;
24 + opacity: 1;
25 + }
26 +
27 + &.hide {
28 + display: none;
29 + }
30 +}
31 +
32 +.toast-header {
33 + display: flex;
34 + align-items: center;
35 + padding: $toast-padding-y $toast-padding-x;
36 + color: $toast-header-color;
37 + background-color: $toast-header-background-color;
38 + background-clip: padding-box;
39 + border-bottom: $toast-border-width solid $toast-header-border-color;
40 +}
41 +
42 +.toast-body {
43 + padding: $toast-padding-x; // apply to both vertical and horizontal
44 +}
1 +// Base class
2 +.tooltip {
3 + position: absolute;
4 + z-index: $zindex-tooltip;
5 + display: block;
6 + margin: $tooltip-margin;
7 + // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
8 + // So reset our font and text properties to avoid inheriting weird values.
9 + @include reset-text();
10 + @include font-size($tooltip-font-size);
11 + // Allow breaking very long words so they don't overflow the tooltip's bounds
12 + word-wrap: break-word;
13 + opacity: 0;
14 +
15 + &.show { opacity: $tooltip-opacity; }
16 +
17 + .arrow {
18 + position: absolute;
19 + display: block;
20 + width: $tooltip-arrow-width;
21 + height: $tooltip-arrow-height;
22 +
23 + &::before {
24 + position: absolute;
25 + content: "";
26 + border-color: transparent;
27 + border-style: solid;
28 + }
29 + }
30 +}
31 +
32 +.bs-tooltip-top {
33 + padding: $tooltip-arrow-height 0;
34 +
35 + .arrow {
36 + bottom: 0;
37 +
38 + &::before {
39 + top: 0;
40 + border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
41 + border-top-color: $tooltip-arrow-color;
42 + }
43 + }
44 +}
45 +
46 +.bs-tooltip-right {
47 + padding: 0 $tooltip-arrow-height;
48 +
49 + .arrow {
50 + left: 0;
51 + width: $tooltip-arrow-height;
52 + height: $tooltip-arrow-width;
53 +
54 + &::before {
55 + right: 0;
56 + border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
57 + border-right-color: $tooltip-arrow-color;
58 + }
59 + }
60 +}
61 +
62 +.bs-tooltip-bottom {
63 + padding: $tooltip-arrow-height 0;
64 +
65 + .arrow {
66 + top: 0;
67 +
68 + &::before {
69 + bottom: 0;
70 + border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
71 + border-bottom-color: $tooltip-arrow-color;
72 + }
73 + }
74 +}
75 +
76 +.bs-tooltip-left {
77 + padding: 0 $tooltip-arrow-height;
78 +
79 + .arrow {
80 + right: 0;
81 + width: $tooltip-arrow-height;
82 + height: $tooltip-arrow-width;
83 +
84 + &::before {
85 + left: 0;
86 + border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
87 + border-left-color: $tooltip-arrow-color;
88 + }
89 + }
90 +}
91 +
92 +.bs-tooltip-auto {
93 + &[x-placement^="top"] {
94 + @extend .bs-tooltip-top;
95 + }
96 + &[x-placement^="right"] {
97 + @extend .bs-tooltip-right;
98 + }
99 + &[x-placement^="bottom"] {
100 + @extend .bs-tooltip-bottom;
101 + }
102 + &[x-placement^="left"] {
103 + @extend .bs-tooltip-left;
104 + }
105 +}
106 +
107 +// Wrapper for the tooltip content
108 +.tooltip-inner {
109 + max-width: $tooltip-max-width;
110 + padding: $tooltip-padding-y $tooltip-padding-x;
111 + color: $tooltip-color;
112 + text-align: center;
113 + background-color: $tooltip-bg;
114 + @include border-radius($tooltip-border-radius);
115 +}
1 +.fade {
2 + @include transition($transition-fade);
3 +
4 + &:not(.show) {
5 + opacity: 0;
6 + }
7 +}
8 +
9 +.collapse {
10 + &:not(.show) {
11 + display: none;
12 + }
13 +}
14 +
15 +.collapsing {
16 + position: relative;
17 + height: 0;
18 + overflow: hidden;
19 + @include transition($transition-collapse);
20 +}
1 +// stylelint-disable declaration-no-important, selector-list-comma-newline-after
2 +
3 +//
4 +// Headings
5 +//
6 +
7 +h1, h2, h3, h4, h5, h6,
8 +.h1, .h2, .h3, .h4, .h5, .h6 {
9 + margin-bottom: $headings-margin-bottom;
10 + font-family: $headings-font-family;
11 + font-weight: $headings-font-weight;
12 + line-height: $headings-line-height;
13 + color: $headings-color;
14 +}
15 +
16 +h1, .h1 { @include font-size($h1-font-size); }
17 +h2, .h2 { @include font-size($h2-font-size); }
18 +h3, .h3 { @include font-size($h3-font-size); }
19 +h4, .h4 { @include font-size($h4-font-size); }
20 +h5, .h5 { @include font-size($h5-font-size); }
21 +h6, .h6 { @include font-size($h6-font-size); }
22 +
23 +.lead {
24 + @include font-size($lead-font-size);
25 + font-weight: $lead-font-weight;
26 +}
27 +
28 +// Type display classes
29 +.display-1 {
30 + @include font-size($display1-size);
31 + font-weight: $display1-weight;
32 + line-height: $display-line-height;
33 +}
34 +.display-2 {
35 + @include font-size($display2-size);
36 + font-weight: $display2-weight;
37 + line-height: $display-line-height;
38 +}
39 +.display-3 {
40 + @include font-size($display3-size);
41 + font-weight: $display3-weight;
42 + line-height: $display-line-height;
43 +}
44 +.display-4 {
45 + @include font-size($display4-size);
46 + font-weight: $display4-weight;
47 + line-height: $display-line-height;
48 +}
49 +
50 +
51 +//
52 +// Horizontal rules
53 +//
54 +
55 +hr {
56 + margin-top: $hr-margin-y;
57 + margin-bottom: $hr-margin-y;
58 + border: 0;
59 + border-top: $hr-border-width solid $hr-border-color;
60 +}
61 +
62 +
63 +//
64 +// Emphasis
65 +//
66 +
67 +small,
68 +.small {
69 + @include font-size($small-font-size);
70 + font-weight: $font-weight-normal;
71 +}
72 +
73 +mark,
74 +.mark {
75 + padding: $mark-padding;
76 + background-color: $mark-bg;
77 +}
78 +
79 +
80 +//
81 +// Lists
82 +//
83 +
84 +.list-unstyled {
85 + @include list-unstyled;
86 +}
87 +
88 +// Inline turns list items into inline-block
89 +.list-inline {
90 + @include list-unstyled;
91 +}
92 +.list-inline-item {
93 + display: inline-block;
94 +
95 + &:not(:last-child) {
96 + margin-right: $list-inline-padding;
97 + }
98 +}
99 +
100 +
101 +//
102 +// Misc
103 +//
104 +
105 +// Builds on `abbr`
106 +.initialism {
107 + @include font-size(90%);
108 + text-transform: uppercase;
109 +}
110 +
111 +// Blockquotes
112 +.blockquote {
113 + margin-bottom: $spacer;
114 + @include font-size($blockquote-font-size);
115 +}
116 +
117 +.blockquote-footer {
118 + display: block;
119 + @include font-size($blockquote-small-font-size);
120 + color: $blockquote-small-color;
121 +
122 + &::before {
123 + content: "\2014\00A0"; // em dash, nbsp
124 + }
125 +}
1 +@import "utilities/align";
2 +@import "utilities/background";
3 +@import "utilities/borders";
4 +@import "utilities/clearfix";
5 +@import "utilities/display";
6 +@import "utilities/embed";
7 +@import "utilities/flex";
8 +@import "utilities/float";
9 +@import "utilities/overflow";
10 +@import "utilities/position";
11 +@import "utilities/screenreaders";
12 +@import "utilities/shadows";
13 +@import "utilities/sizing";
14 +@import "utilities/stretched-link";
15 +@import "utilities/spacing";
16 +@import "utilities/text";
17 +@import "utilities/visibility";
1 +// Variables
2 +//
3 +// Variables should follow the `$component-state-property-size` formula for
4 +// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
5 +
6 +// Color system
7 +
8 +$white: #fff !default;
9 +$gray-100: #f8f9fa !default;
10 +$gray-200: #e9ecef !default;
11 +$gray-300: #dee2e6 !default;
12 +$gray-400: #ced4da !default;
13 +$gray-500: #adb5bd !default;
14 +$gray-600: #6c757d !default;
15 +$gray-700: #495057 !default;
16 +$gray-800: #343a40 !default;
17 +$gray-900: #212529 !default;
18 +$black: #000 !default;
19 +
20 +$grays: () !default;
21 +// stylelint-disable-next-line scss/dollar-variable-default
22 +$grays: map-merge(
23 + (
24 + "100": $gray-100,
25 + "200": $gray-200,
26 + "300": $gray-300,
27 + "400": $gray-400,
28 + "500": $gray-500,
29 + "600": $gray-600,
30 + "700": $gray-700,
31 + "800": $gray-800,
32 + "900": $gray-900
33 + ),
34 + $grays
35 +);
36 +
37 +$blue: #007bff !default;
38 +$indigo: #6610f2 !default;
39 +$purple: #6f42c1 !default;
40 +$pink: #e83e8c !default;
41 +$red: #dc3545 !default;
42 +$orange: #fd7e14 !default;
43 +$yellow: #ffc107 !default;
44 +$green: #28a745 !default;
45 +$teal: #20c997 !default;
46 +$cyan: #17a2b8 !default;
47 +
48 +$colors: () !default;
49 +// stylelint-disable-next-line scss/dollar-variable-default
50 +$colors: map-merge(
51 + (
52 + "blue": $blue,
53 + "indigo": $indigo,
54 + "purple": $purple,
55 + "pink": $pink,
56 + "red": $red,
57 + "orange": $orange,
58 + "yellow": $yellow,
59 + "green": $green,
60 + "teal": $teal,
61 + "cyan": $cyan,
62 + "white": $white,
63 + "gray": $gray-600,
64 + "gray-dark": $gray-800
65 + ),
66 + $colors
67 +);
68 +
69 +$primary: $blue !default;
70 +$secondary: $gray-600 !default;
71 +$success: $green !default;
72 +$info: $cyan !default;
73 +$warning: $yellow !default;
74 +$danger: $red !default;
75 +$light: $gray-100 !default;
76 +$dark: $gray-800 !default;
77 +
78 +$theme-colors: () !default;
79 +// stylelint-disable-next-line scss/dollar-variable-default
80 +$theme-colors: map-merge(
81 + (
82 + "primary": $primary,
83 + "secondary": $secondary,
84 + "success": $success,
85 + "info": $info,
86 + "warning": $warning,
87 + "danger": $danger,
88 + "light": $light,
89 + "dark": $dark
90 + ),
91 + $theme-colors
92 +);
93 +
94 +// Set a specific jump point for requesting color jumps
95 +$theme-color-interval: 8% !default;
96 +
97 +// The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.
98 +$yiq-contrasted-threshold: 150 !default;
99 +
100 +// Customize the light and dark text colors for use in our YIQ color contrast function.
101 +$yiq-text-dark: $gray-900 !default;
102 +$yiq-text-light: $white !default;
103 +
104 +
105 +// Options
106 +//
107 +// Quickly modify global styling by enabling or disabling optional features.
108 +
109 +$enable-caret: true !default;
110 +$enable-rounded: true !default;
111 +$enable-shadows: false !default;
112 +$enable-gradients: false !default;
113 +$enable-transitions: true !default;
114 +$enable-prefers-reduced-motion-media-query: true !default;
115 +$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
116 +$enable-grid-classes: true !default;
117 +$enable-pointer-cursor-for-buttons: true !default;
118 +$enable-print-styles: true !default;
119 +$enable-responsive-font-sizes: false !default;
120 +$enable-validation-icons: true !default;
121 +$enable-deprecation-messages: true !default;
122 +
123 +
124 +// Spacing
125 +//
126 +// Control the default styling of most Bootstrap elements by modifying these
127 +// variables. Mostly focused on spacing.
128 +// You can add more entries to the $spacers map, should you need more variation.
129 +
130 +$spacer: 1rem !default;
131 +$spacers: () !default;
132 +// stylelint-disable-next-line scss/dollar-variable-default
133 +$spacers: map-merge(
134 + (
135 + 0: 0,
136 + 1: ($spacer * .25),
137 + 2: ($spacer * .5),
138 + 3: $spacer,
139 + 4: ($spacer * 1.5),
140 + 5: ($spacer * 3)
141 + ),
142 + $spacers
143 +);
144 +
145 +// This variable affects the `.h-*` and `.w-*` classes.
146 +$sizes: () !default;
147 +// stylelint-disable-next-line scss/dollar-variable-default
148 +$sizes: map-merge(
149 + (
150 + 25: 25%,
151 + 50: 50%,
152 + 75: 75%,
153 + 100: 100%,
154 + auto: auto
155 + ),
156 + $sizes
157 +);
158 +
159 +
160 +// Body
161 +//
162 +// Settings for the `<body>` element.
163 +
164 +$body-bg: $white !default;
165 +$body-color: $gray-900 !default;
166 +
167 +
168 +// Links
169 +//
170 +// Style anchor elements.
171 +
172 +$link-color: theme-color("primary") !default;
173 +$link-decoration: none !default;
174 +$link-hover-color: darken($link-color, 15%) !default;
175 +$link-hover-decoration: underline !default;
176 +// Darken percentage for links with `.text-*` class (e.g. `.text-success`)
177 +$emphasized-link-hover-darken-percentage: 15% !default;
178 +
179 +// Paragraphs
180 +//
181 +// Style p element.
182 +
183 +$paragraph-margin-bottom: 1rem !default;
184 +
185 +
186 +// Grid breakpoints
187 +//
188 +// Define the minimum dimensions at which your layout will change,
189 +// adapting to different screen sizes, for use in media queries.
190 +
191 +$grid-breakpoints: (
192 + xs: 0,
193 + sm: 576px,
194 + md: 768px,
195 + lg: 992px,
196 + xl: 1200px
197 +) !default;
198 +
199 +@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
200 +@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
201 +
202 +
203 +// Grid containers
204 +//
205 +// Define the maximum width of `.container` for different screen sizes.
206 +
207 +$container-max-widths: (
208 + sm: 540px,
209 + md: 720px,
210 + lg: 960px,
211 + xl: 1140px
212 +) !default;
213 +
214 +@include _assert-ascending($container-max-widths, "$container-max-widths");
215 +
216 +
217 +// Grid columns
218 +//
219 +// Set the number of columns and specify the width of the gutters.
220 +
221 +$grid-columns: 12 !default;
222 +$grid-gutter-width: 30px !default;
223 +
224 +
225 +// Components
226 +//
227 +// Define common padding and border radius sizes and more.
228 +
229 +$line-height-lg: 1.5 !default;
230 +$line-height-sm: 1.5 !default;
231 +
232 +$border-width: 1px !default;
233 +$border-color: $gray-300 !default;
234 +
235 +$border-radius: .25rem !default;
236 +$border-radius-lg: .3rem !default;
237 +$border-radius-sm: .2rem !default;
238 +
239 +$rounded-pill: 50rem !default;
240 +
241 +$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
242 +$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
243 +$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
244 +
245 +$component-active-color: $white !default;
246 +$component-active-bg: theme-color("primary") !default;
247 +
248 +$caret-width: .3em !default;
249 +$caret-vertical-align: $caret-width * .85 !default;
250 +$caret-spacing: $caret-width * .85 !default;
251 +
252 +$transition-base: all .2s ease-in-out !default;
253 +$transition-fade: opacity .15s linear !default;
254 +$transition-collapse: height .35s ease !default;
255 +
256 +$embed-responsive-aspect-ratios: () !default;
257 +// stylelint-disable-next-line scss/dollar-variable-default
258 +$embed-responsive-aspect-ratios: join(
259 + (
260 + (21 9),
261 + (16 9),
262 + (4 3),
263 + (1 1),
264 + ),
265 + $embed-responsive-aspect-ratios
266 +);
267 +
268 +// Typography
269 +//
270 +// Font, line-height, and color for body text, headings, and more.
271 +
272 +// stylelint-disable value-keyword-case
273 +$font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
274 +$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
275 +$font-family-base: $font-family-sans-serif !default;
276 +// stylelint-enable value-keyword-case
277 +
278 +$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
279 +$font-size-lg: $font-size-base * 1.25 !default;
280 +$font-size-sm: $font-size-base * .875 !default;
281 +
282 +$font-weight-lighter: lighter !default;
283 +$font-weight-light: 300 !default;
284 +$font-weight-normal: 400 !default;
285 +$font-weight-bold: 700 !default;
286 +$font-weight-bolder: bolder !default;
287 +
288 +$font-weight-base: $font-weight-normal !default;
289 +$line-height-base: 1.5 !default;
290 +
291 +$h1-font-size: $font-size-base * 2.5 !default;
292 +$h2-font-size: $font-size-base * 2 !default;
293 +$h3-font-size: $font-size-base * 1.75 !default;
294 +$h4-font-size: $font-size-base * 1.5 !default;
295 +$h5-font-size: $font-size-base * 1.25 !default;
296 +$h6-font-size: $font-size-base !default;
297 +
298 +$headings-margin-bottom: $spacer / 2 !default;
299 +$headings-font-family: null !default;
300 +$headings-font-weight: 500 !default;
301 +$headings-line-height: 1.2 !default;
302 +$headings-color: null !default;
303 +
304 +$display1-size: 6rem !default;
305 +$display2-size: 5.5rem !default;
306 +$display3-size: 4.5rem !default;
307 +$display4-size: 3.5rem !default;
308 +
309 +$display1-weight: 300 !default;
310 +$display2-weight: 300 !default;
311 +$display3-weight: 300 !default;
312 +$display4-weight: 300 !default;
313 +$display-line-height: $headings-line-height !default;
314 +
315 +$lead-font-size: $font-size-base * 1.25 !default;
316 +$lead-font-weight: 300 !default;
317 +
318 +$small-font-size: 80% !default;
319 +
320 +$text-muted: $gray-600 !default;
321 +
322 +$blockquote-small-color: $gray-600 !default;
323 +$blockquote-small-font-size: $small-font-size !default;
324 +$blockquote-font-size: $font-size-base * 1.25 !default;
325 +
326 +$hr-border-color: rgba($black, .1) !default;
327 +$hr-border-width: $border-width !default;
328 +
329 +$mark-padding: .2em !default;
330 +
331 +$dt-font-weight: $font-weight-bold !default;
332 +
333 +$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;
334 +$nested-kbd-font-weight: $font-weight-bold !default;
335 +
336 +$list-inline-padding: .5rem !default;
337 +
338 +$mark-bg: #fcf8e3 !default;
339 +
340 +$hr-margin-y: $spacer !default;
341 +
342 +
343 +// Tables
344 +//
345 +// Customizes the `.table` component with basic values, each used across all table variations.
346 +
347 +$table-cell-padding: .75rem !default;
348 +$table-cell-padding-sm: .3rem !default;
349 +
350 +$table-color: $body-color !default;
351 +$table-bg: null !default;
352 +$table-accent-bg: rgba($black, .05) !default;
353 +$table-hover-color: $table-color !default;
354 +$table-hover-bg: rgba($black, .075) !default;
355 +$table-active-bg: $table-hover-bg !default;
356 +
357 +$table-border-width: $border-width !default;
358 +$table-border-color: $border-color !default;
359 +
360 +$table-head-bg: $gray-200 !default;
361 +$table-head-color: $gray-700 !default;
362 +
363 +$table-dark-color: $white !default;
364 +$table-dark-bg: $gray-800 !default;
365 +$table-dark-accent-bg: rgba($white, .05) !default;
366 +$table-dark-hover-color: $table-dark-color !default;
367 +$table-dark-hover-bg: rgba($white, .075) !default;
368 +$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;
369 +$table-dark-color: $white !default;
370 +
371 +$table-striped-order: odd !default;
372 +
373 +$table-caption-color: $text-muted !default;
374 +
375 +$table-bg-level: -9 !default;
376 +$table-border-level: -6 !default;
377 +
378 +
379 +// Buttons + Forms
380 +//
381 +// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.
382 +
383 +$input-btn-padding-y: .375rem !default;
384 +$input-btn-padding-x: .75rem !default;
385 +$input-btn-font-family: null !default;
386 +$input-btn-font-size: $font-size-base !default;
387 +$input-btn-line-height: $line-height-base !default;
388 +
389 +$input-btn-focus-width: .2rem !default;
390 +$input-btn-focus-color: rgba($component-active-bg, .25) !default;
391 +$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
392 +
393 +$input-btn-padding-y-sm: .25rem !default;
394 +$input-btn-padding-x-sm: .5rem !default;
395 +$input-btn-font-size-sm: $font-size-sm !default;
396 +$input-btn-line-height-sm: $line-height-sm !default;
397 +
398 +$input-btn-padding-y-lg: .5rem !default;
399 +$input-btn-padding-x-lg: 1rem !default;
400 +$input-btn-font-size-lg: $font-size-lg !default;
401 +$input-btn-line-height-lg: $line-height-lg !default;
402 +
403 +$input-btn-border-width: $border-width !default;
404 +
405 +
406 +// Buttons
407 +//
408 +// For each of Bootstrap's buttons, define text, background, and border color.
409 +
410 +$btn-padding-y: $input-btn-padding-y !default;
411 +$btn-padding-x: $input-btn-padding-x !default;
412 +$btn-font-family: $input-btn-font-family !default;
413 +$btn-font-size: $input-btn-font-size !default;
414 +$btn-line-height: $input-btn-line-height !default;
415 +
416 +$btn-padding-y-sm: $input-btn-padding-y-sm !default;
417 +$btn-padding-x-sm: $input-btn-padding-x-sm !default;
418 +$btn-font-size-sm: $input-btn-font-size-sm !default;
419 +$btn-line-height-sm: $input-btn-line-height-sm !default;
420 +
421 +$btn-padding-y-lg: $input-btn-padding-y-lg !default;
422 +$btn-padding-x-lg: $input-btn-padding-x-lg !default;
423 +$btn-font-size-lg: $input-btn-font-size-lg !default;
424 +$btn-line-height-lg: $input-btn-line-height-lg !default;
425 +
426 +$btn-border-width: $input-btn-border-width !default;
427 +
428 +$btn-font-weight: $font-weight-normal !default;
429 +$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;
430 +$btn-focus-width: $input-btn-focus-width !default;
431 +$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
432 +$btn-disabled-opacity: .65 !default;
433 +$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;
434 +
435 +$btn-link-disabled-color: $gray-600 !default;
436 +
437 +$btn-block-spacing-y: .5rem !default;
438 +
439 +// Allows for customizing button radius independently from global border radius
440 +$btn-border-radius: $border-radius !default;
441 +$btn-border-radius-lg: $border-radius-lg !default;
442 +$btn-border-radius-sm: $border-radius-sm !default;
443 +
444 +$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
445 +
446 +
447 +// Forms
448 +
449 +$label-margin-bottom: .5rem !default;
450 +
451 +$input-padding-y: $input-btn-padding-y !default;
452 +$input-padding-x: $input-btn-padding-x !default;
453 +$input-font-family: $input-btn-font-family !default;
454 +$input-font-size: $input-btn-font-size !default;
455 +$input-font-weight: $font-weight-base !default;
456 +$input-line-height: $input-btn-line-height !default;
457 +
458 +$input-padding-y-sm: $input-btn-padding-y-sm !default;
459 +$input-padding-x-sm: $input-btn-padding-x-sm !default;
460 +$input-font-size-sm: $input-btn-font-size-sm !default;
461 +$input-line-height-sm: $input-btn-line-height-sm !default;
462 +
463 +$input-padding-y-lg: $input-btn-padding-y-lg !default;
464 +$input-padding-x-lg: $input-btn-padding-x-lg !default;
465 +$input-font-size-lg: $input-btn-font-size-lg !default;
466 +$input-line-height-lg: $input-btn-line-height-lg !default;
467 +
468 +$input-bg: $white !default;
469 +$input-disabled-bg: $gray-200 !default;
470 +
471 +$input-color: $gray-700 !default;
472 +$input-border-color: $gray-400 !default;
473 +$input-border-width: $input-btn-border-width !default;
474 +$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;
475 +
476 +$input-border-radius: $border-radius !default;
477 +$input-border-radius-lg: $border-radius-lg !default;
478 +$input-border-radius-sm: $border-radius-sm !default;
479 +
480 +$input-focus-bg: $input-bg !default;
481 +$input-focus-border-color: lighten($component-active-bg, 25%) !default;
482 +$input-focus-color: $input-color !default;
483 +$input-focus-width: $input-btn-focus-width !default;
484 +$input-focus-box-shadow: $input-btn-focus-box-shadow !default;
485 +
486 +$input-placeholder-color: $gray-600 !default;
487 +$input-plaintext-color: $body-color !default;
488 +
489 +$input-height-border: $input-border-width * 2 !default;
490 +
491 +$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;
492 +$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;
493 +$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;
494 +
495 +$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;
496 +$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;
497 +$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;
498 +
499 +$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
500 +
501 +$form-text-margin-top: .25rem !default;
502 +
503 +$form-check-input-gutter: 1.25rem !default;
504 +$form-check-input-margin-y: .3rem !default;
505 +$form-check-input-margin-x: .25rem !default;
506 +
507 +$form-check-inline-margin-x: .75rem !default;
508 +$form-check-inline-input-margin-x: .3125rem !default;
509 +
510 +$form-grid-gutter-width: 10px !default;
511 +$form-group-margin-bottom: 1rem !default;
512 +
513 +$input-group-addon-color: $input-color !default;
514 +$input-group-addon-bg: $gray-200 !default;
515 +$input-group-addon-border-color: $input-border-color !default;
516 +
517 +$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
518 +
519 +$custom-control-gutter: .5rem !default;
520 +$custom-control-spacer-x: 1rem !default;
521 +
522 +$custom-control-indicator-size: 1rem !default;
523 +$custom-control-indicator-bg: $input-bg !default;
524 +
525 +$custom-control-indicator-bg-size: 50% 50% !default;
526 +$custom-control-indicator-box-shadow: $input-box-shadow !default;
527 +$custom-control-indicator-border-color: $gray-500 !default;
528 +$custom-control-indicator-border-width: $input-border-width !default;
529 +
530 +$custom-control-indicator-disabled-bg: $input-disabled-bg !default;
531 +$custom-control-label-disabled-color: $gray-600 !default;
532 +
533 +$custom-control-indicator-checked-color: $component-active-color !default;
534 +$custom-control-indicator-checked-bg: $component-active-bg !default;
535 +$custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
536 +$custom-control-indicator-checked-box-shadow: none !default;
537 +$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
538 +
539 +$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
540 +$custom-control-indicator-focus-border-color: $input-focus-border-color !default;
541 +
542 +$custom-control-indicator-active-color: $component-active-color !default;
543 +$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
544 +$custom-control-indicator-active-box-shadow: none !default;
545 +$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;
546 +
547 +$custom-checkbox-indicator-border-radius: $border-radius !default;
548 +$custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"), "#", "%23") !default;
549 +
550 +$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
551 +$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
552 +$custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e"), "#", "%23") !default;
553 +$custom-checkbox-indicator-indeterminate-box-shadow: none !default;
554 +$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;
555 +
556 +$custom-radio-indicator-border-radius: 50% !default;
557 +$custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e"), "#", "%23") !default;
558 +
559 +$custom-switch-width: $custom-control-indicator-size * 1.75 !default;
560 +$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;
561 +$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;
562 +
563 +$custom-select-padding-y: $input-padding-y !default;
564 +$custom-select-padding-x: $input-padding-x !default;
565 +$custom-select-font-family: $input-font-family !default;
566 +$custom-select-font-size: $input-font-size !default;
567 +$custom-select-height: $input-height !default;
568 +$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
569 +$custom-select-font-weight: $input-font-weight !default;
570 +$custom-select-line-height: $input-line-height !default;
571 +$custom-select-color: $input-color !default;
572 +$custom-select-disabled-color: $gray-600 !default;
573 +$custom-select-bg: $input-bg !default;
574 +$custom-select-disabled-bg: $gray-200 !default;
575 +$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
576 +$custom-select-indicator-color: $gray-800 !default;
577 +$custom-select-indicator: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e"), "#", "%23") !default;
578 +$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
579 +
580 +$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;
581 +$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;
582 +$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
583 +
584 +$custom-select-border-width: $input-border-width !default;
585 +$custom-select-border-color: $input-border-color !default;
586 +$custom-select-border-radius: $border-radius !default;
587 +$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
588 +
589 +$custom-select-focus-border-color: $input-focus-border-color !default;
590 +$custom-select-focus-width: $input-focus-width !default;
591 +$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;
592 +
593 +$custom-select-padding-y-sm: $input-padding-y-sm !default;
594 +$custom-select-padding-x-sm: $input-padding-x-sm !default;
595 +$custom-select-font-size-sm: $input-font-size-sm !default;
596 +$custom-select-height-sm: $input-height-sm !default;
597 +
598 +$custom-select-padding-y-lg: $input-padding-y-lg !default;
599 +$custom-select-padding-x-lg: $input-padding-x-lg !default;
600 +$custom-select-font-size-lg: $input-font-size-lg !default;
601 +$custom-select-height-lg: $input-height-lg !default;
602 +
603 +$custom-range-track-width: 100% !default;
604 +$custom-range-track-height: .5rem !default;
605 +$custom-range-track-cursor: pointer !default;
606 +$custom-range-track-bg: $gray-300 !default;
607 +$custom-range-track-border-radius: 1rem !default;
608 +$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
609 +
610 +$custom-range-thumb-width: 1rem !default;
611 +$custom-range-thumb-height: $custom-range-thumb-width !default;
612 +$custom-range-thumb-bg: $component-active-bg !default;
613 +$custom-range-thumb-border: 0 !default;
614 +$custom-range-thumb-border-radius: 1rem !default;
615 +$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
616 +$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
617 +$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge
618 +$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;
619 +$custom-range-thumb-disabled-bg: $gray-500 !default;
620 +
621 +$custom-file-height: $input-height !default;
622 +$custom-file-height-inner: $input-height-inner !default;
623 +$custom-file-focus-border-color: $input-focus-border-color !default;
624 +$custom-file-focus-box-shadow: $input-focus-box-shadow !default;
625 +$custom-file-disabled-bg: $input-disabled-bg !default;
626 +
627 +$custom-file-padding-y: $input-padding-y !default;
628 +$custom-file-padding-x: $input-padding-x !default;
629 +$custom-file-line-height: $input-line-height !default;
630 +$custom-file-font-family: $input-font-family !default;
631 +$custom-file-font-weight: $input-font-weight !default;
632 +$custom-file-color: $input-color !default;
633 +$custom-file-bg: $input-bg !default;
634 +$custom-file-border-width: $input-border-width !default;
635 +$custom-file-border-color: $input-border-color !default;
636 +$custom-file-border-radius: $input-border-radius !default;
637 +$custom-file-box-shadow: $input-box-shadow !default;
638 +$custom-file-button-color: $custom-file-color !default;
639 +$custom-file-button-bg: $input-group-addon-bg !default;
640 +$custom-file-text: (
641 + en: "Browse"
642 +) !default;
643 +
644 +
645 +// Form validation
646 +
647 +$form-feedback-margin-top: $form-text-margin-top !default;
648 +$form-feedback-font-size: $small-font-size !default;
649 +$form-feedback-valid-color: theme-color("success") !default;
650 +$form-feedback-invalid-color: theme-color("danger") !default;
651 +
652 +$form-feedback-icon-valid-color: $form-feedback-valid-color !default;
653 +$form-feedback-icon-valid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"), "#", "%23") !default;
654 +$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
655 +$form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default;
656 +
657 +$form-validation-states: () !default;
658 +// stylelint-disable-next-line scss/dollar-variable-default
659 +$form-validation-states: map-merge(
660 + (
661 + "valid": (
662 + "color": $form-feedback-valid-color,
663 + "icon": $form-feedback-icon-valid
664 + ),
665 + "invalid": (
666 + "color": $form-feedback-invalid-color,
667 + "icon": $form-feedback-icon-invalid
668 + ),
669 + ),
670 + $form-validation-states
671 +);
672 +
673 +// Z-index master list
674 +//
675 +// Warning: Avoid customizing these values. They're used for a bird's eye view
676 +// of components dependent on the z-axis and are designed to all work together.
677 +
678 +$zindex-dropdown: 1000 !default;
679 +$zindex-sticky: 1020 !default;
680 +$zindex-fixed: 1030 !default;
681 +$zindex-modal-backdrop: 1040 !default;
682 +$zindex-modal: 1050 !default;
683 +$zindex-popover: 1060 !default;
684 +$zindex-tooltip: 1070 !default;
685 +
686 +
687 +// Navs
688 +
689 +$nav-link-padding-y: .5rem !default;
690 +$nav-link-padding-x: 1rem !default;
691 +$nav-link-disabled-color: $gray-600 !default;
692 +
693 +$nav-tabs-border-color: $gray-300 !default;
694 +$nav-tabs-border-width: $border-width !default;
695 +$nav-tabs-border-radius: $border-radius !default;
696 +$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;
697 +$nav-tabs-link-active-color: $gray-700 !default;
698 +$nav-tabs-link-active-bg: $body-bg !default;
699 +$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;
700 +
701 +$nav-pills-border-radius: $border-radius !default;
702 +$nav-pills-link-active-color: $component-active-color !default;
703 +$nav-pills-link-active-bg: $component-active-bg !default;
704 +
705 +$nav-divider-color: $gray-200 !default;
706 +$nav-divider-margin-y: $spacer / 2 !default;
707 +
708 +
709 +// Navbar
710 +
711 +$navbar-padding-y: $spacer / 2 !default;
712 +$navbar-padding-x: $spacer !default;
713 +
714 +$navbar-nav-link-padding-x: .5rem !default;
715 +
716 +$navbar-brand-font-size: $font-size-lg !default;
717 +// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
718 +$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
719 +$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
720 +$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
721 +
722 +$navbar-toggler-padding-y: .25rem !default;
723 +$navbar-toggler-padding-x: .75rem !default;
724 +$navbar-toggler-font-size: $font-size-lg !default;
725 +$navbar-toggler-border-radius: $btn-border-radius !default;
726 +
727 +$navbar-dark-color: rgba($white, .5) !default;
728 +$navbar-dark-hover-color: rgba($white, .75) !default;
729 +$navbar-dark-active-color: $white !default;
730 +$navbar-dark-disabled-color: rgba($white, .25) !default;
731 +$navbar-dark-toggler-icon-bg: str-replace(url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"), "#", "%23") !default;
732 +$navbar-dark-toggler-border-color: rgba($white, .1) !default;
733 +
734 +$navbar-light-color: rgba($black, .5) !default;
735 +$navbar-light-hover-color: rgba($black, .7) !default;
736 +$navbar-light-active-color: rgba($black, .9) !default;
737 +$navbar-light-disabled-color: rgba($black, .3) !default;
738 +$navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"), "#", "%23") !default;
739 +$navbar-light-toggler-border-color: rgba($black, .1) !default;
740 +
741 +$navbar-light-brand-color: $navbar-light-active-color !default;
742 +$navbar-light-brand-hover-color: $navbar-light-active-color !default;
743 +$navbar-dark-brand-color: $navbar-dark-active-color !default;
744 +$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
745 +
746 +
747 +// Dropdowns
748 +//
749 +// Dropdown menu container and contents.
750 +
751 +$dropdown-min-width: 10rem !default;
752 +$dropdown-padding-y: .5rem !default;
753 +$dropdown-spacer: .125rem !default;
754 +$dropdown-font-size: $font-size-base !default;
755 +$dropdown-color: $body-color !default;
756 +$dropdown-bg: $white !default;
757 +$dropdown-border-color: rgba($black, .15) !default;
758 +$dropdown-border-radius: $border-radius !default;
759 +$dropdown-border-width: $border-width !default;
760 +$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;
761 +$dropdown-divider-bg: $gray-200 !default;
762 +$dropdown-divider-margin-y: $nav-divider-margin-y !default;
763 +$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
764 +
765 +$dropdown-link-color: $gray-900 !default;
766 +$dropdown-link-hover-color: darken($gray-900, 5%) !default;
767 +$dropdown-link-hover-bg: $gray-100 !default;
768 +
769 +$dropdown-link-active-color: $component-active-color !default;
770 +$dropdown-link-active-bg: $component-active-bg !default;
771 +
772 +$dropdown-link-disabled-color: $gray-600 !default;
773 +
774 +$dropdown-item-padding-y: .25rem !default;
775 +$dropdown-item-padding-x: 1.5rem !default;
776 +
777 +$dropdown-header-color: $gray-600 !default;
778 +
779 +
780 +// Pagination
781 +
782 +$pagination-padding-y: .5rem !default;
783 +$pagination-padding-x: .75rem !default;
784 +$pagination-padding-y-sm: .25rem !default;
785 +$pagination-padding-x-sm: .5rem !default;
786 +$pagination-padding-y-lg: .75rem !default;
787 +$pagination-padding-x-lg: 1.5rem !default;
788 +$pagination-line-height: 1.25 !default;
789 +
790 +$pagination-color: $link-color !default;
791 +$pagination-bg: $white !default;
792 +$pagination-border-width: $border-width !default;
793 +$pagination-border-color: $gray-300 !default;
794 +
795 +$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
796 +$pagination-focus-outline: 0 !default;
797 +
798 +$pagination-hover-color: $link-hover-color !default;
799 +$pagination-hover-bg: $gray-200 !default;
800 +$pagination-hover-border-color: $gray-300 !default;
801 +
802 +$pagination-active-color: $component-active-color !default;
803 +$pagination-active-bg: $component-active-bg !default;
804 +$pagination-active-border-color: $pagination-active-bg !default;
805 +
806 +$pagination-disabled-color: $gray-600 !default;
807 +$pagination-disabled-bg: $white !default;
808 +$pagination-disabled-border-color: $gray-300 !default;
809 +
810 +
811 +// Jumbotron
812 +
813 +$jumbotron-padding: 2rem !default;
814 +$jumbotron-color: null !default;
815 +$jumbotron-bg: $gray-200 !default;
816 +
817 +
818 +// Cards
819 +
820 +$card-spacer-y: .75rem !default;
821 +$card-spacer-x: 1.25rem !default;
822 +$card-border-width: $border-width !default;
823 +$card-border-radius: $border-radius !default;
824 +$card-border-color: rgba($black, .125) !default;
825 +$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
826 +$card-cap-bg: rgba($black, .03) !default;
827 +$card-cap-color: null !default;
828 +$card-color: null !default;
829 +$card-bg: $white !default;
830 +
831 +$card-img-overlay-padding: 1.25rem !default;
832 +
833 +$card-group-margin: $grid-gutter-width / 2 !default;
834 +$card-deck-margin: $card-group-margin !default;
835 +
836 +$card-columns-count: 3 !default;
837 +$card-columns-gap: 1.25rem !default;
838 +$card-columns-margin: $card-spacer-y !default;
839 +
840 +
841 +// Tooltips
842 +
843 +$tooltip-font-size: $font-size-sm !default;
844 +$tooltip-max-width: 200px !default;
845 +$tooltip-color: $white !default;
846 +$tooltip-bg: $black !default;
847 +$tooltip-border-radius: $border-radius !default;
848 +$tooltip-opacity: .9 !default;
849 +$tooltip-padding-y: .25rem !default;
850 +$tooltip-padding-x: .5rem !default;
851 +$tooltip-margin: 0 !default;
852 +
853 +$tooltip-arrow-width: .8rem !default;
854 +$tooltip-arrow-height: .4rem !default;
855 +$tooltip-arrow-color: $tooltip-bg !default;
856 +
857 +// Form tooltips must come after regular tooltips
858 +$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
859 +$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
860 +$form-feedback-tooltip-font-size: $tooltip-font-size !default;
861 +$form-feedback-tooltip-line-height: $line-height-base !default;
862 +$form-feedback-tooltip-opacity: $tooltip-opacity !default;
863 +$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
864 +
865 +
866 +// Popovers
867 +
868 +$popover-font-size: $font-size-sm !default;
869 +$popover-bg: $white !default;
870 +$popover-max-width: 276px !default;
871 +$popover-border-width: $border-width !default;
872 +$popover-border-color: rgba($black, .2) !default;
873 +$popover-border-radius: $border-radius-lg !default;
874 +$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;
875 +
876 +$popover-header-bg: darken($popover-bg, 3%) !default;
877 +$popover-header-color: $headings-color !default;
878 +$popover-header-padding-y: .5rem !default;
879 +$popover-header-padding-x: .75rem !default;
880 +
881 +$popover-body-color: $body-color !default;
882 +$popover-body-padding-y: $popover-header-padding-y !default;
883 +$popover-body-padding-x: $popover-header-padding-x !default;
884 +
885 +$popover-arrow-width: 1rem !default;
886 +$popover-arrow-height: .5rem !default;
887 +$popover-arrow-color: $popover-bg !default;
888 +
889 +$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
890 +
891 +
892 +// Toasts
893 +
894 +$toast-max-width: 350px !default;
895 +$toast-padding-x: .75rem !default;
896 +$toast-padding-y: .25rem !default;
897 +$toast-font-size: .875rem !default;
898 +$toast-color: null !default;
899 +$toast-background-color: rgba($white, .85) !default;
900 +$toast-border-width: 1px !default;
901 +$toast-border-color: rgba(0, 0, 0, .1) !default;
902 +$toast-border-radius: .25rem !default;
903 +$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
904 +
905 +$toast-header-color: $gray-600 !default;
906 +$toast-header-background-color: rgba($white, .85) !default;
907 +$toast-header-border-color: rgba(0, 0, 0, .05) !default;
908 +
909 +
910 +// Badges
911 +
912 +$badge-font-size: 75% !default;
913 +$badge-font-weight: $font-weight-bold !default;
914 +$badge-padding-y: .25em !default;
915 +$badge-padding-x: .4em !default;
916 +$badge-border-radius: $border-radius !default;
917 +
918 +$badge-transition: $btn-transition !default;
919 +$badge-focus-width: $input-btn-focus-width !default;
920 +
921 +$badge-pill-padding-x: .6em !default;
922 +// Use a higher than normal value to ensure completely rounded edges when
923 +// customizing padding or font-size on labels.
924 +$badge-pill-border-radius: 10rem !default;
925 +
926 +
927 +// Modals
928 +
929 +// Padding applied to the modal body
930 +$modal-inner-padding: 1rem !default;
931 +
932 +$modal-dialog-margin: .5rem !default;
933 +$modal-dialog-margin-y-sm-up: 1.75rem !default;
934 +
935 +$modal-title-line-height: $line-height-base !default;
936 +
937 +$modal-content-color: null !default;
938 +$modal-content-bg: $white !default;
939 +$modal-content-border-color: rgba($black, .2) !default;
940 +$modal-content-border-width: $border-width !default;
941 +$modal-content-border-radius: $border-radius-lg !default;
942 +$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
943 +$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
944 +
945 +$modal-backdrop-bg: $black !default;
946 +$modal-backdrop-opacity: .5 !default;
947 +$modal-header-border-color: $border-color !default;
948 +$modal-footer-border-color: $modal-header-border-color !default;
949 +$modal-header-border-width: $modal-content-border-width !default;
950 +$modal-footer-border-width: $modal-header-border-width !default;
951 +$modal-header-padding-y: 1rem !default;
952 +$modal-header-padding-x: 1rem !default;
953 +$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility
954 +
955 +$modal-xl: 1140px !default;
956 +$modal-lg: 800px !default;
957 +$modal-md: 500px !default;
958 +$modal-sm: 300px !default;
959 +
960 +$modal-fade-transform: translate(0, -50px) !default;
961 +$modal-show-transform: none !default;
962 +$modal-transition: transform .3s ease-out !default;
963 +
964 +
965 +// Alerts
966 +//
967 +// Define alert colors, border radius, and padding.
968 +
969 +$alert-padding-y: .75rem !default;
970 +$alert-padding-x: 1.25rem !default;
971 +$alert-margin-bottom: 1rem !default;
972 +$alert-border-radius: $border-radius !default;
973 +$alert-link-font-weight: $font-weight-bold !default;
974 +$alert-border-width: $border-width !default;
975 +
976 +$alert-bg-level: -10 !default;
977 +$alert-border-level: -9 !default;
978 +$alert-color-level: 6 !default;
979 +
980 +
981 +// Progress bars
982 +
983 +$progress-height: 1rem !default;
984 +$progress-font-size: $font-size-base * .75 !default;
985 +$progress-bg: $gray-200 !default;
986 +$progress-border-radius: $border-radius !default;
987 +$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
988 +$progress-bar-color: $white !default;
989 +$progress-bar-bg: theme-color("primary") !default;
990 +$progress-bar-animation-timing: 1s linear infinite !default;
991 +$progress-bar-transition: width .6s ease !default;
992 +
993 +
994 +// List group
995 +
996 +$list-group-color: null !default;
997 +$list-group-bg: $white !default;
998 +$list-group-border-color: rgba($black, .125) !default;
999 +$list-group-border-width: $border-width !default;
1000 +$list-group-border-radius: $border-radius !default;
1001 +
1002 +$list-group-item-padding-y: .75rem !default;
1003 +$list-group-item-padding-x: 1.25rem !default;
1004 +
1005 +$list-group-hover-bg: $gray-100 !default;
1006 +$list-group-active-color: $component-active-color !default;
1007 +$list-group-active-bg: $component-active-bg !default;
1008 +$list-group-active-border-color: $list-group-active-bg !default;
1009 +
1010 +$list-group-disabled-color: $gray-600 !default;
1011 +$list-group-disabled-bg: $list-group-bg !default;
1012 +
1013 +$list-group-action-color: $gray-700 !default;
1014 +$list-group-action-hover-color: $list-group-action-color !default;
1015 +
1016 +$list-group-action-active-color: $body-color !default;
1017 +$list-group-action-active-bg: $gray-200 !default;
1018 +
1019 +
1020 +// Image thumbnails
1021 +
1022 +$thumbnail-padding: .25rem !default;
1023 +$thumbnail-bg: $body-bg !default;
1024 +$thumbnail-border-width: $border-width !default;
1025 +$thumbnail-border-color: $gray-300 !default;
1026 +$thumbnail-border-radius: $border-radius !default;
1027 +$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;
1028 +
1029 +
1030 +// Figures
1031 +
1032 +$figure-caption-font-size: 90% !default;
1033 +$figure-caption-color: $gray-600 !default;
1034 +
1035 +
1036 +// Breadcrumbs
1037 +
1038 +$breadcrumb-padding-y: .75rem !default;
1039 +$breadcrumb-padding-x: 1rem !default;
1040 +$breadcrumb-item-padding: .5rem !default;
1041 +
1042 +$breadcrumb-margin-bottom: 1rem !default;
1043 +
1044 +$breadcrumb-bg: $gray-200 !default;
1045 +$breadcrumb-divider-color: $gray-600 !default;
1046 +$breadcrumb-active-color: $gray-600 !default;
1047 +$breadcrumb-divider: quote("/") !default;
1048 +
1049 +$breadcrumb-border-radius: $border-radius !default;
1050 +
1051 +
1052 +// Carousel
1053 +
1054 +$carousel-control-color: $white !default;
1055 +$carousel-control-width: 15% !default;
1056 +$carousel-control-opacity: .5 !default;
1057 +$carousel-control-hover-opacity: .9 !default;
1058 +$carousel-control-transition: opacity .15s ease !default;
1059 +
1060 +$carousel-indicator-width: 30px !default;
1061 +$carousel-indicator-height: 3px !default;
1062 +$carousel-indicator-hit-area-height: 10px !default;
1063 +$carousel-indicator-spacer: 3px !default;
1064 +$carousel-indicator-active-bg: $white !default;
1065 +$carousel-indicator-transition: opacity .6s ease !default;
1066 +
1067 +$carousel-caption-width: 70% !default;
1068 +$carousel-caption-color: $white !default;
1069 +
1070 +$carousel-control-icon-width: 20px !default;
1071 +
1072 +$carousel-control-prev-icon-bg: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e"), "#", "%23") !default;
1073 +$carousel-control-next-icon-bg: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"), "#", "%23") !default;
1074 +
1075 +$carousel-transition-duration: .6s !default;
1076 +$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
1077 +
1078 +
1079 +// Spinners
1080 +
1081 +$spinner-width: 2rem !default;
1082 +$spinner-height: $spinner-width !default;
1083 +$spinner-border-width: .25em !default;
1084 +
1085 +$spinner-width-sm: 1rem !default;
1086 +$spinner-height-sm: $spinner-width-sm !default;
1087 +$spinner-border-width-sm: .2em !default;
1088 +
1089 +
1090 +// Close
1091 +
1092 +$close-font-size: $font-size-base * 1.5 !default;
1093 +$close-font-weight: $font-weight-bold !default;
1094 +$close-color: $black !default;
1095 +$close-text-shadow: 0 1px 0 $white !default;
1096 +
1097 +
1098 +// Code
1099 +
1100 +$code-font-size: 87.5% !default;
1101 +$code-color: $pink !default;
1102 +
1103 +$kbd-padding-y: .2rem !default;
1104 +$kbd-padding-x: .4rem !default;
1105 +$kbd-font-size: $code-font-size !default;
1106 +$kbd-color: $white !default;
1107 +$kbd-bg: $gray-900 !default;
1108 +
1109 +$pre-color: $gray-900 !default;
1110 +$pre-scrollable-max-height: 340px !default;
1111 +
1112 +
1113 +// Utilities
1114 +
1115 +$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;
1116 +$overflows: auto, hidden !default;
1117 +$positions: static, relative, absolute, fixed, sticky !default;
1118 +
1119 +
1120 +// Printing
1121 +
1122 +$print-page-size: a3 !default;
1123 +$print-body-min-width: map-get($grid-breakpoints, "lg") !default;
1 +/*!
2 + * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)
3 + * Copyright 2011-2019 The Bootstrap Authors
4 + * Copyright 2011-2019 Twitter, Inc.
5 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 + */
7 +
8 +html {
9 + box-sizing: border-box;
10 + -ms-overflow-style: scrollbar;
11 +}
12 +
13 +*,
14 +*::before,
15 +*::after {
16 + box-sizing: inherit;
17 +}
18 +
19 +@import "functions";
20 +@import "variables";
21 +
22 +@import "mixins/breakpoints";
23 +@import "mixins/grid-framework";
24 +@import "mixins/grid";
25 +
26 +@import "grid";
27 +@import "utilities/display";
28 +@import "utilities/flex";
29 +@import "utilities/spacing";
1 +/*!
2 + * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
3 + * Copyright 2011-2019 The Bootstrap Authors
4 + * Copyright 2011-2019 Twitter, Inc.
5 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 + */
8 +
9 +@import "functions";
10 +@import "variables";
11 +@import "mixins";
12 +@import "reboot";
1 +/*!
2 + * Bootstrap v4.3.1 (https://getbootstrap.com/)
3 + * Copyright 2011-2019 The Bootstrap Authors
4 + * Copyright 2011-2019 Twitter, Inc.
5 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 + */
7 +
8 +@import "functions";
9 +@import "variables";
10 +@import "mixins";
11 +@import "root";
12 +@import "reboot";
13 +@import "type";
14 +@import "images";
15 +@import "code";
16 +@import "grid";
17 +@import "tables";
18 +@import "forms";
19 +@import "buttons";
20 +@import "transitions";
21 +@import "dropdown";
22 +@import "button-group";
23 +@import "input-group";
24 +@import "custom-forms";
25 +@import "nav";
26 +@import "navbar";
27 +@import "card";
28 +@import "breadcrumb";
29 +@import "pagination";
30 +@import "badge";
31 +@import "jumbotron";
32 +@import "alert";
33 +@import "progress";
34 +@import "media";
35 +@import "list-group";
36 +@import "close";
37 +@import "toasts";
38 +@import "modal";
39 +@import "tooltip";
40 +@import "popover";
41 +@import "carousel";
42 +@import "spinners";
43 +@import "utilities";
44 +@import "print";
1 +@mixin alert-variant($background, $border, $color) {
2 + color: $color;
3 + @include gradient-bg($background);
4 + border-color: $border;
5 +
6 + hr {
7 + border-top-color: darken($border, 5%);
8 + }
9 +
10 + .alert-link {
11 + color: darken($color, 10%);
12 + }
13 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +// Contextual backgrounds
4 +
5 +@mixin bg-variant($parent, $color) {
6 + #{$parent} {
7 + background-color: $color !important;
8 + }
9 + a#{$parent},
10 + button#{$parent} {
11 + @include hover-focus {
12 + background-color: darken($color, 10%) !important;
13 + }
14 + }
15 +}
16 +
17 +@mixin bg-gradient-variant($parent, $color) {
18 + #{$parent} {
19 + background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
20 + }
21 +}
1 +@mixin badge-variant($bg) {
2 + color: color-yiq($bg);
3 + background-color: $bg;
4 +
5 + @at-root a#{&} {
6 + @include hover-focus {
7 + color: color-yiq($bg);
8 + background-color: darken($bg, 10%);
9 + }
10 +
11 + &:focus,
12 + &.focus {
13 + outline: 0;
14 + box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);
15 + }
16 + }
17 +}
1 +// stylelint-disable property-blacklist
2 +// Single side border-radius
3 +
4 +@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
5 + @if $enable-rounded {
6 + border-radius: $radius;
7 + }
8 + @else if $fallback-border-radius != false {
9 + border-radius: $fallback-border-radius;
10 + }
11 +}
12 +
13 +@mixin border-top-radius($radius) {
14 + @if $enable-rounded {
15 + border-top-left-radius: $radius;
16 + border-top-right-radius: $radius;
17 + }
18 +}
19 +
20 +@mixin border-right-radius($radius) {
21 + @if $enable-rounded {
22 + border-top-right-radius: $radius;
23 + border-bottom-right-radius: $radius;
24 + }
25 +}
26 +
27 +@mixin border-bottom-radius($radius) {
28 + @if $enable-rounded {
29 + border-bottom-right-radius: $radius;
30 + border-bottom-left-radius: $radius;
31 + }
32 +}
33 +
34 +@mixin border-left-radius($radius) {
35 + @if $enable-rounded {
36 + border-top-left-radius: $radius;
37 + border-bottom-left-radius: $radius;
38 + }
39 +}
40 +
41 +@mixin border-top-left-radius($radius) {
42 + @if $enable-rounded {
43 + border-top-left-radius: $radius;
44 + }
45 +}
46 +
47 +@mixin border-top-right-radius($radius) {
48 + @if $enable-rounded {
49 + border-top-right-radius: $radius;
50 + }
51 +}
52 +
53 +@mixin border-bottom-right-radius($radius) {
54 + @if $enable-rounded {
55 + border-bottom-right-radius: $radius;
56 + }
57 +}
58 +
59 +@mixin border-bottom-left-radius($radius) {
60 + @if $enable-rounded {
61 + border-bottom-left-radius: $radius;
62 + }
63 +}
1 +@mixin box-shadow($shadow...) {
2 + @if $enable-shadows {
3 + $result: ();
4 +
5 + @if (length($shadow) == 1) {
6 + // We can pass `@include box-shadow(none);`
7 + $result: $shadow;
8 + } @else {
9 + // Filter to avoid invalid properties for example `box-shadow: none, 1px 1px black;`
10 + @for $i from 1 through length($shadow) {
11 + @if nth($shadow, $i) != "none" {
12 + $result: append($result, nth($shadow, $i), "comma");
13 + }
14 + }
15 + }
16 + @if (length($result) > 0) {
17 + box-shadow: $result;
18 + }
19 + }
20 +}
1 +// Breakpoint viewport sizes and media queries.
2 +//
3 +// Breakpoints are defined as a map of (name: minimum width), order from small to large:
4 +//
5 +// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
6 +//
7 +// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
8 +
9 +// Name of the next breakpoint, or null for the last breakpoint.
10 +//
11 +// >> breakpoint-next(sm)
12 +// md
13 +// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
14 +// md
15 +// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
16 +// md
17 +@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
18 + $n: index($breakpoint-names, $name);
19 + @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
20 +}
21 +
22 +// Minimum breakpoint width. Null for the smallest (first) breakpoint.
23 +//
24 +// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
25 +// 576px
26 +@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
27 + $min: map-get($breakpoints, $name);
28 + @return if($min != 0, $min, null);
29 +}
30 +
31 +// Maximum breakpoint width. Null for the largest (last) breakpoint.
32 +// The maximum value is calculated as the minimum of the next one less 0.02px
33 +// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.
34 +// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
35 +// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
36 +// See https://bugs.webkit.org/show_bug.cgi?id=178261
37 +//
38 +// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
39 +// 767.98px
40 +@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
41 + $next: breakpoint-next($name, $breakpoints);
42 + @return if($next, breakpoint-min($next, $breakpoints) - .02, null);
43 +}
44 +
45 +// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
46 +// Useful for making responsive utilities.
47 +//
48 +// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
49 +// "" (Returns a blank string)
50 +// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
51 +// "-sm"
52 +@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
53 + @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
54 +}
55 +
56 +// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
57 +// Makes the @content apply to the given breakpoint and wider.
58 +@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
59 + $min: breakpoint-min($name, $breakpoints);
60 + @if $min {
61 + @media (min-width: $min) {
62 + @content;
63 + }
64 + } @else {
65 + @content;
66 + }
67 +}
68 +
69 +// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
70 +// Makes the @content apply to the given breakpoint and narrower.
71 +@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
72 + $max: breakpoint-max($name, $breakpoints);
73 + @if $max {
74 + @media (max-width: $max) {
75 + @content;
76 + }
77 + } @else {
78 + @content;
79 + }
80 +}
81 +
82 +// Media that spans multiple breakpoint widths.
83 +// Makes the @content apply between the min and max breakpoints
84 +@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
85 + $min: breakpoint-min($lower, $breakpoints);
86 + $max: breakpoint-max($upper, $breakpoints);
87 +
88 + @if $min != null and $max != null {
89 + @media (min-width: $min) and (max-width: $max) {
90 + @content;
91 + }
92 + } @else if $max == null {
93 + @include media-breakpoint-up($lower, $breakpoints) {
94 + @content;
95 + }
96 + } @else if $min == null {
97 + @include media-breakpoint-down($upper, $breakpoints) {
98 + @content;
99 + }
100 + }
101 +}
102 +
103 +// Media between the breakpoint's minimum and maximum widths.
104 +// No minimum for the smallest breakpoint, and no maximum for the largest one.
105 +// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
106 +@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
107 + $min: breakpoint-min($name, $breakpoints);
108 + $max: breakpoint-max($name, $breakpoints);
109 +
110 + @if $min != null and $max != null {
111 + @media (min-width: $min) and (max-width: $max) {
112 + @content;
113 + }
114 + } @else if $max == null {
115 + @include media-breakpoint-up($name, $breakpoints) {
116 + @content;
117 + }
118 + } @else if $min == null {
119 + @include media-breakpoint-down($name, $breakpoints) {
120 + @content;
121 + }
122 + }
123 +}
1 +// Button variants
2 +//
3 +// Easily pump out default styles, as well as :hover, :focus, :active,
4 +// and disabled options for all buttons
5 +
6 +@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {
7 + color: color-yiq($background);
8 + @include gradient-bg($background);
9 + border-color: $border;
10 + @include box-shadow($btn-box-shadow);
11 +
12 + @include hover {
13 + color: color-yiq($hover-background);
14 + @include gradient-bg($hover-background);
15 + border-color: $hover-border;
16 + }
17 +
18 + &:focus,
19 + &.focus {
20 + // Avoid using mixin so we can pass custom focus shadow properly
21 + @if $enable-shadows {
22 + box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
23 + } @else {
24 + box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
25 + }
26 + }
27 +
28 + // Disabled comes first so active can properly restyle
29 + &.disabled,
30 + &:disabled {
31 + color: color-yiq($background);
32 + background-color: $background;
33 + border-color: $border;
34 + // Remove CSS gradients if they're enabled
35 + @if $enable-gradients {
36 + background-image: none;
37 + }
38 + }
39 +
40 + &:not(:disabled):not(.disabled):active,
41 + &:not(:disabled):not(.disabled).active,
42 + .show > &.dropdown-toggle {
43 + color: color-yiq($active-background);
44 + background-color: $active-background;
45 + @if $enable-gradients {
46 + background-image: none; // Remove the gradient for the pressed/active state
47 + }
48 + border-color: $active-border;
49 +
50 + &:focus {
51 + // Avoid using mixin so we can pass custom focus shadow properly
52 + @if $enable-shadows and $btn-active-box-shadow != none {
53 + box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
54 + } @else {
55 + box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
56 + }
57 + }
58 + }
59 +}
60 +
61 +@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
62 + color: $color;
63 + border-color: $color;
64 +
65 + @include hover {
66 + color: $color-hover;
67 + background-color: $active-background;
68 + border-color: $active-border;
69 + }
70 +
71 + &:focus,
72 + &.focus {
73 + box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
74 + }
75 +
76 + &.disabled,
77 + &:disabled {
78 + color: $color;
79 + background-color: transparent;
80 + }
81 +
82 + &:not(:disabled):not(.disabled):active,
83 + &:not(:disabled):not(.disabled).active,
84 + .show > &.dropdown-toggle {
85 + color: color-yiq($active-background);
86 + background-color: $active-background;
87 + border-color: $active-border;
88 +
89 + &:focus {
90 + // Avoid using mixin so we can pass custom focus shadow properly
91 + @if $enable-shadows and $btn-active-box-shadow != none {
92 + box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);
93 + } @else {
94 + box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
95 + }
96 + }
97 + }
98 +}
99 +
100 +// Button sizes
101 +@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
102 + padding: $padding-y $padding-x;
103 + @include font-size($font-size);
104 + line-height: $line-height;
105 + // Manually declare to provide an override to the browser default
106 + @include border-radius($border-radius, 0);
107 +}
1 +@mixin caret-down {
2 + border-top: $caret-width solid;
3 + border-right: $caret-width solid transparent;
4 + border-bottom: 0;
5 + border-left: $caret-width solid transparent;
6 +}
7 +
8 +@mixin caret-up {
9 + border-top: 0;
10 + border-right: $caret-width solid transparent;
11 + border-bottom: $caret-width solid;
12 + border-left: $caret-width solid transparent;
13 +}
14 +
15 +@mixin caret-right {
16 + border-top: $caret-width solid transparent;
17 + border-right: 0;
18 + border-bottom: $caret-width solid transparent;
19 + border-left: $caret-width solid;
20 +}
21 +
22 +@mixin caret-left {
23 + border-top: $caret-width solid transparent;
24 + border-right: $caret-width solid;
25 + border-bottom: $caret-width solid transparent;
26 +}
27 +
28 +@mixin caret($direction: down) {
29 + @if $enable-caret {
30 + &::after {
31 + display: inline-block;
32 + margin-left: $caret-spacing;
33 + vertical-align: $caret-vertical-align;
34 + content: "";
35 + @if $direction == down {
36 + @include caret-down;
37 + } @else if $direction == up {
38 + @include caret-up;
39 + } @else if $direction == right {
40 + @include caret-right;
41 + }
42 + }
43 +
44 + @if $direction == left {
45 + &::after {
46 + display: none;
47 + }
48 +
49 + &::before {
50 + display: inline-block;
51 + margin-right: $caret-spacing;
52 + vertical-align: $caret-vertical-align;
53 + content: "";
54 + @include caret-left;
55 + }
56 + }
57 +
58 + &:empty::after {
59 + margin-left: 0;
60 + }
61 + }
62 +}
1 +@mixin clearfix() {
2 + &::after {
3 + display: block;
4 + clear: both;
5 + content: "";
6 + }
7 +}
1 +// Deprecate mixin
2 +//
3 +// This mixin can be used to deprecate mixins or functions.
4 +// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to
5 +// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)
6 +@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {
7 + @if ($enable-deprecation-messages != false and $ignore-warning != true) {
8 + @warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.";
9 + }
10 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +@mixin float-left {
4 + float: left !important;
5 + @include deprecate("The `float-left` mixin", "v4.3.0", "v5");
6 +}
7 +@mixin float-right {
8 + float: right !important;
9 + @include deprecate("The `float-right` mixin", "v4.3.0", "v5");
10 +}
11 +@mixin float-none {
12 + float: none !important;
13 + @include deprecate("The `float-none` mixin", "v4.3.0", "v5");
14 +}
1 +// Form control focus state
2 +//
3 +// Generate a customized focus state and for any input with the specified color,
4 +// which defaults to the `$input-focus-border-color` variable.
5 +//
6 +// We highly encourage you to not customize the default value, but instead use
7 +// this to tweak colors on an as-needed basis. This aesthetic change is based on
8 +// WebKit's default styles, but applicable to a wider range of browsers. Its
9 +// usability and accessibility should be taken into account with any change.
10 +//
11 +// Example usage: change the default blue border and shadow to white for better
12 +// contrast against a dark gray background.
13 +@mixin form-control-focus() {
14 + &:focus {
15 + color: $input-focus-color;
16 + background-color: $input-focus-bg;
17 + border-color: $input-focus-border-color;
18 + outline: 0;
19 + // Avoid using mixin so we can pass custom focus shadow properly
20 + @if $enable-shadows {
21 + box-shadow: $input-box-shadow, $input-focus-box-shadow;
22 + } @else {
23 + box-shadow: $input-focus-box-shadow;
24 + }
25 + }
26 +}
27 +
28 +
29 +@mixin form-validation-state($state, $color, $icon) {
30 + .#{$state}-feedback {
31 + display: none;
32 + width: 100%;
33 + margin-top: $form-feedback-margin-top;
34 + @include font-size($form-feedback-font-size);
35 + color: $color;
36 + }
37 +
38 + .#{$state}-tooltip {
39 + position: absolute;
40 + top: 100%;
41 + z-index: 5;
42 + display: none;
43 + max-width: 100%; // Contain to parent when possible
44 + padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
45 + margin-top: .1rem;
46 + @include font-size($form-feedback-tooltip-font-size);
47 + line-height: $form-feedback-tooltip-line-height;
48 + color: color-yiq($color);
49 + background-color: rgba($color, $form-feedback-tooltip-opacity);
50 + @include border-radius($form-feedback-tooltip-border-radius);
51 + }
52 +
53 + .form-control {
54 + .was-validated &:#{$state},
55 + &.is-#{$state} {
56 + border-color: $color;
57 +
58 + @if $enable-validation-icons {
59 + padding-right: $input-height-inner;
60 + background-image: $icon;
61 + background-repeat: no-repeat;
62 + background-position: center right $input-height-inner-quarter;
63 + background-size: $input-height-inner-half $input-height-inner-half;
64 + }
65 +
66 + &:focus {
67 + border-color: $color;
68 + box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
69 + }
70 +
71 + ~ .#{$state}-feedback,
72 + ~ .#{$state}-tooltip {
73 + display: block;
74 + }
75 + }
76 + }
77 +
78 + // stylelint-disable-next-line selector-no-qualifying-type
79 + textarea.form-control {
80 + .was-validated &:#{$state},
81 + &.is-#{$state} {
82 + @if $enable-validation-icons {
83 + padding-right: $input-height-inner;
84 + background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
85 + }
86 + }
87 + }
88 +
89 + .custom-select {
90 + .was-validated &:#{$state},
91 + &.is-#{$state} {
92 + border-color: $color;
93 +
94 + @if $enable-validation-icons {
95 + padding-right: $custom-select-feedback-icon-padding-right;
96 + background: $custom-select-background, $icon $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;
97 + }
98 +
99 + &:focus {
100 + border-color: $color;
101 + box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
102 + }
103 +
104 + ~ .#{$state}-feedback,
105 + ~ .#{$state}-tooltip {
106 + display: block;
107 + }
108 + }
109 + }
110 +
111 +
112 + .form-control-file {
113 + .was-validated &:#{$state},
114 + &.is-#{$state} {
115 + ~ .#{$state}-feedback,
116 + ~ .#{$state}-tooltip {
117 + display: block;
118 + }
119 + }
120 + }
121 +
122 + .form-check-input {
123 + .was-validated &:#{$state},
124 + &.is-#{$state} {
125 + ~ .form-check-label {
126 + color: $color;
127 + }
128 +
129 + ~ .#{$state}-feedback,
130 + ~ .#{$state}-tooltip {
131 + display: block;
132 + }
133 + }
134 + }
135 +
136 + .custom-control-input {
137 + .was-validated &:#{$state},
138 + &.is-#{$state} {
139 + ~ .custom-control-label {
140 + color: $color;
141 +
142 + &::before {
143 + border-color: $color;
144 + }
145 + }
146 +
147 + ~ .#{$state}-feedback,
148 + ~ .#{$state}-tooltip {
149 + display: block;
150 + }
151 +
152 + &:checked {
153 + ~ .custom-control-label::before {
154 + border-color: lighten($color, 10%);
155 + @include gradient-bg(lighten($color, 10%));
156 + }
157 + }
158 +
159 + &:focus {
160 + ~ .custom-control-label::before {
161 + box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
162 + }
163 +
164 + &:not(:checked) ~ .custom-control-label::before {
165 + border-color: $color;
166 + }
167 + }
168 + }
169 + }
170 +
171 + // custom file
172 + .custom-file-input {
173 + .was-validated &:#{$state},
174 + &.is-#{$state} {
175 + ~ .custom-file-label {
176 + border-color: $color;
177 + }
178 +
179 + ~ .#{$state}-feedback,
180 + ~ .#{$state}-tooltip {
181 + display: block;
182 + }
183 +
184 + &:focus {
185 + ~ .custom-file-label {
186 + border-color: $color;
187 + box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
188 + }
189 + }
190 + }
191 + }
192 +}
1 +// Gradients
2 +
3 +@mixin gradient-bg($color) {
4 + @if $enable-gradients {
5 + background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
6 + } @else {
7 + background-color: $color;
8 + }
9 +}
10 +
11 +// Horizontal gradient, from left to right
12 +//
13 +// Creates two color stops, start and end, by specifying a color and position for each color stop.
14 +@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
15 + background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
16 + background-repeat: repeat-x;
17 +}
18 +
19 +// Vertical gradient, from top to bottom
20 +//
21 +// Creates two color stops, start and end, by specifying a color and position for each color stop.
22 +@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
23 + background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
24 + background-repeat: repeat-x;
25 +}
26 +
27 +@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
28 + background-image: linear-gradient($deg, $start-color, $end-color);
29 + background-repeat: repeat-x;
30 +}
31 +@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
32 + background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
33 + background-repeat: no-repeat;
34 +}
35 +@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
36 + background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
37 + background-repeat: no-repeat;
38 +}
39 +@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
40 + background-image: radial-gradient(circle, $inner-color, $outer-color);
41 + background-repeat: no-repeat;
42 +}
43 +@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
44 + background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
45 +}
1 +// Framework grid generation
2 +//
3 +// Used only by Bootstrap to generate the correct number of grid classes given
4 +// any value of `$grid-columns`.
5 +
6 +@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
7 + // Common properties for all breakpoints
8 + %grid-column {
9 + position: relative;
10 + width: 100%;
11 + padding-right: $gutter / 2;
12 + padding-left: $gutter / 2;
13 + }
14 +
15 + @each $breakpoint in map-keys($breakpoints) {
16 + $infix: breakpoint-infix($breakpoint, $breakpoints);
17 +
18 + // Allow columns to stretch full width below their breakpoints
19 + @for $i from 1 through $columns {
20 + .col#{$infix}-#{$i} {
21 + @extend %grid-column;
22 + }
23 + }
24 + .col#{$infix},
25 + .col#{$infix}-auto {
26 + @extend %grid-column;
27 + }
28 +
29 + @include media-breakpoint-up($breakpoint, $breakpoints) {
30 + // Provide basic `.col-{bp}` classes for equal-width flexbox columns
31 + .col#{$infix} {
32 + flex-basis: 0;
33 + flex-grow: 1;
34 + max-width: 100%;
35 + }
36 + .col#{$infix}-auto {
37 + flex: 0 0 auto;
38 + width: auto;
39 + max-width: 100%; // Reset earlier grid tiers
40 + }
41 +
42 + @for $i from 1 through $columns {
43 + .col#{$infix}-#{$i} {
44 + @include make-col($i, $columns);
45 + }
46 + }
47 +
48 + .order#{$infix}-first { order: -1; }
49 +
50 + .order#{$infix}-last { order: $columns + 1; }
51 +
52 + @for $i from 0 through $columns {
53 + .order#{$infix}-#{$i} { order: $i; }
54 + }
55 +
56 + // `$columns - 1` because offsetting by the width of an entire row isn't possible
57 + @for $i from 0 through ($columns - 1) {
58 + @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
59 + .offset#{$infix}-#{$i} {
60 + @include make-col-offset($i, $columns);
61 + }
62 + }
63 + }
64 + }
65 + }
66 +}
1 +/// Grid system
2 +//
3 +// Generate semantic grid columns with these mixins.
4 +
5 +@mixin make-container($gutter: $grid-gutter-width) {
6 + width: 100%;
7 + padding-right: $gutter / 2;
8 + padding-left: $gutter / 2;
9 + margin-right: auto;
10 + margin-left: auto;
11 +}
12 +
13 +
14 +// For each breakpoint, define the maximum width of the container in a media query
15 +@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
16 + @each $breakpoint, $container-max-width in $max-widths {
17 + @include media-breakpoint-up($breakpoint, $breakpoints) {
18 + max-width: $container-max-width;
19 + }
20 + }
21 +}
22 +
23 +@mixin make-row($gutter: $grid-gutter-width) {
24 + display: flex;
25 + flex-wrap: wrap;
26 + margin-right: -$gutter / 2;
27 + margin-left: -$gutter / 2;
28 +}
29 +
30 +@mixin make-col-ready($gutter: $grid-gutter-width) {
31 + position: relative;
32 + // Prevent columns from becoming too narrow when at smaller grid tiers by
33 + // always setting `width: 100%;`. This works because we use `flex` values
34 + // later on to override this initial width.
35 + width: 100%;
36 + padding-right: $gutter / 2;
37 + padding-left: $gutter / 2;
38 +}
39 +
40 +@mixin make-col($size, $columns: $grid-columns) {
41 + flex: 0 0 percentage($size / $columns);
42 + // Add a `max-width` to ensure content within each column does not blow out
43 + // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
44 + // do not appear to require this.
45 + max-width: percentage($size / $columns);
46 +}
47 +
48 +@mixin make-col-offset($size, $columns: $grid-columns) {
49 + $num: $size / $columns;
50 + margin-left: if($num == 0, 0, percentage($num));
51 +}
1 +// Hover mixin and `$enable-hover-media-query` are deprecated.
2 +//
3 +// Originally added during our alphas and maintained during betas, this mixin was
4 +// designed to prevent `:hover` stickiness on iOS-an issue where hover styles
5 +// would persist after initial touch.
6 +//
7 +// For backward compatibility, we've kept these mixins and updated them to
8 +// always return their regular pseudo-classes instead of a shimmed media query.
9 +//
10 +// Issue: https://github.com/twbs/bootstrap/issues/25195
11 +
12 +@mixin hover {
13 + &:hover { @content; }
14 +}
15 +
16 +@mixin hover-focus {
17 + &:hover,
18 + &:focus {
19 + @content;
20 + }
21 +}
22 +
23 +@mixin plain-hover-focus {
24 + &,
25 + &:hover,
26 + &:focus {
27 + @content;
28 + }
29 +}
30 +
31 +@mixin hover-focus-active {
32 + &:hover,
33 + &:focus,
34 + &:active {
35 + @content;
36 + }
37 +}
1 +// Image Mixins
2 +// - Responsive image
3 +// - Retina image
4 +
5 +
6 +// Responsive image
7 +//
8 +// Keep images from scaling beyond the width of their parents.
9 +
10 +@mixin img-fluid {
11 + // Part 1: Set a maximum relative to the parent
12 + max-width: 100%;
13 + // Part 2: Override the height to auto, otherwise images will be stretched
14 + // when setting a width and height attribute on the img element.
15 + height: auto;
16 +}
17 +
18 +
19 +// Retina image
20 +//
21 +// Short retina mixin for setting background-image and -size.
22 +
23 +@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
24 + background-image: url($file-1x);
25 +
26 + // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
27 + // but doesn't convert dppx=>dpi.
28 + // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
29 + // Compatibility info: https://caniuse.com/#feat=css-media-resolution
30 + @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
31 + only screen and (min-resolution: 2dppx) { // Standardized
32 + background-image: url($file-2x);
33 + background-size: $width-1x $height-1x;
34 + }
35 + @include deprecate("`img-retina()`", "v4.3.0", "v5");
36 +}
1 +// List Groups
2 +
3 +@mixin list-group-item-variant($state, $background, $color) {
4 + .list-group-item-#{$state} {
5 + color: $color;
6 + background-color: $background;
7 +
8 + &.list-group-item-action {
9 + @include hover-focus {
10 + color: $color;
11 + background-color: darken($background, 5%);
12 + }
13 +
14 + &.active {
15 + color: $white;
16 + background-color: $color;
17 + border-color: $color;
18 + }
19 + }
20 + }
21 +}
1 +// Lists
2 +
3 +// Unstyled keeps list items block level, just removes default browser padding and list-style
4 +@mixin list-unstyled {
5 + padding-left: 0;
6 + list-style: none;
7 +}
1 +// Horizontal dividers
2 +//
3 +// Dividers (basically an hr) within dropdowns and nav lists
4 +
5 +@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {
6 + height: 0;
7 + margin: $margin-y 0;
8 + overflow: hidden;
9 + border-top: 1px solid $color;
10 +}
1 +// Pagination
2 +
3 +@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
4 + .page-link {
5 + padding: $padding-y $padding-x;
6 + @include font-size($font-size);
7 + line-height: $line-height;
8 + }
9 +
10 + .page-item {
11 + &:first-child {
12 + .page-link {
13 + @include border-left-radius($border-radius);
14 + }
15 + }
16 + &:last-child {
17 + .page-link {
18 + @include border-right-radius($border-radius);
19 + }
20 + }
21 + }
22 +}
1 +@mixin reset-text {
2 + font-family: $font-family-base;
3 + // We deliberately do NOT reset font-size or word-wrap.
4 + font-style: normal;
5 + font-weight: $font-weight-normal;
6 + line-height: $line-height-base;
7 + text-align: left; // Fallback for where `start` is not supported
8 + text-align: start;
9 + text-decoration: none;
10 + text-shadow: none;
11 + text-transform: none;
12 + letter-spacing: normal;
13 + word-break: normal;
14 + word-spacing: normal;
15 + white-space: normal;
16 + line-break: auto;
17 +}
1 +// Resize anything
2 +
3 +@mixin resizable($direction) {
4 + overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
5 + resize: $direction; // Options: horizontal, vertical, both
6 +}
1 +// Only display content to screen readers
2 +//
3 +// See: https://a11yproject.com/posts/how-to-hide-content/
4 +// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
5 +
6 +@mixin sr-only {
7 + position: absolute;
8 + width: 1px;
9 + height: 1px;
10 + padding: 0;
11 + overflow: hidden;
12 + clip: rect(0, 0, 0, 0);
13 + white-space: nowrap;
14 + border: 0;
15 +}
16 +
17 +// Use in conjunction with .sr-only to only display content when it's focused.
18 +//
19 +// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
20 +//
21 +// Credit: HTML5 Boilerplate
22 +
23 +@mixin sr-only-focusable {
24 + &:active,
25 + &:focus {
26 + position: static;
27 + width: auto;
28 + height: auto;
29 + overflow: visible;
30 + clip: auto;
31 + white-space: normal;
32 + }
33 +}
1 +// Sizing shortcuts
2 +
3 +@mixin size($width, $height: $width) {
4 + width: $width;
5 + height: $height;
6 + @include deprecate("`size()`", "v4.3.0", "v5");
7 +}
1 +// Tables
2 +
3 +@mixin table-row-variant($state, $background, $border: null) {
4 + // Exact selectors below required to override `.table-striped` and prevent
5 + // inheritance to nested tables.
6 + .table-#{$state} {
7 + &,
8 + > th,
9 + > td {
10 + background-color: $background;
11 + }
12 +
13 + @if $border != null {
14 + th,
15 + td,
16 + thead th,
17 + tbody + tbody {
18 + border-color: $border;
19 + }
20 + }
21 + }
22 +
23 + // Hover states for `.table-hover`
24 + // Note: this is not available for cells or rows within `thead` or `tfoot`.
25 + .table-hover {
26 + $hover-background: darken($background, 5%);
27 +
28 + .table-#{$state} {
29 + @include hover {
30 + background-color: $hover-background;
31 +
32 + > td,
33 + > th {
34 + background-color: $hover-background;
35 + }
36 + }
37 + }
38 + }
39 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +// Typography
4 +
5 +@mixin text-emphasis-variant($parent, $color) {
6 + #{$parent} {
7 + color: $color !important;
8 + }
9 + @if $emphasized-link-hover-darken-percentage != 0 {
10 + a#{$parent} {
11 + @include hover-focus {
12 + color: darken($color, $emphasized-link-hover-darken-percentage) !important;
13 + }
14 + }
15 + }
16 +}
1 +// CSS image replacement
2 +@mixin text-hide($ignore-warning: false) {
3 + // stylelint-disable-next-line font-family-no-missing-generic-family-keyword
4 + font: 0/0 a;
5 + color: transparent;
6 + text-shadow: none;
7 + background-color: transparent;
8 + border: 0;
9 +
10 + @include deprecate("`text-hide()`", "v4.1.0", "v5", $ignore-warning);
11 +}
1 +// Text truncate
2 +// Requires inline-block or block for proper styling
3 +
4 +@mixin text-truncate() {
5 + overflow: hidden;
6 + text-overflow: ellipsis;
7 + white-space: nowrap;
8 +}
1 +// stylelint-disable property-blacklist
2 +@mixin transition($transition...) {
3 + @if $enable-transitions {
4 + @if length($transition) == 0 {
5 + transition: $transition-base;
6 + } @else {
7 + transition: $transition;
8 + }
9 + }
10 +
11 + @if $enable-prefers-reduced-motion-media-query {
12 + @media (prefers-reduced-motion: reduce) {
13 + transition: none;
14 + }
15 + }
16 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +// Visibility
4 +
5 +@mixin invisible($visibility) {
6 + visibility: $visibility !important;
7 + @include deprecate("`invisible()`", "v4.3.0", "v5");
8 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +.align-baseline { vertical-align: baseline !important; } // Browser default
4 +.align-top { vertical-align: top !important; }
5 +.align-middle { vertical-align: middle !important; }
6 +.align-bottom { vertical-align: bottom !important; }
7 +.align-text-bottom { vertical-align: text-bottom !important; }
8 +.align-text-top { vertical-align: text-top !important; }
1 +// stylelint-disable declaration-no-important
2 +
3 +@each $color, $value in $theme-colors {
4 + @include bg-variant(".bg-#{$color}", $value);
5 +}
6 +
7 +@if $enable-gradients {
8 + @each $color, $value in $theme-colors {
9 + @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
10 + }
11 +}
12 +
13 +.bg-white {
14 + background-color: $white !important;
15 +}
16 +
17 +.bg-transparent {
18 + background-color: transparent !important;
19 +}
1 +// stylelint-disable property-blacklist, declaration-no-important
2 +
3 +//
4 +// Border
5 +//
6 +
7 +.border { border: $border-width solid $border-color !important; }
8 +.border-top { border-top: $border-width solid $border-color !important; }
9 +.border-right { border-right: $border-width solid $border-color !important; }
10 +.border-bottom { border-bottom: $border-width solid $border-color !important; }
11 +.border-left { border-left: $border-width solid $border-color !important; }
12 +
13 +.border-0 { border: 0 !important; }
14 +.border-top-0 { border-top: 0 !important; }
15 +.border-right-0 { border-right: 0 !important; }
16 +.border-bottom-0 { border-bottom: 0 !important; }
17 +.border-left-0 { border-left: 0 !important; }
18 +
19 +@each $color, $value in $theme-colors {
20 + .border-#{$color} {
21 + border-color: $value !important;
22 + }
23 +}
24 +
25 +.border-white {
26 + border-color: $white !important;
27 +}
28 +
29 +//
30 +// Border-radius
31 +//
32 +
33 +.rounded-sm {
34 + border-radius: $border-radius-sm !important;
35 +}
36 +
37 +.rounded {
38 + border-radius: $border-radius !important;
39 +}
40 +
41 +.rounded-top {
42 + border-top-left-radius: $border-radius !important;
43 + border-top-right-radius: $border-radius !important;
44 +}
45 +
46 +.rounded-right {
47 + border-top-right-radius: $border-radius !important;
48 + border-bottom-right-radius: $border-radius !important;
49 +}
50 +
51 +.rounded-bottom {
52 + border-bottom-right-radius: $border-radius !important;
53 + border-bottom-left-radius: $border-radius !important;
54 +}
55 +
56 +.rounded-left {
57 + border-top-left-radius: $border-radius !important;
58 + border-bottom-left-radius: $border-radius !important;
59 +}
60 +
61 +.rounded-lg {
62 + border-radius: $border-radius-lg !important;
63 +}
64 +
65 +.rounded-circle {
66 + border-radius: 50% !important;
67 +}
68 +
69 +.rounded-pill {
70 + border-radius: $rounded-pill !important;
71 +}
72 +
73 +.rounded-0 {
74 + border-radius: 0 !important;
75 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +//
4 +// Utilities for common `display` values
5 +//
6 +
7 +@each $breakpoint in map-keys($grid-breakpoints) {
8 + @include media-breakpoint-up($breakpoint) {
9 + $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
10 +
11 + @each $value in $displays {
12 + .d#{$infix}-#{$value} { display: $value !important; }
13 + }
14 + }
15 +}
16 +
17 +
18 +//
19 +// Utilities for toggling `display` in print
20 +//
21 +
22 +@media print {
23 + @each $value in $displays {
24 + .d-print-#{$value} { display: $value !important; }
25 + }
26 +}
1 +// Credit: Nicolas Gallagher and SUIT CSS.
2 +
3 +.embed-responsive {
4 + position: relative;
5 + display: block;
6 + width: 100%;
7 + padding: 0;
8 + overflow: hidden;
9 +
10 + &::before {
11 + display: block;
12 + content: "";
13 + }
14 +
15 + .embed-responsive-item,
16 + iframe,
17 + embed,
18 + object,
19 + video {
20 + position: absolute;
21 + top: 0;
22 + bottom: 0;
23 + left: 0;
24 + width: 100%;
25 + height: 100%;
26 + border: 0;
27 + }
28 +}
29 +
30 +@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {
31 + $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);
32 + $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);
33 +
34 + .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {
35 + &::before {
36 + padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);
37 + }
38 + }
39 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +// Flex variation
4 +//
5 +// Custom styles for additional flex alignment options.
6 +
7 +@each $breakpoint in map-keys($grid-breakpoints) {
8 + @include media-breakpoint-up($breakpoint) {
9 + $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
10 +
11 + .flex#{$infix}-row { flex-direction: row !important; }
12 + .flex#{$infix}-column { flex-direction: column !important; }
13 + .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }
14 + .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }
15 +
16 + .flex#{$infix}-wrap { flex-wrap: wrap !important; }
17 + .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }
18 + .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }
19 + .flex#{$infix}-fill { flex: 1 1 auto !important; }
20 + .flex#{$infix}-grow-0 { flex-grow: 0 !important; }
21 + .flex#{$infix}-grow-1 { flex-grow: 1 !important; }
22 + .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }
23 + .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }
24 +
25 + .justify-content#{$infix}-start { justify-content: flex-start !important; }
26 + .justify-content#{$infix}-end { justify-content: flex-end !important; }
27 + .justify-content#{$infix}-center { justify-content: center !important; }
28 + .justify-content#{$infix}-between { justify-content: space-between !important; }
29 + .justify-content#{$infix}-around { justify-content: space-around !important; }
30 +
31 + .align-items#{$infix}-start { align-items: flex-start !important; }
32 + .align-items#{$infix}-end { align-items: flex-end !important; }
33 + .align-items#{$infix}-center { align-items: center !important; }
34 + .align-items#{$infix}-baseline { align-items: baseline !important; }
35 + .align-items#{$infix}-stretch { align-items: stretch !important; }
36 +
37 + .align-content#{$infix}-start { align-content: flex-start !important; }
38 + .align-content#{$infix}-end { align-content: flex-end !important; }
39 + .align-content#{$infix}-center { align-content: center !important; }
40 + .align-content#{$infix}-between { align-content: space-between !important; }
41 + .align-content#{$infix}-around { align-content: space-around !important; }
42 + .align-content#{$infix}-stretch { align-content: stretch !important; }
43 +
44 + .align-self#{$infix}-auto { align-self: auto !important; }
45 + .align-self#{$infix}-start { align-self: flex-start !important; }
46 + .align-self#{$infix}-end { align-self: flex-end !important; }
47 + .align-self#{$infix}-center { align-self: center !important; }
48 + .align-self#{$infix}-baseline { align-self: baseline !important; }
49 + .align-self#{$infix}-stretch { align-self: stretch !important; }
50 + }
51 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +@each $breakpoint in map-keys($grid-breakpoints) {
4 + @include media-breakpoint-up($breakpoint) {
5 + $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
6 +
7 + .float#{$infix}-left { float: left !important; }
8 + .float#{$infix}-right { float: right !important; }
9 + .float#{$infix}-none { float: none !important; }
10 + }
11 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +@each $value in $overflows {
4 + .overflow-#{$value} { overflow: $value !important; }
5 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +// Common values
4 +@each $position in $positions {
5 + .position-#{$position} { position: $position !important; }
6 +}
7 +
8 +// Shorthand
9 +
10 +.fixed-top {
11 + position: fixed;
12 + top: 0;
13 + right: 0;
14 + left: 0;
15 + z-index: $zindex-fixed;
16 +}
17 +
18 +.fixed-bottom {
19 + position: fixed;
20 + right: 0;
21 + bottom: 0;
22 + left: 0;
23 + z-index: $zindex-fixed;
24 +}
25 +
26 +.sticky-top {
27 + @supports (position: sticky) {
28 + position: sticky;
29 + top: 0;
30 + z-index: $zindex-sticky;
31 + }
32 +}
1 +//
2 +// Screenreaders
3 +//
4 +
5 +.sr-only {
6 + @include sr-only();
7 +}
8 +
9 +.sr-only-focusable {
10 + @include sr-only-focusable();
11 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +.shadow-sm { box-shadow: $box-shadow-sm !important; }
4 +.shadow { box-shadow: $box-shadow !important; }
5 +.shadow-lg { box-shadow: $box-shadow-lg !important; }
6 +.shadow-none { box-shadow: none !important; }
1 +// stylelint-disable declaration-no-important
2 +
3 +// Width and height
4 +
5 +@each $prop, $abbrev in (width: w, height: h) {
6 + @each $size, $length in $sizes {
7 + .#{$abbrev}-#{$size} { #{$prop}: $length !important; }
8 + }
9 +}
10 +
11 +.mw-100 { max-width: 100% !important; }
12 +.mh-100 { max-height: 100% !important; }
13 +
14 +// Viewport additional helpers
15 +
16 +.min-vw-100 { min-width: 100vw !important; }
17 +.min-vh-100 { min-height: 100vh !important; }
18 +
19 +.vw-100 { width: 100vw !important; }
20 +.vh-100 { height: 100vh !important; }
1 +// stylelint-disable declaration-no-important
2 +
3 +// Margin and Padding
4 +
5 +@each $breakpoint in map-keys($grid-breakpoints) {
6 + @include media-breakpoint-up($breakpoint) {
7 + $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
8 +
9 + @each $prop, $abbrev in (margin: m, padding: p) {
10 + @each $size, $length in $spacers {
11 + .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
12 + .#{$abbrev}t#{$infix}-#{$size},
13 + .#{$abbrev}y#{$infix}-#{$size} {
14 + #{$prop}-top: $length !important;
15 + }
16 + .#{$abbrev}r#{$infix}-#{$size},
17 + .#{$abbrev}x#{$infix}-#{$size} {
18 + #{$prop}-right: $length !important;
19 + }
20 + .#{$abbrev}b#{$infix}-#{$size},
21 + .#{$abbrev}y#{$infix}-#{$size} {
22 + #{$prop}-bottom: $length !important;
23 + }
24 + .#{$abbrev}l#{$infix}-#{$size},
25 + .#{$abbrev}x#{$infix}-#{$size} {
26 + #{$prop}-left: $length !important;
27 + }
28 + }
29 + }
30 +
31 + // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
32 + @each $size, $length in $spacers {
33 + @if $size != 0 {
34 + .m#{$infix}-n#{$size} { margin: -$length !important; }
35 + .mt#{$infix}-n#{$size},
36 + .my#{$infix}-n#{$size} {
37 + margin-top: -$length !important;
38 + }
39 + .mr#{$infix}-n#{$size},
40 + .mx#{$infix}-n#{$size} {
41 + margin-right: -$length !important;
42 + }
43 + .mb#{$infix}-n#{$size},
44 + .my#{$infix}-n#{$size} {
45 + margin-bottom: -$length !important;
46 + }
47 + .ml#{$infix}-n#{$size},
48 + .mx#{$infix}-n#{$size} {
49 + margin-left: -$length !important;
50 + }
51 + }
52 + }
53 +
54 + // Some special margin utils
55 + .m#{$infix}-auto { margin: auto !important; }
56 + .mt#{$infix}-auto,
57 + .my#{$infix}-auto {
58 + margin-top: auto !important;
59 + }
60 + .mr#{$infix}-auto,
61 + .mx#{$infix}-auto {
62 + margin-right: auto !important;
63 + }
64 + .mb#{$infix}-auto,
65 + .my#{$infix}-auto {
66 + margin-bottom: auto !important;
67 + }
68 + .ml#{$infix}-auto,
69 + .mx#{$infix}-auto {
70 + margin-left: auto !important;
71 + }
72 + }
73 +}
1 +//
2 +// Stretched link
3 +//
4 +
5 +.stretched-link {
6 + &::after {
7 + position: absolute;
8 + top: 0;
9 + right: 0;
10 + bottom: 0;
11 + left: 0;
12 + z-index: 1;
13 + // Just in case `pointer-events: none` is set on a parent
14 + pointer-events: auto;
15 + content: "";
16 + // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color
17 + background-color: rgba(0, 0, 0, 0);
18 + }
19 +}
1 +// stylelint-disable declaration-no-important
2 +
3 +//
4 +// Text
5 +//
6 +
7 +.text-monospace { font-family: $font-family-monospace !important; }
8 +
9 +// Alignment
10 +
11 +.text-justify { text-align: justify !important; }
12 +.text-wrap { white-space: normal !important; }
13 +.text-nowrap { white-space: nowrap !important; }
14 +.text-truncate { @include text-truncate; }
15 +
16 +// Responsive alignment
17 +
18 +@each $breakpoint in map-keys($grid-breakpoints) {
19 + @include media-breakpoint-up($breakpoint) {
20 + $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
21 +
22 + .text#{$infix}-left { text-align: left !important; }
23 + .text#{$infix}-right { text-align: right !important; }
24 + .text#{$infix}-center { text-align: center !important; }
25 + }
26 +}
27 +
28 +// Transformation
29 +
30 +.text-lowercase { text-transform: lowercase !important; }
31 +.text-uppercase { text-transform: uppercase !important; }
32 +.text-capitalize { text-transform: capitalize !important; }
33 +
34 +// Weight and italics
35 +
36 +.font-weight-light { font-weight: $font-weight-light !important; }
37 +.font-weight-lighter { font-weight: $font-weight-lighter !important; }
38 +.font-weight-normal { font-weight: $font-weight-normal !important; }
39 +.font-weight-bold { font-weight: $font-weight-bold !important; }
40 +.font-weight-bolder { font-weight: $font-weight-bolder !important; }
41 +.font-italic { font-style: italic !important; }
42 +
43 +// Contextual colors
44 +
45 +.text-white { color: $white !important; }
46 +
47 +@each $color, $value in $theme-colors {
48 + @include text-emphasis-variant(".text-#{$color}", $value);
49 +}
50 +
51 +.text-body { color: $body-color !important; }
52 +.text-muted { color: $text-muted !important; }
53 +
54 +.text-black-50 { color: rgba($black, .5) !important; }
55 +.text-white-50 { color: rgba($white, .5) !important; }
56 +
57 +// Misc
58 +
59 +.text-hide {
60 + @include text-hide($ignore-warning: true);
61 +}
62 +
63 +.text-decoration-none { text-decoration: none !important; }
64 +
65 +.text-break {
66 + word-break: break-word !important; // IE & < Edge 18
67 + overflow-wrap: break-word !important;
68 +}
69 +
70 +// Reset
71 +
72 +.text-reset { color: inherit !important; }
1 +// stylelint-disable declaration-no-important
2 +
3 +//
4 +// Visibility utilities
5 +//
6 +
7 +.visible {
8 + visibility: visible !important;
9 +}
10 +
11 +.invisible {
12 + visibility: hidden !important;
13 +}
1 +// stylelint-disable property-blacklist, scss/dollar-variable-default
2 +
3 +// SCSS RFS mixin
4 +//
5 +// Automated font-resizing
6 +//
7 +// See https://github.com/twbs/rfs
8 +
9 +// Configuration
10 +
11 +// Base font size
12 +$rfs-base-font-size: 1.25rem !default;
13 +$rfs-font-size-unit: rem !default;
14 +
15 +// Breakpoint at where font-size starts decreasing if screen width is smaller
16 +$rfs-breakpoint: 1200px !default;
17 +$rfs-breakpoint-unit: px !default;
18 +
19 +// Resize font-size based on screen height and width
20 +$rfs-two-dimensional: false !default;
21 +
22 +// Factor of decrease
23 +$rfs-factor: 10 !default;
24 +
25 +@if type-of($rfs-factor) != "number" or $rfs-factor <= 1 {
26 + @error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
27 +}
28 +
29 +// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
30 +$rfs-class: false !default;
31 +
32 +// 1 rem = $rfs-rem-value px
33 +$rfs-rem-value: 16 !default;
34 +
35 +// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
36 +$rfs-safari-iframe-resize-bug-fix: false !default;
37 +
38 +// Disable RFS by setting $enable-responsive-font-sizes to false
39 +$enable-responsive-font-sizes: true !default;
40 +
41 +// Cache $rfs-base-font-size unit
42 +$rfs-base-font-size-unit: unit($rfs-base-font-size);
43 +
44 +// Remove px-unit from $rfs-base-font-size for calculations
45 +@if $rfs-base-font-size-unit == "px" {
46 + $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);
47 +}
48 +@else if $rfs-base-font-size-unit == "rem" {
49 + $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);
50 +}
51 +
52 +// Cache $rfs-breakpoint unit to prevent multiple calls
53 +$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
54 +
55 +// Remove unit from $rfs-breakpoint for calculations
56 +@if $rfs-breakpoint-unit-cache == "px" {
57 + $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);
58 +}
59 +@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
60 + $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);
61 +}
62 +
63 +// Responsive font-size mixin
64 +@mixin rfs($fs, $important: false) {
65 + // Cache $fs unit
66 + $fs-unit: if(type-of($fs) == "number", unit($fs), false);
67 +
68 + // Add !important suffix if needed
69 + $rfs-suffix: if($important, " !important", "");
70 +
71 + // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
72 + @if not $fs-unit or $fs-unit != "" and $fs-unit != "px" and $fs-unit != "rem" or $fs == 0 {
73 + font-size: #{$fs}#{$rfs-suffix};
74 + }
75 + @else {
76 + // Variables for storing static and fluid rescaling
77 + $rfs-static: null;
78 + $rfs-fluid: null;
79 +
80 + // Remove px-unit from $fs for calculations
81 + @if $fs-unit == "px" {
82 + $fs: $fs / ($fs * 0 + 1);
83 + }
84 + @else if $fs-unit == "rem" {
85 + $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);
86 + }
87 +
88 + // Set default font-size
89 + @if $rfs-font-size-unit == rem {
90 + $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
91 + }
92 + @else if $rfs-font-size-unit == px {
93 + $rfs-static: #{$fs}px#{$rfs-suffix};
94 + }
95 + @else {
96 + @error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
97 + }
98 +
99 + // Only add media query if font-size is bigger as the minimum font-size
100 + // If $rfs-factor == 1, no rescaling will take place
101 + @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
102 + $min-width: null;
103 + $variable-unit: null;
104 +
105 + // Calculate minimum font-size for given font-size
106 + $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
107 +
108 + // Calculate difference between given font-size and minimum font-size for given font-size
109 + $fs-diff: $fs - $fs-min;
110 +
111 + // Base font-size formatting
112 + // No need to check if the unit is valid, because we did that before
113 + $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
114 +
115 + // If two-dimensional, use smallest of screen width and height
116 + $variable-unit: if($rfs-two-dimensional, vmin, vw);
117 +
118 + // Calculate the variable width between 0 and $rfs-breakpoint
119 + $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};
120 +
121 + // Set the calculated font-size.
122 + $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
123 + }
124 +
125 + // Rendering
126 + @if $rfs-fluid == null {
127 + // Only render static font-size if no fluid font-size is available
128 + font-size: $rfs-static;
129 + }
130 + @else {
131 + $mq-value: null;
132 +
133 + // RFS breakpoint formatting
134 + @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {
135 + $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
136 + }
137 + @else if $rfs-breakpoint-unit == px {
138 + $mq-value: #{$rfs-breakpoint}px;
139 + }
140 + @else {
141 + @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
142 + }
143 +
144 + @if $rfs-class == "disable" {
145 + // Adding an extra class increases specificity,
146 + // which prevents the media query to override the font size
147 + &,
148 + .disable-responsive-font-size &,
149 + &.disable-responsive-font-size {
150 + font-size: $rfs-static;
151 + }
152 + }
153 + @else {
154 + font-size: $rfs-static;
155 + }
156 +
157 + @if $rfs-two-dimensional {
158 + @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
159 + @if $rfs-class == "enable" {
160 + .enable-responsive-font-size &,
161 + &.enable-responsive-font-size {
162 + font-size: $rfs-fluid;
163 + }
164 + }
165 + @else {
166 + font-size: $rfs-fluid;
167 + }
168 +
169 + @if $rfs-safari-iframe-resize-bug-fix {
170 + // stylelint-disable-next-line length-zero-no-unit
171 + min-width: 0vw;
172 + }
173 + }
174 + }
175 + @else {
176 + @media (max-width: #{$mq-value}) {
177 + @if $rfs-class == "enable" {
178 + .enable-responsive-font-size &,
179 + &.enable-responsive-font-size {
180 + font-size: $rfs-fluid;
181 + }
182 + }
183 + @else {
184 + font-size: $rfs-fluid;
185 + }
186 +
187 + @if $rfs-safari-iframe-resize-bug-fix {
188 + // stylelint-disable-next-line length-zero-no-unit
189 + min-width: 0vw;
190 + }
191 + }
192 + }
193 + }
194 + }
195 +}
196 +
197 +// The font-size & responsive-font-size mixin uses RFS to rescale font sizes
198 +@mixin font-size($fs, $important: false) {
199 + @include rfs($fs, $important);
200 +}
201 +
202 +@mixin responsive-font-size($fs, $important: false) {
203 + @include rfs($fs, $important);
204 +}
This diff could not be displayed because it is too large.
1 +ul{
2 + list-style: none;
3 +}
4 +.title{
5 + font-family:"Born Ready Slanted";
6 +}
7 +#grid{
8 + display:grid;
9 + grid-template-columns: 175px 900px;
10 +}
11 +#content{
12 + padding-left:40px;
13 + padding-right:40px;
14 + padding-top:20px;
15 +}
16 +#choiceul{
17 + padding-right:300px;
18 + padding-left:300px;
19 + padding-bottom:10px;
20 + display:grid;
21 + grid-template-columns: repeat(2, 1fr);
22 +}
23 +.cr{
24 + font-size:12px;
25 +}
26 +#menu_bar{
27 + padding-top:15px;
28 + padding-right:10px;
29 +}
30 +#menu{
31 + padding-left:25px;
32 +}
33 +.menu1{
34 + margin-top:14px;
35 + font:15px, bold;
36 +}
37 +.menu2{
38 + margin-top:7px;
39 + margin-left:6px;
40 + font-size:12px;
41 +}
42 +#dateForm{
43 + display:grid;
44 + grid-template-columns: 130px 23px;
45 + margin-left:6px;
46 +}
47 +#between_date_start, #between_date_end,#between_payment_date_start, #between_payment_date_end, #between_amount_date_start, #between_amount_date_end, #between_payment_date_start, #between_payment_date_end, #between_card_date_start, #between_card_date_end, #between_store_date_start, #between_store_date_end{
48 + font-size:10px;
49 + margin-top:2px;
50 + margin-right:3px;
51 +}
52 +#between_date_submit, #between_amount_date_submit, #between_payment_date_submit, #between_card_date_submit, #between_store_date_submit{
53 + font-size:8px;
54 +}
55 +
56 +#numberForm{
57 + display:grid;
58 + grid-template-columns: 100px 1fr 1fr 1fr;
59 + margin-left:6px;
60 +}
61 +#number{
62 + font-size:10px;
63 + margin-top:2px;
64 + margin-right:3px;
65 +}
66 +#number_push, #number_pop, #number_submit{
67 + font-size:8px;
68 +}
69 +#keyword4_list{
70 + font-size:10px;
71 +}
72 +.sort, .filterlabel{
73 + font-size:12px;
74 + list-style: none;
75 +}
76 +#myList{
77 + padding-right:200px;
78 + padding-left:200px;
79 + padding-bottom:10px;
80 + display:grid;
81 + grid-template-columns: 1fr;
82 +}
83 +#myList_in{
84 + display:grid;
85 + grid-template-columns: repeat(4,1fr);
86 +}
87 +.search{
88 + margin-right:20px;
89 + margin-bottom:10px;
90 +}
91 +ol li{
92 + list-style: none;
93 + list-style-position:inside;
94 + border-top:1px solid gray;
95 + padding:10px;
96 + margin:5px;
97 +}
98 +#listrow_number, #listrow_date, #listrow_body, #listrow_keyword, #listrow_bname, #listrow_price, #listrow_sname, #listrow_payment{
99 + margin:5px;
100 + font-size:14px;
101 +}
102 +#m2{
103 + display:grid;
104 + grid-template-columns: 1fr 1fr;
105 +}
...\ No newline at end of file ...\ No newline at end of file
1 +table.dataTable {
2 + clear: both;
3 + margin-top: 6px !important;
4 + margin-bottom: 6px !important;
5 + max-width: none !important;
6 + border-collapse: separate !important;
7 + border-spacing: 0;
8 +}
9 +table.dataTable td,
10 +table.dataTable th {
11 + -webkit-box-sizing: content-box;
12 + box-sizing: content-box;
13 +}
14 +table.dataTable td.dataTables_empty,
15 +table.dataTable th.dataTables_empty {
16 + text-align: center;
17 +}
18 +table.dataTable.nowrap th,
19 +table.dataTable.nowrap td {
20 + white-space: nowrap;
21 +}
22 +
23 +div.dataTables_wrapper div.dataTables_length label {
24 + font-weight: normal;
25 + text-align: left;
26 + white-space: nowrap;
27 +}
28 +div.dataTables_wrapper div.dataTables_length select {
29 + width: auto;
30 + display: inline-block;
31 +}
32 +div.dataTables_wrapper div.dataTables_filter {
33 + text-align: right;
34 +}
35 +div.dataTables_wrapper div.dataTables_filter label {
36 + font-weight: normal;
37 + white-space: nowrap;
38 + text-align: left;
39 +}
40 +div.dataTables_wrapper div.dataTables_filter input {
41 + margin-left: 0.5em;
42 + display: inline-block;
43 + width: auto;
44 +}
45 +div.dataTables_wrapper div.dataTables_info {
46 + padding-top: 0.85em;
47 + white-space: nowrap;
48 +}
49 +div.dataTables_wrapper div.dataTables_paginate {
50 + margin: 0;
51 + white-space: nowrap;
52 + text-align: right;
53 +}
54 +div.dataTables_wrapper div.dataTables_paginate ul.pagination {
55 + margin: 2px 0;
56 + white-space: nowrap;
57 + justify-content: flex-end;
58 +}
59 +div.dataTables_wrapper div.dataTables_processing {
60 + position: absolute;
61 + top: 50%;
62 + left: 50%;
63 + width: 200px;
64 + margin-left: -100px;
65 + margin-top: -26px;
66 + text-align: center;
67 + padding: 1em 0;
68 +}
69 +
70 +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
71 +table.dataTable thead > tr > td.sorting_asc,
72 +table.dataTable thead > tr > td.sorting_desc,
73 +table.dataTable thead > tr > td.sorting {
74 + padding-right: 30px;
75 +}
76 +table.dataTable thead > tr > th:active,
77 +table.dataTable thead > tr > td:active {
78 + outline: none;
79 +}
80 +table.dataTable thead .sorting,
81 +table.dataTable thead .sorting_asc,
82 +table.dataTable thead .sorting_desc,
83 +table.dataTable thead .sorting_asc_disabled,
84 +table.dataTable thead .sorting_desc_disabled {
85 + cursor: pointer;
86 + position: relative;
87 +}
88 +table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
89 +table.dataTable thead .sorting_asc:before,
90 +table.dataTable thead .sorting_asc:after,
91 +table.dataTable thead .sorting_desc:before,
92 +table.dataTable thead .sorting_desc:after,
93 +table.dataTable thead .sorting_asc_disabled:before,
94 +table.dataTable thead .sorting_asc_disabled:after,
95 +table.dataTable thead .sorting_desc_disabled:before,
96 +table.dataTable thead .sorting_desc_disabled:after {
97 + position: absolute;
98 + bottom: 0.9em;
99 + display: block;
100 + opacity: 0.3;
101 +}
102 +table.dataTable thead .sorting:before,
103 +table.dataTable thead .sorting_asc:before,
104 +table.dataTable thead .sorting_desc:before,
105 +table.dataTable thead .sorting_asc_disabled:before,
106 +table.dataTable thead .sorting_desc_disabled:before {
107 + right: 1em;
108 + content: "\2191";
109 +}
110 +table.dataTable thead .sorting:after,
111 +table.dataTable thead .sorting_asc:after,
112 +table.dataTable thead .sorting_desc:after,
113 +table.dataTable thead .sorting_asc_disabled:after,
114 +table.dataTable thead .sorting_desc_disabled:after {
115 + right: 0.5em;
116 + content: "\2193";
117 +}
118 +table.dataTable thead .sorting_asc:before,
119 +table.dataTable thead .sorting_desc:after {
120 + opacity: 1;
121 +}
122 +table.dataTable thead .sorting_asc_disabled:before,
123 +table.dataTable thead .sorting_desc_disabled:after {
124 + opacity: 0;
125 +}
126 +
127 +div.dataTables_scrollHead table.dataTable {
128 + margin-bottom: 0 !important;
129 +}
130 +
131 +div.dataTables_scrollBody table {
132 + border-top: none;
133 + margin-top: 0 !important;
134 + margin-bottom: 0 !important;
135 +}
136 +div.dataTables_scrollBody table thead .sorting:before,
137 +div.dataTables_scrollBody table thead .sorting_asc:before,
138 +div.dataTables_scrollBody table thead .sorting_desc:before,
139 +div.dataTables_scrollBody table thead .sorting:after,
140 +div.dataTables_scrollBody table thead .sorting_asc:after,
141 +div.dataTables_scrollBody table thead .sorting_desc:after {
142 + display: none;
143 +}
144 +div.dataTables_scrollBody table tbody tr:first-child th,
145 +div.dataTables_scrollBody table tbody tr:first-child td {
146 + border-top: none;
147 +}
148 +
149 +div.dataTables_scrollFoot > .dataTables_scrollFootInner {
150 + box-sizing: content-box;
151 +}
152 +div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
153 + margin-top: 0 !important;
154 + border-top: none;
155 +}
156 +
157 +@media screen and (max-width: 767px) {
158 + div.dataTables_wrapper div.dataTables_length,
159 + div.dataTables_wrapper div.dataTables_filter,
160 + div.dataTables_wrapper div.dataTables_info,
161 + div.dataTables_wrapper div.dataTables_paginate {
162 + text-align: center;
163 + }
164 +}
165 +table.dataTable.table-sm > thead > tr > th {
166 + padding-right: 20px;
167 +}
168 +table.dataTable.table-sm .sorting:before,
169 +table.dataTable.table-sm .sorting_asc:before,
170 +table.dataTable.table-sm .sorting_desc:before {
171 + top: 5px;
172 + right: 0.85em;
173 +}
174 +table.dataTable.table-sm .sorting:after,
175 +table.dataTable.table-sm .sorting_asc:after,
176 +table.dataTable.table-sm .sorting_desc:after {
177 + top: 5px;
178 +}
179 +
180 +table.table-bordered.dataTable th,
181 +table.table-bordered.dataTable td {
182 + border-left-width: 0;
183 +}
184 +table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
185 +table.table-bordered.dataTable td:last-child,
186 +table.table-bordered.dataTable td:last-child {
187 + border-right-width: 0;
188 +}
189 +table.table-bordered.dataTable tbody th,
190 +table.table-bordered.dataTable tbody td {
191 + border-bottom-width: 0;
192 +}
193 +
194 +div.dataTables_scrollHead table.table-bordered {
195 + border-bottom-width: 0;
196 +}
197 +
198 +div.table-responsive > div.dataTables_wrapper > div.row {
199 + margin: 0;
200 +}
201 +div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
202 + padding-left: 0;
203 +}
204 +div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
205 + padding-right: 0;
206 +}
1 +/*! DataTables Bootstrap 4 integration
2 + * ©2011-2017 SpryMedia Ltd - datatables.net/license
3 + */
4 +
5 +/**
6 + * DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
7 + * DataTables 1.10 or newer.
8 + *
9 + * This file sets the defaults and adds options to DataTables to style its
10 + * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
11 + * for further information.
12 + */
13 +(function( factory ){
14 + if ( typeof define === 'function' && define.amd ) {
15 + // AMD
16 + define( ['jquery', 'datatables.net'], function ( $ ) {
17 + return factory( $, window, document );
18 + } );
19 + }
20 + else if ( typeof exports === 'object' ) {
21 + // CommonJS
22 + module.exports = function (root, $) {
23 + if ( ! root ) {
24 + root = window;
25 + }
26 +
27 + if ( ! $ || ! $.fn.dataTable ) {
28 + // Require DataTables, which attaches to jQuery, including
29 + // jQuery if needed and have a $ property so we can access the
30 + // jQuery object that is used
31 + $ = require('datatables.net')(root, $).$;
32 + }
33 +
34 + return factory( $, root, root.document );
35 + };
36 + }
37 + else {
38 + // Browser
39 + factory( jQuery, window, document );
40 + }
41 +}(function( $, window, document, undefined ) {
42 +'use strict';
43 +var DataTable = $.fn.dataTable;
44 +
45 +
46 +/* Set the defaults for DataTables initialisation */
47 +$.extend( true, DataTable.defaults, {
48 + dom:
49 + "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
50 + "<'row'<'col-sm-12'tr>>" +
51 + "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
52 + renderer: 'bootstrap'
53 +} );
54 +
55 +
56 +/* Default class modification */
57 +$.extend( DataTable.ext.classes, {
58 + sWrapper: "dataTables_wrapper dt-bootstrap4",
59 + sFilterInput: "form-control form-control-sm",
60 + sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
61 + sProcessing: "dataTables_processing card",
62 + sPageButton: "paginate_button page-item"
63 +} );
64 +
65 +
66 +/* Bootstrap paging button renderer */
67 +DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
68 + var api = new DataTable.Api( settings );
69 + var classes = settings.oClasses;
70 + var lang = settings.oLanguage.oPaginate;
71 + var aria = settings.oLanguage.oAria.paginate || {};
72 + var btnDisplay, btnClass, counter=0;
73 +
74 + var attach = function( container, buttons ) {
75 + var i, ien, node, button;
76 + var clickHandler = function ( e ) {
77 + e.preventDefault();
78 + if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
79 + api.page( e.data.action ).draw( 'page' );
80 + }
81 + };
82 +
83 + for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
84 + button = buttons[i];
85 +
86 + if ( $.isArray( button ) ) {
87 + attach( container, button );
88 + }
89 + else {
90 + btnDisplay = '';
91 + btnClass = '';
92 +
93 + switch ( button ) {
94 + case 'ellipsis':
95 + btnDisplay = '&#x2026;';
96 + btnClass = 'disabled';
97 + break;
98 +
99 + case 'first':
100 + btnDisplay = lang.sFirst;
101 + btnClass = button + (page > 0 ?
102 + '' : ' disabled');
103 + break;
104 +
105 + case 'previous':
106 + btnDisplay = lang.sPrevious;
107 + btnClass = button + (page > 0 ?
108 + '' : ' disabled');
109 + break;
110 +
111 + case 'next':
112 + btnDisplay = lang.sNext;
113 + btnClass = button + (page < pages-1 ?
114 + '' : ' disabled');
115 + break;
116 +
117 + case 'last':
118 + btnDisplay = lang.sLast;
119 + btnClass = button + (page < pages-1 ?
120 + '' : ' disabled');
121 + break;
122 +
123 + default:
124 + btnDisplay = button + 1;
125 + btnClass = page === button ?
126 + 'active' : '';
127 + break;
128 + }
129 +
130 + if ( btnDisplay ) {
131 + node = $('<li>', {
132 + 'class': classes.sPageButton+' '+btnClass,
133 + 'id': idx === 0 && typeof button === 'string' ?
134 + settings.sTableId +'_'+ button :
135 + null
136 + } )
137 + .append( $('<a>', {
138 + 'href': '#',
139 + 'aria-controls': settings.sTableId,
140 + 'aria-label': aria[ button ],
141 + 'data-dt-idx': counter,
142 + 'tabindex': settings.iTabIndex,
143 + 'class': 'page-link'
144 + } )
145 + .html( btnDisplay )
146 + )
147 + .appendTo( container );
148 +
149 + settings.oApi._fnBindAction(
150 + node, {action: button}, clickHandler
151 + );
152 +
153 + counter++;
154 + }
155 + }
156 + }
157 + };
158 +
159 + // IE9 throws an 'unknown error' if document.activeElement is used
160 + // inside an iframe or frame.
161 + var activeEl;
162 +
163 + try {
164 + // Because this approach is destroying and recreating the paging
165 + // elements, focus is lost on the select button which is bad for
166 + // accessibility. So we want to restore focus once the draw has
167 + // completed
168 + activeEl = $(host).find(document.activeElement).data('dt-idx');
169 + }
170 + catch (e) {}
171 +
172 + attach(
173 + $(host).empty().html('<ul class="pagination"/>').children('ul'),
174 + buttons
175 + );
176 +
177 + if ( activeEl !== undefined ) {
178 + $(host).find( '[data-dt-idx='+activeEl+']' ).focus();
179 + }
180 +};
181 +
182 +
183 +return DataTable;
184 +}));
1 +table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important;border-spacing:0}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:auto;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:0.85em;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap;justify-content:flex-end}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:before,table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:before,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:0.9em;display:block;opacity:0.3}table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc_disabled:before{right:1em;content:"\2191"}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{right:0.5em;content:"\2193"}table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_desc:after{opacity:1}table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc_disabled:after{opacity:0}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:before,div.dataTables_scrollBody table thead .sorting_asc:before,div.dataTables_scrollBody table thead .sorting_desc:before,div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-sm>thead>tr>th{padding-right:20px}table.dataTable.table-sm .sorting:before,table.dataTable.table-sm .sorting_asc:before,table.dataTable.table-sm .sorting_desc:before{top:5px;right:0.85em}table.dataTable.table-sm .sorting:after,table.dataTable.table-sm .sorting_asc:after,table.dataTable.table-sm .sorting_desc:after{top:5px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}
1 +/*!
2 + DataTables Bootstrap 4 integration
3 + ©2011-2017 SpryMedia Ltd - datatables.net/license
4 +*/
5 +(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
6 +renderer:"bootstrap"});b.extend(f.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();
7 +!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};l=0;for(h=f.length;l<h;l++)if(c=f[l],b.isArray(c))q(d,c);else{g=e="";switch(c){case "ellipsis":e="&#x2026;";g="disabled";break;case "first":e=k.sFirst;g=c+(0<j?"":" disabled");break;case "previous":e=k.sPrevious;g=c+(0<j?"":" disabled");break;case "next":e=k.sNext;g=c+(j<n-1?"":" disabled");break;case "last":e=k.sLast;g=c+(j<n-1?"":" disabled");break;default:e=c+1,g=j===c?"active":""}e&&(i=b("<li>",
8 +{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("<a>",{href:"#","aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex,"class":"page-link"}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('<ul class="pagination"/>').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f});
This diff could not be displayed because it is too large.
1 +/*!
2 + DataTables 1.10.19
3 + ©2008-2018 SpryMedia Ltd - datatables.net/license
4 +*/
5 +(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Z(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
6 +d[c]=e,"o"===b[1]&&Z(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Z(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=n.defaults.oLanguage,c=b.sDecimal;c&&Da(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&(d&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(d&&"Loading..."===b.sLoadingRecords)&&F(a,
7 +a,"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Da(a)}}function fb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
8 +"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(n.models.oSearch,a[b])}function gb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function hb(a){if(!n.__browser){var b={};n.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,
9 +overflow:"hidden"}).append(h("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,n.__browser);a.oScroll.iBarWidth=n.__browser.barWidth}
10 +function ib(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ea(a,b){var c=n.defaults.column,d=a.aoColumns.length,c=h.extend({},n.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},n.models.oSearch,c[d]);ka(a,d,h(b).data())}function ka(a,b,c){var b=a.aoColumns[b],
11 +d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(gb(c),J(n.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=S(g),i=b.mRender?
12 +S(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return N(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,
13 +b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function $(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Fa(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&la(a);r(a,null,"column-sizing",[a])}function aa(a,b){var c=ma(a,"bVisible");return"number"===
14 +typeof c[b]?c[b]:null}function ba(a,b){var c=ma(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function V(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function ma(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ga(a){var b=a.aoColumns,c=a.aoData,d=n.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<
15 +j;g++){i=0;for(h=c.length;i<h;i++){t[i]===k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function jb(a,b,c,d){var e,f,g,j,i,m,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){m=b[e];var q=m.targets!==k?m.targets:m.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ea(a);d(q[f],m)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],m);else if("string"===
16 +typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,m)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function O(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},n.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ha(a,e,c,d);return e}function na(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,
17 +e){c=Ia(a,e);return O(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function kb(a,
18 +b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function Ja(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function S(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=S(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||
19 +-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=Ja(f);for(var i=0,m=j.length;i<m;i++){f=j[i].match(ca);g=j[i].match(W);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(m=a.length;i<m;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(W,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}
20 +function N(a){if(h.isPlainObject(a))return N(a._);if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ja(e),f;f=e[e.length-1];for(var g,j,i=0,m=e.length-1;i<m;i++){g=e[i].match(ca);j=e[i].match(W);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(m=d.length;j<m;j++)f={},b(f,d[j],g),
21 +a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(W,""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(W))a[f.replace(W,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ka(a){return D(a.aoData,"_aData")}function oa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function pa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,
22 +1)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ia(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;La(a,e)}}function Ia(a,b,c,d){var e=[],f=b.firstChild,g,
23 +j,i=0,m,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");-1!==c&&(c=a.substring(c+1),N(a)(d,b.getAttribute(c)))}},G=function(a){if(c===k||c===i)j=l[i],m=h.trim(a.innerHTML),j&&j._bAttrSrc?(N(j.mData._)(d,m),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=N(j.mData)),j._setter(d,m)):d[i]=m;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)G(f),e.push(f);f=f.nextSibling}else{e=b.anCells;
24 +f=0;for(g=e.length;f<g;f++)G(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&N(a.rowId)(d,b);return{data:d,cells:e}}function Ha(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,m,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;La(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){m=a.aoColumns[l];i=c?d[l]:H.createElement(m.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||m.mRender||m.mData!==l)&&(!h.isPlainObject(m.mData)||m.mData._!==l+".display"))i.innerHTML=
25 +B(a,b,l,"display");m.sClass&&(i.className+=" "+m.sClass);m.bVisible&&!c?j.appendChild(i):!m.bVisible&&c&&i.parentNode.removeChild(i);m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b,g])}e.nTr.setAttribute("role","row")}function La(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));
26 +d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function lb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===h("th, td",g).length,m=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Ma(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Na(a,"header")(a,d,
27 +f,m);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(m.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(m.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,m;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=
28 +0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(m=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+m]!==k&&g[d][f].cell==g[d][f+m].cell;){for(c=0;c<i;c++)j[d+c][f+m]=1;m++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",m)}}}}function P(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=
29 +d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!mb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:m;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ha(a,l);var t=q.nTr;if(0!==e){var G=d[c%e];q._sRowStripe!=G&&(h(t).removeClass(q._sRowStripe).addClass(G),
30 +q._sRowStripe=G)}r(a,"aoRowCallback",null,[t,q._aData,c,j,l]);b.push(t);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:V(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ka(a),g,m,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ka(a),g,m,i]);d=h(a.nTBody);d.children().detach();
31 +d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&nb(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;P(a);a._drawHold=!1}function ob(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=
32 +a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,m,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];m=f[k+1];if("'"==m||'"'==m){l="";for(q=2;f[k+q]!=m;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(m=l.split("."),i.id=m[0].substr(1,m[0].length-1),i.className=m[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=pb(a);else if("f"==j&&
33 +d.bFilter)g=qb(a);else if("r"==j&&d.bProcessing)g=rb(a);else if("t"==j)g=sb(a);else if("i"==j&&d.bInfo)g=tb(a);else if("p"==j&&d.bPaginate)g=ub(a);else if(0!==n.ext.feature.length){i=n.ext.feature;q=0;for(m=i.length;q<m;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,m,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<
34 +i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;m=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][m+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||
35 +!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var m="function"===typeof f?f(b,a):f,b="function"===typeof f&&m?m:h.extend(!0,b,m);delete g.data}m={data:b,success:function(b){var c=
36 +b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(m,{url:g||a.sAjaxSource})):
37 +"function"===typeof g?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(m,g)),g.data=f)}function mb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,!0),sa(a,vb(a),function(b){wb(a,b)}),!1):!0}function vb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,m,l,k=X(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",
38 +i);var G={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)m=b[g],l=f[g],i="function"==typeof m.mData?"function":m.mData,G.columns.push({data:i,name:m.sName,searchable:m.bSearchable,orderable:m.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,m.bSearchable)),d.bSort&&t("bSortable_"+g,m.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",
39 +e.bRegex));d.bSort&&(h.each(k,function(a,b){G.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+a,b.dir)}),t("iSortingCols",k.length));b=n.ext.legacy.ajax;return null===b?a.sAjaxSource?j:G:b?j:G}function wb(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}oa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,
40 +10);d=0;for(e=c.length;d<e;d++)O(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;P(a);a._bInitComplete||ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?S(c)(b):b}function qb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",
41 +g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,P(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Oa(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",
42 +c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ga(a);if("ssp"!=y(a)){xb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)yb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,
43 +e[b].bSmart,e[b].bCaseInsensitive);zb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function zb(a){for(var b=n.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,m=c.length;i<m;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function yb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Pa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function xb(a,b,c,d,e,f){var d=Pa(b,
44 +d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==n.ext.search.length&&(c=!0);j=Ab(a);if(0>=b.length)a.aiDisplay=g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Pa(a,b,c,d){a=b?a:Qa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',
45 +"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function Ab(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=n.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);
46 +h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function Bb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Cb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function tb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Db,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",
47 +b+"_info"));return d[0]}function Db(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Eb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Eb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,
48 +c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){ob(a);lb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Fa(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);T(a);e=
49 +y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)O(a,f[b]);a.iInitDisplayStart=d;T(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ha(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&$(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Ra(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Sa(a);r(a,null,"length",[a,c])}function pb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=
50 +e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ra(a,h(this).val());P(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===
51 +c&&h("select",i).val(d)});return i[0]}function ub(a){var b=a.sPaginationType,c=n.ext.pager[b],d="function"===typeof c,e=function(a){P(a)},b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Na(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,
52 +e)},sName:"pagination"}));return b}function Ta(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&P(a));return b}function rb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}
53 +function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");r(a,null,"processing",[a,b])}function sb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),m=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",
54 +position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
55 +{"class":f.sScrollFootInner}).append(m.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:la,sName:"scrolling"});return i[0]}function la(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,
56 +f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,m=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),n=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),Q,L,R,w,Ua=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==
57 +L&&a.scrollBarVis!==k)a.scrollBarVis=L,$(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();u&&(R=u.clone().prependTo(p),Q=u.find("tr"),R=R.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=aa(a,b);c.style.width=a.aoColumns[B].sWidth});u&&I(function(a){a.style.width=""},R);f=p.outerWidth();if(""===c){r.width="100%";if(U&&(p.find("tbody").height()>j.offsetHeight||
58 +"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=v(d),f=p.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Ua.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ua[b]},o);h(L).height(0);u&&(I(C,R),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},R),I(function(a,b){a.style.width=y[b]},Q),h(R).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+z[b]+"</div>";a.childNodes[0].style.height=
59 +"0";a.childNodes[0].style.overflow="hidden";a.style.width=Ua[b]},L);u&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+A[b]+"</div>";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=y[b]},R);if(p.outerWidth()<f){Q=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(Q-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else Q="100%";q.width=v(Q);
60 +g.width=v(Q);u&&(a.nScrollFoot.style.width=v(Q));!e&&U&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();m[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(n[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,
61 +f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Fa(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=ma(a,"bVisible"),m=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,n,o,p=a.oBrowser,d=p.bScrollOversize;(n=b.style.width)&&-1!==n.indexOf("%")&&(l=n);for(n=0;n<i.length;n++)o=c[i[n]],null!==o.sWidth&&(o.sWidth=Fb(o.sWidthOrig,k),t=!0);if(d||
62 +!t&&!f&&!e&&j==V(a)&&j==m.length)for(n=0;n<j;n++)i=aa(a,n),null!==i&&(c[i].sWidth=v(m.eq(n).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");m=ra(a,j.find("thead")[0]);for(n=0;n<i.length;n++)o=c[i[n]],m[n].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):
63 +"",o.sWidthOrig&&f&&h(m[n]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(n=0;n<i.length;n++)t=i[n],o=c[t],h(Gb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):
64 +l&&j.width(l);for(n=e=0;n<i.length;n++)k=h(m[n]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(m[n].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[n]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Oa(function(){$(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Fb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,
65 +b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function X(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var m=[];f=function(a){a.length&&
66 +!h.isArray(a[0])?m.push(a):h.merge(m,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<m.length;a++){i=m[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||"string",m[a]._idx===k&&(m[a]._idx=h.inArray(m[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:m[a][1],index:m[a]._idx,type:j,formatter:n.ext.type.order[j+"-pre"]})}return d}function nb(a){var b,c,d=[],e=n.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ga(a);h=X(a);b=0;for(c=h.length;b<
67 +c;b++)j=h[b],j.formatter&&g++,Ib(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,n=f[b]._aSortData;for(g=0;g<i;g++)if(j=h[g],c=k[j.col],e=n[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,n=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=n[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],
68 +c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=X(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Va(a,
69 +b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==
70 +typeof d&&d(a)}function Ma(a,b,c,d){var e=a.aoColumns[c];Wa(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Va(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Va(a,c,b.shiftKey,d))})}function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=X(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+
71 +(2>e?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=n.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=n.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Bb(a.oPreviousSearch),
72 +columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Bb(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function Kb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&
73 +(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==k&&h.extend(a.oPreviousSearch,Cb(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Cb(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=
74 +a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=n.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=n.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==
75 +typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Xa(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Wa(a,b,c){h(a).on("click.DT",b,function(b){h(a).blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",
76 +function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Sa(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Na(a,b){var c=a.renderer,d=n.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===
77 +typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Lb.numbers_length,d=Math.floor(c/2);b<=c?c=Y(0,b):a<=d?(c=Y(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=Y(b-(c-2),b):(c=Y(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function Da(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Ya)},"html-num":function(b){return za(b,
78 +a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Ya)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Mb(a){return function(){var b=[ya(this[n.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return n.ext.internal[a].apply(this,b)}}var n=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};
79 +this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&la(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,
80 +b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():
81 +c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};
82 +this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();
83 +(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in n.ext.internal)e&&(this[e]=Mb(e));this.each(function(){var e={},g=1<d?Xa(e,a,!0):a,j=0,i,e=this.getAttribute("id"),m=!1,l=n.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{fb(l);gb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var t=n.settings,
84 +j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead&&o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();break}else{K(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+n.ext._unique++;var p=h.extend(!0,{},n.models.oSettings,{sDestroyWidth:q[0].style.width,
85 +sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();fb(g);Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=Xa(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod",
86 +"aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");
87 +z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",
88 +g.fnPreDrawCallback,"user");p.rowIdFn=S(g.rowId);hb(p);var u=p.oClasses;h.extend(u,n.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);
89 +J(l.oLanguage,a);h.extend(true,v,a);ha(p)},error:function(){ha(p)}}),m=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(ea(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=
90 +g.aoColumns;j=0;for(i=t.length;j<i;j++)Ea(p,e?e[j]:null);jb(p,g.aoColumnDefs,t,function(a,b){ka(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ka(p,a)}}})}var U=p.oFeatures,
91 +e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);U.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=X(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Jb(p)}});z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||U.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));
92 +p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);else if(b.length>0){p.nTFoot=b[0];ea(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)O(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&na(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();
93 +p.bInitialised=true;m===false&&ha(p)};g.bStateSave?(U.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Kb(p,g,e)):e()}});b=null;return this},x,s,o,u,Za={},Nb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Ya=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Ob=function(a){var b=parseInt(a,10);return!isNaN(b)&&
94 +isFinite(a)?b:null},Pb=function(a,b){Za[b]||(Za[b]=RegExp(Qa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Za[b],"."):a},$a=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Pb(a,b));c&&d&&(a=a.replace(Ya,""));return!isNaN(parseFloat(a))&&isFinite(a)},Qb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:$a(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
95 +f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},Y=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Rb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
96 +b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};n.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,W=/\(\)$/,Qa=n.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=
97 +/<.*?>/g,Oa=n.util.throttle,Sb=[],w=Array.prototype,ac=function(a){var b,c,d=n.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof
98 +s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Sb)};n.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=
99 +this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,m,l=this.context,
100 +n,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(n=Ba(l[g],u.opts));h=0;for(m=o.length;h<m;h++)f=o[h],f="cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,n),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?
101 +e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return ib(this,a,b,0,this.length,
102 +1)},reduceRight:w.reduceRight||function(a,b){return ib(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=
103 +b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Sb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var m=f.length;i<m;i++)if(f[i].name===g){i=
104 +f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,
105 +d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()",
106 +"table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?P(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});o("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Ta(b,a)})});o("page.info()",function(){if(0===
107 +this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ra(b,a)})});var Tb=function(a,b,c){if(c){var d=new s(a);
108 +d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){oa(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)O(a,c[d]);T(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,b){return this.iterator("table",function(c){Tb(c,!1===b,a)})});o("ajax.url()",function(a){var b=
109 +this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Tb(c,!1===b,a)})});var ab=function(a,b,c,d,e){var f=[],g,j,i,m,l,n;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(m=b.length;i<m;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):
110 +[b[i]];l=0;for(n=j.length;l<n;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(m=a.length;i<m;i++)f=a[i](d,e,f)}return qa(f)},bb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},cb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,
111 +d,e,f=[],g=a.aiDisplay;e=a.aiDisplayMaster;var j=b.search;c=b.order;d=b.page;if("ssp"==y(a))return"removed"===j?[]:Y(0,e.length);if("current"==d){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==c||"applied"==c)if("none"==j)f=e.slice();else if("applied"==j)f=g.slice();else{if("removed"==j){var i={};c=0;for(d=g.length;c<d;c++)i[g[c]]=null;f=h.map(e,function(a){return!i.hasOwnProperty(a)?a:null})}}else if("index"==c||"original"==c){c=0;for(d=a.aoData.length;c<d;c++)"none"==
112 +j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=b,f;return ab("row",a,function(a){var b=Ob(a),i=c.aoData;if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var c=i[b];return a(b,c._aData,c.nTr)?b:null});if(a.nodeName){var b=
113 +a._DT_RowIndex,m=a._DT_CellIndex;if(b!==k)return i[b]&&i[b].nTr===a?[b]:[];if(m)return i[m.row]&&i[m.row].nTr===a?[m.row]:[];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){b=c.aIds[a.replace(/^#/,"")];if(b!==k)return[b.idx]}b=Rb(ja(c.aoData,f,"nTr"));return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",
114 +function(a,b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){da(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",
115 +function(a,b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,m,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(m=
116 +l.length;i<m;i++)l[i]._DT_CellIndex.row=g}pa(b.aiDisplayMaster,c);pa(b.aiDisplay,c);pa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Sa(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(na(b,c)[0]):h.push(O(b,c));return h},
117 +1),c=this.rows(-1);c.pop();h.merge(c,b);return c});o("row()",function(a,b){return cb(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;var c=b[0].aoData[this[0]];c._aData=a;h.isArray(a)&&c.nTr.id&&N(b[0].rowId)(a,c.nTr.id);da(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&
118 +a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?na(b,a)[0]:O(b,a)});return this.row(b[0])});var db=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Ub=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");
119 +0<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=V(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&db(f,c)}))}}};o("row().child()",function(a,b){var c=
120 +this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)db(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=V(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);
121 +c._detailsShow&&c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Ub(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Ub(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){db(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Vb=function(a,b,
122 +c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return ab("column",e,function(a){var b=Ob(a);if(a==="")return Y(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Vb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):
123 +"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var n=h.map(g,function(a,b){return a.bVisible?b:null});return[n[n.length+b]]}return[aa(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},
124 +1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Vb,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},
125 +1)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,
126 +i,m,l;if(a!==k&&g.bVisible!==a){if(a){var n=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(m=j.length;i<m;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[n]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);b.aiDisplay.length||h(b.nTBody).find("td[colspan]").attr("colspan",V(b));xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",
127 +function(a){return this.iterator("column",function(b,c){return"visible"===a?ba(b,c):c},1)});o("columns.adjust()",function(){return this.iterator("table",function(a){$(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return aa(c,b);if("fromData"===a||"toVisible"===a)return ba(c,b)}});o("column()",function(a,b){return cb(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));
128 +h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=bb(c),f=b.aoData,g=Ba(b,e),j=Rb(ja(f,g,"anCells")),i=h([].concat.apply([],j)),l,m=b.aoColumns.length,n,o,u,s,r,v;return ab("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){n=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<m;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&n.push(r)}else n.push(r)}}return n}if(h.isPlainObject(a))return a.column!==
129 +k&&a.row!==k&&h.inArray(a.row,g)!==-1?[a]:[];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b),e=this.rows(a),f,g,j,i,m;this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(m=d[b].length;i<m;i++)f.push({row:e[b][g],column:d[b][i]})}},1);var l=this.cells(f,
130 +c);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",
131 +function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ba(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});o("cell()",function(a,b,c){return cb(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],
132 +c[0].row,c[0].column):k;kb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){Ma(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=
133 +this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,
134 +h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:
135 +null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});n.versionCheck=n.fnVersionCheck=function(a){for(var b=n.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};n.isDataTable=
136 +n.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof n.Api)return!0;h.each(n.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};n.tables=n.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(n.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};n.camelToHungarian=J;o("$()",function(a,b){var c=
137 +this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){oa(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=
138 +this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");
139 +h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),
140 +(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,n.settings);-1!==c&&n.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=S(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:
141 +a._);return a.replace("%d",c)});n.version="1.10.19";n.settings=[];n.models={};n.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};n.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};n.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,
142 +sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};n.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
143 +bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
144 +a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
145 +oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
146 +n.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Z(n.defaults);n.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
147 +Z(n.defaults.column);n.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
148 +aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
149 +iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:
150 +this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};n.ext=x={buttons:{},
151 +classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:n.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:n.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});
152 +h.extend(n.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
153 +sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
154 +sJUIHeader:"",sJUIFooter:""});var Lb=n.ext.pager;h.extend(Lb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,n.ext.renderer,{pageButton:{_:function(a,b,c,d,e,
155 +f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,n=0,o=function(b,d){var k,s,u,r,v=function(b){Ta(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{m=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":m=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":m=
156 +j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=r+1;l=e===r?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":n,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(m).appendTo(b);Wa(u,{action:r},v);n++}}}},s;try{s=h(b).find(H.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+
157 +s+"]").focus()}}});h.extend(n.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Qb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Qb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||
158 +"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(n.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Nb," ").replace(Aa,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Nb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Pb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return M(a)?
159 +"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});Da("");h.extend(!0,n.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:
160 +c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]==
161 +"asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var eb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):a};n.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return eb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
162 +a)+f+(e||"")}}},text:function(){return{display:eb,filter:eb}}};h.extend(n.ext.internal,{_fnExternApiFunc:Mb,_fnBuildAjax:sa,_fnAjaxUpdate:mb,_fnAjaxParameters:vb,_fnAjaxUpdateDraw:wb,_fnAjaxDataSrc:ta,_fnAddColumn:Ea,_fnColumnOptions:ka,_fnAdjustColumnSizing:$,_fnVisibleToColumnIndex:aa,_fnColumnIndexToVisible:ba,_fnVisbleColumns:V,_fnGetColumns:ma,_fnColumnTypes:Ga,_fnApplyColumnDefs:jb,_fnHungarianMap:Z,_fnCamelToHungarian:J,_fnLanguageCompat:Ca,_fnBrowserDetect:hb,_fnAddData:O,_fnAddTr:na,_fnNodeToDataIndex:function(a,
163 +b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:kb,_fnSplitObjNotation:Ja,_fnGetObjectDataFn:S,_fnSetObjectDataFn:N,_fnGetDataMaster:Ka,_fnClearTable:oa,_fnDeleteIndex:pa,_fnInvalidate:da,_fnGetRowElements:Ia,_fnCreateTr:Ha,_fnBuildHead:lb,_fnDrawHead:fa,_fnDraw:P,_fnReDraw:T,_fnAddOptionsHtml:ob,_fnDetectHeader:ea,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:qb,_fnFilterComplete:ga,_fnFilterCustom:zb,
164 +_fnFilterColumn:yb,_fnFilter:xb,_fnFilterCreateSearch:Pa,_fnEscapeRegex:Qa,_fnFilterData:Ab,_fnFeatureHtmlInfo:tb,_fnUpdateInfo:Db,_fnInfoMacros:Eb,_fnInitialise:ha,_fnInitComplete:ua,_fnLengthChange:Ra,_fnFeatureHtmlLength:pb,_fnFeatureHtmlPaginate:ub,_fnPageChange:Ta,_fnFeatureHtmlProcessing:rb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:sb,_fnScrollDraw:la,_fnApplyToChildren:I,_fnCalculateColumnWidths:Fa,_fnThrottle:Oa,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:v,
165 +_fnSortFlatten:X,_fnSort:nb,_fnSortAria:Jb,_fnSortListener:Va,_fnSortAttachListener:Ma,_fnSortingClasses:wa,_fnSortData:Ib,_fnSaveState:xa,_fnLoadState:Kb,_fnSettingsFromNode:ya,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Sa,_fnRenderer:Na,_fnDataSource:y,_fnRowAttributes:La,_fnExtend:Xa,_fnCalculateEnd:function(){}});h.fn.dataTable=n;n.$=h;h.fn.dataTableSettings=n.settings;h.fn.dataTableExt=n.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};
166 +h.each(n,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
1 +/*
2 + * Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery/easing
3 + *
4 + * Adds compatibility for applications that use the pre 1.2 easing names
5 + *
6 + * Copyright (c) 2007 George Smith
7 + * Licensed under the MIT License:
8 + * http://www.opensource.org/licenses/mit-license.php
9 + */
10 +
11 +(function($){
12 +$.extend( $.easing,
13 +{
14 + easeIn: function (x, t, b, c, d) {
15 + return $.easing.easeInQuad(x, t, b, c, d);
16 + },
17 + easeOut: function (x, t, b, c, d) {
18 + return $.easing.easeOutQuad(x, t, b, c, d);
19 + },
20 + easeInOut: function (x, t, b, c, d) {
21 + return $.easing.easeInOutQuad(x, t, b, c, d);
22 + },
23 + expoin: function(x, t, b, c, d) {
24 + return $.easing.easeInExpo(x, t, b, c, d);
25 + },
26 + expoout: function(x, t, b, c, d) {
27 + return $.easing.easeOutExpo(x, t, b, c, d);
28 + },
29 + expoinout: function(x, t, b, c, d) {
30 + return $.easing.easeInOutExpo(x, t, b, c, d);
31 + },
32 + bouncein: function(x, t, b, c, d) {
33 + return $.easing.easeInBounce(x, t, b, c, d);
34 + },
35 + bounceout: function(x, t, b, c, d) {
36 + return $.easing.easeOutBounce(x, t, b, c, d);
37 + },
38 + bounceinout: function(x, t, b, c, d) {
39 + return $.easing.easeInOutBounce(x, t, b, c, d);
40 + },
41 + elasin: function(x, t, b, c, d) {
42 + return $.easing.easeInElastic(x, t, b, c, d);
43 + },
44 + elasout: function(x, t, b, c, d) {
45 + return $.easing.easeOutElastic(x, t, b, c, d);
46 + },
47 + elasinout: function(x, t, b, c, d) {
48 + return $.easing.easeInOutElastic(x, t, b, c, d);
49 + },
50 + backin: function(x, t, b, c, d) {
51 + return $.easing.easeInBack(x, t, b, c, d);
52 + },
53 + backout: function(x, t, b, c, d) {
54 + return $.easing.easeOutBack(x, t, b, c, d);
55 + },
56 + backinout: function(x, t, b, c, d) {
57 + return $.easing.easeInOutBack(x, t, b, c, d);
58 + }
59 +});})(jQuery);
1 +/*
2 + * jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/
3 + * Open source under the BSD License.
4 + * Copyright © 2008 George McGinley Smith
5 + * All rights reserved.
6 + * https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
7 +*/
8 +
9 +(function (factory) {
10 + if (typeof define === "function" && define.amd) {
11 + define(['jquery'], function ($) {
12 + return factory($);
13 + });
14 + } else if (typeof module === "object" && typeof module.exports === "object") {
15 + exports = factory(require('jquery'));
16 + } else {
17 + factory(jQuery);
18 + }
19 +})(function($){
20 +
21 +// Preserve the original jQuery "swing" easing as "jswing"
22 +$.easing.jswing = $.easing.swing;
23 +
24 +var pow = Math.pow,
25 + sqrt = Math.sqrt,
26 + sin = Math.sin,
27 + cos = Math.cos,
28 + PI = Math.PI,
29 + c1 = 1.70158,
30 + c2 = c1 * 1.525,
31 + c3 = c1 + 1,
32 + c4 = ( 2 * PI ) / 3,
33 + c5 = ( 2 * PI ) / 4.5;
34 +
35 +// x is the fraction of animation progress, in the range 0..1
36 +function bounceOut(x) {
37 + var n1 = 7.5625,
38 + d1 = 2.75;
39 + if ( x < 1/d1 ) {
40 + return n1*x*x;
41 + } else if ( x < 2/d1 ) {
42 + return n1*(x-=(1.5/d1))*x + 0.75;
43 + } else if ( x < 2.5/d1 ) {
44 + return n1*(x-=(2.25/d1))*x + 0.9375;
45 + } else {
46 + return n1*(x-=(2.625/d1))*x + 0.984375;
47 + }
48 +}
49 +
50 +$.extend( $.easing,
51 +{
52 + def: 'easeOutQuad',
53 + swing: function (x) {
54 + return $.easing[$.easing.def](x);
55 + },
56 + easeInQuad: function (x) {
57 + return x * x;
58 + },
59 + easeOutQuad: function (x) {
60 + return 1 - ( 1 - x ) * ( 1 - x );
61 + },
62 + easeInOutQuad: function (x) {
63 + return x < 0.5 ?
64 + 2 * x * x :
65 + 1 - pow( -2 * x + 2, 2 ) / 2;
66 + },
67 + easeInCubic: function (x) {
68 + return x * x * x;
69 + },
70 + easeOutCubic: function (x) {
71 + return 1 - pow( 1 - x, 3 );
72 + },
73 + easeInOutCubic: function (x) {
74 + return x < 0.5 ?
75 + 4 * x * x * x :
76 + 1 - pow( -2 * x + 2, 3 ) / 2;
77 + },
78 + easeInQuart: function (x) {
79 + return x * x * x * x;
80 + },
81 + easeOutQuart: function (x) {
82 + return 1 - pow( 1 - x, 4 );
83 + },
84 + easeInOutQuart: function (x) {
85 + return x < 0.5 ?
86 + 8 * x * x * x * x :
87 + 1 - pow( -2 * x + 2, 4 ) / 2;
88 + },
89 + easeInQuint: function (x) {
90 + return x * x * x * x * x;
91 + },
92 + easeOutQuint: function (x) {
93 + return 1 - pow( 1 - x, 5 );
94 + },
95 + easeInOutQuint: function (x) {
96 + return x < 0.5 ?
97 + 16 * x * x * x * x * x :
98 + 1 - pow( -2 * x + 2, 5 ) / 2;
99 + },
100 + easeInSine: function (x) {
101 + return 1 - cos( x * PI/2 );
102 + },
103 + easeOutSine: function (x) {
104 + return sin( x * PI/2 );
105 + },
106 + easeInOutSine: function (x) {
107 + return -( cos( PI * x ) - 1 ) / 2;
108 + },
109 + easeInExpo: function (x) {
110 + return x === 0 ? 0 : pow( 2, 10 * x - 10 );
111 + },
112 + easeOutExpo: function (x) {
113 + return x === 1 ? 1 : 1 - pow( 2, -10 * x );
114 + },
115 + easeInOutExpo: function (x) {
116 + return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?
117 + pow( 2, 20 * x - 10 ) / 2 :
118 + ( 2 - pow( 2, -20 * x + 10 ) ) / 2;
119 + },
120 + easeInCirc: function (x) {
121 + return 1 - sqrt( 1 - pow( x, 2 ) );
122 + },
123 + easeOutCirc: function (x) {
124 + return sqrt( 1 - pow( x - 1, 2 ) );
125 + },
126 + easeInOutCirc: function (x) {
127 + return x < 0.5 ?
128 + ( 1 - sqrt( 1 - pow( 2 * x, 2 ) ) ) / 2 :
129 + ( sqrt( 1 - pow( -2 * x + 2, 2 ) ) + 1 ) / 2;
130 + },
131 + easeInElastic: function (x) {
132 + return x === 0 ? 0 : x === 1 ? 1 :
133 + -pow( 2, 10 * x - 10 ) * sin( ( x * 10 - 10.75 ) * c4 );
134 + },
135 + easeOutElastic: function (x) {
136 + return x === 0 ? 0 : x === 1 ? 1 :
137 + pow( 2, -10 * x ) * sin( ( x * 10 - 0.75 ) * c4 ) + 1;
138 + },
139 + easeInOutElastic: function (x) {
140 + return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?
141 + -( pow( 2, 20 * x - 10 ) * sin( ( 20 * x - 11.125 ) * c5 )) / 2 :
142 + pow( 2, -20 * x + 10 ) * sin( ( 20 * x - 11.125 ) * c5 ) / 2 + 1;
143 + },
144 + easeInBack: function (x) {
145 + return c3 * x * x * x - c1 * x * x;
146 + },
147 + easeOutBack: function (x) {
148 + return 1 + c3 * pow( x - 1, 3 ) + c1 * pow( x - 1, 2 );
149 + },
150 + easeInOutBack: function (x) {
151 + return x < 0.5 ?
152 + ( pow( 2 * x, 2 ) * ( ( c2 + 1 ) * 2 * x - c2 ) ) / 2 :
153 + ( pow( 2 * x - 2, 2 ) *( ( c2 + 1 ) * ( x * 2 - 2 ) + c2 ) + 2 ) / 2;
154 + },
155 + easeInBounce: function (x) {
156 + return 1 - bounceOut( 1 - x );
157 + },
158 + easeOutBounce: bounceOut,
159 + easeInOutBounce: function (x) {
160 + return x < 0.5 ?
161 + ( 1 - bounceOut( 1 - 2 * x ) ) / 2 :
162 + ( 1 + bounceOut( 2 * x - 1 ) ) / 2;
163 + }
164 +});
165 +
166 +});
1 +(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
1 +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
2 +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,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},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.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(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)}k.fn=k.prototype={jquery:f,constructor:k,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=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.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)},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},k.extend=k.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&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.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){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(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},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.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(d(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.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=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="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),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-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|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(m.childNodes),m.childNodes),t[m.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&&((e?e.ownerDocument||e:m)!==C&&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&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$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[k]=!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:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),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=k,!C.getElementsByName||!C.getElementsByName(k).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){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\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~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),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("!=",$)}),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===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,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]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[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){A(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}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(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(F," ")+" ").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)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&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]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&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[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,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[k]?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(B,"$1"));return s[k]?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=[S,p];if(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[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&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[k]&&(v=Ce(v)),y&&!y[k]&&(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))[k]){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(B,"$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(B," ")}),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=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(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=S+=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&&(S=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&&(S=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=k.split("").sort(D).join("")===k,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);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.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 k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.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(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.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&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(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(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(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])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.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){k.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 k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.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},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.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,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.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=k.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&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.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(k(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},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(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[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(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(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.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&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.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=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.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=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.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 ce={};function fe(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]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],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)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(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))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.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<k.inArray(o,r))i&&i.push(o);else if(l=oe(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}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(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)Ae(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=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.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),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.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)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.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<k(i,this).index(l):k.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(k.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[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,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&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.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&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(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=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],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&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.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++)Me(o[r],a[r]);else Me(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=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.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 Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(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&&(k.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 k.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&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.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 Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.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 ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(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+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[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 tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(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=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.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=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.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=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.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):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.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=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),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:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.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=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.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=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,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),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.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&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._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--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.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]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.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=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(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?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.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&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.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&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.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||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.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})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.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)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.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=k.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(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.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=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.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)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(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){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(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){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.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,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.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=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.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&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.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]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.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=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(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)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.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||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.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&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];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 _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.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 zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,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":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),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=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.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=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.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]?", "+$t+"; 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=_t(Wt,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)),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"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.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]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(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){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!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(Ut[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()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.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 k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<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 Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.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(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.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?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.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=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.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,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.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"===k.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"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.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)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.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?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.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){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.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)}}),k.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||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 +/*! jQuery v3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
2 +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(g,e){"use strict";var t=[],v=g.document,r=Object.getPrototypeOf,s=t.slice,y=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,m=n.hasOwnProperty,a=m.toString,l=a.call(Object),b={},x=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},w=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function C(e,t,n){var r,i,o=(n=n||v).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 T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",E=function(e,t){return new E.fn.init(e,t)},d=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function p(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!x(e)&&!w(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:f,constructor:E,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=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.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)},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},E.extend=E.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||x(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&&(E.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||E.isPlainObject(n)?n:{},i=!1,a[t]=E.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},E.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=m.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){C(e,{nonce:t&&t.nonce})},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},trim:function(e){return null==e?"":(e+"").replace(d,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?E.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 y.apply([],a)},guid:1,support:b}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,p,x,o,i,h,f,g,w,u,l,C,T,a,E,v,s,c,y,N="sizzle"+1*new Date,m=n.document,A=0,r=0,d=ue(),b=ue(),k=ue(),S=ue(),D=function(e,t){return e===t&&(l=!0),0},L={}.hasOwnProperty,t=[],j=t.pop,q=t.push,O=t.push,P=t.slice,H=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},I="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",R="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+R+"*("+B+")(?:"+R+"*([*^$|!~]?=)"+R+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+B+"))|)"+R+"*\\]",W=":("+B+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",$=new RegExp(R+"+","g"),F=new RegExp("^"+R+"+|((?:^|[^\\\\])(?:\\\\.)*)"+R+"+$","g"),z=new RegExp("^"+R+"*,"+R+"*"),_=new RegExp("^"+R+"*([>+~]|"+R+")"+R+"*"),U=new RegExp(R+"|>"),V=new RegExp(W),X=new RegExp("^"+B+"$"),Q={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,G=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+R+"?|("+R+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|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(){C()},ae=xe(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{O.apply(t=P.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){O={apply:t.length?function(e,t){q.apply(e,P.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,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&((e?e.ownerDocument||e:m)!==T&&C(e),e=e||T,E)){if(11!==d&&(u=Z.exec(t)))if(i=u[1]){if(9===d){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 O.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return O.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!S[t+" "]&&(!v||!v.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=N),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+be(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return O.apply(n,f.querySelectorAll(c)),n}catch(e){S(t,!0)}finally{s===N&&e.removeAttribute("id")}}}return g(t.replace(F,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[N]=!0,e}function ce(e){var t=T.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--)x.attrHandle[n[r]]=t}function de(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 pe(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 p=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==T&&9===r.nodeType&&r.documentElement&&(a=(T=r).documentElement,E=!i(T),m!==T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=J.test(T.getElementsByClassName),p.getById=ce(function(e){return a.appendChild(e).id=N,!T.getElementsByName||!T.getElementsByName(N).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(x.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}},x.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[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):p.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},x.find.CLASS=p.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(p.qsa=J.test(T.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+N+"'></a><select id='"+N+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+R+"*(?:value|"+I+")"),e.querySelectorAll("[id~="+N+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+N+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+R+"*[*^$|!~]?="),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(",.*:")})),(p.matchesSelector=J.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",W)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=J.test(a.compareDocumentPosition),y=t||J.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)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===m&&y(m,e)?-1:t===T||t.ownerDocument===m&&y(m,t)?1:u?H(u,e)-H(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===T?-1:t===T?1:i?-1:o?1:u?H(u,e)-H(u,t):0;if(i===o)return de(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?de(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&C(e),p.matchesSelector&&E&&!S[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return 0<se(t,T,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==T&&C(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==T&&C(e);var n=x.attrHandle[t.toLowerCase()],r=n&&L.call(x.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:p.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=!p.detectDuplicates,u=!p.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},(x=se.selectors={cacheLength:50,createPseudo:le,match:Q,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 Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.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}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=d[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&d(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($," ")+" ").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),b="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=b&&e.nodeName.toLowerCase(),d=!n&&!b,p=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(b?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&&d){p=(s=(r=(i=(o=(a=c)[N]||(a[N]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===A&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(p=s=0)||u.pop())if(1===a.nodeType&&++p&&a===e){i[h]=[A,s,p];break}}else if(d&&(p=s=(r=(i=(o=(a=e)[N]||(a[N]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===A&&r[1]),!1===p)while(a=++s&&a&&a[l]||(p=s=0)||u.pop())if((b?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++p&&(d&&((i=(o=a[N]||(a[N]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[A,p]),a===e))break;return(p-=v)===g||p%g==0&&0<=p/g}}},PSEUDO:function(e,o){var t,a=x.pseudos[e]||x.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[N]?a(o):1<a.length?(t=[e,e,"",o],x.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=H(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(F,"$1"));return s[N]?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 X.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===T.activeElement&&(!T.hasFocus||T.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!x.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return G.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=x.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[e]=pe(e);for(e in{submit:!0,reset:!0})x.pseudos[e]=he(e);function me(){}function be(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function xe(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,d=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=[A,d];if(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[N]||(e[N]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===A&&r[1]===d)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 Ce(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 Te(p,h,g,v,y,e){return v&&!v[N]&&(v=Te(v)),y&&!y[N]&&(y=Te(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=!p||!e&&h?c:Ce(c,s,p,n,r),d=g?y||(e?p:l||v)?[]:t:f;if(g&&g(f,d,n,r),v){i=Ce(d,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(d[u[o]]=!(f[u[o]]=a))}if(e){if(y||p){if(y){i=[],o=d.length;while(o--)(a=d[o])&&i.push(f[o]=a);y(null,d=[],i,r)}o=d.length;while(o--)(a=d[o])&&-1<(i=y?H(e,a):s[o])&&(e[i]=!(t[i]=a))}}else d=Ce(d===t?d.splice(l,d.length):d),y?y(null,t,d,r):O.apply(t,d)})}function Ee(e){for(var i,t,n,r=e.length,o=x.relative[e[0].type],a=o||x.relative[" "],s=o?1:0,u=xe(function(e){return e===i},a,!0),l=xe(function(e){return-1<H(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=x.relative[e[s].type])c=[xe(we(c),t)];else{if((t=x.filter[e[s].type].apply(null,e[s].matches))[N]){for(n=++s;n<r;n++)if(x.relative[e[n].type])break;return Te(1<s&&we(c),1<s&&be(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(F,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&be(e))}c.push(t)}return we(c)}return me.prototype=x.filters=x.pseudos,x.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=b[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=x.preFilter;while(a){for(o in n&&!(r=z.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=_.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(F," ")}),a=a.slice(n.length)),x.filter)!(r=Q[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):b(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,b,r,i=[],o=[],a=k[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[N]?i.push(a):o.push(a);(a=k(e,(v=o,m=0<(y=i).length,b=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],d=w,p=e||b&&x.find.TAG("*",i),h=A+=null==d?1:Math.random()||.1,g=p.length;for(i&&(w=t===T||t||i);l!==g&&null!=(o=p[l]);l++){if(b&&o){a=0,t||o.ownerDocument===T||(C(o),n=!E);while(s=v[a++])if(s(o,t||T,n)){r.push(o);break}i&&(A=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]=j.call(r));f=Ce(f)}O.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(A=h,w=d),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&&x.relative[o[1].type]){if(!(t=(x.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=Q.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],x.relative[s=a.type])break;if((u=x.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&&be(o)))return O.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},p.sortStable=N.split("").sort(D).join("")===N,p.detectDuplicates=!!l,C(),p.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(T.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)}),p.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(I,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(g);E.find=h,E.expr=h.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=h.uniqueSort,E.text=h.getText,E.isXMLDoc=h.isXML,E.contains=h.contains,E.escapeSelector=h.escape;var N=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},A=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=E.expr.match.needsContext;function S(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function L(e,n,r){return x(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1<i.call(n,e)!==r}):E.filter(n,e,r)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return 1<r?E.uniqueSort(n):n},filter:function(e){return this.pushStack(L(this,e||[],!1))},not:function(e){return this.pushStack(L(this,e||[],!0))},is:function(e){return!!L(this,"string"==typeof e&&k.test(e)?E(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.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 E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),D.test(r[1])&&E.isPlainObject(t))for(r in t)x(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=v.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):x(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,j=E(v);var O=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};function H(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&E(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&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(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(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return N(e,"parentNode")},parentsUntil:function(e,t,n){return N(e,"parentNode",n)},next:function(e){return H(e,"nextSibling")},prev:function(e){return H(e,"previousSibling")},nextAll:function(e){return N(e,"nextSibling")},prevAll:function(e){return N(e,"previousSibling")},nextUntil:function(e,t,n){return N(e,"nextSibling",n)},prevUntil:function(e,t,n){return N(e,"previousSibling",n)},siblings:function(e){return A((e.parentNode||{}).firstChild,e)},children:function(e){return A(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(S(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(P[r]||E.uniqueSort(n),O.test(r)&&n.reverse()),this.pushStack(n)}});var I=/[^\x20\t\r\n\f]+/g;function R(e){return e}function B(e){throw e}function M(e,t,n,r){var i;try{e&&x(i=e.promise)?i.call(e).done(t).fail(n):e&&x(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(I)||[],function(e,t){n[t]=!0}),n):E.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){E.each(e,function(e,t){x(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==T(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return E.each(arguments,function(e,t){var n;while(-1<(n=E.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<E.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},E.extend({Deferred:function(e){var o=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=x(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&x(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,x(t)?s?t.call(e,l(u,o,R,s),l(u,o,B,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,B,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){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==B&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(E.Deferred.getStackHook&&(t.stackTrace=E.Deferred.getStackHook()),g.setTimeout(t))}}return E.Deferred(function(e){o[0][3].add(l(0,e,x(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,x(t)?t:R)),o[2][3].add(l(0,e,x(n)?n:B))}).promise()},promise:function(e){return null!=e?E.extend(e,a):a}},s={};return E.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=E.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&&(M(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||x(i[t]&&i[t].then)))return o.then();while(t--)M(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){g.console&&g.console.warn&&e&&W.test(e.name)&&g.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){g.setTimeout(function(){throw e})};var $=E.Deferred();function F(){v.removeEventListener("DOMContentLoaded",F),g.removeEventListener("load",F),E.ready()}E.fn.ready=function(e){return $.then(e)["catch"](function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||$.resolveWith(v,[E])}}),E.ready.then=$.then,"complete"===v.readyState||"loading"!==v.readyState&&!v.documentElement.doScroll?g.setTimeout(E.ready):(v.addEventListener("DOMContentLoaded",F),g.addEventListener("load",F));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===T(n))for(s in i=!0,n)z(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,x(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(E(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-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(U,V)}var Q=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=E.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Q(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(I)||[]).length;while(n--)delete r[t[n]]}(void 0===t||E.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&&!E.isEmptyObject(t)}};var G=new Y,K=new Y,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").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){}K.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return K.hasData(e)||G.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return G.access(e,t,n)},_removeData:function(e,t){G.remove(e,t)}}),E.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=K.get(o),1===o.nodeType&&!G.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),ee(o,r,i[r]));G.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){K.set(this,n)}):z(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=K.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){K.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=G.get(e,t),n&&(!r||Array.isArray(n)?r=G.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return G.get(e,n)||G.access(e,n,{empty:E.Callbacks("once memory").add(function(){G.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=E.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=G.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=v.documentElement,oe=function(e){return E.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return E.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===E.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};var le={};function ce(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]=G.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=le[s])||(o=a.body.appendChild(a.createElement(s)),u=E.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),le[s]=u)))):"none"!==n&&(l[c]="none",G.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}E.fn.extend({show:function(){return ce(this,!0)},hide:function(){return ce(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?E(this).show():E(this).hide()})}});var fe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,pe=/^$|^module$|\/(?:java|ecma)script/i,he={option:[1,"<select multiple='multiple'>","</select>"],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 ge(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&S(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)G.set(e[n],"globalEval",!t||G.get(t[n],"globalEval"))}he.optgroup=he.option,he.tbody=he.tfoot=he.colgroup=he.caption=he.thead,he.th=he.td;var ye,me,be=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p<h;p++)if((o=e[p])||0===o)if("object"===T(o))E.merge(d,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=he[s]||he._default,a.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;E.merge(d,a.childNodes),(a=f.firstChild).textContent=""}else d.push(t.createTextNode(o));f.textContent="",p=0;while(o=d[p++])if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ge(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])pe.test(o.type||"")&&n.push(o)}return f}ye=v.createDocumentFragment().appendChild(v.createElement("div")),(me=v.createElement("input")).setAttribute("type","radio"),me.setAttribute("checked","checked"),me.setAttribute("name","t"),ye.appendChild(me),b.checkClone=ye.cloneNode(!0).cloneNode(!0).lastChild.checked,ye.innerHTML="<textarea>x</textarea>",b.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var we=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function Ne(){return!1}function Ae(e,t){return e===function(){try{return v.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=Ne;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(G.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=G.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),G.set(this,i,r),t=o(this,i),this[i](),r!==(n=G.get(this,i))||t?G.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(G.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===G.get(e,i)&&E.event.add(e,i,Ee)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=G.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(ie,i),n.guid||(n.guid=E.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(I)||[""]).length;while(l--)p=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=E.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=E.event.special[p]||{},c=E.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),E.event.global[p]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=G.hasData(e)&&G.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(I)||[""]).length;while(l--)if(p=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p){f=E.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;while(o--)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||E.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)E.event.remove(e,p+t[l],n,r,!0);E.isEmptyObject(u)&&G.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=E.event.fix(e),u=new Array(arguments.length),l=(G.get(this,"events")||{})[s.type]||[],c=E.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=E.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.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<E(i,this).index(l):E.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(E.Event.prototype,t,{enumerable:!0,configurable:!0,get:x(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[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return fe.test(t.type)&&t.click&&S(t,"input")&&Se(t,"click",Ee),!1},trigger:function(e){var t=this||e;return fe.test(t.type)&&t.click&&S(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return fe.test(t.type)&&t.click&&S(t,"input")&&G.get(t,"click")||S(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:Ne,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&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:Ne,isPropagationStopped:Ne,isImmediatePropagationStopped:Ne,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.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&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},E.event.addProp),E.each({focus:"focusin",blur:"focusout"},function(e,t){E.event.special[e]={setup:function(){return Se(this,e,Ae),!1},trigger:function(){return Se(this,e),!0},delegateType:t}}),E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.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,E(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=Ne),this.each(function(){E.event.remove(this,e,n,t)})}});var De=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Le=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return S(e,"table")&&S(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function Pe(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 Ie(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(G.hasData(e)&&(o=G.access(e),a=G.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)E.event.add(t,i,l[i][n]);K.hasData(e)&&(s=K.access(e),u=E.extend({},s),K.set(t,u))}}function Re(n,r,i,o){r=y.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,d=f-1,p=r[0],h=x(p);if(h||1<f&&"string"==typeof p&&!b.checkClone&&je.test(p))return n.each(function(e){var t=n.eq(e);h&&(r[0]=p.call(this,e,t.html())),Re(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=E.map(ge(e,"script"),Pe)).length;c<f;c++)u=e,c!==d&&(u=E.clone(u,!0,!0),s&&E.merge(a,ge(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,He),c=0;c<s;c++)u=a[c],pe.test(u.type||"")&&!G.access(u,"globalEval")&&E.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?E._evalUrl&&!u.noModule&&E._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):C(u.textContent.replace(qe,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(ge(r)),r.parentNode&&(n&&oe(r)&&ve(ge(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e.replace(De,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(b.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ge(c),r=0,i=(o=ge(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&fe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ge(e),a=a||ge(c),r=0,i=o.length;r<i;r++)Ie(o[r],a[r]);else Ie(e,c);return 0<(a=ge(c,"script")).length&&ve(a,!f&&ge(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(Q(n)){if(t=n[G.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[G.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return z(this,function(e){return void 0===e?E.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 Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(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&&(E.cleanData(ge(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return z(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&&!Le.test(e)&&!he[(de.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(ge(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Re(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(ge(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),We=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=g),t.getComputedStyle(e)},$e=new RegExp(re.join("|"),"i");function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||We(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=E.style(e,t)),!b.pixelBoxStyles()&&Me.test(a)&&$e.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 ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=g.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=v.createElement("div"),u=v.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",b.clearCloneStyle="content-box"===u.style.backgroundClip,E.extend(b,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var _e=["Webkit","Moz","ms"],Ue=v.createElement("div").style,Ve={};function Xe(e){var t=E.cssProps[e]||Ve[e];return t||(e in Ue?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in Ue)return e}(e)||e)}var Qe,Ye,Ge=/^(none|table(?!-c[ea]).+)/,Ke=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ze={letterSpacing:"0",fontWeight:"400"};function et(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function tt(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+=E.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=E.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=E.css(e,"border"+re[a]+"Width",!0,i))):(u+=E.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=E.css(e,"border"+re[a]+"Width",!0,i):s+=E.css(e,"border"+re[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 nt(e,t,n){var r=We(e),i=(!b.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,r),o=i,a=Fe(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!b.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+tt(e,t,n||(i?"border":"content"),o,r,a)+"px"}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(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=Ke.test(t),l=e.style;if(u||(t=Xe(s)),a=E.cssHooks[t]||E.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=ne.exec(n))&&i[1]&&(n=function(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=s(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=e.nodeType&&(E.cssNumber[t]||"px"!==l&&+u)&&ne.exec(E.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)E.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,E.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}(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(E.cssNumber[s]?"":"px")),b.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 Ke.test(t)||(t=Xe(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ze&&(i=Ze[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each(["height","width"],function(e,u){E.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?nt(e,u,n):ue(e,Je,function(){return nt(e,u,n)})},set:function(e,t,n){var r,i=We(e),o=!b.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===E.css(e,"boxSizing",!1,i),s=n?tt(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-tt(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=E.css(e,u)),et(0,t,s)}}}),E.cssHooks.marginLeft=ze(b.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(E.cssHooks[i+o].set=et)}),E.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=We(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)}}),E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=g.setTimeout(e,r);t.stop=function(){g.clearTimeout(n)}})},Qe=v.createElement("input"),Ye=v.createElement("select").appendChild(v.createElement("option")),Qe.type="checkbox",b.checkOn=""!==Qe.value,b.optSelected=Ye.selected,(Qe=v.createElement("input")).value="t",Qe.type="radio",b.radioValue="t"===Qe.value;var rt,it=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return z(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?rt:void 0)),void 0!==n?null===n?void E.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=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!b.radioValue&&"radio"===t&&S(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(I);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),rt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var a=it[t]||E.find.attr;it[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=it[o],it[o]=r,r=null!=a(e,t,n)?o:null,it[o]=i),r}});var ot=/^(?:input|select|textarea|button)$/i,at=/^(?:a|area)$/i;function st(e){return(e.match(I)||[]).join(" ")}function ut(e){return e.getAttribute&&e.getAttribute("class")||""}function lt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(I)||[]}E.fn.extend({prop:function(e,t){return z(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.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=E.find.attr(e,"tabindex");return t?parseInt(t,10):ot.test(e.nodeName)||at.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),b.optSelected||(E.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)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(x(t))return this.each(function(e){E(this).addClass(t.call(this,e,ut(this)))});if((e=lt(t)).length)while(n=this[u++])if(i=ut(n),r=1===n.nodeType&&" "+st(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=st(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(x(t))return this.each(function(e){E(this).removeClass(t.call(this,e,ut(this)))});if(!arguments.length)return this.attr("class","");if((e=lt(t)).length)while(n=this[u++])if(i=ut(n),r=1===n.nodeType&&" "+st(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=st(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):x(i)?this.each(function(e){E(this).toggleClass(i.call(this,e,ut(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=E(this),r=lt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=ut(this))&&G.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":G.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+st(ut(n))+" ").indexOf(t))return!0;return!1}});var ct=/\r/g;E.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=x(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,E(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=E.map(t,function(e){return null==e?"":e+""})),(r=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=E.valHooks[t.type]||E.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(ct,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:st(E.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||!S(n.parentNode,"optgroup"))){if(t=E(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=E.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},b.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),b.focusin="onfocusin"in g;var ft=/^(?:focusinfocus|focusoutblur)$/,dt=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,d=[n||v],p=m.call(e,"type")?e.type:e,h=m.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||v,3!==n.nodeType&&8!==n.nodeType&&!ft.test(p+E.event.triggered)&&(-1<p.indexOf(".")&&(p=(h=p.split(".")).shift(),h.sort()),u=p.indexOf(":")<0&&"on"+p,(e=e[E.expando]?e:new E.Event(p,"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]:E.makeArray(t,[e]),c=E.event.special[p]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!w(n)){for(s=c.delegateType||p,ft.test(s+p)||(o=o.parentNode);o;o=o.parentNode)d.push(o),a=o;a===(n.ownerDocument||v)&&d.push(a.defaultView||a.parentWindow||g)}i=0;while((o=d[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||p,(l=(G.get(o,"events")||{})[e.type]&&G.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&Q(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(d.pop(),t)||!Q(n)||u&&x(n[p])&&!w(n)&&((a=n[u])&&(n[u]=null),E.event.triggered=p,e.isPropagationStopped()&&f.addEventListener(p,dt),n[p](),e.isPropagationStopped()&&f.removeEventListener(p,dt),E.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),b.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){E.event.simulate(r,e.target,E.event.fix(e))};E.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=G.access(e,r);t||e.addEventListener(n,i,!0),G.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=G.access(e,r)-1;t?G.access(e,r,t):(e.removeEventListener(n,i,!0),G.remove(e,r))}}});var pt,ht=/\[\]$/,gt=/\r?\n/g,vt=/^(?:submit|button|image|reset|file)$/i,yt=/^(?:input|select|textarea|keygen)/i;function mt(n,e,r,i){var t;if(Array.isArray(e))E.each(e,function(e,t){r||ht.test(n)?i(n,t):mt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==T(e))i(n,e);else for(t in e)mt(n+"["+t+"]",e[t],r,i)}E.param=function(e,t){var n,r=[],i=function(e,t){var n=x(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)mt(n,e[n],t,i);return r.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&yt.test(this.nodeName)&&!vt.test(e)&&(this.checked||!fe.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(gt,"\r\n")}}):{name:t.name,value:n.replace(gt,"\r\n")}}).get()}}),E.fn.extend({wrapAll:function(e){var t;return this[0]&&(x(e)&&(e=e.call(this[0])),t=E(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 x(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=x(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},b.createHTMLDocument=((pt=v.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===pt.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(b.createHTMLDocument?((r=(t=v.implementation.createHTMLDocument("")).createElement("base")).href=v.location.href,t.head.appendChild(r)):t=v),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.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),x(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.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"===E.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"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||ie})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return z(this,function(e,t,n){var r;if(w(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)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=ze(b.pixelPosition,function(e,t){if(t)return t=Fe(e,n),Me.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return z(this,function(e,t,n){var r;return w(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?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.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){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),E.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.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)}}),E.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),x(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=S,E.isFunction=x,E.isWindow=w,E.camelCase=X,E.type=T,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var bt=g.jQuery,xt=g.$;return E.noConflict=function(e){return g.$===E&&(g.$=xt),e&&g.jQuery===E&&(g.jQuery=bt),E},e||(g.jQuery=g.$=E),E});
This diff could not be displayed because it is too large.
1 +.btn-circle {
2 + border-radius: 100%;
3 + height: 2.5rem;
4 + width: 2.5rem;
5 + font-size: 1rem;
6 + display: inline-flex;
7 + align-items: center;
8 + justify-content: center;
9 + &.btn-sm {
10 + height: 1.8rem;
11 + width: 1.8rem;
12 + font-size: 0.75rem;
13 + }
14 + &.btn-lg {
15 + height: 3.5rem;
16 + width: 3.5rem;
17 + font-size: 1.35rem;
18 + }
19 +}
20 +
21 +.btn-icon-split {
22 + padding: 0;
23 + overflow: hidden;
24 + display: inline-flex;
25 + align-items: stretch;
26 + justify-content: center;
27 + .icon {
28 + background: fade-out($black, .85);
29 + display: inline-block;
30 + padding: $btn-padding-y $btn-padding-x;
31 + }
32 + .text {
33 + display: inline-block;
34 + padding: $btn-padding-y $btn-padding-x;
35 + }
36 + &.btn-sm {
37 + .icon {
38 + padding: $btn-padding-y-sm $btn-padding-x-sm;
39 + }
40 + .text {
41 + padding: $btn-padding-y-sm $btn-padding-x-sm;
42 + }
43 + }
44 + &.btn-lg {
45 + .icon {
46 + padding: $btn-padding-y-lg $btn-padding-x-lg;
47 + }
48 + .text {
49 + padding: $btn-padding-y-lg $btn-padding-x-lg;
50 + }
51 + }
52 +}
1 +// Custom Card Styling
2 +
3 +.card {
4 + .card-header {
5 + // Format Dropdowns in Card Headings
6 + .dropdown {
7 + line-height: 1;
8 + .dropdown-menu {
9 + line-height: 1.5;
10 + }
11 + }
12 + }
13 + // Collapsable Card Styling
14 + .card-header[data-toggle="collapse"] {
15 + text-decoration: none;
16 + position: relative;
17 + padding: 0.75rem 3.25rem 0.75rem 1.25rem;
18 + &::after {
19 + position: absolute;
20 + right: 0;
21 + top: 0;
22 + padding-right: 1.725rem;
23 + line-height: 51px;
24 + font-weight: 900;
25 + content: '\f107';
26 + font-family: 'Font Awesome 5 Free';
27 + color: $gray-400;
28 + }
29 + &.collapsed {
30 + border-radius: $card-border-radius;
31 + &::after {
32 + content: '\f105';
33 + }
34 + }
35 + }
36 +}
1 +// Area Chart
2 +.chart-area {
3 + position: relative;
4 + height: 10rem;
5 + width: 100%;
6 + @include media-breakpoint-up(md) {
7 + height: 20rem;
8 + }
9 +}
10 +
11 +// Bar Chart
12 +.chart-bar {
13 + position: relative;
14 + height: 10rem;
15 + width: 100%;
16 + @include media-breakpoint-up(md) {
17 + height: 20rem;
18 + }
19 +}
20 +
21 +// Pie Chart
22 +.chart-pie {
23 + position: relative;
24 + height: 15rem;
25 + width: 100%;
26 + @include media-breakpoint-up(md) {
27 + height: calc(20rem - 43px) !important;
28 + }
29 +}
1 +// Custom Dropdown Styling
2 +
3 +.dropdown {
4 + .dropdown-menu {
5 + font-size: $dropdown-font-size;
6 + .dropdown-header {
7 + @extend .text-uppercase;
8 + font-weight: 800;
9 + font-size: 0.65rem;
10 + color: $gray-500;
11 + }
12 + }
13 +}
14 +
15 +// Utility class to hide arrow from dropdown
16 +
17 +.dropdown.no-arrow {
18 + .dropdown-toggle::after {
19 + display: none;
20 + }
21 +}
1 +// Lucas Bebber's Glitch Effect
2 +// Tutorial and CSS from CSS Tricks
3 +// https://css-tricks.com/glitch-effect-text-images-svg/
4 +
5 +.error {
6 + color: $gray-800;
7 + font-size: 7rem;
8 + position: relative;
9 + line-height: 1;
10 + width: 12.5rem;
11 +}
12 +@keyframes noise-anim {
13 + $steps: 20;
14 + @for $i from 0 through $steps {
15 + #{percentage($i*(1/$steps))} {
16 + clip: rect(random(100)+px,9999px,random(100)+px,0);
17 + }
18 + }
19 +}
20 +.error:after {
21 + content: attr(data-text);
22 + position: absolute;
23 + left: 2px;
24 + text-shadow: -1px 0 $red;
25 + top: 0;
26 + color: $gray-800;
27 + background: $gray-100;
28 + overflow: hidden;
29 + clip: rect(0,900px,0,0);
30 + animation: noise-anim 2s infinite linear alternate-reverse;
31 +}
32 +
33 +@keyframes noise-anim-2 {
34 + $steps: 20;
35 + @for $i from 0 through $steps {
36 + #{percentage($i*(1/$steps))} {
37 + clip: rect(random(100)+px,9999px,random(100)+px,0);
38 + }
39 + }
40 +}
41 +.error:before {
42 + content: attr(data-text);
43 + position: absolute;
44 + left: -2px;
45 + text-shadow: 1px 0 $blue;
46 + top: 0;
47 + color: $gray-800;
48 + background: $gray-100;
49 + overflow: hidden;
50 + clip: rect(0,900px,0,0);
51 + animation: noise-anim-2 3s infinite linear alternate-reverse;
52 +}
1 +footer.sticky-footer {
2 + padding: 2rem 0;
3 + flex-shrink: 0;
4 + .copyright {
5 + line-height: 1;
6 + font-size: 0.8rem;
7 + }
8 +}
9 +
10 +body.sidebar-toggled {
11 + footer.sticky-footer {
12 + width: 100%;
13 + }
14 +}
1 +// Global component styles
2 +
3 +html {
4 + position: relative;
5 + min-height: 100%;
6 +}
7 +
8 +body {
9 + height: 100%;
10 +}
11 +
12 +a {
13 + &:focus {
14 + outline: none;
15 + }
16 +}
17 +
18 +// Main page wrapper
19 +#wrapper {
20 + display: flex;
21 + #content-wrapper {
22 + background-color: $gray-100;
23 + width: 100%;
24 + overflow-x: hidden;
25 + #content {
26 + flex: 1 0 auto;
27 + }
28 + }
29 +}
30 +
31 +// Set container padding to match gutter width instead of default 15px
32 +.container,
33 +.container-fluid {
34 + padding-left: $grid-gutter-width;
35 + padding-right: $grid-gutter-width;
36 +}
37 +
38 +// Scroll to top button
39 +.scroll-to-top {
40 + position: fixed;
41 + right: 1rem;
42 + bottom: 1rem;
43 + display: none;
44 + width: 2.75rem;
45 + height: 2.75rem;
46 + text-align: center;
47 + color: $white;
48 + background: fade-out($gray-800, .5);
49 + line-height: 46px;
50 + &:focus,
51 + &:hover {
52 + color: white;
53 + }
54 + &:hover {
55 + background: $gray-800;
56 + }
57 + i {
58 + font-weight: 800;
59 + }
60 +}
1 +// Pulling these images from Unsplash
2 +// Toshi the dog from https://unsplash.com/@charlesdeluvio - what a funny dog...
3 +
4 +.bg-login-image {
5 + background: url('https://source.unsplash.com/K4mSJ7kc0As/600x800');
6 + background-position: center;
7 + background-size: cover;
8 +}
9 +
10 +.bg-register-image {
11 + background: url('https://source.unsplash.com/Mv9hjnEUHR4/600x800');
12 + background-position: center;
13 + background-size: cover;
14 +}
15 +
16 +.bg-password-image {
17 + background: url('https://source.unsplash.com/oWTW-jNGl9I/600x800');
18 + background-position: center;
19 + background-size: cover;
20 +}
21 +
22 +form.user {
23 +
24 + .custom-checkbox.small {
25 + label {
26 + line-height: 1.5rem;
27 + }
28 + }
29 +
30 + .form-control-user {
31 + font-size: 0.8rem;
32 + border-radius: 10rem;
33 + padding: 1.5rem 1rem;
34 + }
35 +
36 + .btn-user {
37 + font-size: 0.8rem;
38 + border-radius: 10rem;
39 + padding: 0.75rem 1rem;
40 + }
41 +
42 +}
43 +
44 +.btn-google {
45 + @include button-variant($brand-google, $white);
46 +}
47 +
48 +.btn-facebook {
49 + @include button-variant($brand-facebook, $white);
50 +}
1 +@import "navs/global.scss";
2 +@import "navs/topbar.scss";
3 +@import "navs/sidebar.scss";
1 +@import "utilities/animation.scss";
2 +@import "utilities/background.scss";
3 +@import "utilities/display.scss";
4 +@import "utilities/text.scss";
5 +@import "utilities/border.scss";
6 +@import "utilities/progress.scss";
7 +@import "utilities/rotate.scss";
1 +// Override Bootstrap default variables here
2 +// Do not edit any of the files in /vendor/bootstrap/scss/!
3 +
4 +// Color Variables
5 +// Bootstrap Color Overrides
6 +
7 +$white: #fff !default;
8 +$gray-100: #f8f9fc !default;
9 +$gray-200: #eaecf4 !default;
10 +$gray-300: #dddfeb !default;
11 +$gray-400: #d1d3e2 !default;
12 +$gray-500: #b7b9cc !default;
13 +$gray-600: #858796 !default;
14 +$gray-700: #6e707e !default;
15 +$gray-800: #5a5c69 !default;
16 +$gray-900: #3a3b45 !default;
17 +$black: #000 !default;
18 +
19 +$blue: #4e73df !default;
20 +$indigo: #6610f2 !default;
21 +$purple: #6f42c1 !default;
22 +$pink: #e83e8c !default;
23 +$red: #e74a3b !default;
24 +$orange: #fd7e14 !default;
25 +$yellow: #f6c23e !default;
26 +$green: #1cc88a !default;
27 +$teal: #20c9a6 !default;
28 +$cyan: #36b9cc !default;
29 +
30 +// Custom Colors
31 +$brand-google: #ea4335;
32 +$brand-facebook: #3b5998;
33 +
34 +// Set Contrast Threshold
35 +$yiq-contrasted-threshold: 195 !default;
36 +
37 +// Typography
38 +$body-color: $gray-600 !default;
39 +
40 +$font-family-sans-serif: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", 'Noto Color Emoji' !default;
41 +
42 +$font-weight-light: 300 !default;
43 +// $font-weight-base: 400;
44 +$headings-font-weight: 400 !default;
45 +
46 +// Shadows
47 +$box-shadow-sm: 0 0.125rem 0.25rem 0 rgba($gray-900, .2) !default;
48 +$box-shadow: 0 0.15rem 1.75rem 0 rgba($gray-900, .15) !default;
49 +// $box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
50 +
51 +// Borders Radius
52 +$border-radius: 0.35rem !default;
53 +$border-color: darken($gray-200, 2%);
54 +
55 +// Spacing Variables
56 +// Change below variable if the height of the navbar changes
57 +$topbar-base-height: 4.375rem;
58 +// Change below variable to change the width of the sidenav
59 +$sidebar-base-width: 14rem;
60 +// Change below variable to change the width of the sidenav when collapsed
61 +$sidebar-collapsed-width: 6.5rem;
62 +
63 +// Card
64 +$card-cap-bg: $gray-100;
65 +$card-border-color: $border-color;
66 +
67 +// Adjust column spacing for symmetry
68 +$spacer: 1rem;
69 +$grid-gutter-width: $spacer * 1.5;
70 +
71 +// Transitions
72 +$transition-collapse: height .15s ease !default;
73 +
74 +// Dropdowns
75 +$dropdown-font-size: 0.85rem;
76 +$dropdown-border-color: $border-color;
1 +// Global styles for both custom sidebar and topbar compoments
2 +
3 +.sidebar,
4 +.topbar {
5 + .nav-item {
6 + // Customize Dropdown Arrows for Navbar
7 + &.dropdown {
8 + .dropdown-toggle {
9 + &::after {
10 + width: 1rem;
11 + text-align: center;
12 + float: right;
13 + vertical-align: 0;
14 + border: 0;
15 + font-weight: 900;
16 + content: '\f105';
17 + font-family: 'Font Awesome 5 Free';
18 + }
19 + }
20 + &.show {
21 + .dropdown-toggle::after {
22 + content: '\f107';
23 + }
24 + }
25 + }
26 + // Counter for nav links and nav link image sizing
27 + .nav-link {
28 + position: relative;
29 + .badge-counter {
30 + position: absolute;
31 + transform: scale(0.7);
32 + transform-origin: top right;
33 + right: .25rem;
34 + margin-top: -.25rem;
35 + }
36 + .img-profile {
37 + height: 2rem;
38 + width: 2rem;
39 + }
40 + }
41 + }
42 +}
1 +// Sidebar
2 +.sidebar {
3 + width: $sidebar-collapsed-width;
4 + min-height: 100vh;
5 + .nav-item {
6 + position: relative;
7 + &:last-child {
8 + margin-bottom: 1rem;
9 + }
10 + .nav-link {
11 + text-align: center;
12 + padding: 0.75rem 1rem;
13 + width: $sidebar-collapsed-width;
14 + span {
15 + font-size: 0.65rem;
16 + display: block;
17 + }
18 + }
19 + &.active {
20 + .nav-link {
21 + font-weight: 700;
22 + }
23 + }
24 + // Accordion
25 + .collapse {
26 + position: absolute;
27 + left: calc(#{$sidebar-collapsed-width} + #{$grid-gutter-width} / 2);
28 + z-index: 1;
29 + top: 2px;
30 + // Grow In Animation
31 + @extend .animated--grow-in;
32 + .collapse-inner {
33 + border-radius: $border-radius;
34 + box-shadow: $box-shadow;
35 + }
36 + }
37 + .collapsing {
38 + display: none;
39 + transition: none;
40 + }
41 + .collapse,
42 + .collapsing {
43 + .collapse-inner {
44 + padding: .5rem 0;
45 + min-width: 10rem;
46 + font-size: $dropdown-font-size;
47 + margin: 0 0 1rem 0;
48 + .collapse-header {
49 + margin: 0;
50 + white-space: nowrap;
51 + padding: .5rem 1.5rem;
52 + text-transform: uppercase;
53 + font-weight: 800;
54 + font-size: 0.65rem;
55 + color: $gray-500;
56 + }
57 + .collapse-item {
58 + padding: 0.5rem 1rem;
59 + margin: 0 0.5rem;
60 + display: block;
61 + color: $gray-900;
62 + text-decoration: none;
63 + border-radius: $border-radius;
64 + white-space: nowrap;
65 + &:hover {
66 + background-color: $gray-200;
67 + }
68 + &:active {
69 + background-color: $gray-300;
70 + }
71 + &.active {
72 + color: $primary;
73 + font-weight: 700;
74 + }
75 + }
76 + }
77 + }
78 + }
79 + #sidebarToggle {
80 + width: 2.5rem;
81 + height: 2.5rem;
82 + text-align: center;
83 + margin-bottom: 1rem;
84 + cursor: pointer;
85 + &::after {
86 + font-weight: 900;
87 + content: '\f104';
88 + font-family: 'Font Awesome 5 Free';
89 + margin-right: 0.1rem;
90 + }
91 + &:hover {
92 + text-decoration: none;
93 + }
94 + &:focus {
95 + outline: none;
96 + }
97 + }
98 + &.toggled {
99 + width: 0 !important;
100 + overflow: hidden;
101 + #sidebarToggle::after {
102 + content: '\f105';
103 + font-family: 'Font Awesome 5 Free';
104 + margin-left: 0.25rem;
105 + }
106 + }
107 + .sidebar-brand {
108 + height: $topbar-base-height;
109 + text-decoration: none;
110 + font-size: 1rem;
111 + font-weight: 800;
112 + padding: 1.5rem 1rem;
113 + text-align: center;
114 + text-transform: uppercase;
115 + letter-spacing: 0.05rem;
116 + z-index: 1;
117 +
118 + .sidebar-brand-icon i {
119 + font-size: 2rem;
120 + }
121 + .sidebar-brand-text {
122 + display: none;
123 + }
124 + }
125 + hr.sidebar-divider {
126 + margin: 0 1rem 1rem;
127 + }
128 + .sidebar-heading {
129 + text-align: center;
130 + padding: 0 1rem;
131 + font-weight: 800;
132 + font-size: 0.65rem;
133 + @extend .text-uppercase;
134 + }
135 +}
136 +
137 +@include media-breakpoint-up(md) {
138 + .sidebar {
139 + width: $sidebar-base-width !important;
140 + .nav-item {
141 + // Accordion
142 + .collapse {
143 + position: relative;
144 + left: 0;
145 + z-index: 1;
146 + top: 0;
147 + animation: none;
148 + .collapse-inner {
149 + border-radius: 0;
150 + box-shadow: none;
151 + }
152 + }
153 + .collapsing {
154 + display: block;
155 + transition: $transition-collapse;
156 + }
157 + .collapse,
158 + .collapsing {
159 + margin: 0 1rem;
160 + }
161 + .nav-link {
162 + display: block;
163 + width: 100%;
164 + text-align: left;
165 + padding: 1rem;
166 + width: $sidebar-base-width;
167 + i {
168 + font-size: 0.85rem;
169 + margin-right: 0.25rem;
170 + }
171 + span {
172 + font-size: 0.85rem;
173 + display: inline;
174 + }
175 + // Accordion Arrow Icon
176 + &[data-toggle="collapse"] {
177 + &::after {
178 + width: 1rem;
179 + text-align: center;
180 + float: right;
181 + vertical-align: 0;
182 + border: 0;
183 + font-weight: 900;
184 + content: '\f107';
185 + font-family: 'Font Awesome 5 Free';
186 + }
187 + &.collapsed::after {
188 + content: '\f105';
189 + }
190 + }
191 + }
192 + }
193 + .sidebar-brand {
194 + .sidebar-brand-icon i {
195 + font-size: 2rem;
196 + }
197 + .sidebar-brand-text {
198 + display: inline;
199 + }
200 + }
201 + .sidebar-heading {
202 + text-align: left;
203 + }
204 + &.toggled {
205 + overflow: visible;
206 + width: $sidebar-collapsed-width !important;
207 + .nav-item {
208 + // Accordion
209 + .collapse {
210 + position: absolute;
211 + left: calc(#{$sidebar-collapsed-width} + #{$grid-gutter-width} / 2);
212 + z-index: 1;
213 + top: 2px;
214 + // Grow In Animation for Toggled State
215 + animation-name: growIn;
216 + animation-duration: 200ms;
217 + animation-timing-function: transform cubic-bezier(.18,1.25,.4,1), opacity cubic-bezier(0,1,.4,1);
218 + .collapse-inner {
219 + box-shadow: $box-shadow;
220 + border-radius: $border-radius;
221 + }
222 + }
223 + .collapsing {
224 + display: none;
225 + transition: none;
226 + }
227 + .collapse,
228 + .collapsing {
229 + margin: 0;
230 + }
231 + &:last-child {
232 + margin-bottom: 1rem;
233 + }
234 + .nav-link {
235 + text-align: center;
236 + padding: 0.75rem 1rem;
237 + width: $sidebar-collapsed-width;
238 + span {
239 + font-size: 0.65rem;
240 + display: block;
241 + }
242 + i {
243 + margin-right: 0;
244 + }
245 + &[data-toggle="collapse"]::after {
246 + display: none;
247 + }
248 + }
249 + }
250 + .sidebar-brand {
251 + .sidebar-brand-icon i {
252 + font-size: 2rem;
253 + }
254 + .sidebar-brand-text {
255 + display: none;
256 + }
257 + }
258 + .sidebar-heading {
259 + text-align: center;
260 + }
261 + }
262 + }
263 +}
264 +
265 +// Sidebar Color Variants
266 +
267 +// Sidebar Light
268 +.sidebar-light {
269 + .sidebar-brand {
270 + color: $gray-700;
271 + }
272 + hr.sidebar-divider {
273 + border-top: 1px solid $gray-200;
274 + }
275 + .sidebar-heading {
276 + color: $gray-500;
277 + }
278 + .nav-item {
279 + .nav-link {
280 + color: $gray-600;
281 + i {
282 + color: $gray-400;
283 + }
284 + &:active,
285 + &:focus,
286 + &:hover {
287 + color: $gray-700;
288 + i {
289 + color: $gray-700;
290 + }
291 + }
292 + // Accordion
293 + &[data-toggle="collapse"]::after {
294 + color: $gray-500;
295 + }
296 + }
297 + &.active {
298 + .nav-link {
299 + color: $gray-700;
300 + i {
301 + color: $gray-700;
302 + }
303 + }
304 + }
305 + }
306 + // Color the sidebar toggler
307 + #sidebarToggle {
308 + background-color: $gray-200;
309 + &::after {
310 + color: $gray-500;
311 + }
312 + &:hover {
313 + background-color: $gray-300;
314 + }
315 + }
316 +}
317 +
318 +// Sidebar Dark
319 +.sidebar-dark {
320 + .sidebar-brand {
321 + color: $white;
322 + }
323 + hr.sidebar-divider {
324 + border-top: 1px solid fade-out($white, 0.85);
325 + }
326 + .sidebar-heading {
327 + color: fade-out($white, 0.6);
328 + }
329 + .nav-item {
330 + .nav-link {
331 + color: fade-out($white, 0.2);
332 + i {
333 + color: fade-out($white, 0.7);
334 + }
335 + &:active,
336 + &:focus,
337 + &:hover {
338 + color: $white;
339 + i {
340 + color: $white;
341 + }
342 + }
343 + // Accordion
344 + &[data-toggle="collapse"]::after {
345 + color: fade-out($white, 0.5);
346 + }
347 + }
348 + &.active {
349 + .nav-link {
350 + color: $white;
351 + i {
352 + color: $white;
353 + }
354 + }
355 + }
356 + }
357 + // Color the sidebar toggler
358 + #sidebarToggle {
359 + background-color: fade-out($white, 0.8);
360 + &::after {
361 + color: fade-out($white, 0.5);
362 + }
363 + &:hover {
364 + background-color: fade-out($white, 0.75);
365 + }
366 + }
367 + &.toggled {
368 + #sidebarToggle::after {
369 + color: fade-out($white, 0.5);
370 + }
371 + }
372 +}
1 +// Topbar
2 +.topbar {
3 + height: $topbar-base-height;
4 + #sidebarToggleTop {
5 + height: 2.5rem;
6 + width: 2.5rem;
7 + &:hover {
8 + background-color: $gray-200;
9 + }
10 + &:active {
11 + background-color: $gray-300;
12 + }
13 + }
14 + .navbar-search {
15 + width: 25rem;
16 + input {
17 + font-size: 0.85rem;
18 + height: auto;
19 + }
20 + }
21 + .topbar-divider {
22 + width: 0;
23 + border-right: 1px solid $border-color;
24 + height: calc(#{$topbar-base-height} - 2rem);
25 + margin: auto 1rem;
26 + }
27 + .nav-item {
28 + .nav-link {
29 + height: $topbar-base-height;
30 + display: flex;
31 + align-items: center;
32 + padding: 0 0.75rem;
33 + &:focus {
34 + outline: none;
35 + }
36 + }
37 + &:focus {
38 + outline: none;
39 + }
40 + }
41 + .dropdown {
42 + position: static;
43 + .dropdown-menu {
44 + width: calc(100% - #{$grid-gutter-width});
45 + right: $grid-gutter-width / 2;
46 + }
47 + }
48 + .dropdown-list {
49 + padding: 0;
50 + border: none;
51 + overflow: hidden;
52 + .dropdown-header {
53 + background-color: $primary;
54 + border: 1px solid $primary;
55 + padding-top: 0.75rem;
56 + padding-bottom: 0.75rem;
57 + color: $white;
58 + }
59 + .dropdown-item {
60 + white-space: normal;
61 + padding-top: 0.5rem;
62 + padding-bottom: 0.5rem;
63 + border-left: 1px solid $border-color;
64 + border-right: 1px solid $border-color;
65 + border-bottom: 1px solid $border-color;
66 + line-height: 1.3rem;
67 + .dropdown-list-image {
68 + position: relative;
69 + height: 2.5rem;
70 + width: 2.5rem;
71 + img {
72 + height: 2.5rem;
73 + width: 2.5rem;
74 + }
75 + .status-indicator {
76 + background-color: $gray-200;
77 + height: 0.75rem;
78 + width: 0.75rem;
79 + border-radius: 100%;
80 + position: absolute;
81 + bottom: 0;
82 + right: 0;
83 + border: .125rem solid $white;
84 + }
85 + }
86 + .text-truncate {
87 + max-width: 10rem;
88 + }
89 + &:active {
90 + background-color: $gray-200;
91 + color: $gray-900;
92 + }
93 + }
94 + }
95 + @include media-breakpoint-up(sm) {
96 + .dropdown {
97 + position: relative;
98 + .dropdown-menu {
99 + width: auto;
100 + right: 0;
101 + }
102 + }
103 + .dropdown-list {
104 + width: 20rem !important;
105 + .dropdown-item {
106 + .text-truncate {
107 + max-width: 13.375rem;
108 + }
109 + }
110 + }
111 + }
112 +}
113 +
114 +.topbar.navbar-dark {}
115 +
116 +.topbar.navbar-light {
117 + .navbar-nav {
118 + .nav-item {
119 + .nav-link {
120 + color: $gray-400;
121 + &:hover {
122 + color: $gray-500;
123 + }
124 + &:active {
125 + color: $gray-600;
126 + }
127 + }
128 + }
129 + }
130 +}
1 +// Import Custom SB Admin 2 Variables (Overrides Default Bootstrap Variables)
2 +@import "variables.scss";
3 +
4 +// Import Bootstrap
5 +@import "../vendor/bootstrap/scss/bootstrap.scss";
6 +
7 +// Import Custom SB Admin 2 Mixins and Components
8 +@import "mixins.scss";
9 +@import "global.scss";
10 +@import "utilities.scss";
11 +
12 +// Custom Components
13 +@import "dropdowns.scss";
14 +@import "navs.scss";
15 +@import "buttons.scss";
16 +@import "cards.scss";
17 +@import "charts.scss";
18 +@import "login.scss";
19 +@import "error.scss";
20 +@import "footer.scss";
1 +// Animation Utilities
2 +
3 +// Grow In Animation
4 +
5 +@keyframes growIn {
6 + 0% {
7 + transform: scale(0.9);
8 + opacity: 0;
9 + }
10 + 100% {
11 + transform: scale(1);
12 + opacity: 1;
13 + }
14 +}
15 +
16 +.animated--grow-in {
17 + animation-name: growIn;
18 + animation-duration: 200ms;
19 + animation-timing-function: transform cubic-bezier(.18,1.25,.4,1), opacity cubic-bezier(0,1,.4,1);
20 +}
21 +
22 +// Fade In Animation
23 +
24 +@keyframes fadeIn {
25 + 0% {
26 + opacity: 0;
27 + }
28 + 100% {
29 + opacity: 1;
30 + }
31 +}
32 +
33 +.animated--fade-in {
34 + animation-name: fadeIn;
35 + animation-duration: 200ms;
36 + animation-timing-function: opacity cubic-bezier(0,1,.4,1);
37 +}
1 +// Background Gradient Utilities
2 +
3 +@each $color, $value in $theme-colors {
4 + .bg-gradient-#{$color} {
5 + background-color: $value;
6 + background-image: linear-gradient(180deg, $value 10%, darken($value, 15%) 100%);
7 + background-size: cover;
8 + }
9 +}
10 +
11 +// Grayscale Background Utilities
12 +
13 +@each $level, $value in $grays {
14 + .bg-gray-#{$level} {
15 + background-color: $value !important;
16 + }
17 +}
1 +@each $color, $value in $theme-colors {
2 + @each $position in ['left', 'bottom'] {
3 + .border-#{$position}-#{$color} {
4 + border-#{$position}: .25rem solid $value !important;
5 + }
6 + }
7 +}
1 +// Overflow Hidden
2 +.o-hidden {
3 + overflow: hidden !important;
4 +}
1 +.progress-sm {
2 + height: .5rem;
3 +}
1 +.rotate-15 {
2 + transform: rotate(15deg);
3 +}
4 +
5 +.rotate-n-15 {
6 + transform: rotate(-15deg);
7 +}
1 +// Grayscale Text Utilities
2 +
3 +.text-xs {
4 + font-size: .7rem;
5 +}
6 +
7 +.text-lg {
8 + font-size: 1.2rem;
9 +}
10 +
11 +.text-gray-100 {
12 + color: $gray-100 !important;
13 +}
14 +
15 +.text-gray-200 {
16 + color: $gray-200 !important;
17 +}
18 +
19 +.text-gray-300 {
20 + color: $gray-300 !important;
21 +}
22 +
23 +.text-gray-400 {
24 + color: $gray-400 !important;
25 +}
26 +
27 +.text-gray-500 {
28 + color: $gray-500 !important;
29 +}
30 +
31 +.text-gray-600 {
32 + color: $gray-600 !important;
33 +}
34 +
35 +.text-gray-700 {
36 + color: $gray-700 !important;
37 +}
38 +
39 +.text-gray-800 {
40 + color: $gray-800 !important;
41 +}
42 +
43 +.text-gray-900 {
44 + color: $gray-900 !important;
45 +}
46 +
47 +.icon-circle {
48 + height: 2.5rem;
49 + width: 2.5rem;
50 + border-radius: 100%;
51 + display: flex;
52 + align-items: center;
53 + justify-content: center;
54 +}
...@@ -3,19 +3,21 @@ const { BrowserWindow } = require("electron").remote; ...@@ -3,19 +3,21 @@ const { BrowserWindow } = require("electron").remote;
3 const path = require('path') 3 const path = require('path')
4 const fs = require('fs') 4 const fs = require('fs')
5 var io = require('socket.io').listen(3000); 5 var io = require('socket.io').listen(3000);
6 +var exec = require('child_process').exec, child;
6 //var mysql = require('mysql'); 7 //var mysql = require('mysql');
7 8
8 9
9 const connect_btn = document.getElementById("connect_btn"); 10 const connect_btn = document.getElementById("connect_btn");
10 11
11 connect_btn.addEventListener("click", () => { 12 connect_btn.addEventListener("click", () => {
13 +
12 win = new BrowserWindow({ 14 win = new BrowserWindow({
13 width: 600, 15 width: 600,
14 height: 450, 16 height: 450,
15 frame: false, 17 frame: false,
16 alwaysOnTop: true, 18 alwaysOnTop: true,
17 webPreferences: { 19 webPreferences: {
18 - nodeIntegration: true 20 + nodeIntegration: true
19 } 21 }
20 }); 22 });
21 23
...@@ -38,51 +40,41 @@ connection.connect(); ...@@ -38,51 +40,41 @@ connection.connect();
38 */ 40 */
39 41
40 var mysql = { 42 var mysql = {
41 - user : 'root', 43 + user : 'root',
42 - password : '1234' 44 + password : '1234'
43 }; 45 };
44 46
45 function apkInstall(){ 47 function apkInstall(){
46 - cmd_install = exec('adb -s '+device+' install -r app-release.apk',function(error, stdout, stderr){ 48 + cmd_install = exec('adb -s '+device+' install -r app-release.apk',function(error, stdout, stderr){
47 - cc.innerHTML="install apk"; 49 + cc.innerHTML="install apk";
48 - cmd_exec = exec('adb -s '+device+' shell am start -n com.example.dataextraction/com.example.dataextraction.MainActivity',function(error, stdout, stderr){ 50 + cmd_exec = exec('adb -s '+device+' shell am start -n com.example.dataextraction/com.example.dataextraction.MainActivity',function(error, stdout, stderr){
49 - cc.innerHTML="start app"; 51 + cc.innerHTML="start app";
50 - }) 52 + })
51 - }); 53 + });
52 - cmd_install(); 54 + //cmd_install();
53 } 55 }
54 56
55 -var device = new String();
56 -ipcRenderer.on("device", (e, arg) => {
57 - device = arg;
58 - connect_btn.innerHTML = "Connected : ".concat(device);
59 - //device.innerHTML = arg.toString();
60 -
61 - cc.innerHTML="DATA EXTRACTION START !";
62 - apkInstall();
63 -});
64 -
65 function convertToMysql(){ 57 function convertToMysql(){
66 cmd_sqlIdb = exec('sqlite3 InnerDatabase.db .dump | python SQLiteToMysql.py > InnerDatabase.sql',function(error, stdout, stderr){ 58 cmd_sqlIdb = exec('sqlite3 InnerDatabase.db .dump | python SQLiteToMysql.py > InnerDatabase.sql',function(error, stdout, stderr){
67 - cc.innerHTML="make InnerDB SQL"; 59 + cc.innerHTML="make InnerDB SQL";
68 - cmd_sqlNdb = exec('sqlite3 networkDatabase.db .dump | python SQLiteToMysql_network.py > networkDatabase.sql', function(error, stdout, stderr){ 60 + cmd_sqlNdb = exec('sqlite3 networkDatabase.db .dump | python SQLiteToMysql_network.py > networkDatabase.sql', function(error, stdout, stderr){
69 - cc.innerHTML="make NetworkDB SQL"; 61 + cc.innerHTML="make NetworkDB SQL";
70 - cmd_makeIdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' -e "DROP DATABASE IF EXISTS DATAEXTRACTION;CREATE DATABASE DATAEXTRACTION CHARACTER SET utf8 COLLATE utf8_unicode_ci;USE DATAEXTRACTION;"',function(error, stdout, stderr){ 62 + cmd_makeIdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' -e "DROP DATABASE IF EXISTS DATAEXTRACTION;CREATE DATABASE DATAEXTRACTION CHARACTER SET utf8 COLLATE utf8_unicode_ci;USE DATAEXTRACTION;"',function(error, stdout, stderr){
71 - cc.innerHTML="create InnerDB"; 63 + cc.innerHTML="create InnerDB";
72 - cmd_insertIdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' DATAEXTRACTION < InnerDatabase.sql',function(error, stdout, stderr){ 64 + cmd_insertIdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' DATAEXTRACTION < InnerDatabase.sql',function(error, stdout, stderr){
73 - cc.innerHTML="insert Data ; InnerDB"; 65 + cc.innerHTML="insert Data ; InnerDB";
74 - cmd_makeNdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' -e "DROP DATABASE IF EXISTS DATAEXTRACTION_network;CREATE DATABASE DATAEXTRACTION_network;USE DATAEXTRACTION_network;"',function(error, stdout, stderr){ 66 + cmd_makeNdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' -e "DROP DATABASE IF EXISTS DATAEXTRACTION_network;CREATE DATABASE DATAEXTRACTION_network;USE DATAEXTRACTION_network;"',function(error, stdout, stderr){
75 - cc.innerHTML="create NetworkDB"; 67 + cc.innerHTML="create NetworkDB";
76 - cmd_insertNdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' DATAEXTRACTION_network < networkDatabase.sql',function(error, stdout, stderr){ 68 + cmd_insertNdb = exec('mysql -u'+mysql.user+' -p'+mysql.password+' DATAEXTRACTION_network < networkDatabase.sql',function(error, stdout, stderr){
77 - cc.innerHTML="insert Data ; NetworkDB"; 69 + cc.innerHTML="insert Data ; NetworkDB";
78 - cc.innerHTML="Data Extraction Complete !"; 70 + cc.innerHTML="Data Extraction Complete !";
79 - cc.innerHTML="Click 'NEXT' Button"; 71 + cc.innerHTML="Click 'NEXT' Button";
80 - }) 72 + })
81 - }) 73 + })
82 - }) 74 + })
83 - }) 75 + })
84 - }) 76 + })
85 - }) 77 + })
86 } 78 }
87 79
88 function extractDB () { 80 function extractDB () {
...@@ -95,15 +87,15 @@ function extractDB () { ...@@ -95,15 +87,15 @@ function extractDB () {
95 cc.innerHTML="unzip tar"; 87 cc.innerHTML="unzip tar";
96 cmd_moveIdb = fs.rename('apps/com.example.dataextraction/db/InnerDatabase.db', 'InnerDatabase.db', function(){ 88 cmd_moveIdb = fs.rename('apps/com.example.dataextraction/db/InnerDatabase.db', 'InnerDatabase.db', function(){
97 cc.innerHTML="move InnerDB File"; 89 cc.innerHTML="move InnerDB File";
98 - cmd_moveNdb = fs.rename('apps/com.example.dataextraction/db/networkDatabase.db', 'networkDatabase.db',function(){ 90 + cmd_moveNdb = fs.rename('apps/com.example.dataextraction/db/networkDatabase.db', 'networkDatabase.db',function(){
99 - cc.innerHTML="move NetworkDB File"; 91 + cc.innerHTML="move NetworkDB File";
100 - convertToMysql(); 92 + convertToMysql();
101 - }) 93 + })
102 - }) 94 + })
103 - }) 95 + })
104 - }) 96 + })
105 - },7000); 97 + },7000);
106 - }); 98 + });
107 //cmd_backup(); 99 //cmd_backup();
108 } 100 }
109 101
...@@ -119,3 +111,13 @@ io.on('connection', function(socket){ ...@@ -119,3 +111,13 @@ io.on('connection', function(socket){
119 extractDB(); 111 extractDB();
120 }) 112 })
121 }) 113 })
114 +
115 +var device = new String();
116 +ipcRenderer.on("device", (e, arg) => {
117 + device = arg;
118 + connect_btn.innerHTML = "Connected : ".concat(device);
119 + //device.innerHTML = arg.toString();
120 +
121 + cc.innerHTML="DATA EXTRACTION START !";
122 + apkInstall();
123 +});
......
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="en"> 2 <html lang="en">
3 +
3 <head> 4 <head>
4 - <meta charset="UTF-8"> 5 +
5 - <meta name="viewport" content="width=<sc>, initial-scale=1.0"> 6 + <meta charset="utf-8">
6 - <link rel="stylesheet" href="../assets/css/menu1.css"> 7 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
7 - <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script> 8 + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8 - <script src="https://cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script> 9 + <meta name="description" content="">
9 - <title>Document</title> 10 + <meta name="author" content="">
11 +
12 + <title>Menu1</title>
13 +
14 + <link rel="stylesheet" href="../assets/css/menu1.css">
15 + <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
16 + <script src="https://cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script>
17 +
10 </head> 18 </head>
11 -<body> 19 +
12 - <div class="title"> 20 +<body id="page-top">
13 - <h1 id="cc" onclick="location.href='menu.html'">CallLog Analysis</h1> 21 + <div class="title">
14 - </div> 22 + <h1 id="cc" onclick="location.href='menu.html'">CallLog Analysis</h1>
15 - <div id="grid"> 23 + </div>
16 - <div id="menu_bar"> 24 +
17 - <ul id="menu"> 25 + <!-- Page Wrapper -->
18 - <li class="menu1">통계 분석</li> 26 + <div id="wrapper">
19 - <li class="menu2" id="analysis1">최근 6개월 통계</li> 27 +
20 - <li class="menu2" id="analysis2">전체 통계</li> 28 + <!-- Sidebar -->
21 - <li class="menu2" id="analysis3">특정 기간 통계</li> 29 + <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
22 - <form name="dateForm" method="post" id="dateForm"> 30 +
23 - <input type="date" id="between_date_start" /> 31 + <!-- Heading -->
24 - ~ 32 + <div class="sidebar-heading">
25 - <input type="date" id="between_date_end" /> 33 + 통계 분석
26 - <input type="button" id="between_date_submit" value="》" onclick="get_date_analysis();" /> 34 + </div>
27 - </form> 35 +
28 - <li class="menu2" id="analysis4">특정 연락처 통계</li> 36 + <!-- Nav Item - Dashboard -->
29 - <form name="numberForm" method="post" id="numberForm"> 37 + <li class="nav-item active">
30 - <input type="text" id="number" /> 38 + <a class="nav-link" id="analysis1">
31 - <input type="button" id="number_push" value="+" onclick="get_number_push();" /> 39 + <i class="fas fa-fw"></i>
32 - <input type="button" id="number_pop" value="-" onclick="get_number_pop();" /> 40 + <span>최근 6개월 통계</span></a>
33 - <input type="button" id="number_submit" value="》" onclick="get_number_analysis();" /> 41 + </li>
34 - </form> 42 +
35 - <li class="menu2" id="analysis4_list"></li> 43 + <!-- Nav Item - Dashboard -->
36 - <li class="menu1">목록 분석</li> 44 + <li class="nav-item active">
37 - <li class="menu2" id="list1">최근 1달 목록</li> 45 + <a class="nav-link" id="analysis2">
38 - <li class="menu2" id="list2">전체 목록</li> 46 + <i class="fas fa-fw"></i>
39 - <li class="menu2" id="list4">특정 기간 목록</li> 47 + <span>전체 통계</span></a>
40 - <form name="dateForm" method="post" id="dateForm"> 48 + </li>
41 - <input type="date" id="between_list_date_start" /> 49 +
42 - ~ 50 + <!-- Nav Item - Dashboard -->
43 - <input type="date" id="between_list_date_end" /> 51 + <li class="nav-item active">
44 - <input type="button" id="between_date_submit" value="》" onclick="get_date_list();" /> 52 + <a class="nav-link" id="analysis3">
45 - </form> 53 + <i class="fas fa-fw"></i>
46 - <li class="menu1">상세 분석</li> 54 + <span>특정 기간 통계</span></a>
47 - <li class="menu2" id="more1">전체 연락 순위</li> 55 + </li>
48 - <li class="menu2" id="more2">특정 기간 연락 순위</li> 56 +
49 - <form name="dateForm" method="post" id="dateForm"> 57 + <form name="dateForm" method="post" id="dateForm">
50 - <input type="date" id="between_rank_date_start" /> 58 + <input type="date" id="between_date_start" />
51 - ~ 59 + ~
52 - <input type="date" id="between_rank_date_end" /> 60 + <input type="date" id="between_date_end" />
53 - <input type="button" id="between_rank_submit" value="》" onclick="get_date_rank();" /> 61 + <input type="button" id="between_date_submit" value="》" onclick="get_date_analysis();" />
54 - </form> 62 + </form>
55 - <li class="menu2" id="more3">전체 연락 시간대</li> 63 +
56 - <li class="menu2" id="more4">특정 기간 연락 시간대</li> 64 + <!-- Nav Item - Dashboard -->
57 - <form name="dateForm" method="post" id="dateForm"> 65 + <li class="nav-item active">
58 - <input type="date" id="between_timeline_date_start" /> 66 + <a class="nav-link" id="analysis4">
59 - ~ 67 + <i class="fas fa-fw"></i>
60 - <input type="date" id="between_timeline_date_end" /> 68 + <span>특정 연락처 통계</span></a>
61 - <input type="button" id="between_timeline_submit" value="》" onclick="get_date_timeline();" /> 69 + </li>
62 - </form> 70 +
63 - <li class="menu2" id="more5">특정 연락처 연락 시간대</li> 71 + <form name="numberForm" method="post" id="numberForm">
64 - <form name="numberForm" method="post" id="numberForm"> 72 + <input type="text" id="number" />
65 - <input type="text" id="timeline_number" /> 73 + <input type="button" id="number_push" value="+" onclick="get_number_push();" />
66 - <input type="button" id="number_push" value="+" onclick="get_number_timeline_push();" /> 74 + <input type="button" id="number_pop" value="-" onclick="get_number_pop();" />
67 - <input type="button" id="number_pop" value="-" onclick="get_number_timeline_pop();" /> 75 + <input type="button" id="number_submit" value="》" onclick="get_number_analysis();" />
68 - <input type="button" id="number_submit" value="》" onclick="get_number_timeline();" /> 76 + </form>
69 - </form> 77 + <li class="nav-item active" id="analysis4_list"></li>
70 - <li class="menu2" id="more5_list"></li> 78 +
71 - <li class="menu2" id="more6">전체 답장 시간</li> 79 + <!-- Divider -->
72 - <li class="menu2" id="more7">특정 연락처 답장 시간</li> 80 + <hr class="sidebar-divider">
73 - <form name="numberForm" method="post" id="numberForm"> 81 +
74 - <input type="text" id="restime_number" /> 82 + <!-- Heading -->
75 - <input type="button" id="number_push" value="+" onclick="get_number_restime_push();" /> 83 + <div class="sidebar-heading">
76 - <input type="button" id="number_pop" value="-" onclick="get_number_restime_pop();" /> 84 + 목록 분석
77 - <input type="button" id="number_submit" value="》" onclick="get_number_restime();" /> 85 + </div>
78 - <li class="menu2" id="more7_list"></li> 86 +
79 - </form> 87 + <!-- Nav Item - Dashboard -->
80 - </ul> 88 + <li class="nav-item active">
81 - </div> 89 + <a class="nav-link" id="list1">
82 - <div id="content"> 90 + <i class="fas fa-fw"></i>
83 - <div id="choice"> 91 + <span>최근 1개월 목록</span></a>
84 - <ul id="choiceul"> 92 + </li>
85 - <li class="cr" id="type1"></li> 93 +
86 - <li class="cr" id="type2"></li> 94 + <!-- Nav Item - Dashboard -->
87 - <li class="cr" id="type3"></li> 95 + <li class="nav-item active">
88 - <li class="cr" id="type4"></li> 96 + <a class="nav-link" id="list2">
89 - <li class="cr" id="type5"></li> 97 + <i class="fas fa-fw"></i>
90 - <li class="cr" id="type6"></li> 98 + <span>전체 목록</span></a>
91 - <li class="cr" id="type7"></li> 99 + </li>
92 - <li class="cr" id="type8"></li> 100 +
93 - </ul> 101 + <!-- Nav Item - Dashboard -->
94 - </div> 102 + <li class="nav-item active">
95 - <div id="chart" style="display:none"> 103 + <a class="nav-link" id="list4">
96 - <div> 104 + <i class="fas fa-fw"></i>
97 - <canvas id="myChart"></canvas> 105 + <span>특정 기간 목록</span></a>
98 - </div> 106 + </li>
99 - </div> 107 +
100 - <div id="listspace" style="display:none"> 108 + <form name="dateForm" method="post" id="dateForm">
101 - <div id="myList"> 109 + <input type="date" id="between_list_date_start" />
102 - <input class="search" placeholder="Search" /> 110 + ~
103 - <div id="myList_in"> 111 + <input type="date" id="between_list_date_end" />
104 - <li class="sort" data-sort="date"># 시간순</li> 112 + <input type="button" id="between_date_submit" value="》" onclick="get_date_list();" />
105 - <li class="filterlabel"># 통화 113 + </form>
106 - <input type="checkbox" class="filter1" id="filter1" data_filter="type_cs" data_value="call" /> 114 +
107 - </li> 115 + <!-- Divider -->
108 - <li class="filterlabel"># 문자 116 + <hr class="sidebar-divider">
109 - <input type="checkbox" class="filter1" id="filter1" data_filter="type_cs" data_value="sms" /> 117 +
110 - </li> 118 + <!-- Heading -->
111 - <li class="filterlabel"># 수신 119 + <div class="sidebar-heading">
112 - <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="get" /> 120 + 상세 분석
113 - </li> 121 + </div>
114 - <li class="filterlabel"># 발신 122 +
115 - <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="send" /> 123 + <!-- Nav Item - Dashboard -->
116 - </li> 124 + <li class="nav-item active">
117 - <li class="filterlabel"># 부재중 125 + <a class="nav-link" id="more1">
118 - <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="missed" /> 126 + <i class="fas fa-fw"></i>
119 - </li> 127 + <span>전체 연락 순위</span></a>
120 - <li class="filterlabel"># 10분 이하 128 + </li>
121 - <input type="checkbox" class="filter1" id="filter1" data_filter="duration" data_value="less10" /> 129 +
122 - </li> 130 + <!-- Nav Item - Dashboard -->
123 - <li class="filterlabel"># 1시간 이상 131 + <li class="nav-item active">
124 - <input type="checkbox" class="filter1" id="filter1" data_filter="duration" data_value="more60" /> 132 + <a class="nav-link" id="more2">
125 - </li> 133 + <i class="fas fa-fw"></i>
126 - <li class="filterlabel"># 삭제된 문자 134 + <span>특정 기간 연락 순위</span></a>
127 - <input type="checkbox" class="filter1" id="filter1" data_filter="delete" data_value="true" /> 135 + </li>
128 - </li> 136 +
137 + <form name="dateForm" method="post" id="dateForm">
138 + <input type="date" id="between_rank_date_start" />
139 + ~
140 + <input type="date" id="between_rank_date_end" />
141 + <input type="button" id="between_rank_submit" value="》" onclick="get_date_rank();" />
142 + </form>
143 +
144 + <!-- Nav Item - Dashboard -->
145 + <li class="nav-item active">
146 + <a class="nav-link" id="more3">
147 + <i class="fas fa-fw"></i>
148 + <span>전체 연락 시간대</span></a>
149 + </li>
150 +
151 + <!-- Nav Item - Dashboard -->
152 + <li class="nav-item active">
153 + <a class="nav-link" id="more4">
154 + <i class="fas fa-fw"></i>
155 + <span>특정 기간 연락 시간대</span></a>
156 + </li>
157 +
158 + <form name="dateForm" method="post" id="dateForm">
159 + <input type="date" id="between_timeline_date_start" />
160 + ~
161 + <input type="date" id="between_timeline_date_end" />
162 + <input type="button" id="between_timeline_submit" value="》" onclick="get_date_timeline();" />
163 + </form>
164 +
165 + <!-- Nav Item - Dashboard -->
166 + <li class="nav-item active">
167 + <a class="nav-link" id="more5">
168 + <i class="fas fa-fw"></i>
169 + <span>특정 연락처 연락 시간대</span></a>
170 + </li>
171 +
172 + <form name="numberForm" method="post" id="numberForm">
173 + <input type="text" id="timeline_number" />
174 + <input type="button" id="number_push" value="+" onclick="get_number_timeline_push();" />
175 + <input type="button" id="number_pop" value="-" onclick="get_number_timeline_pop();" />
176 + <input type="button" id="number_submit" value="》" onclick="get_number_timeline();" />
177 + </form>
178 + <li class="nav-item active" id="more5_list"></li>
179 +
180 + <!-- Nav Item - Dashboard -->
181 + <li class="nav-item active">
182 + <a class="nav-link" id="more6">
183 + <i class="fas fa-fw"></i>
184 + <span>전체 답장 시간</span></a>
185 + </li>
186 +
187 + <!-- Nav Item - Dashboard -->
188 + <li class="nav-item active">
189 + <a class="nav-link" id="more7">
190 + <i class="fas fa-fw"></i>
191 + <span>특정 연락처 답장 시간</span></a>
192 + </li>
193 +
194 + <form name="numberForm" method="post" id="numberForm">
195 + <input type="text" id="restime_number" />
196 + <input type="button" id="number_push" value="+" onclick="get_number_restime_push();" />
197 + <input type="button" id="number_pop" value="-" onclick="get_number_restime_pop();" />
198 + <input type="button" id="number_submit" value="》" onclick="get_number_restime();" />
199 + </form>
200 + <li class="nav-item active" id="more7_list"></li>
201 + </ul>
202 + <!-- End of Sidebar -->
203 +
204 + <!-- Content Wrapper -->
205 + <div id="content-wrapper" class="d-flex flex-column">
206 +
207 + <!-- Main Content -->
208 + <div id="content">
209 +
210 + <!-- Begin Page Content -->
211 + <div class="container-fluid">
212 +
213 + <!-- Page Heading -->
214 + <div class="d-sm-flex align-items-center justify-content-between mb-4">
215 + <h1 class="h3 mb-0 text-gray-800" id="menu_name"></h1>
216 + </div>
217 +
218 + <div class="row">
219 + <div id="choice">
220 + <ul id="choiceul">
221 + <li class="cr" id="type1"></li>
222 + <li class="cr" id="type2"></li>
223 + <li class="cr" id="type3"></li>
224 + <li class="cr" id="type4"></li>
225 + <li class="cr" id="type5"></li>
226 + <li class="cr" id="type6"></li>
227 + <li class="cr" id="type7"></li>
228 + <li class="cr" id="type8"></li>
229 + </ul>
230 + </div>
231 + </div>
232 + <!-- Content Row -->
233 +
234 + <div class="row">
235 +
236 + <!-- Area Chart -->
237 + <div class="col-xl-8 col-lg-7" id="chart" style="display:none">
238 + <div class="card shadow mb-4">
239 + <!-- Card Header - Dropdown -->
240 + <div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
241 + <h6 class="m-0 font-weight-bold text-primary" id="box_name"># 연락 수</h6>
242 + <div class="dropdown no-arrow">
243 + <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
244 + <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
245 + </a>
246 + <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
247 + <div class="dropdown-header">Dropdown Header:</div>
248 + <a class="dropdown-item" href="#">Action</a>
249 + <a class="dropdown-item" href="#">Another action</a>
250 + <div class="dropdown-divider"></div>
251 + <a class="dropdown-item" href="#">Something else here</a>
129 </div> 252 </div>
253 + </div>
254 + </div>
255 + <!-- Card Body -->
256 + <div class="card-body">
257 + <div class="chart-area">
258 + <canvas id="myChart" width="710" height="350" style="margin-left:4px; margin-top:4px;"></canvas>
259 + </div>
130 </div> 260 </div>
131 - <ol class="list"></ol> 261 + </div>
132 </div> 262 </div>
263 + </div>
264 +
265 + <div class="row">
266 + <div id="listspace" style="display:none">
267 + <div id="myList">
268 + <form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
269 + <div class="input-group">
270 + <input type="text" class="search form-control bg-light border-0 small" placeholder="Search">
271 + </div>
272 + </form>
273 + <div id="myList_in">
274 + <li class="sort" data-sort="date"># 시간순</li>
275 + <li class="filterlabel"># 통화
276 + <input type="checkbox" class="filter1" id="filter1" data_filter="type_cs" data_value="call" />
277 + </li>
278 + <li class="filterlabel"># 문자
279 + <input type="checkbox" class="filter1" id="filter1" data_filter="type_cs" data_value="sms" />
280 + </li>
281 + <li class="filterlabel"># 수신
282 + <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="get" />
283 + </li>
284 + <li class="filterlabel"># 발신
285 + <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="send" />
286 + </li>
287 + <li class="filterlabel"># 부재중
288 + <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="missed" />
289 + </li>
290 + <li class="filterlabel"># 10분 이하
291 + <input type="checkbox" class="filter1" id="filter1" data_filter="duration" data_value="less10" />
292 + </li>
293 + <li class="filterlabel"># 1시간 이상
294 + <input type="checkbox" class="filter1" id="filter1" data_filter="duration" data_value="more60" />
295 + </li>
296 + <li class="filterlabel"># 삭제된 문자
297 + <input type="checkbox" class="filter1" id="filter1" data_filter="delete" data_value="true" />
298 + </li>
299 + </div>
300 + </div>
301 + <ol class="list"></ol>
302 + </div>
303 +
133 <div id="listspace2" style="display:none"> 304 <div id="listspace2" style="display:none">
134 - <div id="myList"> 305 + <div id="myList">
135 - <input class="search" placeholder="Search" /> 306 + <form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
136 - <div id="myList_in"> 307 + <div class="input-group">
137 - <li class="sort" data-sort="date"># 시간순</li> 308 + <input type="text" class="search form-control bg-light border-0 small" placeholder="Search">
138 - <li class="filterlabel"># 통화 309 + </div>
139 - <input type="checkbox" class="filter2" id="filter2" data_filter="type_cs" data_value="call"/> 310 + </form>
140 - </li> 311 + <div id="myList_in">
141 - <li class="filterlabel"># 문자 312 + <li class="sort" data-sort="date"># 시간순</li>
142 - <input type="checkbox" class="filter2" id="filter2" data_filter="type_cs" data_value="sms"/> 313 + <li class="filterlabel"># 통화
143 - </li> 314 + <input type="checkbox" class="filter2" id="filter2" data_filter="type_cs" data_value="call"/>
144 - <li class="filterlabel"># 수신 315 + </li>
145 - <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="get"/> 316 + <li class="filterlabel"># 문자
146 - </li> 317 + <input type="checkbox" class="filter2" id="filter2" data_filter="type_cs" data_value="sms"/>
147 - <li class="filterlabel"># 발신 318 + </li>
148 - <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="send"/> 319 + <li class="filterlabel"># 수신
149 - </li> 320 + <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="get"/>
150 - <li class="filterlabel"># 부재중 321 + </li>
151 - <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="missed"/> 322 + <li class="filterlabel"># 발신
152 - </li> 323 + <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="send"/>
153 - <li class="filterlabel"># 10분 이하 324 + </li>
154 - <input type="checkbox" class="filter2" id="filter2" data_filter="duration" data_value="less10"/> 325 + <li class="filterlabel"># 부재중
155 - </li> 326 + <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="missed"/>
156 - <li class="filterlabel"># 1시간 이상 327 + </li>
157 - <input type="checkbox" class="filter2" id="filter2" data_filter="duration" data_value="more60"/> 328 + <li class="filterlabel"># 10분 이하
158 - </li> 329 + <input type="checkbox" class="filter2" id="filter2" data_filter="duration" data_value="less10"/>
159 - <li class="filterlabel"># 삭제된 문자 330 + </li>
160 - <input type="checkbox" class="filter2" id="filter2" data_filter="delete" data_value="true"/> 331 + <li class="filterlabel"># 1시간 이상
161 - </li> 332 + <input type="checkbox" class="filter2" id="filter2" data_filter="duration" data_value="more60"/>
162 - </div> 333 + </li>
334 + <li class="filterlabel"># 삭제된 문자
335 + <input type="checkbox" class="filter2" id="filter2" data_filter="delete" data_value="true"/>
336 + </li>
163 </div> 337 </div>
164 - <ol class="list"></ol> 338 + </div>
339 + <ol class="list"></ol>
165 </div> 340 </div>
341 +
166 <div id="listspace3" style="display:none"> 342 <div id="listspace3" style="display:none">
167 - <div id="myList"> 343 + <div id="myList">
168 - <input class="search" placeholder="Search" /> 344 + <form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
169 - <div id="myList_in"> 345 + <div class="input-group">
170 - <li class="sort" data-sort="date"># 시간순</li> 346 + <input type="text" class="search form-control bg-light border-0 small" placeholder="Search">
171 - <li class="filterlabel"># 통화 347 + </div>
172 - <input type="checkbox" class="filter3" id="filter3" data_filter="type_cs" data_value="call"/> 348 + </form>
173 - </li> 349 + <div id="myList_in">
174 - <li class="filterlabel"># 문자 350 + <li class="sort" data-sort="date"># 시간순</li>
175 - <input type="checkbox" class="filter3" id="filter3" data_filter="type_cs" data_value="sms"/> 351 + <li class="filterlabel"># 통화
176 - </li> 352 + <input type="checkbox" class="filter3" id="filter3" data_filter="type_cs" data_value="call"/>
177 - <li class="filterlabel"># 수신 353 + </li>
178 - <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="get"/> 354 + <li class="filterlabel"># 문자
179 - </li> 355 + <input type="checkbox" class="filter3" id="filter3" data_filter="type_cs" data_value="sms"/>
180 - <li class="filterlabel"># 발신 356 + </li>
181 - <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="send"/> 357 + <li class="filterlabel"># 수신
182 - </li> 358 + <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="get"/>
183 - <li class="filterlabel"># 부재중 359 + </li>
184 - <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="missed"/> 360 + <li class="filterlabel"># 발신
185 - </li> 361 + <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="send"/>
186 - <li class="filterlabel"># 10분 이하 362 + </li>
187 - <input type="checkbox" class="filter3" id="filter3" data_filter="duration" data_value="less10"/> 363 + <li class="filterlabel"># 부재중
188 - </li> 364 + <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="missed"/>
189 - <li class="filterlabel"># 1시간 이상 365 + </li>
190 - <input type="checkbox" class="filter3" id="filter3" data_filter="duration" data_value="more60"/> 366 + <li class="filterlabel"># 10분 이하
191 - </li> 367 + <input type="checkbox" class="filter3" id="filter3" data_filter="duration" data_value="less10"/>
192 - <li class="filterlabel"># 삭제된 문자 368 + </li>
193 - <input type="checkbox" class="filter3" id="filter3" data_filter="delete" data_value="true"/> 369 + <li class="filterlabel"># 1시간 이상
194 - </li> 370 + <input type="checkbox" class="filter3" id="filter3" data_filter="duration" data_value="more60"/>
195 - </div> 371 + </li>
372 + <li class="filterlabel"># 삭제된 문자
373 + <input type="checkbox" class="filter3" id="filter3" data_filter="delete" data_value="true"/>
374 + </li>
196 </div> 375 </div>
197 - <ol class="list"></ol> 376 + </div>
377 + <ol class="list"></ol>
198 </div> 378 </div>
379 +
199 <div id="listspace4" style="display:none"> 380 <div id="listspace4" style="display:none">
200 - <div id="myList"> 381 + <div id="myList">
201 - <input class="search" placeholder="Search" /> 382 + <form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
202 - <li class="sort" data-sort="get_date"># 시간순</li> 383 + <div class="input-group">
203 - </div> 384 + <input type="text" class="search form-control bg-light border-0 small" placeholder="Search">
204 - <ol class="list"></ol> 385 + </div>
386 + </form>
387 + <li class="sort" data-sort="get_date"># 시간순</li>
388 + </div>
389 + <ol class="list"></ol>
205 </div> 390 </div>
391 +
206 <div id="listspace5" style="display:none"> 392 <div id="listspace5" style="display:none">
207 - <div id="myList"> 393 + <div id="myList">
208 - <input class="search" placeholder="Search" /> 394 + <form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
209 - <li class="sort" data-sort="get_date"># 시간순</li> 395 + <div class="input-group">
210 - </div> 396 + <input type="text" class="search form-control bg-light border-0 small" placeholder="Search">
211 - <ol class="list"></ol> 397 + </div>
398 + </form>
399 + <li class="sort" data-sort="get_date"># 시간순</li>
400 + </div>
401 + <ol class="list"></ol>
212 </div> 402 </div>
213 - </div> 403 + </div>
404 + </div>
405 + <!-- /.container-fluid -->
406 +
407 + </div>
408 + <!-- End of Main Content -->
409 +
410 + <!-- Footer -->
411 + <footer class="sticky-footer bg-white">
412 + <div class="container my-auto">
413 + <div class="copyright text-center my-auto">
414 + <span>Copyright &copy; Mobile Forensic Tool / F-out</span>
415 + </div>
416 + </div>
417 + </footer>
418 + <!-- End of Footer -->
419 +
214 </div> 420 </div>
215 - <script src="menu1.js"></script> 421 + <!-- End of Content Wrapper -->
216 - <script> 422 +
217 - var myChart = new Chart(ctx, options_main_stacked); 423 + </div>
424 + <!-- End of Page Wrapper -->
425 +
426 + <!-- Bootstrap core JavaScript-->
427 + <script src="../assets/jquery/jquery.min.js"></script>
428 + <script src="../assets/bootstrap/js/bootstrap.bundle.min.js"></script>
429 +
430 + <!-- Core plugin JavaScript-->
431 + <script src="../assets/jquery-easing/jquery.easing.min.js"></script>
432 +
433 + <!-- Custom scripts for all pages-->
434 + <script src="menu1.js"></script>
435 +
436 + <script>
437 + var myChart = new Chart(ctx, options_main_stacked);
218 window.myChart.destroy(); 438 window.myChart.destroy();
219 - </script> 439 + </script>
220 </body> 440 </body>
221 -</html>
...\ No newline at end of file ...\ No newline at end of file
441 +
442 +</html>
......
...@@ -201,7 +201,7 @@ connection.query('drop table if exists calllog_month; create table calllog_month ...@@ -201,7 +201,7 @@ connection.query('drop table if exists calllog_month; create table calllog_month
201 } 201 }
202 }); 202 });
203 203
204 -connection.query('drop table calllog_user; create table calllog_user(name varchar(255), number varchar(20) not null, callcount int, smscount int, durationsum int, primary key(number)); insert into calllog_user(name, number, callcount, durationsum) (select name, number, count(*), sum(duration) from calllog where type in (1,2,3) group by number); update calllog_user cu left join (select number, count(*) "count" from calllog where type not in (1,2,3) group by number) calllog on cu.number=calllog.number set cu.smscount=ifnull(calllog.count,0);', function(err, rows, fields){ 204 +connection.query('drop table if exists calllog_user; create table calllog_user(name varchar(255), number varchar(20) not null, callcount int, smscount int, durationsum int, primary key(number)); insert into calllog_user(name, number, callcount, durationsum) (select name, number, count(*), sum(duration) from calllog where type in (1,2,3) group by number); update calllog_user cu left join (select number, count(*) "count" from calllog where type not in (1,2,3) group by number) calllog on cu.number=calllog.number set cu.smscount=ifnull(calllog.count,0);', function(err, rows, fields){
205 if(err) 205 if(err)
206 cc.innerHTML='Error-#6'; 206 cc.innerHTML='Error-#6';
207 else{ 207 else{
...@@ -271,7 +271,7 @@ connection.query('drop table calllog_user; create table calllog_user(name varcha ...@@ -271,7 +271,7 @@ connection.query('drop table calllog_user; create table calllog_user(name varcha
271 271
272 272
273 273
274 -connection.query('drop table calllog_hour; create table calllog_hour(hour int not null, callcount int, smscount int, primary key(hour)); set @hour:=-1; insert into calllog_hour(hour, callcount) (select (@hour:=@hour+1) "hour", (select count(*) from calllog where type in (1,2,3) and hour(date)=@hour) "count" from calllog where @hour<23); update calllog_hour ch left join (select hour(date) "hour", count(*) "count" from calllog where type not in (1,2,3) group by hour(date)) calllog on ch.hour=calllog.hour set ch.smscount=ifnull(calllog.count,0);', function(err, rows, fields){ 274 +connection.query('drop table if exists calllog_hour; create table calllog_hour(hour int not null, callcount int, smscount int, primary key(hour)); set @hour:=-1; insert into calllog_hour(hour, callcount) (select (@hour:=@hour+1) "hour", (select count(*) from calllog where type in (1,2,3) and hour(date)=@hour) "count" from calllog where @hour<23); update calllog_hour ch left join (select hour(date) "hour", count(*) "count" from calllog where type not in (1,2,3) group by hour(date)) calllog on ch.hour=calllog.hour set ch.smscount=ifnull(calllog.count,0);', function(err, rows, fields){
275 if(err) 275 if(err)
276 cc.innerHTML='Error-#11'; 276 cc.innerHTML='Error-#11';
277 else{ 277 else{
...@@ -291,6 +291,7 @@ connection.query('drop table calllog_hour; create table calllog_hour(hour int no ...@@ -291,6 +291,7 @@ connection.query('drop table calllog_hour; create table calllog_hour(hour int no
291 }) 291 })
292 292
293 var options = { 293 var options = {
294 + responsive: false,
294 title:{ 295 title:{
295 display:true, 296 display:true,
296 text:title_text 297 text:title_text
...@@ -306,6 +307,7 @@ var options = { ...@@ -306,6 +307,7 @@ var options = {
306 }; 307 };
307 308
308 var options_stacked = { 309 var options_stacked = {
310 + responsive: false,
309 title:{ 311 title:{
310 display:true, 312 display:true,
311 text:title_text 313 text:title_text
...@@ -335,7 +337,6 @@ var options_main_2={ ...@@ -335,7 +337,6 @@ var options_main_2={
335 label:label_data2_text, 337 label:label_data2_text,
336 data:label_data2, 338 data:label_data2,
337 backgroundColor:'rgba(255, 206, 86, 0.2)', 339 backgroundColor:'rgba(255, 206, 86, 0.2)',
338 - borderColor:'rgba(255, 206, 86, 1)',
339 borderWidth: 1 340 borderWidth: 1
340 }] 341 }]
341 }, 342 },
...@@ -350,7 +351,6 @@ var options_main_3={ ...@@ -350,7 +351,6 @@ var options_main_3={
350 label:label_data3_text, 351 label:label_data3_text,
351 data:label_data3, 352 data:label_data3,
352 backgroundColor:'rgba(75, 192, 192, 0.2)', 353 backgroundColor:'rgba(75, 192, 192, 0.2)',
353 - borderColor:'rgba(75, 192, 192, 1)',
354 borderWidth: 1 354 borderWidth: 1
355 }] 355 }]
356 }, 356 },
...@@ -365,7 +365,6 @@ var options_main_4={ ...@@ -365,7 +365,6 @@ var options_main_4={
365 label:label_data4_text, 365 label:label_data4_text,
366 data:label_data4, 366 data:label_data4,
367 backgroundColor:'rgba(255, 206, 86, 0.2)', 367 backgroundColor:'rgba(255, 206, 86, 0.2)',
368 - borderColor:'rgba(255, 206, 86, 1)',
369 borderWidth: 1 368 borderWidth: 1
370 }] 369 }]
371 }, 370 },
...@@ -387,12 +386,12 @@ var options_main_stacked={ ...@@ -387,12 +386,12 @@ var options_main_stacked={
387 { 386 {
388 label:label_data2_text, 387 label:label_data2_text,
389 data:label_data2, 388 data:label_data2,
390 - backgroundColor:'rgba(255, 206, 86, 0.2)' 389 + backgroundColor:'rgba(255, 206, 86, 0.2)',
391 }, 390 },
392 { 391 {
393 label:label_data3_text, 392 label:label_data3_text,
394 data:label_data3, 393 data:label_data3,
395 - backgroundColor:'rgba(75, 192, 192, 0.2)' 394 + backgroundColor:'rgba(75, 192, 192, 0.2)',
396 }] 395 }]
397 }, 396 },
398 options: options_stacked 397 options: options_stacked
...@@ -407,7 +406,6 @@ var options_main_nu_2={ ...@@ -407,7 +406,6 @@ var options_main_nu_2={
407 label:label_data2_text_nu, 406 label:label_data2_text_nu,
408 data:label_data2_nu, 407 data:label_data2_nu,
409 backgroundColor:'rgba(255, 206, 86, 0.2)', 408 backgroundColor:'rgba(255, 206, 86, 0.2)',
410 - borderColor:'rgba(255, 206, 86, 1)',
411 borderWidth: 1 409 borderWidth: 1
412 }] 410 }]
413 }, 411 },
...@@ -422,7 +420,6 @@ var options_main_nu_3={ ...@@ -422,7 +420,6 @@ var options_main_nu_3={
422 label:label_data3_text_nu, 420 label:label_data3_text_nu,
423 data:label_data3_nu, 421 data:label_data3_nu,
424 backgroundColor:'rgba(75, 192, 192, 0.2)', 422 backgroundColor:'rgba(75, 192, 192, 0.2)',
425 - borderColor:'rgba(75, 192, 192, 1)',
426 borderWidth: 1 423 borderWidth: 1
427 }] 424 }]
428 }, 425 },
...@@ -437,7 +434,6 @@ var options_main_nu_4={ ...@@ -437,7 +434,6 @@ var options_main_nu_4={
437 label:label_data4_text_nu, 434 label:label_data4_text_nu,
438 data:label_data4_nu, 435 data:label_data4_nu,
439 backgroundColor:'rgba(255, 206, 86, 0.2)', 436 backgroundColor:'rgba(255, 206, 86, 0.2)',
440 - borderColor:'rgba(255, 206, 86, 1)',
441 borderWidth: 1 437 borderWidth: 1
442 }] 438 }]
443 }, 439 },
...@@ -542,6 +538,7 @@ function changeLabelText(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){ ...@@ -542,6 +538,7 @@ function changeLabelText(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){
542 options_main_nu_4.data.datasets[0].label=p; 538 options_main_nu_4.data.datasets[0].label=p;
543 options_main_nu_4.data.datasets[0].data=q; 539 options_main_nu_4.data.datasets[0].data=q;
544 540
541 + menu_name.innerHTML=r;
545 options.title.text=r; 542 options.title.text=r;
546 options_stacked.title.text=r; 543 options_stacked.title.text=r;
547 options_main_2.options=options; 544 options_main_2.options=options;
...@@ -573,6 +570,7 @@ function changeLabelText2(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){ ...@@ -573,6 +570,7 @@ function changeLabelText2(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){
573 options_main_4.data.datasets[0].label=o; 570 options_main_4.data.datasets[0].label=o;
574 options_main_4.data.datasets[0].data=p; 571 options_main_4.data.datasets[0].data=p;
575 572
573 + menu_name.innerHTML=r;
576 options.title.text=r; 574 options.title.text=r;
577 options_stacked.title.text=r; 575 options_stacked.title.text=r;
578 options_main_2.options=options; 576 options_main_2.options=options;
...@@ -605,6 +603,7 @@ analysis1.addEventListener('click', function(){ ...@@ -605,6 +603,7 @@ analysis1.addEventListener('click', function(){
605 change_type_title(1); 603 change_type_title(1);
606 changeLabelText(month_6, "연락 수", logcount_6, "통화 수", callcount_6, "문자 수", smscount_6, "통화 시간", durationsum_6, "누적 연락 수", logcount_6nu, "누적 통화 수", callcount_6nu, "누적 문자 수",smscount_6nu, "누적 통화 시간", durationsum_6nu,"최근 6개월의 통계"); 604 changeLabelText(month_6, "연락 수", logcount_6, "통화 수", callcount_6, "문자 수", smscount_6, "통화 시간", durationsum_6, "누적 연락 수", logcount_6nu, "누적 통화 수", callcount_6nu, "누적 문자 수",smscount_6nu, "누적 통화 시간", durationsum_6nu,"최근 6개월의 통계");
607 choosed_menu="analysis1"; 605 choosed_menu="analysis1";
606 + box_name.innerHTML="# 연락 수"
608 window.myChart.destroy(); 607 window.myChart.destroy();
609 window.myChart = new Chart(ctx, options_main_stacked); 608 window.myChart = new Chart(ctx, options_main_stacked);
610 }); 609 });
...@@ -615,6 +614,7 @@ analysis2.addEventListener('click', function(){ ...@@ -615,6 +614,7 @@ analysis2.addEventListener('click', function(){
615 change_type_title(1); 614 change_type_title(1);
616 changeLabelText(month, "연락 수", logcount, "통화 수", callcount, "문자 수", smscount, "통화 시간", durationsum, "누적 연락 수", logcount_nu, "누적 통화 수", callcount_nu, "누적 문자 수",smscount_nu, "누적 통화 시간", durationsum_nu,"전체 기간의 통계"); 615 changeLabelText(month, "연락 수", logcount, "통화 수", callcount, "문자 수", smscount, "통화 시간", durationsum, "누적 연락 수", logcount_nu, "누적 통화 수", callcount_nu, "누적 문자 수",smscount_nu, "누적 통화 시간", durationsum_nu,"전체 기간의 통계");
617 choosed_menu="analysis2"; 616 choosed_menu="analysis2";
617 + box_name.innerHTML="# 연락 수"
618 window.myChart.destroy(); 618 window.myChart.destroy();
619 window.myChart = new Chart(ctx, options_main_stacked); 619 window.myChart = new Chart(ctx, options_main_stacked);
620 }); 620 });
...@@ -625,6 +625,7 @@ analysis3.addEventListener('click', function(){ ...@@ -625,6 +625,7 @@ analysis3.addEventListener('click', function(){
625 change_type_title(1); 625 change_type_title(1);
626 changeLabelText(month_b, "연락 수", logcount_b, "통화 수", callcount_b, "문자 수", smscount_b, "통화 시간", durationsum_b, "누적 연락 수", logcount_bnu, "누적 통화 수", callcount_bnu, "누적 문자 수",smscount_bnu, "누적 통화 시간", durationsum_bnu,"특정 기간의 통계"); 626 changeLabelText(month_b, "연락 수", logcount_b, "통화 수", callcount_b, "문자 수", smscount_b, "통화 시간", durationsum_b, "누적 연락 수", logcount_bnu, "누적 통화 수", callcount_bnu, "누적 문자 수",smscount_bnu, "누적 통화 시간", durationsum_bnu,"특정 기간의 통계");
627 choosed_menu="analysis3"; 627 choosed_menu="analysis3";
628 + box_name.innerHTML="# 연락 수"
628 window.myChart.destroy(); 629 window.myChart.destroy();
629 window.myChart = new Chart(ctx, options_main_stacked); 630 window.myChart = new Chart(ctx, options_main_stacked);
630 }); 631 });
...@@ -635,6 +636,7 @@ analysis4.addEventListener('click', function(){ ...@@ -635,6 +636,7 @@ analysis4.addEventListener('click', function(){
635 change_type_title(1); 636 change_type_title(1);
636 changeLabelText(month_w, "연락 수", logcount_w, "통화 수", callcount_w, "문자 수", smscount_w, "통화 시간", durationsum_w, "누적 연락 수", logcount_wnu, "누적 통화 수", callcount_wnu, "누적 문자 수",smscount_wnu, "누적 통화 시간", durationsum_wnu,"특정 연락처와의 통계"); 637 changeLabelText(month_w, "연락 수", logcount_w, "통화 수", callcount_w, "문자 수", smscount_w, "통화 시간", durationsum_w, "누적 연락 수", logcount_wnu, "누적 통화 수", callcount_wnu, "누적 문자 수",smscount_wnu, "누적 통화 시간", durationsum_wnu,"특정 연락처와의 통계");
637 choosed_menu="analysis4"; 638 choosed_menu="analysis4";
639 + box_name.innerHTML="# 연락 수"
638 window.myChart.destroy(); 640 window.myChart.destroy();
639 window.myChart = new Chart(ctx, options_main_stacked); 641 window.myChart = new Chart(ctx, options_main_stacked);
640 }); 642 });
...@@ -649,6 +651,7 @@ list1.addEventListener('click', function(){ ...@@ -649,6 +651,7 @@ list1.addEventListener('click', function(){
649 chartspace.style="display:none"; 651 chartspace.style="display:none";
650 choicespace.style="display:none"; 652 choicespace.style="display:none";
651 choosed_menu="list1"; 653 choosed_menu="list1";
654 + menu_name.innerHTML="최근 1개월 목록";
652 window.myChart.destroy(); 655 window.myChart.destroy();
653 }); 656 });
654 657
...@@ -662,6 +665,7 @@ list2.addEventListener('click', function(){ ...@@ -662,6 +665,7 @@ list2.addEventListener('click', function(){
662 chartspace.style="display:none"; 665 chartspace.style="display:none";
663 choicespace.style="display:none"; 666 choicespace.style="display:none";
664 choosed_menu="list2"; 667 choosed_menu="list2";
668 + menu_name.innerHTML="전체 목록";
665 window.myChart.destroy(); 669 window.myChart.destroy();
666 }); 670 });
667 671
...@@ -675,6 +679,7 @@ list4.addEventListener('click', function(){ ...@@ -675,6 +679,7 @@ list4.addEventListener('click', function(){
675 chartspace.style="display:none"; 679 chartspace.style="display:none";
676 choicespace.style="display:none"; 680 choicespace.style="display:none";
677 choosed_menu="list4"; 681 choosed_menu="list4";
682 + menu_name.innerHTML="특정 기간 목록";
678 window.myChart.destroy(); 683 window.myChart.destroy();
679 }); 684 });
680 685
...@@ -684,6 +689,7 @@ more1.addEventListener('click', function(){ ...@@ -684,6 +689,7 @@ more1.addEventListener('click', function(){
684 change_type_title(4); 689 change_type_title(4);
685 changeLabelText2(ranking_rnu, "누적 연락 수", logcount_rnu, "누적 통화 수", callcount_rnu, "누적 문자 수", smscount_rnu, ranking_rnuc, "누적 통화 수", callcount_rnuc, ranking_rnus, "누적 문자 수", smscount_rnus, ranking_rnud, "누적 통화 시간", durationsum_rnud, [],"전체 기간의 연락 순위"); 690 changeLabelText2(ranking_rnu, "누적 연락 수", logcount_rnu, "누적 통화 수", callcount_rnu, "누적 문자 수", smscount_rnu, ranking_rnuc, "누적 통화 수", callcount_rnuc, ranking_rnus, "누적 문자 수", smscount_rnus, ranking_rnud, "누적 통화 시간", durationsum_rnud, [],"전체 기간의 연락 순위");
686 choosed_menu="more1"; 691 choosed_menu="more1";
692 + box_name.innerHTML="# 연락 수"
687 window.myChart.destroy(); 693 window.myChart.destroy();
688 window.myChart = new Chart(ctx, options_main_stacked); 694 window.myChart = new Chart(ctx, options_main_stacked);
689 }); 695 });
...@@ -694,6 +700,7 @@ more2.addEventListener('click', function(){ ...@@ -694,6 +700,7 @@ more2.addEventListener('click', function(){
694 change_type_title(4); 700 change_type_title(4);
695 changeLabelText2(ranking_brnu, "누적 연락 수", logcount_brnu, "누적 통화 수", callcount_brnu, "누적 문자 수", smscount_brnu, ranking_brnuc, "누적 통화 수", callcount_brnuc, ranking_brnus, "누적 문자 수", smscount_brnus, ranking_brnud, "누적 통화 시간", durationsum_brnud, [],"특정 기간의 연락 순위"); 701 changeLabelText2(ranking_brnu, "누적 연락 수", logcount_brnu, "누적 통화 수", callcount_brnu, "누적 문자 수", smscount_brnu, ranking_brnuc, "누적 통화 수", callcount_brnuc, ranking_brnus, "누적 문자 수", smscount_brnus, ranking_brnud, "누적 통화 시간", durationsum_brnud, [],"특정 기간의 연락 순위");
696 choosed_menu="more2"; 702 choosed_menu="more2";
703 + box_name.innerHTML="# 연락 수"
697 window.myChart.destroy(); 704 window.myChart.destroy();
698 window.myChart = new Chart(ctx, options_main_stacked); 705 window.myChart = new Chart(ctx, options_main_stacked);
699 }); 706 });
...@@ -704,6 +711,7 @@ more3.addEventListener('click', function(){ ...@@ -704,6 +711,7 @@ more3.addEventListener('click', function(){
704 change_type_title(5); 711 change_type_title(5);
705 changeLabelText(timeline, "누적 연락 수", logcount_t, "누적 통화 수", callcount_t, "누적 문자 수", smscount_t, "수", [], "수", [], "수",[] , "수",[], "수", [],"전체 기간의 선호 연락 시간대"); 712 changeLabelText(timeline, "누적 연락 수", logcount_t, "누적 통화 수", callcount_t, "누적 문자 수", smscount_t, "수", [], "수", [], "수",[] , "수",[], "수", [],"전체 기간의 선호 연락 시간대");
706 choosed_menu="more3"; 713 choosed_menu="more3";
714 + box_name.innerHTML="# 연락 수"
707 window.myChart.destroy(); 715 window.myChart.destroy();
708 window.myChart = new Chart(ctx, options_main_stacked); 716 window.myChart = new Chart(ctx, options_main_stacked);
709 }); 717 });
...@@ -714,6 +722,7 @@ more4.addEventListener('click', function(){ ...@@ -714,6 +722,7 @@ more4.addEventListener('click', function(){
714 change_type_title(5); 722 change_type_title(5);
715 changeLabelText(timeline, "누적 연락 수", logcount_tb, "누적 통화 수", callcount_tb, "누적 문자 수", smscount_tb, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 기간의 선호 연락 시간대"); 723 changeLabelText(timeline, "누적 연락 수", logcount_tb, "누적 통화 수", callcount_tb, "누적 문자 수", smscount_tb, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 기간의 선호 연락 시간대");
716 choosed_menu="more4"; 724 choosed_menu="more4";
725 + box_name.innerHTML="# 연락 수"
717 window.myChart.destroy(); 726 window.myChart.destroy();
718 window.myChart = new Chart(ctx, options_main_stacked); 727 window.myChart = new Chart(ctx, options_main_stacked);
719 }); 728 });
...@@ -724,6 +733,7 @@ more5.addEventListener('click', function(){ ...@@ -724,6 +733,7 @@ more5.addEventListener('click', function(){
724 change_type_title(5); 733 change_type_title(5);
725 changeLabelText(timeline, "누적 연락 수", logcount_tw, "누적 통화 수", callcount_tw, "누적 문자 수", smscount_tw, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 연락처와의 선호 연락 시간대"); 734 changeLabelText(timeline, "누적 연락 수", logcount_tw, "누적 통화 수", callcount_tw, "누적 문자 수", smscount_tw, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 연락처와의 선호 연락 시간대");
726 choosed_menu="more5"; 735 choosed_menu="more5";
736 + box_name.innerHTML="# 연락 수"
727 window.myChart.destroy(); 737 window.myChart.destroy();
728 window.myChart = new Chart(ctx, options_main_stacked); 738 window.myChart = new Chart(ctx, options_main_stacked);
729 }); 739 });
...@@ -740,6 +750,7 @@ type1.addEventListener('click', function(){ ...@@ -740,6 +750,7 @@ type1.addEventListener('click', function(){
740 case 'more3': 750 case 'more3':
741 case 'more4': 751 case 'more4':
742 case 'more5': 752 case 'more5':
753 + box_name.innerHTML="# 연락 수"
743 window.myChart.destroy(); 754 window.myChart.destroy();
744 window.myChart = new Chart(ctx, options_main_stacked); 755 window.myChart = new Chart(ctx, options_main_stacked);
745 break; 756 break;
...@@ -758,6 +769,7 @@ type2.addEventListener('click', function(){ ...@@ -758,6 +769,7 @@ type2.addEventListener('click', function(){
758 case 'more3': 769 case 'more3':
759 case 'more4': 770 case 'more4':
760 case 'more5': 771 case 'more5':
772 + box_name.innerHTML="# 통화 수";
761 window.myChart.destroy(); 773 window.myChart.destroy();
762 window.myChart = new Chart(ctx, options_main_2); 774 window.myChart = new Chart(ctx, options_main_2);
763 break; 775 break;
...@@ -776,6 +788,7 @@ type3.addEventListener('click', function(){ ...@@ -776,6 +788,7 @@ type3.addEventListener('click', function(){
776 case 'more3': 788 case 'more3':
777 case 'more4': 789 case 'more4':
778 case 'more5': 790 case 'more5':
791 + box_name.innerHTML="# 문자 수";
779 window.myChart.destroy(); 792 window.myChart.destroy();
780 window.myChart = new Chart(ctx, options_main_3); 793 window.myChart = new Chart(ctx, options_main_3);
781 break; 794 break;
...@@ -791,6 +804,7 @@ type4.addEventListener('click', function(){ ...@@ -791,6 +804,7 @@ type4.addEventListener('click', function(){
791 case 'analysis4': 804 case 'analysis4':
792 case 'more1': 805 case 'more1':
793 case 'more2': 806 case 'more2':
807 + box_name.innerHTML="# 통화 시간";
794 window.myChart.destroy(); 808 window.myChart.destroy();
795 window.myChart = new Chart(ctx, options_main_4); 809 window.myChart = new Chart(ctx, options_main_4);
796 break; 810 break;
...@@ -804,6 +818,7 @@ type5.addEventListener('click', function(){ ...@@ -804,6 +818,7 @@ type5.addEventListener('click', function(){
804 case 'analysis2': 818 case 'analysis2':
805 case 'analysis3': 819 case 'analysis3':
806 case 'analysis4': 820 case 'analysis4':
821 + box_name.innerHTML="# 누적 연락 수";
807 window.myChart.destroy(); 822 window.myChart.destroy();
808 window.myChart = new Chart(ctx, options_main_nu_stacked); 823 window.myChart = new Chart(ctx, options_main_nu_stacked);
809 break; 824 break;
...@@ -817,6 +832,7 @@ type6.addEventListener('click', function(){ ...@@ -817,6 +832,7 @@ type6.addEventListener('click', function(){
817 case 'analysis2': 832 case 'analysis2':
818 case 'analysis3': 833 case 'analysis3':
819 case 'analysis4': 834 case 'analysis4':
835 + box_name.innerHTML="# 누적 통화 수";
820 window.myChart.destroy(); 836 window.myChart.destroy();
821 window.myChart = new Chart(ctx, options_main_nu_2); 837 window.myChart = new Chart(ctx, options_main_nu_2);
822 break; 838 break;
...@@ -830,6 +846,7 @@ type7.addEventListener('click', function(){ ...@@ -830,6 +846,7 @@ type7.addEventListener('click', function(){
830 case 'analysis2': 846 case 'analysis2':
831 case 'analysis3': 847 case 'analysis3':
832 case 'analysis4': 848 case 'analysis4':
849 + box_name.innerHTML="# 누적 문자 수";
833 window.myChart.destroy(); 850 window.myChart.destroy();
834 window.myChart = new Chart(ctx, options_main_nu_3); 851 window.myChart = new Chart(ctx, options_main_nu_3);
835 break; 852 break;
...@@ -843,6 +860,7 @@ type8.addEventListener('click', function(){ ...@@ -843,6 +860,7 @@ type8.addEventListener('click', function(){
843 case 'analysis2': 860 case 'analysis2':
844 case 'analysis3': 861 case 'analysis3':
845 case 'analysis4': 862 case 'analysis4':
863 + box_name.innerHTML="# 누적 통화 시간";
846 window.myChart.destroy(); 864 window.myChart.destroy();
847 window.myChart = new Chart(ctx, options_main_nu_4); 865 window.myChart = new Chart(ctx, options_main_nu_4);
848 break; 866 break;
...@@ -1139,12 +1157,12 @@ function get_number_timeline(){ ...@@ -1139,12 +1157,12 @@ function get_number_timeline(){
1139 1157
1140 var options_list = { 1158 var options_list = {
1141 valueNames: [ 'type','type_cs','type_gs', 'number', 'date','body', 'duration', 'delete' ], 1159 valueNames: [ 'type','type_cs','type_gs', 'number', 'date','body', 'duration', 'delete' ],
1142 - item: '<li id="listrow"><h3 id="listrow_type" class="type"></h3><div id=m2><p id="listrow_number" class="number"></p><p id="listrow_date" class="date"></p></div><p id="listrow_body" class="body"></p></li>' 1160 + item: '<div class="col-xl-3 col-md-6 mb-4"><div class="card border-left-success shadow h-100 py-2"><div class="card-body"><div class="row no-gutters align-items-center"><div class="col mr-2"><li id="listrow"><h3 id="listrow_type" class="type"></h3><div id=m2><p id="listrow_number" class="number"></p><p id="listrow_date" class="date"></p></div><p id="listrow_body" class="body"></p></li></div></div></div></div></div>'
1143 }; 1161 };
1144 1162
1145 var options_list_res = { 1163 var options_list_res = {
1146 valueNames: [ 'number','get_body','get_date', 'send_body', 'get_date','timediff' ], 1164 valueNames: [ 'number','get_body','get_date', 'send_body', 'get_date','timediff' ],
1147 - item: '<li id="listrow"><h3 id="listrow_number" class="number"></h3><div id=m3><p id="listrow_get_body" class="get_body"></p><p id="listrow_get_date" class="get_date"></p></div><div id=m3><p id="listrow_send_body" class="send_body"></p><p id="listrow_send_date" class="send_date"></p></div><p id="listrow_timediff" class="timediff"></p></li>' 1165 + item: '<div class="col-xl-3 col-md-6 mb-4"><div class="card border-left-success shadow h-100 py-2"><div class="card-body"><div class="row no-gutters align-items-center"><div class="col mr-2"><li id="listrow"><h3 id="listrow_number" class="number"></h3><div id=m3><p id="listrow_get_body" class="get_body"></p><p id="listrow_get_date" class="get_date"></p></div><div id=m3><p id="listrow_send_body" class="send_body"></p><p id="listrow_send_date" class="send_date"></p></div><p id="listrow_timediff" class="timediff"></p></li></div></div></div></div></div>'
1148 }; 1166 };
1149 1167
1150 var values_list_6 = []; 1168 var values_list_6 = [];
...@@ -1565,7 +1583,7 @@ more7.addEventListener('click', function(){ ...@@ -1565,7 +1583,7 @@ more7.addEventListener('click', function(){
1565 }); 1583 });
1566 1584
1567 1585
1568 -connection.query('drop table sms_response; create table sms_response (number text, got_date datetime, got_body text, send_date datetime, send_body text, time int); insert into sms_response SELECT sms1.address, sms1.date,sms1.body, sms2.date, sms2.body,timestampdiff(second, sms1.date, sms2.date) FROM sms sms1, sms sms2 where sms1.tid=sms2.tid and sms1.type=1 and sms2.type=2 and timestampdiff(second, sms1.date, sms2.date) >0 and timestampdiff(day,sms2.date, sms1.date)< 2; delete sms1 from sms_response sms1, sms_response sms2 where sms1.send_date=sms2.send_date and timestampdiff(second, sms2.got_date,sms1.got_date)<0; delete sms1 from sms_response sms1, sms_response sms2 where sms1.got_date=sms2.got_date and timestampdiff(second, sms2.send_date,sms1.send_date)>0;', function(err, rows, fields){ 1586 +connection.query('drop table if exists sms_response; create table sms_response (number text, got_date datetime, got_body text, send_date datetime, send_body text, time int); insert into sms_response SELECT sms1.address, sms1.date,sms1.body, sms2.date, sms2.body,timestampdiff(second, sms1.date, sms2.date) FROM sms sms1, sms sms2 where sms1.tid=sms2.tid and sms1.type=1 and sms2.type=2 and timestampdiff(second, sms1.date, sms2.date) >0 and timestampdiff(day,sms2.date, sms1.date)< 2; delete sms1 from sms_response sms1, sms_response sms2 where sms1.send_date=sms2.send_date and timestampdiff(second, sms2.got_date,sms1.got_date)<0; delete sms1 from sms_response sms1, sms_response sms2 where sms1.got_date=sms2.got_date and timestampdiff(second, sms2.send_date,sms1.send_date)>0;', function(err, rows, fields){
1569 if(err) 1587 if(err)
1570 cc.innerHTML='Error-#27'; 1588 cc.innerHTML='Error-#27';
1571 else{ 1589 else{
......