! function() {
    for (var a, b = function() {}, c = ["assert", "clear", "count", "debug", "dir", "dirxml", "error", "exception", "group", "groupCollapsed", "groupEnd", "info", "log", "markTimeline", "profile", "profileEnd", "table", "time", "timeEnd", "timeStamp", "trace", "warn"], d = c.length, e = window.console = window.console || {}; d--;) a = c[d], e[a] || (e[a] = b)
}(), window.getComputedStyle || (window.getComputedStyle = function(a, b) {
        return this.el = a, this.getPropertyValue = function(b) {
            var c = /(\-([a-z]){1})/g;
            return "float" === b && (b = "styleFloat"), c.test(b) && (b = b.replace(c, function() {
                return arguments[2].toUpperCase()
            })), a.currentStyle[b] || null
        }, this
    }), "undefined" != typeof jQuery && jQuery(function(a) {
        a.fn.extend({
            table: function(b) {
                var c = a.extend({}, a.fn.table.defaults, b);
                return this.each(function() {
                    var b = a(this),
                        d = a.metadata ? a.extend({}, c, b.metadata()) : c,
                        e = b,
                        f = e.find("thead"),
                        g = e.find("tbody"),
                        h = f.find("th"),
                        i = g.find("tr"),
                        j = a("<div></div>", {
                            html: "<ul></ul>",
                            class: ["table-menu", "table-menu-hidden"].join(" ")
                        }),
                        k = a("<div></div>", {
                            class: "table-wrapper"
                        });
                    e.addClass("enhanced").wrap(k), h.each(function(b) {
                        var c = a(this),
                            e = c.attr("id"),
                            f = c.attr("class");
                        if (e || (e = (d.idprefix ? d.idprefix : "col-") + (b + 1), c.attr("id", e)), i.each(function() {
                                var c = a(this).find("th, td").eq(b);
                                c.attr("headers", e), f && c.addClass(f)
                            }), !c.is("." + d.persist)) {
                            var g = a('<li><input type="checkbox" name="toggle-cols" id="toggle-col-' + b + '" value="' + e + '" /> <label for="toggle-col-' + b + '">' + c.text() + "</label></li>");
                            j.find("ul").append(g), g.find("input").change(function(b) {
                                var c = a(this),
                                    d = c.val(),
                                    e = a("#" + d + ', [headers~="' + d + '"]');
                                c.is(":checked") ? e.show() : e.hide()
                            }).bind("updateCheck", function(b) {
                                "table-cell" == c.css("display") || "inline" == c.css("display") ? a(this).attr("checked", !0) : a(this).attr("checked", !1)
                            }).trigger("updateCheck")
                        }
                    }), a(window).bind("orientationchange resize", function() {
                        j.find("input").trigger("updateCheck")
                    });
                    var l = a("<div></div>", {
                            class: ["table-menu-wrapper"].join(" ")
                        }),
                        m = a("<a></a>", {
                            text: "Display",
                            href: "#",
                            class: ["table-menu-btn"].join(" "),
                            click: function(a) {
                                j.toggleClass("table-menu-hidden"), a.preventDefault(), a.stopImmediatePropagation()
                            }
                        });
                    l.append(m).append(j), e.before(l), a(document).on("click", function(b) {
                        a(b.target).is(j) || a(b.target).is(j.find("*")) || j.addClass("table-menu-hidden")
                    })
                })
            }
        }), a.fn.table.defaults = {
            idprefix: null,
            persist: null
        }
    }(jQuery)), ! function(a) {
        "use strict";
        a(function() {
            a.support.transition = function() {
                var a = function() {
                    var a, b = document.createElement("bootstrap"),
                        c = {
                            WebkitTransition: "webkitTransitionEnd",
                            MozTransition: "transitionend",
                            OTransition: "oTransitionEnd otransitionend",
                            transition: "transitionend"
                        };
                    for (a in c)
                        if (void 0 !== b.style[a]) return c[a]
                }();
                return a && {
                    end: a
                }
            }()
        })
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = '[data-dismiss="alert"]',
            c = function(c) {
                a(c).on("click", b, this.close)
            };
        c.prototype.close = function(b) {
            function c() {
                d.trigger("closed").remove()
            }
            var d, e = a(this),
                f = e.attr("data-target");
            f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")), d = a(f), b && b.preventDefault(), d.length || (d = e.hasClass("alert") ? e : e.parent()), d.trigger(b = a.Event("close")), b.isDefaultPrevented() || (d.removeClass("in"), a.support.transition && d.hasClass("fade") ? d.on(a.support.transition.end, c) : c())
        };
        var d = a.fn.alert;
        a.fn.alert = function(b) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("alert");
                e || d.data("alert", e = new c(this)), "string" == typeof b && e[b].call(d)
            })
        }, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function() {
            return a.fn.alert = d, this
        }, a(document).on("click.alert.data-api", b, c.prototype.close)
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(b, c) {
            this.$element = a(b), this.options = a.extend({}, a.fn.button.defaults, c)
        };
        b.prototype.setState = function(a) {
            var b = "disabled",
                c = this.$element,
                d = c.data(),
                e = c.is("input") ? "val" : "html";
            a += "Text", d.resetText || c.data("resetText", c[e]()), c[e](d[a] || this.options[a]), setTimeout(function() {
                "loadingText" == a ? c.addClass(b).attr(b, b) : c.removeClass(b).removeAttr(b)
            }, 0)
        }, b.prototype.toggle = function() {
            var a = this.$element.closest('[data-toggle="buttons-radio"]');
            a && a.find(".active").removeClass("active"), this.$element.toggleClass("active")
        };
        var c = a.fn.button;
        a.fn.button = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("button"),
                    f = "object" == typeof c && c;
                e || d.data("button", e = new b(this, f)), "toggle" == c ? e.toggle() : c && e.setState(c)
            })
        }, a.fn.button.defaults = {
            loadingText: "loading..."
        }, a.fn.button.Constructor = b, a.fn.button.noConflict = function() {
            return a.fn.button = c, this
        }, a(document).on("click.button.data-api", "[data-toggle^=button]", function(b) {
            var c = a(b.target);
            c.hasClass("btn") || (c = c.closest(".btn")), c.button("toggle")
        })
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(b, c) {
            this.$element = a(b), this.options = c, "hover" == this.options.pause && this.$element.on("mouseenter", a.proxy(this.pause, this)).on("mouseleave", a.proxy(this.cycle, this))
        };
        b.prototype = {
            cycle: function(b) {
                return b || (this.paused = !1), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this
            },
            to: function(b) {
                var c = this.$element.find(".item.active"),
                    d = c.parent().children(),
                    e = d.index(c),
                    f = this;
                if (!(b > d.length - 1 || 0 > b)) return this.sliding ? this.$element.one("slid", function() {
                    f.to(b)
                }) : e == b ? this.pause().cycle() : this.slide(b > e ? "next" : "prev", a(d[b]))
            },
            pause: function(b) {
                return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition.end && (this.$element.trigger(a.support.transition.end), this.cycle()), clearInterval(this.interval), this.interval = null, this
            },
            next: function() {
                return this.sliding ? void 0 : this.slide("next")
            },
            prev: function() {
                return this.sliding ? void 0 : this.slide("prev")
            },
            slide: function(b, c) {
                var d, e = this.$element.find(".item.active"),
                    f = c || e[b](),
                    g = this.interval,
                    h = "next" == b ? "left" : "right",
                    i = "next" == b ? "first" : "last",
                    j = this;
                if (this.sliding = !0, g && this.pause(), f = f.length ? f : this.$element.find(".item")[i](), d = a.Event("slide", {
                        relatedTarget: f[0]
                    }), !f.hasClass("active")) {
                    if (a.support.transition && this.$element.hasClass("slide")) {
                        if (this.$element.trigger(d), d.isDefaultPrevented()) return;
                        f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), this.$element.one(a.support.transition.end, function() {
                            f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), j.sliding = !1, setTimeout(function() {
                                j.$element.trigger("slid")
                            }, 0)
                        })
                    } else {
                        if (this.$element.trigger(d), d.isDefaultPrevented()) return;
                        e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger("slid")
                    }
                    return g && this.cycle(), this
                }
            }
        };
        var c = a.fn.carousel;
        a.fn.carousel = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("carousel"),
                    f = a.extend({}, a.fn.carousel.defaults, "object" == typeof c && c),
                    g = "string" == typeof c ? c : f.slide;
                e || d.data("carousel", e = new b(this, f)), "number" == typeof c ? e.to(c) : g ? e[g]() : f.interval && e.cycle()
            })
        }, a.fn.carousel.defaults = {
            interval: 5e3,
            pause: "hover"
        }, a.fn.carousel.Constructor = b, a.fn.carousel.noConflict = function() {
            return a.fn.carousel = c, this
        }, a(document).on("click.carousel.data-api", "[data-slide]", function(b) {
            var c, d = a(this),
                e = a(d.attr("data-target") || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")),
                f = a.extend({}, e.data(), d.data());
            e.carousel(f), b.preventDefault()
        })
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(b, c) {
            this.$element = a(b), this.options = a.extend({}, a.fn.collapse.defaults, c), this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle()
        };
        b.prototype = {
            constructor: b,
            dimension: function() {
                var a = this.$element.hasClass("width");
                return a ? "width" : "height"
            },
            show: function() {
                var b, c, d, e;
                if (!this.transitioning) {
                    if (b = this.dimension(), c = a.camelCase(["scroll", b].join("-")), d = this.$parent && this.$parent.find("> .accordion-group > .in"), d && d.length) {
                        if (e = d.data("collapse"), e && e.transitioning) return;
                        d.collapse("hide"), e || d.data("collapse", null)
                    }
                    this.$element[b](0), this.transition("addClass", a.Event("show"), "shown"), a.support.transition && this.$element[b](this.$element[0][c])
                }
            },
            hide: function() {
                var b;
                this.transitioning || (b = this.dimension(), this.reset(this.$element[b]()), this.transition("removeClass", a.Event("hide"), "hidden"), this.$element[b](0))
            },
            reset: function(a) {
                var b = this.dimension();
                return this.$element.removeClass("collapse")[b](a || "auto")[0].offsetWidth, this.$element[null !== a ? "addClass" : "removeClass"]("collapse"), this
            },
            transition: function(b, c, d) {
                var e = this,
                    f = function() {
                        "show" == c.type && e.reset(), e.transitioning = 0, e.$element.trigger(d)
                    };
                this.$element.trigger(c), c.isDefaultPrevented() || (this.transitioning = 1, this.$element[b]("in"), a.support.transition && this.$element.hasClass("collapse") ? this.$element.one(a.support.transition.end, f) : f())
            },
            toggle: function() {
                this[this.$element.hasClass("in") ? "hide" : "show"]()
            }
        };
        var c = a.fn.collapse;
        a.fn.collapse = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("collapse"),
                    f = "object" == typeof c && c;
                e || d.data("collapse", e = new b(this, f)), "string" == typeof c && e[c]()
            })
        }, a.fn.collapse.defaults = {
            toggle: !0
        }, a.fn.collapse.Constructor = b, a.fn.collapse.noConflict = function() {
            return a.fn.collapse = c, this
        }, a(document).on("click.collapse.data-api", "[data-toggle=collapse]", function(b) {
            var c, d = a(this),
                e = d.attr("data-target") || b.preventDefault() || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""),
                f = a(e).data("collapse") ? "toggle" : d.data();
            d[a(e).hasClass("in") ? "addClass" : "removeClass"]("collapsed"), a(e).collapse(f)
        })
    }(window.jQuery), ! function(a) {
        "use strict";

        function b() {
            a(d).each(function() {
                c(a(this)).removeClass("open")
            })
        }

        function c(b) {
            var c, d = b.attr("data-target");
            return d || (d = b.attr("href"), d = d && /#/.test(d) && d.replace(/.*(?=#[^\s]*$)/, "")), c = a(d), c.length || (c = b.parent()), c
        }
        var d = "[data-toggle=dropdown]",
            e = function(b) {
                var c = a(b).on("click.dropdown.data-api", this.toggle);
                a("html").on("click.dropdown.data-api", function() {
                    c.parent().removeClass("open")
                })
            };
        e.prototype = {
            constructor: e,
            toggle: function() {
                var d, e, f = a(this);
                if (!f.is(".disabled, :disabled")) return d = c(f), e = d.hasClass("open"), b(), e || d.toggleClass("open"), f.focus(), !1
            },
            keydown: function(b) {
                var d, e, f, g, h;
                if (/(38|40|27)/.test(b.keyCode) && (d = a(this), b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled"))) {
                    if (f = c(d), g = f.hasClass("open"), !g || g && 27 == b.keyCode) return d.click();
                    e = a("[role=menu] li:not(.divider):visible a", f), e.length && (h = e.index(e.filter(":focus")), 38 == b.keyCode && h > 0 && h--, 40 == b.keyCode && e.length - 1 > h && h++, ~h || (h = 0), e.eq(h).focus())
                }
            }
        };
        var f = a.fn.dropdown;
        a.fn.dropdown = function(b) {
            return this.each(function() {
                var c = a(this),
                    d = c.data("dropdown");
                d || c.data("dropdown", d = new e(this)), "string" == typeof b && d[b].call(c)
            })
        }, a.fn.dropdown.Constructor = e, a.fn.dropdown.noConflict = function() {
            return a.fn.dropdown = f, this
        }, a(document).on("click.dropdown.data-api touchstart.dropdown.data-api", b).on("click.dropdown touchstart.dropdown.data-api", ".dropdown form", function(a) {
            a.stopPropagation()
        }).on("touchstart.dropdown.data-api", ".dropdown-menu", function(a) {
            a.stopPropagation()
        }).on("click.dropdown.data-api touchstart.dropdown.data-api", d, e.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api", d + ", [role=menu]", e.prototype.keydown)
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(b, c) {
            this.options = c, this.$element = a(b).delegate('[data-dismiss="modal"]', "click.dismiss.modal", a.proxy(this.hide, this)), this.options.remote && this.$element.find(".modal-body").load(this.options.remote)
        };
        b.prototype = {
            constructor: b,
            toggle: function() {
                return this[this.isShown ? "hide" : "show"]()
            },
            show: function() {
                var b = this,
                    c = a.Event("show");
                this.$element.trigger(c), this.isShown || c.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.backdrop(function() {
                    var c = a.support.transition && b.$element.hasClass("fade");
                    b.$element.parent().length || b.$element.appendTo(document.body), b.$element.show(), c && b.$element[0].offsetWidth, b.$element.addClass("in").attr("aria-hidden", !1), b.enforceFocus(), c ? b.$element.one(a.support.transition.end, function() {
                        b.$element.focus().trigger("shown")
                    }) : b.$element.focus().trigger("shown")
                }))
            },
            hide: function(b) {
                b && b.preventDefault(), b = a.Event("hide"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), a(document).off("focusin.modal"), this.$element.removeClass("in").attr("aria-hidden", !0), a.support.transition && this.$element.hasClass("fade") ? this.hideWithTransition() : this.hideModal())
            },
            enforceFocus: function() {
                var b = this;
                a(document).on("focusin.modal", function(a) {
                    b.$element[0] === a.target || b.$element.has(a.target).length || b.$element.focus()
                })
            },
            escape: function() {
                var a = this;
                this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.modal", function(b) {
                    27 == b.which && a.hide()
                }) : this.isShown || this.$element.off("keyup.dismiss.modal")
            },
            hideWithTransition: function() {
                var b = this,
                    c = setTimeout(function() {
                        b.$element.off(a.support.transition.end), b.hideModal()
                    }, 500);
                this.$element.one(a.support.transition.end, function() {
                    clearTimeout(c), b.hideModal()
                })
            },
            hideModal: function() {
                this.$element.hide().trigger("hidden"), this.backdrop()
            },
            removeBackdrop: function() {
                this.$backdrop.remove(), this.$backdrop = null
            },
            backdrop: function(b) {
                var c = this.$element.hasClass("fade") ? "fade" : "";
                if (this.isShown && this.options.backdrop) {
                    var d = a.support.transition && c;
                    this.$backdrop = a('<div class="modal-backdrop ' + c + '" />').appendTo(document.body), this.$backdrop.click("static" == this.options.backdrop ? a.proxy(this.$element[0].focus, this.$element[0]) : a.proxy(this.hide, this)), d && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), d ? this.$backdrop.one(a.support.transition.end, b) : b()
                } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(a.support.transition.end, a.proxy(this.removeBackdrop, this)) : this.removeBackdrop()) : b && b()
            }
        };
        var c = a.fn.modal;
        a.fn.modal = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("modal"),
                    f = a.extend({}, a.fn.modal.defaults, d.data(), "object" == typeof c && c);
                e || d.data("modal", e = new b(this, f)), "string" == typeof c ? e[c]() : f.show && e.show()
            })
        }, a.fn.modal.defaults = {
            backdrop: !0,
            keyboard: !0,
            show: !0
        }, a.fn.modal.Constructor = b, a.fn.modal.noConflict = function() {
            return a.fn.modal = c, this
        }, a(document).on("click.modal.data-api", '[data-toggle="modal"]', function(b) {
            var c = a(this),
                d = c.attr("href"),
                e = a(c.attr("data-target") || d && d.replace(/.*(?=#[^\s]+$)/, "")),
                f = e.data("modal") ? "toggle" : a.extend({
                    remote: !/#/.test(d) && d
                }, e.data(), c.data());
            b.preventDefault(), e.modal(f).one("hide", function() {
                c.focus()
            })
        })
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(a, b) {
            this.init("tooltip", a, b)
        };
        b.prototype = {
            constructor: b,
            init: function(b, c, d) {
                var e, f;
                this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.enabled = !0, "click" == this.options.trigger ? this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)) : "manual" != this.options.trigger && (e = "hover" == this.options.trigger ? "mouseenter" : "focus", f = "hover" == this.options.trigger ? "mouseleave" : "blur", this.$element.on(e + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(f + "." + this.type, this.options.selector, a.proxy(this.leave, this))), this.options.selector ? this._options = a.extend({}, this.options, {
                    trigger: "manual",
                    selector: ""
                }) : this.fixTitle()
            },
            getOptions: function(b) {
                return b = a.extend({}, a.fn[this.type].defaults, b, this.$element.data()), b.delay && "number" == typeof b.delay && (b.delay = {
                    show: b.delay,
                    hide: b.delay
                }), b
            },
            enter: function(b) {
                var c = a(b.currentTarget)[this.type](this._options).data(this.type);
                return c.options.delay && c.options.delay.show ? (clearTimeout(this.timeout), c.hoverState = "in", void(this.timeout = setTimeout(function() {
                    "in" == c.hoverState && c.show()
                }, c.options.delay.show))) : c.show()
            },
            leave: function(b) {
                var c = a(b.currentTarget)[this.type](this._options).data(this.type);
                return this.timeout && clearTimeout(this.timeout), c.options.delay && c.options.delay.hide ? (c.hoverState = "out", void(this.timeout = setTimeout(function() {
                    "out" == c.hoverState && c.hide()
                }, c.options.delay.hide))) : c.hide()
            },
            show: function() {
                var a, b, c, d, e, f, g;
                if (this.hasContent() && this.enabled) {
                    switch (a = this.tip(), this.setContent(), this.options.animation && a.addClass("fade"), f = "function" == typeof this.options.placement ? this.options.placement.call(this, a[0], this.$element[0]) : this.options.placement, b = /in/.test(f), a.detach().css({
                        top: 0,
                        left: 0,
                        display: "block"
                    }).insertAfter(this.$element), c = this.getPosition(b), d = a[0].offsetWidth, e = a[0].offsetHeight, b ? f.split(" ")[1] : f) {
                        case "bottom":
                            g = {
                                top: c.top + c.height,
                                left: c.left + c.width / 2 - d / 2
                            };
                            break;
                        case "top":
                            g = {
                                top: c.top - e,
                                left: c.left + c.width / 2 - d / 2
                            };
                            break;
                        case "left":
                            g = {
                                top: c.top + c.height / 2 - e / 2,
                                left: c.left - d
                            };
                            break;
                        case "right":
                            g = {
                                top: c.top + c.height / 2 - e / 2,
                                left: c.left + c.width
                            }
                    }
                    a.offset(g).addClass(f).addClass("in")
                }
            },
            setContent: function() {
                var a = this.tip(),
                    b = this.getTitle();
                a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right")
            },
            hide: function() {
                function b() {
                    var b = setTimeout(function() {
                        c.off(a.support.transition.end).detach()
                    }, 500);
                    c.one(a.support.transition.end, function() {
                        clearTimeout(b), c.detach()
                    })
                }
                var c = this.tip();
                return c.removeClass("in"), a.support.transition && this.$tip.hasClass("fade") ? b() : c.detach(), this
            },
            fixTitle: function() {
                var a = this.$element;
                (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").removeAttr("title")
            },
            hasContent: function() {
                return this.getTitle()
            },
            getPosition: function(b) {
                return a.extend({}, b ? {
                    top: 0,
                    left: 0
                } : this.$element.offset(), {
                    width: this.$element[0].offsetWidth,
                    height: this.$element[0].offsetHeight
                })
            },
            getTitle: function() {
                var a, b = this.$element,
                    c = this.options;
                return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title)
            },
            tip: function() {
                return this.$tip = this.$tip || a(this.options.template)
            },
            validate: function() {
                this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
            },
            enable: function() {
                this.enabled = !0
            },
            disable: function() {
                this.enabled = !1
            },
            toggleEnabled: function() {
                this.enabled = !this.enabled
            },
            toggle: function(b) {
                var c = a(b.currentTarget)[this.type](this._options).data(this.type);
                c[c.tip().hasClass("in") ? "hide" : "show"]()
            },
            destroy: function() {
                this.hide().$element.off("." + this.type).removeData(this.type)
            }
        };
        var c = a.fn.tooltip;
        a.fn.tooltip = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("tooltip"),
                    f = "object" == typeof c && c;
                e || d.data("tooltip", e = new b(this, f)), "string" == typeof c && e[c]()
            })
        }, a.fn.tooltip.Constructor = b, a.fn.tooltip.defaults = {
            animation: !0,
            placement: "top",
            selector: !1,
            template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
            trigger: "hover",
            title: "",
            delay: 0,
            html: !1
        }, a.fn.tooltip.noConflict = function() {
            return a.fn.tooltip = c, this
        }
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(a, b) {
            this.init("popover", a, b)
        };
        b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype, {
            constructor: b,
            setContent: function() {
                var a = this.tip(),
                    b = this.getTitle(),
                    c = this.getContent();
                a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content")[this.options.html ? "html" : "text"](c), a.removeClass("fade top bottom left right in")
            },
            hasContent: function() {
                return this.getTitle() || this.getContent()
            },
            getContent: function() {
                var a, b = this.$element,
                    c = this.options;
                return a = b.attr("data-content") || ("function" == typeof c.content ? c.content.call(b[0]) : c.content)
            },
            tip: function() {
                return this.$tip || (this.$tip = a(this.options.template)), this.$tip
            },
            destroy: function() {
                this.hide().$element.off("." + this.type).removeData(this.type)
            }
        });
        var c = a.fn.popover;
        a.fn.popover = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("popover"),
                    f = "object" == typeof c && c;
                e || d.data("popover", e = new b(this, f)), "string" == typeof c && e[c]()
            })
        }, a.fn.popover.Constructor = b, a.fn.popover.defaults = a.extend({}, a.fn.tooltip.defaults, {
            placement: "right",
            trigger: "click",
            content: "",
            template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
        }), a.fn.popover.noConflict = function() {
            return a.fn.popover = c, this
        }
    }(window.jQuery), ! function(a) {
        "use strict";

        function b(b, c) {
            var d, e = a.proxy(this.process, this),
                f = a(a(b).is("body") ? window : b);
            this.options = a.extend({}, a.fn.scrollspy.defaults, c), this.$scrollElement = f.on("scroll.scroll-spy.data-api", e), this.selector = (this.options.target || (d = a(b).attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.$body = a("body"), this.refresh(), this.process()
        }
        b.prototype = {
            constructor: b,
            refresh: function() {
                var b, c = this;
                this.offsets = a([]), this.targets = a([]), b = this.$body.find(this.selector).map(function() {
                    var b = a(this),
                        d = b.data("target") || b.attr("href"),
                        e = /^#\w/.test(d) && a(d);
                    return e && e.length && [
                        [e.position().top + c.$scrollElement.scrollTop(), d]
                    ] || null
                }).sort(function(a, b) {
                    return a[0] - b[0]
                }).each(function() {
                    c.offsets.push(this[0]), c.targets.push(this[1])
                })
            },
            process: function() {
                var a, b = this.$scrollElement.scrollTop() + this.options.offset,
                    c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
                    d = c - this.$scrollElement.height(),
                    e = this.offsets,
                    f = this.targets,
                    g = this.activeTarget;
                if (b >= d) return g != (a = f.last()[0]) && this.activate(a);
                for (a = e.length; a--;) g != f[a] && b >= e[a] && (!e[a + 1] || e[a + 1] >= b) && this.activate(f[a])
            },
            activate: function(b) {
                var c, d;
                this.activeTarget = b, a(this.selector).parent(".active").removeClass("active"), d = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', c = a(d).parent("li").addClass("active"), c.parent(".dropdown-menu").length && (c = c.closest("li.dropdown").addClass("active")), c.trigger("activate")
            }
        };
        var c = a.fn.scrollspy;
        a.fn.scrollspy = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("scrollspy"),
                    f = "object" == typeof c && c;
                e || d.data("scrollspy", e = new b(this, f)), "string" == typeof c && e[c]()
            })
        }, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.defaults = {
            offset: 10
        }, a.fn.scrollspy.noConflict = function() {
            return a.fn.scrollspy = c, this
        }, a(window).on("load", function() {
            a('[data-spy="scroll"]').each(function() {
                var b = a(this);
                b.scrollspy(b.data())
            })
        })
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(b) {
            this.element = a(b)
        };
        b.prototype = {
            constructor: b,
            show: function() {
                var b, c, d, e = this.element,
                    f = e.closest("ul:not(.dropdown-menu)"),
                    g = e.attr("data-target");
                g || (g = e.attr("href"), g = g && g.replace(/.*(?=#[^\s]*$)/, "")), e.parent("li").hasClass("active") || (b = f.find(".active:last a")[0], d = a.Event("show", {
                    relatedTarget: b
                }), e.trigger(d), d.isDefaultPrevented() || (c = a(g), this.activate(e.parent("li"), f), this.activate(c, c.parent(), function() {
                    e.trigger({
                        type: "shown",
                        relatedTarget: b
                    })
                })))
            },
            activate: function(b, c, d) {
                function e() {
                    f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), b.addClass("active"), g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu") && b.closest("li.dropdown").addClass("active"), d && d()
                }
                var f = c.find("> .active"),
                    g = d && a.support.transition && f.hasClass("fade");
                g ? f.one(a.support.transition.end, e) : e(), f.removeClass("in")
            }
        };
        var c = a.fn.tab;
        a.fn.tab = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("tab");
                e || d.data("tab", e = new b(this)), "string" == typeof c && e[c]()
            })
        }, a.fn.tab.Constructor = b, a.fn.tab.noConflict = function() {
            return a.fn.tab = c, this
        }, a(document).on("click.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(b) {
            b.preventDefault(), a(this).tab("show")
        })
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(b, c) {
            this.$element = a(b), this.options = a.extend({}, a.fn.typeahead.defaults, c), this.matcher = this.options.matcher || this.matcher, this.sorter = this.options.sorter || this.sorter, this.highlighter = this.options.highlighter || this.highlighter, this.updater = this.options.updater || this.updater, this.source = this.options.source, this.$menu = a(this.options.menu), this.shown = !1, this.listen()
        };
        b.prototype = {
            constructor: b,
            select: function() {
                var a = this.$menu.find(".active").attr("data-value");
                return this.$element.val(this.updater(a)).change(), this.hide()
            },
            updater: function(a) {
                return a
            },
            show: function() {
                var b = a.extend({}, this.$element.position(), {
                    height: this.$element[0].offsetHeight
                });
                return this.$menu.insertAfter(this.$element).css({
                    top: b.top + b.height,
                    left: b.left
                }).show(), this.shown = !0, this
            },
            hide: function() {
                return this.$menu.hide(), this.shown = !1, this
            },
            lookup: function() {
                var b;
                return this.query = this.$element.val(), !this.query || this.query.length < this.options.minLength ? this.shown ? this.hide() : this : (b = a.isFunction(this.source) ? this.source(this.query, a.proxy(this.process, this)) : this.source, b ? this.process(b) : this)
            },
            process: function(b) {
                var c = this;
                return b = a.grep(b, function(a) {
                    return c.matcher(a)
                }), b = this.sorter(b), b.length ? this.render(b.slice(0, this.options.items)).show() : this.shown ? this.hide() : this
            },
            matcher: function(a) {
                return ~a.toLowerCase().indexOf(this.query.toLowerCase())
            },
            sorter: function(a) {
                for (var b, c = [], d = [], e = []; b = a.shift();) b.toLowerCase().indexOf(this.query.toLowerCase()) ? ~b.indexOf(this.query) ? d.push(b) : e.push(b) : c.push(b);
                return c.concat(d, e)
            },
            highlighter: function(a) {
                var b = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
                return a.replace(RegExp("(" + b + ")", "ig"), function(a, b) {
                    return "<strong>" + b + "</strong>"
                })
            },
            render: function(b) {
                var c = this;
                return b = a(b).map(function(b, d) {
                    return b = a(c.options.item).attr("data-value", d), b.find("a").html(c.highlighter(d)), b[0]
                }), b.first().addClass("active"), this.$menu.html(b), this
            },
            next: function() {
                var b = this.$menu.find(".active").removeClass("active"),
                    c = b.next();
                c.length || (c = a(this.$menu.find("li")[0])), c.addClass("active")
            },
            prev: function() {
                var a = this.$menu.find(".active").removeClass("active"),
                    b = a.prev();
                b.length || (b = this.$menu.find("li").last()), b.addClass("active")
            },
            listen: function() {
                this.$element.on("blur", a.proxy(this.blur, this)).on("keypress", a.proxy(this.keypress, this)).on("keyup", a.proxy(this.keyup, this)), this.eventSupported("keydown") && this.$element.on("keydown", a.proxy(this.keydown, this)), this.$menu.on("click", a.proxy(this.click, this)).on("mouseenter", "li", a.proxy(this.mouseenter, this))
            },
            eventSupported: function(a) {
                var b = a in this.$element;
                return b || (this.$element.setAttribute(a, "return;"), b = "function" == typeof this.$element[a]), b
            },
            move: function(a) {
                if (this.shown) {
                    switch (a.keyCode) {
                        case 9:
                        case 13:
                        case 27:
                            a.preventDefault();
                            break;
                        case 38:
                            a.preventDefault(), this.prev();
                            break;
                        case 40:
                            a.preventDefault(), this.next()
                    }
                    a.stopPropagation()
                }
            },
            keydown: function(b) {
                this.suppressKeyPressRepeat = ~a.inArray(b.keyCode, [40, 38, 9, 13, 27]), this.move(b)
            },
            keypress: function(a) {
                this.suppressKeyPressRepeat || this.move(a)
            },
            keyup: function(a) {
                switch (a.keyCode) {
                    case 40:
                    case 38:
                    case 16:
                    case 17:
                    case 18:
                        break;
                    case 9:
                    case 13:
                        if (!this.shown) return;
                        this.select();
                        break;
                    case 27:
                        if (!this.shown) return;
                        this.hide();
                        break;
                    default:
                        this.lookup()
                }
                a.stopPropagation(), a.preventDefault()
            },
            blur: function() {
                var a = this;
                setTimeout(function() {
                    a.hide()
                }, 150)
            },
            click: function(a) {
                a.stopPropagation(), a.preventDefault(), this.select()
            },
            mouseenter: function(b) {
                this.$menu.find(".active").removeClass("active"), a(b.currentTarget).addClass("active")
            }
        };
        var c = a.fn.typeahead;
        a.fn.typeahead = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("typeahead"),
                    f = "object" == typeof c && c;
                e || d.data("typeahead", e = new b(this, f)), "string" == typeof c && e[c]()
            })
        }, a.fn.typeahead.defaults = {
            source: [],
            items: 8,
            menu: '<ul class="typeahead dropdown-menu"></ul>',
            item: '<li><a href="#"></a></li>',
            minLength: 1
        }, a.fn.typeahead.Constructor = b, a.fn.typeahead.noConflict = function() {
            return a.fn.typeahead = c, this
        }, a(document).on("focus.typeahead.data-api", '[data-provide="typeahead"]', function(b) {
            var c = a(this);
            c.data("typeahead") || (b.preventDefault(), c.typeahead(c.data()))
        })
    }(window.jQuery), ! function(a) {
        "use strict";
        var b = function(b, c) {
            this.options = a.extend({}, a.fn.affix.defaults, c), this.$window = a(window).on("scroll.affix.data-api", a.proxy(this.checkPosition, this)).on("click.affix.data-api", a.proxy(function() {
                setTimeout(a.proxy(this.checkPosition, this), 1)
            }, this)), this.$element = a(b), this.checkPosition()
        };
        b.prototype.checkPosition = function() {
            if (this.$element.is(":visible")) {
                var b, c = a(document).height(),
                    d = this.$window.scrollTop(),
                    e = this.$element.offset(),
                    f = this.options.offset,
                    g = f.bottom,
                    h = f.top,
                    i = "affix affix-top affix-bottom";
                "object" != typeof f && (g = h = f), "function" == typeof h && (h = f.top()), "function" == typeof g && (g = f.bottom()), b = !(null != this.unpin && d + this.unpin <= e.top) && (null != g && e.top + this.$element.height() >= c - g ? "bottom" : null != h && h >= d && "top"), this.affixed !== b && (this.affixed = b, this.unpin = "bottom" == b ? e.top - d : null, this.$element.removeClass(i).addClass("affix" + (b ? "-" + b : "")))
            }
        };
        var c = a.fn.affix;
        a.fn.affix = function(c) {
            return this.each(function() {
                var d = a(this),
                    e = d.data("affix"),
                    f = "object" == typeof c && c;
                e || d.data("affix", e = new b(this, f)), "string" == typeof c && e[c]()
            })
        }, a.fn.affix.Constructor = b, a.fn.affix.defaults = {
            offset: 0
        }, a.fn.affix.noConflict = function() {
            return a.fn.affix = c, this
        }, a(window).on("load", function() {
            a('[data-spy="affix"]').each(function() {
                var b = a(this),
                    c = b.data();
                c.offset = c.offset || {}, c.offsetBottom && (c.offset.bottom = c.offsetBottom), c.offsetTop && (c.offset.top = c.offsetTop), b.affix(c)
            })
        })
    }(window.jQuery),
    function(a) {
        function c(a) {
            return "object" == typeof a ? a : {
                top: a,
                left: a
            }
        }
        var b = a.scrollTo = function(b, c, d) {
            a(window).scrollTo(b, c, d)
        };
        b.defaults = {
            axis: "xy",
            duration: parseFloat(a.fn.jquery) >= 1.3 ? 0 : 1,
            limit: !0
        }, b.window = function(b) {
            return a(window)._scrollable()
        }, a.fn._scrollable = function() {
            return this.map(function() {
                var b = this,
                    c = !b.nodeName || a.inArray(b.nodeName.toLowerCase(), ["iframe", "#document", "html", "body"]) != -1;
                if (!c) return b;
                var d = (b.contentWindow || b).document || b.ownerDocument || b;
                return /webkit/i.test(navigator.userAgent) || "BackCompat" == d.compatMode ? d.body : d.documentElement
            })
        }, a.fn.scrollTo = function(d, e, f) {
            return "object" == typeof e && (f = e, e = 0), "function" == typeof f && (f = {
                onAfter: f
            }), "max" == d && (d = 9e9), f = a.extend({}, b.defaults, f), e = e || f.duration, f.queue = f.queue && f.axis.length > 1, f.queue && (e /= 2), f.offset = c(f.offset), f.over = c(f.over), this._scrollable().each(function() {
                function m(a) {
                    h.animate(k, e, f.easing, a && function() {
                        a.call(this, d, f)
                    })
                }
                if (null != d) {
                    var j, g = this,
                        h = a(g),
                        i = d,
                        k = {},
                        l = h.is("html,body");
                    switch (typeof i) {
                        case "number":
                        case "string":
                            if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(i)) {
                                i = c(i);
                                break
                            }
                            if (i = a(i, this), !i.length) return;
                        case "object":
                            (i.is || i.style) && (j = (i = a(i)).offset())
                    }
                    a.each(f.axis.split(""), function(a, c) {
                        var d = "x" == c ? "Left" : "Top",
                            e = d.toLowerCase(),
                            n = "scroll" + d,
                            o = g[n],
                            p = b.max(g, c);
                        if (j) k[n] = j[e] + (l ? 0 : o - h.offset()[e]), f.margin && (k[n] -= parseInt(i.css("margin" + d)) || 0, k[n] -= parseInt(i.css("border" + d + "Width")) || 0), k[n] += f.offset[e] || 0, f.over[e] && (k[n] += i["x" == c ? "width" : "height"]() * f.over[e]);
                        else {
                            var q = i[e];
                            k[n] = q.slice && "%" == q.slice(-1) ? parseFloat(q) / 100 * p : q
                        }
                        f.limit && /^\d+$/.test(k[n]) && (k[n] = k[n] <= 0 ? 0 : Math.min(k[n], p)), !a && f.queue && (o != k[n] && m(f.onAfterFirst), delete k[n])
                    }), m(f.onAfter)
                }
            }).end()
        }, b.max = function(b, c) {
            var d = "x" == c ? "Width" : "Height",
                e = "scroll" + d;
            if (!a(b).is("html,body")) return b[e] - a(b)[d.toLowerCase()]();
            var f = "client" + d,
                g = b.ownerDocument.documentElement,
                h = b.ownerDocument.body;
            return Math.max(g[e], h[e]) - Math.min(g[f], h[f])
        }
    }(jQuery);
