{"version":3,"file":"5433313961bd5c71f70eaa6b.js?3.6.14.7428b935c.1727745705662","mappings":"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","sources":["webpack://mono-repo/./src/js/lib/bootstrap.js","webpack://mono-repo/./src/js/lib/formValidation/dist/js/framework/bootstrap.js"],"sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n// +function ($) {\n// 'use strict';\n\n// // ALERT CLASS DEFINITION\n// // ======================\n\n// var dismiss = '[data-dismiss=\"alert\"]'\n// var Alert = function (el) {\n// $(el).on('click', dismiss, this.close)\n// }\n\n// Alert.VERSION = '3.4.1'\n\n// Alert.TRANSITION_DURATION = 150\n\n// Alert.prototype.close = function (e) {\n// var $this = $(this)\n// var selector = $this.attr('data-target')\n\n// if (!selector) {\n// selector = $this.attr('href')\n// selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n// }\n\n// selector = selector === '#' ? [] : selector\n// var $parent = $(document).find(selector)\n\n// if (e) e.preventDefault()\n\n// if (!$parent.length) {\n// $parent = $this.closest('.alert')\n// }\n\n// $parent.trigger(e = $.Event('close.bs.alert'))\n\n// if (e.isDefaultPrevented()) return\n\n// $parent.removeClass('in')\n\n// function removeElement() {\n// // detach from parent, fire event then clean up data\n// $parent.detach().trigger('closed.bs.alert').remove()\n// }\n\n// $.support.transition && $parent.hasClass('fade') ?\n// $parent\n// .one('bsTransitionEnd', removeElement)\n// .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n// removeElement()\n// }\n\n\n// // ALERT PLUGIN DEFINITION\n// // =======================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.alert')\n\n// if (!data) $this.data('bs.alert', (data = new Alert(this)))\n// if (typeof option == 'string') data[option].call($this)\n// })\n// }\n\n// var old = $.fn.alert\n\n// $.fn.alert = Plugin\n// $.fn.alert.Constructor = Alert\n\n\n// // ALERT NO CONFLICT\n// // =================\n\n// $.fn.alert.noConflict = function () {\n// $.fn.alert = old\n// return this\n// }\n\n\n// // ALERT DATA-API\n// // ==============\n\n// $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.4.1'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.4.1'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n if (typeof $next === 'object' && $next.length) {\n $next[0].offsetWidth // force reflow\n }\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n if (href) {\n href = href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n }\n\n var target = $this.attr('data-target') || href\n var $target = $(document).find(target)\n\n if (!$target.hasClass('carousel')) return\n\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n// +function ($) {\n// 'use strict';\n\n// // COLLAPSE PUBLIC CLASS DEFINITION\n// // ================================\n\n// var Collapse = function (element, options) {\n// this.$element = $(element)\n// this.options = $.extend({}, Collapse.DEFAULTS, options)\n// this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n// '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n// this.transitioning = null\n\n// if (this.options.parent) {\n// this.$parent = this.getParent()\n// } else {\n// this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n// }\n\n// if (this.options.toggle) this.toggle()\n// }\n\n// Collapse.VERSION = '3.4.1'\n\n// Collapse.TRANSITION_DURATION = 350\n\n// Collapse.DEFAULTS = {\n// toggle: true\n// }\n\n// Collapse.prototype.dimension = function () {\n// var hasWidth = this.$element.hasClass('width')\n// return hasWidth ? 'width' : 'height'\n// }\n\n// Collapse.prototype.show = function () {\n// if (this.transitioning || this.$element.hasClass('in')) return\n\n// var activesData\n// var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n// if (actives && actives.length) {\n// activesData = actives.data('bs.collapse')\n// if (activesData && activesData.transitioning) return\n// }\n\n// var startEvent = $.Event('show.bs.collapse')\n// this.$element.trigger(startEvent)\n// if (startEvent.isDefaultPrevented()) return\n\n// if (actives && actives.length) {\n// Plugin.call(actives, 'hide')\n// activesData || actives.data('bs.collapse', null)\n// }\n\n// var dimension = this.dimension()\n\n// this.$element\n// .removeClass('collapse')\n// .addClass('collapsing')[dimension](0)\n// .attr('aria-expanded', true)\n\n// this.$trigger\n// .removeClass('collapsed')\n// .attr('aria-expanded', true)\n\n// this.transitioning = 1\n\n// var complete = function () {\n// this.$element\n// .removeClass('collapsing')\n// .addClass('collapse in')[dimension]('')\n// this.transitioning = 0\n// this.$element\n// .trigger('shown.bs.collapse')\n// }\n\n// if (!$.support.transition) return complete.call(this)\n\n// var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n// this.$element\n// .one('bsTransitionEnd', $.proxy(complete, this))\n// .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n// }\n\n// Collapse.prototype.hide = function () {\n// if (this.transitioning || !this.$element.hasClass('in')) return\n\n// var startEvent = $.Event('hide.bs.collapse')\n// this.$element.trigger(startEvent)\n// if (startEvent.isDefaultPrevented()) return\n\n// var dimension = this.dimension()\n\n// this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n// this.$element\n// .addClass('collapsing')\n// .removeClass('collapse in')\n// .attr('aria-expanded', false)\n\n// this.$trigger\n// .addClass('collapsed')\n// .attr('aria-expanded', false)\n\n// this.transitioning = 1\n\n// var complete = function () {\n// this.transitioning = 0\n// this.$element\n// .removeClass('collapsing')\n// .addClass('collapse')\n// .trigger('hidden.bs.collapse')\n// }\n\n// if (!$.support.transition) return complete.call(this)\n\n// this.$element\n// [dimension](0)\n// .one('bsTransitionEnd', $.proxy(complete, this))\n// .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n// }\n\n// Collapse.prototype.toggle = function () {\n// this[this.$element.hasClass('in') ? 'hide' : 'show']()\n// }\n\n// Collapse.prototype.getParent = function () {\n// return $(document).find(this.options.parent)\n// .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n// .each($.proxy(function (i, element) {\n// var $element = $(element)\n// this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n// }, this))\n// .end()\n// }\n\n// Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n// var isOpen = $element.hasClass('in')\n\n// $element.attr('aria-expanded', isOpen)\n// $trigger\n// .toggleClass('collapsed', !isOpen)\n// .attr('aria-expanded', isOpen)\n// }\n\n// function getTargetFromTrigger($trigger) {\n// var href\n// var target = $trigger.attr('data-target')\n// || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n// return $(document).find(target)\n// }\n\n\n// // COLLAPSE PLUGIN DEFINITION\n// // ==========================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.collapse')\n// var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n// if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n// if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.collapse\n\n// $.fn.collapse = Plugin\n// $.fn.collapse.Constructor = Collapse\n\n\n// // COLLAPSE NO CONFLICT\n// // ====================\n\n// $.fn.collapse.noConflict = function () {\n// $.fn.collapse = old\n// return this\n// }\n\n\n// // COLLAPSE DATA-API\n// // =================\n\n// $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n// var $this = $(this)\n\n// if (!$this.attr('data-target')) e.preventDefault()\n\n// var $target = getTargetFromTrigger($this)\n// var data = $target.data('bs.collapse')\n// var option = data ? 'toggle' : $this.data()\n\n// Plugin.call($target, option)\n// })\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#modals\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n// +function ($) {\n// 'use strict';\n\n// // MODAL CLASS DEFINITION\n// // ======================\n\n// var Modal = function (element, options) {\n// this.options = options\n// this.$body = $(document.body)\n// this.$element = $(element)\n// this.$dialog = this.$element.find('.modal-dialog')\n// this.$backdrop = null\n// this.isShown = null\n// this.originalBodyPad = null\n// this.scrollbarWidth = 0\n// this.ignoreBackdropClick = false\n// this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n// if (this.options.remote) {\n// this.$element\n// .find('.modal-content')\n// .load(this.options.remote, $.proxy(function () {\n// this.$element.trigger('loaded.bs.modal')\n// }, this))\n// }\n// }\n\n// Modal.VERSION = '3.4.1'\n\n// Modal.TRANSITION_DURATION = 300\n// Modal.BACKDROP_TRANSITION_DURATION = 150\n\n// Modal.DEFAULTS = {\n// backdrop: true,\n// keyboard: true,\n// show: true\n// }\n\n// Modal.prototype.toggle = function (_relatedTarget) {\n// return this.isShown ? this.hide() : this.show(_relatedTarget)\n// }\n\n// Modal.prototype.show = function (_relatedTarget) {\n// var that = this\n// var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n// this.$element.trigger(e)\n\n// if (this.isShown || e.isDefaultPrevented()) return\n\n// this.isShown = true\n\n// this.checkScrollbar()\n// this.setScrollbar()\n// this.$body.addClass('modal-open')\n\n// this.escape()\n// this.resize()\n\n// this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n// this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n// that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n// if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n// })\n// })\n\n// this.backdrop(function () {\n// var transition = $.support.transition && that.$element.hasClass('fade')\n\n// if (!that.$element.parent().length) {\n// that.$element.appendTo(that.$body) // don't move modals dom position\n// }\n\n// that.$element\n// .show()\n// .scrollTop(0)\n\n// that.adjustDialog()\n\n// if (transition) {\n// that.$element[0].offsetWidth // force reflow\n// }\n\n// that.$element.addClass('in')\n\n// that.enforceFocus()\n\n// var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n// transition ?\n// that.$dialog // wait for modal to slide in\n// .one('bsTransitionEnd', function () {\n// that.$element.trigger('focus').trigger(e)\n// })\n// .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n// that.$element.trigger('focus').trigger(e)\n// })\n// }\n\n// Modal.prototype.hide = function (e) {\n// if (e) e.preventDefault()\n\n// e = $.Event('hide.bs.modal')\n\n// this.$element.trigger(e)\n\n// if (!this.isShown || e.isDefaultPrevented()) return\n\n// this.isShown = false\n\n// this.escape()\n// this.resize()\n\n// $(document).off('focusin.bs.modal')\n\n// this.$element\n// .removeClass('in')\n// .off('click.dismiss.bs.modal')\n// .off('mouseup.dismiss.bs.modal')\n\n// this.$dialog.off('mousedown.dismiss.bs.modal')\n\n// $.support.transition && this.$element.hasClass('fade') ?\n// this.$element\n// .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n// .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n// this.hideModal()\n// }\n\n// Modal.prototype.enforceFocus = function () {\n// $(document)\n// .off('focusin.bs.modal') // guard against infinite focus loop\n// .on('focusin.bs.modal', $.proxy(function (e) {\n// if (document !== e.target &&\n// this.$element[0] !== e.target &&\n// !this.$element.has(e.target).length) {\n// this.$element.trigger('focus')\n// }\n// }, this))\n// }\n\n// Modal.prototype.escape = function () {\n// if (this.isShown && this.options.keyboard) {\n// this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n// e.which == 27 && this.hide()\n// }, this))\n// } else if (!this.isShown) {\n// this.$element.off('keydown.dismiss.bs.modal')\n// }\n// }\n\n// Modal.prototype.resize = function () {\n// if (this.isShown) {\n// $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n// } else {\n// $(window).off('resize.bs.modal')\n// }\n// }\n\n// Modal.prototype.hideModal = function () {\n// var that = this\n// this.$element.hide()\n// this.backdrop(function () {\n// that.$body.removeClass('modal-open')\n// that.resetAdjustments()\n// that.resetScrollbar()\n// that.$element.trigger('hidden.bs.modal')\n// })\n// }\n\n// Modal.prototype.removeBackdrop = function () {\n// this.$backdrop && this.$backdrop.remove()\n// this.$backdrop = null\n// }\n\n// Modal.prototype.backdrop = function (callback) {\n// var that = this\n// var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n// if (this.isShown && this.options.backdrop) {\n// var doAnimate = $.support.transition && animate\n\n// this.$backdrop = $(document.createElement('div'))\n// .addClass('modal-backdrop ' + animate)\n// .appendTo(this.$body)\n\n// this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n// if (this.ignoreBackdropClick) {\n// this.ignoreBackdropClick = false\n// return\n// }\n// if (e.target !== e.currentTarget) return\n// this.options.backdrop == 'static'\n// ? this.$element[0].focus()\n// : this.hide()\n// }, this))\n\n// if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n// this.$backdrop.addClass('in')\n\n// if (!callback) return\n\n// doAnimate ?\n// this.$backdrop\n// .one('bsTransitionEnd', callback)\n// .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n// callback()\n\n// } else if (!this.isShown && this.$backdrop) {\n// this.$backdrop.removeClass('in')\n\n// var callbackRemove = function () {\n// that.removeBackdrop()\n// callback && callback()\n// }\n// $.support.transition && this.$element.hasClass('fade') ?\n// this.$backdrop\n// .one('bsTransitionEnd', callbackRemove)\n// .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n// callbackRemove()\n\n// } else if (callback) {\n// callback()\n// }\n// }\n\n// // these following methods are used to handle overflowing modals\n\n// Modal.prototype.handleUpdate = function () {\n// this.adjustDialog()\n// }\n\n// Modal.prototype.adjustDialog = function () {\n// var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n// this.$element.css({\n// paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n// paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n// })\n// }\n\n// Modal.prototype.resetAdjustments = function () {\n// this.$element.css({\n// paddingLeft: '',\n// paddingRight: ''\n// })\n// }\n\n// Modal.prototype.checkScrollbar = function () {\n// var fullWindowWidth = window.innerWidth\n// if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n// var documentElementRect = document.documentElement.getBoundingClientRect()\n// fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n// }\n// this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n// this.scrollbarWidth = this.measureScrollbar()\n// }\n\n// Modal.prototype.setScrollbar = function () {\n// var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n// this.originalBodyPad = document.body.style.paddingRight || ''\n// var scrollbarWidth = this.scrollbarWidth\n// if (this.bodyIsOverflowing) {\n// this.$body.css('padding-right', bodyPad + scrollbarWidth)\n// $(this.fixedContent).each(function (index, element) {\n// var actualPadding = element.style.paddingRight\n// var calculatedPadding = $(element).css('padding-right')\n// $(element)\n// .data('padding-right', actualPadding)\n// .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n// })\n// }\n// }\n\n// Modal.prototype.resetScrollbar = function () {\n// this.$body.css('padding-right', this.originalBodyPad)\n// $(this.fixedContent).each(function (index, element) {\n// var padding = $(element).data('padding-right')\n// $(element).removeData('padding-right')\n// element.style.paddingRight = padding ? padding : ''\n// })\n// }\n\n// Modal.prototype.measureScrollbar = function () { // thx walsh\n// var scrollDiv = document.createElement('div')\n// scrollDiv.className = 'modal-scrollbar-measure'\n// this.$body.append(scrollDiv)\n// var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n// this.$body[0].removeChild(scrollDiv)\n// return scrollbarWidth\n// }\n\n\n// // MODAL PLUGIN DEFINITION\n// // =======================\n\n// function Plugin(option, _relatedTarget) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.modal')\n// var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n// if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n// if (typeof option == 'string') data[option](_relatedTarget)\n// else if (options.show) data.show(_relatedTarget)\n// })\n// }\n\n// var old = $.fn.modal\n\n// $.fn.modal = Plugin\n// $.fn.modal.Constructor = Modal\n\n\n// // MODAL NO CONFLICT\n// // =================\n\n// $.fn.modal.noConflict = function () {\n// $.fn.modal = old\n// return this\n// }\n\n\n// // MODAL DATA-API\n// // ==============\n\n// $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n// var $this = $(this)\n// var href = $this.attr('href')\n// var target = $this.attr('data-target') ||\n// (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n// var $target = $(document).find(target)\n// var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n// if ($this.is('a')) e.preventDefault()\n\n// $target.one('show.bs.modal', function (showEvent) {\n// if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n// $target.one('hidden.bs.modal', function () {\n// $this.is(':visible') && $this.trigger('focus')\n// })\n// })\n// Plugin.call($target, option, this)\n// })\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\n var uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n ]\n\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n }\n\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase()\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp\n })\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n // IE 8 and below don't support createHTMLDocument\n if (!document.implementation || !document.implementation.createHTMLDocument) {\n return unsafeHtml\n }\n\n var createdDocument = document.implementation.createHTMLDocument('sanitization')\n createdDocument.body.innerHTML = unsafeHtml\n\n var whitelistKeys = $.map(whiteList, function (el, i) { return i })\n var elements = $(createdDocument.body).find('*')\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var el = elements[i]\n var elName = el.nodeName.toLowerCase()\n\n if ($.inArray(elName, whitelistKeys) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n var attributeList = $.map(el.attributes, function (el) { return el })\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n for (var j = 0, len2 = attributeList.length; j < len2; j++) {\n if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {\n el.removeAttribute(attributeList[j].nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n }\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n },\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n var dataAttributes = this.$element.data()\n\n for (var dataAttr in dataAttributes) {\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr]\n }\n }\n\n options = $.extend({}, this.getDefaults(), dataAttributes, options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n if (options.sanitize) {\n options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n if (this.options.html) {\n if (this.options.sanitize) {\n title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)\n }\n\n $tip.find('.tooltip-inner').html(title)\n } else {\n $tip.find('.tooltip-inner').text(title)\n }\n\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {\n return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)\n }\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n// +function ($) {\n// 'use strict';\n\n// // POPOVER PUBLIC CLASS DEFINITION\n// // ===============================\n\n// var Popover = function (element, options) {\n// this.init('popover', element, options)\n// }\n\n// if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n// Popover.VERSION = '3.4.1'\n\n// Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n// placement: 'right',\n// trigger: 'click',\n// content: '',\n// template: '

'\n// })\n\n\n// // NOTE: POPOVER EXTENDS tooltip.js\n// // ================================\n\n// Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n// Popover.prototype.constructor = Popover\n\n// Popover.prototype.getDefaults = function () {\n// return Popover.DEFAULTS\n// }\n\n// Popover.prototype.setContent = function () {\n// var $tip = this.tip()\n// var title = this.getTitle()\n// var content = this.getContent()\n\n// if (this.options.html) {\n// var typeContent = typeof content\n\n// if (this.options.sanitize) {\n// title = this.sanitizeHtml(title)\n\n// if (typeContent === 'string') {\n// content = this.sanitizeHtml(content)\n// }\n// }\n\n// $tip.find('.popover-title').html(title)\n// $tip.find('.popover-content').children().detach().end()[\n// typeContent === 'string' ? 'html' : 'append'\n// ](content)\n// } else {\n// $tip.find('.popover-title').text(title)\n// $tip.find('.popover-content').children().detach().end().text(content)\n// }\n\n// $tip.removeClass('fade top bottom left right in')\n\n// // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n// // this manually by checking the contents.\n// if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n// }\n\n// Popover.prototype.hasContent = function () {\n// return this.getTitle() || this.getContent()\n// }\n\n// Popover.prototype.getContent = function () {\n// var $e = this.$element\n// var o = this.options\n\n// return $e.attr('data-content')\n// || (typeof o.content == 'function' ?\n// o.content.call($e[0]) :\n// o.content)\n// }\n\n// Popover.prototype.arrow = function () {\n// return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n// }\n\n\n// // POPOVER PLUGIN DEFINITION\n// // =========================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.popover')\n// var options = typeof option == 'object' && option\n\n// if (!data && /destroy|hide/.test(option)) return\n// if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.popover\n\n// $.fn.popover = Plugin\n// $.fn.popover.Constructor = Popover\n\n\n// // POPOVER NO CONFLICT\n// // ===================\n\n// $.fn.popover.noConflict = function () {\n// $.fn.popover = old\n// return this\n// }\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n// +function ($) {\n// 'use strict';\n\n// // SCROLLSPY CLASS DEFINITION\n// // ==========================\n\n// function ScrollSpy(element, options) {\n// this.$body = $(document.body)\n// this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n// this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n// this.selector = (this.options.target || '') + ' .nav li > a'\n// this.offsets = []\n// this.targets = []\n// this.activeTarget = null\n// this.scrollHeight = 0\n\n// this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n// this.refresh()\n// this.process()\n// }\n\n// ScrollSpy.VERSION = '3.4.1'\n\n// ScrollSpy.DEFAULTS = {\n// offset: 10\n// }\n\n// ScrollSpy.prototype.getScrollHeight = function () {\n// return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n// }\n\n// ScrollSpy.prototype.refresh = function () {\n// var that = this\n// var offsetMethod = 'offset'\n// var offsetBase = 0\n\n// this.offsets = []\n// this.targets = []\n// this.scrollHeight = this.getScrollHeight()\n\n// if (!$.isWindow(this.$scrollElement[0])) {\n// offsetMethod = 'position'\n// offsetBase = this.$scrollElement.scrollTop()\n// }\n\n// this.$body\n// .find(this.selector)\n// .map(function () {\n// var $el = $(this)\n// var href = $el.data('target') || $el.attr('href')\n// var $href = /^#./.test(href) && $(href)\n\n// return ($href\n// && $href.length\n// && $href.is(':visible')\n// && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n// })\n// .sort(function (a, b) { return a[0] - b[0] })\n// .each(function () {\n// that.offsets.push(this[0])\n// that.targets.push(this[1])\n// })\n// }\n\n// ScrollSpy.prototype.process = function () {\n// var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n// var scrollHeight = this.getScrollHeight()\n// var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n// var offsets = this.offsets\n// var targets = this.targets\n// var activeTarget = this.activeTarget\n// var i\n\n// if (this.scrollHeight != scrollHeight) {\n// this.refresh()\n// }\n\n// if (scrollTop >= maxScroll) {\n// return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n// }\n\n// if (activeTarget && scrollTop < offsets[0]) {\n// this.activeTarget = null\n// return this.clear()\n// }\n\n// for (i = offsets.length; i--;) {\n// activeTarget != targets[i]\n// && scrollTop >= offsets[i]\n// && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n// && this.activate(targets[i])\n// }\n// }\n\n// ScrollSpy.prototype.activate = function (target) {\n// this.activeTarget = target\n\n// this.clear()\n\n// var selector = this.selector +\n// '[data-target=\"' + target + '\"],' +\n// this.selector + '[href=\"' + target + '\"]'\n\n// var active = $(selector)\n// .parents('li')\n// .addClass('active')\n\n// if (active.parent('.dropdown-menu').length) {\n// active = active\n// .closest('li.dropdown')\n// .addClass('active')\n// }\n\n// active.trigger('activate.bs.scrollspy')\n// }\n\n// ScrollSpy.prototype.clear = function () {\n// $(this.selector)\n// .parentsUntil(this.options.target, '.active')\n// .removeClass('active')\n// }\n\n\n// // SCROLLSPY PLUGIN DEFINITION\n// // ===========================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.scrollspy')\n// var options = typeof option == 'object' && option\n\n// if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.scrollspy\n\n// $.fn.scrollspy = Plugin\n// $.fn.scrollspy.Constructor = ScrollSpy\n\n\n// // SCROLLSPY NO CONFLICT\n// // =====================\n\n// $.fn.scrollspy.noConflict = function () {\n// $.fn.scrollspy = old\n// return this\n// }\n\n\n// // SCROLLSPY DATA-API\n// // ==================\n\n// $(window).on('load.bs.scrollspy.data-api', function () {\n// $('[data-spy=\"scroll\"]').each(function () {\n// var $spy = $(this)\n// Plugin.call($spy, $spy.data())\n// })\n// })\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n// +function ($) {\n// 'use strict';\n\n// // TAB CLASS DEFINITION\n// // ====================\n\n// var Tab = function (element) {\n// // jscs:disable requireDollarBeforejQueryAssignment\n// this.element = $(element)\n// // jscs:enable requireDollarBeforejQueryAssignment\n// }\n\n// Tab.VERSION = '3.4.1'\n\n// Tab.TRANSITION_DURATION = 150\n\n// Tab.prototype.show = function () {\n// var $this = this.element\n// var $ul = $this.closest('ul:not(.dropdown-menu)')\n// var selector = $this.data('target')\n\n// if (!selector) {\n// selector = $this.attr('href')\n// selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n// }\n\n// if ($this.parent('li').hasClass('active')) return\n\n// var $previous = $ul.find('.active:last a')\n// var hideEvent = $.Event('hide.bs.tab', {\n// relatedTarget: $this[0]\n// })\n// var showEvent = $.Event('show.bs.tab', {\n// relatedTarget: $previous[0]\n// })\n\n// $previous.trigger(hideEvent)\n// $this.trigger(showEvent)\n\n// if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n// var $target = $(document).find(selector)\n\n// this.activate($this.closest('li'), $ul)\n// this.activate($target, $target.parent(), function () {\n// $previous.trigger({\n// type: 'hidden.bs.tab',\n// relatedTarget: $this[0]\n// })\n// $this.trigger({\n// type: 'shown.bs.tab',\n// relatedTarget: $previous[0]\n// })\n// })\n// }\n\n// Tab.prototype.activate = function (element, container, callback) {\n// var $active = container.find('> .active')\n// var transition = callback\n// && $.support.transition\n// && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n// function next() {\n// $active\n// .removeClass('active')\n// .find('> .dropdown-menu > .active')\n// .removeClass('active')\n// .end()\n// .find('[data-toggle=\"tab\"]')\n// .attr('aria-expanded', false)\n\n// element\n// .addClass('active')\n// .find('[data-toggle=\"tab\"]')\n// .attr('aria-expanded', true)\n\n// if (transition) {\n// element[0].offsetWidth // reflow for transition\n// element.addClass('in')\n// } else {\n// element.removeClass('fade')\n// }\n\n// if (element.parent('.dropdown-menu').length) {\n// element\n// .closest('li.dropdown')\n// .addClass('active')\n// .end()\n// .find('[data-toggle=\"tab\"]')\n// .attr('aria-expanded', true)\n// }\n\n// callback && callback()\n// }\n\n// $active.length && transition ?\n// $active\n// .one('bsTransitionEnd', next)\n// .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n// next()\n\n// $active.removeClass('in')\n// }\n\n\n// // TAB PLUGIN DEFINITION\n// // =====================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.tab')\n\n// if (!data) $this.data('bs.tab', (data = new Tab(this)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.tab\n\n// $.fn.tab = Plugin\n// $.fn.tab.Constructor = Tab\n\n\n// // TAB NO CONFLICT\n// // ===============\n\n// $.fn.tab.noConflict = function () {\n// $.fn.tab = old\n// return this\n// }\n\n\n// // TAB DATA-API\n// // ============\n\n// var clickHandler = function (e) {\n// e.preventDefault()\n// Plugin.call($(this), 'show')\n// }\n\n// $(document)\n// .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n// .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#affix\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n// +function ($) {\n// 'use strict';\n\n// // AFFIX CLASS DEFINITION\n// // ======================\n\n// var Affix = function (element, options) {\n// this.options = $.extend({}, Affix.DEFAULTS, options)\n\n// var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)\n\n// this.$target = target\n// .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n// .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n// this.$element = $(element)\n// this.affixed = null\n// this.unpin = null\n// this.pinnedOffset = null\n\n// this.checkPosition()\n// }\n\n// Affix.VERSION = '3.4.1'\n\n// Affix.RESET = 'affix affix-top affix-bottom'\n\n// Affix.DEFAULTS = {\n// offset: 0,\n// target: window\n// }\n\n// Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n// var scrollTop = this.$target.scrollTop()\n// var position = this.$element.offset()\n// var targetHeight = this.$target.height()\n\n// if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n// if (this.affixed == 'bottom') {\n// if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n// return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n// }\n\n// var initializing = this.affixed == null\n// var colliderTop = initializing ? scrollTop : position.top\n// var colliderHeight = initializing ? targetHeight : height\n\n// if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n// if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n// return false\n// }\n\n// Affix.prototype.getPinnedOffset = function () {\n// if (this.pinnedOffset) return this.pinnedOffset\n// this.$element.removeClass(Affix.RESET).addClass('affix')\n// var scrollTop = this.$target.scrollTop()\n// var position = this.$element.offset()\n// return (this.pinnedOffset = position.top - scrollTop)\n// }\n\n// Affix.prototype.checkPositionWithEventLoop = function () {\n// setTimeout($.proxy(this.checkPosition, this), 1)\n// }\n\n// Affix.prototype.checkPosition = function () {\n// if (!this.$element.is(':visible')) return\n\n// var height = this.$element.height()\n// var offset = this.options.offset\n// var offsetTop = offset.top\n// var offsetBottom = offset.bottom\n// var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n// if (typeof offset != 'object') offsetBottom = offsetTop = offset\n// if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n// if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n// var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n// if (this.affixed != affix) {\n// if (this.unpin != null) this.$element.css('top', '')\n\n// var affixType = 'affix' + (affix ? '-' + affix : '')\n// var e = $.Event(affixType + '.bs.affix')\n\n// this.$element.trigger(e)\n\n// if (e.isDefaultPrevented()) return\n\n// this.affixed = affix\n// this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n// this.$element\n// .removeClass(Affix.RESET)\n// .addClass(affixType)\n// .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n// }\n\n// if (affix == 'bottom') {\n// this.$element.offset({\n// top: scrollHeight - height - offsetBottom\n// })\n// }\n// }\n\n\n// // AFFIX PLUGIN DEFINITION\n// // =======================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.affix')\n// var options = typeof option == 'object' && option\n\n// if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.affix\n\n// $.fn.affix = Plugin\n// $.fn.affix.Constructor = Affix\n\n\n// // AFFIX NO CONFLICT\n// // =================\n\n// $.fn.affix.noConflict = function () {\n// $.fn.affix = old\n// return this\n// }\n\n\n// // AFFIX DATA-API\n// // ==============\n\n// $(window).on('load', function () {\n// $('[data-spy=\"affix\"]').each(function () {\n// var $spy = $(this)\n// var data = $spy.data()\n\n// data.offset = data.offset || {}\n\n// if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n// if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n// Plugin.call($spy, data)\n// })\n// })\n\n// }(jQuery);\n","/*!\n * FormValidation (http://formvalidation.io)\n * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks\n *\n * @version v0.7.0, built on 2015-08-01 4:57:17 PM\n * @author https://twitter.com/formvalidation\n * @copyright (c) 2013 - 2015 Nguyen Huu Phuoc\n * @license http://formvalidation.io/license/\n */\n/**\n * This class supports validating Bootstrap form (http://getbootstrap.com/)\n */\n(function($) {\n FormValidation.Framework.Bootstrap = function(element, options, namespace) {\n options = $.extend(true, {\n button: {\n selector: '[type=\"submit\"]:not([formnovalidate])',\n // The class of disabled button\n // http://getbootstrap.com/css/#buttons-disabled\n disabled: 'disabled'\n },\n err: {\n // http://getbootstrap.com/css/#forms-help-text\n clazz: 'help-block',\n parent: '^(.*)col-(xs|sm|md|lg)-(offset-){0,1}[0-9]+(.*)$'\n },\n // This feature requires Bootstrap v3.1.0 or later (http://getbootstrap.com/css/#forms-control-validation).\n // Since Bootstrap doesn't provide any methods to know its version, this option cannot be on/off automatically.\n // In other word, to use this feature you have to upgrade your Bootstrap to v3.1.0 or later.\n //\n // Examples:\n // - Use Glyphicons icons:\n // icon: {\n // valid: 'glyphicon glyphicon-ok',\n // invalid: 'glyphicon glyphicon-remove',\n // validating: 'glyphicon glyphicon-refresh',\n // feedback: 'form-control-feedback'\n // }\n // - Use FontAwesome icons:\n // icon: {\n // valid: 'fa fa-check',\n // invalid: 'fa fa-times',\n // validating: 'fa fa-refresh',\n // feedback: 'form-control-feedback'\n // }\n icon: {\n valid: null,\n invalid: null,\n validating: null,\n feedback: 'form-control-feedback'\n },\n row: {\n // By default, each field is placed inside the
\n // http://getbootstrap.com/css/#forms\n selector: '.form-group',\n valid: 'has-success',\n invalid: 'has-error',\n feedback: 'has-feedback'\n }\n }, options);\n\n FormValidation.Base.apply(this, [element, options, namespace]);\n };\n\n FormValidation.Framework.Bootstrap.prototype = $.extend({}, FormValidation.Base.prototype, {\n /**\n * Specific framework might need to adjust the icon position\n *\n * @param {jQuery} $field The field element\n * @param {jQuery} $icon The icon element\n */\n _fixIcon: function($field, $icon) {\n var ns = this._namespace,\n type = $field.attr('type'),\n field = $field.attr('data-' + ns + '-field'),\n row = this.options.fields[field].row || this.options.row.selector,\n $parent = $field.closest(row);\n\n // Place it after the container of checkbox/radio\n // so when clicking the icon, it doesn't effect to the checkbox/radio element\n if ('checkbox' === type || 'radio' === type) {\n var $fieldParent = $field.parent();\n if ($fieldParent.hasClass(type)) {\n $icon.insertAfter($fieldParent);\n } else if ($fieldParent.parent().hasClass(type)) {\n $icon.insertAfter($fieldParent.parent());\n }\n }\n\n // The feedback icon does not render correctly if there is no label\n // https://github.com/twbs/bootstrap/issues/12873\n if ($parent.find('label').length === 0) {\n $icon.addClass('fv-icon-no-label');\n }\n // Fix feedback icons in input-group\n if ($parent.find('.input-group').length !== 0) {\n $icon.addClass('fv-bootstrap-icon-input-group')\n .insertAfter($parent.find('.input-group').eq(0));\n }\n },\n\n /**\n * Create a tooltip or popover\n * It will be shown when focusing on the field\n *\n * @param {jQuery} $field The field element\n * @param {String} message The message\n * @param {String} type Can be 'tooltip' or 'popover'\n */\n _createTooltip: function($field, message, type) {\n var ns = this._namespace,\n $icon = $field.data(ns + '.icon');\n if ($icon) {\n switch (type) {\n case 'popover':\n $icon\n .css({\n 'cursor': 'pointer',\n 'pointer-events': 'auto'\n })\n .popover('destroy')\n .popover({\n container: 'body',\n content: message,\n html: true,\n placement: 'auto top',\n trigger: 'hover click'\n });\n break;\n\n case 'tooltip':\n /* falls through */\n default:\n $icon\n .css({\n 'cursor': 'pointer',\n 'pointer-events': 'auto'\n })\n .tooltip('destroy')\n .tooltip({\n container: 'body',\n html: true,\n placement: 'auto top',\n title: message\n });\n break;\n }\n }\n },\n\n /**\n * Destroy the tooltip or popover\n *\n * @param {jQuery} $field The field element\n * @param {String} type Can be 'tooltip' or 'popover'\n */\n _destroyTooltip: function($field, type) {\n var ns = this._namespace,\n $icon = $field.data(ns + '.icon');\n if ($icon) {\n switch (type) {\n case 'popover':\n $icon\n .css({\n 'cursor': '',\n 'pointer-events': 'none'\n })\n .popover('destroy');\n break;\n\n case 'tooltip':\n /* falls through */\n default:\n $icon\n .css({\n 'cursor': '',\n 'pointer-events': 'none'\n })\n .tooltip('destroy');\n break;\n }\n }\n },\n\n /**\n * Hide a tooltip or popover\n *\n * @param {jQuery} $field The field element\n * @param {String} type Can be 'tooltip' or 'popover'\n */\n _hideTooltip: function($field, type) {\n var ns = this._namespace,\n $icon = $field.data(ns + '.icon');\n if ($icon) {\n switch (type) {\n case 'popover':\n $icon.popover('hide');\n break;\n\n case 'tooltip':\n /* falls through */\n default:\n $icon.tooltip('hide');\n break;\n }\n }\n },\n\n /**\n * Show a tooltip or popover\n *\n * @param {jQuery} $field The field element\n * @param {String} type Can be 'tooltip' or 'popover'\n */\n _showTooltip: function($field, type) {\n var ns = this._namespace,\n $icon = $field.data(ns + '.icon');\n if ($icon) {\n switch (type) {\n case 'popover':\n $icon.popover('show');\n break;\n\n case 'tooltip':\n /* falls through */\n default:\n $icon.tooltip('show');\n break;\n }\n }\n }\n });\n\n /**\n * Plugin definition\n * Support backward\n * @deprecated It will be removed soon. Instead of using $(form).bootstrapValidator(), use\n * $(form).formValidation({\n * framework: 'bootstrap' // It's equivalent to use data-fv-framework=\"bootstrap\" for
\n * });\n */\n $.fn.bootstrapValidator = function(option) {\n var params = arguments;\n return this.each(function() {\n var $this = $(this),\n data = $this.data('formValidation') || $this.data('bootstrapValidator'),\n options = 'object' === typeof option && option;\n if (!data) {\n data = new FormValidation.Framework.Bootstrap(this, $.extend({}, {\n events: {\n // Support backward\n formInit: 'init.form.bv',\n formPreValidate: 'prevalidate.form.bv',\n formError: 'error.form.bv',\n formSuccess: 'success.form.bv',\n fieldAdded: 'added.field.bv',\n fieldRemoved: 'removed.field.bv',\n fieldInit: 'init.field.bv',\n fieldError: 'error.field.bv',\n fieldSuccess: 'success.field.bv',\n fieldStatus: 'status.field.bv',\n localeChanged: 'changed.locale.bv',\n validatorError: 'error.validator.bv',\n validatorSuccess: 'success.validator.bv'\n }\n }, options), 'bv');\n\n $this.addClass('fv-form-bootstrap')\n .data('formValidation', data)\n .data('bootstrapValidator', data);\n }\n\n // Allow to call plugin method\n if ('string' === typeof option) {\n data[option].apply(data, Array.prototype.slice.call(params, 1));\n }\n });\n };\n\n $.fn.bootstrapValidator.Constructor = FormValidation.Framework.Bootstrap;\n}(jQuery));\n"],"names":["jQuery","Error","$","version","fn","jquery","split","emulateTransitionEnd","duration","called","$el","this","one","setTimeout","trigger","support","transition","end","el","document","createElement","transEndEventNames","WebkitTransition","MozTransition","OTransition","name","undefined","style","transitionEnd","event","special","bsTransitionEnd","bindType","delegateType","handle","e","target","is","handleObj","handler","apply","arguments","Button","element","options","$element","extend","DEFAULTS","isLoading","Plugin","option","each","$this","data","toggle","setState","VERSION","loadingText","prototype","state","d","val","resetText","proxy","addClass","attr","prop","removeClass","removeAttr","changed","$parent","closest","length","$input","find","hasClass","toggleClass","old","button","Constructor","noConflict","on","$btn","call","preventDefault","first","test","type","Carousel","$indicators","paused","sliding","interval","$active","$items","keyboard","keydown","pause","documentElement","cycle","action","slide","to","TRANSITION_DURATION","wrap","tagName","which","prev","next","clearInterval","setInterval","getItemIndex","item","parent","children","index","getItemForDirection","direction","active","activeIndex","itemIndex","eq","pos","that","$next","isCycling","relatedTarget","slideEvent","Event","isDefaultPrevented","$nextIndicator","slidEvent","offsetWidth","join","carousel","clickHandler","href","replace","$target","slideIndex","window","$carousel","Dropdown","getParent","selector","clearMenus","remove","contains","isActive","insertAfter","stopPropagation","dropdown","DISALLOWED_ATTRIBUTES","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","toLowerCase","inArray","Boolean","nodeValue","match","regExp","filter","value","RegExp","i","l","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","implementation","createHTMLDocument","createdDocument","body","innerHTML","whitelistKeys","map","elements","len","elName","attributeList","attributes","whitelistedAttributes","concat","j","len2","removeAttribute","parentNode","removeChild","Tooltip","enabled","timeout","hoverState","inState","init","animation","placement","template","title","delay","html","container","viewport","padding","sanitize","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","getOptions","$viewport","isFunction","click","hover","focus","constructor","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","dataAttributes","dataAttr","hasOwnProperty","show","hide","getDelegateOptions","defaults","key","obj","self","currentTarget","tip","clearTimeout","isInStateTrue","hasContent","inDom","ownerDocument","$tip","tipId","getUID","setContent","autoToken","autoPlace","detach","css","top","left","display","appendTo","getPosition","actualWidth","actualHeight","offsetHeight","orgPlacement","viewportDim","bottom","right","width","calculatedOffset","getCalculatedOffset","applyPlacement","complete","prevHoverState","offset","height","marginTop","parseInt","marginLeft","isNaN","setOffset","using","props","Math","round","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","dimension","arrow","getTitle","text","callback","$e","isBody","elRect","getBoundingClientRect","isSvg","SVGElement","elOffset","scroll","scrollTop","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","off","removeData","tooltip","FormValidation","Framework","Bootstrap","namespace","disabled","err","clazz","icon","valid","invalid","validating","feedback","row","Base","_fixIcon","$field","$icon","ns","_namespace","field","fields","$fieldParent","_createTooltip","message","popover","content","_destroyTooltip","_hideTooltip","_showTooltip","bootstrapValidator","params","events","formInit","formPreValidate","formError","formSuccess","fieldAdded","fieldRemoved","fieldInit","fieldError","fieldSuccess","fieldStatus","localeChanged","validatorError","validatorSuccess","Array","slice"],"sourceRoot":""}