PageSourceSearch

https://runforhopesg.com/pages/main/assets/libs/bootstrap/js/bootstrap.min.js

js runforhopesg.com collected 2026-10-08 05:08:05 UTC 59,540 bytes, 1,704 lines download raw bytes

1/*!
2 * Bootstrap v3.3.7 (http://getbootstrap.com)
3 * Copyright 2011-2016 Twitter, Inc.
4 * Licensed under the MIT license
5 */
6if ("undefined" == typeof jQuery)
7  throw new Error("Bootstrap's JavaScript requires jQuery");
8+(function (a) {
9  "use strict";
10  var b = a.fn.jquery.split(" ")[0].split(".");
11  if (
12    (b[0] < 2 && b[1] < 9) ||
13    (1 == b[0] && 9 == b[1] && b[2] < 1) ||
14    b[0] > 3
15  )
16    throw new Error(
17      "Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4"
18    );
19})(jQuery),
20  +(function (a) {
21    "use strict";
22    function b() {
23      var a = document.createElement("bootstrap"),
24        b = {
25          WebkitTransition: "webkitTransitionEnd",
26          MozTransition: "transitionend",
27          OTransition: "oTransitionEnd otransitionend",
28          transition: "transitionend",
29        };
30      for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] };
31      return !1;
32    }
33    (a.fn.emulateTransitionEnd = function (b) {
34      var c = !1,
35        d = this;
36      a(this).one("bsTransitionEnd", function () {
37        c = !0;
38      });
39      var e = function () {
40        c || a(d).trigger(a.support.transition.end);
41      };
42      return setTimeout(e, b), this;
43    }),
44      a(function () {
45        (a.support.transition = b()),
46          a.support.transition &&
47            (a.event.special.bsTransitionEnd = {
48              bindType: a.support.transition.end,
49              delegateType: a.support.transition.end,
50              handle: function (b) {
51                if (a(b.target).is(this))
52                  return b.handleObj.handler.apply(this, arguments);
53              },
54            });
55      });
56  })(jQuery),
57  +(function (a) {
58    "use strict";
59    function b(b) {
60      return this.each(function () {
61        var c = a(this),
62          e = c.data("bs.alert");
63        e || c.data("bs.alert", (e = new d(this))),
64          "string" == typeof b && e[b].call(c);
65      });
66    }
67    var c = '[data-dismiss="alert"]',
68      d = function (b) {
69        a(b).on("click", c, this.close);
70      };
71    (d.VERSION = "3.3.7"),
72      (d.TRANSITION_DURATION = 150),
73      (d.prototype.close = function (b) {
74        function c() {
75          g.detach().trigger("closed.bs.alert").remove();
76        }
77        var e = a(this),
78          f = e.attr("data-target");
79        f || ((f = e.attr("href")), (f = f && f.replace(/.*(?=#[^\s]*$)/, "")));
80        var g = a("#" === f ? [] : f);
81        b && b.preventDefault(),
82          g.length || (g = e.closest(".alert")),
83          g.trigger((b = a.Event("close.bs.alert"))),
84          b.isDefaultPrevented() ||
85            (g.removeClass("in"),
86            a.support.transition && g.hasClass("fade")
87              ? g
88                  .one("bsTransitionEnd", c)
89                  .emulateTransitionEnd(d.TRANSITION_DURATION)
90              : c());
91      });
92    var e = a.fn.alert;
93    (a.fn.alert = b),
94      (a.fn.alert.Constructor = d),
95      (a.fn.alert.noConflict = function () {
96        return (a.fn.alert = e), this;
97      }),
98      a(document).on("click.bs.alert.data-api", c, d.prototype.close);
99  })(jQuery),
100  +(function (a) {
101    "use strict";
102    function b(b) {
103      return this.each(function () {
104        var d = a(this),
105          e = d.data("bs.button"),
106          f = "object" == typeof b && b;
107        e || d.data("bs.button", (e = new c(this, f))),
108          "toggle" == b ? e.toggle() : b && e.setState(b);
109      });
110    }
111    var c = function (b, d) {
112      (this.$element = a(b)),
113        (this.options = a.extend({}, c.DEFAULTS, d)),
114        (this.isLoading = !1);
115    };
116    (c.VERSION = "3.3.7"),
117      (c.DEFAULTS = { loadingText: "loading..." }),
118      (c.prototype.setState = function (b) {
119        var c = "disabled",
120          d = this.$element,
121          e = d.is("input") ? "val" : "html",
122          f = d.data();
123        (b += "Text"),
124          null == f.resetText && d.data("resetText", d[e]()),
125          setTimeout(
126            a.proxy(function () {
127              d[e](null == f[b] ? this.options[b] : f[b]),
128                "loadingText" == b
129                  ? ((this.isLoading = !0),
130                    d.addClass(c).attr(c, c).prop(c, !0))
131                  : this.isLoading &&
132                    ((this.isLoading = !1),
133                    d.removeClass(c).removeAttr(c).prop(c, !1));
134            }, this),
135            0
136          );
137      }),
138      (c.prototype.toggle = function () {
139        var a = !0,
140          b = this.$element.closest('[data-toggle="buttons"]');
141        if (b.length) {
142          var c = this.$element.find("input");
143          "radio" == c.prop("type")
144            ? (c.prop("checked") && (a = !1),
145              b.find(".active").removeClass("active"),
146              this.$element.addClass("active"))
147            : "checkbox" == c.prop("type") &&
148              (c.prop("checked") !== this.$element.hasClass("active") &&
149                (a = !1),
150              this.$element.toggleClass("active")),
151            c.prop("checked", this.$element.hasClass("active")),
152            a && c.trigger("change");
153        } else
154          this.$element.attr("aria-pressed", !this.$element.hasClass("active")),
155            this.$element.toggleClass("active");
156      });
157    var d = a.fn.button;
158    (a.fn.button = b),
159      (a.fn.button.Constructor = c),
160      (a.fn.button.noConflict = function () {
161        return (a.fn.button = d), this;
162      }),
163      a(document)
164        .on(
165          "click.bs.button.data-api",
166          '[data-toggle^="button"]',
167          function (c) {
168            var d = a(c.target).closest(".btn");
169            b.call(d, "toggle"),
170              a(c.target).is('input[type="radio"], input[type="checkbox"]') ||
171                (c.preventDefault(),
172                d.is("input,button")
173                  ? d.trigger("focus")
174                  : d
175                      .find("input:visible,button:visible")
176                      .first()
177                      .trigger("focus"));
178          }
179        )
180        .on(
181          "focus.bs.button.data-api blur.bs.button.data-api",
182          '[data-toggle^="button"]',
183          function (b) {
184            a(b.target)
185              .closest(".btn")
186              .toggleClass("focus", /^focus(in)?$/.test(b.type));
187          }
188        );
189  })(jQuery),
190  +(function (a) {
191    "use strict";
192    function b(b) {
193      return this.each(function () {
194        var d = a(this),
195          e = d.data("bs.carousel"),
196          f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b),
197          g = "string" == typeof b ? b : f.slide;
198        e || d.data("bs.carousel", (e = new c(this, f))),
199          "number" == typeof b
200            ? e.to(b)
201            : g
202            ? e[g]()
203            : f.interval && e.pause().cycle();
204      });
205    }
206    var c = function (b, c) {
207      (this.$element = a(b)),
208        (this.$indicators = this.$element.find(".carousel-indicators")),
209        (this.options = c),
210        (this.paused = null),
211        (this.sliding = null),
212        (this.interval = null),
213        (this.$active = null),
214        (this.$items = null),
215        this.options.keyboard &&
216          this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)),
217        "hover" == this.options.pause &&
218          !("ontouchstart" in document.documentElement) &&
219          this.$element
220            .on("mouseenter.bs.carousel", a.proxy(this.pause, this))
221            .on("mouseleave.bs.carousel", a.proxy(this.cycle, this));
222    };
223    (c.VERSION = "3.3.7"),
224      (c.TRANSITION_DURATION = 600),
225      (c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }),
226      (c.prototype.keydown = function (a) {
227        if (!/input|textarea/i.test(a.target.tagName)) {
228          switch (a.which) {
229            case 37:
230              this.prev();
231              break;
232            case 39:
233              this.next();
234              break;
235            default:
236              return;
237          }
238          a.preventDefault();
239        }
240      }),
241      (c.prototype.cycle = function (b) {
242        return (
243          b || (this.paused = !1),
244          this.interval && clearInterval(this.interval),
245          this.options.interval &&
246            !this.paused &&
247            (this.interval = setInterval(
248              a.proxy(this.next, this),
249              this.options.interval
250            )),
251          this
252        );
253      }),
254      (c.prototype.getItemIndex = function (a) {
255        return (
256          (this.$items = a.parent().children(".item")),
257          this.$items.index(a || this.$active)
258        );
259      }),
260      (c.prototype.getItemForDirection = function (a, b) {
261        var c = this.getItemIndex(b),
262          d =
263            ("prev" == a && 0 === c) ||
264            ("next" == a && c == this.$items.length - 1);
265        if (d && !this.options.wrap) return b;
266        var e = "prev" == a ? -1 : 1,
267          f = (c + e) % this.$items.length;
268        return this.$items.eq(f);
269      }),
270      (c.prototype.to = function (a) {
271        var b = this,
272          c = this.getItemIndex(
273            (this.$active = this.$element.find(".item.active"))
274          );
275        if (!(a > this.$items.length - 1 || a < 0))
276          return this.sliding
277            ? this.$element.one("slid.bs.carousel", function () {
278                b.to(a);
279              })
280            : c == a
281            ? this.pause().cycle()
282            : this.slide(a > c ? "next" : "prev", this.$items.eq(a));
283      }),
284      (c.prototype.pause = function (b) {
285        return (
286          b || (this.paused = !0),
287          this.$element.find(".next, .prev").length &&
288            a.support.transition &&
289            (this.$element.trigger(a.support.transition.end), this.cycle(!0)),
290          (this.interval = clearInterval(this.interval)),
291          this
292        );
293      }),
294      (c.prototype.next = function () {
295        if (!this.sliding) return this.slide("next");
296      }),
297      (c.prototype.prev = function () {
298        if (!this.sliding) return this.slide("prev");
299      }),
300      (c.prototype.slide = function (b, d) {
301        var e = this.$element.find(".item.active"),
302          f = d || this.getItemForDirection(b, e),
303          g = this.interval,
304          h = "next" == b ? "left" : "right",
305          i = this;
306        if (f.hasClass("active")) return (this.sliding = !1);
307        var j = f[0],
308          k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h });
309        if ((this.$element.trigger(k), !k.isDefaultPrevented())) {
310          if (
311            ((this.sliding = !0), g && this.pause(), this.$indicators.length)
312          ) {
313            this.$indicators.find(".active").removeClass("active");
314            var l = a(this.$indicators.children()[this.getItemIndex(f)]);
315            l && l.addClass("active");
316          }
317          var m = a.Event("slid.bs.carousel", {
318            relatedTarget: j,
319            direction: h,
320          });
321          return (
322            a.support.transition && this.$element.hasClass("slide")
323              ? (f.addClass(b),
324                f[0].offsetWidth,
325                e.addClass(h),
326                f.addClass(h),
327                e
328                  .one("bsTransitionEnd", function () {
329                    f.removeClass([b, h].join(" ")).addClass("active"),
330                      e.removeClass(["active", h].join(" ")),
331                      (i.sliding = !1),
332                      setTimeout(function () {
333                        i.$element.trigger(m);
334                      }, 0);
335                  })
336                  .emulateTransitionEnd(c.TRANSITION_DURATION))
337              : (e.removeClass("active"),
338                f.addClass("active"),
339                (this.sliding = !1),
340                this.$element.trigger(m)),
341            g && this.cycle(),
342            this
343          );
344        }
345      });
346    var d = a.fn.carousel;
347    (a.fn.carousel = b),
348      (a.fn.carousel.Constructor = c),
349      (a.fn.carousel.noConflict = function () {
350        return (a.fn.carousel = d), this;
351      });
352    var e = function (c) {
353      var d,
354        e = a(this),
355        f = a(
356          e.attr("data-target") ||
357            ((d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""))
358        );
359      if (f.hasClass("carousel")) {
360        var g = a.extend({}, f.data(), e.data()),
361          h = e.attr("data-slide-to");
362        h && (g.interval = !1),
363          b.call(f, g),
364          h && f.data("bs.carousel").to(h),
365          c.preventDefault();
366      }
367    };
368    a(document)
369      .on("click.bs.carousel.data-api", "[data-slide]", e)
370      .on("click.bs.carousel.data-api", "[data-slide-to]", e),
371      a(window).on("load", function () {
372        a('[data-ride="carousel"]').each(function () {
373          var c = a(this);
374          b.call(c, c.data());
375        });
376      });
377  })(jQuery),
378  +(function (a) {
379    "use strict";
380    function b(b) {
381      var c,
382        d =
383          b.attr("data-target") ||
384          ((c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""));
385      return a(d);
386    }
387    function c(b) {
388      return this.each(function () {
389        var c = a(this),
390          e = c.data("bs.collapse"),
391          f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b);
392        !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1),
393          e || c.data("bs.collapse", (e = new d(this, f))),
394          "string" == typeof b && e[b]();
395      });
396    }
397    var d = function (b, c) {
398      (this.$element = a(b)),
399        (this.options = a.extend({}, d.DEFAULTS, c)),
400        (this.$trigger = a(
401          '[data-toggle="collapse"][href="#' +
402            b.id +
403            '"],[data-toggle="collapse"][data-target="#' +
404            b.id +
405            '"]'
406        )),
407        (this.transitioning = null),
408        this.options.parent
409          ? (this.$parent = this.getParent())
410          : this.addAriaAndCollapsedClass(this.$element, this.$trigger),
411        this.options.toggle && this.toggle();
412    };
413    (d.VERSION = "3.3.7"),
414      (d.TRANSITION_DURATION = 350),
415      (d.DEFAULTS = { toggle: !0 }),
416      (d.prototype.dimension = function () {
417        var a = this.$element.hasClass("width");
418        return a ? "width" : "height";
419      }),
420      (d.prototype.show = function () {
421        if (!this.transitioning && !this.$element.hasClass("in")) {
422          var b,
423            e =
424              this.$parent &&
425              this.$parent.children(".panel").children(".in, .collapsing");
426          if (
427            !(
428              e &&
429              e.length &&
430              ((b = e.data("bs.collapse")), b && b.transitioning)
431            )
432          ) {
433            var f = a.Event("show.bs.collapse");
434            if ((this.$element.trigger(f), !f.isDefaultPrevented())) {
435              e &&
436                e.length &&
437                (c.call(e, "hide"), b || e.data("bs.collapse", null));
438              var g = this.dimension();
439              this.$element
440                .removeClass("collapse")
441                .addClass("collapsing")
442                [g](0)
443                .attr("aria-expanded", !0),
444                this.$trigger
445                  .removeClass("collapsed")
446                  .attr("aria-expanded", !0),
447                (this.transitioning = 1);
448              var h = function () {
449                this.$element
450                  .removeClass("collapsing")
451                  .addClass("collapse in")
452                  [g](""),
453                  (this.transitioning = 0),
454                  this.$element.trigger("shown.bs.collapse");
455              };
456              if (!a.support.transition) return h.call(this);
457              var i = a.camelCase(["scroll", g].join("-"));
458              this.$element
459                .one("bsTransitionEnd", a.proxy(h, this))
460                .emulateTransitionEnd(d.TRANSITION_DURATION)
461                [g](this.$element[0][i]);
462            }
463          }
464        }
465      }),
466      (d.prototype.hide = function () {
467        if (!this.transitioning && this.$element.hasClass("in")) {
468          var b = a.Event("hide.bs.collapse");
469          if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
470            var c = this.dimension();
471            this.$element[c](this.$element[c]())[0].offsetHeight,
472              this.$element
473                .addClass("collapsing")
474                .removeClass("collapse in")
475                .attr("aria-expanded", !1),
476              this.$trigger.addClass("collapsed").attr("aria-expanded", !1),
477              (this.transitioning = 1);
478            var e = function () {
479              (this.transitioning = 0),
480                this.$element
481                  .removeClass("collapsing")
482                  .addClass("collapse")
483                  .trigger("hidden.bs.collapse");
484            };
485            return a.support.transition
486              ? void this.$element[c](0)
487                  .one("bsTransitionEnd", a.proxy(e, this))
488                  .emulateTransitionEnd(d.TRANSITION_DURATION)
489              : e.call(this);
490          }
491        }
492      }),
493      (d.prototype.toggle = function () {
494        this[this.$element.hasClass("in") ? "hide" : "show"]();
495      }),
496      (d.prototype.getParent = function () {
497        return a(this.options.parent)
498          .find(
499            '[data-toggle="collapse"][data-parent="' +
500              this.options.parent +
501              '"]'
502          )
503          .each(
504            a.proxy(function (c, d) {
505              var e = a(d);
506              this.addAriaAndCollapsedClass(b(e), e);
507            }, this)
508          )
509          .end();
510      }),
511      (d.prototype.addAriaAndCollapsedClass = function (a, b) {
512        var c = a.hasClass("in");
513        a.attr("aria-expanded", c),
514          b.toggleClass("collapsed", !c).attr("aria-expanded", c);
515      });
516    var e = a.fn.collapse;
517    (a.fn.collapse = c),
518      (a.fn.collapse.Constructor = d),
519      (a.fn.collapse.noConflict = function () {
520        return (a.fn.collapse = e), this;
521      }),
522      a(document).on(
523        "click.bs.collapse.data-api",
524        '[data-toggle="collapse"]',
525        function (d) {
526          var e = a(this);
527          e.attr("data-target") || d.preventDefault();
528          var f = b(e),
529            g = f.data("bs.collapse"),
530            h = g ? "toggle" : e.data();
531          c.call(f, h);
532        }
533      );
534  })(jQuery),
535  +(function (a) {
536    "use strict";
537    function b(b) {
538      var c = b.attr("data-target");
539      c ||
540        ((c = b.attr("href")),
541        (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")));
542      var d = c && a(c);
543      return d && d.length ? d : b.parent();
544    }
545    function c(c) {
546      (c && 3 === c.which) ||
547        (a(e).remove(),
548        a(f).each(function () {
549          var d = a(this),
550            e = b(d),
551            f = { relatedTarget: this };
552          e.hasClass("open") &&
553            ((c &&
554              "click" == c.type &&
555              /input|textarea/i.test(c.target.tagName) &&
556              a.contains(e[0], c.target)) ||
557              (e.trigger((c = a.Event("hide.bs.dropdown", f))),
558              c.isDefaultPrevented() ||
559                (d.attr("aria-expanded", "false"),
560                e
561                  .removeClass("open")
562                  .trigger(a.Event("hidden.bs.dropdown", f)))));
563        }));
564    }
565    function d(b) {
566      return this.each(function () {
567        var c = a(this),
568          d = c.data("bs.dropdown");
569        d || c.data("bs.dropdown", (d = new g(this))),
570          "string" == typeof b && d[b].call(c);
571      });
572    }
573    var e = ".dropdown-backdrop",
574      f = '[data-toggle="dropdown"]',
575      g = function (b) {
576        a(b).on("click.bs.dropdown", this.toggle);
577      };
578    (g.VERSION = "3.3.7"),
579      (g.prototype.toggle = function (d) {
580        var e = a(this);
581        if (!e.is(".disabled, :disabled")) {
582          var f = b(e),
583            g = f.hasClass("open");
584          if ((c(), !g)) {
585            "ontouchstart" in document.documentElement &&
586              !f.closest(".navbar-nav").length &&
587              a(document.createElement("div"))
588                .addClass("dropdown-backdrop")
589                .insertAfter(a(this))
590                .on("click", c);
591            var h = { relatedTarget: this };
592            if (
593              (f.trigger((d = a.Event("show.bs.dropdown", h))),
594              d.isDefaultPrevented())
595            )
596              return;
597            e.trigger("focus").attr("aria-expanded", "true"),
598              f.toggleClass("open").trigger(a.Event("shown.bs.dropdown", h));
599          }
600          return !1;
601        }
602      }),
603      (g.prototype.keydown = function (c) {
604        if (
605          /(38|40|27|32)/.test(c.which) &&
606          !/input|textarea/i.test(c.target.tagName)
607        ) {
608          var d = a(this);
609          if (
610            (c.preventDefault(),
611            c.stopPropagation(),
612            !d.is(".disabled, :disabled"))
613          ) {
614            var e = b(d),
615              g = e.hasClass("open");
616            if ((!g && 27 != c.which) || (g && 27 == c.which))
617              return (
618                27 == c.which && e.find(f).trigger("focus"), d.trigger("click")
619              );
620            var h = " li:not(.disabled):visible a",
621              i = e.find(".dropdown-menu" + h);
622            if (i.length) {
623              var j = i.index(c.target);
624              38 == c.which && j > 0 && j--,
625                40 == c.which && j < i.length - 1 && j++,
626                ~j || (j = 0),
627                i.eq(j).trigger("focus");
628            }
629          }
630        }
631      });
632    var h = a.fn.dropdown;
633    (a.fn.dropdown = d),
634      (a.fn.dropdown.Constructor = g),
635      (a.fn.dropdown.noConflict = function () {
636        return (a.fn.dropdown = h), this;
637      }),
638      a(document)
639        .on("click.bs.dropdown.data-api", c)
640        .on("click.bs.dropdown.data-api", ".dropdown form", function (a) {
641          a.stopPropagation();
642        })
643        .on("click.bs.dropdown.data-api", f, g.prototype.toggle)
644        .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown)
645        .on(
646          "keydown.bs.dropdown.data-api",
647          ".dropdown-menu",
648          g.prototype.keydown
649        );
650  })(jQuery),
651  +(function (a) {
652    "use strict";
653    function b(b, d) {
654      return this.each(function () {
655        var e = a(this),
656          f = e.data("bs.modal"),
657          g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b);
658        f || e.data("bs.modal", (f = new c(this, g))),
659          "string" == typeof b ? f[b](d) : g.show && f.show(d);
660      });
661    }
662    var c = function (b, c) {
663      (this.options = c),
664        (this.$body = a(document.body)),
665        (this.$element = a(b)),
666        (this.$dialog = this.$element.find(".modal-dialog")),
667        (this.$backdrop = null),
668        (this.isShown = null),
669        (this.originalBodyPad = null),
670        (this.scrollbarWidth = 0),
671        (this.ignoreBackdropClick = !1),
672        this.options.remote &&
673          this.$element.find(".modal-content").load(
674            this.options.remote,
675            a.proxy(function () {
676              this.$element.trigger("loaded.bs.modal");
677            }, this)
678          );
679    };
680    (c.VERSION = "3.3.7"),
681      (c.TRANSITION_DURATION = 300),
682      (c.BACKDROP_TRANSITION_DURATION = 150),
683      (c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }),
684      (c.prototype.toggle = function (a) {
685        return this.isShown ? this.hide() : this.show(a);
686      }),
687      (c.prototype.show = function (b) {
688        var d = this,
689          e = a.Event("show.bs.modal", { relatedTarget: b });
690        this.$element.trigger(e),
691          this.isShown ||
692            e.isDefaultPrevented() ||
693            ((this.isShown = !0),
694            this.checkScrollbar(),
695            this.setScrollbar(),
696            this.$body.addClass("modal-open"),
697            this.escape(),
698            this.resize(),
699            this.$element.on(
700              "click.dismiss.bs.modal",
701              '[data-dismiss="modal"]',
702              a.proxy(this.hide, this)
703            ),
704            this.$dialog.on("mousedown.dismiss.bs.modal", function () {
705              d.$element.one("mouseup.dismiss.bs.modal", function (b) {
706                a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0);
707              });
708            }),
709            this.backdrop(function () {
710              var e = a.support.transition && d.$element.hasClass("fade");
711              d.$element.parent().length || d.$element.appendTo(d.$body),
712                d.$element.show().scrollTop(0),
713                d.adjustDialog(),
714                e && d.$element[0].offsetWidth,
715                d.$element.addClass("in"),
716                d.enforceFocus();
717              var f = a.Event("shown.bs.modal", { relatedTarget: b });
718              e
719                ? d.$dialog
720                    .one("bsTransitionEnd", function () {
721                      d.$element.trigger("focus").trigger(f);
722                    })
723                    .emulateTransitionEnd(c.TRANSITION_DURATION)
724                : d.$element.trigger("focus").trigger(f);
725            }));
726      }),
727      (c.prototype.hide = function (b) {
728        b && b.preventDefault(),
729          (b = a.Event("hide.bs.modal")),
730          this.$element.trigger(b),
731          this.isShown &&
732            !b.isDefaultPrevented() &&
733            ((this.isShown = !1),
734            this.escape(),
735            this.resize(),
736            a(document).off("focusin.bs.modal"),
737            this.$element
738              .removeClass("in")
739              .off("click.dismiss.bs.modal")
740              .off("mouseup.dismiss.bs.modal"),
741            this.$dialog.off("mousedown.dismiss.bs.modal"),
742            a.support.transition && this.$element.hasClass("fade")
743              ? this.$element
744                  .one("bsTransitionEnd", a.proxy(this.hideModal, this))
745                  .emulateTransitionEnd(c.TRANSITION_DURATION)
746              : this.hideModal());
747      }),
748      (c.prototype.enforceFocus = function () {
749        a(document)
750          .off("focusin.bs.modal")
751          .on(
752            "focusin.bs.modal",
753            a.proxy(function (a) {
754              document === a.target ||
755                this.$element[0] === a.target ||
756                this.$element.has(a.target).length ||
757                this.$element.trigger("focus");
758            }, this)
759          );
760      }),
761      (c.prototype.escape = function () {
762        this.isShown && this.options.keyboard
763          ? this.$element.on(
764              "keydown.dismiss.bs.modal",
765              a.proxy(function (a) {
766                27 == a.which && this.hide();
767              }, this)
768            )
769          : this.isShown || this.$element.off("keydown.dismiss.bs.modal");
770      }),
771      (c.prototype.resize = function () {
772        this.isShown
773          ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this))
774          : a(window).off("resize.bs.modal");
775      }),
776      (c.prototype.hideModal = function () {
777        var a = this;
778        this.$element.hide(),
779          this.backdrop(function () {
780            a.$body.removeClass("modal-open"),
781              a.resetAdjustments(),
782              a.resetScrollbar(),
783              a.$element.trigger("hidden.bs.modal");
784          });
785      }),
786      (c.prototype.removeBackdrop = function () {
787        this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null);
788      }),
789      (c.prototype.backdrop = function (b) {
790        var d = this,
791          e = this.$element.hasClass("fade") ? "fade" : "";
792        if (this.isShown && this.options.backdrop) {
793          var f = a.support.transition && e;
794          if (
795            ((this.$backdrop = a(document.createElement("div"))
796              .addClass("modal-backdrop " + e)
797              .appendTo(this.$body)),
798            this.$element.on(
799              "click.dismiss.bs.modal",
800              a.proxy(function (a) {
801                return this.ignoreBackdropClick
802                  ? void (this.ignoreBackdropClick = !1)
803                  : void (
804                      a.target === a.currentTarget &&
805                      ("static" == this.options.backdrop
806                        ? this.$element[0].focus()
807                        : this.hide())
808                    );
809              }, this)
810            ),
811            f && this.$backdrop[0].offsetWidth,
812            this.$backdrop.addClass("in"),
813            !b)
814          )
815            return;
816          f
817            ? this.$backdrop
818                .one("bsTransitionEnd", b)
819                .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION)
820            : b();
821        } else if (!this.isShown && this.$backdrop) {
822          this.$backdrop.removeClass("in");
823          var g = function () {
824            d.removeBackdrop(), b && b();
825          };
826          a.support.transition && this.$element.hasClass("fade")
827            ? this.$backdrop
828                .one("bsTransitionEnd", g)
829                .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION)
830            : g();
831        } else b && b();
832      }),
833      (c.prototype.handleUpdate = function () {
834        this.adjustDialog();
835      }),
836      (c.prototype.adjustDialog = function () {
837        var a =
838          this.$element[0].scrollHeight > document.documentElement.clientHeight;
839        this.$element.css({
840          paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "",
841          paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "",
842        });
843      }),
844      (c.prototype.resetAdjustments = function () {
845        this.$element.css({ paddingLeft: "", paddingRight: "" });
846      }),
847      (c.prototype.checkScrollbar = function () {
848        var a = window.innerWidth;
849        if (!a) {
850          var b = document.documentElement.getBoundingClientRect();
851          a = b.right - Math.abs(b.left);
852        }
853        (this.bodyIsOverflowing = document.body.clientWidth < a),
854          (this.scrollbarWidth = this.measureScrollbar());
855      }),
856      (c.prototype.setScrollbar = function () {
857        var a = parseInt(this.$body.css("padding-right") || 0, 10);
858        (this.originalBodyPad = document.body.style.paddingRight || ""),
859          this.bodyIsOverflowing &&
860            this.$body.css("padding-right", a + this.scrollbarWidth);
861      }),
862      (c.prototype.resetScrollbar = function () {
863        this.$body.css("padding-right", this.originalBodyPad);
864      }),
865      (c.prototype.measureScrollbar = function () {
866        var a = document.createElement("div");
867        (a.className = "modal-scrollbar-measure"), this.$body.append(a);
868        var b = a.offsetWidth - a.clientWidth;
869        return this.$body[0].removeChild(a), b;
870      });
871    var d = a.fn.modal;
872    (a.fn.modal = b),
873      (a.fn.modal.Constructor = c),
874      (a.fn.modal.noConflict = function () {
875        return (a.fn.modal = d), this;
876      }),
877      a(document).on(
878        "click.bs.modal.data-api",
879        '[data-toggle="modal"]',
880        function (c) {
881          var d = a(this),
882            e = d.attr("href"),
883            f = a(
884              d.attr("data-target") || (e && e.replace(/.*(?=#[^\s]+$)/, ""))
885            ),
886            g = f.data("bs.modal")
887              ? "toggle"
888              : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data());
889          d.is("a") && c.preventDefault(),
890            f.one("show.bs.modal", function (a) {
891              a.isDefaultPrevented() ||
892                f.one("hidden.bs.modal", function () {
893                  d.is(":visible") && d.trigger("focus");
894                });
895            }),
896            b.call(f, g, this);
897        }
898      );
899  })(jQuery),
900  +(function (a) {
901    "use strict";
902    function b(b) {
903      return this.each(function () {
904        var d = a(this),
905          e = d.data("bs.tooltip"),
906          f = "object" == typeof b && b;
907        (!e && /destroy|hide/.test(b)) ||
908          (e || d.data("bs.tooltip", (e = new c(this, f))),
909          "string" == typeof b && e[b]());
910      });
911    }
912    var c = function (a, b) {
913      (this.type = null),
914        (this.options = null),
915        (this.enabled = null),
916        (this.timeout = null),
917        (this.hoverState = null),
918        (this.$element = null),
919        (this.inState = null),
920        this.init("tooltip", a, b);
921    };
922    (c.VERSION = "3.3.7"),
923      (c.TRANSITION_DURATION = 150),
924      (c.DEFAULTS = {
925        animation: !0,
926        placement: "top",
927        selector: !1,
928        template:
929          '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
930        trigger: "hover focus",
931        title: "",
932        delay: 0,
933        html: !1,
934        container: !1,
935        viewport: { selector: "body", padding: 0 },
936      }),
937      (c.prototype.init = function (b, c, d) {
938        if (
939          ((this.enabled = !0),
940          (this.type = b),
941          (this.$element = a(c)),
942          (this.options = this.getOptions(d)),
943          (this.$viewport =
944            this.options.viewport &&
945            a(
946              a.isFunction(this.options.viewport)
947                ? this.options.viewport.call(this, this.$element)
948                : this.options.viewport.selector || this.options.viewport
949            )),
950          (this.inState = { click: !1, hover: !1, focus: !1 }),
951          this.$element[0] instanceof document.constructor &&
952            !this.options.selector)
953        )
954          throw new Error(
955            "`selector` option must be specified when initializing " +
956              this.type +
957              " on the window.document object!"
958          );
959        for (var e = this.options.trigger.split(" "), f = e.length; f--; ) {
960          var g = e[f];
961          if ("click" == g)
962            this.$element.on(
963              "click." + this.type,
964              this.options.selector,
965              a.proxy(this.toggle, this)
966            );
967          else if ("manual" != g) {
968            var h = "hover" == g ? "mouseenter" : "focusin",
969              i = "hover" == g ? "mouseleave" : "focusout";
970            this.$element.on(
971              h + "." + this.type,
972              this.options.selector,
973              a.proxy(this.enter, this)
974            ),
975              this.$element.on(
976                i + "." + this.type,
977                this.options.selector,
978                a.proxy(this.leave, this)
979              );
980          }
981        }
982        this.options.selector
983          ? (this._options = a.extend({}, this.options, {
984              trigger: "manual",
985              selector: "",
986            }))
987          : this.fixTitle();
988      }),
989      (c.prototype.getDefaults = function () {
990        return c.DEFAULTS;
991      }),
992      (c.prototype.getOptions = function (b) {
993        return (
994          (b = a.extend({}, this.getDefaults(), this.$element.data(), b)),
995          b.delay &&
996            "number" == typeof b.delay &&
997            (b.delay = { show: b.delay, hide: b.delay }),
998          b
999        );
1000      }),
1001      (c.prototype.getDelegateOptions = function () {
1002        var b = {},
1003          c = this.getDefaults();
1004        return (
1005          this._options &&
1006            a.each(this._options, function (a, d) {
1007              c[a] != d && (b[a] = d);
1008            }),
1009          b
1010        );
1011      }),
1012      (c.prototype.enter = function (b) {
1013        var c =
1014          b instanceof this.constructor
1015            ? b
1016            : a(b.currentTarget).data("bs." + this.type);
1017        return (
1018          c ||
1019            ((c = new this.constructor(
1020              b.currentTarget,
1021              this.getDelegateOptions()
1022            )),
1023            a(b.currentTarget).data("bs." + this.type, c)),
1024          b instanceof a.Event &&
1025            (c.inState["focusin" == b.type ? "focus" : "hover"] = !0),
1026          c.tip().hasClass("in") || "in" == c.hoverState
1027            ? void (c.hoverState = "in")
1028            : (clearTimeout(c.timeout),
1029              (c.hoverState = "in"),
1030              c.options.delay && c.options.delay.show
1031                ? void (c.timeout = setTimeout(function () {
1032                    "in" == c.hoverState && c.show();
1033                  }, c.options.delay.show))
1034                : c.show())
1035        );
1036      }),
1037      (c.prototype.isInStateTrue = function () {
1038        for (var a in this.inState) if (this.inState[a]) return !0;
1039        return !1;
1040      }),
1041      (c.prototype.leave = function (b) {
1042        var c =
1043          b instanceof this.constructor
1044            ? b
1045            : a(b.currentTarget).data("bs." + this.type);
1046        if (
1047          (c ||
1048            ((c = new this.constructor(
1049              b.currentTarget,
1050              this.getDelegateOptions()
1051            )),
1052            a(b.currentTarget).data("bs." + this.type, c)),
1053          b instanceof a.Event &&
1054            (c.inState["focusout" == b.type ? "focus" : "hover"] = !1),
1055          !c.isInStateTrue())
1056        )
1057          return (
1058            clearTimeout(c.timeout),
1059            (c.hoverState = "out"),
1060            c.options.delay && c.options.delay.hide
1061              ? void (c.timeout = setTimeout(function () {
1062                  "out" == c.hoverState && c.hide();
1063                }, c.options.delay.hide))
1064              : c.hide()
1065          );
1066      }),
1067      (c.prototype.show = function () {
1068        var b = a.Event("show.bs." + this.type);
1069        if (this.hasContent() && this.enabled) {
1070          this.$element.trigger(b);
1071          var d = a.contains(
1072            this.$element[0].ownerDocument.documentElement,
1073            this.$element[0]
1074          );
1075          if (b.isDefaultPrevented() || !d) return;
1076          var e = this,
1077            f = this.tip(),
1078            g = this.getUID(this.type);
1079          this.setContent(),
1080            f.attr("id", g),
1081            this.$element.attr("aria-describedby", g),
1082            this.options.animation && f.addClass("fade");
1083          var h =
1084              "function" == typeof this.options.placement
1085                ? this.options.placement.call(this, f[0], this.$element[0])
1086                : this.options.placement,
1087            i = /\s?auto?\s?/i,
1088            j = i.test(h);
1089          j && (h = h.replace(i, "") || "top"),
1090            f
1091              .detach()
1092              .css({ top: 0, left: 0, display: "block" })
1093              .addClass(h)
1094              .data("bs." + this.type, this),
1095            this.options.container
1096              ? f.appendTo(this.options.container)
1097              : f.insertAfter(this.$element),
1098            this.$element.trigger("inserted.bs." + this.type);
1099          var k = this.getPosition(),
1100            l = f[0].offsetWidth,
1101            m = f[0].offsetHeight;
1102          if (j) {
1103            var n = h,
1104              o = this.getPosition(this.$viewport);
1105            (h =
1106              "bottom" == h && k.bottom + m > o.bottom
1107                ? "top"
1108                : "top" == h && k.top - m < o.top
1109                ? "bottom"
1110                : "right" == h && k.right + l > o.width
1111                ? "left"
1112                : "left" == h && k.left - l < o.left
1113                ? "right"
1114                : h),
1115              f.removeClass(n).addClass(h);
1116          }
1117          var p = this.getCalculatedOffset(h, k, l, m);
1118          this.applyPlacement(p, h);
1119          var q = function () {
1120            var a = e.hoverState;
1121            e.$element.trigger("shown.bs." + e.type),
1122              (e.hoverState = null),
1123              "out" == a && e.leave(e);
1124          };
1125          a.support.transition && this.$tip.hasClass("fade")
1126            ? f
1127                .one("bsTransitionEnd", q)
1128                .emulateTransitionEnd(c.TRANSITION_DURATION)
1129            : q();
1130        }
1131      }),
1132      (c.prototype.applyPlacement = function (b, c) {
1133        var d = this.tip(),
1134          e = d[0].offsetWidth,
1135          f = d[0].offsetHeight,
1136          g = parseInt(d.css("margin-top"), 10),
1137          h = parseInt(d.css("margin-left"), 10);
1138        isNaN(g) && (g = 0),
1139          isNaN(h) && (h = 0),
1140          (b.top += g),
1141          (b.left += h),
1142          a.offset.setOffset(
1143            d[0],
1144            a.extend(
1145              {
1146                using: function (a) {
1147                  d.css({ top: Math.round(a.top), left: Math.round(a.left) });
1148                },
1149              },
1150              b
1151            ),
1152            0
1153          ),
1154          d.addClass("in");
1155        var i = d[0].offsetWidth,
1156          j = d[0].offsetHeight;
1157        "top" == c && j != f && (b.top = b.top + f - j);
1158        var k = this.getViewportAdjustedDelta(c, b, i, j);
1159        k.left ? (b.left += k.left) : (b.top += k.top);
1160        var l = /top|bottom/.test(c),
1161          m = l ? 2 * k.left - e + i : 2 * k.top - f + j,
1162          n = l ? "offsetWidth" : "offsetHeight";
1163        d.offset(b), this.replaceArrow(m, d[0][n], l);
1164      }),
1165      (c.prototype.replaceArrow = function (a, b, c) {
1166        this.arrow()
1167          .css(c ? "left" : "top", 50 * (1 - a / b) + "%")
1168          .css(c ? "top" : "left", "");
1169      }),
1170      (c.prototype.setContent = function () {
1171        var a = this.tip(),
1172          b = this.getTitle();
1173        a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b),
1174          a.removeClass("fade in top bottom left right");
1175      }),
1176      (c.prototype.hide = function (b) {
1177        function d() {
1178          "in" != e.hoverState && f.detach(),
1179            e.$element &&
1180              e.$element
1181                .removeAttr("aria-describedby")
1182                .trigger("hidden.bs." + e.type),
1183            b && b();
1184        }
1185        var e = this,
1186          f = a(this.$tip),
1187          g = a.Event("hide.bs." + this.type);
1188        if ((this.$element.trigger(g), !g.isDefaultPrevented()))
1189          return (
1190            f.removeClass("in"),
1191            a.support.transition && f.hasClass("fade")
1192              ? f
1193                  .one("bsTransitionEnd", d)
1194                  .emulateTransitionEnd(c.TRANSITION_DURATION)
1195              : d(),
1196            (this.hoverState = null),
1197            this
1198          );
1199      }),
1200      (c.prototype.fixTitle = function () {
1201        var a = this.$element;
1202        (a.attr("title") || "string" != typeof a.attr("data-original-title")) &&
1203          a
1204            .attr("data-original-title", a.attr("title") || "")
1205            .attr("title", "");
1206      }),
1207      (c.prototype.hasContent = function () {
1208        return this.getTitle();
1209      }),
1210      (c.prototype.getPosition = function (b) {
1211        b = b || this.$element;
1212        var c = b[0],
1213          d = "BODY" == c.tagName,
1214          e = c.getBoundingClientRect();
1215        null == e.width &&
1216          (e = a.extend({}, e, {
1217            width: e.right - e.left,
1218            height: e.bottom - e.top,
1219          }));
1220        var f = window.SVGElement && c instanceof window.SVGElement,
1221          g = d ? { top: 0, left: 0 } : f ? null : b.offset(),
1222          h = {
1223            scroll: d
1224              ? document.documentElement.scrollTop || document.body.scrollTop
1225              : b.scrollTop(),
1226          },
1227          i = d
1228            ? { width: a(window).width(), height: a(window).height() }
1229            : null;
1230        return a.extend({}, e, h, i, g);
1231      }),
1232      (c.prototype.getCalculatedOffset = function (a, b, c, d) {
1233        return "bottom" == a
1234          ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 }
1235          : "top" == a
1236          ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 }
1237          : "left" == a
1238          ? { top: b.top + b.height / 2 - d / 2, left: b.left - c }
1239          : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width };
1240      }),
1241      (c.prototype.getViewportAdjustedDelta = function (a, b, c, d) {
1242        var e = { top: 0, left: 0 };
1243        if (!this.$viewport) return e;
1244        var f = (this.options.viewport && this.options.viewport.padding) || 0,
1245          g = this.getPosition(this.$viewport);
1246        if (/right|left/.test(a)) {
1247          var h = b.top - f - g.scroll,
1248            i = b.top + f - g.scroll + d;
1249          h < g.top
1250            ? (e.top = g.top - h)
1251            : i > g.top + g.height && (e.top = g.top + g.height - i);
1252        } else {
1253          var j = b.left - f,
1254            k = b.left + f + c;
1255          j < g.left
1256            ? (e.left = g.left - j)
1257            : k > g.right && (e.left = g.left + g.width - k);
1258        }
1259        return e;
1260      }),
1261      (c.prototype.getTitle = function () {
1262        var a,
1263          b = this.$element,
1264          c = this.options;
1265        return (a =
1266          b.attr("data-original-title") ||
1267          ("function" == typeof c.title ? c.title.call(b[0]) : c.title));
1268      }),
1269      (c.prototype.getUID = function (a) {
1270        do a += ~~(1e6 * Math.random());
1271        while (document.getElementById(a));
1272        return a;
1273      }),
1274      (c.prototype.tip = function () {
1275        if (
1276          !this.$tip &&
1277          ((this.$tip = a(this.options.template)), 1 != this.$tip.length)
1278        )
1279          throw new Error(
1280            this.type +
1281              " `template` option must consist of exactly 1 top-level element!"
1282          );
1283        return this.$tip;
1284      }),
1285      (c.prototype.arrow = function () {
1286        return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow"));
1287      }),
1288      (c.prototype.enable = function () {
1289        this.enabled = !0;
1290      }),
1291      (c.prototype.disable = function () {
1292        this.enabled = !1;
1293      }),
1294      (c.prototype.toggleEnabled = function () {
1295        this.enabled = !this.enabled;
1296      }),
1297      (c.prototype.toggle = function (b) {
1298        var c = this;
1299        b &&
1300          ((c = a(b.currentTarget).data("bs." + this.type)),
1301          c ||
1302            ((c = new this.constructor(
1303              b.currentTarget,
1304              this.getDelegateOptions()
1305            )),
1306            a(b.currentTarget).data("bs." + this.type, c))),
1307          b
1308            ? ((c.inState.click = !c.inState.click),
1309              c.isInStateTrue() ? c.enter(c) : c.leave(c))
1310            : c.tip().hasClass("in")
1311            ? c.leave(c)
1312            : c.enter(c);
1313      }),
1314      (c.prototype.destroy = function () {
1315        var a = this;
1316        clearTimeout(this.timeout),
1317          this.hide(function () {
1318            a.$element.off("." + a.type).removeData("bs." + a.type),
1319              a.$tip && a.$tip.detach(),
1320              (a.$tip = null),
1321              (a.$arrow = null),
1322              (a.$viewport = null),
1323              (a.$element = null);
1324          });
1325      });
1326    var d = a.fn.tooltip;
1327    (a.fn.tooltip = b),
1328      (a.fn.tooltip.Constructor = c),
1329      (a.fn.tooltip.noConflict = function () {
1330        return (a.fn.tooltip = d), this;
1331      });
1332  })(jQuery),
1333  +(function (a) {
1334    "use strict";
1335    function b(b) {
1336      return this.each(function () {
1337        var d = a(this),
1338          e = d.data("bs.popover"),
1339          f = "object" == typeof b && b;
1340        (!e && /destroy|hide/.test(b)) ||
1341          (e || d.data("bs.popover", (e = new c(this, f))),
1342          "string" == typeof b && e[b]());
1343      });
1344    }
1345    var c = function (a, b) {
1346      this.init("popover", a, b);
1347    };
1348    if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js");
1349    (c.VERSION = "3.3.7"),
1350      (c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
1351        placement: "right",
1352        trigger: "click",
1353        content: "",
1354        template:
1355          '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
1356      })),
1357      (c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)),
1358      (c.prototype.constructor = c),
1359      (c.prototype.getDefaults = function () {
1360        return c.DEFAULTS;
1361      }),
1362      (c.prototype.setContent = function () {
1363        var a = this.tip(),
1364          b = this.getTitle(),
1365          c = this.getContent();
1366        a.find(".popover-title")[this.options.html ? "html" : "text"](b),
1367          a
1368            .find(".popover-content")
1369            .children()
1370            .detach()
1371            .end()
1372            [
1373              this.options.html
1374                ? "string" == typeof c
1375                  ? "html"
1376                  : "append"
1377                : "text"
1378            ](c),
1379          a.removeClass("fade top bottom left right in"),
1380          a.find(".popover-title").html() || a.find(".popover-title").hide();
1381      }),
1382      (c.prototype.hasContent = function () {
1383        return this.getTitle() || this.getContent();
1384      }),
1385      (c.prototype.getContent = function () {
1386        var a = this.$element,
1387          b = this.options;
1388        return (
1389          a.attr("data-content") ||
1390          ("function" == typeof b.content ? b.content.call(a[0]) : b.content)
1391        );
1392      }),
1393      (c.prototype.arrow = function () {
1394        return (this.$arrow = this.$arrow || this.tip().find(".arrow"));
1395      });
1396    var d = a.fn.popover;
1397    (a.fn.popover = b),
1398      (a.fn.popover.Constructor = c),
1399      (a.fn.popover.noConflict = function () {
1400        return (a.fn.popover = d), this;
1401      });
1402  })(jQuery),
1403  +(function (a) {
1404    "use strict";
1405    function b(c, d) {
1406      (this.$body = a(document.body)),
1407        (this.$scrollElement = a(a(c).is(document.body) ? window : c)),
1408        (this.options = a.extend({}, b.DEFAULTS, d)),
1409        (this.selector = (this.options.target || "") + " .nav li > a"),
1410        (this.offsets = []),
1411        (this.targets = []),
1412        (this.activeTarget = null),
1413        (this.scrollHeight = 0),
1414        this.$scrollElement.on(
1415          "scroll.bs.scrollspy",
1416          a.proxy(this.process, this)
1417        ),
1418        this.refresh(),
1419        this.process();
1420    }
1421    function c(c) {
1422      return this.each(function () {
1423        var d = a(this),
1424          e = d.data("bs.scrollspy"),
1425          f = "object" == typeof c && c;
1426        e || d.data("bs.scrollspy", (e = new b(this, f))),
1427          "string" == typeof c && e[c]();
1428      });
1429    }
1430    (b.VERSION = "3.3.7"),
1431      (b.DEFAULTS = { offset: 10 }),
1432      (b.prototype.getScrollHeight = function () {
1433        return (
1434          this.$scrollElement[0].scrollHeight ||
1435          Math.max(
1436            this.$body[0].scrollHeight,
1437            document.documentElement.scrollHeight
1438          )
1439        );
1440      }),
1441      (b.prototype.refresh = function () {
1442        var b = this,
1443          c = "offset",
1444          d = 0;
1445        (this.offsets = []),
1446          (this.targets = []),
1447          (this.scrollHeight = this.getScrollHeight()),
1448          a.isWindow(this.$scrollElement[0]) ||
1449            ((c = "position"), (d = this.$scrollElement.scrollTop())),
1450          this.$body
1451            .find(this.selector)
1452            .map(function () {
1453              var b = a(this),
1454                e = b.data("target") || b.attr("href"),
1455                f = /^#./.test(e) && a(e);
1456              return (
1457                (f && f.length && f.is(":visible") && [[f[c]().top + d, e]]) ||
1458                null
1459              );
1460            })
1461            .sort(function (a, b) {
1462              return a[0] - b[0];
1463            })
1464            .each(function () {
1465              b.offsets.push(this[0]), b.targets.push(this[1]);
1466            });
1467      }),
1468      (b.prototype.process = function () {
1469        var a,
1470          b = this.$scrollElement.scrollTop() + this.options.offset,
1471          c = this.getScrollHeight(),
1472          d = this.options.offset + c - this.$scrollElement.height(),
1473          e = this.offsets,
1474          f = this.targets,
1475          g = this.activeTarget;
1476        if ((this.scrollHeight != c && this.refresh(), b >= d))
1477          return g != (a = f[f.length - 1]) && this.activate(a);
1478        if (g && b < e[0]) return (this.activeTarget = null), this.clear();
1479        for (a = e.length; a--; )
1480          g != f[a] &&
1481            b >= e[a] &&
1482            (void 0 === e[a + 1] || b < e[a + 1]) &&
1483            this.activate(f[a]);
1484      }),
1485      (b.prototype.activate = function (b) {
1486        (this.activeTarget = b), this.clear();
1487        var c =
1488            this.selector +
1489            '[data-target="' +
1490            b +
1491            '"],' +
1492            this.selector +
1493            '[href="' +
1494            b +
1495            '"]',
1496          d = a(c).parents("li").addClass("active");
1497        d.parent(".dropdown-menu").length &&
1498          (d = d.closest("li.dropdown").addClass("active")),
1499          d.trigger("activate.bs.scrollspy");
1500      }),
1501      (b.prototype.clear = function () {
1502        a(this.selector)
1503          .parentsUntil(this.options.target, ".active")
1504          .removeClass("active");
1505      });
1506    var d = a.fn.scrollspy;
1507    (a.fn.scrollspy = c),
1508      (a.fn.scrollspy.Constructor = b),
1509      (a.fn.scrollspy.noConflict = function () {
1510        return (a.fn.scrollspy = d), this;
1511      }),
1512      a(window).on("load.bs.scrollspy.data-api", function () {
1513        a('[data-spy="scroll"]').each(function () {
1514          var b = a(this);
1515          c.call(b, b.data());
1516        });
1517      });
1518  })(jQuery),
1519  +(function (a) {
1520    "use strict";
1521    function b(b) {
1522      return this.each(function () {
1523        var d = a(this),
1524          e = d.data("bs.tab");
1525        e || d.data("bs.tab", (e = new c(this))),
1526          "string" == typeof b && e[b]();
1527      });
1528    }
1529    var c = function (b) {
1530      this.element = a(b);
1531    };
1532    (c.VERSION = "3.3.7"),
1533      (c.TRANSITION_DURATION = 150),
1534      (c.prototype.show = function () {
1535        var b = this.element,
1536          c = b.closest("ul:not(.dropdown-menu)"),
1537          d = b.data("target");
1538        if (
1539          (d ||
1540            ((d = b.attr("href")), (d = d && d.replace(/.*(?=#[^\s]*$)/, ""))),
1541          !b.parent("li").hasClass("active"))
1542        ) {
1543          var e = c.find(".active:last a"),
1544            f = a.Event("hide.bs.tab", { relatedTarget: b[0] }),
1545            g = a.Event("show.bs.tab", { relatedTarget: e[0] });
1546          if (
1547            (e.trigger(f),
1548            b.trigger(g),
1549            !g.isDefaultPrevented() && !f.isDefaultPrevented())
1550          ) {
1551            var h = a(d);
1552            this.activate(b.closest("li"), c),
1553              this.activate(h, h.parent(), function () {
1554                e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }),
1555                  b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] });
1556              });
1557          }
1558        }
1559      }),
1560      (c.prototype.activate = function (b, d, e) {
1561        function f() {
1562          g
1563            .removeClass("active")
1564            .find("> .dropdown-menu > .active")
1565            .removeClass("active")
1566            .end()
1567            .find('[data-toggle="tab"]')
1568            .attr("aria-expanded", !1),
1569            b
1570              .addClass("active")
1571              .find('[data-toggle="tab"]')
1572              .attr("aria-expanded", !0),
1573            h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"),
1574            b.parent(".dropdown-menu").length &&
1575              b
1576                .closest("li.dropdown")
1577                .addClass("active")
1578                .end()
1579                .find('[data-toggle="tab"]')
1580                .attr("aria-expanded", !0),
1581            e && e();
1582        }
1583        var g = d.find("> .active"),
1584          h =
1585            e &&
1586            a.support.transition &&
1587            ((g.length && g.hasClass("fade")) || !!d.find("> .fade").length);
1588        g.length && h
1589          ? g
1590              .one("bsTransitionEnd", f)
1591              .emulateTransitionEnd(c.TRANSITION_DURATION)
1592          : f(),
1593          g.removeClass("in");
1594      });
1595    var d = a.fn.tab;
1596    (a.fn.tab = b),
1597      (a.fn.tab.Constructor = c),
1598      (a.fn.tab.noConflict = function () {
1599        return (a.fn.tab = d), this;
1600      });
1601    var e = function (c) {
1602      c.preventDefault(), b.call(a(this), "show");
1603    };
1604    a(document)
1605      .on("click.bs.tab.data-api", '[data-toggle="tab"]', e)
1606      .on("click.bs.tab.data-api", '[data-toggle="pill"]', e);
1607  })(jQuery),
1608  +(function (a) {
1609    "use strict";
1610    function b(b) {
1611      return this.each(function () {
1612        var d = a(this),
1613          e = d.data("bs.affix"),
1614          f = "object" == typeof b && b;
1615        e || d.data("bs.affix", (e = new c(this, f))),
1616          "string" == typeof b && e[b]();
1617      });
1618    }
1619    var c = function (b, d) {
1620      (this.options = a.extend({}, c.DEFAULTS, d)),
1621        (this.$target = a(this.options.target)
1622          .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this))
1623          .on(
1624            "click.bs.affix.data-api",
1625            a.proxy(this.checkPositionWithEventLoop, this)
1626          )),
1627        (this.$element = a(b)),
1628        (this.affixed = null),
1629        (this.unpin = null),
1630        (this.pinnedOffset = null),
1631        this.checkPosition();
1632    };
1633    (c.VERSION = "3.3.7"),
1634      (c.RESET = "affix affix-top affix-bottom"),
1635      (c.DEFAULTS = { offset: 0, target: window }),
1636      (c.prototype.getState = function (a, b, c, d) {
1637        var e = this.$target.scrollTop(),
1638          f = this.$element.offset(),
1639          g = this.$target.height();
1640        if (null != c && "top" == this.affixed) return e < c && "top";
1641        if ("bottom" == this.affixed)
1642          return null != c
1643            ? !(e + this.unpin <= f.top) && "bottom"
1644            : !(e + g <= a - d) && "bottom";
1645        var h = null == this.affixed,
1646          i = h ? e : f.top,
1647          j = h ? g : b;
1648        return null != c && e <= c
1649          ? "top"
1650          : null != d && i + j >= a - d && "bottom";
1651      }),
1652      (c.prototype.getPinnedOffset = function () {
1653        if (this.pinnedOffset) return this.pinnedOffset;
1654        this.$element.removeClass(c.RESET).addClass("affix");
1655        var a = this.$target.scrollTop(),
1656          b = this.$element.offset();
1657        return (this.pinnedOffset = b.top - a);
1658      }),
1659      (c.prototype.checkPositionWithEventLoop = function () {
1660        setTimeout(a.proxy(this.checkPosition, this), 1);
1661      }),
1662      (c.prototype.checkPosition = function () {
1663        if (this.$element.is(":visible")) {
1664          var b = this.$element.height(),
1665            d = this.options.offset,
1666            e = d.top,
1667            f = d.bottom,
1668            g = Math.max(a(document).height(), a(document.body).height());
1669          "object" != typeof d && (f = e = d),
1670            "function" == typeof e && (e = d.top(this.$element)),
1671            "function" == typeof f && (f = d.bottom(this.$element));
1672          var h = this.getState(g, b, e, f);
1673          if (this.affixed != h) {
1674            null != this.unpin && this.$element.css("top", "");
1675            var i = "affix" + (h ? "-" + h : ""),
1676              j = a.Event(i + ".bs.affix");
1677            if ((this.$element.trigger(j), j.isDefaultPrevented())) return;
1678            (this.affixed = h),
1679              (this.unpin = "bottom" == h ? this.getPinnedOffset() : null),
1680              this.$element
1681                .removeClass(c.RESET)
1682                .addClass(i)
1683                .trigger(i.replace("affix", "affixed") + ".bs.affix");
1684          }
1685          "bottom" == h && this.$element.offset({ top: g - b - f });
1686        }
1687      });
1688    var d = a.fn.affix;
1689    (a.fn.affix = b),
1690      (a.fn.affix.Constructor = c),
1691      (a.fn.affix.noConflict = function () {
1692        return (a.fn.affix = d), this;
1693      }),
1694      a(window).on("load", function () {
1695        a('[data-spy="affix"]').each(function () {
1696          var c = a(this),
1697            d = c.data();
1698          (d.offset = d.offset || {}),
1699            null != d.offsetBottom && (d.offset.bottom = d.offsetBottom),
1700            null != d.offsetTop && (d.offset.top = d.offsetTop),
1701            b.call(c, d);
1702        });
1703      });
1704  })(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.