var Navigation = {
    $navigation: null,
    $navigation_list: null,
    $navigation_subs: null,
    current_size: "desktop",
    toggle: "a",
    init: function(a, b) {
        var c = this;
        this.nav_toggle = b, this.current_size = this.get_size(), this.$navigation = $(a), this.$navigation_list = this.$navigation.find("ul.navigation__flyout"), this.$navigation_subs = this.$navigation.find("li > .flyout"), this.resize[this.current_size].call(this), $.each(this.setup, function(a) {
            c.setup[a].call(c)
        })
    },
    resize: {
        mobile: function() {
            this.$navigation_list.hide(), this.$navigation_subs.hide(), this.$navigation_list.next(".flyout").remove(), $(".flyout-control.selected").removeClass("selected")
        },
        tablet: function() {
            this.$navigation_list.show(), this.$navigation_subs.hide()
        },
        desktop: function() {
            this.$navigation_list.show(), this.$navigation.find(".form-search").show(), this.$navigation_list.next(".flyout").remove(), $(".flyout-control.selected").removeClass("selected")
        }
    },
    get_size: function() {
        var a = "",
            b = null,
            c = 0;
        return "function" == typeof window.getComputedStyle && (a = window.getComputedStyle(document.body, ":after").getPropertyValue("content")), "string" != typeof a || a.indexOf("bp5") === -1 && a.indexOf("bp6") === -1 && a.indexOf("bp7") === -1 ? "string" == typeof a && a.indexOf("bp4-noflyover") !== -1 ? (b = "desktop", c = 1) : b = "string" == typeof a && a.indexOf("bp4") !== -1 ? "tablet" : "mobile" : b = "desktop",
            $("html").hasClass("lt-ie9") && (b = "desktop"), $("html").hasClass("touch") && "desktop" == b && 0 == c && (b = "tablet"), b
    },
    _get_width: function() {
        return parseInt(this.$navigation.outerWidth(!0), 10)
    },
    _get_left: function(a) {
        return parseInt(Math.round(this.$navigation_list.offset().left), 10) - parseInt(Math.round(a.offset().left), 10)
    },
    setup: {
        resize: function() {
            var a = this;
            return $(window).on("resize", function(b) {
                var c = a.get_size();
                c !== a.current_size && (a.current_size = c, a.resize[a.current_size].call(a))
            }), this
        },
        mobile: function() {},
        tablet: function() {
            var a = this;
            return this.$navigation.on("click", ".flyout-control:not(.has-no-dropdown) > a", function(b) {
                var c = $(b.target).closest("a"),
                    d = c.closest("li"),
                    e = d.index(),
                    f = d.children(".flyout"),
                    g = a.$navigation_list.next(".flyout"),
                    h = !(!g.length || e !== parseInt(g.data("index"), 10)),
                    i = f.clone().addClass("navigation__flyout").addClass("navigation__flyout-append").addClass("navigation__flyout-slide").css({
                        width: "auto",
                        left: "auto"
                    });
                "tablet" === a.current_size && (b.preventDefault(), g.slideUp(500, function() {
                    $(this).remove()
                }), $("ul.navigation__flyout").children(".selected").removeClass("selected"), h || ($(".search-toggle.active").click(), i.data("index", e).hide().insertAfter(a.$navigation_list), i.slideDown(500, function() {
                    $(".flyout:not(.flyout-control)").on("click:out", function() {
                        i.slideUp("slow", function() {
                            $(this).remove(), d.removeClass("selected")
                        })
                    })
                }), d.addClass("selected")))
            }), this
        },
        desktop: function() {
            var a = this,
                c = {
                    left: "auto",
                    width: "auto"
                };
            return this.$navigation.on("mouseenter mouseleave", ".flyout-control:not(.has-no-dropdown)", function(b) {
                var d = $(b.target).closest(".flyout-control"),
                    e = d.find(".flyout");
                if ("desktop" === a.current_size) switch (b.type) {
                    case "mouseenter":
                        e.stop(!0, !0).delay(200).fadeIn(0, function() {
                            d.addClass("selected"), e.show().css({
                                left: a._get_left(d),
                                width: a._get_width()
                            })
                        });
                        break;
                    case "mouseleave":
                        e.stop(!0, !0).delay(200).fadeOut(0, function() {
                            d.removeClass("selected"), e.hide().css(c)
                        })
                }
            }), this
        }
    }
};
$("[data-toggle='dropdown']").click( function(event) {
	event.stopPropagation();
	$(this).parent().toggleClass("open");
});
$(document).click( function() {
	$("[data-toggle='dropdown']").parent().removeClass("open");
});
$('body').on("click", ".dropdown-toggle", function(event) {
	$(this).parent().is(".open") && event.stopPropagation();
});