You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chukwa.apache.org by ey...@apache.org on 2015/06/25 22:48:33 UTC

[02/22] chukwa git commit: CHUKWA-754. Improved graph explorer selection box performance. (Eric Yang)

http://git-wip-us.apache.org/repos/asf/chukwa/blob/b2bcd77b/src/main/web/hicc/home/js/select2.min.js
----------------------------------------------------------------------
diff --git a/src/main/web/hicc/home/js/select2.min.js b/src/main/web/hicc/home/js/select2.min.js
new file mode 100644
index 0000000..124c09d
--- /dev/null
+++ b/src/main/web/hicc/home/js/select2.min.js
@@ -0,0 +1,2430 @@
+/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */
+!function(a) {
+    "function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof exports ? require("jquery") : jQuery)
+}(function(a) {
+    var b = function() {
+        if (a && a.fn && a.fn.select2 && a.fn.select2.amd)
+            var b = a.fn.select2.amd;
+        var b;
+        return function() {
+            if (!b ||!b.requirejs) {
+                b ? c = b : b = {};
+                var a, c, d;
+                !function(b) {
+                    function e(a, b) {
+                        return u.call(a, b)
+                    }
+                    function f(a, b) {
+                        var c, d, e, f, g, h, i, j, k, l, m, n = b && b.split("/"), o = s.map, p = o && o["*"] || {};
+                        if (a && "." === a.charAt(0))
+                            if (b) {
+                                for (n = n.slice(0, n.length - 1), a = a.split("/"), g = a.length - 1, s.nodeIdCompat && w.test(a[g]) && (a[g] = a[g].replace(w, "")), a = n.concat(a), k = 0; k < a.length; k += 1)
+                                    if (m = a[k], "." === m)
+                                        a.splice(k, 1), k -= 1;
+                                    else if (".." === m) {
+                                        if (1 === k && (".." === a[2] || ".." === a[0]))
+                                            break;
+                                            k > 0 && (a.splice(k - 1, 2), k -= 2)
+                                    }
+                                    a = a.join("/")
+                            } else 
+                                0 === a.indexOf("./") && (a = a.substring(2));
+                        if ((n || p) && o) {
+                            for (c = a.split("/"), k = c.length; k > 0; k -= 1) {
+                                if (d = c.slice(0, k).join("/"), n)
+                                    for (l = n.length; l > 0; l -= 1)
+                                        if (e = o[n.slice(0, l).join("/")], e && (e = e[d])) {
+                                            f = e, h = k;
+                                            break
+                                        }
+                                if (f)
+                                    break;
+                                !i && p && p[d] && (i = p[d], j = k)
+                            }
+                            !f && i && (f = i, h = j), f && (c.splice(0, h, f), a = c.join("/"))
+                        }
+                        return a
+                    }
+                    function g(a, c) {
+                        return function() {
+                            return n.apply(b, v.call(arguments, 0).concat([a, c]))
+                        }
+                    }
+                    function h(a) {
+                        return function(b) {
+                            return f(b, a)
+                        }
+                    }
+                    function i(a) {
+                        return function(b) {
+                            q[a] = b
+                        }
+                    }
+                    function j(a) {
+                        if (e(r, a)) {
+                            var c = r[a];
+                            delete r[a], t[a]=!0, m.apply(b, c)
+                        }
+                        if (!e(q, a)&&!e(t, a))
+                            throw new Error("No " + a);
+                        return q[a]
+                    }
+                    function k(a) {
+                        var b, c = a ? a.indexOf("!"): - 1;
+                        return c>-1 && (b = a.substring(0, c), a = a.substring(c + 1, a.length)), [b, a]
+                    }
+                    function l(a) {
+                        return function() {
+                            return s && s.config && s.config[a] || {}
+                        }
+                    }
+                    var m, n, o, p, q = {}, r = {}, s = {}, t = {}, u = Object.prototype.hasOwnProperty, v = [].slice, w = /\.js$/;
+                    o = function(a, b) {
+                        var c, d = k(a), e = d[0];
+                        return a = d[1], e && (e = f(e, b), c = j(e)), e ? a = c && c.normalize ? c.normalize(a, h(b)) : f(a, b) : (a = f(a, b), d = k(a), e = d[0], a = d[1], e && (c = j(e))), {
+                            f: e ? e + "!" + a: a,
+                            n: a,
+                            pr: e,
+                            p: c
+                        }
+                    }, p = {
+                        require: function(a) {
+                            return g(a)
+                        },
+                        exports: function(a) {
+                            var b = q[a];
+                            return "undefined" != typeof b ? b : q[a] = {}
+                        },
+                        module: function(a) {
+                            return {
+                                id: a,
+                                uri: "",
+                                exports: q[a],
+                                config: l(a)
+                            }
+                        }
+                    }, m = function(a, c, d, f) {
+                        var h, k, l, m, n, s, u = [], v = typeof d;
+                        if (f = f || a, "undefined" === v || "function" === v) {
+                            for (c=!c.length && d.length ? ["require", "exports", "module"] : c, n = 0; n < c.length; n += 1)
+                                if (m = o(c[n], f), k = m.f, "require" === k)
+                                    u[n] = p.require(a);
+                                else if ("exports" === k)
+                                    u[n] = p.exports(a), s=!0;
+                                else if ("module" === k)
+                                    h = u[n] = p.module(a);
+                                else if (e(q, k) || e(r, k) || e(t, k))
+                                    u[n] = j(k);
+                                else {
+                                    if (!m.p)
+                                        throw new Error(a + " missing " + k);
+                                        m.p.load(m.n, g(f, !0), i(k), {}), u[n] = q[k]
+                                }
+                            l = d ? d.apply(q[a], u) : void 0, a && (h && h.exports !== b && h.exports !== q[a] ? q[a] = h.exports : l === b && s || (q[a] = l))
+                        } else 
+                            a && (q[a] = d)
+                    }, a = c = n = function(a, c, d, e, f) {
+                        if ("string" == typeof a)
+                            return p[a] ? p[a](c) : j(o(a, c).f);
+                        if (!a.splice) {
+                            if (s = a, s.deps && n(s.deps, s.callback), !c)
+                                return;
+                            c.splice ? (a = c, c = d, d = null) : a = b
+                        }
+                        return c = c || function() {}, "function" == typeof d && (d = e, e = f), e ? m(b, a, c, d) : setTimeout(function() {
+                            m(b, a, c, d)
+                        }, 4), n
+                    }, n.config = function(a) {
+                        return n(a)
+                    }, a._defined = q, d = function(a, b, c) {
+                        b.splice || (c = b, b = []), e(q, a) || e(r, a) || (r[a] = [a, b, c])
+                    }, d.amd = {
+                        jQuery: !0
+                    }
+                }(), b.requirejs = a, b.require = c, b.define = d
+            }
+        }(), b.define("almond", function() {}), b.define("jquery", [], function() {
+            var b = a || $;
+            return null == b && console && console.error && console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."), b
+        }), b.define("select2/utils", ["jquery"], function(a) {
+            function b(a) {
+                var b = a.prototype, c = [];
+                for (var d in b) {
+                    var e = b[d];
+                    "function" == typeof e && "constructor" !== d && c.push(d)
+                }
+                return c
+            }
+            var c = {};
+            c.Extend = function(a, b) {
+                function c() {
+                    this.constructor = a
+                }
+                var d = {}.hasOwnProperty;
+                for (var e in b)
+                    d.call(b, e) && (a[e] = b[e]);
+                return c.prototype = b.prototype, a.prototype = new c, a.__super__ = b.prototype, a
+            }, c.Decorate = function(a, c) {
+                function d() {
+                    var b = Array.prototype.unshift, d = c.prototype.constructor.length, e = a.prototype.constructor;
+                    d > 0 && (b.call(arguments, a.prototype.constructor), e = c.prototype.constructor), e.apply(this, arguments)
+                }
+                function e() {
+                    this.constructor = d
+                }
+                var f = b(c), g = b(a);
+                c.displayName = a.displayName, d.prototype = new e;
+                for (var h = 0; h < g.length; h++) {
+                    var i = g[h];
+                    d.prototype[i] = a.prototype[i]
+                }
+                for (var j = (function(a) {
+                    var b = function() {};
+                    a in d.prototype && (b = d.prototype[a]);
+                    var e = c.prototype[a];
+                    return function() {
+                        var a = Array.prototype.unshift;
+                        return a.call(arguments, b), e.apply(this, arguments)
+                    }
+                }), k = 0; k < f.length; k++) {
+                    var l = f[k];
+                    d.prototype[l] = j(l)
+                }
+                return d
+            };
+            var d = function() {
+                this.listeners = {}
+            };
+            return d.prototype.on = function(a, b) {
+                this.listeners = this.listeners || {}, a in this.listeners ? this.listeners[a].push(b) : this.listeners[a] = [b]
+            }, d.prototype.trigger = function(a) {
+                var b = Array.prototype.slice;
+                this.listeners = this.listeners || {}, a in this.listeners && this.invoke(this.listeners[a], b.call(arguments, 1)), "*"in this.listeners && this.invoke(this.listeners["*"], arguments)
+            }, d.prototype.invoke = function(a, b) {
+                for (var c = 0, d = a.length; d > c; c++)
+                    a[c].apply(this, b)
+            }, c.Observable = d, c.generateChars = function(a) {
+                for (var b = "", c = 0; a > c; c++) {
+                    var d = Math.floor(36 * Math.random());
+                    b += d.toString(36)
+                }
+                return b
+            }, c.bind = function(a, b) {
+                return function() {
+                    a.apply(b, arguments)
+                }
+            }, c._convertData = function(a) {
+                for (var b in a) {
+                    var c = b.split("-"), d = a;
+                    if (1 !== c.length) {
+                        for (var e = 0; e < c.length; e++) {
+                            var f = c[e];
+                            f = f.substring(0, 1).toLowerCase() + f.substring(1), f in d || (d[f] = {}), e == c.length - 1 && (d[f] = a[b]), d = d[f]
+                        }
+                        delete a[b]
+                    }
+                }
+                return a
+            }, c.hasScroll = function(b, c) {
+                var d = a(c), e = c.style.overflowX, f = c.style.overflowY;
+                return e !== f || "hidden" !== f && "visible" !== f ? "scroll" === e || "scroll" === f?!0 : d.innerHeight() < c.scrollHeight || d.innerWidth() < c.scrollWidth : !1
+            }, c.escapeMarkup = function(a) {
+                var b = {
+                    "\\": "&#92;",
+                    "&": "&amp;",
+                    "<": "&lt;",
+                    ">": "&gt;",
+                    '"': "&quot;",
+                    "'": "&#39;",
+                    "/": "&#47;"
+                };
+                return "string" != typeof a ? a : String(a).replace(/[&<>"'\/\\]/g, function(a) {
+                    return b[a]
+                })
+            }, c.appendMany = function(b, c) {
+                if ("1.7" === a.fn.jquery.substr(0, 3)) {
+                    var d = a();
+                    a.map(c, function(a) {
+                        d = d.add(a)
+                    }), c = d
+                }
+                b.append(c)
+            }, c
+        }), b.define("select2/results", ["jquery", "./utils"], function(a, b) {
+            function c(a, b, d) {
+                this.$element = a, this.data = d, this.options = b, c.__super__.constructor.call(this)
+            }
+            return b.Extend(c, b.Observable), c.prototype.render = function() {
+                var b = a('<ul class="select2-results__options" role="tree"></ul>');
+                return this.options.get("multiple") && b.attr("aria-multiselectable", "true"), this.$results = b, b
+            }, c.prototype.clear = function() {
+                this.$results.empty()
+            }, c.prototype.displayMessage = function(b) {
+                var c = this.options.get("escapeMarkup");
+                this.clear(), this.hideLoading();
+                var d = a('<li role="treeitem" class="select2-results__option"></li>'), e = this.options.get("translations").get(b.message);
+                d.append(c(e(b.args))), this.$results.append(d)
+            }, c.prototype.append = function(a) {
+                this.hideLoading();
+                var b = [];
+                if (null == a.results || 0 === a.results.length)
+                    return void(0 === this.$results.children().length && this.trigger("results:message", {
+                        message: "noResults"
+                    }));
+                a.results = this.sort(a.results);
+                for (var c = 0; c < a.results.length; c++) {
+                    var d = a.results[c], e = this.option(d);
+                    b.push(e)
+                }
+                this.$results.append(b)
+            }, c.prototype.position = function(a, b) {
+                var c = b.find(".select2-results");
+                c.append(a)
+            }, c.prototype.sort = function(a) {
+                var b = this.options.get("sorter");
+                return b(a)
+            }, c.prototype.setClasses = function() {
+                var b = this;
+                this.data.current(function(c) {
+                    var d = a.map(c, function(a) {
+                        return a.id.toString()
+                    }), e = b.$results.find(".select2-results__option[aria-selected]");
+                    e.each(function() {
+                        var b = a(this), c = a.data(this, "data"), e = "" + c.id;
+                        null != c.element && c.element.selected || null == c.element && a.inArray(e, d)>-1 ? b.attr("aria-selected", "true") : b.attr("aria-selected", "false")
+                    });
+                    var f = e.filter("[aria-selected=true]");
+                    f.length > 0 ? f.first().trigger("mouseenter") : e.first().trigger("mouseenter")
+                })
+            }, c.prototype.showLoading = function(a) {
+                this.hideLoading();
+                var b = this.options.get("translations").get("searching"), c = {
+                    disabled: !0,
+                    loading: !0,
+                    text: b(a)
+                }, d = this.option(c);
+                d.className += " loading-results", this.$results.prepend(d)
+            }, c.prototype.hideLoading = function() {
+                this.$results.find(".loading-results").remove()
+            }, c.prototype.option = function(b) {
+                var c = document.createElement("li");
+                c.className = "select2-results__option";
+                var d = {
+                    role: "treeitem",
+                    "aria-selected": "false"
+                };
+                b.disabled && (delete d["aria-selected"], d["aria-disabled"] = "true"), null == b.id && delete d["aria-selected"], null != b._resultId && (c.id = b._resultId), b.title && (c.title = b.title), b.children && (d.role = "group", d["aria-label"] = b.text, delete d["aria-selected"]);
+                for (var e in d) {
+                    var f = d[e];
+                    c.setAttribute(e, f)
+                }
+                if (b.children) {
+                    var g = a(c), h = document.createElement("strong");
+                    h.className = "select2-results__group";
+                    {
+                        a(h)
+                    }
+                    this.template(b, h);
+                    for (var i = [], j = 0; j < b.children.length; j++) {
+                        var k = b.children[j], l = this.option(k);
+                        i.push(l)
+                    }
+                    var m = a("<ul></ul>", {
+                        "class": "select2-results__options select2-results__options--nested"
+                    });
+                    m.append(i), g.append(h), g.append(m)
+                } else 
+                    this.template(b, c);
+                return a.data(c, "data", b), c
+            }, c.prototype.bind = function(b) {
+                var c = this, d = b.id + "-results";
+                this.$results.attr("id", d), b.on("results:all", function(a) {
+                    c.clear(), c.append(a.data), b.isOpen() && c.setClasses()
+                }), b.on("results:append", function(a) {
+                    c.append(a.data), b.isOpen() && c.setClasses()
+                }), b.on("query", function(a) {
+                    c.showLoading(a)
+                }), b.on("select", function() {
+                    b.isOpen() && c.setClasses()
+                }), b.on("unselect", function() {
+                    b.isOpen() && c.setClasses()
+                }), b.on("open", function() {
+                    c.$results.attr("aria-expanded", "true"), c.$results.attr("aria-hidden", "false"), c.setClasses(), c.ensureHighlightVisible()
+                }), b.on("close", function() {
+                    c.$results.attr("aria-expanded", "false"), c.$results.attr("aria-hidden", "true"), c.$results.removeAttr("aria-activedescendant")
+                }), b.on("results:toggle", function() {
+                    var a = c.getHighlightedResults();
+                    0 !== a.length && a.trigger("mouseup")
+                }), b.on("results:select", function() {
+                    var a = c.getHighlightedResults();
+                    if (0 !== a.length) {
+                        var b = a.data("data");
+                        "true" == a.attr("aria-selected") ? c.trigger("close") : c.trigger("select", {
+                            data: b
+                        })
+                    }
+                }), b.on("results:previous", function() {
+                    var a = c.getHighlightedResults(), b = c.$results.find("[aria-selected]"), d = b.index(a);
+                    if (0 !== d) {
+                        var e = d - 1;
+                        0 === a.length && (e = 0);
+                        var f = b.eq(e);
+                        f.trigger("mouseenter");
+                        var g = c.$results.offset().top, h = f.offset().top, i = c.$results.scrollTop() + (h - g);
+                        0 === e ? c.$results.scrollTop(0) : 0 > h - g && c.$results.scrollTop(i)
+                    }
+                }), b.on("results:next", function() {
+                    var a = c.getHighlightedResults(), b = c.$results.find("[aria-selected]"), d = b.index(a), e = d + 1;
+                    if (!(e >= b.length)) {
+                        var f = b.eq(e);
+                        f.trigger("mouseenter");
+                        var g = c.$results.offset().top + c.$results.outerHeight(!1), h = f.offset().top + f.outerHeight(!1), i = c.$results.scrollTop() + h - g;
+                        0 === e ? c.$results.scrollTop(0) : h > g && c.$results.scrollTop(i)
+                    }
+                }), b.on("results:focus", function(a) {
+                    a.element.addClass("select2-results__option--highlighted")
+                }), b.on("results:message", function(a) {
+                    c.displayMessage(a)
+                }), a.fn.mousewheel && this.$results.on("mousewheel", function(a) {
+                    var b = c.$results.scrollTop(), d = c.$results.get(0).scrollHeight - c.$results.scrollTop() + a.deltaY, e = a.deltaY > 0 && b - a.deltaY <= 0, f = a.deltaY < 0 && d <= c.$results.height();
+                    e ? (c.$results.scrollTop(0), a.preventDefault(), a.stopPropagation()) : f && (c.$results.scrollTop(c.$results.get(0).scrollHeight - c.$results.height()), a.preventDefault(), a.stopPropagation())
+                }), this.$results.on("mouseup", ".select2-results__option[aria-selected]", function(b) {
+                    var d = a(this), e = d.data("data");
+                    return "true" === d.attr("aria-selected") ? void(c.options.get("multiple") ? c.trigger("unselect", {
+                        originalEvent: b,
+                        data: e
+                    }) : c.trigger("close")) : void c.trigger("select", {
+                        originalEvent: b,
+                        data: e
+                    })
+                }), this.$results.on("mouseenter", ".select2-results__option[aria-selected]", function() {
+                    var b = a(this).data("data");
+                    c.getHighlightedResults().removeClass("select2-results__option--highlighted"), c.trigger("results:focus", {
+                        data: b,
+                        element: a(this)
+                    })
+                })
+            }, c.prototype.getHighlightedResults = function() {
+                var a = this.$results.find(".select2-results__option--highlighted");
+                return a
+            }, c.prototype.destroy = function() {
+                this.$results.remove()
+            }, c.prototype.ensureHighlightVisible = function() {
+                var a = this.getHighlightedResults();
+                if (0 !== a.length) {
+                    var b = this.$results.find("[aria-selected]"), c = b.index(a), d = this.$results.offset().top, e = a.offset().top, f = this.$results.scrollTop() + (e - d), g = e - d;
+                    f -= 2 * a.outerHeight(!1), 2 >= c ? this.$results.scrollTop(0) : (g > this.$results.outerHeight() || 0 > g) && this.$results.scrollTop(f)
+                }
+            }, c.prototype.template = function(b, c) {
+                var d = this.options.get("templateResult"), e = this.options.get("escapeMarkup"), f = d(b);
+                null == f ? c.style.display = "none" : "string" == typeof f ? c.innerHTML = e(f) : a(c).append(f)
+            }, c
+        }), b.define("select2/keys", [], function() {
+            var a = {
+                BACKSPACE: 8,
+                TAB: 9,
+                ENTER: 13,
+                SHIFT: 16,
+                CTRL: 17,
+                ALT: 18,
+                ESC: 27,
+                SPACE: 32,
+                PAGE_UP: 33,
+                PAGE_DOWN: 34,
+                END: 35,
+                HOME: 36,
+                LEFT: 37,
+                UP: 38,
+                RIGHT: 39,
+                DOWN: 40,
+                DELETE: 46
+            };
+            return a
+        }), b.define("select2/selection/base", ["jquery", "../utils", "../keys"], function(a, b, c) {
+            function d(a, b) {
+                this.$element = a, this.options = b, d.__super__.constructor.call(this)
+            }
+            return b.Extend(d, b.Observable), d.prototype.render = function() {
+                var b = a('<span class="select2-selection" role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-expanded="false"></span>');
+                return this._tabindex = 0, null != this.$element.data("old-tabindex") ? this._tabindex = this.$element.data("old-tabindex") : null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")), b.attr("title", this.$element.attr("title")), b.attr("tabindex", this._tabindex), this.$selection = b, b
+            }, d.prototype.bind = function(a) {
+                var b = this, d = (a.id + "-container", a.id + "-results");
+                this.container = a, this.$selection.on("focus", function(a) {
+                    b.trigger("focus", a)
+                }), this.$selection.on("blur", function(a) {
+                    b.trigger("blur", a)
+                }), this.$selection.on("keydown", function(a) {
+                    b.trigger("keypress", a), a.which === c.SPACE && a.preventDefault()
+                }), a.on("results:focus", function(a) {
+                    b.$selection.attr("aria-activedescendant", a.data._resultId)
+                }), a.on("selection:update", function(a) {
+                    b.update(a.data)
+                }), a.on("open", function() {
+                    b.$selection.attr("aria-expanded", "true"), b.$selection.attr("aria-owns", d), b._attachCloseHandler(a)
+                }), a.on("close", function() {
+                    b.$selection.attr("aria-expanded", "false"), b.$selection.removeAttr("aria-activedescendant"), b.$selection.removeAttr("aria-owns"), b.$selection.focus(), b._detachCloseHandler(a)
+                }), a.on("enable", function() {
+                    b.$selection.attr("tabindex", b._tabindex)
+                }), a.on("disable", function() {
+                    b.$selection.attr("tabindex", "-1")
+                })
+            }, d.prototype._attachCloseHandler = function(b) {
+                a(document.body).on("mousedown.select2." + b.id, function(b) {
+                    var c = a(b.target), d = c.closest(".select2"), e = a(".select2.select2-container--open");
+                    e.each(function() {
+                        var b = a(this);
+                        if (this != d[0]) {
+                            var c = b.data("element");
+                            c.select2("close")
+                        }
+                    })
+                })
+            }, d.prototype._detachCloseHandler = function(b) {
+                a(document.body).off("mousedown.select2." + b.id)
+            }, d.prototype.position = function(a, b) {
+                var c = b.find(".selection");
+                c.append(a)
+            }, d.prototype.destroy = function() {
+                this._detachCloseHandler(this.container)
+            }, d.prototype.update = function() {
+                throw new Error("The `update` method must be defined in child classes.")
+            }, d
+        }), b.define("select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function(a, b, c) {
+            function d() {
+                d.__super__.constructor.apply(this, arguments)
+            }
+            return c.Extend(d, b), d.prototype.render = function() {
+                var a = d.__super__.render.call(this);
+                return a.addClass("select2-selection--single"), a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), a
+            }, d.prototype.bind = function(a) {
+                var b = this;
+                d.__super__.bind.apply(this, arguments);
+                var c = a.id + "-container";
+                this.$selection.find(".select2-selection__rendered").attr("id", c), this.$selection.attr("aria-labelledby", c), this.$selection.on("mousedown", function(a) {
+                    1 === a.which && b.trigger("toggle", {
+                        originalEvent: a
+                    })
+                }), this.$selection.on("focus", function() {}), this.$selection.on("blur", function() {}), a.on("selection:update", function(a) {
+                    b.update(a.data)
+                })
+            }, d.prototype.clear = function() {
+                this.$selection.find(".select2-selection__rendered").empty()
+            }, d.prototype.display = function(a) {
+                var b = this.options.get("templateSelection"), c = this.options.get("escapeMarkup");
+                return c(b(a))
+            }, d.prototype.selectionContainer = function() {
+                return a("<span></span>")
+            }, d.prototype.update = function(a) {
+                if (0 === a.length)
+                    return void this.clear();
+                var b = a[0], c = this.display(b), d = this.$selection.find(".select2-selection__rendered");
+                d.empty().append(c), d.prop("title", b.title || b.text)
+            }, d
+        }), b.define("select2/selection/multiple", ["jquery", "./base", "../utils"], function(a, b, c) {
+            function d() {
+                d.__super__.constructor.apply(this, arguments)
+            }
+            return c.Extend(d, b), d.prototype.render = function() {
+                var a = d.__super__.render.call(this);
+                return a.addClass("select2-selection--multiple"), a.html('<ul class="select2-selection__rendered"></ul>'), a
+            }, d.prototype.bind = function() {
+                var b = this;
+                d.__super__.bind.apply(this, arguments), this.$selection.on("click", function(a) {
+                    b.trigger("toggle", {
+                        originalEvent: a
+                    })
+                }), this.$selection.on("click", ".select2-selection__choice__remove", function(c) {
+                    var d = a(this), e = d.parent(), f = e.data("data");
+                    b.trigger("unselect", {
+                        originalEvent: c,
+                        data: f
+                    })
+                })
+            }, d.prototype.clear = function() {
+                this.$selection.find(".select2-selection__rendered").empty()
+            }, d.prototype.display = function(a) {
+                var b = this.options.get("templateSelection"), c = this.options.get("escapeMarkup");
+                return c(b(a))
+            }, d.prototype.selectionContainer = function() {
+                var b = a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>');
+                return b
+            }, d.prototype.update = function(a) {
+                if (this.clear(), 0 !== a.length) {
+                    for (var b = [], d = 0; d < a.length; d++) {
+                        var e = a[d], f = this.display(e), g = this.selectionContainer();
+                        g.append(f), g.prop("title", e.title || e.text), g.data("data", e), b.push(g)
+                    }
+                    var h = this.$selection.find(".select2-selection__rendered");
+                    c.appendMany(h, b)
+                }
+            }, d
+        }), b.define("select2/selection/placeholder", ["../utils"], function() {
+            function a(a, b, c) {
+                this.placeholder = this.normalizePlaceholder(c.get("placeholder")), a.call(this, b, c)
+            }
+            return a.prototype.normalizePlaceholder = function(a, b) {
+                return "string" == typeof b && (b = {
+                    id: "",
+                    text: b
+                }), b
+            }, a.prototype.createPlaceholder = function(a, b) {
+                var c = this.selectionContainer();
+                return c.html(this.display(b)), c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"), c
+            }, a.prototype.update = function(a, b) {
+                var c = 1 == b.length && b[0].id != this.placeholder.id, d = b.length > 1;
+                if (d || c)
+                    return a.call(this, b);
+                this.clear();
+                var e = this.createPlaceholder(this.placeholder);
+                this.$selection.find(".select2-selection__rendered").append(e)
+            }, a
+        }), b.define("select2/selection/allowClear", ["jquery", "../keys"], function(a, b) {
+            function c() {}
+            return c.prototype.bind = function(a, b, c) {
+                var d = this;
+                a.call(this, b, c), null == this.placeholder && this.options.get("debug") && window.console && console.error && console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."), this.$selection.on("mousedown", ".select2-selection__clear", function(a) {
+                    d._handleClear(a)
+                }), b.on("keypress", function(a) {
+                    d._handleKeyboardClear(a, b)
+                })
+            }, c.prototype._handleClear = function(a, b) {
+                if (!this.options.get("disabled")) {
+                    var c = this.$selection.find(".select2-selection__clear");
+                    if (0 !== c.length) {
+                        b.stopPropagation();
+                        for (var d = c.data("data"), e = 0; e < d.length; e++) {
+                            var f = {
+                                data: d[e]
+                            };
+                            if (this.trigger("unselect", f), f.prevented)
+                                return 
+                        }
+                        this.$element.val(this.placeholder.id).trigger("change"), this.trigger("toggle")
+                    }
+                }
+            }, c.prototype._handleKeyboardClear = function(a, c, d) {
+                d.isOpen() || (c.which == b.DELETE || c.which == b.BACKSPACE) && this._handleClear(c)
+            }, c.prototype.update = function(b, c) {
+                if (b.call(this, c), !(this.$selection.find(".select2-selection__placeholder").length > 0 || 0 === c.length)) {
+                    var d = a('<span class="select2-selection__clear">&times;</span>');
+                    d.data("data", c), this.$selection.find(".select2-selection__rendered").prepend(d)
+                }
+            }, c
+        }), b.define("select2/selection/search", ["jquery", "../utils", "../keys"], function(a, b, c) {
+            function d(a, b, c) {
+                a.call(this, b, c)
+            }
+            return d.prototype.render = function(b) {
+                var c = a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></li>');
+                this.$searchContainer = c, this.$search = c.find("input");
+                var d = b.call(this);
+                return d
+            }, d.prototype.bind = function(a, b, d) {
+                var e = this;
+                a.call(this, b, d), b.on("open", function() {
+                    e.$search.attr("tabindex", 0), e.$search.focus()
+                }), b.on("close", function() {
+                    e.$search.attr("tabindex", - 1), e.$search.val(""), e.$search.focus()
+                }), b.on("enable", function() {
+                    e.$search.prop("disabled", !1)
+                }), b.on("disable", function() {
+                    e.$search.prop("disabled", !0)
+                }), this.$selection.on("focusin", ".select2-search--inline", function(a) {
+                    e.trigger("focus", a)
+                }), this.$selection.on("focusout", ".select2-search--inline", function(a) {
+                    e.trigger("blur", a)
+                }), this.$selection.on("keydown", ".select2-search--inline", function(a) {
+                    a.stopPropagation(), e.trigger("keypress", a), e._keyUpPrevented = a.isDefaultPrevented();
+                    var b = a.which;
+                    if (b === c.BACKSPACE && "" === e.$search.val()) {
+                        var d = e.$searchContainer.prev(".select2-selection__choice");
+                        if (d.length > 0) {
+                            var f = d.data("data");
+                            e.searchRemoveChoice(f), a.preventDefault()
+                        }
+                    }
+                }), this.$selection.on("input", ".select2-search--inline", function() {
+                    e.$selection.off("keyup.search")
+                }), this.$selection.on("keyup.search input", ".select2-search--inline", function(a) {
+                    e.handleSearch(a)
+                })
+            }, d.prototype.createPlaceholder = function(a, b) {
+                this.$search.attr("placeholder", b.text)
+            }, d.prototype.update = function(a, b) {
+                this.$search.attr("placeholder", ""), a.call(this, b), this.$selection.find(".select2-selection__rendered").append(this.$searchContainer), this.resizeSearch()
+            }, d.prototype.handleSearch = function() {
+                if (this.resizeSearch(), !this._keyUpPrevented) {
+                    var a = this.$search.val();
+                    this.trigger("query", {
+                        term: a
+                    })
+                }
+                this._keyUpPrevented=!1
+            }, d.prototype.searchRemoveChoice = function(a, b) {
+                this.trigger("unselect", {
+                    data: b
+                }), this.trigger("open"), this.$search.val(b.text + " ")
+            }, d.prototype.resizeSearch = function() {
+                this.$search.css("width", "25px");
+                var a = "";
+                if ("" !== this.$search.attr("placeholder"))
+                    a = this.$selection.find(".select2-selection__rendered").innerWidth();
+                else {
+                    var b = this.$search.val().length + 1;
+                    a = .75 * b + "em"
+                }
+                this.$search.css("width", a)
+            }, d
+        }), b.define("select2/selection/eventRelay", ["jquery"], function(a) {
+            function b() {}
+            return b.prototype.bind = function(b, c, d) {
+                var e = this, f = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting"], g = ["opening", "closing", "selecting", "unselecting"];
+                b.call(this, c, d), c.on("*", function(b, c) {
+                    if ( - 1 !== a.inArray(b, f)) {
+                        c = c || {};
+                        var d = a.Event("select2:" + b, {
+                            params: c
+                        });
+                        e.$element.trigger(d), - 1 !== a.inArray(b, g) && (c.prevented = d.isDefaultPrevented())
+                    }
+                })
+            }, b
+        }), b.define("select2/translation", ["jquery", "require"], function(a, b) {
+            function c(a) {
+                this.dict = a || {}
+            }
+            return c.prototype.all = function() {
+                return this.dict
+            }, c.prototype.get = function(a) {
+                return this.dict[a]
+            }, c.prototype.extend = function(b) {
+                this.dict = a.extend({}, b.all(), this.dict)
+            }, c._cache = {}, c.loadPath = function(a) {
+                if (!(a in c._cache)) {
+                    var d = b(a);
+                    c._cache[a] = d
+                }
+                return new c(c._cache[a])
+            }, c
+        }), b.define("select2/diacritics", [], function() {
+            var a = {
+                "â’¶": "A",
+                "A": "A",
+                "À": "A",
+                "Á": "A",
+                "Â": "A",
+                "Ầ": "A",
+                "Ấ": "A",
+                "Ẫ": "A",
+                "Ẩ": "A",
+                "Ã": "A",
+                "Ä€": "A",
+                "Ä‚": "A",
+                "Ằ": "A",
+                "Ắ": "A",
+                "Ẵ": "A",
+                "Ẳ": "A",
+                "Ȧ": "A",
+                "Ç ": "A",
+                "Ä": "A",
+                "Çž": "A",
+                "Ả": "A",
+                "Ã…": "A",
+                "Ǻ": "A",
+                "Ǎ": "A",
+                "È€": "A",
+                "È‚": "A",
+                "Ạ": "A",
+                "Ậ": "A",
+                "Ặ": "A",
+                "Ḁ": "A",
+                "Ä„": "A",
+                "Ⱥ": "A",
+                "Ɐ": "A",
+                "Ꜳ": "AA",
+                "Æ": "AE",
+                "Ǽ": "AE",
+                "Ç¢": "AE",
+                "Ꜵ": "AO",
+                "Ꜷ": "AU",
+                "Ꜹ": "AV",
+                "Ꜻ": "AV",
+                "Ꜽ": "AY",
+                "â’·": "B",
+                "ï¼¢": "B",
+                "Ḃ": "B",
+                "Ḅ": "B",
+                "Ḇ": "B",
+                "Ƀ": "B",
+                "Æ‚": "B",
+                "Ɓ": "B",
+                "â’¸": "C",
+                "ï¼£": "C",
+                "Ć": "C",
+                "Ĉ": "C",
+                "ÄŠ": "C",
+                "Č": "C",
+                "Ç": "C",
+                "Ḉ": "C",
+                "Ƈ": "C",
+                "È»": "C",
+                "Ꜿ": "C",
+                "â’¹": "D",
+                "D": "D",
+                "Ḋ": "D",
+                "ÄŽ": "D",
+                "Ḍ": "D",
+                "Ḑ": "D",
+                "Ḓ": "D",
+                "Ḏ": "D",
+                "Đ": "D",
+                "Æ‹": "D",
+                "ÆŠ": "D",
+                "Ɖ": "D",
+                "Ꝺ": "D",
+                "DZ": "DZ",
+                "Ç„": "DZ",
+                "Dz": "Dz",
+                "Ç…": "Dz",
+                "â’º": "E",
+                "ï¼¥": "E",
+                "È": "E",
+                "É": "E",
+                "Ê": "E",
+                "Ề": "E",
+                "Ế": "E",
+                "Ễ": "E",
+                "Ể": "E",
+                "Ẽ": "E",
+                "Ä’": "E",
+                "Ḕ": "E",
+                "Ḗ": "E",
+                "Ä”": "E",
+                "Ä–": "E",
+                "Ë": "E",
+                "Ẻ": "E",
+                "Äš": "E",
+                "È„": "E",
+                "Ȇ": "E",
+                "Ẹ": "E",
+                "Ệ": "E",
+                "Ȩ": "E",
+                "Ḝ": "E",
+                "Ę": "E",
+                "Ḙ": "E",
+                "Ḛ": "E",
+                "Ɛ": "E",
+                "ÆŽ": "E",
+                "â’»": "F",
+                "F": "F",
+                "Ḟ": "F",
+                "Æ‘": "F",
+                "Ꝼ": "F",
+                "â’¼": "G",
+                "G": "G",
+                "Ç´": "G",
+                "Ĝ": "G",
+                "Ḡ": "G",
+                "Äž": "G",
+                "Ä ": "G",
+                "Ǧ": "G",
+                "Ä¢": "G",
+                "Ǥ": "G",
+                "Æ“": "G",
+                "êž ": "G",
+                "Ᵹ": "G",
+                "Ꝿ": "G",
+                "â’½": "H",
+                "H": "H",
+                "Ĥ": "H",
+                "Ḣ": "H",
+                "Ḧ": "H",
+                "Èž": "H",
+                "Ḥ": "H",
+                "Ḩ": "H",
+                "Ḫ": "H",
+                "Ħ": "H",
+                "Ⱨ": "H",
+                "â±µ": "H",
+                "Ɥ": "H",
+                "â’¾": "I",
+                "I": "I",
+                "Ì": "I",
+                "Í": "I",
+                "ÃŽ": "I",
+                "Ĩ": "I",
+                "Ī": "I",
+                "Ĭ": "I",
+                "Ä°": "I",
+                "Ï": "I",
+                "Ḯ": "I",
+                "Ỉ": "I",
+                "Ǐ": "I",
+                "Ȉ": "I",
+                "ÈŠ": "I",
+                "Ị": "I",
+                "Ä®": "I",
+                "Ḭ": "I",
+                "Æ—": "I",
+                "â’¿": "J",
+                "J": "J",
+                "Ä´": "J",
+                "Ɉ": "J",
+                "â“€": "K",
+                "K": "K",
+                "Ḱ": "K",
+                "Ǩ": "K",
+                "Ḳ": "K",
+                "Ķ": "K",
+                "Ḵ": "K",
+                "Ƙ": "K",
+                "Ⱪ": "K",
+                "Ꝁ": "K",
+                "Ꝃ": "K",
+                "Ꝅ": "K",
+                "Ꞣ": "K",
+                "Ⓛ": "L",
+                "L": "L",
+                "Ä¿": "L",
+                "Ĺ": "L",
+                "Ľ": "L",
+                "Ḷ": "L",
+                "Ḹ": "L",
+                "Ä»": "L",
+                "Ḽ": "L",
+                "Ḻ": "L",
+                "Ł": "L",
+                "Ƚ": "L",
+                "â±¢": "L",
+                "â± ": "L",
+                "Ꝉ": "L",
+                "Ꝇ": "L",
+                "Ꞁ": "L",
+                "LJ": "LJ",
+                "Lj": "Lj",
+                "â“‚": "M",
+                "ï¼­": "M",
+                "Ḿ": "M",
+                "á¹€": "M",
+                "Ṃ": "M",
+                "â±®": "M",
+                "Ɯ": "M",
+                "Ⓝ": "N",
+                "ï¼®": "N",
+                "Ǹ": "N",
+                "Ń": "N",
+                "Ñ": "N",
+                "Ṅ": "N",
+                "Ň": "N",
+                "Ṇ": "N",
+                "Å…": "N",
+                "Ṋ": "N",
+                "Ṉ": "N",
+                "È ": "N",
+                "Ɲ": "N",
+                "Ꞑ": "N",
+                "Ꞥ": "N",
+                "ÇŠ": "NJ",
+                "Ç‹": "Nj",
+                "â“„": "O",
+                "O": "O",
+                "Ã’": "O",
+                "Ó": "O",
+                "Ô": "O",
+                "á»’": "O",
+                "Ố": "O",
+                "á»–": "O",
+                "á»”": "O",
+                "Õ": "O",
+                "Ṍ": "O",
+                "Ȭ": "O",
+                "Ṏ": "O",
+                "Ō": "O",
+                "Ṑ": "O",
+                "á¹’": "O",
+                "ÅŽ": "O",
+                "È®": "O",
+                "È°": "O",
+                "Ö": "O",
+                "Ȫ": "O",
+                "Ỏ": "O",
+                "Ő": "O",
+                "Ç‘": "O",
+                "Ȍ": "O",
+                "ÈŽ": "O",
+                "Æ ": "O",
+                "Ờ": "O",
+                "Ớ": "O",
+                "á» ": "O",
+                "Ở": "O",
+                "Ợ": "O",
+                "Ọ": "O",
+                "Ộ": "O",
+                "Ǫ": "O",
+                "Ǭ": "O",
+                "Ø": "O",
+                "Ǿ": "O",
+                "Ɔ": "O",
+                "ÆŸ": "O",
+                "Ꝋ": "O",
+                "Ꝍ": "O",
+                "Æ¢": "OI",
+                "Ꝏ": "OO",
+                "È¢": "OU",
+                "â“…": "P",
+                "ï¼°": "P",
+                "á¹”": "P",
+                "á¹–": "P",
+                "Ƥ": "P",
+                "â±£": "P",
+                "Ꝑ": "P",
+                "Ꝓ": "P",
+                "Ꝕ": "P",
+                "Ⓠ": "Q",
+                "ï¼±": "Q",
+                "Ꝗ": "Q",
+                "Ꝙ": "Q",
+                "ÉŠ": "Q",
+                "Ⓡ": "R",
+                "ï¼²": "R",
+                "Å”": "R",
+                "Ṙ": "R",
+                "Ř": "R",
+                "Ȑ": "R",
+                "È’": "R",
+                "Ṛ": "R",
+                "Ṝ": "R",
+                "Å–": "R",
+                "Ṟ": "R",
+                "Ɍ": "R",
+                "Ɽ": "R",
+                "Ꝛ": "R",
+                "Ꞧ": "R",
+                "êž‚": "R",
+                "Ⓢ": "S",
+                "ï¼³": "S",
+                "ẞ": "S",
+                "Åš": "S",
+                "Ṥ": "S",
+                "Ŝ": "S",
+                "á¹ ": "S",
+                "Å ": "S",
+                "Ṧ": "S",
+                "á¹¢": "S",
+                "Ṩ": "S",
+                "Ș": "S",
+                "Åž": "S",
+                "â±¾": "S",
+                "Ꞩ": "S",
+                "êž„": "S",
+                "Ⓣ": "T",
+                "ï¼´": "T",
+                "Ṫ": "T",
+                "Ť": "T",
+                "Ṭ": "T",
+                "Èš": "T",
+                "Å¢": "T",
+                "á¹°": "T",
+                "á¹®": "T",
+                "Ŧ": "T",
+                "Ƭ": "T",
+                "Æ®": "T",
+                "Ⱦ": "T",
+                "Ꞇ": "T",
+                "Ꜩ": "TZ",
+                "â“Š": "U",
+                "ï¼µ": "U",
+                "Ù": "U",
+                "Ú": "U",
+                "Û": "U",
+                "Ũ": "U",
+                "Ṹ": "U",
+                "Ū": "U",
+                "Ṻ": "U",
+                "Ŭ": "U",
+                "Ü": "U",
+                "Ç›": "U",
+                "Ç—": "U",
+                "Ç•": "U",
+                "Ç™": "U",
+                "Ủ": "U",
+                "Å®": "U",
+                "Å°": "U",
+                "Ç“": "U",
+                "È”": "U",
+                "È–": "U",
+                "Ư": "U",
+                "Ừ": "U",
+                "Ứ": "U",
+                "á»®": "U",
+                "Ử": "U",
+                "á»°": "U",
+                "Ụ": "U",
+                "á¹²": "U",
+                "Ų": "U",
+                "Ṷ": "U",
+                "á¹´": "U",
+                "É„": "U",
+                "â“‹": "V",
+                "V": "V",
+                "á¹¼": "V",
+                "á¹¾": "V",
+                "Ʋ": "V",
+                "Ꝟ": "V",
+                "É…": "V",
+                "Ꝡ": "VY",
+                "Ⓦ": "W",
+                "ï¼·": "W",
+                "Ẁ": "W",
+                "Ẃ": "W",
+                "Å´": "W",
+                "Ẇ": "W",
+                "Ẅ": "W",
+                "Ẉ": "W",
+                "â±²": "W",
+                "Ⓧ": "X",
+                "X": "X",
+                "Ẋ": "X",
+                "Ẍ": "X",
+                "â“Ž": "Y",
+                "ï¼¹": "Y",
+                "Ỳ": "Y",
+                "Ý": "Y",
+                "Ŷ": "Y",
+                "Ỹ": "Y",
+                "Ȳ": "Y",
+                "Ẏ": "Y",
+                "Ÿ": "Y",
+                "Ỷ": "Y",
+                "á»´": "Y",
+                "Ƴ": "Y",
+                "ÉŽ": "Y",
+                "Ỿ": "Y",
+                "Ⓩ": "Z",
+                "Z": "Z",
+                "Ź": "Z",
+                "Ẑ": "Z",
+                "Å»": "Z",
+                "Ž": "Z",
+                "Ẓ": "Z",
+                "Ẕ": "Z",
+                "Ƶ": "Z",
+                "Ȥ": "Z",
+                "Ɀ": "Z",
+                "Ⱬ": "Z",
+                "Ꝣ": "Z",
+                "ⓐ": "a",
+                "a": "a",
+                "ẚ": "a",
+                "à": "a",
+                "á": "a",
+                "â": "a",
+                "ầ": "a",
+                "ấ": "a",
+                "ẫ": "a",
+                "ẩ": "a",
+                "ã": "a",
+                "ā": "a",
+                "ă": "a",
+                "ằ": "a",
+                "ắ": "a",
+                "ẵ": "a",
+                "ẳ": "a",
+                "ȧ": "a",
+                "Ç¡": "a",
+                "ä": "a",
+                "ÇŸ": "a",
+                "ả": "a",
+                "Ã¥": "a",
+                "Ç»": "a",
+                "ÇŽ": "a",
+                "ȁ": "a",
+                "ȃ": "a",
+                "ạ": "a",
+                "ậ": "a",
+                "ặ": "a",
+                "ḁ": "a",
+                "Ä…": "a",
+                "â±¥": "a",
+                "ɐ": "a",
+                "ꜳ": "aa",
+                "æ": "ae",
+                "ǽ": "ae",
+                "Ç£": "ae",
+                "ꜵ": "ao",
+                "ꜷ": "au",
+                "ꜹ": "av",
+                "ꜻ": "av",
+                "ꜽ": "ay",
+                "â“‘": "b",
+                "b": "b",
+                "ḃ": "b",
+                "ḅ": "b",
+                "ḇ": "b",
+                "Æ€": "b",
+                "ƃ": "b",
+                "É“": "b",
+                "â“’": "c",
+                "c": "c",
+                "ć": "c",
+                "ĉ": "c",
+                "Ä‹": "c",
+                "č": "c",
+                "ç": "c",
+                "ḉ": "c",
+                "ƈ": "c",
+                "ȼ": "c",
+                "ꜿ": "c",
+                "ↄ": "c",
+                "â““": "d",
+                "d": "d",
+                "ḋ": "d",
+                "ď": "d",
+                "ḍ": "d",
+                "ḑ": "d",
+                "ḓ": "d",
+                "ḏ": "d",
+                "Ä‘": "d",
+                "ƌ": "d",
+                "É–": "d",
+                "É—": "d",
+                "ꝺ": "d",
+                "dz": "dz",
+                "dž": "dz",
+                "â“”": "e",
+                "ï½…": "e",
+                "è": "e",
+                "é": "e",
+                "ê": "e",
+                "ề": "e",
+                "ế": "e",
+                "á»…": "e",
+                "ể": "e",
+                "ẽ": "e",
+                "Ä“": "e",
+                "ḕ": "e",
+                "ḗ": "e",
+                "Ä•": "e",
+                "Ä—": "e",
+                "ë": "e",
+                "ẻ": "e",
+                "Ä›": "e",
+                "È…": "e",
+                "ȇ": "e",
+                "ẹ": "e",
+                "ệ": "e",
+                "È©": "e",
+                "ḝ": "e",
+                "Ä™": "e",
+                "ḙ": "e",
+                "ḛ": "e",
+                "ɇ": "e",
+                "É›": "e",
+                "ǝ": "e",
+                "â“•": "f",
+                "f": "f",
+                "ḟ": "f",
+                "Æ’": "f",
+                "ꝼ": "f",
+                "â“–": "g",
+                "g": "g",
+                "ǵ": "g",
+                "ĝ": "g",
+                "ḡ": "g",
+                "ÄŸ": "g",
+                "Ä¡": "g",
+                "ǧ": "g",
+                "Ä£": "g",
+                "Ç¥": "g",
+                "É ": "g",
+                "êž¡": "g",
+                "áµ¹": "g",
+                "ꝿ": "g",
+                "â“—": "h",
+                "h": "h",
+                "Ä¥": "h",
+                "ḣ": "h",
+                "ḧ": "h",
+                "ÈŸ": "h",
+                "ḥ": "h",
+                "ḩ": "h",
+                "ḫ": "h",
+                "ẖ": "h",
+                "ħ": "h",
+                "ⱨ": "h",
+                "ⱶ": "h",
+                "É¥": "h",
+                "Æ•": "hv",
+                "ⓘ": "i",
+                "i": "i",
+                "ì": "i",
+                "í": "i",
+                "î": "i",
+                "Ä©": "i",
+                "Ä«": "i",
+                "Ä­": "i",
+                "ï": "i",
+                "ḯ": "i",
+                "ỉ": "i",
+                "ǐ": "i",
+                "ȉ": "i",
+                "È‹": "i",
+                "ị": "i",
+                "į": "i",
+                "ḭ": "i",
+                "ɨ": "i",
+                "ı": "i",
+                "â“™": "j",
+                "j": "j",
+                "ĵ": "j",
+                "Ç°": "j",
+                "ɉ": "j",
+                "â“š": "k",
+                "k": "k",
+                "ḱ": "k",
+                "Ç©": "k",
+                "ḳ": "k",
+                "Ä·": "k",
+                "ḵ": "k",
+                "Æ™": "k",
+                "ⱪ": "k",
+                "ꝁ": "k",
+                "ꝃ": "k",
+                "ꝅ": "k",
+                "ꞣ": "k",
+                "â“›": "l",
+                "l": "l",
+                "Å€": "l",
+                "ĺ": "l",
+                "ľ": "l",
+                "ḷ": "l",
+                "ḹ": "l",
+                "ļ": "l",
+                "ḽ": "l",
+                "ḻ": "l",
+                "Å¿": "l",
+                "Å‚": "l",
+                "Æš": "l",
+                "É«": "l",
+                "ⱡ": "l",
+                "ꝉ": "l",
+                "ꞁ": "l",
+                "ꝇ": "l",
+                "lj": "lj",
+                "ⓜ": "m",
+                "m": "m",
+                "ḿ": "m",
+                "ṁ": "m",
+                "ṃ": "m",
+                "ɱ": "m",
+                "ɯ": "m",
+                "ⓝ": "n",
+                "n": "n",
+                "ǹ": "n",
+                "Å„": "n",
+                "ñ": "n",
+                "á¹…": "n",
+                "ň": "n",
+                "ṇ": "n",
+                "ņ": "n",
+                "ṋ": "n",
+                "ṉ": "n",
+                "Æž": "n",
+                "ɲ": "n",
+                "ʼn": "n",
+                "êž‘": "n",
+                "ꞥ": "n",
+                "nj": "nj",
+                "â“ž": "o",
+                "o": "o",
+                "ò": "o",
+                "ó": "o",
+                "ô": "o",
+                "ồ": "o",
+                "ố": "o",
+                "á»—": "o",
+                "ổ": "o",
+                "õ": "o",
+                "ṍ": "o",
+                "È­": "o",
+                "ṏ": "o",
+                "ō": "o",
+                "ṑ": "o",
+                "ṓ": "o",
+                "ŏ": "o",
+                "ȯ": "o",
+                "ȱ": "o",
+                "ö": "o",
+                "È«": "o",
+                "ỏ": "o",
+                "Å‘": "o",
+                "Ç’": "o",
+                "ȍ": "o",
+                "ȏ": "o",
+                "Æ¡": "o",
+                "ờ": "o",
+                "á»›": "o",
+                "ỡ": "o",
+                "ở": "o",
+                "ợ": "o",
+                "ọ": "o",
+                "á»™": "o",
+                "Ç«": "o",
+                "Ç­": "o",
+                "ø": "o",
+                "Ç¿": "o",
+                "É”": "o",
+                "ꝋ": "o",
+                "ꝍ": "o",
+                "ɵ": "o",
+                "Æ£": "oi",
+                "È£": "ou",
+                "ꝏ": "oo",
+                "â“Ÿ": "p",
+                "p": "p",
+                "ṕ": "p",
+                "á¹—": "p",
+                "Æ¥": "p",
+                "áµ½": "p",
+                "ꝑ": "p",
+                "ꝓ": "p",
+                "ꝕ": "p",
+                "â“ ": "q",
+                "q": "q",
+                "É‹": "q",
+                "ꝗ": "q",
+                "ꝙ": "q",
+                "â“¡": "r",
+                "ï½’": "r",
+                "Å•": "r",
+                "á¹™": "r",
+                "Å™": "r",
+                "È‘": "r",
+                "È“": "r",
+                "á¹›": "r",
+                "ṝ": "r",
+                "Å—": "r",
+                "ṟ": "r",
+                "ɍ": "r",
+                "ɽ": "r",
+                "ꝛ": "r",
+                "ꞧ": "r",
+                "ꞃ": "r",
+                "â“¢": "s",
+                "s": "s",
+                "ß": "s",
+                "Å›": "s",
+                "á¹¥": "s",
+                "ŝ": "s",
+                "ṡ": "s",
+                "Å¡": "s",
+                "ṧ": "s",
+                "á¹£": "s",
+                "ṩ": "s",
+                "È™": "s",
+                "ÅŸ": "s",
+                "È¿": "s",
+                "êž©": "s",
+                "êž…": "s",
+                "ẛ": "s",
+                "â“£": "t",
+                "ï½”": "t",
+                "ṫ": "t",
+                "ẗ": "t",
+                "Å¥": "t",
+                "á¹­": "t",
+                "È›": "t",
+                "Å£": "t",
+                "á¹±": "t",
+                "ṯ": "t",
+                "ŧ": "t",
+                "Æ­": "t",
+                "ʈ": "t",
+                "ⱦ": "t",
+                "ꞇ": "t",
+                "ꜩ": "tz",
+                "ⓤ": "u",
+                "u": "u",
+                "ù": "u",
+                "ú": "u",
+                "û": "u",
+                "Å©": "u",
+                "á¹¹": "u",
+                "Å«": "u",
+                "á¹»": "u",
+                "Å­": "u",
+                "ü": "u",
+                "ǜ": "u",
+                "ǘ": "u",
+                "Ç–": "u",
+                "Çš": "u",
+                "ủ": "u",
+                "ů": "u",
+                "ű": "u",
+                "Ç”": "u",
+                "È•": "u",
+                "È—": "u",
+                "Æ°": "u",
+                "ừ": "u",
+                "ứ": "u",
+                "ữ": "u",
+                "á»­": "u",
+                "á»±": "u",
+                "ụ": "u",
+                "á¹³": "u",
+                "ų": "u",
+                "á¹·": "u",
+                "á¹µ": "u",
+                "ʉ": "u",
+                "â“¥": "v",
+                "ï½–": "v",
+                "á¹½": "v",
+                "ṿ": "v",
+                "Ê‹": "v",
+                "ꝟ": "v",
+                "ʌ": "v",
+                "ꝡ": "vy",
+                "ⓦ": "w",
+                "ï½—": "w",
+                "ẁ": "w",
+                "ẃ": "w",
+                "ŵ": "w",
+                "ẇ": "w",
+                "ẅ": "w",
+                "ẘ": "w",
+                "ẉ": "w",
+                "â±³": "w",
+                "ⓧ": "x",
+                "x": "x",
+                "ẋ": "x",
+                "ẍ": "x",
+                "ⓨ": "y",
+                "ï½™": "y",
+                "ỳ": "y",
+                "ý": "y",
+                "Å·": "y",
+                "ỹ": "y",
+                "ȳ": "y",
+                "ẏ": "y",
+                "ÿ": "y",
+                "á»·": "y",
+                "ẙ": "y",
+                "ỵ": "y",
+                "Æ´": "y",
+                "ɏ": "y",
+                "ỿ": "y",
+                "â“©": "z",
+                "z": "z",
+                "ź": "z",
+                "ẑ": "z",
+                "ż": "z",
+                "ž": "z",
+                "ẓ": "z",
+                "ẕ": "z",
+                "ƶ": "z",
+                "È¥": "z",
+                "É€": "z",
+                "ⱬ": "z",
+                "ꝣ": "z",
+                "Ά": "Α",
+                "Έ": "Ε",
+                "Ή": "Η",
+                "Ί": "Ι",
+                "Ϊ": "Ι",
+                "Ό": "Ο",
+                "ÎŽ": "Î¥",
+                "Ϋ": "Υ",
+                "Ώ": "Ω",
+                "ά": "α",
+                "έ": "ε",
+                "ή": "η",
+                "ί": "ι",
+                "ϊ": "ι",
+                "ΐ": "ι",
+                "ό": "ο",
+                "ύ": "υ",
+                "Ï‹": "Ï…",
+                "ΰ": "υ",
+                "ω": "ω",
+                "ς": "σ"
+            };
+            return a
+        }), b.define("select2/data/base", ["../utils"], function(a) {
+            function b() {
+                b.__super__.constructor.call(this)
+            }
+            return a.Extend(b, a.Observable), b.prototype.current = function() {
+                throw new Error("The `current` method must be defined in child classes.")
+            }, b.prototype.query = function() {
+                throw new Error("The `query` method must be defined in child classes.")
+            }, b.prototype.bind = function() {}, b.prototype.destroy = function() {}, b.prototype.generateResultId = function(b, c) {
+                var d = b.id + "-result-";
+                return d += a.generateChars(4), d += null != c.id ? "-" + c.id.toString() : "-" + a.generateChars(4)
+            }, b
+        }), b.define("select2/data/select", ["./base", "../utils", "jquery"], function(a, b, c) {
+            function d(a, b) {
+                this.$element = a, this.options = b, d.__super__.constructor.call(this)
+            }
+            return b.Extend(d, a), d.prototype.current = function(a) {
+                var b = [], d = this;
+                this.$element.find(":selected").each(function() {
+                    var a = c(this), e = d.item(a);
+                    b.push(e)
+                }), a(b)
+            }, d.prototype.select = function(a) {
+                var b = this;
+                if (a.selected=!0, c(a.element).is("option"))
+                    return a.element.selected=!0, void this.$element.trigger("change");
+                if (this.$element.prop("multiple"))
+                    this.current(function(d) {
+                        var e = [];
+                        a = [a], a.push.apply(a, d);
+                        for (var f = 0; f < a.length; f++) {
+                            var g = a[f].id;
+                            - 1 === c.inArray(g, e) && e.push(g)
+                        }
+                        b.$element.val(e), b.$element.trigger("change")
+                    });
+                else {
+                    var d = a.id;
+                    this.$element.val(d), this.$element.trigger("change")
+                }
+            }, d.prototype.unselect = function(a) {
+                var b = this;
+                if (this.$element.prop("multiple"))
+                    return a.selected=!1, c(a.element).is("option") ? (a.element.selected=!1, void this.$element.trigger("change")) : void this.current(function(d) {
+                    for (var e = [], f = 0; f < d.length; f++) {
+                        var g = d[f].id;
+                        g !== a.id&&-1 === c.inArray(g, e) && e.push(g)
+                    }
+                    b.$element.val(e), b.$element.trigger("change")
+                })
+            }, d.prototype.bind = function(a) {
+                var b = this;
+                this.container = a, a.on("select", function(a) {
+                    b.select(a.data)
+                }), a.on("unselect", function(a) {
+                    b.unselect(a.data)
+                })
+            }, d.prototype.destroy = function() {
+                this.$element.find("*").each(function() {
+                    c.removeData(this, "data")
+                })
+            }, d.prototype.query = function(a, b) {
+                var d = [], e = this, f = this.$element.children();
+                f.each(function() {
+                    var b = c(this);
+                    if (b.is("option") || b.is("optgroup")) {
+                        var f = e.item(b), g = e.matches(a, f);
+                        null !== g && d.push(g)
+                    }
+                }), b({
+                    results: d
+                })
+            }, d.prototype.addOptions = function(a) {
+                b.appendMany(this.$element, a)
+            }, d.prototype.option = function(a) {
+                var b;
+                a.children ? (b = document.createElement("optgroup"), b.label = a.text) : (b = document.createElement("option"), void 0 !== b.textContent ? b.textContent = a.text : b.innerText = a.text), a.id && (b.value = a.id), a.disabled && (b.disabled=!0), a.selected && (b.selected=!0), a.title && (b.title = a.title);
+                var d = c(b), e = this._normalizeItem(a);
+                return e.element = b, c.data(b, "data", e), d
+            }, d.prototype.item = function(a) {
+                var b = {};
+                if (b = c.data(a[0], "data"), null != b)
+                    return b;
+                if (a.is("option"))
+                    b = {
+                        id: a.val(),
+                        text: a.text(),
+                        disabled: a.prop("disabled"),
+                        selected: a.prop("selected"),
+                        title: a.prop("title")
+                    };
+                else if (a.is("optgroup")) {
+                    b = {
+                        text: a.prop("label"),
+                        children: [],
+                        title: a.prop("title")
+                    };
+                    for (var d = a.children("option"), e = [], f = 0; f < d.length; f++) {
+                        var g = c(d[f]), h = this.item(g);
+                        e.push(h)
+                    }
+                    b.children = e
+                }
+                return b = this._normalizeItem(b), b.element = a[0], c.data(a[0], "data", b), b
+            }, d.prototype._normalizeItem = function(a) {
+                c.isPlainObject(a) || (a = {
+                    id: a,
+                    text: a
+                }), a = c.extend({}, {
+                    text: ""
+                }, a);
+                var b = {
+                    selected: !1,
+                    disabled: !1
+                };
+                return null != a.id && (a.id = a.id.toString()), null != a.text && (a.text = a.text.toString()), null == a._resultId && a.id && null != this.container && (a._resultId = this.generateResultId(this.container, a)), c.extend({}, b, a)
+            }, d.prototype.matches = function(a, b) {
+                var c = this.options.get("matcher");
+                return c(a, b)
+            }, d
+        }), b.define("select2/data/array", ["./select", "../utils", "jquery"], function(a, b, c) {
+            function d(a, b) {
+                var c = b.get("data") || [];
+                d.__super__.constructor.call(this, a, b), this.addOptions(this.convertToOptions(c))
+            }
+            return b.Extend(d, a), d.prototype.select = function(a) {
+                var b = this.$element.find("option").filter(function(b, c) {
+                    return c.value == a.id.toString()
+                });
+                0 === b.length && (b = this.option(a), this.addOptions(b)), d.__super__.select.call(this, a)
+            }, d.prototype.convertToOptions = function(a) {
+                function d(a) {
+                    return function() {
+                        return c(this).val() == a.id
+                    }
+                }
+                for (var e = this, f = this.$element.find("option"), g = f.map(function() {
+                    return e.item(c(this)).id
+                }).get(), h = [], i = 0; i < a.length; i++) {
+                    var j = this._normalizeItem(a[i]);
+                    if (c.inArray(j.id, g) >= 0) {
+                        var k = f.filter(d(j)), l = this.item(k), m = (c.extend(!0, {}, l, j), this.option(l));
+                        k.replaceWith(m)
+                    } else {
+                        var n = this.option(j);
+                        if (j.children) {
+                            var o = this.convertToOptions(j.children);
+                            b.appendMany(n, o)
+                        }
+                        h.push(n)
+                    }
+                }
+                return h
+            }, d
+        }), b.define("select2/data/ajax", ["./array", "../utils", "jquery"], function(a, b, c) {
+            function d(b, c) {
+                this.ajaxOptions = this._applyDefaults(c.get("ajax")), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), a.__super__.constructor.call(this, b, c)
+            }
+            return b.Extend(d, a), d.prototype._applyDefaults = function(a) {
+                var b = {
+                    data: function(a) {
+                        return {
+                            q: a.term
+                        }
+                    },
+                    transport: function(a, b, d) {
+                        var e = c.ajax(a);
+                        return e.then(b), e.fail(d), e
+                    }
+                };
+                return c.extend({}, b, a, !0)
+            }, d.prototype.processResults = function(a) {
+                return a
+            }, d.prototype.query = function(a, b) {
+                function d() {
+                    var d = f.transport(f, function(d) {
+                        var f = e.processResults(d, a);
+                        e.options.get("debug") && window.console && console.error && (f && f.results && c.isArray(f.results) || console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")), b(f)
+                    }, function() {});
+                    e._request = d
+                }
+                var e = this;
+                null != this._request && (c.isFunction(this._request.abort) && this._request.abort(), this._request = null);
+                var f = c.extend({
+                    type: "GET"
+                }, this.ajaxOptions);
+                "function" == typeof f.url && (f.url = f.url(a)), "function" == typeof f.data && (f.data = f.data(a)), this.ajaxOptions.delay && "" !== a.term ? (this._queryTimeout && window.clearTimeout(this._queryTimeout), this._queryTimeout = window.setTimeout(d, this.ajaxOptions.delay)) : d()
+            }, d
+        }), b.define("select2/data/tags", ["jquery"], function(a) {
+            function b(b, c, d) {
+                var e = d.get("tags"), f = d.get("createTag");
+                if (void 0 !== f && (this.createTag = f), b.call(this, c, d), a.isArray(e)
+                    )for (var g = 0; g < e.length; g++) {
+                    var h = e[g], i = this._normalizeItem(h), j = this.option(i);
+                    this.$element.append(j)
+                }
+            }
+            return b.prototype.query = function(a, b, c) {
+                function d(a, f) {
+                    for (var g = a.results, h = 0; h < g.length; h++) {
+                        var i = g[h], j = null != i.children&&!d({
+                            results: i.children
+                        }, !0), k = i.text === b.term;
+                        if (k || j)
+                            return f?!1 : (a.data = g, void c(a))
+                    }
+                    if (f)
+                        return !0;
+                    var l = e.createTag(b);
+                    if (null != l) {
+                        var m = e.option(l);
+                        m.attr("data-select2-tag", !0), e.addOptions([m]), e.insertTag(g, l)
+                    }
+                    a.results = g, c(a)
+                }
+                var e = this;
+                return this._removeOldTags(), null == b.term || null != b.page ? void a.call(this, b, c) : void a.call(this, b, d)
+            }, b.prototype.createTag = function(b, c) {
+                var d = a.trim(c.term);
+                return "" === d ? null : {
+                    id: d,
+                    text: d
+                }
+            }, b.prototype.insertTag = function(a, b, c) {
+                b.unshift(c)
+            }, b.prototype._removeOldTags = function() {
+                var b = (this._lastTag, this.$element.find("option[data-select2-tag]"));
+                b.each(function() {
+                    this.selected || a(this).remove()
+                })
+            }, b
+        }), b.define("select2/data/tokenizer", ["jquery"], function(a) {
+            function b(a, b, c) {
+                var d = c.get("tokenizer");
+                void 0 !== d && (this.tokenizer = d), a.call(this, b, c)
+            }
+            return b.prototype.bind = function(a, b, c) {
+                a.call(this, b, c), this.$search = b.dropdown.$search || b.selection.$search || c.find(".select2-search__field")
+            }, b.prototype.query = function(a, b, c) {
+                function d(a) {
+                    e.select(a)
+                }
+                var e = this;
+                b.term = b.term || "";
+                var f = this.tokenizer(b, this.options, d);
+                f.term !== b.term && (this.$search.length && (this.$search.val(f.term), this.$search.focus()), b.term = f.term), a.call(this, b, c)
+            }, b.prototype.tokenizer = function(b, c, d, e) {
+                for (var f = d.get("tokenSeparators") || [], g = c.term, h = 0, i = this.createTag || function(a) {
+                    return {
+                        id: a.term,
+                        text: a.term
+                    }
+                }; h < g.length;) {
+                    var j = g[h];
+                    if ( - 1 !== a.inArray(j, f)) {
+                        var k = g.substr(0, h), l = a.extend({}, c, {
+                            term: k
+                        }), m = i(l);
+                        e(m), g = g.substr(h + 1) || "", h = 0
+                    } else 
+                        h++
+                }
+                return {
+                    term: g
+                }
+            }, b
+        }), b.define("select2/data/minimumInputLength", [], function() {
+            function a(a, b, c) {
+                this.minimumInputLength = c.get("minimumInputLength"), a.call(this, b, c)
+            }
+            return a.prototype.query = function(a, b, c) {
+                return b.term = b.term || "", b.term.length < this.minimumInputLength ? void this.trigger("results:message", {
+                    message : "inputTooShort", args : {
+                        minimum: this.minimumInputLength, input : b.term, params : b
+                    }
+                }) : void a.call(this, b, c)
+            }, a
+        }), b.define("select2/data/maximumInputLength", [], function() {
+            function a(a, b, c) {
+                this.maximumInputLength = c.get("maximumInputLength"), a.call(this, b, c)
+            }
+            return a.prototype.query = function(a, b, c) {
+                return b.term = b.term || "", this.maximumInputLength > 0 && b.term.length > this.maximumInputLength ? void this.trigger("results:message", {
+                    message : "inputTooLong", args : {
+                        maximum: this.maximumInputLength, input : b.term, params : b
+                    }
+                }) : void a.call(this, b, c)
+            }, a
+        }), b.define("select2/data/maximumSelectionLength", [], function() {
+            function a(a, b, c) {
+                this.maximumSelectionLength = c.get("maximumSelectionLength"), a.call(this, b, c)
+            }
+            return a.prototype.query = function(a, b, c) {
+                var d = this;
+                this.current(function(e) {
+                    var f = null != e ? e.length: 0;
+                    return d.maximumSelectionLength > 0 && f >= d.maximumSelectionLength ? void d.trigger("results:message", {
+                        message : "maximumSelected", args : {
+                            maximum: d.maximumSelectionLength
+                        }
+                    }) : void a.call(d, b, c)
+                })
+            }, a
+        }), b.define("select2/dropdown", ["jquery", "./utils"], function(a, b) {
+            function c(a, b) {
+                this.$element = a, this.options = b, c.__super__.constructor.call(this)
+            }
+            return b.Extend(c, b.Observable), c.prototype.render = function() {
+                var b = a('<span class="select2-dropdown"><span class="select2-results"></span></span>');
+                return b.attr("dir", this.options.get("dir")), this.$dropdown = b, b
+            }, c.prototype.position = function() {}, c.prototype.destroy = function() {
+                this.$dropdown.remove()
+            }, c
+        }), b.define("select2/dropdown/search", ["jquery", "../utils"], function(a) {
+            function b() {}
+            return b.prototype.render = function(b) {
+                var c = b.call(this), d = a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');
+                return this.$searchContainer = d, this.$search = d.find("input"), c.prepend(d), c
+            }, b.prototype.bind = function(b, c, d) {
+                var e = this;
+                b.call(this, c, d), this.$search.on("keydown", function(a) {
+                    e.trigger("keypress", a), e._keyUpPrevented = a.isDefaultPrevented()
+                }), this.$search.on("input", function() {
+                    a(this).off("keyup")
+                }), this.$search.on("keyup input", function(a) {
+                    e.handleSearch(a)
+                }), c.on("open", function() {
+                    e.$search.attr("tabindex", 0), e.$search.focus(), window.setTimeout(function() {
+                        e.$search.focus()
+                    }, 0)
+                }), c.on("close", function() {
+                    e.$search.attr("tabindex", - 1), e.$search.val("")
+                }), c.on("results:all", function(a) {
+                    if (null == a.query.term || "" === a.query.term) {
+                        var b = e.showSearch(a);
+                        b ? e.$searchContainer.removeClass("select2-search--hide") : e.$searchContainer.addClass("select2-search--hide")
+                    }
+                })
+            }, b.prototype.handleSearch = function() {
+                if (!this._keyUpPrevented) {
+                    var a = this.$search.val();
+                    this.trigger("query", {
+                        term: a
+                    })
+                }
+                this._keyUpPrevented=!1
+            }, b.prototype.showSearch = function() {
+                return !0
+            }, b
+        }), b.define("select2/dropdown/hidePlaceholder", [], function() {
+            function a(a, b, c, d) {
+                this.placeholder = this.normalizePlaceholder(c.get("placeholder")), a.call(this, b, c, d)
+            }
+            return a.prototype.append = function(a, b) {
+                b.results = this.removePlaceholder(b.results), a.call(this, b)
+            }, a.prototype.normalizePlaceholder = function(a, b) {
+                return "string" == typeof b && (b = {
+                    id: "",
+                    text: b
+                }), b
+            }, a.prototype.removePlaceholder = function(a, b) {
+                for (var c = b.slice(0), d = b.length - 1; d >= 0; d--) {
+                    var e = b[d];
+                    this.placeholder.id === e.id && c.splice(d, 1)
+                }
+                return c
+            }, a
+        }), b.define("select2/dropdown/infiniteScroll", ["jquery"], function(a) {
+            function b(a, b, c, d) {
+                this.lastParams = {}, a.call(this, b, c, d), this.$loadingMore = this.createLoadingMore(), this.loading=!1
+            }
+            return b.prototype.append = function(a, b) {
+                this.$loadingMore.remove(), this.loading=!1, a.call(this, b), this.showLoadingMore(b) && this.$results.append(this.$loadingMore)
+            }, b.prototype.bind = function(b, c, d) {
+                var e = this;
+                b.call(this, c, d), c.on("query", function(a) {
+                    e.lastParams = a, e.loading=!0
+                }), c.on("query:append", function(a) {
+                    e.lastParams = a, e.loading=!0
+                }), this.$results.on("scroll", function() {
+                    var b = a.contains(document.documentElement, e.$loadingMore[0]);
+                    if (!e.loading && b) {
+                        var c = e.$results.offset().top + e.$results.outerHeight(!1), d = e.$loadingMore.offset().top + e.$loadingMore.outerHeight(!1);
+                        c + 50 >= d && e.loadMore()
+                    }
+                })
+            }, b.prototype.loadMore = function() {
+                this.loading=!0;
+                var b = a.extend({}, {
+                    page: 1
+                }, this.lastParams);
+                b.page++, this.trigger("query:append", b)
+            }, b.prototype.showLoadingMore = function(a, b) {
+                return b.pagination && b.pagination.more
+            }, b.prototype.createLoadingMore = function() {
+                var b = a('<li class="option load-more" role="treeitem"></li>'), c = this.options.get("translations").get("loadingMore");
+                return b.html(c(this.lastParams)), b
+            }, b
+        }), b.define("select2/dropdown/attachBody", ["jquery", "../utils"], function(a, b) {
+            function c(a, b, c) {
+                this.$dropdownParent = c.get("dropdownParent") || document.body, a.call(this, b, c)
+            }
+            return c.prototype.bind = function(a, b, c) {
+                var d = this, e=!1;
+                a.call(this, b, c), b.on("open", function() {
+                    d._showDropdown(), d._attachPositioningHandler(b), e || (e=!0, b.on("results:all", function() {
+                        d._positionDropdown(), d._resizeDropdown()
+                    }), b.on("results:append", function() {
+                        d._positionDropdown(), d._resizeDropdown()
+                    }))
+                }), b.on("close", function() {
+                    d._hideDropdown(), d._detachPositioningHandler(b)
+                }), this.$dropdownContainer.on("mousedown", function(a) {
+                    a.stopPropagation()
+                })
+            }, c.prototype.position = function(a, b, c) {
+                b.attr("class", c.attr("class")), b.removeClass("select2"), b.addClass("select2-container--open"), b.css({
+                    position: "absolute",
+                    top: - 999999
+                }), this.$container = c
+            }, c.prototype.render = function(b) {
+                var c = a("<span></span>"), d = b.call(this);
+                return c.append(d), this.$dropdownContainer = c, c
+            }, c.prototype._hideDropdown = function() {
+                this.$dropdownContainer.detach()
+            }, c.prototype._attachPositioningHandler = function(c) {
+                var d = this, e = "scroll.select2." + c.id, f = "resize.select2." + c.id, g = "orientationchange.select2." + c.id, h = this.$container.parents().filter(b.hasScroll);
+                h.each(function() {
+                    a(this).data("select2-scroll-position", {
+                        x: a(this).scrollLeft(),
+                        y: a(this).scrollTop()
+                    })
+                }), h.on(e, function() {
+                    var b = a(this).data("select2-scroll-position");
+                    a(this).scrollTop(b.y)
+                }), a(window).on(e + " " + f + " " + g, function() {
+                    d._positionDropdown(), d._resizeDropdown()
+                })
+            }, c.prototype._detachPositioningHandler = function(c) {
+                var d = "scroll.select2." + c.id, e = "resize.select2." + c.id, f = "orientationchange.select2." + c.id, g = this.$container.parents().filter(b.hasScroll);
+                g.off(d), a(window).off(d + " " + e + " " + f)
+            }, c.prototype._positionDropdown = function() {
+                var b = a(window), c = this.$dropdown.hasClass("select2-dropdown--above"), d = this.$dropdown.hasClass("select2-dropdown--below"), e = null, f = (this.$container.position(), this.$container.offset());
+                f.bottom = f.top + this.$container.outerHeight(!1);
+                var g = {
+                    height: this.$container.outerHeight(!1)
+                };
+                g.top = f.top, g.bottom = f.top + g.height;
+                var h = {
+                    height: this.$dropdown.outerHeight(!1)
+                }, i = {
+                    top: b.scrollTop(),
+                    bottom: b.scrollTop() + b.height()
+                }, j = i.top < f.top - h.height, k = i.bottom > f.bottom + h.height, l = {
+                    left: f.left,
+                    top: g.bottom
+                };
+                c || d || (e = "below"), k ||!j || c?!j && k && c && (e = "below") : e = "above", ("above" == e || c && "below" !== e) && (l.top 

<TRUNCATED>