/*!*Bootstrapv3.3.7(http://getbootstrap.com)*Copyright2011-2016Twitter,Inc.*LicensedundertheMITlicense*/if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery')}+function ($) { 'use strict'; var version = $.fn.jquery.split(' ')[0].split('.') if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') }}(jQuery);/*========================================================================*Bootstrap:transition.jsv3.3.7*http://getbootstrap.com/javascript/#transitions*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //CSSTRANSITIONSUPPORT(Shoutout:http://www.modernizr.com/)// ============================================================functiontransitionEnd(){varel=document.createElement('bootstrap')vartransEndEventNames={WebkitTransition:'webkitTransitionEnd',MozTransition:'transitionend',OTransition:'oTransitionEnd otransitionend',transition:'transitionend'}for(varnameintransEndEventNames){if(el.style[name]!==undefined){return{end:transEndEventNames[name]}}}returnfalse// explicit for ie8 ( ._.)}// http://blog.alexmaccaw.com/css-transitions$.fn.emulateTransitionEnd=function(duration){varcalled=falsevar$el=this$(this).one('bsTransitionEnd',function(){called=true})varcallback=function(){if(!called)$($el).trigger($.support.transition.end)}setTimeout(callback,duration)returnthis}$(function(){$.support.transition=transitionEnd()if(!$.support.transition)return$.event.special.bsTransitionEnd={bindType:$.support.transition.end,delegateType:$.support.transition.end,handle:function(e){if($(e.target).is(this))returne.handleObj.handler.apply(this,arguments)}}})}(jQuery);/* ======================================================================== * Bootstrap: alert.js v3.3.7 * http://getbootstrap.com/javascript/#alerts*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //ALERTCLASSDEFINITION// ======================vardismiss='[data-dismiss="alert"]'varAlert=function(el){$(el).on('click',dismiss,this.close)}Alert.VERSION='3.3.7'Alert.TRANSITION_DURATION=150Alert.prototype.close=function(e){var$this=$(this)varselector=$this.attr('data-target')if(!selector){selector=$this.attr('href')selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')// strip for ie7}var$parent=$(selector==='#'?[]:selector)if(e)e.preventDefault()if(!$parent.length){$parent=$this.closest('.alert')}$parent.trigger(e=$.Event('close.bs.alert'))if(e.isDefaultPrevented())return$parent.removeClass('in')functionremoveElement(){// detach from parent, fire event then clean up data$parent.detach().trigger('closed.bs.alert').remove()}$.support.transition&&$parent.hasClass('fade')?$parent.one('bsTransitionEnd',removeElement).emulateTransitionEnd(Alert.TRANSITION_DURATION):removeElement()}// ALERT PLUGIN DEFINITION// =======================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.alert')if(!data)$this.data('bs.alert',(data=newAlert(this)))if(typeofoption=='string')data[option].call($this)})}varold=$.fn.alert$.fn.alert=Plugin$.fn.alert.Constructor=Alert// ALERT NO CONFLICT// =================$.fn.alert.noConflict=function(){$.fn.alert=oldreturnthis}// ALERT DATA-API// ==============$(document).on('click.bs.alert.data-api',dismiss,Alert.prototype.close)}(jQuery);/* ======================================================================== * Bootstrap: button.js v3.3.7 * http://getbootstrap.com/javascript/#buttons*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //BUTTONPUBLICCLASSDEFINITION// ==============================varButton=function(element,options){this.$element=$(element)this.options=$.extend({},Button.DEFAULTS,options)this.isLoading=false}Button.VERSION='3.3.7'Button.DEFAULTS={loadingText:'loading...'}Button.prototype.setState=function(state){vard='disabled'var$el=this.$elementvarval=$el.is('input')?'val':'html'vardata=$el.data()state+='Text'if(data.resetText==null)$el.data('resetText',$el[val]())// push to event loop to allow forms to submitsetTimeout($.proxy(function(){$el[val](data[state]==null?this.options[state]:data[state])if(state=='loadingText'){this.isLoading=true$el.addClass(d).attr(d,d).prop(d,true)}elseif(this.isLoading){this.isLoading=false$el.removeClass(d).removeAttr(d).prop(d,false)}},this),0)}Button.prototype.toggle=function(){varchanged=truevar$parent=this.$element.closest('[data-toggle="buttons"]')if($parent.length){var$input=this.$element.find('input')if($input.prop('type')=='radio'){if($input.prop('checked'))changed=false$parent.find('.active').removeClass('active')this.$element.addClass('active')}elseif($input.prop('type')=='checkbox'){if(($input.prop('checked'))!==this.$element.hasClass('active'))changed=falsethis.$element.toggleClass('active')}$input.prop('checked',this.$element.hasClass('active'))if(changed)$input.trigger('change')}else{this.$element.attr('aria-pressed',!this.$element.hasClass('active'))this.$element.toggleClass('active')}}// BUTTON PLUGIN DEFINITION// ========================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.button')varoptions=typeofoption=='object'&&optionif(!data)$this.data('bs.button',(data=newButton(this,options)))if(option=='toggle')data.toggle()elseif(option)data.setState(option)})}varold=$.fn.button$.fn.button=Plugin$.fn.button.Constructor=Button// BUTTON NO CONFLICT// ==================$.fn.button.noConflict=function(){$.fn.button=oldreturnthis}// BUTTON DATA-API// ===============$(document).on('click.bs.button.data-api','[data-toggle^="button"]',function(e){var$btn=$(e.target).closest('.btn')Plugin.call($btn,'toggle')if(!($(e.target).is('input[type="radio"], input[type="checkbox"]'))){// Prevent double click on radios, and the double selections (so cancellation) on checkboxese.preventDefault()// The target component still receive the focusif($btn.is('input,button'))$btn.trigger('focus')else$btn.find('input:visible,button:visible').first().trigger('focus')}}).on('focus.bs.button.data-api blur.bs.button.data-api','[data-toggle^="button"]',function(e){$(e.target).closest('.btn').toggleClass('focus',/^focus(in)?$/.test(e.type))})}(jQuery);/* ======================================================================== * Bootstrap: carousel.js v3.3.7 * http://getbootstrap.com/javascript/#carousel*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //CAROUSELCLASSDEFINITION// =========================varCarousel=function(element,options){this.$element=$(element)this.$indicators=this.$element.find('.carousel-indicators')this.options=optionsthis.paused=nullthis.sliding=nullthis.interval=nullthis.$active=nullthis.$items=nullthis.options.keyboard&&this.$element.on('keydown.bs.carousel',$.proxy(this.keydown,this))this.options.pause=='hover'&&!('ontouchstart'indocument.documentElement)&&this.$element.on('mouseenter.bs.carousel',$.proxy(this.pause,this)).on('mouseleave.bs.carousel',$.proxy(this.cycle,this))}Carousel.VERSION='3.3.7'Carousel.TRANSITION_DURATION=600Carousel.DEFAULTS={interval:5000,pause:'hover',wrap:true,keyboard:true}Carousel.prototype.keydown=function(e){if(/input|textarea/i.test(e.target.tagName))returnswitch(e.which){case37:this.prev();breakcase39:this.next();breakdefault:return}e.preventDefault()}Carousel.prototype.cycle=function(e){e||(this.paused=false)this.interval&&clearInterval(this.interval)this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval))returnthis}Carousel.prototype.getItemIndex=function(item){this.$items=item.parent().children('.item')returnthis.$items.index(item||this.$active)}Carousel.prototype.getItemForDirection=function(direction,active){varactiveIndex=this.getItemIndex(active)varwillWrap=(direction=='prev'&&activeIndex===0)||(direction=='next'&&activeIndex==(this.$items.length-1))if(willWrap&&!this.options.wrap)returnactivevardelta=direction=='prev'?-1:1varitemIndex=(activeIndex+delta)%this.$items.lengthreturnthis.$items.eq(itemIndex)}Carousel.prototype.to=function(pos){varthat=thisvaractiveIndex=this.getItemIndex(this.$active=this.$element.find('.item.active'))if(pos>(this.$items.length-1)||pos<0)returnif(this.sliding)returnthis.$element.one('slid.bs.carousel',function(){that.to(pos)})// yes, "slid"if(activeIndex==pos)returnthis.pause().cycle()returnthis.slide(pos>activeIndex?'next':'prev',this.$items.eq(pos))}Carousel.prototype.pause=function(e){e||(this.paused=true)if(this.$element.find('.next, .prev').length&&$.support.transition){this.$element.trigger($.support.transition.end)this.cycle(true)}this.interval=clearInterval(this.interval)returnthis}Carousel.prototype.next=function(){if(this.sliding)returnreturnthis.slide('next')}Carousel.prototype.prev=function(){if(this.sliding)returnreturnthis.slide('prev')}Carousel.prototype.slide=function(type,next){var$active=this.$element.find('.item.active')var$next=next||this.getItemForDirection(type,$active)varisCycling=this.intervalvardirection=type=='next'?'left':'right'varthat=thisif($next.hasClass('active'))return(this.sliding=false)varrelatedTarget=$next[0]varslideEvent=$.Event('slide.bs.carousel',{relatedTarget:relatedTarget,direction:direction})this.$element.trigger(slideEvent)if(slideEvent.isDefaultPrevented())returnthis.sliding=trueisCycling&&this.pause()if(this.$indicators.length){this.$indicators.find('.active').removeClass('active')var$nextIndicator=$(this.$indicators.children()[this.getItemIndex($next)])$nextIndicator&&$nextIndicator.addClass('active')}varslidEvent=$.Event('slid.bs.carousel',{relatedTarget:relatedTarget,direction:direction})// yes, "slid"if($.support.transition&&this.$element.hasClass('slide')){$next.addClass(type)$next[0].offsetWidth// force reflow$active.addClass(direction)$next.addClass(direction)$active.one('bsTransitionEnd',function(){$next.removeClass([type,direction].join(' ')).addClass('active')$active.removeClass(['active',direction].join(' '))that.sliding=falsesetTimeout(function(){that.$element.trigger(slidEvent)},0)}).emulateTransitionEnd(Carousel.TRANSITION_DURATION)}else{$active.removeClass('active')$next.addClass('active')this.sliding=falsethis.$element.trigger(slidEvent)}isCycling&&this.cycle()returnthis}// CAROUSEL PLUGIN DEFINITION// ==========================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.carousel')varoptions=$.extend({},Carousel.DEFAULTS,$this.data(),typeofoption=='object'&&option)varaction=typeofoption=='string'?option:options.slideif(!data)$this.data('bs.carousel',(data=newCarousel(this,options)))if(typeofoption=='number')data.to(option)elseif(action)data[action]()elseif(options.interval)data.pause().cycle()})}varold=$.fn.carousel$.fn.carousel=Plugin$.fn.carousel.Constructor=Carousel// CAROUSEL NO CONFLICT// ====================$.fn.carousel.noConflict=function(){$.fn.carousel=oldreturnthis}// CAROUSEL DATA-API// =================varclickHandler=function(e){varhrefvar$this=$(this)var$target=$($this.attr('data-target')||(href=$this.attr('href'))&&href.replace(/.*(?=#[^\s]+$)/,''))// strip for ie7if(!$target.hasClass('carousel'))returnvaroptions=$.extend({},$target.data(),$this.data())varslideIndex=$this.attr('data-slide-to')if(slideIndex)options.interval=falsePlugin.call($target,options)if(slideIndex){$target.data('bs.carousel').to(slideIndex)}e.preventDefault()}$(document).on('click.bs.carousel.data-api','[data-slide]',clickHandler).on('click.bs.carousel.data-api','[data-slide-to]',clickHandler)$(window).on('load',function(){$('[data-ride="carousel"]').each(function(){var$carousel=$(this)Plugin.call($carousel,$carousel.data())})})}(jQuery);/* ======================================================================== * Bootstrap: collapse.js v3.3.7 * http://getbootstrap.com/javascript/#collapse*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*//*jshintlatedef:false*/+function ($) { 'use strict'; //COLLAPSEPUBLICCLASSDEFINITION// ================================varCollapse=function(element,options){this.$element=$(element)this.options=$.extend({},Collapse.DEFAULTS,options)this.$trigger=$('[data-toggle="collapse"][href="#'+element.id+'"],'+'[data-toggle="collapse"][data-target="#'+element.id+'"]')this.transitioning=nullif(this.options.parent){this.$parent=this.getParent()}else{this.addAriaAndCollapsedClass(this.$element,this.$trigger)}if(this.options.toggle)this.toggle()}Collapse.VERSION='3.3.7'Collapse.TRANSITION_DURATION=350Collapse.DEFAULTS={toggle:true}Collapse.prototype.dimension=function(){varhasWidth=this.$element.hasClass('width')returnhasWidth?'width':'height'}Collapse.prototype.show=function(){if(this.transitioning||this.$element.hasClass('in'))returnvaractivesDatavaractives=this.$parent&&this.$parent.children('.panel').children('.in, .collapsing')if(actives&&actives.length){activesData=actives.data('bs.collapse')if(activesData&&activesData.transitioning)return}varstartEvent=$.Event('show.bs.collapse')this.$element.trigger(startEvent)if(startEvent.isDefaultPrevented())returnif(actives&&actives.length){Plugin.call(actives,'hide')activesData||actives.data('bs.collapse',null)}vardimension=this.dimension()this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded',true)this.$trigger.removeClass('collapsed').attr('aria-expanded',true)this.transitioning=1varcomplete=function(){this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('')this.transitioning=0this.$element.trigger('shown.bs.collapse')}if(!$.support.transition)returncomplete.call(this)varscrollSize=$.camelCase(['scroll',dimension].join('-'))this.$element.one('bsTransitionEnd',$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])}Collapse.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass('in'))returnvarstartEvent=$.Event('hide.bs.collapse')this.$element.trigger(startEvent)if(startEvent.isDefaultPrevented())returnvardimension=this.dimension()this.$element[dimension](this.$element[dimension]())[0].offsetHeightthis.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded',false)this.$trigger.addClass('collapsed').attr('aria-expanded',false)this.transitioning=1varcomplete=function(){this.transitioning=0this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse')}if(!$.support.transition)returncomplete.call(this)this.$element[dimension](0).one('bsTransitionEnd',$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)}Collapse.prototype.toggle=function(){this[this.$element.hasClass('in')?'hide':'show']()}Collapse.prototype.getParent=function(){return$(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each($.proxy(function(i,element){var$element=$(element)this.addAriaAndCollapsedClass(getTargetFromTrigger($element),$element)},this)).end()}Collapse.prototype.addAriaAndCollapsedClass=function($element,$trigger){varisOpen=$element.hasClass('in')$element.attr('aria-expanded',isOpen)$trigger.toggleClass('collapsed',!isOpen).attr('aria-expanded',isOpen)}functiongetTargetFromTrigger($trigger){varhrefvartarget=$trigger.attr('data-target')||(href=$trigger.attr('href'))&&href.replace(/.*(?=#[^\s]+$)/,'')// strip for ie7return$(target)}// COLLAPSE PLUGIN DEFINITION// ==========================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.collapse')varoptions=$.extend({},Collapse.DEFAULTS,$this.data(),typeofoption=='object'&&option)if(!data&&options.toggle&&/show|hide/.test(option))options.toggle=falseif(!data)$this.data('bs.collapse',(data=newCollapse(this,options)))if(typeofoption=='string')data[option]()})}varold=$.fn.collapse$.fn.collapse=Plugin$.fn.collapse.Constructor=Collapse// COLLAPSE NO CONFLICT// ====================$.fn.collapse.noConflict=function(){$.fn.collapse=oldreturnthis}// COLLAPSE DATA-API// =================$(document).on('click.bs.collapse.data-api','[data-toggle="collapse"]',function(e){var$this=$(this)if(!$this.attr('data-target'))e.preventDefault()var$target=getTargetFromTrigger($this)vardata=$target.data('bs.collapse')varoption=data?'toggle':$this.data()Plugin.call($target,option)})}(jQuery);/* ======================================================================== * Bootstrap: dropdown.js v3.3.7 * http://getbootstrap.com/javascript/#dropdowns*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //DROPDOWNCLASSDEFINITION// =========================varbackdrop='.dropdown-backdrop'vartoggle='[data-toggle="dropdown"]'varDropdown=function(element){$(element).on('click.bs.dropdown',this.toggle)}Dropdown.VERSION='3.3.7'functiongetParent($this){varselector=$this.attr('data-target')if(!selector){selector=$this.attr('href')selector=selector&&/#[A-Za-z]/.test(selector)&&selector.replace(/.*(?=#[^\s]*$)/,'')// strip for ie7}var$parent=selector&&$(selector)return$parent&&$parent.length?$parent:$this.parent()}functionclearMenus(e){if(e&&e.which===3)return$(backdrop).remove()$(toggle).each(function(){var$this=$(this)var$parent=getParent($this)varrelatedTarget={relatedTarget:this}if(!$parent.hasClass('open'))returnif(e&&e.type=='click'&&/input|textarea/i.test(e.target.tagName)&&$.contains($parent[0],e.target))return$parent.trigger(e=$.Event('hide.bs.dropdown',relatedTarget))if(e.isDefaultPrevented())return$this.attr('aria-expanded','false')$parent.removeClass('open').trigger($.Event('hidden.bs.dropdown',relatedTarget))})}Dropdown.prototype.toggle=function(e){var$this=$(this)if($this.is('.disabled, :disabled'))returnvar$parent=getParent($this)varisActive=$parent.hasClass('open')clearMenus()if(!isActive){if('ontouchstart'indocument.documentElement&&!$parent.closest('.navbar-nav').length){// if mobile we use a backdrop because click events don't delegate$(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click',clearMenus)}varrelatedTarget={relatedTarget:this}$parent.trigger(e=$.Event('show.bs.dropdown',relatedTarget))if(e.isDefaultPrevented())return$this.trigger('focus').attr('aria-expanded','true')$parent.toggleClass('open').trigger($.Event('shown.bs.dropdown',relatedTarget))}returnfalse}Dropdown.prototype.keydown=function(e){if(!/(38|40|27|32)/.test(e.which)||/input|textarea/i.test(e.target.tagName))returnvar$this=$(this)e.preventDefault()e.stopPropagation()if($this.is('.disabled, :disabled'))returnvar$parent=getParent($this)varisActive=$parent.hasClass('open')if(!isActive&&e.which!=27||isActive&&e.which==27){if(e.which==27)$parent.find(toggle).trigger('focus')return$this.trigger('click')}vardesc=' li:not(.disabled):visible a'var$items=$parent.find('.dropdown-menu'+desc)if(!$items.length)returnvarindex=$items.index(e.target)if(e.which==38&&index>0)index--// upif(e.which==40&&index<$items.length-1)index++// downif(!~index)index=0$items.eq(index).trigger('focus')}// DROPDOWN PLUGIN DEFINITION// ==========================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.dropdown')if(!data)$this.data('bs.dropdown',(data=newDropdown(this)))if(typeofoption=='string')data[option].call($this)})}varold=$.fn.dropdown$.fn.dropdown=Plugin$.fn.dropdown.Constructor=Dropdown// DROPDOWN NO CONFLICT// ====================$.fn.dropdown.noConflict=function(){$.fn.dropdown=oldreturnthis}// APPLY TO STANDARD DROPDOWN ELEMENTS// ===================================$(document).on('click.bs.dropdown.data-api',clearMenus).on('click.bs.dropdown.data-api','.dropdown form',function(e){e.stopPropagation()}).on('click.bs.dropdown.data-api',toggle,Dropdown.prototype.toggle).on('keydown.bs.dropdown.data-api',toggle,Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api','.dropdown-menu',Dropdown.prototype.keydown)}(jQuery);/* ======================================================================== * Bootstrap: modal.js v3.3.7 * http://getbootstrap.com/javascript/#modals*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //MODALCLASSDEFINITION// ======================varModal=function(element,options){this.options=optionsthis.$body=$(document.body)this.$element=$(element)this.$dialog=this.$element.find('.modal-dialog')this.$backdrop=nullthis.isShown=nullthis.originalBodyPad=nullthis.scrollbarWidth=0this.ignoreBackdropClick=falseif(this.options.remote){this.$element.find('.modal-content').load(this.options.remote,$.proxy(function(){this.$element.trigger('loaded.bs.modal')},this))}}Modal.VERSION='3.3.7'Modal.TRANSITION_DURATION=300Modal.BACKDROP_TRANSITION_DURATION=150Modal.DEFAULTS={backdrop:true,keyboard:true,show:true}Modal.prototype.toggle=function(_relatedTarget){returnthis.isShown?this.hide():this.show(_relatedTarget)}Modal.prototype.show=function(_relatedTarget){varthat=thisvare=$.Event('show.bs.modal',{relatedTarget:_relatedTarget})this.$element.trigger(e)if(this.isShown||e.isDefaultPrevented())returnthis.isShown=truethis.checkScrollbar()this.setScrollbar()this.$body.addClass('modal-open')this.escape()this.resize()this.$element.on('click.dismiss.bs.modal','[data-dismiss="modal"]',$.proxy(this.hide,this))this.$dialog.on('mousedown.dismiss.bs.modal',function(){that.$element.one('mouseup.dismiss.bs.modal',function(e){if($(e.target).is(that.$element))that.ignoreBackdropClick=true})})this.backdrop(function(){vartransition=$.support.transition&&that.$element.hasClass('fade')if(!that.$element.parent().length){that.$element.appendTo(that.$body)// don't move modals dom position}that.$element.show().scrollTop(0)that.adjustDialog()if(transition){that.$element[0].offsetWidth// force reflow}that.$element.addClass('in')that.enforceFocus()vare=$.Event('shown.bs.modal',{relatedTarget:_relatedTarget})transition?that.$dialog// wait for modal to slide in.one('bsTransitionEnd',function(){that.$element.trigger('focus').trigger(e)}).emulateTransitionEnd(Modal.TRANSITION_DURATION):that.$element.trigger('focus').trigger(e)})}Modal.prototype.hide=function(e){if(e)e.preventDefault()e=$.Event('hide.bs.modal')this.$element.trigger(e)if(!this.isShown||e.isDefaultPrevented())returnthis.isShown=falsethis.escape()this.resize()$(document).off('focusin.bs.modal')this.$element.removeClass('in').off('click.dismiss.bs.modal').off('mouseup.dismiss.bs.modal')this.$dialog.off('mousedown.dismiss.bs.modal')$.support.transition&&this.$element.hasClass('fade')?this.$element.one('bsTransitionEnd',$.proxy(this.hideModal,this)).emulateTransitionEnd(Modal.TRANSITION_DURATION):this.hideModal()}Modal.prototype.enforceFocus=function(){$(document).off('focusin.bs.modal')// guard against infinite focus loop.on('focusin.bs.modal',$.proxy(function(e){if(document!==e.target&&this.$element[0]!==e.target&&!this.$element.has(e.target).length){this.$element.trigger('focus')}},this))}Modal.prototype.escape=function(){if(this.isShown&&this.options.keyboard){this.$element.on('keydown.dismiss.bs.modal',$.proxy(function(e){e.which==27&&this.hide()},this))}elseif(!this.isShown){this.$element.off('keydown.dismiss.bs.modal')}}Modal.prototype.resize=function(){if(this.isShown){$(window).on('resize.bs.modal',$.proxy(this.handleUpdate,this))}else{$(window).off('resize.bs.modal')}}Modal.prototype.hideModal=function(){varthat=thisthis.$element.hide()this.backdrop(function(){that.$body.removeClass('modal-open')that.resetAdjustments()that.resetScrollbar()that.$element.trigger('hidden.bs.modal')})}Modal.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove()this.$backdrop=null}Modal.prototype.backdrop=function(callback){varthat=thisvaranimate=this.$element.hasClass('fade')?'fade':''if(this.isShown&&this.options.backdrop){vardoAnimate=$.support.transition&&animatethis.$backdrop=$(document.createElement('div')).addClass('modal-backdrop '+animate).appendTo(this.$body)this.$element.on('click.dismiss.bs.modal',$.proxy(function(e){if(this.ignoreBackdropClick){this.ignoreBackdropClick=falsereturn}if(e.target!==e.currentTarget)returnthis.options.backdrop=='static'?this.$element[0].focus():this.hide()},this))if(doAnimate)this.$backdrop[0].offsetWidth// force reflowthis.$backdrop.addClass('in')if(!callback)returndoAnimate?this.$backdrop.one('bsTransitionEnd',callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callback()}elseif(!this.isShown&&this.$backdrop){this.$backdrop.removeClass('in')varcallbackRemove=function(){that.removeBackdrop()callback&&callback()}$.support.transition&&this.$element.hasClass('fade')?this.$backdrop.one('bsTransitionEnd',callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callbackRemove()}elseif(callback){callback()}}// these following methods are used to handle overflowing modalsModal.prototype.handleUpdate=function(){this.adjustDialog()}Modal.prototype.adjustDialog=function(){varmodalIsOverflowing=this.$element[0].scrollHeight>document.documentElement.clientHeightthis.$element.css({paddingLeft:!this.bodyIsOverflowing&&modalIsOverflowing?this.scrollbarWidth:'',paddingRight:this.bodyIsOverflowing&&!modalIsOverflowing?this.scrollbarWidth:''})}Modal.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:'',paddingRight:''})}Modal.prototype.checkScrollbar=function(){varfullWindowWidth=window.innerWidthif(!fullWindowWidth){// workaround for missing window.innerWidth in IE8vardocumentElementRect=document.documentElement.getBoundingClientRect()fullWindowWidth=documentElementRect.right-Math.abs(documentElementRect.left)}this.bodyIsOverflowing=document.body.clientWidth<fullWindowWidththis.scrollbarWidth=this.measureScrollbar()}Modal.prototype.setScrollbar=function(){varbodyPad=parseInt((this.$body.css('padding-right')||0),10)this.originalBodyPad=document.body.style.paddingRight||''if(this.bodyIsOverflowing)this.$body.css('padding-right',bodyPad+this.scrollbarWidth)}Modal.prototype.resetScrollbar=function(){this.$body.css('padding-right',this.originalBodyPad)}Modal.prototype.measureScrollbar=function(){// thx walshvarscrollDiv=document.createElement('div')scrollDiv.className='modal-scrollbar-measure'this.$body.append(scrollDiv)varscrollbarWidth=scrollDiv.offsetWidth-scrollDiv.clientWidththis.$body[0].removeChild(scrollDiv)returnscrollbarWidth}// MODAL PLUGIN DEFINITION// =======================functionPlugin(option,_relatedTarget){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.modal')varoptions=$.extend({},Modal.DEFAULTS,$this.data(),typeofoption=='object'&&option)if(!data)$this.data('bs.modal',(data=newModal(this,options)))if(typeofoption=='string')data[option](_relatedTarget)elseif(options.show)data.show(_relatedTarget)})}varold=$.fn.modal$.fn.modal=Plugin$.fn.modal.Constructor=Modal// MODAL NO CONFLICT// =================$.fn.modal.noConflict=function(){$.fn.modal=oldreturnthis}// MODAL DATA-API// ==============$(document).on('click.bs.modal.data-api','[data-toggle="modal"]',function(e){var$this=$(this)varhref=$this.attr('href')var$target=$($this.attr('data-target')||(href&&href.replace(/.*(?=#[^\s]+$)/,'')))// strip for ie7varoption=$target.data('bs.modal')?'toggle':$.extend({remote:!/#/.test(href)&&href},$target.data(),$this.data())if($this.is('a'))e.preventDefault()$target.one('show.bs.modal',function(showEvent){if(showEvent.isDefaultPrevented())return// only register focus restorer if modal will actually get shown$target.one('hidden.bs.modal',function(){$this.is(':visible')&&$this.trigger('focus')})})Plugin.call($target,option,this)})}(jQuery);/* ======================================================================== * Bootstrap: tooltip.js v3.3.7 * http://getbootstrap.com/javascript/#tooltip*InspiredbytheoriginaljQuery.tipsybyJasonFrame*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //TOOLTIPPUBLICCLASSDEFINITION// ===============================varTooltip=function(element,options){this.type=nullthis.options=nullthis.enabled=nullthis.timeout=nullthis.hoverState=nullthis.$element=nullthis.inState=nullthis.init('tooltip',element,options)}Tooltip.VERSION='3.3.7'Tooltip.TRANSITION_DURATION=150Tooltip.DEFAULTS={animation:true,placement:'top',selector:false,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:'hover focus',title:'',delay:0,html:false,container:false,viewport:{selector:'body',padding:0}}Tooltip.prototype.init=function(type,element,options){this.enabled=truethis.type=typethis.$element=$(element)this.options=this.getOptions(options)this.$viewport=this.options.viewport&&$($.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):(this.options.viewport.selector||this.options.viewport))this.inState={click:false,hover:false,focus:false}if(this.$element[0]instanceofdocument.constructor&&!this.options.selector){thrownewError('`selector` option must be specified when initializing '+this.type+' on the window.document object!')}vartriggers=this.options.trigger.split(' ')for(vari=triggers.length;i--;){vartrigger=triggers[i]if(trigger=='click'){this.$element.on('click.'+this.type,this.options.selector,$.proxy(this.toggle,this))}elseif(trigger!='manual'){vareventIn=trigger=='hover'?'mouseenter':'focusin'vareventOut=trigger=='hover'?'mouseleave':'focusout'this.$element.on(eventIn+'.'+this.type,this.options.selector,$.proxy(this.enter,this))this.$element.on(eventOut+'.'+this.type,this.options.selector,$.proxy(this.leave,this))}}this.options.selector?(this._options=$.extend({},this.options,{trigger:'manual',selector:''})):this.fixTitle()}Tooltip.prototype.getDefaults=function(){returnTooltip.DEFAULTS}Tooltip.prototype.getOptions=function(options){options=$.extend({},this.getDefaults(),this.$element.data(),options)if(options.delay&&typeofoptions.delay=='number'){options.delay={show:options.delay,hide:options.delay}}returnoptions}Tooltip.prototype.getDelegateOptions=function(){varoptions={}vardefaults=this.getDefaults()this._options&&$.each(this._options,function(key,value){if(defaults[key]!=value)options[key]=value})returnoptions}Tooltip.prototype.enter=function(obj){varself=objinstanceofthis.constructor?obj:$(obj.currentTarget).data('bs.'+this.type)if(!self){self=newthis.constructor(obj.currentTarget,this.getDelegateOptions())$(obj.currentTarget).data('bs.'+this.type,self)}if(objinstanceof$.Event){self.inState[obj.type=='focusin'?'focus':'hover']=true}if(self.tip().hasClass('in')||self.hoverState=='in'){self.hoverState='in'return}clearTimeout(self.timeout)self.hoverState='in'if(!self.options.delay||!self.options.delay.show)returnself.show()self.timeout=setTimeout(function(){if(self.hoverState=='in')self.show()},self.options.delay.show)}Tooltip.prototype.isInStateTrue=function(){for(varkeyinthis.inState){if(this.inState[key])returntrue}returnfalse}Tooltip.prototype.leave=function(obj){varself=objinstanceofthis.constructor?obj:$(obj.currentTarget).data('bs.'+this.type)if(!self){self=newthis.constructor(obj.currentTarget,this.getDelegateOptions())$(obj.currentTarget).data('bs.'+this.type,self)}if(objinstanceof$.Event){self.inState[obj.type=='focusout'?'focus':'hover']=false}if(self.isInStateTrue())returnclearTimeout(self.timeout)self.hoverState='out'if(!self.options.delay||!self.options.delay.hide)returnself.hide()self.timeout=setTimeout(function(){if(self.hoverState=='out')self.hide()},self.options.delay.hide)}Tooltip.prototype.show=function(){vare=$.Event('show.bs.'+this.type)if(this.hasContent()&&this.enabled){this.$element.trigger(e)varinDom=$.contains(this.$element[0].ownerDocument.documentElement,this.$element[0])if(e.isDefaultPrevented()||!inDom)returnvarthat=thisvar$tip=this.tip()vartipId=this.getUID(this.type)this.setContent()$tip.attr('id',tipId)this.$element.attr('aria-describedby',tipId)if(this.options.animation)$tip.addClass('fade')varplacement=typeofthis.options.placement=='function'?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placementvarautoToken=/\s?auto?\s?/ivarautoPlace=autoToken.test(placement)if(autoPlace)placement=placement.replace(autoToken,'')||'top'$tip.detach().css({top:0,left:0,display:'block'}).addClass(placement).data('bs.'+this.type,this)this.options.container?$tip.appendTo(this.options.container):$tip.insertAfter(this.$element)this.$element.trigger('inserted.bs.'+this.type)varpos=this.getPosition()varactualWidth=$tip[0].offsetWidthvaractualHeight=$tip[0].offsetHeightif(autoPlace){varorgPlacement=placementvarviewportDim=this.getPosition(this.$viewport)placement=placement=='bottom'&&pos.bottom+actualHeight>viewportDim.bottom?'top':placement=='top'&&pos.top-actualHeight<viewportDim.top?'bottom':placement=='right'&&pos.right+actualWidth>viewportDim.width?'left':placement=='left'&&pos.left-actualWidth<viewportDim.left?'right':placement$tip.removeClass(orgPlacement).addClass(placement)}varcalculatedOffset=this.getCalculatedOffset(placement,pos,actualWidth,actualHeight)this.applyPlacement(calculatedOffset,placement)varcomplete=function(){varprevHoverState=that.hoverStatethat.$element.trigger('shown.bs.'+that.type)that.hoverState=nullif(prevHoverState=='out')that.leave(that)}$.support.transition&&this.$tip.hasClass('fade')?$tip.one('bsTransitionEnd',complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete()}}Tooltip.prototype.applyPlacement=function(offset,placement){var$tip=this.tip()varwidth=$tip[0].offsetWidthvarheight=$tip[0].offsetHeight// manually read margins because getBoundingClientRect includes differencevarmarginTop=parseInt($tip.css('margin-top'),10)varmarginLeft=parseInt($tip.css('margin-left'),10)// we must check for NaN for ie 8/9if(isNaN(marginTop))marginTop=0if(isNaN(marginLeft))marginLeft=0offset.top+=marginTopoffset.left+=marginLeft// $.fn.offset doesn't round pixel values// so we use setOffset directly with our own function B-0$.offset.setOffset($tip[0],$.extend({using:function(props){$tip.css({top:Math.round(props.top),left:Math.round(props.left)})}},offset),0)$tip.addClass('in')// check to see if placing tip in new offset caused the tip to resize itselfvaractualWidth=$tip[0].offsetWidthvaractualHeight=$tip[0].offsetHeightif(placement=='top'&&actualHeight!=height){offset.top=offset.top+height-actualHeight}vardelta=this.getViewportAdjustedDelta(placement,offset,actualWidth,actualHeight)if(delta.left)offset.left+=delta.leftelseoffset.top+=delta.topvarisVertical=/top|bottom/.test(placement)vararrowDelta=isVertical?delta.left*2-width+actualWidth:delta.top*2-height+actualHeightvararrowOffsetPosition=isVertical?'offsetWidth':'offsetHeight'$tip.offset(offset)this.replaceArrow(arrowDelta,$tip[0][arrowOffsetPosition],isVertical)}Tooltip.prototype.replaceArrow=function(delta,dimension,isVertical){this.arrow().css(isVertical?'left':'top',50*(1-delta/dimension)+'%').css(isVertical?'top':'left','')}Tooltip.prototype.setContent=function(){var$tip=this.tip()vartitle=this.getTitle()$tip.find('.tooltip-inner')[this.options.html?'html':'text'](title)$tip.removeClass('fade in top bottom left right')}Tooltip.prototype.hide=function(callback){varthat=thisvar$tip=$(this.$tip)vare=$.Event('hide.bs.'+this.type)functioncomplete(){if(that.hoverState!='in')$tip.detach()if(that.$element){// TODO: Check whether guarding this code with this `if` is really necessary.that.$element.removeAttr('aria-describedby').trigger('hidden.bs.'+that.type)}callback&&callback()}this.$element.trigger(e)if(e.isDefaultPrevented())return$tip.removeClass('in')$.support.transition&&$tip.hasClass('fade')?$tip.one('bsTransitionEnd',complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete()this.hoverState=nullreturnthis}Tooltip.prototype.fixTitle=function(){var$e=this.$elementif($e.attr('title')||typeof$e.attr('data-original-title')!='string'){$e.attr('data-original-title',$e.attr('title')||'').attr('title','')}}Tooltip.prototype.hasContent=function(){returnthis.getTitle()}Tooltip.prototype.getPosition=function($element){$element=$element||this.$elementvarel=$element[0]varisBody=el.tagName=='BODY'varelRect=el.getBoundingClientRect()if(elRect.width==null){// width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093elRect=$.extend({},elRect,{width:elRect.right-elRect.left,height:elRect.bottom-elRect.top})}varisSvg=window.SVGElement&&elinstanceofwindow.SVGElement// Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.// See https://github.com/twbs/bootstrap/issues/20280varelOffset=isBody?{top:0,left:0}:(isSvg?null:$element.offset())varscroll={scroll:isBody?document.documentElement.scrollTop||document.body.scrollTop:$element.scrollTop()}varouterDims=isBody?{width:$(window).width(),height:$(window).height()}:nullreturn$.extend({},elRect,scroll,outerDims,elOffset)}Tooltip.prototype.getCalculatedOffset=function(placement,pos,actualWidth,actualHeight){returnplacement=='bottom'?{top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2}:placement=='top'?{top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2}:placement=='left'?{top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth}:/* placement == 'right' */{top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width}}Tooltip.prototype.getViewportAdjustedDelta=function(placement,pos,actualWidth,actualHeight){vardelta={top:0,left:0}if(!this.$viewport)returndeltavarviewportPadding=this.options.viewport&&this.options.viewport.padding||0varviewportDimensions=this.getPosition(this.$viewport)if(/right|left/.test(placement)){vartopEdgeOffset=pos.top-viewportPadding-viewportDimensions.scrollvarbottomEdgeOffset=pos.top+viewportPadding-viewportDimensions.scroll+actualHeightif(topEdgeOffset<viewportDimensions.top){// top overflowdelta.top=viewportDimensions.top-topEdgeOffset}elseif(bottomEdgeOffset>viewportDimensions.top+viewportDimensions.height){// bottom overflowdelta.top=viewportDimensions.top+viewportDimensions.height-bottomEdgeOffset}}else{varleftEdgeOffset=pos.left-viewportPaddingvarrightEdgeOffset=pos.left+viewportPadding+actualWidthif(leftEdgeOffset<viewportDimensions.left){// left overflowdelta.left=viewportDimensions.left-leftEdgeOffset}elseif(rightEdgeOffset>viewportDimensions.right){// right overflowdelta.left=viewportDimensions.left+viewportDimensions.width-rightEdgeOffset}}returndelta}Tooltip.prototype.getTitle=function(){vartitlevar$e=this.$elementvaro=this.optionstitle=$e.attr('data-original-title')||(typeofo.title=='function'?o.title.call($e[0]):o.title)returntitle}Tooltip.prototype.getUID=function(prefix){doprefix+=~~(Math.random()*1000000)while(document.getElementById(prefix))returnprefix}Tooltip.prototype.tip=function(){if(!this.$tip){this.$tip=$(this.options.template)if(this.$tip.length!=1){thrownewError(this.type+' `template` option must consist of exactly 1 top-level element!')}}returnthis.$tip}Tooltip.prototype.arrow=function(){return(this.$arrow=this.$arrow||this.tip().find('.tooltip-arrow'))}Tooltip.prototype.enable=function(){this.enabled=true}Tooltip.prototype.disable=function(){this.enabled=false}Tooltip.prototype.toggleEnabled=function(){this.enabled=!this.enabled}Tooltip.prototype.toggle=function(e){varself=thisif(e){self=$(e.currentTarget).data('bs.'+this.type)if(!self){self=newthis.constructor(e.currentTarget,this.getDelegateOptions())$(e.currentTarget).data('bs.'+this.type,self)}}if(e){self.inState.click=!self.inState.clickif(self.isInStateTrue())self.enter(self)elseself.leave(self)}else{self.tip().hasClass('in')?self.leave(self):self.enter(self)}}Tooltip.prototype.destroy=function(){varthat=thisclearTimeout(this.timeout)this.hide(function(){that.$element.off('.'+that.type).removeData('bs.'+that.type)if(that.$tip){that.$tip.detach()}that.$tip=nullthat.$arrow=nullthat.$viewport=nullthat.$element=null})}// TOOLTIP PLUGIN DEFINITION// =========================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.tooltip')varoptions=typeofoption=='object'&&optionif(!data&&/destroy|hide/.test(option))returnif(!data)$this.data('bs.tooltip',(data=newTooltip(this,options)))if(typeofoption=='string')data[option]()})}varold=$.fn.tooltip$.fn.tooltip=Plugin$.fn.tooltip.Constructor=Tooltip// TOOLTIP NO CONFLICT// ===================$.fn.tooltip.noConflict=function(){$.fn.tooltip=oldreturnthis}}(jQuery);/* ======================================================================== * Bootstrap: popover.js v3.3.7 * http://getbootstrap.com/javascript/#popovers*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //POPOVERPUBLICCLASSDEFINITION// ===============================varPopover=function(element,options){this.init('popover',element,options)}if(!$.fn.tooltip)thrownewError('Popover requires tooltip.js')Popover.VERSION='3.3.7'Popover.DEFAULTS=$.extend({},$.fn.tooltip.Constructor.DEFAULTS,{placement:'right',trigger:'click',content:'',template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'})// NOTE: POPOVER EXTENDS tooltip.js// ================================Popover.prototype=$.extend({},$.fn.tooltip.Constructor.prototype)Popover.prototype.constructor=PopoverPopover.prototype.getDefaults=function(){returnPopover.DEFAULTS}Popover.prototype.setContent=function(){var$tip=this.tip()vartitle=this.getTitle()varcontent=this.getContent()$tip.find('.popover-title')[this.options.html?'html':'text'](title)$tip.find('.popover-content').children().detach().end()[// we use append for html objects to maintain js eventsthis.options.html?(typeofcontent=='string'?'html':'append'):'text'](content)$tip.removeClass('fade top bottom left right in')// IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do// this manually by checking the contents.if(!$tip.find('.popover-title').html())$tip.find('.popover-title').hide()}Popover.prototype.hasContent=function(){returnthis.getTitle()||this.getContent()}Popover.prototype.getContent=function(){var$e=this.$elementvaro=this.optionsreturn$e.attr('data-content')||(typeofo.content=='function'?o.content.call($e[0]):o.content)}Popover.prototype.arrow=function(){return(this.$arrow=this.$arrow||this.tip().find('.arrow'))}// POPOVER PLUGIN DEFINITION// =========================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.popover')varoptions=typeofoption=='object'&&optionif(!data&&/destroy|hide/.test(option))returnif(!data)$this.data('bs.popover',(data=newPopover(this,options)))if(typeofoption=='string')data[option]()})}varold=$.fn.popover$.fn.popover=Plugin$.fn.popover.Constructor=Popover// POPOVER NO CONFLICT// ===================$.fn.popover.noConflict=function(){$.fn.popover=oldreturnthis}}(jQuery);/* ======================================================================== * Bootstrap: scrollspy.js v3.3.7 * http://getbootstrap.com/javascript/#scrollspy*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //SCROLLSPYCLASSDEFINITION// ==========================functionScrollSpy(element,options){this.$body=$(document.body)this.$scrollElement=$(element).is(document.body)?$(window):$(element)this.options=$.extend({},ScrollSpy.DEFAULTS,options)this.selector=(this.options.target||'')+' .nav li > a'this.offsets=[]this.targets=[]this.activeTarget=nullthis.scrollHeight=0this.$scrollElement.on('scroll.bs.scrollspy',$.proxy(this.process,this))this.refresh()this.process()}ScrollSpy.VERSION='3.3.7'ScrollSpy.DEFAULTS={offset:10}ScrollSpy.prototype.getScrollHeight=function(){returnthis.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)}ScrollSpy.prototype.refresh=function(){varthat=thisvaroffsetMethod='offset'varoffsetBase=0this.offsets=[]this.targets=[]this.scrollHeight=this.getScrollHeight()if(!$.isWindow(this.$scrollElement[0])){offsetMethod='position'offsetBase=this.$scrollElement.scrollTop()}this.$body.find(this.selector).map(function(){var$el=$(this)varhref=$el.data('target')||$el.attr('href')var$href=/^#./.test(href)&&$(href)return($href&&$href.length&&$href.is(':visible')&&[[$href[offsetMethod]().top+offsetBase,href]])||null}).sort(function(a,b){returna[0]-b[0]}).each(function(){that.offsets.push(this[0])that.targets.push(this[1])})}ScrollSpy.prototype.process=function(){varscrollTop=this.$scrollElement.scrollTop()+this.options.offsetvarscrollHeight=this.getScrollHeight()varmaxScroll=this.options.offset+scrollHeight-this.$scrollElement.height()varoffsets=this.offsetsvartargets=this.targetsvaractiveTarget=this.activeTargetvariif(this.scrollHeight!=scrollHeight){this.refresh()}if(scrollTop>=maxScroll){returnactiveTarget!=(i=targets[targets.length-1])&&this.activate(i)}if(activeTarget&&scrollTop<offsets[0]){this.activeTarget=nullreturnthis.clear()}for(i=offsets.length;i--;){activeTarget!=targets[i]&&scrollTop>=offsets[i]&&(offsets[i+1]===undefined||scrollTop<offsets[i+1])&&this.activate(targets[i])}}ScrollSpy.prototype.activate=function(target){this.activeTarget=targetthis.clear()varselector=this.selector+'[data-target="'+target+'"],'+this.selector+'[href="'+target+'"]'varactive=$(selector).parents('li').addClass('active')if(active.parent('.dropdown-menu').length){active=active.closest('li.dropdown').addClass('active')}active.trigger('activate.bs.scrollspy')}ScrollSpy.prototype.clear=function(){$(this.selector).parentsUntil(this.options.target,'.active').removeClass('active')}// SCROLLSPY PLUGIN DEFINITION// ===========================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.scrollspy')varoptions=typeofoption=='object'&&optionif(!data)$this.data('bs.scrollspy',(data=newScrollSpy(this,options)))if(typeofoption=='string')data[option]()})}varold=$.fn.scrollspy$.fn.scrollspy=Plugin$.fn.scrollspy.Constructor=ScrollSpy// SCROLLSPY NO CONFLICT// =====================$.fn.scrollspy.noConflict=function(){$.fn.scrollspy=oldreturnthis}// SCROLLSPY DATA-API// ==================$(window).on('load.bs.scrollspy.data-api',function(){$('[data-spy="scroll"]').each(function(){var$spy=$(this)Plugin.call($spy,$spy.data())})})}(jQuery);/* ======================================================================== * Bootstrap: tab.js v3.3.7 * http://getbootstrap.com/javascript/#tabs*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //TABCLASSDEFINITION// ====================varTab=function(element){// jscs:disable requireDollarBeforejQueryAssignmentthis.element=$(element)// jscs:enable requireDollarBeforejQueryAssignment}Tab.VERSION='3.3.7'Tab.TRANSITION_DURATION=150Tab.prototype.show=function(){var$this=this.elementvar$ul=$this.closest('ul:not(.dropdown-menu)')varselector=$this.data('target')if(!selector){selector=$this.attr('href')selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')// strip for ie7}if($this.parent('li').hasClass('active'))returnvar$previous=$ul.find('.active:last a')varhideEvent=$.Event('hide.bs.tab',{relatedTarget:$this[0]})varshowEvent=$.Event('show.bs.tab',{relatedTarget:$previous[0]})$previous.trigger(hideEvent)$this.trigger(showEvent)if(showEvent.isDefaultPrevented()||hideEvent.isDefaultPrevented())returnvar$target=$(selector)this.activate($this.closest('li'),$ul)this.activate($target,$target.parent(),function(){$previous.trigger({type:'hidden.bs.tab',relatedTarget:$this[0]})$this.trigger({type:'shown.bs.tab',relatedTarget:$previous[0]})})}Tab.prototype.activate=function(element,container,callback){var$active=container.find('> .active')vartransition=callback&&$.support.transition&&($active.length&&$active.hasClass('fade')||!!container.find('> .fade').length)functionnext(){$active.removeClass('active').find('> .dropdown-menu > .active').removeClass('active').end().find('[data-toggle="tab"]').attr('aria-expanded',false)element.addClass('active').find('[data-toggle="tab"]').attr('aria-expanded',true)if(transition){element[0].offsetWidth// reflow for transitionelement.addClass('in')}else{element.removeClass('fade')}if(element.parent('.dropdown-menu').length){element.closest('li.dropdown').addClass('active').end().find('[data-toggle="tab"]').attr('aria-expanded',true)}callback&&callback()}$active.length&&transition?$active.one('bsTransitionEnd',next).emulateTransitionEnd(Tab.TRANSITION_DURATION):next()$active.removeClass('in')}// TAB PLUGIN DEFINITION// =====================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.tab')if(!data)$this.data('bs.tab',(data=newTab(this)))if(typeofoption=='string')data[option]()})}varold=$.fn.tab$.fn.tab=Plugin$.fn.tab.Constructor=Tab// TAB NO CONFLICT// ===============$.fn.tab.noConflict=function(){$.fn.tab=oldreturnthis}// TAB DATA-API// ============varclickHandler=function(e){e.preventDefault()Plugin.call($(this),'show')}$(document).on('click.bs.tab.data-api','[data-toggle="tab"]',clickHandler).on('click.bs.tab.data-api','[data-toggle="pill"]',clickHandler)}(jQuery);/* ======================================================================== * Bootstrap: affix.js v3.3.7 * http://getbootstrap.com/javascript/#affix*========================================================================*Copyright2011-2016Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*========================================================================*/+function ($) { 'use strict'; //AFFIXCLASSDEFINITION// ======================varAffix=function(element,options){this.options=$.extend({},Affix.DEFAULTS,options)this.$target=$(this.options.target).on('scroll.bs.affix.data-api',$.proxy(this.checkPosition,this)).on('click.bs.affix.data-api',$.proxy(this.checkPositionWithEventLoop,this))this.$element=$(element)this.affixed=nullthis.unpin=nullthis.pinnedOffset=nullthis.checkPosition()}Affix.VERSION='3.3.7'Affix.RESET='affix affix-top affix-bottom'Affix.DEFAULTS={offset:0,target:window}Affix.prototype.getState=function(scrollHeight,height,offsetTop,offsetBottom){varscrollTop=this.$target.scrollTop()varposition=this.$element.offset()vartargetHeight=this.$target.height()if(offsetTop!=null&&this.affixed=='top')returnscrollTop<offsetTop?'top':falseif(this.affixed=='bottom'){if(offsetTop!=null)return(scrollTop+this.unpin<=position.top)?false:'bottom'return(scrollTop+targetHeight<=scrollHeight-offsetBottom)?false:'bottom'}varinitializing=this.affixed==nullvarcolliderTop=initializing?scrollTop:position.topvarcolliderHeight=initializing?targetHeight:heightif(offsetTop!=null&&scrollTop<=offsetTop)return'top'if(offsetBottom!=null&&(colliderTop+colliderHeight>=scrollHeight-offsetBottom))return'bottom'returnfalse}Affix.prototype.getPinnedOffset=function(){if(this.pinnedOffset)returnthis.pinnedOffsetthis.$element.removeClass(Affix.RESET).addClass('affix')varscrollTop=this.$target.scrollTop()varposition=this.$element.offset()return(this.pinnedOffset=position.top-scrollTop)}Affix.prototype.checkPositionWithEventLoop=function(){setTimeout($.proxy(this.checkPosition,this),1)}Affix.prototype.checkPosition=function(){if(!this.$element.is(':visible'))returnvarheight=this.$element.height()varoffset=this.options.offsetvaroffsetTop=offset.topvaroffsetBottom=offset.bottomvarscrollHeight=Math.max($(document).height(),$(document.body).height())if(typeofoffset!='object')offsetBottom=offsetTop=offsetif(typeofoffsetTop=='function')offsetTop=offset.top(this.$element)if(typeofoffsetBottom=='function')offsetBottom=offset.bottom(this.$element)varaffix=this.getState(scrollHeight,height,offsetTop,offsetBottom)if(this.affixed!=affix){if(this.unpin!=null)this.$element.css('top','')varaffixType='affix'+(affix?'-'+affix:'')vare=$.Event(affixType+'.bs.affix')this.$element.trigger(e)if(e.isDefaultPrevented())returnthis.affixed=affixthis.unpin=affix=='bottom'?this.getPinnedOffset():nullthis.$element.removeClass(Affix.RESET).addClass(affixType).trigger(affixType.replace('affix','affixed')+'.bs.affix')}if(affix=='bottom'){this.$element.offset({top:scrollHeight-height-offsetBottom})}}// AFFIX PLUGIN DEFINITION// =======================functionPlugin(option){returnthis.each(function(){var$this=$(this)vardata=$this.data('bs.affix')varoptions=typeofoption=='object'&&optionif(!data)$this.data('bs.affix',(data=newAffix(this,options)))if(typeofoption=='string')data[option]()})}varold=$.fn.affix$.fn.affix=Plugin$.fn.affix.Constructor=Affix// AFFIX NO CONFLICT// =================$.fn.affix.noConflict=function(){$.fn.affix=oldreturnthis}// AFFIX DATA-API// ==============$(window).on('load',function(){$('[data-spy="affix"]').each(function(){var$spy=$(this)vardata=$spy.data()data.offset=data.offset||{}if(data.offsetBottom!=null)data.offset.bottom=data.offsetBottomif(data.offsetTop!=null)data.offset.top=data.offsetTopPlugin.call($spy,data)})})}(jQuery);